@superdoc-dev/cli 0.17.0-next.12 → 0.17.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 +1219 -379
  2. package/package.json +8 -8
package/dist/index.js CHANGED
@@ -68327,7 +68327,7 @@ var init_remark_gfm_BhnWr3yf_es = __esm(() => {
68327
68327
  emptyOptions2 = {};
68328
68328
  });
68329
68329
 
68330
- // ../../packages/superdoc/dist/chunks/SuperConverter-DLdwVEPh.es.js
68330
+ // ../../packages/superdoc/dist/chunks/SuperConverter-d9QeIy9-.es.js
68331
68331
  function getExtensionConfigField(extension$1, field, context = { name: "" }) {
68332
68332
  const fieldValue = extension$1.config[field];
68333
68333
  if (typeof fieldValue === "function")
@@ -83894,16 +83894,31 @@ function preProcessXeInstruction(nodesToCombine, instrText, options = {}) {
83894
83894
  }];
83895
83895
  }
83896
83896
  function preProcessTcInstruction(nodesToCombine, instrText, options = {}) {
83897
+ const before2 = [];
83898
+ const after2 = [];
83899
+ const entryElements = [];
83897
83900
  const instructionTokens = options.instructionTokens ?? null;
83898
- return [{
83899
- name: "sd:tableOfContentsEntry",
83900
- type: "element",
83901
- attributes: {
83902
- instruction: instrText,
83903
- ...instructionTokens ? { instructionTokens } : {}
83901
+ let seenContent = false;
83902
+ for (const node3 of nodesToCombine)
83903
+ if (node3?.name === "w:bookmarkStart" || node3?.name === "w:bookmarkEnd")
83904
+ (seenContent ? after2 : before2).push(node3);
83905
+ else {
83906
+ seenContent = true;
83907
+ entryElements.push(node3);
83908
+ }
83909
+ return [
83910
+ ...before2,
83911
+ {
83912
+ name: "sd:tableOfContentsEntry",
83913
+ type: "element",
83914
+ attributes: {
83915
+ instruction: instrText,
83916
+ ...instructionTokens ? { instructionTokens } : {}
83917
+ },
83918
+ elements: entryElements
83904
83919
  },
83905
- elements: nodesToCombine
83906
- }];
83920
+ ...after2
83921
+ ];
83907
83922
  }
83908
83923
  function preProcessRefInstruction(nodesToCombine, instrText, options = {}) {
83909
83924
  return [{
@@ -134312,7 +134327,7 @@ var isRegExp = (value) => {
134312
134327
  state.kern = kernNode.attributes["w:val"];
134313
134328
  }
134314
134329
  }, SuperConverter;
134315
- var init_SuperConverter_DLdwVEPh_es = __esm(() => {
134330
+ var init_SuperConverter_d9QeIy9_es = __esm(() => {
134316
134331
  init_rolldown_runtime_Bg48TavK_es();
134317
134332
  init_jszip_C49i9kUs_es();
134318
134333
  init_xml_js_CqGKpaft_es();
@@ -174432,7 +174447,7 @@ var init_SuperConverter_DLdwVEPh_es = __esm(() => {
174432
174447
  };
174433
174448
  });
174434
174449
 
174435
- // ../../packages/superdoc/dist/chunks/create-headless-toolbar-BxKMAAgQ.es.js
174450
+ // ../../packages/superdoc/dist/chunks/create-headless-toolbar-CJpgldP1.es.js
174436
174451
  function parseSizeUnit(val = "0") {
174437
174452
  const length3 = val.toString() || "0";
174438
174453
  const value = Number.parseFloat(length3);
@@ -174442,6 +174457,43 @@ function parseSizeUnit(val = "0") {
174442
174457
  function getPreservedSelection(state) {
174443
174458
  return CustomSelectionPluginKey.getState(state)?.preservedSelection ?? null;
174444
174459
  }
174460
+ function getSelectedTextRange(state) {
174461
+ const { selection } = state;
174462
+ let from5 = null;
174463
+ let to = null;
174464
+ state.doc.nodesBetween(selection.from, selection.to, (node3, pos) => {
174465
+ if (!node3.isText || !node3.text)
174466
+ return;
174467
+ const start = pos;
174468
+ const end = pos + node3.nodeSize;
174469
+ from5 = from5 == null ? start : Math.min(from5, start);
174470
+ to = to == null ? end : Math.max(to, end);
174471
+ });
174472
+ return from5 == null || to == null ? null : {
174473
+ from: from5,
174474
+ to
174475
+ };
174476
+ }
174477
+ function prepareSelectionForTextInputHandoff(editor) {
174478
+ const state = editor?.view?.state ?? editor?.state;
174479
+ const dispatch = typeof editor?.view?.dispatch === "function" ? editor.view.dispatch.bind(editor.view) : typeof editor?.dispatch === "function" ? editor.dispatch.bind(editor) : null;
174480
+ if (!state || !dispatch)
174481
+ return false;
174482
+ let tr = state.tr.setMeta(CustomSelectionPluginKey, DEFAULT_CUSTOM_SELECTION_STATE);
174483
+ if (state.selection instanceof AllSelection) {
174484
+ const range = getSelectedTextRange(state);
174485
+ if (range)
174486
+ try {
174487
+ tr = tr.setSelection(TextSelection.create(tr.doc, range.from, range.to));
174488
+ } catch {}
174489
+ }
174490
+ dispatch(tr);
174491
+ editor?.setOptions?.({
174492
+ preservedSelection: null,
174493
+ lastSelection: null
174494
+ });
174495
+ return true;
174496
+ }
174445
174497
  function createSelectionTrackingBookmark(selection) {
174446
174498
  if (selection instanceof TextSelection && !selection.empty)
174447
174499
  return new InclusiveTextSelectionBookmark(selection.anchor, selection.head);
@@ -182035,7 +182087,7 @@ var CSS_DIMENSION_REGEX, DOM_SIZE_UNITS, normalizeActorId = (value) => {
182035
182087
  static create(config2) {
182036
182088
  return new Extension2(config2);
182037
182089
  }
182038
- }, CustomSelectionPluginKey, InclusiveTextSelectionBookmark = class InclusiveTextSelectionBookmark2 {
182090
+ }, CustomSelectionPluginKey, DEFAULT_CUSTOM_SELECTION_STATE, InclusiveTextSelectionBookmark = class InclusiveTextSelectionBookmark2 {
182039
182091
  constructor(anchor, head) {
182040
182092
  this.anchor = anchor;
182041
182093
  this.head = head;
@@ -184790,8 +184842,8 @@ var CSS_DIMENSION_REGEX, DOM_SIZE_UNITS, normalizeActorId = (value) => {
184790
184842
  }
184791
184843
  };
184792
184844
  };
184793
- var init_create_headless_toolbar_BxKMAAgQ_es = __esm(() => {
184794
- init_SuperConverter_DLdwVEPh_es();
184845
+ var init_create_headless_toolbar_CJpgldP1_es = __esm(() => {
184846
+ init_SuperConverter_d9QeIy9_es();
184795
184847
  init_uuid_B2wVPhPi_es();
184796
184848
  init_constants_D9qj59G2_es();
184797
184849
  init_dist_B8HfvhaK_es();
@@ -184812,6 +184864,12 @@ var init_create_headless_toolbar_BxKMAAgQ_es = __esm(() => {
184812
184864
  "vmax"
184813
184865
  ];
184814
184866
  CustomSelectionPluginKey = new PluginKey("CustomSelection");
184867
+ DEFAULT_CUSTOM_SELECTION_STATE = Object.freeze({
184868
+ focused: false,
184869
+ preservedSelection: null,
184870
+ showVisualSelection: false,
184871
+ skipFocusReset: false
184872
+ });
184815
184873
  SelectionHandlePluginKey = new PluginKey("selectionHandle");
184816
184874
  MIME_TYPE_TO_EXTENSION2 = {
184817
184875
  "image/svg+xml": "svg",
@@ -233954,7 +234012,7 @@ var init_remark_gfm_eZN6yzWQ_es = __esm(() => {
233954
234012
  init_remark_gfm_BhnWr3yf_es();
233955
234013
  });
233956
234014
 
233957
- // ../../packages/superdoc/dist/chunks/src-Bq_Yxqun.es.js
234015
+ // ../../packages/superdoc/dist/chunks/src-BVjcuFXj.es.js
233958
234016
  function deleteProps(obj, propOrProps) {
233959
234017
  const props = typeof propOrProps === "string" ? [propOrProps] : propOrProps;
233960
234018
  const removeNested = (target, pathParts, index2 = 0) => {
@@ -234056,6 +234114,15 @@ function mapPreservedSelection(selection, tr) {
234056
234114
  return null;
234057
234115
  }
234058
234116
  }
234117
+ function shouldClearPreservedSelectionOnSelectionMove(tr, nextState) {
234118
+ if (!nextState?.preservedSelection)
234119
+ return false;
234120
+ if (tr.docChanged || !tr.selectionSet)
234121
+ return false;
234122
+ if (getFocusMeta(tr) !== undefined)
234123
+ return false;
234124
+ return true;
234125
+ }
234059
234126
  function applySelectionCleanup(editor, tr) {
234060
234127
  let cleaned = tr.setMeta(CustomSelectionPluginKey, DEFAULT_SELECTION_STATE);
234061
234128
  const sel = cleaned.selection;
@@ -235136,13 +235203,13 @@ function normalizeYjsFragmentForSchema(fragment2) {
235136
235203
  if (!isTraversableYjsXml(fragment2))
235137
235204
  return false;
235138
235205
  let changed = false;
235139
- const normalize4 = () => {
235206
+ const normalize$1 = () => {
235140
235207
  changed = stripSchemaAtomChildren(fragment2) || changed;
235141
235208
  };
235142
235209
  if (fragment2.doc)
235143
- fragment2.doc.transact(normalize4, NORMALIZE_YJS_FRAGMENT_ORIGIN);
235210
+ fragment2.doc.transact(normalize$1, NORMALIZE_YJS_FRAGMENT_ORIGIN);
235144
235211
  else
235145
- normalize4();
235212
+ normalize$1();
235146
235213
  return changed;
235147
235214
  }
235148
235215
  function normalizeYjsFragmentEventsForSchema(events, fallbackFragment) {
@@ -235151,7 +235218,7 @@ function normalizeYjsFragmentEventsForSchema(events, fallbackFragment) {
235151
235218
  if (events.some((event) => event?.transaction?.origin === NORMALIZE_YJS_FRAGMENT_ORIGIN))
235152
235219
  return false;
235153
235220
  let changed = false;
235154
- const normalize4 = () => {
235221
+ const normalize$1 = () => {
235155
235222
  const visited = /* @__PURE__ */ new Set;
235156
235223
  for (const event of events) {
235157
235224
  const target = findNormalizableEventTarget(event?.target);
@@ -235163,9 +235230,9 @@ function normalizeYjsFragmentEventsForSchema(events, fallbackFragment) {
235163
235230
  };
235164
235231
  const doc$12 = fallbackFragment?.doc || findEventDoc(events);
235165
235232
  if (doc$12)
235166
- doc$12.transact(normalize4, NORMALIZE_YJS_FRAGMENT_ORIGIN);
235233
+ doc$12.transact(normalize$1, NORMALIZE_YJS_FRAGMENT_ORIGIN);
235167
235234
  else
235168
- normalize4();
235235
+ normalize$1();
235169
235236
  return changed;
235170
235237
  }
235171
235238
  function stripSchemaAtomChildren(parent) {
@@ -239292,11 +239359,7 @@ function parseCellVerticalAlignFromStyle(element3) {
239292
239359
  }
239293
239360
  function findRemovedFieldAnnotations(tr) {
239294
239361
  let removedNodes = [];
239295
- if (!tr.steps.length || tr.meta && !Object.keys(tr.meta).every((meta2) => [
239296
- "inputType",
239297
- "uiEvent",
239298
- "paste"
239299
- ].includes(meta2)) || ["historyUndo", "historyRedo"].includes(tr.getMeta("inputType")) || ["drop"].includes(tr.getMeta("uiEvent")) || tr.getMeta("fieldAnnotationUpdate") === true || tr.getMeta("tableGeneration") === true)
239362
+ if (!tr.steps.length || tr.meta && !Object.keys(tr.meta).every((meta2) => ALLOWED_META_KEYS$1.includes(meta2)) || ["historyUndo", "historyRedo"].includes(tr.getMeta("inputType")) || ["drop"].includes(tr.getMeta("uiEvent")) || tr.getMeta("fieldAnnotationUpdate") === true || tr.getMeta("tableGeneration") === true)
239300
239363
  return removedNodes;
239301
239364
  if (!transactionDeletedAnything(tr))
239302
239365
  return removedNodes;
@@ -288914,6 +288977,9 @@ async function goToAnchor({ anchor, layout, blocks: blocks2, measures, bookmarks
288914
288977
  let nextFragmentPage = null;
288915
288978
  let nextFragmentStart = null;
288916
288979
  let nextFragmentY = null;
288980
+ let prevFragmentPage = null;
288981
+ let prevFragmentEnd = null;
288982
+ let prevFragmentY = null;
288917
288983
  for (const page of layout.pages) {
288918
288984
  for (const fragment2 of page.fragments) {
288919
288985
  if (fragment2.kind !== "para")
@@ -288932,13 +288998,25 @@ async function goToAnchor({ anchor, layout, blocks: blocks2, measures, bookmarks
288932
288998
  nextFragmentStart = fragStart;
288933
288999
  nextFragmentY = fragment2.y;
288934
289000
  }
289001
+ if (fragEnd <= pmPos && (prevFragmentEnd === null || fragEnd > prevFragmentEnd)) {
289002
+ prevFragmentPage = page.number - 1;
289003
+ prevFragmentEnd = fragEnd;
289004
+ prevFragmentY = fragment2.y;
289005
+ }
288935
289006
  }
288936
289007
  if (pageIndex != null)
288937
289008
  break;
288938
289009
  }
288939
- if (pageIndex == null && nextFragmentPage != null) {
288940
- pageIndex = nextFragmentPage;
288941
- fragmentY = nextFragmentY;
289010
+ if (pageIndex == null) {
289011
+ const prevGap = prevFragmentEnd != null ? pmPos - prevFragmentEnd : Infinity;
289012
+ const nextGap = nextFragmentStart != null ? nextFragmentStart - pmPos : Infinity;
289013
+ if (prevFragmentPage != null && prevGap < nextGap) {
289014
+ pageIndex = prevFragmentPage;
289015
+ fragmentY = prevFragmentY;
289016
+ } else if (nextFragmentPage != null) {
289017
+ pageIndex = nextFragmentPage;
289018
+ fragmentY = nextFragmentY;
289019
+ }
288942
289020
  }
288943
289021
  }
288944
289022
  if (pageIndex == null)
@@ -295763,12 +295841,12 @@ var Node$13 = class Node$14 {
295763
295841
  }, registerYjsFragmentNormalizer = (fragment2) => {
295764
295842
  if (!fragment2 || typeof fragment2.observeDeep !== "function" || typeof fragment2.unobserveDeep !== "function")
295765
295843
  return () => {};
295766
- const normalize4 = (events) => {
295844
+ const normalize$1 = (events) => {
295767
295845
  normalizeYjsFragmentEventsForSchema(events, fragment2);
295768
295846
  };
295769
- fragment2.observeDeep(normalize4);
295847
+ fragment2.observeDeep(normalize$1);
295770
295848
  return () => {
295771
- fragment2.unobserveDeep(normalize4);
295849
+ fragment2.unobserveDeep(normalize$1);
295772
295850
  };
295773
295851
  }, initializeMetaMap = (ydoc, editor) => {
295774
295852
  seedPartsFromEditor(editor, ydoc);
@@ -300828,7 +300906,7 @@ var Node$13 = class Node$14 {
300828
300906
  return true;
300829
300907
  });
300830
300908
  }
300831
- }, FieldAnnotationPlugin = (options = {}) => {
300909
+ }, ALLOWED_META_KEYS$1, FieldAnnotationPlugin = (options = {}) => {
300832
300910
  let { editor, annotationClass: annotationClass$1 } = options;
300833
300911
  return new Plugin({
300834
300912
  key: new PluginKey("fieldAnnotation"),
@@ -303367,7 +303445,7 @@ var Node$13 = class Node$14 {
303367
303445
  }, getTypeName = (markLike) => {
303368
303446
  return markLike?.type?.name ?? markLike?.type;
303369
303447
  }, isTrackFormatNoOp = (before2, after2) => {
303370
- const normalize4 = (entries2) => entries2.map((s2) => ({
303448
+ const normalize$1 = (entries2) => entries2.map((s2) => ({
303371
303449
  type: getTypeName(s2),
303372
303450
  attrs: normalizeSnapshotAttrs(s2.attrs || {})
303373
303451
  })).filter((s2) => {
@@ -303375,8 +303453,8 @@ var Node$13 = class Node$14 {
303375
303453
  return false;
303376
303454
  return true;
303377
303455
  });
303378
- const normBefore = normalize4(before2);
303379
- const normAfter = normalize4(after2);
303456
+ const normBefore = normalize$1(before2);
303457
+ const normAfter = normalize$1(after2);
303380
303458
  if (normBefore.length === 0 && normAfter.length === 0)
303381
303459
  return true;
303382
303460
  if (normBefore.length !== normAfter.length)
@@ -307302,7 +307380,7 @@ var Node$13 = class Node$14 {
307302
307380
  if (!target || !target.classList)
307303
307381
  return;
307304
307382
  target.classList.add(STYLE_ISOLATION_CLASS);
307305
- }, _hoisted_1$22, _hoisted_2$17, _hoisted_3$13, _hoisted_4$9, _hoisted_5$7, Mentions_default, popoverPluginKey, PopoverPlugin, Popover = class {
307383
+ }, _hoisted_1$23, _hoisted_2$18, _hoisted_3$14, _hoisted_4$10, _hoisted_5$9, Mentions_default, popoverPluginKey, PopoverPlugin, Popover = class {
307306
307384
  constructor(view, editor) {
307307
307385
  this.editor = editor;
307308
307386
  this.view = view;
@@ -309043,7 +309121,7 @@ var Node$13 = class Node$14 {
309043
309121
  </linearGradient>
309044
309122
  </defs>
309045
309123
  <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"/>
309046
- </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>
309124
+ </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>
309047
309125
  `, 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>
309048
309126
  `, 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">
309049
309127
  <g clip-path="url(#clip0_0_1)">
@@ -309110,8 +309188,8 @@ var Node$13 = class Node$14 {
309110
309188
  `, 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>
309111
309189
  `, 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>
309112
309190
  `, 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>
309113
- `, 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>
309114
- `, _hoisted_1$14, _hoisted_2$11, _hoisted_3$8, IconGrid_default, closeDropdown$1 = (dropdown) => {
309191
+ `, 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>
309192
+ `, _hoisted_1$15, _hoisted_2$12, _hoisted_3$9, IconGrid_default, closeDropdown$1 = (dropdown) => {
309115
309193
  dropdown.expand.value = false;
309116
309194
  }, makeColorOption = (color2, label = null) => {
309117
309195
  return {
@@ -309142,8 +309220,8 @@ var Node$13 = class Node$14 {
309142
309220
  })]);
309143
309221
  }, icons, getAvailableColorOptions = () => {
309144
309222
  return icons.flat().map((item) => item.value);
309145
- }, _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>
309146
- `, _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) => {
309223
+ }, _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>
309224
+ `, _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) => {
309147
309225
  dropdown.expand.value = false;
309148
309226
  }, makeDefaultItems = ({ superToolbar, toolbarIcons: toolbarIcons$1, toolbarTexts: toolbarTexts$1, toolbarFonts, hideButtons, availableWidth, role, isDev = false } = {}) => {
309149
309227
  const bold2 = useToolbarItem({
@@ -310207,7 +310285,39 @@ var Node$13 = class Node$14 {
310207
310285
  defaultItems: visibleItems,
310208
310286
  overflowItems: overflowItems.filter((item) => item.type !== "separator")
310209
310287
  };
310210
- }, _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 = {}) => {
310288
+ }, _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 = (query2, labels) => {
310289
+ const q$1 = normalize4(query2);
310290
+ if (!q$1)
310291
+ return -1;
310292
+ for (let i4 = 0;i4 < labels.length; i4 += 1)
310293
+ if (normalize4(labels[i4]).startsWith(q$1))
310294
+ return i4;
310295
+ return -1;
310296
+ }, computeTypeahead = (query2, labels, { autocomplete = true } = {}) => {
310297
+ const typed = String(query2 ?? "");
310298
+ const matchIndex = findPrefixMatchIndex(typed, labels);
310299
+ const completion = matchIndex >= 0 ? String(labels[matchIndex] ?? "") : "";
310300
+ if (autocomplete && matchIndex >= 0 && completion.length > typed.length)
310301
+ return {
310302
+ matchIndex,
310303
+ display: completion,
310304
+ selectionStart: typed.length,
310305
+ selectionEnd: completion.length
310306
+ };
310307
+ return {
310308
+ matchIndex,
310309
+ display: typed,
310310
+ selectionStart: typed.length,
310311
+ selectionEnd: typed.length
310312
+ };
310313
+ }, stripWrappingQuotes = (value) => {
310314
+ let result = String(value ?? "").trim();
310315
+ while (result.length >= 2 && (result.startsWith('"') && result.endsWith('"') || result.startsWith("'") && result.endsWith("'")))
310316
+ result = result.slice(1, -1).trim();
310317
+ return result;
310318
+ }, normalizeCustomFontFamily = (value) => {
310319
+ return stripWrappingQuotes((String(value ?? "").split(",")[0] ?? "").replace(/[\u0000-\u001f\u007f]/g, "")).replace(/\s+/g, " ").trim();
310320
+ }, _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 = {}) => {
310211
310321
  const fontFamilyProps = paragraphProps?.runProperties?.fontFamily;
310212
310322
  if (!fontFamilyProps)
310213
310323
  return null;
@@ -310426,6 +310536,14 @@ var Node$13 = class Node$14 {
310426
310536
  const before2 = $pos.parent.childBefore($pos.parentOffset).node;
310427
310537
  const after2 = $pos.parent.childAfter($pos.parentOffset).node;
310428
310538
  return isInlineStructuredContentNode(before2) || isInlineStructuredContentNode(after2);
310539
+ }, getInputSelection = (state) => {
310540
+ const { selection } = state;
310541
+ if (!selection.empty)
310542
+ return selection;
310543
+ const preserved = getPreservedSelection(state);
310544
+ if (preserved && !preserved.empty)
310545
+ return preserved;
310546
+ return selection;
310429
310547
  }, handleInsertTextBeforeInput = (view, event, editor) => {
310430
310548
  const isInsertTextInput = event?.inputType === "insertText";
310431
310549
  const hasTextData = typeof event?.data === "string" && event.data.length > 0;
@@ -310439,8 +310557,8 @@ var Node$13 = class Node$14 {
310439
310557
  recordStoryInputDebug(view, event, editor, "beforeinput:skip");
310440
310558
  return false;
310441
310559
  }
310442
- const selection = view.state.selection;
310443
- const shouldHandleCollapsedSelection = isStorySurfaceEditor(editor) || isInlineStructuredContentBoundary(view.state.doc, selection.from);
310560
+ const selection = getInputSelection(view.state);
310561
+ const shouldHandleCollapsedSelection = isStorySurfaceEditor(editor) || isInlineStructuredContentBoundary(view.state.doc, view.state.selection.from);
310444
310562
  if (selection.empty && !shouldHandleCollapsedSelection) {
310445
310563
  recordStoryInputDebug(view, event, editor, "beforeinput:skip-empty-selection");
310446
310564
  return false;
@@ -310452,6 +310570,13 @@ var Node$13 = class Node$14 {
310452
310570
  } catch {
310453
310571
  tr.setSelection(Selection.near(tr.doc.resolve(insertedTo), 1));
310454
310572
  }
310573
+ if (!selection.empty)
310574
+ tr.setMeta(CustomSelectionPluginKey, {
310575
+ focused: false,
310576
+ preservedSelection: null,
310577
+ showVisualSelection: false,
310578
+ skipFocusReset: false
310579
+ });
310455
310580
  tr.setMeta("inputType", "insertText");
310456
310581
  view.dispatch(tr);
310457
310582
  event.preventDefault();
@@ -331545,13 +331670,13 @@ menclose::after {
331545
331670
  return;
331546
331671
  console.log(...args$1);
331547
331672
  }, 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;
331548
- var init_src_Bq_Yxqun_es = __esm(() => {
331673
+ var init_src_BVjcuFXj_es = __esm(() => {
331549
331674
  init_rolldown_runtime_Bg48TavK_es();
331550
- init_SuperConverter_DLdwVEPh_es();
331675
+ init_SuperConverter_d9QeIy9_es();
331551
331676
  init_jszip_C49i9kUs_es();
331552
331677
  init_xml_js_CqGKpaft_es();
331553
331678
  init_uuid_B2wVPhPi_es();
331554
- init_create_headless_toolbar_BxKMAAgQ_es();
331679
+ init_create_headless_toolbar_CJpgldP1_es();
331555
331680
  init_constants_D9qj59G2_es();
331556
331681
  init_dist_B8HfvhaK_es();
331557
331682
  init_unified_Dsuw2be5_es();
@@ -332109,6 +332234,12 @@ ${err.toString()}`);
332109
332234
  }) : value;
332110
332235
  if (!nextState?.preservedSelection)
332111
332236
  return nextState;
332237
+ if (shouldClearPreservedSelectionOnSelectionMove(tr, nextState))
332238
+ return {
332239
+ ...nextState,
332240
+ preservedSelection: null,
332241
+ showVisualSelection: false
332242
+ };
332112
332243
  if (!tr.docChanged)
332113
332244
  return nextState;
332114
332245
  const mappedSelection = mapPreservedSelection(nextState.preservedSelection, tr);
@@ -336937,6 +337068,12 @@ ${err.toString()}`);
336937
337068
  ];
336938
337069
  }
336939
337070
  });
337071
+ ALLOWED_META_KEYS$1 = [
337072
+ "inputType",
337073
+ "uiEvent",
337074
+ "paste",
337075
+ CustomSelectionPluginKey.key
337076
+ ];
336940
337077
  AnnotatorHelpers = {
336941
337078
  getFieldAttrs,
336942
337079
  processTables,
@@ -348802,7 +348939,8 @@ function print() { __p += __j.call(arguments, '') }
348802
348939
  "composition",
348803
348940
  "superdocSlicePaste",
348804
348941
  "forceTrackChanges",
348805
- "protectTrackedReviewState"
348942
+ "protectTrackedReviewState",
348943
+ CustomSelectionPluginKey.key
348806
348944
  ];
348807
348945
  PASSTHROUGH_META_KEYS = [
348808
348946
  "inputType",
@@ -348811,7 +348949,8 @@ function print() { __p += __j.call(arguments, '') }
348811
348949
  "pointer",
348812
348950
  "composition",
348813
348951
  "addToHistory",
348814
- "superdocSlicePaste"
348952
+ "superdocSlicePaste",
348953
+ CustomSelectionPluginKey.key
348815
348954
  ];
348816
348955
  ALLOWED_META_KEYS = new Set([...TRACKABLE_META_KEYS, ySyncPluginKey.key]);
348817
348956
  TrackFormat = Mark3.create({
@@ -349479,11 +349618,11 @@ function print() { __p += __j.call(arguments, '') }
349479
349618
  } });
349480
349619
  tippy.setDefaultProps({ render });
349481
349620
  tippy_esm_default = tippy;
349482
- _hoisted_1$22 = ["onClick", "onMouseenter"];
349483
- _hoisted_2$17 = { key: 0 };
349484
- _hoisted_3$13 = { key: 0 };
349485
- _hoisted_4$9 = { key: 1 };
349486
- _hoisted_5$7 = { key: 1 };
349621
+ _hoisted_1$23 = ["onClick", "onMouseenter"];
349622
+ _hoisted_2$18 = { key: 0 };
349623
+ _hoisted_3$14 = { key: 0 };
349624
+ _hoisted_4$10 = { key: 1 };
349625
+ _hoisted_5$9 = { key: 1 };
349487
349626
  Mentions_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
349488
349627
  __name: "Mentions",
349489
349628
  props: {
@@ -349549,7 +349688,7 @@ function print() { __p += __j.call(arguments, '') }
349549
349688
  onMouseleave: _cache[0] || (_cache[0] = ($event) => activeUserIndex.value = null),
349550
349689
  key: user.email,
349551
349690
  class: exports_vue.normalizeClass(["user-row", { "sd-selected": activeUserIndex.value === index2 }])
349552
- }, [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);
349691
+ }, [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);
349553
349692
  }), 128))], 544);
349554
349693
  };
349555
349694
  }
@@ -350824,11 +350963,11 @@ function print() { __p += __j.call(arguments, '') }
350824
350963
  })
350825
350964
  }
350826
350965
  ] };
350827
- _hoisted_1$21 = { class: "ai-user-input-field" };
350828
- _hoisted_2$16 = ["innerHTML"];
350829
- _hoisted_3$12 = ["placeholder"];
350830
- _hoisted_4$8 = { class: "ai-loader" };
350831
- _hoisted_5$6 = ["innerHTML"];
350966
+ _hoisted_1$22 = { class: "ai-user-input-field" };
350967
+ _hoisted_2$17 = ["innerHTML"];
350968
+ _hoisted_3$13 = ["placeholder"];
350969
+ _hoisted_4$9 = { class: "ai-loader" };
350970
+ _hoisted_5$8 = ["innerHTML"];
350832
350971
  AIWriter_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
350833
350972
  __name: "AIWriter",
350834
350973
  props: {
@@ -351055,10 +351194,10 @@ function print() { __p += __j.call(arguments, '') }
351055
351194
  ref_key: "aiWriterRef",
351056
351195
  ref: aiWriterRef,
351057
351196
  onMousedown: _cache[1] || (_cache[1] = exports_vue.withModifiers(() => {}, ["stop"]))
351058
- }, [exports_vue.createElementVNode("div", _hoisted_1$21, [exports_vue.createElementVNode("span", {
351197
+ }, [exports_vue.createElementVNode("div", _hoisted_1$22, [exports_vue.createElementVNode("span", {
351059
351198
  class: "ai-textarea-icon",
351060
351199
  innerHTML: exports_vue.unref(edit_regular_default)
351061
- }, null, 8, _hoisted_2$16), exports_vue.withDirectives(exports_vue.createElementVNode("textarea", {
351200
+ }, null, 8, _hoisted_2$17), exports_vue.withDirectives(exports_vue.createElementVNode("textarea", {
351062
351201
  ref_key: "editableRef",
351063
351202
  ref: editableRef,
351064
351203
  class: "ai-textarea",
@@ -351067,12 +351206,12 @@ function print() { __p += __j.call(arguments, '') }
351067
351206
  onInput: handleInput,
351068
351207
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => promptText.value = $event),
351069
351208
  rows: "4"
351070
- }, 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", {
351209
+ }, 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", {
351071
351210
  key: 0,
351072
351211
  class: "ai-textarea-icon ai-submit-button",
351073
351212
  onClick: exports_vue.withModifiers(handleSubmit, ["stop"]),
351074
351213
  innerHTML: exports_vue.unref(paper_plane_regular_default)
351075
- }, null, 8, _hoisted_5$6)) : exports_vue.createCommentVNode("", true)])], 544);
351214
+ }, null, 8, _hoisted_5$8)) : exports_vue.createCommentVNode("", true)])], 544);
351076
351215
  };
351077
351216
  }
351078
351217
  }, [["__scopeId", "data-v-5444b0c8"]]);
@@ -351157,7 +351296,7 @@ function print() { __p += __j.call(arguments, '') }
351157
351296
  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>
351158
351297
  `
351159
351298
  };
351160
- _hoisted_1$20 = [
351299
+ _hoisted_1$21 = [
351161
351300
  "onClick",
351162
351301
  "innerHTML",
351163
351302
  "aria-label",
@@ -351249,12 +351388,12 @@ function print() { __p += __j.call(arguments, '') }
351249
351388
  ref_key: "alignmentButtonsRefs",
351250
351389
  ref: alignmentButtonsRefs,
351251
351390
  onKeydown: exports_vue.withModifiers((event) => handleKeyDown$1(event, index2), ["prevent"])
351252
- }, null, 40, _hoisted_1$20);
351391
+ }, null, 40, _hoisted_1$21);
351253
351392
  }), 64))], 2);
351254
351393
  };
351255
351394
  }
351256
351395
  }, [["__scopeId", "data-v-ceb338e0"]]);
351257
- _hoisted_1$19 = [
351396
+ _hoisted_1$20 = [
351258
351397
  "onClick",
351259
351398
  "innerHTML",
351260
351399
  "aria-label",
@@ -351343,7 +351482,7 @@ function print() { __p += __j.call(arguments, '') }
351343
351482
  ref_key: "buttonRefs",
351344
351483
  ref: buttonRefs,
351345
351484
  onKeydown: exports_vue.withModifiers((event) => handleKeyDown$1(event, index2), ["prevent"])
351346
- }, null, 46, _hoisted_1$19);
351485
+ }, null, 46, _hoisted_1$20);
351347
351486
  }), 128))], 2);
351348
351487
  };
351349
351488
  }
@@ -351407,12 +351546,12 @@ function print() { __p += __j.call(arguments, '') }
351407
351546
  ariaLabel: "a) b) c)"
351408
351547
  }
351409
351548
  ];
351410
- _hoisted_1$18 = ["onClick", "onKeydown"];
351411
- _hoisted_2$15 = { class: "document-mode-column icon-column" };
351412
- _hoisted_3$11 = ["innerHTML"];
351413
- _hoisted_4$7 = { class: "document-mode-column text-column" };
351414
- _hoisted_5$5 = { class: "document-mode-type" };
351415
- _hoisted_6$3 = { class: "document-mode-description" };
351549
+ _hoisted_1$19 = ["onClick", "onKeydown"];
351550
+ _hoisted_2$16 = { class: "document-mode-column icon-column" };
351551
+ _hoisted_3$12 = ["innerHTML"];
351552
+ _hoisted_4$8 = { class: "document-mode-column text-column" };
351553
+ _hoisted_5$7 = { class: "document-mode-type" };
351554
+ _hoisted_6$5 = { class: "document-mode-description" };
351416
351555
  DocumentMode_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
351417
351556
  __name: "DocumentMode",
351418
351557
  props: { options: { type: Array } },
@@ -351473,20 +351612,20 @@ function print() { __p += __j.call(arguments, '') }
351473
351612
  ref_key: "documentModeRefs",
351474
351613
  ref: documentModeRefs,
351475
351614
  onKeydown: exports_vue.withModifiers((event) => handleKeyDown$1(event, index2), ["prevent"])
351476
- }, [exports_vue.createElementVNode("div", _hoisted_2$15, [exports_vue.createElementVNode("div", {
351615
+ }, [exports_vue.createElementVNode("div", _hoisted_2$16, [exports_vue.createElementVNode("div", {
351477
351616
  class: "icon-column__icon",
351478
351617
  innerHTML: option.icon
351479
- }, 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);
351618
+ }, 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);
351480
351619
  }), 256))], 2);
351481
351620
  };
351482
351621
  }
351483
351622
  }, [["__scopeId", "data-v-abd514d9"]]);
351484
- _hoisted_1$17 = {
351623
+ _hoisted_1$18 = {
351485
351624
  key: 0,
351486
351625
  class: "linked-style-buttons",
351487
351626
  "data-editor-ui-surface": ""
351488
351627
  };
351489
- _hoisted_2$14 = [
351628
+ _hoisted_2$15 = [
351490
351629
  "onClick",
351491
351630
  "onKeydown",
351492
351631
  "aria-label"
@@ -351543,7 +351682,7 @@ function print() { __p += __j.call(arguments, '') }
351543
351682
  styleRefs.value[0].focus();
351544
351683
  });
351545
351684
  return (_ctx, _cache) => {
351546
- 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) => {
351685
+ 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) => {
351547
351686
  return exports_vue.openBlock(), exports_vue.createElementBlock("div", {
351548
351687
  class: exports_vue.normalizeClass(["style-item", { selected: __props.selectedOption === style2.id }]),
351549
351688
  onClick: ($event) => select2(style2),
@@ -351556,33 +351695,33 @@ function print() { __p += __j.call(arguments, '') }
351556
351695
  class: "style-name",
351557
351696
  style: exports_vue.normalizeStyle(exports_vue.unref(generateLinkedStyleString)(style2, null, null, false)),
351558
351697
  "data-item": "btn-linkedStyles-option"
351559
- }, exports_vue.toDisplayString(style2.definition.attrs.name), 5)], 42, _hoisted_2$14);
351698
+ }, exports_vue.toDisplayString(style2.definition.attrs.name), 5)], 42, _hoisted_2$15);
351560
351699
  }), 256))])) : exports_vue.createCommentVNode("", true);
