@harbour-enterprises/superdoc 0.12.30 → 0.12.31-next.2

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 (62) hide show
  1. package/dist/chunks/{super-editor.es-J7K_8fA3.es.js → super-editor.es-B4lJkgrf.es.js} +560 -270
  2. package/dist/chunks/{super-editor.es-0mAzj58N.cjs → super-editor.es-Du18AHQE.cjs} +546 -256
  3. package/dist/composables/use-high-contrast-mode.d.ts +5 -0
  4. package/dist/composables/use-high-contrast-mode.d.ts.map +1 -0
  5. package/dist/core/SuperDoc.d.ts +7 -0
  6. package/dist/core/SuperDoc.d.ts.map +1 -1
  7. package/dist/core/create-app.d.ts.map +1 -1
  8. package/dist/index.d.ts +2 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/style.css +299 -245
  11. package/dist/super-editor/ai-writer.es.js +2 -2
  12. package/dist/super-editor/chunks/{converter-BSr2Ue72.js → converter-CP_Na8aB.js} +2 -2
  13. package/dist/super-editor/chunks/{docx-zipper-BCUCSdEs.js → docx-zipper-BqcYpY0b.js} +1 -1
  14. package/dist/super-editor/chunks/{editor-DOwVVn_i.js → editor-CFxAdvpz.js} +143 -56
  15. package/dist/super-editor/chunks/{toolbar-hUPYR8un.js → toolbar-CNZaB4OD.js} +80 -36
  16. package/dist/super-editor/components/toolbar/defaultItems.d.ts.map +1 -1
  17. package/dist/super-editor/composables/use-high-contrast-mode.d.ts +5 -0
  18. package/dist/super-editor/composables/use-high-contrast-mode.d.ts.map +1 -0
  19. package/dist/super-editor/converter.es.js +1 -1
  20. package/dist/super-editor/core/Editor.d.ts +2 -1
  21. package/dist/super-editor/core/Editor.d.ts.map +1 -1
  22. package/dist/super-editor/core/helpers/annotator.d.ts +5 -3
  23. package/dist/super-editor/core/helpers/annotator.d.ts.map +1 -1
  24. package/dist/super-editor/docx-zipper.es.js +2 -2
  25. package/dist/super-editor/editor.es.js +3 -3
  26. package/dist/super-editor/extensions/ai/ai-nodes.d.ts.map +1 -1
  27. package/dist/super-editor/extensions/bookmarks/bookmarks.d.ts.map +1 -1
  28. package/dist/super-editor/extensions/bullet-list/bullet-list.d.ts.map +1 -1
  29. package/dist/super-editor/extensions/comment/comment.d.ts.map +1 -1
  30. package/dist/super-editor/extensions/document/document.d.ts.map +1 -1
  31. package/dist/super-editor/extensions/field-annotation/field-annotation.d.ts.map +1 -1
  32. package/dist/super-editor/extensions/field-annotation/fieldAnnotationHelpers/getHeaderFooterAnnotations.d.ts +2 -0
  33. package/dist/super-editor/extensions/field-annotation/fieldAnnotationHelpers/getHeaderFooterAnnotations.d.ts.map +1 -0
  34. package/dist/super-editor/extensions/field-annotation/fieldAnnotationHelpers/index.d.ts +1 -0
  35. package/dist/super-editor/extensions/heading/heading.d.ts.map +1 -1
  36. package/dist/super-editor/extensions/image/image.d.ts.map +1 -1
  37. package/dist/super-editor/extensions/line-break/line-break.d.ts.map +1 -1
  38. package/dist/super-editor/extensions/list-item/list-item.d.ts.map +1 -1
  39. package/dist/super-editor/extensions/mention/mention.d.ts.map +1 -1
  40. package/dist/super-editor/extensions/ordered-list/ordered-list.d.ts.map +1 -1
  41. package/dist/super-editor/extensions/page-number/page-number.d.ts.map +1 -1
  42. package/dist/super-editor/extensions/pagination/pagination-helpers.d.ts.map +1 -1
  43. package/dist/super-editor/extensions/run-item/run-item.d.ts.map +1 -1
  44. package/dist/super-editor/extensions/shape-container/shape-container.d.ts.map +1 -1
  45. package/dist/super-editor/extensions/shape-textbox/shape-textbox.d.ts.map +1 -1
  46. package/dist/super-editor/extensions/structured-content/structured-content.d.ts.map +1 -1
  47. package/dist/super-editor/extensions/table/table.d.ts.map +1 -1
  48. package/dist/super-editor/extensions/table-cell/table-cell.d.ts.map +1 -1
  49. package/dist/super-editor/extensions/table-header/table-header.d.ts.map +1 -1
  50. package/dist/super-editor/extensions/table-row/table-row.d.ts.map +1 -1
  51. package/dist/super-editor/file-zipper.es.js +1 -1
  52. package/dist/super-editor/index.d.ts +1 -1
  53. package/dist/super-editor/style.css +243 -196
  54. package/dist/super-editor/super-editor.es.js +335 -174
  55. package/dist/super-editor/toolbar.es.js +2 -2
  56. package/dist/super-editor.cjs +2 -1
  57. package/dist/super-editor.es.js +15 -14
  58. package/dist/superdoc.cjs +35 -9
  59. package/dist/superdoc.es.js +233 -207
  60. package/dist/superdoc.umd.js +583 -268
  61. package/dist/superdoc.umd.js.map +1 -1
  62. package/package.json +2 -1
@@ -30667,7 +30667,7 @@
30667
30667
  return;
30668
30668
  }
30669
30669
  }
