@superdoc-dev/mcp 0.12.0-next.12 → 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 +1261 -384
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -52172,7 +52172,7 @@ var init_remark_gfm_BhnWr3yf_es = __esm(() => {
52172
52172
  emptyOptions2 = {};
52173
52173
  });
52174
52174
 
52175
- // ../../packages/superdoc/dist/chunks/SuperConverter-DLdwVEPh.es.js
52175
+ // ../../packages/superdoc/dist/chunks/SuperConverter-d9QeIy9-.es.js
52176
52176
  function getExtensionConfigField(extension$1, field, context = { name: "" }) {
52177
52177
  const fieldValue = extension$1.config[field];
52178
52178
  if (typeof fieldValue === "function")
@@ -67739,16 +67739,31 @@ function preProcessXeInstruction(nodesToCombine, instrText, options = {}) {
67739
67739
  }];
67740
67740
  }
67741
67741
  function preProcessTcInstruction(nodesToCombine, instrText, options = {}) {
67742
+ const before = [];
67743
+ const after = [];
67744
+ const entryElements = [];
67742
67745
  const instructionTokens = options.instructionTokens ?? null;
67743
- return [{
67744
- name: "sd:tableOfContentsEntry",
67745
- type: "element",
67746
- attributes: {
67747
- instruction: instrText,
67748
- ...instructionTokens ? { instructionTokens } : {}
67746
+ let seenContent = false;
67747
+ for (const node2 of nodesToCombine)
67748
+ if (node2?.name === "w:bookmarkStart" || node2?.name === "w:bookmarkEnd")
67749
+ (seenContent ? after : before).push(node2);
67750
+ else {
67751
+ seenContent = true;
67752
+ entryElements.push(node2);
67753
+ }
67754
+ return [
67755
+ ...before,
67756
+ {
67757
+ name: "sd:tableOfContentsEntry",
67758
+ type: "element",
67759
+ attributes: {
67760
+ instruction: instrText,
67761
+ ...instructionTokens ? { instructionTokens } : {}
67762
+ },
67763
+ elements: entryElements
67749
67764
  },
67750
- elements: nodesToCombine
67751
- }];
67765
+ ...after
67766
+ ];
67752
67767
  }
67753
67768
  function preProcessRefInstruction(nodesToCombine, instrText, options = {}) {
67754
67769
  return [{
@@ -118157,7 +118172,7 @@ var isRegExp = (value) => {
118157
118172
  state.kern = kernNode.attributes["w:val"];
118158
118173
  }
118159
118174
  }, SuperConverter;
118160
- var init_SuperConverter_DLdwVEPh_es = __esm(() => {
118175
+ var init_SuperConverter_d9QeIy9_es = __esm(() => {
118161
118176
  init_rolldown_runtime_Bg48TavK_es();
118162
118177
  init_jszip_C49i9kUs_es();
118163
118178
  init_xml_js_CqGKpaft_es();
@@ -158277,7 +158292,7 @@ var init_SuperConverter_DLdwVEPh_es = __esm(() => {
158277
158292
  };
158278
158293
  });
158279
158294
 
158280
- // ../../packages/superdoc/dist/chunks/create-headless-toolbar-BxKMAAgQ.es.js
158295
+ // ../../packages/superdoc/dist/chunks/create-headless-toolbar-CJpgldP1.es.js
158281
158296
  function parseSizeUnit(val = "0") {
158282
158297
  const length = val.toString() || "0";
158283
158298
  const value = Number.parseFloat(length);
@@ -158287,6 +158302,43 @@ function parseSizeUnit(val = "0") {
158287
158302
  function getPreservedSelection(state) {
158288
158303
  return CustomSelectionPluginKey.getState(state)?.preservedSelection ?? null;
158289
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
+ }
158290
158342
  function createSelectionTrackingBookmark(selection) {
158291
158343
  if (selection instanceof TextSelection && !selection.empty)
158292
158344
  return new InclusiveTextSelectionBookmark(selection.anchor, selection.head);
@@ -165880,7 +165932,7 @@ var CSS_DIMENSION_REGEX, DOM_SIZE_UNITS, normalizeActorId = (value) => {
165880
165932
  static create(config3) {
165881
165933
  return new Extension2(config3);
165882
165934
  }
165883
- }, CustomSelectionPluginKey, InclusiveTextSelectionBookmark = class InclusiveTextSelectionBookmark2 {
165935
+ }, CustomSelectionPluginKey, DEFAULT_CUSTOM_SELECTION_STATE, InclusiveTextSelectionBookmark = class InclusiveTextSelectionBookmark2 {
165884
165936
  constructor(anchor, head) {
165885
165937
  this.anchor = anchor;
165886
165938
  this.head = head;
@@ -168635,8 +168687,8 @@ var CSS_DIMENSION_REGEX, DOM_SIZE_UNITS, normalizeActorId = (value) => {
168635
168687
  }
168636
168688
  };
168637
168689
  };
168638
- var init_create_headless_toolbar_BxKMAAgQ_es = __esm(() => {
168639
- init_SuperConverter_DLdwVEPh_es();
168690
+ var init_create_headless_toolbar_CJpgldP1_es = __esm(() => {
168691
+ init_SuperConverter_d9QeIy9_es();
168640
168692
  init_uuid_B2wVPhPi_es();
168641
168693
  init_constants_D9qj59G2_es();
168642
168694
  init_dist_B8HfvhaK_es();
@@ -168657,6 +168709,12 @@ var init_create_headless_toolbar_BxKMAAgQ_es = __esm(() => {
168657
168709
  "vmax"
168658
168710
  ];
168659
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
+ });
168660
168718
  SelectionHandlePluginKey = new PluginKey("selectionHandle");
168661
168719
  MIME_TYPE_TO_EXTENSION2 = {
168662
168720
  "image/svg+xml": "svg",
@@ -223320,7 +223378,7 @@ var init_remark_gfm_eZN6yzWQ_es = __esm(() => {
223320
223378
  init_remark_gfm_BhnWr3yf_es();
223321
223379
  });
223322
223380
 
223323
- // ../../packages/superdoc/dist/chunks/src-Bq_Yxqun.es.js
223381
+ // ../../packages/superdoc/dist/chunks/src-BVjcuFXj.es.js
223324
223382
  function deleteProps(obj, propOrProps) {
223325
223383
  const props = typeof propOrProps === "string" ? [propOrProps] : propOrProps;
223326
223384
  const removeNested = (target, pathParts, index2 = 0) => {
@@ -223422,6 +223480,15 @@ function mapPreservedSelection(selection, tr) {
223422
223480
  return null;
223423
223481
  }
223424
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
+ }
223425
223492
  function applySelectionCleanup(editor, tr) {
223426
223493
  let cleaned = tr.setMeta(CustomSelectionPluginKey, DEFAULT_SELECTION_STATE);
223427
223494
  const sel = cleaned.selection;
@@ -224502,13 +224569,13 @@ function normalizeYjsFragmentForSchema(fragment) {
224502
224569
  if (!isTraversableYjsXml(fragment))
224503
224570
  return false;
224504
224571
  let changed = false;
224505
- const normalize4 = () => {
224572
+ const normalize$1 = () => {
224506
224573
  changed = stripSchemaAtomChildren(fragment) || changed;
224507
224574
  };
224508
224575
  if (fragment.doc)
224509
- fragment.doc.transact(normalize4, NORMALIZE_YJS_FRAGMENT_ORIGIN);
224576
+ fragment.doc.transact(normalize$1, NORMALIZE_YJS_FRAGMENT_ORIGIN);
224510
224577
  else
224511
- normalize4();
224578
+ normalize$1();
224512
224579
  return changed;
224513
224580
  }
224514
224581
  function normalizeYjsFragmentEventsForSchema(events, fallbackFragment) {
@@ -224517,7 +224584,7 @@ function normalizeYjsFragmentEventsForSchema(events, fallbackFragment) {
224517
224584
  if (events.some((event) => event?.transaction?.origin === NORMALIZE_YJS_FRAGMENT_ORIGIN))
224518
224585
  return false;
224519
224586
  let changed = false;
224520
- const normalize4 = () => {
224587
+ const normalize$1 = () => {
224521
224588
  const visited = /* @__PURE__ */ new Set;
224522
224589
  for (const event of events) {
224523
224590
  const target = findNormalizableEventTarget(event?.target);
@@ -224529,9 +224596,9 @@ function normalizeYjsFragmentEventsForSchema(events, fallbackFragment) {
224529
224596
  };
224530
224597
  const doc$12 = fallbackFragment?.doc || findEventDoc(events);
224531
224598
  if (doc$12)
224532
- doc$12.transact(normalize4, NORMALIZE_YJS_FRAGMENT_ORIGIN);
224599
+ doc$12.transact(normalize$1, NORMALIZE_YJS_FRAGMENT_ORIGIN);
224533
224600
  else
224534
- normalize4();
224601
+ normalize$1();
224535
224602
  return changed;
224536
224603
  }
224537
224604
  function stripSchemaAtomChildren(parent) {
@@ -228658,11 +228725,7 @@ function parseCellVerticalAlignFromStyle(element3) {
228658
228725
  }
228659
228726
  function findRemovedFieldAnnotations(tr) {
228660
228727
  let removedNodes = [];
228661
- if (!tr.steps.length || tr.meta && !Object.keys(tr.meta).every((meta4) => [
228662
- "inputType",
228663
- "uiEvent",
228664
- "paste"
228665
- ].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)
228666
228729
  return removedNodes;
228667
228730
  if (!transactionDeletedAnything(tr))
228668
228731
  return removedNodes;
@@ -278147,6 +278210,9 @@ async function goToAnchor({ anchor, layout, blocks: blocks2, measures, bookmarks
278147
278210
  let nextFragmentPage = null;
278148
278211
  let nextFragmentStart = null;
278149
278212
  let nextFragmentY = null;
278213
+ let prevFragmentPage = null;
278214
+ let prevFragmentEnd = null;
278215
+ let prevFragmentY = null;
278150
278216
  for (const page of layout.pages) {
278151
278217
  for (const fragment of page.fragments) {
278152
278218
  if (fragment.kind !== "para")
@@ -278165,13 +278231,25 @@ async function goToAnchor({ anchor, layout, blocks: blocks2, measures, bookmarks
278165
278231
  nextFragmentStart = fragStart;
278166
278232
  nextFragmentY = fragment.y;
278167
278233
  }
278234
+ if (fragEnd <= pmPos && (prevFragmentEnd === null || fragEnd > prevFragmentEnd)) {
278235
+ prevFragmentPage = page.number - 1;
278236
+ prevFragmentEnd = fragEnd;
278237
+ prevFragmentY = fragment.y;
278238
+ }
278168
278239
  }
278169
278240
  if (pageIndex != null)
278170
278241
  break;
278171
278242
  }
278172
- if (pageIndex == null && nextFragmentPage != null) {
278173
- pageIndex = nextFragmentPage;
278174
- fragmentY = nextFragmentY;
278243
+ if (pageIndex == null) {
278244
+ const prevGap = prevFragmentEnd != null ? pmPos - prevFragmentEnd : Infinity;
278245
+ const nextGap = nextFragmentStart != null ? nextFragmentStart - pmPos : Infinity;
278246
+ if (prevFragmentPage != null && prevGap < nextGap) {
278247
+ pageIndex = prevFragmentPage;
278248
+ fragmentY = prevFragmentY;
278249
+ } else if (nextFragmentPage != null) {
278250
+ pageIndex = nextFragmentPage;
278251
+ fragmentY = nextFragmentY;
278252
+ }
278175
278253
  }
278176
278254
  }
278177
278255
  if (pageIndex == null)
@@ -284996,12 +285074,12 @@ var Node$13 = class Node$14 {
284996
285074
  }, registerYjsFragmentNormalizer = (fragment) => {
284997
285075
  if (!fragment || typeof fragment.observeDeep !== "function" || typeof fragment.unobserveDeep !== "function")
284998
285076
  return () => {};
284999
- const normalize4 = (events) => {
285077
+ const normalize$1 = (events) => {
285000
285078
  normalizeYjsFragmentEventsForSchema(events, fragment);
285001
285079
  };
285002
- fragment.observeDeep(normalize4);
285080
+ fragment.observeDeep(normalize$1);
285003
285081
  return () => {
285004
- fragment.unobserveDeep(normalize4);
285082
+ fragment.unobserveDeep(normalize$1);
285005
285083
  };
285006
285084
  }, initializeMetaMap = (ydoc, editor) => {
285007
285085
  seedPartsFromEditor(editor, ydoc);
@@ -290061,7 +290139,7 @@ var Node$13 = class Node$14 {
290061
290139
  return true;
290062
290140
  });
290063
290141
  }
290064
- }, FieldAnnotationPlugin = (options = {}) => {
290142
+ }, ALLOWED_META_KEYS$1, FieldAnnotationPlugin = (options = {}) => {
290065
290143
  let { editor, annotationClass: annotationClass$1 } = options;
290066
290144
  return new Plugin({
290067
290145
  key: new PluginKey("fieldAnnotation"),
@@ -292600,7 +292678,7 @@ var Node$13 = class Node$14 {
292600
292678
  }, getTypeName = (markLike) => {
292601
292679
  return markLike?.type?.name ?? markLike?.type;
292602
292680
  }, isTrackFormatNoOp = (before, after) => {
292603
- const normalize4 = (entries) => entries.map((s2) => ({
292681
+ const normalize$1 = (entries) => entries.map((s2) => ({
292604
292682
  type: getTypeName(s2),
292605
292683
  attrs: normalizeSnapshotAttrs(s2.attrs || {})
292606
292684
  })).filter((s2) => {
@@ -292608,8 +292686,8 @@ var Node$13 = class Node$14 {
292608
292686
  return false;
292609
292687
  return true;
292610
292688
  });
292611
- const normBefore = normalize4(before);
292612
- const normAfter = normalize4(after);
292689
+ const normBefore = normalize$1(before);
292690
+ const normAfter = normalize$1(after);
292613
292691
  if (normBefore.length === 0 && normAfter.length === 0)
292614
292692
  return true;
292615
292693
  if (normBefore.length !== normAfter.length)
@@ -296535,7 +296613,7 @@ var Node$13 = class Node$14 {
296535
296613
  if (!target || !target.classList)
296536
296614
  return;
296537
296615
  target.classList.add(STYLE_ISOLATION_CLASS);
296538
- }, _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 {
296539
296617
  constructor(view, editor) {
296540
296618
  this.editor = editor;
296541
296619
  this.view = view;
@@ -298276,7 +298354,7 @@ var Node$13 = class Node$14 {
298276
298354
  </linearGradient>
298277
298355
  </defs>
298278
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"/>
298279
- </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>
298280
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>
298281
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">
298282
298360
  <g clip-path="url(#clip0_0_1)">
@@ -298343,8 +298421,8 @@ var Node$13 = class Node$14 {
298343
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>
298344
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>
298345
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>
298346
- `, 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>
298347
- `, _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) => {
298348
298426
  dropdown.expand.value = false;
298349
298427
  }, makeColorOption = (color2, label = null) => {
298350
298428
  return {
@@ -298375,8 +298453,8 @@ var Node$13 = class Node$14 {
298375
298453
  })]);
298376
298454
  }, icons, getAvailableColorOptions = () => {
298377
298455
  return icons.flat().map((item) => item.value);
298378
- }, _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>
298379
- `, _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) => {
298380
298458
  dropdown.expand.value = false;
298381
298459
  }, makeDefaultItems = ({ superToolbar, toolbarIcons: toolbarIcons$1, toolbarTexts: toolbarTexts$1, toolbarFonts, hideButtons, availableWidth, role, isDev = false } = {}) => {
298382
298460
  const bold = useToolbarItem({
@@ -299440,7 +299518,39 @@ var Node$13 = class Node$14 {
299440
299518
  defaultItems: visibleItems,
299441
299519
  overflowItems: overflowItems.filter((item) => item.type !== "separator")
299442
299520
  };
299443
- }, _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 = {}) => {
299444
299554
  const fontFamilyProps = paragraphProps?.runProperties?.fontFamily;
299445
299555
  if (!fontFamilyProps)
299446
299556
  return null;
@@ -299659,6 +299769,14 @@ var Node$13 = class Node$14 {
299659
299769
  const before = $pos.parent.childBefore($pos.parentOffset).node;
299660
299770
  const after = $pos.parent.childAfter($pos.parentOffset).node;
299661
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;
299662
299780
  }, handleInsertTextBeforeInput = (view, event, editor) => {
299663
299781
  const isInsertTextInput = event?.inputType === "insertText";
299664
299782
  const hasTextData = typeof event?.data === "string" && event.data.length > 0;
@@ -299672,8 +299790,8 @@ var Node$13 = class Node$14 {
299672
299790
  recordStoryInputDebug(view, event, editor, "beforeinput:skip");
299673
299791
  return false;
299674
299792
  }
299675
- const selection = view.state.selection;
299676
- 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);
299677
299795
  if (selection.empty && !shouldHandleCollapsedSelection) {
299678
299796
  recordStoryInputDebug(view, event, editor, "beforeinput:skip-empty-selection");
299679
299797
  return false;
@@ -299685,6 +299803,13 @@ var Node$13 = class Node$14 {
299685
299803
  } catch {
299686
299804
  tr.setSelection(Selection.near(tr.doc.resolve(insertedTo), 1));
299687
299805
  }
299806
+ if (!selection.empty)
299807
+ tr.setMeta(CustomSelectionPluginKey, {
299808
+ focused: false,
299809
+ preservedSelection: null,
299810
+ showVisualSelection: false,
299811
+ skipFocusReset: false
299812
+ });
299688
299813
  tr.setMeta("inputType", "insertText");
299689
299814
  view.dispatch(tr);
299690
299815
  event.preventDefault();
@@ -320778,13 +320903,13 @@ menclose::after {
320778
320903
  return;
320779
320904
  console.log(...args$1);
320780
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;
320781
- var init_src_Bq_Yxqun_es = __esm(() => {
320906
+ var init_src_BVjcuFXj_es = __esm(() => {
320782
320907
  init_rolldown_runtime_Bg48TavK_es();
320783
- init_SuperConverter_DLdwVEPh_es();
320908
+ init_SuperConverter_d9QeIy9_es();
320784
320909
  init_jszip_C49i9kUs_es();
320785
320910
  init_xml_js_CqGKpaft_es();
320786
320911
  init_uuid_B2wVPhPi_es();
320787
- init_create_headless_toolbar_BxKMAAgQ_es();
320912
+ init_create_headless_toolbar_CJpgldP1_es();
320788
320913
  init_constants_D9qj59G2_es();
320789
320914
  init_dist_B8HfvhaK_es();
320790
320915
  init_unified_Dsuw2be5_es();
@@ -321342,6 +321467,12 @@ ${err.toString()}`);
321342
321467
  }) : value;
321343
321468
  if (!nextState?.preservedSelection)
321344
321469
  return nextState;
321470
+ if (shouldClearPreservedSelectionOnSelectionMove(tr, nextState))
321471
+ return {
321472
+ ...nextState,
321473
+ preservedSelection: null,
321474
+ showVisualSelection: false
321475
+ };
321345
321476
  if (!tr.docChanged)
321346
321477
  return nextState;
321347
321478
  const mappedSelection = mapPreservedSelection(nextState.preservedSelection, tr);
@@ -326170,6 +326301,12 @@ ${err.toString()}`);
326170
326301
  ];
326171
326302
  }
326172
326303
  });
326304
+ ALLOWED_META_KEYS$1 = [
326305
+ "inputType",
326306
+ "uiEvent",
326307
+ "paste",
326308
+ CustomSelectionPluginKey.key
326309
+ ];
326173
326310
  AnnotatorHelpers = {
326174
326311
  getFieldAttrs,
326175
326312
  processTables,
@@ -338035,7 +338172,8 @@ function print() { __p += __j.call(arguments, '') }
338035
338172
  "composition",
338036
338173
  "superdocSlicePaste",
338037
338174
  "forceTrackChanges",
338038
- "protectTrackedReviewState"
338175
+ "protectTrackedReviewState",
338176
+ CustomSelectionPluginKey.key
338039
338177
  ];
338040
338178
  PASSTHROUGH_META_KEYS = [
338041
338179
  "inputType",
@@ -338044,7 +338182,8 @@ function print() { __p += __j.call(arguments, '') }
338044
338182
  "pointer",
338045
338183
  "composition",
338046
338184
  "addToHistory",
338047
- "superdocSlicePaste"
338185
+ "superdocSlicePaste",
338186
+ CustomSelectionPluginKey.key
338048
338187
  ];
338049
338188
  ALLOWED_META_KEYS = new Set([...TRACKABLE_META_KEYS, ySyncPluginKey.key]);
338050
338189
  TrackFormat = Mark3.create({
@@ -338712,11 +338851,11 @@ function print() { __p += __j.call(arguments, '') }
338712
338851
  } });
338713
338852
  tippy.setDefaultProps({ render });
338714
338853
  tippy_esm_default = tippy;
338715
- _hoisted_1$22 = ["onClick", "onMouseenter"];
338716
- _hoisted_2$17 = { key: 0 };
338717
- _hoisted_3$13 = { key: 0 };
338718
- _hoisted_4$9 = { key: 1 };
338719
- _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 };
338720
338859
  Mentions_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
338721
338860
  __name: "Mentions",
338722
338861
  props: {
@@ -338782,7 +338921,7 @@ function print() { __p += __j.call(arguments, '') }
338782
338921
  onMouseleave: _cache[0] || (_cache[0] = ($event) => activeUserIndex.value = null),
338783
338922
  key: user.email,
338784
338923
  class: exports_vue.normalizeClass(["user-row", { "sd-selected": activeUserIndex.value === index2 }])
338785
- }, [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);
338786
338925
  }), 128))], 544);
338787
338926
  };
338788
338927
  }
@@ -340057,11 +340196,11 @@ function print() { __p += __j.call(arguments, '') }
340057
340196
  })
340058
340197
  }
340059
340198
  ] };
340060
- _hoisted_1$21 = { class: "ai-user-input-field" };
340061
- _hoisted_2$16 = ["innerHTML"];
340062
- _hoisted_3$12 = ["placeholder"];
340063
- _hoisted_4$8 = { class: "ai-loader" };
340064
- _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"];
340065
340204
  AIWriter_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
340066
340205
  __name: "AIWriter",
340067
340206
  props: {
@@ -340288,10 +340427,10 @@ function print() { __p += __j.call(arguments, '') }
340288
340427
  ref_key: "aiWriterRef",
340289
340428
  ref: aiWriterRef,
340290
340429
  onMousedown: _cache[1] || (_cache[1] = exports_vue.withModifiers(() => {}, ["stop"]))
340291
- }, [exports_vue.createElementVNode("div", _hoisted_1$21, [exports_vue.createElementVNode("span", {
340430
+ }, [exports_vue.createElementVNode("div", _hoisted_1$22, [exports_vue.createElementVNode("span", {
340292
340431
  class: "ai-textarea-icon",
340293
340432
  innerHTML: exports_vue.unref(edit_regular_default)
340294
- }, 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", {
340295
340434
  ref_key: "editableRef",
340296
340435
  ref: editableRef,
340297
340436
  class: "ai-textarea",
@@ -340300,12 +340439,12 @@ function print() { __p += __j.call(arguments, '') }
340300
340439
  onInput: handleInput,
340301
340440
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => promptText.value = $event),
340302
340441
  rows: "4"
340303
- }, 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", {
340304
340443
  key: 0,
340305
340444
  class: "ai-textarea-icon ai-submit-button",
340306
340445
  onClick: exports_vue.withModifiers(handleSubmit, ["stop"]),
340307
340446
  innerHTML: exports_vue.unref(paper_plane_regular_default)
340308
- }, null, 8, _hoisted_5$6)) : exports_vue.createCommentVNode("", true)])], 544);
340447
+ }, null, 8, _hoisted_5$8)) : exports_vue.createCommentVNode("", true)])], 544);
340309
340448
  };
340310
340449
  }
340311
340450
  }, [["__scopeId", "data-v-5444b0c8"]]);
@@ -340390,7 +340529,7 @@ function print() { __p += __j.call(arguments, '') }
340390
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>
340391
340530
  `
340392
340531
  };
340393
- _hoisted_1$20 = [
340532
+ _hoisted_1$21 = [
340394
340533
  "onClick",
340395
340534
  "innerHTML",
340396
340535
  "aria-label",
@@ -340482,12 +340621,12 @@ function print() { __p += __j.call(arguments, '') }
340482
340621
  ref_key: "alignmentButtonsRefs",
340483
340622
  ref: alignmentButtonsRefs,
340484
340623
  onKeydown: exports_vue.withModifiers((event) => handleKeyDown$1(event, index2), ["prevent"])
340485
- }, null, 40, _hoisted_1$20);
340624
+ }, null, 40, _hoisted_1$21);
340486
340625
  }), 64))], 2);
340487
340626
  };
340488
340627
  }
340489
340628
  }, [["__scopeId", "data-v-ceb338e0"]]);
340490
- _hoisted_1$19 = [
340629
+ _hoisted_1$20 = [
340491
340630
  "onClick",
340492
340631
  "innerHTML",
340493
340632
  "aria-label",
@@ -340576,7 +340715,7 @@ function print() { __p += __j.call(arguments, '') }
340576
340715
  ref_key: "buttonRefs",
340577
340716
  ref: buttonRefs,
340578
340717
  onKeydown: exports_vue.withModifiers((event) => handleKeyDown$1(event, index2), ["prevent"])
340579
- }, null, 46, _hoisted_1$19);
340718
+ }, null, 46, _hoisted_1$20);
340580
340719
  }), 128))], 2);
340581
340720
  };
340582
340721
  }
@@ -340640,12 +340779,12 @@ function print() { __p += __j.call(arguments, '') }
340640
340779
  ariaLabel: "a) b) c)"
340641
340780
  }
340642
340781
  ];
340643
- _hoisted_1$18 = ["onClick", "onKeydown"];
340644
- _hoisted_2$15 = { class: "document-mode-column icon-column" };
340645
- _hoisted_3$11 = ["innerHTML"];
340646
- _hoisted_4$7 = { class: "document-mode-column text-column" };
340647
- _hoisted_5$5 = { class: "document-mode-type" };
340648
- _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" };
340649
340788
  DocumentMode_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
340650
340789
  __name: "DocumentMode",
340651
340790
  props: { options: { type: Array } },
@@ -340706,20 +340845,20 @@ function print() { __p += __j.call(arguments, '') }
340706
340845
  ref_key: "documentModeRefs",
340707
340846
  ref: documentModeRefs,
340708
340847
  onKeydown: exports_vue.withModifiers((event) => handleKeyDown$1(event, index2), ["prevent"])
340709
- }, [exports_vue.createElementVNode("div", _hoisted_2$15, [exports_vue.createElementVNode("div", {
340848
+ }, [exports_vue.createElementVNode("div", _hoisted_2$16, [exports_vue.createElementVNode("div", {
340710
340849
  class: "icon-column__icon",
340711
340850
  innerHTML: option.icon
340712
- }, 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);
340713
340852
  }), 256))], 2);
340714
340853
  };
340715
340854
  }
340716
340855
  }, [["__scopeId", "data-v-abd514d9"]]);
340717
- _hoisted_1$17 = {
340856
+ _hoisted_1$18 = {
340718
340857
  key: 0,
340719
340858
  class: "linked-style-buttons",
340720
340859
  "data-editor-ui-surface": ""
340721
340860
  };
340722
- _hoisted_2$14 = [
340861
+ _hoisted_2$15 = [
340723
340862
  "onClick",
340724
340863
  "onKeydown",
340725
340864
  "aria-label"
@@ -340776,7 +340915,7 @@ function print() { __p += __j.call(arguments, '') }
340776
340915
  styleRefs.value[0].focus();
340777
340916
  });
340778
340917
  return (_ctx, _cache) => {
340779
- 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) => {
340780
340919
  return exports_vue.openBlock(), exports_vue.createElementBlock("div", {
340781
340920
  class: exports_vue.normalizeClass(["style-item", { selected: __props.selectedOption === style2.id }]),
340782
340921
  onClick: ($event) => select2(style2),
@@ -340789,33 +340928,33 @@ function print() { __p += __j.call(arguments, '') }
340789
340928
  class: "style-name",
340790
340929
  style: exports_vue.normalizeStyle(exports_vue.unref(generateLinkedStyleString)(style2, null, null, false)),
340791
340930
  "data-item": "btn-linkedStyles-option"
340792
- }, 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);
340793
340932
  }), 256))])) : exports_vue.createCommentVNode("", true);
