@drghaliasri/butex 4.0.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -147,7 +147,7 @@ declare namespace ButexDocumentEditor {
147
147
  var displayName: string;
148
148
  }
149
149
 
150
- declare const DOCUMENT_WIDGET_CSS = "\n.butex-document-widget {\n --butex-document-bg: var(--butex-bg, #f8fafc);\n --butex-document-fg: var(--butex-fg, #0f172a);\n --butex-document-muted: var(--butex-muted, #64748b);\n --butex-document-panel: var(--butex-panel, #ffffff);\n --butex-document-border: var(--butex-border, #e2e8f0);\n --butex-document-accent: var(--butex-accent, #0d9488);\n --butex-document-accent-hover: var(--butex-accent-hover, #0f766e);\n --butex-document-accent-bg: var(--butex-toolbar-hover-bg, rgba(13, 148, 136, 0.08));\n --butex-document-focus-shadow: var(--butex-focus-shadow, rgba(13, 148, 136, 0.16));\n --butex-document-danger: var(--butex-danger, #dc2626);\n --butex-document-error: var(--butex-error, #b91c1c);\n --butex-document-error-bg: var(--butex-error-bg, #fef2f2);\n --butex-document-shadow: var(--butex-shadow-md, 0 4px 14px rgba(15, 23, 42, 0.08));\n --butex-document-preview-bg: var(--butex-preview-bg, #ffffff);\n --butex-document-preview-fg: var(--butex-preview-fg, var(--butex-document-fg));\n --butex-document-preview-font: \"Amiri\", \"Noto Serif Arabic\", Georgia, \"Times New Roman\", serif;\n --butex-document-drawer-bg: var(--butex-document-panel);\n --butex-document-input-bg: #ffffff;\n --butex-document-input-border: var(--butex-document-border);\n --butex-document-table-border: var(--butex-document-border);\n --butex-document-raw-bg: #f8fafc;\n --butex-document-math-bg: var(--butex-document-accent-bg);\n --butex-document-math-border: rgba(13, 148, 136, 0.35);\n --butex-document-dev-bg: var(--butex-dev-bg, #fffbeb);\n --butex-document-dev-border: var(--butex-dev-border, #fcd34d);\n --butex-document-dev-code-bg: var(--butex-dev-inset-bg, #ffffff);\n --butex-document-dev-code-fg: var(--butex-dev-inset-fg, var(--butex-document-fg));\n box-sizing: border-box;\n color: var(--butex-document-fg);\n direction: rtl;\n font-family: ui-sans-serif, system-ui, \"Segoe UI\", Tahoma, Arial, sans-serif;\n line-height: 1.45;\n}\n\n.butex-document-widget *,\n.butex-document-widget *::before,\n.butex-document-widget *::after {\n box-sizing: inherit;\n}\n\n.butex-document-widget__shell {\n display: grid;\n gap: 12px;\n}\n\n.butex-document-widget__toolbar,\n.butex-document-widget__panel {\n border: 1px solid var(--butex-document-border);\n border-radius: 10px;\n background: var(--butex-document-panel);\n box-shadow: var(--butex-document-shadow);\n}\n\n.butex-document-widget__toolbar {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n padding: 8px;\n}\n\n.butex-document-widget button {\n border: 1px solid var(--butex-document-border);\n border-radius: 8px;\n background: var(--butex-document-panel);\n color: var(--butex-document-fg);\n cursor: pointer;\n min-height: 32px;\n padding: 0 10px;\n transition: border-color 0.14s ease, background 0.14s ease, box-shadow 0.14s ease, color 0.14s ease;\n}\n\n.butex-document-widget button[aria-pressed=\"true\"],\n.butex-document-widget button:hover {\n border-color: var(--butex-document-accent);\n background: var(--butex-document-accent-bg);\n}\n\n.butex-document-widget button:focus-visible,\n.butex-document-widget input:focus-visible,\n.butex-document-widget textarea:focus-visible {\n border-color: var(--butex-document-accent);\n box-shadow: 0 0 0 3px var(--butex-document-focus-shadow);\n outline: none;\n}\n\n.butex-document-widget button:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.butex-document-widget__panel {\n padding: 16px;\n}\n\n.butex-document-widget__layout {\n align-items: start;\n display: grid;\n gap: 12px;\n grid-template-columns: minmax(0, 1fr) minmax(280px, 0.9fr);\n transition: grid-template-columns 0.22s ease;\n}\n\n.butex-document-widget__layout--editor-open.butex-document-widget__layout--preview-open {\n grid-template-columns: minmax(0, 1fr) minmax(280px, 0.9fr);\n}\n\n.butex-document-widget__layout--editor-open.butex-document-widget__layout--preview-closed {\n grid-template-columns: minmax(0, 1fr) minmax(0, 0fr);\n}\n\n.butex-document-widget__layout--editor-closed.butex-document-widget__layout--preview-open {\n grid-template-columns: minmax(0, 0fr) minmax(0, 1fr);\n}\n\n.butex-document-widget__layout--editor-closed.butex-document-widget__layout--preview-closed {\n grid-template-columns: minmax(0, 1fr) minmax(0, 0fr);\n}\n\n.butex-document-widget__layout--preview-open {\n grid-template-columns: minmax(0, 1fr) minmax(280px, 0.9fr);\n}\n\n.butex-document-widget__layout--preview-closed {\n grid-template-columns: minmax(0, 1fr) minmax(0, 0fr);\n}\n\n.butex-document-widget__editor-panel,\n.butex-document-widget__preview-panel {\n min-width: 0;\n opacity: 1;\n overflow-x: hidden;\n overflow-y: auto;\n transform: translateX(0);\n transition:\n opacity 0.18s ease,\n transform 0.22s ease,\n padding 0.22s ease,\n border-width 0.22s ease,\n box-shadow 0.22s ease;\n}\n\n.butex-document-widget__layout--editor-closed .butex-document-widget__editor-panel {\n border-width: 0;\n box-shadow: none;\n opacity: 0;\n padding-inline: 0;\n pointer-events: none;\n transform: translateX(10px);\n visibility: hidden;\n}\n\n.butex-document-widget__layout--preview-closed .butex-document-widget__preview-panel {\n border-width: 0;\n box-shadow: none;\n opacity: 0;\n padding-inline: 0;\n pointer-events: none;\n transform: translateX(-10px);\n visibility: hidden;\n}\n\n.butex-document-widget__block {\n border: 1px solid var(--butex-document-border);\n border-radius: 9px;\n background: var(--butex-document-panel);\n display: grid;\n gap: 10px;\n margin-bottom: 12px;\n padding: 10px;\n}\n\n.butex-document-widget__block-head,\n.butex-document-widget__row-actions,\n.butex-document-widget__drawer-head {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n justify-content: space-between;\n}\n\n.butex-document-widget__row-actions {\n justify-content: flex-start;\n}\n\n.butex-document-widget__field {\n display: grid;\n gap: 6px;\n}\n\n.butex-document-widget__field--short {\n max-width: 220px;\n}\n\n.butex-document-widget input,\n.butex-document-widget textarea {\n background: var(--butex-document-input-bg);\n border: 1px solid var(--butex-document-input-border);\n border-radius: 8px;\n color: var(--butex-document-fg);\n font: inherit;\n min-height: 34px;\n padding: 7px 9px;\n}\n\n.butex-document-widget textarea {\n min-height: 72px;\n resize: vertical;\n}\n\n.butex-document-widget__chips {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n}\n\n.butex-document-widget .butex-document-widget__math-chip {\n background: var(--butex-document-math-bg);\n border-color: var(--butex-document-math-border);\n direction: ltr;\n font-family: ui-monospace, SFMono-Regular, Consolas, monospace;\n min-height: 28px;\n unicode-bidi: isolate;\n}\n\n.butex-document-widget__list-editor,\n.butex-document-widget__image-editor {\n display: grid;\n gap: 10px;\n}\n\n.butex-document-widget__list-item {\n border-inline-start: 3px solid var(--butex-document-border);\n display: grid;\n gap: 8px;\n padding-inline-start: 10px;\n}\n\n.butex-document-widget__nested {\n display: grid;\n gap: 6px;\n}\n\n.butex-document-widget__nested-block {\n border: 1px dashed var(--butex-document-border);\n border-radius: 8px;\n color: var(--butex-document-muted);\n background: var(--butex-document-bg);\n padding: 8px;\n}\n\n.butex-document-widget__table-editor {\n display: grid;\n gap: 10px;\n}\n\n.butex-document-widget__table-grid {\n display: grid;\n gap: 6px;\n overflow-x: auto;\n}\n\n.butex-document-widget__table-row {\n display: flex;\n gap: 6px;\n}\n\n.butex-document-widget__table-cell {\n display: grid;\n gap: 4px;\n min-width: 120px;\n}\n\n.butex-document-widget__placeholder,\n.butex-document-widget__error {\n margin: 0;\n color: var(--butex-document-muted);\n}\n\n.butex-document-widget__error {\n border: 1px solid var(--butex-document-error);\n border-radius: 8px;\n background: var(--butex-document-error-bg);\n color: var(--butex-document-error);\n padding: 10px;\n}\n\n.butex-document-widget__preview {\n background: var(--butex-document-preview-bg);\n color: var(--butex-document-preview-fg);\n direction: rtl;\n font-family: var(--butex-document-preview-font);\n font-size: 1.08rem;\n line-height: 1.9;\n}\n\n.butex-document-widget__preview h1,\n.butex-document-widget__preview h2,\n.butex-document-widget__preview h3,\n.butex-document-widget__preview p,\n.butex-document-widget__preview li,\n.butex-document-widget__preview td {\n overflow: visible;\n}\n\n.butex-document-widget__preview h1,\n.butex-document-widget__preview h2,\n.butex-document-widget__preview h3,\n.butex-document-widget__preview p {\n margin: 0 0 12px;\n}\n\n.butex-document-widget__preview ul,\n.butex-document-widget__preview ol {\n margin: 0 0 12px;\n padding-inline-start: 24px;\n}\n\n.butex-document-widget__preview img {\n display: block;\n height: auto;\n max-width: 100%;\n}\n\n.butex-document-widget__preview table {\n border-collapse: collapse;\n margin: 12px 0;\n width: 100%;\n}\n\n.butex-document-widget__preview td {\n border: 1px solid var(--butex-document-table-border);\n padding: 6px 8px;\n}\n\n.butex-document-widget .butex-document-math-island {\n direction: ltr;\n display: inline-block;\n line-height: normal;\n margin: 0 2px;\n overflow: visible;\n padding: 0;\n unicode-bidi: isolate;\n vertical-align: middle;\n}\n\n.butex-document-widget .butex-document-math-island mjx-container {\n display: inline-block !important;\n line-height: normal;\n margin: 0;\n overflow: visible;\n vertical-align: middle;\n}\n\n.butex-document-widget .butex-document-math-island[data-math-display=\"true\"] {\n display: block;\n margin: 10px 0;\n overflow: visible;\n text-align: center;\n}\n\n.butex-document-widget .butex-document-math-island[data-math-display=\"true\"] mjx-container {\n display: block !important;\n margin-inline: auto;\n}\n\n.butex-document-widget__preview-error {\n border: 1px solid var(--butex-document-error);\n border-radius: 8px;\n background: var(--butex-document-error-bg);\n color: var(--butex-document-error);\n margin: 12px 0 0;\n padding: 8px 10px;\n}\n\n.butex-document-widget__dev {\n border: 1px solid var(--butex-document-dev-border);\n border-radius: 10px;\n background: var(--butex-document-dev-bg);\n box-shadow: var(--butex-document-shadow);\n display: grid;\n gap: 10px;\n padding: 12px;\n}\n\n.butex-document-widget__dev pre {\n border: 1px solid var(--butex-document-dev-border);\n border-radius: 8px;\n background: var(--butex-document-dev-code-bg);\n color: var(--butex-document-dev-code-fg);\n direction: ltr;\n margin: 0;\n max-height: 220px;\n overflow: auto;\n padding: 10px;\n text-align: left;\n white-space: pre-wrap;\n}\n\n.butex-document-widget__drawer {\n background: var(--butex-document-drawer-bg);\n border-inline-start: 1px solid var(--butex-document-border);\n bottom: 0;\n box-shadow: -8px 0 22px rgba(15, 23, 42, 0.12);\n display: grid;\n gap: 12px;\n max-width: min(680px, 94vw);\n overflow: auto;\n padding: 14px;\n position: fixed;\n right: 0;\n top: 0;\n width: 640px;\n z-index: 30;\n}\n\n@media (max-width: 900px) {\n .butex-document-widget__layout {\n grid-template-columns: 1fr;\n }\n\n .butex-document-widget__layout--preview-closed .butex-document-widget__preview-panel {\n display: none;\n }\n\n .butex-document-widget__layout--editor-closed .butex-document-widget__editor-panel {\n display: none;\n }\n\n .butex-document-widget__drawer {\n border-inline-start: 0;\n left: 0;\n max-width: none;\n width: 100%;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .butex-document-widget__layout,\n .butex-document-widget__editor-panel,\n .butex-document-widget__preview-panel {\n transition: none;\n }\n}\n";
150
+ declare const DOCUMENT_WIDGET_CSS = "\n.butex-document-widget {\n --butex-document-bg: var(--butex-bg, #f8fafc);\n --butex-document-fg: var(--butex-fg, #0f172a);\n --butex-document-muted: var(--butex-muted, #64748b);\n --butex-document-panel: var(--butex-panel, #ffffff);\n --butex-document-border: var(--butex-border, #e2e8f0);\n --butex-document-accent: var(--butex-accent, #0d9488);\n --butex-document-accent-hover: var(--butex-accent-hover, #0f766e);\n --butex-document-accent-bg: var(--butex-toolbar-hover-bg, rgba(13, 148, 136, 0.08));\n --butex-document-focus-shadow: var(--butex-focus-shadow, rgba(13, 148, 136, 0.16));\n --butex-document-danger: var(--butex-danger, #dc2626);\n --butex-document-error: var(--butex-error, #b91c1c);\n --butex-document-error-bg: var(--butex-error-bg, #fef2f2);\n --butex-document-shadow: var(--butex-shadow-md, 0 4px 14px rgba(15, 23, 42, 0.08));\n --butex-document-preview-bg: var(--butex-preview-bg, #ffffff);\n --butex-document-preview-fg: var(--butex-preview-fg, var(--butex-document-fg));\n --butex-document-preview-font: \"Amiri\", \"Noto Serif Arabic\", Georgia, \"Times New Roman\", serif;\n --butex-document-drawer-bg: var(--butex-document-panel);\n --butex-document-input-bg: #ffffff;\n --butex-document-input-border: var(--butex-document-border);\n --butex-document-table-border: var(--butex-document-border);\n --butex-document-raw-bg: #f8fafc;\n --butex-document-math-bg: var(--butex-document-accent-bg);\n --butex-document-math-border: rgba(13, 148, 136, 0.35);\n --butex-document-dev-bg: var(--butex-dev-bg, #fffbeb);\n --butex-document-dev-border: var(--butex-dev-border, #fcd34d);\n --butex-document-dev-code-bg: var(--butex-dev-inset-bg, #ffffff);\n --butex-document-dev-code-fg: var(--butex-dev-inset-fg, var(--butex-document-fg));\n box-sizing: border-box;\n color: var(--butex-document-fg);\n direction: rtl;\n font-family: ui-sans-serif, system-ui, \"Segoe UI\", Tahoma, Arial, sans-serif;\n line-height: 1.45;\n}\n\n.butex-document-widget *,\n.butex-document-widget *::before,\n.butex-document-widget *::after {\n box-sizing: inherit;\n}\n\n.butex-document-widget__shell {\n display: grid;\n gap: 12px;\n}\n\n.butex-document-widget__toolbar,\n.butex-document-widget__panel {\n border: 1px solid var(--butex-document-border);\n border-radius: 10px;\n background: var(--butex-document-panel);\n box-shadow: var(--butex-document-shadow);\n}\n\n.butex-document-widget__toolbar {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n padding: 8px;\n}\n\n.butex-document-widget button {\n border: 1px solid var(--butex-document-border);\n border-radius: 8px;\n background: var(--butex-document-panel);\n color: var(--butex-document-fg);\n cursor: pointer;\n min-height: 32px;\n padding: 0 10px;\n transition: border-color 0.14s ease, background 0.14s ease, box-shadow 0.14s ease, color 0.14s ease;\n}\n\n.butex-document-widget button[aria-pressed=\"true\"],\n.butex-document-widget button:hover {\n border-color: var(--butex-document-accent);\n background: var(--butex-document-accent-bg);\n}\n\n.butex-document-widget button:focus-visible,\n.butex-document-widget input:focus-visible,\n.butex-document-widget textarea:focus-visible {\n border-color: var(--butex-document-accent);\n box-shadow: 0 0 0 3px var(--butex-document-focus-shadow);\n outline: none;\n}\n\n.butex-document-widget button:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.butex-document-widget__panel {\n padding: 16px;\n}\n\n.butex-document-widget__layout {\n align-items: start;\n display: grid;\n gap: 12px;\n grid-template-columns: minmax(0, 1fr) minmax(280px, 0.9fr);\n transition: grid-template-columns 0.22s ease;\n}\n\n.butex-document-widget__layout--editor-open.butex-document-widget__layout--preview-open {\n grid-template-columns: minmax(0, 1fr) minmax(280px, 0.9fr);\n}\n\n.butex-document-widget__layout--editor-open.butex-document-widget__layout--preview-closed {\n grid-template-columns: minmax(0, 1fr) minmax(0, 0fr);\n}\n\n.butex-document-widget__layout--editor-closed.butex-document-widget__layout--preview-open {\n grid-template-columns: minmax(0, 0fr) minmax(0, 1fr);\n}\n\n.butex-document-widget__layout--editor-closed.butex-document-widget__layout--preview-closed {\n grid-template-columns: minmax(0, 1fr) minmax(0, 0fr);\n}\n\n.butex-document-widget__layout--preview-open {\n grid-template-columns: minmax(0, 1fr) minmax(280px, 0.9fr);\n}\n\n.butex-document-widget__layout--preview-closed {\n grid-template-columns: minmax(0, 1fr) minmax(0, 0fr);\n}\n\n.butex-document-widget__editor-panel,\n.butex-document-widget__preview-panel {\n min-width: 0;\n opacity: 1;\n overflow-x: hidden;\n overflow-y: auto;\n transform: translateX(0);\n transition:\n opacity 0.18s ease,\n transform 0.22s ease,\n padding 0.22s ease,\n border-width 0.22s ease,\n box-shadow 0.22s ease;\n}\n\n.butex-document-widget__layout--editor-closed .butex-document-widget__editor-panel {\n border-width: 0;\n box-shadow: none;\n opacity: 0;\n padding-inline: 0;\n pointer-events: none;\n transform: translateX(10px);\n visibility: hidden;\n}\n\n.butex-document-widget__layout--preview-closed .butex-document-widget__preview-panel {\n border-width: 0;\n box-shadow: none;\n opacity: 0;\n padding-inline: 0;\n pointer-events: none;\n transform: translateX(-10px);\n visibility: hidden;\n}\n\n.butex-document-widget__block {\n border: 1px solid var(--butex-document-border);\n border-radius: 9px;\n background: var(--butex-document-panel);\n display: grid;\n gap: 10px;\n margin-bottom: 12px;\n padding: 10px;\n}\n\n.butex-document-widget__block-head,\n.butex-document-widget__row-actions,\n.butex-document-widget__drawer-head {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n justify-content: space-between;\n}\n\n.butex-document-widget__row-actions {\n justify-content: flex-start;\n}\n\n.butex-document-widget__field {\n display: grid;\n gap: 6px;\n}\n\n.butex-document-widget__field--short {\n max-width: 220px;\n}\n\n.butex-document-widget input,\n.butex-document-widget textarea {\n background: var(--butex-document-input-bg);\n border: 1px solid var(--butex-document-input-border);\n border-radius: 8px;\n color: var(--butex-document-fg);\n font: inherit;\n min-height: 34px;\n padding: 7px 9px;\n}\n\n.butex-document-widget textarea {\n min-height: 72px;\n resize: vertical;\n}\n\n.butex-document-widget__chips {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n}\n\n.butex-document-widget .butex-document-widget__math-chip {\n background: var(--butex-document-math-bg);\n border-color: var(--butex-document-math-border);\n direction: ltr;\n font-family: ui-monospace, SFMono-Regular, Consolas, monospace;\n min-height: 28px;\n unicode-bidi: isolate;\n}\n\n.butex-document-widget__list-editor,\n.butex-document-widget__image-editor {\n display: grid;\n gap: 10px;\n}\n\n.butex-document-widget__list-item {\n border-inline-start: 3px solid var(--butex-document-border);\n display: grid;\n gap: 8px;\n padding-inline-start: 10px;\n}\n\n.butex-document-widget__nested {\n display: grid;\n gap: 6px;\n}\n\n.butex-document-widget__nested-block {\n border: 1px dashed var(--butex-document-border);\n border-radius: 8px;\n color: var(--butex-document-muted);\n background: var(--butex-document-bg);\n padding: 8px;\n}\n\n.butex-document-widget__table-editor {\n display: grid;\n gap: 10px;\n}\n\n.butex-document-widget__table-grid {\n display: grid;\n gap: 6px;\n overflow-x: auto;\n}\n\n.butex-document-widget__table-row {\n display: flex;\n gap: 6px;\n}\n\n.butex-document-widget__table-cell {\n display: grid;\n gap: 4px;\n min-width: 120px;\n}\n\n.butex-document-widget__placeholder,\n.butex-document-widget__error {\n margin: 0;\n color: var(--butex-document-muted);\n}\n\n.butex-document-widget__error {\n border: 1px solid var(--butex-document-error);\n border-radius: 8px;\n background: var(--butex-document-error-bg);\n color: var(--butex-document-error);\n padding: 10px;\n}\n\n.butex-document-widget__preview {\n background: var(--butex-document-preview-bg);\n color: var(--butex-document-preview-fg);\n direction: rtl;\n font-family: var(--butex-document-preview-font);\n font-size: 1.08rem;\n line-height: 1.9;\n}\n\n.butex-document-widget__preview h1,\n.butex-document-widget__preview h2,\n.butex-document-widget__preview h3,\n.butex-document-widget__preview p,\n.butex-document-widget__preview li,\n.butex-document-widget__preview td {\n overflow: visible;\n}\n\n.butex-document-widget__preview h1,\n.butex-document-widget__preview h2,\n.butex-document-widget__preview h3,\n.butex-document-widget__preview p {\n margin: 0 0 12px;\n}\n\n.butex-document-widget__preview h1 {\n font-size: 1.75rem;\n font-weight: 700;\n line-height: 1.35;\n}\n\n.butex-document-widget__preview h2 {\n font-size: 1.4rem;\n font-weight: 600;\n line-height: 1.4;\n}\n\n.butex-document-widget__preview h3 {\n font-size: 1.2rem;\n font-weight: 600;\n line-height: 1.45;\n}\n\n.butex-document-widget__preview ul,\n.butex-document-widget__preview ol {\n margin: 0 0 12px;\n padding-inline-start: 24px;\n}\n\n.butex-document-widget__preview img {\n display: block;\n height: auto;\n max-width: 100%;\n}\n\n.butex-document-widget__preview table {\n border-collapse: collapse;\n margin: 12px 0;\n width: 100%;\n}\n\n.butex-document-widget__preview td {\n border: 1px solid var(--butex-document-table-border);\n padding: 6px 8px;\n}\n\n.butex-document-widget .butex-document-math-island {\n direction: ltr;\n display: inline-block;\n line-height: normal;\n margin: 0 2px;\n overflow: visible;\n padding: 0;\n unicode-bidi: isolate;\n vertical-align: middle;\n}\n\n.butex-document-widget .butex-document-math-island mjx-container {\n display: inline-block !important;\n line-height: normal;\n margin: 0;\n overflow: visible;\n vertical-align: middle;\n}\n\n.butex-document-widget .butex-document-math-island[data-math-display=\"true\"] {\n display: block;\n margin: 10px 0;\n overflow: visible;\n text-align: center;\n}\n\n.butex-document-widget .butex-document-math-island[data-math-display=\"true\"] mjx-container {\n display: block !important;\n margin-inline: auto;\n}\n\n.butex-document-widget__preview-error {\n border: 1px solid var(--butex-document-error);\n border-radius: 8px;\n background: var(--butex-document-error-bg);\n color: var(--butex-document-error);\n margin: 12px 0 0;\n padding: 8px 10px;\n}\n\n.butex-document-widget__dev {\n border: 1px solid var(--butex-document-dev-border);\n border-radius: 10px;\n background: var(--butex-document-dev-bg);\n box-shadow: var(--butex-document-shadow);\n display: grid;\n gap: 10px;\n padding: 12px;\n}\n\n.butex-document-widget__dev pre {\n border: 1px solid var(--butex-document-dev-border);\n border-radius: 8px;\n background: var(--butex-document-dev-code-bg);\n color: var(--butex-document-dev-code-fg);\n direction: ltr;\n margin: 0;\n max-height: 220px;\n overflow: auto;\n padding: 10px;\n text-align: left;\n white-space: pre-wrap;\n}\n\n.butex-document-widget__drawer {\n background: var(--butex-document-drawer-bg);\n border-inline-start: 1px solid var(--butex-document-border);\n bottom: 0;\n box-shadow: -8px 0 22px rgba(15, 23, 42, 0.12);\n display: grid;\n gap: 12px;\n max-width: min(680px, 94vw);\n overflow: auto;\n padding: 14px;\n position: fixed;\n right: 0;\n top: 0;\n width: 640px;\n z-index: 30;\n}\n\n@media (max-width: 900px) {\n .butex-document-widget__layout {\n grid-template-columns: 1fr;\n }\n\n .butex-document-widget__layout--preview-closed .butex-document-widget__preview-panel {\n display: none;\n }\n\n .butex-document-widget__layout--editor-closed .butex-document-widget__editor-panel {\n display: none;\n }\n\n .butex-document-widget__drawer {\n border-inline-start: 0;\n left: 0;\n max-width: none;\n width: 100%;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .butex-document-widget__layout,\n .butex-document-widget__editor-panel,\n .butex-document-widget__preview-panel {\n transition: none;\n }\n}\n";
151
151
  declare function injectBuTeXDocumentStyles(doc?: Document): void;