30670
- static updateDocumentVersion(docx = this.convertedXml, version2 = "0.12.30") {
30670
+ static updateDocumentVersion(docx = this.convertedXml, version2 = "0.12.31-next.2") {
30671
30671
  const customLocation = "docProps/custom.xml";
30672
30672
  if (!docx[customLocation]) {
30673
30673
  docx[customLocation] = generateCustomXml();
@@ -31133,7 +31133,7 @@
31133
31133
  function generateCustomXml() {
31134
31134
  return DEFAULT_CUSTOM_XML;
31135
31135
  }
31136
- function generateSuperdocVersion(pid = 2, version2 = "0.12.30") {
31136
+ function generateSuperdocVersion(pid = 2, version2 = "0.12.31-next.2") {
31137
31137
  return {
31138
31138
  type: "element",
31139
31139
  name: "property",
@@ -46478,6 +46478,9 @@
46478
46478
  pm.style.minHeight = "100%";
46479
46479
  pm.style.outline = "none";
46480
46480
  pm.style.border = "none";
46481
+ pm.setAttribute("role", "textbox");
46482
+ pm.setAttribute("aria-multiline", true);
46483
+ pm.setAttribute("aria-label", `${type2} content area. Double click to start typing.`);
46481
46484
  return headerFooterEditor;
46482
46485
  };
46483
46486
  const broadcastEditorEvents = (editor, sectionEditor) => {
@@ -46499,13 +46502,16 @@
46499
46502
  const toggleHeaderFooterEditMode = (editor, focusedSectionEditor, isEditMode) => {
46500
46503
  editor.converter.headerEditors.forEach((item) => {
46501
46504
  item.editor.setEditable(isEditMode, false);
46505
+ item.editor.view.dom.setAttribute("aria-readonly", !isEditMode);
46502
46506
  });
46503
46507
  editor.converter.footerEditors.forEach((item) => {
46504
46508
  item.editor.setEditable(isEditMode, false);
46509
+ item.editor.view.dom.setAttribute("aria-readonly", !isEditMode);
46505
46510
  });
46506
46511
  if (isEditMode) {
46507
46512
  const pm = document.querySelector(".ProseMirror");
46508
46513
  pm.classList.add("header-footer-edit");
46514
+ pm.setAttribute("aria-readonly", true);
46509
46515
  }
46510
46516
  if (focusedSectionEditor) {
46511
46517
  focusedSectionEditor.view.focus();
@@ -47424,11 +47430,12 @@
47424
47430
  const getAnnotationValue = (id, annotationValues) => {
47425
47431
  return annotationValues.find((value) => value.input_id === id)?.input_value || null;
47426
47432
  };
47427
- const annotateHeadersAndFooters = ({ editor, annotationValues = [], hiddenFieldIds = [] }) => {
47433
+ const getAllHeaderFooterEditors = (editor) => {
47428
47434
  const sections = {
47429
47435
  header: editor.converter.headers || {},
47430
47436
  footer: editor.converter.footers || {}
47431
47437
  };
47438
+ const allEditors = [];
47432
47439
  Object.entries(sections).forEach(([type2, items]) => {
47433
47440
  const editorsKey = `${type2}Editors`;
47434
47441
  Object.entries(items).forEach(([sectionId, data]) => {
@@ -47446,25 +47453,38 @@
47446
47453
  })
47447
47454
  };
47448
47455
  editor.converter[editorsKey].push(sectionEditor);
47456
+ allEditors.push({
47457
+ ...sectionEditor,
47458
+ key: editorsKey,
47459
+ type: type2,
47460
+ sectionId
47461
+ });
47449
47462
  }
47450
- sectionEditor.editor.annotate(annotationValues, hiddenFieldIds);
47451
- onHeaderFooterDataUpdate(
47452
- { editor: sectionEditor.editor },
47453
- editor,
47454
- sectionId,
47455
- type2
47456
- );
47457
47463
  });
47458
47464
  });
47465
+ return allEditors;
47466
+ };
47467
+ const annotateHeadersAndFooters = ({ editor, annotationValues = [], hiddenFieldIds = [], removeEmptyFields = false }) => {
47468
+ const allEditors = getAllHeaderFooterEditors(editor);
47469
+ allEditors.forEach(({ sectionId, editor: sectionEditor, type: type2 }) => {
47470
+ sectionEditor.annotate(annotationValues, hiddenFieldIds, removeEmptyFields);
47471
+ onHeaderFooterDataUpdate(
47472
+ { editor: sectionEditor },
47473
+ editor,
47474
+ sectionId,
47475
+ type2
47476
+ );
47477
+ });
47459
47478
  };
47460
47479
  const annotateDocument = ({
47461
47480
  annotationValues = [],
47462
47481
  hiddenFieldIds = [],
47482
+ removeEmptyFields = false,
47463
47483
  schema,
47464
47484
  tr,
47465
47485
  editor
47466
47486
  }) => {
47467
- annotateHeadersAndFooters({ editor, annotationValues, hiddenFieldIds });
47487
+ annotateHeadersAndFooters({ editor, annotationValues, hiddenFieldIds, removeEmptyFields });
47468
47488
  const annotations = [];
47469
47489
  const FieldType = schema.nodes.fieldAnnotation;
47470
47490
  tr.doc.descendants((node2, pos) => {
@@ -47517,11 +47537,13 @@
47517
47537
  });
47518
47538
  }
47519
47539
  }
47520
- Array.from(toDelete).sort((a, b) => b - a).forEach((pos) => {
47521
- const ann = annotations.find((a) => a.pos === pos);
47522
- if (!ann) return;
47523
- tr = tr.delete(pos, pos + ann.node.nodeSize);
47524
- });
47540
+ if (removeEmptyFields) {
47541
+ Array.from(toDelete).sort((a, b) => b - a).forEach((pos) => {
47542
+ const ann = annotations.find((a) => a.pos === pos);
47543
+ if (!ann) return;
47544
+ tr = tr.delete(pos, pos + ann.node.nodeSize);
47545
+ });
47546
+ }
47525
47547
  return tr;
47526
47548
  };
47527
47549
  const getFormattedDate = (input = null, format = "") => {
@@ -47539,7 +47561,7 @@
47539
47561
  // e.g. “2025”
47540
47562
  });
47541
47563
  };
47542
- const AnnotatorServices = {
47564
+ const AnnotatorHelpers = {
47543
47565
  getFieldAttrs,
47544
47566
  processTables,
47545
47567
  annotateDocument,
@@ -47693,6 +47715,16 @@
47693
47715
  initializeMetaMap(ydoc, editor);
47694
47716
  return Y.encodeStateAsUpdate(ydoc);
47695
47717
  };
47718
+ const isHighContrastMode$1 = ref$1(false);
47719
+ function useHighContrastMode$1() {
47720
+ const setHighContrastMode = (value) => {
47721
+ isHighContrastMode$1.value = value;
47722
+ };
47723
+ return {
47724
+ isHighContrastMode: isHighContrastMode$1,
47725
+ setHighContrastMode
47726
+ };
47727
+ }
47696
47728
  const _Editor = class _Editor2 extends EventEmitter$2 {
47697
47729
  /**
47698
47730
  * Create a new Editor instance
@@ -47785,6 +47817,8 @@
47785
47817
  }
47786
47818
  };
47787
47819
  let initMode = modes[this.options.mode] ?? modes.default;
47820
+ const { setHighContrastMode } = useHighContrastMode$1();
47821
+ this.setHighContrastMode = setHighContrastMode;
47788
47822
  initMode();
47789
47823
  }
47790
47824
  /**
@@ -48081,6 +48115,10 @@
48081
48115
  if (!proseMirror || !pageSize || !pageMargins) {
48082
48116
  return;
48083
48117
  }
48118
+ proseMirror.setAttribute("role", "document");
48119
+ proseMirror.setAttribute("aria-multiline", true);
48120
+ proseMirror.setAttribute("aria-label", "Main content area, start typing to enter text.");
48121
+ proseMirror.setAttribute("aria-description", "");
48084
48122
  element.style.width = pageSize.width + "in";
48085
48123
  element.style.minWidth = pageSize.width + "in";
48086
48124
  element.style.minHeight = pageSize.height + "in";
@@ -48332,7 +48370,7 @@
48332
48370
  * @returns {Object | void} Migration results
48333
48371
  */
48334
48372
  processCollaborationMigrations() {
48335
- console.debug("[checkVersionMigrations] Current editor version", "0.12.30");
48373
+ console.debug("[checkVersionMigrations] Current editor version", "0.12.31-next.2");
48336
48374
  if (!this.options.ydoc) return;
48337
48375
  const metaMap = this.options.ydoc.getMap("meta");
48338
48376
  let docVersion = metaMap.get("version");
@@ -48421,10 +48459,8 @@
48421
48459
  */
48422
48460
  prepareForAnnotations(annotationValues = []) {
48423
48461
  const { tr } = this.state;
48424
- const { dispatch } = this.view;
48425
- const newTr = AnnotatorServices.processTables({ state: this.state, tr, annotationValues });
48462
+ const newTr = AnnotatorHelpers.processTables({ state: this.state, tr, annotationValues });
48426
48463
  this.view.dispatch(newTr);
48427
- AnnotatorServices.annotateHeadersAndFooters({ editor: this, annotationValues });
48428
48464
  }
48429
48465
  /**
48430
48466
  * Annotate the document with the given annotation values.
@@ -48433,15 +48469,16 @@
48433
48469
  * @param {String[]} hiddenIds List of field ids to remove from the document.
48434
48470
  * @returns {void}
48435
48471
  */
48436
- annotate(annotationValues = [], hiddenIds = []) {
48472
+ annotate(annotationValues = [], hiddenIds = [], removeEmptyFields = false) {
48437
48473
  const { state: state2, view, schema } = this;
48438
48474
  let tr = state2.tr;
48439
- tr = AnnotatorServices.processTables({ state: this.state, tr, annotationValues });
48440
- tr = AnnotatorServices.annotateDocument({
48475
+ tr = AnnotatorHelpers.processTables({ state: this.state, tr, annotationValues });
48476
+ tr = AnnotatorHelpers.annotateDocument({
48441
48477
  tr,
48442
48478
  schema,
48443
48479
  annotationValues,
48444
48480
  hiddenFieldIds: hiddenIds,
48481
+ removeEmptyFields,
48445
48482
  editor: this
48446
48483
  });
48447
48484
  if (tr.docChanged) view.dispatch(tr.scrollIntoView());
@@ -48696,6 +48733,7 @@
48696
48733
  toggleHeaderFooterEditMode(this, null, false);
48697
48734
  const pm = document.querySelector(".ProseMirror");
48698
48735
  pm.classList.remove("header-footer-edit");
48736
+ pm.setAttribute("aria-readonly", false);
48699
48737
  }
48700
48738
  }
48701
48739
  });
@@ -49668,7 +49706,8 @@
49668
49706
  return {
49669
49707
  htmlAttributes: {
49670
49708
  class: "sd-ai-loader",
49671
- contentEditable: "false"
49709
+ contentEditable: "false",
49710
+ "aria-label": "AI loader node"
49672
49711
  }
49673
49712
  };
49674
49713
  },
@@ -49864,7 +49903,8 @@
49864
49903
  addAttributes() {
49865
49904
  return {
49866
49905
  attributes: {
49867
- rendered: false
49906
+ rendered: false,
49907
+ "aria-label": "Document node"
49868
49908
  }
49869
49909
  };
49870
49910
  }
@@ -49888,7 +49928,8 @@
49888
49928
  addAttributes() {
49889
49929
  return {
49890
49930
  attributes: {
49891
- rendered: false
49931
+ rendered: false,
49932
+ "aria-label": "Run node"
49892
49933
  }
49893
49934
  };
49894
49935
  }
@@ -49941,7 +49982,9 @@
49941
49982
  addOptions() {
49942
49983
  return {
49943
49984
  itemTypeName: "listItem",
49944
- htmlAttributes: {},
49985
+ htmlAttributes: {
49986
+ "aria-label": "Bullet list node"
49987
+ },
49945
49988
  keepMarks: true,
49946
49989
  keepAttributes: false
49947
49990
  };
@@ -50232,7 +50275,9 @@
50232
50275
  addOptions() {
50233
50276
  return {
50234
50277
  itemTypeName: "listItem",
50235
- htmlAttributes: {},
50278
+ htmlAttributes: {
50279
+ "aria-label": "Ordered list node"
50280
+ },
50236
50281
  keepMarks: true,
50237
50282
  keepAttributes: false,
50238
50283
  listStyleTypes: ["decimal", "lowerAlpha", "lowerRoman"]
@@ -50632,7 +50677,9 @@
50632
50677
  // to run listItem commands first
50633
50678
  addOptions() {
50634
50679
  return {
50635
- htmlAttributes: {},
50680
+ htmlAttributes: {
50681
+ "aria-label": "List item node"
50682
+ },
50636
50683
  bulletListTypeName: "bulletList",
50637
50684
  orderedListTypeName: "orderedList"
50638
50685
  };
@@ -51154,7 +51201,9 @@
51154
51201
  addOptions() {
51155
51202
  return {
51156
51203
  levels: [1, 2, 3, 4, 5, 6],
51157
- htmlAttributes: {}
51204
+ htmlAttributes: {
51205
+ "aria-label": "Heading node"
51206
+ }
51158
51207
  };
51159
51208
  },
51160
51209
  addAttributes() {
@@ -51215,7 +51264,8 @@
51215
51264
  addOptions() {
51216
51265
  return {
51217
51266
  htmlAttributes: {
51218
- contentEditable: "false"
51267
+ contentEditable: "false",
51268
+ "aria-label": "Comment range start node"
51219
51269
  }
51220
51270
  };
51221
51271
  },
@@ -51244,7 +51294,8 @@
51244
51294
  addOptions() {
51245
51295
  return {
51246
51296
  htmlAttributes: {
51247
- contentEditable: "false"
51297
+ contentEditable: "false",
51298
+ "aria-label": "Comment range end node"
51248
51299
  }
51249
51300
  };
51250
51301
  },
@@ -51272,7 +51323,8 @@
51272
51323
  addOptions() {
51273
51324
  return {
51274
51325
  htmlAttributes: {
51275
- contentEditable: "false"
51326
+ contentEditable: "false",
51327
+ "aria-label": "Comment reference node"
51276
51328
  }
51277
51329
  };
51278
51330
  },
@@ -51447,7 +51499,9 @@
51447
51499
  return {
51448
51500
  htmlAttributes: {
51449
51501
  contentEditable: "false",
51450
- lineBreakType: "page"
51502
+ lineBreakType: "page",
51503
+ "aria-hidden": "true",
51504
+ "aria-label": "Hard break node"
51451
51505
  }
51452
51506
  };
51453
51507
  },
@@ -53805,7 +53859,9 @@
53805
53859
  tableRole: "table",
53806
53860
  addOptions() {
53807
53861
  return {
53808
- htmlAttributes: {},
53862
+ htmlAttributes: {
53863
+ "aria-label": "Table node"
53864
+ },
53809
53865
  resizable: true,
53810
53866
  handleWidth: 5,
53811
53867
  cellMinWidth: 25,
@@ -54055,7 +54111,9 @@
54055
54111
  isolating: true,
54056
54112
  addOptions() {
54057
54113
  return {
54058
- htmlAttributes: {}
54114
+ htmlAttributes: {
54115
+ "aria-label": "Table head node"
54116
+ }
54059
54117
  };
54060
54118
  },
54061
54119
  addAttributes() {
@@ -54095,7 +54153,9 @@
54095
54153
  tableRole: "row",
54096
54154
  addOptions() {
54097
54155
  return {
54098
- htmlAttributes: {}
54156
+ htmlAttributes: {
54157
+ "aria-label": "Table row node"
54158
+ }
54099
54159
  };
54100
54160
  },
54101
54161
  addAttributes() {
@@ -54123,7 +54183,9 @@
54123
54183
  isolating: true,
54124
54184
  addOptions() {
54125
54185
  return {
54126
- htmlAttributes: {}
54186
+ htmlAttributes: {
54187
+ "aria-label": "Table cell node"
54188
+ }
54127
54189
  };
54128
54190
  },
54129
54191
  addAttributes() {
@@ -54665,6 +54727,15 @@
54665
54727
  });
54666
54728
  return fieldAnnotations;
54667
54729
  }
54730
+ const getHeaderFooterAnnotations = (editor) => {
54731
+ const editors = getAllHeaderFooterEditors(editor);
54732
+ const allAnnotations = [];
54733
+ editors.forEach(({ id, editor: editor2 }) => {
54734
+ const annotations = getAllFieldAnnotations(editor2.state);
54735
+ allAnnotations.push(...annotations);
54736
+ });
54737
+ return allAnnotations;
54738
+ };
54668
54739
  const index$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
54669
54740
  __proto__: null,
54670
54741
  findFieldAnnotations,
@@ -54674,6 +54745,7 @@
54674
54745
  findRemovedFieldAnnotations,
54675
54746
  getAllFieldAnnotations,
54676
54747
  getAllFieldAnnotationsWithRect,
54748
+ getHeaderFooterAnnotations,
54677
54749
  trackFieldAnnotationsDeletion
54678
54750
  }, Symbol.toStringTag, { value: "Module" }));
54679
54751
  function guard(low, high, value) {
@@ -54804,7 +54876,8 @@
54804
54876
  addOptions() {
54805
54877
  return {
54806
54878
  htmlAttributes: {
54807
- class: annotationClass
54879
+ class: annotationClass,
54880
+ "aria-label": "Field annotation node"
54808
54881
  },
54809
54882
  annotationClass,
54810
54883
  annotationContentClass,
@@ -55746,7 +55819,8 @@
55746
55819
  return {
55747
55820
  allowBase64: true,
55748
55821
  htmlAttributes: {
55749
- style: "display: inline-block;"
55822
+ style: "display: inline-block;",
55823
+ "aria-label": "Image node"
55750
55824
  }
55751
55825
  };
55752
55826
  },
@@ -55862,7 +55936,11 @@
55862
55936
  inline: true,
55863
55937
  addOptions() {
55864
55938
  return {
55865
- htmlAttributes: { style: "height: 0; width: 0;" }
55939
+ htmlAttributes: {
55940
+ style: "height: 0; width: 0;",
55941
+ "aria-label": "Bookmark start node",
55942
+ role: "link"
55943
+ }
55866
55944
  };
55867
55945
  },
55868
55946
  addAttributes() {
@@ -55896,7 +55974,8 @@
55896
55974
  addOptions() {
55897
55975
  return {
55898
55976
  htmlAttributes: {
55899
- class: "sd-editor-mention"
55977
+ class: "sd-editor-mention",
55978
+ "aria-label": "Mention node"
55900
55979
  }
55901
55980
  };
55902
55981
  },
@@ -55934,7 +56013,8 @@
55934
56013
  addOptions() {
55935
56014
  return {
55936
56015
  htmlAttributes: {
55937
- "data-id": "auto-page-number"
56016
+ "data-id": "auto-page-number",
56017
+ "aria-label": "Page number node"
55938
56018
  }
55939
56019
  };
55940
56020
  },
@@ -55953,7 +56033,8 @@
55953
56033
  addOptions() {
55954
56034
  return {
55955
56035
  htmlAttributes: {
55956
- "data-id": "auto-total-pages"
56036
+ "data-id": "auto-total-pages",
56037
+ "aria-label": "Total page count node"
55957
56038
  }
55958
56039
  };
55959
56040
  },
@@ -55972,7 +56053,8 @@
55972
56053
  addOptions() {
55973
56054
  return {
55974
56055
  htmlAttributes: {
55975
- class: "sd-editor-shape-container"
56056
+ class: "sd-editor-shape-container",
56057
+ "aria-label": "Shape container node"
55976
56058
  }
55977
56059
  };
55978
56060
  },
@@ -56025,7 +56107,8 @@
56025
56107
  addOptions() {
56026
56108
  return {
56027
56109
  htmlAttributes: {
56028
- class: "sd-editor-shape-textbox"
56110
+ class: "sd-editor-shape-textbox",
56111
+ "aria-label": "Shape textbox node"
56029
56112
  }
56030
56113
  };
56031
56114
  },
@@ -56117,7 +56200,9 @@
56117
56200
  addOptions() {
56118
56201
  return {
56119
56202
  annotationClass: "sd-structured-content-tag",
56120
- htmlAttributes: {}
56203
+ htmlAttributes: {
56204
+ "aria-label": "Structured content node"
56205
+ }
56121
56206
  };
56122
56207
  },
56123
56208
  parseDOM() {
@@ -59577,9 +59662,9 @@
59577
59662
  };
59578
59663
  const _hoisted_1$k = ["onClick", "onMouseenter"];
59579
59664
  const _hoisted_2$e = { key: 0 };
59580
- const _hoisted_3$c = { key: 0 };
59665
+ const _hoisted_3$b = { key: 0 };
59581
59666
  const _hoisted_4$8 = { key: 1 };
59582
- const _hoisted_5$7 = { key: 1 };
59667
+ const _hoisted_5$6 = { key: 1 };
59583
59668
  const _sfc_main$l = {
59584
59669
  __name: "Mentions",
59585
59670
  props: {
@@ -59652,9 +59737,9 @@
59652
59737
  class: normalizeClass(["user-row", { selected: activeUserIndex.value === index2 }])
59653
59738
  }, [
59654
59739
  user.name ? (openBlock(), createElementBlock("div", _hoisted_2$e, [
59655
- user.name ? (openBlock(), createElementBlock("span", _hoisted_3$c, toDisplayString(user.name), 1)) : createCommentVNode("", true),
59740
+ user.name ? (openBlock(), createElementBlock("span", _hoisted_3$b, toDisplayString(user.name), 1)) : createCommentVNode("", true),
59656
59741
  user.name && user.email ? (openBlock(), createElementBlock("span", _hoisted_4$8, " (" + toDisplayString(user.email) + ")", 1)) : createCommentVNode("", true)
59657
- ])) : (openBlock(), createElementBlock("div", _hoisted_5$7, [
59742
+ ])) : (openBlock(), createElementBlock("div", _hoisted_5$6, [
59658
59743
  createBaseVNode("span", null, toDisplayString(user.email), 1)
59659
59744
  ]))
59660
59745
  ], 42, _hoisted_1$k);
@@ -60965,15 +61050,16 @@
60965
61050
  }
60966
61051
  };
60967
61052
  const ToolbarButtonIcon = /* @__PURE__ */ _export_sfc$1(_sfc_main$5$2, [["__scopeId", "data-v-6d7523ab"]]);
60968
- const _hoisted_1$3$2 = ["data-item"];
60969
- const _hoisted_2$2$2 = {
61053
+ const _hoisted_1$3$2 = ["role"];
61054
+ const _hoisted_2$2$2 = ["data-item", "aria-label"];
61055
+ const _hoisted_3$2$2 = {
60970
61056
  key: 1,
60971
61057
  class: "button-label"
60972
61058
  };
60973
- const _hoisted_3$2$2 = { key: 2 };
60974
- const _hoisted_4$7 = ["placeholder", "onKeydown", "id"];
60975
- const _hoisted_5$6 = ["placeholder", "onKeydown", "id"];
60976
- const _hoisted_6$3 = ["innerHTML"];
61059
+ const _hoisted_4$7 = { key: 2 };
61060
+ const _hoisted_5$5 = ["placeholder", "onKeydown", "id"];
61061
+ const _hoisted_6$3 = ["placeholder", "onKeydown", "id"];
61062
+ const _hoisted_7$3 = ["innerHTML"];
60977
61063
  const _sfc_main$4$2 = {
60978
61064
  __name: "ToolbarButton",
60979
61065
  props: {
@@ -61000,6 +61086,10 @@
61000
61086
  defaultLabel: {
61001
61087
  type: String,
61002
61088
  default: null
61089
+ },
61090
+ isOverflowItem: {
61091
+ type: Boolean,
61092
+ default: false
61003
61093
  }
61004
61094
  },
61005
61095
  emits: ["buttonClick", "textSubmit"],
@@ -61023,6 +61113,7 @@
61023
61113
  } = props.toolbarItem;
61024
61114
  const inlineTextInput = ref$1(props.defaultLabel);
61025
61115
  const inlineInput = ref$1(null);
61116
+ const { isHighContrastMode: isHighContrastMode2 } = useHighContrastMode$1();
61026
61117
  const handleClick2 = () => {
61027
61118
  if (hasInlineTextInput) {
61028
61119
  inlineInput.value?.focus();
@@ -61050,12 +61141,15 @@
61050
61141
  return (_ctx, _cache) => {
61051
61142
  return openBlock(), createElementBlock("div", {
61052
61143
  class: normalizeClass(["toolbar-item", unref(attributes).className]),
61053
- style: normalizeStyle(getStyle.value)
61144
+ style: normalizeStyle(getStyle.value),
61145
+ role: __props.isOverflowItem ? "menuitem" : ""
61054
61146
  }, [
61055
61147
  createBaseVNode("div", {
61056
61148
  onClick: handleClick2,
61057
- class: normalizeClass(["toolbar-button", { active: unref(active), disabled: unref(disabled), narrow: __props.isNarrow, wide: __props.isWide, "has-inline-text-input": unref(hasInlineTextInput) }]),
61058
- "data-item": `btn-${unref(name) || ""}`
61149
+ class: normalizeClass(["toolbar-button", { active: unref(active), disabled: unref(disabled), narrow: __props.isNarrow, wide: __props.isWide, "has-inline-text-input": unref(hasInlineTextInput), "high-contrast": unref(isHighContrastMode2) }]),
61150
+ "data-item": `btn-${unref(name) || ""}`,
61151
+ "aria-label": unref(attributes).ariaLabel,
61152
+ role: "button"
61059
61153
  }, [
61060
61154
  unref(icon) ? (openBlock(), createBlock(ToolbarButtonIcon, {
61061
61155
  key: 0,
@@ -61064,8 +61158,8 @@
61064
61158
  icon: unref(icon),
61065
61159
  name: unref(name)
61066
61160
  }, null, 8, ["color", "icon", "name"])) : createCommentVNode("", true),
61067
- unref(label) && !unref(hideLabel) && !unref(inlineTextInputVisible) ? (openBlock(), createElementBlock("div", _hoisted_2$2$2, toDisplayString(unref(label)), 1)) : createCommentVNode("", true),
61068
- unref(inlineTextInputVisible) ? (openBlock(), createElementBlock("span", _hoisted_3$2$2, [
61161
+ unref(label) && !unref(hideLabel) && !unref(inlineTextInputVisible) ? (openBlock(), createElementBlock("div", _hoisted_3$2$2, toDisplayString(unref(label)), 1)) : createCommentVNode("", true),
61162
+ unref(inlineTextInputVisible) ? (openBlock(), createElementBlock("span", _hoisted_4$7, [
61069
61163
  unref(name) === "fontSize" ? withDirectives((openBlock(), createElementBlock("input", {
61070
61164
  key: 0,
61071
61165
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => inlineTextInput.value = $event),
@@ -61073,12 +61167,12 @@
61073
61167
  placeholder: unref(label),
61074
61168
  onKeydown: withKeys(withModifiers(handleInputSubmit, ["prevent"]), ["enter"]),
61075
61169
  type: "text",
61076
- class: "button-text-input",
61170
+ class: normalizeClass(["button-text-input", { "high-contrast": unref(isHighContrastMode2) }]),
61077
61171
  id: "inlineTextInput-" + unref(name),
61078
61172
  autoccomplete: "off",
61079
61173
  ref_key: "inlineInput",
61080
61174
  ref: inlineInput
61081
- }, null, 40, _hoisted_4$7)), [
61175
+ }, null, 42, _hoisted_5$5)), [
61082
61176
  [vModelText, inlineTextInput.value]
61083
61177
  ]) : withDirectives((openBlock(), createElementBlock("input", {
61084
61178
  key: 1,
@@ -61091,7 +61185,7 @@
61091
61185
  autoccomplete: "off",
61092
61186
  ref_key: "inlineInput",
61093
61187
  ref: inlineInput
61094
- }, null, 40, _hoisted_5$6)), [
61188
+ }, null, 40, _hoisted_6$3)), [
61095
61189
  [vModelText, inlineTextInput.value]
61096
61190
  ])
61097
61191
  ])) : createCommentVNode("", true),
@@ -61100,14 +61194,18 @@
61100
61194
  class: "dropdown-caret",
61101
61195
  innerHTML: caretIcon.value,
61102
61196
  style: normalizeStyle({ opacity: unref(disabled) ? 0.6 : 1 })
61103
- }, null, 12, _hoisted_6$3)) : createCommentVNode("", true)
61104
- ], 10, _hoisted_1$3$2)
61105
- ], 6);
61197
+ }, null, 12, _hoisted_7$3)) : createCommentVNode("", true)
61198
+ ], 10, _hoisted_2$2$2)
61199
+ ], 14, _hoisted_1$3$2);
61106
61200
  };
