|
441 | 441 | reviewCard.className = 'ai-inline-review'; |
442 | 442 | reviewCard.dataset.aiType = block.type; |
443 | 443 |
|
444 | | - var icon = block.type === 'Think' ? '🧠' : '✨'; |
445 | | - var typeLabel = block.type === 'Think' ? 'Think' : 'AI Generate'; |
| 444 | + var icon = block.type === 'Think' ? '🧠' : block.type === 'Translate' ? '🌐' : block.type === 'OCR' ? '🔍' : block.type === 'TTS' ? '🔊' : block.type === 'STT' ? '🎤' : block.type === 'Image' ? '🖼️' : '✨'; |
| 445 | + var typeLabel = block.type === 'Think' ? 'Think' : block.type === 'Translate' ? 'Translate' : block.type === 'OCR' ? 'OCR Scan' : block.type === 'TTS' ? 'Text to Speech' : block.type === 'STT' ? 'Speech to Text' : block.type === 'Image' ? 'Image Generate' : 'AI Generate'; |
446 | 446 |
|
447 | 447 | reviewCard.innerHTML = |
448 | 448 | '<div class="ai-inline-review-header">' |
|
476 | 476 | resolved = true; |
477 | 477 | resolve(decision); |
478 | 478 | if (decision === 'reject' && placeholderCard) { |
479 | | - var models = window.AI_MODELS || {}; |
480 | | - var modelIds = Object.keys(models); |
481 | | - var currentModel = (M.getCurrentAiModel ? M.getCurrentAiModel() : modelIds[0]) || modelIds[0]; |
482 | | - var modelOptionsHtml = ''; |
483 | | - modelIds.forEach(function (id) { |
484 | | - var m = models[id]; |
485 | | - var name = m.dropdownName || m.label || id; |
486 | | - var sel = id === currentModel ? ' selected' : ''; |
487 | | - modelOptionsHtml += '<option value="' + id + '"' + sel + '>' + name + '</option>'; |
488 | | - }); |
489 | | - var newCard = document.createElement('div'); |
490 | | - newCard.className = 'ai-placeholder-card'; |
491 | | - newCard.dataset.aiType = block.type; |
492 | | - newCard.dataset.aiIndex = blockIndex; |
493 | | - var icon = block.type === 'Think' ? '🧠' : '✨'; |
494 | | - var label = block.type === 'Think' ? 'Think' : 'AI Generate'; |
495 | | - newCard.innerHTML = |
496 | | - '<div class="ai-placeholder-header">' |
497 | | - + '<span class="ai-placeholder-icon">' + icon + '</span>' |
498 | | - + '<span class="ai-placeholder-label">' + label + '</span>' |
499 | | - + '<div class="ai-placeholder-actions">' |
500 | | - + '<select class="ai-card-model-select" data-ai-index="' + blockIndex + '" title="Model for this generation">' + modelOptionsHtml + '</select>' |
501 | | - + '<button class="ai-placeholder-btn ai-fill-one" data-ai-index="' + blockIndex + '" title="Generate this block">▶</button>' |
502 | | - + '<button class="ai-placeholder-btn ai-remove-tag" data-ai-index="' + blockIndex + '" title="Remove tag">✕</button>' |
503 | | - + '</div></div>' |
504 | | - + '<div class="ai-placeholder-prompt">' + block.prompt + '</div>'; |
| 479 | + // Re-render the original block's full markdown back into its proper typed card |
| 480 | + // (preserves language dropdown for Translate, steps for Agent, etc.) |
| 481 | + var restoredHtml = M.transformDocgenMarkdown(block.fullMatch); |
| 482 | + var tempDiv = document.createElement('div'); |
| 483 | + tempDiv.innerHTML = restoredHtml; |
| 484 | + var newCard = tempDiv.querySelector('.ai-placeholder-card') || tempDiv.firstElementChild; |
| 485 | + if (!newCard) { |
| 486 | + // Fallback: build a minimal generic card if transform fails |
| 487 | + newCard = document.createElement('div'); |
| 488 | + newCard.className = 'ai-placeholder-card'; |
| 489 | + newCard.dataset.aiType = block.type; |
| 490 | + newCard.dataset.aiIndex = String(blockIndex); |
| 491 | + var icon = block.type === 'Think' ? '🧠' : block.type === 'Translate' ? '🌐' : '✨'; |
| 492 | + var label = block.type === 'Think' ? 'Think' : block.type === 'Translate' ? 'Translate' : 'AI Generate'; |
| 493 | + newCard.innerHTML = |
| 494 | + '<div class="ai-placeholder-header">' |
| 495 | + + '<span class="ai-placeholder-icon">' + icon + '</span>' |
| 496 | + + '<span class="ai-placeholder-label">' + label + '</span>' |
| 497 | + + '</div>' |
| 498 | + + '<div class="ai-placeholder-prompt">' + block.prompt + '</div>'; |
| 499 | + } else { |
| 500 | + // Fix up the block index in case transformDocgenMarkdown assigned index 0 |
| 501 | + newCard.dataset.aiIndex = String(blockIndex); |
| 502 | + newCard.querySelectorAll('[data-ai-index]').forEach(function (el) { |
| 503 | + el.dataset.aiIndex = String(blockIndex); |
| 504 | + }); |
| 505 | + } |
505 | 506 | reviewCard.parentNode.replaceChild(newCard, reviewCard); |
506 | 507 | M.bindDocgenPreviewActions(newCard.parentNode); |
507 | 508 | } else if (decision === 'accept') { |
|
0 commit comments