351561
351700
  };
351562
351701
  }
351563
351702
  }, [["__scopeId", "data-v-80e74746"]]);
351564
- _hoisted_1$16 = {
351703
+ _hoisted_1$17 = {
351565
351704
  key: 0,
351566
351705
  class: "link-title"
351567
351706
  };
351568
- _hoisted_2$13 = {
351707
+ _hoisted_2$14 = {
351569
351708
  key: 1,
351570
351709
  class: "link-title"
351571
351710
  };
351572
- _hoisted_3$10 = {
351711
+ _hoisted_3$11 = {
351573
351712
  key: 2,
351574
351713
  class: "link-title"
351575
351714
  };
351576
- _hoisted_4$6 = {
351715
+ _hoisted_4$7 = {
351577
351716
  key: 3,
351578
351717
  class: "link-title"
351579
351718
  };
351580
- _hoisted_5$4 = {
351719
+ _hoisted_5$6 = {
351581
351720
  key: 4,
351582
351721
  class: "link-input-wrapper"
351583
351722
  };
351584
- _hoisted_6$2 = { class: "input-row text-input-row" };
351585
- _hoisted_7$2 = ["readonly"];
351723
+ _hoisted_6$4 = { class: "input-row text-input-row" };
351724
+ _hoisted_7$3 = ["readonly"];
351586
351725
  _hoisted_8$1 = { class: "input-row url-input-row" };
351587
351726
  _hoisted_9$1 = ["innerHTML"];
351588
351727
  _hoisted_10$1 = ["readonly", "onKeydown"];
@@ -351591,8 +351730,8 @@ function print() { __p += __j.call(arguments, '') }
351591
351730
  key: 0,
351592
351731
  class: "input-row link-buttons"
351593
351732
  };
351594
- _hoisted_13 = ["innerHTML"];
351595
- _hoisted_14 = {
351733
+ _hoisted_13$1 = ["innerHTML"];
351734
+ _hoisted_14$1 = {
351596
351735
  key: 5,
351597
351736
  class: "input-row go-to-anchor clickable"
351598
351737
  };
@@ -351764,15 +351903,15 @@ function print() { __p += __j.call(arguments, '') }
351764
351903
  props.goToAnchor(url$1);
351765
351904
  };
351766
351905
  return (_ctx, _cache) => {
351767
- 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, [
351768
- 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", {
351906
+ 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, [
351907
+ 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", {
351769
351908
  type: "text",
351770
351909
  name: "text",
351771
351910
  placeholder: "Text",
351772
351911
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => text5.value = $event),
351773
351912
  readonly: isViewingMode.value,
351774
351913
  onKeydown: _cache[1] || (_cache[1] = exports_vue.withKeys(exports_vue.withModifiers(($event) => !isViewingMode.value && handleSubmit, ["stop", "prevent"]), ["enter"]))
351775
- }, null, 40, _hoisted_7$2), [[exports_vue.vModelText, text5.value]])]),
351914
+ }, null, 40, _hoisted_7$3), [[exports_vue.vModelText, text5.value]])]),
351776
351915
  exports_vue.createElementVNode("div", _hoisted_8$1, [
351777
351916
  exports_vue.createElementVNode("div", {
351778
351917
  class: "input-icon",
@@ -351802,22 +351941,22 @@ function print() { __p += __j.call(arguments, '') }
351802
351941
  }, [exports_vue.createElementVNode("div", {
351803
351942
  class: "remove-btn__icon",
351804
351943
  innerHTML: exports_vue.unref(toolbarIcons).removeLink
351805
- }, null, 8, _hoisted_13), _cache[6] || (_cache[6] = exports_vue.createTextVNode(" Remove ", -1))])) : exports_vue.createCommentVNode("", true), exports_vue.createElementVNode("button", {
351944
+ }, null, 8, _hoisted_13$1), _cache[6] || (_cache[6] = exports_vue.createTextVNode(" Remove ", -1))])) : exports_vue.createCommentVNode("", true), exports_vue.createElementVNode("button", {
351806
351945
  class: exports_vue.normalizeClass(["sd-submit-btn", { "disable-btn": isDisabled.value }]),
351807
351946
  onClick: handleSubmit,
351808
351947
  "data-item": "btn-link-apply"
351809
351948
  }, " Apply ", 2)])) : exports_vue.createCommentVNode("", true)