61107
61201
  }
61108
61202
  };
61109
- const ToolbarButton = /* @__PURE__ */ _export_sfc$1(_sfc_main$4$2, [["__scopeId", "data-v-62bb3747"]]);
61110
- const _hoisted_1$2$2 = { class: "toolbar-separator" };
61203
+ const ToolbarButton = /* @__PURE__ */ _export_sfc$1(_sfc_main$4$2, [["__scopeId", "data-v-6eb57404"]]);
61204
+ const _hoisted_1$2$2 = {
61205
+ class: "toolbar-separator",
61206
+ role: "separator",
61207
+ "aria-label": "Toolbar separator"
61208
+ };
61111
61209
  const _sfc_main$3$2 = {
61112
61210
  __name: "ToolbarSeparator",
61113
61211
  props: {
@@ -61118,19 +61216,30 @@
61118
61216
  },
61119
61217
  emits: ["command"],
61120
61218
  setup(__props, { emit: __emit }) {
61219
+ const { isHighContrastMode: isHighContrastMode2 } = useHighContrastMode$1();
61220
+ const getSeparatorColor = () => {
61221
+ if (isHighContrastMode2.value) {
61222
+ return "#000";
61223
+ }
61224
+ return "#dbdbdb";
61225
+ };
61121
61226
  return (_ctx, _cache) => {
61122
- return openBlock(), createElementBlock("div", _hoisted_1$2$2, _cache[0] || (_cache[0] = [
61123
- createBaseVNode("div", { class: "separator-inner" }, null, -1)
61124
- ]));
61227
+ return openBlock(), createElementBlock("div", _hoisted_1$2$2, [
61228
+ createBaseVNode("div", {
61229
+ class: "separator-inner",
61230
+ style: normalizeStyle({ backgroundColor: getSeparatorColor() })
61231
+ }, null, 4)
61232
+ ]);
61125
61233
  };
61126
61234
  }
61127
61235
  };
61128
- const ToolbarSeparator = /* @__PURE__ */ _export_sfc$1(_sfc_main$3$2, [["__scopeId", "data-v-ac2ee4f9"]]);
61236
+ const ToolbarSeparator = /* @__PURE__ */ _export_sfc$1(_sfc_main$3$2, [["__scopeId", "data-v-b240fc3a"]]);
61129
61237
  const _hoisted_1$1$2 = { class: "overflow-menu" };
61130
61238
  const _hoisted_2$1$2 = { class: "overflow-menu-trigger" };
61131
61239
  const _hoisted_3$1$2 = {
61132
61240
  key: 0,
61133
- class: "overflow-menu_items"
61241
+ class: "overflow-menu_items",
61242
+ role: "group"
61134
61243
  };
61135
61244
  const _sfc_main$2$2 = {
61136
61245
  __name: "OverflowMenu",
@@ -61168,16 +61277,17 @@
61168
61277
  ]),
61169
61278
  isDropdownOpened.value ? (openBlock(), createElementBlock("div", _hoisted_3$1$2, [
61170
61279
  createVNode(ButtonGroup, {
61280
+ class: "superdoc-toolbar-overflow",
61171
61281
  "toolbar-items": __props.overflowItems,
61172
- onCommand: handleCommand,
61173
- class: "superdoc-toolbar-overflow"
61282
+ "from-overflow": "",
61283
+ onCommand: handleCommand
61174
61284
  }, null, 8, ["toolbar-items"])
61175
61285
  ])) : createCommentVNode("", true)
61176
61286
  ]);
61177
61287
  };
61178
61288
  }
61179
61289
  };
61180
- const OverflowMenu = /* @__PURE__ */ _export_sfc$1(_sfc_main$2$2, [["__scopeId", "data-v-ca29bf1d"]]);
61290
+ const OverflowMenu = /* @__PURE__ */ _export_sfc$1(_sfc_main$2$2, [["__scopeId", "data-v-c637209b"]]);
61181
61291
  function plugin$1$1(options2) {
61182
61292
  let _bPrefix = ".";
61183
61293
  let _ePrefix = "__";
@@ -70510,7 +70620,7 @@ ${style2}
70510
70620
  });
70511
70621
  const _hoisted_1$j = { key: 0 };
70512
70622
  const _hoisted_2$d = { key: 0 };
70513
- const _hoisted_3$b = { key: 0 };
70623
+ const _hoisted_3$a = { key: 0 };
70514
70624
  const _sfc_main$1$1 = {
70515
70625
  __name: "ButtonGroup",
70516
70626
  props: {
@@ -70525,6 +70635,10 @@ ${style2}
70525
70635
  position: {
70526
70636
  type: String,
70527
70637
  default: "left"
70638
+ },
70639
+ fromOverflow: {
70640
+ type: Boolean,
70641
+ default: false
70528
70642
  }
70529
70643
  },
70530
70644
  emits: ["command"],
@@ -70532,6 +70646,7 @@ ${style2}
70532
70646
  const emit2 = __emit;
70533
70647
  const props = __props;
70534
70648
  const currentItem = ref$1(null);
70649
+ const { isHighContrastMode: isHighContrastMode2 } = useHighContrastMode$1();
70535
70650
  const isMobile = window.matchMedia("(max-width: 768px)").matches;
70536
70651
  const styleMap = {
70537
70652
  left: {
@@ -70590,13 +70705,20 @@ ${style2}
70590
70705
  };
70591
70706
  });
70592
70707
  };
70708
+ const getDropdownAttributes = (option, item) => {
70709
+ return {
70710
+ role: "menuitem",
70711
+ ariaLabel: `${item.attributes.value.ariaLabel} - ${option.label}`
70712
+ };
70713
+ };
70593
70714
  const handleClickOutside = (e) => {
70594
70715
  closeDropdowns();
70595
70716
  };
