oasis-editor 0.0.33 → 0.0.35

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.
@@ -1,7 +1,7 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
- import { n as normalizeSelection, g as getParagraphs, c as createEditorParagraphFromRuns, a as getParagraphLength, b as createEditorRun, d as getDocumentSections, e as createEditorStyledRun, f as getParagraphText, h as getActiveZone, i as getActiveSectionIndex, p as positionToParagraphOffset, j as paragraphOffsetToPosition, k as clampPosition, l as findParagraphIndex, m as createCollapsedSelection, o as isSelectionCollapsed, q as createEditorParagraph, r as getBlockParagraphs, s as findParagraphTableLocation, t as buildTableCellLayout, u as createEditorTableCell, v as createEditorTableRow, w as createEditorTable, x as underlineStyleToCssDecorationStyle, y as resolveImageSrc, z as createEditorFootnote, A as createFootnoteReferenceRun, B as renumberFootnotes, C as iterateFootnoteReferenceRuns, D as getFootnoteDisplayMarker, E as createSignal, F as createEffect, G as onCleanup, H as buildCanvasLayoutSnapshot, I as on, J as onMount, K as debounce, L as unwrap, M as getDocumentParagraphs, N as getDocumentSectionsCanonical, O as createEditorDocument, P as getPageContentWidth, Q as getDocumentPageSettings, R as getTableCellContentWidthForParagraph, S as resolveResizedDimensions, T as resolveTextBoxRenderHeight, U as resolveEffectiveParagraphStyle, V as resolveEffectiveTextStyleForParagraph, W as iterateEndnoteReferenceRuns, X as JSZip, Y as imageContentTypeDefaults, Z as imageExtensionFromMime, _ as pxToPt$1, $ as buildSegmentTable, a0 as buildCanvasTableLayout, a1 as resolveFloatingObjectRect, a2 as getTextBoxFloatingGeometry, a3 as getPresetPathSegments, a4 as projectBlocksLayout, a5 as buildListLabels, a6 as textStyleToFontSizePt, a7 as PX_PER_POINT, a8 as DEFAULT_FONT_SIZE_PX, a9 as isDoubleUnderlineStyle, aa as isWavyUnderlineStyle, ab as underlineStyleLineWidthPx, ac as underlineStyleDashArray, ad as resolveListLabel, ae as getListLabelInset, af as getAlignedListLabelInset, ag as getParagraphBorderInsets, ah as normalizeFamily, ai as ROBOTO_FONT_FILES, aj as loadFontAsset, ak as OFFICE_COMPAT_FONT_FAMILIES, al as buildSfnt, am as defaultFontDecoderRegistry, an as SfntFontProgram, ao as collectPdfFontFamilies, ap as projectDocumentLayout, aq as getPageHeaderZoneTop, ar as getPageBodyTop, as as getPageColumnRects, at as findFootnoteReference, au as FOOTNOTE_MARKER_GUTTER_PX, av as resolveImporterForFile, aw as createEditorStateFromDocument, ax as getDocumentParagraphsCanonical, ay as getToolbarStyleState, az as STANDARD_FONT_SIZES_PT, aA as fontSizePxToPt, aB as probeLocalFontFamilies, aC as createInitialEditorState, aD as parseFontSizePtToPx, aE as formatFontSizePt, aF as listKindForTag, aG as isParagraphTag, aH as collectInlineRuns, aI as parseParagraphStyle, aJ as getHeadingLevel, aK as preciseFontModeVersion, aL as isPreciseFontModeEnabled, aM as togglePreciseFontMode, aN as nextFontSizePt, aO as previousFontSizePt, aP as fontSizePtToPx, aQ as createDefaultToolbarPreset, aR as MenuRegistry, aS as createToolbarRegistry, aT as Editor, aU as resolveCommandRef, aV as commandRefName, aW as InlineShell, aX as BalloonShell, aY as DocumentShell, aZ as createMemo, a_ as getCaretRectFromSnapshot, a$ as getParagraphRectFromSnapshot, b0 as createComponent, b1 as CaretOverlay, b2 as Show, b3 as createRenderEffect, b4 as style, b5 as setAttribute, b6 as setStyleProperty, b7 as memo, b8 as template, b9 as useI18n, ba as insert, bb as use, bc as addEventListener, bd as Dialog, be as delegateEvents, bf as className, bg as For, bh as UNDERLINE_STYLE_OPTIONS, bi as Tabs, bj as measureParagraphMinContentWidthPx, bk as getEditableBlocksForZone, bl as findParagraphLocation, bm as createSectionBoundaryParagraph, bn as normalizePageSettings, bo as DEFAULT_EDITOR_PAGE_SETTINGS, bp as markStart, bq as markEnd, br as getParagraphEntries, bs as getParagraphById, bt as PluginUiHost, bu as OasisEditorEditor, bv as perfTimer, bw as OasisBrandMark, bx as setPreciseFontPreference, by as setWelcomeSeen, bz as enablePreciseFontMode, bA as createOasisEditorClient, bB as createEditorZoom, bC as startLongTaskObserver, bD as installGlobalReport, bE as applyStoredPreciseFontPreference, bF as getWelcomeSeen, bG as isLocalFontAccessSupported, bH as EDITOR_SCROLL_PADDING_PX, bI as Toolbar, bJ as OasisEditorLoading, bK as I18nProvider, bL as createEditorLogger, bM as createTranslator, bN as getCachedCanvasImage, bO as registerDomStatsSurface } from "./index-CDi9hs5T.js";
4
+ import { n as normalizeSelection, g as getParagraphs, c as createEditorParagraphFromRuns, a as getParagraphLength, b as createEditorRun, d as getDocumentSections, e as createEditorStyledRun, f as getParagraphText, h as getActiveZone, i as getActiveSectionIndex, p as positionToParagraphOffset, j as paragraphOffsetToPosition, k as clampPosition, l as findParagraphIndex, m as createCollapsedSelection, o as isSelectionCollapsed, q as createEditorParagraph, r as getBlockParagraphs, s as findParagraphTableLocation, t as buildTableCellLayout, u as createEditorTableCell, v as createEditorTableRow, w as createEditorTable, x as underlineStyleToCssDecorationStyle, y as resolveImageSrc, z as createEditorFootnote, A as createFootnoteReferenceRun, B as renumberFootnotes, C as iterateFootnoteReferenceRuns, D as getFootnoteDisplayMarker, E as createSignal, F as createEffect, G as onCleanup, H as buildCanvasLayoutSnapshot, I as on, J as onMount, K as debounce, L as unwrap, M as getDocumentParagraphs, N as getDocumentSectionsCanonical, O as createEditorDocument, P as getPageContentWidth, Q as getDocumentPageSettings, R as getTableCellContentWidthForParagraph, S as resolveResizedDimensions, T as resolveTextBoxRenderHeight, U as resolveEffectiveParagraphStyle, V as resolveEffectiveTextStyleForParagraph, W as iterateEndnoteReferenceRuns, X as JSZip, Y as imageContentTypeDefaults, Z as imageExtensionFromMime, _ as pxToPt$1, $ as buildSegmentTable, a0 as buildCanvasTableLayout, a1 as resolveFloatingObjectRect, a2 as getTextBoxFloatingGeometry, a3 as getPresetPathSegments, a4 as projectBlocksLayout, a5 as buildListLabels, a6 as textStyleToFontSizePt, a7 as PX_PER_POINT, a8 as DEFAULT_FONT_SIZE_PX, a9 as isDoubleUnderlineStyle, aa as isWavyUnderlineStyle, ab as underlineStyleLineWidthPx, ac as underlineStyleDashArray, ad as resolveListLabel, ae as getListLabelInset, af as getAlignedListLabelInset, ag as getParagraphBorderInsets, ah as normalizeFamily, ai as ROBOTO_FONT_FILES, aj as loadFontAsset, ak as OFFICE_COMPAT_FONT_FAMILIES, al as buildSfnt, am as defaultFontDecoderRegistry, an as SfntFontProgram, ao as collectPdfFontFamilies, ap as projectDocumentLayout, aq as getPageHeaderZoneTop, ar as getPageBodyTop, as as getPageColumnRects, at as findFootnoteReference, au as FOOTNOTE_MARKER_GUTTER_PX, av as resolveImporterForFile, aw as createEditorStateFromDocument, ax as getDocumentParagraphsCanonical, ay as getToolbarStyleState, az as STANDARD_FONT_SIZES_PT, aA as fontSizePxToPt, aB as probeLocalFontFamilies, aC as createInitialEditorState, aD as parseFontSizePtToPx, aE as formatFontSizePt, aF as listKindForTag, aG as isParagraphTag, aH as collectInlineRuns, aI as parseParagraphStyle, aJ as getHeadingLevel, aK as preciseFontModeVersion, aL as isPreciseFontModeEnabled, aM as togglePreciseFontMode, aN as nextFontSizePt, aO as previousFontSizePt, aP as fontSizePtToPx, aQ as createDefaultToolbarPreset, aR as MenuRegistry, aS as createToolbarRegistry, aT as Editor, aU as resolveCommandRef, aV as commandRefName, aW as InlineShell, aX as BalloonShell, aY as DocumentShell, aZ as createMemo, a_ as getCaretRectFromSnapshot, a$ as getParagraphRectFromSnapshot, b0 as createComponent, b1 as CaretOverlay, b2 as Show, b3 as createRenderEffect, b4 as style, b5 as setAttribute, b6 as setStyleProperty, b7 as memo, b8 as template, b9 as useI18n, ba as insert, bb as use, bc as addEventListener, bd as Dialog, be as delegateEvents, bf as className, bg as For, bh as UNDERLINE_STYLE_OPTIONS, bi as Tabs, bj as measureParagraphMinContentWidthPx, bk as getEditableBlocksForZone, bl as findParagraphLocation, bm as createSectionBoundaryParagraph, bn as normalizePageSettings, bo as DEFAULT_EDITOR_PAGE_SETTINGS, bp as markStart, bq as markEnd, br as getParagraphEntries, bs as getParagraphById, bt as PluginUiHost, bu as OasisEditorEditor, bv as perfTimer, bw as OasisBrandMark, bx as setPreciseFontPreference, by as setWelcomeSeen, bz as enablePreciseFontMode, bA as createOasisEditorClient, bB as createEditorZoom, bC as startLongTaskObserver, bD as installGlobalReport, bE as applyStoredPreciseFontPreference, bF as getWelcomeSeen, bG as isLocalFontAccessSupported, bH as EDITOR_SCROLL_PADDING_PX, bI as Toolbar, bJ as OasisEditorLoading, bK as I18nProvider, bL as createEditorLogger, bM as createTranslator, bN as getCachedCanvasImage, bO as registerDomStatsSurface } from "./index-BOYdiFMb.js";
5
5
  function getSelectedObjectRun(state, predicate) {
6
6
  const normalized = normalizeSelection(state);
7
7
  if (normalized.isCollapsed || normalized.startIndex !== normalized.endIndex || normalized.endParagraphOffset - normalized.startParagraphOffset !== 1) {
@@ -1,4 +1,4 @@
1
- import { EditorKeyboardDeps } from './useEditorKeyboard.js';
1
+ import { EditorKeyboardDeps } from './EditorKeyboardDeps.js';
2
2
 
3
3
  export interface EditorCommandExecutor {
4
4
  executeCommand: (commandName: string, payload?: unknown) => unknown;
@@ -0,0 +1,49 @@
1
+ import { EditorDocument, EditorPosition, EditorState } from '../../core/model.js';
2
+ import { BooleanStyleKey } from '../../ui/toolbarStyleState.js';
3
+ import { SelectedImageRun } from '../../core/commands/image.js';
4
+
5
+ /**
6
+ * The capability surface the keyboard controller and key bindings operate on.
7
+ * Extracted to its own leaf module so `EditorCommandRegistry` (which references
8
+ * it from key-binding signatures) and `useEditorKeyboard` (which implements the
9
+ * controller) can both depend on it without forming an import cycle.
10
+ */
11
+ export interface EditorKeyboardDeps {
12
+ state: () => EditorState;
13
+ isReadOnly: () => boolean;
14
+ clearPreferredColumn: () => void;
15
+ resetTransactionGrouping: () => void;
16
+ applyState: (state: EditorState) => void;
17
+ applyTransactionalState: (transform: (state: EditorState) => EditorState) => void;
18
+ applyTableAwareParagraphEdit: (state: EditorState, edit: (state: EditorState) => EditorState) => EditorState;
19
+ applySelectionAwareParagraphCommand: (command: (state: EditorState) => EditorState) => void;
20
+ focusInput: () => void;
21
+ commandsController: {
22
+ promptForImageAlt: () => void;
23
+ promptForLink: () => void;
24
+ applyBooleanStyleCommand: (style: BooleanStyleKey) => void;
25
+ applyParagraphListCommand: (style: "bullet" | "ordered") => void;
26
+ applyInsertFootnoteCommand: () => void;
27
+ handleListEnter: () => boolean;
28
+ handleListBoundaryBackspace: (event: KeyboardEvent & {
29
+ currentTarget: HTMLTextAreaElement;
30
+ }) => boolean;
31
+ handleListTab: (direction: "indent" | "outdent") => boolean;
32
+ };
33
+ selectedImageRun: () => SelectedImageRun | null;
34
+ setForcePlainTextPaste: (value: boolean) => void;
35
+ moveSelectionByWord: (direction: "left" | "right", extend: boolean) => boolean;
36
+ moveSelectionToDocumentBoundary: (boundary: "start" | "end", extend: boolean) => boolean;
37
+ moveSelectionToParagraphBoundary: (boundary: "start" | "end", extend: boolean) => boolean;
38
+ moveSelectedImageByParagraph: (direction: -1 | 1) => boolean;
39
+ performUndo: () => void;
40
+ performRedo: () => void;
41
+ moveVerticalSelection: (direction: -1 | 1, extend: boolean) => boolean;
42
+ moveVerticalByBlock: (direction: -1 | 1) => boolean;
43
+ resolveAdjacentTableCellPosition: (document: EditorDocument, paragraphId: string, delta: -1 | 1) => EditorPosition | null;
44
+ applySelectionPreservingStructure: (selection: EditorState["selection"]) => void;
45
+ toggleFindReplace: (open?: boolean) => void;
46
+ toggleReplace: (open?: boolean) => void;
47
+ executeCommand?: (commandName: string, payload?: unknown) => unknown;
48
+ canExecuteCommand?: (commandName: string, payload?: unknown) => boolean;
49
+ }
@@ -1,6 +1,6 @@
1
1
  import { EditorState } from '../../../core/model.js';
2
2
  import { EditorLogger } from '../../../utils/logger.js';
3
- import { ImportProgressPhase } from '../useEditorDocumentIO.js';
3
+ import { ImportProgressPhase } from './importProgress.js';
4
4
 
5
5
  export interface DocumentImporterDeps {
6
6
  applyState: (state: EditorState) => void;
@@ -0,0 +1,14 @@
1
+ import { ImportStage } from '../../../import/DocumentFormatImporter.js';
2
+
3
+ /**
4
+ * Import progress vocabulary shared by the document IO hook and the
5
+ * `DocumentImporter` it drives. Kept in its own leaf module so the importer can
6
+ * reference the phase type without importing the hook (which imports the
7
+ * importer), avoiding a cycle.
8
+ */
9
+ export type ImportProgressPhase = "reading-file" | ImportStage | "applying-editor-state" | "stabilizing-layout" | "done" | "error";
10
+ export interface ImportProgressState {
11
+ phase: ImportProgressPhase;
12
+ progress: number;
13
+ subProgress?: number;
14
+ }
@@ -1,13 +1,8 @@
1
1
  import { EditorState, EditorPosition } from '../../core/model.js';
2
- import { ImportStage } from '../../import/DocumentFormatImporter.js';
3
2
  import { EditorLogger } from '../../utils/logger.js';
3
+ import { ImportProgressState } from './documentIO/importProgress.js';
4
4
 
5
- export type ImportProgressPhase = "reading-file" | ImportStage | "applying-editor-state" | "stabilizing-layout" | "done" | "error";
6
- export interface ImportProgressState {
7
- phase: ImportProgressPhase;
8
- progress: number;
9
- subProgress?: number;
10
- }
5
+ export type { ImportProgressPhase, ImportProgressState, } from './documentIO/importProgress.js';
11
6
  export interface UseEditorDocumentIOProps {
12
7
  state: () => EditorState;
13
8
  applyState: (state: EditorState) => void;
@@ -1,47 +1,7 @@
1
- import { EditorDocument, EditorPosition, EditorState } from '../../core/model.js';
2
- import { BooleanStyleKey } from '../../ui/toolbarStyleState.js';
3
1
  import { EditorCommandRegistry } from './EditorCommandRegistry.js';
4
- import { SelectedImageRun } from '../../core/commands/image.js';
2
+ import { EditorKeyboardDeps } from './EditorKeyboardDeps.js';
5
3
 
6
- export interface EditorKeyboardDeps {
7
- state: () => EditorState;
8
- isReadOnly: () => boolean;
9
- clearPreferredColumn: () => void;
10
- resetTransactionGrouping: () => void;
11
- applyState: (state: EditorState) => void;
12
- applyTransactionalState: (transform: (state: EditorState) => EditorState) => void;
13
- applyTableAwareParagraphEdit: (state: EditorState, edit: (state: EditorState) => EditorState) => EditorState;
14
- applySelectionAwareParagraphCommand: (command: (state: EditorState) => EditorState) => void;
15
- focusInput: () => void;
16
- commandsController: {
17
- promptForImageAlt: () => void;
18
- promptForLink: () => void;
19
- applyBooleanStyleCommand: (style: BooleanStyleKey) => void;
20
- applyParagraphListCommand: (style: "bullet" | "ordered") => void;
21
- applyInsertFootnoteCommand: () => void;
22
- handleListEnter: () => boolean;
23
- handleListBoundaryBackspace: (event: KeyboardEvent & {
24
- currentTarget: HTMLTextAreaElement;
25
- }) => boolean;
26
- handleListTab: (direction: "indent" | "outdent") => boolean;
27
- };
28
- selectedImageRun: () => SelectedImageRun | null;
29
- setForcePlainTextPaste: (value: boolean) => void;
30
- moveSelectionByWord: (direction: "left" | "right", extend: boolean) => boolean;
31
- moveSelectionToDocumentBoundary: (boundary: "start" | "end", extend: boolean) => boolean;
32
- moveSelectionToParagraphBoundary: (boundary: "start" | "end", extend: boolean) => boolean;
33
- moveSelectedImageByParagraph: (direction: -1 | 1) => boolean;
34
- performUndo: () => void;
35
- performRedo: () => void;
36
- moveVerticalSelection: (direction: -1 | 1, extend: boolean) => boolean;
37
- moveVerticalByBlock: (direction: -1 | 1) => boolean;
38
- resolveAdjacentTableCellPosition: (document: EditorDocument, paragraphId: string, delta: -1 | 1) => EditorPosition | null;
39
- applySelectionPreservingStructure: (selection: EditorState["selection"]) => void;
40
- toggleFindReplace: (open?: boolean) => void;
41
- toggleReplace: (open?: boolean) => void;
42
- executeCommand?: (commandName: string, payload?: unknown) => unknown;
43
- canExecuteCommand?: (commandName: string, payload?: unknown) => boolean;
44
- }
4
+ export type { EditorKeyboardDeps } from './EditorKeyboardDeps.js';
45
5
  export declare function createEditorKeyboardController(deps: EditorKeyboardDeps): {
46
6
  handleKeyDown: (event: KeyboardEvent & {
47
7
  currentTarget: HTMLTextAreaElement;
@@ -2384,14 +2384,14 @@ function I18nProvider(props) {
2384
2384
  });
2385
2385
  }
2386
2386
  const oasisMarkBase64 = "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";
2387
- var _tmpl$$S = /* @__PURE__ */ template(`<img alt aria-hidden=true>`);
2387
+ var _tmpl$$R = /* @__PURE__ */ template(`<img alt aria-hidden=true>`);
2388
2388
  const OASIS_MARK_DATA_URI = `data:image/webp;base64,${oasisMarkBase64}`;
2389
2389
  const MARK_ASPECT = 3 / 4;
2390
2390
  function OasisBrandMark(props) {
2391
2391
  const height = () => props.height ?? 64;
2392
2392
  const width = () => Math.round(height() * MARK_ASPECT);
2393
2393
  return (() => {
2394
- var _el$ = _tmpl$$S();
2394
+ var _el$ = _tmpl$$R();
2395
2395
  setAttribute(_el$, "src", OASIS_MARK_DATA_URI);
2396
2396
  setAttribute(_el$, "draggable", false);
2397
2397
  createRenderEffect((_p$) => {
@@ -2408,7 +2408,7 @@ function OasisBrandMark(props) {
2408
2408
  return _el$;
2409
2409
  })();
2410
2410
  }
2411
- var _tmpl$$R = /* @__PURE__ */ template(`<div class=oasis-editor-import-progress-label>`), _tmpl$2$z = /* @__PURE__ */ template(`<div role=status aria-live=polite><div class=oasis-editor-import-card><div class=oasis-editor-import-title></div><div class=oasis-editor-import-progress-track><div>`), _tmpl$3$m = /* @__PURE__ */ template(`<span class=oasis-editor-import-done-icon>Done`);
2411
+ var _tmpl$$Q = /* @__PURE__ */ template(`<div class=oasis-editor-import-progress-label>`), _tmpl$2$z = /* @__PURE__ */ template(`<div role=status aria-live=polite><div class=oasis-editor-import-card><div class=oasis-editor-import-title></div><div class=oasis-editor-import-progress-track><div>`), _tmpl$3$n = /* @__PURE__ */ template(`<span class=oasis-editor-import-done-icon>Done`);
2412
2412
  function OasisEditorLoading(props) {
2413
2413
  const t = useI18n();
2414
2414
  const variant = () => props.variant ?? "overlay";
@@ -2429,10 +2429,10 @@ function OasisEditorLoading(props) {
2429
2429
  return pct() != null;
2430
2430
  },
2431
2431
  get children() {
2432
- var _el$6 = _tmpl$$R();
2432
+ var _el$6 = _tmpl$$Q();
2433
2433
  insert(_el$6, (() => {
2434
2434
  var _c$ = memo(() => !!isDone());
2435
- return () => _c$() ? _tmpl$3$m() : `${pct()}%`;
2435
+ return () => _c$() ? _tmpl$3$n() : `${pct()}%`;
2436
2436
  })());
2437
2437
  return _el$6;
2438
2438
  }
@@ -2483,7 +2483,7 @@ function OasisEditorAppLazy(props = {}) {
2483
2483
  onCleanup(() => {
2484
2484
  cancelled = true;
2485
2485
  });
2486
- import("./OasisEditorApp-D6NxTc6l.js").then((m) => {
2486
+ import("./OasisEditorApp-s0BpEyzt.js").then((m) => {
2487
2487
  cancelled = true;
2488
2488
  setProgress(1);
2489
2489
  setTimeout(() => setApp(() => m.OasisEditorApp), 180);
@@ -4663,8 +4663,8 @@ function mount(target, props = {}) {
4663
4663
  unmount: () => client.dispose()
4664
4664
  });
4665
4665
  }
4666
- var _tmpl$$Q = /* @__PURE__ */ template(`<svg xmlns=http://www.w3.org/2000/svg width=24 height=24 viewBox="0 0 24 24"fill=none aria-hidden=true><text x=2 y=18 font-family="'Segoe UI', Arial, sans-serif"font-size=14 font-weight=700 fill=currentColor>ab</text><text x=15.5 y=11 font-family="'Segoe UI', Arial, sans-serif"font-size=10 font-weight=700 fill=#c00000>1`), _tmpl$2$y = /* @__PURE__ */ template(`<svg xmlns=http://www.w3.org/2000/svg width=24 height=24 viewBox="0 0 24 24"aria-hidden=true><g fill=currentColor><path d="M3.375 4.875 L7.125 8.625 L3.375 12.375 L2.25 11.25 L4.875 8.625 L2.25 6 Z"></path><rect x=10.125 y=6 width=9 height=1.6875 rx=0.25></rect><rect x=5.625 y=10.875 width=13.5 height=1.6875 rx=0.25></rect><rect x=5.625 y=15.75 width=13.5 height=1.6875 rx=0.25>`), _tmpl$3$l = /* @__PURE__ */ template(`<i>`);
4667
- const FootnoteIcon = () => _tmpl$$Q();
4666
+ var _tmpl$$P = /* @__PURE__ */ template(`<svg xmlns=http://www.w3.org/2000/svg width=24 height=24 viewBox="0 0 24 24"fill=none aria-hidden=true><text x=2 y=18 font-family="'Segoe UI', Arial, sans-serif"font-size=14 font-weight=700 fill=currentColor>ab</text><text x=15.5 y=11 font-family="'Segoe UI', Arial, sans-serif"font-size=10 font-weight=700 fill=#c00000>1`), _tmpl$2$y = /* @__PURE__ */ template(`<svg xmlns=http://www.w3.org/2000/svg width=24 height=24 viewBox="0 0 24 24"aria-hidden=true><g fill=currentColor><path d="M3.375 4.875 L7.125 8.625 L3.375 12.375 L2.25 11.25 L4.875 8.625 L2.25 6 Z"></path><rect x=10.125 y=6 width=9 height=1.6875 rx=0.25></rect><rect x=5.625 y=10.875 width=13.5 height=1.6875 rx=0.25></rect><rect x=5.625 y=15.75 width=13.5 height=1.6875 rx=0.25>`), _tmpl$3$m = /* @__PURE__ */ template(`<i>`);
4667
+ const FootnoteIcon = () => _tmpl$$P();
4668
4668
  const SpecialIndentFirstLineIcon = () => _tmpl$2$y();
4669
4669
  const CUSTOM_ICONS = {
4670
4670
  footnote: FootnoteIcon,
@@ -4680,7 +4680,7 @@ function ToolIcon(props) {
4680
4680
  },
4681
4681
  get fallback() {
4682
4682
  return (() => {
4683
- var _el$3 = _tmpl$3$l();
4683
+ var _el$3 = _tmpl$3$m();
4684
4684
  createRenderEffect(() => setAttribute(_el$3, "data-lucide", props.name));
4685
4685
  return _el$3;
4686
4686
  })();
@@ -4688,7 +4688,7 @@ function ToolIcon(props) {
4688
4688
  children: (render2) => render2()()
4689
4689
  });
4690
4690
  }
4691
- var _tmpl$$P = /* @__PURE__ */ template(`<div class=oasis-menubar role=menubar>`), _tmpl$2$x = /* @__PURE__ */ template(`<div class=oasis-menubar-dropdown role=menu>`), _tmpl$3$k = /* @__PURE__ */ template(`<div class=oasis-menubar-menu><div class=oasis-menubar-button role=menuitem aria-haspopup=true>`), _tmpl$4$f = /* @__PURE__ */ template(`<div class=oasis-menubar-separator role=separator>`), _tmpl$5$e = /* @__PURE__ */ template(`<span class=oasis-menubar-item-icon aria-hidden=true>`), _tmpl$6$7 = /* @__PURE__ */ template(`<span class=oasis-menubar-shortcut>`), _tmpl$7$3 = /* @__PURE__ */ template(`<i class=oasis-menubar-submenu-icon data-lucide=chevron-right>`), _tmpl$8$2 = /* @__PURE__ */ template(`<div class=oasis-menubar-submenu role=menu>`), _tmpl$9$1 = /* @__PURE__ */ template(`<div class=oasis-menubar-item role=menuitem><span class=oasis-menubar-item-main><span>`);
4691
+ var _tmpl$$O = /* @__PURE__ */ template(`<div class=oasis-menubar role=menubar>`), _tmpl$2$x = /* @__PURE__ */ template(`<div class=oasis-menubar-dropdown role=menu>`), _tmpl$3$l = /* @__PURE__ */ template(`<div class=oasis-menubar-menu><div class=oasis-menubar-button role=menuitem aria-haspopup=true>`), _tmpl$4$f = /* @__PURE__ */ template(`<div class=oasis-menubar-separator role=separator>`), _tmpl$5$e = /* @__PURE__ */ template(`<span class=oasis-menubar-item-icon aria-hidden=true>`), _tmpl$6$7 = /* @__PURE__ */ template(`<span class=oasis-menubar-shortcut>`), _tmpl$7$3 = /* @__PURE__ */ template(`<i class=oasis-menubar-submenu-icon data-lucide=chevron-right>`), _tmpl$8$2 = /* @__PURE__ */ template(`<div class=oasis-menubar-submenu role=menu>`), _tmpl$9$1 = /* @__PURE__ */ template(`<div class=oasis-menubar-item role=menuitem><span class=oasis-menubar-item-main><span>`);
4692
4692
  function Menubar(props) {
4693
4693
  const t = useI18n();
4694
4694
  const [activeMenu, setActiveMenu] = createSignal(null);
@@ -4756,13 +4756,13 @@ function Menubar(props) {
4756
4756
  });
4757
4757
  const topLevelItems = () => pruneTree(menuTree());
4758
4758
  return (() => {
4759
- var _el$ = _tmpl$$P();
4759
+ var _el$ = _tmpl$$O();
4760
4760
  insert(_el$, createComponent(For, {
4761
4761
  get each() {
4762
4762
  return topLevelItems();
4763
4763
  },
4764
4764
  children: (topLevel) => (() => {
4765
- var _el$2 = _tmpl$3$k(), _el$3 = _el$2.firstChild;
4765
+ var _el$2 = _tmpl$3$l(), _el$3 = _el$2.firstChild;
4766
4766
  _el$2.addEventListener("mouseenter", () => {
4767
4767
  if (activeMenu() && activeMenu() !== topLevel.id) {
4768
4768
  setActiveMenu(topLevel.id);
@@ -4910,10 +4910,10 @@ function MenuNode(props) {
4910
4910
  })();
4911
4911
  }
4912
4912
  delegateEvents(["click"]);
4913
- var _tmpl$$O = /* @__PURE__ */ template(`<div class=oasis-titlebar><div class=oasis-titlebar-left><div class=oasis-titlebar-menubar-slot>`);
4913
+ var _tmpl$$N = /* @__PURE__ */ template(`<div class=oasis-titlebar><div class=oasis-titlebar-left><div class=oasis-titlebar-menubar-slot>`);
4914
4914
  function TitleBar(props) {
4915
4915
  return (() => {
4916
- var _el$ = _tmpl$$O(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild;
4916
+ var _el$ = _tmpl$$N(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild;
4917
4917
  insert(_el$3, () => props.children);
4918
4918
  return _el$;
4919
4919
  })();
@@ -18244,7 +18244,7 @@ function getCaretRectFromSnapshot(snapshot, position2, paragraphOffset) {
18244
18244
  );
18245
18245
  return rectFromBox(slot.left, slot.top, 1, slot.height || line.height);
18246
18246
  }
18247
- var _tmpl$$N = /* @__PURE__ */ template(`<span class=oasis-outline-title>`), _tmpl$2$w = /* @__PURE__ */ template(`<div class=oasis-outline-list>`), _tmpl$3$j = /* @__PURE__ */ template(`<div class=oasis-outline-panel><div class=oasis-outline-header><button class=oasis-outline-toggle><i>`), _tmpl$4$e = /* @__PURE__ */ template(`<div class=oasis-outline-empty>`), _tmpl$5$d = /* @__PURE__ */ template(`<div class=oasis-outline-item>`);
18247
+ var _tmpl$$M = /* @__PURE__ */ template(`<span class=oasis-outline-title>`), _tmpl$2$w = /* @__PURE__ */ template(`<div class=oasis-outline-list>`), _tmpl$3$k = /* @__PURE__ */ template(`<div class=oasis-outline-panel><div class=oasis-outline-header><button class=oasis-outline-toggle><i>`), _tmpl$4$e = /* @__PURE__ */ template(`<div class=oasis-outline-empty>`), _tmpl$5$d = /* @__PURE__ */ template(`<div class=oasis-outline-item>`);
18248
18248
  function OutlinePanel(props) {
18249
18249
  const t = useI18n();
18250
18250
  const [collapsed, setCollapsed] = createSignal(props.defaultCollapsed ?? false);
@@ -18313,13 +18313,13 @@ function OutlinePanel(props) {
18313
18313
  }
18314
18314
  });
18315
18315
  return (() => {
18316
- var _el$ = _tmpl$3$j(), _el$2 = _el$.firstChild, _el$4 = _el$2.firstChild, _el$5 = _el$4.firstChild;
18316
+ var _el$ = _tmpl$3$k(), _el$2 = _el$.firstChild, _el$4 = _el$2.firstChild, _el$5 = _el$4.firstChild;
18317
18317
  insert(_el$2, createComponent(Show, {
18318
18318
  get when() {
18319
18319
  return !collapsed();
18320
18320
  },
18321
18321
  get children() {
18322
- var _el$3 = _tmpl$$N();
18322
+ var _el$3 = _tmpl$$M();
18323
18323
  insert(_el$3, () => t("menu.view.outline") || "Outline");
18324
18324
  return _el$3;
18325
18325
  }
@@ -18387,7 +18387,7 @@ function OutlinePanel(props) {
18387
18387
  })();
18388
18388
  }
18389
18389
  delegateEvents(["click"]);
18390
- var _tmpl$$M = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-overflow-manager style="display:flex;align-items:center;flex:1 1 0%;min-width:0;position:relative;margin-right:8px"><button type=button class="oasis-editor-tool-button oasis-editor-tool-button-dropdown oasis-editor-toolbar-more-measure"aria-hidden=true tabindex=-1 style=position:absolute;visibility:hidden;pointer-events:none;right:0><i data-lucide=ellipsis></i></button><div style="display:flex;align-items:center;gap:8px;flex:1 1 0;min-width:0;overflow:hidden"></div><div style=flex-shrink:0;padding-left:8px;padding-right:16px;align-items:center><button type=button class="oasis-editor-tool-button oasis-editor-tool-button-dropdown"data-testid=editor-toolbar-overflow-dropdown><i data-lucide=ellipsis></i></button></div><div class="oasis-editor-toolbar-overflow-dropdown-menu oasis-editor-toolbar-overflow-menu"style="flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px;padding:8px;background:var(--oasis-paper);border:1px solid var(--oasis-toolbar-border);border-radius:var(--oasis-radius);box-shadow:0 4px 12px rgba(0, 0, 0, 0.15);max-width:calc(100vw - 16px);overflow-x:hidden;overflow-y:auto">`), _tmpl$2$v = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-item-wrapper style=display:flex;align-items:center;flex-shrink:0>`);
18390
+ var _tmpl$$L = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-overflow-manager style="display:flex;align-items:center;flex:1 1 0%;min-width:0;position:relative;margin-right:8px"><button type=button class="oasis-editor-tool-button oasis-editor-tool-button-dropdown oasis-editor-toolbar-more-measure"aria-hidden=true tabindex=-1 style=position:absolute;visibility:hidden;pointer-events:none;right:0><i data-lucide=ellipsis></i></button><div style="display:flex;align-items:center;gap:8px;flex:1 1 0;min-width:0;overflow:hidden"></div><div style=flex-shrink:0;padding-left:8px;padding-right:16px;align-items:center><button type=button class="oasis-editor-tool-button oasis-editor-tool-button-dropdown"data-testid=editor-toolbar-overflow-dropdown><i data-lucide=ellipsis></i></button></div><div class="oasis-editor-toolbar-overflow-dropdown-menu oasis-editor-toolbar-overflow-menu"style="flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px;padding:8px;background:var(--oasis-paper);border:1px solid var(--oasis-toolbar-border);border-radius:var(--oasis-radius);box-shadow:0 4px 12px rgba(0, 0, 0, 0.15);max-width:calc(100vw - 16px);overflow-x:hidden;overflow-y:auto">`), _tmpl$2$v = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-item-wrapper style=display:flex;align-items:center;flex-shrink:0>`);
18391
18391
  function ToolbarOverflowManager(props) {
18392
18392
  const t = useI18n();
18393
18393
  const [overflowCount, setOverflowCount] = createSignal(0);
@@ -18531,7 +18531,7 @@ function ToolbarOverflowManager(props) {
18531
18531
  };
18532
18532
  };
18533
18533
  return (() => {
18534
- var _el$ = _tmpl$$M(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.nextSibling, _el$5 = _el$4.firstChild, _el$6 = _el$4.nextSibling;
18534
+ var _el$ = _tmpl$$L(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.nextSibling, _el$5 = _el$4.firstChild, _el$6 = _el$4.nextSibling;
18535
18535
  var _ref$ = containerRef;
18536
18536
  typeof _ref$ === "function" ? use(_ref$, _el$) : containerRef = _el$;
18537
18537
  var _ref$2 = moreMeasureRef;
@@ -18619,7 +18619,7 @@ function resolveLabel(item, api) {
18619
18619
  if (item.labelKey) return api.t(item.labelKey);
18620
18620
  return void 0;
18621
18621
  }
18622
- var _tmpl$$L = /* @__PURE__ */ template(`<span>`), _tmpl$2$u = /* @__PURE__ */ template(`<button type=button>`);
18622
+ var _tmpl$$K = /* @__PURE__ */ template(`<span>`), _tmpl$2$u = /* @__PURE__ */ template(`<button type=button>`);
18623
18623
  function Button$1(props) {
18624
18624
  const [local, others] = splitProps(props, ["icon", "label", "active", "tooltip", "wide", "ribbonSize", "aria-label", "class", "classList"]);
18625
18625
  const ariaLabel = () => local["aria-label"] || local.tooltip || local.label || "";
@@ -18661,7 +18661,7 @@ function Button$1(props) {
18661
18661
  return local.label;
18662
18662
  },
18663
18663
  get children() {
18664
- var _el$2 = _tmpl$$L();
18664
+ var _el$2 = _tmpl$$K();
18665
18665
  insert(_el$2, () => local.label);
18666
18666
  return _el$2;
18667
18667
  }
@@ -18743,7 +18743,7 @@ function useDismiss(options) {
18743
18743
  });
18744
18744
  });
18745
18745
  }
18746
- var _tmpl$$K = /* @__PURE__ */ template(`<div>`);
18746
+ var _tmpl$$J = /* @__PURE__ */ template(`<div>`);
18747
18747
  function Popover(props) {
18748
18748
  let anchorRef;
18749
18749
  let panelRef;
@@ -18760,7 +18760,7 @@ function Popover(props) {
18760
18760
  closeOnEscape: props.closeOnEscape
18761
18761
  });
18762
18762
  const panel = (portalled) => (() => {
18763
- var _el$ = _tmpl$$K();
18763
+ var _el$ = _tmpl$$J();
18764
18764
  addEventListener(_el$, "mouseleave", props.onPanelMouseLeave);
18765
18765
  var _ref$ = panelRef;
18766
18766
  typeof _ref$ === "function" ? use(_ref$, _el$) : panelRef = _el$;
@@ -18812,7 +18812,7 @@ function Popover(props) {
18812
18812
  }
18813
18813
  })];
18814
18814
  }
18815
- var _tmpl$$J = /* @__PURE__ */ template(`<div>`), _tmpl$2$t = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-dropdown>`), _tmpl$3$i = /* @__PURE__ */ template(`<i>`), _tmpl$4$d = /* @__PURE__ */ template(`<span class=oasis-editor-tool-button-label>`), _tmpl$5$c = /* @__PURE__ */ template(`<i data-lucide=chevron-down class=oasis-editor-dropdown-chevron>`), _tmpl$6$6 = /* @__PURE__ */ template(`<button type=button class="oasis-editor-tool-button oasis-editor-tool-button-dropdown"aria-haspopup=menu>`);
18815
+ var _tmpl$$I = /* @__PURE__ */ template(`<div>`), _tmpl$2$t = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-dropdown>`), _tmpl$3$j = /* @__PURE__ */ template(`<i>`), _tmpl$4$d = /* @__PURE__ */ template(`<span class=oasis-editor-tool-button-label>`), _tmpl$5$c = /* @__PURE__ */ template(`<i data-lucide=chevron-down class=oasis-editor-dropdown-chevron>`), _tmpl$6$6 = /* @__PURE__ */ template(`<button type=button class="oasis-editor-tool-button oasis-editor-tool-button-dropdown"aria-haspopup=menu>`);
18816
18816
  function Menu(props) {
18817
18817
  const [open, setOpen] = createSignal(false);
18818
18818
  const ariaLabel = () => props.tooltip || props.label || "";
@@ -18840,7 +18840,7 @@ function Menu(props) {
18840
18840
  return props.icon;
18841
18841
  },
18842
18842
  get children() {
18843
- var _el$4 = _tmpl$3$i();
18843
+ var _el$4 = _tmpl$3$j();
18844
18844
  createRenderEffect(() => setAttribute(_el$4, "data-lucide", props.icon));
18845
18845
  return _el$4;
18846
18846
  }
@@ -18885,7 +18885,7 @@ function Menu(props) {
18885
18885
  return _el$3;
18886
18886
  })(),
18887
18887
  get children() {
18888
- var _el$2 = _tmpl$$J();
18888
+ var _el$2 = _tmpl$$I();
18889
18889
  _el$2.$$click = (event) => {
18890
18890
  const el = event.target;
18891
18891
  if (el.closest("button") && !el.closest(".oasis-editor-tool-button-dropdown") && !el.closest(".oasis-editor-toolbar-list-options")) {
@@ -18900,7 +18900,7 @@ function Menu(props) {
18900
18900
  })();
18901
18901
  }
18902
18902
  delegateEvents(["click"]);
18903
- var _tmpl$$I = /* @__PURE__ */ template(`<select>`);
18903
+ var _tmpl$$H = /* @__PURE__ */ template(`<select>`);
18904
18904
  function Select(props) {
18905
18905
  let selectRef;
18906
18906
  const [local, others] = splitProps(props, ["wide", "small", "class", "tooltip", "aria-label", "value"]);
@@ -18916,7 +18916,7 @@ function Select(props) {
18916
18916
  }
18917
18917
  });
18918
18918
  return (() => {
18919
- var _el$ = _tmpl$$I();
18919
+ var _el$ = _tmpl$$H();
18920
18920
  var _ref$ = selectRef;
18921
18921
  typeof _ref$ === "function" ? use(_ref$, _el$) : selectRef = _el$;
18922
18922
  spread(_el$, mergeProps({
@@ -18943,15 +18943,15 @@ function Select(props) {
18943
18943
  return _el$;
18944
18944
  })();
18945
18945
  }
18946
- var _tmpl$$H = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-separator>`);
18946
+ var _tmpl$$G = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-separator>`);
18947
18947
  function Separator(props) {
18948
18948
  return (() => {
18949
- var _el$ = _tmpl$$H();
18949
+ var _el$ = _tmpl$$G();
18950
18950
  createRenderEffect((_$p) => setStyleProperty(_el$, "display", props.hidden ? "none" : void 0));
18951
18951
  return _el$;
18952
18952
  })();
18953
18953
  }
18954
- var _tmpl$$G = /* @__PURE__ */ template(`<div><button type=button class=oasis-editor-color-split-main></button><button type=button class=oasis-editor-color-split-menu-button aria-haspopup=menu><i data-lucide=chevron-down>`);
18954
+ var _tmpl$$F = /* @__PURE__ */ template(`<div><button type=button class=oasis-editor-color-split-main></button><button type=button class=oasis-editor-color-split-menu-button aria-haspopup=menu><i data-lucide=chevron-down>`);
18955
18955
  function SplitButton(props) {
18956
18956
  return createComponent(Popover, {
18957
18957
  get open() {
@@ -18970,7 +18970,7 @@ function SplitButton(props) {
18970
18970
  return props.onPanelMouseLeave;
18971
18971
  },
18972
18972
  trigger: (api) => (() => {
18973
- var _el$ = _tmpl$$G(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
18973
+ var _el$ = _tmpl$$F(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
18974
18974
  use((el) => api.ref(el), _el$);
18975
18975
  _el$2.$$click = () => props.onMain();
18976
18976
  insert(_el$2, () => props.mainContent);
@@ -19008,7 +19008,7 @@ function SplitButton(props) {
19008
19008
  });
19009
19009
  }
19010
19010
  delegateEvents(["click"]);
19011
- var _tmpl$$F = /* @__PURE__ */ template(`<i data-lucide=type>`), _tmpl$2$s = /* @__PURE__ */ template(`<button type=button class=oasis-editor-color-menu-action role=menuitem><span class=oasis-editor-color-menu-action-swatch></span><span>`), _tmpl$3$h = /* @__PURE__ */ template(`<div class=oasis-editor-color-menu-section><div class=oasis-editor-color-menu-heading></div><div class=oasis-editor-color-theme-grid>`), _tmpl$4$c = /* @__PURE__ */ template(`<div class=oasis-editor-color-menu-section><div class=oasis-editor-color-menu-heading></div><div class=oasis-editor-color-standard-grid>`), _tmpl$5$b = /* @__PURE__ */ template(`<button type=button class=oasis-editor-color-menu-action role=menuitem><span class="oasis-editor-color-menu-action-swatch oasis-editor-color-menu-more-swatch"></span><span>`), _tmpl$6$5 = /* @__PURE__ */ template(`<input type=color class=oasis-editor-color-custom-input>`), _tmpl$7$2 = /* @__PURE__ */ template(`<span class=oasis-editor-color-split-icon><i></i><span class=oasis-editor-color-split-indicator>`), _tmpl$8$1 = /* @__PURE__ */ template(`<i data-lucide=slash>`), _tmpl$9 = /* @__PURE__ */ template(`<div class=oasis-editor-color-theme-column>`), _tmpl$0 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-color-swatch>`);
19011
+ var _tmpl$$E = /* @__PURE__ */ template(`<i data-lucide=type>`), _tmpl$2$s = /* @__PURE__ */ template(`<button type=button class=oasis-editor-color-menu-action role=menuitem><span class=oasis-editor-color-menu-action-swatch></span><span>`), _tmpl$3$i = /* @__PURE__ */ template(`<div class=oasis-editor-color-menu-section><div class=oasis-editor-color-menu-heading></div><div class=oasis-editor-color-theme-grid>`), _tmpl$4$c = /* @__PURE__ */ template(`<div class=oasis-editor-color-menu-section><div class=oasis-editor-color-menu-heading></div><div class=oasis-editor-color-standard-grid>`), _tmpl$5$b = /* @__PURE__ */ template(`<button type=button class=oasis-editor-color-menu-action role=menuitem><span class="oasis-editor-color-menu-action-swatch oasis-editor-color-menu-more-swatch"></span><span>`), _tmpl$6$5 = /* @__PURE__ */ template(`<input type=color class=oasis-editor-color-custom-input>`), _tmpl$7$2 = /* @__PURE__ */ template(`<span class=oasis-editor-color-split-icon><i></i><span class=oasis-editor-color-split-indicator>`), _tmpl$8$1 = /* @__PURE__ */ template(`<i data-lucide=slash>`), _tmpl$9 = /* @__PURE__ */ template(`<div class=oasis-editor-color-theme-column>`), _tmpl$0 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-color-swatch>`);
19012
19012
  const normalizeColor = (value) => (value == null ? void 0 : value.trim().toLowerCase()) ?? "";
19013
19013
  function ColorPicker(props) {
19014
19014
  const [isOpen, setIsOpen] = createSignal(false);
@@ -19083,7 +19083,7 @@ function ColorPicker(props) {
19083
19083
  return _tmpl$8$1();
19084
19084
  },
19085
19085
  get children() {
19086
- return _tmpl$$F();
19086
+ return _tmpl$$E();
19087
19087
  }
19088
19088
  }));
19089
19089
  insert(_el$4, clearLabel);
@@ -19091,7 +19091,7 @@ function ColorPicker(props) {
19091
19091
  return _el$;
19092
19092
  }
19093
19093
  }), (() => {
19094
- var _el$5 = _tmpl$3$h(), _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling;
19094
+ var _el$5 = _tmpl$3$i(), _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling;
19095
19095
  insert(_el$6, () => props.themeColorsLabel);
19096
19096
  insert(_el$7, createComponent(For, {
19097
19097
  get each() {
@@ -19196,7 +19196,7 @@ function ColorPicker(props) {
19196
19196
  });
19197
19197
  }
19198
19198
  delegateEvents(["click", "input"]);
19199
- var _tmpl$$E = /* @__PURE__ */ template(`<div class=oasis-editor-table-grid-picker-status>`), _tmpl$2$r = /* @__PURE__ */ template(`<div class=oasis-editor-table-grid-picker-grid>`), _tmpl$3$g = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-dropdown>`), _tmpl$4$b = /* @__PURE__ */ template(`<button type=button class=oasis-editor-tool-button><i>`), _tmpl$5$a = /* @__PURE__ */ template(`<button type=button class=oasis-editor-table-grid-picker-cell>`);
19199
+ var _tmpl$$D = /* @__PURE__ */ template(`<div class=oasis-editor-table-grid-picker-status>`), _tmpl$2$r = /* @__PURE__ */ template(`<div class=oasis-editor-table-grid-picker-grid>`), _tmpl$3$h = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-dropdown>`), _tmpl$4$b = /* @__PURE__ */ template(`<button type=button class=oasis-editor-tool-button><i>`), _tmpl$5$a = /* @__PURE__ */ template(`<button type=button class=oasis-editor-table-grid-picker-cell>`);
19200
19200
  function GridPicker(props) {
19201
19201
  const t = useI18n();
19202
19202
  const [isOpen, setIsOpen] = createSignal(false);
@@ -19271,7 +19271,7 @@ function GridPicker(props) {
19271
19271
  return h.row === 0 || h.col === 0 ? t("toolbar.table") : `${h.row} × ${h.col}`;
19272
19272
  };
19273
19273
  return (() => {
19274
- var _el$ = _tmpl$3$g();
19274
+ var _el$ = _tmpl$3$h();
19275
19275
  insert(_el$, createComponent(Popover, {
19276
19276
  get open() {
19277
19277
  return isOpen();
@@ -19305,7 +19305,7 @@ function GridPicker(props) {
19305
19305
  })(),
19306
19306
  get children() {
19307
19307
  return [(() => {
19308
- var _el$2 = _tmpl$$E();
19308
+ var _el$2 = _tmpl$$D();
19309
19309
  insert(_el$2, statusLabel);
19310
19310
  return _el$2;
19311
19311
  })(), (() => {
@@ -19409,7 +19409,7 @@ const DEFAULT_PALETTE = {
19409
19409
  standardColors: STANDARD_COLORS,
19410
19410
  allowCustom: true
19411
19411
  };
19412
- var _tmpl$$D = /* @__PURE__ */ template(`<option value>`), _tmpl$2$q = /* @__PURE__ */ template(`<option>`);
19412
+ var _tmpl$$C = /* @__PURE__ */ template(`<option value>`), _tmpl$2$q = /* @__PURE__ */ template(`<option>`), _tmpl$3$g = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-item style=align-items:center>`);
19413
19413
  function renderMenuContent(content, api) {
19414
19414
  if (content.kind === "custom") {
19415
19415
  return content.render(api);
@@ -19591,7 +19591,7 @@ function RenderSelect(props) {
19591
19591
  return props.item.placeholder !== void 0;
19592
19592
  },
19593
19593
  get children() {
19594
- var _el$ = _tmpl$$D();
19594
+ var _el$ = _tmpl$$C();
19595
19595
  insert(_el$, () => props.item.placeholder);
19596
19596
  return _el$;
19597
19597
  }
@@ -19723,13 +19723,12 @@ function registerToolbarRenderer(type, component) {
19723
19723
  function resolveRenderer(type) {
19724
19724
  return TOOLBAR_RENDERERS[type] ?? customRenderers.get(type);
19725
19725
  }
19726
- var _tmpl$$C = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-item style=align-items:center>`);
19727
19726
  function ToolbarItemRenderer(props) {
19728
19727
  const binding = bindItem(props.item, props.api);
19729
19728
  const component = () => resolveRenderer(props.item.type);
19730
19729
  return (() => {
19731
- var _el$ = _tmpl$$C();
19732
- insert(_el$, createComponent(Show, {
19730
+ var _el$3 = _tmpl$3$g();
19731
+ insert(_el$3, createComponent(Show, {
19733
19732
  get when() {
19734
19733
  return component();
19735
19734
  },
@@ -19747,14 +19746,14 @@ function ToolbarItemRenderer(props) {
19747
19746
  }));
19748
19747
  createRenderEffect((_p$) => {
19749
19748
  var _v$ = !!("ribbonSize" in props.item && props.item.ribbonSize === "large"), _v$2 = binding.visible() ? "flex" : "none";
19750
- _v$ !== _p$.e && _el$.classList.toggle("oasis-editor-toolbar-item-ribbon-large", _p$.e = _v$);
19751
- _v$2 !== _p$.t && setStyleProperty(_el$, "display", _p$.t = _v$2);
19749
+ _v$ !== _p$.e && _el$3.classList.toggle("oasis-editor-toolbar-item-ribbon-large", _p$.e = _v$);
19750
+ _v$2 !== _p$.t && setStyleProperty(_el$3, "display", _p$.t = _v$2);
19752
19751
  return _p$;
19753
19752
  }, {
19754
19753
  e: void 0,
19755
19754
  t: void 0
19756
19755
  });
19757
- return _el$;
19756
+ return _el$3;
19758
19757
  })();
19759
19758
  }
19760
19759
  function createToolbarApi(host, t) {
@@ -1,4 +1,4 @@
1
- import { aX, bP, bQ, bR, bS, bT, bd, bU, aY, aT, bV, bW, bX, aW, bY, aR, bZ, b_, b$, c0, c1, bJ, c2, c3, c4, c5, c6, c7, c8, c9, ca, cb, cc, bi, cd, bI, ce, bR as bR2, bW as bW2, bY as bY2, c5 as c52, c7 as c72, cc as cc2, cf, aV, aQ, cg, ch, ci, aS, cj, ck, aU } from "./index-CDi9hs5T.js";
1
+ import { aX, bP, bQ, bR, bS, bT, bd, bU, aY, aT, bV, bW, bX, aW, bY, aR, bZ, b_, b$, c0, c1, bJ, c2, c3, c4, c5, c6, c7, c8, c9, ca, cb, cc, bi, cd, bI, ce, bR as bR2, bW as bW2, bY as bY2, c5 as c52, c7 as c72, cc as cc2, cf, aV, aQ, cg, ch, ci, aS, cj, ck, aU } from "./index-BOYdiFMb.js";
2
2
  export {
3
3
  aX as BalloonShell,
4
4
  bP as Button,