@superdoc-dev/cli 0.17.0-next.13 → 0.17.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 +1228 -370
  2. package/package.json +6 -6
package/dist/index.js CHANGED
@@ -68327,7 +68327,7 @@ var init_remark_gfm_BhnWr3yf_es = __esm(() => {
68327
68327
  emptyOptions2 = {};
68328
68328
  });
68329
68329
 
68330
- // ../../packages/superdoc/dist/chunks/SuperConverter-d9QeIy9-.es.js
68330
+ // ../../packages/superdoc/dist/chunks/SuperConverter-BTGVElJO.es.js
68331
68331
  function getExtensionConfigField(extension$1, field, context = { name: "" }) {
68332
68332
  const fieldValue = extension$1.config[field];
68333
68333
  if (typeof fieldValue === "function")
@@ -134327,7 +134327,7 @@ var isRegExp = (value) => {
134327
134327
  state.kern = kernNode.attributes["w:val"];
134328
134328
  }
134329
134329
  }, SuperConverter;
134330
- var init_SuperConverter_d9QeIy9_es = __esm(() => {
134330
+ var init_SuperConverter_BTGVElJO_es = __esm(() => {
134331
134331
  init_rolldown_runtime_Bg48TavK_es();
134332
134332
  init_jszip_C49i9kUs_es();
134333
134333
  init_xml_js_CqGKpaft_es();
@@ -171887,7 +171887,7 @@ var init_SuperConverter_d9QeIy9_es = __esm(() => {
171887
171887
  meanDelta: 0,
171888
171888
  maxDelta: 0.5
171889
171889
  },
171890
- candidateLicense: "GPLv2-with-font-exception",
171890
+ candidateLicense: "GPL-2.0-only WITH Font-exception-2.0",
171891
171891
  faceVerdicts: {
171892
171892
  regular: "metric_safe",
171893
171893
  bold: "visual_only",
@@ -171996,7 +171996,7 @@ var init_SuperConverter_d9QeIy9_es = __esm(() => {
171996
171996
  policyAction: "substitute",
171997
171997
  measurementRefs: ["bookman-old-style__tex-gyre-bonum#visual_review#2026-06-09"],
171998
171998
  exportRule: "preserve_original_name",
171999
- candidateLicense: "GUST-Font-License-1.0"
171999
+ candidateLicense: "LicenseRef-GUST-Font-License-1.0"
172000
172000
  },
172001
172001
  {
172002
172002
  evidenceId: "century",
@@ -172021,6 +172021,29 @@ var init_SuperConverter_d9QeIy9_es = __esm(() => {
172021
172021
  exportRule: "preserve_original_name",
172022
172022
  candidateLicense: "AGPL-3.0-only WITH PS-or-PDF-font-exception-20170817"
172023
172023
  },
172024
+ {
172025
+ evidenceId: "century-schoolbook",
172026
+ generic: "serif",
172027
+ logicalFamily: "Century Schoolbook",
172028
+ physicalFamily: "C059",
172029
+ verdict: "visual_only",
172030
+ faces: {
172031
+ regular: true,
172032
+ bold: true,
172033
+ italic: true,
172034
+ boldItalic: true
172035
+ },
172036
+ gates: {
172037
+ static: "pass",
172038
+ metric: "fail",
172039
+ layout: "not_run",
172040
+ ship: "fail"
172041
+ },
172042
+ policyAction: "substitute",
172043
+ measurementRefs: ["century-schoolbook__c059#visual_review#2026-06-09"],
172044
+ exportRule: "preserve_original_name",
172045
+ candidateLicense: "AGPL-3.0-only WITH PS-or-PDF-font-exception-20170817"
172046
+ },
172024
172047
  {
172025
172048
  evidenceId: "garamond",
172026
172049
  generic: "serif",
@@ -172579,6 +172602,7 @@ var init_SuperConverter_d9QeIy9_es = __esm(() => {
172579
172602
  family("Carlito", "Carlito", "OFL-1.1"),
172580
172603
  family("Caladea", "Caladea", "Apache-2.0"),
172581
172604
  family("Liberation Sans", "LiberationSans", "OFL-1.1"),
172605
+ family("Liberation Sans Narrow", "LiberationSansNarrow", "GPL-2.0-only WITH Font-exception-2.0"),
172582
172606
  family("Liberation Serif", "LiberationSerif", "OFL-1.1"),
172583
172607
  family("Liberation Mono", "LiberationMono", "OFL-1.1"),
172584
172608
  familyWithFaces("Caprasimo", "OFL-1.1", [{
@@ -172586,6 +172610,28 @@ var init_SuperConverter_d9QeIy9_es = __esm(() => {
172586
172610
  style: "normal",
172587
172611
  file: "Caprasimo-Regular.woff2"
172588
172612
  }]),
172613
+ familyWithFaces("C059", "AGPL-3.0-only WITH PS-or-PDF-font-exception-20170817", [
172614
+ {
172615
+ weight: "normal",
172616
+ style: "normal",
172617
+ file: "C059-Roman.woff2"
172618
+ },
172619
+ {
172620
+ weight: "bold",
172621
+ style: "normal",
172622
+ file: "C059-Bold.woff2"
172623
+ },
172624
+ {
172625
+ weight: "normal",
172626
+ style: "italic",
172627
+ file: "C059-Italic.woff2"
172628
+ },
172629
+ {
172630
+ weight: "bold",
172631
+ style: "italic",
172632
+ file: "C059-BdIta.woff2"
172633
+ }
172634
+ ]),
172589
172635
  familyWithFaces("Bacasime Antique", "OFL-1.1", [{
172590
172636
  weight: "normal",
172591
172637
  style: "normal",
@@ -172650,8 +172696,10 @@ var init_SuperConverter_d9QeIy9_es = __esm(() => {
172650
172696
  registriesByFontSet = /* @__PURE__ */ new WeakMap;
172651
172697
  BUNDLED_FAMILIES = new Set(BUNDLED_MANIFEST.map((f2) => f2.family));
172652
172698
  ADVERTISED_BUILT_IN_TOOLBAR_FAMILIES = new Set([
172699
+ "Arial Narrow",
172653
172700
  "Baskerville Old Face",
172654
172701
  "Brush Script MT",
172702
+ "Century",
172655
172703
  "Cooper Black",
172656
172704
  "Comic Sans MS",
172657
172705
  "Garamond",
@@ -174447,7 +174495,7 @@ var init_SuperConverter_d9QeIy9_es = __esm(() => {
174447
174495
  };
174448
174496
  });
174449
174497
 
174450
- // ../../packages/superdoc/dist/chunks/create-headless-toolbar-l5QB6sQY.es.js
174498
+ // ../../packages/superdoc/dist/chunks/create-headless-toolbar-DYbkX05s.es.js
174451
174499
  function parseSizeUnit(val = "0") {
174452
174500
  const length3 = val.toString() || "0";
174453
174501
  const value = Number.parseFloat(length3);
@@ -174457,6 +174505,43 @@ function parseSizeUnit(val = "0") {
174457
174505
  function getPreservedSelection(state) {
174458
174506
  return CustomSelectionPluginKey.getState(state)?.preservedSelection ?? null;
174459
174507
  }
174508
+ function getSelectedTextRange(state) {
174509
+ const { selection } = state;
174510
+ let from5 = null;
174511
+ let to = null;
174512
+ state.doc.nodesBetween(selection.from, selection.to, (node3, pos) => {
174513
+ if (!node3.isText || !node3.text)
174514
+ return;
174515
+ const start = pos;
174516
+ const end = pos + node3.nodeSize;
174517
+ from5 = from5 == null ? start : Math.min(from5, start);
174518
+ to = to == null ? end : Math.max(to, end);
174519
+ });
174520
+ return from5 == null || to == null ? null : {
174521
+ from: from5,
174522
+ to
174523
+ };
174524
+ }
174525
+ function prepareSelectionForTextInputHandoff(editor) {
174526
+ const state = editor?.view?.state ?? editor?.state;
174527
+ const dispatch = typeof editor?.view?.dispatch === "function" ? editor.view.dispatch.bind(editor.view) : typeof editor?.dispatch === "function" ? editor.dispatch.bind(editor) : null;
174528
+ if (!state || !dispatch)
174529
+ return false;
174530
+ let tr = state.tr.setMeta(CustomSelectionPluginKey, DEFAULT_CUSTOM_SELECTION_STATE);
174531
+ if (state.selection instanceof AllSelection) {
174532
+ const range = getSelectedTextRange(state);
174533
+ if (range)
174534
+ try {
174535
+ tr = tr.setSelection(TextSelection.create(tr.doc, range.from, range.to));
174536
+ } catch {}
174537
+ }
174538
+ dispatch(tr);
174539
+ editor?.setOptions?.({
174540
+ preservedSelection: null,
174541
+ lastSelection: null
174542
+ });
174543
+ return true;
174544
+ }
174460
174545
  function createSelectionTrackingBookmark(selection) {
174461
174546
  if (selection instanceof TextSelection && !selection.empty)
174462
174547
  return new InclusiveTextSelectionBookmark(selection.anchor, selection.head);
@@ -182050,7 +182135,7 @@ var CSS_DIMENSION_REGEX, DOM_SIZE_UNITS, normalizeActorId = (value) => {
182050
182135
  static create(config2) {
182051
182136
  return new Extension2(config2);
182052
182137
  }
182053
- }, CustomSelectionPluginKey, InclusiveTextSelectionBookmark = class InclusiveTextSelectionBookmark2 {
182138
+ }, CustomSelectionPluginKey, DEFAULT_CUSTOM_SELECTION_STATE, InclusiveTextSelectionBookmark = class InclusiveTextSelectionBookmark2 {
182054
182139
  constructor(anchor, head) {
182055
182140
  this.anchor = anchor;
182056
182141
  this.head = head;
@@ -184805,8 +184890,8 @@ var CSS_DIMENSION_REGEX, DOM_SIZE_UNITS, normalizeActorId = (value) => {
184805
184890
  }
184806
184891
  };
184807
184892
  };
184808
- var init_create_headless_toolbar_l5QB6sQY_es = __esm(() => {
184809
- init_SuperConverter_d9QeIy9_es();
184893
+ var init_create_headless_toolbar_DYbkX05s_es = __esm(() => {
184894
+ init_SuperConverter_BTGVElJO_es();
184810
184895
  init_uuid_B2wVPhPi_es();
184811
184896
  init_constants_D9qj59G2_es();
184812
184897
  init_dist_B8HfvhaK_es();
@@ -184827,6 +184912,12 @@ var init_create_headless_toolbar_l5QB6sQY_es = __esm(() => {
184827
184912
  "vmax"
184828
184913
  ];
184829
184914
  CustomSelectionPluginKey = new PluginKey("CustomSelection");
184915
+ DEFAULT_CUSTOM_SELECTION_STATE = Object.freeze({
184916
+ focused: false,
184917
+ preservedSelection: null,
184918
+ showVisualSelection: false,
184919
+ skipFocusReset: false
184920
+ });
184830
184921
  SelectionHandlePluginKey = new PluginKey("selectionHandle");
184831
184922
  MIME_TYPE_TO_EXTENSION2 = {
184832
184923
  "image/svg+xml": "svg",
@@ -233969,7 +234060,7 @@ var init_remark_gfm_eZN6yzWQ_es = __esm(() => {
233969
234060
  init_remark_gfm_BhnWr3yf_es();
233970
234061
  });
233971
234062
 
233972
- // ../../packages/superdoc/dist/chunks/src-LeQVnrcZ.es.js
234063
+ // ../../packages/superdoc/dist/chunks/src-CRJcfbIa.es.js
233973
234064
  function deleteProps(obj, propOrProps) {
233974
234065
  const props = typeof propOrProps === "string" ? [propOrProps] : propOrProps;
233975
234066
  const removeNested = (target, pathParts, index2 = 0) => {
@@ -234071,6 +234162,15 @@ function mapPreservedSelection(selection, tr) {
234071
234162
  return null;
234072
234163
  }
234073
234164
  }
234165
+ function shouldClearPreservedSelectionOnSelectionMove(tr, nextState) {
234166
+ if (!nextState?.preservedSelection)
234167
+ return false;
234168
+ if (tr.docChanged || !tr.selectionSet)
234169
+ return false;
234170
+ if (getFocusMeta(tr) !== undefined)
234171
+ return false;
234172
+ return true;
234173
+ }
234074
234174
  function applySelectionCleanup(editor, tr) {
234075
234175
  let cleaned = tr.setMeta(CustomSelectionPluginKey, DEFAULT_SELECTION_STATE);
234076
234176
  const sel = cleaned.selection;
@@ -235151,13 +235251,13 @@ function normalizeYjsFragmentForSchema(fragment2) {
235151
235251
  if (!isTraversableYjsXml(fragment2))
235152
235252
  return false;
235153
235253
  let changed = false;
235154
- const normalize4 = () => {
235254
+ const normalize$1 = () => {
235155
235255
  changed = stripSchemaAtomChildren(fragment2) || changed;
235156
235256
  };
235157
235257
  if (fragment2.doc)
235158
- fragment2.doc.transact(normalize4, NORMALIZE_YJS_FRAGMENT_ORIGIN);
235258
+ fragment2.doc.transact(normalize$1, NORMALIZE_YJS_FRAGMENT_ORIGIN);
235159
235259
  else
235160
- normalize4();
235260
+ normalize$1();
235161
235261
  return changed;
235162
235262
  }
235163
235263
  function normalizeYjsFragmentEventsForSchema(events, fallbackFragment) {
@@ -235166,7 +235266,7 @@ function normalizeYjsFragmentEventsForSchema(events, fallbackFragment) {
235166
235266
  if (events.some((event) => event?.transaction?.origin === NORMALIZE_YJS_FRAGMENT_ORIGIN))
235167
235267
  return false;
235168
235268
  let changed = false;
235169
- const normalize4 = () => {
235269
+ const normalize$1 = () => {
235170
235270
  const visited = /* @__PURE__ */ new Set;
235171
235271
  for (const event of events) {
235172
235272
  const target = findNormalizableEventTarget(event?.target);
@@ -235178,9 +235278,9 @@ function normalizeYjsFragmentEventsForSchema(events, fallbackFragment) {
235178
235278
  };
235179
235279
  const doc$12 = fallbackFragment?.doc || findEventDoc(events);
235180
235280
  if (doc$12)
235181
- doc$12.transact(normalize4, NORMALIZE_YJS_FRAGMENT_ORIGIN);
235281
+ doc$12.transact(normalize$1, NORMALIZE_YJS_FRAGMENT_ORIGIN);
235182
235282
  else
235183
- normalize4();
235283
+ normalize$1();
235184
235284
  return changed;
235185
235285
  }
235186
235286
  function stripSchemaAtomChildren(parent) {
@@ -239307,11 +239407,7 @@ function parseCellVerticalAlignFromStyle(element3) {
239307
239407
  }
239308
239408
  function findRemovedFieldAnnotations(tr) {
239309
239409
  let removedNodes = [];
239310
- if (!tr.steps.length || tr.meta && !Object.keys(tr.meta).every((meta2) => [
239311
- "inputType",
239312
- "uiEvent",
239313
- "paste"
239314
- ].includes(meta2)) || ["historyUndo", "historyRedo"].includes(tr.getMeta("inputType")) || ["drop"].includes(tr.getMeta("uiEvent")) || tr.getMeta("fieldAnnotationUpdate") === true || tr.getMeta("tableGeneration") === true)
239410
+ if (!tr.steps.length || tr.meta && !Object.keys(tr.meta).every((meta2) => ALLOWED_META_KEYS$1.includes(meta2)) || ["historyUndo", "historyRedo"].includes(tr.getMeta("inputType")) || ["drop"].includes(tr.getMeta("uiEvent")) || tr.getMeta("fieldAnnotationUpdate") === true || tr.getMeta("tableGeneration") === true)
239315
239411
  return removedNodes;
239316
239412
  if (!transactionDeletedAnything(tr))
239317
239413
  return removedNodes;
@@ -295793,12 +295889,12 @@ var Node$13 = class Node$14 {
295793
295889
  }, registerYjsFragmentNormalizer = (fragment2) => {
295794
295890
  if (!fragment2 || typeof fragment2.observeDeep !== "function" || typeof fragment2.unobserveDeep !== "function")
295795
295891
  return () => {};
295796
- const normalize4 = (events) => {
295892
+ const normalize$1 = (events) => {
295797
295893
  normalizeYjsFragmentEventsForSchema(events, fragment2);
295798
295894
  };
295799
- fragment2.observeDeep(normalize4);
295895
+ fragment2.observeDeep(normalize$1);
295800
295896
  return () => {
295801
- fragment2.unobserveDeep(normalize4);
295897
+ fragment2.unobserveDeep(normalize$1);
295802
295898
  };
295803
295899
  }, initializeMetaMap = (ydoc, editor) => {
295804
295900
  seedPartsFromEditor(editor, ydoc);
@@ -300858,7 +300954,7 @@ var Node$13 = class Node$14 {
300858
300954
  return true;
300859
300955
  });
300860
300956
  }
300861
- }, FieldAnnotationPlugin = (options = {}) => {
300957
+ }, ALLOWED_META_KEYS$1, FieldAnnotationPlugin = (options = {}) => {
300862
300958
  let { editor, annotationClass: annotationClass$1 } = options;
300863
300959
  return new Plugin({
300864
300960
  key: new PluginKey("fieldAnnotation"),
@@ -303397,7 +303493,7 @@ var Node$13 = class Node$14 {
303397
303493
  }, getTypeName = (markLike) => {
303398
303494
  return markLike?.type?.name ?? markLike?.type;
303399
303495
  }, isTrackFormatNoOp = (before2, after2) => {
303400
- const normalize4 = (entries2) => entries2.map((s2) => ({
303496
+ const normalize$1 = (entries2) => entries2.map((s2) => ({
303401
303497
  type: getTypeName(s2),
303402
303498
  attrs: normalizeSnapshotAttrs(s2.attrs || {})
303403
303499
  })).filter((s2) => {
@@ -303405,8 +303501,8 @@ var Node$13 = class Node$14 {
303405
303501
  return false;
303406
303502
  return true;
303407
303503
  });
303408
- const normBefore = normalize4(before2);
303409
- const normAfter = normalize4(after2);
303504
+ const normBefore = normalize$1(before2);
303505
+ const normAfter = normalize$1(after2);
303410
303506
  if (normBefore.length === 0 && normAfter.length === 0)
303411
303507
  return true;
303412
303508
  if (normBefore.length !== normAfter.length)
@@ -307332,7 +307428,7 @@ var Node$13 = class Node$14 {
307332
307428
  if (!target || !target.classList)
307333
307429
  return;
307334
307430
  target.classList.add(STYLE_ISOLATION_CLASS);
307335
- }, _hoisted_1$22, _hoisted_2$17, _hoisted_3$13, _hoisted_4$9, _hoisted_5$7, Mentions_default, popoverPluginKey, PopoverPlugin, Popover = class {
307431
+ }, _hoisted_1$23, _hoisted_2$18, _hoisted_3$14, _hoisted_4$10, _hoisted_5$9, Mentions_default, popoverPluginKey, PopoverPlugin, Popover = class {
307336
307432
  constructor(view, editor) {
307337
307433
  this.editor = editor;
307338
307434
  this.view = view;
@@ -309073,7 +309169,7 @@ var Node$13 = class Node$14 {
309073
309169
  </linearGradient>
309074
309170
  </defs>
309075
309171
  <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"/>
309076
- </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>
309172
+ </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>
309077
309173
  `, 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>
309078
309174
  `, 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">
309079
309175
  <g clip-path="url(#clip0_0_1)">
@@ -309140,8 +309236,8 @@ var Node$13 = class Node$14 {
309140
309236
  `, 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>
309141
309237
  `, 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>
309142
309238
  `, 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>
309143
- `, 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>
309144
- `, _hoisted_1$14, _hoisted_2$11, _hoisted_3$8, IconGrid_default, closeDropdown$1 = (dropdown) => {
309239
+ `, 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>
309240
+ `, _hoisted_1$15, _hoisted_2$12, _hoisted_3$9, IconGrid_default, closeDropdown$1 = (dropdown) => {
309145
309241
  dropdown.expand.value = false;
309146
309242
  }, makeColorOption = (color2, label = null) => {
309147
309243
  return {
@@ -309172,8 +309268,8 @@ var Node$13 = class Node$14 {
309172
309268
  })]);
309173
309269
  }, icons, getAvailableColorOptions = () => {
309174
309270
  return icons.flat().map((item) => item.value);
309175
- }, _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>
309176
- `, _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) => {
309271
+ }, _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>
309272
+ `, _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) => {
309177
309273
  dropdown.expand.value = false;
309178
309274
  }, makeDefaultItems = ({ superToolbar, toolbarIcons: toolbarIcons$1, toolbarTexts: toolbarTexts$1, toolbarFonts, hideButtons, availableWidth, role, isDev = false } = {}) => {
309179
309275
  const bold2 = useToolbarItem({
@@ -310237,7 +310333,39 @@ var Node$13 = class Node$14 {
310237
310333
  defaultItems: visibleItems,
310238
310334
  overflowItems: overflowItems.filter((item) => item.type !== "separator")
310239
310335
  };
310240
- }, _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 = {}) => {
310336
+ }, _hoisted_1$11, _hoisted_2$8, ToolbarButtonIcon_default, _hoisted_1$10, _hoisted_2$7, _hoisted_3$6, _hoisted_4$5, _hoisted_5$4, _hoisted_6$3, _hoisted_7$2, _hoisted_8, _hoisted_9, _hoisted_10, _hoisted_11, _hoisted_12, _hoisted_13, _hoisted_14, ToolbarButton_default, _hoisted_1$9, ToolbarSeparator_default, _hoisted_1$8, _hoisted_2$6, _hoisted_3$5, OverflowMenu_default, _hoisted_1$7, _hoisted_2$5, _hoisted_3$4, _hoisted_4$4, TRIGGER_FOCUS_SELECTOR = 'button, [href], input, select, textarea, [role="button"], [tabindex]:not([tabindex="-1"])', ToolbarDropdown_default, normalize4 = (value) => String(value ?? "").trim().toLowerCase(), findPrefixMatchIndex = (query2, labels) => {
310337
+ const q$1 = normalize4(query2);
310338
+ if (!q$1)
310339
+ return -1;
310340
+ for (let i4 = 0;i4 < labels.length; i4 += 1)
310341
+ if (normalize4(labels[i4]).startsWith(q$1))
310342
+ return i4;
310343
+ return -1;
310344
+ }, computeTypeahead = (query2, labels, { autocomplete = true } = {}) => {
310345
+ const typed = String(query2 ?? "");
310346
+ const matchIndex = findPrefixMatchIndex(typed, labels);
310347
+ const completion = matchIndex >= 0 ? String(labels[matchIndex] ?? "") : "";
310348
+ if (autocomplete && matchIndex >= 0 && completion.length > typed.length)
310349
+ return {
310350
+ matchIndex,
310351
+ display: completion,
310352
+ selectionStart: typed.length,
310353
+ selectionEnd: completion.length
310354
+ };
310355
+ return {
310356
+ matchIndex,
310357
+ display: typed,
310358
+ selectionStart: typed.length,
310359
+ selectionEnd: typed.length
310360
+ };
310361
+ }, stripWrappingQuotes = (value) => {
310362
+ let result = String(value ?? "").trim();
310363
+ while (result.length >= 2 && (result.startsWith('"') && result.endsWith('"') || result.startsWith("'") && result.endsWith("'")))
310364
+ result = result.slice(1, -1).trim();
310365
+ return result;
310366
+ }, normalizeCustomFontFamily = (value) => {
310367
+ return stripWrappingQuotes((String(value ?? "").split(",")[0] ?? "").replace(/[\u0000-\u001f\u007f]/g, "")).replace(/\s+/g, " ").trim();
310368
+ }, _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 = {}) => {
310241
310369
  const fontFamilyProps = paragraphProps?.runProperties?.fontFamily;
310242
310370
  if (!fontFamilyProps)
310243
310371
  return null;
@@ -310456,6 +310584,14 @@ var Node$13 = class Node$14 {
310456
310584
  const before2 = $pos.parent.childBefore($pos.parentOffset).node;
310457
310585
  const after2 = $pos.parent.childAfter($pos.parentOffset).node;
310458
310586
  return isInlineStructuredContentNode(before2) || isInlineStructuredContentNode(after2);
310587
+ }, getInputSelection = (state) => {
310588
+ const { selection } = state;
310589
+ if (!selection.empty)
310590
+ return selection;
310591
+ const preserved = getPreservedSelection(state);
310592
+ if (preserved && !preserved.empty)
310593
+ return preserved;
310594
+ return selection;
310459
310595
  }, handleInsertTextBeforeInput = (view, event, editor) => {
310460
310596
  const isInsertTextInput = event?.inputType === "insertText";
310461
310597
  const hasTextData = typeof event?.data === "string" && event.data.length > 0;
@@ -310469,8 +310605,8 @@ var Node$13 = class Node$14 {
310469
310605
  recordStoryInputDebug(view, event, editor, "beforeinput:skip");
310470
310606
  return false;
310471
310607
  }
310472
- const selection = view.state.selection;
310473
- const shouldHandleCollapsedSelection = isStorySurfaceEditor(editor) || isInlineStructuredContentBoundary(view.state.doc, selection.from);
310608
+ const selection = getInputSelection(view.state);
310609
+ const shouldHandleCollapsedSelection = isStorySurfaceEditor(editor) || isInlineStructuredContentBoundary(view.state.doc, view.state.selection.from);
310474
310610
  if (selection.empty && !shouldHandleCollapsedSelection) {
310475
310611
  recordStoryInputDebug(view, event, editor, "beforeinput:skip-empty-selection");
310476
310612
  return false;
@@ -310482,6 +310618,13 @@ var Node$13 = class Node$14 {
310482
310618
  } catch {
310483
310619
  tr.setSelection(Selection.near(tr.doc.resolve(insertedTo), 1));
310484
310620
  }
310621
+ if (!selection.empty)
310622
+ tr.setMeta(CustomSelectionPluginKey, {
310623
+ focused: false,
310624
+ preservedSelection: null,
310625
+ showVisualSelection: false,
310626
+ skipFocusReset: false
310627
+ });
310485
310628
  tr.setMeta("inputType", "insertText");
310486
310629
  view.dispatch(tr);
310487
310630
  event.preventDefault();
@@ -331575,13 +331718,13 @@ menclose::after {
331575
331718
  return;
331576
331719
  console.log(...args$1);
331577
331720
  }, 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;
331578
- var init_src_LeQVnrcZ_es = __esm(() => {
331721
+ var init_src_CRJcfbIa_es = __esm(() => {
331579
331722
  init_rolldown_runtime_Bg48TavK_es();
331580
- init_SuperConverter_d9QeIy9_es();
331723
+ init_SuperConverter_BTGVElJO_es();
331581
331724
  init_jszip_C49i9kUs_es();
331582
331725
  init_xml_js_CqGKpaft_es();
331583
331726
  init_uuid_B2wVPhPi_es();
331584
- init_create_headless_toolbar_l5QB6sQY_es();
331727
+ init_create_headless_toolbar_DYbkX05s_es();
331585
331728
  init_constants_D9qj59G2_es();
331586
331729
  init_dist_B8HfvhaK_es();
331587
331730
  init_unified_Dsuw2be5_es();
@@ -332139,6 +332282,12 @@ ${err.toString()}`);
332139
332282
  }) : value;
332140
332283
  if (!nextState?.preservedSelection)
332141
332284
  return nextState;
332285
+ if (shouldClearPreservedSelectionOnSelectionMove(tr, nextState))
332286
+ return {
332287
+ ...nextState,
332288
+ preservedSelection: null,
332289
+ showVisualSelection: false
332290
+ };
332142
332291
  if (!tr.docChanged)
332143
332292
  return nextState;
332144
332293
  const mappedSelection = mapPreservedSelection(nextState.preservedSelection, tr);
@@ -336967,6 +337116,12 @@ ${err.toString()}`);
336967
337116
  ];
336968
337117
  }
336969
337118
  });
337119
+ ALLOWED_META_KEYS$1 = [
337120
+ "inputType",
337121
+ "uiEvent",
337122
+ "paste",
337123
+ CustomSelectionPluginKey.key
337124
+ ];
336970
337125
  AnnotatorHelpers = {
336971
337126
  getFieldAttrs,
336972
337127
  processTables,
@@ -348832,7 +348987,8 @@ function print() { __p += __j.call(arguments, '') }
348832
348987
  "composition",
348833
348988
  "superdocSlicePaste",
348834
348989
  "forceTrackChanges",
348835
- "protectTrackedReviewState"
348990
+ "protectTrackedReviewState",
348991
+ CustomSelectionPluginKey.key
348836
348992
  ];
348837
348993
  PASSTHROUGH_META_KEYS = [
348838
348994
  "inputType",
@@ -348841,7 +348997,8 @@ function print() { __p += __j.call(arguments, '') }
348841
348997
  "pointer",
348842
348998
  "composition",
348843
348999
  "addToHistory",
348844
- "superdocSlicePaste"
349000
+ "superdocSlicePaste",
349001
+ CustomSelectionPluginKey.key
348845
349002
  ];
348846
349003
  ALLOWED_META_KEYS = new Set([...TRACKABLE_META_KEYS, ySyncPluginKey.key]);
348847
349004
  TrackFormat = Mark3.create({
@@ -349509,11 +349666,11 @@ function print() { __p += __j.call(arguments, '') }
349509
349666
  } });
349510
349667
  tippy.setDefaultProps({ render });
349511
349668
  tippy_esm_default = tippy;
349512
- _hoisted_1$22 = ["onClick", "onMouseenter"];
349513
- _hoisted_2$17 = { key: 0 };
349514
- _hoisted_3$13 = { key: 0 };
349515
- _hoisted_4$9 = { key: 1 };
349516
- _hoisted_5$7 = { key: 1 };
349669
+ _hoisted_1$23 = ["onClick", "onMouseenter"];
349670
+ _hoisted_2$18 = { key: 0 };
349671
+ _hoisted_3$14 = { key: 0 };
349672
+ _hoisted_4$10 = { key: 1 };
349673
+ _hoisted_5$9 = { key: 1 };
349517
349674
  Mentions_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
349518
349675
  __name: "Mentions",
349519
349676
  props: {
@@ -349579,7 +349736,7 @@ function print() { __p += __j.call(arguments, '') }
349579
349736
  onMouseleave: _cache[0] || (_cache[0] = ($event) => activeUserIndex.value = null),
349580
349737
  key: user.email,
349581
349738
  class: exports_vue.normalizeClass(["user-row", { "sd-selected": activeUserIndex.value === index2 }])
349582
- }, [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);
349739
+ }, [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);
349583
349740
  }), 128))], 544);
349584
349741
  };
349585
349742
  }
@@ -350854,11 +351011,11 @@ function print() { __p += __j.call(arguments, '') }
350854
351011
  })
350855
351012
  }
350856
351013
  ] };
350857
- _hoisted_1$21 = { class: "ai-user-input-field" };
350858
- _hoisted_2$16 = ["innerHTML"];
350859
- _hoisted_3$12 = ["placeholder"];
350860
- _hoisted_4$8 = { class: "ai-loader" };
350861
- _hoisted_5$6 = ["innerHTML"];
351014
+ _hoisted_1$22 = { class: "ai-user-input-field" };
351015
+ _hoisted_2$17 = ["innerHTML"];
351016
+ _hoisted_3$13 = ["placeholder"];
351017
+ _hoisted_4$9 = { class: "ai-loader" };
351018
+ _hoisted_5$8 = ["innerHTML"];
350862
351019
  AIWriter_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
350863
351020
  __name: "AIWriter",
350864
351021
  props: {
@@ -351085,10 +351242,10 @@ function print() { __p += __j.call(arguments, '') }
351085
351242
  ref_key: "aiWriterRef",
351086
351243
  ref: aiWriterRef,
351087
351244
  onMousedown: _cache[1] || (_cache[1] = exports_vue.withModifiers(() => {}, ["stop"]))
351088
- }, [exports_vue.createElementVNode("div", _hoisted_1$21, [exports_vue.createElementVNode("span", {
351245
+ }, [exports_vue.createElementVNode("div", _hoisted_1$22, [exports_vue.createElementVNode("span", {
351089
351246
  class: "ai-textarea-icon",
351090
351247
  innerHTML: exports_vue.unref(edit_regular_default)
351091
- }, null, 8, _hoisted_2$16), exports_vue.withDirectives(exports_vue.createElementVNode("textarea", {
351248
+ }, null, 8, _hoisted_2$17), exports_vue.withDirectives(exports_vue.createElementVNode("textarea", {
351092
351249
  ref_key: "editableRef",
351093
351250
  ref: editableRef,
351094
351251
  class: "ai-textarea",
@@ -351097,12 +351254,12 @@ function print() { __p += __j.call(arguments, '') }
351097
351254
  onInput: handleInput,
351098
351255
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => promptText.value = $event),
351099
351256
  rows: "4"
351100
- }, 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", {
351257
+ }, 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", {
351101
351258
  key: 0,
351102
351259
  class: "ai-textarea-icon ai-submit-button",
351103
351260
  onClick: exports_vue.withModifiers(handleSubmit, ["stop"]),
351104
351261
  innerHTML: exports_vue.unref(paper_plane_regular_default)
351105
- }, null, 8, _hoisted_5$6)) : exports_vue.createCommentVNode("", true)])], 544);
351262
+ }, null, 8, _hoisted_5$8)) : exports_vue.createCommentVNode("", true)])], 544);
351106
351263
  };
351107
351264
  }
351108
351265
  }, [["__scopeId", "data-v-5444b0c8"]]);
@@ -351187,7 +351344,7 @@ function print() { __p += __j.call(arguments, '') }
351187
351344
  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>
351188
351345
  `
351189
351346
  };
351190
- _hoisted_1$20 = [
351347
+ _hoisted_1$21 = [
351191
351348
  "onClick",
351192
351349
  "innerHTML",
351193
351350
  "aria-label",
@@ -351279,12 +351436,12 @@ function print() { __p += __j.call(arguments, '') }
351279
351436
  ref_key: "alignmentButtonsRefs",
351280
351437
  ref: alignmentButtonsRefs,
351281
351438
  onKeydown: exports_vue.withModifiers((event) => handleKeyDown$1(event, index2), ["prevent"])
351282
- }, null, 40, _hoisted_1$20);
351439
+ }, null, 40, _hoisted_1$21);
351283
351440
  }), 64))], 2);
351284
351441
  };
351285
351442
  }
351286
351443
  }, [["__scopeId", "data-v-ceb338e0"]]);
351287
- _hoisted_1$19 = [
351444
+ _hoisted_1$20 = [
351288
351445
  "onClick",
351289
351446
  "innerHTML",
351290
351447
  "aria-label",
@@ -351373,7 +351530,7 @@ function print() { __p += __j.call(arguments, '') }
351373
351530
  ref_key: "buttonRefs",
351374
351531
  ref: buttonRefs,
351375
351532
  onKeydown: exports_vue.withModifiers((event) => handleKeyDown$1(event, index2), ["prevent"])
351376
- }, null, 46, _hoisted_1$19);
351533
+ }, null, 46, _hoisted_1$20);
351377
351534
  }), 128))], 2);
351378
351535
  };
351379
351536
  }
@@ -351437,12 +351594,12 @@ function print() { __p += __j.call(arguments, '') }
351437
351594
  ariaLabel: "a) b) c)"
351438
351595
  }
351439
351596
  ];
351440
- _hoisted_1$18 = ["onClick", "onKeydown"];
351441
- _hoisted_2$15 = { class: "document-mode-column icon-column" };
351442
- _hoisted_3$11 = ["innerHTML"];
351443
- _hoisted_4$7 = { class: "document-mode-column text-column" };
351444
- _hoisted_5$5 = { class: "document-mode-type" };
351445
- _hoisted_6$3 = { class: "document-mode-description" };
351597
+ _hoisted_1$19 = ["onClick", "onKeydown"];
351598
+ _hoisted_2$16 = { class: "document-mode-column icon-column" };
351599
+ _hoisted_3$12 = ["innerHTML"];
351600
+ _hoisted_4$8 = { class: "document-mode-column text-column" };
351601
+ _hoisted_5$7 = { class: "document-mode-type" };
351602
+ _hoisted_6$5 = { class: "document-mode-description" };
351446
351603
  DocumentMode_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
351447
351604
  __name: "DocumentMode",
351448
351605
  props: { options: { type: Array } },
@@ -351503,20 +351660,20 @@ function print() { __p += __j.call(arguments, '') }
351503
351660
  ref_key: "documentModeRefs",
351504
351661
  ref: documentModeRefs,
351505
351662
  onKeydown: exports_vue.withModifiers((event) => handleKeyDown$1(event, index2), ["prevent"])
351506
- }, [exports_vue.createElementVNode("div", _hoisted_2$15, [exports_vue.createElementVNode("div", {
351663
+ }, [exports_vue.createElementVNode("div", _hoisted_2$16, [exports_vue.createElementVNode("div", {
351507
351664
  class: "icon-column__icon",
351508
351665
  innerHTML: option.icon
351509
- }, 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);
351666
+ }, 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);
351510
351667
  }), 256))], 2);
351511
351668
  };
351512
351669
  }
351513
351670
  }, [["__scopeId", "data-v-abd514d9"]]);
351514
- _hoisted_1$17 = {
351671
+ _hoisted_1$18 = {
351515
351672
  key: 0,
351516
351673
  class: "linked-style-buttons",
351517
351674
  "data-editor-ui-surface": ""
351518
351675
  };
351519
- _hoisted_2$14 = [
351676
+ _hoisted_2$15 = [
351520
351677
  "onClick",
351521
351678
  "onKeydown",
351522
351679
  "aria-label"
@@ -351573,7 +351730,7 @@ function print() { __p += __j.call(arguments, '') }
351573
351730
  styleRefs.value[0].focus();
351574
351731
  });
351575
351732
  return (_ctx, _cache) => {
351576
- 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) => {
351733
+ 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) => {
351577
351734
  return exports_vue.openBlock(), exports_vue.createElementBlock("div", {
351578
351735
  class: exports_vue.normalizeClass(["style-item", { selected: __props.selectedOption === style2.id }]),
351579
351736
  onClick: ($event) => select2(style2),
@@ -351586,33 +351743,33 @@ function print() { __p += __j.call(arguments, '') }
351586
351743
  class: "style-name",
351587
351744
  style: exports_vue.normalizeStyle(exports_vue.unref(generateLinkedStyleString)(style2, null, null, false)),
351588
351745
  "data-item": "btn-linkedStyles-option"
351589
- }, exports_vue.toDisplayString(style2.definition.attrs.name), 5)], 42, _hoisted_2$14);
351746
+ }, exports_vue.toDisplayString(style2.definition.attrs.name), 5)], 42, _hoisted_2$15);
351590
351747
  }), 256))])) : exports_vue.createCommentVNode("", true);
351591
351748
  };
351592
351749
  }
351593
351750
  }, [["__scopeId", "data-v-80e74746"]]);