70596
70717
  return (_ctx, _cache) => {
70597
70718
  return openBlock(), createElementBlock("div", {
70598
70719
  style: normalizeStyle(getPositionStyle.value),
70599
- class: "button-group"
70720
+ class: "button-group",
70721
+ role: "group"
70600
70722
  }, [
70601
70723
  (openBlock(true), createElementBlock(Fragment$1, null, renderList(__props.toolbarItems, (item) => {
70602
70724
  return openBlock(), createElementBlock("div", {
@@ -70617,10 +70739,14 @@ ${style2}
70617
70739
  show: item.expand.value,
70618
70740
  size: "medium",
70619
70741
  placement: "bottom-start",
70620
- class: "toolbar-button toolbar-dropdown sd-editor-toolbar-dropdown",
70742
+ class: normalizeClass(["toolbar-button toolbar-dropdown sd-editor-toolbar-dropdown", { "high-contrast": unref(isHighContrastMode2) }]),
70621
70743
  onSelect: (key, option) => handleSelect(item, option),
70622
70744
  onClickoutside: handleClickOutside,
70623
- style: normalizeStyle(item.dropdownStyles.value)
70745
+ style: normalizeStyle(item.dropdownStyles.value),
70746
+ "menu-props": () => ({
70747
+ role: "menu"
70748
+ }),
70749
+ "node-props": (option) => getDropdownAttributes(option, item)
70624
70750
  }, {
70625
70751
  default: withCtx(() => [
70626
70752
  createVNode(unref(NTooltip), {
@@ -70644,7 +70770,7 @@ ${style2}
70644
70770
  }, 1032, ["disabled"])
70645
70771
  ]),
70646
70772
  _: 2
70647
- }, 1032, ["options", "trigger", "show", "onSelect", "style"])) : isButton(item) ? (openBlock(), createBlock(unref(NTooltip), {
70773
+ }, 1032, ["options", "trigger", "show", "class", "onSelect", "style", "node-props"])) : isButton(item) ? (openBlock(), createBlock(unref(NTooltip), {
70648
70774
  key: 2,
70649
70775
  trigger: "hover",
70650
70776
  class: "sd-editor-toolbar-tooltip"
@@ -70652,14 +70778,15 @@ ${style2}
70652
70778
  trigger: withCtx(() => [
70653
70779
  createVNode(ToolbarButton, {
70654
70780
  "toolbar-item": item,
70781
+ "is-overflow-item": __props.fromOverflow,
70655
70782
  onTextSubmit: ($event) => handleToolbarButtonTextSubmit(item, $event),
70656
70783
  onButtonClick: ($event) => handleToolbarButtonClick(item)
70657
- }, null, 8, ["toolbar-item", "onTextSubmit", "onButtonClick"])
70784
+ }, null, 8, ["toolbar-item", "is-overflow-item", "onTextSubmit", "onButtonClick"])
70658
70785
  ]),
70659
70786
  default: withCtx(() => [
70660
70787
  item.tooltip ? (openBlock(), createElementBlock("div", _hoisted_2$d, [
70661
70788
  createTextVNode(toDisplayString(item.tooltip) + " ", 1),
70662
- item.disabled.value ? (openBlock(), createElementBlock("span", _hoisted_3$b, "(disabled)")) : createCommentVNode("", true)
70789
+ item.disabled.value ? (openBlock(), createElementBlock("span", _hoisted_3$a, "(disabled)")) : createCommentVNode("", true)
70663
70790
  ])) : createCommentVNode("", true)
70664
70791
  ]),
70665
70792
  _: 2
@@ -70675,7 +70802,7 @@ ${style2}
70675
70802
  };
70676
70803
  }
70677
70804
  };
70678
- const ButtonGroup = /* @__PURE__ */ _export_sfc$1(_sfc_main$1$1, [["__scopeId", "data-v-7751c4e5"]]);
70805
+ const ButtonGroup = /* @__PURE__ */ _export_sfc$1(_sfc_main$1$1, [["__scopeId", "data-v-b09e5a20"]]);
70679
70806
  const _sfc_main$k = {
70680
70807
  __name: "Toolbar",
70681
70808
  emits: ["command", "toggle", "select"],
@@ -70720,7 +70847,9 @@ ${style2}
70720
70847
  return (_ctx, _cache) => {
70721
70848
  return openBlock(), createElementBlock("div", {
70722
70849
  class: "superdoc-toolbar",
70723
- key: unref(toolbarKey)
70850
+ key: unref(toolbarKey),
70851
+ role: "toolbar",
70852
+ "aria-label": "Toolbar"
70724
70853
  }, [
70725
70854
  unref(showLeftSide) ? (openBlock(), createBlock(ButtonGroup, {
70726
70855
  key: 0,
@@ -70746,7 +70875,7 @@ ${style2}
70746
70875
  };
70747
70876
  }
70748
70877
  };
70749
- const Toolbar = /* @__PURE__ */ _export_sfc$1(_sfc_main$k, [["__scopeId", "data-v-abd0fb95"]]);
70878
+ const Toolbar = /* @__PURE__ */ _export_sfc$1(_sfc_main$k, [["__scopeId", "data-v-2a400574"]]);
70750
70879
  const DEFAULT_API_ENDPOINT = "https://sd-dev-express-gateway-i6xtm.ondigitalocean.app/insights";
70751
70880
  const SYSTEM_PROMPT = "You are an expert copywriter and you are immersed in a document editor. You are to provide document related text responses based on the user prompts. Only write what is asked for. Do not provide explanations. Try to keep placeholders as short as possible. Do not output your prompt. Your instructions are: ";
70752
70881
  async function baseInsightsFetch(payload, options2 = {}) {
@@ -70983,9 +71112,9 @@ ${style2}
70983
71112
  const paperPlane = '<!-- @note: includes color gradient for inline svg AI Writer -->\n<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.-->\n <defs>\n <linearGradient id="gradient" x1="125%" y1="50%" x2="-25%" y2="50%">\n <stop offset="-20%" stop-color="rgba(218, 215, 118, 0.5)" />\n <stop offset="30%" stop-color="rgb(191, 100, 100)" />\n <stop offset="60%" stop-color="rgb(77, 82, 217)" />\n <stop offset="150%" stop-color="rgb(255, 219, 102)" />\n </linearGradient>\n </defs>\n <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"/>\n</svg>';
70984
71113
  const _hoisted_1$i = { class: "ai-user-input-field" };
70985
71114
  const _hoisted_2$c = ["innerHTML"];
70986
- const _hoisted_3$a = ["placeholder"];
71115
+ const _hoisted_3$9 = ["placeholder"];
70987
71116
  const _hoisted_4$6 = { class: "ai-loader" };
70988
- const _hoisted_5$5 = ["innerHTML"];
71117
+ const _hoisted_5$4 = ["innerHTML"];
70989
71118
  const _sfc_main$j = {
70990
71119
  __name: "AIWriter",
70991
71120
  props: {
@@ -71261,7 +71390,7 @@ ${style2}
71261
71390
  onInput: handleInput,
71262
71391
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => promptText.value = $event),
71263
71392
  rows: "4"
71264
- }, null, 40, _hoisted_3$a), [
71393
+ }, null, 40, _hoisted_3$9), [
71265
71394
  [vModelText, promptText.value]
71266
71395
  ])
71267
71396
  ]),
@@ -71271,7 +71400,7 @@ ${style2}
71271
71400
  class: "ai-textarea-icon ai-submit-button",
71272
71401
  onClick: withModifiers(handleSubmit, ["stop"]),
71273
71402
  innerHTML: unref(paperPlane)
71274
- }, null, 8, _hoisted_5$5)) : createCommentVNode("", true)
71403
+ }, null, 8, _hoisted_5$4)) : createCommentVNode("", true)
71275
71404
  ])
71276
71405
  ], 544);
71277
71406
  };
@@ -71606,71 +71735,80 @@ ${style2}
71606
71735
  onDeactivate
71607
71736
  };
71608
71737
  };
71609
- const _hoisted_1$b$1 = { class: "alignment-buttons" };
71738
+ const _hoisted_1$b$1 = ["innerHTML"];
71610
71739
  const _hoisted_2$9$1 = ["innerHTML"];
71611
- const _hoisted_3$8 = ["innerHTML"];
71740
+ const _hoisted_3$7$1 = ["innerHTML"];
71612
71741
  const _hoisted_4$3$1 = ["innerHTML"];
71613
- const _hoisted_5$3 = ["innerHTML"];
71614
71742
  const _sfc_main$c$1 = {
71615
71743
  __name: "AlignmentButtons",
71616
71744
  emits: ["select"],
71617
71745
  setup(__props, { emit: __emit }) {
71746
+ const { isHighContrastMode: isHighContrastMode2 } = useHighContrastMode$1();
71618
71747
  const emit2 = __emit;
71619
71748
  const select = (alignment2) => {
71620
71749
  emit2("select", alignment2);
71621
71750
  };
71622
71751
  return (_ctx, _cache) => {
71623
- return openBlock(), createElementBlock("div", _hoisted_1$b$1, [
71752
+ return openBlock(), createElementBlock("div", {
71753
+ class: normalizeClass(["alignment-buttons", { "high-contrast": unref(isHighContrastMode2) }])
71754
+ }, [
71624
71755
  createBaseVNode("div", {
71625
71756
  class: "button-icon",
71626
71757
  onClick: _cache[0] || (_cache[0] = ($event) => select("left")),
71627
71758
  innerHTML: unref(toolbarIcons).alignLeft,
71628
- "data-item": "btn-textAlign-option"
71629
- }, null, 8, _hoisted_2$9$1),
71759
+ "data-item": "btn-textAlign-option",
71760
+ role: "menuitem",
71761
+ "aria-label": "Align left"
71762
+ }, null, 8, _hoisted_1$b$1),
71630
71763
  createBaseVNode("div", {
71631
71764
  class: "button-icon",
71632
71765
  onClick: _cache[1] || (_cache[1] = ($event) => select("center")),
71633
71766
  innerHTML: unref(toolbarIcons).alignCenter,
71634
- "data-item": "btn-textAlign-option"
71635
- }, null, 8, _hoisted_3$8),
71767
+ "data-item": "btn-textAlign-option",
71768
+ role: "menuitem",
71769
+ "aria-label": "Align center"
71770
+ }, null, 8, _hoisted_2$9$1),
71636
71771
  createBaseVNode("div", {
71637
71772
  class: "button-icon",
71638
71773
  onClick: _cache[2] || (_cache[2] = ($event) => select("right")),
71639
71774
  innerHTML: unref(toolbarIcons).alignRight,
71640
- "data-item": "btn-textAlign-option"
71641
- }, null, 8, _hoisted_4$3$1),
71775
+ "data-item": "btn-textAlign-option",
71776
+ role: "menuitem",
71777
+ "aria-label": "Align right"
71778
+ }, null, 8, _hoisted_3$7$1),
71642
71779
  createBaseVNode("div", {
71643
71780
  class: "button-icon",
71644
71781
  onClick: _cache[3] || (_cache[3] = ($event) => select("justify")),
71645
71782
  innerHTML: unref(toolbarIcons).alignJustify,
71646
- "data-item": "btn-textAlign-option"
71647
- }, null, 8, _hoisted_5$3)
71648
- ]);
71783
+ "data-item": "btn-textAlign-option",
71784
+ role: "menuitem",
71785
+ "aria-label": "Justify"
71786
+ }, null, 8, _hoisted_4$3$1)
71787
+ ], 2);
71649
71788
  };
71650
71789
  }
71651
71790
  };