152
152
 
153
153
  export { ButexDocumentEditor, type ButexDocumentEditorProps, DOCUMENT_WIDGET_CSS, type DocumentInitialState, injectBuTeXDocumentStyles, resolveInitialDocument };
@@ -147,7 +147,7 @@ declare namespace ButexDocumentEditor {
147
147
  var displayName: string;
148
148
  }
149
149
 
150
- declare const DOCUMENT_WIDGET_CSS = "\n.butex-document-widget {\n --butex-document-bg: var(--butex-bg, #f8fafc);\n --butex-document-fg: var(--butex-fg, #0f172a);\n --butex-document-muted: var(--butex-muted, #64748b);\n --butex-document-panel: var(--butex-panel, #ffffff);\n --butex-document-border: var(--butex-border, #e2e8f0);\n --butex-document-accent: var(--butex-accent, #0d9488);\n --butex-document-accent-hover: var(--butex-accent-hover, #0f766e);\n --butex-document-accent-bg: var(--butex-toolbar-hover-bg, rgba(13, 148, 136, 0.08));\n --butex-document-focus-shadow: var(--butex-focus-shadow, rgba(13, 148, 136, 0.16));\n --butex-document-danger: var(--butex-danger, #dc2626);\n --butex-document-error: var(--butex-error, #b91c1c);\n --butex-document-error-bg: var(--butex-error-bg, #fef2f2);\n --butex-document-shadow: var(--butex-shadow-md, 0 4px 14px rgba(15, 23, 42, 0.08));\n --butex-document-preview-bg: var(--butex-preview-bg, #ffffff);\n --butex-document-preview-fg: var(--butex-preview-fg, var(--butex-document-fg));\n --butex-document-preview-font: \"Amiri\", \"Noto Serif Arabic\", Georgia, \"Times New Roman\", serif;\n --butex-document-drawer-bg: var(--butex-document-panel);\n --butex-document-input-bg: #ffffff;\n --butex-document-input-border: var(--butex-document-border);\n --butex-document-table-border: var(--butex-document-border);\n --butex-document-raw-bg: #f8fafc;\n --butex-document-math-bg: var(--butex-document-accent-bg);\n --butex-document-math-border: rgba(13, 148, 136, 0.35);\n --butex-document-dev-bg: var(--butex-dev-bg, #fffbeb);\n --butex-document-dev-border: var(--butex-dev-border, #fcd34d);\n --butex-document-dev-code-bg: var(--butex-dev-inset-bg, #ffffff);\n --butex-document-dev-code-fg: var(--butex-dev-inset-fg, var(--butex-document-fg));\n box-sizing: border-box;\n color: var(--butex-document-fg);\n direction: rtl;\n font-family: ui-sans-serif, system-ui, \"Segoe UI\", Tahoma, Arial, sans-serif;\n line-height: 1.45;\n}\n\n.butex-document-widget *,\n.butex-document-widget *::before,\n.butex-document-widget *::after {\n box-sizing: inherit;\n}\n\n.butex-document-widget__shell {\n display: grid;\n gap: 12px;\n}\n\n.butex-document-widget__toolbar,\n.butex-document-widget__panel {\n border: 1px solid var(--butex-document-border);\n border-radius: 10px;\n background: var(--butex-document-panel);\n box-shadow: var(--butex-document-shadow);\n}\n\n.butex-document-widget__toolbar {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n padding: 8px;\n}\n\n.butex-document-widget button {\n border: 1px solid var(--butex-document-border);\n border-radius: 8px;\n background: var(--butex-document-panel);\n color: var(--butex-document-fg);\n cursor: pointer;\n min-height: 32px;\n padding: 0 10px;\n transition: border-color 0.14s ease, background 0.14s ease, box-shadow 0.14s ease, color 0.14s ease;\n}\n\n.butex-document-widget button[aria-pressed=\"true\"],\n.butex-document-widget button:hover {\n border-color: var(--butex-document-accent);\n background: var(--butex-document-accent-bg);\n}\n\n.butex-document-widget button:focus-visible,\n.butex-document-widget input:focus-visible,\n.butex-document-widget textarea:focus-visible {\n border-color: var(--butex-document-accent);\n box-shadow: 0 0 0 3px var(--butex-document-focus-shadow);\n outline: none;\n}\n\n.butex-document-widget button:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.butex-document-widget__panel {\n padding: 16px;\n}\n\n.butex-document-widget__layout {\n align-items: start;\n display: grid;\n gap: 12px;\n grid-template-columns: minmax(0, 1fr) minmax(280px, 0.9fr);\n transition: grid-template-columns 0.22s ease;\n}\n\n.butex-document-widget__layout--editor-open.butex-document-widget__layout--preview-open {\n grid-template-columns: minmax(0, 1fr) minmax(280px, 0.9fr);\n}\n\n.butex-document-widget__layout--editor-open.butex-document-widget__layout--preview-closed {\n grid-template-columns: minmax(0, 1fr) minmax(0, 0fr);\n}\n\n.butex-document-widget__layout--editor-closed.butex-document-widget__layout--preview-open {\n grid-template-columns: minmax(0, 0fr) minmax(0, 1fr);\n}\n\n.butex-document-widget__layout--editor-closed.butex-document-widget__layout--preview-closed {\n grid-template-columns: minmax(0, 1fr) minmax(0, 0fr);\n}\n\n.butex-document-widget__layout--preview-open {\n grid-template-columns: minmax(0, 1fr) minmax(280px, 0.9fr);\n}\n\n.butex-document-widget__layout--preview-closed {\n grid-template-columns: minmax(0, 1fr) minmax(0, 0fr);\n}\n\n.butex-document-widget__editor-panel,\n.butex-document-widget__preview-panel {\n min-width: 0;\n opacity: 1;\n overflow-x: hidden;\n overflow-y: auto;\n transform: translateX(0);\n transition:\n opacity 0.18s ease,\n transform 0.22s ease,\n padding 0.22s ease,\n border-width 0.22s ease,\n box-shadow 0.22s ease;\n}\n\n.butex-document-widget__layout--editor-closed .butex-document-widget__editor-panel {\n border-width: 0;\n box-shadow: none;\n opacity: 0;\n padding-inline: 0;\n pointer-events: none;\n transform: translateX(10px);\n visibility: hidden;\n}\n\n.butex-document-widget__layout--preview-closed .butex-document-widget__preview-panel {\n border-width: 0;\n box-shadow: none;\n opacity: 0;\n padding-inline: 0;\n pointer-events: none;\n transform: translateX(-10px);\n visibility: hidden;\n}\n\n.butex-document-widget__block {\n border: 1px solid var(--butex-document-border);\n border-radius: 9px;\n background: var(--butex-document-panel);\n display: grid;\n gap: 10px;\n margin-bottom: 12px;\n padding: 10px;\n}\n\n.butex-document-widget__block-head,\n.butex-document-widget__row-actions,\n.butex-document-widget__drawer-head {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n justify-content: space-between;\n}\n\n.butex-document-widget__row-actions {\n justify-content: flex-start;\n}\n\n.butex-document-widget__field {\n display: grid;\n gap: 6px;\n}\n\n.butex-document-widget__field--short {\n max-width: 220px;\n}\n\n.butex-document-widget input,\n.butex-document-widget textarea {\n background: var(--butex-document-input-bg);\n border: 1px solid var(--butex-document-input-border);\n border-radius: 8px;\n color: var(--butex-document-fg);\n font: inherit;\n min-height: 34px;\n padding: 7px 9px;\n}\n\n.butex-document-widget textarea {\n min-height: 72px;\n resize: vertical;\n}\n\n.butex-document-widget__chips {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n}\n\n.butex-document-widget .butex-document-widget__math-chip {\n background: var(--butex-document-math-bg);\n border-color: var(--butex-document-math-border);\n direction: ltr;\n font-family: ui-monospace, SFMono-Regular, Consolas, monospace;\n min-height: 28px;\n unicode-bidi: isolate;\n}\n\n.butex-document-widget__list-editor,\n.butex-document-widget__image-editor {\n display: grid;\n gap: 10px;\n}\n\n.butex-document-widget__list-item {\n border-inline-start: 3px solid var(--butex-document-border);\n display: grid;\n gap: 8px;\n padding-inline-start: 10px;\n}\n\n.butex-document-widget__nested {\n display: grid;\n gap: 6px;\n}\n\n.butex-document-widget__nested-block {\n border: 1px dashed var(--butex-document-border);\n border-radius: 8px;\n color: var(--butex-document-muted);\n background: var(--butex-document-bg);\n padding: 8px;\n}\n\n.butex-document-widget__table-editor {\n display: grid;\n gap: 10px;\n}\n\n.butex-document-widget__table-grid {\n display: grid;\n gap: 6px;\n overflow-x: auto;\n}\n\n.butex-document-widget__table-row {\n display: flex;\n gap: 6px;\n}\n\n.butex-document-widget__table-cell {\n display: grid;\n gap: 4px;\n min-width: 120px;\n}\n\n.butex-document-widget__placeholder,\n.butex-document-widget__error {\n margin: 0;\n color: var(--butex-document-muted);\n}\n\n.butex-document-widget__error {\n border: 1px solid var(--butex-document-error);\n border-radius: 8px;\n background: var(--butex-document-error-bg);\n color: var(--butex-document-error);\n padding: 10px;\n}\n\n.butex-document-widget__preview {\n background: var(--butex-document-preview-bg);\n color: var(--butex-document-preview-fg);\n direction: rtl;\n font-family: var(--butex-document-preview-font);\n font-size: 1.08rem;\n line-height: 1.9;\n}\n\n.butex-document-widget__preview h1,\n.butex-document-widget__preview h2,\n.butex-document-widget__preview h3,\n.butex-document-widget__preview p,\n.butex-document-widget__preview li,\n.butex-document-widget__preview td {\n overflow: visible;\n}\n\n.butex-document-widget__preview h1,\n.butex-document-widget__preview h2,\n.butex-document-widget__preview h3,\n.butex-document-widget__preview p {\n margin: 0 0 12px;\n}\n\n.butex-document-widget__preview ul,\n.butex-document-widget__preview ol {\n margin: 0 0 12px;\n padding-inline-start: 24px;\n}\n\n.butex-document-widget__preview img {\n display: block;\n height: auto;\n max-width: 100%;\n}\n\n.butex-document-widget__preview table {\n border-collapse: collapse;\n margin: 12px 0;\n width: 100%;\n}\n\n.butex-document-widget__preview td {\n border: 1px solid var(--butex-document-table-border);\n padding: 6px 8px;\n}\n\n.butex-document-widget .butex-document-math-island {\n direction: ltr;\n display: inline-block;\n line-height: normal;\n margin: 0 2px;\n overflow: visible;\n padding: 0;\n unicode-bidi: isolate;\n vertical-align: middle;\n}\n\n.butex-document-widget .butex-document-math-island mjx-container {\n display: inline-block !important;\n line-height: normal;\n margin: 0;\n overflow: visible;\n vertical-align: middle;\n}\n\n.butex-document-widget .butex-document-math-island[data-math-display=\"true\"] {\n display: block;\n margin: 10px 0;\n overflow: visible;\n text-align: center;\n}\n\n.butex-document-widget .butex-document-math-island[data-math-display=\"true\"] mjx-container {\n display: block !important;\n margin-inline: auto;\n}\n\n.butex-document-widget__preview-error {\n border: 1px solid var(--butex-document-error);\n border-radius: 8px;\n background: var(--butex-document-error-bg);\n color: var(--butex-document-error);\n margin: 12px 0 0;\n padding: 8px 10px;\n}\n\n.butex-document-widget__dev {\n border: 1px solid var(--butex-document-dev-border);\n border-radius: 10px;\n background: var(--butex-document-dev-bg);\n box-shadow: var(--butex-document-shadow);\n display: grid;\n gap: 10px;\n padding: 12px;\n}\n\n.butex-document-widget__dev pre {\n border: 1px solid var(--butex-document-dev-border);\n border-radius: 8px;\n background: var(--butex-document-dev-code-bg);\n color: var(--butex-document-dev-code-fg);\n direction: ltr;\n margin: 0;\n max-height: 220px;\n overflow: auto;\n padding: 10px;\n text-align: left;\n white-space: pre-wrap;\n}\n\n.butex-document-widget__drawer {\n background: var(--butex-document-drawer-bg);\n border-inline-start: 1px solid var(--butex-document-border);\n bottom: 0;\n box-shadow: -8px 0 22px rgba(15, 23, 42, 0.12);\n display: grid;\n gap: 12px;\n max-width: min(680px, 94vw);\n overflow: auto;\n padding: 14px;\n position: fixed;\n right: 0;\n top: 0;\n width: 640px;\n z-index: 30;\n}\n\n@media (max-width: 900px) {\n .butex-document-widget__layout {\n grid-template-columns: 1fr;\n }\n\n .butex-document-widget__layout--preview-closed .butex-document-widget__preview-panel {\n display: none;\n }\n\n .butex-document-widget__layout--editor-closed .butex-document-widget__editor-panel {\n display: none;\n }\n\n .butex-document-widget__drawer {\n border-inline-start: 0;\n left: 0;\n max-width: none;\n width: 100%;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .butex-document-widget__layout,\n .butex-document-widget__editor-panel,\n .butex-document-widget__preview-panel {\n transition: none;\n }\n}\n";
150
+ declare const DOCUMENT_WIDGET_CSS = "\n.butex-document-widget {\n --butex-document-bg: var(--butex-bg, #f8fafc);\n --butex-document-fg: var(--butex-fg, #0f172a);\n --butex-document-muted: var(--butex-muted, #64748b);\n --butex-document-panel: var(--butex-panel, #ffffff);\n --butex-document-border: var(--butex-border, #e2e8f0);\n --butex-document-accent: var(--butex-accent, #0d9488);\n --butex-document-accent-hover: var(--butex-accent-hover, #0f766e);\n --butex-document-accent-bg: var(--butex-toolbar-hover-bg, rgba(13, 148, 136, 0.08));\n --butex-document-focus-shadow: var(--butex-focus-shadow, rgba(13, 148, 136, 0.16));\n --butex-document-danger: var(--butex-danger, #dc2626);\n --butex-document-error: var(--butex-error, #b91c1c);\n --butex-document-error-bg: var(--butex-error-bg, #fef2f2);\n --butex-document-shadow: var(--butex-shadow-md, 0 4px 14px rgba(15, 23, 42, 0.08));\n --butex-document-preview-bg: var(--butex-preview-bg, #ffffff);\n --butex-document-preview-fg: var(--butex-preview-fg, var(--butex-document-fg));\n --butex-document-preview-font: \"Amiri\", \"Noto Serif Arabic\", Georgia, \"Times New Roman\", serif;\n --butex-document-drawer-bg: var(--butex-document-panel);\n --butex-document-input-bg: #ffffff;\n --butex-document-input-border: var(--butex-document-border);\n --butex-document-table-border: var(--butex-document-border);\n --butex-document-raw-bg: #f8fafc;\n --butex-document-math-bg: var(--butex-document-accent-bg);\n --butex-document-math-border: rgba(13, 148, 136, 0.35);\n --butex-document-dev-bg: var(--butex-dev-bg, #fffbeb);\n --butex-document-dev-border: var(--butex-dev-border, #fcd34d);\n --butex-document-dev-code-bg: var(--butex-dev-inset-bg, #ffffff);\n --butex-document-dev-code-fg: var(--butex-dev-inset-fg, var(--butex-document-fg));\n box-sizing: border-box;\n color: var(--butex-document-fg);\n direction: rtl;\n font-family: ui-sans-serif, system-ui, \"Segoe UI\", Tahoma, Arial, sans-serif;\n line-height: 1.45;\n}\n\n.butex-document-widget *,\n.butex-document-widget *::before,\n.butex-document-widget *::after {\n box-sizing: inherit;\n}\n\n.butex-document-widget__shell {\n display: grid;\n gap: 12px;\n}\n\n.butex-document-widget__toolbar,\n.butex-document-widget__panel {\n border: 1px solid var(--butex-document-border);\n border-radius: 10px;\n background: var(--butex-document-panel);\n box-shadow: var(--butex-document-shadow);\n}\n\n.butex-document-widget__toolbar {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n padding: 8px;\n}\n\n.butex-document-widget button {\n border: 1px solid var(--butex-document-border);\n border-radius: 8px;\n background: var(--butex-document-panel);\n color: var(--butex-document-fg);\n cursor: pointer;\n min-height: 32px;\n padding: 0 10px;\n transition: border-color 0.14s ease, background 0.14s ease, box-shadow 0.14s ease, color 0.14s ease;\n}\n\n.butex-document-widget button[aria-pressed=\"true\"],\n.butex-document-widget button:hover {\n border-color: var(--butex-document-accent);\n background: var(--butex-document-accent-bg);\n}\n\n.butex-document-widget button:focus-visible,\n.butex-document-widget input:focus-visible,\n.butex-document-widget textarea:focus-visible {\n border-color: var(--butex-document-accent);\n box-shadow: 0 0 0 3px var(--butex-document-focus-shadow);\n outline: none;\n}\n\n.butex-document-widget button:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.butex-document-widget__panel {\n padding: 16px;\n}\n\n.butex-document-widget__layout {\n align-items: start;\n display: grid;\n gap: 12px;\n grid-template-columns: minmax(0, 1fr) minmax(280px, 0.9fr);\n transition: grid-template-columns 0.22s ease;\n}\n\n.butex-document-widget__layout--editor-open.butex-document-widget__layout--preview-open {\n grid-template-columns: minmax(0, 1fr) minmax(280px, 0.9fr);\n}\n\n.butex-document-widget__layout--editor-open.butex-document-widget__layout--preview-closed {\n grid-template-columns: minmax(0, 1fr) minmax(0, 0fr);\n}\n\n.butex-document-widget__layout--editor-closed.butex-document-widget__layout--preview-open {\n grid-template-columns: minmax(0, 0fr) minmax(0, 1fr);\n}\n\n.butex-document-widget__layout--editor-closed.butex-document-widget__layout--preview-closed {\n grid-template-columns: minmax(0, 1fr) minmax(0, 0fr);\n}\n\n.butex-document-widget__layout--preview-open {\n grid-template-columns: minmax(0, 1fr) minmax(280px, 0.9fr);\n}\n\n.butex-document-widget__layout--preview-closed {\n grid-template-columns: minmax(0, 1fr) minmax(0, 0fr);\n}\n\n.butex-document-widget__editor-panel,\n.butex-document-widget__preview-panel {\n min-width: 0;\n opacity: 1;\n overflow-x: hidden;\n overflow-y: auto;\n transform: translateX(0);\n transition:\n opacity 0.18s ease,\n transform 0.22s ease,\n padding 0.22s ease,\n border-width 0.22s ease,\n box-shadow 0.22s ease;\n}\n\n.butex-document-widget__layout--editor-closed .butex-document-widget__editor-panel {\n border-width: 0;\n box-shadow: none;\n opacity: 0;\n padding-inline: 0;\n pointer-events: none;\n transform: translateX(10px);\n visibility: hidden;\n}\n\n.butex-document-widget__layout--preview-closed .butex-document-widget__preview-panel {\n border-width: 0;\n box-shadow: none;\n opacity: 0;\n padding-inline: 0;\n pointer-events: none;\n transform: translateX(-10px);\n visibility: hidden;\n}\n\n.butex-document-widget__block {\n border: 1px solid var(--butex-document-border);\n border-radius: 9px;\n background: var(--butex-document-panel);\n display: grid;\n gap: 10px;\n margin-bottom: 12px;\n padding: 10px;\n}\n\n.butex-document-widget__block-head,\n.butex-document-widget__row-actions,\n.butex-document-widget__drawer-head {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n justify-content: space-between;\n}\n\n.butex-document-widget__row-actions {\n justify-content: flex-start;\n}\n\n.butex-document-widget__field {\n display: grid;\n gap: 6px;\n}\n\n.butex-document-widget__field--short {\n max-width: 220px;\n}\n\n.butex-document-widget input,\n.butex-document-widget textarea {\n background: var(--butex-document-input-bg);\n border: 1px solid var(--butex-document-input-border);\n border-radius: 8px;\n color: var(--butex-document-fg);\n font: inherit;\n min-height: 34px;\n padding: 7px 9px;\n}\n\n.butex-document-widget textarea {\n min-height: 72px;\n resize: vertical;\n}\n\n.butex-document-widget__chips {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n}\n\n.butex-document-widget .butex-document-widget__math-chip {\n background: var(--butex-document-math-bg);\n border-color: var(--butex-document-math-border);\n direction: ltr;\n font-family: ui-monospace, SFMono-Regular, Consolas, monospace;\n min-height: 28px;\n unicode-bidi: isolate;\n}\n\n.butex-document-widget__list-editor,\n.butex-document-widget__image-editor {\n display: grid;\n gap: 10px;\n}\n\n.butex-document-widget__list-item {\n border-inline-start: 3px solid var(--butex-document-border);\n display: grid;\n gap: 8px;\n padding-inline-start: 10px;\n}\n\n.butex-document-widget__nested {\n display: grid;\n gap: 6px;\n}\n\n.butex-document-widget__nested-block {\n border: 1px dashed var(--butex-document-border);\n border-radius: 8px;\n color: var(--butex-document-muted);\n background: var(--butex-document-bg);\n padding: 8px;\n}\n\n.butex-document-widget__table-editor {\n display: grid;\n gap: 10px;\n}\n\n.butex-document-widget__table-grid {\n display: grid;\n gap: 6px;\n overflow-x: auto;\n}\n\n.butex-document-widget__table-row {\n display: flex;\n gap: 6px;\n}\n\n.butex-document-widget__table-cell {\n display: grid;\n gap: 4px;\n min-width: 120px;\n}\n\n.butex-document-widget__placeholder,\n.butex-document-widget__error {\n margin: 0;\n color: var(--butex-document-muted);\n}\n\n.butex-document-widget__error {\n border: 1px solid var(--butex-document-error);\n border-radius: 8px;\n background: var(--butex-document-error-bg);\n color: var(--butex-document-error);\n padding: 10px;\n}\n\n.butex-document-widget__preview {\n background: var(--butex-document-preview-bg);\n color: var(--butex-document-preview-fg);\n direction: rtl;\n font-family: var(--butex-document-preview-font);\n font-size: 1.08rem;\n line-height: 1.9;\n}\n\n.butex-document-widget__preview h1,\n.butex-document-widget__preview h2,\n.butex-document-widget__preview h3,\n.butex-document-widget__preview p,\n.butex-document-widget__preview li,\n.butex-document-widget__preview td {\n overflow: visible;\n}\n\n.butex-document-widget__preview h1,\n.butex-document-widget__preview h2,\n.butex-document-widget__preview h3,\n.butex-document-widget__preview p {\n margin: 0 0 12px;\n}\n\n.butex-document-widget__preview h1 {\n font-size: 1.75rem;\n font-weight: 700;\n line-height: 1.35;\n}\n\n.butex-document-widget__preview h2 {\n font-size: 1.4rem;\n font-weight: 600;\n line-height: 1.4;\n}\n\n.butex-document-widget__preview h3 {\n font-size: 1.2rem;\n font-weight: 600;\n line-height: 1.45;\n}\n\n.butex-document-widget__preview ul,\n.butex-document-widget__preview ol {\n margin: 0 0 12px;\n padding-inline-start: 24px;\n}\n\n.butex-document-widget__preview img {\n display: block;\n height: auto;\n max-width: 100%;\n}\n\n.butex-document-widget__preview table {\n border-collapse: collapse;\n margin: 12px 0;\n width: 100%;\n}\n\n.butex-document-widget__preview td {\n border: 1px solid var(--butex-document-table-border);\n padding: 6px 8px;\n}\n\n.butex-document-widget .butex-document-math-island {\n direction: ltr;\n display: inline-block;\n line-height: normal;\n margin: 0 2px;\n overflow: visible;\n padding: 0;\n unicode-bidi: isolate;\n vertical-align: middle;\n}\n\n.butex-document-widget .butex-document-math-island mjx-container {\n display: inline-block !important;\n line-height: normal;\n margin: 0;\n overflow: visible;\n vertical-align: middle;\n}\n\n.butex-document-widget .butex-document-math-island[data-math-display=\"true\"] {\n display: block;\n margin: 10px 0;\n overflow: visible;\n text-align: center;\n}\n\n.butex-document-widget .butex-document-math-island[data-math-display=\"true\"] mjx-container {\n display: block !important;\n margin-inline: auto;\n}\n\n.butex-document-widget__preview-error {\n border: 1px solid var(--butex-document-error);\n border-radius: 8px;\n background: var(--butex-document-error-bg);\n color: var(--butex-document-error);\n margin: 12px 0 0;\n padding: 8px 10px;\n}\n\n.butex-document-widget__dev {\n border: 1px solid var(--butex-document-dev-border);\n border-radius: 10px;\n background: var(--butex-document-dev-bg);\n box-shadow: var(--butex-document-shadow);\n display: grid;\n gap: 10px;\n padding: 12px;\n}\n\n.butex-document-widget__dev pre {\n border: 1px solid var(--butex-document-dev-border);\n border-radius: 8px;\n background: var(--butex-document-dev-code-bg);\n color: var(--butex-document-dev-code-fg);\n direction: ltr;\n margin: 0;\n max-height: 220px;\n overflow: auto;\n padding: 10px;\n text-align: left;\n white-space: pre-wrap;\n}\n\n.butex-document-widget__drawer {\n background: var(--butex-document-drawer-bg);\n border-inline-start: 1px solid var(--butex-document-border);\n bottom: 0;\n box-shadow: -8px 0 22px rgba(15, 23, 42, 0.12);\n display: grid;\n gap: 12px;\n max-width: min(680px, 94vw);\n overflow: auto;\n padding: 14px;\n position: fixed;\n right: 0;\n top: 0;\n width: 640px;\n z-index: 30;\n}\n\n@media (max-width: 900px) {\n .butex-document-widget__layout {\n grid-template-columns: 1fr;\n }\n\n .butex-document-widget__layout--preview-closed .butex-document-widget__preview-panel {\n display: none;\n }\n\n .butex-document-widget__layout--editor-closed .butex-document-widget__editor-panel {\n display: none;\n }\n\n .butex-document-widget__drawer {\n border-inline-start: 0;\n left: 0;\n max-width: none;\n width: 100%;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .butex-document-widget__layout,\n .butex-document-widget__editor-panel,\n .butex-document-widget__preview-panel {\n transition: none;\n }\n}\n";
151
151
  declare function injectBuTeXDocumentStyles(doc?: Document): void;
