@superdoc-dev/mcp 0.12.0-next.13 → 0.12.0-next.14

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.
Files changed (2) hide show
  1. package/dist/index.js +1197 -365
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -158292,7 +158292,7 @@ var init_SuperConverter_d9QeIy9_es = __esm(() => {
158292
158292
  };
158293
158293
  });
158294
158294
 
158295
- // ../../packages/superdoc/dist/chunks/create-headless-toolbar-l5QB6sQY.es.js
158295
+ // ../../packages/superdoc/dist/chunks/create-headless-toolbar-CJpgldP1.es.js
158296
158296
  function parseSizeUnit(val = "0") {
158297
158297
  const length = val.toString() || "0";
158298
158298
  const value = Number.parseFloat(length);
@@ -158302,6 +158302,43 @@ function parseSizeUnit(val = "0") {
158302
158302
  function getPreservedSelection(state) {
158303
158303
  return CustomSelectionPluginKey.getState(state)?.preservedSelection ?? null;
158304
158304
  }
158305
+ function getSelectedTextRange(state) {
158306
+ const { selection } = state;
158307
+ let from2 = null;
158308
+ let to = null;
158309
+ state.doc.nodesBetween(selection.from, selection.to, (node2, pos) => {
158310
+ if (!node2.isText || !node2.text)
158311
+ return;
158312
+ const start = pos;
158313
+ const end = pos + node2.nodeSize;
158314
+ from2 = from2 == null ? start : Math.min(from2, start);
158315
+ to = to == null ? end : Math.max(to, end);
158316
+ });
158317
+ return from2 == null || to == null ? null : {
158318
+ from: from2,
158319
+ to
158320
+ };
158321
+ }
158322
+ function prepareSelectionForTextInputHandoff(editor) {
158323
+ const state = editor?.view?.state ?? editor?.state;
158324
+ const dispatch = typeof editor?.view?.dispatch === "function" ? editor.view.dispatch.bind(editor.view) : typeof editor?.dispatch === "function" ? editor.dispatch.bind(editor) : null;
158325
+ if (!state || !dispatch)
158326
+ return false;
158327
+ let tr = state.tr.setMeta(CustomSelectionPluginKey, DEFAULT_CUSTOM_SELECTION_STATE);
158328
+ if (state.selection instanceof AllSelection) {
158329
+ const range = getSelectedTextRange(state);
158330
+ if (range)
158331
+ try {
158332
+ tr = tr.setSelection(TextSelection.create(tr.doc, range.from, range.to));
158333
+ } catch {}
158334
+ }
158335
+ dispatch(tr);
158336
+ editor?.setOptions?.({
158337
+ preservedSelection: null,
158338
+ lastSelection: null
158339
+ });
158340
+ return true;
158341
+ }
158305
158342
  function createSelectionTrackingBookmark(selection) {
158306
158343
  if (selection instanceof TextSelection && !selection.empty)
158307
158344
  return new InclusiveTextSelectionBookmark(selection.anchor, selection.head);
@@ -165895,7 +165932,7 @@ var CSS_DIMENSION_REGEX, DOM_SIZE_UNITS, normalizeActorId = (value) => {
165895
165932
  static create(config3) {
165896
165933
  return new Extension2(config3);
165897
165934
  }
165898
- }, CustomSelectionPluginKey, InclusiveTextSelectionBookmark = class InclusiveTextSelectionBookmark2 {
165935
+ }, CustomSelectionPluginKey, DEFAULT_CUSTOM_SELECTION_STATE, InclusiveTextSelectionBookmark = class InclusiveTextSelectionBookmark2 {
165899
165936
  constructor(anchor, head) {
165900
165937
  this.anchor = anchor;
165901
165938
  this.head = head;
@@ -168650,7 +168687,7 @@ var CSS_DIMENSION_REGEX, DOM_SIZE_UNITS, normalizeActorId = (value) => {
168650
168687
  }
168651
168688
  };
168652
168689
  };
168653
- var init_create_headless_toolbar_l5QB6sQY_es = __esm(() => {
168690
+ var init_create_headless_toolbar_CJpgldP1_es = __esm(() => {
168654
168691
  init_SuperConverter_d9QeIy9_es();
168655
168692
  init_uuid_B2wVPhPi_es();
168656
168693
  init_constants_D9qj59G2_es();
@@ -168672,6 +168709,12 @@ var init_create_headless_toolbar_l5QB6sQY_es = __esm(() => {
168672
168709
  "vmax"
168673
168710
  ];
168674
168711
  CustomSelectionPluginKey = new PluginKey("CustomSelection");
168712
+ DEFAULT_CUSTOM_SELECTION_STATE = Object.freeze({
168713
+ focused: false,
168714
+ preservedSelection: null,
168715
+ showVisualSelection: false,
168716
+ skipFocusReset: false
168717
+ });
168675
168718
  SelectionHandlePluginKey = new PluginKey("selectionHandle");
168676
168719
  MIME_TYPE_TO_EXTENSION2 = {
168677
168720
  "image/svg+xml": "svg",
@@ -223335,7 +223378,7 @@ var init_remark_gfm_eZN6yzWQ_es = __esm(() => {
223335
223378
  init_remark_gfm_BhnWr3yf_es();
223336
223379
  });
223337
223380
 
223338
- // ../../packages/superdoc/dist/chunks/src-LeQVnrcZ.es.js
223381
+ // ../../packages/superdoc/dist/chunks/src-BVjcuFXj.es.js
223339
223382
  function deleteProps(obj, propOrProps) {
223340
223383
  const props = typeof propOrProps === "string" ? [propOrProps] : propOrProps;
223341
223384
  const removeNested = (target, pathParts, index2 = 0) => {
@@ -223437,6 +223480,15 @@ function mapPreservedSelection(selection, tr) {
223437
223480
  return null;
223438
223481
  }
223439
223482
  }
223483
+ function shouldClearPreservedSelectionOnSelectionMove(tr, nextState) {
223484
+ if (!nextState?.preservedSelection)
223485
+ return false;
223486
+ if (tr.docChanged || !tr.selectionSet)
223487
+ return false;
223488
+ if (getFocusMeta(tr) !== undefined)
223489
+ return false;
223490
+ return true;
223491
+ }
223440
223492
  function applySelectionCleanup(editor, tr) {
223441
223493
  let cleaned = tr.setMeta(CustomSelectionPluginKey, DEFAULT_SELECTION_STATE);
223442
223494
  const sel = cleaned.selection;
@@ -224517,13 +224569,13 @@ function normalizeYjsFragmentForSchema(fragment) {
224517
224569
  if (!isTraversableYjsXml(fragment))
224518
224570
  return false;
224519
224571
  let changed = false;
224520
- const normalize4 = () => {
224572
+ const normalize$1 = () => {
224521
224573
  changed = stripSchemaAtomChildren(fragment) || changed;
224522
224574
  };
224523
224575
  if (fragment.doc)
224524
- fragment.doc.transact(normalize4, NORMALIZE_YJS_FRAGMENT_ORIGIN);
224576
+ fragment.doc.transact(normalize$1, NORMALIZE_YJS_FRAGMENT_ORIGIN);
224525
224577
  else
224526
- normalize4();
224578
+ normalize$1();
224527
224579
  return changed;
224528
224580
  }
224529
224581
  function normalizeYjsFragmentEventsForSchema(events, fallbackFragment) {
@@ -224532,7 +224584,7 @@ function normalizeYjsFragmentEventsForSchema(events, fallbackFragment) {
224532
224584
  if (events.some((event) => event?.transaction?.origin === NORMALIZE_YJS_FRAGMENT_ORIGIN))
224533
224585
  return false;
224534
224586
  let changed = false;
224535
- const normalize4 = () => {
224587
+ const normalize$1 = () => {
224536
224588
  const visited = /* @__PURE__ */ new Set;
224537
224589
  for (const event of events) {
224538
224590
  const target = findNormalizableEventTarget(event?.target);
@@ -224544,9 +224596,9 @@ function normalizeYjsFragmentEventsForSchema(events, fallbackFragment) {
224544
224596
  };
224545
224597
  const doc$12 = fallbackFragment?.doc || findEventDoc(events);
224546
224598
  if (doc$12)
224547
- doc$12.transact(normalize4, NORMALIZE_YJS_FRAGMENT_ORIGIN);
224599
+ doc$12.transact(normalize$1, NORMALIZE_YJS_FRAGMENT_ORIGIN);
224548
224600
  else
224549
- normalize4();
224601
+ normalize$1();
224550
224602
  return changed;
224551
224603
  }
224552
224604
  function stripSchemaAtomChildren(parent) {
@@ -228673,11 +228725,7 @@ function parseCellVerticalAlignFromStyle(element3) {
228673
228725
  }
228674
228726
  function findRemovedFieldAnnotations(tr) {
228675
228727
  let removedNodes = [];
228676
- if (!tr.steps.length || tr.meta && !Object.keys(tr.meta).every((meta4) => [
228677
- "inputType",
228678
- "uiEvent",
228679
- "paste"
228680
- ].includes(meta4)) || ["historyUndo", "historyRedo"].includes(tr.getMeta("inputType")) || ["drop"].includes(tr.getMeta("uiEvent")) || tr.getMeta("fieldAnnotationUpdate") === true || tr.getMeta("tableGeneration") === true)
228728
+ if (!tr.steps.length || tr.meta && !Object.keys(tr.meta).every((meta4) => ALLOWED_META_KEYS$1.includes(meta4)) || ["historyUndo", "historyRedo"].includes(tr.getMeta("inputType")) || ["drop"].includes(tr.getMeta("uiEvent")) || tr.getMeta("fieldAnnotationUpdate") === true || tr.getMeta("tableGeneration") === true)
228681
228729
  return removedNodes;
228682
228730
  if (!transactionDeletedAnything(tr))
228683
228731
  return removedNodes;
@@ -285026,12 +285074,12 @@ var Node$13 = class Node$14 {
285026
285074
  }, registerYjsFragmentNormalizer = (fragment) => {
285027
285075
  if (!fragment || typeof fragment.observeDeep !== "function" || typeof fragment.unobserveDeep !== "function")
285028
285076
  return () => {};
285029
- const normalize4 = (events) => {
285077
+ const normalize$1 = (events) => {
285030
285078
  normalizeYjsFragmentEventsForSchema(events, fragment);
285031
285079
  };
285032
- fragment.observeDeep(normalize4);
285080
+ fragment.observeDeep(normalize$1);
285033
285081
  return () => {
285034
- fragment.unobserveDeep(normalize4);
285082
+ fragment.unobserveDeep(normalize$1);
285035
285083
  };
285036
285084
  }, initializeMetaMap = (ydoc, editor) => {
285037
285085
  seedPartsFromEditor(editor, ydoc);
@@ -290091,7 +290139,7 @@ var Node$13 = class Node$14 {
290091
290139
  return true;
290092
290140
  });
290093
290141
  }
290094
- }, FieldAnnotationPlugin = (options = {}) => {
290142
+ }, ALLOWED_META_KEYS$1, FieldAnnotationPlugin = (options = {}) => {
290095
290143
  let { editor, annotationClass: annotationClass$1 } = options;
290096
290144
  return new Plugin({
290097
290145
  key: new PluginKey("fieldAnnotation"),
@@ -292630,7 +292678,7 @@ var Node$13 = class Node$14 {
292630
292678
  }, getTypeName = (markLike) => {
292631
292679
  return markLike?.type?.name ?? markLike?.type;
292632
292680
  }, isTrackFormatNoOp = (before, after) => {
292633
- const normalize4 = (entries) => entries.map((s2) => ({
292681
+ const normalize$1 = (entries) => entries.map((s2) => ({
292634
292682
  type: getTypeName(s2),
292635
292683
  attrs: normalizeSnapshotAttrs(s2.attrs || {})
292636
292684
  })).filter((s2) => {
@@ -292638,8 +292686,8 @@ var Node$13 = class Node$14 {
292638
292686
  return false;
292639
292687
  return true;
292640
292688
  });
292641
- const normBefore = normalize4(before);
292642
- const normAfter = normalize4(after);
292689
+ const normBefore = normalize$1(before);
292690
+ const normAfter = normalize$1(after);
292643
292691
  if (normBefore.length === 0 && normAfter.length === 0)
292644
292692
  return true;
292645
292693
  if (normBefore.length !== normAfter.length)
@@ -296565,7 +296613,7 @@ var Node$13 = class Node$14 {
296565
296613
  if (!target || !target.classList)
296566
296614
  return;
296567
296615
  target.classList.add(STYLE_ISOLATION_CLASS);
296568
- }, _hoisted_1$22, _hoisted_2$17, _hoisted_3$13, _hoisted_4$9, _hoisted_5$7, Mentions_default, popoverPluginKey, PopoverPlugin, Popover = class {
296616
+ }, _hoisted_1$23, _hoisted_2$18, _hoisted_3$14, _hoisted_4$10, _hoisted_5$9, Mentions_default, popoverPluginKey, PopoverPlugin, Popover = class {
296569
296617
  constructor(view, editor) {
296570
296618
  this.editor = editor;
296571
296619
  this.view = view;
@@ -298306,7 +298354,7 @@ var Node$13 = class Node$14 {
298306
298354
  </linearGradient>
298307
298355
  </defs>
298308
298356
  <path fill="url(#gradient)" d="M440 6.5L24 246.4c-34.4 19.9-31.1 70.8 5.7 85.9L144 379.6V464c0 46.4 59.2 65.5 86.6 28.6l43.8-59.1 111.9 46.2c5.9 2.4 12.1 3.6 18.3 3.6 8.2 0 16.3-2.1 23.6-6.2 12.8-7.2 21.6-20 23.9-34.5l59.4-387.2c6.1-40.1-36.9-68.8-71.5-48.9zM192 464v-64.6l36.6 15.1L192 464zm212.6-28.7l-153.8-63.5L391 169.5c10.7-15.5-9.5-33.5-23.7-21.2L155.8 332.6 48 288 464 48l-59.4 387.3z"/>
298309
- </svg>`, _hoisted_1$21, _hoisted_2$16, _hoisted_3$12, _hoisted_4$8, _hoisted_5$6, AIWriter_default, isHighContrastMode, bold_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M0 64C0 46.3 14.3 32 32 32l48 0 16 0 128 0c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128L96 480l-16 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-160L48 96 32 96C14.3 96 0 81.7 0 64zM224 224c35.3 0 64-28.7 64-64s-28.7-64-64-64L112 96l0 128 112 0zM112 288l0 128 144 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-32 0-112 0z"/></svg>', italic_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M128 64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-58.7 0L160 416l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l58.7 0L224 96l-64 0c-17.7 0-32-14.3-32-32z"/></svg>', underline_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M16 64c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 128c0 53 43 96 96 96s96-43 96-96l0-128-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 128c0 88.4-71.6 160-160 160s-160-71.6-160-160L64 96 48 96C30.3 96 16 81.7 16 64zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32z"/></svg>', list_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M40 48C26.7 48 16 58.7 16 72l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24L40 48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM16 232l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0z"/></svg>', list_circle_solid_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc. (bullet shapes modified)--><path fill-rule="evenodd" d="M192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM64 48 A48 48 0 1 0 64 144 A48 48 0 1 0 64 48 Z M64 68 A28 28 0 1 1 64 124 A28 28 0 1 1 64 68 Z M64 208 A48 48 0 1 0 64 304 A48 48 0 1 0 64 208 Z M64 228 A28 28 0 1 1 64 284 A28 28 0 1 1 64 228 Z M64 368 A48 48 0 1 0 64 464 A48 48 0 1 0 64 368 Z M64 388 A28 28 0 1 1 64 444 A28 28 0 1 1 64 388 Z"/></svg>
298357
+ </svg>`, _hoisted_1$22, _hoisted_2$17, _hoisted_3$13, _hoisted_4$9, _hoisted_5$8, AIWriter_default, isHighContrastMode, bold_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M0 64C0 46.3 14.3 32 32 32l48 0 16 0 128 0c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128L96 480l-16 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-160L48 96 32 96C14.3 96 0 81.7 0 64zM224 224c35.3 0 64-28.7 64-64s-28.7-64-64-64L112 96l0 128 112 0zM112 288l0 128 144 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-32 0-112 0z"/></svg>', italic_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M128 64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-58.7 0L160 416l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l58.7 0L224 96l-64 0c-17.7 0-32-14.3-32-32z"/></svg>', underline_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M16 64c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 128c0 53 43 96 96 96s96-43 96-96l0-128-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 128c0 88.4-71.6 160-160 160s-160-71.6-160-160L64 96 48 96C30.3 96 16 81.7 16 64zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32z"/></svg>', list_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M40 48C26.7 48 16 58.7 16 72l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24L40 48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM16 232l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0z"/></svg>', list_circle_solid_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc. (bullet shapes modified)--><path fill-rule="evenodd" d="M192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM64 48 A48 48 0 1 0 64 144 A48 48 0 1 0 64 48 Z M64 68 A28 28 0 1 1 64 124 A28 28 0 1 1 64 68 Z M64 208 A48 48 0 1 0 64 304 A48 48 0 1 0 64 208 Z M64 228 A28 28 0 1 1 64 284 A28 28 0 1 1 64 228 Z M64 368 A48 48 0 1 0 64 464 A48 48 0 1 0 64 368 Z M64 388 A28 28 0 1 1 64 444 A28 28 0 1 1 64 388 Z"/></svg>
298310
298358
  `, list_square_solid_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc. (bullet shapes modified)--><path d="M192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM16 48 L112 48 L112 144 L16 144 Z M16 208 L112 208 L112 304 L16 304 Z M16 368 L112 368 L112 464 L16 464 Z"/></svg>
298311
298359
  `, list_ol_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M24 56c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24l0 120 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-96-8 0C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432l33.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-88 0c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"/></svg>', list_decimal_solid_default = `<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
298312
298360
  <g clip-path="url(#clip0_0_1)">
@@ -298373,8 +298421,8 @@ var Node$13 = class Node$14 {
298373
298421
  `, image_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM323.8 202.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6L170.7 297c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6l96 0 32 0 208 0c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7l-120-176zM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"/></svg>', link_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"/></svg>', align_left_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M288 64c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32L32 352c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z"/></svg>', align_center_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M352 64c0-17.7-14.3-32-32-32L128 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32zm96 128c0-17.7-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 448c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32zM352 320c0-17.7-14.3-32-32-32l-192 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32z"/></svg>', align_right_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M448 64c0 17.7-14.3 32-32 32L192 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z"/></svg>', align_justify_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M448 64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32zm0 256c0-17.7-14.3-32-32-32L32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 192c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32zM448 448c0-17.7-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32z"/></svg>', indent_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M0 64C0 46.3 14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32zM127.8 268.6L25.8 347.9C15.3 356.1 0 348.6 0 335.3L0 176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z"/></svg>', outdent_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M0 64C0 46.3 14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32zM.2 268.6c-8.2-6.4-8.2-18.9 0-25.3l101.9-79.3c10.5-8.2 25.8-.7 25.8 12.6l0 158.6c0 13.3-15.3 20.8-25.8 12.6L.2 268.6z"/></svg>', paint_roller_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M0 64C0 28.7 28.7 0 64 0L352 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64L64 192c-35.3 0-64-28.7-64-64L0 64zM160 352c0-17.7 14.3-32 32-32l0-16c0-44.2 35.8-80 80-80l144 0c17.7 0 32-14.3 32-32l0-32 0-90.5c37.3 13.2 64 48.7 64 90.5l0 32c0 53-43 96-96 96l-144 0c-8.8 0-16 7.2-16 16l0 16c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-128z"/></svg>', text_slash_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L355.7 253.5 400.2 96 503 96 497 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l11-44.1C577.6 61.3 554.7 32 523.5 32L376.1 32l-.3 0L204.5 32c-22 0-41.2 15-46.6 36.4l-6.3 25.2L38.8 5.1zm168 131.7c.1-.3 .2-.7 .3-1L217 96l116.7 0L301.3 210.8l-94.5-74.1zM243.3 416L192 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-42.2 0 17.6-62.1L272.9 311 243.3 416z"/></svg>', rotate_left_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M48.5 224L40 224c-13.3 0-24-10.7-24-24L16 72c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2L98.6 96.6c87.6-86.5 228.7-86.2 315.8 1c87.5 87.5 87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3c-62.2-62.2-162.7-62.5-225.3-1L185 183c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8L48.5 224z"/></svg>', rotate_right_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M463.5 224l8.5 0c13.3 0 24-10.7 24-24l0-128c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8l119.5 0z"/></svg>', calendar_check_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zM329 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-95 95-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L329 305z"/></svg>', calendar_xmark_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zM305 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47z"/></svg>', list_check_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M152.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 113C-2.3 103.6-2.3 88.4 7 79s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM224 96c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zM160 416c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32zM48 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"/></svg>', user_edit_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l293.1 0c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7l40.3-40.3c-32.1-31-75.7-50.1-123.9-50.1l-91.4 0zm435.5-68.3c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM375.9 417c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L576.1 358.7l-71-71L375.9 417z"/></svg>', eye_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z"/></svg>', file_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 288c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128z"/></svg>', font_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M254 52.8C249.3 40.3 237.3 32 224 32s-25.3 8.3-30 20.8L57.8 416 32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-1.8 0 18-48 159.6 0 18 48-1.8 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-25.8 0L254 52.8zM279.8 304l-111.6 0L224 155.1 279.8 304z"/></svg>', file_half_dashed_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M64 0C28.7 0 0 28.7 0 64L0 320l384 0 0-160-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM0 416l64 0 0-64L0 352l0 64zm288 32l-80 0 0 64 80 0 0-64zm-112 0l-80 0 0 64 80 0 0-64zM64 448L0 448c0 35.3 28.7 64 64 64l0-64zm256 0l0 64c35.3 0 64-28.7 64-64l-64 0zm64-32l0-64-64 0 0 64 64 0z"/></svg>', comment_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M512 240c0 114.9-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6C73.6 471.1 44.7 480 16 480c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.3-.3c.3-.3 .7-.7 1.3-1.4c1.1-1.2 2.8-3.1 4.9-5.7c4.1-5 9.6-12.4 15.2-21.6c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208z"/></svg>', circle_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512z"/></svg>', check_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"/></svg>', xmark_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z"/></svg>', up_right_from_square_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M352 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9L370.7 96 201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 141.3l41.4 41.4c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-128c0-17.7-14.3-32-32-32L352 0zM80 32C35.8 32 0 67.8 0 112L0 432c0 44.2 35.8 80 80 80l320 0c44.2 0 80-35.8 80-80l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16l0-320c0-8.8 7.2-16 16-16l112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32z"/></svg>', ellipsis_vertical_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M64 360a56 56 0 1 0 0 112 56 56 0 1 0 0-112zm0-160a56 56 0 1 0 0 112 56 56 0 1 0 0-112zM120 96A56 56 0 1 0 8 96a56 56 0 1 0 112 0z"/></svg>', caret_up_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M182.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l256 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z"/></svg>', caret_down_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"/></svg>', ruler_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M177.9 494.1c-18.7 18.7-49.1 18.7-67.9 0L17.9 401.9c-18.7-18.7-18.7-49.1 0-67.9l50.7-50.7 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 50.7-50.7c18.7-18.7 49.1-18.7 67.9 0l92.1 92.1c18.7 18.7 18.7 49.1 0 67.9L177.9 494.1z"/></svg>', paintbrush_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M339.3 367.1c27.3-3.9 51.9-19.4 67.2-42.9L568.2 74.1c12.6-19.5 9.4-45.3-7.6-61.2S517.7-4.4 499.1 9.6L262.4 187.2c-24 18-38.2 46.1-38.4 76.1L339.3 367.1zm-19.6 25.4l-116-104.4C143.9 290.3 96 339.6 96 400c0 3.9 .2 7.8 .6 11.6C98.4 429.1 86.4 448 68.8 448L64 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0c61.9 0 112-50.1 112-112c0-2.5-.1-5-.2-7.5z"/></svg>', highlighter_icon_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M315 315l158.4-215L444.1 70.6 229 229 315 315zm-187 5s0 0 0 0l0-71.7c0-15.3 7.2-29.6 19.5-38.6L420.6 8.4C428 2.9 437 0 446.2 0c11.4 0 22.4 4.5 30.5 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5c0 9.2-2.9 18.2-8.4 25.6L334.4 396.5c-9 12.3-23.4 19.5-38.6 19.5L224 416l-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L128 320zM7 466.3l63-63 70.6 70.6-31 31c-4.5 4.5-10.6 7-17 7L24 512c-13.3 0-24-10.7-24-24l0-4.7c0-6.4 2.5-12.5 7-17z"/></svg>
298374
298422
  `, magic_wand_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.7-53.3L160 80l-53.3-26.7L80 0 53.3 53.3 0 80l53.3 26.7L80 160zm352 128l-26.7 53.3L352 368l53.3 26.7L432 448l26.7-53.3L512 368l-53.3-26.7L432 288zm70.6-193.8L417.8 9.4C411.5 3.1 403.3 0 395.2 0c-8.2 0-16.4 3.1-22.6 9.4L9.4 372.5c-12.5 12.5-12.5 32.8 0 45.3l84.9 84.9c6.3 6.3 14.4 9.4 22.6 9.4 8.2 0 16.4-3.1 22.6-9.4l363.1-363.2c12.5-12.5 12.5-32.8 0-45.2zM359.5 203.5l-50.9-50.9 86.6-86.6 50.9 50.9-86.6 86.6z"/></svg>', table_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M64 256l0-96 160 0 0 96L64 256zm0 64l160 0 0 96L64 416l0-96zm224 96l0-96 160 0 0 96-160 0zM448 256l-160 0 0-96 160 0 0 96zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z"/></svg>', table_columns_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 64l0 256 160 0 0-256L64 160zm384 0l-160 0 0 256 160 0 0-256z"/></svg>', arrows_left_right_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M406.6 374.6l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224l-293.5 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288l293.5 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z"/></svg>', arrows_to_dot_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M256 0c17.7 0 32 14.3 32 32l0 32 32 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8l32 0 0-32c0-17.7 14.3-32 32-32zM169.4 393.4l64-64c12.5-12.5 32.8-12.5 45.3 0l64 64c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9zM32 224l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c12.5 12.5 12.5 32.8 0 45.3l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3l64-64c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 32 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-64-64zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"/></svg>', plus_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 144L48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0 0 144c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-144z"/></svg>', trash_can_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M135.2 17.7C140.6 6.8 151.7 0 163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3zM32 128l384 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zm96 64c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16z"/></svg>', wrench_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M352 320c88.4 0 160-71.6 160-160c0-15.3-2.2-30.1-6.2-44.2c-3.1-10.8-16.4-13.2-24.3-5.3l-76.8 76.8c-3 3-7.1 4.7-11.3 4.7L336 192c-8.8 0-16-7.2-16-16l0-57.4c0-4.2 1.7-8.3 4.7-11.3l76.8-76.8c7.9-7.9 5.4-21.2-5.3-24.3C382.1 2.2 367.3 0 352 0C263.6 0 192 71.6 192 160c0 19.1 3.4 37.5 9.5 54.5L19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L297.5 310.5c17 6.2 35.4 9.5 54.5 9.5zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"/></svg>', border_none_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M32 480a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm96-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-384a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM320 416a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-320a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM224 480a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0-448a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM416 416a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-384a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM32 96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM416 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM32 288a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm192 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm192 64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM32 320a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM416 192a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM32 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm192 64a32 32 0 1 1 0-64 32 32 0 1 1 0 64z"/></svg>', up_down_default = `<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="3 4 18 16"><path stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 10V5m0 0L4 7m2-2 2 2m-2 7v5m0 0 2-2m-2 2-2-2m8-10h8m0 5h-8m0 5h8"></path></svg>
298375
298423
  `, magnifying_glass_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"/></svg>
298376
- `, scissors_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M278.1 256L444.5 89.6c4.7-4.7 4.7-12.3 0-17-32.8-32.8-86-32.8-118.8 0L210.2 188.1l-24.9-24.9c4.3-10.9 6.7-22.8 6.7-35.3 0-53-43-96-96-96S0 75 0 128s43 96 96 96c4.5 0 9-.3 13.4-.9L142.3 256l-32.9 32.9c-4.4-.6-8.8-.9-13.4-.9-53 0-96 43-96 96s43 96 96 96 96-43 96-96c0-12.5-2.4-24.3-6.7-35.3l24.9-24.9L325.7 439.4c32.8 32.8 86 32.8 118.8 0 4.7-4.7 4.7-12.3 0-17L278.1 256zM96 160c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm0 256c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z"/></svg>', copy_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M320 448v40c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V120c0-13.3 10.7-24 24-24h72v296c0 30.9 25.1 56 56 56h168zm0-344V0H152c-13.3 0-24 10.7-24 24v368c0 13.3 10.7 24 24 24h272c13.3 0 24-10.7 24-24V128H344c-13.2 0-24-10.8-24-24zm121-31L375 7A24 24 0 0 0 358.1 0H352v96h96v-6.1a24 24 0 0 0 -7-17z"/></svg>', paste_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M128 184c0-30.9 25.1-56 56-56h136V56c0-13.3-10.7-24-24-24h-80.6C204.3 12.9 183.6 0 160 0s-44.3 12.9-55.4 32H24C10.7 32 0 42.7 0 56v336c0 13.3 10.7 24 24 24h104V184zm32-144c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm184 248h104v200c0 13.3-10.7 24-24 24H184c-13.3 0-24-10.7-24-24V184c0-13.3 10.7-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.1V256h-96v-96h6.1a24 24 0 0 1 17 7l65.9 65.9a24 24 0 0 1 7 17z"/></svg>', toolbarIcons, _hoisted_1$20, AlignmentButtons_default, _hoisted_1$19, StyleButtonsList_default, bulletStyleButtons, numberedStyleButtons, _hoisted_1$18, _hoisted_2$15, _hoisted_3$11, _hoisted_4$7, _hoisted_5$5, _hoisted_6$3, DocumentMode_default, _hoisted_1$17, _hoisted_2$14, LinkedStyle_default, _hoisted_1$16, _hoisted_2$13, _hoisted_3$10, _hoisted_4$6, _hoisted_5$4, _hoisted_6$2, _hoisted_7$2, _hoisted_8$1, _hoisted_9$1, _hoisted_10$1, _hoisted_11$1, _hoisted_12$1, _hoisted_13, _hoisted_14, LinkInput_default, _hoisted_1$15, _hoisted_2$12, _hoisted_3$9, ROW_SIZE$1 = 7, IconGridRow_default, droplet_slash_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M320 512c53.2 0 101.4-21.6 136.1-56.6l-298.3-235C140 257.1 128 292.3 128 320c0 106 86 192 192 192zM505.2 370.7c4.4-16.2 6.8-33.1 6.8-50.7c0-91.2-130.2-262.3-166.6-308.3C339.4 4.2 330.5 0 320.9 0l-1.8 0c-9.6 0-18.5 4.2-24.5 11.7C277.8 33 240.7 81.3 205.8 136L38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L505.2 370.7zM224 336c0 44.2 35.8 80 80 80c8.8 0 16 7.2 16 16s-7.2 16-16 16c-61.9 0-112-50.1-112-112c0-8.8 7.2-16 16-16s16 7.2 16 16z"/></svg>
298377
- `, _hoisted_1$14, _hoisted_2$11, _hoisted_3$8, IconGrid_default, closeDropdown$1 = (dropdown) => {
298424
+ `, scissors_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M278.1 256L444.5 89.6c4.7-4.7 4.7-12.3 0-17-32.8-32.8-86-32.8-118.8 0L210.2 188.1l-24.9-24.9c4.3-10.9 6.7-22.8 6.7-35.3 0-53-43-96-96-96S0 75 0 128s43 96 96 96c4.5 0 9-.3 13.4-.9L142.3 256l-32.9 32.9c-4.4-.6-8.8-.9-13.4-.9-53 0-96 43-96 96s43 96 96 96 96-43 96-96c0-12.5-2.4-24.3-6.7-35.3l24.9-24.9L325.7 439.4c32.8 32.8 86 32.8 118.8 0 4.7-4.7 4.7-12.3 0-17L278.1 256zM96 160c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm0 256c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z"/></svg>', copy_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M320 448v40c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V120c0-13.3 10.7-24 24-24h72v296c0 30.9 25.1 56 56 56h168zm0-344V0H152c-13.3 0-24 10.7-24 24v368c0 13.3 10.7 24 24 24h272c13.3 0 24-10.7 24-24V128H344c-13.2 0-24-10.8-24-24zm121-31L375 7A24 24 0 0 0 358.1 0H352v96h96v-6.1a24 24 0 0 0 -7-17z"/></svg>', paste_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M128 184c0-30.9 25.1-56 56-56h136V56c0-13.3-10.7-24-24-24h-80.6C204.3 12.9 183.6 0 160 0s-44.3 12.9-55.4 32H24C10.7 32 0 42.7 0 56v336c0 13.3 10.7 24 24 24h104V184zm32-144c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm184 248h104v200c0 13.3-10.7 24-24 24H184c-13.3 0-24-10.7-24-24V184c0-13.3 10.7-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.1V256h-96v-96h6.1a24 24 0 0 1 17 7l65.9 65.9a24 24 0 0 1 7 17z"/></svg>', toolbarIcons, _hoisted_1$21, AlignmentButtons_default, _hoisted_1$20, StyleButtonsList_default, bulletStyleButtons, numberedStyleButtons, _hoisted_1$19, _hoisted_2$16, _hoisted_3$12, _hoisted_4$8, _hoisted_5$7, _hoisted_6$5, DocumentMode_default, _hoisted_1$18, _hoisted_2$15, LinkedStyle_default, _hoisted_1$17, _hoisted_2$14, _hoisted_3$11, _hoisted_4$7, _hoisted_5$6, _hoisted_6$4, _hoisted_7$3, _hoisted_8$1, _hoisted_9$1, _hoisted_10$1, _hoisted_11$1, _hoisted_12$1, _hoisted_13$1, _hoisted_14$1, LinkInput_default, _hoisted_1$16, _hoisted_2$13, _hoisted_3$10, ROW_SIZE$1 = 7, IconGridRow_default, droplet_slash_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M320 512c53.2 0 101.4-21.6 136.1-56.6l-298.3-235C140 257.1 128 292.3 128 320c0 106 86 192 192 192zM505.2 370.7c4.4-16.2 6.8-33.1 6.8-50.7c0-91.2-130.2-262.3-166.6-308.3C339.4 4.2 330.5 0 320.9 0l-1.8 0c-9.6 0-18.5 4.2-24.5 11.7C277.8 33 240.7 81.3 205.8 136L38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L505.2 370.7zM224 336c0 44.2 35.8 80 80 80c8.8 0 16 7.2 16 16s-7.2 16-16 16c-61.9 0-112-50.1-112-112c0-8.8 7.2-16 16-16s16 7.2 16 16z"/></svg>
298425
+ `, _hoisted_1$15, _hoisted_2$12, _hoisted_3$9, IconGrid_default, closeDropdown$1 = (dropdown) => {
298378
298426
  dropdown.expand.value = false;
298379
298427
  }, makeColorOption = (color2, label = null) => {
298380
298428
  return {
@@ -298405,8 +298453,8 @@ var Node$13 = class Node$14 {
298405
298453
  })]);
298406
298454
  }, icons, getAvailableColorOptions = () => {
298407
298455
  return icons.flat().map((item) => item.value);
298408
- }, _hoisted_1$13, _hoisted_2$10, ROW_SIZE = 5, TableGrid_default, _hoisted_1$12, _hoisted_2$9, _hoisted_3$7, _hoisted_4$5, _hoisted_5$3, TableActions_default, check_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"/></svg>
298409
- `, _hoisted_1$11, _hoisted_2$8, _hoisted_3$6, SearchInput_default, TOOLBAR_FONTS, TOOLBAR_FONT_SIZES, RESPONSIVE_BREAKPOINTS, HEADLESS_ITEM_MAP, TABLE_ACTION_COMMAND_MAP, TABLE_ACTION_COMMAND_IDS, HEADLESS_TOOLBAR_COMMANDS, NON_HEADLESS_EXECUTE_ITEM_NAMES, HEADLESS_EXECUTE_ITEMS, closeDropdown = (dropdown) => {
298456
+ }, _hoisted_1$14, _hoisted_2$11, ROW_SIZE = 5, TableGrid_default, _hoisted_1$13, _hoisted_2$10, _hoisted_3$8, _hoisted_4$6, _hoisted_5$5, TableActions_default, check_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"/></svg>
298457
+ `, _hoisted_1$12, _hoisted_2$9, _hoisted_3$7, SearchInput_default, TOOLBAR_FONTS, TOOLBAR_FONT_SIZES, RESPONSIVE_BREAKPOINTS, HEADLESS_ITEM_MAP, TABLE_ACTION_COMMAND_MAP, TABLE_ACTION_COMMAND_IDS, HEADLESS_TOOLBAR_COMMANDS, NON_HEADLESS_EXECUTE_ITEM_NAMES, HEADLESS_EXECUTE_ITEMS, closeDropdown = (dropdown) => {
298410
298458
  dropdown.expand.value = false;
298411
298459
  }, makeDefaultItems = ({ superToolbar, toolbarIcons: toolbarIcons$1, toolbarTexts: toolbarTexts$1, toolbarFonts, hideButtons, availableWidth, role, isDev = false } = {}) => {
298412
298460
  const bold = useToolbarItem({
@@ -299470,7 +299518,39 @@ var Node$13 = class Node$14 {
299470
299518
  defaultItems: visibleItems,
299471
299519
  overflowItems: overflowItems.filter((item) => item.type !== "separator")
299472
299520
  };
299473
- }, _hoisted_1$10, _hoisted_2$7, ToolbarButtonIcon_default, _hoisted_1$9, _hoisted_2$6, _hoisted_3$5, _hoisted_4$4, _hoisted_5$2, _hoisted_6$1, _hoisted_7$1, _hoisted_8, _hoisted_9, _hoisted_10, _hoisted_11, _hoisted_12, ToolbarButton_default, _hoisted_1$8, ToolbarSeparator_default, _hoisted_1$7, _hoisted_2$5, _hoisted_3$4, OverflowMenu_default, _hoisted_1$6, _hoisted_2$4, _hoisted_3$3, _hoisted_4$3, TRIGGER_FOCUS_SELECTOR = 'button, [href], input, select, textarea, [role="button"], [tabindex]:not([tabindex="-1"])', ToolbarDropdown_default, SdTooltip_default, _hoisted_1$5, _hoisted_2$3, _hoisted_3$2, _hoisted_4$2, ButtonGroup_default, DEFAULT_UI_FONT_FAMILY = "Arial, Helvetica, sans-serif", Toolbar_default, toolbarTexts, getParagraphFontFamilyFromProperties = (paragraphProps, convertedXml = {}) => {
299521
+ }, _hoisted_1$11, _hoisted_2$8, ToolbarButtonIcon_default, _hoisted_1$10, _hoisted_2$7, _hoisted_3$6, _hoisted_4$5, _hoisted_5$4, _hoisted_6$3, _hoisted_7$2, _hoisted_8, _hoisted_9, _hoisted_10, _hoisted_11, _hoisted_12, _hoisted_13, _hoisted_14, ToolbarButton_default, _hoisted_1$9, ToolbarSeparator_default, _hoisted_1$8, _hoisted_2$6, _hoisted_3$5, OverflowMenu_default, _hoisted_1$7, _hoisted_2$5, _hoisted_3$4, _hoisted_4$4, TRIGGER_FOCUS_SELECTOR = 'button, [href], input, select, textarea, [role="button"], [tabindex]:not([tabindex="-1"])', ToolbarDropdown_default, normalize4 = (value) => String(value ?? "").trim().toLowerCase(), findPrefixMatchIndex = (query, labels) => {
299522
+ const q$1 = normalize4(query);
299523
+ if (!q$1)
299524
+ return -1;
299525
+ for (let i4 = 0;i4 < labels.length; i4 += 1)
299526
+ if (normalize4(labels[i4]).startsWith(q$1))
299527
+ return i4;
299528
+ return -1;
299529
+ }, computeTypeahead = (query, labels, { autocomplete = true } = {}) => {
299530
+ const typed = String(query ?? "");
299531
+ const matchIndex = findPrefixMatchIndex(typed, labels);
299532
+ const completion = matchIndex >= 0 ? String(labels[matchIndex] ?? "") : "";
299533
+ if (autocomplete && matchIndex >= 0 && completion.length > typed.length)
299534
+ return {
299535
+ matchIndex,
299536
+ display: completion,
299537
+ selectionStart: typed.length,
299538
+ selectionEnd: completion.length
299539
+ };
299540
+ return {
299541
+ matchIndex,
299542
+ display: typed,
299543
+ selectionStart: typed.length,
299544
+ selectionEnd: typed.length
299545
+ };
299546
+ }, stripWrappingQuotes = (value) => {
299547
+ let result = String(value ?? "").trim();
299548
+ while (result.length >= 2 && (result.startsWith('"') && result.endsWith('"') || result.startsWith("'") && result.endsWith("'")))
299549
+ result = result.slice(1, -1).trim();
299550
+ return result;
299551
+ }, normalizeCustomFontFamily = (value) => {
299552
+ return stripWrappingQuotes((String(value ?? "").split(",")[0] ?? "").replace(/[\u0000-\u001f\u007f]/g, "")).replace(/\s+/g, " ").trim();
299553
+ }, _hoisted_1$6, _hoisted_2$4, _hoisted_3$3, _hoisted_4$3, _hoisted_5$3, _hoisted_6$2, _hoisted_7$1, FontFamilyCombobox_default, SdTooltip_default, _hoisted_1$5, _hoisted_2$3, _hoisted_3$2, _hoisted_4$2, _hoisted_5$2, _hoisted_6$1, TOOLBAR_TOOLTIP_AUTO_HIDE_MS = 3000, ButtonGroup_default, DEFAULT_UI_FONT_FAMILY = "Arial, Helvetica, sans-serif", Toolbar_default, toolbarTexts, getParagraphFontFamilyFromProperties = (paragraphProps, convertedXml = {}) => {
299474
299554
  const fontFamilyProps = paragraphProps?.runProperties?.fontFamily;
299475
299555
  if (!fontFamilyProps)
299476
299556
  return null;
@@ -299689,6 +299769,14 @@ var Node$13 = class Node$14 {
299689
299769
  const before = $pos.parent.childBefore($pos.parentOffset).node;
299690
299770
  const after = $pos.parent.childAfter($pos.parentOffset).node;
299691
299771
  return isInlineStructuredContentNode(before) || isInlineStructuredContentNode(after);
299772
+ }, getInputSelection = (state) => {
299773
+ const { selection } = state;
299774
+ if (!selection.empty)
299775
+ return selection;
299776
+ const preserved = getPreservedSelection(state);
299777
+ if (preserved && !preserved.empty)
299778
+ return preserved;
299779
+ return selection;
299692
299780
  }, handleInsertTextBeforeInput = (view, event, editor) => {
299693
299781
  const isInsertTextInput = event?.inputType === "insertText";
299694
299782
  const hasTextData = typeof event?.data === "string" && event.data.length > 0;
@@ -299702,8 +299790,8 @@ var Node$13 = class Node$14 {
299702
299790
  recordStoryInputDebug(view, event, editor, "beforeinput:skip");
299703
299791
  return false;
299704
299792
  }
299705
- const selection = view.state.selection;
299706
- const shouldHandleCollapsedSelection = isStorySurfaceEditor(editor) || isInlineStructuredContentBoundary(view.state.doc, selection.from);
299793
+ const selection = getInputSelection(view.state);
299794
+ const shouldHandleCollapsedSelection = isStorySurfaceEditor(editor) || isInlineStructuredContentBoundary(view.state.doc, view.state.selection.from);
299707
299795
  if (selection.empty && !shouldHandleCollapsedSelection) {
299708
299796
  recordStoryInputDebug(view, event, editor, "beforeinput:skip-empty-selection");
299709
299797
  return false;
@@ -299715,6 +299803,13 @@ var Node$13 = class Node$14 {
299715
299803
  } catch {
299716
299804
  tr.setSelection(Selection.near(tr.doc.resolve(insertedTo), 1));
299717
299805
  }
299806
+ if (!selection.empty)
299807
+ tr.setMeta(CustomSelectionPluginKey, {
299808
+ focused: false,
299809
+ preservedSelection: null,
299810
+ showVisualSelection: false,
299811
+ skipFocusReset: false
299812
+ });
299718
299813
  tr.setMeta("inputType", "insertText");
299719
299814
  view.dispatch(tr);
299720
299815
  event.preventDefault();
@@ -320808,13 +320903,13 @@ menclose::after {
320808
320903
  return;
320809
320904
  console.log(...args$1);
320810
320905
  }, HEADER_FOOTER_INIT_BUDGET_MS = 200, MAX_ZOOM_WARNING_THRESHOLD = 10, MAX_SELECTION_RECTS_PER_USER = 100, SEMANTIC_RESIZE_DEBOUNCE_MS = 120, MIN_SEMANTIC_CONTENT_WIDTH_PX = 1, GLOBAL_PERFORMANCE, PresentationEditor, ICONS, TEXTS, tableActionsOptions, TRACKED_MARK_NAMES;
320811
- var init_src_LeQVnrcZ_es = __esm(() => {
320906
+ var init_src_BVjcuFXj_es = __esm(() => {
320812
320907
  init_rolldown_runtime_Bg48TavK_es();
320813
320908
  init_SuperConverter_d9QeIy9_es();
320814
320909
  init_jszip_C49i9kUs_es();
320815
320910
  init_xml_js_CqGKpaft_es();
320816
320911
  init_uuid_B2wVPhPi_es();
320817
- init_create_headless_toolbar_l5QB6sQY_es();
320912
+ init_create_headless_toolbar_CJpgldP1_es();
320818
320913
  init_constants_D9qj59G2_es();
320819
320914
  init_dist_B8HfvhaK_es();
320820
320915
  init_unified_Dsuw2be5_es();
@@ -321372,6 +321467,12 @@ ${err.toString()}`);
321372
321467
  }) : value;
321373
321468
  if (!nextState?.preservedSelection)
321374
321469
  return nextState;
321470
+ if (shouldClearPreservedSelectionOnSelectionMove(tr, nextState))
321471
+ return {
321472
+ ...nextState,
321473
+ preservedSelection: null,
321474
+ showVisualSelection: false
321475
+ };
321375
321476
  if (!tr.docChanged)
321376
321477
  return nextState;
321377
321478
  const mappedSelection = mapPreservedSelection(nextState.preservedSelection, tr);
@@ -326200,6 +326301,12 @@ ${err.toString()}`);
326200
326301
  ];
326201
326302
  }
326202
326303
  });
326304
+ ALLOWED_META_KEYS$1 = [
326305
+ "inputType",
326306
+ "uiEvent",
326307
+ "paste",
326308
+ CustomSelectionPluginKey.key
326309
+ ];
326203
326310
  AnnotatorHelpers = {
326204
326311
  getFieldAttrs,
326205
326312
  processTables,
@@ -338065,7 +338172,8 @@ function print() { __p += __j.call(arguments, '') }
338065
338172
  "composition",
338066
338173
  "superdocSlicePaste",
338067
338174
  "forceTrackChanges",
338068
- "protectTrackedReviewState"
338175
+ "protectTrackedReviewState",
338176
+ CustomSelectionPluginKey.key
338069
338177
  ];
338070
338178
  PASSTHROUGH_META_KEYS = [
338071
338179
  "inputType",
@@ -338074,7 +338182,8 @@ function print() { __p += __j.call(arguments, '') }
338074
338182
  "pointer",
338075
338183
  "composition",
338076
338184
  "addToHistory",
338077
- "superdocSlicePaste"
338185
+ "superdocSlicePaste",
338186
+ CustomSelectionPluginKey.key
338078
338187
  ];
338079
338188
  ALLOWED_META_KEYS = new Set([...TRACKABLE_META_KEYS, ySyncPluginKey.key]);
338080
338189
  TrackFormat = Mark3.create({
@@ -338742,11 +338851,11 @@ function print() { __p += __j.call(arguments, '') }
338742
338851
  } });
338743
338852
  tippy.setDefaultProps({ render });
338744
338853
  tippy_esm_default = tippy;
338745
- _hoisted_1$22 = ["onClick", "onMouseenter"];
338746
- _hoisted_2$17 = { key: 0 };
338747
- _hoisted_3$13 = { key: 0 };
338748
- _hoisted_4$9 = { key: 1 };
338749
- _hoisted_5$7 = { key: 1 };
338854
+ _hoisted_1$23 = ["onClick", "onMouseenter"];
338855
+ _hoisted_2$18 = { key: 0 };
338856
+ _hoisted_3$14 = { key: 0 };
338857
+ _hoisted_4$10 = { key: 1 };
338858
+ _hoisted_5$9 = { key: 1 };
338750
338859
  Mentions_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
338751
338860
  __name: "Mentions",
338752
338861
  props: {
@@ -338812,7 +338921,7 @@ function print() { __p += __j.call(arguments, '') }
338812
338921
  onMouseleave: _cache[0] || (_cache[0] = ($event) => activeUserIndex.value = null),
338813
338922
  key: user.email,
338814
338923
  class: exports_vue.normalizeClass(["user-row", { "sd-selected": activeUserIndex.value === index2 }])
338815
- }, [user.name ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_2$17, [user.name ? (exports_vue.openBlock(), exports_vue.createElementBlock("span", _hoisted_3$13, exports_vue.toDisplayString(user.name), 1)) : exports_vue.createCommentVNode("", true), user.name && user.email ? (exports_vue.openBlock(), exports_vue.createElementBlock("span", _hoisted_4$9, " (" + exports_vue.toDisplayString(user.email) + ")", 1)) : exports_vue.createCommentVNode("", true)])) : (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_5$7, [exports_vue.createElementVNode("span", null, exports_vue.toDisplayString(user.email), 1)]))], 42, _hoisted_1$22);
338924
+ }, [user.name ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_2$18, [user.name ? (exports_vue.openBlock(), exports_vue.createElementBlock("span", _hoisted_3$14, exports_vue.toDisplayString(user.name), 1)) : exports_vue.createCommentVNode("", true), user.name && user.email ? (exports_vue.openBlock(), exports_vue.createElementBlock("span", _hoisted_4$10, " (" + exports_vue.toDisplayString(user.email) + ")", 1)) : exports_vue.createCommentVNode("", true)])) : (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_5$9, [exports_vue.createElementVNode("span", null, exports_vue.toDisplayString(user.email), 1)]))], 42, _hoisted_1$23);
338816
338925
  }), 128))], 544);
338817
338926
  };
338818
338927
  }
@@ -340087,11 +340196,11 @@ function print() { __p += __j.call(arguments, '') }
340087
340196
  })
340088
340197
  }
340089
340198
  ] };
340090
- _hoisted_1$21 = { class: "ai-user-input-field" };
340091
- _hoisted_2$16 = ["innerHTML"];
340092
- _hoisted_3$12 = ["placeholder"];
340093
- _hoisted_4$8 = { class: "ai-loader" };
340094
- _hoisted_5$6 = ["innerHTML"];
340199
+ _hoisted_1$22 = { class: "ai-user-input-field" };
340200
+ _hoisted_2$17 = ["innerHTML"];
340201
+ _hoisted_3$13 = ["placeholder"];
340202
+ _hoisted_4$9 = { class: "ai-loader" };
340203
+ _hoisted_5$8 = ["innerHTML"];
340095
340204
  AIWriter_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
340096
340205
  __name: "AIWriter",
340097
340206
  props: {
@@ -340318,10 +340427,10 @@ function print() { __p += __j.call(arguments, '') }
340318
340427
  ref_key: "aiWriterRef",
340319
340428
  ref: aiWriterRef,
340320
340429
  onMousedown: _cache[1] || (_cache[1] = exports_vue.withModifiers(() => {}, ["stop"]))
340321
- }, [exports_vue.createElementVNode("div", _hoisted_1$21, [exports_vue.createElementVNode("span", {
340430
+ }, [exports_vue.createElementVNode("div", _hoisted_1$22, [exports_vue.createElementVNode("span", {
340322
340431
  class: "ai-textarea-icon",
340323
340432
  innerHTML: exports_vue.unref(edit_regular_default)
340324
- }, null, 8, _hoisted_2$16), exports_vue.withDirectives(exports_vue.createElementVNode("textarea", {
340433
+ }, null, 8, _hoisted_2$17), exports_vue.withDirectives(exports_vue.createElementVNode("textarea", {
340325
340434
  ref_key: "editableRef",
340326
340435
  ref: editableRef,
340327
340436
  class: "ai-textarea",
@@ -340330,12 +340439,12 @@ function print() { __p += __j.call(arguments, '') }
340330
340439
  onInput: handleInput,
340331
340440
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => promptText.value = $event),
340332
340441
  rows: "4"
340333
- }, null, 40, _hoisted_3$12), [[exports_vue.vModelText, promptText.value]])]), exports_vue.createElementVNode("div", _hoisted_4$8, [promptText.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("span", {
340442
+ }, null, 40, _hoisted_3$13), [[exports_vue.vModelText, promptText.value]])]), exports_vue.createElementVNode("div", _hoisted_4$9, [promptText.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("span", {
340334
340443
  key: 0,
340335
340444
  class: "ai-textarea-icon ai-submit-button",
340336
340445
  onClick: exports_vue.withModifiers(handleSubmit, ["stop"]),
340337
340446
  innerHTML: exports_vue.unref(paper_plane_regular_default)
340338
- }, null, 8, _hoisted_5$6)) : exports_vue.createCommentVNode("", true)])], 544);
340447
+ }, null, 8, _hoisted_5$8)) : exports_vue.createCommentVNode("", true)])], 544);
340339
340448
  };
340340
340449
  }
340341
340450
  }, [["__scopeId", "data-v-5444b0c8"]]);