71652
- const AlignmentButtons = /* @__PURE__ */ _export_sfc$1(_sfc_main$c$1, [["__scopeId", "data-v-932a4937"]]);
71653
- const _hoisted_1$a$1 = { class: "link-input-ctn" };
71654
- const _hoisted_2$8$1 = {
71791
+ const AlignmentButtons = /* @__PURE__ */ _export_sfc$1(_sfc_main$c$1, [["__scopeId", "data-v-58d8a9bb"]]);
71792
+ const _hoisted_1$a$1 = {
71655
71793
  key: 0,
71656
71794
  class: "link-title"
71657
71795
  };
71658
- const _hoisted_3$7$1 = {
71796
+ const _hoisted_2$8$1 = {
71659
71797
  key: 1,
71660
71798
  class: "link-title"
71661
71799
  };
71662
- const _hoisted_4$2$1 = {
71800
+ const _hoisted_3$6$1 = {
71663
71801
  key: 2,
71664
71802
  class: "link-title"
71665
71803
  };
71666
- const _hoisted_5$2$1 = { key: 3 };
71667
- const _hoisted_6$1$1 = { class: "input-row" };
71668
- const _hoisted_7$1$1 = ["innerHTML"];
71669
- const _hoisted_8$2 = ["onKeydown"];
71670
- const _hoisted_9$2 = ["innerHTML"];
71671
- const _hoisted_10$1 = { class: "input-row link-buttons" };
71672
- const _hoisted_11$1 = ["innerHTML"];
71673
- const _hoisted_12$1 = {
71804
+ const _hoisted_4$2$1 = { key: 3 };
71805
+ const _hoisted_5$2$1 = { class: "input-row" };
71806
+ const _hoisted_6$1$1 = ["innerHTML"];
71807
+ const _hoisted_7$2 = ["onKeydown"];
71808
+ const _hoisted_8$2 = ["innerHTML"];
71809
+ const _hoisted_9$2 = { class: "input-row link-buttons" };
71810
+ const _hoisted_10$1 = ["innerHTML"];
71811
+ const _hoisted_11$1 = {
71674
71812
  key: 4,
71675
71813
  class: "input-row go-to-anchor clickable"
71676
71814
  };
@@ -71703,6 +71841,7 @@ ${style2}
71703
71841
  setup(__props, { emit: __emit }) {
71704
71842
  const emit2 = __emit;
71705
71843
  const props = __props;
71844
+ const { isHighContrastMode: isHighContrastMode2 } = useHighContrastMode$1();
71706
71845
  const { proxy } = getCurrentInstance();
71707
71846
  const handleSubmit = () => {
71708
71847
  if (proxy?.$submit instanceof Function) proxy.$submit();
@@ -71753,16 +71892,19 @@ ${style2}
71753
71892
  if (props.showInput) focusInput();
71754
71893
  });
71755
71894
  return (_ctx, _cache) => {
71756
- return openBlock(), createElementBlock("div", _hoisted_1$a$1, [
71757
- !__props.href ? (openBlock(), createElementBlock("div", _hoisted_2$8$1, "Add link")) : isAnchor.value ? (openBlock(), createElementBlock("div", _hoisted_3$7$1, "Page anchor")) : (openBlock(), createElementBlock("div", _hoisted_4$2$1, "Edit link")),
71758
- __props.showInput && !isAnchor.value ? (openBlock(), createElementBlock("div", _hoisted_5$2$1, [
71759
- createBaseVNode("div", _hoisted_6$1$1, [
71895
+ return openBlock(), createElementBlock("div", {
71896
+ class: normalizeClass(["link-input-ctn", { "high-contrast": unref(isHighContrastMode2) }])
71897
+ }, [
71898
+ !__props.href ? (openBlock(), createElementBlock("div", _hoisted_1$a$1, "Add link")) : isAnchor.value ? (openBlock(), createElementBlock("div", _hoisted_2$8$1, "Page anchor")) : (openBlock(), createElementBlock("div", _hoisted_3$6$1, "Edit link")),
71899
+ __props.showInput && !isAnchor.value ? (openBlock(), createElementBlock("div", _hoisted_4$2$1, [
71900
+ createBaseVNode("div", _hoisted_5$2$1, [
71760
71901
  createBaseVNode("div", {
71761
71902
  class: "input-icon",
71762
71903
  innerHTML: unref(toolbarIcons).linkInput
71763
- }, null, 8, _hoisted_7$1$1),
71904
+ }, null, 8, _hoisted_6$1$1),
71764
71905
  withDirectives(createBaseVNode("input", {
71765
71906
  type: "text",
71907
+ name: "link",
71766
71908
  placeholder: "Type or paste a link",
71767
71909
  class: normalizeClass({ error: urlError.value }),
71768
71910
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => rawUrl.value = $event),
@@ -71770,7 +71912,7 @@ ${style2}
71770
71912
  withKeys(withModifiers(handleSubmit, ["stop", "prevent"]), ["enter"]),
71771
71913
  _cache[1] || (_cache[1] = ($event) => urlError.value = false)
71772
71914
  ]
71773
- }, null, 42, _hoisted_8$2), [
71915
+ }, null, 42, _hoisted_7$2), [
71774
71916
  [vModelText, rawUrl.value]
71775
71917
  ]),
71776
71918
  createBaseVNode("div", {
@@ -71778,9 +71920,9 @@ ${style2}
71778
71920
  innerHTML: unref(toolbarIcons).openLink,
71779
71921
  onClick: openLink,
71780
71922
  "data-item": "btn-link-open"
71781
- }, null, 10, _hoisted_9$2)
71923
+ }, null, 10, _hoisted_8$2)
71782
71924
  ]),
71783
- createBaseVNode("div", _hoisted_10$1, [
71925
+ createBaseVNode("div", _hoisted_9$2, [
71784
71926
  __props.href ? (openBlock(), createElementBlock("button", {
71785
71927
  key: 0,
71786
71928
  class: "remove-btn",
@@ -71790,7 +71932,7 @@ ${style2}
71790
71932
  createBaseVNode("div", {
71791
71933
  class: "remove-btn__icon",
71792
71934
  innerHTML: unref(toolbarIcons).removeLink
71793
- }, null, 8, _hoisted_11$1),
71935
+ }, null, 8, _hoisted_10$1),
71794
71936
  _cache[3] || (_cache[3] = createTextVNode(" Remove "))
71795
71937
  ])) : createCommentVNode("", true),
71796
71938
  showApply.value ? (openBlock(), createElementBlock("button", {
@@ -71800,23 +71942,22 @@ ${style2}
71800
71942
  "data-item": "btn-link-apply"
71801
71943
  }, toDisplayString(getApplyText.value), 3)) : createCommentVNode("", true)
71802
71944
  ])
71803
- ])) : isAnchor.value ? (openBlock(), createElementBlock("div", _hoisted_12$1, [
71945
+ ])) : isAnchor.value ? (openBlock(), createElementBlock("div", _hoisted_11$1, [
71804
71946
  createBaseVNode("a", {
71805
71947
  onClick: _cache[2] || (_cache[2] = withModifiers((...args) => __props.goToAnchor && __props.goToAnchor(...args), ["stop", "prevent"]))
71806
71948
  }, "Go to " + toDisplayString(__props.href.startsWith("#_") ? __props.href.substring(2) : __props.href), 1)
71807
71949
  ])) : createCommentVNode("", true)
71808
- ]);
71950
+ ], 2);
71809
71951
  };
71810
71952
  }
71811
71953
  };
71812
- const LinkInput = /* @__PURE__ */ _export_sfc$1(_sfc_main$b$1, [["__scopeId", "data-v-04bac853"]]);
71813
- const _hoisted_1$9$1 = { class: "document-mode" };
71814
- const _hoisted_2$7$1 = ["onClick"];
71815
- const _hoisted_3$6$1 = { class: "document-mode-column icon-column" };
71816
- const _hoisted_4$1$1 = ["innerHTML"];
71817
- const _hoisted_5$1$1 = { class: "document-mode-column text-column" };
71818
- const _hoisted_6$2 = { class: "document-mode-type" };
71819
- const _hoisted_7$2 = { class: "document-mode-description" };
71954
+ const LinkInput = /* @__PURE__ */ _export_sfc$1(_sfc_main$b$1, [["__scopeId", "data-v-64aa14bc"]]);
71955
+ const _hoisted_1$9$1 = ["onClick"];
71956
+ const _hoisted_2$7$1 = { class: "document-mode-column icon-column" };
71957
+ const _hoisted_3$5$1 = ["innerHTML"];
71958
+ const _hoisted_4$1$1 = { class: "document-mode-column text-column" };
71959
+ const _hoisted_5$1$1 = { class: "document-mode-type" };
71960
+ const _hoisted_6$2 = { class: "document-mode-description" };
71820
71961
  const _sfc_main$a$1 = {
71821
71962
  __name: "DocumentMode",
71822
71963
  props: {
@@ -71827,34 +71968,38 @@ ${style2}
71827
71968
  emits: ["select"],
71828
71969
  setup(__props, { emit: __emit }) {
71829
71970
  const emit2 = __emit;
71971
+ const { isHighContrastMode: isHighContrastMode2 } = useHighContrastMode$1();
71830
71972
  const handleClick2 = (item) => {
71831
71973
  emit2("select", item);
71832
71974
  };
71833
71975
  return (_ctx, _cache) => {
71834
- return openBlock(), createElementBlock("div", _hoisted_1$9$1, [
71976
+ return openBlock(), createElementBlock("div", {
71977
+ class: normalizeClass(["document-mode", { "high-contrast": unref(isHighContrastMode2) }])
71978
+ }, [
71835
71979
  (openBlock(true), createElementBlock(Fragment$1, null, renderList(__props.options, (option) => {
71836
71980
  return openBlock(), createElementBlock("div", {
71837
71981
  class: normalizeClass(["option-item", { disabled: option.disabled }]),
71838
71982
  onClick: ($event) => handleClick2(option),
71839
- "data-item": "btn-documentMode-option"
71983
+ "data-item": "btn-documentMode-option",
71984
+ role: "menuitem"
71840
71985
  }, [
71841
- createBaseVNode("div", _hoisted_3$6$1, [
71986
+ createBaseVNode("div", _hoisted_2$7$1, [
71842
71987
  createBaseVNode("div", {
71843
71988
  class: "icon-column__icon",
71844
71989
  innerHTML: option.icon
71845
- }, null, 8, _hoisted_4$1$1)
71990
+ }, null, 8, _hoisted_3$5$1)
71846
71991
  ]),
71847
- createBaseVNode("div", _hoisted_5$1$1, [
71848
- createBaseVNode("div", _hoisted_6$2, toDisplayString(option.label), 1),
71849
- createBaseVNode("div", _hoisted_7$2, toDisplayString(option.description), 1)
71992
+ createBaseVNode("div", _hoisted_4$1$1, [
71993
+ createBaseVNode("div", _hoisted_5$1$1, toDisplayString(option.label), 1),
71994
+ createBaseVNode("div", _hoisted_6$2, toDisplayString(option.description), 1)
71850
71995
  ])
71851
- ], 10, _hoisted_2$7$1);
71996
+ ], 10, _hoisted_1$9$1);
71852
71997
  }), 256))
71853
- ]);
71998
+ ], 2);
71854
71999
  };
71855
72000
  }
71856
72001
  };
71857
- const DocumentMode = /* @__PURE__ */ _export_sfc$1(_sfc_main$a$1, [["__scopeId", "data-v-8afd7fbb"]]);
72002
+ const DocumentMode = /* @__PURE__ */ _export_sfc$1(_sfc_main$a$1, [["__scopeId", "data-v-050d9d49"]]);
71858
72003
  const _hoisted_1$8$1 = {
71859
72004
  key: 0,
71860
72005
  class: "linked-style-buttons"
@@ -71897,9 +72042,9 @@ ${style2}
71897
72042
  }
71898
72043
  };
71899
72044
  const LinkedStyle = /* @__PURE__ */ _export_sfc$1(_sfc_main$9$1, [["__scopeId", "data-v-bf5a8c1e"]]);
71900
- const _hoisted_1$7$1 = ["onClick"];
72045
+ const _hoisted_1$7$1 = ["aria-label", "onClick"];
71901
72046
  const _hoisted_2$5$1 = ["innerHTML"];
71902
- const _hoisted_3$5$1 = ["innerHTML"];
72047
+ const _hoisted_3$4$1 = ["innerHTML"];
71903
72048
  const _sfc_main$8$1 = {
71904
72049
  __name: "IconGridRow",
71905
72050
  props: {
@@ -71936,12 +72081,15 @@ ${style2}
71936
72081
  return openBlock(true), createElementBlock(Fragment$1, null, renderList(__props.icons, (row, rowIndex) => {
71937
72082
  return openBlock(), createElementBlock("div", {
71938
72083
  class: "option-row",
71939
- key: rowIndex
72084
+ key: rowIndex,
72085
+ role: "group"
71940
72086
  }, [
71941
72087
  (openBlock(true), createElementBlock(Fragment$1, null, renderList(row, (option, optionIndex) => {
71942
72088
  return openBlock(), createElementBlock("div", {
71943
72089
  class: "option",
71944
72090
  key: optionIndex,
72091
+ "aria-label": option.label,
72092
+ role: "menuitem",
71945
72093
  onClick: withModifiers(($event) => handleClick2(option), ["stop", "prevent"])
71946
72094
  }, [
71947
72095
  createBaseVNode("div", {
@@ -71954,7 +72102,7 @@ ${style2}
71954
72102
  class: "option__check",
71955
72103
  innerHTML: unref(toolbarIcons).colorOptionCheck,
71956
72104
  style: normalizeStyle(getCheckStyle(option.value, optionIndex))
71957
- }, null, 12, _hoisted_3$5$1)) : createCommentVNode("", true)
72105
+ }, null, 12, _hoisted_3$4$1)) : createCommentVNode("", true)
71958
72106
  ], 8, _hoisted_1$7$1);
71959
72107
  }), 128))
71960
72108
  ]);
@@ -71962,11 +72110,11 @@ ${style2}
71962
72110
  };
71963
72111
  }
71964
72112
  };
71965
- const IconGridRow = /* @__PURE__ */ _export_sfc$1(_sfc_main$8$1, [["__scopeId", "data-v-6a2a9a40"]]);
72113
+ const IconGridRow = /* @__PURE__ */ _export_sfc$1(_sfc_main$8$1, [["__scopeId", "data-v-d96a82fa"]]);
71966
72114
  const DropIcon = '<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>\n';
71967
72115
  const _hoisted_1$6$1 = { class: "options-grid-wrap" };
71968
72116
  const _hoisted_2$4$1 = ["innerHTML"];