340794
340933
  };
340795
340934
  }
340796
340935
  }, [["__scopeId", "data-v-80e74746"]]);
340797
- _hoisted_1$16 = {
340936
+ _hoisted_1$17 = {
340798
340937
  key: 0,
340799
340938
  class: "link-title"
340800
340939
  };
340801
- _hoisted_2$13 = {
340940
+ _hoisted_2$14 = {
340802
340941
  key: 1,
340803
340942
  class: "link-title"
340804
340943
  };
340805
- _hoisted_3$10 = {
340944
+ _hoisted_3$11 = {
340806
340945
  key: 2,
340807
340946
  class: "link-title"
340808
340947
  };
340809
- _hoisted_4$6 = {
340948
+ _hoisted_4$7 = {
340810
340949
  key: 3,
340811
340950
  class: "link-title"
340812
340951
  };
340813
- _hoisted_5$4 = {
340952
+ _hoisted_5$6 = {
340814
340953
  key: 4,
340815
340954
  class: "link-input-wrapper"
340816
340955
  };
340817
- _hoisted_6$2 = { class: "input-row text-input-row" };
340818
- _hoisted_7$2 = ["readonly"];
340956
+ _hoisted_6$4 = { class: "input-row text-input-row" };
340957
+ _hoisted_7$3 = ["readonly"];
340819
340958
  _hoisted_8$1 = { class: "input-row url-input-row" };
340820
340959
  _hoisted_9$1 = ["innerHTML"];
340821
340960
  _hoisted_10$1 = ["readonly", "onKeydown"];
@@ -340824,8 +340963,8 @@ function print() { __p += __j.call(arguments, '') }
340824
340963
  key: 0,
340825
340964
  class: "input-row link-buttons"
340826
340965
  };
340827
- _hoisted_13 = ["innerHTML"];
340828
- _hoisted_14 = {
340966
+ _hoisted_13$1 = ["innerHTML"];
340967
+ _hoisted_14$1 = {
340829
340968
  key: 5,
340830
340969
  class: "input-row go-to-anchor clickable"
340831
340970
  };
@@ -340997,15 +341136,15 @@ function print() { __p += __j.call(arguments, '') }
340997
341136
  props.goToAnchor(url$1);
340998
341137
  };
340999
341138
  return (_ctx, _cache) => {
341000
- 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, [
341001
- 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", {
341002
341141
  type: "text",
341003
341142
  name: "text",
341004
341143
  placeholder: "Text",
341005
341144
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => text5.value = $event),
341006
341145
  readonly: isViewingMode.value,
341007
341146
  onKeydown: _cache[1] || (_cache[1] = exports_vue.withKeys(exports_vue.withModifiers(($event) => !isViewingMode.value && handleSubmit, ["stop", "prevent"]), ["enter"]))
341008
- }, null, 40, _hoisted_7$2), [[exports_vue.vModelText, text5.value]])]),
341147
+ }, null, 40, _hoisted_7$3), [[exports_vue.vModelText, text5.value]])]),
341009
341148
  exports_vue.createElementVNode("div", _hoisted_8$1, [
341010
341149
  exports_vue.createElementVNode("div", {
341011
341150
  class: "input-icon",
@@ -341035,22 +341174,22 @@ function print() { __p += __j.call(arguments, '') }
341035
341174
  }, [exports_vue.createElementVNode("div", {
341036
341175
  class: "remove-btn__icon",
341037
341176
  innerHTML: exports_vue.unref(toolbarIcons).removeLink
341038
- }, 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", {
341039
341178
  class: exports_vue.normalizeClass(["sd-submit-btn", { "disable-btn": isDisabled.value }]),
341040
341179
  onClick: handleSubmit,
341041
341180
  "data-item": "btn-link-apply"
341042
341181
  }, " Apply ", 2)])) : exports_vue.createCommentVNode("", true)