351594
- _hoisted_1$16 = {
351751
+ _hoisted_1$17 = {
351595
351752
  key: 0,
351596
351753
  class: "link-title"
351597
351754
  };
351598
- _hoisted_2$13 = {
351755
+ _hoisted_2$14 = {
351599
351756
  key: 1,
351600
351757
  class: "link-title"
351601
351758
  };
351602
- _hoisted_3$10 = {
351759
+ _hoisted_3$11 = {
351603
351760
  key: 2,
351604
351761
  class: "link-title"
351605
351762
  };
351606
- _hoisted_4$6 = {
351763
+ _hoisted_4$7 = {
351607
351764
  key: 3,
351608
351765
  class: "link-title"
351609
351766
  };
351610
- _hoisted_5$4 = {
351767
+ _hoisted_5$6 = {
351611
351768
  key: 4,
351612
351769
  class: "link-input-wrapper"
351613
351770
  };
351614
- _hoisted_6$2 = { class: "input-row text-input-row" };
351615
- _hoisted_7$2 = ["readonly"];
351771
+ _hoisted_6$4 = { class: "input-row text-input-row" };
351772
+ _hoisted_7$3 = ["readonly"];
351616
351773
  _hoisted_8$1 = { class: "input-row url-input-row" };
351617
351774
  _hoisted_9$1 = ["innerHTML"];
351618
351775
  _hoisted_10$1 = ["readonly", "onKeydown"];
@@ -351621,8 +351778,8 @@ function print() { __p += __j.call(arguments, '') }
351621
351778
  key: 0,
351622
351779
  class: "input-row link-buttons"
351623
351780
  };
351624
- _hoisted_13 = ["innerHTML"];
351625
- _hoisted_14 = {
351781
+ _hoisted_13$1 = ["innerHTML"];
351782
+ _hoisted_14$1 = {
351626
351783
  key: 5,
351627
351784
  class: "input-row go-to-anchor clickable"
351628
351785
  };
@@ -351794,15 +351951,15 @@ function print() { __p += __j.call(arguments, '') }
351794
351951
  props.goToAnchor(url$1);
351795
351952
  };
351796
351953
  return (_ctx, _cache) => {
351797
- 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, [
351798
- 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", {
351954
+ 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, [
351955
+ 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", {
351799
351956
  type: "text",
351800
351957
  name: "text",
351801
351958
  placeholder: "Text",
351802
351959
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => text5.value = $event),
351803
351960
  readonly: isViewingMode.value,
351804
351961
  onKeydown: _cache[1] || (_cache[1] = exports_vue.withKeys(exports_vue.withModifiers(($event) => !isViewingMode.value && handleSubmit, ["stop", "prevent"]), ["enter"]))
351805
- }, null, 40, _hoisted_7$2), [[exports_vue.vModelText, text5.value]])]),
351962
+ }, null, 40, _hoisted_7$3), [[exports_vue.vModelText, text5.value]])]),
351806
351963
  exports_vue.createElementVNode("div", _hoisted_8$1, [
351807
351964
  exports_vue.createElementVNode("div", {
351808
351965
  class: "input-icon",
@@ -351832,22 +351989,22 @@ function print() { __p += __j.call(arguments, '') }
351832
351989
  }, [exports_vue.createElementVNode("div", {
351833
351990
  class: "remove-btn__icon",
351834
351991
  innerHTML: exports_vue.unref(toolbarIcons).removeLink
351835
- }, null, 8, _hoisted_13), _cache[6] || (_cache[6] = exports_vue.createTextVNode(" Remove ", -1))])) : exports_vue.createCommentVNode("", true), exports_vue.createElementVNode("button", {
351992
+ }, null, 8, _hoisted_13$1), _cache[6] || (_cache[6] = exports_vue.createTextVNode(" Remove ", -1))])) : exports_vue.createCommentVNode("", true), exports_vue.createElementVNode("button", {
351836
351993
  class: exports_vue.normalizeClass(["sd-submit-btn", { "disable-btn": isDisabled.value }]),
351837
351994
  onClick: handleSubmit,
351838
351995
  "data-item": "btn-link-apply"
351839
351996
  }, " Apply ", 2)])) : exports_vue.createCommentVNode("", true)