351810
- ])) : 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);
351949
+ ])) : 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);
351811
351950
  };
351812
351951
  }
351813
351952
  }, [["__scopeId", "data-v-c490d677"]]);
351814
- _hoisted_1$15 = [
351953
+ _hoisted_1$16 = [
351815
351954
  "aria-label",
351816
351955
  "onClick",
351817
351956
  "onKeydown"
351818
351957
  ];
351819
- _hoisted_2$12 = ["innerHTML"];
351820
- _hoisted_3$9 = ["innerHTML"];
351958
+ _hoisted_2$13 = ["innerHTML"];
351959
+ _hoisted_3$10 = ["innerHTML"];
351821
351960
  IconGridRow_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
351822
351961
  __name: "IconGridRow",
351823
351962
  props: {
@@ -351938,20 +352077,20 @@ function print() { __p += __j.call(arguments, '') }
351938
352077
  class: "sd-option__icon",
351939
352078
  innerHTML: option.icon,
351940
352079
  style: exports_vue.normalizeStyle(option.style)
351941
- }, null, 12, _hoisted_2$12), isActive$1.value(option) ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
352080
+ }, null, 12, _hoisted_2$13), isActive$1.value(option) ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
351942
352081
  key: 0,
351943
352082
  class: "sd-option__check",
351944
352083
  innerHTML: exports_vue.unref(toolbarIcons).colorOptionCheck,
351945
352084
  style: exports_vue.normalizeStyle(getCheckStyle(option.value, optionIndex))
351946
- }, null, 12, _hoisted_3$9)) : exports_vue.createCommentVNode("", true)], 40, _hoisted_1$15);
352085
+ }, null, 12, _hoisted_3$10)) : exports_vue.createCommentVNode("", true)], 40, _hoisted_1$16);
351947
352086
  }), 128))]);
351948
352087
  }), 128);
351949
352088
  };
351950
352089
  }
351951
352090
  }, [["__scopeId", "data-v-30cad300"]]);
351952
- _hoisted_1$14 = { class: "options-grid-wrap" };
351953
- _hoisted_2$11 = ["innerHTML"];
351954
- _hoisted_3$8 = { class: "option-grid-ctn" };
352091
+ _hoisted_1$15 = { class: "options-grid-wrap" };
352092
+ _hoisted_2$12 = ["innerHTML"];
352093
+ _hoisted_3$9 = { class: "option-grid-ctn" };
351955
352094
  IconGrid_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
351956
352095
  __name: "IconGrid",
351957
352096
  props: {
@@ -351979,7 +352118,7 @@ function print() { __p += __j.call(arguments, '') }
351979
352118
  emit("select", option);
351980
352119
  };
351981
352120
  return (_ctx, _cache) => {
351982
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$14, [__props.hasNoneIcon ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
352121
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$15, [__props.hasNoneIcon ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
351983
352122
  key: 0,
351984
352123
  class: "none-option",
351985
352124
  role: "menuitem",
@@ -351988,7 +352127,7 @@ function print() { __p += __j.call(arguments, '') }
351988
352127
  }, [exports_vue.createElementVNode("span", {
351989
352128
  innerHTML: exports_vue.unref(droplet_slash_default),
351990
352129
  class: "none-icon"
351991
- }, 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, {
352130
+ }, 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, {
351992
352131
  icons: __props.icons,
351993
352132
  "active-color": __props.activeColor,
351994
352133
  onSelect: handleSelect
@@ -352074,13 +352213,13 @@ function print() { __p += __j.call(arguments, '') }
352074
352213
  makeColorOption("#A91DFF", "neon purple")
352075
352214
  ]
352076
352215
  ];
352077
- _hoisted_1$13 = [
352216
+ _hoisted_1$14 = [
352078
352217
  "data-cols",
352079
352218
  "data-rows",
352080
352219
  "onKeydown",
352081
352220
  "onClick"
352082
352221
  ];
352083
- _hoisted_2$10 = ["aria-valuetext"];
352222
+ _hoisted_2$11 = ["aria-valuetext"];
352084
352223
  TableGrid_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
352085
352224
  __name: "TableGrid",
352086
352225
  emits: ["select", "clickoutside"],
@@ -352191,24 +352330,24 @@ function print() { __p += __j.call(arguments, '') }
352191
352330
  cols: n,
352192
352331
  rows: i4
352193
352332
  }), ["stop", "prevent"])
352194
- }, null, 40, _hoisted_1$13);
352333
+ }, null, 40, _hoisted_1$14);
352195
352334
  }), 64))], 64);
352196
352335
  }), 64))], 32), exports_vue.createElementVNode("div", {
352197
352336
  class: "toolbar-table-grid-value",
352198
352337
  "aria-valuetext": `${selectedRows.value} x ${selectedCols.value}`
352199
- }, exports_vue.toDisplayString(selectedRows.value) + " x " + exports_vue.toDisplayString(selectedCols.value), 9, _hoisted_2$10)], 2);
352338
+ }, exports_vue.toDisplayString(selectedRows.value) + " x " + exports_vue.toDisplayString(selectedCols.value), 9, _hoisted_2$11)], 2);
352200
352339
  };
352201
352340
  }
352202
352341
  }, [["__scopeId", "data-v-168b91ce"]]);
352203
- _hoisted_1$12 = { class: "toolbar-table-actions" };
352204
- _hoisted_2$9 = [
352342
+ _hoisted_1$13 = { class: "toolbar-table-actions" };
352343
+ _hoisted_2$10 = [
352205
352344
  "onClick",
352206
352345
  "data-item",
352207
352346
  "ariaLabel"
352208
352347
  ];
352209
- _hoisted_3$7 = { class: "toolbar-table-actions__icon" };
352210
- _hoisted_4$5 = ["innerHTML"];
352211
- _hoisted_5$3 = { class: "toolbar-table-actions__label" };
352348
+ _hoisted_3$8 = { class: "toolbar-table-actions__icon" };
352349
+ _hoisted_4$6 = ["innerHTML"];
352350
+ _hoisted_5$5 = { class: "toolbar-table-actions__label" };
352212
352351
  TableActions_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
352213
352352
  __name: "TableActions",
352214
352353
  props: { options: { type: Array } },
@@ -352219,24 +352358,24 @@ function print() { __p += __j.call(arguments, '') }
352219
352358
  emit("select", { command: item.command });
352220
352359
  };