341043
- ])) : 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);
341044
341183
  };
341045
341184
  }
341046
341185
  }, [["__scopeId", "data-v-c490d677"]]);
341047
- _hoisted_1$15 = [
341186
+ _hoisted_1$16 = [
341048
341187
  "aria-label",
341049
341188
  "onClick",
341050
341189
  "onKeydown"
341051
341190
  ];
341052
- _hoisted_2$12 = ["innerHTML"];
341053
- _hoisted_3$9 = ["innerHTML"];
341191
+ _hoisted_2$13 = ["innerHTML"];
341192
+ _hoisted_3$10 = ["innerHTML"];
341054
341193
  IconGridRow_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
341055
341194
  __name: "IconGridRow",
341056
341195
  props: {
@@ -341171,20 +341310,20 @@ function print() { __p += __j.call(arguments, '') }
341171
341310
  class: "sd-option__icon",
341172
341311
  innerHTML: option.icon,
341173
341312
  style: exports_vue.normalizeStyle(option.style)
341174
- }, 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", {
341175
341314
  key: 0,
341176
341315
  class: "sd-option__check",
341177
341316
  innerHTML: exports_vue.unref(toolbarIcons).colorOptionCheck,
341178
341317
  style: exports_vue.normalizeStyle(getCheckStyle(option.value, optionIndex))
341179
- }, 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);
341180
341319
  }), 128))]);