152
152
 
153
153
  export { ButexDocumentEditor, type ButexDocumentEditorProps, DOCUMENT_WIDGET_CSS, type DocumentInitialState, injectBuTeXDocumentStyles, resolveInitialDocument };
@@ -5581,7 +5581,82 @@ function createEditorRuntime(options) {
5581
5581
  return api;
5582
5582
  }
5583
5583
 
5584
+ // src/document/normalizeCharImport.ts
5585
+ var WRAPPER_SPECS = [
5586
+ { prefix: "\\butexdiwanioutline", font: "diwaniOutline" },
5587
+ { prefix: "\\diwanioutlineshaded", font: "diwaniOutline" },
5588
+ { prefix: "\\butexdiwani", font: "diwani" },
5589
+ { prefix: "\\butextakween", font: "takween" },
5590
+ { prefix: "\\diwani", font: "diwani" },
5591
+ { prefix: "\\takween", font: "takween" },
5592
+ { prefix: "\\text" }
5593
+ ];
5594
+ function readBracedArg(source, openBraceIndex) {
5595
+ if (source[openBraceIndex] !== "{") {
5596
+ return null;
5597
+ }
5598
+ let depth = 0;
5599
+ for (let index = openBraceIndex; index < source.length; index += 1) {
5600
+ const char = source[index];
5601
+ if (char === "{") {
5602
+ depth += 1;
5603
+ } else if (char === "}") {
5604
+ depth -= 1;
5605
+ if (depth === 0) {
5606
+ return { inner: source.slice(openBraceIndex + 1, index), end: index + 1 };
5607
+ }
5608
+ }
5609
+ }
5610
+ return null;
5611
+ }
5612
+ function peelWrapper(source) {
5613
+ for (const wrapper of WRAPPER_SPECS) {
5614
+ if (!source.startsWith(wrapper.prefix)) {
5615
+ continue;
5616
+ }
5617
+ const braced = readBracedArg(source, wrapper.prefix.length);
5618
+ if (!braced || braced.end !== source.length) {
5619
+ continue;
5620
+ }
5621
+ return { inner: braced.inner, font: wrapper.font };
5622
+ }
5623
+ return null;
5624
+ }
5625
+ function normalizeCharImportExpr(expr) {
5626
+ const original = expr;
5627
+ let current = expr;
5628
+ let characterFont = "default";
5629
+ let changed = false;
5630
+ while (true) {
5631
+ const peeled = peelWrapper(current);
5632
+ if (!peeled) {
5633
+ break;
5634
+ }
5635
+ current = peeled.inner;
5636
+ if (peeled.font) {
5637
+ characterFont = peeled.font;
5638
+ }
5639
+ changed = true;
5640
+ }
5641
+ if (!changed) {
5642
+ return { expr: original, characterFont: "default" };
5643
+ }
5644
+ if (current.includes("\\")) {
5645
+ return { expr: original, characterFont: "default" };
5646
+ }
5647
+ return { expr: current, characterFont };
5648
+ }
5649
+
5584
5650
  // src/document/mathEditorAdapter.ts