352221
352360
  return (_ctx, _cache) => {
352222
- 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) => {
352361
+ 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) => {
352223
352362
  return exports_vue.openBlock(), exports_vue.createElementBlock("div", {
352224
352363
  class: exports_vue.normalizeClass(["toolbar-table-actions__item", { "toolbar-table-actions__item--border": option.bottomBorder }]),
352225
352364
  onClick: ($event) => handleClick$1(option),
352226
352365
  "data-item": option.props?.["data-item"] || "",
352227
352366
  ariaLabel: option.props?.ariaLabel,
352228
352367
  role: "menuitem"
352229
- }, [exports_vue.createElementVNode("div", _hoisted_3$7, [exports_vue.createElementVNode("div", {
352368
+ }, [exports_vue.createElementVNode("div", _hoisted_3$8, [exports_vue.createElementVNode("div", {
352230
352369
  class: "toolbar-table-actions__icon-wrapper",
352231
352370
  innerHTML: option.icon
352232
- }, null, 8, _hoisted_4$5)]), exports_vue.createElementVNode("div", _hoisted_5$3, exports_vue.toDisplayString(option.label), 1)], 10, _hoisted_2$9);
352371
+ }, null, 8, _hoisted_4$6)]), exports_vue.createElementVNode("div", _hoisted_5$5, exports_vue.toDisplayString(option.label), 1)], 10, _hoisted_2$10);
352233
352372
  }), 256))]);
352234
352373
  };
352235
352374
  }
352236
352375
  }, [["__scopeId", "data-v-652015c8"]]);
352237
- _hoisted_1$11 = { class: "search-input-ctn" };
352238
- _hoisted_2$8 = { class: "sd-row" };
352239
- _hoisted_3$6 = ["onKeydown"];
352376
+ _hoisted_1$12 = { class: "search-input-ctn" };
352377
+ _hoisted_2$9 = { class: "sd-row" };
352378
+ _hoisted_3$7 = ["onKeydown"];
352240
352379
  SearchInput_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
352241
352380
  __name: "SearchInput",
352242
352381
  props: { searchRef: { type: Object } },
@@ -352248,7 +352387,7 @@ function print() { __p += __j.call(arguments, '') }
352248
352387
  emit("submit", { value: searchValue.value });
352249
352388
  };
352250
352389
  return (_ctx, _cache) => {
352251
- 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", {
352390
+ 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", {
352252
352391
  ref: __props.searchRef,
352253
352392
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchValue.value = $event),
352254
352393
  class: "search-input",
@@ -352256,7 +352395,7 @@ function print() { __p += __j.call(arguments, '') }
352256
352395
  name: "search",
352257
352396
  placeholder: "Type search string",
352258
352397
  onKeydown: exports_vue.withKeys(exports_vue.withModifiers(handleSubmit, ["stop", "prevent"]), ["enter"])
352259
- }, null, 40, _hoisted_3$6), [[exports_vue.vModelText, searchValue.value]])]), exports_vue.createElementVNode("div", { class: "sd-row sd-submit" }, [exports_vue.createElementVNode("button", {
352398
+ }, null, 40, _hoisted_3$7), [[exports_vue.vModelText, searchValue.value]])]), exports_vue.createElementVNode("div", { class: "sd-row sd-submit" }, [exports_vue.createElementVNode("button", {
352260
352399
  class: "sd-submit-btn",
352261
352400
  onClick: handleSubmit
352262
352401
  }, "Apply")])]);
@@ -352400,8 +352539,8 @@ function print() { __p += __j.call(arguments, '') }
352400
352539
  HEADLESS_TOOLBAR_COMMANDS = [...new Set([...Object.values(HEADLESS_ITEM_MAP), ...TABLE_ACTION_COMMAND_IDS])];
352401
352540
  NON_HEADLESS_EXECUTE_ITEM_NAMES = new Set(["link"]);
352402
352541
  HEADLESS_EXECUTE_ITEMS = new Set(Object.keys(HEADLESS_ITEM_MAP).filter((itemName) => !NON_HEADLESS_EXECUTE_ITEM_NAMES.has(itemName)));
352403
- _hoisted_1$10 = { class: "sd-toolbar-icon" };
352404
- _hoisted_2$7 = ["innerHTML"];
352542
+ _hoisted_1$11 = { class: "sd-toolbar-icon" };
352543
+ _hoisted_2$8 = ["innerHTML"];
352405
352544
  ToolbarButtonIcon_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
352406
352545
  __name: "ToolbarButtonIcon",
352407
352546
  props: {
@@ -352430,10 +352569,10 @@ function print() { __p += __j.call(arguments, '') }
352430
352569
  return ["color", "highlight"].includes(props.name);
352431
352570
  });
352432
352571
  return (_ctx, _cache) => {
352433
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$10, [exports_vue.createElementVNode("div", {
352572
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$11, [exports_vue.createElementVNode("div", {
352434
352573
  class: exports_vue.normalizeClass(["sd-toolbar-icon__icon", [`sd-toolbar-icon__icon--${props.name}`]]),
352435
352574
  innerHTML: __props.icon
352436
- }, null, 10, _hoisted_2$7), hasColorBar.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
352575
+ }, null, 10, _hoisted_2$8), hasColorBar.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
352437
352576
  key: 0,
352438
352577
  class: "color-bar",
352439
352578
  style: exports_vue.normalizeStyle(getBarColor.value)
@@ -352441,28 +352580,37 @@ function print() { __p += __j.call(arguments, '') }
352441
352580
  };
352442
352581
  }
352443
352582
  }, [["__scopeId", "data-v-521c3d93"]]);
352444
- _hoisted_1$9 = ["role", "aria-label"];
352445
- _hoisted_2$6 = ["data-item"];
352446
- _hoisted_3$5 = ["data-item"];
352447
- _hoisted_4$4 = {
352583
+ _hoisted_1$10 = ["role", "aria-label"];
352584
+ _hoisted_2$7 = ["data-item"];
352585
+ _hoisted_3$6 = ["data-item"];
352586
+ _hoisted_4$5 = {
352448
352587
  key: 1,
352449
352588
  class: "sd-button-label"
352450
352589
  };
352451
- _hoisted_5$2 = ["data-item", "aria-label"];
352452
- _hoisted_6$1 = ["innerHTML"];
352453
- _hoisted_7$1 = {
352590
+ _hoisted_5$4 = ["data-item", "aria-label"];
352591
+ _hoisted_6$3 = ["innerHTML"];
352592
+ _hoisted_7$2 = {
352454
352593
  key: 1,
352455
352594
  class: "sd-button-label"
352456
352595
  };
352457
- _hoisted_8 = { key: 2 };
352596
+ _hoisted_8 = {
352597
+ key: 2,
352598
+ class: "sd-toolbar-button__field sd-toolbar-split-field__main"
352599
+ };
352458
352600
  _hoisted_9 = ["onKeydown", "id"];
352459
352601
  _hoisted_10 = [
352460
352602
  "placeholder",
352461
352603
  "onKeydown",
352462
352604
  "id"
352463
352605
  ];
352464
- _hoisted_11 = ["innerHTML"];
352465
- _hoisted_12 = {
352606
+ _hoisted_11 = [
352607
+ "data-item",
352608
+ "aria-label",
352609
+ "disabled"
352610
+ ];
352611
+ _hoisted_12 = ["innerHTML"];
352612
+ _hoisted_13 = ["innerHTML"];
352613
+ _hoisted_14 = {
352466
352614
  "aria-live": "polite",
352467
352615
  class: "sd-visually-hidden"
352468
352616
  };
@@ -352505,21 +352653,28 @@ function print() { __p += __j.call(arguments, '') }
352505
352653
  emits: [
352506
352654
  "buttonClick",
352507
352655
  "textSubmit",
352508
- "mainClick"
352656
+ "mainClick",
352657
+ "tabOut"
352509
352658
  ],
352510
352659
  setup(__props, { emit: __emit }) {
352511
352660
  const emit = __emit;
352512
352661
  const props = __props;
352513
352662
  const { name, active, icon, label, hideLabel, iconColor, hasCaret, splitButton, disabled, expand, inlineTextInputVisible, hasInlineTextInput, minWidth, style: style2, attributes } = props.toolbarItem;
352514
352663
  const isSplit = exports_vue.computed(() => Boolean(splitButton?.value) && Boolean(hasCaret?.value));
352664
+ const isInlineSplitField = exports_vue.computed(() => name?.value === "fontSize" && Boolean(hasInlineTextInput?.value) && Boolean(hasCaret?.value));
352515
352665
  const inlineTextInput = exports_vue.ref(label);
352516
352666
  const inlineInput = exports_vue.ref(null);
352517
352667
  const { isHighContrastMode: isHighContrastMode$1 } = useHighContrastMode();
352668
+ const selectInlineInput = () => {
352669
+ exports_vue.nextTick(() => {
352670
+ inlineInput.value?.select();
352671
+ });
352672
+ };
352518
352673
  const handleClick$1 = () => {
352519
352674
  if (hasInlineTextInput)
352520
352675
  exports_vue.nextTick(() => {
352521
352676
  inlineInput.value?.focus();
352522
- inlineInput.value?.select();
352677
+ selectInlineInput();
352523
352678
  });
352524
352679
  emit("buttonClick");
352525
352680
  };
@@ -352552,6 +352707,14 @@ function print() { __p += __j.call(arguments, '') }
352552
352707
  emit("textSubmit", cleanValue);
352553
352708
  inlineTextInput.value = cleanValue;
352554
352709
  };
352710
+ const handleInputTab = (event) => {
352711
+ if (name?.value !== "fontSize")
352712
+ return;
352713
+ event.preventDefault();
352714
+ handleInputSubmit();
352715
+ inlineInput.value?.blur();
352716
+ emit("tabOut", event);
352717
+ };
352555
352718
  const getStyle = exports_vue.computed(() => {
352556
352719
  if (style2.value)
352557
352720
  return style2.value;
@@ -352568,7 +352731,7 @@ function print() { __p += __j.call(arguments, '') }
352568
352731
  "aria-label": exports_vue.unref(attributes).ariaLabel,
352569
352732
  "data-sd-part": "toolbar-item",
352570
352733
  onClick: handleOuterClick,
352571
- onKeydown: _cache[3] || (_cache[3] = exports_vue.withKeys(($event) => onEnterKeydown($event), ["enter"])),
352734
+ onKeydown: _cache[5] || (_cache[5] = exports_vue.withKeys(($event) => onEnterKeydown($event), ["enter"])),
352572
352735
  tabindex: "0"
352573
352736
  }, [exports_vue.createElementVNode("div", {
352574
352737
  class: exports_vue.normalizeClass(["sd-toolbar-button", {
@@ -352577,6 +352740,8 @@ function print() { __p += __j.call(arguments, '') }
352577
352740
  narrow: __props.isNarrow,
352578
352741
  wide: __props.isWide,
352579
352742
  split: isSplit.value,
352743
+ "split-field": isInlineSplitField.value,
352744
+ "sd-toolbar-split-field": isInlineSplitField.value,
352580
352745
  "has-inline-text-input": exports_vue.unref(hasInlineTextInput),
352581
352746
  "high-contrast": exports_vue.unref(isHighContrastMode$1)
352582
352747
  }]),
@@ -352597,7 +352762,7 @@ function print() { __p += __j.call(arguments, '') }
352597
352762
  "color",
352598
352763
  "icon",
352599
352764
  "name"
352600
- ])) : 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),
352765
+ ])) : 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),
352601
352766
  isSplit.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
352602
352767
  key: 1,
352603
352768
  class: "sd-toolbar-button__caret",
@@ -352608,7 +352773,7 @@ function print() { __p += __j.call(arguments, '') }
352608
352773
  class: "sd-dropdown-caret",
352609
352774
  innerHTML: caretIcon.value,
352610
352775
  style: exports_vue.normalizeStyle({ opacity: exports_vue.unref(disabled) ? 0.6 : 1 })
352611
- }, null, 12, _hoisted_6$1)], 8, _hoisted_5$2)) : (exports_vue.openBlock(), exports_vue.createElementBlock(exports_vue.Fragment, { key: 2 }, [
352776
+ }, null, 12, _hoisted_6$3)], 8, _hoisted_5$4)) : (exports_vue.openBlock(), exports_vue.createElementBlock(exports_vue.Fragment, { key: 2 }, [
352612
352777
  exports_vue.unref(icon) ? (exports_vue.openBlock(), exports_vue.createBlock(ToolbarButtonIcon_default, {
352613
352778
  key: 0,
352614
352779
  color: exports_vue.unref(iconColor),
@@ -352620,11 +352785,13 @@ function print() { __p += __j.call(arguments, '') }
352620
352785
  "icon",
352621
352786
  "name"
352622
352787
  ])) : exports_vue.createCommentVNode("", true),
352623
- 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),
352788
+ 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),
352624
352789
  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", {
352625
352790
  key: 0,
352626
352791
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => inlineTextInput.value = $event),
352627
- onKeydown: exports_vue.withKeys(exports_vue.withModifiers(handleInputSubmit, ["prevent"]), ["enter"]),
352792
+ onKeydown: [exports_vue.withKeys(exports_vue.withModifiers(handleInputSubmit, ["prevent"]), ["enter"]), exports_vue.withKeys(handleInputTab, ["tab"])],
352793
+ onFocus: selectInlineInput,
352794
+ onClick: _cache[2] || (_cache[2] = exports_vue.withModifiers(() => {}, ["stop"])),
352628
352795
  type: "text",
352629
352796
  class: exports_vue.normalizeClass(["button-text-input button-text-input--font-size", { "high-contrast": exports_vue.unref(isHighContrastMode$1) }]),
352630
352797
  id: "inlineTextInput-" + exports_vue.unref(name),
@@ -352633,7 +352800,7 @@ function print() { __p += __j.call(arguments, '') }
352633
352800
  ref: inlineInput
352634
352801
  }, null, 42, _hoisted_9)), [[exports_vue.vModelText, inlineTextInput.value]]) : exports_vue.withDirectives((exports_vue.openBlock(), exports_vue.createElementBlock("input", {
352635
352802
  key: 1,
352636
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => inlineTextInput.value = $event),
352803
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => inlineTextInput.value = $event),
352637
352804
  placeholder: exports_vue.unref(label),
352638
352805
  onKeydown: exports_vue.withKeys(exports_vue.withModifiers(handleInputSubmit, ["prevent"]), ["enter"]),
352639
352806
  type: "text",
@@ -352643,19 +352810,32 @@ function print() { __p += __j.call(arguments, '') }
352643
352810
  ref_key: "inlineInput",
352644
352811
  ref: inlineInput
352645
352812
  }, null, 40, _hoisted_10)), [[exports_vue.vModelText, inlineTextInput.value]])])) : exports_vue.createCommentVNode("", true),
352646
- exports_vue.unref(hasCaret) ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
352813
+ isInlineSplitField.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("button", {
352647
352814
  key: 3,
352815
+ type: "button",
352816
+ class: "sd-toolbar-button__field-caret sd-toolbar-split-field__caret",
352817
+ "data-item": `btn-${exports_vue.unref(name) || ""}-caret`,
352818
+ "aria-label": `${exports_vue.unref(attributes).ariaLabel} options`,
352819
+ disabled: exports_vue.unref(disabled),
352820
+ tabindex: "-1",
352821
+ onMousedown: _cache[4] || (_cache[4] = exports_vue.withModifiers(() => {}, ["prevent"]))
352822
+ }, [exports_vue.createElementVNode("span", {
352823
+ class: "sd-dropdown-caret",
352824
+ innerHTML: caretIcon.value,
352825
+ style: exports_vue.normalizeStyle({ opacity: exports_vue.unref(disabled) ? 0.6 : 1 })
352826
+ }, null, 12, _hoisted_12)], 40, _hoisted_11)) : exports_vue.unref(hasCaret) ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
352827
+ key: 4,
352648
352828
  class: "sd-dropdown-caret",