341181
341320
  }), 128);
341182
341321
  };
341183
341322
  }
341184
341323
  }, [["__scopeId", "data-v-30cad300"]]);
341185
- _hoisted_1$14 = { class: "options-grid-wrap" };
341186
- _hoisted_2$11 = ["innerHTML"];
341187
- _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" };
341188
341327
  IconGrid_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
341189
341328
  __name: "IconGrid",
341190
341329
  props: {
@@ -341212,7 +341351,7 @@ function print() { __p += __j.call(arguments, '') }
341212
341351
  emit("select", option);
341213
341352
  };
341214
341353
  return (_ctx, _cache) => {
341215
- 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", {
341216
341355
  key: 0,
341217
341356
  class: "none-option",
341218
341357
  role: "menuitem",
@@ -341221,7 +341360,7 @@ function print() { __p += __j.call(arguments, '') }
341221
341360
  }, [exports_vue.createElementVNode("span", {
341222
341361
  innerHTML: exports_vue.unref(droplet_slash_default),
341223
341362
  class: "none-icon"
341224
- }, 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, {
341225
341364
  icons: __props.icons,
341226
341365
  "active-color": __props.activeColor,
341227
341366
  onSelect: handleSelect
@@ -341307,13 +341446,13 @@ function print() { __p += __j.call(arguments, '') }
341307
341446
  makeColorOption("#A91DFF", "neon purple")
341308
341447
  ]
341309
341448
  ];
341310
- _hoisted_1$13 = [
341449
+ _hoisted_1$14 = [
341311
341450
  "data-cols",
341312
341451
  "data-rows",
341313
341452
  "onKeydown",
341314
341453
  "onClick"
341315
341454
  ];
341316
- _hoisted_2$10 = ["aria-valuetext"];
341455
+ _hoisted_2$11 = ["aria-valuetext"];
341317
341456
  TableGrid_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
341318
341457
  __name: "TableGrid",
341319
341458
  emits: ["select", "clickoutside"],
@@ -341424,24 +341563,24 @@ function print() { __p += __j.call(arguments, '') }
341424
341563
  cols: n,
341425
341564
  rows: i4
341426
341565
  }), ["stop", "prevent"])
341427
- }, null, 40, _hoisted_1$13);
341566
+ }, null, 40, _hoisted_1$14);
341428
341567
  }), 64))], 64);
341429
341568
  }), 64))], 32), exports_vue.createElementVNode("div", {
341430
341569
  class: "toolbar-table-grid-value",
341431
341570
  "aria-valuetext": `${selectedRows.value} x ${selectedCols.value}`
341432
- }, 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);
341433
341572
  };
341434
341573
  }
341435
341574
  }, [["__scopeId", "data-v-168b91ce"]]);
341436
- _hoisted_1$12 = { class: "toolbar-table-actions" };
341437
- _hoisted_2$9 = [
341575
+ _hoisted_1$13 = { class: "toolbar-table-actions" };
341576
+ _hoisted_2$10 = [
341438
341577
  "onClick",
341439
341578
  "data-item",
341440
341579
  "ariaLabel"
341441
341580
  ];
341442
- _hoisted_3$7 = { class: "toolbar-table-actions__icon" };
341443
- _hoisted_4$5 = ["innerHTML"];
341444
- _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" };
341445
341584
  TableActions_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
341446
341585
  __name: "TableActions",
341447
341586
  props: { options: { type: Array } },
@@ -341452,24 +341591,24 @@ function print() { __p += __j.call(arguments, '') }
341452
341591
  emit("select", { command: item.command });
341453
341592
  };
341454
341593
  return (_ctx, _cache) => {
341455
- 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) => {
341456
341595
  return exports_vue.openBlock(), exports_vue.createElementBlock("div", {
341457
341596
  class: exports_vue.normalizeClass(["toolbar-table-actions__item", { "toolbar-table-actions__item--border": option.bottomBorder }]),
341458
341597
  onClick: ($event) => handleClick$1(option),
341459
341598
  "data-item": option.props?.["data-item"] || "",
341460
341599
  ariaLabel: option.props?.ariaLabel,
341461
341600
  role: "menuitem"
341462
- }, [exports_vue.createElementVNode("div", _hoisted_3$7, [exports_vue.createElementVNode("div", {
341601
+ }, [exports_vue.createElementVNode("div", _hoisted_3$8, [exports_vue.createElementVNode("div", {
341463
341602
  class: "toolbar-table-actions__icon-wrapper",
341464
341603
  innerHTML: option.icon
341465
- }, 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);
341466
341605
  }), 256))]);
341467
341606
  };
341468
341607
  }
341469
341608
  }, [["__scopeId", "data-v-652015c8"]]);
341470
- _hoisted_1$11 = { class: "search-input-ctn" };
341471
- _hoisted_2$8 = { class: "sd-row" };
341472
- _hoisted_3$6 = ["onKeydown"];
341609
+ _hoisted_1$12 = { class: "search-input-ctn" };
341610
+ _hoisted_2$9 = { class: "sd-row" };
341611
+ _hoisted_3$7 = ["onKeydown"];
341473
341612
  SearchInput_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
341474
341613
  __name: "SearchInput",
341475
341614
  props: { searchRef: { type: Object } },
@@ -341481,7 +341620,7 @@ function print() { __p += __j.call(arguments, '') }
341481
341620
  emit("submit", { value: searchValue.value });
341482
341621
  };
341483
341622
  return (_ctx, _cache) => {
341484
- 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", {
341485
341624
  ref: __props.searchRef,
341486
341625
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchValue.value = $event),
341487
341626
  class: "search-input",
@@ -341489,7 +341628,7 @@ function print() { __p += __j.call(arguments, '') }
341489
341628
  name: "search",
341490
341629
  placeholder: "Type search string",
341491
341630
  onKeydown: exports_vue.withKeys(exports_vue.withModifiers(handleSubmit, ["stop", "prevent"]), ["enter"])
341492
- }, 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", {
341493
341632
  class: "sd-submit-btn",
341494
341633
  onClick: handleSubmit
341495
341634
  }, "Apply")])]);