71969
- const _hoisted_3$4$1 = { class: "option-grid-ctn" };
72117
+ const _hoisted_3$3$1 = { class: "option-grid-ctn" };
71970
72118
  const _sfc_main$7$1 = {
71971
72119
  __name: "IconGrid",
71972
72120
  props: {
@@ -71998,6 +72146,8 @@ ${style2}
71998
72146
  __props.hasNoneIcon ? (openBlock(), createElementBlock("div", {
71999
72147
  key: 0,
72000
72148
  class: "none-option",
72149
+ role: "menuitem",
72150
+ "aria-label": "Clear color selection",
72001
72151
  onClick: _cache[0] || (_cache[0] = ($event) => handleSelect("none"))
72002
72152
  }, [
72003
72153
  createBaseVNode("span", {
@@ -72006,7 +72156,7 @@ ${style2}
72006
72156
  }, null, 8, _hoisted_2$4$1),
72007
72157
  _cache[1] || (_cache[1] = createTextVNode(" None "))
72008
72158
  ])) : createCommentVNode("", true),
72009
- createBaseVNode("div", _hoisted_3$4$1, [
72159
+ createBaseVNode("div", _hoisted_3$3$1, [
72010
72160
  createVNode(IconGridRow, {
72011
72161
  icons: __props.icons,
72012
72162
  "active-color": __props.activeColor,
@@ -72025,7 +72175,7 @@ ${style2}
72025
72175
  };
72026
72176
  }
72027
72177
  };
72028
- const IconGrid = /* @__PURE__ */ _export_sfc$1(_sfc_main$7$1, [["__scopeId", "data-v-47b783db"]]);
72178
+ const IconGrid = /* @__PURE__ */ _export_sfc$1(_sfc_main$7$1, [["__scopeId", "data-v-9246bdef"]]);
72029
72179
  const closeDropdown$1 = (dropdown) => {
72030
72180
  dropdown.expand.value = false;
72031
72181
  };
@@ -72059,84 +72209,83 @@ ${style2}
72059
72209
  };
72060
72210
  const icons = [
72061
72211
  [
72062
- makeColorOption("#111111"),
72063
- makeColorOption("#333333"),
72064
- makeColorOption("#5C5C5C"),
72065
- makeColorOption("#858585"),
72066
- makeColorOption("#ADADAD"),
72067
- makeColorOption("#D6D6D6"),
72068
- makeColorOption("#FFFFFF")
72212
+ makeColorOption("#111111", "black"),
72213
+ makeColorOption("#333333", "dark gray"),
72214
+ makeColorOption("#5C5C5C", "medium gray"),
72215
+ makeColorOption("#858585", "light gray"),
72216
+ makeColorOption("#ADADAD", "very light gray"),
72217
+ makeColorOption("#D6D6D6", "transparent gray"),
72218
+ makeColorOption("#FFFFFF", "white")
72069
72219
  ],
72070
72220
  [
72071
- makeColorOption("#860028"),
72072
- makeColorOption("#D2003F"),
72073
- makeColorOption("#DB3365"),
72074
- makeColorOption("#E4668C"),
72075
- makeColorOption("#ED99B2"),
72076
- makeColorOption("#F6CCD9"),
72077
- makeColorOption("#FF004D")
72221
+ makeColorOption("#860028", "dark red"),
72222
+ makeColorOption("#D2003F", "red"),
72223
+ makeColorOption("#DB3365", "coral red"),
72224
+ makeColorOption("#E4668C", "light red"),
72225
+ makeColorOption("#ED99B2", "pale pink"),
72226
+ makeColorOption("#F6CCD9", "transparent pink"),
72227
+ makeColorOption("#FF004D", "bright pink")
72078
72228
  ],
72079
72229
  [
72080
- makeColorOption("#83015E"),
72081
- makeColorOption("#CD0194"),
72082
- makeColorOption("#D734A9"),
72083
- makeColorOption("#E167BF"),
72084
- makeColorOption("#EB99D4"),
72085
- makeColorOption("#F5CCEA"),
72086
- makeColorOption("#FF00A8")
72230
+ makeColorOption("#83015E", "dark purple"),
72231
+ makeColorOption("#CD0194", "purple"),
72232
+ makeColorOption("#D734A9", "orchid"),
72233
+ makeColorOption("#E167BF", "light purple"),
72234
+ makeColorOption("#EB99D4", "lavender"),
72235
+ makeColorOption("#F5CCEA", "transparent pink"),
72236
+ makeColorOption("#FF00A8", "neon pink")
72087
72237
  ],
72088
72238
  [
72089
- makeColorOption("#8E220A"),
72090
- makeColorOption("#DD340F"),
72091
- makeColorOption("#E45C3F"),
72092
- makeColorOption("#EB856F"),
72093
- makeColorOption("#F1AE9F"),
72094
- makeColorOption("#F8D6CF"),
72095
- makeColorOption("#FF7A00")
72239
+ makeColorOption("#8E220A", "maroon"),
72240
+ makeColorOption("#DD340F", "red-orange"),
72241
+ makeColorOption("#E45C3F", "burnt orange"),
72242
+ makeColorOption("#EB856F", "peach"),
72243
+ makeColorOption("#F1AE9F", "pale peach"),
72244
+ makeColorOption("#F8D6CF", "transparent peach"),
72245
+ makeColorOption("#FF7A00", "orange")
72096
72246
  ],
72097
72247
  [
72098
- makeColorOption("#947D02"),
72099
- makeColorOption("#E7C302"),
72100
- makeColorOption("#ECCF35"),
72101
- makeColorOption("#F1DB67"),
72102
- makeColorOption("#F5E79A"),
72103
- makeColorOption("#FAF3CC"),
72104
- makeColorOption("#FAFF09")
72248
+ makeColorOption("#947D02", "olive"),
72249
+ makeColorOption("#E7C302", "mustard yellow"),
72250
+ makeColorOption("#ECCF35", "yellow"),
72251
+ makeColorOption("#F1DB67", "light yellow"),
72252
+ makeColorOption("#F5E79A", "very pale yellow"),
72253
+ makeColorOption("#FAF3CC", "transparent yellow"),
72254
+ makeColorOption("#FAFF09", "neon yellow")
72105
72255
  ],
72106
72256
  [
72107
- makeColorOption("#055432"),
72108
- makeColorOption("#07834F"),
72109
- makeColorOption("#399C72"),
72110
- makeColorOption("#6AB595"),
72111
- makeColorOption("#9CCDB9"),
72112
- makeColorOption("#CDE6DC"),
72113
- makeColorOption("#05F38F")
72257
+ makeColorOption("#055432", "forest green"),
72258
+ makeColorOption("#07834F", "green"),
72259
+ makeColorOption("#399C72", "medium green"),
72260
+ makeColorOption("#6AB595", "light green"),
72261
+ makeColorOption("#9CCDB9", "mint"),
72262
+ makeColorOption("#CDE6DC", "transparent mint"),
72263
+ makeColorOption("#05F38F", "bright teal")
72114
72264
  ],
72115
72265
  [
72116
- makeColorOption("#063E7E"),
72117
- makeColorOption("#0A60C5"),
72118
- makeColorOption("#3B80D1"),
72119
- makeColorOption("#6CA0DC"),
72120
- makeColorOption("#9DBFE8"),
72121
- makeColorOption("#CEDFF3"),
72122
- makeColorOption("#21c8ce")
72266
+ makeColorOption("#063E7E", "navy blue"),
72267
+ makeColorOption("#0A60C5", "blue"),
72268
+ makeColorOption("#3B80D1", "sky blue"),
72269
+ makeColorOption("#6CA0DC", "cornflower blue"),
72270
+ makeColorOption("#9DBFE8", "light blue"),
72271
+ makeColorOption("#CEDFF3", "very light blue"),
72272
+ makeColorOption("#21c8ce", "cyan")
72123
72273
  ],
72124
72274
  [
72125
- makeColorOption("#3E027A"),
72126
- makeColorOption("#6103BF"),
72127
- makeColorOption("#8136CC"),
72128
- makeColorOption("#A068D9"),
72129
- makeColorOption("#C09AE6"),
72130
- makeColorOption("#DFCDF2"),
72131
- makeColorOption("#A91DFF")
72275
+ makeColorOption("#3E027A", "deep purple"),
72276
+ makeColorOption("#6103BF", "indigo"),
72277
+ makeColorOption("#8136CC", "violet"),
72278
+ makeColorOption("#A068D9", "lavender pink"),
72279
+ makeColorOption("#C09AE6", "light lilac"),
72280
+ makeColorOption("#DFCDF2", "transparent lilac"),
72281
+ makeColorOption("#A91DFF", "neon purple")
72132
72282
  ]
72133
72283
  ];
72134
72284
  const getAvailableColorOptions = () => {
72135
72285
  return icons.flat().map((item) => item.value);
72136
72286
  };
72137
- const _hoisted_1$5$1 = { class: "toolbar-table-grid-wrapper" };
72138
- const _hoisted_2$3$1 = ["data-cols", "data-rows", "onClick"];
72139
- const _hoisted_3$3$1 = { class: "toolbar-table-grid-value" };
72287
+ const _hoisted_1$5$1 = ["data-cols", "data-rows", "onClick"];
72288
+ const _hoisted_2$3$1 = ["aria-valuetext"];
72140
72289
  const _sfc_main$6$1 = {
72141
72290
  __name: "TableGrid",
72142
72291
  emits: ["select", "clickoutside"],
@@ -72144,6 +72293,7 @@ ${style2}
72144
72293
  const emit2 = __emit;
72145
72294
  const selectedRows = ref$1(0);
72146
72295
  const selectedCols = ref$1(0);
72296
+ const { isHighContrastMode: isHighContrastMode2 } = useHighContrastMode$1();
72147
72297
  const onTableGridMouseOver = (event) => {
72148
72298
  let target = event.target;
72149
72299
  let isGrid = !!target.dataset.grid;
@@ -72171,7 +72321,9 @@ ${style2}
72171
72321
  emit2("select", { cols, rows });
72172
72322
  };
72173
72323
  return (_ctx, _cache) => {
72174
- return openBlock(), createElementBlock("div", _hoisted_1$5$1, [
72324
+ return openBlock(), createElementBlock("div", {
72325
+ class: normalizeClass(["toolbar-table-grid-wrapper", { "high-contrast": unref(isHighContrastMode2) }])
72326
+ }, [
72175
72327
  createBaseVNode("div", {
72176
72328
  class: "toolbar-table-grid",
72177
72329
  onMouseover: onTableGridMouseOver,
@@ -72187,22 +72339,25 @@ ${style2}
72187
72339
  "data-rows": i2,
72188
72340
  "data-item": "true",
72189
72341
  onClick: withModifiers(($event) => handleClick2({ cols: n2, rows: i2 }), ["stop", "prevent"])
72190
- }, null, 8, _hoisted_2$3$1);
72342
+ }, null, 8, _hoisted_1$5$1);
72191
72343
  }), 64))
72192
72344
  ], 64);
72193
72345
  }), 64))
72194
72346
  ], 32),
72195
- createBaseVNode("div", _hoisted_3$3$1, toDisplayString(selectedRows.value) + " x " + toDisplayString(selectedCols.value), 1)
72196
- ]);
72347
+ createBaseVNode("div", {
72348
+ class: "toolbar-table-grid-value",
72349
+ "aria-valuetext": `${selectedRows.value} x ${selectedCols.value}`
72350
+ }, toDisplayString(selectedRows.value) + " x " + toDisplayString(selectedCols.value), 9, _hoisted_2$3$1)
72351
+ ], 2);
72197
72352
  };
72198
72353
  }
72199
72354
  };
72200
- const TableGrid = /* @__PURE__ */ _export_sfc$1(_sfc_main$6$1, [["__scopeId", "data-v-06352ab9"]]);
72355
+ const TableGrid = /* @__PURE__ */ _export_sfc$1(_sfc_main$6$1, [["__scopeId", "data-v-617bf152"]]);
72201
72356
  const _hoisted_1$4$1 = { class: "toolbar-table-actions" };
72202
- const _hoisted_2$2$1 = ["onClick", "data-item"];
72357
+ const _hoisted_2$2$1 = ["onClick", "data-item", "ariaLabel"];
72203
72358
  const _hoisted_3$2$1 = { class: "toolbar-table-actions__icon" };
72204
72359
  const _hoisted_4$5 = ["innerHTML"];
72205
- const _hoisted_5$4 = { class: "toolbar-table-actions__label" };
72360
+ const _hoisted_5$3 = { class: "toolbar-table-actions__label" };
72206
72361
  const _sfc_main$5$1 = {
72207
72362
  __name: "TableActions",
72208
72363
  props: {
@@ -72222,7 +72377,9 @@ ${style2}
72222
72377
  return openBlock(), createElementBlock("div", {
72223
72378
  class: normalizeClass(["toolbar-table-actions__item", { "toolbar-table-actions__item--border": option.bottomBorder }]),
72224
72379
  onClick: ($event) => handleClick2(option),
72225
- "data-item": option.props?.["data-item"] || ""
72380
+ "data-item": option.props?.["data-item"] || "",
72381
+ ariaLabel: option.props?.ariaLabel,
72382
+ role: "menuitem"
72226
72383
  }, [
72227
72384
  createBaseVNode("div", _hoisted_3$2$1, [
72228
72385
  createBaseVNode("div", {
@@ -72230,14 +72387,14 @@ ${style2}
72230
72387
  innerHTML: option.icon
72231
72388
  }, null, 8, _hoisted_4$5)
72232
72389
  ]),
72233
- createBaseVNode("div", _hoisted_5$4, toDisplayString(option.label), 1)
72390
+ createBaseVNode("div", _hoisted_5$3, toDisplayString(option.label), 1)
72234
72391
  ], 10, _hoisted_2$2$1);
72235
72392
  }), 256))
72236
72393
  ]);
72237
72394
  };
72238
72395
  }
72239
72396
  };
72240
- const TableActions = /* @__PURE__ */ _export_sfc$1(_sfc_main$5$1, [["__scopeId", "data-v-fdbfb4b0"]]);
72397
+ const TableActions = /* @__PURE__ */ _export_sfc$1(_sfc_main$5$1, [["__scopeId", "data-v-f82e859a"]]);
72241
72398
  const checkIconSvg$1 = '<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>\n';
72242
72399
  const _hoisted_1$3$1 = { class: "search-input-ctn" };
72243
72400
  const _hoisted_2$1$1 = { class: "row" };
@@ -72338,7 +72495,10 @@ ${style2}
72338
72495
  name: "bold",
72339
72496
  command: "toggleBold",
72340
72497
  icon: toolbarIcons2.bold,
72341
- tooltip: toolbarTexts2.bold
72498
+ tooltip: toolbarTexts2.bold,
72499
+ attributes: {
72500
+ ariaLabel: "Bold"
72501
+ }
72342
72502
  });