351840
- ])) : 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);
351997
+ ])) : 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);
351841
351998
  };
351842
351999
  }
351843
352000
  }, [["__scopeId", "data-v-c490d677"]]);
351844
- _hoisted_1$15 = [
352001
+ _hoisted_1$16 = [
351845
352002
  "aria-label",
351846
352003
  "onClick",
351847
352004
  "onKeydown"
351848
352005
  ];
351849
- _hoisted_2$12 = ["innerHTML"];
351850
- _hoisted_3$9 = ["innerHTML"];
352006
+ _hoisted_2$13 = ["innerHTML"];
352007
+ _hoisted_3$10 = ["innerHTML"];
351851
352008
  IconGridRow_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
351852
352009
  __name: "IconGridRow",
351853
352010
  props: {
@@ -351968,20 +352125,20 @@ function print() { __p += __j.call(arguments, '') }
351968
352125
  class: "sd-option__icon",
351969
352126
  innerHTML: option.icon,
351970
352127
  style: exports_vue.normalizeStyle(option.style)
351971
- }, null, 12, _hoisted_2$12), isActive$1.value(option) ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
352128
+ }, null, 12, _hoisted_2$13), isActive$1.value(option) ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
351972
352129
  key: 0,
351973
352130
  class: "sd-option__check",
351974
352131
  innerHTML: exports_vue.unref(toolbarIcons).colorOptionCheck,
351975
352132
  style: exports_vue.normalizeStyle(getCheckStyle(option.value, optionIndex))
351976
- }, null, 12, _hoisted_3$9)) : exports_vue.createCommentVNode("", true)], 40, _hoisted_1$15);
352133
+ }, null, 12, _hoisted_3$10)) : exports_vue.createCommentVNode("", true)], 40, _hoisted_1$16);
351977
352134
  }), 128))]);
351978
352135
  }), 128);
351979
352136
  };
351980
352137
  }
351981
352138
  }, [["__scopeId", "data-v-30cad300"]]);
351982
- _hoisted_1$14 = { class: "options-grid-wrap" };
351983
- _hoisted_2$11 = ["innerHTML"];
351984
- _hoisted_3$8 = { class: "option-grid-ctn" };
352139
+ _hoisted_1$15 = { class: "options-grid-wrap" };
352140
+ _hoisted_2$12 = ["innerHTML"];
352141
+ _hoisted_3$9 = { class: "option-grid-ctn" };
351985
352142
  IconGrid_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
351986
352143
  __name: "IconGrid",
351987
352144
  props: {
@@ -352009,7 +352166,7 @@ function print() { __p += __j.call(arguments, '') }
352009
352166
  emit("select", option);
352010
352167
  };
352011
352168
  return (_ctx, _cache) => {
352012
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$14, [__props.hasNoneIcon ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
352169
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$15, [__props.hasNoneIcon ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
352013
352170
  key: 0,
352014
352171
  class: "none-option",
352015
352172
  role: "menuitem",
@@ -352018,7 +352175,7 @@ function print() { __p += __j.call(arguments, '') }
352018
352175
  }, [exports_vue.createElementVNode("span", {
352019
352176
  innerHTML: exports_vue.unref(droplet_slash_default),
352020
352177
  class: "none-icon"
352021
- }, 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, {
352178
+ }, 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, {
352022
352179
  icons: __props.icons,
352023
352180
  "active-color": __props.activeColor,
352024
352181
  onSelect: handleSelect
@@ -352104,13 +352261,13 @@ function print() { __p += __j.call(arguments, '') }
352104
352261
  makeColorOption("#A91DFF", "neon purple")
352105
352262
  ]
352106
352263
  ];
352107
- _hoisted_1$13 = [
352264
+ _hoisted_1$14 = [
352108
352265
  "data-cols",
352109
352266
  "data-rows",
352110
352267
  "onKeydown",
352111
352268
  "onClick"
352112
352269
  ];
352113
- _hoisted_2$10 = ["aria-valuetext"];
352270
+ _hoisted_2$11 = ["aria-valuetext"];
352114
352271
  TableGrid_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
352115
352272
  __name: "TableGrid",
352116
352273
  emits: ["select", "clickoutside"],
@@ -352221,24 +352378,24 @@ function print() { __p += __j.call(arguments, '') }
352221
352378
  cols: n,
352222
352379
  rows: i4
352223
352380
  }), ["stop", "prevent"])
352224
- }, null, 40, _hoisted_1$13);
352381
+ }, null, 40, _hoisted_1$14);
352225
352382
  }), 64))], 64);
352226
352383
  }), 64))], 32), exports_vue.createElementVNode("div", {
352227
352384
  class: "toolbar-table-grid-value",
352228
352385
  "aria-valuetext": `${selectedRows.value} x ${selectedCols.value}`
352229
- }, exports_vue.toDisplayString(selectedRows.value) + " x " + exports_vue.toDisplayString(selectedCols.value), 9, _hoisted_2$10)], 2);
352386
+ }, exports_vue.toDisplayString(selectedRows.value) + " x " + exports_vue.toDisplayString(selectedCols.value), 9, _hoisted_2$11)], 2);
352230
352387
  };