352649
352829
  innerHTML: caretIcon.value,
352650
352830
  style: exports_vue.normalizeStyle({ opacity: exports_vue.unref(disabled) ? 0.6 : 1 })
352651
- }, null, 12, _hoisted_11)) : exports_vue.createCommentVNode("", true)
352831
+ }, null, 12, _hoisted_13)) : exports_vue.createCommentVNode("", true)
352652
352832
  ], 64)),
352653
- exports_vue.createElementVNode("div", _hoisted_12, exports_vue.toDisplayString(`${exports_vue.unref(attributes).ariaLabel} ${exports_vue.unref(active) ? "selected" : "unset"}`), 1)
352654
- ], 10, _hoisted_2$6)], 46, _hoisted_1$9);
352833
+ exports_vue.createElementVNode("div", _hoisted_14, exports_vue.toDisplayString(`${exports_vue.unref(attributes).ariaLabel} ${exports_vue.unref(active) ? "selected" : "unset"}`), 1)
352834
+ ], 10, _hoisted_2$7)], 46, _hoisted_1$10);
352655
352835
  };
352656
352836
  }
352657
- }, [["__scopeId", "data-v-360f6a95"]]);
352658
- _hoisted_1$8 = {
352837
+ }, [["__scopeId", "data-v-2caa0057"]]);
352838
+ _hoisted_1$9 = {
352659
352839
  class: "toolbar-separator",
352660
352840
  role: "separator",
352661
352841
  "aria-label": "Toolbar separator"
@@ -352675,16 +352855,16 @@ function print() { __p += __j.call(arguments, '') }
352675
352855
  return "var(--sd-ui-border, #dbdbdb)";
352676
352856
  };
352677
352857
  return (_ctx, _cache) => {
352678
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$8, [exports_vue.createElementVNode("div", {
352858
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$9, [exports_vue.createElementVNode("div", {
352679
352859
  class: "separator-inner",
352680
352860
  style: exports_vue.normalizeStyle({ backgroundColor: getSeparatorColor() })
352681
352861
  }, null, 4)]);
352682
352862
  };
352683
352863
  }
352684
352864
  }, [["__scopeId", "data-v-d027f7fc"]]);
352685
- _hoisted_1$7 = { class: "overflow-menu" };
352686
- _hoisted_2$5 = { class: "overflow-menu-trigger" };
352687
- _hoisted_3$4 = {
352865
+ _hoisted_1$8 = { class: "overflow-menu" };
352866
+ _hoisted_2$6 = { class: "overflow-menu-trigger" };
352867
+ _hoisted_3$5 = {
352688
352868
  key: 0,
352689
352869
  class: "overflow-menu_items",
352690
352870
  role: "group"
@@ -352736,10 +352916,10 @@ function print() { __p += __j.call(arguments, '') }
352736
352916
  document.removeEventListener("keydown", handleKeyDown$1, true);
352737
352917
  });
352738
352918
  return (_ctx, _cache) => {
352739
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$7, [exports_vue.createElementVNode("div", _hoisted_2$5, [exports_vue.createVNode(ToolbarButton_default, {
352919
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$8, [exports_vue.createElementVNode("div", _hoisted_2$6, [exports_vue.createVNode(ToolbarButton_default, {
352740
352920
  "toolbar-item": overflowToolbarItem.value,
352741
352921
  onButtonClick: toggleOverflowMenu
352742
- }, null, 8, ["toolbar-item"])]), isOverflowMenuOpened.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_3$4, [exports_vue.createVNode(ButtonGroup_default, {
352922
+ }, null, 8, ["toolbar-item"])]), isOverflowMenuOpened.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_3$5, [exports_vue.createVNode(ButtonGroup_default, {
352743
352923
  class: "superdoc-toolbar-overflow",
352744
352924
  "toolbar-items": __props.overflowItems,
352745
352925
  "from-overflow": "",
@@ -352749,13 +352929,13 @@ function print() { __p += __j.call(arguments, '') }
352749
352929
  };
352750
352930
  }
352751
352931
  }, [["__scopeId", "data-v-35b48dff"]]);
352752
- _hoisted_1$6 = { class: "toolbar-dropdown" };
352753
- _hoisted_2$4 = ["onClick"];
352754
- _hoisted_3$3 = {
352932
+ _hoisted_1$7 = { class: "toolbar-dropdown" };
352933
+ _hoisted_2$5 = ["onClick"];
352934
+ _hoisted_3$4 = {
352755
352935
  key: 0,
352756
352936
  class: "toolbar-dropdown-option__icon"
352757
352937
  };
352758
- _hoisted_4$3 = { class: "toolbar-dropdown-option__label" };
352938
+ _hoisted_4$4 = { class: "toolbar-dropdown-option__label" };
352759
352939
  ToolbarDropdown_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
352760
352940
  __name: "ToolbarDropdown",
352761
352941
  props: {
@@ -353103,7 +353283,7 @@ function print() { __p += __j.call(arguments, '') }
353103
353283
  window.removeEventListener("scroll", updateMenuPosition, true);
353104
353284
  });
353105
353285
  return (_ctx, _cache) => {
353106
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$6, [exports_vue.createElementVNode("div", {
353286
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$7, [exports_vue.createElementVNode("div", {
353107
353287
  ref_key: "triggerRef",
353108
353288
  ref: triggerRef,
353109
353289
  class: "toolbar-dropdown-trigger",
@@ -353138,13 +353318,486 @@ function print() { __p += __j.call(arguments, '') }
353138
353318
  }), [isRenderOption(option) ? (exports_vue.openBlock(), exports_vue.createBlock(exports_vue.unref(RenderOption), {
353139
353319
  key: 0,
353140
353320
  option
353141
- }, 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);
353321
+ }, 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);
353142
353322
  }), 128))], 16)) : exports_vue.createCommentVNode("", true)]),
353143
353323
  _: 1
353144
353324
  })]))]);
353145
353325
  };
353146
353326
  }
353147
353327
  }, [["__scopeId", "data-v-69732782"]]);