72343
72503
  const fontButton = useToolbarItem({
72344
72504
  type: "dropdown",
@@ -72353,6 +72513,9 @@ ${style2}
72353
72513
  isWide: true,
72354
72514
  style: { width: "116px" },
72355
72515
  suppressActiveHighlight: true,
72516
+ attributes: {
72517
+ ariaLabel: "Font family"
72518
+ },
72356
72519
  options: [...toolbarFonts ? toolbarFonts : TOOLBAR_FONTS],
72357
72520
  onActivate: ({ fontFamily: fontFamily2 }) => {
72358
72521
  if (!fontFamily2) return;
@@ -72373,6 +72536,9 @@ ${style2}
72373
72536
  hasCaret: false,
72374
72537
  isWide: true,
72375
72538
  suppressActiveHighlight: true,
72539
+ attributes: {
72540
+ ariaLabel: "AI"
72541
+ },
72376
72542
  options: [
72377
72543
  {
72378
72544
  type: "render",
@@ -72420,6 +72586,9 @@ ${style2}
72420
72586
  suppressActiveHighlight: true,
72421
72587
  isWide: true,
72422
72588
  command: "setFontSize",
72589
+ attributes: {
72590
+ ariaLabel: "Font size"
72591
+ },
72423
72592
  options: [
72424
72593
  { label: "8", key: "8pt", props: { "data-item": "btn-fontSize-option" } },
72425
72594
  { label: "9", key: "9pt", props: { "data-item": "btn-fontSize-option" } },
@@ -72455,14 +72624,20 @@ ${style2}
72455
72624
  name: "italic",
72456
72625
  command: "toggleItalic",
72457
72626
  icon: toolbarIcons2.italic,
72458
- tooltip: toolbarTexts2.italic
72627
+ tooltip: toolbarTexts2.italic,
72628
+ attributes: {
72629
+ ariaLabel: "Italic"
72630
+ }
72459
72631
  });
72460
72632
  const underline = useToolbarItem({
72461
72633
  type: "button",
72462
72634
  name: "underline",
72463
72635
  command: "toggleUnderline",
72464
72636
  icon: toolbarIcons2.underline,
72465
- tooltip: toolbarTexts2.underline
72637
+ tooltip: toolbarTexts2.underline,
72638
+ attributes: {
72639
+ ariaLabel: "Underline"
72640
+ }
72466
72641
  });
72467
72642
  const highlight = useToolbarItem({
72468
72643
  type: "dropdown",
@@ -72475,6 +72650,9 @@ ${style2}
72475
72650
  command: "setHighlight",
72476
72651
  noArgumentCommand: "unsetHighlight",
72477
72652
  suppressActiveHighlight: true,
72653
+ attributes: {
72654
+ ariaLabel: "Highlight"
72655
+ },
72478
72656
  options: [
72479
72657
  {
72480
72658
  key: "color",
@@ -72497,6 +72675,9 @@ ${style2}
72497
72675
  tooltip: toolbarTexts2.color,
72498
72676
  command: "setColor",
72499
72677
  suppressActiveHighlight: true,
72678
+ attributes: {
72679
+ ariaLabel: "Color"
72680
+ },
72500
72681
  options: [
72501
72682
  {
72502
72683
  key: "color",
@@ -72517,6 +72698,9 @@ ${style2}
72517
72698
  tooltip: toolbarTexts2.search,
72518
72699
  group: "right",
72519
72700
  inputRef: searchRef,
72701
+ attributes: {
72702
+ ariaLabel: "Search"
72703
+ },
72520
72704
  options: [
72521
72705
  {
72522
72706
  type: "render",
@@ -72542,6 +72726,9 @@ ${style2}
72542
72726
  markName: "link",
72543
72727
  icon: toolbarIcons2.link,
72544
72728
  tooltip: toolbarTexts2.link,
72729
+ attributes: {
72730
+ ariaLabel: "Link dropdown"
72731
+ },
72545
72732
  options: [
72546
72733
  {
72547
72734
  type: "render",
@@ -72595,7 +72782,10 @@ ${style2}
72595
72782
  command: "startImageUpload",
72596
72783
  icon: toolbarIcons2.image,
72597
72784
  tooltip: toolbarTexts2.image,
72598
- disabled: false
72785
+ disabled: false,
72786
+ attributes: {
72787
+ ariaLabel: "Image"
72788
+ }
72599
72789
  });
72600
72790
  const tableItem = useToolbarItem({
72601
72791
  type: "dropdown",
@@ -72606,6 +72796,9 @@ ${style2}
72606
72796
  tooltip: toolbarTexts2.table,
72607
72797
  command: "insertTable",
72608
72798
  suppressActiveHighlight: true,
72799
+ attributes: {
72800
+ ariaLabel: "Table"
72801
+ },
72609
72802
  options: [
72610
72803
  {
72611
72804
  key: "table",
@@ -72632,6 +72825,9 @@ ${style2}
72632
72825
  icon: toolbarIcons2.tableActions,
72633
72826
  hideLabel: true,
72634
72827
  disabled: true,
72828
+ attributes: {
72829
+ ariaLabel: "Table actions"
72830
+ },
72635
72831
  options: [
72636
72832
  {
72637
72833
  type: "render",
@@ -72644,69 +72840,102 @@ ${style2}
72644
72840
  label: toolbarTexts2.addRowBefore,
72645
72841
  command: "addRowBefore",
72646
72842
  icon: toolbarIcons2.addRowBefore,
72647
- props: { "data-item": "btn-tableActions-option" }
72843
+ props: {
72844
+ "data-item": "btn-tableActions-option",
72845
+ ariaLabel: "Add row before"
72846
+ }
72648
72847
  },
72649
72848
  {
72650
72849
  label: toolbarTexts2.addRowAfter,
72651
72850
  command: "addRowAfter",
72652
72851
  icon: toolbarIcons2.addRowAfter,
72653
- props: { "data-item": "btn-tableActions-option" }
72852
+ props: {
72853
+ "data-item": "btn-tableActions-option",
72854
+ ariaLabel: "Add row after"
72855
+ }
72654
72856
  },
72655
72857
  {
72656
72858
  label: toolbarTexts2.addColumnBefore,
72657
72859
  command: "addColumnBefore",
72658
72860
  icon: toolbarIcons2.addColumnBefore,
72659
- props: { "data-item": "btn-tableActions-option" }
72861
+ props: {
72862
+ "data-item": "btn-tableActions-option",
72863
+ ariaLabel: "Add column before"
72864
+ }
72660
72865
  },
72661
72866
  {
72662
72867
  label: toolbarTexts2.addColumnAfter,
72663
72868
  command: "addColumnAfter",
72664
72869
  icon: toolbarIcons2.addColumnAfter,
72665
72870
  bottomBorder: true,
72666
- props: { "data-item": "btn-tableActions-option" }
72871
+ props: {
72872
+ "data-item": "btn-tableActions-option",
72873
+ ariaLabel: "Add column after"
72874
+ }
72667
72875
  },
72668
72876
  {
72669
72877
  label: toolbarTexts2.deleteRow,
72670
72878
  command: "deleteRow",
72671
72879
  icon: toolbarIcons2.deleteRow,
72672
- props: { "data-item": "btn-tableActions-option" }
72880
+ props: {
72881
+ "data-item": "btn-tableActions-option",
72882
+ ariaLabel: "Delete row"
72883
+ }
72673
72884
  },
72674
72885
  {
72675
72886
  label: toolbarTexts2.deleteColumn,
72676
72887
  command: "deleteColumn",
72677
72888
  icon: toolbarIcons2.deleteColumn,
72678
- props: { "data-item": "btn-tableActions-option" }
72889
+ props: {
72890
+ "data-item": "btn-tableActions-option",
72891
+ ariaLabel: "Delete column"
72892
+ }
72679
72893
  },
72680
72894
  {
72681
72895
  label: toolbarTexts2.deleteTable,
72682
72896
  command: "deleteTable",
72683
72897
  icon: toolbarIcons2.deleteTable,
72684
- props: { "data-item": "btn-tableActions-option" }
72898
+ props: {
72899
+ "data-item": "btn-tableActions-option",
72900
+ ariaLabel: "Delete table"
72901
+ }
72685
72902
  },
72686
72903
  {
72687
72904
  label: toolbarTexts2.transparentBorders,
72688
72905
  command: "deleteCellAndTableBorders",
72689
72906
  icon: toolbarIcons2.deleteBorders,
72690
72907
  bottomBorder: true,
72691
- props: { "data-item": "btn-tableActions-option" }
72908
+ props: {
72909
+ "data-item": "btn-tableActions-option",
72910
+ ariaLabel: "Delete cell and table borders"
72911
+ }
72692
72912
  },
72693
72913
  {
72694
72914
  label: toolbarTexts2.mergeCells,
72695
72915
  command: "mergeCells",
72696
72916
  icon: toolbarIcons2.mergeCells,
72697
- props: { "data-item": "btn-tableActions-option" }
72917
+ props: {
72918
+ "data-item": "btn-tableActions-option",
72919
+ ariaLabel: "Merge cells"
72920
+ }
72698
72921
  },
72699
72922
  {
72700
72923
  label: toolbarTexts2.splitCell,
72701
72924
  command: "splitCell",
72702
72925
  icon: toolbarIcons2.splitCell,
72703
- props: { "data-item": "btn-tableActions-option" }
72926
+ props: {
72927
+ "data-item": "btn-tableActions-option",
72928
+ ariaLabel: "Split cells"
72929
+ }
72704
72930
  },
72705
72931
  {
72706
72932
  label: toolbarTexts2.fixTables,
72707
72933
  command: "fixTables",
72708
72934
  icon: toolbarIcons2.fixTables,
72709
- props: { "data-item": "btn-tableActions-option" }
72935
+ props: {
72936
+ "data-item": "btn-tableActions-option",
72937
+ ariaLabel: "Fix tables"
72938
+ }
72710
72939
  }
72711
72940
  ];
72712
72941
  function renderTableActions(tableActionsItem2) {
@@ -72729,6 +72958,9 @@ ${style2}
72729
72958
  markName: "textAlign",
72730
72959
  labelAttr: "textAlign",
72731
72960
  suppressActiveHighlight: true,
72961
+ attributes: {
72962
+ ariaLabel: "Text align"
72963
+ },
72732
72964
  options: [
72733
72965
  {
72734
72966
  type: "render",
@@ -72772,14 +73004,20 @@ ${style2}
72772
73004
  name: "list",
72773
73005
  command: "toggleBulletList",
72774
73006
  icon: toolbarIcons2.bulletList,
72775
- tooltip: toolbarTexts2.bulletList
73007
+ tooltip: toolbarTexts2.bulletList,
73008
+ attributes: {
73009
+ ariaLabel: "Bullet list"
73010
+ }
72776
73011
  });
72777
73012
  const numberedList = useToolbarItem({
72778
73013
  type: "button",
72779
73014
  name: "numberedlist",
72780
73015
  command: "toggleOrderedList",
72781
73016
  icon: toolbarIcons2.numberedList,
72782
- tooltip: toolbarTexts2.numberedList
73017
+ tooltip: toolbarTexts2.numberedList,
73018
+ attributes: {
73019
+ ariaLabel: "Numbered list"
73020
+ }
72783
73021
  });
72784
73022
  const indentLeft = useToolbarItem({
72785
73023
  type: "button",
@@ -72787,7 +73025,10 @@ ${style2}
72787
73025
  command: "decreaseTextIndent",
72788
73026
  icon: toolbarIcons2.indentLeft,
72789
73027
  tooltip: toolbarTexts2.indentLeft,
72790
- disabled: false
73028
+ disabled: false,
73029
+ attributes: {
73030
+ ariaLabel: "Left indent"
73031
+ }
72791
73032
  });
72792
73033
  const indentRight = useToolbarItem({
72793
73034
  type: "button",
@@ -72795,14 +73036,20 @@ ${style2}
72795
73036
  command: "increaseTextIndent",
72796
73037
  icon: toolbarIcons2.indentRight,
72797
73038
  tooltip: toolbarTexts2.indentRight,
72798
- disabled: false
73039
+ disabled: false,
73040
+ attributes: {
73041
+ ariaLabel: "Right indent"
73042
+ }
72799
73043
  });
72800
73044
  const overflow = useToolbarItem({
72801
73045
  type: "overflow",
72802
73046
  name: "overflow",
72803
73047
  command: "toggleOverflow",
72804
73048
  icon: toolbarIcons2.overflow,
72805
- disabled: false
73049
+ disabled: false,
73050
+ attributes: {
73051
+ ariaLabel: "Overflow items"
73052
+ }
72806
73053
  });
72807
73054
  const zoom = useToolbarItem({
72808
73055
  type: "dropdown",
@@ -72816,6 +73063,9 @@ ${style2}
72816
73063
  isWide: true,
72817
73064
  inlineTextInputVisible: false,
72818
73065
  hasInlineTextInput: true,
73066
+ attributes: {
73067
+ ariaLabel: "Zoom"
73068
+ },
72819
73069
  options: [
72820
73070
  { label: "50%", key: 0.5, props: { "data-item": "btn-zoom-option" } },
72821
73071
  { label: "75%", key: 0.75, props: { "data-item": "btn-zoom-option" } },
@@ -72838,6 +73088,9 @@ ${style2}
72838
73088
  command: "undo",
72839
73089
  icon: toolbarIcons2.undo,
72840
73090
  group: "left",
73091
+ attributes: {
73092
+ ariaLabel: "Undo"
73093
+ },
72841
73094
  onDeactivate: () => {
72842
73095
  undo2.disabled.value = !superToolbar.undoDepth;
72843
73096
  }
@@ -72850,6 +73103,9 @@ ${style2}
72850
73103
  command: "redo",
72851
73104
  icon: toolbarIcons2.redo,
72852
73105
  group: "left",
73106
+ attributes: {
73107
+ ariaLabel: "Redo"
73108
+ },
72853
73109
  onDeactivate: () => {
72854
73110
  redo2.disabled.value = !superToolbar.redoDepth;
72855
73111
  }
@@ -72861,7 +73117,10 @@ ${style2}
72861
73117
  tooltip: toolbarTexts2.trackChanges,
72862
73118
  command: "toggleTrackChanges",
72863
73119
  icon: toolbarIcons2.trackChanges,
72864
- group: "left"
73120
+ group: "left",
73121
+ attributes: {
73122
+ ariaLabel: "Track changes"
73123
+ }
72865
73124
  });
72866
73125
  const acceptTrackedChangeBySelection = useToolbarItem({
72867
73126
  type: "button",
@@ -72870,7 +73129,10 @@ ${style2}
72870
73129
  tooltip: toolbarTexts2.trackChangesAccept,
72871
73130
  command: "acceptTrackedChangeBySelection",
72872
73131
  icon: toolbarIcons2.trackChangesAccept,
72873
- group: "left"
73132
+ group: "left",
73133
+ attributes: {
73134
+ ariaLabel: "Accept tracked changes"
73135
+ }
72874
73136
  });
72875
73137
  const rejectTrackedChangeOnSelection = useToolbarItem({
72876
73138
  type: "button",
@@ -72879,7 +73141,10 @@ ${style2}
72879
73141
  tooltip: toolbarTexts2.trackChangesReject,
72880
73142
  command: "rejectTrackedChangeOnSelection",
72881
73143
  icon: toolbarIcons2.trackChangesReject,
72882
- group: "left"
73144
+ group: "left",
73145
+ attributes: {
73146
+ ariaLabel: "Reject tracked changes"
73147
+ }
72883
73148
  });
72884
73149
  const toggleTrackChangesOriginal = useToolbarItem({
72885
73150
  type: "button",
@@ -72888,7 +73153,10 @@ ${style2}
72888
73153
  tooltip: toolbarTexts2.trackChangesOriginal,
72889
73154
  command: "toggleTrackChangesShowOriginal",
72890
73155
  icon: toolbarIcons2.trackChangesOriginal,
72891
- group: "left"
73156
+ group: "left",
73157
+ attributes: {
73158
+ ariaLabel: "Toggle tracked changes show original"
73159
+ }
72892
73160
  });
72893
73161
  const toggleTrackChangesFinal = useToolbarItem({
72894
73162
  type: "button",
@@ -72897,14 +73165,20 @@ ${style2}
72897
73165
  tooltip: toolbarTexts2.trackChangesFinal,
72898
73166
  command: "toggleTrackChangesShowFinal",
72899
73167
  icon: toolbarIcons2.trackChangesFinal,
72900
- group: "left"
73168
+ group: "left",
73169
+ attributes: {
73170
+ ariaLabel: "Toggle tracked changes show final"
73171
+ }
72901
73172
  });
72902
73173
  const clearFormatting = useToolbarItem({
72903
73174
  type: "button",
72904
73175
  name: "clearFormatting",
72905
73176
  command: "clearFormat",
72906
73177
  tooltip: toolbarTexts2.clearFormatting,
72907
- icon: toolbarIcons2.clearFormatting
73178
+ icon: toolbarIcons2.clearFormatting,
73179
+ attributes: {
73180
+ ariaLabel: "Clear formatting"
73181
+ }
72908
73182
  });
72909
73183
  [
72910
73184
  bold,
@@ -72920,7 +73194,10 @@ ${style2}
72920
73194
  name: "copyFormat",
72921
73195
  tooltip: toolbarTexts2.copyFormat,
72922
73196
  icon: toolbarIcons2.copyFormat,
72923
- command: "copyFormat"
73197
+ command: "copyFormat",
73198
+ attributes: {
73199
+ ariaLabel: "Copy formatting"
73200
+ }
72924
73201
  });
72925
73202
  const getDocumentOptionsAfterRole = (role2, documentOptions2) => {
72926
73203
  if (role2 === "editor") return documentOptions2;
@@ -72949,7 +73226,8 @@ ${style2}
72949
73226
  disabled: role !== "editor",
72950
73227
  attributes: {
72951
73228
  dropdownPosition: "right",
72952
- className: "toolbar-item--doc-mode"
73229
+ className: "toolbar-item--doc-mode",
73230
+ ariaLabel: "Document mode"
72953
73231
  },
72954
73232
  options: [
72955
73233
  {
@@ -72996,7 +73274,10 @@ ${style2}
72996
73274
  name: "pageBreakTool",
72997
73275
  command: "insertPageBreak",
72998
73276
  icon: toolbarIcons2.pageBreak,
72999
- tooltip: toolbarTexts2.pageBreak
73277
+ tooltip: toolbarTexts2.pageBreak,
73278
+ attributes: {
73279
+ ariaLabel: "Page break"
73280
+ }
73000
73281
  });
73001
73282
  const controlSizes = /* @__PURE__ */ new Map([
73002
73283
  ["separator", 20],
@@ -73014,7 +73295,10 @@ ${style2}
73014
73295
  name: "ruler",
73015
73296
  command: "toggleRuler",
73016
73297
  icon: toolbarIcons2.ruler,
73017
- tooltip: toolbarTexts2.ruler
73298
+ tooltip: toolbarTexts2.ruler,
73299
+ attributes: {
73300
+ ariaLabel: "Ruler"
73301
+ }
73018
73302
  });
73019
73303
  const selectedLinkedStyle = ref$1(null);
73020
73304
  const linkedStyles = useToolbarItem({
@@ -73030,7 +73314,8 @@ ${style2}
73030
73314
  suppressActiveHighlight: true,
73031
73315
  disabled: false,
73032
73316
  attributes: {
73033
- className: "toolbar-item--linked-styles"
73317
+ className: "toolbar-item--linked-styles",
73318
+ ariaLabel: "Linked styles"
73034
73319
  },
73035
73320
  options: [
73036
73321
  {
@@ -73077,6 +73362,9 @@ ${style2}
73077
73362
  command: "setLineHeight",
73078
73363
  dropdownValueKey: "key",
73079
73364
  selectedValue: "1",
73365
+ attributes: {
73366
+ ariaLabel: "Line height"
73367
+ },
73080
73368
  options: [
73081
73369
  { label: "1,0", key: "1", icon: () => renderIcon("1", lineHeight2.selectedValue), props: { "data-item": "btn-lineHeight-option" } },
73082
73370
  { label: "1,15", key: "1.15", icon: () => renderIcon("1.15", lineHeight2.selectedValue), props: { "data-item": "btn-lineHeight-option" } },
@@ -74230,7 +74518,7 @@ ${style2}
74230
74518
  key: 1,
74231
74519
  class: "placeholder-editor"
74232
74520
  };
74233
- const _hoisted_3$9 = { class: "placeholder-title" };
74521
+ const _hoisted_3$8 = { class: "placeholder-title" };
74234
74522
  const _sfc_main$2$1 = {
74235
74523
  __name: "SuperEditor",
74236
74524
  props: {
@@ -74394,11 +74682,12 @@ ${style2}
74394
74682
  createBaseVNode("div", {
74395
74683
  ref_key: "editorElem",
74396
74684
  ref: editorElem,
74397
- class: "editor-element super-editor__element"
74685
+ class: "editor-element super-editor__element",
74686
+ role: "presentation"
74398
74687
  }, null, 512)
74399
74688
  ], 544),
74400
74689
  !editorReady.value ? (openBlock(), createElementBlock("div", _hoisted_2$b, [
74401
- createBaseVNode("div", _hoisted_3$9, [
74690
+ createBaseVNode("div", _hoisted_3$8, [
74402
74691
  createVNode(unref(NSkeleton), {
74403
74692
  text: "",
74404
74693
  style: { "width": "60%" }
@@ -74446,7 +74735,7 @@ ${style2}
74446
74735
  };
74447
74736
  }
74448
74737
  };
74449
- const SuperEditor = /* @__PURE__ */ _export_sfc$1(_sfc_main$2$1, [["__scopeId", "data-v-ff8f86f4"]]);
74738
+ const SuperEditor = /* @__PURE__ */ _export_sfc$1(_sfc_main$2$1, [["__scopeId", "data-v-f27b7c30"]]);
74450
74739
  const _hoisted_1$h = ["innerHTML"];
74451
74740
  const _sfc_main$i = {
74452
74741
  __name: "SuperInput",
@@ -87631,7 +87920,8 @@ ${style2}
87631
87920
  onClick: withModifiers(setFocus, ["stop", "prevent"]),
87632
87921
  style: normalizeStyle(getSidebarCommentStyle.value),
87633
87922
  ref_key: "commentDialogElement",
87634
- ref: commentDialogElement
87923
+ ref: commentDialogElement,
87924
+ role: "dialog"
87635
87925
  }, [
87636
87926
  shouldShowInternalExternal.value ? (openBlock(), createElementBlock("div", _hoisted_1$c, [
87637
87927
  createVNode(InternalDropdown, {
@@ -87727,7 +88017,7 @@ ${style2}
87727
88017
  };
87728
88018
  }
87729
88019
  };
87730
- const CommentDialog = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-92061859"]]);
88020
+ const CommentDialog = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-ff48cd67"]]);
87731
88021
  const _hoisted_1$b = { class: "comments-list" };
87732
88022
  const _hoisted_2$6 = { key: 0 };
87733
88023
  const _hoisted_3$3 = { class: "comment-item" };
@@ -88895,6 +89185,16 @@ ${style2}
88895
89185
  handleAiToolClick
88896
89186
  };
88897
89187
  }
89188
+ const isHighContrastMode = ref$1(false);
89189
+ function useHighContrastMode() {
89190
+ const setHighContrastMode = (value) => {
89191
+ isHighContrastMode.value = value;
89192
+ };
89193
+ return {
89194
+ isHighContrastMode,
89195
+ setHighContrastMode
89196
+ };
89197
+ }
88898
89198
  const _hoisted_1 = ["innerHTML"];
88899
89199
  const _hoisted_2 = { class: "superdoc__document document" };
88900
89200
  const _hoisted_3 = {
@@ -88936,6 +89236,7 @@ ${style2}
88936
89236
  const { showAddComment, handleEditorLocationsUpdate, handleTrackedChangeUpdate } = commentsStore;
88937
89237
  const { proxy } = getCurrentInstance();
88938
89238
  commentsStore.proxy = proxy;
89239
+ const { isHighContrastMode: isHighContrastMode2 } = useHighContrastMode();
88939
89240
  const layers = ref$1(null);
88940
89241
  const commentsLayer = ref$1(null);
88941
89242
  const toolsMenuPosition = reactive({ top: null, right: "-25px", zIndex: 101 });
@@ -89291,12 +89592,13 @@ ${style2}
89291
89592
  return (_ctx, _cache) => {
89292
89593
  const _directive_click_outside = resolveDirective("click-outside");
89293
89594
  return openBlock(), createElementBlock("div", {
89294
- class: normalizeClass(["superdoc", { "superdoc--with-sidebar": showCommentsSidebar.value }])
89595
+ class: normalizeClass(["superdoc", { "superdoc--with-sidebar": showCommentsSidebar.value, "high-contrast": unref(isHighContrastMode2) }])
89295
89596
  }, [
89296
89597
  createBaseVNode("div", {
89297
89598
  class: "superdoc__layers layers",
89298
89599
  ref_key: "layers",
89299
- ref: layers
89600
+ ref: layers,
89601
+ role: "group"
89300
89602
  }, [
89301
89603
  showToolsFloatingMenu.value ? (openBlock(), createElementBlock("div", {
89302
89604
  key: 0,
@@ -89431,7 +89733,7 @@ ${style2}
89431
89733
  };
89432
89734
  }
89433
89735
  };
89434
- const App = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-e620aa2b"]]);
89736
+ const App = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-fc218ba5"]]);
89435
89737
  const createSuperdocVueApp = () => {
89436
89738
  const app = createApp(App);
89437
89739
  const pinia = createPinia();
@@ -89439,7 +89741,8 @@ ${style2}
89439
89741
  app.directive("click-outside", vClickOutside);
89440
89742
  const superdocStore = useSuperdocStore();
89441
89743
  const commentsStore = useCommentsStore();
89442
- return { app, pinia, superdocStore, commentsStore };
89744
+ const highContrastModeStore = useHighContrastMode();
89745
+ return { app, pinia, superdocStore, commentsStore, highContrastModeStore };
89443
89746
  };
89444
89747
  const createDownload = (blob, name, extension) => {
89445
89748
  const url = URL.createObjectURL(blob);
@@ -89529,7 +89832,7 @@ ${style2}
89529
89832
  this.config.colors = shuffleArray(this.config.colors);
89530
89833
  this.userColorMap = /* @__PURE__ */ new Map();
89531
89834
  this.colorIndex = 0;
89532
- this.version = "0.12.30";
89835
+ this.version = "0.12.31-next.2";
89533
89836
  console.debug("🦋 [superdoc] Using SuperDoc version:", this.version);
89534
89837
  this.superdocId = config.superdocId || v4();
89535
89838
  this.colors = this.config.colors;
@@ -89606,7 +89909,7 @@ ${style2}
89606
89909
  }
89607
89910
  }
89608
89911
  #initVueApp() {
89609
- const { app, pinia, superdocStore, commentsStore } = createSuperdocVueApp();
89912
+ const { app, pinia, superdocStore, commentsStore, highContrastModeStore } = createSuperdocVueApp();
89610
89913
  this.app = app;
89611
89914
  this.pinia = pinia;
89612
89915
  this.app.config.globalProperties.$config = this.config;
@@ -89614,6 +89917,7 @@ ${style2}
89614
89917
  this.app.config.globalProperties.$superdoc = this;
89615
89918
  this.superdocStore = superdocStore;
89616
89919
  this.commentsStore = commentsStore;
89920
+ this.highContrastModeStore = highContrastModeStore;
89617
89921
  this.superdocStore.init(this.config);
89618
89922
  this.commentsStore.init(this.config.modules.comments);
89619
89923
  }
@@ -90085,7 +90389,18 @@ ${style2}
90085
90389
  });
90086
90390
  }
90087
90391
  }
90392
+ /**
90393
+ * Set the high contrast mode
90394
+ * @param {boolean} isHighContrast
90395
+ * @returns {void}
90396
+ */
90397
+ setHighContrastMode(isHighContrast) {
90398
+ if (!this.activeEditor) return;
90399
+ this.activeEditor.setHighContrastMode(isHighContrast);
90400
+ this.highContrastModeStore.setHighContrastMode(isHighContrast);
90401
+ }
90088
90402
  }
90403
+ exports2.AnnotatorHelpers = AnnotatorHelpers;
90089
90404
  exports2.BlankDOCX = BlankDOCX;
90090
90405
  exports2.DOCX = DOCX;
90091
90406
  exports2.Editor = Editor;