@@ -341633,8 +341772,8 @@ function print() { __p += __j.call(arguments, '') }
341633
341772
  HEADLESS_TOOLBAR_COMMANDS = [...new Set([...Object.values(HEADLESS_ITEM_MAP), ...TABLE_ACTION_COMMAND_IDS])];
341634
341773
  NON_HEADLESS_EXECUTE_ITEM_NAMES = new Set(["link"]);
341635
341774
  HEADLESS_EXECUTE_ITEMS = new Set(Object.keys(HEADLESS_ITEM_MAP).filter((itemName) => !NON_HEADLESS_EXECUTE_ITEM_NAMES.has(itemName)));
341636
- _hoisted_1$10 = { class: "sd-toolbar-icon" };
341637
- _hoisted_2$7 = ["innerHTML"];
341775
+ _hoisted_1$11 = { class: "sd-toolbar-icon" };
341776
+ _hoisted_2$8 = ["innerHTML"];
341638
341777
  ToolbarButtonIcon_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
341639
341778
  __name: "ToolbarButtonIcon",
341640
341779
  props: {
@@ -341663,10 +341802,10 @@ function print() { __p += __j.call(arguments, '') }
341663
341802
  return ["color", "highlight"].includes(props.name);
341664
341803
  });
341665
341804
  return (_ctx, _cache) => {
341666
- 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", {
341667
341806
  class: exports_vue.normalizeClass(["sd-toolbar-icon__icon", [`sd-toolbar-icon__icon--${props.name}`]]),
341668
341807
  innerHTML: __props.icon
341669
- }, 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", {
341670
341809
  key: 0,
341671
341810
  class: "color-bar",
341672
341811
  style: exports_vue.normalizeStyle(getBarColor.value)
@@ -341674,28 +341813,37 @@ function print() { __p += __j.call(arguments, '') }
341674
341813
  };
341675
341814
  }
341676
341815
  }, [["__scopeId", "data-v-521c3d93"]]);
341677
- _hoisted_1$9 = ["role", "aria-label"];
341678
- _hoisted_2$6 = ["data-item"];
341679
- _hoisted_3$5 = ["data-item"];
341680
- _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 = {
341681
341820
  key: 1,
341682
341821
  class: "sd-button-label"
341683
341822
  };
341684
- _hoisted_5$2 = ["data-item", "aria-label"];
341685
- _hoisted_6$1 = ["innerHTML"];
341686
- _hoisted_7$1 = {
341823
+ _hoisted_5$4 = ["data-item", "aria-label"];
341824
+ _hoisted_6$3 = ["innerHTML"];
341825
+ _hoisted_7$2 = {
341687
341826
  key: 1,
341688
341827
  class: "sd-button-label"
341689
341828
  };
341690
- _hoisted_8 = { key: 2 };
341829
+ _hoisted_8 = {
341830
+ key: 2,
341831
+ class: "sd-toolbar-button__field sd-toolbar-split-field__main"
341832
+ };
341691
341833
  _hoisted_9 = ["onKeydown", "id"];
341692
341834
  _hoisted_10 = [
341693
341835
  "placeholder",
341694
341836
  "onKeydown",
341695
341837
  "id"
341696
341838
  ];
341697
- _hoisted_11 = ["innerHTML"];
341698
- _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 = {
341699
341847
  "aria-live": "polite",
341700
341848
  class: "sd-visually-hidden"
341701
341849
  };
@@ -341738,21 +341886,28 @@ function print() { __p += __j.call(arguments, '') }
341738
341886
  emits: [
341739
341887
  "buttonClick",
341740
341888
  "textSubmit",
341741
- "mainClick"
341889
+ "mainClick",
341890
+ "tabOut"
341742
341891
  ],
341743
341892
  setup(__props, { emit: __emit }) {
341744
341893
  const emit = __emit;
341745
341894
  const props = __props;
341746
341895
  const { name, active, icon, label, hideLabel, iconColor, hasCaret, splitButton, disabled, expand, inlineTextInputVisible, hasInlineTextInput, minWidth, style: style2, attributes } = props.toolbarItem;
341747
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));
341748
341898
  const inlineTextInput = exports_vue.ref(label);
341749
341899
  const inlineInput = exports_vue.ref(null);
341750
341900
  const { isHighContrastMode: isHighContrastMode$1 } = useHighContrastMode();
341901
+ const selectInlineInput = () => {
341902
+ exports_vue.nextTick(() => {
341903
+ inlineInput.value?.select();
341904
+ });
341905
+ };
341751
341906
  const handleClick$1 = () => {
341752
341907
  if (hasInlineTextInput)
341753
341908
  exports_vue.nextTick(() => {
341754
341909
  inlineInput.value?.focus();
341755
- inlineInput.value?.select();
341910
+ selectInlineInput();
341756
341911
  });
341757
341912
  emit("buttonClick");
341758
341913
  };
@@ -341785,6 +341940,14 @@ function print() { __p += __j.call(arguments, '') }
341785
341940
  emit("textSubmit", cleanValue);
341786
341941
  inlineTextInput.value = cleanValue;
341787
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
+ };
341788
341951
  const getStyle = exports_vue.computed(() => {
341789
341952
  if (style2.value)
341790
341953
  return style2.value;
@@ -341801,7 +341964,7 @@ function print() { __p += __j.call(arguments, '') }
341801
341964
  "aria-label": exports_vue.unref(attributes).ariaLabel,
341802
341965
  "data-sd-part": "toolbar-item",
341803
341966
  onClick: handleOuterClick,
341804
- 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"])),
341805
341968
  tabindex: "0"
341806
341969
  }, [exports_vue.createElementVNode("div", {
341807
341970
  class: exports_vue.normalizeClass(["sd-toolbar-button", {
@@ -341810,6 +341973,8 @@ function print() { __p += __j.call(arguments, '') }
341810
341973
  narrow: __props.isNarrow,
341811
341974
  wide: __props.isWide,
341812
341975
  split: isSplit.value,
341976
+ "split-field": isInlineSplitField.value,
341977
+ "sd-toolbar-split-field": isInlineSplitField.value,
341813
341978
  "has-inline-text-input": exports_vue.unref(hasInlineTextInput),
341814
341979
  "high-contrast": exports_vue.unref(isHighContrastMode$1)
341815
341980
  }]),
@@ -341830,7 +341995,7 @@ function print() { __p += __j.call(arguments, '') }
341830
341995
  "color",
341831
341996
  "icon",
341832
341997
  "name"
341833
- ])) : 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),
341834
341999
  isSplit.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
341835
342000
  key: 1,
341836
342001
  class: "sd-toolbar-button__caret",
@@ -341841,7 +342006,7 @@ function print() { __p += __j.call(arguments, '') }
341841
342006
  class: "sd-dropdown-caret",
341842
342007
  innerHTML: caretIcon.value,
341843
342008
  style: exports_vue.normalizeStyle({ opacity: exports_vue.unref(disabled) ? 0.6 : 1 })
341844
- }, 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 }, [
341845
342010
  exports_vue.unref(icon) ? (exports_vue.openBlock(), exports_vue.createBlock(ToolbarButtonIcon_default, {
341846
342011
  key: 0,
341847
342012
  color: exports_vue.unref(iconColor),
@@ -341853,11 +342018,13 @@ function print() { __p += __j.call(arguments, '') }
341853
342018
  "icon",
341854
342019
  "name"
341855
342020
  ])) : exports_vue.createCommentVNode("", true),
341856
- 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),
341857
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", {
341858
342023
  key: 0,
341859
342024
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => inlineTextInput.value = $event),
341860
- 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"])),
341861
342028
  type: "text",
341862
342029
  class: exports_vue.normalizeClass(["button-text-input button-text-input--font-size", { "high-contrast": exports_vue.unref(isHighContrastMode$1) }]),
341863
342030
  id: "inlineTextInput-" + exports_vue.unref(name),
@@ -341866,7 +342033,7 @@ function print() { __p += __j.call(arguments, '') }
341866
342033
  ref: inlineInput
341867
342034
  }, null, 42, _hoisted_9)), [[exports_vue.vModelText, inlineTextInput.value]]) : exports_vue.withDirectives((exports_vue.openBlock(), exports_vue.createElementBlock("input", {
341868
342035
  key: 1,
341869
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => inlineTextInput.value = $event),
342036
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => inlineTextInput.value = $event),
341870
342037
  placeholder: exports_vue.unref(label),
341871
342038
  onKeydown: exports_vue.withKeys(exports_vue.withModifiers(handleInputSubmit, ["prevent"]), ["enter"]),
341872
342039
  type: "text",
@@ -341876,19 +342043,32 @@ function print() { __p += __j.call(arguments, '') }
341876
342043
  ref_key: "inlineInput",
341877
342044
  ref: inlineInput
341878
342045
  }, null, 40, _hoisted_10)), [[exports_vue.vModelText, inlineTextInput.value]])])) : exports_vue.createCommentVNode("", true),
341879
- exports_vue.unref(hasCaret) ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
342046
+ isInlineSplitField.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("button", {
341880
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", {
342056
+ class: "sd-dropdown-caret",
342057
+ innerHTML: caretIcon.value,
342058
+ style: exports_vue.normalizeStyle({ opacity: exports_vue.unref(disabled) ? 0.6 : 1 })
342059
+ }, null, 12, _hoisted_12)], 40, _hoisted_11)) : exports_vue.unref(hasCaret) ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
342060
+ key: 4,
341881
342061
  class: "sd-dropdown-caret",
341882
342062
  innerHTML: caretIcon.value,
341883
342063
  style: exports_vue.normalizeStyle({ opacity: exports_vue.unref(disabled) ? 0.6 : 1 })
341884
- }, null, 12, _hoisted_11)) : exports_vue.createCommentVNode("", true)
342064
+ }, null, 12, _hoisted_13)) : exports_vue.createCommentVNode("", true)
341885
342065
  ], 64)),
341886
- exports_vue.createElementVNode("div", _hoisted_12, exports_vue.toDisplayString(`${exports_vue.unref(attributes).ariaLabel} ${exports_vue.unref(active) ? "selected" : "unset"}`), 1)
341887
- ], 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);
341888
342068
  };