353328
+ _hoisted_1$6 = [
353329
+ "value",
353330
+ "disabled",
353331
+ "aria-label",
353332
+ "aria-expanded",
353333
+ "aria-controls",
353334
+ "aria-activedescendant"
353335
+ ];
353336
+ _hoisted_2$4 = ["aria-label", "disabled"];
353337
+ _hoisted_3$3 = ["innerHTML"];
353338
+ _hoisted_4$3 = ["id", "aria-label"];
353339
+ _hoisted_5$3 = [
353340
+ "id",
353341
+ "aria-selected",
353342
+ "aria-label",
353343
+ "onMousedown",
353344
+ "onMouseenter"
353345
+ ];
353346
+ _hoisted_6$2 = { class: "toolbar-dropdown-option__label" };
353347
+ _hoisted_7$1 = {
353348
+ class: "sd-button-label sd-font-combobox__legacy-label",
353349
+ "aria-hidden": "true"
353350
+ };
353351
+ FontFamilyCombobox_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
353352
+ __name: "FontFamilyCombobox",
353353
+ props: {
353354
+ item: {
353355
+ type: Object,
353356
+ required: true
353357
+ },
353358
+ uiFontFamily: {
353359
+ type: String,
353360
+ default: "Arial, Helvetica, sans-serif"
353361
+ }
353362
+ },
353363
+ emits: [
353364
+ "command",
353365
+ "item-clicked",
353366
+ "tab-out",
353367
+ "editor-handoff"
353368
+ ],
353369
+ setup(__props, { emit: __emit }) {
353370
+ const props = __props;
353371
+ const emit = __emit;
353372
+ const { isHighContrastMode: isHighContrastMode$1 } = useHighContrastMode();
353373
+ const inputRef = exports_vue.ref(null);
353374
+ const rootRef = exports_vue.ref(null);
353375
+ const popupRef = exports_vue.ref(null);
353376
+ const optionRefs = exports_vue.ref([]);
353377
+ const isEditing = exports_vue.ref(false);
353378
+ const isOpen = exports_vue.ref(false);
353379
+ const activeIndex = exports_vue.ref(-1);
353380
+ const query2 = exports_vue.ref("");
353381
+ const inputDisplay = exports_vue.ref("");
353382
+ const isComposing = exports_vue.ref(false);
353383
+ const menuPosition = exports_vue.ref({
353384
+ top: "0px",
353385
+ left: "0px",
353386
+ minWidth: "0px",
353387
+ maxHeight: "none"
353388
+ });
353389
+ const options = exports_vue.computed(() => props.item.nestedOptions?.value ?? []);
353390
+ const optionLabels = exports_vue.computed(() => options.value.map((option) => String(option?.label ?? "")));
353391
+ const appliedLabel = exports_vue.computed(() => String(props.item.label?.value ?? ""));
353392
+ const disabled = exports_vue.computed(() => Boolean(props.item.disabled?.value));
353393
+ const ariaLabel = exports_vue.computed(() => props.item.attributes?.value?.ariaLabel ?? "Font family");
353394
+ const boundValue = exports_vue.computed(() => isEditing.value ? inputDisplay.value : appliedLabel.value);
353395
+ const listboxId = exports_vue.computed(() => `sd-fontfamily-listbox-${props.item.id?.value ?? "default"}`);
353396
+ const optionId = (index2) => `${listboxId.value}-option-${index2}`;
353397
+ const activeDescendant = exports_vue.computed(() => isOpen.value && activeIndex.value >= 0 ? optionId(activeIndex.value) : undefined);
353398
+ const caretIcon = exports_vue.computed(() => isOpen.value ? toolbarIcons.dropdownCaretUp : toolbarIcons.dropdownCaretDown);
353399
+ const previewFamilyForLabel = (label) => {
353400
+ const normalized = String(label ?? "").trim().toLowerCase();
353401
+ return options.value.find((candidate) => String(candidate?.label ?? "").trim().toLowerCase() === normalized)?.props?.style?.fontFamily || label || props.uiFontFamily;
353402
+ };
353403
+ const inputStyle = exports_vue.computed(() => ({ fontFamily: previewFamilyForLabel(isEditing.value ? inputDisplay.value : appliedLabel.value) }));
353404
+ const appliedIndex = () => {
353405
+ const selectedKey = props.item.selectedValue?.value;
353406
+ if (selectedKey) {
353407
+ const byKey = options.value.findIndex((option) => option?.key === selectedKey);
353408
+ if (byKey >= 0)
353409
+ return byKey;
353410
+ }
353411
+ return optionLabels.value.findIndex((label) => label.toLowerCase() === appliedLabel.value.toLowerCase());
353412
+ };
353413
+ const setSelectionRange = (start$1, end$1) => {
353414
+ const el = inputRef.value;
353415
+ if (!el || typeof el.setSelectionRange !== "function")
353416
+ return;
353417
+ try {
353418
+ el.setSelectionRange(start$1, end$1);
353419
+ } catch {}
353420
+ };
353421
+ const scrollActiveIntoView = () => {
353422
+ optionRefs.value[activeIndex.value]?.scrollIntoView?.({
353423
+ block: "nearest",
353424
+ inline: "nearest"
353425
+ });
353426
+ };
353427
+ const updatePosition$1 = () => {
353428
+ const trigger = rootRef.value;
353429
+ if (!trigger)
353430
+ return;
353431
+ const rect = trigger.getBoundingClientRect();
353432
+ const menuEl = popupRef.value;
353433
+ const menuHeight = menuEl?.scrollHeight ?? menuEl?.offsetHeight ?? 0;
353434
+ const viewportHeight = window.innerHeight || document.documentElement.clientHeight || 0;
353435
+ const viewportWidth = window.innerWidth || document.documentElement.clientWidth || 0;
353436
+ const gutter = 8;
353437
+ const gap = 4;
353438
+ const belowTop = rect.bottom + gap;
353439
+ const aboveBottom = rect.top - gap;
353440
+ const availableBelow = Math.max(0, viewportHeight - belowTop - gutter);
353441
+ const availableAbove = Math.max(0, aboveBottom - gutter);
353442
+ const openAbove = availableBelow < menuHeight && availableAbove > availableBelow;
353443
+ const maxHeight = openAbove ? availableAbove : availableBelow;
353444
+ const renderHeight = menuHeight ? Math.min(menuHeight, maxHeight) : maxHeight;
353445
+ const top$1 = openAbove ? Math.max(gutter, aboveBottom - renderHeight) : belowTop;
353446
+ const left$1 = Math.min(Math.max(gutter, rect.left), Math.max(gutter, viewportWidth - rect.width - gutter));
353447
+ menuPosition.value = {
353448
+ top: `${top$1}px`,
353449
+ left: `${left$1}px`,
353450
+ minWidth: `${rect.width}px`,
353451
+ maxHeight: `${maxHeight}px`
353452
+ };
353453
+ };
353454
+ const menuStyle = exports_vue.computed(() => ({
353455
+ position: "fixed",
353456
+ top: menuPosition.value.top,
353457
+ left: menuPosition.value.left,
353458
+ minWidth: menuPosition.value.minWidth,
353459
+ maxHeight: menuPosition.value.maxHeight,
353460
+ fontFamily: props.uiFontFamily,
353461
+ zIndex: 2000
353462
+ }));
353463
+ const setItemExpanded = (open2) => {
353464
+ if (props.item.expand && typeof props.item.expand === "object" && "value" in props.item.expand)
353465
+ props.item.expand.value = open2;
353466
+ };
353467
+ const openList = (index2, { focusInput = false } = {}) => {
353468
+ if (disabled.value || !options.value.length) {
353469
+ setItemExpanded(false);
353470
+ return;
353471
+ }
353472
+ isOpen.value = true;
353473
+ setItemExpanded(true);
353474
+ activeIndex.value = index2 ?? -1;
353475
+ if (focusInput) {
353476
+ isEditing.value = true;
353477
+ inputDisplay.value = appliedLabel.value;
353478
+ inputRef.value?.focus();
353479
+ }
353480
+ exports_vue.nextTick(() => {
353481
+ updatePosition$1();
353482
+ scrollActiveIntoView();
353483
+ });
353484
+ };
353485
+ const closeList = ({ syncItem = true } = {}) => {
353486
+ isOpen.value = false;
353487
+ activeIndex.value = -1;
353488
+ if (syncItem)
353489
+ setItemExpanded(false);
353490
+ };
353491
+ const resetToApplied = () => {
353492
+ closeList();
353493
+ isEditing.value = false;
353494
+ query2.value = "";
353495
+ inputDisplay.value = appliedLabel.value;
353496
+ };
353497
+ const onFocus = () => {
353498
+ if (disabled.value)
353499
+ return;
353500
+ emit("item-clicked");
353501
+ isEditing.value = true;
353502
+ query2.value = "";
353503
+ inputDisplay.value = appliedLabel.value;
353504
+ exports_vue.nextTick(() => setSelectionRange(0, inputDisplay.value.length));
353505
+ };
353506
+ const onInputMousedown = (event) => {
353507
+ if (disabled.value || document.activeElement === inputRef.value)
353508
+ return;
353509
+ event.preventDefault();
353510
+ inputRef.value?.focus();
353511
+ isEditing.value = true;
353512
+ query2.value = "";
353513
+ inputDisplay.value = appliedLabel.value;
353514
+ setSelectionRange(0, appliedLabel.value.length);
353515
+ };
353516
+ const onBlur = (event) => {
353517
+ const next2 = event.relatedTarget;
353518
+ if (next2 instanceof Node && rootRef.value?.contains(next2))
353519
+ return;
353520
+ if (next2 instanceof Node && popupRef.value?.contains(next2))
353521
+ return;
353522
+ resetToApplied();
353523
+ };
353524
+ const onInput = (event) => {
353525
+ if (isComposing.value)
353526
+ return;
353527
+ const el = event.target;
353528
+ const typed = el.value;
353529
+ const selectionStart = typeof el.selectionStart === "number" ? el.selectionStart : typed.length;
353530
+ const selectionEnd = typeof el.selectionEnd === "number" ? el.selectionEnd : selectionStart;
353531
+ const isDelete = typeof event.inputType === "string" && event.inputType.startsWith("delete");
353532
+ const editAtEnd = selectionStart === typed.length && selectionEnd === typed.length;
353533
+ query2.value = typed;
353534
+ const result = computeTypeahead(typed, optionLabels.value, { autocomplete: !isDelete && editAtEnd });
353535
+ inputDisplay.value = result.display;
353536
+ el.value = result.display;
353537
+ if (result.display === typed && !editAtEnd)
353538
+ setSelectionRange(selectionStart, selectionEnd);
353539
+ else
353540
+ setSelectionRange(result.selectionStart, result.selectionEnd);
353541
+ if (isOpen.value) {
353542
+ activeIndex.value = result.matchIndex;
353543
+ exports_vue.nextTick(scrollActiveIntoView);
353544
+ }
353545
+ };
353546
+ const onCompositionEnd = (event) => {
353547
+ isComposing.value = false;
353548
+ onInput(event);
353549
+ };
353550
+ const moveActive = (direction) => {
353551
+ if (!options.value.length)
353552
+ return;
353553
+ const count2 = options.value.length;
353554
+ activeIndex.value = ((activeIndex.value < 0 ? direction > 0 ? -1 : 0 : activeIndex.value) + direction + count2) % count2;
353555
+ exports_vue.nextTick(scrollActiveIntoView);
353556
+ };
353557
+ const emitFontCommand = (label, option) => {
353558
+ emit("item-clicked");
353559
+ emit("command", {
353560
+ item: props.item,
353561
+ argument: label,
353562
+ option
353563
+ });
353564
+ if (option)
353565
+ props.item.selectedValue.value = option.key;
353566
+ };
353567
+ const applyOption = (option) => {
353568
+ if (!option)
353569
+ return;
353570
+ emitFontCommand(option.label, option);
353571
+ isEditing.value = false;
353572
+ query2.value = "";
353573
+ inputDisplay.value = option.label;
353574
+ closeList();
353575
+ };
353576
+ const applySelection = () => {
353577
+ if (isOpen.value && activeIndex.value >= 0) {
353578
+ applyOption(options.value[activeIndex.value]);
353579
+ return true;
353580
+ }
353581
+ const matchIndex = findPrefixMatchIndex(query2.value, optionLabels.value);
353582
+ if (matchIndex >= 0) {
353583
+ applyOption(options.value[matchIndex]);
353584
+ return true;
353585
+ }
353586
+ const custom = normalizeCustomFontFamily(query2.value);
353587
+ if (custom) {
353588
+ emitFontCommand(custom, null);
353589
+ isEditing.value = false;
353590
+ query2.value = "";
353591
+ inputDisplay.value = custom;
353592
+ closeList();
353593
+ return true;
353594
+ }
353595
+ return false;
353596
+ };
353597
+ const onKeydown = (event) => {
353598
+ if (event.isComposing || isComposing.value || event.keyCode === 229)
353599
+ return;
353600
+ if (event.ctrlKey || event.metaKey || event.altKey)
353601
+ return;
353602
+ switch (event.key) {
353603
+ case "ArrowDown":
353604
+ event.preventDefault();
353605
+ if (!isOpen.value) {
353606
+ const typedMatch = findPrefixMatchIndex(query2.value, optionLabels.value);
353607
+ const index2 = typedMatch >= 0 ? typedMatch : appliedIndex();
353608
+ openList(index2 >= 0 ? index2 : 0);
353609
+ } else
353610
+ moveActive(1);
353611
+ break;
353612
+ case "ArrowUp":
353613
+ event.preventDefault();
353614
+ if (!isOpen.value) {
353615
+ const typedMatch = findPrefixMatchIndex(query2.value, optionLabels.value);
353616
+ const index2 = typedMatch >= 0 ? typedMatch : appliedIndex();
353617
+ openList(index2 >= 0 ? index2 : options.value.length - 1);
353618
+ } else
353619
+ moveActive(-1);
353620
+ break;
353621
+ case "Enter":
353622
+ event.preventDefault();
353623
+ if (applySelection())
353624
+ emit("editor-handoff");
353625
+ inputRef.value?.blur();
353626
+ break;
353627
+ case "Tab":
353628
+ event.preventDefault();
353629
+ applySelection();
353630
+ closeList();
353631
+ inputRef.value?.blur();
353632
+ emit("tab-out", event);
353633
+ break;
353634
+ case "Escape":
353635
+ event.preventDefault();
353636
+ resetToApplied();
353637
+ exports_vue.nextTick(() => inputRef.value?.focus());
353638
+ break;
353639
+ default:
353640
+ break;
353641
+ }
353642
+ };
353643
+ const onCaretMousedown = (event) => {
353644
+ event.preventDefault();
353645
+ if (disabled.value)
353646
+ return;
353647
+ emit("item-clicked");
353648
+ if (!isEditing.value) {
353649
+ isEditing.value = true;
353650
+ inputDisplay.value = appliedLabel.value;
353651
+ inputRef.value?.focus();
353652
+ }
353653
+ if (isOpen.value)
353654
+ closeList();
353655
+ else {
353656
+ const index2 = appliedIndex();
353657
+ openList(index2 >= 0 ? index2 : 0);
353658
+ }
353659
+ };
353660
+ const onOptionMousedown = (event, option) => {
353661
+ event.preventDefault();
353662
+ applyOption(option);
353663
+ emit("editor-handoff");
353664
+ inputRef.value?.blur();
353665
+ };
353666
+ const onOptionMouseenter = (index2) => {
353667
+ activeIndex.value = index2;
353668
+ };
353669
+ const handleDocumentPointerDown = (event) => {
353670
+ if (!isOpen.value)
353671
+ return;
353672
+ const target = event.target;
353673
+ if (!(target instanceof Element))
353674
+ return;
353675
+ if (rootRef.value?.contains(target) || popupRef.value?.contains(target))
353676
+ return;
353677
+ closeList();
353678
+ };
353679
+ exports_vue.watch(isOpen, (open2) => {
353680
+ if (open2) {
353681
+ document.addEventListener("pointerdown", handleDocumentPointerDown, true);
353682
+ window.addEventListener("resize", updatePosition$1);
353683
+ window.addEventListener("scroll", updatePosition$1, true);
353684
+ } else {
353685
+ document.removeEventListener("pointerdown", handleDocumentPointerDown, true);
353686
+ window.removeEventListener("resize", updatePosition$1);
353687
+ window.removeEventListener("scroll", updatePosition$1, true);
353688
+ optionRefs.value = [];
353689
+ }
353690
+ }, { immediate: true });
353691
+ exports_vue.onBeforeUnmount(() => {
353692
+ document.removeEventListener("pointerdown", handleDocumentPointerDown, true);
353693
+ window.removeEventListener("resize", updatePosition$1);
353694
+ window.removeEventListener("scroll", updatePosition$1, true);
353695
+ });
353696
+ const setOptionRef = (el, index2) => {
353697
+ if (!el) {
353698
+ delete optionRefs.value[index2];
353699
+ return;
353700
+ }
353701
+ optionRefs.value[index2] = el;
353702
+ };
353703
+ const isOptionActive = (index2) => index2 === activeIndex.value;
353704
+ const isOptionSelected = (option) => option?.key && option.key === props.item.selectedValue?.value;
353705
+ exports_vue.watch(appliedLabel, (label) => {
353706
+ if (isEditing.value)
353707
+ return;
353708
+ inputDisplay.value = label;
353709
+ });
353710
+ exports_vue.watch(() => Boolean(props.item.expand?.value), (expanded) => {
353711
+ if (expanded && !isOpen.value) {
353712
+ const index2 = appliedIndex();
353713
+ openList(index2 >= 0 ? index2 : 0, { focusInput: true });
353714
+ return;
353715
+ }
353716
+ if (!expanded && isOpen.value)
353717
+ closeList({ syncItem: false });
353718
+ });
353719
+ return (_ctx, _cache) => {
353720
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", {
353721
+ ref_key: "rootRef",
353722
+ ref: rootRef,
353723
+ class: exports_vue.normalizeClass(["sd-font-combobox sd-toolbar-split-field", {
353724
+ "sd-disabled": disabled.value,
353725
+ "high-contrast": exports_vue.unref(isHighContrastMode$1)
353726
+ }]),
353727
+ style: exports_vue.normalizeStyle(props.item.style?.value),
353728
+ "data-item": "btn-fontFamily"
353729
+ }, [
353730
+ exports_vue.createElementVNode("span", {
353731
+ class: "sd-font-combobox__field sd-toolbar-split-field__main",
353732
+ onMousedown: onInputMousedown
353733
+ }, [exports_vue.createElementVNode("input", {
353734
+ ref_key: "inputRef",
353735
+ ref: inputRef,
353736
+ class: "button-text-input sd-font-combobox__input",
353737
+ type: "text",
353738
+ role: "combobox",
353739
+ autocomplete: "off",
353740
+ spellcheck: "false",
353741
+ value: boundValue.value,
353742
+ style: exports_vue.normalizeStyle(inputStyle.value),
353743
+ disabled: disabled.value,
353744
+ "aria-label": ariaLabel.value,
353745
+ "aria-expanded": isOpen.value ? "true" : "false",
353746
+ "aria-controls": listboxId.value,
353747
+ "aria-activedescendant": activeDescendant.value,
353748
+ "aria-haspopup": "listbox",
353749
+ "aria-autocomplete": "both",
353750
+ onFocus,
353751
+ onBlur,
353752
+ onInput,
353753
+ onKeydown,
353754
+ onCompositionstart: _cache[0] || (_cache[0] = ($event) => isComposing.value = true),
353755
+ onCompositionend: onCompositionEnd
353756
+ }, null, 44, _hoisted_1$6)], 32),
353757
+ exports_vue.createElementVNode("button", {
353758
+ type: "button",
353759
+ class: "sd-font-combobox__caret sd-toolbar-split-field__caret",
353760
+ "data-item": "btn-fontFamily-toggle",
353761
+ tabindex: "-1",
353762
+ "aria-label": `${ariaLabel.value} options`,
353763
+ disabled: disabled.value,
353764
+ onMousedown: onCaretMousedown
353765
+ }, [exports_vue.createElementVNode("span", {
353766
+ class: "sd-dropdown-caret",
353767
+ innerHTML: caretIcon.value
353768
+ }, null, 8, _hoisted_3$3)], 40, _hoisted_2$4),
353769
+ (exports_vue.openBlock(), exports_vue.createBlock(exports_vue.Teleport, { to: "body" }, [isOpen.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
353770
+ key: 0,
353771
+ ref_key: "popupRef",
353772
+ ref: popupRef,
353773
+ role: "listbox",
353774
+ id: listboxId.value,
353775
+ "aria-label": ariaLabel.value,
353776
+ class: exports_vue.normalizeClass(["sd-font-combobox__listbox", { "high-contrast": exports_vue.unref(isHighContrastMode$1) }]),
353777
+ style: exports_vue.normalizeStyle(menuStyle.value)
353778
+ }, [(exports_vue.openBlock(true), exports_vue.createElementBlock(exports_vue.Fragment, null, exports_vue.renderList(options.value, (option, index2) => {
353779
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", exports_vue.mergeProps({
353780
+ key: option.key,
353781
+ ref_for: true,
353782
+ ref: (el) => setOptionRef(el, index2),
353783
+ id: optionId(index2),
353784
+ role: "option",
353785
+ class: ["toolbar-dropdown-option sd-font-combobox__option", {
353786
+ "sd-active": isOptionActive(index2),
353787
+ "sd-selected": isOptionSelected(option)
353788
+ }],
353789
+ "aria-selected": isOptionSelected(option) ? "true" : "false",
353790
+ "aria-label": `${ariaLabel.value} - ${option.label}`
353791
+ }, { ref_for: true }, option.props, {
353792
+ onMousedown: (e) => onOptionMousedown(e, option),
353793
+ onMouseenter: ($event) => onOptionMouseenter(index2)
353794
+ }), [exports_vue.createElementVNode("span", _hoisted_6$2, exports_vue.toDisplayString(option.label), 1)], 16, _hoisted_5$3);
353795
+ }), 128))], 14, _hoisted_4$3)) : exports_vue.createCommentVNode("", true)])),
353796
+ exports_vue.createElementVNode("span", _hoisted_7$1, exports_vue.toDisplayString(appliedLabel.value), 1)
353797
+ ], 6);
353798
+ };
353799
+ }
353800
+ }, [["__scopeId", "data-v-1e39033e"]]);
353148
353801
  SdTooltip_default = /* @__PURE__ */ __plugin_vue_export_helper_default(/* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
353149
353802
  __name: "SdTooltip",
353150
353803
  props: {
@@ -353160,6 +353813,10 @@ function print() { __p += __j.call(arguments, '') }
353160
353813
  type: Number,
353161
353814
  default: 100
353162
353815
  },
353816
+ autoHideDuration: {
353817
+ type: Number,
353818
+ default: 0
353819
+ },
353163
353820
  disabled: {
353164
353821
  type: Boolean,
353165
353822
  default: false
@@ -353181,6 +353838,7 @@ function print() { __p += __j.call(arguments, '') }
353181
353838
  });
353182
353839
  let closeTimeout = null;
353183
353840
  let openTimeout = null;
353841
+ let autoHideTimeout = null;
353184
353842
  const mergedContentClass = exports_vue.computed(() => ["sd-tooltip-content", attrs.class]);
353185
353843
  const contentStyle = exports_vue.computed(() => ({
353186
353844
  ...props.contentStyle,
@@ -353202,6 +353860,21 @@ function print() { __p += __j.call(arguments, '') }
353202
353860
  openTimeout = null;
353203
353861
  }
353204
353862
  };
353863
+ const clearAutoHideTimeout = () => {
353864
+ if (autoHideTimeout) {
353865
+ window.clearTimeout(autoHideTimeout);
353866
+ autoHideTimeout = null;
353867
+ }
353868
+ };
353869
+ const scheduleAutoHide = () => {
353870
+ clearAutoHideTimeout();
353871
+ if (props.autoHideDuration <= 0)
353872
+ return;
353873
+ autoHideTimeout = window.setTimeout(() => {
353874
+ autoHideTimeout = null;
353875
+ close2();
353876
+ }, props.autoHideDuration);
353877
+ };
353205
353878
  const updatePosition$1 = () => {
353206
353879
  if (!triggerRef.value || !contentRef.value)
353207
353880
  return;
@@ -353227,10 +353900,12 @@ function print() { __p += __j.call(arguments, '') }
353227
353900
  isOpen.value = true;
353228
353901
  await exports_vue.nextTick();
353229
353902
  updatePosition$1();
353903
+ scheduleAutoHide();
353230
353904
  };
353231
353905
  const close2 = () => {
353232
353906
  clearOpenTimeout();
353233
353907
  clearCloseTimeout();
353908
+ clearAutoHideTimeout();
353234
353909
  if (!isOpen.value)
353235
353910
  return;
353236
353911
  isOpen.value = false;
@@ -353302,6 +353977,7 @@ function print() { __p += __j.call(arguments, '') }
353302
353977
  exports_vue.onBeforeUnmount(() => {
353303
353978
  clearOpenTimeout();
353304
353979
  clearCloseTimeout();
353980
+ clearAutoHideTimeout();
353305
353981
  window.removeEventListener("resize", updatePosition$1);
353306
353982
  window.removeEventListener("scroll", updatePosition$1, true);
353307
353983
  document.removeEventListener("keydown", handleEscape, true);
@@ -353332,15 +354008,17 @@ function print() { __p += __j.call(arguments, '') }
353332
354008
  })]))], 64);
353333
354009
  };
353334
354010
  }
353335
- }), [["__scopeId", "data-v-d8dd2f5a"]]);
353336
- _hoisted_1$5 = [
354011
+ }), [["__scopeId", "data-v-f0925f67"]]);
354012
+ _hoisted_1$5 = ["data-toolbar-position"];
354013
+ _hoisted_2$3 = [
353337
354014
  "onKeydown",
353338
354015
  "tabindex",
353339
354016
  "data-item-id"
353340
354017
  ];
353341
- _hoisted_2$3 = { key: 0 };
353342
354018
  _hoisted_3$2 = { key: 0 };
353343
354019
  _hoisted_4$2 = { key: 0 };
354020
+ _hoisted_5$2 = { key: 0 };
354021
+ _hoisted_6$1 = { key: 0 };
353344
354022
  ButtonGroup_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
353345
354023
  __name: "ButtonGroup",
353346
354024
  props: {
@@ -353401,8 +354079,10 @@ function print() { __p += __j.call(arguments, '') }
353401
354079
  });
353402
354080
  const isButton = (item) => item.type === "button";
353403
354081
  const isDropdown = (item) => item.type === "dropdown";
354082
+ const isFontFamily = (item) => item.type === "dropdown" && item.name?.value === "fontFamily";
353404
354083
  const isSeparator = (item) => item.type === "separator";
353405
354084
  const isOverflow = (item) => item.type === "overflow";
354085
+ const hasNestedOptions = (item) => Boolean(item.nestedOptions?.value?.length);
353406
354086
  const getExpanded = (item) => {
353407
354087
  if (!item)
353408
354088
  return false;
@@ -353466,16 +354146,19 @@ function print() { __p += __j.call(arguments, '') }
353466
354146
  argument: null
353467
354147
  });
353468
354148
  };
353469
- const closeDropdowns = () => {
354149
+ const closeDropdowns = (exceptItem = null) => {
353470
354150
  const toolbarItems = proxy?.$toolbar?.toolbarItems || [];
353471
354151
  const overflowItems = proxy?.$toolbar?.overflowItems || [];
353472
354152
  const allItems = [...toolbarItems, ...overflowItems];
353473
354153
  (allItems.length ? allItems : props.toolbarItems).forEach((toolbarItem) => {
354154
+ if (toolbarItem === exceptItem)
354155
+ return;
353474
354156
  const shouldCloseOverflow = isOverflow(toolbarItem) && !props.fromOverflow;
353475
354157
  if (isDropdown(toolbarItem) || shouldCloseOverflow)
353476
354158
  setExpanded(toolbarItem, false);
353477
354159
  });
353478
- currentItem.value = null;
354160
+ if (!exceptItem || currentItem.value !== exceptItem)
354161
+ currentItem.value = null;
353479
354162
  };
353480
354163
  const handleSelect = (item, option) => {
353481
354164
  closeDropdowns();
@@ -353486,6 +354169,39 @@ function print() { __p += __j.call(arguments, '') }
353486
354169
  });
353487
354170
  item.selectedValue.value = option.key;
353488
354171
  };
354172
+ const handleComboboxItemClicked = (item) => {
354173
+ closeDropdowns(item);
354174
+ emit("item-clicked");
354175
+ };
354176
+ const handleComboboxCommand = (payload) => {
354177
+ emit("command", payload);
354178
+ };
354179
+ const waitForFrame = () => new Promise((resolve3) => requestAnimationFrame(resolve3));
354180
+ const flushPendingToolbarMarks = () => Boolean(proxy?.$toolbar?.flushPendingMarkCommands?.());
354181
+ const handleEditorTextInputHandoff = () => {
354182
+ flushPendingToolbarMarks();
354183
+ prepareSelectionForTextInputHandoff(proxy?.$toolbar?.activeEditor);
354184
+ focusEditor();
354185
+ };
354186
+ const handleComboboxTabOut = (startIndex, event) => {
354187
+ closeDropdowns();
354188
+ flushPendingToolbarMarks();
354189
+ if (event.shiftKey)
354190
+ focusAdjacentToolbarControlAfterUpdate(startIndex, -1, () => focusPreviousButtonGroup() || focusEditor());
354191
+ else
354192
+ focusAdjacentToolbarControlAfterUpdate(startIndex, 1, true);
354193
+ };
354194
+ const handleToolbarButtonTabOut = (item, event) => {
354195
+ closeDropdowns();
354196
+ if (item.name.value === "fontSize" && !event.shiftKey) {
354197
+ handleEditorTextInputHandoff();
354198
+ return;
354199
+ }
354200
+ if (event.shiftKey)
354201
+ moveToAdjacentToolbarControl(event, -1);
354202
+ else
354203
+ moveToAdjacentToolbarControl(event, 1) || focusEditor();
354204
+ };
353489
354205
  const dropdownOptions = (item) => {
353490
354206
  if (!item.nestedOptions?.value?.length)
353491
354207
  return [];
@@ -353524,16 +354240,97 @@ function print() { __p += __j.call(arguments, '') }
353524
354240
  previousButton.focus();
353525
354241
  }
353526
354242
  };
354243
+ const focusEditor = () => {
354244
+ const editor = proxy?.$toolbar?.activeEditor;
354245
+ if (editor && typeof editor.focus === "function") {
354246
+ editor.focus();
354247
+ return true;
354248
+ }
354249
+ const editorDom = editor?.view?.dom;
354250
+ if (editorDom instanceof HTMLElement) {
354251
+ editorDom.focus();
354252
+ return true;
354253
+ }
354254
+ return false;
354255
+ };
354256
+ const getToolbarItemFocusTarget = (container) => {
354257
+ if (!(container instanceof HTMLElement))
354258
+ return null;
354259
+ if (container.classList.contains("sd-disabled"))
354260
+ return null;
354261
+ 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"])');
354262
+ };
354263
+ const getCurrentToolbarItemContainers = () => {
354264
+ if (toolbarItemRefs.value.length)
354265
+ return toolbarItemRefs.value;
354266
+ const group = document.querySelector(`.button-group[data-toolbar-position="${props.position}"]`);
354267
+ if (!group)
354268
+ return [];
354269
+ return Array.from(group.querySelectorAll(":scope > .sd-toolbar-item-ctn"));
354270
+ };
354271
+ const focusToolbarControlFromIndex = (startIndex, direction) => {
354272
+ if (startIndex < 0)
354273
+ return false;
354274
+ const containers = getCurrentToolbarItemContainers();
354275
+ let index2 = startIndex + direction;
354276
+ while (index2 >= 0 && index2 < containers.length) {
354277
+ const container = containers[index2];
354278
+ const target = getToolbarItemFocusTarget(container);
354279
+ if (target instanceof HTMLElement) {
354280
+ containers[startIndex]?.setAttribute("tabindex", "-1");
354281
+ container.setAttribute("tabindex", "0");
354282
+ target.focus();
354283
+ return true;
354284
+ }
354285
+ index2 += direction;
354286
+ }
354287
+ return false;
354288
+ };
354289
+ const focusPreviousButtonGroup = () => {
354290
+ const previousButtonGroup = buttonGroupRef.value?.previousElementSibling;
354291
+ if (previousButtonGroup instanceof HTMLElement) {
354292
+ previousButtonGroup.setAttribute("tabindex", "0");
354293
+ previousButtonGroup.focus();
354294
+ return true;
354295
+ }
354296
+ return false;
354297
+ };
354298
+ const focusAdjacentToolbarControlAfterUpdate = async (startIndex, direction, fallback = false) => {
354299
+ await exports_vue.nextTick();
354300
+ await waitForFrame();
354301
+ if (focusToolbarControlFromIndex(startIndex, direction))
354302
+ return;
354303
+ if (typeof fallback === "function") {
354304
+ fallback();
354305
+ return;
354306
+ }
354307
+ if (fallback)
354308
+ focusEditor();
354309
+ };
354310
+ const moveToAdjacentToolbarControl = (event, direction) => {
354311
+ const current = event.target.closest(".sd-toolbar-item-ctn");
354312
+ if (!(current instanceof HTMLElement))
354313
+ return false;
354314
+ let candidate = direction > 0 ? current.nextElementSibling : current.previousElementSibling;
354315
+ while (candidate) {
354316
+ const target = getToolbarItemFocusTarget(candidate);
354317
+ if (target instanceof HTMLElement) {
354318
+ current.setAttribute("tabindex", "-1");
354319
+ candidate.setAttribute("tabindex", "0");
354320
+ target.focus();
354321
+ return true;
354322
+ }
354323
+ candidate = direction > 0 ? candidate.nextElementSibling : candidate.previousElementSibling;
354324
+ }
354325
+ return false;
354326
+ };
353527
354327
  const moveToNextButtonGroup = (e) => {
353528
354328
  const nextButtonGroup = e.target.closest(".button-group").nextElementSibling;
353529
354329
  if (nextButtonGroup) {
353530
354330
  nextButtonGroup.setAttribute("tabindex", "0");
353531
354331
  nextButtonGroup.focus();
353532
- } else {
353533
- const editor = document.querySelector(".ProseMirror");
353534
- if (editor)
353535
- editor.focus();
353536
- }
354332
+ } else
354333
+ focusEditor();
353537
354334
  };
353538
354335
  const moveToPreviousButtonGroup = (e) => {
353539
354336
  const previousButtonGroup = e.target.closest(".button-group").previousElementSibling;
@@ -353553,7 +354350,7 @@ function print() { __p += __j.call(arguments, '') }
353553
354350
  };
353554
354351
  const handleKeyDown$1 = (e, item) => {
353555
354352
  const isTypingField = e.target.nodeName === "INPUT" || e.target.nodeName === "TEXTAREA";
353556
- const isTypingToolbarItem = item.name.value === "fontSize";
354353
+ const isTypingToolbarItem = item.name.value === "fontSize" || item.name.value === "fontFamily";
353557
354354
  if (isTypingField && isTypingToolbarItem)
353558
354355
  return;
353559
354356
  if (![
@@ -353619,7 +354416,7 @@ function print() { __p += __j.call(arguments, '') }
353619
354416
  const target = event.target;
353620
354417
  if (!(target instanceof Element))
353621
354418
  return;
353622
- if (target.closest(".sd-toolbar-dropdown-menu"))
354419
+ if (target.closest(".sd-toolbar-dropdown-menu, .sd-font-combobox__listbox"))
353623
354420
  return;
353624
354421
  if (buttonGroupRef.value?.contains(target))
353625
354422
  return;
@@ -353644,7 +354441,8 @@ function print() { __p += __j.call(arguments, '') }
353644
354441
  role: "group",
353645
354442
  onFocus: handleFocus,
353646
354443
  ref_key: "buttonGroupRef",
353647
- ref: buttonGroupRef
354444
+ ref: buttonGroupRef,
354445
+ "data-toolbar-position": props.position
353648
354446
  }, [(exports_vue.openBlock(true), exports_vue.createElementBlock(exports_vue.Fragment, null, exports_vue.renderList(__props.toolbarItems, (item, index2) => {
353649
354447
  return exports_vue.openBlock(), exports_vue.createElementBlock("div", {
353650
354448
  key: item.id.value,
@@ -353664,8 +354462,31 @@ function print() { __p += __j.call(arguments, '') }
353664
354462
  key: 0,
353665
354463
  style: { width: "20px" }
353666
354464
  })) : exports_vue.createCommentVNode("", true),
353667
- isDropdown(item) && item.nestedOptions?.value?.length ? (exports_vue.openBlock(), exports_vue.createBlock(ToolbarDropdown_default, {
354465
+ isFontFamily(item) && hasNestedOptions(item) ? (exports_vue.openBlock(), exports_vue.createBlock(SdTooltip_default, {
353668
354466
  key: 1,
354467
+ trigger: "hover",
354468
+ disabled: !item.tooltip?.value,
354469
+ "auto-hide-duration": TOOLBAR_TOOLTIP_AUTO_HIDE_MS,
354470
+ "content-style": { fontFamily: props.uiFontFamily }
354471
+ }, {
354472
+ trigger: exports_vue.withCtx(() => [exports_vue.createVNode(FontFamilyCombobox_default, {
354473
+ item,
354474
+ "ui-font-family": props.uiFontFamily,
354475
+ class: "sd-toolbar-button sd-editor-toolbar-dropdown",
354476
+ onCommand: handleComboboxCommand,
354477
+ onItemClicked: ($event) => handleComboboxItemClicked(item),
354478
+ onTabOut: ($event) => handleComboboxTabOut(index2, $event),
354479
+ onEditorHandoff: handleEditorTextInputHandoff
354480
+ }, null, 8, [
354481
+ "item",
354482
+ "ui-font-family",
354483
+ "onItemClicked",
354484
+ "onTabOut"
354485
+ ])]),
354486
+ 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)])]),
354487
+ _: 2
354488
+ }, 1032, ["disabled", "content-style"])) : isDropdown(item) && hasNestedOptions(item) ? (exports_vue.openBlock(), exports_vue.createBlock(ToolbarDropdown_default, {
354489
+ key: 2,
353669
354490
  options: dropdownOptions(item),
353670
354491
  disabled: item.disabled.value,
353671
354492
  show: getExpanded(item),
@@ -353685,6 +354506,7 @@ function print() { __p += __j.call(arguments, '') }
353685
354506
  trigger: exports_vue.withCtx(() => [exports_vue.createVNode(SdTooltip_default, {
353686
354507
  trigger: "hover",
353687
354508
  disabled: !item.tooltip?.value,
354509
+ "auto-hide-duration": TOOLBAR_TOOLTIP_AUTO_HIDE_MS,
353688
354510
  "content-style": { fontFamily: props.uiFontFamily }
353689
354511
  }, {
353690
354512
  trigger: exports_vue.withCtx(() => [exports_vue.createVNode(ToolbarButton_default, {
@@ -353692,14 +354514,16 @@ function print() { __p += __j.call(arguments, '') }
353692
354514
  disabled: item.disabled.value,
353693
354515
  "allow-enter-propagation": true,
353694
354516
  onTextSubmit: ($event) => handleToolbarButtonTextSubmit(item, $event),
353695
- onMainClick: ($event) => handleSplitButtonMainClick(item)
354517
+ onMainClick: ($event) => handleSplitButtonMainClick(item),
354518
+ onTabOut: ($event) => handleToolbarButtonTabOut(item, $event)
353696
354519
  }, null, 8, [
353697
354520
  "toolbar-item",
353698
354521
  "disabled",
353699
354522
  "onTextSubmit",
353700
- "onMainClick"
354523
+ "onMainClick",
354524
+ "onTabOut"
353701
354525
  ])]),
353702
- 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)])]),
354526
+ 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)])]),
353703
354527
  _: 2
353704
354528
  }, 1032, ["disabled", "content-style"])]),
353705
354529
  _: 2
@@ -353714,9 +354538,10 @@ function print() { __p += __j.call(arguments, '') }
353714
354538
  "menu-props",
353715
354539
  "node-props"
353716
354540
  ])) : isButton(item) ? (exports_vue.openBlock(), exports_vue.createBlock(SdTooltip_default, {
353717
- key: 2,
354541
+ key: 3,
353718
354542
  trigger: "hover",
353719
354543
  class: "sd-editor-toolbar-tooltip",
354544
+ "auto-hide-duration": TOOLBAR_TOOLTIP_AUTO_HIDE_MS,
353720
354545
  "content-style": { fontFamily: props.uiFontFamily }
353721
354546
  }, {
353722
354547
  trigger: exports_vue.withCtx(() => [exports_vue.createVNode(ToolbarButton_default, {
@@ -353730,11 +354555,11 @@ function print() { __p += __j.call(arguments, '') }
353730
354555
  "onTextSubmit",
353731
354556
  "onButtonClick"
353732
354557
  ])]),
353733
- 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)]),
354558
+ 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)]),
353734
354559
  _: 2
353735
354560
  }, 1032, ["content-style"])) : exports_vue.createCommentVNode("", true),
353736
354561
  isOverflow(item) && __props.overflowItems.length ? (exports_vue.openBlock(), exports_vue.createBlock(OverflowMenu_default, {
353737
- key: 3,
354562
+ key: 4,
353738
354563
  "toolbar-item": item,
353739
354564
  onButtonClick: ($event) => handleToolbarButtonClick(item),
353740
354565
  "overflow-items": __props.overflowItems,
@@ -353744,11 +354569,11 @@ function print() { __p += __j.call(arguments, '') }
353744
354569
  "onButtonClick",
353745
354570
  "overflow-items"
353746
354571
  ])) : exports_vue.createCommentVNode("", true)
353747
- ], 42, _hoisted_1$5);
353748
- }), 128))], 36);
354572
+ ], 42, _hoisted_2$3);
354573
+ }), 128))], 44, _hoisted_1$5);
353749
354574
  };
353750
354575
  }
353751
- }, [["__scopeId", "data-v-9c3524ec"]]);
354576
+ }, [["__scopeId", "data-v-181bd035"]]);
353752
354577
  Toolbar_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
353753
354578
  __name: "Toolbar",
353754
354579
  emits: [
@@ -353902,7 +354727,7 @@ function print() { __p += __j.call(arguments, '') }
353902
354727
  }, [["__scopeId", "data-v-938eaa1b"]]);
353903
354728
  toolbarTexts = {
353904
354729
  bold: "Bold",
353905
- fontFamily: "Font",
354730
+ fontFamily: "Font family",
353906
354731
  ai: "AI text generation",
353907
354732
  fontSize: "Font size",
353908
354733
  italic: "Italic",
@@ -354511,45 +355336,51 @@ function print() { __p += __j.call(arguments, '') }
354511
355336
  if (shouldRestoreFocus)
354512
355337
  this.#scheduleRestoreEditorFocus();
354513
355338
  }
354514
- onEditorSelectionUpdate() {
355339
+ flushPendingMarkCommands() {
354515
355340
  if (!this.activeEditor)
354516
- return;
354517
- if (this.pendingMarkCommands.length) {
354518
- const pending = this.pendingMarkCommands;
354519
- this.pendingMarkCommands = [];
354520
- pending.forEach(({ command: command$1, argument, item }) => {
354521
- if (!command$1)
354522
- return;
354523
- try {
354524
- if (HEADLESS_EXECUTE_ITEMS.has(item?.name?.value)) {
354525
- if (this.#executeHeadlessCommand(item, argument)) {
354526
- this.#ensureStoredMarksForMarkToggle({
354527
- command: command$1,
354528
- argument
354529
- });
354530
- return;
354531
- }
355341
+ return false;
355342
+ if (!this.pendingMarkCommands.length)
355343
+ return false;
355344
+ const pending = this.pendingMarkCommands;
355345
+ this.pendingMarkCommands = [];
355346
+ pending.forEach(({ command: command$1, argument, item }) => {
355347
+ if (!command$1)
355348
+ return;
355349
+ try {
355350
+ if (HEADLESS_EXECUTE_ITEMS.has(item?.name?.value)) {
355351
+ if (this.#executeHeadlessCommand(item, argument)) {
355352
+ this.#ensureStoredMarksForMarkToggle({
355353
+ command: command$1,
355354
+ argument
355355
+ });
355356
+ return;
354532
355357
  }
354533
- if (this.activeEditor.commands && command$1 in this.activeEditor.commands)
354534
- this.activeEditor.commands[command$1](argument);
354535
- this.#ensureStoredMarksForMarkToggle({
354536
- command: command$1,
354537
- argument
354538
- });
354539
- } catch (error3) {
354540
- const err = /* @__PURE__ */ new Error(`[super-toolbar \uD83C\uDFA8] Failed to execute pending command: ${command$1}`);
354541
- this.emit("exception", {
354542
- error: err,
354543
- editor: this.activeEditor,
354544
- originalError: error3
354545
- });
354546
- console.error(err, error3);
354547
355358
  }
