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

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 +1292 -378
  2. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -52172,7 +52172,7 @@ var init_remark_gfm_BhnWr3yf_es = __esm(() => {
52172
52172
  emptyOptions2 = {};
52173
52173
  });
52174
52174
 
52175
- // ../../packages/superdoc/dist/chunks/SuperConverter-d9QeIy9-.es.js
52175
+ // ../../packages/superdoc/dist/chunks/SuperConverter-BTGVElJO.es.js
52176
52176
  function getExtensionConfigField(extension$1, field, context = { name: "" }) {
52177
52177
  const fieldValue = extension$1.config[field];
52178
52178
  if (typeof fieldValue === "function")
@@ -118172,7 +118172,7 @@ var isRegExp = (value) => {
118172
118172
  state.kern = kernNode.attributes["w:val"];
118173
118173
  }
118174
118174
  }, SuperConverter;
118175
- var init_SuperConverter_d9QeIy9_es = __esm(() => {
118175
+ var init_SuperConverter_BTGVElJO_es = __esm(() => {
118176
118176
  init_rolldown_runtime_Bg48TavK_es();
118177
118177
  init_jszip_C49i9kUs_es();
118178
118178
  init_xml_js_CqGKpaft_es();
@@ -155732,7 +155732,7 @@ var init_SuperConverter_d9QeIy9_es = __esm(() => {
155732
155732
  meanDelta: 0,
155733
155733
  maxDelta: 0.5
155734
155734
  },
155735
- candidateLicense: "GPLv2-with-font-exception",
155735
+ candidateLicense: "GPL-2.0-only WITH Font-exception-2.0",
155736
155736
  faceVerdicts: {
155737
155737
  regular: "metric_safe",
155738
155738
  bold: "visual_only",
@@ -155841,7 +155841,7 @@ var init_SuperConverter_d9QeIy9_es = __esm(() => {
155841
155841
  policyAction: "substitute",
155842
155842
  measurementRefs: ["bookman-old-style__tex-gyre-bonum#visual_review#2026-06-09"],
155843
155843
  exportRule: "preserve_original_name",
155844
- candidateLicense: "GUST-Font-License-1.0"
155844
+ candidateLicense: "LicenseRef-GUST-Font-License-1.0"
155845
155845
  },
155846
155846
  {
155847
155847
  evidenceId: "century",
@@ -155866,6 +155866,29 @@ var init_SuperConverter_d9QeIy9_es = __esm(() => {
155866
155866
  exportRule: "preserve_original_name",
155867
155867
  candidateLicense: "AGPL-3.0-only WITH PS-or-PDF-font-exception-20170817"
155868
155868
  },
155869
+ {
155870
+ evidenceId: "century-schoolbook",
155871
+ generic: "serif",
155872
+ logicalFamily: "Century Schoolbook",
155873
+ physicalFamily: "C059",
155874
+ verdict: "visual_only",
155875
+ faces: {
155876
+ regular: true,
155877
+ bold: true,
155878
+ italic: true,
155879
+ boldItalic: true
155880
+ },
155881
+ gates: {
155882
+ static: "pass",
155883
+ metric: "fail",
155884
+ layout: "not_run",
155885
+ ship: "fail"
155886
+ },
155887
+ policyAction: "substitute",
155888
+ measurementRefs: ["century-schoolbook__c059#visual_review#2026-06-09"],
155889
+ exportRule: "preserve_original_name",
155890
+ candidateLicense: "AGPL-3.0-only WITH PS-or-PDF-font-exception-20170817"
155891
+ },
155869
155892
  {
155870
155893
  evidenceId: "garamond",
155871
155894
  generic: "serif",
@@ -156424,6 +156447,7 @@ var init_SuperConverter_d9QeIy9_es = __esm(() => {
156424
156447
  family("Carlito", "Carlito", "OFL-1.1"),
156425
156448
  family("Caladea", "Caladea", "Apache-2.0"),
156426
156449
  family("Liberation Sans", "LiberationSans", "OFL-1.1"),
156450
+ family("Liberation Sans Narrow", "LiberationSansNarrow", "GPL-2.0-only WITH Font-exception-2.0"),
156427
156451
  family("Liberation Serif", "LiberationSerif", "OFL-1.1"),
156428
156452
  family("Liberation Mono", "LiberationMono", "OFL-1.1"),
156429
156453
  familyWithFaces("Caprasimo", "OFL-1.1", [{
@@ -156431,6 +156455,28 @@ var init_SuperConverter_d9QeIy9_es = __esm(() => {
156431
156455
  style: "normal",
156432
156456
  file: "Caprasimo-Regular.woff2"
156433
156457
  }]),
156458
+ familyWithFaces("C059", "AGPL-3.0-only WITH PS-or-PDF-font-exception-20170817", [
156459
+ {
156460
+ weight: "normal",
156461
+ style: "normal",
156462
+ file: "C059-Roman.woff2"
156463
+ },
156464
+ {
156465
+ weight: "bold",
156466
+ style: "normal",
156467
+ file: "C059-Bold.woff2"
156468
+ },
156469
+ {
156470
+ weight: "normal",
156471
+ style: "italic",
156472
+ file: "C059-Italic.woff2"
156473
+ },
156474
+ {
156475
+ weight: "bold",
156476
+ style: "italic",
156477
+ file: "C059-BdIta.woff2"
156478
+ }
156479
+ ]),
156434
156480
  familyWithFaces("Bacasime Antique", "OFL-1.1", [{
156435
156481
  weight: "normal",
156436
156482
  style: "normal",
@@ -156495,8 +156541,10 @@ var init_SuperConverter_d9QeIy9_es = __esm(() => {
156495
156541
  registriesByFontSet = /* @__PURE__ */ new WeakMap;
156496
156542
  BUNDLED_FAMILIES = new Set(BUNDLED_MANIFEST.map((f2) => f2.family));
156497
156543
  ADVERTISED_BUILT_IN_TOOLBAR_FAMILIES = new Set([
156544
+ "Arial Narrow",
156498
156545
  "Baskerville Old Face",
156499
156546
  "Brush Script MT",
156547
+ "Century",
156500
156548
  "Cooper Black",
156501
156549
  "Comic Sans MS",
156502
156550
  "Garamond",
@@ -158292,7 +158340,7 @@ var init_SuperConverter_d9QeIy9_es = __esm(() => {
158292
158340
  };
158293
158341
  });
158294
158342
 
158295
- // ../../packages/superdoc/dist/chunks/create-headless-toolbar-l5QB6sQY.es.js
158343
+ // ../../packages/superdoc/dist/chunks/create-headless-toolbar-DYbkX05s.es.js
158296
158344
  function parseSizeUnit(val = "0") {
158297
158345
  const length = val.toString() || "0";
158298
158346
  const value = Number.parseFloat(length);
@@ -158302,6 +158350,43 @@ function parseSizeUnit(val = "0") {
158302
158350
  function getPreservedSelection(state) {
158303
158351
  return CustomSelectionPluginKey.getState(state)?.preservedSelection ?? null;
158304
158352
  }
158353
+ function getSelectedTextRange(state) {
158354
+ const { selection } = state;
158355
+ let from2 = null;
158356
+ let to = null;
158357
+ state.doc.nodesBetween(selection.from, selection.to, (node2, pos) => {
158358
+ if (!node2.isText || !node2.text)
158359
+ return;
158360
+ const start = pos;
158361
+ const end = pos + node2.nodeSize;
158362
+ from2 = from2 == null ? start : Math.min(from2, start);
158363
+ to = to == null ? end : Math.max(to, end);
158364
+ });
158365
+ return from2 == null || to == null ? null : {
158366
+ from: from2,
158367
+ to
158368
+ };
158369
+ }
158370
+ function prepareSelectionForTextInputHandoff(editor) {
158371
+ const state = editor?.view?.state ?? editor?.state;
158372
+ const dispatch = typeof editor?.view?.dispatch === "function" ? editor.view.dispatch.bind(editor.view) : typeof editor?.dispatch === "function" ? editor.dispatch.bind(editor) : null;
158373
+ if (!state || !dispatch)
158374
+ return false;
158375
+ let tr = state.tr.setMeta(CustomSelectionPluginKey, DEFAULT_CUSTOM_SELECTION_STATE);
158376
+ if (state.selection instanceof AllSelection) {
158377
+ const range = getSelectedTextRange(state);
158378
+ if (range)
158379
+ try {
158380
+ tr = tr.setSelection(TextSelection.create(tr.doc, range.from, range.to));
158381
+ } catch {}
158382
+ }
158383
+ dispatch(tr);
158384
+ editor?.setOptions?.({
158385
+ preservedSelection: null,
158386
+ lastSelection: null
158387
+ });
158388
+ return true;
158389
+ }
158305
158390
  function createSelectionTrackingBookmark(selection) {
158306
158391
  if (selection instanceof TextSelection && !selection.empty)
158307
158392
  return new InclusiveTextSelectionBookmark(selection.anchor, selection.head);
@@ -165895,7 +165980,7 @@ var CSS_DIMENSION_REGEX, DOM_SIZE_UNITS, normalizeActorId = (value) => {
165895
165980
  static create(config3) {
165896
165981
  return new Extension2(config3);
165897
165982
  }
165898
- }, CustomSelectionPluginKey, InclusiveTextSelectionBookmark = class InclusiveTextSelectionBookmark2 {
165983
+ }, CustomSelectionPluginKey, DEFAULT_CUSTOM_SELECTION_STATE, InclusiveTextSelectionBookmark = class InclusiveTextSelectionBookmark2 {
165899
165984
  constructor(anchor, head) {
165900
165985
  this.anchor = anchor;
165901
165986
  this.head = head;
@@ -168650,8 +168735,8 @@ var CSS_DIMENSION_REGEX, DOM_SIZE_UNITS, normalizeActorId = (value) => {
168650
168735
  }
168651
168736
  };
168652
168737
  };
168653
- var init_create_headless_toolbar_l5QB6sQY_es = __esm(() => {
168654
- init_SuperConverter_d9QeIy9_es();
168738
+ var init_create_headless_toolbar_DYbkX05s_es = __esm(() => {
168739
+ init_SuperConverter_BTGVElJO_es();
168655
168740
  init_uuid_B2wVPhPi_es();
168656
168741
  init_constants_D9qj59G2_es();
168657
168742
  init_dist_B8HfvhaK_es();
@@ -168672,6 +168757,12 @@ var init_create_headless_toolbar_l5QB6sQY_es = __esm(() => {
168672
168757
  "vmax"
168673
168758
  ];
168674
168759
  CustomSelectionPluginKey = new PluginKey("CustomSelection");
168760
+ DEFAULT_CUSTOM_SELECTION_STATE = Object.freeze({
168761
+ focused: false,
168762
+ preservedSelection: null,
168763
+ showVisualSelection: false,
168764
+ skipFocusReset: false
168765
+ });
168675
168766
  SelectionHandlePluginKey = new PluginKey("selectionHandle");
168676
168767
  MIME_TYPE_TO_EXTENSION2 = {
168677
168768
  "image/svg+xml": "svg",
@@ -223335,7 +223426,7 @@ var init_remark_gfm_eZN6yzWQ_es = __esm(() => {
223335
223426
  init_remark_gfm_BhnWr3yf_es();
223336
223427
  });
223337
223428
 
223338
- // ../../packages/superdoc/dist/chunks/src-LeQVnrcZ.es.js
223429
+ // ../../packages/superdoc/dist/chunks/src-CRJcfbIa.es.js
223339
223430
  function deleteProps(obj, propOrProps) {
223340
223431
  const props = typeof propOrProps === "string" ? [propOrProps] : propOrProps;
223341
223432
  const removeNested = (target, pathParts, index2 = 0) => {
@@ -223437,6 +223528,15 @@ function mapPreservedSelection(selection, tr) {
223437
223528
  return null;
223438
223529
  }
223439
223530
  }
223531
+ function shouldClearPreservedSelectionOnSelectionMove(tr, nextState) {
223532
+ if (!nextState?.preservedSelection)
223533
+ return false;
223534
+ if (tr.docChanged || !tr.selectionSet)
223535
+ return false;
223536
+ if (getFocusMeta(tr) !== undefined)
223537
+ return false;
223538
+ return true;
223539
+ }
223440
223540
  function applySelectionCleanup(editor, tr) {
223441
223541
  let cleaned = tr.setMeta(CustomSelectionPluginKey, DEFAULT_SELECTION_STATE);
223442
223542
  const sel = cleaned.selection;
@@ -224517,13 +224617,13 @@ function normalizeYjsFragmentForSchema(fragment) {
224517
224617
  if (!isTraversableYjsXml(fragment))
224518
224618
  return false;
224519
224619
  let changed = false;
224520
- const normalize4 = () => {
224620
+ const normalize$1 = () => {
224521
224621
  changed = stripSchemaAtomChildren(fragment) || changed;
224522
224622
  };
224523
224623
  if (fragment.doc)
224524
- fragment.doc.transact(normalize4, NORMALIZE_YJS_FRAGMENT_ORIGIN);
224624
+ fragment.doc.transact(normalize$1, NORMALIZE_YJS_FRAGMENT_ORIGIN);
224525
224625
  else
224526
- normalize4();
224626
+ normalize$1();
224527
224627
  return changed;
224528
224628
  }
224529
224629
  function normalizeYjsFragmentEventsForSchema(events, fallbackFragment) {
@@ -224532,7 +224632,7 @@ function normalizeYjsFragmentEventsForSchema(events, fallbackFragment) {
224532
224632
  if (events.some((event) => event?.transaction?.origin === NORMALIZE_YJS_FRAGMENT_ORIGIN))
224533
224633
  return false;
224534
224634
  let changed = false;
224535
- const normalize4 = () => {
224635
+ const normalize$1 = () => {
224536
224636
  const visited = /* @__PURE__ */ new Set;
224537
224637
  for (const event of events) {
224538
224638
  const target = findNormalizableEventTarget(event?.target);
@@ -224544,9 +224644,9 @@ function normalizeYjsFragmentEventsForSchema(events, fallbackFragment) {
224544
224644
  };
224545
224645
  const doc$12 = fallbackFragment?.doc || findEventDoc(events);
224546
224646
  if (doc$12)
224547
- doc$12.transact(normalize4, NORMALIZE_YJS_FRAGMENT_ORIGIN);
224647
+ doc$12.transact(normalize$1, NORMALIZE_YJS_FRAGMENT_ORIGIN);
224548
224648
  else
224549
- normalize4();
224649
+ normalize$1();
224550
224650
  return changed;
224551
224651
  }
224552
224652
  function stripSchemaAtomChildren(parent) {
@@ -228673,11 +228773,7 @@ function parseCellVerticalAlignFromStyle(element3) {
228673
228773
  }
228674
228774
  function findRemovedFieldAnnotations(tr) {
228675
228775
  let removedNodes = [];
228676
- if (!tr.steps.length || tr.meta && !Object.keys(tr.meta).every((meta4) => [
228677
- "inputType",
228678
- "uiEvent",
228679
- "paste"
228680
- ].includes(meta4)) || ["historyUndo", "historyRedo"].includes(tr.getMeta("inputType")) || ["drop"].includes(tr.getMeta("uiEvent")) || tr.getMeta("fieldAnnotationUpdate") === true || tr.getMeta("tableGeneration") === true)
228776
+ if (!tr.steps.length || tr.meta && !Object.keys(tr.meta).every((meta4) => ALLOWED_META_KEYS$1.includes(meta4)) || ["historyUndo", "historyRedo"].includes(tr.getMeta("inputType")) || ["drop"].includes(tr.getMeta("uiEvent")) || tr.getMeta("fieldAnnotationUpdate") === true || tr.getMeta("tableGeneration") === true)
228681
228777
  return removedNodes;
228682
228778
  if (!transactionDeletedAnything(tr))
228683
228779
  return removedNodes;
@@ -285026,12 +285122,12 @@ var Node$13 = class Node$14 {
285026
285122
  }, registerYjsFragmentNormalizer = (fragment) => {
285027
285123
  if (!fragment || typeof fragment.observeDeep !== "function" || typeof fragment.unobserveDeep !== "function")
285028
285124
  return () => {};
285029
- const normalize4 = (events) => {
285125
+ const normalize$1 = (events) => {
285030
285126
  normalizeYjsFragmentEventsForSchema(events, fragment);
285031
285127
  };
285032
- fragment.observeDeep(normalize4);
285128
+ fragment.observeDeep(normalize$1);
285033
285129
  return () => {
285034
- fragment.unobserveDeep(normalize4);
285130
+ fragment.unobserveDeep(normalize$1);
285035
285131
  };
285036
285132
  }, initializeMetaMap = (ydoc, editor) => {
285037
285133
  seedPartsFromEditor(editor, ydoc);
@@ -290091,7 +290187,7 @@ var Node$13 = class Node$14 {
290091
290187
  return true;
290092
290188
  });
290093
290189
  }
290094
- }, FieldAnnotationPlugin = (options = {}) => {
290190
+ }, ALLOWED_META_KEYS$1, FieldAnnotationPlugin = (options = {}) => {
290095
290191
  let { editor, annotationClass: annotationClass$1 } = options;
290096
290192
  return new Plugin({
290097
290193
  key: new PluginKey("fieldAnnotation"),
@@ -292630,7 +292726,7 @@ var Node$13 = class Node$14 {
292630
292726
  }, getTypeName = (markLike) => {
292631
292727
  return markLike?.type?.name ?? markLike?.type;
292632
292728
  }, isTrackFormatNoOp = (before, after) => {
292633
- const normalize4 = (entries) => entries.map((s2) => ({
292729
+ const normalize$1 = (entries) => entries.map((s2) => ({
292634
292730
  type: getTypeName(s2),
292635
292731
  attrs: normalizeSnapshotAttrs(s2.attrs || {})
292636
292732
  })).filter((s2) => {
@@ -292638,8 +292734,8 @@ var Node$13 = class Node$14 {
292638
292734
  return false;
292639
292735
  return true;
292640
292736
  });
292641
- const normBefore = normalize4(before);
292642
- const normAfter = normalize4(after);
292737
+ const normBefore = normalize$1(before);
292738
+ const normAfter = normalize$1(after);
292643
292739
  if (normBefore.length === 0 && normAfter.length === 0)
292644
292740
  return true;
292645
292741
  if (normBefore.length !== normAfter.length)
@@ -296565,7 +296661,7 @@ var Node$13 = class Node$14 {
296565
296661
  if (!target || !target.classList)
296566
296662
  return;
296567
296663
  target.classList.add(STYLE_ISOLATION_CLASS);
296568
- }, _hoisted_1$22, _hoisted_2$17, _hoisted_3$13, _hoisted_4$9, _hoisted_5$7, Mentions_default, popoverPluginKey, PopoverPlugin, Popover = class {
296664
+ }, _hoisted_1$23, _hoisted_2$18, _hoisted_3$14, _hoisted_4$10, _hoisted_5$9, Mentions_default, popoverPluginKey, PopoverPlugin, Popover = class {
296569
296665
  constructor(view, editor) {
296570
296666
  this.editor = editor;
296571
296667
  this.view = view;
@@ -298306,7 +298402,7 @@ var Node$13 = class Node$14 {
298306
298402
  </linearGradient>
298307
298403
  </defs>
298308
298404
  <path fill="url(#gradient)" d="M440 6.5L24 246.4c-34.4 19.9-31.1 70.8 5.7 85.9L144 379.6V464c0 46.4 59.2 65.5 86.6 28.6l43.8-59.1 111.9 46.2c5.9 2.4 12.1 3.6 18.3 3.6 8.2 0 16.3-2.1 23.6-6.2 12.8-7.2 21.6-20 23.9-34.5l59.4-387.2c6.1-40.1-36.9-68.8-71.5-48.9zM192 464v-64.6l36.6 15.1L192 464zm212.6-28.7l-153.8-63.5L391 169.5c10.7-15.5-9.5-33.5-23.7-21.2L155.8 332.6 48 288 464 48l-59.4 387.3z"/>
298309
- </svg>`, _hoisted_1$21, _hoisted_2$16, _hoisted_3$12, _hoisted_4$8, _hoisted_5$6, AIWriter_default, isHighContrastMode, bold_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M0 64C0 46.3 14.3 32 32 32l48 0 16 0 128 0c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128L96 480l-16 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-160L48 96 32 96C14.3 96 0 81.7 0 64zM224 224c35.3 0 64-28.7 64-64s-28.7-64-64-64L112 96l0 128 112 0zM112 288l0 128 144 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-32 0-112 0z"/></svg>', italic_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M128 64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-58.7 0L160 416l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l58.7 0L224 96l-64 0c-17.7 0-32-14.3-32-32z"/></svg>', underline_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M16 64c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 128c0 53 43 96 96 96s96-43 96-96l0-128-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 128c0 88.4-71.6 160-160 160s-160-71.6-160-160L64 96 48 96C30.3 96 16 81.7 16 64zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32z"/></svg>', list_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M40 48C26.7 48 16 58.7 16 72l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24L40 48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM16 232l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0z"/></svg>', list_circle_solid_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc. (bullet shapes modified)--><path fill-rule="evenodd" d="M192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM64 48 A48 48 0 1 0 64 144 A48 48 0 1 0 64 48 Z M64 68 A28 28 0 1 1 64 124 A28 28 0 1 1 64 68 Z M64 208 A48 48 0 1 0 64 304 A48 48 0 1 0 64 208 Z M64 228 A28 28 0 1 1 64 284 A28 28 0 1 1 64 228 Z M64 368 A48 48 0 1 0 64 464 A48 48 0 1 0 64 368 Z M64 388 A28 28 0 1 1 64 444 A28 28 0 1 1 64 388 Z"/></svg>
298405
+ </svg>`, _hoisted_1$22, _hoisted_2$17, _hoisted_3$13, _hoisted_4$9, _hoisted_5$8, AIWriter_default, isHighContrastMode, bold_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M0 64C0 46.3 14.3 32 32 32l48 0 16 0 128 0c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128L96 480l-16 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-160L48 96 32 96C14.3 96 0 81.7 0 64zM224 224c35.3 0 64-28.7 64-64s-28.7-64-64-64L112 96l0 128 112 0zM112 288l0 128 144 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-32 0-112 0z"/></svg>', italic_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M128 64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-58.7 0L160 416l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l58.7 0L224 96l-64 0c-17.7 0-32-14.3-32-32z"/></svg>', underline_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M16 64c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 128c0 53 43 96 96 96s96-43 96-96l0-128-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 128c0 88.4-71.6 160-160 160s-160-71.6-160-160L64 96 48 96C30.3 96 16 81.7 16 64zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32z"/></svg>', list_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M40 48C26.7 48 16 58.7 16 72l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24L40 48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM16 232l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0z"/></svg>', list_circle_solid_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc. (bullet shapes modified)--><path fill-rule="evenodd" d="M192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM64 48 A48 48 0 1 0 64 144 A48 48 0 1 0 64 48 Z M64 68 A28 28 0 1 1 64 124 A28 28 0 1 1 64 68 Z M64 208 A48 48 0 1 0 64 304 A48 48 0 1 0 64 208 Z M64 228 A28 28 0 1 1 64 284 A28 28 0 1 1 64 228 Z M64 368 A48 48 0 1 0 64 464 A48 48 0 1 0 64 368 Z M64 388 A28 28 0 1 1 64 444 A28 28 0 1 1 64 388 Z"/></svg>
298310
298406
  `, list_square_solid_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc. (bullet shapes modified)--><path d="M192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM16 48 L112 48 L112 144 L16 144 Z M16 208 L112 208 L112 304 L16 304 Z M16 368 L112 368 L112 464 L16 464 Z"/></svg>
298311
298407
  `, list_ol_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M24 56c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24l0 120 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-96-8 0C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432l33.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-88 0c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"/></svg>', list_decimal_solid_default = `<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
298312
298408
  <g clip-path="url(#clip0_0_1)">
@@ -298373,8 +298469,8 @@ var Node$13 = class Node$14 {
298373
298469
  `, image_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM323.8 202.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6L170.7 297c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6l96 0 32 0 208 0c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7l-120-176zM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"/></svg>', link_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"/></svg>', align_left_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M288 64c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32L32 352c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z"/></svg>', align_center_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M352 64c0-17.7-14.3-32-32-32L128 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32zm96 128c0-17.7-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 448c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32zM352 320c0-17.7-14.3-32-32-32l-192 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32z"/></svg>', align_right_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M448 64c0 17.7-14.3 32-32 32L192 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z"/></svg>', align_justify_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M448 64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32zm0 256c0-17.7-14.3-32-32-32L32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 192c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32zM448 448c0-17.7-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32z"/></svg>', indent_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M0 64C0 46.3 14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32zM127.8 268.6L25.8 347.9C15.3 356.1 0 348.6 0 335.3L0 176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z"/></svg>', outdent_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M0 64C0 46.3 14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32zM.2 268.6c-8.2-6.4-8.2-18.9 0-25.3l101.9-79.3c10.5-8.2 25.8-.7 25.8 12.6l0 158.6c0 13.3-15.3 20.8-25.8 12.6L.2 268.6z"/></svg>', paint_roller_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M0 64C0 28.7 28.7 0 64 0L352 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64L64 192c-35.3 0-64-28.7-64-64L0 64zM160 352c0-17.7 14.3-32 32-32l0-16c0-44.2 35.8-80 80-80l144 0c17.7 0 32-14.3 32-32l0-32 0-90.5c37.3 13.2 64 48.7 64 90.5l0 32c0 53-43 96-96 96l-144 0c-8.8 0-16 7.2-16 16l0 16c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-128z"/></svg>', text_slash_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L355.7 253.5 400.2 96 503 96 497 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l11-44.1C577.6 61.3 554.7 32 523.5 32L376.1 32l-.3 0L204.5 32c-22 0-41.2 15-46.6 36.4l-6.3 25.2L38.8 5.1zm168 131.7c.1-.3 .2-.7 .3-1L217 96l116.7 0L301.3 210.8l-94.5-74.1zM243.3 416L192 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-42.2 0 17.6-62.1L272.9 311 243.3 416z"/></svg>', rotate_left_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M48.5 224L40 224c-13.3 0-24-10.7-24-24L16 72c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2L98.6 96.6c87.6-86.5 228.7-86.2 315.8 1c87.5 87.5 87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3c-62.2-62.2-162.7-62.5-225.3-1L185 183c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8L48.5 224z"/></svg>', rotate_right_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M463.5 224l8.5 0c13.3 0 24-10.7 24-24l0-128c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8l119.5 0z"/></svg>', calendar_check_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zM329 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-95 95-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L329 305z"/></svg>', calendar_xmark_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zM305 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47z"/></svg>', list_check_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M152.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 113C-2.3 103.6-2.3 88.4 7 79s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM224 96c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zM160 416c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32zM48 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"/></svg>', user_edit_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l293.1 0c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7l40.3-40.3c-32.1-31-75.7-50.1-123.9-50.1l-91.4 0zm435.5-68.3c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM375.9 417c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L576.1 358.7l-71-71L375.9 417z"/></svg>', eye_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z"/></svg>', file_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 288c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128z"/></svg>', font_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M254 52.8C249.3 40.3 237.3 32 224 32s-25.3 8.3-30 20.8L57.8 416 32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-1.8 0 18-48 159.6 0 18 48-1.8 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-25.8 0L254 52.8zM279.8 304l-111.6 0L224 155.1 279.8 304z"/></svg>', file_half_dashed_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M64 0C28.7 0 0 28.7 0 64L0 320l384 0 0-160-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM0 416l64 0 0-64L0 352l0 64zm288 32l-80 0 0 64 80 0 0-64zm-112 0l-80 0 0 64 80 0 0-64zM64 448L0 448c0 35.3 28.7 64 64 64l0-64zm256 0l0 64c35.3 0 64-28.7 64-64l-64 0zm64-32l0-64-64 0 0 64 64 0z"/></svg>', comment_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M512 240c0 114.9-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6C73.6 471.1 44.7 480 16 480c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.3-.3c.3-.3 .7-.7 1.3-1.4c1.1-1.2 2.8-3.1 4.9-5.7c4.1-5 9.6-12.4 15.2-21.6c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208z"/></svg>', circle_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512z"/></svg>', check_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"/></svg>', xmark_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z"/></svg>', up_right_from_square_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M352 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9L370.7 96 201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 141.3l41.4 41.4c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-128c0-17.7-14.3-32-32-32L352 0zM80 32C35.8 32 0 67.8 0 112L0 432c0 44.2 35.8 80 80 80l320 0c44.2 0 80-35.8 80-80l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16l0-320c0-8.8 7.2-16 16-16l112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32z"/></svg>', ellipsis_vertical_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M64 360a56 56 0 1 0 0 112 56 56 0 1 0 0-112zm0-160a56 56 0 1 0 0 112 56 56 0 1 0 0-112zM120 96A56 56 0 1 0 8 96a56 56 0 1 0 112 0z"/></svg>', caret_up_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M182.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l256 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z"/></svg>', caret_down_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"/></svg>', ruler_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M177.9 494.1c-18.7 18.7-49.1 18.7-67.9 0L17.9 401.9c-18.7-18.7-18.7-49.1 0-67.9l50.7-50.7 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 50.7-50.7c18.7-18.7 49.1-18.7 67.9 0l92.1 92.1c18.7 18.7 18.7 49.1 0 67.9L177.9 494.1z"/></svg>', paintbrush_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M339.3 367.1c27.3-3.9 51.9-19.4 67.2-42.9L568.2 74.1c12.6-19.5 9.4-45.3-7.6-61.2S517.7-4.4 499.1 9.6L262.4 187.2c-24 18-38.2 46.1-38.4 76.1L339.3 367.1zm-19.6 25.4l-116-104.4C143.9 290.3 96 339.6 96 400c0 3.9 .2 7.8 .6 11.6C98.4 429.1 86.4 448 68.8 448L64 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0c61.9 0 112-50.1 112-112c0-2.5-.1-5-.2-7.5z"/></svg>', highlighter_icon_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M315 315l158.4-215L444.1 70.6 229 229 315 315zm-187 5s0 0 0 0l0-71.7c0-15.3 7.2-29.6 19.5-38.6L420.6 8.4C428 2.9 437 0 446.2 0c11.4 0 22.4 4.5 30.5 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5c0 9.2-2.9 18.2-8.4 25.6L334.4 396.5c-9 12.3-23.4 19.5-38.6 19.5L224 416l-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L128 320zM7 466.3l63-63 70.6 70.6-31 31c-4.5 4.5-10.6 7-17 7L24 512c-13.3 0-24-10.7-24-24l0-4.7c0-6.4 2.5-12.5 7-17z"/></svg>
298374
298470
  `, magic_wand_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.7-53.3L160 80l-53.3-26.7L80 0 53.3 53.3 0 80l53.3 26.7L80 160zm352 128l-26.7 53.3L352 368l53.3 26.7L432 448l26.7-53.3L512 368l-53.3-26.7L432 288zm70.6-193.8L417.8 9.4C411.5 3.1 403.3 0 395.2 0c-8.2 0-16.4 3.1-22.6 9.4L9.4 372.5c-12.5 12.5-12.5 32.8 0 45.3l84.9 84.9c6.3 6.3 14.4 9.4 22.6 9.4 8.2 0 16.4-3.1 22.6-9.4l363.1-363.2c12.5-12.5 12.5-32.8 0-45.2zM359.5 203.5l-50.9-50.9 86.6-86.6 50.9 50.9-86.6 86.6z"/></svg>', table_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M64 256l0-96 160 0 0 96L64 256zm0 64l160 0 0 96L64 416l0-96zm224 96l0-96 160 0 0 96-160 0zM448 256l-160 0 0-96 160 0 0 96zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z"/></svg>', table_columns_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 64l0 256 160 0 0-256L64 160zm384 0l-160 0 0 256 160 0 0-256z"/></svg>', arrows_left_right_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M406.6 374.6l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224l-293.5 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288l293.5 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z"/></svg>', arrows_to_dot_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M256 0c17.7 0 32 14.3 32 32l0 32 32 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8l32 0 0-32c0-17.7 14.3-32 32-32zM169.4 393.4l64-64c12.5-12.5 32.8-12.5 45.3 0l64 64c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9zM32 224l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c12.5 12.5 12.5 32.8 0 45.3l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3l64-64c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 32 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-64-64zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"/></svg>', plus_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 144L48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0 0 144c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-144z"/></svg>', trash_can_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M135.2 17.7C140.6 6.8 151.7 0 163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3zM32 128l384 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zm96 64c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16z"/></svg>', wrench_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M352 320c88.4 0 160-71.6 160-160c0-15.3-2.2-30.1-6.2-44.2c-3.1-10.8-16.4-13.2-24.3-5.3l-76.8 76.8c-3 3-7.1 4.7-11.3 4.7L336 192c-8.8 0-16-7.2-16-16l0-57.4c0-4.2 1.7-8.3 4.7-11.3l76.8-76.8c7.9-7.9 5.4-21.2-5.3-24.3C382.1 2.2 367.3 0 352 0C263.6 0 192 71.6 192 160c0 19.1 3.4 37.5 9.5 54.5L19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L297.5 310.5c17 6.2 35.4 9.5 54.5 9.5zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"/></svg>', border_none_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M32 480a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm96-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-384a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM320 416a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-320a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM224 480a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0-448a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM416 416a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-384a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM32 96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM416 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM32 288a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm192 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm192 64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM32 320a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM416 192a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM32 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm192 64a32 32 0 1 1 0-64 32 32 0 1 1 0 64z"/></svg>', up_down_default = `<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="3 4 18 16"><path stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 10V5m0 0L4 7m2-2 2 2m-2 7v5m0 0 2-2m-2 2-2-2m8-10h8m0 5h-8m0 5h8"></path></svg>
298375
298471
  `, magnifying_glass_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"/></svg>
298376
- `, scissors_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M278.1 256L444.5 89.6c4.7-4.7 4.7-12.3 0-17-32.8-32.8-86-32.8-118.8 0L210.2 188.1l-24.9-24.9c4.3-10.9 6.7-22.8 6.7-35.3 0-53-43-96-96-96S0 75 0 128s43 96 96 96c4.5 0 9-.3 13.4-.9L142.3 256l-32.9 32.9c-4.4-.6-8.8-.9-13.4-.9-53 0-96 43-96 96s43 96 96 96 96-43 96-96c0-12.5-2.4-24.3-6.7-35.3l24.9-24.9L325.7 439.4c32.8 32.8 86 32.8 118.8 0 4.7-4.7 4.7-12.3 0-17L278.1 256zM96 160c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm0 256c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z"/></svg>', copy_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M320 448v40c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V120c0-13.3 10.7-24 24-24h72v296c0 30.9 25.1 56 56 56h168zm0-344V0H152c-13.3 0-24 10.7-24 24v368c0 13.3 10.7 24 24 24h272c13.3 0 24-10.7 24-24V128H344c-13.2 0-24-10.8-24-24zm121-31L375 7A24 24 0 0 0 358.1 0H352v96h96v-6.1a24 24 0 0 0 -7-17z"/></svg>', paste_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M128 184c0-30.9 25.1-56 56-56h136V56c0-13.3-10.7-24-24-24h-80.6C204.3 12.9 183.6 0 160 0s-44.3 12.9-55.4 32H24C10.7 32 0 42.7 0 56v336c0 13.3 10.7 24 24 24h104V184zm32-144c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm184 248h104v200c0 13.3-10.7 24-24 24H184c-13.3 0-24-10.7-24-24V184c0-13.3 10.7-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.1V256h-96v-96h6.1a24 24 0 0 1 17 7l65.9 65.9a24 24 0 0 1 7 17z"/></svg>', toolbarIcons, _hoisted_1$20, AlignmentButtons_default, _hoisted_1$19, StyleButtonsList_default, bulletStyleButtons, numberedStyleButtons, _hoisted_1$18, _hoisted_2$15, _hoisted_3$11, _hoisted_4$7, _hoisted_5$5, _hoisted_6$3, DocumentMode_default, _hoisted_1$17, _hoisted_2$14, LinkedStyle_default, _hoisted_1$16, _hoisted_2$13, _hoisted_3$10, _hoisted_4$6, _hoisted_5$4, _hoisted_6$2, _hoisted_7$2, _hoisted_8$1, _hoisted_9$1, _hoisted_10$1, _hoisted_11$1, _hoisted_12$1, _hoisted_13, _hoisted_14, LinkInput_default, _hoisted_1$15, _hoisted_2$12, _hoisted_3$9, ROW_SIZE$1 = 7, IconGridRow_default, droplet_slash_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M320 512c53.2 0 101.4-21.6 136.1-56.6l-298.3-235C140 257.1 128 292.3 128 320c0 106 86 192 192 192zM505.2 370.7c4.4-16.2 6.8-33.1 6.8-50.7c0-91.2-130.2-262.3-166.6-308.3C339.4 4.2 330.5 0 320.9 0l-1.8 0c-9.6 0-18.5 4.2-24.5 11.7C277.8 33 240.7 81.3 205.8 136L38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L505.2 370.7zM224 336c0 44.2 35.8 80 80 80c8.8 0 16 7.2 16 16s-7.2 16-16 16c-61.9 0-112-50.1-112-112c0-8.8 7.2-16 16-16s16 7.2 16 16z"/></svg>
298377
- `, _hoisted_1$14, _hoisted_2$11, _hoisted_3$8, IconGrid_default, closeDropdown$1 = (dropdown) => {
298472
+ `, 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>
298473
+ `, _hoisted_1$15, _hoisted_2$12, _hoisted_3$9, IconGrid_default, closeDropdown$1 = (dropdown) => {
298378
298474
  dropdown.expand.value = false;
298379
298475
  }, makeColorOption = (color2, label = null) => {
298380
298476
  return {
@@ -298405,8 +298501,8 @@ var Node$13 = class Node$14 {
298405
298501
  })]);
298406
298502
  }, icons, getAvailableColorOptions = () => {
298407
298503
  return icons.flat().map((item) => item.value);
298408
- }, _hoisted_1$13, _hoisted_2$10, ROW_SIZE = 5, TableGrid_default, _hoisted_1$12, _hoisted_2$9, _hoisted_3$7, _hoisted_4$5, _hoisted_5$3, TableActions_default, check_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"/></svg>
298409
- `, _hoisted_1$11, _hoisted_2$8, _hoisted_3$6, SearchInput_default, TOOLBAR_FONTS, TOOLBAR_FONT_SIZES, RESPONSIVE_BREAKPOINTS, HEADLESS_ITEM_MAP, TABLE_ACTION_COMMAND_MAP, TABLE_ACTION_COMMAND_IDS, HEADLESS_TOOLBAR_COMMANDS, NON_HEADLESS_EXECUTE_ITEM_NAMES, HEADLESS_EXECUTE_ITEMS, closeDropdown = (dropdown) => {
298504
+ }, _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>
298505
+ `, _hoisted_1$12, _hoisted_2$9, _hoisted_3$7, SearchInput_default, TOOLBAR_FONTS, TOOLBAR_FONT_SIZES, RESPONSIVE_BREAKPOINTS, HEADLESS_ITEM_MAP, TABLE_ACTION_COMMAND_MAP, TABLE_ACTION_COMMAND_IDS, HEADLESS_TOOLBAR_COMMANDS, NON_HEADLESS_EXECUTE_ITEM_NAMES, HEADLESS_EXECUTE_ITEMS, closeDropdown = (dropdown) => {
298410
298506
  dropdown.expand.value = false;
298411
298507
  }, makeDefaultItems = ({ superToolbar, toolbarIcons: toolbarIcons$1, toolbarTexts: toolbarTexts$1, toolbarFonts, hideButtons, availableWidth, role, isDev = false } = {}) => {
298412
298508
  const bold = useToolbarItem({
@@ -299470,7 +299566,39 @@ var Node$13 = class Node$14 {
299470
299566
  defaultItems: visibleItems,
299471
299567
  overflowItems: overflowItems.filter((item) => item.type !== "separator")
299472
299568
  };
299473
- }, _hoisted_1$10, _hoisted_2$7, ToolbarButtonIcon_default, _hoisted_1$9, _hoisted_2$6, _hoisted_3$5, _hoisted_4$4, _hoisted_5$2, _hoisted_6$1, _hoisted_7$1, _hoisted_8, _hoisted_9, _hoisted_10, _hoisted_11, _hoisted_12, ToolbarButton_default, _hoisted_1$8, ToolbarSeparator_default, _hoisted_1$7, _hoisted_2$5, _hoisted_3$4, OverflowMenu_default, _hoisted_1$6, _hoisted_2$4, _hoisted_3$3, _hoisted_4$3, TRIGGER_FOCUS_SELECTOR = 'button, [href], input, select, textarea, [role="button"], [tabindex]:not([tabindex="-1"])', ToolbarDropdown_default, SdTooltip_default, _hoisted_1$5, _hoisted_2$3, _hoisted_3$2, _hoisted_4$2, ButtonGroup_default, DEFAULT_UI_FONT_FAMILY = "Arial, Helvetica, sans-serif", Toolbar_default, toolbarTexts, getParagraphFontFamilyFromProperties = (paragraphProps, convertedXml = {}) => {
299569
+ }, _hoisted_1$11, _hoisted_2$8, ToolbarButtonIcon_default, _hoisted_1$10, _hoisted_2$7, _hoisted_3$6, _hoisted_4$5, _hoisted_5$4, _hoisted_6$3, _hoisted_7$2, _hoisted_8, _hoisted_9, _hoisted_10, _hoisted_11, _hoisted_12, _hoisted_13, _hoisted_14, ToolbarButton_default, _hoisted_1$9, ToolbarSeparator_default, _hoisted_1$8, _hoisted_2$6, _hoisted_3$5, OverflowMenu_default, _hoisted_1$7, _hoisted_2$5, _hoisted_3$4, _hoisted_4$4, TRIGGER_FOCUS_SELECTOR = 'button, [href], input, select, textarea, [role="button"], [tabindex]:not([tabindex="-1"])', ToolbarDropdown_default, normalize4 = (value) => String(value ?? "").trim().toLowerCase(), findPrefixMatchIndex = (query, labels) => {
299570
+ const q$1 = normalize4(query);
299571
+ if (!q$1)
299572
+ return -1;
299573
+ for (let i4 = 0;i4 < labels.length; i4 += 1)
299574
+ if (normalize4(labels[i4]).startsWith(q$1))
299575
+ return i4;
299576
+ return -1;
299577
+ }, computeTypeahead = (query, labels, { autocomplete = true } = {}) => {
299578
+ const typed = String(query ?? "");
299579
+ const matchIndex = findPrefixMatchIndex(typed, labels);
299580
+ const completion = matchIndex >= 0 ? String(labels[matchIndex] ?? "") : "";
299581
+ if (autocomplete && matchIndex >= 0 && completion.length > typed.length)
299582
+ return {
299583
+ matchIndex,
299584
+ display: completion,
299585
+ selectionStart: typed.length,
299586
+ selectionEnd: completion.length
299587
+ };
299588
+ return {
299589
+ matchIndex,
299590
+ display: typed,
299591
+ selectionStart: typed.length,
299592
+ selectionEnd: typed.length
299593
+ };
299594
+ }, stripWrappingQuotes = (value) => {
299595
+ let result = String(value ?? "").trim();
299596
+ while (result.length >= 2 && (result.startsWith('"') && result.endsWith('"') || result.startsWith("'") && result.endsWith("'")))
299597
+ result = result.slice(1, -1).trim();
299598
+ return result;
299599
+ }, normalizeCustomFontFamily = (value) => {
299600
+ return stripWrappingQuotes((String(value ?? "").split(",")[0] ?? "").replace(/[\u0000-\u001f\u007f]/g, "")).replace(/\s+/g, " ").trim();
299601
+ }, _hoisted_1$6, _hoisted_2$4, _hoisted_3$3, _hoisted_4$3, _hoisted_5$3, _hoisted_6$2, _hoisted_7$1, FontFamilyCombobox_default, SdTooltip_default, _hoisted_1$5, _hoisted_2$3, _hoisted_3$2, _hoisted_4$2, _hoisted_5$2, _hoisted_6$1, TOOLBAR_TOOLTIP_AUTO_HIDE_MS = 3000, ButtonGroup_default, DEFAULT_UI_FONT_FAMILY = "Arial, Helvetica, sans-serif", Toolbar_default, toolbarTexts, getParagraphFontFamilyFromProperties = (paragraphProps, convertedXml = {}) => {
299474
299602
  const fontFamilyProps = paragraphProps?.runProperties?.fontFamily;
299475
299603
  if (!fontFamilyProps)
299476
299604
  return null;
@@ -299689,6 +299817,14 @@ var Node$13 = class Node$14 {
299689
299817
  const before = $pos.parent.childBefore($pos.parentOffset).node;
299690
299818
  const after = $pos.parent.childAfter($pos.parentOffset).node;
299691
299819
  return isInlineStructuredContentNode(before) || isInlineStructuredContentNode(after);
299820
+ }, getInputSelection = (state) => {
299821
+ const { selection } = state;
299822
+ if (!selection.empty)
299823
+ return selection;
299824
+ const preserved = getPreservedSelection(state);
299825
+ if (preserved && !preserved.empty)
299826
+ return preserved;
299827
+ return selection;
299692
299828
  }, handleInsertTextBeforeInput = (view, event, editor) => {
299693
299829
  const isInsertTextInput = event?.inputType === "insertText";
299694
299830
  const hasTextData = typeof event?.data === "string" && event.data.length > 0;
@@ -299702,8 +299838,8 @@ var Node$13 = class Node$14 {
299702
299838
  recordStoryInputDebug(view, event, editor, "beforeinput:skip");
299703
299839
  return false;
299704
299840
  }
299705
- const selection = view.state.selection;
299706
- const shouldHandleCollapsedSelection = isStorySurfaceEditor(editor) || isInlineStructuredContentBoundary(view.state.doc, selection.from);
299841
+ const selection = getInputSelection(view.state);
299842
+ const shouldHandleCollapsedSelection = isStorySurfaceEditor(editor) || isInlineStructuredContentBoundary(view.state.doc, view.state.selection.from);
299707
299843
  if (selection.empty && !shouldHandleCollapsedSelection) {
299708
299844
  recordStoryInputDebug(view, event, editor, "beforeinput:skip-empty-selection");
299709
299845
  return false;
@@ -299715,6 +299851,13 @@ var Node$13 = class Node$14 {
299715
299851
  } catch {
299716
299852
  tr.setSelection(Selection.near(tr.doc.resolve(insertedTo), 1));
299717
299853
  }
299854
+ if (!selection.empty)
299855
+ tr.setMeta(CustomSelectionPluginKey, {
299856
+ focused: false,
299857
+ preservedSelection: null,
299858
+ showVisualSelection: false,
299859
+ skipFocusReset: false
299860
+ });
299718
299861
  tr.setMeta("inputType", "insertText");
299719
299862
  view.dispatch(tr);
299720
299863
  event.preventDefault();
@@ -320808,13 +320951,13 @@ menclose::after {
320808
320951
  return;
320809
320952
  console.log(...args$1);
320810
320953
  }, HEADER_FOOTER_INIT_BUDGET_MS = 200, MAX_ZOOM_WARNING_THRESHOLD = 10, MAX_SELECTION_RECTS_PER_USER = 100, SEMANTIC_RESIZE_DEBOUNCE_MS = 120, MIN_SEMANTIC_CONTENT_WIDTH_PX = 1, GLOBAL_PERFORMANCE, PresentationEditor, ICONS, TEXTS, tableActionsOptions, TRACKED_MARK_NAMES;
320811
- var init_src_LeQVnrcZ_es = __esm(() => {
320954
+ var init_src_CRJcfbIa_es = __esm(() => {
320812
320955
  init_rolldown_runtime_Bg48TavK_es();
320813
- init_SuperConverter_d9QeIy9_es();
320956
+ init_SuperConverter_BTGVElJO_es();
320814
320957
  init_jszip_C49i9kUs_es();
320815
320958
  init_xml_js_CqGKpaft_es();
320816
320959
  init_uuid_B2wVPhPi_es();
320817
- init_create_headless_toolbar_l5QB6sQY_es();
320960
+ init_create_headless_toolbar_DYbkX05s_es();
320818
320961
  init_constants_D9qj59G2_es();
320819
320962
  init_dist_B8HfvhaK_es();
320820
320963
  init_unified_Dsuw2be5_es();
@@ -321372,6 +321515,12 @@ ${err.toString()}`);
321372
321515
  }) : value;
321373
321516
  if (!nextState?.preservedSelection)
321374
321517
  return nextState;
321518
+ if (shouldClearPreservedSelectionOnSelectionMove(tr, nextState))
321519
+ return {
321520
+ ...nextState,
321521
+ preservedSelection: null,
321522
+ showVisualSelection: false
321523
+ };
321375
321524
  if (!tr.docChanged)
321376
321525
  return nextState;
321377
321526
  const mappedSelection = mapPreservedSelection(nextState.preservedSelection, tr);
@@ -326200,6 +326349,12 @@ ${err.toString()}`);
326200
326349
  ];
326201
326350
  }
326202
326351
  });
326352
+ ALLOWED_META_KEYS$1 = [
326353
+ "inputType",
326354
+ "uiEvent",
326355
+ "paste",
326356
+ CustomSelectionPluginKey.key
326357
+ ];
326203
326358
  AnnotatorHelpers = {
326204
326359
  getFieldAttrs,
326205
326360
  processTables,
@@ -338065,7 +338220,8 @@ function print() { __p += __j.call(arguments, '') }
338065
338220
  "composition",
338066
338221
  "superdocSlicePaste",
338067
338222
  "forceTrackChanges",
338068
- "protectTrackedReviewState"
338223
+ "protectTrackedReviewState",
338224
+ CustomSelectionPluginKey.key
338069
338225
  ];
338070
338226
  PASSTHROUGH_META_KEYS = [
338071
338227
  "inputType",
@@ -338074,7 +338230,8 @@ function print() { __p += __j.call(arguments, '') }
338074
338230
  "pointer",
338075
338231
  "composition",
338076
338232
  "addToHistory",
338077
- "superdocSlicePaste"
338233
+ "superdocSlicePaste",
338234
+ CustomSelectionPluginKey.key
338078
338235
  ];
338079
338236
  ALLOWED_META_KEYS = new Set([...TRACKABLE_META_KEYS, ySyncPluginKey.key]);
338080
338237
  TrackFormat = Mark3.create({
@@ -338742,11 +338899,11 @@ function print() { __p += __j.call(arguments, '') }
338742
338899
  } });
338743
338900
  tippy.setDefaultProps({ render });
338744
338901
  tippy_esm_default = tippy;
338745
- _hoisted_1$22 = ["onClick", "onMouseenter"];
338746
- _hoisted_2$17 = { key: 0 };
338747
- _hoisted_3$13 = { key: 0 };
338748
- _hoisted_4$9 = { key: 1 };
338749
- _hoisted_5$7 = { key: 1 };
338902
+ _hoisted_1$23 = ["onClick", "onMouseenter"];
338903
+ _hoisted_2$18 = { key: 0 };
338904
+ _hoisted_3$14 = { key: 0 };
338905
+ _hoisted_4$10 = { key: 1 };
338906
+ _hoisted_5$9 = { key: 1 };
338750
338907
  Mentions_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
338751
338908
  __name: "Mentions",
338752
338909
  props: {
@@ -338812,7 +338969,7 @@ function print() { __p += __j.call(arguments, '') }
338812
338969
  onMouseleave: _cache[0] || (_cache[0] = ($event) => activeUserIndex.value = null),
338813
338970
  key: user.email,
338814
338971
  class: exports_vue.normalizeClass(["user-row", { "sd-selected": activeUserIndex.value === index2 }])
338815
- }, [user.name ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_2$17, [user.name ? (exports_vue.openBlock(), exports_vue.createElementBlock("span", _hoisted_3$13, exports_vue.toDisplayString(user.name), 1)) : exports_vue.createCommentVNode("", true), user.name && user.email ? (exports_vue.openBlock(), exports_vue.createElementBlock("span", _hoisted_4$9, " (" + exports_vue.toDisplayString(user.email) + ")", 1)) : exports_vue.createCommentVNode("", true)])) : (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_5$7, [exports_vue.createElementVNode("span", null, exports_vue.toDisplayString(user.email), 1)]))], 42, _hoisted_1$22);
338972
+ }, [user.name ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_2$18, [user.name ? (exports_vue.openBlock(), exports_vue.createElementBlock("span", _hoisted_3$14, exports_vue.toDisplayString(user.name), 1)) : exports_vue.createCommentVNode("", true), user.name && user.email ? (exports_vue.openBlock(), exports_vue.createElementBlock("span", _hoisted_4$10, " (" + exports_vue.toDisplayString(user.email) + ")", 1)) : exports_vue.createCommentVNode("", true)])) : (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_5$9, [exports_vue.createElementVNode("span", null, exports_vue.toDisplayString(user.email), 1)]))], 42, _hoisted_1$23);
338816
338973
  }), 128))], 544);
338817
338974
  };
338818
338975
  }
@@ -340087,11 +340244,11 @@ function print() { __p += __j.call(arguments, '') }
340087
340244
  })
340088
340245
  }
340089
340246
  ] };
340090
- _hoisted_1$21 = { class: "ai-user-input-field" };
340091
- _hoisted_2$16 = ["innerHTML"];
340092
- _hoisted_3$12 = ["placeholder"];
340093
- _hoisted_4$8 = { class: "ai-loader" };
340094
- _hoisted_5$6 = ["innerHTML"];
340247
+ _hoisted_1$22 = { class: "ai-user-input-field" };
340248
+ _hoisted_2$17 = ["innerHTML"];
340249
+ _hoisted_3$13 = ["placeholder"];
340250
+ _hoisted_4$9 = { class: "ai-loader" };
340251
+ _hoisted_5$8 = ["innerHTML"];
340095
340252
  AIWriter_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
340096
340253
  __name: "AIWriter",
340097
340254
  props: {
@@ -340318,10 +340475,10 @@ function print() { __p += __j.call(arguments, '') }
340318
340475
  ref_key: "aiWriterRef",
340319
340476
  ref: aiWriterRef,
340320
340477
  onMousedown: _cache[1] || (_cache[1] = exports_vue.withModifiers(() => {}, ["stop"]))
340321
- }, [exports_vue.createElementVNode("div", _hoisted_1$21, [exports_vue.createElementVNode("span", {
340478
+ }, [exports_vue.createElementVNode("div", _hoisted_1$22, [exports_vue.createElementVNode("span", {
340322
340479
  class: "ai-textarea-icon",
340323
340480
  innerHTML: exports_vue.unref(edit_regular_default)
340324
- }, null, 8, _hoisted_2$16), exports_vue.withDirectives(exports_vue.createElementVNode("textarea", {
340481
+ }, null, 8, _hoisted_2$17), exports_vue.withDirectives(exports_vue.createElementVNode("textarea", {
340325
340482
  ref_key: "editableRef",
340326
340483
  ref: editableRef,
340327
340484
  class: "ai-textarea",
@@ -340330,12 +340487,12 @@ function print() { __p += __j.call(arguments, '') }
340330
340487
  onInput: handleInput,
340331
340488
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => promptText.value = $event),
340332
340489
  rows: "4"
340333
- }, null, 40, _hoisted_3$12), [[exports_vue.vModelText, promptText.value]])]), exports_vue.createElementVNode("div", _hoisted_4$8, [promptText.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("span", {
340490
+ }, null, 40, _hoisted_3$13), [[exports_vue.vModelText, promptText.value]])]), exports_vue.createElementVNode("div", _hoisted_4$9, [promptText.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("span", {
340334
340491
  key: 0,
340335
340492
  class: "ai-textarea-icon ai-submit-button",
340336
340493
  onClick: exports_vue.withModifiers(handleSubmit, ["stop"]),
340337
340494
  innerHTML: exports_vue.unref(paper_plane_regular_default)
340338
- }, null, 8, _hoisted_5$6)) : exports_vue.createCommentVNode("", true)])], 544);
340495
+ }, null, 8, _hoisted_5$8)) : exports_vue.createCommentVNode("", true)])], 544);
340339
340496
  };
340340
340497
  }
340341
340498
  }, [["__scopeId", "data-v-5444b0c8"]]);
@@ -340420,7 +340577,7 @@ function print() { __p += __j.call(arguments, '') }
340420
340577
  formattingMarks: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true"><text x="12" y="18" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="20" font-weight="700" fill="currentColor">¶</text></svg>
340421
340578
  `
340422
340579
  };
340423
- _hoisted_1$20 = [
340580
+ _hoisted_1$21 = [
340424
340581
  "onClick",
340425
340582
  "innerHTML",
340426
340583
  "aria-label",
@@ -340512,12 +340669,12 @@ function print() { __p += __j.call(arguments, '') }
340512
340669
  ref_key: "alignmentButtonsRefs",
340513
340670
  ref: alignmentButtonsRefs,
340514
340671
  onKeydown: exports_vue.withModifiers((event) => handleKeyDown$1(event, index2), ["prevent"])
340515
- }, null, 40, _hoisted_1$20);
340672
+ }, null, 40, _hoisted_1$21);
340516
340673
  }), 64))], 2);
340517
340674
  };
340518
340675
  }
340519
340676
  }, [["__scopeId", "data-v-ceb338e0"]]);
340520
- _hoisted_1$19 = [
340677
+ _hoisted_1$20 = [
340521
340678
  "onClick",
340522
340679
  "innerHTML",
340523
340680
  "aria-label",
@@ -340606,7 +340763,7 @@ function print() { __p += __j.call(arguments, '') }
340606
340763
  ref_key: "buttonRefs",
340607
340764
  ref: buttonRefs,
340608
340765
  onKeydown: exports_vue.withModifiers((event) => handleKeyDown$1(event, index2), ["prevent"])
340609
- }, null, 46, _hoisted_1$19);
340766
+ }, null, 46, _hoisted_1$20);
340610
340767
  }), 128))], 2);
340611
340768
  };
340612
340769
  }
@@ -340670,12 +340827,12 @@ function print() { __p += __j.call(arguments, '') }
340670
340827
  ariaLabel: "a) b) c)"
340671
340828
  }
340672
340829
  ];
340673
- _hoisted_1$18 = ["onClick", "onKeydown"];
340674
- _hoisted_2$15 = { class: "document-mode-column icon-column" };
340675
- _hoisted_3$11 = ["innerHTML"];
340676
- _hoisted_4$7 = { class: "document-mode-column text-column" };
340677
- _hoisted_5$5 = { class: "document-mode-type" };
340678
- _hoisted_6$3 = { class: "document-mode-description" };
340830
+ _hoisted_1$19 = ["onClick", "onKeydown"];
340831
+ _hoisted_2$16 = { class: "document-mode-column icon-column" };
340832
+ _hoisted_3$12 = ["innerHTML"];
340833
+ _hoisted_4$8 = { class: "document-mode-column text-column" };
340834
+ _hoisted_5$7 = { class: "document-mode-type" };
340835
+ _hoisted_6$5 = { class: "document-mode-description" };
340679
340836
  DocumentMode_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
340680
340837
  __name: "DocumentMode",
340681
340838
  props: { options: { type: Array } },
@@ -340736,20 +340893,20 @@ function print() { __p += __j.call(arguments, '') }
340736
340893
  ref_key: "documentModeRefs",
340737
340894
  ref: documentModeRefs,
340738
340895
  onKeydown: exports_vue.withModifiers((event) => handleKeyDown$1(event, index2), ["prevent"])
340739
- }, [exports_vue.createElementVNode("div", _hoisted_2$15, [exports_vue.createElementVNode("div", {
340896
+ }, [exports_vue.createElementVNode("div", _hoisted_2$16, [exports_vue.createElementVNode("div", {
340740
340897
  class: "icon-column__icon",
340741
340898
  innerHTML: option.icon
340742
- }, null, 8, _hoisted_3$11)]), exports_vue.createElementVNode("div", _hoisted_4$7, [exports_vue.createElementVNode("div", _hoisted_5$5, exports_vue.toDisplayString(option.label), 1), exports_vue.createElementVNode("div", _hoisted_6$3, exports_vue.toDisplayString(option.description), 1)])], 42, _hoisted_1$18);
340899
+ }, null, 8, _hoisted_3$12)]), exports_vue.createElementVNode("div", _hoisted_4$8, [exports_vue.createElementVNode("div", _hoisted_5$7, exports_vue.toDisplayString(option.label), 1), exports_vue.createElementVNode("div", _hoisted_6$5, exports_vue.toDisplayString(option.description), 1)])], 42, _hoisted_1$19);
340743
340900
  }), 256))], 2);
340744
340901
  };
340745
340902
  }
340746
340903
  }, [["__scopeId", "data-v-abd514d9"]]);
340747
- _hoisted_1$17 = {
340904
+ _hoisted_1$18 = {
340748
340905
  key: 0,
340749
340906
  class: "linked-style-buttons",
340750
340907
  "data-editor-ui-surface": ""
340751
340908
  };
340752
- _hoisted_2$14 = [
340909
+ _hoisted_2$15 = [
340753
340910
  "onClick",
340754
340911
  "onKeydown",
340755
340912
  "aria-label"
@@ -340806,7 +340963,7 @@ function print() { __p += __j.call(arguments, '') }
340806
340963
  styleRefs.value[0].focus();
340807
340964
  });
340808
340965
  return (_ctx, _cache) => {
340809
- return props.editor ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$17, [(exports_vue.openBlock(true), exports_vue.createElementBlock(exports_vue.Fragment, null, exports_vue.renderList(exports_vue.unref(getQuickFormatList)(__props.editor), (style2, index2) => {
340966
+ return props.editor ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$18, [(exports_vue.openBlock(true), exports_vue.createElementBlock(exports_vue.Fragment, null, exports_vue.renderList(exports_vue.unref(getQuickFormatList)(__props.editor), (style2, index2) => {
340810
340967
  return exports_vue.openBlock(), exports_vue.createElementBlock("div", {
340811
340968
  class: exports_vue.normalizeClass(["style-item", { selected: __props.selectedOption === style2.id }]),
340812
340969
  onClick: ($event) => select2(style2),
@@ -340819,33 +340976,33 @@ function print() { __p += __j.call(arguments, '') }
340819
340976
  class: "style-name",
340820
340977
  style: exports_vue.normalizeStyle(exports_vue.unref(generateLinkedStyleString)(style2, null, null, false)),
340821
340978
  "data-item": "btn-linkedStyles-option"
340822
- }, exports_vue.toDisplayString(style2.definition.attrs.name), 5)], 42, _hoisted_2$14);
340979
+ }, exports_vue.toDisplayString(style2.definition.attrs.name), 5)], 42, _hoisted_2$15);
340823
340980
  }), 256))])) : exports_vue.createCommentVNode("", true);
340824
340981
  };
340825
340982
  }
340826
340983
  }, [["__scopeId", "data-v-80e74746"]]);
340827
- _hoisted_1$16 = {
340984
+ _hoisted_1$17 = {
340828
340985
  key: 0,
340829
340986
  class: "link-title"
340830
340987
  };
340831
- _hoisted_2$13 = {
340988
+ _hoisted_2$14 = {
340832
340989
  key: 1,
340833
340990
  class: "link-title"
340834
340991
  };
340835
- _hoisted_3$10 = {
340992
+ _hoisted_3$11 = {
340836
340993
  key: 2,
340837
340994
  class: "link-title"
340838
340995
  };
340839
- _hoisted_4$6 = {
340996
+ _hoisted_4$7 = {
340840
340997
  key: 3,
340841
340998
  class: "link-title"
340842
340999
  };
340843
- _hoisted_5$4 = {
341000
+ _hoisted_5$6 = {
340844
341001
  key: 4,
340845
341002
  class: "link-input-wrapper"
340846
341003
  };
340847
- _hoisted_6$2 = { class: "input-row text-input-row" };
340848
- _hoisted_7$2 = ["readonly"];
341004
+ _hoisted_6$4 = { class: "input-row text-input-row" };
341005
+ _hoisted_7$3 = ["readonly"];
340849
341006
  _hoisted_8$1 = { class: "input-row url-input-row" };
340850
341007
  _hoisted_9$1 = ["innerHTML"];
340851
341008
  _hoisted_10$1 = ["readonly", "onKeydown"];
@@ -340854,8 +341011,8 @@ function print() { __p += __j.call(arguments, '') }
340854
341011
  key: 0,
340855
341012
  class: "input-row link-buttons"
340856
341013
  };
340857
- _hoisted_13 = ["innerHTML"];
340858
- _hoisted_14 = {
341014
+ _hoisted_13$1 = ["innerHTML"];
341015
+ _hoisted_14$1 = {
340859
341016
  key: 5,
340860
341017
  class: "input-row go-to-anchor clickable"
340861
341018
  };
@@ -341027,15 +341184,15 @@ function print() { __p += __j.call(arguments, '') }
341027
341184
  props.goToAnchor(url$1);
341028
341185
  };
341029
341186
  return (_ctx, _cache) => {
341030
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", { class: exports_vue.normalizeClass(["link-input-ctn", { "high-contrast": exports_vue.unref(isHighContrastMode$1) }]) }, [isAnchor.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$16, "Page anchor")) : isViewingMode.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_2$13, "Link details")) : isEditing.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_3$10, "Edit link")) : (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_4$6, "Add link")), __props.showInput && !isAnchor.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_5$4, [
341031
- exports_vue.createElementVNode("div", _hoisted_6$2, [_cache[5] || (_cache[5] = exports_vue.createElementVNode("div", { class: "input-icon text-input-icon" }, "T", -1)), exports_vue.withDirectives(exports_vue.createElementVNode("input", {
341187
+ 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, [
341188
+ exports_vue.createElementVNode("div", _hoisted_6$4, [_cache[5] || (_cache[5] = exports_vue.createElementVNode("div", { class: "input-icon text-input-icon" }, "T", -1)), exports_vue.withDirectives(exports_vue.createElementVNode("input", {
341032
341189
  type: "text",
341033
341190
  name: "text",
341034
341191
  placeholder: "Text",
341035
341192
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => text5.value = $event),
341036
341193
  readonly: isViewingMode.value,
341037
341194
  onKeydown: _cache[1] || (_cache[1] = exports_vue.withKeys(exports_vue.withModifiers(($event) => !isViewingMode.value && handleSubmit, ["stop", "prevent"]), ["enter"]))
341038
- }, null, 40, _hoisted_7$2), [[exports_vue.vModelText, text5.value]])]),
341195
+ }, null, 40, _hoisted_7$3), [[exports_vue.vModelText, text5.value]])]),
341039
341196
  exports_vue.createElementVNode("div", _hoisted_8$1, [
341040
341197
  exports_vue.createElementVNode("div", {
341041
341198
  class: "input-icon",
@@ -341065,22 +341222,22 @@ function print() { __p += __j.call(arguments, '') }
341065
341222
  }, [exports_vue.createElementVNode("div", {
341066
341223
  class: "remove-btn__icon",
341067
341224
  innerHTML: exports_vue.unref(toolbarIcons).removeLink
341068
- }, null, 8, _hoisted_13), _cache[6] || (_cache[6] = exports_vue.createTextVNode(" Remove ", -1))])) : exports_vue.createCommentVNode("", true), exports_vue.createElementVNode("button", {
341225
+ }, null, 8, _hoisted_13$1), _cache[6] || (_cache[6] = exports_vue.createTextVNode(" Remove ", -1))])) : exports_vue.createCommentVNode("", true), exports_vue.createElementVNode("button", {
341069
341226
  class: exports_vue.normalizeClass(["sd-submit-btn", { "disable-btn": isDisabled.value }]),
341070
341227
  onClick: handleSubmit,
341071
341228
  "data-item": "btn-link-apply"
341072
341229
  }, " Apply ", 2)])) : exports_vue.createCommentVNode("", true)
341073
- ])) : isAnchor.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_14, [exports_vue.createElementVNode("a", { onClick: _cache[4] || (_cache[4] = exports_vue.withModifiers(($event) => navigateToAnchor(rawUrl.value), ["stop", "prevent"])) }, "Go to " + exports_vue.toDisplayString(rawUrl.value.startsWith("#_") ? rawUrl.value.substring(2) : rawUrl.value), 1)])) : exports_vue.createCommentVNode("", true)], 2);
341230
+ ])) : isAnchor.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_14$1, [exports_vue.createElementVNode("a", { onClick: _cache[4] || (_cache[4] = exports_vue.withModifiers(($event) => navigateToAnchor(rawUrl.value), ["stop", "prevent"])) }, "Go to " + exports_vue.toDisplayString(rawUrl.value.startsWith("#_") ? rawUrl.value.substring(2) : rawUrl.value), 1)])) : exports_vue.createCommentVNode("", true)], 2);
341074
341231
  };
341075
341232
  }
341076
341233
  }, [["__scopeId", "data-v-c490d677"]]);
341077
- _hoisted_1$15 = [
341234
+ _hoisted_1$16 = [
341078
341235
  "aria-label",
341079
341236
  "onClick",
341080
341237
  "onKeydown"
341081
341238
  ];
341082
- _hoisted_2$12 = ["innerHTML"];
341083
- _hoisted_3$9 = ["innerHTML"];
341239
+ _hoisted_2$13 = ["innerHTML"];
341240
+ _hoisted_3$10 = ["innerHTML"];
341084
341241
  IconGridRow_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
341085
341242
  __name: "IconGridRow",
341086
341243
  props: {
@@ -341201,20 +341358,20 @@ function print() { __p += __j.call(arguments, '') }
341201
341358
  class: "sd-option__icon",
341202
341359
  innerHTML: option.icon,
341203
341360
  style: exports_vue.normalizeStyle(option.style)
341204
- }, null, 12, _hoisted_2$12), isActive$1.value(option) ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
341361
+ }, null, 12, _hoisted_2$13), isActive$1.value(option) ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
341205
341362
  key: 0,
341206
341363
  class: "sd-option__check",
341207
341364
  innerHTML: exports_vue.unref(toolbarIcons).colorOptionCheck,
341208
341365
  style: exports_vue.normalizeStyle(getCheckStyle(option.value, optionIndex))
341209
- }, null, 12, _hoisted_3$9)) : exports_vue.createCommentVNode("", true)], 40, _hoisted_1$15);
341366
+ }, null, 12, _hoisted_3$10)) : exports_vue.createCommentVNode("", true)], 40, _hoisted_1$16);
341210
341367
  }), 128))]);
341211
341368
  }), 128);
341212
341369
  };
341213
341370
  }
341214
341371
  }, [["__scopeId", "data-v-30cad300"]]);
341215
- _hoisted_1$14 = { class: "options-grid-wrap" };
341216
- _hoisted_2$11 = ["innerHTML"];
341217
- _hoisted_3$8 = { class: "option-grid-ctn" };
341372
+ _hoisted_1$15 = { class: "options-grid-wrap" };
341373
+ _hoisted_2$12 = ["innerHTML"];
341374
+ _hoisted_3$9 = { class: "option-grid-ctn" };
341218
341375
  IconGrid_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
341219
341376
  __name: "IconGrid",
341220
341377
  props: {
@@ -341242,7 +341399,7 @@ function print() { __p += __j.call(arguments, '') }
341242
341399
  emit("select", option);
341243
341400
  };
341244
341401
  return (_ctx, _cache) => {
341245
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$14, [__props.hasNoneIcon ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
341402
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$15, [__props.hasNoneIcon ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
341246
341403
  key: 0,
341247
341404
  class: "none-option",
341248
341405
  role: "menuitem",
@@ -341251,7 +341408,7 @@ function print() { __p += __j.call(arguments, '') }
341251
341408
  }, [exports_vue.createElementVNode("span", {
341252
341409
  innerHTML: exports_vue.unref(droplet_slash_default),
341253
341410
  class: "none-icon"
341254
- }, null, 8, _hoisted_2$11), _cache[1] || (_cache[1] = exports_vue.createTextVNode(" None ", -1))])) : exports_vue.createCommentVNode("", true), exports_vue.createElementVNode("div", _hoisted_3$8, [exports_vue.createVNode(IconGridRow_default, {
341411
+ }, null, 8, _hoisted_2$12), _cache[1] || (_cache[1] = exports_vue.createTextVNode(" None ", -1))])) : exports_vue.createCommentVNode("", true), exports_vue.createElementVNode("div", _hoisted_3$9, [exports_vue.createVNode(IconGridRow_default, {
341255
341412
  icons: __props.icons,
341256
341413
  "active-color": __props.activeColor,
341257
341414
  onSelect: handleSelect
@@ -341337,13 +341494,13 @@ function print() { __p += __j.call(arguments, '') }
341337
341494
  makeColorOption("#A91DFF", "neon purple")
341338
341495
  ]
341339
341496
  ];
341340
- _hoisted_1$13 = [
341497
+ _hoisted_1$14 = [
341341
341498
  "data-cols",
341342
341499
  "data-rows",
341343
341500
  "onKeydown",
341344
341501
  "onClick"
341345
341502
  ];
341346
- _hoisted_2$10 = ["aria-valuetext"];
341503
+ _hoisted_2$11 = ["aria-valuetext"];
341347
341504
  TableGrid_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
341348
341505
  __name: "TableGrid",
341349
341506
  emits: ["select", "clickoutside"],
@@ -341454,24 +341611,24 @@ function print() { __p += __j.call(arguments, '') }
341454
341611
  cols: n,
341455
341612
  rows: i4
341456
341613
  }), ["stop", "prevent"])
341457
- }, null, 40, _hoisted_1$13);
341614
+ }, null, 40, _hoisted_1$14);
341458
341615
  }), 64))], 64);
341459
341616
  }), 64))], 32), exports_vue.createElementVNode("div", {
341460
341617
  class: "toolbar-table-grid-value",
341461
341618
  "aria-valuetext": `${selectedRows.value} x ${selectedCols.value}`
341462
- }, exports_vue.toDisplayString(selectedRows.value) + " x " + exports_vue.toDisplayString(selectedCols.value), 9, _hoisted_2$10)], 2);
341619
+ }, exports_vue.toDisplayString(selectedRows.value) + " x " + exports_vue.toDisplayString(selectedCols.value), 9, _hoisted_2$11)], 2);
341463
341620
  };
341464
341621
  }
341465
341622
  }, [["__scopeId", "data-v-168b91ce"]]);
341466
- _hoisted_1$12 = { class: "toolbar-table-actions" };
341467
- _hoisted_2$9 = [
341623
+ _hoisted_1$13 = { class: "toolbar-table-actions" };
341624
+ _hoisted_2$10 = [
341468
341625
  "onClick",
341469
341626
  "data-item",
341470
341627
  "ariaLabel"
341471
341628
  ];
341472
- _hoisted_3$7 = { class: "toolbar-table-actions__icon" };
341473
- _hoisted_4$5 = ["innerHTML"];
341474
- _hoisted_5$3 = { class: "toolbar-table-actions__label" };
341629
+ _hoisted_3$8 = { class: "toolbar-table-actions__icon" };
341630
+ _hoisted_4$6 = ["innerHTML"];
341631
+ _hoisted_5$5 = { class: "toolbar-table-actions__label" };
341475
341632
  TableActions_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
341476
341633
  __name: "TableActions",
341477
341634
  props: { options: { type: Array } },
@@ -341482,24 +341639,24 @@ function print() { __p += __j.call(arguments, '') }
341482
341639
  emit("select", { command: item.command });
341483
341640
  };
341484
341641
  return (_ctx, _cache) => {
341485
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$12, [(exports_vue.openBlock(true), exports_vue.createElementBlock(exports_vue.Fragment, null, exports_vue.renderList(__props.options, (option) => {
341642
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$13, [(exports_vue.openBlock(true), exports_vue.createElementBlock(exports_vue.Fragment, null, exports_vue.renderList(__props.options, (option) => {
341486
341643
  return exports_vue.openBlock(), exports_vue.createElementBlock("div", {
341487
341644
  class: exports_vue.normalizeClass(["toolbar-table-actions__item", { "toolbar-table-actions__item--border": option.bottomBorder }]),
341488
341645
  onClick: ($event) => handleClick$1(option),
341489
341646
  "data-item": option.props?.["data-item"] || "",
341490
341647
  ariaLabel: option.props?.ariaLabel,
341491
341648
  role: "menuitem"
341492
- }, [exports_vue.createElementVNode("div", _hoisted_3$7, [exports_vue.createElementVNode("div", {
341649
+ }, [exports_vue.createElementVNode("div", _hoisted_3$8, [exports_vue.createElementVNode("div", {
341493
341650
  class: "toolbar-table-actions__icon-wrapper",
341494
341651
  innerHTML: option.icon
341495
- }, null, 8, _hoisted_4$5)]), exports_vue.createElementVNode("div", _hoisted_5$3, exports_vue.toDisplayString(option.label), 1)], 10, _hoisted_2$9);
341652
+ }, null, 8, _hoisted_4$6)]), exports_vue.createElementVNode("div", _hoisted_5$5, exports_vue.toDisplayString(option.label), 1)], 10, _hoisted_2$10);
341496
341653
  }), 256))]);
341497
341654
  };
341498
341655
  }
341499
341656
  }, [["__scopeId", "data-v-652015c8"]]);
341500
- _hoisted_1$11 = { class: "search-input-ctn" };
341501
- _hoisted_2$8 = { class: "sd-row" };
341502
- _hoisted_3$6 = ["onKeydown"];
341657
+ _hoisted_1$12 = { class: "search-input-ctn" };
341658
+ _hoisted_2$9 = { class: "sd-row" };
341659
+ _hoisted_3$7 = ["onKeydown"];
341503
341660
  SearchInput_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
341504
341661
  __name: "SearchInput",
341505
341662
  props: { searchRef: { type: Object } },
@@ -341511,7 +341668,7 @@ function print() { __p += __j.call(arguments, '') }
341511
341668
  emit("submit", { value: searchValue.value });
341512
341669
  };
341513
341670
  return (_ctx, _cache) => {
341514
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$11, [exports_vue.createElementVNode("div", _hoisted_2$8, [exports_vue.withDirectives(exports_vue.createElementVNode("input", {
341671
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$12, [exports_vue.createElementVNode("div", _hoisted_2$9, [exports_vue.withDirectives(exports_vue.createElementVNode("input", {
341515
341672
  ref: __props.searchRef,
341516
341673
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchValue.value = $event),
341517
341674
  class: "search-input",
@@ -341519,7 +341676,7 @@ function print() { __p += __j.call(arguments, '') }
341519
341676
  name: "search",
341520
341677
  placeholder: "Type search string",
341521
341678
  onKeydown: exports_vue.withKeys(exports_vue.withModifiers(handleSubmit, ["stop", "prevent"]), ["enter"])
341522
- }, null, 40, _hoisted_3$6), [[exports_vue.vModelText, searchValue.value]])]), exports_vue.createElementVNode("div", { class: "sd-row sd-submit" }, [exports_vue.createElementVNode("button", {
341679
+ }, null, 40, _hoisted_3$7), [[exports_vue.vModelText, searchValue.value]])]), exports_vue.createElementVNode("div", { class: "sd-row sd-submit" }, [exports_vue.createElementVNode("button", {
341523
341680
  class: "sd-submit-btn",
341524
341681
  onClick: handleSubmit
341525
341682
  }, "Apply")])]);
@@ -341663,8 +341820,8 @@ function print() { __p += __j.call(arguments, '') }
341663
341820
  HEADLESS_TOOLBAR_COMMANDS = [...new Set([...Object.values(HEADLESS_ITEM_MAP), ...TABLE_ACTION_COMMAND_IDS])];
341664
341821
  NON_HEADLESS_EXECUTE_ITEM_NAMES = new Set(["link"]);
341665
341822
  HEADLESS_EXECUTE_ITEMS = new Set(Object.keys(HEADLESS_ITEM_MAP).filter((itemName) => !NON_HEADLESS_EXECUTE_ITEM_NAMES.has(itemName)));
341666
- _hoisted_1$10 = { class: "sd-toolbar-icon" };
341667
- _hoisted_2$7 = ["innerHTML"];
341823
+ _hoisted_1$11 = { class: "sd-toolbar-icon" };
341824
+ _hoisted_2$8 = ["innerHTML"];
341668
341825
  ToolbarButtonIcon_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
341669
341826
  __name: "ToolbarButtonIcon",
341670
341827
  props: {
@@ -341693,10 +341850,10 @@ function print() { __p += __j.call(arguments, '') }
341693
341850
  return ["color", "highlight"].includes(props.name);
341694
341851
  });
341695
341852
  return (_ctx, _cache) => {
341696
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$10, [exports_vue.createElementVNode("div", {
341853
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$11, [exports_vue.createElementVNode("div", {
341697
341854
  class: exports_vue.normalizeClass(["sd-toolbar-icon__icon", [`sd-toolbar-icon__icon--${props.name}`]]),
341698
341855
  innerHTML: __props.icon
341699
- }, null, 10, _hoisted_2$7), hasColorBar.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
341856
+ }, null, 10, _hoisted_2$8), hasColorBar.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
341700
341857
  key: 0,
341701
341858
  class: "color-bar",
341702
341859
  style: exports_vue.normalizeStyle(getBarColor.value)
@@ -341704,28 +341861,37 @@ function print() { __p += __j.call(arguments, '') }
341704
341861
  };
341705
341862
  }
341706
341863
  }, [["__scopeId", "data-v-521c3d93"]]);
341707
- _hoisted_1$9 = ["role", "aria-label"];
341708
- _hoisted_2$6 = ["data-item"];
341709
- _hoisted_3$5 = ["data-item"];
341710
- _hoisted_4$4 = {
341864
+ _hoisted_1$10 = ["role", "aria-label"];
341865
+ _hoisted_2$7 = ["data-item"];
341866
+ _hoisted_3$6 = ["data-item"];
341867
+ _hoisted_4$5 = {
341711
341868
  key: 1,
341712
341869
  class: "sd-button-label"
341713
341870
  };
341714
- _hoisted_5$2 = ["data-item", "aria-label"];
341715
- _hoisted_6$1 = ["innerHTML"];
341716
- _hoisted_7$1 = {
341871
+ _hoisted_5$4 = ["data-item", "aria-label"];
341872
+ _hoisted_6$3 = ["innerHTML"];
341873
+ _hoisted_7$2 = {
341717
341874
  key: 1,
341718
341875
  class: "sd-button-label"
341719
341876
  };
341720
- _hoisted_8 = { key: 2 };
341877
+ _hoisted_8 = {
341878
+ key: 2,
341879
+ class: "sd-toolbar-button__field sd-toolbar-split-field__main"
341880
+ };
341721
341881
  _hoisted_9 = ["onKeydown", "id"];
341722
341882
  _hoisted_10 = [
341723
341883
  "placeholder",
341724
341884
  "onKeydown",
341725
341885
  "id"
341726
341886
  ];
341727
- _hoisted_11 = ["innerHTML"];
341728
- _hoisted_12 = {
341887
+ _hoisted_11 = [
341888
+ "data-item",
341889
+ "aria-label",
341890
+ "disabled"
341891
+ ];
341892
+ _hoisted_12 = ["innerHTML"];
341893
+ _hoisted_13 = ["innerHTML"];
341894
+ _hoisted_14 = {
341729
341895
  "aria-live": "polite",
341730
341896
  class: "sd-visually-hidden"
341731
341897
  };
@@ -341768,21 +341934,28 @@ function print() { __p += __j.call(arguments, '') }
341768
341934
  emits: [
341769
341935
  "buttonClick",
341770
341936
  "textSubmit",
341771
- "mainClick"
341937
+ "mainClick",
341938
+ "tabOut"
341772
341939
  ],
341773
341940
  setup(__props, { emit: __emit }) {
341774
341941
  const emit = __emit;
341775
341942
  const props = __props;
341776
341943
  const { name, active, icon, label, hideLabel, iconColor, hasCaret, splitButton, disabled, expand, inlineTextInputVisible, hasInlineTextInput, minWidth, style: style2, attributes } = props.toolbarItem;
341777
341944
  const isSplit = exports_vue.computed(() => Boolean(splitButton?.value) && Boolean(hasCaret?.value));
341945
+ const isInlineSplitField = exports_vue.computed(() => name?.value === "fontSize" && Boolean(hasInlineTextInput?.value) && Boolean(hasCaret?.value));
341778
341946
  const inlineTextInput = exports_vue.ref(label);
341779
341947
  const inlineInput = exports_vue.ref(null);
341780
341948
  const { isHighContrastMode: isHighContrastMode$1 } = useHighContrastMode();
341949
+ const selectInlineInput = () => {
341950
+ exports_vue.nextTick(() => {
341951
+ inlineInput.value?.select();
341952
+ });
341953
+ };
341781
341954
  const handleClick$1 = () => {
341782
341955
  if (hasInlineTextInput)
341783
341956
  exports_vue.nextTick(() => {
341784
341957
  inlineInput.value?.focus();
341785
- inlineInput.value?.select();
341958
+ selectInlineInput();
341786
341959
  });
341787
341960
  emit("buttonClick");
341788
341961
  };
@@ -341815,6 +341988,14 @@ function print() { __p += __j.call(arguments, '') }
341815
341988
  emit("textSubmit", cleanValue);
341816
341989
  inlineTextInput.value = cleanValue;
341817
341990
  };
341991
+ const handleInputTab = (event) => {
341992
+ if (name?.value !== "fontSize")
341993
+ return;
341994
+ event.preventDefault();
341995
+ handleInputSubmit();
341996
+ inlineInput.value?.blur();
341997
+ emit("tabOut", event);
341998
+ };
341818
341999
  const getStyle = exports_vue.computed(() => {
341819
342000
  if (style2.value)
341820
342001
  return style2.value;
@@ -341831,7 +342012,7 @@ function print() { __p += __j.call(arguments, '') }
341831
342012
  "aria-label": exports_vue.unref(attributes).ariaLabel,
341832
342013
  "data-sd-part": "toolbar-item",
341833
342014
  onClick: handleOuterClick,
341834
- onKeydown: _cache[3] || (_cache[3] = exports_vue.withKeys(($event) => onEnterKeydown($event), ["enter"])),
342015
+ onKeydown: _cache[5] || (_cache[5] = exports_vue.withKeys(($event) => onEnterKeydown($event), ["enter"])),
341835
342016
  tabindex: "0"
341836
342017
  }, [exports_vue.createElementVNode("div", {
341837
342018
  class: exports_vue.normalizeClass(["sd-toolbar-button", {
@@ -341840,6 +342021,8 @@ function print() { __p += __j.call(arguments, '') }
341840
342021
  narrow: __props.isNarrow,
341841
342022
  wide: __props.isWide,
341842
342023
  split: isSplit.value,
342024
+ "split-field": isInlineSplitField.value,
342025
+ "sd-toolbar-split-field": isInlineSplitField.value,
341843
342026
  "has-inline-text-input": exports_vue.unref(hasInlineTextInput),
341844
342027
  "high-contrast": exports_vue.unref(isHighContrastMode$1)
341845
342028
  }]),
@@ -341860,7 +342043,7 @@ function print() { __p += __j.call(arguments, '') }
341860
342043
  "color",
341861
342044
  "icon",
341862
342045
  "name"
341863
- ])) : exports_vue.createCommentVNode("", true), exports_vue.unref(label) && !exports_vue.unref(hideLabel) && !exports_vue.unref(inlineTextInputVisible) ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_4$4, exports_vue.toDisplayString(exports_vue.unref(label)), 1)) : exports_vue.createCommentVNode("", true)], 8, _hoisted_3$5)) : exports_vue.createCommentVNode("", true),
342046
+ ])) : exports_vue.createCommentVNode("", true), exports_vue.unref(label) && !exports_vue.unref(hideLabel) && !exports_vue.unref(inlineTextInputVisible) ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_4$5, exports_vue.toDisplayString(exports_vue.unref(label)), 1)) : exports_vue.createCommentVNode("", true)], 8, _hoisted_3$6)) : exports_vue.createCommentVNode("", true),
341864
342047
  isSplit.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
341865
342048
  key: 1,
341866
342049
  class: "sd-toolbar-button__caret",
@@ -341871,7 +342054,7 @@ function print() { __p += __j.call(arguments, '') }
341871
342054
  class: "sd-dropdown-caret",
341872
342055
  innerHTML: caretIcon.value,
341873
342056
  style: exports_vue.normalizeStyle({ opacity: exports_vue.unref(disabled) ? 0.6 : 1 })
341874
- }, null, 12, _hoisted_6$1)], 8, _hoisted_5$2)) : (exports_vue.openBlock(), exports_vue.createElementBlock(exports_vue.Fragment, { key: 2 }, [
342057
+ }, null, 12, _hoisted_6$3)], 8, _hoisted_5$4)) : (exports_vue.openBlock(), exports_vue.createElementBlock(exports_vue.Fragment, { key: 2 }, [
341875
342058
  exports_vue.unref(icon) ? (exports_vue.openBlock(), exports_vue.createBlock(ToolbarButtonIcon_default, {
341876
342059
  key: 0,
341877
342060
  color: exports_vue.unref(iconColor),
@@ -341883,11 +342066,13 @@ function print() { __p += __j.call(arguments, '') }
341883
342066
  "icon",
341884
342067
  "name"
341885
342068
  ])) : exports_vue.createCommentVNode("", true),
341886
- exports_vue.unref(label) && !exports_vue.unref(hideLabel) && !exports_vue.unref(inlineTextInputVisible) ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_7$1, exports_vue.toDisplayString(exports_vue.unref(label)), 1)) : exports_vue.createCommentVNode("", true),
342069
+ exports_vue.unref(label) && !exports_vue.unref(hideLabel) && !exports_vue.unref(inlineTextInputVisible) ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_7$2, exports_vue.toDisplayString(exports_vue.unref(label)), 1)) : exports_vue.createCommentVNode("", true),
341887
342070
  exports_vue.unref(inlineTextInputVisible) ? (exports_vue.openBlock(), exports_vue.createElementBlock("span", _hoisted_8, [exports_vue.unref(name) === "fontSize" ? exports_vue.withDirectives((exports_vue.openBlock(), exports_vue.createElementBlock("input", {
341888
342071
  key: 0,
341889
342072
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => inlineTextInput.value = $event),
341890
- onKeydown: exports_vue.withKeys(exports_vue.withModifiers(handleInputSubmit, ["prevent"]), ["enter"]),
342073
+ onKeydown: [exports_vue.withKeys(exports_vue.withModifiers(handleInputSubmit, ["prevent"]), ["enter"]), exports_vue.withKeys(handleInputTab, ["tab"])],
342074
+ onFocus: selectInlineInput,
342075
+ onClick: _cache[2] || (_cache[2] = exports_vue.withModifiers(() => {}, ["stop"])),
341891
342076
  type: "text",
341892
342077
  class: exports_vue.normalizeClass(["button-text-input button-text-input--font-size", { "high-contrast": exports_vue.unref(isHighContrastMode$1) }]),
341893
342078
  id: "inlineTextInput-" + exports_vue.unref(name),
@@ -341896,7 +342081,7 @@ function print() { __p += __j.call(arguments, '') }
341896
342081
  ref: inlineInput
341897
342082
  }, null, 42, _hoisted_9)), [[exports_vue.vModelText, inlineTextInput.value]]) : exports_vue.withDirectives((exports_vue.openBlock(), exports_vue.createElementBlock("input", {
341898
342083
  key: 1,
341899
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => inlineTextInput.value = $event),
342084
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => inlineTextInput.value = $event),
341900
342085
  placeholder: exports_vue.unref(label),
341901
342086
  onKeydown: exports_vue.withKeys(exports_vue.withModifiers(handleInputSubmit, ["prevent"]), ["enter"]),
341902
342087
  type: "text",
@@ -341906,19 +342091,32 @@ function print() { __p += __j.call(arguments, '') }
341906
342091
  ref_key: "inlineInput",
341907
342092
  ref: inlineInput
341908
342093
  }, null, 40, _hoisted_10)), [[exports_vue.vModelText, inlineTextInput.value]])])) : exports_vue.createCommentVNode("", true),
341909
- exports_vue.unref(hasCaret) ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
342094
+ isInlineSplitField.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("button", {
341910
342095
  key: 3,
342096
+ type: "button",
342097
+ class: "sd-toolbar-button__field-caret sd-toolbar-split-field__caret",
342098
+ "data-item": `btn-${exports_vue.unref(name) || ""}-caret`,
342099
+ "aria-label": `${exports_vue.unref(attributes).ariaLabel} options`,
342100
+ disabled: exports_vue.unref(disabled),
342101
+ tabindex: "-1",
342102
+ onMousedown: _cache[4] || (_cache[4] = exports_vue.withModifiers(() => {}, ["prevent"]))
342103
+ }, [exports_vue.createElementVNode("span", {
341911
342104
  class: "sd-dropdown-caret",
341912
342105
  innerHTML: caretIcon.value,
341913
342106
  style: exports_vue.normalizeStyle({ opacity: exports_vue.unref(disabled) ? 0.6 : 1 })
341914
- }, null, 12, _hoisted_11)) : exports_vue.createCommentVNode("", true)
342107
+ }, null, 12, _hoisted_12)], 40, _hoisted_11)) : exports_vue.unref(hasCaret) ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
342108
+ key: 4,
342109
+ class: "sd-dropdown-caret",
342110
+ innerHTML: caretIcon.value,
342111
+ style: exports_vue.normalizeStyle({ opacity: exports_vue.unref(disabled) ? 0.6 : 1 })
342112
+ }, null, 12, _hoisted_13)) : exports_vue.createCommentVNode("", true)
341915
342113
  ], 64)),
341916
- exports_vue.createElementVNode("div", _hoisted_12, exports_vue.toDisplayString(`${exports_vue.unref(attributes).ariaLabel} ${exports_vue.unref(active) ? "selected" : "unset"}`), 1)
341917
- ], 10, _hoisted_2$6)], 46, _hoisted_1$9);
342114
+ exports_vue.createElementVNode("div", _hoisted_14, exports_vue.toDisplayString(`${exports_vue.unref(attributes).ariaLabel} ${exports_vue.unref(active) ? "selected" : "unset"}`), 1)
342115
+ ], 10, _hoisted_2$7)], 46, _hoisted_1$10);
341918
342116
  };
341919
342117
  }
341920
- }, [["__scopeId", "data-v-360f6a95"]]);
341921
- _hoisted_1$8 = {
342118
+ }, [["__scopeId", "data-v-2caa0057"]]);
342119
+ _hoisted_1$9 = {
341922
342120
  class: "toolbar-separator",
341923
342121
  role: "separator",
341924
342122
  "aria-label": "Toolbar separator"
@@ -341938,16 +342136,16 @@ function print() { __p += __j.call(arguments, '') }
341938
342136
  return "var(--sd-ui-border, #dbdbdb)";
341939
342137
  };
341940
342138
  return (_ctx, _cache) => {
341941
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$8, [exports_vue.createElementVNode("div", {
342139
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$9, [exports_vue.createElementVNode("div", {
341942
342140
  class: "separator-inner",
341943
342141
  style: exports_vue.normalizeStyle({ backgroundColor: getSeparatorColor() })
341944
342142
  }, null, 4)]);
341945
342143
  };
341946
342144
  }
341947
342145
  }, [["__scopeId", "data-v-d027f7fc"]]);
341948
- _hoisted_1$7 = { class: "overflow-menu" };
341949
- _hoisted_2$5 = { class: "overflow-menu-trigger" };
341950
- _hoisted_3$4 = {
342146
+ _hoisted_1$8 = { class: "overflow-menu" };
342147
+ _hoisted_2$6 = { class: "overflow-menu-trigger" };
342148
+ _hoisted_3$5 = {
341951
342149
  key: 0,
341952
342150
  class: "overflow-menu_items",
341953
342151
  role: "group"
@@ -341999,10 +342197,10 @@ function print() { __p += __j.call(arguments, '') }
341999
342197
  document.removeEventListener("keydown", handleKeyDown$1, true);
342000
342198
  });
342001
342199
  return (_ctx, _cache) => {
342002
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$7, [exports_vue.createElementVNode("div", _hoisted_2$5, [exports_vue.createVNode(ToolbarButton_default, {
342200
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$8, [exports_vue.createElementVNode("div", _hoisted_2$6, [exports_vue.createVNode(ToolbarButton_default, {
342003
342201
  "toolbar-item": overflowToolbarItem.value,
342004
342202
  onButtonClick: toggleOverflowMenu
342005
- }, null, 8, ["toolbar-item"])]), isOverflowMenuOpened.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_3$4, [exports_vue.createVNode(ButtonGroup_default, {
342203
+ }, null, 8, ["toolbar-item"])]), isOverflowMenuOpened.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_3$5, [exports_vue.createVNode(ButtonGroup_default, {
342006
342204
  class: "superdoc-toolbar-overflow",
342007
342205
  "toolbar-items": __props.overflowItems,
342008
342206
  "from-overflow": "",
@@ -342012,13 +342210,13 @@ function print() { __p += __j.call(arguments, '') }
342012
342210
  };
342013
342211
  }
342014
342212
  }, [["__scopeId", "data-v-35b48dff"]]);
342015
- _hoisted_1$6 = { class: "toolbar-dropdown" };
342016
- _hoisted_2$4 = ["onClick"];
342017
- _hoisted_3$3 = {
342213
+ _hoisted_1$7 = { class: "toolbar-dropdown" };
342214
+ _hoisted_2$5 = ["onClick"];
342215
+ _hoisted_3$4 = {
342018
342216
  key: 0,
342019
342217
  class: "toolbar-dropdown-option__icon"
342020
342218
  };
342021
- _hoisted_4$3 = { class: "toolbar-dropdown-option__label" };
342219
+ _hoisted_4$4 = { class: "toolbar-dropdown-option__label" };
342022
342220
  ToolbarDropdown_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
342023
342221
  __name: "ToolbarDropdown",
342024
342222
  props: {
@@ -342366,7 +342564,7 @@ function print() { __p += __j.call(arguments, '') }
342366
342564
  window.removeEventListener("scroll", updateMenuPosition, true);
342367
342565
  });
342368
342566
  return (_ctx, _cache) => {
342369
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$6, [exports_vue.createElementVNode("div", {
342567
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$7, [exports_vue.createElementVNode("div", {
342370
342568
  ref_key: "triggerRef",
342371
342569
  ref: triggerRef,
342372
342570
  class: "toolbar-dropdown-trigger",
@@ -342401,13 +342599,486 @@ function print() { __p += __j.call(arguments, '') }
342401
342599
  }), [isRenderOption(option) ? (exports_vue.openBlock(), exports_vue.createBlock(exports_vue.unref(RenderOption), {
342402
342600
  key: 0,
342403
342601
  option
342404
- }, null, 8, ["option"])) : (exports_vue.openBlock(), exports_vue.createElementBlock(exports_vue.Fragment, { key: 1 }, [hasIcon(option) ? (exports_vue.openBlock(), exports_vue.createElementBlock("span", _hoisted_3$3, [exports_vue.createVNode(exports_vue.unref(OptionIcon), { option }, null, 8, ["option"])])) : exports_vue.createCommentVNode("", true), exports_vue.createElementVNode("span", _hoisted_4$3, exports_vue.toDisplayString(option.label), 1)], 64))], 16, _hoisted_2$4);
342602
+ }, null, 8, ["option"])) : (exports_vue.openBlock(), exports_vue.createElementBlock(exports_vue.Fragment, { key: 1 }, [hasIcon(option) ? (exports_vue.openBlock(), exports_vue.createElementBlock("span", _hoisted_3$4, [exports_vue.createVNode(exports_vue.unref(OptionIcon), { option }, null, 8, ["option"])])) : exports_vue.createCommentVNode("", true), exports_vue.createElementVNode("span", _hoisted_4$4, exports_vue.toDisplayString(option.label), 1)], 64))], 16, _hoisted_2$5);
342405
342603
  }), 128))], 16)) : exports_vue.createCommentVNode("", true)]),
342406
342604
  _: 1
342407
342605
  })]))]);
342408
342606
  };
342409
342607
  }
342410
342608
  }, [["__scopeId", "data-v-69732782"]]);
342609
+ _hoisted_1$6 = [
342610
+ "value",
342611
+ "disabled",
342612
+ "aria-label",
342613
+ "aria-expanded",
342614
+ "aria-controls",
342615
+ "aria-activedescendant"
342616
+ ];
342617
+ _hoisted_2$4 = ["aria-label", "disabled"];
342618
+ _hoisted_3$3 = ["innerHTML"];
342619
+ _hoisted_4$3 = ["id", "aria-label"];
342620
+ _hoisted_5$3 = [
342621
+ "id",
342622
+ "aria-selected",
342623
+ "aria-label",
342624
+ "onMousedown",
342625
+ "onMouseenter"
342626
+ ];
342627
+ _hoisted_6$2 = { class: "toolbar-dropdown-option__label" };
342628
+ _hoisted_7$1 = {
342629
+ class: "sd-button-label sd-font-combobox__legacy-label",
342630
+ "aria-hidden": "true"
342631
+ };
342632
+ FontFamilyCombobox_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
342633
+ __name: "FontFamilyCombobox",
342634
+ props: {
342635
+ item: {
342636
+ type: Object,
342637
+ required: true
342638
+ },
342639
+ uiFontFamily: {
342640
+ type: String,
342641
+ default: "Arial, Helvetica, sans-serif"
342642
+ }
342643
+ },
342644
+ emits: [
342645
+ "command",
342646
+ "item-clicked",
342647
+ "tab-out",
342648
+ "editor-handoff"
342649
+ ],
342650
+ setup(__props, { emit: __emit }) {
342651
+ const props = __props;
342652
+ const emit = __emit;
342653
+ const { isHighContrastMode: isHighContrastMode$1 } = useHighContrastMode();
342654
+ const inputRef = exports_vue.ref(null);
342655
+ const rootRef = exports_vue.ref(null);
342656
+ const popupRef = exports_vue.ref(null);
342657
+ const optionRefs = exports_vue.ref([]);
342658
+ const isEditing = exports_vue.ref(false);
342659
+ const isOpen = exports_vue.ref(false);
342660
+ const activeIndex = exports_vue.ref(-1);
342661
+ const query = exports_vue.ref("");
342662
+ const inputDisplay = exports_vue.ref("");
342663
+ const isComposing = exports_vue.ref(false);
342664
+ const menuPosition = exports_vue.ref({
342665
+ top: "0px",
342666
+ left: "0px",
342667
+ minWidth: "0px",
342668
+ maxHeight: "none"
342669
+ });
342670
+ const options = exports_vue.computed(() => props.item.nestedOptions?.value ?? []);
342671
+ const optionLabels = exports_vue.computed(() => options.value.map((option) => String(option?.label ?? "")));
342672
+ const appliedLabel = exports_vue.computed(() => String(props.item.label?.value ?? ""));
342673
+ const disabled = exports_vue.computed(() => Boolean(props.item.disabled?.value));
342674
+ const ariaLabel = exports_vue.computed(() => props.item.attributes?.value?.ariaLabel ?? "Font family");
342675
+ const boundValue = exports_vue.computed(() => isEditing.value ? inputDisplay.value : appliedLabel.value);
342676
+ const listboxId = exports_vue.computed(() => `sd-fontfamily-listbox-${props.item.id?.value ?? "default"}`);
342677
+ const optionId = (index2) => `${listboxId.value}-option-${index2}`;
342678
+ const activeDescendant = exports_vue.computed(() => isOpen.value && activeIndex.value >= 0 ? optionId(activeIndex.value) : undefined);
342679
+ const caretIcon = exports_vue.computed(() => isOpen.value ? toolbarIcons.dropdownCaretUp : toolbarIcons.dropdownCaretDown);
342680
+ const previewFamilyForLabel = (label) => {
342681
+ const normalized = String(label ?? "").trim().toLowerCase();
342682
+ return options.value.find((candidate) => String(candidate?.label ?? "").trim().toLowerCase() === normalized)?.props?.style?.fontFamily || label || props.uiFontFamily;
342683
+ };
342684
+ const inputStyle = exports_vue.computed(() => ({ fontFamily: previewFamilyForLabel(isEditing.value ? inputDisplay.value : appliedLabel.value) }));
342685
+ const appliedIndex = () => {
342686
+ const selectedKey = props.item.selectedValue?.value;
342687
+ if (selectedKey) {
342688
+ const byKey = options.value.findIndex((option) => option?.key === selectedKey);
342689
+ if (byKey >= 0)
342690
+ return byKey;
342691
+ }
342692
+ return optionLabels.value.findIndex((label) => label.toLowerCase() === appliedLabel.value.toLowerCase());
342693
+ };
342694
+ const setSelectionRange = (start$1, end$1) => {
342695
+ const el = inputRef.value;
342696
+ if (!el || typeof el.setSelectionRange !== "function")
342697
+ return;
342698
+ try {
342699
+ el.setSelectionRange(start$1, end$1);
342700
+ } catch {}
342701
+ };
342702
+ const scrollActiveIntoView = () => {
342703
+ optionRefs.value[activeIndex.value]?.scrollIntoView?.({
342704
+ block: "nearest",
342705
+ inline: "nearest"
342706
+ });
342707
+ };
342708
+ const updatePosition$1 = () => {
342709
+ const trigger = rootRef.value;
342710
+ if (!trigger)
342711
+ return;
342712
+ const rect = trigger.getBoundingClientRect();
342713
+ const menuEl = popupRef.value;
342714
+ const menuHeight = menuEl?.scrollHeight ?? menuEl?.offsetHeight ?? 0;
342715
+ const viewportHeight = window.innerHeight || document.documentElement.clientHeight || 0;
342716
+ const viewportWidth = window.innerWidth || document.documentElement.clientWidth || 0;
342717
+ const gutter = 8;
342718
+ const gap = 4;
342719
+ const belowTop = rect.bottom + gap;
342720
+ const aboveBottom = rect.top - gap;
342721
+ const availableBelow = Math.max(0, viewportHeight - belowTop - gutter);
342722
+ const availableAbove = Math.max(0, aboveBottom - gutter);
342723
+ const openAbove = availableBelow < menuHeight && availableAbove > availableBelow;
342724
+ const maxHeight = openAbove ? availableAbove : availableBelow;
342725
+ const renderHeight = menuHeight ? Math.min(menuHeight, maxHeight) : maxHeight;
342726
+ const top$1 = openAbove ? Math.max(gutter, aboveBottom - renderHeight) : belowTop;
342727
+ const left$1 = Math.min(Math.max(gutter, rect.left), Math.max(gutter, viewportWidth - rect.width - gutter));
342728
+ menuPosition.value = {
342729
+ top: `${top$1}px`,
342730
+ left: `${left$1}px`,
342731
+ minWidth: `${rect.width}px`,
342732
+ maxHeight: `${maxHeight}px`
342733
+ };
342734
+ };
342735
+ const menuStyle = exports_vue.computed(() => ({
342736
+ position: "fixed",
342737
+ top: menuPosition.value.top,
342738
+ left: menuPosition.value.left,
342739
+ minWidth: menuPosition.value.minWidth,
342740
+ maxHeight: menuPosition.value.maxHeight,
342741
+ fontFamily: props.uiFontFamily,
342742
+ zIndex: 2000
342743
+ }));
342744
+ const setItemExpanded = (open) => {
342745
+ if (props.item.expand && typeof props.item.expand === "object" && "value" in props.item.expand)
342746
+ props.item.expand.value = open;
342747
+ };
342748
+ const openList = (index2, { focusInput = false } = {}) => {
342749
+ if (disabled.value || !options.value.length) {
342750
+ setItemExpanded(false);
342751
+ return;
342752
+ }
342753
+ isOpen.value = true;
342754
+ setItemExpanded(true);
342755
+ activeIndex.value = index2 ?? -1;
342756
+ if (focusInput) {
342757
+ isEditing.value = true;
342758
+ inputDisplay.value = appliedLabel.value;
342759
+ inputRef.value?.focus();
342760
+ }
342761
+ exports_vue.nextTick(() => {
342762
+ updatePosition$1();
342763
+ scrollActiveIntoView();
342764
+ });
342765
+ };
342766
+ const closeList = ({ syncItem = true } = {}) => {
342767
+ isOpen.value = false;
342768
+ activeIndex.value = -1;
342769
+ if (syncItem)
342770
+ setItemExpanded(false);
342771
+ };
342772
+ const resetToApplied = () => {
342773
+ closeList();
342774
+ isEditing.value = false;
342775
+ query.value = "";
342776
+ inputDisplay.value = appliedLabel.value;
342777
+ };
342778
+ const onFocus = () => {
342779
+ if (disabled.value)
342780
+ return;
342781
+ emit("item-clicked");
342782
+ isEditing.value = true;
342783
+ query.value = "";
342784
+ inputDisplay.value = appliedLabel.value;
342785
+ exports_vue.nextTick(() => setSelectionRange(0, inputDisplay.value.length));
342786
+ };
342787
+ const onInputMousedown = (event) => {
342788
+ if (disabled.value || document.activeElement === inputRef.value)
342789
+ return;
342790
+ event.preventDefault();
342791
+ inputRef.value?.focus();
342792
+ isEditing.value = true;
342793
+ query.value = "";
342794
+ inputDisplay.value = appliedLabel.value;
342795
+ setSelectionRange(0, appliedLabel.value.length);
342796
+ };
342797
+ const onBlur = (event) => {
342798
+ const next2 = event.relatedTarget;
342799
+ if (next2 instanceof Node && rootRef.value?.contains(next2))
342800
+ return;
342801
+ if (next2 instanceof Node && popupRef.value?.contains(next2))
342802
+ return;
342803
+ resetToApplied();
342804
+ };
342805
+ const onInput = (event) => {
342806
+ if (isComposing.value)
342807
+ return;
342808
+ const el = event.target;
342809
+ const typed = el.value;
342810
+ const selectionStart = typeof el.selectionStart === "number" ? el.selectionStart : typed.length;
342811
+ const selectionEnd = typeof el.selectionEnd === "number" ? el.selectionEnd : selectionStart;
342812
+ const isDelete = typeof event.inputType === "string" && event.inputType.startsWith("delete");
342813
+ const editAtEnd = selectionStart === typed.length && selectionEnd === typed.length;
342814
+ query.value = typed;
342815
+ const result = computeTypeahead(typed, optionLabels.value, { autocomplete: !isDelete && editAtEnd });
342816
+ inputDisplay.value = result.display;
342817
+ el.value = result.display;
342818
+ if (result.display === typed && !editAtEnd)
342819
+ setSelectionRange(selectionStart, selectionEnd);
342820
+ else
342821
+ setSelectionRange(result.selectionStart, result.selectionEnd);
342822
+ if (isOpen.value) {
342823
+ activeIndex.value = result.matchIndex;
342824
+ exports_vue.nextTick(scrollActiveIntoView);
342825
+ }
342826
+ };
342827
+ const onCompositionEnd = (event) => {
342828
+ isComposing.value = false;
342829
+ onInput(event);
342830
+ };
342831
+ const moveActive = (direction) => {
342832
+ if (!options.value.length)
342833
+ return;
342834
+ const count = options.value.length;
342835
+ activeIndex.value = ((activeIndex.value < 0 ? direction > 0 ? -1 : 0 : activeIndex.value) + direction + count) % count;
342836
+ exports_vue.nextTick(scrollActiveIntoView);
342837
+ };
342838
+ const emitFontCommand = (label, option) => {
342839
+ emit("item-clicked");
342840
+ emit("command", {
342841
+ item: props.item,
342842
+ argument: label,
342843
+ option
342844
+ });
342845
+ if (option)
342846
+ props.item.selectedValue.value = option.key;
342847
+ };
342848
+ const applyOption = (option) => {
342849
+ if (!option)
342850
+ return;
342851
+ emitFontCommand(option.label, option);
342852
+ isEditing.value = false;
342853
+ query.value = "";
342854
+ inputDisplay.value = option.label;
342855
+ closeList();
342856
+ };
342857
+ const applySelection = () => {
342858
+ if (isOpen.value && activeIndex.value >= 0) {
342859
+ applyOption(options.value[activeIndex.value]);
342860
+ return true;
342861
+ }
342862
+ const matchIndex = findPrefixMatchIndex(query.value, optionLabels.value);
342863
+ if (matchIndex >= 0) {
342864
+ applyOption(options.value[matchIndex]);
342865
+ return true;
342866
+ }
342867
+ const custom2 = normalizeCustomFontFamily(query.value);
342868
+ if (custom2) {
342869
+ emitFontCommand(custom2, null);
342870
+ isEditing.value = false;
342871
+ query.value = "";
342872
+ inputDisplay.value = custom2;
342873
+ closeList();
342874
+ return true;
342875
+ }
342876
+ return false;
342877
+ };
342878
+ const onKeydown = (event) => {
342879
+ if (event.isComposing || isComposing.value || event.keyCode === 229)
342880
+ return;
342881
+ if (event.ctrlKey || event.metaKey || event.altKey)
342882
+ return;
342883
+ switch (event.key) {
342884
+ case "ArrowDown":
342885
+ event.preventDefault();
342886
+ if (!isOpen.value) {
342887
+ const typedMatch = findPrefixMatchIndex(query.value, optionLabels.value);
342888
+ const index2 = typedMatch >= 0 ? typedMatch : appliedIndex();
342889
+ openList(index2 >= 0 ? index2 : 0);
342890
+ } else
342891
+ moveActive(1);
342892
+ break;
342893
+ case "ArrowUp":
342894
+ event.preventDefault();
342895
+ if (!isOpen.value) {
342896
+ const typedMatch = findPrefixMatchIndex(query.value, optionLabels.value);
342897
+ const index2 = typedMatch >= 0 ? typedMatch : appliedIndex();
342898
+ openList(index2 >= 0 ? index2 : options.value.length - 1);
342899
+ } else
342900
+ moveActive(-1);
342901
+ break;
342902
+ case "Enter":
342903
+ event.preventDefault();
342904
+ if (applySelection())
342905
+ emit("editor-handoff");
342906
+ inputRef.value?.blur();
342907
+ break;
342908
+ case "Tab":
342909
+ event.preventDefault();
342910
+ applySelection();
342911
+ closeList();
342912
+ inputRef.value?.blur();
342913
+ emit("tab-out", event);
342914
+ break;
342915
+ case "Escape":
342916
+ event.preventDefault();
342917
+ resetToApplied();
342918
+ exports_vue.nextTick(() => inputRef.value?.focus());
342919
+ break;
342920
+ default:
342921
+ break;
342922
+ }
342923
+ };
342924
+ const onCaretMousedown = (event) => {
342925
+ event.preventDefault();
342926
+ if (disabled.value)
342927
+ return;
342928
+ emit("item-clicked");
342929
+ if (!isEditing.value) {
342930
+ isEditing.value = true;
342931
+ inputDisplay.value = appliedLabel.value;
342932
+ inputRef.value?.focus();
342933
+ }
342934
+ if (isOpen.value)
342935
+ closeList();
342936
+ else {
342937
+ const index2 = appliedIndex();
342938
+ openList(index2 >= 0 ? index2 : 0);
342939
+ }
342940
+ };
342941
+ const onOptionMousedown = (event, option) => {
342942
+ event.preventDefault();
342943
+ applyOption(option);
342944
+ emit("editor-handoff");
342945
+ inputRef.value?.blur();
342946
+ };
342947
+ const onOptionMouseenter = (index2) => {
342948
+ activeIndex.value = index2;
342949
+ };
342950
+ const handleDocumentPointerDown = (event) => {
342951
+ if (!isOpen.value)
342952
+ return;
342953
+ const target = event.target;
342954
+ if (!(target instanceof Element))
342955
+ return;
342956
+ if (rootRef.value?.contains(target) || popupRef.value?.contains(target))
342957
+ return;
342958
+ closeList();
342959
+ };
342960
+ exports_vue.watch(isOpen, (open) => {
342961
+ if (open) {
342962
+ document.addEventListener("pointerdown", handleDocumentPointerDown, true);
342963
+ window.addEventListener("resize", updatePosition$1);
342964
+ window.addEventListener("scroll", updatePosition$1, true);
342965
+ } else {
342966
+ document.removeEventListener("pointerdown", handleDocumentPointerDown, true);
342967
+ window.removeEventListener("resize", updatePosition$1);
342968
+ window.removeEventListener("scroll", updatePosition$1, true);
342969
+ optionRefs.value = [];
342970
+ }
342971
+ }, { immediate: true });
342972
+ exports_vue.onBeforeUnmount(() => {
342973
+ document.removeEventListener("pointerdown", handleDocumentPointerDown, true);
342974
+ window.removeEventListener("resize", updatePosition$1);
342975
+ window.removeEventListener("scroll", updatePosition$1, true);
342976
+ });
342977
+ const setOptionRef = (el, index2) => {
342978
+ if (!el) {
342979
+ delete optionRefs.value[index2];
342980
+ return;
342981
+ }
342982
+ optionRefs.value[index2] = el;
342983
+ };
342984
+ const isOptionActive = (index2) => index2 === activeIndex.value;
342985
+ const isOptionSelected = (option) => option?.key && option.key === props.item.selectedValue?.value;
342986
+ exports_vue.watch(appliedLabel, (label) => {
342987
+ if (isEditing.value)
342988
+ return;
342989
+ inputDisplay.value = label;
342990
+ });
342991
+ exports_vue.watch(() => Boolean(props.item.expand?.value), (expanded) => {
342992
+ if (expanded && !isOpen.value) {
342993
+ const index2 = appliedIndex();
342994
+ openList(index2 >= 0 ? index2 : 0, { focusInput: true });
342995
+ return;
342996
+ }
342997
+ if (!expanded && isOpen.value)
342998
+ closeList({ syncItem: false });
342999
+ });
343000
+ return (_ctx, _cache) => {
343001
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", {
343002
+ ref_key: "rootRef",
343003
+ ref: rootRef,
343004
+ class: exports_vue.normalizeClass(["sd-font-combobox sd-toolbar-split-field", {
343005
+ "sd-disabled": disabled.value,
343006
+ "high-contrast": exports_vue.unref(isHighContrastMode$1)
343007
+ }]),
343008
+ style: exports_vue.normalizeStyle(props.item.style?.value),
343009
+ "data-item": "btn-fontFamily"
343010
+ }, [
343011
+ exports_vue.createElementVNode("span", {
343012
+ class: "sd-font-combobox__field sd-toolbar-split-field__main",
343013
+ onMousedown: onInputMousedown
343014
+ }, [exports_vue.createElementVNode("input", {
343015
+ ref_key: "inputRef",
343016
+ ref: inputRef,
343017
+ class: "button-text-input sd-font-combobox__input",
343018
+ type: "text",
343019
+ role: "combobox",
343020
+ autocomplete: "off",
343021
+ spellcheck: "false",
343022
+ value: boundValue.value,
343023
+ style: exports_vue.normalizeStyle(inputStyle.value),
343024
+ disabled: disabled.value,
343025
+ "aria-label": ariaLabel.value,
343026
+ "aria-expanded": isOpen.value ? "true" : "false",
343027
+ "aria-controls": listboxId.value,
343028
+ "aria-activedescendant": activeDescendant.value,
343029
+ "aria-haspopup": "listbox",
343030
+ "aria-autocomplete": "both",
343031
+ onFocus,
343032
+ onBlur,
343033
+ onInput,
343034
+ onKeydown,
343035
+ onCompositionstart: _cache[0] || (_cache[0] = ($event) => isComposing.value = true),
343036
+ onCompositionend: onCompositionEnd
343037
+ }, null, 44, _hoisted_1$6)], 32),
343038
+ exports_vue.createElementVNode("button", {
343039
+ type: "button",
343040
+ class: "sd-font-combobox__caret sd-toolbar-split-field__caret",
343041
+ "data-item": "btn-fontFamily-toggle",
343042
+ tabindex: "-1",
343043
+ "aria-label": `${ariaLabel.value} options`,
343044
+ disabled: disabled.value,
343045
+ onMousedown: onCaretMousedown
343046
+ }, [exports_vue.createElementVNode("span", {
343047
+ class: "sd-dropdown-caret",
343048
+ innerHTML: caretIcon.value
343049
+ }, null, 8, _hoisted_3$3)], 40, _hoisted_2$4),
343050
+ (exports_vue.openBlock(), exports_vue.createBlock(exports_vue.Teleport, { to: "body" }, [isOpen.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
343051
+ key: 0,
343052
+ ref_key: "popupRef",
343053
+ ref: popupRef,
343054
+ role: "listbox",
343055
+ id: listboxId.value,
343056
+ "aria-label": ariaLabel.value,
343057
+ class: exports_vue.normalizeClass(["sd-font-combobox__listbox", { "high-contrast": exports_vue.unref(isHighContrastMode$1) }]),
343058
+ style: exports_vue.normalizeStyle(menuStyle.value)
343059
+ }, [(exports_vue.openBlock(true), exports_vue.createElementBlock(exports_vue.Fragment, null, exports_vue.renderList(options.value, (option, index2) => {
343060
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", exports_vue.mergeProps({
343061
+ key: option.key,
343062
+ ref_for: true,
343063
+ ref: (el) => setOptionRef(el, index2),
343064
+ id: optionId(index2),
343065
+ role: "option",
343066
+ class: ["toolbar-dropdown-option sd-font-combobox__option", {
343067
+ "sd-active": isOptionActive(index2),
343068
+ "sd-selected": isOptionSelected(option)
343069
+ }],
343070
+ "aria-selected": isOptionSelected(option) ? "true" : "false",
343071
+ "aria-label": `${ariaLabel.value} - ${option.label}`
343072
+ }, { ref_for: true }, option.props, {
343073
+ onMousedown: (e) => onOptionMousedown(e, option),
343074
+ onMouseenter: ($event) => onOptionMouseenter(index2)
343075
+ }), [exports_vue.createElementVNode("span", _hoisted_6$2, exports_vue.toDisplayString(option.label), 1)], 16, _hoisted_5$3);
343076
+ }), 128))], 14, _hoisted_4$3)) : exports_vue.createCommentVNode("", true)])),
343077
+ exports_vue.createElementVNode("span", _hoisted_7$1, exports_vue.toDisplayString(appliedLabel.value), 1)
343078
+ ], 6);
343079
+ };
343080
+ }
343081
+ }, [["__scopeId", "data-v-1e39033e"]]);
342411
343082
  SdTooltip_default = /* @__PURE__ */ __plugin_vue_export_helper_default(/* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
342412
343083
  __name: "SdTooltip",
342413
343084
  props: {
@@ -342423,6 +343094,10 @@ function print() { __p += __j.call(arguments, '') }
342423
343094
  type: Number,
342424
343095
  default: 100
342425
343096
  },
343097
+ autoHideDuration: {
343098
+ type: Number,
343099
+ default: 0
343100
+ },
342426
343101
  disabled: {
342427
343102
  type: Boolean,
342428
343103
  default: false
@@ -342444,6 +343119,7 @@ function print() { __p += __j.call(arguments, '') }
342444
343119
  });
342445
343120
  let closeTimeout = null;
342446
343121
  let openTimeout = null;
343122
+ let autoHideTimeout = null;
342447
343123
  const mergedContentClass = exports_vue.computed(() => ["sd-tooltip-content", attrs.class]);
342448
343124
  const contentStyle = exports_vue.computed(() => ({
342449
343125
  ...props.contentStyle,
@@ -342465,6 +343141,21 @@ function print() { __p += __j.call(arguments, '') }
342465
343141
  openTimeout = null;
342466
343142
  }
342467
343143
  };
343144
+ const clearAutoHideTimeout = () => {
343145
+ if (autoHideTimeout) {
343146
+ window.clearTimeout(autoHideTimeout);
343147
+ autoHideTimeout = null;
343148
+ }
343149
+ };
343150
+ const scheduleAutoHide = () => {
343151
+ clearAutoHideTimeout();
343152
+ if (props.autoHideDuration <= 0)
343153
+ return;
343154
+ autoHideTimeout = window.setTimeout(() => {
343155
+ autoHideTimeout = null;
343156
+ close2();
343157
+ }, props.autoHideDuration);
343158
+ };
342468
343159
  const updatePosition$1 = () => {
342469
343160
  if (!triggerRef.value || !contentRef.value)
342470
343161
  return;
@@ -342490,10 +343181,12 @@ function print() { __p += __j.call(arguments, '') }
342490
343181
  isOpen.value = true;
342491
343182
  await exports_vue.nextTick();
342492
343183
  updatePosition$1();
343184
+ scheduleAutoHide();
342493
343185
  };
342494
343186
  const close2 = () => {
342495
343187
  clearOpenTimeout();
342496
343188
  clearCloseTimeout();
343189
+ clearAutoHideTimeout();
342497
343190
  if (!isOpen.value)
342498
343191
  return;
342499
343192
  isOpen.value = false;
@@ -342565,6 +343258,7 @@ function print() { __p += __j.call(arguments, '') }
342565
343258
  exports_vue.onBeforeUnmount(() => {
342566
343259
  clearOpenTimeout();
342567
343260
  clearCloseTimeout();
343261
+ clearAutoHideTimeout();
342568
343262
  window.removeEventListener("resize", updatePosition$1);
342569
343263
  window.removeEventListener("scroll", updatePosition$1, true);
342570
343264
  document.removeEventListener("keydown", handleEscape, true);
@@ -342595,15 +343289,17 @@ function print() { __p += __j.call(arguments, '') }
342595
343289
  })]))], 64);
342596
343290
  };
342597
343291
  }
342598
- }), [["__scopeId", "data-v-d8dd2f5a"]]);
342599
- _hoisted_1$5 = [
343292
+ }), [["__scopeId", "data-v-f0925f67"]]);
343293
+ _hoisted_1$5 = ["data-toolbar-position"];
343294
+ _hoisted_2$3 = [
342600
343295
  "onKeydown",
342601
343296
  "tabindex",
342602
343297
  "data-item-id"
342603
343298
  ];
342604
- _hoisted_2$3 = { key: 0 };
342605
343299
  _hoisted_3$2 = { key: 0 };
342606
343300
  _hoisted_4$2 = { key: 0 };
343301
+ _hoisted_5$2 = { key: 0 };
343302
+ _hoisted_6$1 = { key: 0 };
342607
343303
  ButtonGroup_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
342608
343304
  __name: "ButtonGroup",
342609
343305
  props: {
@@ -342664,8 +343360,10 @@ function print() { __p += __j.call(arguments, '') }
342664
343360
  });
342665
343361
  const isButton = (item) => item.type === "button";
342666
343362
  const isDropdown = (item) => item.type === "dropdown";
343363
+ const isFontFamily = (item) => item.type === "dropdown" && item.name?.value === "fontFamily";
342667
343364
  const isSeparator = (item) => item.type === "separator";
342668
343365
  const isOverflow = (item) => item.type === "overflow";
343366
+ const hasNestedOptions = (item) => Boolean(item.nestedOptions?.value?.length);
342669
343367
  const getExpanded = (item) => {
342670
343368
  if (!item)
342671
343369
  return false;
@@ -342729,16 +343427,19 @@ function print() { __p += __j.call(arguments, '') }
342729
343427
  argument: null
342730
343428
  });
342731
343429
  };
342732
- const closeDropdowns = () => {
343430
+ const closeDropdowns = (exceptItem = null) => {
342733
343431
  const toolbarItems = proxy?.$toolbar?.toolbarItems || [];
342734
343432
  const overflowItems = proxy?.$toolbar?.overflowItems || [];
342735
343433
  const allItems = [...toolbarItems, ...overflowItems];
342736
343434
  (allItems.length ? allItems : props.toolbarItems).forEach((toolbarItem) => {
343435
+ if (toolbarItem === exceptItem)
343436
+ return;
342737
343437
  const shouldCloseOverflow = isOverflow(toolbarItem) && !props.fromOverflow;
342738
343438
  if (isDropdown(toolbarItem) || shouldCloseOverflow)
342739
343439
  setExpanded(toolbarItem, false);
342740
343440
  });
342741
- currentItem.value = null;
343441
+ if (!exceptItem || currentItem.value !== exceptItem)
343442
+ currentItem.value = null;
342742
343443
  };
342743
343444
  const handleSelect = (item, option) => {
342744
343445
  closeDropdowns();
@@ -342749,6 +343450,39 @@ function print() { __p += __j.call(arguments, '') }
342749
343450
  });
342750
343451
  item.selectedValue.value = option.key;
342751
343452
  };
343453
+ const handleComboboxItemClicked = (item) => {
343454
+ closeDropdowns(item);
343455
+ emit("item-clicked");
343456
+ };
343457
+ const handleComboboxCommand = (payload) => {
343458
+ emit("command", payload);
343459
+ };
343460
+ const waitForFrame = () => new Promise((resolve2) => requestAnimationFrame(resolve2));
343461
+ const flushPendingToolbarMarks = () => Boolean(proxy?.$toolbar?.flushPendingMarkCommands?.());
343462
+ const handleEditorTextInputHandoff = () => {
343463
+ flushPendingToolbarMarks();
343464
+ prepareSelectionForTextInputHandoff(proxy?.$toolbar?.activeEditor);
343465
+ focusEditor();
343466
+ };
343467
+ const handleComboboxTabOut = (startIndex, event) => {
343468
+ closeDropdowns();
343469
+ flushPendingToolbarMarks();
343470
+ if (event.shiftKey)
343471
+ focusAdjacentToolbarControlAfterUpdate(startIndex, -1, () => focusPreviousButtonGroup() || focusEditor());
343472
+ else
343473
+ focusAdjacentToolbarControlAfterUpdate(startIndex, 1, true);
343474
+ };
343475
+ const handleToolbarButtonTabOut = (item, event) => {
343476
+ closeDropdowns();
343477
+ if (item.name.value === "fontSize" && !event.shiftKey) {
343478
+ handleEditorTextInputHandoff();
343479
+ return;
343480
+ }
343481
+ if (event.shiftKey)
343482
+ moveToAdjacentToolbarControl(event, -1);
343483
+ else
343484
+ moveToAdjacentToolbarControl(event, 1) || focusEditor();
343485
+ };
342752
343486
  const dropdownOptions = (item) => {
342753
343487
  if (!item.nestedOptions?.value?.length)
342754
343488
  return [];
@@ -342787,16 +343521,97 @@ function print() { __p += __j.call(arguments, '') }
342787
343521
  previousButton.focus();
342788
343522
  }
342789
343523
  };
343524
+ const focusEditor = () => {
343525
+ const editor = proxy?.$toolbar?.activeEditor;
343526
+ if (editor && typeof editor.focus === "function") {
343527
+ editor.focus();
343528
+ return true;
343529
+ }
343530
+ const editorDom = editor?.view?.dom;
343531
+ if (editorDom instanceof HTMLElement) {
343532
+ editorDom.focus();
343533
+ return true;
343534
+ }
343535
+ return false;
343536
+ };
343537
+ const getToolbarItemFocusTarget = (container) => {
343538
+ if (!(container instanceof HTMLElement))
343539
+ return null;
343540
+ if (container.classList.contains("sd-disabled"))
343541
+ return null;
343542
+ 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"])');
343543
+ };
343544
+ const getCurrentToolbarItemContainers = () => {
343545
+ if (toolbarItemRefs.value.length)
343546
+ return toolbarItemRefs.value;
343547
+ const group = document.querySelector(`.button-group[data-toolbar-position="${props.position}"]`);
343548
+ if (!group)
343549
+ return [];
343550
+ return Array.from(group.querySelectorAll(":scope > .sd-toolbar-item-ctn"));
343551
+ };
343552
+ const focusToolbarControlFromIndex = (startIndex, direction) => {
343553
+ if (startIndex < 0)
343554
+ return false;
343555
+ const containers = getCurrentToolbarItemContainers();
343556
+ let index2 = startIndex + direction;
343557
+ while (index2 >= 0 && index2 < containers.length) {
343558
+ const container = containers[index2];
343559
+ const target = getToolbarItemFocusTarget(container);
343560
+ if (target instanceof HTMLElement) {
343561
+ containers[startIndex]?.setAttribute("tabindex", "-1");
343562
+ container.setAttribute("tabindex", "0");
343563
+ target.focus();
343564
+ return true;
343565
+ }
343566
+ index2 += direction;
343567
+ }
343568
+ return false;
343569
+ };
343570
+ const focusPreviousButtonGroup = () => {
343571
+ const previousButtonGroup = buttonGroupRef.value?.previousElementSibling;
343572
+ if (previousButtonGroup instanceof HTMLElement) {
343573
+ previousButtonGroup.setAttribute("tabindex", "0");
343574
+ previousButtonGroup.focus();
343575
+ return true;
343576
+ }
343577
+ return false;
343578
+ };
343579
+ const focusAdjacentToolbarControlAfterUpdate = async (startIndex, direction, fallback = false) => {
343580
+ await exports_vue.nextTick();
343581
+ await waitForFrame();
343582
+ if (focusToolbarControlFromIndex(startIndex, direction))
343583
+ return;
343584
+ if (typeof fallback === "function") {
343585
+ fallback();
343586
+ return;
343587
+ }
343588
+ if (fallback)
343589
+ focusEditor();
343590
+ };
343591
+ const moveToAdjacentToolbarControl = (event, direction) => {
343592
+ const current = event.target.closest(".sd-toolbar-item-ctn");
343593
+ if (!(current instanceof HTMLElement))
343594
+ return false;
343595
+ let candidate = direction > 0 ? current.nextElementSibling : current.previousElementSibling;
343596
+ while (candidate) {
343597
+ const target = getToolbarItemFocusTarget(candidate);
343598
+ if (target instanceof HTMLElement) {
343599
+ current.setAttribute("tabindex", "-1");
343600
+ candidate.setAttribute("tabindex", "0");
343601
+ target.focus();
343602
+ return true;
343603
+ }
343604
+ candidate = direction > 0 ? candidate.nextElementSibling : candidate.previousElementSibling;
343605
+ }
343606
+ return false;
343607
+ };
342790
343608
  const moveToNextButtonGroup = (e) => {
342791
343609
  const nextButtonGroup = e.target.closest(".button-group").nextElementSibling;
342792
343610
  if (nextButtonGroup) {
342793
343611
  nextButtonGroup.setAttribute("tabindex", "0");
342794
343612
  nextButtonGroup.focus();
342795
- } else {
342796
- const editor = document.querySelector(".ProseMirror");
342797
- if (editor)
342798
- editor.focus();
342799
- }
343613
+ } else
343614
+ focusEditor();
342800
343615
  };
342801
343616
  const moveToPreviousButtonGroup = (e) => {
342802
343617
  const previousButtonGroup = e.target.closest(".button-group").previousElementSibling;
@@ -342816,7 +343631,7 @@ function print() { __p += __j.call(arguments, '') }
342816
343631
  };
342817
343632
  const handleKeyDown$1 = (e, item) => {
342818
343633
  const isTypingField = e.target.nodeName === "INPUT" || e.target.nodeName === "TEXTAREA";
342819
- const isTypingToolbarItem = item.name.value === "fontSize";
343634
+ const isTypingToolbarItem = item.name.value === "fontSize" || item.name.value === "fontFamily";
342820
343635
  if (isTypingField && isTypingToolbarItem)
342821
343636
  return;
342822
343637
  if (![
@@ -342882,7 +343697,7 @@ function print() { __p += __j.call(arguments, '') }
342882
343697
  const target = event.target;
342883
343698
  if (!(target instanceof Element))
342884
343699
  return;
342885
- if (target.closest(".sd-toolbar-dropdown-menu"))
343700
+ if (target.closest(".sd-toolbar-dropdown-menu, .sd-font-combobox__listbox"))
342886
343701
  return;
342887
343702
  if (buttonGroupRef.value?.contains(target))
342888
343703
  return;
@@ -342907,7 +343722,8 @@ function print() { __p += __j.call(arguments, '') }
342907
343722
  role: "group",
342908
343723
  onFocus: handleFocus,
342909
343724
  ref_key: "buttonGroupRef",
342910
- ref: buttonGroupRef
343725
+ ref: buttonGroupRef,
343726
+ "data-toolbar-position": props.position
342911
343727
  }, [(exports_vue.openBlock(true), exports_vue.createElementBlock(exports_vue.Fragment, null, exports_vue.renderList(__props.toolbarItems, (item, index2) => {
342912
343728
  return exports_vue.openBlock(), exports_vue.createElementBlock("div", {
342913
343729
  key: item.id.value,
@@ -342927,8 +343743,31 @@ function print() { __p += __j.call(arguments, '') }
342927
343743
  key: 0,
342928
343744
  style: { width: "20px" }
342929
343745
  })) : exports_vue.createCommentVNode("", true),
342930
- isDropdown(item) && item.nestedOptions?.value?.length ? (exports_vue.openBlock(), exports_vue.createBlock(ToolbarDropdown_default, {
343746
+ isFontFamily(item) && hasNestedOptions(item) ? (exports_vue.openBlock(), exports_vue.createBlock(SdTooltip_default, {
342931
343747
  key: 1,
343748
+ trigger: "hover",
343749
+ disabled: !item.tooltip?.value,
343750
+ "auto-hide-duration": TOOLBAR_TOOLTIP_AUTO_HIDE_MS,
343751
+ "content-style": { fontFamily: props.uiFontFamily }
343752
+ }, {
343753
+ trigger: exports_vue.withCtx(() => [exports_vue.createVNode(FontFamilyCombobox_default, {
343754
+ item,
343755
+ "ui-font-family": props.uiFontFamily,
343756
+ class: "sd-toolbar-button sd-editor-toolbar-dropdown",
343757
+ onCommand: handleComboboxCommand,
343758
+ onItemClicked: ($event) => handleComboboxItemClicked(item),
343759
+ onTabOut: ($event) => handleComboboxTabOut(index2, $event),
343760
+ onEditorHandoff: handleEditorTextInputHandoff
343761
+ }, null, 8, [
343762
+ "item",
343763
+ "ui-font-family",
343764
+ "onItemClicked",
343765
+ "onTabOut"
343766
+ ])]),
343767
+ 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)])]),
343768
+ _: 2
343769
+ }, 1032, ["disabled", "content-style"])) : isDropdown(item) && hasNestedOptions(item) ? (exports_vue.openBlock(), exports_vue.createBlock(ToolbarDropdown_default, {
343770
+ key: 2,
342932
343771
  options: dropdownOptions(item),
342933
343772
  disabled: item.disabled.value,
342934
343773
  show: getExpanded(item),
@@ -342948,6 +343787,7 @@ function print() { __p += __j.call(arguments, '') }
342948
343787
  trigger: exports_vue.withCtx(() => [exports_vue.createVNode(SdTooltip_default, {
342949
343788
  trigger: "hover",
342950
343789
  disabled: !item.tooltip?.value,
343790
+ "auto-hide-duration": TOOLBAR_TOOLTIP_AUTO_HIDE_MS,
342951
343791
  "content-style": { fontFamily: props.uiFontFamily }
342952
343792
  }, {
342953
343793
  trigger: exports_vue.withCtx(() => [exports_vue.createVNode(ToolbarButton_default, {
@@ -342955,14 +343795,16 @@ function print() { __p += __j.call(arguments, '') }
342955
343795
  disabled: item.disabled.value,
342956
343796
  "allow-enter-propagation": true,
342957
343797
  onTextSubmit: ($event) => handleToolbarButtonTextSubmit(item, $event),
342958
- onMainClick: ($event) => handleSplitButtonMainClick(item)
343798
+ onMainClick: ($event) => handleSplitButtonMainClick(item),
343799
+ onTabOut: ($event) => handleToolbarButtonTabOut(item, $event)
342959
343800
  }, null, 8, [
342960
343801
  "toolbar-item",
342961
343802
  "disabled",
342962
343803
  "onTextSubmit",
342963
- "onMainClick"
343804
+ "onMainClick",
343805
+ "onTabOut"
342964
343806
  ])]),
342965
- default: exports_vue.withCtx(() => [exports_vue.createElementVNode("div", null, [exports_vue.createTextVNode(exports_vue.toDisplayString(item.tooltip) + " ", 1), item.disabled.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("span", _hoisted_2$3, "(disabled)")) : exports_vue.createCommentVNode("", true)])]),
343807
+ default: exports_vue.withCtx(() => [exports_vue.createElementVNode("div", null, [exports_vue.createTextVNode(exports_vue.toDisplayString(item.tooltip) + " ", 1), item.disabled.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("span", _hoisted_4$2, "(disabled)")) : exports_vue.createCommentVNode("", true)])]),
342966
343808
  _: 2
342967
343809
  }, 1032, ["disabled", "content-style"])]),
342968
343810
  _: 2
@@ -342977,9 +343819,10 @@ function print() { __p += __j.call(arguments, '') }
342977
343819
  "menu-props",
342978
343820
  "node-props"
342979
343821
  ])) : isButton(item) ? (exports_vue.openBlock(), exports_vue.createBlock(SdTooltip_default, {
342980
- key: 2,
343822
+ key: 3,
342981
343823
  trigger: "hover",
342982
343824
  class: "sd-editor-toolbar-tooltip",
343825
+ "auto-hide-duration": TOOLBAR_TOOLTIP_AUTO_HIDE_MS,
342983
343826
  "content-style": { fontFamily: props.uiFontFamily }
342984
343827
  }, {
342985
343828
  trigger: exports_vue.withCtx(() => [exports_vue.createVNode(ToolbarButton_default, {
@@ -342993,11 +343836,11 @@ function print() { __p += __j.call(arguments, '') }
342993
343836
  "onTextSubmit",
342994
343837
  "onButtonClick"
342995
343838
  ])]),
342996
- default: exports_vue.withCtx(() => [item.tooltip ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_3$2, [exports_vue.createTextVNode(exports_vue.toDisplayString(item.tooltip) + " ", 1), item.disabled.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("span", _hoisted_4$2, "(disabled)")) : exports_vue.createCommentVNode("", true)])) : exports_vue.createCommentVNode("", true)]),
343839
+ default: exports_vue.withCtx(() => [item.tooltip ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_5$2, [exports_vue.createTextVNode(exports_vue.toDisplayString(item.tooltip) + " ", 1), item.disabled.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("span", _hoisted_6$1, "(disabled)")) : exports_vue.createCommentVNode("", true)])) : exports_vue.createCommentVNode("", true)]),
342997
343840
  _: 2
342998
343841
  }, 1032, ["content-style"])) : exports_vue.createCommentVNode("", true),
342999
343842
  isOverflow(item) && __props.overflowItems.length ? (exports_vue.openBlock(), exports_vue.createBlock(OverflowMenu_default, {
343000
- key: 3,
343843
+ key: 4,
343001
343844
  "toolbar-item": item,
343002
343845
  onButtonClick: ($event) => handleToolbarButtonClick(item),
343003
343846
  "overflow-items": __props.overflowItems,
@@ -343007,11 +343850,11 @@ function print() { __p += __j.call(arguments, '') }
343007
343850
  "onButtonClick",
343008
343851
  "overflow-items"
343009
343852
  ])) : exports_vue.createCommentVNode("", true)
343010
- ], 42, _hoisted_1$5);
343011
- }), 128))], 36);
343853
+ ], 42, _hoisted_2$3);
343854
+ }), 128))], 44, _hoisted_1$5);
343012
343855
  };
343013
343856
  }
343014
- }, [["__scopeId", "data-v-9c3524ec"]]);
343857
+ }, [["__scopeId", "data-v-181bd035"]]);
343015
343858
  Toolbar_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
343016
343859
  __name: "Toolbar",
343017
343860
  emits: [
@@ -343165,7 +344008,7 @@ function print() { __p += __j.call(arguments, '') }
343165
344008
  }, [["__scopeId", "data-v-938eaa1b"]]);
343166
344009
  toolbarTexts = {
343167
344010
  bold: "Bold",
343168
- fontFamily: "Font",
344011
+ fontFamily: "Font family",
343169
344012
  ai: "AI text generation",
343170
344013
  fontSize: "Font size",
343171
344014
  italic: "Italic",
@@ -343774,45 +344617,51 @@ function print() { __p += __j.call(arguments, '') }
343774
344617
  if (shouldRestoreFocus)
343775
344618
  this.#scheduleRestoreEditorFocus();
343776
344619
  }
343777
- onEditorSelectionUpdate() {
344620
+ flushPendingMarkCommands() {
343778
344621
  if (!this.activeEditor)
343779
- return;
343780
- if (this.pendingMarkCommands.length) {
343781
- const pending = this.pendingMarkCommands;
343782
- this.pendingMarkCommands = [];
343783
- pending.forEach(({ command: command$1, argument, item }) => {
343784
- if (!command$1)
343785
- return;
343786
- try {
343787
- if (HEADLESS_EXECUTE_ITEMS.has(item?.name?.value)) {
343788
- if (this.#executeHeadlessCommand(item, argument)) {
343789
- this.#ensureStoredMarksForMarkToggle({
343790
- command: command$1,
343791
- argument
343792
- });
343793
- return;
343794
- }
344622
+ return false;
344623
+ if (!this.pendingMarkCommands.length)
344624
+ return false;
344625
+ const pending = this.pendingMarkCommands;
344626
+ this.pendingMarkCommands = [];
344627
+ pending.forEach(({ command: command$1, argument, item }) => {
344628
+ if (!command$1)
344629
+ return;
344630
+ try {
344631
+ if (HEADLESS_EXECUTE_ITEMS.has(item?.name?.value)) {
344632
+ if (this.#executeHeadlessCommand(item, argument)) {
344633
+ this.#ensureStoredMarksForMarkToggle({
344634
+ command: command$1,
344635
+ argument
344636
+ });
344637
+ return;
343795
344638
  }
343796
- if (this.activeEditor.commands && command$1 in this.activeEditor.commands)
343797
- this.activeEditor.commands[command$1](argument);
343798
- this.#ensureStoredMarksForMarkToggle({
343799
- command: command$1,
343800
- argument
343801
- });
343802
- } catch (error48) {
343803
- const err = /* @__PURE__ */ new Error(`[super-toolbar \uD83C\uDFA8] Failed to execute pending command: ${command$1}`);
343804
- this.emit("exception", {
343805
- error: err,
343806
- editor: this.activeEditor,
343807
- originalError: error48
343808
- });
343809
- console.error(err, error48);
343810
344639
  }
343811
- });
343812
- this.#syncStickyMarksFromState();
343813
- this.updateToolbarState();
344640
+ if (this.activeEditor.commands && command$1 in this.activeEditor.commands)
344641
+ this.activeEditor.commands[command$1](argument);
344642
+ this.#ensureStoredMarksForMarkToggle({
344643
+ command: command$1,
344644
+ argument
344645
+ });
344646
+ } catch (error48) {
344647
+ const err = /* @__PURE__ */ new Error(`[super-toolbar \uD83C\uDFA8] Failed to execute pending command: ${command$1}`);
344648
+ this.emit("exception", {
344649
+ error: err,
344650
+ editor: this.activeEditor,
344651
+ originalError: error48
344652
+ });
344653
+ console.error(err, error48);
344654
+ }
344655
+ });
344656
+ this.#syncStickyMarksFromState();
344657
+ this.updateToolbarState();
344658
+ return true;
344659
+ }
344660
+ onEditorSelectionUpdate() {
344661
+ if (!this.activeEditor)
344662
+ return;
344663
+ if (this.flushPendingMarkCommands())
343814
344664
  return;
343815
- }
343816
344665
  if (this.#restoreStickyMarksIfNeeded())
343817
344666
  this.updateToolbarState();
343818
344667
  }
@@ -355779,161 +356628,166 @@ function print() { __p += __j.call(arguments, '') }
355779
356628
  ]);
355780
356629
  });
355781
356630
 
355782
- // ../../packages/superdoc/dist/chunks/create-super-doc-ui-uuXftA9o.es.js
355783
- var headlessToolbarConstants, MOD_ALIASES, ALT_ALIASES, CTRL_ALIASES, SHIFT_ALIASES, BUILTIN_CONTEXT_MENU_GROUPS, BUILTIN_GROUP_ORDER, RESERVED_PROXY_PROPERTY_NAMES, ALL_TOOLBAR_COMMAND_IDS, EMPTY_ACTIVE_IDS;
355784
- var init_create_super_doc_ui_uuXftA9o_es = __esm(() => {
355785
- init_SuperConverter_d9QeIy9_es();
355786
- init_create_headless_toolbar_l5QB6sQY_es();
356631
+ // ../../packages/superdoc/dist/chunks/create-super-doc-ui-DUYQPx-V.es.js
356632
+ 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;
356633
+ var init_create_super_doc_ui_DUYQPx_V_es = __esm(() => {
356634
+ init_SuperConverter_BTGVElJO_es();
356635
+ init_create_headless_toolbar_DYbkX05s_es();
356636
+ DEFAULT_TEXT_ALIGN_OPTIONS = [
356637
+ {
356638
+ label: "Left",
356639
+ value: "left"
356640
+ },
356641
+ {
356642
+ label: "Center",
356643
+ value: "center"
356644
+ },
356645
+ {
356646
+ label: "Right",
356647
+ value: "right"
356648
+ },
356649
+ {
356650
+ label: "Justify",
356651
+ value: "justify"
356652
+ }
356653
+ ];
356654
+ DEFAULT_LINE_HEIGHT_OPTIONS = [
356655
+ {
356656
+ label: "1.00",
356657
+ value: 1
356658
+ },
356659
+ {
356660
+ label: "1.15",
356661
+ value: 1.15
356662
+ },
356663
+ {
356664
+ label: "1.50",
356665
+ value: 1.5
356666
+ },
356667
+ {
356668
+ label: "2.00",
356669
+ value: 2
356670
+ },
356671
+ {
356672
+ label: "2.50",
356673
+ value: 2.5
356674
+ },
356675
+ {
356676
+ label: "3.00",
356677
+ value: 3
356678
+ }
356679
+ ];
356680
+ DEFAULT_ZOOM_OPTIONS = [
356681
+ {
356682
+ label: "50%",
356683
+ value: 50
356684
+ },
356685
+ {
356686
+ label: "75%",
356687
+ value: 75
356688
+ },
356689
+ {
356690
+ label: "90%",
356691
+ value: 90
356692
+ },
356693
+ {
356694
+ label: "100%",
356695
+ value: 100
356696
+ },
356697
+ {
356698
+ label: "125%",
356699
+ value: 125
356700
+ },
356701
+ {
356702
+ label: "150%",
356703
+ value: 150
356704
+ },
356705
+ {
356706
+ label: "200%",
356707
+ value: 200
356708
+ }
356709
+ ];
356710
+ DEFAULT_DOCUMENT_MODE_OPTIONS = [
356711
+ {
356712
+ label: "Editing",
356713
+ value: "editing",
356714
+ description: "Edit document directly"
356715
+ },
356716
+ {
356717
+ label: "Suggesting",
356718
+ value: "suggesting",
356719
+ description: "Edits become suggestions"
356720
+ },
356721
+ {
356722
+ label: "Viewing",
356723
+ value: "viewing",
356724
+ description: "View clean version of document only"
356725
+ }
356726
+ ];
356727
+ DEFAULT_FONT_SIZE_OPTIONS = [
356728
+ {
356729
+ label: "8",
356730
+ value: "8pt"
356731
+ },
356732
+ {
356733
+ label: "9",
356734
+ value: "9pt"
356735
+ },
356736
+ {
356737
+ label: "10",
356738
+ value: "10pt"
356739
+ },
356740
+ {
356741
+ label: "11",
356742
+ value: "11pt"
356743
+ },
356744
+ {
356745
+ label: "12",
356746
+ value: "12pt"
356747
+ },
356748
+ {
356749
+ label: "14",
356750
+ value: "14pt"
356751
+ },
356752
+ {
356753
+ label: "18",
356754
+ value: "18pt"
356755
+ },
356756
+ {
356757
+ label: "24",
356758
+ value: "24pt"
356759
+ },
356760
+ {
356761
+ label: "30",
356762
+ value: "30pt"
356763
+ },
356764
+ {
356765
+ label: "36",
356766
+ value: "36pt"
356767
+ },
356768
+ {
356769
+ label: "48",
356770
+ value: "48pt"
356771
+ },
356772
+ {
356773
+ label: "60",
356774
+ value: "60pt"
356775
+ },
356776
+ {
356777
+ label: "72",
356778
+ value: "72pt"
356779
+ },
356780
+ {
356781
+ label: "96",
356782
+ value: "96pt"
356783
+ }
356784
+ ];
355787
356785
  headlessToolbarConstants = {
355788
- DEFAULT_TEXT_ALIGN_OPTIONS: [
355789
- {
355790
- label: "Left",
355791
- value: "left"
355792
- },
355793
- {
355794
- label: "Center",
355795
- value: "center"
355796
- },
355797
- {
355798
- label: "Right",
355799
- value: "right"
355800
- },
355801
- {
355802
- label: "Justify",
355803
- value: "justify"
355804
- }
355805
- ],
355806
- DEFAULT_LINE_HEIGHT_OPTIONS: [
355807
- {
355808
- label: "1.00",
355809
- value: 1
355810
- },
355811
- {
355812
- label: "1.15",
355813
- value: 1.15
355814
- },
355815
- {
355816
- label: "1.50",
355817
- value: 1.5
355818
- },
355819
- {
355820
- label: "2.00",
355821
- value: 2
355822
- },
355823
- {
355824
- label: "2.50",
355825
- value: 2.5
355826
- },
355827
- {
355828
- label: "3.00",
355829
- value: 3
355830
- }
355831
- ],
355832
- DEFAULT_ZOOM_OPTIONS: [
355833
- {
355834
- label: "50%",
355835
- value: 50
355836
- },
355837
- {
355838
- label: "75%",
355839
- value: 75
355840
- },
355841
- {
355842
- label: "90%",
355843
- value: 90
355844
- },
355845
- {
355846
- label: "100%",
355847
- value: 100
355848
- },
355849
- {
355850
- label: "125%",
355851
- value: 125
355852
- },
355853
- {
355854
- label: "150%",
355855
- value: 150
355856
- },
355857
- {
355858
- label: "200%",
355859
- value: 200
355860
- }
355861
- ],
355862
- DEFAULT_DOCUMENT_MODE_OPTIONS: [
355863
- {
355864
- label: "Editing",
355865
- value: "editing",
355866
- description: "Edit document directly"
355867
- },
355868
- {
355869
- label: "Suggesting",
355870
- value: "suggesting",
355871
- description: "Edits become suggestions"
355872
- },
355873
- {
355874
- label: "Viewing",
355875
- value: "viewing",
355876
- description: "View clean version of document only"
355877
- }
355878
- ],
355879
- DEFAULT_FONT_SIZE_OPTIONS: [
355880
- {
355881
- label: "8",
355882
- value: "8pt"
355883
- },
355884
- {
355885
- label: "9",
355886
- value: "9pt"
355887
- },
355888
- {
355889
- label: "10",
355890
- value: "10pt"
355891
- },
355892
- {
355893
- label: "11",
355894
- value: "11pt"
355895
- },
355896
- {
355897
- label: "12",
355898
- value: "12pt"
355899
- },
355900
- {
355901
- label: "14",
355902
- value: "14pt"
355903
- },
355904
- {
355905
- label: "18",
355906
- value: "18pt"
355907
- },
355908
- {
355909
- label: "24",
355910
- value: "24pt"
355911
- },
355912
- {
355913
- label: "30",
355914
- value: "30pt"
355915
- },
355916
- {
355917
- label: "36",
355918
- value: "36pt"
355919
- },
355920
- {
355921
- label: "48",
355922
- value: "48pt"
355923
- },
355924
- {
355925
- label: "60",
355926
- value: "60pt"
355927
- },
355928
- {
355929
- label: "72",
355930
- value: "72pt"
355931
- },
355932
- {
355933
- label: "96",
355934
- value: "96pt"
355935
- }
355936
- ],
356786
+ DEFAULT_TEXT_ALIGN_OPTIONS,
356787
+ DEFAULT_LINE_HEIGHT_OPTIONS,
356788
+ DEFAULT_ZOOM_OPTIONS,
356789
+ DEFAULT_DOCUMENT_MODE_OPTIONS,
356790
+ DEFAULT_FONT_SIZE_OPTIONS,
355937
356791
  DEFAULT_FONT_FAMILY_OPTIONS: getDefaultFontFamilyOptions(),
355938
356792
  DEFAULT_TEXT_COLOR_OPTIONS: [
355939
356793
  {
@@ -356050,6 +356904,10 @@ var init_create_super_doc_ui_uuXftA9o_es = __esm(() => {
356050
356904
  ]);
356051
356905
  ALL_TOOLBAR_COMMAND_IDS = Object.keys(createToolbarRegistry());
356052
356906
  EMPTY_ACTIVE_IDS = Object.freeze([]);
356907
+ FONT_SIZE_OPTIONS = DEFAULT_FONT_SIZE_OPTIONS.map(({ label, value }) => ({
356908
+ label,
356909
+ value
356910
+ }));
356053
356911
  });
356054
356912
 
356055
356913
  // ../../packages/superdoc/dist/chunks/ui-C5PAS9hY.es.js
@@ -356065,16 +356923,16 @@ var init_zipper_yaJVJ4z9_es = __esm(() => {
356065
356923
 
356066
356924
  // ../../packages/superdoc/dist/super-editor.es.js
356067
356925
  var init_super_editor_es = __esm(() => {
356068
- init_src_LeQVnrcZ_es();
356069
- init_SuperConverter_d9QeIy9_es();
356926
+ init_src_CRJcfbIa_es();
356927
+ init_SuperConverter_BTGVElJO_es();
356070
356928
  init_jszip_C49i9kUs_es();
356071
356929
  init_xml_js_CqGKpaft_es();
356072
- init_create_headless_toolbar_l5QB6sQY_es();
356930
+ init_create_headless_toolbar_DYbkX05s_es();
356073
356931
  init_constants_D9qj59G2_es();
356074
356932
  init_dist_B8HfvhaK_es();
356075
356933
  init_unified_Dsuw2be5_es();
356076
356934
  init_DocxZipper_FUsfThjV_es();
356077
- init_create_super_doc_ui_uuXftA9o_es();
356935
+ init_create_super_doc_ui_DUYQPx_V_es();
356078
356936
  init_ui_C5PAS9hY_es();
356079
356937
  init_eventemitter3_BnGqBE_Q_es();
356080
356938
  init_errors_CNaD6vcg_es();
@@ -421425,7 +422283,7 @@ function normalizeKeyName2(name) {
421425
422283
  result = "Shift-" + result;
421426
422284
  return result;
421427
422285
  }
421428
- function normalize4(map10) {
422286
+ function normalize5(map10) {
421429
422287
  let copy4 = Object.create(null);
421430
422288
  for (let prop in map10)
421431
422289
  copy4[normalizeKeyName2(prop)] = map10[prop];
@@ -421443,7 +422301,7 @@ function modifiers2(name, event, shift3 = true) {
421443
422301
  return name;
421444
422302
  }
421445
422303
  function keydownHandler2(bindings) {
421446
- let map10 = normalize4(bindings);
422304
+ let map10 = normalize5(bindings);
421447
422305
  return function(view, event) {
421448
422306
  let name = keyName2(event), baseName2, direct = map10[modifiers2(name, event)];
421449
422307
  if (direct && direct(view.state, view.dispatch, view))
@@ -457299,7 +458157,7 @@ var init_exporter = __esm(() => {
457299
458157
  // ../../shared/font-system/src/types.ts
457300
458158
  var init_types8 = () => {};
457301
458159
 
457302
- // ../../node_modules/.pnpm/@docfonts+fallbacks@0.13.0/node_modules/@docfonts/fallbacks/dist/data.js
458160
+ // ../../node_modules/.pnpm/@docfonts+fallbacks@0.14.0/node_modules/@docfonts/fallbacks/dist/data.js
457303
458161
  var SUBSTITUTION_EVIDENCE2;
457304
458162
  var init_data = __esm(() => {
457305
458163
  SUBSTITUTION_EVIDENCE2 = [
@@ -457559,7 +458417,7 @@ var init_data = __esm(() => {
457559
458417
  meanDelta: 0,
457560
458418
  maxDelta: 0.5
457561
458419
  },
457562
- candidateLicense: "GPLv2-with-font-exception",
458420
+ candidateLicense: "GPL-2.0-only WITH Font-exception-2.0",
457563
458421
  faceVerdicts: {
457564
458422
  regular: "metric_safe",
457565
458423
  bold: "visual_only",
@@ -457682,7 +458540,7 @@ var init_data = __esm(() => {
457682
458540
  "bookman-old-style__tex-gyre-bonum#visual_review#2026-06-09"
457683
458541
  ],
457684
458542
  exportRule: "preserve_original_name",
457685
- candidateLicense: "GUST-Font-License-1.0"
458543
+ candidateLicense: "LicenseRef-GUST-Font-License-1.0"
457686
458544
  },
457687
458545
  {
457688
458546
  evidenceId: "century",
@@ -457709,6 +458567,31 @@ var init_data = __esm(() => {
457709
458567
  exportRule: "preserve_original_name",
457710
458568
  candidateLicense: "AGPL-3.0-only WITH PS-or-PDF-font-exception-20170817"
457711
458569
  },
458570
+ {
458571
+ evidenceId: "century-schoolbook",
458572
+ generic: "serif",
458573
+ logicalFamily: "Century Schoolbook",
458574
+ physicalFamily: "C059",
458575
+ verdict: "visual_only",
458576
+ faces: {
458577
+ regular: true,
458578
+ bold: true,
458579
+ italic: true,
458580
+ boldItalic: true
458581
+ },
458582
+ gates: {
458583
+ static: "pass",
458584
+ metric: "fail",
458585
+ layout: "not_run",
458586
+ ship: "fail"
458587
+ },
458588
+ policyAction: "substitute",
458589
+ measurementRefs: [
458590
+ "century-schoolbook__c059#visual_review#2026-06-09"
458591
+ ],
458592
+ exportRule: "preserve_original_name",
458593
+ candidateLicense: "AGPL-3.0-only WITH PS-or-PDF-font-exception-20170817"
458594
+ },
457712
458595
  {
457713
458596
  evidenceId: "garamond",
457714
458597
  generic: "serif",
@@ -458302,7 +459185,7 @@ var init_data = __esm(() => {
458302
459185
  ];
458303
459186
  });
458304
459187
 
458305
- // ../../node_modules/.pnpm/@docfonts+fallbacks@0.13.0/node_modules/@docfonts/fallbacks/dist/fallbacks.js
459188
+ // ../../node_modules/.pnpm/@docfonts+fallbacks@0.14.0/node_modules/@docfonts/fallbacks/dist/fallbacks.js
458306
459189
  function normalizeFamilyName2(name) {
458307
459190
  return name.trim().replace(/^['"]+|['"]+$/g, "").trim().toLowerCase();
458308
459191
  }
@@ -458396,7 +459279,7 @@ var init_fallbacks = __esm(() => {
458396
459279
  ]));
458397
459280
  });
458398
459281
 
458399
- // ../../node_modules/.pnpm/@docfonts+fallbacks@0.13.0/node_modules/@docfonts/fallbacks/dist/index.js
459282
+ // ../../node_modules/.pnpm/@docfonts+fallbacks@0.14.0/node_modules/@docfonts/fallbacks/dist/index.js
458400
459283
  var init_dist11 = __esm(() => {
458401
459284
  init_data();
458402
459285
  init_fallbacks();
@@ -458423,9 +459306,16 @@ var init_bundled_manifest = __esm(() => {
458423
459306
  family2("Carlito", "Carlito", "OFL-1.1"),
458424
459307
  family2("Caladea", "Caladea", "Apache-2.0"),
458425
459308
  family2("Liberation Sans", "LiberationSans", "OFL-1.1"),
459309
+ family2("Liberation Sans Narrow", "LiberationSansNarrow", "GPL-2.0-only WITH Font-exception-2.0"),
458426
459310
  family2("Liberation Serif", "LiberationSerif", "OFL-1.1"),
458427
459311
  family2("Liberation Mono", "LiberationMono", "OFL-1.1"),
458428
459312
  familyWithFaces2("Caprasimo", "OFL-1.1", [{ weight: "normal", style: "normal", file: "Caprasimo-Regular.woff2" }]),
459313
+ familyWithFaces2("C059", "AGPL-3.0-only WITH PS-or-PDF-font-exception-20170817", [
459314
+ { weight: "normal", style: "normal", file: "C059-Roman.woff2" },
459315
+ { weight: "bold", style: "normal", file: "C059-Bold.woff2" },
459316
+ { weight: "normal", style: "italic", file: "C059-Italic.woff2" },
459317
+ { weight: "bold", style: "italic", file: "C059-BdIta.woff2" }
459318
+ ]),
458429
459319
  familyWithFaces2("Bacasime Antique", "OFL-1.1", [
458430
459320
  { weight: "normal", style: "normal", file: "BacasimeAntique-Regular.woff2" }
458431
459321
  ]),
@@ -459140,8 +460030,10 @@ var init_font_offerings = __esm(() => {
459140
460030
  init_substitution_evidence();
459141
460031
  BUNDLED_FAMILIES2 = new Set(BUNDLED_MANIFEST2.map((f2) => f2.family));
459142
460032
  ADVERTISED_BUILT_IN_TOOLBAR_FAMILIES2 = new Set([
460033
+ "Arial Narrow",
459143
460034
  "Baskerville Old Face",
459144
460035
  "Brush Script MT",
460036
+ "Century",
459145
460037
  "Cooper Black",
459146
460038
  "Comic Sans MS",
459147
460039
  "Garamond",
@@ -492881,10 +493773,16 @@ function createSelectionTrackingBookmark2(selection) {
492881
493773
  }
492882
493774
  return selection.getBookmark();
492883
493775
  }
492884
- var CustomSelectionPluginKey2, SelectionHandlePluginKey2;
493776
+ var CustomSelectionPluginKey2, DEFAULT_CUSTOM_SELECTION_STATE2, SelectionHandlePluginKey2;
492885
493777
  var init_selection_state = __esm(() => {
492886
493778
  init_dist5();
492887
493779
  CustomSelectionPluginKey2 = new PluginKey2("CustomSelection");
493780
+ DEFAULT_CUSTOM_SELECTION_STATE2 = Object.freeze({
493781
+ focused: false,
493782
+ preservedSelection: null,
493783
+ showVisualSelection: false,
493784
+ skipFocusReset: false
493785
+ });
492888
493786
  SelectionHandlePluginKey2 = new PluginKey2("selectionHandle");
492889
493787
  });
492890
493788
 
@@ -492929,6 +493827,15 @@ function mapPreservedSelection2(selection, tr) {
492929
493827
  return null;
492930
493828
  }
492931
493829
  }
493830
+ function shouldClearPreservedSelectionOnSelectionMove2(tr, nextState) {
493831
+ if (!nextState?.preservedSelection)
493832
+ return false;
493833
+ if (tr.docChanged || !tr.selectionSet)
493834
+ return false;
493835
+ if (getFocusMeta2(tr) !== undefined)
493836
+ return false;
493837
+ return true;
493838
+ }
492932
493839
  var DEFAULT_SELECTION_STATE2, normalizeSelectionState2 = (state = {}) => ({
492933
493840
  ...DEFAULT_SELECTION_STATE2,
492934
493841
  ...state
@@ -492977,6 +493884,13 @@ var init_custom_selection = __esm(() => {
492977
493884
  const nextState = meta4 !== undefined ? normalizeSelectionState2({ ...value, ...meta4 }) : value;
492978
493885
  if (!nextState?.preservedSelection)
492979
493886
  return nextState;
493887
+ if (shouldClearPreservedSelectionOnSelectionMove2(tr, nextState)) {
493888
+ return {
493889
+ ...nextState,
493890
+ preservedSelection: null,
493891
+ showVisualSelection: false
493892
+ };
493893
+ }
492980
493894
  if (!tr.docChanged)
492981
493895
  return nextState;
492982
493896
  const mappedSelection = mapPreservedSelection2(nextState.preservedSelection, tr);