341889
342069
  }
341890
- }, [["__scopeId", "data-v-360f6a95"]]);
341891
- _hoisted_1$8 = {
342070
+ }, [["__scopeId", "data-v-2caa0057"]]);
342071
+ _hoisted_1$9 = {
341892
342072
  class: "toolbar-separator",
341893
342073
  role: "separator",
341894
342074
  "aria-label": "Toolbar separator"
@@ -341908,16 +342088,16 @@ function print() { __p += __j.call(arguments, '') }
341908
342088
  return "var(--sd-ui-border, #dbdbdb)";
341909
342089
  };
341910
342090
  return (_ctx, _cache) => {
341911
- 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", {
341912
342092
  class: "separator-inner",
341913
342093
  style: exports_vue.normalizeStyle({ backgroundColor: getSeparatorColor() })
341914
342094
  }, null, 4)]);
341915
342095
  };
341916
342096
  }
341917
342097
  }, [["__scopeId", "data-v-d027f7fc"]]);
341918
- _hoisted_1$7 = { class: "overflow-menu" };
341919
- _hoisted_2$5 = { class: "overflow-menu-trigger" };
341920
- _hoisted_3$4 = {
342098
+ _hoisted_1$8 = { class: "overflow-menu" };
342099
+ _hoisted_2$6 = { class: "overflow-menu-trigger" };
342100
+ _hoisted_3$5 = {
341921
342101
  key: 0,
341922
342102
  class: "overflow-menu_items",
341923
342103
  role: "group"
@@ -341969,10 +342149,10 @@ function print() { __p += __j.call(arguments, '') }
341969
342149
  document.removeEventListener("keydown", handleKeyDown$1, true);
341970
342150
  });
341971
342151
  return (_ctx, _cache) => {
341972
- 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, {
341973
342153
  "toolbar-item": overflowToolbarItem.value,
341974
342154
  onButtonClick: toggleOverflowMenu
341975
- }, 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, {
341976
342156
  class: "superdoc-toolbar-overflow",
341977
342157
  "toolbar-items": __props.overflowItems,
341978
342158
  "from-overflow": "",
@@ -341982,13 +342162,13 @@ function print() { __p += __j.call(arguments, '') }
341982
342162
  };
341983
342163
  }
341984
342164
  }, [["__scopeId", "data-v-35b48dff"]]);
341985
- _hoisted_1$6 = { class: "toolbar-dropdown" };
341986
- _hoisted_2$4 = ["onClick"];
341987
- _hoisted_3$3 = {
342165
+ _hoisted_1$7 = { class: "toolbar-dropdown" };
342166
+ _hoisted_2$5 = ["onClick"];
342167
+ _hoisted_3$4 = {
341988
342168
  key: 0,
341989
342169
  class: "toolbar-dropdown-option__icon"
341990
342170
  };
341991
- _hoisted_4$3 = { class: "toolbar-dropdown-option__label" };
342171
+ _hoisted_4$4 = { class: "toolbar-dropdown-option__label" };
341992
342172
  ToolbarDropdown_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
341993
342173
  __name: "ToolbarDropdown",
341994
342174
  props: {
@@ -342336,7 +342516,7 @@ function print() { __p += __j.call(arguments, '') }
342336
342516
  window.removeEventListener("scroll", updateMenuPosition, true);
342337
342517
  });
342338
342518
  return (_ctx, _cache) => {
342339
- 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", {
342340
342520
  ref_key: "triggerRef",
342341
342521
  ref: triggerRef,
342342
342522
  class: "toolbar-dropdown-trigger",
@@ -342371,13 +342551,486 @@ function print() { __p += __j.call(arguments, '') }
342371
342551
  }), [isRenderOption(option) ? (exports_vue.openBlock(), exports_vue.createBlock(exports_vue.unref(RenderOption), {
342372
342552
  key: 0,
342373
342553
  option
342374
- }, 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);
342375
342555
  }), 128))], 16)) : exports_vue.createCommentVNode("", true)]),
342376
342556
  _: 1
342377
342557
  })]))]);
342378
342558
  };
342379
342559
  }