352231
352388
  }
352232
352389
  }, [["__scopeId", "data-v-168b91ce"]]);
352233
- _hoisted_1$12 = { class: "toolbar-table-actions" };
352234
- _hoisted_2$9 = [
352390
+ _hoisted_1$13 = { class: "toolbar-table-actions" };
352391
+ _hoisted_2$10 = [
352235
352392
  "onClick",
352236
352393
  "data-item",
352237
352394
  "ariaLabel"
352238
352395
  ];
352239
- _hoisted_3$7 = { class: "toolbar-table-actions__icon" };
352240
- _hoisted_4$5 = ["innerHTML"];
352241
- _hoisted_5$3 = { class: "toolbar-table-actions__label" };
352396
+ _hoisted_3$8 = { class: "toolbar-table-actions__icon" };
352397
+ _hoisted_4$6 = ["innerHTML"];
352398
+ _hoisted_5$5 = { class: "toolbar-table-actions__label" };
352242
352399
  TableActions_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
352243
352400
  __name: "TableActions",
352244
352401
  props: { options: { type: Array } },
@@ -352249,24 +352406,24 @@ function print() { __p += __j.call(arguments, '') }
352249
352406
  emit("select", { command: item.command });
352250
352407
  };
352251
352408
  return (_ctx, _cache) => {
352252
- 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) => {
352409
+ 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) => {
352253
352410
  return exports_vue.openBlock(), exports_vue.createElementBlock("div", {
352254
352411
  class: exports_vue.normalizeClass(["toolbar-table-actions__item", { "toolbar-table-actions__item--border": option.bottomBorder }]),
352255
352412
  onClick: ($event) => handleClick$1(option),
352256
352413
  "data-item": option.props?.["data-item"] || "",
352257
352414
  ariaLabel: option.props?.ariaLabel,
352258
352415
  role: "menuitem"
352259
- }, [exports_vue.createElementVNode("div", _hoisted_3$7, [exports_vue.createElementVNode("div", {
352416
+ }, [exports_vue.createElementVNode("div", _hoisted_3$8, [exports_vue.createElementVNode("div", {
352260
352417
  class: "toolbar-table-actions__icon-wrapper",
352261
352418
  innerHTML: option.icon
352262
- }, null, 8, _hoisted_4$5)]), exports_vue.createElementVNode("div", _hoisted_5$3, exports_vue.toDisplayString(option.label), 1)], 10, _hoisted_2$9);
352419
+ }, null, 8, _hoisted_4$6)]), exports_vue.createElementVNode("div", _hoisted_5$5, exports_vue.toDisplayString(option.label), 1)], 10, _hoisted_2$10);
352263
352420
  }), 256))]);
352264
352421
  };
352265
352422
  }
352266
352423
  }, [["__scopeId", "data-v-652015c8"]]);
352267
- _hoisted_1$11 = { class: "search-input-ctn" };
352268
- _hoisted_2$8 = { class: "sd-row" };
352269
- _hoisted_3$6 = ["onKeydown"];
352424
+ _hoisted_1$12 = { class: "search-input-ctn" };
352425
+ _hoisted_2$9 = { class: "sd-row" };
352426
+ _hoisted_3$7 = ["onKeydown"];
352270
352427
  SearchInput_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
352271
352428
  __name: "SearchInput",
352272
352429
  props: { searchRef: { type: Object } },
@@ -352278,7 +352435,7 @@ function print() { __p += __j.call(arguments, '') }
352278
352435
  emit("submit", { value: searchValue.value });
352279
352436
  };
352280
352437
  return (_ctx, _cache) => {
352281
- 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", {
352438
+ 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", {
352282
352439
  ref: __props.searchRef,
352283
352440
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchValue.value = $event),
352284
352441
  class: "search-input",
@@ -352286,7 +352443,7 @@ function print() { __p += __j.call(arguments, '') }
352286
352443
  name: "search",
352287
352444
  placeholder: "Type search string",
352288
352445
  onKeydown: exports_vue.withKeys(exports_vue.withModifiers(handleSubmit, ["stop", "prevent"]), ["enter"])
352289
- }, null, 40, _hoisted_3$6), [[exports_vue.vModelText, searchValue.value]])]), exports_vue.createElementVNode("div", { class: "sd-row sd-submit" }, [exports_vue.createElementVNode("button", {
352446
+ }, null, 40, _hoisted_3$7), [[exports_vue.vModelText, searchValue.value]])]), exports_vue.createElementVNode("div", { class: "sd-row sd-submit" }, [exports_vue.createElementVNode("button", {
352290
352447
  class: "sd-submit-btn",
352291
352448
  onClick: handleSubmit
352292
352449
  }, "Apply")])]);
@@ -352430,8 +352587,8 @@ function print() { __p += __j.call(arguments, '') }
352430
352587
  HEADLESS_TOOLBAR_COMMANDS = [...new Set([...Object.values(HEADLESS_ITEM_MAP), ...TABLE_ACTION_COMMAND_IDS])];
352431
352588
  NON_HEADLESS_EXECUTE_ITEM_NAMES = new Set(["link"]);
352432
352589
  HEADLESS_EXECUTE_ITEMS = new Set(Object.keys(HEADLESS_ITEM_MAP).filter((itemName) => !NON_HEADLESS_EXECUTE_ITEM_NAMES.has(itemName)));
352433
- _hoisted_1$10 = { class: "sd-toolbar-icon" };
352434
- _hoisted_2$7 = ["innerHTML"];
352590
+ _hoisted_1$11 = { class: "sd-toolbar-icon" };
352591
+ _hoisted_2$8 = ["innerHTML"];
352435
352592
  ToolbarButtonIcon_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
352436
352593
  __name: "ToolbarButtonIcon",
352437
352594
  props: {
@@ -352460,10 +352617,10 @@ function print() { __p += __j.call(arguments, '') }
352460
352617
  return ["color", "highlight"].includes(props.name);
352461
352618
  });
352462
352619
  return (_ctx, _cache) => {
352463
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$10, [exports_vue.createElementVNode("div", {
352620
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$11, [exports_vue.createElementVNode("div", {
352464
352621
  class: exports_vue.normalizeClass(["sd-toolbar-icon__icon", [`sd-toolbar-icon__icon--${props.name}`]]),
352465
352622
  innerHTML: __props.icon
352466
- }, null, 10, _hoisted_2$7), hasColorBar.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
352623
+ }, null, 10, _hoisted_2$8), hasColorBar.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
352467
352624
  key: 0,
352468
352625
  class: "color-bar",
352469
352626
  style: exports_vue.normalizeStyle(getBarColor.value)
@@ -352471,28 +352628,37 @@ function print() { __p += __j.call(arguments, '') }
352471
352628
  };
352472
352629
  }
352473
352630
  }, [["__scopeId", "data-v-521c3d93"]]);
352474
- _hoisted_1$9 = ["role", "aria-label"];
352475
- _hoisted_2$6 = ["data-item"];
352476
- _hoisted_3$5 = ["data-item"];
352477
- _hoisted_4$4 = {
352631
+ _hoisted_1$10 = ["role", "aria-label"];
352632
+ _hoisted_2$7 = ["data-item"];
352633
+ _hoisted_3$6 = ["data-item"];
352634
+ _hoisted_4$5 = {
352478
352635
  key: 1,
352479
352636
  class: "sd-button-label"
352480
352637
  };
352481
- _hoisted_5$2 = ["data-item", "aria-label"];
352482
- _hoisted_6$1 = ["innerHTML"];
352483
- _hoisted_7$1 = {
352638
+ _hoisted_5$4 = ["data-item", "aria-label"];
352639
+ _hoisted_6$3 = ["innerHTML"];
352640
+ _hoisted_7$2 = {
352484
352641
  key: 1,
352485
352642
  class: "sd-button-label"
352486
352643
  };
352487
- _hoisted_8 = { key: 2 };
352644
+ _hoisted_8 = {
352645
+ key: 2,
352646
+ class: "sd-toolbar-button__field sd-toolbar-split-field__main"
352647
+ };
352488
352648
  _hoisted_9 = ["onKeydown", "id"];
352489
352649
  _hoisted_10 = [
352490
352650
  "placeholder",
352491
352651
  "onKeydown",
352492
352652
  "id"
352493
352653
  ];
352494
- _hoisted_11 = ["innerHTML"];
352495
- _hoisted_12 = {
352654
+ _hoisted_11 = [
352655
+ "data-item",
352656
+ "aria-label",
352657
+ "disabled"
352658
+ ];
352659
+ _hoisted_12 = ["innerHTML"];
352660
+ _hoisted_13 = ["innerHTML"];
352661
+ _hoisted_14 = {
352496
352662
  "aria-live": "polite",
352497
352663
  class: "sd-visually-hidden"
352498
352664
  };
@@ -352535,21 +352701,28 @@ function print() { __p += __j.call(arguments, '') }
352535
352701
  emits: [
352536
352702
  "buttonClick",
352537
352703
  "textSubmit",
352538
- "mainClick"
352704
+ "mainClick",
352705
+ "tabOut"
352539
352706
  ],
352540
352707
  setup(__props, { emit: __emit }) {
352541
352708
  const emit = __emit;
352542
352709
  const props = __props;
352543
352710
  const { name, active, icon, label, hideLabel, iconColor, hasCaret, splitButton, disabled, expand, inlineTextInputVisible, hasInlineTextInput, minWidth, style: style2, attributes } = props.toolbarItem;
352544
352711
  const isSplit = exports_vue.computed(() => Boolean(splitButton?.value) && Boolean(hasCaret?.value));
352712
+ const isInlineSplitField = exports_vue.computed(() => name?.value === "fontSize" && Boolean(hasInlineTextInput?.value) && Boolean(hasCaret?.value));
352545
352713
  const inlineTextInput = exports_vue.ref(label);
352546
352714
  const inlineInput = exports_vue.ref(null);
352547
352715
  const { isHighContrastMode: isHighContrastMode$1 } = useHighContrastMode();
352716
+ const selectInlineInput = () => {
352717
+ exports_vue.nextTick(() => {
352718
+ inlineInput.value?.select();
352719
+ });
352720
+ };
352548
352721
  const handleClick$1 = () => {
352549
352722
  if (hasInlineTextInput)
352550
352723
  exports_vue.nextTick(() => {
352551
352724
  inlineInput.value?.focus();
352552
- inlineInput.value?.select();
352725
+ selectInlineInput();
352553
352726
  });
352554
352727
  emit("buttonClick");
352555
352728
  };
@@ -352582,6 +352755,14 @@ function print() { __p += __j.call(arguments, '') }
352582
352755
  emit("textSubmit", cleanValue);
352583
352756
  inlineTextInput.value = cleanValue;
352584
352757
  };
352758
+ const handleInputTab = (event) => {
352759
+ if (name?.value !== "fontSize")
352760
+ return;
352761
+ event.preventDefault();
352762
+ handleInputSubmit();
352763
+ inlineInput.value?.blur();
352764
+ emit("tabOut", event);
352765
+ };
352585
352766
  const getStyle = exports_vue.computed(() => {
352586
352767
  if (style2.value)
352587
352768
  return style2.value;
@@ -352598,7 +352779,7 @@ function print() { __p += __j.call(arguments, '') }
352598
352779
  "aria-label": exports_vue.unref(attributes).ariaLabel,
352599
352780
  "data-sd-part": "toolbar-item",
352600
352781
  onClick: handleOuterClick,
352601
- onKeydown: _cache[3] || (_cache[3] = exports_vue.withKeys(($event) => onEnterKeydown($event), ["enter"])),
352782
+ onKeydown: _cache[5] || (_cache[5] = exports_vue.withKeys(($event) => onEnterKeydown($event), ["enter"])),
352602
352783
  tabindex: "0"
352603
352784
  }, [exports_vue.createElementVNode("div", {
352604
352785
  class: exports_vue.normalizeClass(["sd-toolbar-button", {
@@ -352607,6 +352788,8 @@ function print() { __p += __j.call(arguments, '') }
352607
352788
  narrow: __props.isNarrow,
352608
352789
  wide: __props.isWide,
352609
352790
  split: isSplit.value,
352791
+ "split-field": isInlineSplitField.value,
352792
+ "sd-toolbar-split-field": isInlineSplitField.value,
352610
352793
  "has-inline-text-input": exports_vue.unref(hasInlineTextInput),
352611
352794
  "high-contrast": exports_vue.unref(isHighContrastMode$1)
352612
352795
  }]),
@@ -352627,7 +352810,7 @@ function print() { __p += __j.call(arguments, '') }
352627
352810
  "color",
352628
352811
  "icon",
352629
352812
  "name"
352630
- ])) : 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),
352813
+ ])) : 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),
352631
352814
  isSplit.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
352632
352815
  key: 1,
352633
352816
  class: "sd-toolbar-button__caret",
@@ -352638,7 +352821,7 @@ function print() { __p += __j.call(arguments, '') }
352638
352821
  class: "sd-dropdown-caret",
352639
352822
  innerHTML: caretIcon.value,
352640
352823
  style: exports_vue.normalizeStyle({ opacity: exports_vue.unref(disabled) ? 0.6 : 1 })
352641
- }, null, 12, _hoisted_6$1)], 8, _hoisted_5$2)) : (exports_vue.openBlock(), exports_vue.createElementBlock(exports_vue.Fragment, { key: 2 }, [
352824
+ }, null, 12, _hoisted_6$3)], 8, _hoisted_5$4)) : (exports_vue.openBlock(), exports_vue.createElementBlock(exports_vue.Fragment, { key: 2 }, [
352642
352825
  exports_vue.unref(icon) ? (exports_vue.openBlock(), exports_vue.createBlock(ToolbarButtonIcon_default, {
352643
352826
  key: 0,
352644
352827
  color: exports_vue.unref(iconColor),
@@ -352650,11 +352833,13 @@ function print() { __p += __j.call(arguments, '') }
352650
352833
  "icon",
352651
352834
  "name"
352652
352835
  ])) : exports_vue.createCommentVNode("", true),
352653
- 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),
352836
+ 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),
352654
352837
  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", {
352655
352838
  key: 0,
352656
352839
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => inlineTextInput.value = $event),
352657
- onKeydown: exports_vue.withKeys(exports_vue.withModifiers(handleInputSubmit, ["prevent"]), ["enter"]),
352840
+ onKeydown: [exports_vue.withKeys(exports_vue.withModifiers(handleInputSubmit, ["prevent"]), ["enter"]), exports_vue.withKeys(handleInputTab, ["tab"])],
352841
+ onFocus: selectInlineInput,
352842
+ onClick: _cache[2] || (_cache[2] = exports_vue.withModifiers(() => {}, ["stop"])),
352658
352843
  type: "text",
352659
352844
  class: exports_vue.normalizeClass(["button-text-input button-text-input--font-size", { "high-contrast": exports_vue.unref(isHighContrastMode$1) }]),
352660
352845
  id: "inlineTextInput-" + exports_vue.unref(name),
@@ -352663,7 +352848,7 @@ function print() { __p += __j.call(arguments, '') }
352663
352848
  ref: inlineInput
352664
352849
  }, null, 42, _hoisted_9)), [[exports_vue.vModelText, inlineTextInput.value]]) : exports_vue.withDirectives((exports_vue.openBlock(), exports_vue.createElementBlock("input", {
352665
352850
  key: 1,
352666
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => inlineTextInput.value = $event),
352851
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => inlineTextInput.value = $event),
352667
352852
  placeholder: exports_vue.unref(label),
352668
352853
  onKeydown: exports_vue.withKeys(exports_vue.withModifiers(handleInputSubmit, ["prevent"]), ["enter"]),
352669
352854
  type: "text",
@@ -352673,19 +352858,32 @@ function print() { __p += __j.call(arguments, '') }
352673
352858
  ref_key: "inlineInput",
352674
352859
  ref: inlineInput
352675
352860
  }, null, 40, _hoisted_10)), [[exports_vue.vModelText, inlineTextInput.value]])])) : exports_vue.createCommentVNode("", true),