@@ -340420,7 +340529,7 @@ function print() { __p += __j.call(arguments, '') }
340420
340529
  formattingMarks: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true"><text x="12" y="18" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="20" font-weight="700" fill="currentColor">¶</text></svg>
340421
340530
  `
340422
340531
  };
340423
- _hoisted_1$20 = [
340532
+ _hoisted_1$21 = [
340424
340533
  "onClick",
340425
340534
  "innerHTML",
340426
340535
  "aria-label",
@@ -340512,12 +340621,12 @@ function print() { __p += __j.call(arguments, '') }
340512
340621
  ref_key: "alignmentButtonsRefs",
340513
340622
  ref: alignmentButtonsRefs,
340514
340623
  onKeydown: exports_vue.withModifiers((event) => handleKeyDown$1(event, index2), ["prevent"])
340515
- }, null, 40, _hoisted_1$20);
340624
+ }, null, 40, _hoisted_1$21);
340516
340625
  }), 64))], 2);
340517
340626
  };
340518
340627
  }
340519
340628
  }, [["__scopeId", "data-v-ceb338e0"]]);
340520
- _hoisted_1$19 = [
340629
+ _hoisted_1$20 = [
340521
340630
  "onClick",
340522
340631
  "innerHTML",
340523
340632
  "aria-label",
@@ -340606,7 +340715,7 @@ function print() { __p += __j.call(arguments, '') }
340606
340715
  ref_key: "buttonRefs",
340607
340716
  ref: buttonRefs,
340608
340717
  onKeydown: exports_vue.withModifiers((event) => handleKeyDown$1(event, index2), ["prevent"])
340609
- }, null, 46, _hoisted_1$19);
340718
+ }, null, 46, _hoisted_1$20);
340610
340719
  }), 128))], 2);
340611
340720
  };
340612
340721
  }
@@ -340670,12 +340779,12 @@ function print() { __p += __j.call(arguments, '') }
340670
340779
  ariaLabel: "a) b) c)"
340671
340780
  }
340672
340781
  ];
340673
- _hoisted_1$18 = ["onClick", "onKeydown"];
340674
- _hoisted_2$15 = { class: "document-mode-column icon-column" };
340675
- _hoisted_3$11 = ["innerHTML"];
340676
- _hoisted_4$7 = { class: "document-mode-column text-column" };
340677
- _hoisted_5$5 = { class: "document-mode-type" };
340678
- _hoisted_6$3 = { class: "document-mode-description" };
340782
+ _hoisted_1$19 = ["onClick", "onKeydown"];
340783
+ _hoisted_2$16 = { class: "document-mode-column icon-column" };
340784
+ _hoisted_3$12 = ["innerHTML"];
340785
+ _hoisted_4$8 = { class: "document-mode-column text-column" };
340786
+ _hoisted_5$7 = { class: "document-mode-type" };
340787
+ _hoisted_6$5 = { class: "document-mode-description" };
340679
340788
  DocumentMode_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
340680
340789
  __name: "DocumentMode",
340681
340790
  props: { options: { type: Array } },
@@ -340736,20 +340845,20 @@ function print() { __p += __j.call(arguments, '') }
340736
340845
  ref_key: "documentModeRefs",
340737
340846
  ref: documentModeRefs,
340738
340847
  onKeydown: exports_vue.withModifiers((event) => handleKeyDown$1(event, index2), ["prevent"])
340739
- }, [exports_vue.createElementVNode("div", _hoisted_2$15, [exports_vue.createElementVNode("div", {
340848
+ }, [exports_vue.createElementVNode("div", _hoisted_2$16, [exports_vue.createElementVNode("div", {
340740
340849
  class: "icon-column__icon",
340741
340850
  innerHTML: option.icon
340742
- }, null, 8, _hoisted_3$11)]), exports_vue.createElementVNode("div", _hoisted_4$7, [exports_vue.createElementVNode("div", _hoisted_5$5, exports_vue.toDisplayString(option.label), 1), exports_vue.createElementVNode("div", _hoisted_6$3, exports_vue.toDisplayString(option.description), 1)])], 42, _hoisted_1$18);
340851
+ }, null, 8, _hoisted_3$12)]), exports_vue.createElementVNode("div", _hoisted_4$8, [exports_vue.createElementVNode("div", _hoisted_5$7, exports_vue.toDisplayString(option.label), 1), exports_vue.createElementVNode("div", _hoisted_6$5, exports_vue.toDisplayString(option.description), 1)])], 42, _hoisted_1$19);
340743
340852
  }), 256))], 2);
340744
340853
  };
340745
340854
  }
340746
340855
  }, [["__scopeId", "data-v-abd514d9"]]);
340747
- _hoisted_1$17 = {
340856
+ _hoisted_1$18 = {
340748
340857
  key: 0,
340749
340858
  class: "linked-style-buttons",
340750
340859
  "data-editor-ui-surface": ""
340751
340860
  };
340752
- _hoisted_2$14 = [
340861
+ _hoisted_2$15 = [
340753
340862
  "onClick",
340754
340863
  "onKeydown",
340755
340864
  "aria-label"
@@ -340806,7 +340915,7 @@ function print() { __p += __j.call(arguments, '') }
340806
340915
  styleRefs.value[0].focus();
340807
340916
  });
340808
340917
  return (_ctx, _cache) => {
340809
- return props.editor ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$17, [(exports_vue.openBlock(true), exports_vue.createElementBlock(exports_vue.Fragment, null, exports_vue.renderList(exports_vue.unref(getQuickFormatList)(__props.editor), (style2, index2) => {
340918
+ return props.editor ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$18, [(exports_vue.openBlock(true), exports_vue.createElementBlock(exports_vue.Fragment, null, exports_vue.renderList(exports_vue.unref(getQuickFormatList)(__props.editor), (style2, index2) => {
340810
340919
  return exports_vue.openBlock(), exports_vue.createElementBlock("div", {
340811
340920
  class: exports_vue.normalizeClass(["style-item", { selected: __props.selectedOption === style2.id }]),
340812
340921
  onClick: ($event) => select2(style2),
@@ -340819,33 +340928,33 @@ function print() { __p += __j.call(arguments, '') }
340819
340928
  class: "style-name",
340820
340929
  style: exports_vue.normalizeStyle(exports_vue.unref(generateLinkedStyleString)(style2, null, null, false)),
340821
340930
  "data-item": "btn-linkedStyles-option"
340822
- }, exports_vue.toDisplayString(style2.definition.attrs.name), 5)], 42, _hoisted_2$14);
340931
+ }, exports_vue.toDisplayString(style2.definition.attrs.name), 5)], 42, _hoisted_2$15);
340823
340932
  }), 256))])) : exports_vue.createCommentVNode("", true);
340824
340933
  };
340825
340934
  }
340826
340935
  }, [["__scopeId", "data-v-80e74746"]]);
340827
- _hoisted_1$16 = {
340936
+ _hoisted_1$17 = {
340828
340937
  key: 0,
340829
340938
  class: "link-title"
340830
340939
  };
340831
- _hoisted_2$13 = {
340940
+ _hoisted_2$14 = {
340832
340941
  key: 1,
340833
340942
  class: "link-title"
340834
340943
  };
340835
- _hoisted_3$10 = {
340944
+ _hoisted_3$11 = {
340836
340945
  key: 2,
340837
340946
  class: "link-title"
340838
340947
  };
340839
- _hoisted_4$6 = {
340948
+ _hoisted_4$7 = {
340840
340949
  key: 3,
340841
340950
  class: "link-title"
340842
340951
  };
340843
- _hoisted_5$4 = {
340952
+ _hoisted_5$6 = {
340844
340953
  key: 4,
340845
340954
  class: "link-input-wrapper"
340846
340955
  };
340847
- _hoisted_6$2 = { class: "input-row text-input-row" };
340848
- _hoisted_7$2 = ["readonly"];
340956
+ _hoisted_6$4 = { class: "input-row text-input-row" };
340957
+ _hoisted_7$3 = ["readonly"];
340849
340958
  _hoisted_8$1 = { class: "input-row url-input-row" };
340850
340959
  _hoisted_9$1 = ["innerHTML"];
340851
340960
  _hoisted_10$1 = ["readonly", "onKeydown"];
@@ -340854,8 +340963,8 @@ function print() { __p += __j.call(arguments, '') }
340854
340963
  key: 0,
340855
340964
  class: "input-row link-buttons"
340856
340965
  };
340857
- _hoisted_13 = ["innerHTML"];
340858
- _hoisted_14 = {
340966
+ _hoisted_13$1 = ["innerHTML"];
340967
+ _hoisted_14$1 = {
340859
340968
  key: 5,
340860
340969
  class: "input-row go-to-anchor clickable"
340861
340970
  };
@@ -341027,15 +341136,15 @@ function print() { __p += __j.call(arguments, '') }
341027
341136
  props.goToAnchor(url$1);
341028
341137
  };
341029
341138
  return (_ctx, _cache) => {
341030
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", { class: exports_vue.normalizeClass(["link-input-ctn", { "high-contrast": exports_vue.unref(isHighContrastMode$1) }]) }, [isAnchor.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$16, "Page anchor")) : isViewingMode.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_2$13, "Link details")) : isEditing.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_3$10, "Edit link")) : (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_4$6, "Add link")), __props.showInput && !isAnchor.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_5$4, [
341031
- exports_vue.createElementVNode("div", _hoisted_6$2, [_cache[5] || (_cache[5] = exports_vue.createElementVNode("div", { class: "input-icon text-input-icon" }, "T", -1)), exports_vue.withDirectives(exports_vue.createElementVNode("input", {
341139
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", { class: exports_vue.normalizeClass(["link-input-ctn", { "high-contrast": exports_vue.unref(isHighContrastMode$1) }]) }, [isAnchor.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$17, "Page anchor")) : isViewingMode.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_2$14, "Link details")) : isEditing.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_3$11, "Edit link")) : (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_4$7, "Add link")), __props.showInput && !isAnchor.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_5$6, [
341140
+ exports_vue.createElementVNode("div", _hoisted_6$4, [_cache[5] || (_cache[5] = exports_vue.createElementVNode("div", { class: "input-icon text-input-icon" }, "T", -1)), exports_vue.withDirectives(exports_vue.createElementVNode("input", {
341032
341141
  type: "text",
341033
341142
  name: "text",
341034
341143
  placeholder: "Text",
341035
341144
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => text5.value = $event),
341036
341145
  readonly: isViewingMode.value,
341037
341146
  onKeydown: _cache[1] || (_cache[1] = exports_vue.withKeys(exports_vue.withModifiers(($event) => !isViewingMode.value && handleSubmit, ["stop", "prevent"]), ["enter"]))
341038
- }, null, 40, _hoisted_7$2), [[exports_vue.vModelText, text5.value]])]),
341147
+ }, null, 40, _hoisted_7$3), [[exports_vue.vModelText, text5.value]])]),
341039
341148
  exports_vue.createElementVNode("div", _hoisted_8$1, [
341040
341149
  exports_vue.createElementVNode("div", {
341041
341150
  class: "input-icon",
@@ -341065,22 +341174,22 @@ function print() { __p += __j.call(arguments, '') }
341065
341174
  }, [exports_vue.createElementVNode("div", {
341066
341175
  class: "remove-btn__icon",
341067
341176
  innerHTML: exports_vue.unref(toolbarIcons).removeLink
341068
- }, null, 8, _hoisted_13), _cache[6] || (_cache[6] = exports_vue.createTextVNode(" Remove ", -1))])) : exports_vue.createCommentVNode("", true), exports_vue.createElementVNode("button", {
341177
+ }, null, 8, _hoisted_13$1), _cache[6] || (_cache[6] = exports_vue.createTextVNode(" Remove ", -1))])) : exports_vue.createCommentVNode("", true), exports_vue.createElementVNode("button", {
341069
341178
  class: exports_vue.normalizeClass(["sd-submit-btn", { "disable-btn": isDisabled.value }]),
341070
341179
  onClick: handleSubmit,
341071
341180
  "data-item": "btn-link-apply"
341072
341181
  }, " Apply ", 2)])) : exports_vue.createCommentVNode("", true)
341073
- ])) : isAnchor.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_14, [exports_vue.createElementVNode("a", { onClick: _cache[4] || (_cache[4] = exports_vue.withModifiers(($event) => navigateToAnchor(rawUrl.value), ["stop", "prevent"])) }, "Go to " + exports_vue.toDisplayString(rawUrl.value.startsWith("#_") ? rawUrl.value.substring(2) : rawUrl.value), 1)])) : exports_vue.createCommentVNode("", true)], 2);
341182
+ ])) : isAnchor.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_14$1, [exports_vue.createElementVNode("a", { onClick: _cache[4] || (_cache[4] = exports_vue.withModifiers(($event) => navigateToAnchor(rawUrl.value), ["stop", "prevent"])) }, "Go to " + exports_vue.toDisplayString(rawUrl.value.startsWith("#_") ? rawUrl.value.substring(2) : rawUrl.value), 1)])) : exports_vue.createCommentVNode("", true)], 2);
341074
341183
  };
341075
341184
  }
341076
341185
  }, [["__scopeId", "data-v-c490d677"]]);
341077
- _hoisted_1$15 = [
341186
+ _hoisted_1$16 = [
341078
341187
  "aria-label",
341079
341188
  "onClick",
341080
341189
  "onKeydown"
341081
341190
  ];
341082
- _hoisted_2$12 = ["innerHTML"];
341083
- _hoisted_3$9 = ["innerHTML"];
341191
+ _hoisted_2$13 = ["innerHTML"];
341192
+ _hoisted_3$10 = ["innerHTML"];
341084
341193
  IconGridRow_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
341085
341194
  __name: "IconGridRow",
341086
341195
  props: {
@@ -341201,20 +341310,20 @@ function print() { __p += __j.call(arguments, '') }
341201
341310
  class: "sd-option__icon",
341202
341311
  innerHTML: option.icon,
341203
341312
  style: exports_vue.normalizeStyle(option.style)
341204
- }, null, 12, _hoisted_2$12), isActive$1.value(option) ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
341313
+ }, null, 12, _hoisted_2$13), isActive$1.value(option) ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
341205
341314
  key: 0,
341206
341315
  class: "sd-option__check",
341207
341316
  innerHTML: exports_vue.unref(toolbarIcons).colorOptionCheck,
341208
341317
  style: exports_vue.normalizeStyle(getCheckStyle(option.value, optionIndex))
341209
- }, null, 12, _hoisted_3$9)) : exports_vue.createCommentVNode("", true)], 40, _hoisted_1$15);
341318
+ }, null, 12, _hoisted_3$10)) : exports_vue.createCommentVNode("", true)], 40, _hoisted_1$16);
341210
341319
  }), 128))]);
341211
341320
  }), 128);
341212
341321
  };
341213
341322
  }
341214
341323
  }, [["__scopeId", "data-v-30cad300"]]);
341215
- _hoisted_1$14 = { class: "options-grid-wrap" };
341216
- _hoisted_2$11 = ["innerHTML"];
341217
- _hoisted_3$8 = { class: "option-grid-ctn" };
341324
+ _hoisted_1$15 = { class: "options-grid-wrap" };
341325
+ _hoisted_2$12 = ["innerHTML"];
341326
+ _hoisted_3$9 = { class: "option-grid-ctn" };
341218
341327
  IconGrid_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
341219
341328
  __name: "IconGrid",
341220
341329
  props: {
@@ -341242,7 +341351,7 @@ function print() { __p += __j.call(arguments, '') }
341242
341351
  emit("select", option);
341243
341352
  };
341244
341353
  return (_ctx, _cache) => {
341245
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$14, [__props.hasNoneIcon ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
341354
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$15, [__props.hasNoneIcon ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
341246
341355
  key: 0,
341247
341356
  class: "none-option",
341248
341357
  role: "menuitem",
@@ -341251,7 +341360,7 @@ function print() { __p += __j.call(arguments, '') }
341251
341360
  }, [exports_vue.createElementVNode("span", {
341252
341361
  innerHTML: exports_vue.unref(droplet_slash_default),
341253
341362
  class: "none-icon"
341254
- }, null, 8, _hoisted_2$11), _cache[1] || (_cache[1] = exports_vue.createTextVNode(" None ", -1))])) : exports_vue.createCommentVNode("", true), exports_vue.createElementVNode("div", _hoisted_3$8, [exports_vue.createVNode(IconGridRow_default, {
341363
+ }, null, 8, _hoisted_2$12), _cache[1] || (_cache[1] = exports_vue.createTextVNode(" None ", -1))])) : exports_vue.createCommentVNode("", true), exports_vue.createElementVNode("div", _hoisted_3$9, [exports_vue.createVNode(IconGridRow_default, {
341255
341364
  icons: __props.icons,
341256
341365
  "active-color": __props.activeColor,
341257
341366
  onSelect: handleSelect
@@ -341337,13 +341446,13 @@ function print() { __p += __j.call(arguments, '') }
341337
341446
  makeColorOption("#A91DFF", "neon purple")
341338
341447
  ]
341339
341448
  ];
341340
- _hoisted_1$13 = [
341449
+ _hoisted_1$14 = [
341341
341450
  "data-cols",
341342
341451
  "data-rows",
341343
341452
  "onKeydown",
341344
341453
  "onClick"
341345
341454
  ];
341346
- _hoisted_2$10 = ["aria-valuetext"];
341455
+ _hoisted_2$11 = ["aria-valuetext"];
341347
341456
  TableGrid_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
341348
341457
  __name: "TableGrid",
341349
341458
  emits: ["select", "clickoutside"],
@@ -341454,24 +341563,24 @@ function print() { __p += __j.call(arguments, '') }
341454
341563
  cols: n,
341455
341564
  rows: i4
341456
341565
  }), ["stop", "prevent"])
341457
- }, null, 40, _hoisted_1$13);
341566
+ }, null, 40, _hoisted_1$14);
341458
341567
  }), 64))], 64);
341459
341568
  }), 64))], 32), exports_vue.createElementVNode("div", {
341460
341569
  class: "toolbar-table-grid-value",
341461
341570
  "aria-valuetext": `${selectedRows.value} x ${selectedCols.value}`
341462
- }, exports_vue.toDisplayString(selectedRows.value) + " x " + exports_vue.toDisplayString(selectedCols.value), 9, _hoisted_2$10)], 2);
341571
+ }, exports_vue.toDisplayString(selectedRows.value) + " x " + exports_vue.toDisplayString(selectedCols.value), 9, _hoisted_2$11)], 2);
341463
341572
  };
341464
341573
  }
341465
341574
  }, [["__scopeId", "data-v-168b91ce"]]);
341466
- _hoisted_1$12 = { class: "toolbar-table-actions" };
341467
- _hoisted_2$9 = [
341575
+ _hoisted_1$13 = { class: "toolbar-table-actions" };
341576
+ _hoisted_2$10 = [
341468
341577
  "onClick",
341469
341578
  "data-item",
341470
341579
  "ariaLabel"
341471
341580
  ];
341472
- _hoisted_3$7 = { class: "toolbar-table-actions__icon" };
341473
- _hoisted_4$5 = ["innerHTML"];
341474
- _hoisted_5$3 = { class: "toolbar-table-actions__label" };
341581
+ _hoisted_3$8 = { class: "toolbar-table-actions__icon" };
341582
+ _hoisted_4$6 = ["innerHTML"];
341583
+ _hoisted_5$5 = { class: "toolbar-table-actions__label" };
341475
341584
  TableActions_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
341476
341585
  __name: "TableActions",
341477
341586
  props: { options: { type: Array } },
@@ -341482,24 +341591,24 @@ function print() { __p += __j.call(arguments, '') }
341482
341591
  emit("select", { command: item.command });
341483
341592
  };
341484
341593
  return (_ctx, _cache) => {
341485
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$12, [(exports_vue.openBlock(true), exports_vue.createElementBlock(exports_vue.Fragment, null, exports_vue.renderList(__props.options, (option) => {
341594
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$13, [(exports_vue.openBlock(true), exports_vue.createElementBlock(exports_vue.Fragment, null, exports_vue.renderList(__props.options, (option) => {
341486
341595
  return exports_vue.openBlock(), exports_vue.createElementBlock("div", {
341487
341596
  class: exports_vue.normalizeClass(["toolbar-table-actions__item", { "toolbar-table-actions__item--border": option.bottomBorder }]),
341488
341597
  onClick: ($event) => handleClick$1(option),
341489
341598
  "data-item": option.props?.["data-item"] || "",
341490
341599
  ariaLabel: option.props?.ariaLabel,
341491
341600
  role: "menuitem"
341492
- }, [exports_vue.createElementVNode("div", _hoisted_3$7, [exports_vue.createElementVNode("div", {
341601
+ }, [exports_vue.createElementVNode("div", _hoisted_3$8, [exports_vue.createElementVNode("div", {
341493
341602
  class: "toolbar-table-actions__icon-wrapper",
341494
341603
  innerHTML: option.icon
341495
- }, null, 8, _hoisted_4$5)]), exports_vue.createElementVNode("div", _hoisted_5$3, exports_vue.toDisplayString(option.label), 1)], 10, _hoisted_2$9);
341604
+ }, null, 8, _hoisted_4$6)]), exports_vue.createElementVNode("div", _hoisted_5$5, exports_vue.toDisplayString(option.label), 1)], 10, _hoisted_2$10);
341496
341605
  }), 256))]);
341497
341606
  };
341498
341607
  }
341499
341608
  }, [["__scopeId", "data-v-652015c8"]]);
341500
- _hoisted_1$11 = { class: "search-input-ctn" };
341501
- _hoisted_2$8 = { class: "sd-row" };
341502
- _hoisted_3$6 = ["onKeydown"];
341609
+ _hoisted_1$12 = { class: "search-input-ctn" };
341610
+ _hoisted_2$9 = { class: "sd-row" };
341611
+ _hoisted_3$7 = ["onKeydown"];
341503
341612
  SearchInput_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
341504
341613
  __name: "SearchInput",
341505
341614
  props: { searchRef: { type: Object } },
@@ -341511,7 +341620,7 @@ function print() { __p += __j.call(arguments, '') }
341511
341620
  emit("submit", { value: searchValue.value });
341512
341621
  };
341513
341622
  return (_ctx, _cache) => {
341514
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$11, [exports_vue.createElementVNode("div", _hoisted_2$8, [exports_vue.withDirectives(exports_vue.createElementVNode("input", {
341623
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$12, [exports_vue.createElementVNode("div", _hoisted_2$9, [exports_vue.withDirectives(exports_vue.createElementVNode("input", {
341515
341624
  ref: __props.searchRef,
341516
341625
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchValue.value = $event),
341517
341626
  class: "search-input",
@@ -341519,7 +341628,7 @@ function print() { __p += __j.call(arguments, '') }
341519
341628
  name: "search",
341520
341629
  placeholder: "Type search string",
341521
341630
  onKeydown: exports_vue.withKeys(exports_vue.withModifiers(handleSubmit, ["stop", "prevent"]), ["enter"])
341522
- }, null, 40, _hoisted_3$6), [[exports_vue.vModelText, searchValue.value]])]), exports_vue.createElementVNode("div", { class: "sd-row sd-submit" }, [exports_vue.createElementVNode("button", {
341631
+ }, null, 40, _hoisted_3$7), [[exports_vue.vModelText, searchValue.value]])]), exports_vue.createElementVNode("div", { class: "sd-row sd-submit" }, [exports_vue.createElementVNode("button", {
341523
341632
  class: "sd-submit-btn",
341524
341633
  onClick: handleSubmit
341525
341634
  }, "Apply")])]);
@@ -341663,8 +341772,8 @@ function print() { __p += __j.call(arguments, '') }
341663
341772
  HEADLESS_TOOLBAR_COMMANDS = [...new Set([...Object.values(HEADLESS_ITEM_MAP), ...TABLE_ACTION_COMMAND_IDS])];
341664
341773
  NON_HEADLESS_EXECUTE_ITEM_NAMES = new Set(["link"]);
341665
341774
  HEADLESS_EXECUTE_ITEMS = new Set(Object.keys(HEADLESS_ITEM_MAP).filter((itemName) => !NON_HEADLESS_EXECUTE_ITEM_NAMES.has(itemName)));
341666
- _hoisted_1$10 = { class: "sd-toolbar-icon" };
341667
- _hoisted_2$7 = ["innerHTML"];
341775
+ _hoisted_1$11 = { class: "sd-toolbar-icon" };
341776
+ _hoisted_2$8 = ["innerHTML"];
341668
341777
  ToolbarButtonIcon_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
341669
341778
  __name: "ToolbarButtonIcon",
341670
341779
  props: {
@@ -341693,10 +341802,10 @@ function print() { __p += __j.call(arguments, '') }
341693
341802
  return ["color", "highlight"].includes(props.name);
341694
341803
  });
341695
341804
  return (_ctx, _cache) => {
341696
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$10, [exports_vue.createElementVNode("div", {
341805
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$11, [exports_vue.createElementVNode("div", {
341697
341806
  class: exports_vue.normalizeClass(["sd-toolbar-icon__icon", [`sd-toolbar-icon__icon--${props.name}`]]),
341698
341807
  innerHTML: __props.icon
341699
- }, null, 10, _hoisted_2$7), hasColorBar.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
341808
+ }, null, 10, _hoisted_2$8), hasColorBar.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
341700
341809
  key: 0,
341701
341810
  class: "color-bar",
341702
341811
  style: exports_vue.normalizeStyle(getBarColor.value)
@@ -341704,28 +341813,37 @@ function print() { __p += __j.call(arguments, '') }
341704
341813
  };
341705
341814
  }
341706
341815
  }, [["__scopeId", "data-v-521c3d93"]]);
341707
- _hoisted_1$9 = ["role", "aria-label"];
341708
- _hoisted_2$6 = ["data-item"];
341709
- _hoisted_3$5 = ["data-item"];
341710
- _hoisted_4$4 = {
341816
+ _hoisted_1$10 = ["role", "aria-label"];
341817
+ _hoisted_2$7 = ["data-item"];
341818
+ _hoisted_3$6 = ["data-item"];
341819
+ _hoisted_4$5 = {
341711
341820
  key: 1,
341712
341821
  class: "sd-button-label"
341713
341822
  };
341714
- _hoisted_5$2 = ["data-item", "aria-label"];
341715
- _hoisted_6$1 = ["innerHTML"];
341716
- _hoisted_7$1 = {
341823
+ _hoisted_5$4 = ["data-item", "aria-label"];
341824
+ _hoisted_6$3 = ["innerHTML"];
341825
+ _hoisted_7$2 = {
341717
341826
  key: 1,
341718
341827
  class: "sd-button-label"
341719
341828
  };
341720
- _hoisted_8 = { key: 2 };
341829
+ _hoisted_8 = {
341830
+ key: 2,
341831
+ class: "sd-toolbar-button__field sd-toolbar-split-field__main"
341832
+ };
341721
341833
  _hoisted_9 = ["onKeydown", "id"];
341722
341834
  _hoisted_10 = [
341723
341835
  "placeholder",
341724
341836
  "onKeydown",
341725
341837
  "id"
341726
341838
  ];
341727
- _hoisted_11 = ["innerHTML"];
341728
- _hoisted_12 = {
341839
+ _hoisted_11 = [
341840
+ "data-item",
341841
+ "aria-label",
341842
+ "disabled"
341843
+ ];
341844
+ _hoisted_12 = ["innerHTML"];
341845
+ _hoisted_13 = ["innerHTML"];
341846
+ _hoisted_14 = {
341729
341847
  "aria-live": "polite",
341730
341848
  class: "sd-visually-hidden"
341731
341849
  };
@@ -341768,21 +341886,28 @@ function print() { __p += __j.call(arguments, '') }
341768
341886
  emits: [
341769
341887
  "buttonClick",
341770
341888
  "textSubmit",
341771
- "mainClick"
341889
+ "mainClick",
341890
+ "tabOut"
341772
341891
  ],
341773
341892
  setup(__props, { emit: __emit }) {
341774
341893
  const emit = __emit;
341775
341894
  const props = __props;
341776
341895
  const { name, active, icon, label, hideLabel, iconColor, hasCaret, splitButton, disabled, expand, inlineTextInputVisible, hasInlineTextInput, minWidth, style: style2, attributes } = props.toolbarItem;
341777
341896
  const isSplit = exports_vue.computed(() => Boolean(splitButton?.value) && Boolean(hasCaret?.value));
341897
+ const isInlineSplitField = exports_vue.computed(() => name?.value === "fontSize" && Boolean(hasInlineTextInput?.value) && Boolean(hasCaret?.value));
341778
341898
  const inlineTextInput = exports_vue.ref(label);
341779
341899
  const inlineInput = exports_vue.ref(null);
341780
341900
  const { isHighContrastMode: isHighContrastMode$1 } = useHighContrastMode();
341901
+ const selectInlineInput = () => {
341902
+ exports_vue.nextTick(() => {
341903
+ inlineInput.value?.select();
341904
+ });
341905
+ };
341781
341906
  const handleClick$1 = () => {
341782
341907
  if (hasInlineTextInput)
341783
341908
  exports_vue.nextTick(() => {
341784
341909
  inlineInput.value?.focus();
341785
- inlineInput.value?.select();
341910
+ selectInlineInput();
341786
341911
  });
341787
341912
  emit("buttonClick");
341788
341913
  };
@@ -341815,6 +341940,14 @@ function print() { __p += __j.call(arguments, '') }
341815
341940
  emit("textSubmit", cleanValue);
341816
341941
  inlineTextInput.value = cleanValue;
341817
341942
  };
341943
+ const handleInputTab = (event) => {
341944
+ if (name?.value !== "fontSize")
341945
+ return;
341946
+ event.preventDefault();
341947
+ handleInputSubmit();
341948
+ inlineInput.value?.blur();
341949
+ emit("tabOut", event);
341950
+ };
341818
341951
  const getStyle = exports_vue.computed(() => {
341819
341952
  if (style2.value)
341820
341953
  return style2.value;
@@ -341831,7 +341964,7 @@ function print() { __p += __j.call(arguments, '') }
341831
341964
  "aria-label": exports_vue.unref(attributes).ariaLabel,
341832
341965
  "data-sd-part": "toolbar-item",
341833
341966
  onClick: handleOuterClick,
341834
- onKeydown: _cache[3] || (_cache[3] = exports_vue.withKeys(($event) => onEnterKeydown($event), ["enter"])),
341967
+ onKeydown: _cache[5] || (_cache[5] = exports_vue.withKeys(($event) => onEnterKeydown($event), ["enter"])),
341835
341968
  tabindex: "0"
341836
341969
  }, [exports_vue.createElementVNode("div", {
341837
341970
  class: exports_vue.normalizeClass(["sd-toolbar-button", {
@@ -341840,6 +341973,8 @@ function print() { __p += __j.call(arguments, '') }
341840
341973
  narrow: __props.isNarrow,
341841
341974
  wide: __props.isWide,
341842
341975
  split: isSplit.value,
341976
+ "split-field": isInlineSplitField.value,
341977
+ "sd-toolbar-split-field": isInlineSplitField.value,
341843
341978
  "has-inline-text-input": exports_vue.unref(hasInlineTextInput),
341844
341979
  "high-contrast": exports_vue.unref(isHighContrastMode$1)
341845
341980
  }]),
@@ -341860,7 +341995,7 @@ function print() { __p += __j.call(arguments, '') }
341860
341995
  "color",
341861
341996
  "icon",
341862
341997
  "name"
341863
- ])) : exports_vue.createCommentVNode("", true), exports_vue.unref(label) && !exports_vue.unref(hideLabel) && !exports_vue.unref(inlineTextInputVisible) ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_4$4, exports_vue.toDisplayString(exports_vue.unref(label)), 1)) : exports_vue.createCommentVNode("", true)], 8, _hoisted_3$5)) : exports_vue.createCommentVNode("", true),
341998
+ ])) : exports_vue.createCommentVNode("", true), exports_vue.unref(label) && !exports_vue.unref(hideLabel) && !exports_vue.unref(inlineTextInputVisible) ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_4$5, exports_vue.toDisplayString(exports_vue.unref(label)), 1)) : exports_vue.createCommentVNode("", true)], 8, _hoisted_3$6)) : exports_vue.createCommentVNode("", true),
341864
341999
  isSplit.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
341865
342000
  key: 1,
341866
342001
  class: "sd-toolbar-button__caret",
@@ -341871,7 +342006,7 @@ function print() { __p += __j.call(arguments, '') }
341871
342006
  class: "sd-dropdown-caret",
341872
342007
  innerHTML: caretIcon.value,
341873
342008
  style: exports_vue.normalizeStyle({ opacity: exports_vue.unref(disabled) ? 0.6 : 1 })
341874
- }, null, 12, _hoisted_6$1)], 8, _hoisted_5$2)) : (exports_vue.openBlock(), exports_vue.createElementBlock(exports_vue.Fragment, { key: 2 }, [
342009
+ }, null, 12, _hoisted_6$3)], 8, _hoisted_5$4)) : (exports_vue.openBlock(), exports_vue.createElementBlock(exports_vue.Fragment, { key: 2 }, [
341875
342010
  exports_vue.unref(icon) ? (exports_vue.openBlock(), exports_vue.createBlock(ToolbarButtonIcon_default, {
341876
342011
  key: 0,
341877
342012
  color: exports_vue.unref(iconColor),
@@ -341883,11 +342018,13 @@ function print() { __p += __j.call(arguments, '') }
341883
342018
  "icon",
341884
342019
  "name"
341885
342020
  ])) : exports_vue.createCommentVNode("", true),
341886
- exports_vue.unref(label) && !exports_vue.unref(hideLabel) && !exports_vue.unref(inlineTextInputVisible) ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_7$1, exports_vue.toDisplayString(exports_vue.unref(label)), 1)) : exports_vue.createCommentVNode("", true),
342021
+ exports_vue.unref(label) && !exports_vue.unref(hideLabel) && !exports_vue.unref(inlineTextInputVisible) ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_7$2, exports_vue.toDisplayString(exports_vue.unref(label)), 1)) : exports_vue.createCommentVNode("", true),
341887
342022
  exports_vue.unref(inlineTextInputVisible) ? (exports_vue.openBlock(), exports_vue.createElementBlock("span", _hoisted_8, [exports_vue.unref(name) === "fontSize" ? exports_vue.withDirectives((exports_vue.openBlock(), exports_vue.createElementBlock("input", {
341888
342023
  key: 0,
341889
342024
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => inlineTextInput.value = $event),
341890
- onKeydown: exports_vue.withKeys(exports_vue.withModifiers(handleInputSubmit, ["prevent"]), ["enter"]),
342025
+ onKeydown: [exports_vue.withKeys(exports_vue.withModifiers(handleInputSubmit, ["prevent"]), ["enter"]), exports_vue.withKeys(handleInputTab, ["tab"])],
342026
+ onFocus: selectInlineInput,
342027
+ onClick: _cache[2] || (_cache[2] = exports_vue.withModifiers(() => {}, ["stop"])),
341891
342028
  type: "text",
341892
342029
  class: exports_vue.normalizeClass(["button-text-input button-text-input--font-size", { "high-contrast": exports_vue.unref(isHighContrastMode$1) }]),
341893
342030
  id: "inlineTextInput-" + exports_vue.unref(name),
@@ -341896,7 +342033,7 @@ function print() { __p += __j.call(arguments, '') }
341896
342033
  ref: inlineInput
341897
342034
  }, null, 42, _hoisted_9)), [[exports_vue.vModelText, inlineTextInput.value]]) : exports_vue.withDirectives((exports_vue.openBlock(), exports_vue.createElementBlock("input", {
341898
342035
  key: 1,
341899
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => inlineTextInput.value = $event),
342036
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => inlineTextInput.value = $event),
341900
342037
  placeholder: exports_vue.unref(label),
341901
342038
  onKeydown: exports_vue.withKeys(exports_vue.withModifiers(handleInputSubmit, ["prevent"]), ["enter"]),
341902
342039
  type: "text",
@@ -341906,19 +342043,32 @@ function print() { __p += __j.call(arguments, '') }
341906
342043
  ref_key: "inlineInput",
341907
342044
  ref: inlineInput
341908
342045
  }, null, 40, _hoisted_10)), [[exports_vue.vModelText, inlineTextInput.value]])])) : exports_vue.createCommentVNode("", true),
341909
- exports_vue.unref(hasCaret) ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
342046
+ isInlineSplitField.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("button", {
341910
342047
  key: 3,
342048
+ type: "button",
342049
+ class: "sd-toolbar-button__field-caret sd-toolbar-split-field__caret",
342050
+ "data-item": `btn-${exports_vue.unref(name) || ""}-caret`,
342051
+ "aria-label": `${exports_vue.unref(attributes).ariaLabel} options`,
342052
+ disabled: exports_vue.unref(disabled),
342053
+ tabindex: "-1",
342054
+ onMousedown: _cache[4] || (_cache[4] = exports_vue.withModifiers(() => {}, ["prevent"]))
342055
+ }, [exports_vue.createElementVNode("span", {
341911
342056
  class: "sd-dropdown-caret",
341912
342057
  innerHTML: caretIcon.value,
341913
342058
  style: exports_vue.normalizeStyle({ opacity: exports_vue.unref(disabled) ? 0.6 : 1 })
341914
- }, null, 12, _hoisted_11)) : exports_vue.createCommentVNode("", true)
342059
+ }, null, 12, _hoisted_12)], 40, _hoisted_11)) : exports_vue.unref(hasCaret) ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
342060
+ key: 4,
342061
+ class: "sd-dropdown-caret",
342062
+ innerHTML: caretIcon.value,
342063
+ style: exports_vue.normalizeStyle({ opacity: exports_vue.unref(disabled) ? 0.6 : 1 })
342064
+ }, null, 12, _hoisted_13)) : exports_vue.createCommentVNode("", true)
341915
342065
  ], 64)),
341916
- exports_vue.createElementVNode("div", _hoisted_12, exports_vue.toDisplayString(`${exports_vue.unref(attributes).ariaLabel} ${exports_vue.unref(active) ? "selected" : "unset"}`), 1)
341917
- ], 10, _hoisted_2$6)], 46, _hoisted_1$9);
342066
+ exports_vue.createElementVNode("div", _hoisted_14, exports_vue.toDisplayString(`${exports_vue.unref(attributes).ariaLabel} ${exports_vue.unref(active) ? "selected" : "unset"}`), 1)
342067
+ ], 10, _hoisted_2$7)], 46, _hoisted_1$10);
341918
342068
  };
341919
342069
  }
341920
- }, [["__scopeId", "data-v-360f6a95"]]);
341921
- _hoisted_1$8 = {
342070
+ }, [["__scopeId", "data-v-2caa0057"]]);
342071
+ _hoisted_1$9 = {
341922
342072
  class: "toolbar-separator",
341923
342073
  role: "separator",
341924
342074
  "aria-label": "Toolbar separator"
@@ -341938,16 +342088,16 @@ function print() { __p += __j.call(arguments, '') }
341938
342088
  return "var(--sd-ui-border, #dbdbdb)";
341939
342089
  };
341940
342090
  return (_ctx, _cache) => {
341941
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$8, [exports_vue.createElementVNode("div", {
342091
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$9, [exports_vue.createElementVNode("div", {
341942
342092
  class: "separator-inner",
341943
342093
  style: exports_vue.normalizeStyle({ backgroundColor: getSeparatorColor() })
341944
342094
  }, null, 4)]);
341945
342095
  };
341946
342096
  }
341947
342097
  }, [["__scopeId", "data-v-d027f7fc"]]);
341948
- _hoisted_1$7 = { class: "overflow-menu" };
341949
- _hoisted_2$5 = { class: "overflow-menu-trigger" };
341950
- _hoisted_3$4 = {
342098
+ _hoisted_1$8 = { class: "overflow-menu" };
342099
+ _hoisted_2$6 = { class: "overflow-menu-trigger" };
342100
+ _hoisted_3$5 = {
341951
342101
  key: 0,
341952
342102
  class: "overflow-menu_items",
341953
342103
  role: "group"
@@ -341999,10 +342149,10 @@ function print() { __p += __j.call(arguments, '') }
341999
342149
  document.removeEventListener("keydown", handleKeyDown$1, true);
342000
342150
  });
342001
342151
  return (_ctx, _cache) => {
342002
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$7, [exports_vue.createElementVNode("div", _hoisted_2$5, [exports_vue.createVNode(ToolbarButton_default, {
342152
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$8, [exports_vue.createElementVNode("div", _hoisted_2$6, [exports_vue.createVNode(ToolbarButton_default, {
342003
342153
  "toolbar-item": overflowToolbarItem.value,
342004
342154
  onButtonClick: toggleOverflowMenu
342005
- }, null, 8, ["toolbar-item"])]), isOverflowMenuOpened.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_3$4, [exports_vue.createVNode(ButtonGroup_default, {
342155
+ }, null, 8, ["toolbar-item"])]), isOverflowMenuOpened.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_3$5, [exports_vue.createVNode(ButtonGroup_default, {
342006
342156
  class: "superdoc-toolbar-overflow",
342007
342157
  "toolbar-items": __props.overflowItems,
342008
342158
  "from-overflow": "",
@@ -342012,13 +342162,13 @@ function print() { __p += __j.call(arguments, '') }
342012
342162
  };
342013
342163
  }
342014
342164
  }, [["__scopeId", "data-v-35b48dff"]]);
342015
- _hoisted_1$6 = { class: "toolbar-dropdown" };
342016
- _hoisted_2$4 = ["onClick"];
342017
- _hoisted_3$3 = {
342165
+ _hoisted_1$7 = { class: "toolbar-dropdown" };
342166
+ _hoisted_2$5 = ["onClick"];
342167
+ _hoisted_3$4 = {
342018
342168
  key: 0,
342019
342169
  class: "toolbar-dropdown-option__icon"
342020
342170
  };
342021
- _hoisted_4$3 = { class: "toolbar-dropdown-option__label" };
342171
+ _hoisted_4$4 = { class: "toolbar-dropdown-option__label" };
342022
342172
  ToolbarDropdown_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
342023
342173
  __name: "ToolbarDropdown",
342024
342174
  props: {
@@ -342366,7 +342516,7 @@ function print() { __p += __j.call(arguments, '') }
342366
342516
  window.removeEventListener("scroll", updateMenuPosition, true);
342367
342517
  });
342368
342518
  return (_ctx, _cache) => {
342369
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$6, [exports_vue.createElementVNode("div", {
342519
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$7, [exports_vue.createElementVNode("div", {
342370
342520
  ref_key: "triggerRef",
342371
342521
  ref: triggerRef,
342372
342522
  class: "toolbar-dropdown-trigger",
@@ -342401,13 +342551,486 @@ function print() { __p += __j.call(arguments, '') }
342401
342551
  }), [isRenderOption(option) ? (exports_vue.openBlock(), exports_vue.createBlock(exports_vue.unref(RenderOption), {
342402
342552
  key: 0,
342403
342553
  option
342404
- }, null, 8, ["option"])) : (exports_vue.openBlock(), exports_vue.createElementBlock(exports_vue.Fragment, { key: 1 }, [hasIcon(option) ? (exports_vue.openBlock(), exports_vue.createElementBlock("span", _hoisted_3$3, [exports_vue.createVNode(exports_vue.unref(OptionIcon), { option }, null, 8, ["option"])])) : exports_vue.createCommentVNode("", true), exports_vue.createElementVNode("span", _hoisted_4$3, exports_vue.toDisplayString(option.label), 1)], 64))], 16, _hoisted_2$4);
342554
+ }, null, 8, ["option"])) : (exports_vue.openBlock(), exports_vue.createElementBlock(exports_vue.Fragment, { key: 1 }, [hasIcon(option) ? (exports_vue.openBlock(), exports_vue.createElementBlock("span", _hoisted_3$4, [exports_vue.createVNode(exports_vue.unref(OptionIcon), { option }, null, 8, ["option"])])) : exports_vue.createCommentVNode("", true), exports_vue.createElementVNode("span", _hoisted_4$4, exports_vue.toDisplayString(option.label), 1)], 64))], 16, _hoisted_2$5);
342405
342555
  }), 128))], 16)) : exports_vue.createCommentVNode("", true)]),
342406
342556
  _: 1
342407
342557
  })]))]);
342408
342558
  };
342409
342559
  }
342410
342560
  }, [["__scopeId", "data-v-69732782"]]);
342561
+ _hoisted_1$6 = [
342562
+ "value",
342563
+ "disabled",
342564
+ "aria-label",
342565
+ "aria-expanded",
342566
+ "aria-controls",
342567
+ "aria-activedescendant"
342568
+ ];
342569
+ _hoisted_2$4 = ["aria-label", "disabled"];
342570
+ _hoisted_3$3 = ["innerHTML"];
342571
+ _hoisted_4$3 = ["id", "aria-label"];
342572
+ _hoisted_5$3 = [
342573
+ "id",
342574
+ "aria-selected",
342575
+ "aria-label",
342576
+ "onMousedown",
342577
+ "onMouseenter"
342578
+ ];
342579
+ _hoisted_6$2 = { class: "toolbar-dropdown-option__label" };
342580
+ _hoisted_7$1 = {
342581
+ class: "sd-button-label sd-font-combobox__legacy-label",
342582
+ "aria-hidden": "true"
342583
+ };
342584
+ FontFamilyCombobox_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
342585
+ __name: "FontFamilyCombobox",
342586
+ props: {
342587
+ item: {
342588
+ type: Object,
342589
+ required: true
342590
+ },
342591
+ uiFontFamily: {
342592
+ type: String,
342593
+ default: "Arial, Helvetica, sans-serif"
342594
+ }
342595
+ },
342596
+ emits: [
342597
+ "command",
342598
+ "item-clicked",
342599
+ "tab-out",
342600
+ "editor-handoff"
342601
+ ],
342602
+ setup(__props, { emit: __emit }) {
342603
+ const props = __props;
342604
+ const emit = __emit;
342605
+ const { isHighContrastMode: isHighContrastMode$1 } = useHighContrastMode();
342606
+ const inputRef = exports_vue.ref(null);
342607
+ const rootRef = exports_vue.ref(null);
342608
+ const popupRef = exports_vue.ref(null);
342609
+ const optionRefs = exports_vue.ref([]);
342610
+ const isEditing = exports_vue.ref(false);
342611
+ const isOpen = exports_vue.ref(false);
342612
+ const activeIndex = exports_vue.ref(-1);
342613
+ const query = exports_vue.ref("");
342614
+ const inputDisplay = exports_vue.ref("");
342615
+ const isComposing = exports_vue.ref(false);
342616
+ const menuPosition = exports_vue.ref({
342617
+ top: "0px",
342618
+ left: "0px",
342619
+ minWidth: "0px",
342620
+ maxHeight: "none"
342621
+ });
342622
+ const options = exports_vue.computed(() => props.item.nestedOptions?.value ?? []);
342623
+ const optionLabels = exports_vue.computed(() => options.value.map((option) => String(option?.label ?? "")));
342624
+ const appliedLabel = exports_vue.computed(() => String(props.item.label?.value ?? ""));
342625
+ const disabled = exports_vue.computed(() => Boolean(props.item.disabled?.value));
342626
+ const ariaLabel = exports_vue.computed(() => props.item.attributes?.value?.ariaLabel ?? "Font family");
342627
+ const boundValue = exports_vue.computed(() => isEditing.value ? inputDisplay.value : appliedLabel.value);
342628
+ const listboxId = exports_vue.computed(() => `sd-fontfamily-listbox-${props.item.id?.value ?? "default"}`);
342629
+ const optionId = (index2) => `${listboxId.value}-option-${index2}`;
342630
+ const activeDescendant = exports_vue.computed(() => isOpen.value && activeIndex.value >= 0 ? optionId(activeIndex.value) : undefined);
342631
+ const caretIcon = exports_vue.computed(() => isOpen.value ? toolbarIcons.dropdownCaretUp : toolbarIcons.dropdownCaretDown);
342632
+ const previewFamilyForLabel = (label) => {
342633
+ const normalized = String(label ?? "").trim().toLowerCase();
342634
+ return options.value.find((candidate) => String(candidate?.label ?? "").trim().toLowerCase() === normalized)?.props?.style?.fontFamily || label || props.uiFontFamily;
342635
+ };
342636
+ const inputStyle = exports_vue.computed(() => ({ fontFamily: previewFamilyForLabel(isEditing.value ? inputDisplay.value : appliedLabel.value) }));
342637
+ const appliedIndex = () => {
342638
+ const selectedKey = props.item.selectedValue?.value;
342639
+ if (selectedKey) {
342640
+ const byKey = options.value.findIndex((option) => option?.key === selectedKey);
342641
+ if (byKey >= 0)
342642
+ return byKey;
342643
+ }
342644
+ return optionLabels.value.findIndex((label) => label.toLowerCase() === appliedLabel.value.toLowerCase());
342645
+ };
342646
+ const setSelectionRange = (start$1, end$1) => {
342647
+ const el = inputRef.value;
342648
+ if (!el || typeof el.setSelectionRange !== "function")
342649
+ return;
342650
+ try {
342651
+ el.setSelectionRange(start$1, end$1);
342652
+ } catch {}
342653
+ };
342654
+ const scrollActiveIntoView = () => {
342655
+ optionRefs.value[activeIndex.value]?.scrollIntoView?.({
342656
+ block: "nearest",
342657
+ inline: "nearest"
342658
+ });
342659
+ };
342660
+ const updatePosition$1 = () => {
342661
+ const trigger = rootRef.value;
342662
+ if (!trigger)
342663
+ return;
342664
+ const rect = trigger.getBoundingClientRect();
342665
+ const menuEl = popupRef.value;
342666
+ const menuHeight = menuEl?.scrollHeight ?? menuEl?.offsetHeight ?? 0;
342667
+ const viewportHeight = window.innerHeight || document.documentElement.clientHeight || 0;
342668
+ const viewportWidth = window.innerWidth || document.documentElement.clientWidth || 0;
342669
+ const gutter = 8;
342670
+ const gap = 4;
342671
+ const belowTop = rect.bottom + gap;
342672
+ const aboveBottom = rect.top - gap;
342673
+ const availableBelow = Math.max(0, viewportHeight - belowTop - gutter);
342674
+ const availableAbove = Math.max(0, aboveBottom - gutter);
342675
+ const openAbove = availableBelow < menuHeight && availableAbove > availableBelow;
342676
+ const maxHeight = openAbove ? availableAbove : availableBelow;
342677
+ const renderHeight = menuHeight ? Math.min(menuHeight, maxHeight) : maxHeight;
342678
+ const top$1 = openAbove ? Math.max(gutter, aboveBottom - renderHeight) : belowTop;
342679
+ const left$1 = Math.min(Math.max(gutter, rect.left), Math.max(gutter, viewportWidth - rect.width - gutter));
342680
+ menuPosition.value = {
342681
+ top: `${top$1}px`,
342682
+ left: `${left$1}px`,
342683
+ minWidth: `${rect.width}px`,
342684
+ maxHeight: `${maxHeight}px`
342685
+ };
342686
+ };
342687
+ const menuStyle = exports_vue.computed(() => ({
342688
+ position: "fixed",
342689
+ top: menuPosition.value.top,
342690
+ left: menuPosition.value.left,
342691
+ minWidth: menuPosition.value.minWidth,
342692
+ maxHeight: menuPosition.value.maxHeight,
342693
+ fontFamily: props.uiFontFamily,
342694
+ zIndex: 2000
342695
+ }));
342696
+ const setItemExpanded = (open) => {
342697
+ if (props.item.expand && typeof props.item.expand === "object" && "value" in props.item.expand)
342698
+ props.item.expand.value = open;
342699
+ };
342700
+ const openList = (index2, { focusInput = false } = {}) => {
342701
+ if (disabled.value || !options.value.length) {
342702
+ setItemExpanded(false);
342703
+ return;
342704
+ }
342705
+ isOpen.value = true;
342706
+ setItemExpanded(true);
342707
+ activeIndex.value = index2 ?? -1;
342708
+ if (focusInput) {
342709
+ isEditing.value = true;
342710
+ inputDisplay.value = appliedLabel.value;
342711
+ inputRef.value?.focus();
342712
+ }
342713
+ exports_vue.nextTick(() => {
342714
+ updatePosition$1();
342715
+ scrollActiveIntoView();
342716
+ });
342717
+ };
342718
+ const closeList = ({ syncItem = true } = {}) => {
342719
+ isOpen.value = false;
342720
+ activeIndex.value = -1;
342721
+ if (syncItem)
342722
+ setItemExpanded(false);
342723
+ };
342724
+ const resetToApplied = () => {
342725
+ closeList();
342726
+ isEditing.value = false;
342727
+ query.value = "";
342728
+ inputDisplay.value = appliedLabel.value;
342729
+ };
342730
+ const onFocus = () => {
342731
+ if (disabled.value)
342732
+ return;
342733
+ emit("item-clicked");
342734
+ isEditing.value = true;
342735
+ query.value = "";
342736
+ inputDisplay.value = appliedLabel.value;
342737
+ exports_vue.nextTick(() => setSelectionRange(0, inputDisplay.value.length));
342738
+ };
342739
+ const onInputMousedown = (event) => {
342740
+ if (disabled.value || document.activeElement === inputRef.value)
342741
+ return;
342742
+ event.preventDefault();
342743
+ inputRef.value?.focus();
342744
+ isEditing.value = true;
342745
+ query.value = "";
342746
+ inputDisplay.value = appliedLabel.value;
342747
+ setSelectionRange(0, appliedLabel.value.length);
342748
+ };
342749
+ const onBlur = (event) => {
342750
+ const next2 = event.relatedTarget;
342751
+ if (next2 instanceof Node && rootRef.value?.contains(next2))
342752
+ return;
342753
+ if (next2 instanceof Node && popupRef.value?.contains(next2))
342754
+ return;
342755
+ resetToApplied();
342756
+ };
342757
+ const onInput = (event) => {
342758
+ if (isComposing.value)
342759
+ return;
342760
+ const el = event.target;
342761
+ const typed = el.value;
342762
+ const selectionStart = typeof el.selectionStart === "number" ? el.selectionStart : typed.length;
342763
+ const selectionEnd = typeof el.selectionEnd === "number" ? el.selectionEnd : selectionStart;
342764
+ const isDelete = typeof event.inputType === "string" && event.inputType.startsWith("delete");
342765
+ const editAtEnd = selectionStart === typed.length && selectionEnd === typed.length;
342766
+ query.value = typed;
342767
+ const result = computeTypeahead(typed, optionLabels.value, { autocomplete: !isDelete && editAtEnd });
342768
+ inputDisplay.value = result.display;
342769
+ el.value = result.display;
342770
+ if (result.display === typed && !editAtEnd)
342771
+ setSelectionRange(selectionStart, selectionEnd);
342772
+ else
342773
+ setSelectionRange(result.selectionStart, result.selectionEnd);
342774
+ if (isOpen.value) {
342775
+ activeIndex.value = result.matchIndex;
342776
+ exports_vue.nextTick(scrollActiveIntoView);
342777
+ }
342778
+ };
342779
+ const onCompositionEnd = (event) => {
342780
+ isComposing.value = false;
342781
+ onInput(event);
342782
+ };
342783
+ const moveActive = (direction) => {
342784
+ if (!options.value.length)
342785
+ return;
342786
+ const count = options.value.length;
342787
+ activeIndex.value = ((activeIndex.value < 0 ? direction > 0 ? -1 : 0 : activeIndex.value) + direction + count) % count;
342788
+ exports_vue.nextTick(scrollActiveIntoView);
342789
+ };
342790
+ const emitFontCommand = (label, option) => {
342791
+ emit("item-clicked");
342792
+ emit("command", {
342793
+ item: props.item,
342794
+ argument: label,
342795
+ option
342796
+ });
342797
+ if (option)
342798
+ props.item.selectedValue.value = option.key;
342799
+ };
342800
+ const applyOption = (option) => {
342801
+ if (!option)
342802
+ return;
342803
+ emitFontCommand(option.label, option);
342804
+ isEditing.value = false;
342805
+ query.value = "";
342806
+ inputDisplay.value = option.label;
342807
+ closeList();
342808
+ };
342809
+ const applySelection = () => {
342810
+ if (isOpen.value && activeIndex.value >= 0) {
342811
+ applyOption(options.value[activeIndex.value]);
342812
+ return true;
342813
+ }
342814
+ const matchIndex = findPrefixMatchIndex(query.value, optionLabels.value);
342815
+ if (matchIndex >= 0) {
342816
+ applyOption(options.value[matchIndex]);
342817
+ return true;
342818
+ }
342819
+ const custom2 = normalizeCustomFontFamily(query.value);
342820
+ if (custom2) {
342821
+ emitFontCommand(custom2, null);
342822
+ isEditing.value = false;
342823
+ query.value = "";
342824
+ inputDisplay.value = custom2;
342825
+ closeList();
342826
+ return true;
342827
+ }
342828
+ return false;
342829
+ };
342830
+ const onKeydown = (event) => {
342831
+ if (event.isComposing || isComposing.value || event.keyCode === 229)
342832
+ return;
342833
+ if (event.ctrlKey || event.metaKey || event.altKey)
342834
+ return;
342835
+ switch (event.key) {
342836
+ case "ArrowDown":
342837
+ event.preventDefault();
342838
+ if (!isOpen.value) {
342839
+ const typedMatch = findPrefixMatchIndex(query.value, optionLabels.value);
342840
+ const index2 = typedMatch >= 0 ? typedMatch : appliedIndex();
342841
+ openList(index2 >= 0 ? index2 : 0);
342842
+ } else
342843
+ moveActive(1);
342844
+ break;
342845
+ case "ArrowUp":
342846
+ event.preventDefault();
342847
+ if (!isOpen.value) {
342848
+ const typedMatch = findPrefixMatchIndex(query.value, optionLabels.value);
342849
+ const index2 = typedMatch >= 0 ? typedMatch : appliedIndex();
342850
+ openList(index2 >= 0 ? index2 : options.value.length - 1);
342851
+ } else
342852
+ moveActive(-1);
342853
+ break;
342854
+ case "Enter":
342855
+ event.preventDefault();
342856
+ if (applySelection())
342857
+ emit("editor-handoff");
342858
+ inputRef.value?.blur();
342859
+ break;
342860
+ case "Tab":
342861
+ event.preventDefault();
342862
+ applySelection();
342863
+ closeList();
342864
+ inputRef.value?.blur();
342865
+ emit("tab-out", event);
342866
+ break;
342867
+ case "Escape":
342868
+ event.preventDefault();
342869
+ resetToApplied();
342870
+ exports_vue.nextTick(() => inputRef.value?.focus());
342871
+ break;
342872
+ default:
342873
+ break;
342874
+ }
342875
+ };
342876
+ const onCaretMousedown = (event) => {
342877
+ event.preventDefault();
342878
+ if (disabled.value)
342879
+ return;
342880
+ emit("item-clicked");
342881
+ if (!isEditing.value) {
342882
+ isEditing.value = true;
342883
+ inputDisplay.value = appliedLabel.value;
342884
+ inputRef.value?.focus();
342885
+ }
342886
+ if (isOpen.value)
342887
+ closeList();
342888
+ else {
342889
+ const index2 = appliedIndex();
342890
+ openList(index2 >= 0 ? index2 : 0);
342891
+ }
342892
+ };
342893
+ const onOptionMousedown = (event, option) => {
342894
+ event.preventDefault();
342895
+ applyOption(option);
342896
+ emit("editor-handoff");
342897
+ inputRef.value?.blur();
342898
+ };
342899
+ const onOptionMouseenter = (index2) => {
342900
+ activeIndex.value = index2;
342901
+ };
342902
+ const handleDocumentPointerDown = (event) => {
342903
+ if (!isOpen.value)
342904
+ return;
342905
+ const target = event.target;
342906
+ if (!(target instanceof Element))
342907
+ return;
342908
+ if (rootRef.value?.contains(target) || popupRef.value?.contains(target))
342909
+ return;
342910
+ closeList();
342911
+ };
342912
+ exports_vue.watch(isOpen, (open) => {
342913
+ if (open) {
342914
+ document.addEventListener("pointerdown", handleDocumentPointerDown, true);
342915
+ window.addEventListener("resize", updatePosition$1);
342916
+ window.addEventListener("scroll", updatePosition$1, true);
342917
+ } else {
342918
+ document.removeEventListener("pointerdown", handleDocumentPointerDown, true);
342919
+ window.removeEventListener("resize", updatePosition$1);
342920
+ window.removeEventListener("scroll", updatePosition$1, true);
342921
+ optionRefs.value = [];
342922
+ }
342923
+ }, { immediate: true });
342924
+ exports_vue.onBeforeUnmount(() => {
342925
+ document.removeEventListener("pointerdown", handleDocumentPointerDown, true);
342926
+ window.removeEventListener("resize", updatePosition$1);
342927
+ window.removeEventListener("scroll", updatePosition$1, true);
342928
+ });
342929
+ const setOptionRef = (el, index2) => {
342930
+ if (!el) {
342931
+ delete optionRefs.value[index2];
342932
+ return;
342933
+ }
342934
+ optionRefs.value[index2] = el;
342935
+ };
342936
+ const isOptionActive = (index2) => index2 === activeIndex.value;
342937
+ const isOptionSelected = (option) => option?.key && option.key === props.item.selectedValue?.value;
342938
+ exports_vue.watch(appliedLabel, (label) => {
342939
+ if (isEditing.value)
342940
+ return;
342941
+ inputDisplay.value = label;
342942
+ });
342943
+ exports_vue.watch(() => Boolean(props.item.expand?.value), (expanded) => {
342944
+ if (expanded && !isOpen.value) {
342945
+ const index2 = appliedIndex();
342946
+ openList(index2 >= 0 ? index2 : 0, { focusInput: true });
342947
+ return;
342948
+ }
342949
+ if (!expanded && isOpen.value)
342950
+ closeList({ syncItem: false });
342951
+ });
342952
+ return (_ctx, _cache) => {
342953
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", {
342954
+ ref_key: "rootRef",
342955
+ ref: rootRef,
342956
+ class: exports_vue.normalizeClass(["sd-font-combobox sd-toolbar-split-field", {
342957
+ "sd-disabled": disabled.value,
342958
+ "high-contrast": exports_vue.unref(isHighContrastMode$1)
342959
+ }]),
342960
+ style: exports_vue.normalizeStyle(props.item.style?.value),
342961
+ "data-item": "btn-fontFamily"
342962
+ }, [
342963
+ exports_vue.createElementVNode("span", {
342964
+ class: "sd-font-combobox__field sd-toolbar-split-field__main",
342965
+ onMousedown: onInputMousedown
342966
+ }, [exports_vue.createElementVNode("input", {
342967
+ ref_key: "inputRef",
342968
+ ref: inputRef,
342969
+ class: "button-text-input sd-font-combobox__input",
342970
+ type: "text",
342971
+ role: "combobox",
342972
+ autocomplete: "off",
342973
+ spellcheck: "false",
342974
+ value: boundValue.value,
342975
+ style: exports_vue.normalizeStyle(inputStyle.value),
342976
+ disabled: disabled.value,
342977
+ "aria-label": ariaLabel.value,
342978
+ "aria-expanded": isOpen.value ? "true" : "false",
342979
+ "aria-controls": listboxId.value,
342980
+ "aria-activedescendant": activeDescendant.value,
342981
+ "aria-haspopup": "listbox",
342982
+ "aria-autocomplete": "both",
342983
+ onFocus,
342984
+ onBlur,
342985
+ onInput,
342986
+ onKeydown,
342987
+ onCompositionstart: _cache[0] || (_cache[0] = ($event) => isComposing.value = true),
342988
+ onCompositionend: onCompositionEnd
342989
+ }, null, 44, _hoisted_1$6)], 32),
342990
+ exports_vue.createElementVNode("button", {
342991
+ type: "button",
342992
+ class: "sd-font-combobox__caret sd-toolbar-split-field__caret",
342993
+ "data-item": "btn-fontFamily-toggle",
342994
+ tabindex: "-1",
342995
+ "aria-label": `${ariaLabel.value} options`,
342996
+ disabled: disabled.value,
342997
+ onMousedown: onCaretMousedown
342998
+ }, [exports_vue.createElementVNode("span", {
342999
+ class: "sd-dropdown-caret",
343000
+ innerHTML: caretIcon.value
343001
+ }, null, 8, _hoisted_3$3)], 40, _hoisted_2$4),
343002
+ (exports_vue.openBlock(), exports_vue.createBlock(exports_vue.Teleport, { to: "body" }, [isOpen.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
343003
+ key: 0,
343004
+ ref_key: "popupRef",
343005
+ ref: popupRef,
343006
+ role: "listbox",
343007
+ id: listboxId.value,
343008
+ "aria-label": ariaLabel.value,
343009
+ class: exports_vue.normalizeClass(["sd-font-combobox__listbox", { "high-contrast": exports_vue.unref(isHighContrastMode$1) }]),
343010
+ style: exports_vue.normalizeStyle(menuStyle.value)
343011
+ }, [(exports_vue.openBlock(true), exports_vue.createElementBlock(exports_vue.Fragment, null, exports_vue.renderList(options.value, (option, index2) => {
343012
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", exports_vue.mergeProps({
343013
+ key: option.key,
343014
+ ref_for: true,
343015
+ ref: (el) => setOptionRef(el, index2),
343016
+ id: optionId(index2),
343017
+ role: "option",
343018
+ class: ["toolbar-dropdown-option sd-font-combobox__option", {
343019
+ "sd-active": isOptionActive(index2),
343020
+ "sd-selected": isOptionSelected(option)
343021
+ }],
343022
+ "aria-selected": isOptionSelected(option) ? "true" : "false",
343023
+ "aria-label": `${ariaLabel.value} - ${option.label}`
343024
+ }, { ref_for: true }, option.props, {
343025
+ onMousedown: (e) => onOptionMousedown(e, option),
343026
+ onMouseenter: ($event) => onOptionMouseenter(index2)
343027
+ }), [exports_vue.createElementVNode("span", _hoisted_6$2, exports_vue.toDisplayString(option.label), 1)], 16, _hoisted_5$3);
343028
+ }), 128))], 14, _hoisted_4$3)) : exports_vue.createCommentVNode("", true)])),
343029
+ exports_vue.createElementVNode("span", _hoisted_7$1, exports_vue.toDisplayString(appliedLabel.value), 1)
343030
+ ], 6);
343031
+ };
343032
+ }
343033
+ }, [["__scopeId", "data-v-1e39033e"]]);
342411
343034
  SdTooltip_default = /* @__PURE__ */ __plugin_vue_export_helper_default(/* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
342412
343035
  __name: "SdTooltip",
342413
343036
  props: {
@@ -342423,6 +343046,10 @@ function print() { __p += __j.call(arguments, '') }
342423
343046
  type: Number,
342424
343047
  default: 100
342425
343048
  },
343049
+ autoHideDuration: {
343050
+ type: Number,
343051
+ default: 0
343052
+ },
342426
343053
  disabled: {
342427
343054
  type: Boolean,
342428
343055
  default: false
@@ -342444,6 +343071,7 @@ function print() { __p += __j.call(arguments, '') }
342444
343071
  });
342445
343072
  let closeTimeout = null;
342446
343073
  let openTimeout = null;
343074
+ let autoHideTimeout = null;
342447
343075
  const mergedContentClass = exports_vue.computed(() => ["sd-tooltip-content", attrs.class]);
342448
343076
  const contentStyle = exports_vue.computed(() => ({
342449
343077
  ...props.contentStyle,
@@ -342465,6 +343093,21 @@ function print() { __p += __j.call(arguments, '') }
342465
343093
  openTimeout = null;
342466
343094
  }
342467
343095
  };
343096
+ const clearAutoHideTimeout = () => {
343097
+ if (autoHideTimeout) {
343098
+ window.clearTimeout(autoHideTimeout);
343099
+ autoHideTimeout = null;
343100
+ }
343101
+ };
343102
+ const scheduleAutoHide = () => {
343103
+ clearAutoHideTimeout();
343104
+ if (props.autoHideDuration <= 0)
343105
+ return;
343106
+ autoHideTimeout = window.setTimeout(() => {
343107
+ autoHideTimeout = null;
343108
+ close2();
343109
+ }, props.autoHideDuration);
343110
+ };
342468
343111
  const updatePosition$1 = () => {
342469
343112
  if (!triggerRef.value || !contentRef.value)
342470
343113
  return;
@@ -342490,10 +343133,12 @@ function print() { __p += __j.call(arguments, '') }
342490
343133
  isOpen.value = true;
342491
343134
  await exports_vue.nextTick();
342492
343135
  updatePosition$1();
343136
+ scheduleAutoHide();
342493
343137
  };
342494
343138
  const close2 = () => {
342495
343139
  clearOpenTimeout();
342496
343140
  clearCloseTimeout();
343141
+ clearAutoHideTimeout();
342497
343142
  if (!isOpen.value)
342498
343143
  return;
342499
343144
  isOpen.value = false;
@@ -342565,6 +343210,7 @@ function print() { __p += __j.call(arguments, '') }
342565
343210
  exports_vue.onBeforeUnmount(() => {
342566
343211
  clearOpenTimeout();
342567
343212
  clearCloseTimeout();
343213
+ clearAutoHideTimeout();
342568
343214
  window.removeEventListener("resize", updatePosition$1);
342569
343215
  window.removeEventListener("scroll", updatePosition$1, true);
342570
343216
  document.removeEventListener("keydown", handleEscape, true);
@@ -342595,15 +343241,17 @@ function print() { __p += __j.call(arguments, '') }
342595
343241
  })]))], 64);
342596
343242
  };
342597
343243
  }
342598
- }), [["__scopeId", "data-v-d8dd2f5a"]]);
342599
- _hoisted_1$5 = [
343244
+ }), [["__scopeId", "data-v-f0925f67"]]);
343245
+ _hoisted_1$5 = ["data-toolbar-position"];
343246
+ _hoisted_2$3 = [
342600
343247
  "onKeydown",
342601
343248
  "tabindex",
342602
343249
  "data-item-id"
342603
343250
  ];
342604
- _hoisted_2$3 = { key: 0 };
342605
343251
  _hoisted_3$2 = { key: 0 };
342606
343252
  _hoisted_4$2 = { key: 0 };
343253
+ _hoisted_5$2 = { key: 0 };
343254
+ _hoisted_6$1 = { key: 0 };
342607
343255
  ButtonGroup_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
342608
343256
  __name: "ButtonGroup",
342609
343257
  props: {
@@ -342664,8 +343312,10 @@ function print() { __p += __j.call(arguments, '') }
342664
343312
  });
342665
343313
  const isButton = (item) => item.type === "button";
342666
343314
  const isDropdown = (item) => item.type === "dropdown";
343315
+ const isFontFamily = (item) => item.type === "dropdown" && item.name?.value === "fontFamily";
342667
343316
  const isSeparator = (item) => item.type === "separator";
342668
343317
  const isOverflow = (item) => item.type === "overflow";
343318
+ const hasNestedOptions = (item) => Boolean(item.nestedOptions?.value?.length);
342669
343319
  const getExpanded = (item) => {
342670
343320
  if (!item)
342671
343321
  return false;
@@ -342729,16 +343379,19 @@ function print() { __p += __j.call(arguments, '') }
342729
343379
  argument: null
342730
343380
  });
342731
343381
  };
342732
- const closeDropdowns = () => {
343382
+ const closeDropdowns = (exceptItem = null) => {
342733
343383
  const toolbarItems = proxy?.$toolbar?.toolbarItems || [];
342734
343384
  const overflowItems = proxy?.$toolbar?.overflowItems || [];
342735
343385
  const allItems = [...toolbarItems, ...overflowItems];
342736
343386
  (allItems.length ? allItems : props.toolbarItems).forEach((toolbarItem) => {
343387
+ if (toolbarItem === exceptItem)
343388
+ return;
342737
343389
  const shouldCloseOverflow = isOverflow(toolbarItem) && !props.fromOverflow;
342738
343390
  if (isDropdown(toolbarItem) || shouldCloseOverflow)
342739
343391
  setExpanded(toolbarItem, false);
342740
343392
  });
342741
- currentItem.value = null;
343393
+ if (!exceptItem || currentItem.value !== exceptItem)
343394
+ currentItem.value = null;
342742
343395
  };
342743
343396
  const handleSelect = (item, option) => {
342744
343397
  closeDropdowns();
@@ -342749,6 +343402,39 @@ function print() { __p += __j.call(arguments, '') }
342749
343402
  });
342750
343403
  item.selectedValue.value = option.key;
342751
343404
  };
343405
+ const handleComboboxItemClicked = (item) => {
343406
+ closeDropdowns(item);
343407
+ emit("item-clicked");
343408
+ };
343409
+ const handleComboboxCommand = (payload) => {
343410
+ emit("command", payload);
343411
+ };
343412
+ const waitForFrame = () => new Promise((resolve2) => requestAnimationFrame(resolve2));
343413
+ const flushPendingToolbarMarks = () => Boolean(proxy?.$toolbar?.flushPendingMarkCommands?.());
343414
+ const handleEditorTextInputHandoff = () => {
343415
+ flushPendingToolbarMarks();
343416
+ prepareSelectionForTextInputHandoff(proxy?.$toolbar?.activeEditor);
343417
+ focusEditor();
343418
+ };
343419
+ const handleComboboxTabOut = (startIndex, event) => {
343420
+ closeDropdowns();
343421
+ flushPendingToolbarMarks();
343422
+ if (event.shiftKey)
343423
+ focusAdjacentToolbarControlAfterUpdate(startIndex, -1, () => focusPreviousButtonGroup() || focusEditor());
343424
+ else
343425
+ focusAdjacentToolbarControlAfterUpdate(startIndex, 1, true);
343426
+ };
343427
+ const handleToolbarButtonTabOut = (item, event) => {
343428
+ closeDropdowns();
343429
+ if (item.name.value === "fontSize" && !event.shiftKey) {
343430
+ handleEditorTextInputHandoff();
343431
+ return;
343432
+ }
343433
+ if (event.shiftKey)
343434
+ moveToAdjacentToolbarControl(event, -1);
343435
+ else
343436
+ moveToAdjacentToolbarControl(event, 1) || focusEditor();
343437
+ };
342752
343438
  const dropdownOptions = (item) => {
342753
343439
  if (!item.nestedOptions?.value?.length)
342754
343440
  return [];
@@ -342787,16 +343473,97 @@ function print() { __p += __j.call(arguments, '') }
342787
343473
  previousButton.focus();
342788
343474
  }
342789
343475
  };
343476
+ const focusEditor = () => {
343477
+ const editor = proxy?.$toolbar?.activeEditor;
343478
+ if (editor && typeof editor.focus === "function") {
343479
+ editor.focus();
343480
+ return true;
343481
+ }
343482
+ const editorDom = editor?.view?.dom;
343483
+ if (editorDom instanceof HTMLElement) {
343484
+ editorDom.focus();
343485
+ return true;
343486
+ }
343487
+ return false;
343488
+ };
343489
+ const getToolbarItemFocusTarget = (container) => {
343490
+ if (!(container instanceof HTMLElement))
343491
+ return null;
343492
+ if (container.classList.contains("sd-disabled"))
343493
+ return null;
343494
+ return container.querySelector("input:not([disabled]), textarea:not([disabled]), select:not([disabled])") || container.querySelector('button:not([disabled]), [role="button"]:not(.sd-disabled), [tabindex]:not([tabindex="-1"])');
343495
+ };
343496
+ const getCurrentToolbarItemContainers = () => {
343497
+ if (toolbarItemRefs.value.length)
343498
+ return toolbarItemRefs.value;
343499
+ const group = document.querySelector(`.button-group[data-toolbar-position="${props.position}"]`);
343500
+ if (!group)
343501
+ return [];
343502
+ return Array.from(group.querySelectorAll(":scope > .sd-toolbar-item-ctn"));
343503
+ };
343504
+ const focusToolbarControlFromIndex = (startIndex, direction) => {
343505
+ if (startIndex < 0)
343506
+ return false;
343507
+ const containers = getCurrentToolbarItemContainers();
343508
+ let index2 = startIndex + direction;
343509
+ while (index2 >= 0 && index2 < containers.length) {
343510
+ const container = containers[index2];
343511
+ const target = getToolbarItemFocusTarget(container);
343512
+ if (target instanceof HTMLElement) {
343513
+ containers[startIndex]?.setAttribute("tabindex", "-1");
343514
+ container.setAttribute("tabindex", "0");
343515
+ target.focus();
343516
+ return true;
343517
+ }
343518
+ index2 += direction;
343519
+ }
343520
+ return false;
343521
+ };
343522
+ const focusPreviousButtonGroup = () => {
343523
+ const previousButtonGroup = buttonGroupRef.value?.previousElementSibling;
343524
+ if (previousButtonGroup instanceof HTMLElement) {
343525
+ previousButtonGroup.setAttribute("tabindex", "0");
343526
+ previousButtonGroup.focus();
343527
+ return true;
343528
+ }
343529
+ return false;
343530
+ };
343531
+ const focusAdjacentToolbarControlAfterUpdate = async (startIndex, direction, fallback = false) => {
343532
+ await exports_vue.nextTick();
343533
+ await waitForFrame();
343534
+ if (focusToolbarControlFromIndex(startIndex, direction))
343535
+ return;
343536
+ if (typeof fallback === "function") {
343537
+ fallback();
343538
+ return;
343539
+ }
343540
+ if (fallback)
343541
+ focusEditor();
343542
+ };
343543
+ const moveToAdjacentToolbarControl = (event, direction) => {
343544
+ const current = event.target.closest(".sd-toolbar-item-ctn");
343545
+ if (!(current instanceof HTMLElement))
343546
+ return false;
343547
+ let candidate = direction > 0 ? current.nextElementSibling : current.previousElementSibling;
343548
+ while (candidate) {
343549
+ const target = getToolbarItemFocusTarget(candidate);
343550
+ if (target instanceof HTMLElement) {
343551
+ current.setAttribute("tabindex", "-1");
343552
+ candidate.setAttribute("tabindex", "0");
343553
+ target.focus();
343554
+ return true;
343555
+ }
343556
+ candidate = direction > 0 ? candidate.nextElementSibling : candidate.previousElementSibling;
343557
+ }
343558
+ return false;
343559
+ };
342790
343560
  const moveToNextButtonGroup = (e) => {
342791
343561
  const nextButtonGroup = e.target.closest(".button-group").nextElementSibling;
342792
343562
  if (nextButtonGroup) {
342793
343563
  nextButtonGroup.setAttribute("tabindex", "0");
342794
343564
  nextButtonGroup.focus();
342795
- } else {
342796
- const editor = document.querySelector(".ProseMirror");
342797
- if (editor)
342798
- editor.focus();
342799
- }
343565
+ } else
343566
+ focusEditor();
342800
343567
  };
342801
343568
  const moveToPreviousButtonGroup = (e) => {
342802
343569
  const previousButtonGroup = e.target.closest(".button-group").previousElementSibling;
@@ -342816,7 +343583,7 @@ function print() { __p += __j.call(arguments, '') }
342816
343583
  };
342817
343584
  const handleKeyDown$1 = (e, item) => {
342818
343585
  const isTypingField = e.target.nodeName === "INPUT" || e.target.nodeName === "TEXTAREA";
342819
- const isTypingToolbarItem = item.name.value === "fontSize";
343586
+ const isTypingToolbarItem = item.name.value === "fontSize" || item.name.value === "fontFamily";
342820
343587
  if (isTypingField && isTypingToolbarItem)
342821
343588
  return;
342822
343589
  if (![
@@ -342882,7 +343649,7 @@ function print() { __p += __j.call(arguments, '') }
342882
343649
  const target = event.target;
342883
343650
  if (!(target instanceof Element))
342884
343651
  return;
342885
- if (target.closest(".sd-toolbar-dropdown-menu"))
343652
+ if (target.closest(".sd-toolbar-dropdown-menu, .sd-font-combobox__listbox"))
342886
343653
  return;
342887
343654
  if (buttonGroupRef.value?.contains(target))
342888
343655
  return;
@@ -342907,7 +343674,8 @@ function print() { __p += __j.call(arguments, '') }
342907
343674
  role: "group",
342908
343675
  onFocus: handleFocus,
342909
343676
  ref_key: "buttonGroupRef",
342910
- ref: buttonGroupRef
343677
+ ref: buttonGroupRef,
343678
+ "data-toolbar-position": props.position
342911
343679
  }, [(exports_vue.openBlock(true), exports_vue.createElementBlock(exports_vue.Fragment, null, exports_vue.renderList(__props.toolbarItems, (item, index2) => {
342912
343680
  return exports_vue.openBlock(), exports_vue.createElementBlock("div", {
342913
343681
  key: item.id.value,
@@ -342927,8 +343695,31 @@ function print() { __p += __j.call(arguments, '') }
342927
343695
  key: 0,
342928
343696
  style: { width: "20px" }
342929
343697
  })) : exports_vue.createCommentVNode("", true),
342930
- isDropdown(item) && item.nestedOptions?.value?.length ? (exports_vue.openBlock(), exports_vue.createBlock(ToolbarDropdown_default, {
343698
+ isFontFamily(item) && hasNestedOptions(item) ? (exports_vue.openBlock(), exports_vue.createBlock(SdTooltip_default, {
342931
343699
  key: 1,
343700
+ trigger: "hover",
343701
+ disabled: !item.tooltip?.value,
343702
+ "auto-hide-duration": TOOLBAR_TOOLTIP_AUTO_HIDE_MS,
343703
+ "content-style": { fontFamily: props.uiFontFamily }
343704
+ }, {
343705
+ trigger: exports_vue.withCtx(() => [exports_vue.createVNode(FontFamilyCombobox_default, {
343706
+ item,
343707
+ "ui-font-family": props.uiFontFamily,
343708
+ class: "sd-toolbar-button sd-editor-toolbar-dropdown",
343709
+ onCommand: handleComboboxCommand,
343710
+ onItemClicked: ($event) => handleComboboxItemClicked(item),
343711
+ onTabOut: ($event) => handleComboboxTabOut(index2, $event),
343712
+ onEditorHandoff: handleEditorTextInputHandoff
343713
+ }, null, 8, [
343714
+ "item",
343715
+ "ui-font-family",
343716
+ "onItemClicked",
343717
+ "onTabOut"
343718
+ ])]),
343719
+ default: exports_vue.withCtx(() => [exports_vue.createElementVNode("div", null, [exports_vue.createTextVNode(exports_vue.toDisplayString(item.tooltip) + " ", 1), item.disabled.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("span", _hoisted_3$2, "(disabled)")) : exports_vue.createCommentVNode("", true)])]),
343720
+ _: 2
343721
+ }, 1032, ["disabled", "content-style"])) : isDropdown(item) && hasNestedOptions(item) ? (exports_vue.openBlock(), exports_vue.createBlock(ToolbarDropdown_default, {
343722
+ key: 2,
342932
343723
  options: dropdownOptions(item),
342933
343724
  disabled: item.disabled.value,
342934
343725
  show: getExpanded(item),
@@ -342948,6 +343739,7 @@ function print() { __p += __j.call(arguments, '') }
342948
343739
  trigger: exports_vue.withCtx(() => [exports_vue.createVNode(SdTooltip_default, {
342949
343740
  trigger: "hover",
342950
343741
  disabled: !item.tooltip?.value,
343742
+ "auto-hide-duration": TOOLBAR_TOOLTIP_AUTO_HIDE_MS,
342951
343743
  "content-style": { fontFamily: props.uiFontFamily }
342952
343744
  }, {
342953
343745
  trigger: exports_vue.withCtx(() => [exports_vue.createVNode(ToolbarButton_default, {
@@ -342955,14 +343747,16 @@ function print() { __p += __j.call(arguments, '') }
342955
343747
  disabled: item.disabled.value,
342956
343748
  "allow-enter-propagation": true,
342957
343749
  onTextSubmit: ($event) => handleToolbarButtonTextSubmit(item, $event),
342958
- onMainClick: ($event) => handleSplitButtonMainClick(item)
343750
+ onMainClick: ($event) => handleSplitButtonMainClick(item),
343751
+ onTabOut: ($event) => handleToolbarButtonTabOut(item, $event)
342959
343752
  }, null, 8, [
342960
343753
  "toolbar-item",
342961
343754
  "disabled",
342962
343755
  "onTextSubmit",
342963
- "onMainClick"
343756
+ "onMainClick",
343757
+ "onTabOut"
342964
343758
  ])]),
342965
- default: exports_vue.withCtx(() => [exports_vue.createElementVNode("div", null, [exports_vue.createTextVNode(exports_vue.toDisplayString(item.tooltip) + " ", 1), item.disabled.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("span", _hoisted_2$3, "(disabled)")) : exports_vue.createCommentVNode("", true)])]),
343759
+ default: exports_vue.withCtx(() => [exports_vue.createElementVNode("div", null, [exports_vue.createTextVNode(exports_vue.toDisplayString(item.tooltip) + " ", 1), item.disabled.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("span", _hoisted_4$2, "(disabled)")) : exports_vue.createCommentVNode("", true)])]),
342966
343760
  _: 2
342967
343761
  }, 1032, ["disabled", "content-style"])]),
342968
343762
  _: 2
@@ -342977,9 +343771,10 @@ function print() { __p += __j.call(arguments, '') }
342977
343771
  "menu-props",
342978
343772
  "node-props"
342979
343773
  ])) : isButton(item) ? (exports_vue.openBlock(), exports_vue.createBlock(SdTooltip_default, {
342980
- key: 2,
343774
+ key: 3,
342981
343775
  trigger: "hover",
342982
343776
  class: "sd-editor-toolbar-tooltip",
343777
+ "auto-hide-duration": TOOLBAR_TOOLTIP_AUTO_HIDE_MS,
342983
343778
  "content-style": { fontFamily: props.uiFontFamily }
342984
343779
  }, {
342985
343780
  trigger: exports_vue.withCtx(() => [exports_vue.createVNode(ToolbarButton_default, {
@@ -342993,11 +343788,11 @@ function print() { __p += __j.call(arguments, '') }
342993
343788
  "onTextSubmit",
342994
343789
  "onButtonClick"
342995
343790
  ])]),
342996
- default: exports_vue.withCtx(() => [item.tooltip ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_3$2, [exports_vue.createTextVNode(exports_vue.toDisplayString(item.tooltip) + " ", 1), item.disabled.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("span", _hoisted_4$2, "(disabled)")) : exports_vue.createCommentVNode("", true)])) : exports_vue.createCommentVNode("", true)]),
343791
+ default: exports_vue.withCtx(() => [item.tooltip ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_5$2, [exports_vue.createTextVNode(exports_vue.toDisplayString(item.tooltip) + " ", 1), item.disabled.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("span", _hoisted_6$1, "(disabled)")) : exports_vue.createCommentVNode("", true)])) : exports_vue.createCommentVNode("", true)]),
342997
343792
  _: 2
342998
343793
  }, 1032, ["content-style"])) : exports_vue.createCommentVNode("", true),
342999
343794
  isOverflow(item) && __props.overflowItems.length ? (exports_vue.openBlock(), exports_vue.createBlock(OverflowMenu_default, {
343000
- key: 3,
343795
+ key: 4,
343001
343796
  "toolbar-item": item,
343002
343797
  onButtonClick: ($event) => handleToolbarButtonClick(item),
343003
343798
  "overflow-items": __props.overflowItems,
@@ -343007,11 +343802,11 @@ function print() { __p += __j.call(arguments, '') }
343007
343802
  "onButtonClick",
343008
343803
  "overflow-items"
343009
343804
  ])) : exports_vue.createCommentVNode("", true)
343010
- ], 42, _hoisted_1$5);
343011
- }), 128))], 36);
343805
+ ], 42, _hoisted_2$3);
343806
+ }), 128))], 44, _hoisted_1$5);
343012
343807
  };
343013
343808
  }
343014
- }, [["__scopeId", "data-v-9c3524ec"]]);
343809
+ }, [["__scopeId", "data-v-181bd035"]]);
343015
343810
  Toolbar_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
343016
343811
  __name: "Toolbar",
343017
343812
  emits: [
@@ -343165,7 +343960,7 @@ function print() { __p += __j.call(arguments, '') }
343165
343960
  }, [["__scopeId", "data-v-938eaa1b"]]);
343166
343961
  toolbarTexts = {
343167
343962
  bold: "Bold",
343168
- fontFamily: "Font",
343963
+ fontFamily: "Font family",
343169
343964
  ai: "AI text generation",
343170
343965
  fontSize: "Font size",
343171
343966
  italic: "Italic",
@@ -343774,45 +344569,51 @@ function print() { __p += __j.call(arguments, '') }
343774
344569
  if (shouldRestoreFocus)
343775
344570
  this.#scheduleRestoreEditorFocus();
343776
344571
  }
343777
- onEditorSelectionUpdate() {
344572
+ flushPendingMarkCommands() {
343778
344573
  if (!this.activeEditor)
343779
- return;
343780
- if (this.pendingMarkCommands.length) {
343781
- const pending = this.pendingMarkCommands;
343782
- this.pendingMarkCommands = [];
343783
- pending.forEach(({ command: command$1, argument, item }) => {
343784
- if (!command$1)
343785
- return;
343786
- try {
343787
- if (HEADLESS_EXECUTE_ITEMS.has(item?.name?.value)) {
343788
- if (this.#executeHeadlessCommand(item, argument)) {
343789
- this.#ensureStoredMarksForMarkToggle({
343790
- command: command$1,
343791
- argument
343792
- });
343793
- return;
343794
- }
344574
+ return false;
344575
+ if (!this.pendingMarkCommands.length)
344576
+ return false;
344577
+ const pending = this.pendingMarkCommands;
344578
+ this.pendingMarkCommands = [];
344579
+ pending.forEach(({ command: command$1, argument, item }) => {
344580
+ if (!command$1)
344581
+ return;
344582
+ try {
344583
+ if (HEADLESS_EXECUTE_ITEMS.has(item?.name?.value)) {
344584
+ if (this.#executeHeadlessCommand(item, argument)) {
344585
+ this.#ensureStoredMarksForMarkToggle({
344586
+ command: command$1,
344587
+ argument
344588
+ });
344589
+ return;
343795
344590
  }
343796
- if (this.activeEditor.commands && command$1 in this.activeEditor.commands)
343797
- this.activeEditor.commands[command$1](argument);
343798
- this.#ensureStoredMarksForMarkToggle({
343799
- command: command$1,
343800
- argument
343801
- });
343802
- } catch (error48) {
343803
- const err = /* @__PURE__ */ new Error(`[super-toolbar \uD83C\uDFA8] Failed to execute pending command: ${command$1}`);
343804
- this.emit("exception", {
343805
- error: err,
343806
- editor: this.activeEditor,
343807
- originalError: error48
343808
- });
343809
- console.error(err, error48);
343810
344591
  }
343811
- });
343812
- this.#syncStickyMarksFromState();
343813
- this.updateToolbarState();
344592
+ if (this.activeEditor.commands && command$1 in this.activeEditor.commands)
344593
+ this.activeEditor.commands[command$1](argument);
344594
+ this.#ensureStoredMarksForMarkToggle({
344595
+ command: command$1,
344596
+ argument
344597
+ });
344598
+ } catch (error48) {
344599
+ const err = /* @__PURE__ */ new Error(`[super-toolbar \uD83C\uDFA8] Failed to execute pending command: ${command$1}`);
344600
+ this.emit("exception", {
344601
+ error: err,
344602
+ editor: this.activeEditor,
344603
+ originalError: error48
344604
+ });
344605
+ console.error(err, error48);
344606
+ }
344607
+ });
344608
+ this.#syncStickyMarksFromState();
344609
+ this.updateToolbarState();
344610
+ return true;
344611
+ }
344612
+ onEditorSelectionUpdate() {
344613
+ if (!this.activeEditor)
344614
+ return;
344615
+ if (this.flushPendingMarkCommands())
343814
344616
  return;
343815
- }
343816
344617
  if (this.#restoreStickyMarksIfNeeded())
343817
344618
  this.updateToolbarState();
343818
344619
  }
@@ -355779,161 +356580,166 @@ function print() { __p += __j.call(arguments, '') }
355779
356580
  ]);
355780
356581
  });
355781
356582
 
355782
- // ../../packages/superdoc/dist/chunks/create-super-doc-ui-uuXftA9o.es.js
355783
- var headlessToolbarConstants, MOD_ALIASES, ALT_ALIASES, CTRL_ALIASES, SHIFT_ALIASES, BUILTIN_CONTEXT_MENU_GROUPS, BUILTIN_GROUP_ORDER, RESERVED_PROXY_PROPERTY_NAMES, ALL_TOOLBAR_COMMAND_IDS, EMPTY_ACTIVE_IDS;
355784
- var init_create_super_doc_ui_uuXftA9o_es = __esm(() => {
356583
+ // ../../packages/superdoc/dist/chunks/create-super-doc-ui-DQMMcx6J.es.js
356584
+ var DEFAULT_TEXT_ALIGN_OPTIONS, DEFAULT_LINE_HEIGHT_OPTIONS, DEFAULT_ZOOM_OPTIONS, DEFAULT_DOCUMENT_MODE_OPTIONS, DEFAULT_FONT_SIZE_OPTIONS, headlessToolbarConstants, MOD_ALIASES, ALT_ALIASES, CTRL_ALIASES, SHIFT_ALIASES, BUILTIN_CONTEXT_MENU_GROUPS, BUILTIN_GROUP_ORDER, RESERVED_PROXY_PROPERTY_NAMES, ALL_TOOLBAR_COMMAND_IDS, EMPTY_ACTIVE_IDS, FONT_SIZE_OPTIONS;
356585
+ var init_create_super_doc_ui_DQMMcx6J_es = __esm(() => {
355785
356586
  init_SuperConverter_d9QeIy9_es();
355786
- init_create_headless_toolbar_l5QB6sQY_es();
356587
+ init_create_headless_toolbar_CJpgldP1_es();
356588
+ DEFAULT_TEXT_ALIGN_OPTIONS = [
356589
+ {
356590
+ label: "Left",
356591
+ value: "left"
356592
+ },
356593
+ {
356594
+ label: "Center",
356595
+ value: "center"
356596
+ },
356597
+ {
356598
+ label: "Right",
356599
+ value: "right"
356600
+ },
356601
+ {
356602
+ label: "Justify",
356603
+ value: "justify"
356604
+ }
356605
+ ];
356606
+ DEFAULT_LINE_HEIGHT_OPTIONS = [
356607
+ {
356608
+ label: "1.00",
356609
+ value: 1
356610
+ },
356611
+ {
356612
+ label: "1.15",
356613
+ value: 1.15
356614
+ },
356615
+ {
356616
+ label: "1.50",
356617
+ value: 1.5
356618
+ },
356619
+ {
356620
+ label: "2.00",
356621
+ value: 2
356622
+ },
356623
+ {
356624
+ label: "2.50",
356625
+ value: 2.5
356626
+ },
356627
+ {
356628
+ label: "3.00",
356629
+ value: 3
356630
+ }
356631
+ ];
356632
+ DEFAULT_ZOOM_OPTIONS = [
356633
+ {
356634
+ label: "50%",
356635
+ value: 50
356636
+ },
356637
+ {
356638
+ label: "75%",
356639
+ value: 75
356640
+ },
356641
+ {
356642
+ label: "90%",
356643
+ value: 90
356644
+ },
356645
+ {
356646
+ label: "100%",
356647
+ value: 100
356648
+ },
356649
+ {
356650
+ label: "125%",
356651
+ value: 125
356652
+ },
356653
+ {
356654
+ label: "150%",
356655
+ value: 150
356656
+ },
356657
+ {
356658
+ label: "200%",
356659
+ value: 200
356660
+ }
356661
+ ];
356662
+ DEFAULT_DOCUMENT_MODE_OPTIONS = [
356663
+ {
356664
+ label: "Editing",
356665
+ value: "editing",
356666
+ description: "Edit document directly"
356667
+ },
356668
+ {
356669
+ label: "Suggesting",
356670
+ value: "suggesting",
356671
+ description: "Edits become suggestions"
356672
+ },
356673
+ {
356674
+ label: "Viewing",
356675
+ value: "viewing",
356676
+ description: "View clean version of document only"
356677
+ }
356678
+ ];
356679
+ DEFAULT_FONT_SIZE_OPTIONS = [
356680
+ {
356681
+ label: "8",
356682
+ value: "8pt"
356683
+ },
356684
+ {
356685
+ label: "9",
356686
+ value: "9pt"
356687
+ },
356688
+ {
356689
+ label: "10",
356690
+ value: "10pt"
356691
+ },
356692
+ {
356693
+ label: "11",
356694
+ value: "11pt"
356695
+ },
356696
+ {
356697
+ label: "12",
356698
+ value: "12pt"
356699
+ },
356700
+ {
356701
+ label: "14",
356702
+ value: "14pt"
356703
+ },
356704
+ {
356705
+ label: "18",
356706
+ value: "18pt"
356707
+ },
356708
+ {
356709
+ label: "24",
356710
+ value: "24pt"
356711
+ },
356712
+ {
356713
+ label: "30",
356714
+ value: "30pt"
356715
+ },
356716
+ {
356717
+ label: "36",
356718
+ value: "36pt"
356719
+ },
356720
+ {
356721
+ label: "48",
356722
+ value: "48pt"
356723
+ },
356724
+ {
356725
+ label: "60",
356726
+ value: "60pt"
356727
+ },
356728
+ {
356729
+ label: "72",
356730
+ value: "72pt"
356731
+ },
356732
+ {
356733
+ label: "96",
356734
+ value: "96pt"
356735
+ }
356736
+ ];
355787
356737
  headlessToolbarConstants = {
355788
- DEFAULT_TEXT_ALIGN_OPTIONS: [
355789
- {
355790
- label: "Left",
355791
- value: "left"
355792
- },
355793
- {
355794
- label: "Center",
355795
- value: "center"
355796
- },
355797
- {
355798
- label: "Right",
355799
- value: "right"
355800
- },
355801
- {
355802
- label: "Justify",
355803
- value: "justify"
355804
- }
355805
- ],
355806
- DEFAULT_LINE_HEIGHT_OPTIONS: [
355807
- {
355808
- label: "1.00",
355809
- value: 1
355810
- },
355811
- {
355812
- label: "1.15",
355813
- value: 1.15
355814
- },
355815
- {
355816
- label: "1.50",
355817
- value: 1.5
355818
- },
355819
- {
355820
- label: "2.00",
355821
- value: 2
355822
- },
355823
- {
355824
- label: "2.50",
355825
- value: 2.5
355826
- },
355827
- {
355828
- label: "3.00",
355829
- value: 3
355830
- }
355831
- ],
355832
- DEFAULT_ZOOM_OPTIONS: [
355833
- {
355834
- label: "50%",
355835
- value: 50
355836
- },
355837
- {
355838
- label: "75%",
355839
- value: 75
355840
- },
355841
- {
355842
- label: "90%",
355843
- value: 90
355844
- },
355845
- {
355846
- label: "100%",
355847
- value: 100
355848
- },
355849
- {
355850
- label: "125%",
355851
- value: 125
355852
- },
355853
- {
355854
- label: "150%",
355855
- value: 150
355856
- },
355857
- {
355858
- label: "200%",
355859
- value: 200
355860
- }
355861
- ],
355862
- DEFAULT_DOCUMENT_MODE_OPTIONS: [
355863
- {
355864
- label: "Editing",
355865
- value: "editing",
355866
- description: "Edit document directly"
355867
- },
355868
- {
355869
- label: "Suggesting",
355870
- value: "suggesting",
355871
- description: "Edits become suggestions"
355872
- },
355873
- {
355874
- label: "Viewing",
355875
- value: "viewing",
355876
- description: "View clean version of document only"
355877
- }
355878
- ],
355879
- DEFAULT_FONT_SIZE_OPTIONS: [
355880
- {
355881
- label: "8",
355882
- value: "8pt"
355883
- },
355884
- {
355885
- label: "9",
355886
- value: "9pt"
355887
- },
355888
- {
355889
- label: "10",
355890
- value: "10pt"
355891
- },
355892
- {
355893
- label: "11",
355894
- value: "11pt"
355895
- },
355896
- {
355897
- label: "12",
355898
- value: "12pt"
355899
- },
355900
- {
355901
- label: "14",
355902
- value: "14pt"
355903
- },
355904
- {
355905
- label: "18",
355906
- value: "18pt"
355907
- },
355908
- {
355909
- label: "24",
355910
- value: "24pt"
355911
- },
355912
- {
355913
- label: "30",
355914
- value: "30pt"
355915
- },
355916
- {
355917
- label: "36",
355918
- value: "36pt"
355919
- },
355920
- {
355921
- label: "48",
355922
- value: "48pt"
355923
- },
355924
- {
355925
- label: "60",
355926
- value: "60pt"
355927
- },
355928
- {
355929
- label: "72",
355930
- value: "72pt"
355931
- },
355932
- {
355933
- label: "96",
355934
- value: "96pt"
355935
- }
355936
- ],
356738
+ DEFAULT_TEXT_ALIGN_OPTIONS,
356739
+ DEFAULT_LINE_HEIGHT_OPTIONS,
356740
+ DEFAULT_ZOOM_OPTIONS,
356741
+ DEFAULT_DOCUMENT_MODE_OPTIONS,
356742
+ DEFAULT_FONT_SIZE_OPTIONS,
355937
356743
  DEFAULT_FONT_FAMILY_OPTIONS: getDefaultFontFamilyOptions(),
355938
356744
  DEFAULT_TEXT_COLOR_OPTIONS: [
355939
356745
  {
@@ -356050,6 +356856,10 @@ var init_create_super_doc_ui_uuXftA9o_es = __esm(() => {
356050
356856
  ]);
356051
356857
  ALL_TOOLBAR_COMMAND_IDS = Object.keys(createToolbarRegistry());
356052
356858
  EMPTY_ACTIVE_IDS = Object.freeze([]);
356859
+ FONT_SIZE_OPTIONS = DEFAULT_FONT_SIZE_OPTIONS.map(({ label, value }) => ({
356860
+ label,
356861
+ value
356862
+ }));
356053
356863
  });
356054
356864
 
356055
356865
  // ../../packages/superdoc/dist/chunks/ui-C5PAS9hY.es.js
@@ -356065,16 +356875,16 @@ var init_zipper_yaJVJ4z9_es = __esm(() => {
356065
356875
 
356066
356876
  // ../../packages/superdoc/dist/super-editor.es.js
356067
356877
  var init_super_editor_es = __esm(() => {
356068
- init_src_LeQVnrcZ_es();
356878
+ init_src_BVjcuFXj_es();
356069
356879
  init_SuperConverter_d9QeIy9_es();
356070
356880
  init_jszip_C49i9kUs_es();
356071
356881
  init_xml_js_CqGKpaft_es();
356072
- init_create_headless_toolbar_l5QB6sQY_es();
356882
+ init_create_headless_toolbar_CJpgldP1_es();
356073
356883
  init_constants_D9qj59G2_es();
356074
356884
  init_dist_B8HfvhaK_es();
356075
356885
  init_unified_Dsuw2be5_es();
356076
356886
  init_DocxZipper_FUsfThjV_es();
356077
- init_create_super_doc_ui_uuXftA9o_es();
356887
+ init_create_super_doc_ui_DQMMcx6J_es();
356078
356888
  init_ui_C5PAS9hY_es();
356079
356889
  init_eventemitter3_BnGqBE_Q_es();
356080
356890
  init_errors_CNaD6vcg_es();
@@ -421425,7 +422235,7 @@ function normalizeKeyName2(name) {
421425
422235
  result = "Shift-" + result;
421426
422236
  return result;
421427
422237
  }
421428
- function normalize4(map10) {
422238
+ function normalize5(map10) {
421429
422239
  let copy4 = Object.create(null);
421430
422240
  for (let prop in map10)
421431
422241
  copy4[normalizeKeyName2(prop)] = map10[prop];
@@ -421443,7 +422253,7 @@ function modifiers2(name, event, shift3 = true) {
421443
422253
  return name;
421444
422254
  }
421445
422255
  function keydownHandler2(bindings) {
421446
- let map10 = normalize4(bindings);
422256
+ let map10 = normalize5(bindings);
421447
422257
  return function(view, event) {
421448
422258
  let name = keyName2(event), baseName2, direct = map10[modifiers2(name, event)];
421449
422259
  if (direct && direct(view.state, view.dispatch, view))
@@ -492881,10 +493691,16 @@ function createSelectionTrackingBookmark2(selection) {
492881
493691
  }
492882
493692
  return selection.getBookmark();
492883
493693
  }
492884
- var CustomSelectionPluginKey2, SelectionHandlePluginKey2;
493694
+ var CustomSelectionPluginKey2, DEFAULT_CUSTOM_SELECTION_STATE2, SelectionHandlePluginKey2;
492885
493695
  var init_selection_state = __esm(() => {
492886
493696
  init_dist5();
492887
493697
  CustomSelectionPluginKey2 = new PluginKey2("CustomSelection");
493698
+ DEFAULT_CUSTOM_SELECTION_STATE2 = Object.freeze({
493699
+ focused: false,
493700
+ preservedSelection: null,
493701
+ showVisualSelection: false,
493702
+ skipFocusReset: false
493703
+ });
492888
493704
  SelectionHandlePluginKey2 = new PluginKey2("selectionHandle");
492889
493705
  });
492890
493706
 
@@ -492929,6 +493745,15 @@ function mapPreservedSelection2(selection, tr) {
492929
493745
  return null;
492930
493746
  }
492931
493747
  }
493748
+ function shouldClearPreservedSelectionOnSelectionMove2(tr, nextState) {
493749
+ if (!nextState?.preservedSelection)
493750
+ return false;
493751
+ if (tr.docChanged || !tr.selectionSet)
493752
+ return false;
493753
+ if (getFocusMeta2(tr) !== undefined)
493754
+ return false;
493755
+ return true;
493756
+ }
492932
493757
  var DEFAULT_SELECTION_STATE2, normalizeSelectionState2 = (state = {}) => ({
492933
493758
  ...DEFAULT_SELECTION_STATE2,
492934
493759
  ...state
@@ -492977,6 +493802,13 @@ var init_custom_selection = __esm(() => {
492977
493802
  const nextState = meta4 !== undefined ? normalizeSelectionState2({ ...value, ...meta4 }) : value;
492978
493803
  if (!nextState?.preservedSelection)
492979
493804
  return nextState;
493805
+ if (shouldClearPreservedSelectionOnSelectionMove2(tr, nextState)) {
493806
+ return {
493807
+ ...nextState,
493808
+ preservedSelection: null,
493809
+ showVisualSelection: false
493810
+ };
493811
+ }
492980
493812
  if (!tr.docChanged)
492981
493813
  return nextState;
492982
493814
  const mappedSelection = mapPreservedSelection2(nextState.preservedSelection, tr);