354548
- });
354549
- this.#syncStickyMarksFromState();
354550
- this.updateToolbarState();
355359
+ if (this.activeEditor.commands && command$1 in this.activeEditor.commands)
355360
+ this.activeEditor.commands[command$1](argument);
355361
+ this.#ensureStoredMarksForMarkToggle({
355362
+ command: command$1,
355363
+ argument
355364
+ });
355365
+ } catch (error3) {
355366
+ const err = /* @__PURE__ */ new Error(`[super-toolbar \uD83C\uDFA8] Failed to execute pending command: ${command$1}`);
355367
+ this.emit("exception", {
355368
+ error: err,
355369
+ editor: this.activeEditor,
355370
+ originalError: error3
355371
+ });
355372
+ console.error(err, error3);
355373
+ }
355374
+ });
355375
+ this.#syncStickyMarksFromState();
355376
+ this.updateToolbarState();
355377
+ return true;
355378
+ }
355379
+ onEditorSelectionUpdate() {
355380
+ if (!this.activeEditor)
355381
+ return;
355382
+ if (this.flushPendingMarkCommands())
354551
355383
  return;
354552
- }
354553
355384
  if (this.#restoreStickyMarksIfNeeded())
354554
355385
  this.updateToolbarState();
354555
355386
  }
@@ -366516,161 +367347,166 @@ function print() { __p += __j.call(arguments, '') }
366516
367347
  ]);