352676
- exports_vue.unref(hasCaret) ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
352861
+ isInlineSplitField.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("button", {
352677
352862
  key: 3,
352863
+ type: "button",
352864
+ class: "sd-toolbar-button__field-caret sd-toolbar-split-field__caret",
352865
+ "data-item": `btn-${exports_vue.unref(name) || ""}-caret`,
352866
+ "aria-label": `${exports_vue.unref(attributes).ariaLabel} options`,
352867
+ disabled: exports_vue.unref(disabled),
352868
+ tabindex: "-1",
352869
+ onMousedown: _cache[4] || (_cache[4] = exports_vue.withModifiers(() => {}, ["prevent"]))
352870
+ }, [exports_vue.createElementVNode("span", {
352678
352871
  class: "sd-dropdown-caret",
352679
352872
  innerHTML: caretIcon.value,
352680
352873
  style: exports_vue.normalizeStyle({ opacity: exports_vue.unref(disabled) ? 0.6 : 1 })
352681
- }, null, 12, _hoisted_11)) : exports_vue.createCommentVNode("", true)
352874
+ }, null, 12, _hoisted_12)], 40, _hoisted_11)) : exports_vue.unref(hasCaret) ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
352875
+ key: 4,
352876
+ class: "sd-dropdown-caret",
352877
+ innerHTML: caretIcon.value,
352878
+ style: exports_vue.normalizeStyle({ opacity: exports_vue.unref(disabled) ? 0.6 : 1 })
352879
+ }, null, 12, _hoisted_13)) : exports_vue.createCommentVNode("", true)
352682
352880
  ], 64)),
352683
- exports_vue.createElementVNode("div", _hoisted_12, exports_vue.toDisplayString(`${exports_vue.unref(attributes).ariaLabel} ${exports_vue.unref(active) ? "selected" : "unset"}`), 1)
352684
- ], 10, _hoisted_2$6)], 46, _hoisted_1$9);
352881
+ exports_vue.createElementVNode("div", _hoisted_14, exports_vue.toDisplayString(`${exports_vue.unref(attributes).ariaLabel} ${exports_vue.unref(active) ? "selected" : "unset"}`), 1)
352882
+ ], 10, _hoisted_2$7)], 46, _hoisted_1$10);
352685
352883
  };
352686
352884
  }
352687
- }, [["__scopeId", "data-v-360f6a95"]]);
352688
- _hoisted_1$8 = {
352885
+ }, [["__scopeId", "data-v-2caa0057"]]);
352886
+ _hoisted_1$9 = {
352689
352887
  class: "toolbar-separator",
352690
352888
  role: "separator",
352691
352889
  "aria-label": "Toolbar separator"
@@ -352705,16 +352903,16 @@ function print() { __p += __j.call(arguments, '') }
352705
352903
  return "var(--sd-ui-border, #dbdbdb)";
352706
352904
  };
352707
352905
  return (_ctx, _cache) => {
352708
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$8, [exports_vue.createElementVNode("div", {
352906
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$9, [exports_vue.createElementVNode("div", {
352709
352907
  class: "separator-inner",
352710
352908
  style: exports_vue.normalizeStyle({ backgroundColor: getSeparatorColor() })
352711
352909
  }, null, 4)]);
352712
352910
  };
352713
352911
  }
352714
352912
  }, [["__scopeId", "data-v-d027f7fc"]]);
352715
- _hoisted_1$7 = { class: "overflow-menu" };
352716
- _hoisted_2$5 = { class: "overflow-menu-trigger" };
352717
- _hoisted_3$4 = {
352913
+ _hoisted_1$8 = { class: "overflow-menu" };
352914
+ _hoisted_2$6 = { class: "overflow-menu-trigger" };
352915
+ _hoisted_3$5 = {
352718
352916
  key: 0,
352719
352917
  class: "overflow-menu_items",
352720
352918
  role: "group"
@@ -352766,10 +352964,10 @@ function print() { __p += __j.call(arguments, '') }
352766
352964
  document.removeEventListener("keydown", handleKeyDown$1, true);
352767
352965
  });
352768
352966
  return (_ctx, _cache) => {
352769
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$7, [exports_vue.createElementVNode("div", _hoisted_2$5, [exports_vue.createVNode(ToolbarButton_default, {
352967
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$8, [exports_vue.createElementVNode("div", _hoisted_2$6, [exports_vue.createVNode(ToolbarButton_default, {
352770
352968
  "toolbar-item": overflowToolbarItem.value,
352771
352969
  onButtonClick: toggleOverflowMenu
352772
- }, null, 8, ["toolbar-item"])]), isOverflowMenuOpened.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_3$4, [exports_vue.createVNode(ButtonGroup_default, {
352970
+ }, null, 8, ["toolbar-item"])]), isOverflowMenuOpened.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_3$5, [exports_vue.createVNode(ButtonGroup_default, {
352773
352971
  class: "superdoc-toolbar-overflow",
352774
352972
  "toolbar-items": __props.overflowItems,
352775
352973
  "from-overflow": "",
@@ -352779,13 +352977,13 @@ function print() { __p += __j.call(arguments, '') }
352779
352977
  };
352780
352978
  }
352781
352979
  }, [["__scopeId", "data-v-35b48dff"]]);
352782
- _hoisted_1$6 = { class: "toolbar-dropdown" };
352783
- _hoisted_2$4 = ["onClick"];
352784
- _hoisted_3$3 = {
352980
+ _hoisted_1$7 = { class: "toolbar-dropdown" };
352981
+ _hoisted_2$5 = ["onClick"];
352982
+ _hoisted_3$4 = {
352785
352983
  key: 0,
352786
352984
  class: "toolbar-dropdown-option__icon"
352787
352985
  };
352788
- _hoisted_4$3 = { class: "toolbar-dropdown-option__label" };
352986
+ _hoisted_4$4 = { class: "toolbar-dropdown-option__label" };
352789
352987
  ToolbarDropdown_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
352790
352988
  __name: "ToolbarDropdown",
352791
352989
  props: {
@@ -353133,7 +353331,7 @@ function print() { __p += __j.call(arguments, '') }
353133
353331
  window.removeEventListener("scroll", updateMenuPosition, true);
353134
353332
  });
353135
353333
  return (_ctx, _cache) => {
353136
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$6, [exports_vue.createElementVNode("div", {
353334
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$7, [exports_vue.createElementVNode("div", {
353137
353335
  ref_key: "triggerRef",
353138
353336
  ref: triggerRef,
353139
353337
  class: "toolbar-dropdown-trigger",
@@ -353168,13 +353366,486 @@ function print() { __p += __j.call(arguments, '') }
353168
353366
  }), [isRenderOption(option) ? (exports_vue.openBlock(), exports_vue.createBlock(exports_vue.unref(RenderOption), {
353169
353367
  key: 0,
353170
353368
  option
353171
- }, 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);
353369
+ }, 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);
353172
353370
  }), 128))], 16)) : exports_vue.createCommentVNode("", true)]),
353173
353371
  _: 1
353174
353372
  })]))]);
353175
353373
  };
353176
353374
  }
353177
353375
  }, [["__scopeId", "data-v-69732782"]]);