342380
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"]]);
342381
343034
  SdTooltip_default = /* @__PURE__ */ __plugin_vue_export_helper_default(/* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
342382
343035
  __name: "SdTooltip",
342383
343036
  props: {
@@ -342393,6 +343046,10 @@ function print() { __p += __j.call(arguments, '') }
342393
343046
  type: Number,
342394
343047
  default: 100
342395
343048
  },
343049
+ autoHideDuration: {
343050
+ type: Number,
343051
+ default: 0
343052
+ },
342396
343053
  disabled: {
342397
343054
  type: Boolean,
342398
343055
  default: false
@@ -342414,6 +343071,7 @@ function print() { __p += __j.call(arguments, '') }
342414
343071
  });
342415
343072
  let closeTimeout = null;
342416
343073
  let openTimeout = null;
343074
+ let autoHideTimeout = null;
342417
343075
  const mergedContentClass = exports_vue.computed(() => ["sd-tooltip-content", attrs.class]);
342418
343076
  const contentStyle = exports_vue.computed(() => ({
342419
343077
  ...props.contentStyle,
@@ -342435,6 +343093,21 @@ function print() { __p += __j.call(arguments, '') }
342435
343093
  openTimeout = null;
342436
343094
  }
342437
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
+ };
342438
343111
  const updatePosition$1 = () => {
342439
343112
  if (!triggerRef.value || !contentRef.value)
342440
343113
  return;
@@ -342460,10 +343133,12 @@ function print() { __p += __j.call(arguments, '') }
342460
343133
  isOpen.value = true;
342461
343134
  await exports_vue.nextTick();
342462
343135
  updatePosition$1();
343136
+ scheduleAutoHide();
342463
343137
  };
342464
343138
  const close2 = () => {
342465
343139
  clearOpenTimeout();
342466
343140
  clearCloseTimeout();
343141
+ clearAutoHideTimeout();
342467
343142
  if (!isOpen.value)
342468
343143
  return;
342469
343144
  isOpen.value = false;
@@ -342535,6 +343210,7 @@ function print() { __p += __j.call(arguments, '') }
342535
343210
  exports_vue.onBeforeUnmount(() => {
342536
343211
  clearOpenTimeout();
342537
343212
  clearCloseTimeout();
343213
+ clearAutoHideTimeout();
342538
343214
  window.removeEventListener("resize", updatePosition$1);
342539
343215
  window.removeEventListener("scroll", updatePosition$1, true);
342540
343216
  document.removeEventListener("keydown", handleEscape, true);
@@ -342565,15 +343241,17 @@ function print() { __p += __j.call(arguments, '') }
342565
343241
  })]))], 64);
342566
343242
  };
342567
343243
  }
342568
- }), [["__scopeId", "data-v-d8dd2f5a"]]);
342569
- _hoisted_1$5 = [
343244
+ }), [["__scopeId", "data-v-f0925f67"]]);
343245
+ _hoisted_1$5 = ["data-toolbar-position"];
343246
+ _hoisted_2$3 = [
342570
343247
  "onKeydown",
342571
343248
  "tabindex",
342572
343249
  "data-item-id"
342573
343250
  ];
342574
- _hoisted_2$3 = { key: 0 };
342575
343251
  _hoisted_3$2 = { key: 0 };
342576
343252
  _hoisted_4$2 = { key: 0 };
343253
+ _hoisted_5$2 = { key: 0 };
343254
+ _hoisted_6$1 = { key: 0 };
342577
343255
  ButtonGroup_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
342578
343256
  __name: "ButtonGroup",
342579
343257
  props: {
@@ -342634,8 +343312,10 @@ function print() { __p += __j.call(arguments, '') }
342634
343312
  });
342635
343313
  const isButton = (item) => item.type === "button";
342636
343314
  const isDropdown = (item) => item.type === "dropdown";
343315
+ const isFontFamily = (item) => item.type === "dropdown" && item.name?.value === "fontFamily";
342637
343316
  const isSeparator = (item) => item.type === "separator";
342638
343317
  const isOverflow = (item) => item.type === "overflow";
343318
+ const hasNestedOptions = (item) => Boolean(item.nestedOptions?.value?.length);
342639
343319
  const getExpanded = (item) => {
342640
343320
  if (!item)
342641
343321
  return false;
@@ -342699,16 +343379,19 @@ function print() { __p += __j.call(arguments, '') }
342699
343379
  argument: null
342700
343380
  });
342701
343381
  };
342702
- const closeDropdowns = () => {
343382
+ const closeDropdowns = (exceptItem = null) => {
342703
343383
  const toolbarItems = proxy?.$toolbar?.toolbarItems || [];
342704
343384
  const overflowItems = proxy?.$toolbar?.overflowItems || [];
342705
343385
  const allItems = [...toolbarItems, ...overflowItems];
342706
343386
  (allItems.length ? allItems : props.toolbarItems).forEach((toolbarItem) => {
343387
+ if (toolbarItem === exceptItem)
343388
+ return;
342707
343389
  const shouldCloseOverflow = isOverflow(toolbarItem) && !props.fromOverflow;
342708
343390
  if (isDropdown(toolbarItem) || shouldCloseOverflow)
342709
343391
  setExpanded(toolbarItem, false);
342710
343392
  });
342711
- currentItem.value = null;
343393
+ if (!exceptItem || currentItem.value !== exceptItem)
343394
+ currentItem.value = null;
342712
343395
  };
342713
343396
  const handleSelect = (item, option) => {
342714
343397
  closeDropdowns();
@@ -342719,6 +343402,39 @@ function print() { __p += __j.call(arguments, '') }
342719
343402
  });
342720
343403
  item.selectedValue.value = option.key;
342721
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
+ };
342722
343438
  const dropdownOptions = (item) => {
342723
343439
  if (!item.nestedOptions?.value?.length)
342724
343440
  return [];
@@ -342757,16 +343473,97 @@ function print() { __p += __j.call(arguments, '') }
342757
343473
  previousButton.focus();
342758
343474
  }
342759
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
+ };
342760
343560
  const moveToNextButtonGroup = (e) => {
342761
343561
  const nextButtonGroup = e.target.closest(".button-group").nextElementSibling;
342762
343562
  if (nextButtonGroup) {
342763
343563
  nextButtonGroup.setAttribute("tabindex", "0");
342764
343564
  nextButtonGroup.focus();
342765
- } else {
342766
- const editor = document.querySelector(".ProseMirror");
342767
- if (editor)
342768
- editor.focus();
342769
- }
343565
+ } else
343566
+ focusEditor();
342770
343567
  };
342771
343568
  const moveToPreviousButtonGroup = (e) => {
342772
343569
  const previousButtonGroup = e.target.closest(".button-group").previousElementSibling;
@@ -342786,7 +343583,7 @@ function print() { __p += __j.call(arguments, '') }
342786
343583
  };
342787
343584
  const handleKeyDown$1 = (e, item) => {
342788
343585
  const isTypingField = e.target.nodeName === "INPUT" || e.target.nodeName === "TEXTAREA";
342789
- const isTypingToolbarItem = item.name.value === "fontSize";
343586
+ const isTypingToolbarItem = item.name.value === "fontSize" || item.name.value === "fontFamily";
342790
343587
  if (isTypingField && isTypingToolbarItem)
342791
343588
  return;
342792
343589
  if (![
@@ -342852,7 +343649,7 @@ function print() { __p += __j.call(arguments, '') }
342852
343649
  const target = event.target;
342853
343650
  if (!(target instanceof Element))
342854
343651
  return;
342855
- if (target.closest(".sd-toolbar-dropdown-menu"))
343652
+ if (target.closest(".sd-toolbar-dropdown-menu, .sd-font-combobox__listbox"))
342856
343653
  return;
342857
343654
  if (buttonGroupRef.value?.contains(target))
342858
343655
  return;
@@ -342877,7 +343674,8 @@ function print() { __p += __j.call(arguments, '') }
342877
343674
  role: "group",
342878
343675
  onFocus: handleFocus,
342879
343676
  ref_key: "buttonGroupRef",
342880
- ref: buttonGroupRef
343677
+ ref: buttonGroupRef,
343678
+ "data-toolbar-position": props.position
342881
343679
  }, [(exports_vue.openBlock(true), exports_vue.createElementBlock(exports_vue.Fragment, null, exports_vue.renderList(__props.toolbarItems, (item, index2) => {
342882
343680
  return exports_vue.openBlock(), exports_vue.createElementBlock("div", {
342883
343681
  key: item.id.value,
@@ -342897,8 +343695,31 @@ function print() { __p += __j.call(arguments, '') }
342897
343695
  key: 0,
342898
343696
  style: { width: "20px" }
342899
343697
  })) : exports_vue.createCommentVNode("", true),
342900
- 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, {
342901
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,
342902
343723
  options: dropdownOptions(item),
342903
343724
  disabled: item.disabled.value,
342904
343725
  show: getExpanded(item),
@@ -342918,6 +343739,7 @@ function print() { __p += __j.call(arguments, '') }
342918
343739
  trigger: exports_vue.withCtx(() => [exports_vue.createVNode(SdTooltip_default, {
342919
343740
  trigger: "hover",
342920
343741
  disabled: !item.tooltip?.value,
343742
+ "auto-hide-duration": TOOLBAR_TOOLTIP_AUTO_HIDE_MS,
342921
343743
  "content-style": { fontFamily: props.uiFontFamily }
342922
343744
  }, {
342923
343745
  trigger: exports_vue.withCtx(() => [exports_vue.createVNode(ToolbarButton_default, {
@@ -342925,14 +343747,16 @@ function print() { __p += __j.call(arguments, '') }
342925
343747
  disabled: item.disabled.value,
342926
343748
  "allow-enter-propagation": true,
342927
343749
  onTextSubmit: ($event) => handleToolbarButtonTextSubmit(item, $event),
342928
- onMainClick: ($event) => handleSplitButtonMainClick(item)
343750
+ onMainClick: ($event) => handleSplitButtonMainClick(item),
343751
+ onTabOut: ($event) => handleToolbarButtonTabOut(item, $event)
342929
343752
  }, null, 8, [
342930
343753
  "toolbar-item",
342931
343754
  "disabled",
342932
343755
  "onTextSubmit",
342933
- "onMainClick"
343756
+ "onMainClick",
343757
+ "onTabOut"
342934
343758
  ])]),
342935
- 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)])]),
342936
343760
  _: 2
342937
343761
  }, 1032, ["disabled", "content-style"])]),
342938
343762
  _: 2
@@ -342947,9 +343771,10 @@ function print() { __p += __j.call(arguments, '') }
342947
343771
  "menu-props",
342948
343772
  "node-props"
342949
343773
  ])) : isButton(item) ? (exports_vue.openBlock(), exports_vue.createBlock(SdTooltip_default, {
342950
- key: 2,
343774
+ key: 3,
342951
343775
  trigger: "hover",
342952
343776
  class: "sd-editor-toolbar-tooltip",
343777
+ "auto-hide-duration": TOOLBAR_TOOLTIP_AUTO_HIDE_MS,
342953
343778
  "content-style": { fontFamily: props.uiFontFamily }
342954
343779
  }, {
342955
343780
  trigger: exports_vue.withCtx(() => [exports_vue.createVNode(ToolbarButton_default, {
@@ -342963,11 +343788,11 @@ function print() { __p += __j.call(arguments, '') }
342963
343788
  "onTextSubmit",
342964
343789
  "onButtonClick"
342965
343790
  ])]),
342966
- 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)]),
342967
343792
  _: 2
342968
343793
  }, 1032, ["content-style"])) : exports_vue.createCommentVNode("", true),
342969
343794
  isOverflow(item) && __props.overflowItems.length ? (exports_vue.openBlock(), exports_vue.createBlock(OverflowMenu_default, {
342970
- key: 3,
343795
+ key: 4,
342971
343796
  "toolbar-item": item,
342972
343797
  onButtonClick: ($event) => handleToolbarButtonClick(item),
342973
343798
  "overflow-items": __props.overflowItems,
@@ -342977,11 +343802,11 @@ function print() { __p += __j.call(arguments, '') }
342977
343802
  "onButtonClick",
342978
343803
  "overflow-items"
342979
343804
  ])) : exports_vue.createCommentVNode("", true)
342980
- ], 42, _hoisted_1$5);
342981
- }), 128))], 36);
343805
+ ], 42, _hoisted_2$3);
343806
+ }), 128))], 44, _hoisted_1$5);
342982
343807
  };
342983
343808
  }
342984
- }, [["__scopeId", "data-v-9c3524ec"]]);
343809
+ }, [["__scopeId", "data-v-181bd035"]]);
342985
343810
  Toolbar_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
342986
343811
  __name: "Toolbar",
342987
343812
  emits: [
@@ -343135,7 +343960,7 @@ function print() { __p += __j.call(arguments, '') }
343135
343960
  }, [["__scopeId", "data-v-938eaa1b"]]);
343136
343961
  toolbarTexts = {
343137
343962
  bold: "Bold",
343138
- fontFamily: "Font",
343963
+ fontFamily: "Font family",
343139
343964
  ai: "AI text generation",
343140
343965
  fontSize: "Font size",
343141
343966
  italic: "Italic",
@@ -343744,45 +344569,51 @@ function print() { __p += __j.call(arguments, '') }
343744
344569
  if (shouldRestoreFocus)
343745
344570
  this.#scheduleRestoreEditorFocus();
343746
344571
  }
343747
- onEditorSelectionUpdate() {
344572
+ flushPendingMarkCommands() {
343748
344573
  if (!this.activeEditor)
343749
- return;
343750
- if (this.pendingMarkCommands.length) {
343751
- const pending = this.pendingMarkCommands;
343752
- this.pendingMarkCommands = [];
343753
- pending.forEach(({ command: command$1, argument, item }) => {
343754
- if (!command$1)
343755
- return;
343756
- try {
343757
- if (HEADLESS_EXECUTE_ITEMS.has(item?.name?.value)) {
343758
- if (this.#executeHeadlessCommand(item, argument)) {
343759
- this.#ensureStoredMarksForMarkToggle({
343760
- command: command$1,
343761
- argument
343762
- });
343763
- return;
343764
- }
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;
343765
344590
  }
343766
- if (this.activeEditor.commands && command$1 in this.activeEditor.commands)
343767
- this.activeEditor.commands[command$1](argument);
343768
- this.#ensureStoredMarksForMarkToggle({
343769
- command: command$1,
343770
- argument
343771
- });
343772
- } catch (error48) {
343773
- const err = /* @__PURE__ */ new Error(`[super-toolbar \uD83C\uDFA8] Failed to execute pending command: ${command$1}`);
343774
- this.emit("exception", {
343775
- error: err,
343776
- editor: this.activeEditor,
343777
- originalError: error48
343778
- });
343779
- console.error(err, error48);
343780
344591
  }
343781
- });
343782
- this.#syncStickyMarksFromState();
343783
- 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())
343784
344616
  return;
343785
- }
343786
344617
  if (this.#restoreStickyMarksIfNeeded())
343787
344618
  this.updateToolbarState();
343788
344619
  }
@@ -355749,161 +356580,166 @@ function print() { __p += __j.call(arguments, '') }
355749
356580
  ]);
355750
356581
  });
355751
356582
 