366517
367348
  });
366518
367349
 
366519
- // ../../packages/superdoc/dist/chunks/create-super-doc-ui-gS4xi9O7.es.js
366520
- 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;
366521
- var init_create_super_doc_ui_gS4xi9O7_es = __esm(() => {
366522
- init_SuperConverter_DLdwVEPh_es();
366523
- init_create_headless_toolbar_BxKMAAgQ_es();
367350
+ // ../../packages/superdoc/dist/chunks/create-super-doc-ui-DQMMcx6J.es.js
367351
+ 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;
367352
+ var init_create_super_doc_ui_DQMMcx6J_es = __esm(() => {
367353
+ init_SuperConverter_d9QeIy9_es();
367354
+ init_create_headless_toolbar_CJpgldP1_es();
367355
+ DEFAULT_TEXT_ALIGN_OPTIONS = [
367356
+ {
367357
+ label: "Left",
367358
+ value: "left"
367359
+ },
367360
+ {
367361
+ label: "Center",
367362
+ value: "center"
367363
+ },
367364
+ {
367365
+ label: "Right",
367366
+ value: "right"
367367
+ },
367368
+ {
367369
+ label: "Justify",
367370
+ value: "justify"
367371
+ }
367372
+ ];
367373
+ DEFAULT_LINE_HEIGHT_OPTIONS = [
367374
+ {
367375
+ label: "1.00",
367376
+ value: 1
367377
+ },
367378
+ {
367379
+ label: "1.15",
367380
+ value: 1.15
367381
+ },
367382
+ {
367383
+ label: "1.50",
367384
+ value: 1.5
367385
+ },
367386
+ {
367387
+ label: "2.00",
367388
+ value: 2
367389
+ },
367390
+ {
367391
+ label: "2.50",
367392
+ value: 2.5
367393
+ },
367394
+ {
367395
+ label: "3.00",
367396
+ value: 3
367397
+ }
367398
+ ];
367399
+ DEFAULT_ZOOM_OPTIONS = [
367400
+ {
367401
+ label: "50%",
367402
+ value: 50
367403
+ },
367404
+ {
367405
+ label: "75%",
367406
+ value: 75
367407
+ },
367408
+ {
367409
+ label: "90%",
367410
+ value: 90
367411
+ },
367412
+ {
367413
+ label: "100%",
367414
+ value: 100
367415
+ },
367416
+ {
367417
+ label: "125%",
367418
+ value: 125
367419
+ },
367420
+ {
367421
+ label: "150%",
367422
+ value: 150
367423
+ },
367424
+ {
367425
+ label: "200%",
367426
+ value: 200
367427
+ }
367428
+ ];
367429
+ DEFAULT_DOCUMENT_MODE_OPTIONS = [
367430
+ {
367431
+ label: "Editing",
367432
+ value: "editing",
367433
+ description: "Edit document directly"
367434
+ },
367435
+ {
367436
+ label: "Suggesting",
367437
+ value: "suggesting",
367438
+ description: "Edits become suggestions"
367439
+ },
367440
+ {
367441
+ label: "Viewing",
367442
+ value: "viewing",
367443
+ description: "View clean version of document only"
367444
+ }
367445
+ ];
367446
+ DEFAULT_FONT_SIZE_OPTIONS = [
367447
+ {
367448
+ label: "8",
367449
+ value: "8pt"
367450
+ },
367451
+ {
367452
+ label: "9",
367453
+ value: "9pt"
367454
+ },
367455
+ {
367456
+ label: "10",
367457
+ value: "10pt"
367458
+ },
367459
+ {
367460
+ label: "11",
367461
+ value: "11pt"
367462
+ },
367463
+ {
367464
+ label: "12",
367465
+ value: "12pt"
367466
+ },
367467
+ {
367468
+ label: "14",
367469
+ value: "14pt"
367470
+ },
367471
+ {
367472
+ label: "18",
367473
+ value: "18pt"
367474
+ },
367475
+ {
367476
+ label: "24",
367477
+ value: "24pt"
367478
+ },
367479
+ {
367480
+ label: "30",
367481
+ value: "30pt"
367482
+ },
367483
+ {
367484
+ label: "36",
367485
+ value: "36pt"
367486
+ },
367487
+ {
367488
+ label: "48",
367489
+ value: "48pt"
367490
+ },
367491
+ {
367492
+ label: "60",
367493
+ value: "60pt"
367494
+ },
367495
+ {
367496
+ label: "72",
367497
+ value: "72pt"
367498
+ },
367499
+ {
367500
+ label: "96",
367501
+ value: "96pt"
367502
+ }
367503
+ ];
366524
367504
  headlessToolbarConstants = {
366525
- DEFAULT_TEXT_ALIGN_OPTIONS: [
366526
- {
366527
- label: "Left",
366528
- value: "left"
366529
- },
366530
- {
366531
- label: "Center",
366532
- value: "center"
366533
- },
366534
- {
366535
- label: "Right",
366536
- value: "right"
366537
- },
366538
- {
366539
- label: "Justify",
366540
- value: "justify"
366541
- }
366542
- ],
366543
- DEFAULT_LINE_HEIGHT_OPTIONS: [
366544
- {
366545
- label: "1.00",
366546
- value: 1
366547
- },
366548
- {
366549
- label: "1.15",
366550
- value: 1.15
366551
- },
366552
- {
366553
- label: "1.50",
366554
- value: 1.5
366555
- },
366556
- {
366557
- label: "2.00",
366558
- value: 2
366559
- },
366560
- {
366561
- label: "2.50",
366562
- value: 2.5
366563
- },
366564
- {
366565
- label: "3.00",
366566
- value: 3
366567
- }
366568
- ],
366569
- DEFAULT_ZOOM_OPTIONS: [
366570
- {
366571
- label: "50%",
366572
- value: 50
366573
- },
366574
- {
366575
- label: "75%",
366576
- value: 75
366577
- },
366578
- {
366579
- label: "90%",
366580
- value: 90
366581
- },
366582
- {
366583
- label: "100%",
366584
- value: 100
366585
- },
366586
- {
366587
- label: "125%",
366588
- value: 125
366589
- },
366590
- {
366591
- label: "150%",
366592
- value: 150
366593
- },
366594
- {
366595
- label: "200%",
366596
- value: 200
366597
- }
366598
- ],
366599
- DEFAULT_DOCUMENT_MODE_OPTIONS: [
366600
- {
366601
- label: "Editing",
366602
- value: "editing",
366603
- description: "Edit document directly"
366604
- },
366605
- {
366606
- label: "Suggesting",
366607
- value: "suggesting",
366608
- description: "Edits become suggestions"
366609
- },
366610
- {
366611
- label: "Viewing",
366612
- value: "viewing",
366613
- description: "View clean version of document only"
366614
- }
366615
- ],
366616
- DEFAULT_FONT_SIZE_OPTIONS: [
366617
- {
366618
- label: "8",
366619
- value: "8pt"
366620
- },
366621
- {
366622
- label: "9",
366623
- value: "9pt"
366624
- },
366625
- {
366626
- label: "10",
366627
- value: "10pt"
366628
- },
366629
- {
366630
- label: "11",
366631
- value: "11pt"
366632
- },
366633
- {
366634
- label: "12",
366635
- value: "12pt"
366636
- },
366637
- {
366638
- label: "14",
366639
- value: "14pt"
366640
- },
366641
- {
366642
- label: "18",
366643
- value: "18pt"
366644
- },
366645
- {
366646
- label: "24",
366647
- value: "24pt"
366648
- },
366649
- {
366650
- label: "30",
366651
- value: "30pt"
366652
- },
366653
- {
366654
- label: "36",
366655
- value: "36pt"
366656
- },
366657
- {
366658
- label: "48",
366659
- value: "48pt"
366660
- },
366661
- {
366662
- label: "60",
366663
- value: "60pt"
366664
- },
366665
- {
366666
- label: "72",
366667
- value: "72pt"
366668
- },
366669
- {
366670
- label: "96",
366671
- value: "96pt"
366672
- }
366673
- ],
367505
+ DEFAULT_TEXT_ALIGN_OPTIONS,
367506
+ DEFAULT_LINE_HEIGHT_OPTIONS,
367507
+ DEFAULT_ZOOM_OPTIONS,
367508
+ DEFAULT_DOCUMENT_MODE_OPTIONS,
367509
+ DEFAULT_FONT_SIZE_OPTIONS,
366674
367510
  DEFAULT_FONT_FAMILY_OPTIONS: getDefaultFontFamilyOptions(),
366675
367511
  DEFAULT_TEXT_COLOR_OPTIONS: [
366676
367512
  {
@@ -366787,6 +367623,10 @@ var init_create_super_doc_ui_gS4xi9O7_es = __esm(() => {
366787
367623
  ]);
366788
367624
  ALL_TOOLBAR_COMMAND_IDS = Object.keys(createToolbarRegistry());
366789
367625
  EMPTY_ACTIVE_IDS = Object.freeze([]);
367626
+ FONT_SIZE_OPTIONS = DEFAULT_FONT_SIZE_OPTIONS.map(({ label, value }) => ({
367627
+ label,
367628
+ value
367629
+ }));
366790
367630
  });
366791
367631
 
366792
367632
  // ../../packages/superdoc/dist/chunks/ui-C5PAS9hY.es.js
@@ -366802,16 +367642,16 @@ var init_zipper_yaJVJ4z9_es = __esm(() => {
366802
367642
 
366803
367643
  // ../../packages/superdoc/dist/super-editor.es.js
366804
367644
  var init_super_editor_es = __esm(() => {
366805
- init_src_Bq_Yxqun_es();
366806
- init_SuperConverter_DLdwVEPh_es();
367645
+ init_src_BVjcuFXj_es();
367646
+ init_SuperConverter_d9QeIy9_es();
366807
367647
  init_jszip_C49i9kUs_es();
366808
367648
  init_xml_js_CqGKpaft_es();
366809
- init_create_headless_toolbar_BxKMAAgQ_es();
367649
+ init_create_headless_toolbar_CJpgldP1_es();
366810
367650
  init_constants_D9qj59G2_es();
366811
367651
  init_dist_B8HfvhaK_es();
366812
367652
  init_unified_Dsuw2be5_es();
366813
367653
  init_DocxZipper_FUsfThjV_es();
366814
- init_create_super_doc_ui_gS4xi9O7_es();
367654
+ init_create_super_doc_ui_DQMMcx6J_es();
366815
367655
  init_ui_C5PAS9hY_es();
366816
367656
  init_eventemitter3_BnGqBE_Q_es();
366817
367657
  init_errors_CNaD6vcg_es();