353376
+ _hoisted_1$6 = [
353377
+ "value",
353378
+ "disabled",
353379
+ "aria-label",
353380
+ "aria-expanded",
353381
+ "aria-controls",
353382
+ "aria-activedescendant"
353383
+ ];
353384
+ _hoisted_2$4 = ["aria-label", "disabled"];
353385
+ _hoisted_3$3 = ["innerHTML"];
353386
+ _hoisted_4$3 = ["id", "aria-label"];
353387
+ _hoisted_5$3 = [
353388
+ "id",
353389
+ "aria-selected",
353390
+ "aria-label",
353391
+ "onMousedown",
353392
+ "onMouseenter"
353393
+ ];
353394
+ _hoisted_6$2 = { class: "toolbar-dropdown-option__label" };
353395
+ _hoisted_7$1 = {
353396
+ class: "sd-button-label sd-font-combobox__legacy-label",
353397
+ "aria-hidden": "true"
353398
+ };
353399
+ FontFamilyCombobox_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
353400
+ __name: "FontFamilyCombobox",
353401
+ props: {
353402
+ item: {
353403
+ type: Object,
353404
+ required: true
353405
+ },
353406
+ uiFontFamily: {
353407
+ type: String,
353408
+ default: "Arial, Helvetica, sans-serif"
353409
+ }
353410
+ },
353411
+ emits: [
353412
+ "command",
353413
+ "item-clicked",
353414
+ "tab-out",
353415
+ "editor-handoff"
353416
+ ],
353417
+ setup(__props, { emit: __emit }) {
353418
+ const props = __props;
353419
+ const emit = __emit;
353420
+ const { isHighContrastMode: isHighContrastMode$1 } = useHighContrastMode();
353421
+ const inputRef = exports_vue.ref(null);
353422
+ const rootRef = exports_vue.ref(null);
353423
+ const popupRef = exports_vue.ref(null);
353424
+ const optionRefs = exports_vue.ref([]);
353425
+ const isEditing = exports_vue.ref(false);
353426
+ const isOpen = exports_vue.ref(false);
353427
+ const activeIndex = exports_vue.ref(-1);
353428
+ const query2 = exports_vue.ref("");
353429
+ const inputDisplay = exports_vue.ref("");
353430
+ const isComposing = exports_vue.ref(false);
353431
+ const menuPosition = exports_vue.ref({
353432
+ top: "0px",
353433
+ left: "0px",
353434
+ minWidth: "0px",
353435
+ maxHeight: "none"
353436
+ });
353437
+ const options = exports_vue.computed(() => props.item.nestedOptions?.value ?? []);
353438
+ const optionLabels = exports_vue.computed(() => options.value.map((option) => String(option?.label ?? "")));
353439
+ const appliedLabel = exports_vue.computed(() => String(props.item.label?.value ?? ""));
353440
+ const disabled = exports_vue.computed(() => Boolean(props.item.disabled?.value));
353441
+ const ariaLabel = exports_vue.computed(() => props.item.attributes?.value?.ariaLabel ?? "Font family");
353442
+ const boundValue = exports_vue.computed(() => isEditing.value ? inputDisplay.value : appliedLabel.value);
353443
+ const listboxId = exports_vue.computed(() => `sd-fontfamily-listbox-${props.item.id?.value ?? "default"}`);
353444
+ const optionId = (index2) => `${listboxId.value}-option-${index2}`;
353445
+ const activeDescendant = exports_vue.computed(() => isOpen.value && activeIndex.value >= 0 ? optionId(activeIndex.value) : undefined);
353446
+ const caretIcon = exports_vue.computed(() => isOpen.value ? toolbarIcons.dropdownCaretUp : toolbarIcons.dropdownCaretDown);
353447
+ const previewFamilyForLabel = (label) => {
353448
+ const normalized = String(label ?? "").trim().toLowerCase();
353449
+ return options.value.find((candidate) => String(candidate?.label ?? "").trim().toLowerCase() === normalized)?.props?.style?.fontFamily || label || props.uiFontFamily;
353450
+ };
353451
+ const inputStyle = exports_vue.computed(() => ({ fontFamily: previewFamilyForLabel(isEditing.value ? inputDisplay.value : appliedLabel.value) }));
353452
+ const appliedIndex = () => {
353453
+ const selectedKey = props.item.selectedValue?.value;
353454
+ if (selectedKey) {
353455
+ const byKey = options.value.findIndex((option) => option?.key === selectedKey);
353456
+ if (byKey >= 0)
353457
+ return byKey;
353458
+ }
353459
+ return optionLabels.value.findIndex((label) => label.toLowerCase() === appliedLabel.value.toLowerCase());
353460
+ };
353461
+ const setSelectionRange = (start$1, end$1) => {
353462
+ const el = inputRef.value;
353463
+ if (!el || typeof el.setSelectionRange !== "function")
353464
+ return;
353465
+ try {
353466
+ el.setSelectionRange(start$1, end$1);
353467
+ } catch {}
353468
+ };
353469
+ const scrollActiveIntoView = () => {
353470
+ optionRefs.value[activeIndex.value]?.scrollIntoView?.({
353471
+ block: "nearest",
353472
+ inline: "nearest"
353473
+ });
353474
+ };
353475
+ const updatePosition$1 = () => {
353476
+ const trigger = rootRef.value;
353477
+ if (!trigger)
353478
+ return;
353479
+ const rect = trigger.getBoundingClientRect();
353480
+ const menuEl = popupRef.value;
353481
+ const menuHeight = menuEl?.scrollHeight ?? menuEl?.offsetHeight ?? 0;
353482
+ const viewportHeight = window.innerHeight || document.documentElement.clientHeight || 0;
353483
+ const viewportWidth = window.innerWidth || document.documentElement.clientWidth || 0;
353484
+ const gutter = 8;
353485
+ const gap = 4;
353486
+ const belowTop = rect.bottom + gap;
353487
+ const aboveBottom = rect.top - gap;
353488
+ const availableBelow = Math.max(0, viewportHeight - belowTop - gutter);
353489
+ const availableAbove = Math.max(0, aboveBottom - gutter);
353490
+ const openAbove = availableBelow < menuHeight && availableAbove > availableBelow;
353491
+ const maxHeight = openAbove ? availableAbove : availableBelow;
353492
+ const renderHeight = menuHeight ? Math.min(menuHeight, maxHeight) : maxHeight;
353493
+ const top$1 = openAbove ? Math.max(gutter, aboveBottom - renderHeight) : belowTop;
353494
+ const left$1 = Math.min(Math.max(gutter, rect.left), Math.max(gutter, viewportWidth - rect.width - gutter));
353495
+ menuPosition.value = {
353496
+ top: `${top$1}px`,
353497
+ left: `${left$1}px`,
353498
+ minWidth: `${rect.width}px`,
353499
+ maxHeight: `${maxHeight}px`
353500
+ };
353501
+ };
353502
+ const menuStyle = exports_vue.computed(() => ({
353503
+ position: "fixed",
353504
+ top: menuPosition.value.top,
353505
+ left: menuPosition.value.left,
353506
+ minWidth: menuPosition.value.minWidth,
353507
+ maxHeight: menuPosition.value.maxHeight,
353508
+ fontFamily: props.uiFontFamily,
353509
+ zIndex: 2000
353510
+ }));
353511
+ const setItemExpanded = (open2) => {
353512
+ if (props.item.expand && typeof props.item.expand === "object" && "value" in props.item.expand)
353513
+ props.item.expand.value = open2;
353514
+ };
353515
+ const openList = (index2, { focusInput = false } = {}) => {
353516
+ if (disabled.value || !options.value.length) {
353517
+ setItemExpanded(false);
353518
+ return;
353519
+ }
353520
+ isOpen.value = true;
353521
+ setItemExpanded(true);
353522
+ activeIndex.value = index2 ?? -1;
353523
+ if (focusInput) {
353524
+ isEditing.value = true;
353525
+ inputDisplay.value = appliedLabel.value;
353526
+ inputRef.value?.focus();
353527
+ }
353528
+ exports_vue.nextTick(() => {
353529
+ updatePosition$1();
353530
+ scrollActiveIntoView();
353531
+ });
353532
+ };
353533
+ const closeList = ({ syncItem = true } = {}) => {
353534
+ isOpen.value = false;
353535
+ activeIndex.value = -1;
353536
+ if (syncItem)
353537
+ setItemExpanded(false);
353538
+ };
353539
+ const resetToApplied = () => {
353540
+ closeList();
353541
+ isEditing.value = false;
353542
+ query2.value = "";
353543
+ inputDisplay.value = appliedLabel.value;
353544
+ };
353545
+ const onFocus = () => {
353546
+ if (disabled.value)
353547
+ return;
353548
+ emit("item-clicked");
353549
+ isEditing.value = true;
353550
+ query2.value = "";
353551
+ inputDisplay.value = appliedLabel.value;
353552
+ exports_vue.nextTick(() => setSelectionRange(0, inputDisplay.value.length));
353553
+ };
353554
+ const onInputMousedown = (event) => {
353555
+ if (disabled.value || document.activeElement === inputRef.value)
353556
+ return;
353557
+ event.preventDefault();
353558
+ inputRef.value?.focus();
353559
+ isEditing.value = true;
353560
+ query2.value = "";
353561
+ inputDisplay.value = appliedLabel.value;
353562
+ setSelectionRange(0, appliedLabel.value.length);
353563
+ };
353564
+ const onBlur = (event) => {
353565
+ const next2 = event.relatedTarget;
353566
+ if (next2 instanceof Node && rootRef.value?.contains(next2))
353567
+ return;
353568
+ if (next2 instanceof Node && popupRef.value?.contains(next2))
353569
+ return;
353570
+ resetToApplied();
353571
+ };
353572
+ const onInput = (event) => {
353573
+ if (isComposing.value)
353574
+ return;
353575
+ const el = event.target;
353576
+ const typed = el.value;
353577
+ const selectionStart = typeof el.selectionStart === "number" ? el.selectionStart : typed.length;
353578
+ const selectionEnd = typeof el.selectionEnd === "number" ? el.selectionEnd : selectionStart;
353579
+ const isDelete = typeof event.inputType === "string" && event.inputType.startsWith("delete");
353580
+ const editAtEnd = selectionStart === typed.length && selectionEnd === typed.length;
353581
+ query2.value = typed;
353582
+ const result = computeTypeahead(typed, optionLabels.value, { autocomplete: !isDelete && editAtEnd });
353583
+ inputDisplay.value = result.display;
353584
+ el.value = result.display;
353585
+ if (result.display === typed && !editAtEnd)
353586
+ setSelectionRange(selectionStart, selectionEnd);
353587
+ else
353588
+ setSelectionRange(result.selectionStart, result.selectionEnd);
353589
+ if (isOpen.value) {
353590
+ activeIndex.value = result.matchIndex;
353591
+ exports_vue.nextTick(scrollActiveIntoView);
353592
+ }
353593
+ };
353594
+ const onCompositionEnd = (event) => {
353595
+ isComposing.value = false;
353596
+ onInput(event);
353597
+ };
353598
+ const moveActive = (direction) => {
353599
+ if (!options.value.length)
353600
+ return;
353601
+ const count2 = options.value.length;
353602
+ activeIndex.value = ((activeIndex.value < 0 ? direction > 0 ? -1 : 0 : activeIndex.value) + direction + count2) % count2;
353603
+ exports_vue.nextTick(scrollActiveIntoView);
353604
+ };
353605
+ const emitFontCommand = (label, option) => {
353606
+ emit("item-clicked");
353607
+ emit("command", {
353608
+ item: props.item,
353609
+ argument: label,
353610
+ option
353611
+ });
353612
+ if (option)
353613
+ props.item.selectedValue.value = option.key;
353614
+ };
353615
+ const applyOption = (option) => {
353616
+ if (!option)
353617
+ return;
353618
+ emitFontCommand(option.label, option);
353619
+ isEditing.value = false;
353620
+ query2.value = "";
353621
+ inputDisplay.value = option.label;
353622
+ closeList();
353623
+ };
353624
+ const applySelection = () => {
353625
+ if (isOpen.value && activeIndex.value >= 0) {
353626
+ applyOption(options.value[activeIndex.value]);
353627
+ return true;
353628
+ }
353629
+ const matchIndex = findPrefixMatchIndex(query2.value, optionLabels.value);
353630
+ if (matchIndex >= 0) {
353631
+ applyOption(options.value[matchIndex]);
353632
+ return true;
353633
+ }
353634
+ const custom = normalizeCustomFontFamily(query2.value);
353635
+ if (custom) {
353636
+ emitFontCommand(custom, null);
353637
+ isEditing.value = false;
353638
+ query2.value = "";
353639
+ inputDisplay.value = custom;
353640
+ closeList();
353641
+ return true;
353642
+ }
353643
+ return false;
353644
+ };
353645
+ const onKeydown = (event) => {
353646
+ if (event.isComposing || isComposing.value || event.keyCode === 229)
353647
+ return;
353648
+ if (event.ctrlKey || event.metaKey || event.altKey)
353649
+ return;
353650
+ switch (event.key) {
353651
+ case "ArrowDown":
353652
+ event.preventDefault();
353653
+ if (!isOpen.value) {
353654
+ const typedMatch = findPrefixMatchIndex(query2.value, optionLabels.value);
353655
+ const index2 = typedMatch >= 0 ? typedMatch : appliedIndex();
353656
+ openList(index2 >= 0 ? index2 : 0);
353657
+ } else
353658
+ moveActive(1);
353659
+ break;
353660
+ case "ArrowUp":
353661
+ event.preventDefault();
353662
+ if (!isOpen.value) {
353663
+ const typedMatch = findPrefixMatchIndex(query2.value, optionLabels.value);
353664
+ const index2 = typedMatch >= 0 ? typedMatch : appliedIndex();
353665
+ openList(index2 >= 0 ? index2 : options.value.length - 1);
353666
+ } else
353667
+ moveActive(-1);
353668
+ break;
353669
+ case "Enter":
353670
+ event.preventDefault();
353671
+ if (applySelection())
353672
+ emit("editor-handoff");
353673
+ inputRef.value?.blur();
353674
+ break;
353675
+ case "Tab":
353676
+ event.preventDefault();
353677
+ applySelection();
353678
+ closeList();
353679
+ inputRef.value?.blur();
353680
+ emit("tab-out", event);
353681
+ break;
353682
+ case "Escape":
353683
+ event.preventDefault();
353684
+ resetToApplied();
353685
+ exports_vue.nextTick(() => inputRef.value?.focus());
353686
+ break;
353687
+ default:
353688
+ break;
353689
+ }
353690
+ };
353691
+ const onCaretMousedown = (event) => {
353692
+ event.preventDefault();
353693
+ if (disabled.value)
353694
+ return;
353695
+ emit("item-clicked");
353696
+ if (!isEditing.value) {
353697
+ isEditing.value = true;
353698
+ inputDisplay.value = appliedLabel.value;
353699
+ inputRef.value?.focus();
353700
+ }
353701
+ if (isOpen.value)
353702
+ closeList();
353703
+ else {
353704
+ const index2 = appliedIndex();
353705
+ openList(index2 >= 0 ? index2 : 0);
353706
+ }
353707
+ };
353708
+ const onOptionMousedown = (event, option) => {
353709
+ event.preventDefault();
353710
+ applyOption(option);
353711
+ emit("editor-handoff");
353712
+ inputRef.value?.blur();
353713
+ };
353714
+ const onOptionMouseenter = (index2) => {
353715
+ activeIndex.value = index2;
353716
+ };
353717
+ const handleDocumentPointerDown = (event) => {
353718
+ if (!isOpen.value)
353719
+ return;
353720
+ const target = event.target;
353721
+ if (!(target instanceof Element))
353722
+ return;
353723
+ if (rootRef.value?.contains(target) || popupRef.value?.contains(target))
353724
+ return;
353725
+ closeList();
353726
+ };
353727
+ exports_vue.watch(isOpen, (open2) => {
353728
+ if (open2) {
353729
+ document.addEventListener("pointerdown", handleDocumentPointerDown, true);
353730
+ window.addEventListener("resize", updatePosition$1);
353731
+ window.addEventListener("scroll", updatePosition$1, true);
353732
+ } else {
353733
+ document.removeEventListener("pointerdown", handleDocumentPointerDown, true);
353734
+ window.removeEventListener("resize", updatePosition$1);
353735
+ window.removeEventListener("scroll", updatePosition$1, true);
353736
+ optionRefs.value = [];
353737
+ }
353738
+ }, { immediate: true });
353739
+ exports_vue.onBeforeUnmount(() => {
353740
+ document.removeEventListener("pointerdown", handleDocumentPointerDown, true);
353741
+ window.removeEventListener("resize", updatePosition$1);
353742
+ window.removeEventListener("scroll", updatePosition$1, true);
353743
+ });
353744
+ const setOptionRef = (el, index2) => {
353745
+ if (!el) {
353746
+ delete optionRefs.value[index2];
353747
+ return;
353748
+ }
353749
+ optionRefs.value[index2] = el;
353750
+ };
353751
+ const isOptionActive = (index2) => index2 === activeIndex.value;
353752
+ const isOptionSelected = (option) => option?.key && option.key === props.item.selectedValue?.value;
353753
+ exports_vue.watch(appliedLabel, (label) => {
353754
+ if (isEditing.value)
353755
+ return;
353756
+ inputDisplay.value = label;
353757
+ });
353758
+ exports_vue.watch(() => Boolean(props.item.expand?.value), (expanded) => {
353759
+ if (expanded && !isOpen.value) {
353760
+ const index2 = appliedIndex();
353761
+ openList(index2 >= 0 ? index2 : 0, { focusInput: true });
353762
+ return;
353763
+ }
353764
+ if (!expanded && isOpen.value)
353765
+ closeList({ syncItem: false });
353766
+ });
353767
+ return (_ctx, _cache) => {
353768
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", {
353769
+ ref_key: "rootRef",
353770
+ ref: rootRef,
353771
+ class: exports_vue.normalizeClass(["sd-font-combobox sd-toolbar-split-field", {
353772
+ "sd-disabled": disabled.value,
353773
+ "high-contrast": exports_vue.unref(isHighContrastMode$1)
353774
+ }]),
353775
+ style: exports_vue.normalizeStyle(props.item.style?.value),
353776
+ "data-item": "btn-fontFamily"
353777
+ }, [
353778
+ exports_vue.createElementVNode("span", {
353779
+ class: "sd-font-combobox__field sd-toolbar-split-field__main",
353780
+ onMousedown: onInputMousedown
353781
+ }, [exports_vue.createElementVNode("input", {
353782
+ ref_key: "inputRef",
353783
+ ref: inputRef,
353784
+ class: "button-text-input sd-font-combobox__input",
353785
+ type: "text",
353786
+ role: "combobox",
353787
+ autocomplete: "off",
353788
+ spellcheck: "false",
353789
+ value: boundValue.value,
353790
+ style: exports_vue.normalizeStyle(inputStyle.value),
353791
+ disabled: disabled.value,
353792
+ "aria-label": ariaLabel.value,
353793
+ "aria-expanded": isOpen.value ? "true" : "false",
353794
+ "aria-controls": listboxId.value,
353795
+ "aria-activedescendant": activeDescendant.value,
353796
+ "aria-haspopup": "listbox",
353797
+ "aria-autocomplete": "both",
353798
+ onFocus,
353799
+ onBlur,
353800
+ onInput,
353801
+ onKeydown,
353802
+ onCompositionstart: _cache[0] || (_cache[0] = ($event) => isComposing.value = true),
353803
+ onCompositionend: onCompositionEnd
353804
+ }, null, 44, _hoisted_1$6)], 32),
353805
+ exports_vue.createElementVNode("button", {
353806
+ type: "button",
353807
+ class: "sd-font-combobox__caret sd-toolbar-split-field__caret",
353808
+ "data-item": "btn-fontFamily-toggle",
353809
+ tabindex: "-1",
353810
+ "aria-label": `${ariaLabel.value} options`,
353811
+ disabled: disabled.value,
353812
+ onMousedown: onCaretMousedown
353813
+ }, [exports_vue.createElementVNode("span", {
353814
+ class: "sd-dropdown-caret",
353815
+ innerHTML: caretIcon.value
353816
+ }, null, 8, _hoisted_3$3)], 40, _hoisted_2$4),
353817
+ (exports_vue.openBlock(), exports_vue.createBlock(exports_vue.Teleport, { to: "body" }, [isOpen.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
353818
+ key: 0,
353819
+ ref_key: "popupRef",
353820
+ ref: popupRef,
353821
+ role: "listbox",
353822
+ id: listboxId.value,
353823
+ "aria-label": ariaLabel.value,
353824
+ class: exports_vue.normalizeClass(["sd-font-combobox__listbox", { "high-contrast": exports_vue.unref(isHighContrastMode$1) }]),
353825
+ style: exports_vue.normalizeStyle(menuStyle.value)
353826
+ }, [(exports_vue.openBlock(true), exports_vue.createElementBlock(exports_vue.Fragment, null, exports_vue.renderList(options.value, (option, index2) => {
353827
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", exports_vue.mergeProps({
353828
+ key: option.key,
353829
+ ref_for: true,
353830
+ ref: (el) => setOptionRef(el, index2),
353831
+ id: optionId(index2),
353832
+ role: "option",
353833
+ class: ["toolbar-dropdown-option sd-font-combobox__option", {
353834
+ "sd-active": isOptionActive(index2),
353835
+ "sd-selected": isOptionSelected(option)
353836
+ }],
353837
+ "aria-selected": isOptionSelected(option) ? "true" : "false",
353838
+ "aria-label": `${ariaLabel.value} - ${option.label}`
353839
+ }, { ref_for: true }, option.props, {
353840
+ onMousedown: (e) => onOptionMousedown(e, option),
353841
+ onMouseenter: ($event) => onOptionMouseenter(index2)
353842
+ }), [exports_vue.createElementVNode("span", _hoisted_6$2, exports_vue.toDisplayString(option.label), 1)], 16, _hoisted_5$3);
353843
+ }), 128))], 14, _hoisted_4$3)) : exports_vue.createCommentVNode("", true)])),
353844
+ exports_vue.createElementVNode("span", _hoisted_7$1, exports_vue.toDisplayString(appliedLabel.value), 1)
353845
+ ], 6);
353846
+ };
353847
+ }
353848
+ }, [["__scopeId", "data-v-1e39033e"]]);
353178
353849
  SdTooltip_default = /* @__PURE__ */ __plugin_vue_export_helper_default(/* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
353179
353850
  __name: "SdTooltip",
353180
353851
  props: {
@@ -353190,6 +353861,10 @@ function print() { __p += __j.call(arguments, '') }
353190
353861
  type: Number,
353191
353862
  default: 100
353192
353863
  },
353864
+ autoHideDuration: {
353865
+ type: Number,
353866
+ default: 0
353867
+ },
353193
353868
  disabled: {
353194
353869
  type: Boolean,
353195
353870
  default: false
@@ -353211,6 +353886,7 @@ function print() { __p += __j.call(arguments, '') }
353211
353886
  });
353212
353887
  let closeTimeout = null;
353213
353888
  let openTimeout = null;
353889
+ let autoHideTimeout = null;
353214
353890
  const mergedContentClass = exports_vue.computed(() => ["sd-tooltip-content", attrs.class]);
353215
353891
  const contentStyle = exports_vue.computed(() => ({
353216
353892
  ...props.contentStyle,
@@ -353232,6 +353908,21 @@ function print() { __p += __j.call(arguments, '') }
353232
353908
  openTimeout = null;
353233
353909
  }
353234
353910
  };
353911
+ const clearAutoHideTimeout = () => {
353912
+ if (autoHideTimeout) {
353913
+ window.clearTimeout(autoHideTimeout);
353914
+ autoHideTimeout = null;
353915
+ }
353916
+ };
353917
+ const scheduleAutoHide = () => {
353918
+ clearAutoHideTimeout();
353919
+ if (props.autoHideDuration <= 0)
353920
+ return;
353921
+ autoHideTimeout = window.setTimeout(() => {
353922
+ autoHideTimeout = null;
353923
+ close2();
353924
+ }, props.autoHideDuration);
353925
+ };
353235
353926
  const updatePosition$1 = () => {
353236
353927
  if (!triggerRef.value || !contentRef.value)
353237
353928
  return;
@@ -353257,10 +353948,12 @@ function print() { __p += __j.call(arguments, '') }
353257
353948
  isOpen.value = true;
353258
353949
  await exports_vue.nextTick();
353259
353950
  updatePosition$1();
353951
+ scheduleAutoHide();
353260
353952
  };
353261
353953
  const close2 = () => {
353262
353954
  clearOpenTimeout();
353263
353955
  clearCloseTimeout();
353956
+ clearAutoHideTimeout();
353264
353957
  if (!isOpen.value)
353265
353958
  return;
353266
353959
  isOpen.value = false;
@@ -353332,6 +354025,7 @@ function print() { __p += __j.call(arguments, '') }
353332
354025
  exports_vue.onBeforeUnmount(() => {
353333
354026
  clearOpenTimeout();
353334
354027
  clearCloseTimeout();
354028
+ clearAutoHideTimeout();
353335
354029
  window.removeEventListener("resize", updatePosition$1);
353336
354030
  window.removeEventListener("scroll", updatePosition$1, true);
353337
354031
  document.removeEventListener("keydown", handleEscape, true);
@@ -353362,15 +354056,17 @@ function print() { __p += __j.call(arguments, '') }
353362
354056
  })]))], 64);
353363
354057
  };
353364
354058
  }
353365
- }), [["__scopeId", "data-v-d8dd2f5a"]]);
353366
- _hoisted_1$5 = [
354059
+ }), [["__scopeId", "data-v-f0925f67"]]);
354060
+ _hoisted_1$5 = ["data-toolbar-position"];
354061
+ _hoisted_2$3 = [
353367
354062
  "onKeydown",
353368
354063
  "tabindex",
353369
354064
  "data-item-id"
353370
354065
  ];
353371
- _hoisted_2$3 = { key: 0 };
353372
354066
  _hoisted_3$2 = { key: 0 };
353373
354067
  _hoisted_4$2 = { key: 0 };
354068
+ _hoisted_5$2 = { key: 0 };
354069
+ _hoisted_6$1 = { key: 0 };
353374
354070
  ButtonGroup_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
353375
354071
  __name: "ButtonGroup",
353376
354072
  props: {
@@ -353431,8 +354127,10 @@ function print() { __p += __j.call(arguments, '') }
353431
354127
  });
353432
354128
  const isButton = (item) => item.type === "button";
353433
354129
  const isDropdown = (item) => item.type === "dropdown";
354130
+ const isFontFamily = (item) => item.type === "dropdown" && item.name?.value === "fontFamily";
353434
354131
  const isSeparator = (item) => item.type === "separator";
353435
354132
  const isOverflow = (item) => item.type === "overflow";
354133
+ const hasNestedOptions = (item) => Boolean(item.nestedOptions?.value?.length);
353436
354134
  const getExpanded = (item) => {
353437
354135
  if (!item)
353438
354136
  return false;
@@ -353496,16 +354194,19 @@ function print() { __p += __j.call(arguments, '') }
353496
354194
  argument: null
353497
354195
  });
353498
354196
  };
353499
- const closeDropdowns = () => {
354197
+ const closeDropdowns = (exceptItem = null) => {
353500
354198
  const toolbarItems = proxy?.$toolbar?.toolbarItems || [];
353501
354199
  const overflowItems = proxy?.$toolbar?.overflowItems || [];
353502
354200
  const allItems = [...toolbarItems, ...overflowItems];
353503
354201
  (allItems.length ? allItems : props.toolbarItems).forEach((toolbarItem) => {
354202
+ if (toolbarItem === exceptItem)
354203
+ return;
353504
354204
  const shouldCloseOverflow = isOverflow(toolbarItem) && !props.fromOverflow;
353505
354205
  if (isDropdown(toolbarItem) || shouldCloseOverflow)
353506
354206
  setExpanded(toolbarItem, false);
353507
354207
  });
353508
- currentItem.value = null;
354208
+ if (!exceptItem || currentItem.value !== exceptItem)
354209
+ currentItem.value = null;
353509
354210
  };
353510
354211
  const handleSelect = (item, option) => {
353511
354212
  closeDropdowns();
@@ -353516,6 +354217,39 @@ function print() { __p += __j.call(arguments, '') }
353516
354217
  });
353517
354218
  item.selectedValue.value = option.key;
353518
354219
  };
354220
+ const handleComboboxItemClicked = (item) => {
354221
+ closeDropdowns(item);
354222
+ emit("item-clicked");
354223
+ };
354224
+ const handleComboboxCommand = (payload) => {
354225
+ emit("command", payload);
354226
+ };
354227
+ const waitForFrame = () => new Promise((resolve3) => requestAnimationFrame(resolve3));
354228
+ const flushPendingToolbarMarks = () => Boolean(proxy?.$toolbar?.flushPendingMarkCommands?.());
354229
+ const handleEditorTextInputHandoff = () => {
354230
+ flushPendingToolbarMarks();
354231
+ prepareSelectionForTextInputHandoff(proxy?.$toolbar?.activeEditor);
354232
+ focusEditor();
354233
+ };
354234
+ const handleComboboxTabOut = (startIndex, event) => {
354235
+ closeDropdowns();
354236
+ flushPendingToolbarMarks();
354237
+ if (event.shiftKey)
354238
+ focusAdjacentToolbarControlAfterUpdate(startIndex, -1, () => focusPreviousButtonGroup() || focusEditor());
354239
+ else
354240
+ focusAdjacentToolbarControlAfterUpdate(startIndex, 1, true);
354241
+ };
354242
+ const handleToolbarButtonTabOut = (item, event) => {
354243
+ closeDropdowns();
354244
+ if (item.name.value === "fontSize" && !event.shiftKey) {
354245
+ handleEditorTextInputHandoff();
354246
+ return;
354247
+ }
354248
+ if (event.shiftKey)
354249
+ moveToAdjacentToolbarControl(event, -1);
354250
+ else
354251
+ moveToAdjacentToolbarControl(event, 1) || focusEditor();
354252
+ };
353519
354253
  const dropdownOptions = (item) => {
353520
354254
  if (!item.nestedOptions?.value?.length)
353521
354255
  return [];
@@ -353554,16 +354288,97 @@ function print() { __p += __j.call(arguments, '') }
353554
354288
  previousButton.focus();
353555
354289
  }
353556
354290
  };
354291
+ const focusEditor = () => {
354292
+ const editor = proxy?.$toolbar?.activeEditor;
354293
+ if (editor && typeof editor.focus === "function") {
354294
+ editor.focus();
354295
+ return true;
354296
+ }
354297
+ const editorDom = editor?.view?.dom;
354298
+ if (editorDom instanceof HTMLElement) {
354299
+ editorDom.focus();
354300
+ return true;
354301
+ }
354302
+ return false;
354303
+ };
354304
+ const getToolbarItemFocusTarget = (container) => {
354305
+ if (!(container instanceof HTMLElement))
354306
+ return null;
354307
+ if (container.classList.contains("sd-disabled"))
354308
+ return null;
354309
+ 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"])');
354310
+ };
354311
+ const getCurrentToolbarItemContainers = () => {
354312
+ if (toolbarItemRefs.value.length)
354313
+ return toolbarItemRefs.value;
354314
+ const group = document.querySelector(`.button-group[data-toolbar-position="${props.position}"]`);
354315
+ if (!group)
354316
+ return [];
354317
+ return Array.from(group.querySelectorAll(":scope > .sd-toolbar-item-ctn"));
354318
+ };
354319
+ const focusToolbarControlFromIndex = (startIndex, direction) => {
354320
+ if (startIndex < 0)
354321
+ return false;
354322
+ const containers = getCurrentToolbarItemContainers();
354323
+ let index2 = startIndex + direction;
354324
+ while (index2 >= 0 && index2 < containers.length) {
354325
+ const container = containers[index2];
354326
+ const target = getToolbarItemFocusTarget(container);
354327
+ if (target instanceof HTMLElement) {
354328
+ containers[startIndex]?.setAttribute("tabindex", "-1");
354329
+ container.setAttribute("tabindex", "0");
354330
+ target.focus();
354331
+ return true;
354332
+ }
354333
+ index2 += direction;
354334
+ }
354335
+ return false;
354336
+ };
354337
+ const focusPreviousButtonGroup = () => {
354338
+ const previousButtonGroup = buttonGroupRef.value?.previousElementSibling;
354339
+ if (previousButtonGroup instanceof HTMLElement) {
354340
+ previousButtonGroup.setAttribute("tabindex", "0");
354341
+ previousButtonGroup.focus();
354342
+ return true;
354343
+ }
354344
+ return false;
354345
+ };
354346
+ const focusAdjacentToolbarControlAfterUpdate = async (startIndex, direction, fallback = false) => {
354347
+ await exports_vue.nextTick();
354348
+ await waitForFrame();
354349
+ if (focusToolbarControlFromIndex(startIndex, direction))
354350
+ return;
354351
+ if (typeof fallback === "function") {
354352
+ fallback();
354353
+ return;
354354
+ }
354355
+ if (fallback)
354356
+ focusEditor();
354357
+ };
354358
+ const moveToAdjacentToolbarControl = (event, direction) => {
354359
+ const current = event.target.closest(".sd-toolbar-item-ctn");
354360
+ if (!(current instanceof HTMLElement))
354361
+ return false;
354362
+ let candidate = direction > 0 ? current.nextElementSibling : current.previousElementSibling;
354363
+ while (candidate) {
354364
+ const target = getToolbarItemFocusTarget(candidate);
354365
+ if (target instanceof HTMLElement) {
354366
+ current.setAttribute("tabindex", "-1");
354367
+ candidate.setAttribute("tabindex", "0");
354368
+ target.focus();
354369
+ return true;
354370
+ }
354371
+ candidate = direction > 0 ? candidate.nextElementSibling : candidate.previousElementSibling;
354372
+ }
354373
+ return false;
354374
+ };
353557
354375
  const moveToNextButtonGroup = (e) => {
353558
354376
  const nextButtonGroup = e.target.closest(".button-group").nextElementSibling;
353559
354377
  if (nextButtonGroup) {
353560
354378
  nextButtonGroup.setAttribute("tabindex", "0");
353561
354379
  nextButtonGroup.focus();
353562
- } else {
353563
- const editor = document.querySelector(".ProseMirror");
353564
- if (editor)
353565
- editor.focus();
353566
- }
354380
+ } else
354381
+ focusEditor();
353567
354382
  };
353568
354383
  const moveToPreviousButtonGroup = (e) => {
353569
354384
  const previousButtonGroup = e.target.closest(".button-group").previousElementSibling;
@@ -353583,7 +354398,7 @@ function print() { __p += __j.call(arguments, '') }
353583
354398
  };
353584
354399
  const handleKeyDown$1 = (e, item) => {
353585
354400
  const isTypingField = e.target.nodeName === "INPUT" || e.target.nodeName === "TEXTAREA";
353586
- const isTypingToolbarItem = item.name.value === "fontSize";
354401
+ const isTypingToolbarItem = item.name.value === "fontSize" || item.name.value === "fontFamily";
353587
354402
  if (isTypingField && isTypingToolbarItem)
353588
354403
  return;
353589
354404
  if (![
@@ -353649,7 +354464,7 @@ function print() { __p += __j.call(arguments, '') }
353649
354464
  const target = event.target;
353650
354465
  if (!(target instanceof Element))
353651
354466
  return;
353652
- if (target.closest(".sd-toolbar-dropdown-menu"))
354467
+ if (target.closest(".sd-toolbar-dropdown-menu, .sd-font-combobox__listbox"))
353653
354468
  return;
353654
354469
  if (buttonGroupRef.value?.contains(target))
353655
354470
  return;
@@ -353674,7 +354489,8 @@ function print() { __p += __j.call(arguments, '') }
353674
354489
  role: "group",
353675
354490
  onFocus: handleFocus,
353676
354491
  ref_key: "buttonGroupRef",
353677
- ref: buttonGroupRef
354492
+ ref: buttonGroupRef,
354493
+ "data-toolbar-position": props.position
353678
354494
  }, [(exports_vue.openBlock(true), exports_vue.createElementBlock(exports_vue.Fragment, null, exports_vue.renderList(__props.toolbarItems, (item, index2) => {
353679
354495
  return exports_vue.openBlock(), exports_vue.createElementBlock("div", {
353680
354496
  key: item.id.value,
@@ -353694,8 +354510,31 @@ function print() { __p += __j.call(arguments, '') }
353694
354510
  key: 0,
353695
354511
  style: { width: "20px" }
353696
354512
  })) : exports_vue.createCommentVNode("", true),
353697
- isDropdown(item) && item.nestedOptions?.value?.length ? (exports_vue.openBlock(), exports_vue.createBlock(ToolbarDropdown_default, {
354513
+ isFontFamily(item) && hasNestedOptions(item) ? (exports_vue.openBlock(), exports_vue.createBlock(SdTooltip_default, {
353698
354514
  key: 1,
354515
+ trigger: "hover",
354516
+ disabled: !item.tooltip?.value,
354517
+ "auto-hide-duration": TOOLBAR_TOOLTIP_AUTO_HIDE_MS,
354518
+ "content-style": { fontFamily: props.uiFontFamily }
354519
+ }, {
354520
+ trigger: exports_vue.withCtx(() => [exports_vue.createVNode(FontFamilyCombobox_default, {
354521
+ item,
354522
+ "ui-font-family": props.uiFontFamily,
354523
+ class: "sd-toolbar-button sd-editor-toolbar-dropdown",
354524
+ onCommand: handleComboboxCommand,
354525
+ onItemClicked: ($event) => handleComboboxItemClicked(item),
354526
+ onTabOut: ($event) => handleComboboxTabOut(index2, $event),
354527
+ onEditorHandoff: handleEditorTextInputHandoff
354528
+ }, null, 8, [
354529
+ "item",
354530
+ "ui-font-family",
354531
+ "onItemClicked",
354532
+ "onTabOut"
354533
+ ])]),
354534
+ 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)])]),
354535
+ _: 2
354536
+ }, 1032, ["disabled", "content-style"])) : isDropdown(item) && hasNestedOptions(item) ? (exports_vue.openBlock(), exports_vue.createBlock(ToolbarDropdown_default, {
354537
+ key: 2,
353699
354538
  options: dropdownOptions(item),
353700
354539
  disabled: item.disabled.value,
353701
354540
  show: getExpanded(item),
@@ -353715,6 +354554,7 @@ function print() { __p += __j.call(arguments, '') }
353715
354554
  trigger: exports_vue.withCtx(() => [exports_vue.createVNode(SdTooltip_default, {
353716
354555
  trigger: "hover",
353717
354556
  disabled: !item.tooltip?.value,
354557
+ "auto-hide-duration": TOOLBAR_TOOLTIP_AUTO_HIDE_MS,
353718
354558
  "content-style": { fontFamily: props.uiFontFamily }
353719
354559
  }, {
353720
354560
  trigger: exports_vue.withCtx(() => [exports_vue.createVNode(ToolbarButton_default, {
@@ -353722,14 +354562,16 @@ function print() { __p += __j.call(arguments, '') }
353722
354562
  disabled: item.disabled.value,
353723
354563
  "allow-enter-propagation": true,
353724
354564
  onTextSubmit: ($event) => handleToolbarButtonTextSubmit(item, $event),
353725
- onMainClick: ($event) => handleSplitButtonMainClick(item)
354565
+ onMainClick: ($event) => handleSplitButtonMainClick(item),
354566
+ onTabOut: ($event) => handleToolbarButtonTabOut(item, $event)
353726
354567
  }, null, 8, [
353727
354568
  "toolbar-item",
353728
354569
  "disabled",
353729
354570
  "onTextSubmit",
353730
- "onMainClick"
354571
+ "onMainClick",
354572
+ "onTabOut"
353731
354573
  ])]),
353732
- 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)])]),
354574
+ 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)])]),
353733
354575
  _: 2
353734
354576
  }, 1032, ["disabled", "content-style"])]),
353735
354577
  _: 2
@@ -353744,9 +354586,10 @@ function print() { __p += __j.call(arguments, '') }
353744
354586
  "menu-props",
353745
354587
  "node-props"
353746
354588
  ])) : isButton(item) ? (exports_vue.openBlock(), exports_vue.createBlock(SdTooltip_default, {
353747
- key: 2,
354589
+ key: 3,
353748
354590
  trigger: "hover",
353749
354591
  class: "sd-editor-toolbar-tooltip",
354592
+ "auto-hide-duration": TOOLBAR_TOOLTIP_AUTO_HIDE_MS,
353750
354593
  "content-style": { fontFamily: props.uiFontFamily }
353751
354594
  }, {
353752
354595
  trigger: exports_vue.withCtx(() => [exports_vue.createVNode(ToolbarButton_default, {
@@ -353760,11 +354603,11 @@ function print() { __p += __j.call(arguments, '') }
353760
354603
  "onTextSubmit",
353761
354604
  "onButtonClick"
353762
354605
  ])]),
353763
- 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)]),
354606
+ 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)]),
353764
354607
  _: 2
353765
354608
  }, 1032, ["content-style"])) : exports_vue.createCommentVNode("", true),
353766
354609
  isOverflow(item) && __props.overflowItems.length ? (exports_vue.openBlock(), exports_vue.createBlock(OverflowMenu_default, {
353767
- key: 3,
354610
+ key: 4,
353768
354611
  "toolbar-item": item,
353769
354612
  onButtonClick: ($event) => handleToolbarButtonClick(item),
353770
354613
  "overflow-items": __props.overflowItems,
@@ -353774,11 +354617,11 @@ function print() { __p += __j.call(arguments, '') }
353774
354617
  "onButtonClick",
353775
354618
  "overflow-items"
353776
354619
  ])) : exports_vue.createCommentVNode("", true)
353777
- ], 42, _hoisted_1$5);
353778
- }), 128))], 36);
354620
+ ], 42, _hoisted_2$3);
354621
+ }), 128))], 44, _hoisted_1$5);
353779
354622
  };
353780
354623
  }
353781
- }, [["__scopeId", "data-v-9c3524ec"]]);
354624
+ }, [["__scopeId", "data-v-181bd035"]]);
353782
354625
  Toolbar_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
353783
354626
  __name: "Toolbar",
353784
354627
  emits: [
@@ -353932,7 +354775,7 @@ function print() { __p += __j.call(arguments, '') }
353932
354775
  }, [["__scopeId", "data-v-938eaa1b"]]);
353933
354776
  toolbarTexts = {
353934
354777
  bold: "Bold",
353935
- fontFamily: "Font",
354778
+ fontFamily: "Font family",
353936
354779
  ai: "AI text generation",
353937
354780
  fontSize: "Font size",
353938
354781
  italic: "Italic",
@@ -354541,45 +355384,51 @@ function print() { __p += __j.call(arguments, '') }
354541
355384
  if (shouldRestoreFocus)
354542
355385
  this.#scheduleRestoreEditorFocus();
354543
355386
  }
354544
- onEditorSelectionUpdate() {
355387
+ flushPendingMarkCommands() {
354545
355388
  if (!this.activeEditor)
354546
- return;
354547
- if (this.pendingMarkCommands.length) {
354548
- const pending = this.pendingMarkCommands;
354549
- this.pendingMarkCommands = [];
354550
- pending.forEach(({ command: command$1, argument, item }) => {
354551
- if (!command$1)
354552
- return;
354553
- try {
354554
- if (HEADLESS_EXECUTE_ITEMS.has(item?.name?.value)) {
354555
- if (this.#executeHeadlessCommand(item, argument)) {
354556
- this.#ensureStoredMarksForMarkToggle({
354557
- command: command$1,
354558
- argument
354559
- });
354560
- return;
354561
- }
355389
+ return false;
355390
+ if (!this.pendingMarkCommands.length)
355391
+ return false;
355392
+ const pending = this.pendingMarkCommands;
355393
+ this.pendingMarkCommands = [];
355394
+ pending.forEach(({ command: command$1, argument, item }) => {
355395
+ if (!command$1)
355396
+ return;
355397
+ try {
355398
+ if (HEADLESS_EXECUTE_ITEMS.has(item?.name?.value)) {
355399
+ if (this.#executeHeadlessCommand(item, argument)) {
355400
+ this.#ensureStoredMarksForMarkToggle({
355401
+ command: command$1,
355402
+ argument
355403
+ });
355404
+ return;
354562
355405
  }
354563
- if (this.activeEditor.commands && command$1 in this.activeEditor.commands)
354564
- this.activeEditor.commands[command$1](argument);
354565
- this.#ensureStoredMarksForMarkToggle({
354566
- command: command$1,
354567
- argument
354568
- });
354569
- } catch (error3) {
354570
- const err = /* @__PURE__ */ new Error(`[super-toolbar \uD83C\uDFA8] Failed to execute pending command: ${command$1}`);
354571
- this.emit("exception", {
354572
- error: err,
354573
- editor: this.activeEditor,
354574
- originalError: error3
354575
- });
354576
- console.error(err, error3);
354577
355406
  }