355752
- // ../../packages/superdoc/dist/chunks/create-super-doc-ui-gS4xi9O7.es.js
355753
- 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;
355754
- var init_create_super_doc_ui_gS4xi9O7_es = __esm(() => {
355755
- init_SuperConverter_DLdwVEPh_es();
355756
- init_create_headless_toolbar_BxKMAAgQ_es();
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(() => {
356586
+ init_SuperConverter_d9QeIy9_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
+ ];
355757
356737
  headlessToolbarConstants = {
355758
- DEFAULT_TEXT_ALIGN_OPTIONS: [
355759
- {
355760
- label: "Left",
355761
- value: "left"
355762
- },
355763
- {
355764
- label: "Center",
355765
- value: "center"
355766
- },
355767
- {
355768
- label: "Right",
355769
- value: "right"
355770
- },
355771
- {
355772
- label: "Justify",
355773
- value: "justify"
355774
- }
355775
- ],
355776
- DEFAULT_LINE_HEIGHT_OPTIONS: [
355777
- {
355778
- label: "1.00",
355779
- value: 1
355780
- },
355781
- {
355782
- label: "1.15",
355783
- value: 1.15
355784
- },
355785
- {
355786
- label: "1.50",
355787
- value: 1.5
355788
- },
355789
- {
355790
- label: "2.00",
355791
- value: 2
355792
- },
355793
- {
355794
- label: "2.50",
355795
- value: 2.5
355796
- },
355797
- {
355798
- label: "3.00",
355799
- value: 3
355800
- }
355801
- ],
355802
- DEFAULT_ZOOM_OPTIONS: [
355803
- {
355804
- label: "50%",
355805
- value: 50
355806
- },
355807
- {
355808
- label: "75%",
355809
- value: 75
355810
- },
355811
- {
355812
- label: "90%",
355813
- value: 90
355814
- },
355815
- {
355816
- label: "100%",
355817
- value: 100
355818
- },
355819
- {
355820
- label: "125%",
355821
- value: 125
355822
- },
355823
- {
355824
- label: "150%",
355825
- value: 150
355826
- },
355827
- {
355828
- label: "200%",
355829
- value: 200
355830
- }
355831
- ],
355832
- DEFAULT_DOCUMENT_MODE_OPTIONS: [
355833
- {
355834
- label: "Editing",
355835
- value: "editing",
355836
- description: "Edit document directly"
355837
- },
355838
- {
355839
- label: "Suggesting",
355840
- value: "suggesting",
355841
- description: "Edits become suggestions"
355842
- },
355843
- {
355844
- label: "Viewing",
355845
- value: "viewing",
355846
- description: "View clean version of document only"
355847
- }
355848
- ],
355849
- DEFAULT_FONT_SIZE_OPTIONS: [
355850
- {
355851
- label: "8",
355852
- value: "8pt"
355853
- },
355854
- {
355855
- label: "9",
355856
- value: "9pt"
355857
- },
355858
- {
355859
- label: "10",
355860
- value: "10pt"
355861
- },
355862
- {
355863
- label: "11",
355864
- value: "11pt"
355865
- },
355866
- {
355867
- label: "12",
355868
- value: "12pt"
355869
- },
355870
- {
355871
- label: "14",
355872
- value: "14pt"
355873
- },
355874
- {
355875
- label: "18",
355876
- value: "18pt"
355877
- },
355878
- {
355879
- label: "24",
355880
- value: "24pt"
355881
- },
355882
- {
355883
- label: "30",
355884
- value: "30pt"
355885
- },
355886
- {
355887
- label: "36",
355888
- value: "36pt"
355889
- },
355890
- {
355891
- label: "48",
355892
- value: "48pt"
355893
- },
355894
- {
355895
- label: "60",
355896
- value: "60pt"
355897
- },
355898
- {
355899
- label: "72",
355900
- value: "72pt"
355901
- },
355902
- {
355903
- label: "96",
355904
- value: "96pt"
355905
- }
355906
- ],
356738
+ DEFAULT_TEXT_ALIGN_OPTIONS,
356739
+ DEFAULT_LINE_HEIGHT_OPTIONS,
356740
+ DEFAULT_ZOOM_OPTIONS,
356741
+ DEFAULT_DOCUMENT_MODE_OPTIONS,
356742
+ DEFAULT_FONT_SIZE_OPTIONS,
355907
356743
  DEFAULT_FONT_FAMILY_OPTIONS: getDefaultFontFamilyOptions(),
355908
356744
  DEFAULT_TEXT_COLOR_OPTIONS: [
355909
356745
  {
@@ -356020,6 +356856,10 @@ var init_create_super_doc_ui_gS4xi9O7_es = __esm(() => {
356020
356856
  ]);
356021
356857
  ALL_TOOLBAR_COMMAND_IDS = Object.keys(createToolbarRegistry());
356022
356858
  EMPTY_ACTIVE_IDS = Object.freeze([]);
356859
+ FONT_SIZE_OPTIONS = DEFAULT_FONT_SIZE_OPTIONS.map(({ label, value }) => ({
356860
+ label,
356861
+ value
356862
+ }));
356023
356863
  });
356024
356864
 
356025
356865
  // ../../packages/superdoc/dist/chunks/ui-C5PAS9hY.es.js
@@ -356035,16 +356875,16 @@ var init_zipper_yaJVJ4z9_es = __esm(() => {
356035
356875
 
356036
356876
  // ../../packages/superdoc/dist/super-editor.es.js
356037
356877
  var init_super_editor_es = __esm(() => {
356038
- init_src_Bq_Yxqun_es();
356039
- init_SuperConverter_DLdwVEPh_es();
356878
+ init_src_BVjcuFXj_es();
356879
+ init_SuperConverter_d9QeIy9_es();
356040
356880
  init_jszip_C49i9kUs_es();
356041
356881
  init_xml_js_CqGKpaft_es();
356042
- init_create_headless_toolbar_BxKMAAgQ_es();
356882
+ init_create_headless_toolbar_CJpgldP1_es();
356043
356883
  init_constants_D9qj59G2_es();
356044
356884
  init_dist_B8HfvhaK_es();
356045
356885
  init_unified_Dsuw2be5_es();
356046
356886
  init_DocxZipper_FUsfThjV_es();
356047
- init_create_super_doc_ui_gS4xi9O7_es();
356887
+ init_create_super_doc_ui_DQMMcx6J_es();
356048
356888
  init_ui_C5PAS9hY_es();
356049
356889
  init_eventemitter3_BnGqBE_Q_es();
356050
356890
  init_errors_CNaD6vcg_es();
@@ -421395,7 +422235,7 @@ function normalizeKeyName2(name) {
421395
422235
  result = "Shift-" + result;
421396
422236
  return result;
421397
422237
  }
421398
- function normalize4(map10) {
422238
+ function normalize5(map10) {
421399
422239
  let copy4 = Object.create(null);
421400
422240
  for (let prop in map10)
421401
422241
  copy4[normalizeKeyName2(prop)] = map10[prop];
@@ -421413,7 +422253,7 @@ function modifiers2(name, event, shift3 = true) {
421413
422253
  return name;
421414
422254
  }
421415
422255
  function keydownHandler2(bindings) {
421416
- let map10 = normalize4(bindings);
422256
+ let map10 = normalize5(bindings);
421417
422257
  return function(view, event) {
421418
422258
  let name = keyName2(event), baseName2, direct = map10[modifiers2(name, event)];
421419
422259
  if (direct && direct(view.state, view.dispatch, view))
@@ -443116,8 +443956,22 @@ function preProcessXeInstruction2(nodesToCombine, instrText, options = {}) {
443116
443956
 
443117
443957
  // ../../packages/super-editor/src/editors/v1/core/super-converter/field-references/fld-preprocessors/tc-preprocessor.js
443118
443958
  function preProcessTcInstruction2(nodesToCombine, instrText, options = {}) {
443959
+ const before = [];
443960
+ const after = [];
443961
+ const entryElements = [];
443119
443962
  const instructionTokens = options.instructionTokens ?? null;
443963
+ let seenContent = false;
443964
+ for (const node4 of nodesToCombine) {
443965
+ const isBookmarkMarker = node4?.name === "w:bookmarkStart" || node4?.name === "w:bookmarkEnd";
443966
+ if (isBookmarkMarker) {
443967
+ (seenContent ? after : before).push(node4);
443968
+ } else {
443969
+ seenContent = true;
443970
+ entryElements.push(node4);
443971
+ }
443972
+ }
443120
443973
  return [
443974
+ ...before,
443121
443975
  {
443122
443976
  name: "sd:tableOfContentsEntry",
443123
443977
  type: "element",
@@ -443125,8 +443979,9 @@ function preProcessTcInstruction2(nodesToCombine, instrText, options = {}) {
443125
443979
  instruction: instrText,
443126
443980
  ...instructionTokens ? { instructionTokens } : {}
443127
443981
  },
443128
- elements: nodesToCombine
443129
- }
443982
+ elements: entryElements
443983
+ },
443984
+ ...after
443130
443985
  ];
443131
443986
  }
443132
443987
 
@@ -492836,10 +493691,16 @@ function createSelectionTrackingBookmark2(selection) {
492836
493691
  }
492837
493692
  return selection.getBookmark();
492838
493693
  }
492839
- var CustomSelectionPluginKey2, SelectionHandlePluginKey2;
493694
+ var CustomSelectionPluginKey2, DEFAULT_CUSTOM_SELECTION_STATE2, SelectionHandlePluginKey2;
492840
493695
  var init_selection_state = __esm(() => {
492841
493696
  init_dist5();
492842
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
+ });
492843
493704
  SelectionHandlePluginKey2 = new PluginKey2("selectionHandle");
492844
493705
  });
492845
493706
 
@@ -492884,6 +493745,15 @@ function mapPreservedSelection2(selection, tr) {
492884
493745
  return null;
492885
493746
  }
492886
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
+ }
492887
493757
  var DEFAULT_SELECTION_STATE2, normalizeSelectionState2 = (state = {}) => ({
492888
493758
  ...DEFAULT_SELECTION_STATE2,
492889
493759
  ...state
@@ -492932,6 +493802,13 @@ var init_custom_selection = __esm(() => {
492932
493802
  const nextState = meta4 !== undefined ? normalizeSelectionState2({ ...value, ...meta4 }) : value;
492933
493803
  if (!nextState?.preservedSelection)
492934
493804
  return nextState;
493805
+ if (shouldClearPreservedSelectionOnSelectionMove2(tr, nextState)) {
493806
+ return {
493807
+ ...nextState,
493808
+ preservedSelection: null,
493809
+ showVisualSelection: false
493810
+ };
493811
+ }
492935
493812
  if (!tr.docChanged)
492936
493813
  return nextState;
492937
493814
  const mappedSelection = mapPreservedSelection2(nextState.preservedSelection, tr);