5651
+ var COMMAND_FONT_MAP = {
5652
+ "\\text": "infer",
5653
+ "\\butextakween": "takween",
5654
+ "\\takween": "takween",
5655
+ "\\butexdiwani": "diwani",
5656
+ "\\diwani": "diwani",
5657
+ "\\butexdiwanioutline": "diwaniOutline",
5658
+ "\\diwanioutlineshaded": "diwaniOutline"
5659
+ };
5585
5660
  function commandIdForTex(tex) {
5586
5661
  for (const spec of Object.values(ATOMIC_COMMANDS)) {
5587
5662
  const renderTex = spec.arabicRenderTex;
@@ -5693,6 +5768,42 @@ function envToEditorNode(node) {
5693
5768
  const scripts = attachScripts(node, env);
5694
5769
  return scripts ?? { editable: true, node: env };
5695
5770
  }
5771
+ function charFromTextLikeCommand(node) {
5772
+ const commandFont = COMMAND_FONT_MAP[node.name];
5773
+ if (commandFont === void 0) {
5774
+ return null;
5775
+ }
5776
+ if (node.optionalArgs.length > 0 || node.mandatoryArgs.length !== 1) {
5777
+ return null;
5778
+ }
5779
+ const arg = node.mandatoryArgs[0];
5780
+ if (arg.chain.length !== 1) {
5781
+ return null;
5782
+ }
5783
+ const child = arg.chain[0];
5784
+ if (child instanceof CommandNode) {
5785
+ const nested = charFromTextLikeCommand(child);
5786
+ if (!nested?.editable) {
5787
+ return null;
5788
+ }
5789
+ if (commandFont !== "infer") {
5790
+ nested.node.characterFont = commandFont;
5791
+ }
5792
+ const scripts2 = attachScripts(node, nested.node);
5793
+ return scripts2 ?? nested;
5794
+ }
5795
+ if (!(child instanceof CharNode)) {
5796
+ return null;
5797
+ }
5798
+ const normalized = normalizeCharImportExpr(child.expr);
5799
+ const characterFont = commandFont === "infer" ? normalized.characterFont : commandFont;
5800
+ const editorNode = createEditorNode("char", normalized.expr);
5801
+ if (characterFont !== "default") {
5802
+ editorNode.characterFont = characterFont;
5803
+ }
5804
+ const scripts = attachScripts(node, editorNode);
5805
+ return scripts ?? { editable: true, node: editorNode };
5806
+ }
5696
5807
  function commandToEditorNode(node) {
5697
5808
  if (node.name === "\\frac" && node.mandatoryArgs.length >= 2) {
5698
5809
  const frac = createFracNode();
@@ -5750,11 +5861,19 @@ function commandToEditorNode(node) {
5750
5861
  }
5751
5862
  return { editable: true, node: atomicOperator };
5752
5863
  }
5864
+ const textLike = charFromTextLikeCommand(node);
5865
+ if (textLike) {
5866
+ return textLike;
5867
+ }
5753
5868
  return { editable: false, reason: `\u0623\u0645\u0631 \u0631\u064A\u0627\u0636\u064A \u063A\u064A\u0631 \u0645\u062F\u0639\u0648\u0645 \u062D\u0627\u0644\u064A\u0627: ${node.name}` };
5754
5869
  }
5755
5870
  function astNodeToEditorNode(node) {
5756
5871
  if (node instanceof CharNode) {
5757
- const editorNode = createEditorNode("char", node.expr);
5872
+ const normalized = normalizeCharImportExpr(node.expr);
5873
+ const editorNode = createEditorNode("char", normalized.expr);
5874
+ if (normalized.characterFont !== "default") {
5875
+ editorNode.characterFont = normalized.characterFont;
5876
+ }
5758
5877
  const scripts = attachScripts(node, editorNode);
5759
5878
  return scripts ?? { editable: true, node: editorNode };
5760
5879
  }
@@ -9302,6 +9421,24 @@ var DOCUMENT_WIDGET_CSS = `
9302
9421
  margin: 0 0 12px;
9303
9422
  }
9304
9423
 
9424
+ .butex-document-widget__preview h1 {
9425
+ font-size: 1.75rem;
9426
+ font-weight: 700;
9427
+ line-height: 1.35;
9428
+ }
9429
+
9430
+ .butex-document-widget__preview h2 {
9431
+ font-size: 1.4rem;
9432
+ font-weight: 600;
9433
+ line-height: 1.4;
9434
+ }
9435
+
9436
+ .butex-document-widget__preview h3 {
9437
+ font-size: 1.2rem;
9438
+ font-weight: 600;
9439
+ line-height: 1.45;
9440
+ }
9441
+
9305
9442
  .butex-document-widget__preview ul,
9306
9443
  .butex-document-widget__preview ol {
9307
9444
  margin: 0 0 12px;