354578
- });
354579
- this.#syncStickyMarksFromState();
354580
- this.updateToolbarState();
355407
+ if (this.activeEditor.commands && command$1 in this.activeEditor.commands)
355408
+ this.activeEditor.commands[command$1](argument);
355409
+ this.#ensureStoredMarksForMarkToggle({
355410
+ command: command$1,
355411
+ argument
355412
+ });
355413
+ } catch (error3) {
355414
+ const err = /* @__PURE__ */ new Error(`[super-toolbar \uD83C\uDFA8] Failed to execute pending command: ${command$1}`);
355415
+ this.emit("exception", {
355416
+ error: err,
355417
+ editor: this.activeEditor,
355418
+ originalError: error3
355419
+ });
355420
+ console.error(err, error3);
355421
+ }
355422
+ });
355423
+ this.#syncStickyMarksFromState();
355424
+ this.updateToolbarState();
355425
+ return true;
355426
+ }
355427
+ onEditorSelectionUpdate() {
355428
+ if (!this.activeEditor)
355429
+ return;
355430
+ if (this.flushPendingMarkCommands())
354581
355431
  return;
354582
- }
354583
355432
  if (this.#restoreStickyMarksIfNeeded())
354584
355433
  this.updateToolbarState();
354585
355434
  }
@@ -366546,161 +367395,166 @@ function print() { __p += __j.call(arguments, '') }
366546
367395
  ]);
366547
367396
  });
366548
367397
 
366549
- // ../../packages/superdoc/dist/chunks/create-super-doc-ui-uuXftA9o.es.js
366550
- 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;
366551
- var init_create_super_doc_ui_uuXftA9o_es = __esm(() => {
366552
- init_SuperConverter_d9QeIy9_es();
366553
- init_create_headless_toolbar_l5QB6sQY_es();
367398
+ // ../../packages/superdoc/dist/chunks/create-super-doc-ui-DUYQPx-V.es.js
367399
+ 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;
367400
+ var init_create_super_doc_ui_DUYQPx_V_es = __esm(() => {
367401
+ init_SuperConverter_BTGVElJO_es();
367402
+ init_create_headless_toolbar_DYbkX05s_es();
367403
+ DEFAULT_TEXT_ALIGN_OPTIONS = [
367404
+ {
367405
+ label: "Left",
367406
+ value: "left"
367407
+ },
367408
+ {
367409
+ label: "Center",
367410
+ value: "center"
367411
+ },
367412
+ {
367413
+ label: "Right",
367414
+ value: "right"
367415
+ },
367416
+ {
367417
+ label: "Justify",
367418
+ value: "justify"
367419
+ }
367420
+ ];
367421
+ DEFAULT_LINE_HEIGHT_OPTIONS = [
367422
+ {
367423
+ label: "1.00",
367424
+ value: 1
367425
+ },
367426
+ {
367427
+ label: "1.15",
367428
+ value: 1.15
367429
+ },
367430
+ {
367431
+ label: "1.50",
367432
+ value: 1.5
367433
+ },
367434
+ {
367435
+ label: "2.00",
367436
+ value: 2
367437
+ },
367438
+ {
367439
+ label: "2.50",
367440
+ value: 2.5
367441
+ },
367442
+ {
367443
+ label: "3.00",
367444
+ value: 3
367445
+ }
367446
+ ];
367447
+ DEFAULT_ZOOM_OPTIONS = [
367448
+ {
367449
+ label: "50%",
367450
+ value: 50
367451
+ },
367452
+ {
367453
+ label: "75%",
367454
+ value: 75
367455
+ },
367456
+ {
367457
+ label: "90%",
367458
+ value: 90
367459
+ },
367460
+ {
367461
+ label: "100%",
367462
+ value: 100
367463
+ },
367464
+ {
367465
+ label: "125%",
367466
+ value: 125
367467
+ },
367468
+ {
367469
+ label: "150%",
367470
+ value: 150
367471
+ },
367472
+ {
367473
+ label: "200%",
367474
+ value: 200
367475
+ }
367476
+ ];
367477
+ DEFAULT_DOCUMENT_MODE_OPTIONS = [
367478
+ {
367479
+ label: "Editing",
367480
+ value: "editing",
367481
+ description: "Edit document directly"
367482
+ },
367483
+ {
367484
+ label: "Suggesting",
367485
+ value: "suggesting",
367486
+ description: "Edits become suggestions"
367487
+ },
367488
+ {
367489
+ label: "Viewing",
367490
+ value: "viewing",
367491
+ description: "View clean version of document only"
367492
+ }
367493
+ ];
367494
+ DEFAULT_FONT_SIZE_OPTIONS = [
367495
+ {
367496
+ label: "8",
367497
+ value: "8pt"
367498
+ },
367499
+ {
367500
+ label: "9",
367501
+ value: "9pt"
367502
+ },
367503
+ {
367504
+ label: "10",
367505
+ value: "10pt"
367506
+ },
367507
+ {
367508
+ label: "11",
367509
+ value: "11pt"
367510
+ },
367511
+ {
367512
+ label: "12",
367513
+ value: "12pt"
367514
+ },
367515
+ {
367516
+ label: "14",
367517
+ value: "14pt"
367518
+ },
367519
+ {
367520
+ label: "18",
367521
+ value: "18pt"
367522
+ },
367523
+ {
367524
+ label: "24",
367525
+ value: "24pt"
367526
+ },
367527
+ {
367528
+ label: "30",
367529
+ value: "30pt"
367530
+ },
367531
+ {
367532
+ label: "36",
367533
+ value: "36pt"
367534
+ },
367535
+ {
367536
+ label: "48",
367537
+ value: "48pt"
367538
+ },
367539
+ {
367540
+ label: "60",
367541
+ value: "60pt"
367542
+ },
367543
+ {
367544
+ label: "72",
367545
+ value: "72pt"
367546
+ },
367547
+ {
367548
+ label: "96",
367549
+ value: "96pt"
367550
+ }
367551
+ ];
366554
367552
  headlessToolbarConstants = {
366555
- DEFAULT_TEXT_ALIGN_OPTIONS: [
366556
- {
366557
- label: "Left",
366558
- value: "left"
366559
- },
366560
- {
366561
- label: "Center",
366562
- value: "center"
366563
- },
366564
- {
366565
- label: "Right",
366566
- value: "right"
366567
- },
366568
- {
366569
- label: "Justify",
366570
- value: "justify"
366571
- }
366572
- ],
366573
- DEFAULT_LINE_HEIGHT_OPTIONS: [
366574
- {
366575
- label: "1.00",
366576
- value: 1
366577
- },
366578
- {
366579
- label: "1.15",
366580
- value: 1.15
366581
- },
366582
- {
366583
- label: "1.50",
366584
- value: 1.5
366585
- },
366586
- {
366587
- label: "2.00",
366588
- value: 2
366589
- },
366590
- {
366591
- label: "2.50",
366592
- value: 2.5
366593
- },
366594
- {
366595
- label: "3.00",
366596
- value: 3
366597
- }
366598
- ],
366599
- DEFAULT_ZOOM_OPTIONS: [
366600
- {
366601
- label: "50%",
366602
- value: 50
366603
- },
366604
- {
366605
- label: "75%",
366606
- value: 75
366607
- },
366608
- {
366609
- label: "90%",
366610
- value: 90
366611
- },
366612
- {
366613
- label: "100%",
366614
- value: 100
366615
- },
366616
- {
366617
- label: "125%",
366618
- value: 125
366619
- },
366620
- {
366621
- label: "150%",
366622
- value: 150
366623
- },
366624
- {
366625
- label: "200%",
366626
- value: 200
366627
- }
366628
- ],
366629
- DEFAULT_DOCUMENT_MODE_OPTIONS: [
366630
- {
366631
- label: "Editing",
366632
- value: "editing",
366633
- description: "Edit document directly"
366634
- },
366635
- {
366636
- label: "Suggesting",
366637
- value: "suggesting",
366638
- description: "Edits become suggestions"
366639
- },
366640
- {
366641
- label: "Viewing",
366642
- value: "viewing",
366643
- description: "View clean version of document only"
366644
- }
366645
- ],
366646
- DEFAULT_FONT_SIZE_OPTIONS: [
366647
- {
366648
- label: "8",
366649
- value: "8pt"
366650
- },
366651
- {
366652
- label: "9",
366653
- value: "9pt"
366654
- },
366655
- {
366656
- label: "10",
366657
- value: "10pt"
366658
- },
366659
- {
366660
- label: "11",
366661
- value: "11pt"
366662
- },
366663
- {
366664
- label: "12",
366665
- value: "12pt"
366666
- },
366667
- {
366668
- label: "14",
366669
- value: "14pt"
366670
- },
366671
- {
366672
- label: "18",
366673
- value: "18pt"
366674
- },
366675
- {
366676
- label: "24",
366677
- value: "24pt"
366678
- },
366679
- {
366680
- label: "30",
366681
- value: "30pt"
366682
- },
366683
- {
366684
- label: "36",
366685
- value: "36pt"
366686
- },
366687
- {
366688
- label: "48",
366689
- value: "48pt"
366690
- },
366691
- {
366692
- label: "60",
366693
- value: "60pt"
366694
- },
366695
- {
366696
- label: "72",
366697
- value: "72pt"
366698
- },
366699
- {
366700
- label: "96",
366701
- value: "96pt"
366702
- }
366703
- ],
367553
+ DEFAULT_TEXT_ALIGN_OPTIONS,
367554
+ DEFAULT_LINE_HEIGHT_OPTIONS,
367555
+ DEFAULT_ZOOM_OPTIONS,
367556
+ DEFAULT_DOCUMENT_MODE_OPTIONS,
367557
+ DEFAULT_FONT_SIZE_OPTIONS,
366704
367558
  DEFAULT_FONT_FAMILY_OPTIONS: getDefaultFontFamilyOptions(),
366705
367559
  DEFAULT_TEXT_COLOR_OPTIONS: [
366706
367560
  {
@@ -366817,6 +367671,10 @@ var init_create_super_doc_ui_uuXftA9o_es = __esm(() => {
366817
367671
  ]);
366818
367672
  ALL_TOOLBAR_COMMAND_IDS = Object.keys(createToolbarRegistry());
366819
367673
  EMPTY_ACTIVE_IDS = Object.freeze([]);
367674
+ FONT_SIZE_OPTIONS = DEFAULT_FONT_SIZE_OPTIONS.map(({ label, value }) => ({
367675
+ label,
367676
+ value
367677
+ }));
366820
367678
  });
366821
367679
 
366822
367680
  // ../../packages/superdoc/dist/chunks/ui-C5PAS9hY.es.js
@@ -366832,16 +367690,16 @@ var init_zipper_yaJVJ4z9_es = __esm(() => {
366832
367690
 
366833
367691
  // ../../packages/superdoc/dist/super-editor.es.js
366834
367692
  var init_super_editor_es = __esm(() => {
366835
- init_src_LeQVnrcZ_es();
366836
- init_SuperConverter_d9QeIy9_es();
367693
+ init_src_CRJcfbIa_es();
367694
+ init_SuperConverter_BTGVElJO_es();
366837
367695
  init_jszip_C49i9kUs_es();
366838
367696
  init_xml_js_CqGKpaft_es();
366839
- init_create_headless_toolbar_l5QB6sQY_es();
367697
+ init_create_headless_toolbar_DYbkX05s_es();
366840
367698
  init_constants_D9qj59G2_es();
366841
367699
  init_dist_B8HfvhaK_es();
366842
367700
  init_unified_Dsuw2be5_es();
366843
367701
  init_DocxZipper_FUsfThjV_es();
366844
- init_create_super_doc_ui_uuXftA9o_es();
367702
+ init_create_super_doc_ui_DUYQPx_V_es();
366845
367703
  init_ui_C5PAS9hY_es();
366846
367704
  init_eventemitter3_BnGqBE_Q_es();
366847
367705
  init_errors_CNaD6vcg_es();