@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
@@ -1,6 +1,6 @@
1
1
  import * as Y from "yjs";
2
2
  import { UndoManager, Item as Item$2, ContentType, Text as Text$1, XmlElement, encodeStateAsUpdate } from "yjs";
3
- import { g as global$2, c as createApp, r as ref$1, a as computed, b as createElementBlock, o as openBlock, F as Fragment$1, d as renderList, n as normalizeClass, w as withModifiers, e as createCommentVNode, t as toDisplayString, f as createBaseVNode, i as inject, h as onBeforeMount, j as onMounted, k as onBeforeUnmount, l as watch, m as defineComponent, q as getCurrentInstance, s as onDeactivated, u as nextTick, v as createBlock, x as createVNode, y as unref, z as withCtx, A as createTextVNode, B as normalizeStyle, C as h, D as toRef, E as provide, G as mergeProps, H as cloneVNode, T as Text$2, I as withDirectives, J as watchEffect, K as shallowRef, L as vModelText, M as withKeys, N as reactive, O as readonly, P as Transition, Q as vShow, R as Comment, S as renderSlot, U as onActivated, V as Teleport, W as isVNode, X as onUnmounted } from "./vue-IIIZMHTg.es.js";
3
+ import { g as global$2, r as ref$1, c as createApp, a as computed, b as createElementBlock, o as openBlock, F as Fragment$1, d as renderList, n as normalizeClass, w as withModifiers, e as createCommentVNode, t as toDisplayString, f as createBaseVNode, i as inject, h as onBeforeMount, j as onMounted, k as onBeforeUnmount, l as watch, m as defineComponent, q as getCurrentInstance, s as onDeactivated, u as nextTick, v as createBlock, x as createVNode, y as unref, z as withCtx, A as createTextVNode, B as normalizeStyle, C as h, D as toRef, E as provide, G as mergeProps, H as cloneVNode, T as Text$2, I as withDirectives, J as watchEffect, K as shallowRef, L as vModelText, M as withKeys, N as reactive, O as readonly, P as Transition, Q as vShow, R as Comment, S as renderSlot, U as onActivated, V as Teleport, W as isVNode, X as onUnmounted } from "./vue-IIIZMHTg.es.js";
4
4
  var __defProp$2 = Object.defineProperty;
5
5
  var __typeError$2 = (msg2) => {
6
6
  throw TypeError(msg2);
@@ -23290,7 +23290,7 @@ const _SuperConverter = class _SuperConverter2 {
23290
23290
  return;
23291
23291
  }
23292
23292
  }
23293
- static updateDocumentVersion(docx = this.convertedXml, version2 = "0.12.30") {
23293
+ static updateDocumentVersion(docx = this.convertedXml, version2 = "0.12.31-next.2") {
23294
23294
  const customLocation = "docProps/custom.xml";
23295
23295
  if (!docx[customLocation]) {
23296
23296
  docx[customLocation] = generateCustomXml();
@@ -23756,7 +23756,7 @@ function storeSuperdocVersion(docx) {
23756
23756
  function generateCustomXml() {
23757
23757
  return DEFAULT_CUSTOM_XML;
23758
23758
  }
23759
- function generateSuperdocVersion(pid = 2, version2 = "0.12.30") {
23759
+ function generateSuperdocVersion(pid = 2, version2 = "0.12.31-next.2") {
23760
23760
  return {
23761
23761
  type: "element",
23762
23762
  name: "property",
@@ -39101,6 +39101,9 @@ const createHeaderFooterEditor = ({
39101
39101
  pm.style.minHeight = "100%";
39102
39102
  pm.style.outline = "none";
39103
39103
  pm.style.border = "none";
39104
+ pm.setAttribute("role", "textbox");
39105
+ pm.setAttribute("aria-multiline", true);
39106
+ pm.setAttribute("aria-label", `${type2} content area. Double click to start typing.`);
39104
39107
  return headerFooterEditor;
39105
39108
  };
39106
39109
  const broadcastEditorEvents = (editor, sectionEditor) => {
@@ -39122,13 +39125,16 @@ const broadcastEditorEvents = (editor, sectionEditor) => {
39122
39125
  const toggleHeaderFooterEditMode = (editor, focusedSectionEditor, isEditMode) => {
39123
39126
  editor.converter.headerEditors.forEach((item) => {
39124
39127
  item.editor.setEditable(isEditMode, false);
39128
+ item.editor.view.dom.setAttribute("aria-readonly", !isEditMode);
39125
39129
  });
39126
39130
  editor.converter.footerEditors.forEach((item) => {
39127
39131
  item.editor.setEditable(isEditMode, false);
39132
+ item.editor.view.dom.setAttribute("aria-readonly", !isEditMode);
39128
39133
  });
39129
39134
  if (isEditMode) {
39130
39135
  const pm = document.querySelector(".ProseMirror");
39131
39136
  pm.classList.add("header-footer-edit");
39137
+ pm.setAttribute("aria-readonly", true);
39132
39138
  }
39133
39139
  if (focusedSectionEditor) {
39134
39140
  focusedSectionEditor.view.focus();
@@ -40047,11 +40053,12 @@ const generateTableIfNecessary = ({ tableNode, annotationValues, tr, state: stat
40047
40053
  const getAnnotationValue = (id, annotationValues) => {
40048
40054
  return annotationValues.find((value) => value.input_id === id)?.input_value || null;
40049
40055
  };
40050
- const annotateHeadersAndFooters = ({ editor, annotationValues = [], hiddenFieldIds = [] }) => {
40056
+ const getAllHeaderFooterEditors = (editor) => {
40051
40057
  const sections = {
40052
40058
  header: editor.converter.headers || {},
40053
40059
  footer: editor.converter.footers || {}
40054
40060
  };
40061
+ const allEditors = [];
40055
40062
  Object.entries(sections).forEach(([type2, items]) => {
40056
40063
  const editorsKey = `${type2}Editors`;
40057
40064
  Object.entries(items).forEach(([sectionId, data]) => {
@@ -40069,25 +40076,38 @@ const annotateHeadersAndFooters = ({ editor, annotationValues = [], hiddenFieldI
40069
40076
  })
40070
40077
  };
40071
40078
  editor.converter[editorsKey].push(sectionEditor);
40079
+ allEditors.push({
40080
+ ...sectionEditor,
40081
+ key: editorsKey,
40082
+ type: type2,
40083
+ sectionId
40084
+ });
40072
40085
  }
40073
- sectionEditor.editor.annotate(annotationValues, hiddenFieldIds);
40074
- onHeaderFooterDataUpdate(
40075
- { editor: sectionEditor.editor },
40076
- editor,
40077
- sectionId,
40078
- type2
40079
- );
40080
40086
  });
40081
40087
  });
40088
+ return allEditors;
40089
+ };
40090
+ const annotateHeadersAndFooters = ({ editor, annotationValues = [], hiddenFieldIds = [], removeEmptyFields = false }) => {
40091
+ const allEditors = getAllHeaderFooterEditors(editor);
40092
+ allEditors.forEach(({ sectionId, editor: sectionEditor, type: type2 }) => {
40093
+ sectionEditor.annotate(annotationValues, hiddenFieldIds, removeEmptyFields);
40094
+ onHeaderFooterDataUpdate(
40095
+ { editor: sectionEditor },
40096
+ editor,
40097
+ sectionId,
40098
+ type2
40099
+ );
40100
+ });
40082
40101
  };
40083
40102
  const annotateDocument = ({
40084
40103
  annotationValues = [],
40085
40104
  hiddenFieldIds = [],
40105
+ removeEmptyFields = false,
40086
40106
  schema,
40087
40107
  tr,
40088
40108
  editor
40089
40109
  }) => {
40090
- annotateHeadersAndFooters({ editor, annotationValues, hiddenFieldIds });
40110
+ annotateHeadersAndFooters({ editor, annotationValues, hiddenFieldIds, removeEmptyFields });
40091
40111
  const annotations = [];
40092
40112
  const FieldType = schema.nodes.fieldAnnotation;
40093
40113
  tr.doc.descendants((node2, pos) => {
@@ -40140,11 +40160,13 @@ const annotateDocument = ({
40140
40160
  });
40141
40161
  }
40142
40162
  }
40143
- Array.from(toDelete).sort((a, b) => b - a).forEach((pos) => {
40144
- const ann = annotations.find((a) => a.pos === pos);
40145
- if (!ann) return;
40146
- tr = tr.delete(pos, pos + ann.node.nodeSize);
40147
- });
40163
+ if (removeEmptyFields) {
40164
+ Array.from(toDelete).sort((a, b) => b - a).forEach((pos) => {
40165
+ const ann = annotations.find((a) => a.pos === pos);
40166
+ if (!ann) return;
40167
+ tr = tr.delete(pos, pos + ann.node.nodeSize);
40168
+ });
40169
+ }
40148
40170
  return tr;
40149
40171
  };
40150
40172
  const getFormattedDate = (input = null, format = "") => {
@@ -40162,7 +40184,7 @@ const getFormattedDate = (input = null, format = "") => {
40162
40184
  // e.g. “2025”
40163
40185
  });
40164
40186
  };
40165
- const AnnotatorServices = {
40187
+ const AnnotatorHelpers = {
40166
40188
  getFieldAttrs,
40167
40189
  processTables,
40168
40190
  annotateDocument,
@@ -40316,6 +40338,16 @@ const generateCollaborationData = (editor) => {
40316
40338
  initializeMetaMap(ydoc, editor);
40317
40339
  return encodeStateAsUpdate(ydoc);
40318
40340
  };
40341
+ const isHighContrastMode = ref$1(false);
40342
+ function useHighContrastMode() {
40343
+ const setHighContrastMode = (value) => {
40344
+ isHighContrastMode.value = value;
40345
+ };
40346
+ return {
40347
+ isHighContrastMode,
40348
+ setHighContrastMode
40349
+ };
40350
+ }
40319
40351
  const _Editor = class _Editor2 extends EventEmitter$1 {
40320
40352
  /**
40321
40353
  * Create a new Editor instance
@@ -40408,6 +40440,8 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
40408
40440
  }
40409
40441
  };
40410
40442
  let initMode = modes[this.options.mode] ?? modes.default;
40443
+ const { setHighContrastMode } = useHighContrastMode();
40444
+ this.setHighContrastMode = setHighContrastMode;
40411
40445
  initMode();
40412
40446
  }
40413
40447
  /**
@@ -40704,6 +40738,10 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
40704
40738
  if (!proseMirror || !pageSize || !pageMargins) {
40705
40739
  return;
40706
40740
  }
40741
+ proseMirror.setAttribute("role", "document");
40742
+ proseMirror.setAttribute("aria-multiline", true);
40743
+ proseMirror.setAttribute("aria-label", "Main content area, start typing to enter text.");
40744
+ proseMirror.setAttribute("aria-description", "");
40707
40745
  element.style.width = pageSize.width + "in";
40708
40746
  element.style.minWidth = pageSize.width + "in";
40709
40747
  element.style.minHeight = pageSize.height + "in";
@@ -40955,7 +40993,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
40955
40993
  * @returns {Object | void} Migration results
40956
40994
  */
40957
40995
  processCollaborationMigrations() {
40958
- console.debug("[checkVersionMigrations] Current editor version", "0.12.30");
40996
+ console.debug("[checkVersionMigrations] Current editor version", "0.12.31-next.2");
40959
40997
  if (!this.options.ydoc) return;
40960
40998
  const metaMap = this.options.ydoc.getMap("meta");
40961
40999
  let docVersion = metaMap.get("version");
@@ -41044,10 +41082,8 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
41044
41082
  */
41045
41083
  prepareForAnnotations(annotationValues = []) {
41046
41084
  const { tr } = this.state;
41047
- const { dispatch } = this.view;
41048
- const newTr = AnnotatorServices.processTables({ state: this.state, tr, annotationValues });
41085
+ const newTr = AnnotatorHelpers.processTables({ state: this.state, tr, annotationValues });
41049
41086
  this.view.dispatch(newTr);
41050
- AnnotatorServices.annotateHeadersAndFooters({ editor: this, annotationValues });
41051
41087
  }
41052
41088
  /**
41053
41089
  * Annotate the document with the given annotation values.
@@ -41056,15 +41092,16 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
41056
41092
  * @param {String[]} hiddenIds List of field ids to remove from the document.
41057
41093
  * @returns {void}
41058
41094
  */
41059
- annotate(annotationValues = [], hiddenIds = []) {
41095
+ annotate(annotationValues = [], hiddenIds = [], removeEmptyFields = false) {
41060
41096
  const { state: state2, view, schema } = this;
41061
41097
  let tr = state2.tr;
41062
- tr = AnnotatorServices.processTables({ state: this.state, tr, annotationValues });
41063
- tr = AnnotatorServices.annotateDocument({
41098
+ tr = AnnotatorHelpers.processTables({ state: this.state, tr, annotationValues });
41099
+ tr = AnnotatorHelpers.annotateDocument({
41064
41100
  tr,
41065
41101
  schema,
41066
41102
  annotationValues,
41067
41103
  hiddenFieldIds: hiddenIds,
41104
+ removeEmptyFields,
41068
41105
  editor: this
41069
41106
  });
41070
41107
  if (tr.docChanged) view.dispatch(tr.scrollIntoView());
@@ -41319,6 +41356,7 @@ createView_fn = function() {
41319
41356
  toggleHeaderFooterEditMode(this, null, false);
41320
41357
  const pm = document.querySelector(".ProseMirror");
41321
41358
  pm.classList.remove("header-footer-edit");
41359
+ pm.setAttribute("aria-readonly", false);
41322
41360
  }
41323
41361
  }
41324
41362
  });
@@ -42291,7 +42329,8 @@ const AiLoaderNode = Node$1.create({
42291
42329
  return {
42292
42330
  htmlAttributes: {
42293
42331
  class: "sd-ai-loader",
42294
- contentEditable: "false"
42332
+ contentEditable: "false",
42333
+ "aria-label": "AI loader node"
42295
42334
  }
42296
42335
  };
42297
42336
  },
@@ -42487,7 +42526,8 @@ const Document = Node$1.create({
42487
42526
  addAttributes() {
42488
42527
  return {
42489
42528
  attributes: {
42490
- rendered: false
42529
+ rendered: false,
42530
+ "aria-label": "Document node"
42491
42531
  }
42492
42532
  };
42493
42533
  }
@@ -42511,7 +42551,8 @@ const RunItem = Node$1.create({
42511
42551
  addAttributes() {
42512
42552
  return {
42513
42553
  attributes: {
42514
- rendered: false
42554
+ rendered: false,
42555
+ "aria-label": "Run node"
42515
42556
  }
42516
42557
  };
42517
42558
  }
@@ -42564,7 +42605,9 @@ const BulletList = Node$1.create({
42564
42605
  addOptions() {
42565
42606
  return {
42566
42607
  itemTypeName: "listItem",
42567
- htmlAttributes: {},
42608
+ htmlAttributes: {
42609
+ "aria-label": "Bullet list node"
42610
+ },
42568
42611
  keepMarks: true,
42569
42612
  keepAttributes: false
42570
42613
  };
@@ -42855,7 +42898,9 @@ const OrderedList = Node$1.create({
42855
42898
  addOptions() {
42856
42899
  return {
42857
42900
  itemTypeName: "listItem",
42858
- htmlAttributes: {},
42901
+ htmlAttributes: {
42902
+ "aria-label": "Ordered list node"
42903
+ },
42859
42904
  keepMarks: true,
42860
42905
  keepAttributes: false,
42861
42906
  listStyleTypes: ["decimal", "lowerAlpha", "lowerRoman"]
@@ -43255,7 +43300,9 @@ const ListItem = Node$1.create({
43255
43300
  // to run listItem commands first
43256
43301
  addOptions() {
43257
43302
  return {
43258
- htmlAttributes: {},
43303
+ htmlAttributes: {
43304
+ "aria-label": "List item node"
43305
+ },
43259
43306
  bulletListTypeName: "bulletList",
43260
43307
  orderedListTypeName: "orderedList"
43261
43308
  };
@@ -43777,7 +43824,9 @@ const Heading = Node$1.create({
43777
43824
  addOptions() {
43778
43825
  return {
43779
43826
  levels: [1, 2, 3, 4, 5, 6],
43780
- htmlAttributes: {}
43827
+ htmlAttributes: {
43828
+ "aria-label": "Heading node"
43829
+ }
43781
43830
  };
43782
43831
  },
43783
43832
  addAttributes() {
@@ -43838,7 +43887,8 @@ const CommentRangeStart = Node$1.create({
43838
43887
  addOptions() {
43839
43888
  return {
43840
43889
  htmlAttributes: {
43841
- contentEditable: "false"
43890
+ contentEditable: "false",
43891
+ "aria-label": "Comment range start node"
43842
43892
  }
43843
43893
  };
43844
43894
  },
@@ -43867,7 +43917,8 @@ const CommentRangeEnd = Node$1.create({
43867
43917
  addOptions() {
43868
43918
  return {
43869
43919
  htmlAttributes: {
43870
- contentEditable: "false"
43920
+ contentEditable: "false",
43921
+ "aria-label": "Comment range end node"
43871
43922
  }
43872
43923
  };
43873
43924
  },
@@ -43895,7 +43946,8 @@ const CommentReference = Node$1.create({
43895
43946
  addOptions() {
43896
43947
  return {
43897
43948
  htmlAttributes: {
43898
- contentEditable: "false"
43949
+ contentEditable: "false",
43950
+ "aria-label": "Comment reference node"
43899
43951
  }
43900
43952
  };
43901
43953
  },
@@ -44070,7 +44122,9 @@ const HardBreak = Node$1.create({
44070
44122
  return {
44071
44123
  htmlAttributes: {
44072
44124
  contentEditable: "false",
44073
- lineBreakType: "page"
44125
+ lineBreakType: "page",
44126
+ "aria-hidden": "true",
44127
+ "aria-label": "Hard break node"
44074
44128
  }
44075
44129
  };
44076
44130
  },
@@ -46428,7 +46482,9 @@ const Table = Node$1.create({
46428
46482
  tableRole: "table",
46429
46483
  addOptions() {
46430
46484
  return {
46431
- htmlAttributes: {},
46485
+ htmlAttributes: {
46486
+ "aria-label": "Table node"
46487
+ },
46432
46488
  resizable: true,
46433
46489
  handleWidth: 5,
46434
46490
  cellMinWidth: 25,
@@ -46678,7 +46734,9 @@ const TableHeader = Node$1.create({
46678
46734
  isolating: true,
46679
46735
  addOptions() {
46680
46736
  return {
46681
- htmlAttributes: {}
46737
+ htmlAttributes: {
46738
+ "aria-label": "Table head node"
46739
+ }
46682
46740
  };
46683
46741
  },
46684
46742
  addAttributes() {
@@ -46718,7 +46776,9 @@ const TableRow = Node$1.create({
46718
46776
  tableRole: "row",
46719
46777
  addOptions() {
46720
46778
  return {
46721
- htmlAttributes: {}
46779
+ htmlAttributes: {
46780
+ "aria-label": "Table row node"
46781
+ }
46722
46782
  };
46723
46783
  },
46724
46784
  addAttributes() {
@@ -46746,7 +46806,9 @@ const TableCell = Node$1.create({
46746
46806
  isolating: true,
46747
46807
  addOptions() {
46748
46808
  return {
46749
- htmlAttributes: {}
46809
+ htmlAttributes: {
46810
+ "aria-label": "Table cell node"
46811
+ }
46750
46812
  };
46751
46813
  },
46752
46814
  addAttributes() {
@@ -47288,6 +47350,15 @@ function findFieldAnnotationsBetween(from2, to, doc2) {
47288
47350
  });
47289
47351
  return fieldAnnotations;
47290
47352
  }
47353
+ const getHeaderFooterAnnotations = (editor) => {
47354
+ const editors = getAllHeaderFooterEditors(editor);
47355
+ const allAnnotations = [];
47356
+ editors.forEach(({ id, editor: editor2 }) => {
47357
+ const annotations = getAllFieldAnnotations(editor2.state);
47358
+ allAnnotations.push(...annotations);
47359
+ });
47360
+ return allAnnotations;
47361
+ };
47291
47362
  const index$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
47292
47363
  __proto__: null,
47293
47364
  findFieldAnnotations,
@@ -47297,6 +47368,7 @@ const index$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
47297
47368
  findRemovedFieldAnnotations,
47298
47369
  getAllFieldAnnotations,
47299
47370
  getAllFieldAnnotationsWithRect,
47371
+ getHeaderFooterAnnotations,
47300
47372
  trackFieldAnnotationsDeletion
47301
47373
  }, Symbol.toStringTag, { value: "Module" }));
47302
47374
  function guard(low, high, value) {
@@ -47427,7 +47499,8 @@ const FieldAnnotation = Node$1.create({
47427
47499
  addOptions() {
47428
47500
  return {
47429
47501
  htmlAttributes: {
47430
- class: annotationClass
47502
+ class: annotationClass,
47503
+ "aria-label": "Field annotation node"
47431
47504
  },
47432
47505
  annotationClass,
47433
47506
  annotationContentClass,
@@ -48369,7 +48442,8 @@ const Image = Node$1.create({
48369
48442
  return {
48370
48443
  allowBase64: true,
48371
48444
  htmlAttributes: {
48372
- style: "display: inline-block;"
48445
+ style: "display: inline-block;",
48446
+ "aria-label": "Image node"
48373
48447
  }
48374
48448
  };
48375
48449
  },
@@ -48485,7 +48559,11 @@ const BookmarkStart = Node$1.create({
48485
48559
  inline: true,
48486
48560
  addOptions() {
48487
48561
  return {
48488
- htmlAttributes: { style: "height: 0; width: 0;" }
48562
+ htmlAttributes: {
48563
+ style: "height: 0; width: 0;",
48564
+ "aria-label": "Bookmark start node",
48565
+ role: "link"
48566
+ }
48489
48567
  };
48490
48568
  },
48491
48569
  addAttributes() {
@@ -48519,7 +48597,8 @@ const Mention = Node$1.create({
48519
48597
  addOptions() {
48520
48598
  return {
48521
48599
  htmlAttributes: {
48522
- class: "sd-editor-mention"
48600
+ class: "sd-editor-mention",
48601
+ "aria-label": "Mention node"
48523
48602
  }
48524
48603
  };
48525
48604
  },
@@ -48557,7 +48636,8 @@ const PageNumber = Node$1.create({
48557
48636
  addOptions() {
48558
48637
  return {
48559
48638
  htmlAttributes: {
48560
- "data-id": "auto-page-number"
48639
+ "data-id": "auto-page-number",
48640
+ "aria-label": "Page number node"
48561
48641
  }
48562
48642
  };
48563
48643
  },
@@ -48576,7 +48656,8 @@ const TotalPageCount = Node$1.create({
48576
48656
  addOptions() {
48577
48657
  return {
48578
48658
  htmlAttributes: {
48579
- "data-id": "auto-total-pages"
48659
+ "data-id": "auto-total-pages",
48660
+ "aria-label": "Total page count node"
48580
48661
  }
48581
48662
  };
48582
48663
  },
@@ -48595,7 +48676,8 @@ const ShapeContainer = Node$1.create({
48595
48676
  addOptions() {
48596
48677
  return {
48597
48678
  htmlAttributes: {
48598
- class: "sd-editor-shape-container"
48679
+ class: "sd-editor-shape-container",
48680
+ "aria-label": "Shape container node"
48599
48681
  }
48600
48682
  };
48601
48683
  },
@@ -48648,7 +48730,8 @@ const ShapeTextbox = Node$1.create({
48648
48730
  addOptions() {
48649
48731
  return {
48650
48732
  htmlAttributes: {
48651
- class: "sd-editor-shape-textbox"
48733
+ class: "sd-editor-shape-textbox",
48734
+ "aria-label": "Shape textbox node"
48652
48735
  }
48653
48736
  };
48654
48737
  },
@@ -48740,7 +48823,9 @@ const StructuredContent = Node$1.create({
48740
48823
  addOptions() {
48741
48824
  return {
48742
48825
  annotationClass: "sd-structured-content-tag",
48743
- htmlAttributes: {}
48826
+ htmlAttributes: {
48827
+ "aria-label": "Structured content node"
48828
+ }
48744
48829
  };
48745
48830
  },
48746
48831
  parseDOM() {
@@ -52200,9 +52285,9 @@ const _export_sfc = (sfc, props) => {
52200
52285
  };
52201
52286
  const _hoisted_1$e = ["onClick", "onMouseenter"];
52202
52287
  const _hoisted_2$c = { key: 0 };
52203
- const _hoisted_3$b = { key: 0 };
52288
+ const _hoisted_3$a = { key: 0 };
52204
52289
  const _hoisted_4$6 = { key: 1 };
52205
- const _hoisted_5$6 = { key: 1 };
52290
+ const _hoisted_5$5 = { key: 1 };
52206
52291
  const _sfc_main$f = {
52207
52292
  __name: "Mentions",
52208
52293
  props: {
@@ -52275,9 +52360,9 @@ const _sfc_main$f = {
52275
52360
  class: normalizeClass(["user-row", { selected: activeUserIndex.value === index2 }])
52276
52361
  }, [
52277
52362
  user.name ? (openBlock(), createElementBlock("div", _hoisted_2$c, [
52278
- user.name ? (openBlock(), createElementBlock("span", _hoisted_3$b, toDisplayString(user.name), 1)) : createCommentVNode("", true),
52363
+ user.name ? (openBlock(), createElementBlock("span", _hoisted_3$a, toDisplayString(user.name), 1)) : createCommentVNode("", true),
52279
52364
  user.name && user.email ? (openBlock(), createElementBlock("span", _hoisted_4$6, " (" + toDisplayString(user.email) + ")", 1)) : createCommentVNode("", true)
52280
- ])) : (openBlock(), createElementBlock("div", _hoisted_5$6, [
52365
+ ])) : (openBlock(), createElementBlock("div", _hoisted_5$5, [
52281
52366
  createBaseVNode("span", null, toDisplayString(user.email), 1)
52282
52367
  ]))
52283
52368
  ], 42, _hoisted_1$e);
@@ -53588,15 +53673,16 @@ const _sfc_main$5$1 = {
53588
53673
  }
53589
53674
  };
53590
53675
  const ToolbarButtonIcon = /* @__PURE__ */ _export_sfc(_sfc_main$5$1, [["__scopeId", "data-v-6d7523ab"]]);
53591
- const _hoisted_1$3$1 = ["data-item"];
53592
- const _hoisted_2$2$1 = {
53676
+ const _hoisted_1$3$1 = ["role"];
53677
+ const _hoisted_2$2$1 = ["data-item", "aria-label"];
53678
+ const _hoisted_3$2$1 = {
53593
53679
  key: 1,
53594
53680
  class: "button-label"
53595
53681
  };
53596
- const _hoisted_3$2$1 = { key: 2 };
53597
- const _hoisted_4$5 = ["placeholder", "onKeydown", "id"];
53598
- const _hoisted_5$5 = ["placeholder", "onKeydown", "id"];
53599
- const _hoisted_6$2 = ["innerHTML"];
53682
+ const _hoisted_4$5 = { key: 2 };
53683
+ const _hoisted_5$4 = ["placeholder", "onKeydown", "id"];
53684
+ const _hoisted_6$2 = ["placeholder", "onKeydown", "id"];
53685
+ const _hoisted_7$1 = ["innerHTML"];
53600
53686
  const _sfc_main$4$1 = {
53601
53687
  __name: "ToolbarButton",
53602
53688
  props: {
@@ -53623,6 +53709,10 @@ const _sfc_main$4$1 = {
53623
53709
  defaultLabel: {
53624
53710
  type: String,
53625
53711
  default: null
53712
+ },
53713
+ isOverflowItem: {
53714
+ type: Boolean,
53715
+ default: false
53626
53716
  }
53627
53717
  },
53628
53718
  emits: ["buttonClick", "textSubmit"],
@@ -53646,6 +53736,7 @@ const _sfc_main$4$1 = {
53646
53736
  } = props.toolbarItem;
53647
53737
  const inlineTextInput = ref$1(props.defaultLabel);
53648
53738
  const inlineInput = ref$1(null);
53739
+ const { isHighContrastMode: isHighContrastMode2 } = useHighContrastMode();
53649
53740
  const handleClick2 = () => {
53650
53741
  if (hasInlineTextInput) {
53651
53742
  inlineInput.value?.focus();
@@ -53673,12 +53764,15 @@ const _sfc_main$4$1 = {
53673
53764
  return (_ctx, _cache) => {
53674
53765
  return openBlock(), createElementBlock("div", {
53675
53766
  class: normalizeClass(["toolbar-item", unref(attributes).className]),
53676
- style: normalizeStyle(getStyle.value)
53767
+ style: normalizeStyle(getStyle.value),
53768
+ role: __props.isOverflowItem ? "menuitem" : ""
53677
53769
  }, [
53678
53770
  createBaseVNode("div", {
53679
53771
  onClick: handleClick2,
53680
- class: normalizeClass(["toolbar-button", { active: unref(active), disabled: unref(disabled), narrow: __props.isNarrow, wide: __props.isWide, "has-inline-text-input": unref(hasInlineTextInput) }]),
53681
- "data-item": `btn-${unref(name) || ""}`
53772
+ 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) }]),
53773
+ "data-item": `btn-${unref(name) || ""}`,
53774
+ "aria-label": unref(attributes).ariaLabel,
53775
+ role: "button"
53682
53776
  }, [
53683
53777
  unref(icon) ? (openBlock(), createBlock(ToolbarButtonIcon, {
53684
53778
  key: 0,
@@ -53687,8 +53781,8 @@ const _sfc_main$4$1 = {
53687
53781
  icon: unref(icon),
53688
53782
  name: unref(name)
53689
53783
  }, null, 8, ["color", "icon", "name"])) : createCommentVNode("", true),
53690
- unref(label) && !unref(hideLabel) && !unref(inlineTextInputVisible) ? (openBlock(), createElementBlock("div", _hoisted_2$2$1, toDisplayString(unref(label)), 1)) : createCommentVNode("", true),
53691
- unref(inlineTextInputVisible) ? (openBlock(), createElementBlock("span", _hoisted_3$2$1, [
53784
+ unref(label) && !unref(hideLabel) && !unref(inlineTextInputVisible) ? (openBlock(), createElementBlock("div", _hoisted_3$2$1, toDisplayString(unref(label)), 1)) : createCommentVNode("", true),
53785
+ unref(inlineTextInputVisible) ? (openBlock(), createElementBlock("span", _hoisted_4$5, [
53692
53786
  unref(name) === "fontSize" ? withDirectives((openBlock(), createElementBlock("input", {
53693
53787
  key: 0,
53694
53788
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => inlineTextInput.value = $event),
@@ -53696,12 +53790,12 @@ const _sfc_main$4$1 = {
53696
53790
  placeholder: unref(label),
53697
53791
  onKeydown: withKeys(withModifiers(handleInputSubmit, ["prevent"]), ["enter"]),
53698
53792
  type: "text",
53699
- class: "button-text-input",
53793
+ class: normalizeClass(["button-text-input", { "high-contrast": unref(isHighContrastMode2) }]),
53700
53794
  id: "inlineTextInput-" + unref(name),
53701
53795
  autoccomplete: "off",
53702
53796
  ref_key: "inlineInput",
53703
53797
  ref: inlineInput
53704
- }, null, 40, _hoisted_4$5)), [
53798
+ }, null, 42, _hoisted_5$4)), [
53705
53799
  [vModelText, inlineTextInput.value]
53706
53800
  ]) : withDirectives((openBlock(), createElementBlock("input", {
53707
53801
  key: 1,
@@ -53714,7 +53808,7 @@ const _sfc_main$4$1 = {
53714
53808
  autoccomplete: "off",
53715
53809
  ref_key: "inlineInput",
53716
53810
  ref: inlineInput
53717
- }, null, 40, _hoisted_5$5)), [
53811
+ }, null, 40, _hoisted_6$2)), [
53718
53812
  [vModelText, inlineTextInput.value]
53719
53813
  ])
53720
53814
  ])) : createCommentVNode("", true),
@@ -53723,14 +53817,18 @@ const _sfc_main$4$1 = {
53723
53817
  class: "dropdown-caret",
53724
53818
  innerHTML: caretIcon.value,
53725
53819
  style: normalizeStyle({ opacity: unref(disabled) ? 0.6 : 1 })
53726
- }, null, 12, _hoisted_6$2)) : createCommentVNode("", true)
53727
- ], 10, _hoisted_1$3$1)
53728
- ], 6);
53820
+ }, null, 12, _hoisted_7$1)) : createCommentVNode("", true)
53821
+ ], 10, _hoisted_2$2$1)
53822
+ ], 14, _hoisted_1$3$1);
53729
53823
  };
53730
53824
  }
53731
53825
  };
53732
- const ToolbarButton = /* @__PURE__ */ _export_sfc(_sfc_main$4$1, [["__scopeId", "data-v-62bb3747"]]);
53733
- const _hoisted_1$2$1 = { class: "toolbar-separator" };
53826
+ const ToolbarButton = /* @__PURE__ */ _export_sfc(_sfc_main$4$1, [["__scopeId", "data-v-6eb57404"]]);
53827
+ const _hoisted_1$2$1 = {
53828
+ class: "toolbar-separator",
53829
+ role: "separator",
53830
+ "aria-label": "Toolbar separator"
53831
+ };
53734
53832
  const _sfc_main$3$1 = {
53735
53833
  __name: "ToolbarSeparator",
53736
53834
  props: {
@@ -53741,19 +53839,30 @@ const _sfc_main$3$1 = {
53741
53839
  },
53742
53840
  emits: ["command"],
53743
53841
  setup(__props, { emit: __emit }) {
53842
+ const { isHighContrastMode: isHighContrastMode2 } = useHighContrastMode();
53843
+ const getSeparatorColor = () => {
53844
+ if (isHighContrastMode2.value) {
53845
+ return "#000";
53846
+ }
53847
+ return "#dbdbdb";
53848
+ };
53744
53849
  return (_ctx, _cache) => {
53745
- return openBlock(), createElementBlock("div", _hoisted_1$2$1, _cache[0] || (_cache[0] = [
53746
- createBaseVNode("div", { class: "separator-inner" }, null, -1)
53747
- ]));
53850
+ return openBlock(), createElementBlock("div", _hoisted_1$2$1, [
53851
+ createBaseVNode("div", {
53852
+ class: "separator-inner",
53853
+ style: normalizeStyle({ backgroundColor: getSeparatorColor() })
53854
+ }, null, 4)
53855
+ ]);
53748
53856
  };
53749
53857
  }
53750
53858
  };
53751
- const ToolbarSeparator = /* @__PURE__ */ _export_sfc(_sfc_main$3$1, [["__scopeId", "data-v-ac2ee4f9"]]);
53859
+ const ToolbarSeparator = /* @__PURE__ */ _export_sfc(_sfc_main$3$1, [["__scopeId", "data-v-b240fc3a"]]);
53752
53860
  const _hoisted_1$1$1 = { class: "overflow-menu" };
53753
53861
  const _hoisted_2$1$1 = { class: "overflow-menu-trigger" };
53754
53862
  const _hoisted_3$1$1 = {
53755
53863
  key: 0,
53756
- class: "overflow-menu_items"
53864
+ class: "overflow-menu_items",
53865
+ role: "group"
53757
53866
  };
53758
53867
  const _sfc_main$2$1 = {
53759
53868
  __name: "OverflowMenu",
@@ -53791,16 +53900,17 @@ const _sfc_main$2$1 = {
53791
53900
  ]),
53792
53901
  isDropdownOpened.value ? (openBlock(), createElementBlock("div", _hoisted_3$1$1, [
53793
53902
  createVNode(ButtonGroup, {
53903
+ class: "superdoc-toolbar-overflow",
53794
53904
  "toolbar-items": __props.overflowItems,
53795
- onCommand: handleCommand,
53796
- class: "superdoc-toolbar-overflow"
53905
+ "from-overflow": "",
53906
+ onCommand: handleCommand
53797
53907
  }, null, 8, ["toolbar-items"])
53798
53908
  ])) : createCommentVNode("", true)
53799
53909
  ]);
53800
53910
  };
53801
53911
  }
53802
53912
  };
53803
- const OverflowMenu = /* @__PURE__ */ _export_sfc(_sfc_main$2$1, [["__scopeId", "data-v-ca29bf1d"]]);
53913
+ const OverflowMenu = /* @__PURE__ */ _export_sfc(_sfc_main$2$1, [["__scopeId", "data-v-c637209b"]]);
53804
53914
  function plugin$1(options2) {
53805
53915
  let _bPrefix = ".";
53806
53916
  let _ePrefix = "__";
@@ -63133,7 +63243,7 @@ const NSkeleton = defineComponent({
63133
63243
  });
63134
63244
  const _hoisted_1$d = { key: 0 };
63135
63245
  const _hoisted_2$b = { key: 0 };
63136
- const _hoisted_3$a = { key: 0 };
63246
+ const _hoisted_3$9 = { key: 0 };
63137
63247
  const _sfc_main$1$1 = {
63138
63248
  __name: "ButtonGroup",
63139
63249
  props: {
@@ -63148,6 +63258,10 @@ const _sfc_main$1$1 = {
63148
63258
  position: {
63149
63259
  type: String,
63150
63260
  default: "left"
63261
+ },
63262
+ fromOverflow: {
63263
+ type: Boolean,
63264
+ default: false
63151
63265
  }
63152
63266
  },
63153
63267
  emits: ["command"],
@@ -63155,6 +63269,7 @@ const _sfc_main$1$1 = {
63155
63269
  const emit = __emit;
63156
63270
  const props = __props;
63157
63271
  const currentItem = ref$1(null);
63272
+ const { isHighContrastMode: isHighContrastMode2 } = useHighContrastMode();
63158
63273
  const isMobile = window.matchMedia("(max-width: 768px)").matches;
63159
63274
  const styleMap = {
63160
63275
  left: {
@@ -63213,13 +63328,20 @@ const _sfc_main$1$1 = {
63213
63328
  };
63214
63329
  });
63215
63330
  };
63331
+ const getDropdownAttributes = (option, item) => {
63332
+ return {
63333
+ role: "menuitem",
63334
+ ariaLabel: `${item.attributes.value.ariaLabel} - ${option.label}`
63335
+ };
63336
+ };
63216
63337
  const handleClickOutside = (e) => {
63217
63338
  closeDropdowns();
63218
63339
  };
63219
63340
  return (_ctx, _cache) => {
63220
63341
  return openBlock(), createElementBlock("div", {
63221
63342
  style: normalizeStyle(getPositionStyle.value),
63222
- class: "button-group"
63343
+ class: "button-group",
63344
+ role: "group"
63223
63345
  }, [
63224
63346
  (openBlock(true), createElementBlock(Fragment$1, null, renderList(__props.toolbarItems, (item) => {
63225
63347
  return openBlock(), createElementBlock("div", {
@@ -63240,10 +63362,14 @@ const _sfc_main$1$1 = {
63240
63362
  show: item.expand.value,
63241
63363
  size: "medium",
63242
63364
  placement: "bottom-start",
63243
- class: "toolbar-button toolbar-dropdown sd-editor-toolbar-dropdown",
63365
+ class: normalizeClass(["toolbar-button toolbar-dropdown sd-editor-toolbar-dropdown", { "high-contrast": unref(isHighContrastMode2) }]),
63244
63366
  onSelect: (key, option) => handleSelect(item, option),
63245
63367
  onClickoutside: handleClickOutside,
63246
- style: normalizeStyle(item.dropdownStyles.value)
63368
+ style: normalizeStyle(item.dropdownStyles.value),
63369
+ "menu-props": () => ({
63370
+ role: "menu"
63371
+ }),
63372
+ "node-props": (option) => getDropdownAttributes(option, item)
63247
63373
  }, {
63248
63374
  default: withCtx(() => [
63249
63375
  createVNode(unref(NTooltip), {
@@ -63267,7 +63393,7 @@ const _sfc_main$1$1 = {
63267
63393
  }, 1032, ["disabled"])
63268
63394
  ]),
63269
63395
  _: 2
63270
- }, 1032, ["options", "trigger", "show", "onSelect", "style"])) : isButton(item) ? (openBlock(), createBlock(unref(NTooltip), {
63396
+ }, 1032, ["options", "trigger", "show", "class", "onSelect", "style", "node-props"])) : isButton(item) ? (openBlock(), createBlock(unref(NTooltip), {
63271
63397
  key: 2,
63272
63398
  trigger: "hover",
63273
63399
  class: "sd-editor-toolbar-tooltip"
@@ -63275,14 +63401,15 @@ const _sfc_main$1$1 = {
63275
63401
  trigger: withCtx(() => [
63276
63402
  createVNode(ToolbarButton, {
63277
63403
  "toolbar-item": item,
63404
+ "is-overflow-item": __props.fromOverflow,
63278
63405
  onTextSubmit: ($event) => handleToolbarButtonTextSubmit(item, $event),
63279
63406
  onButtonClick: ($event) => handleToolbarButtonClick(item)
63280
- }, null, 8, ["toolbar-item", "onTextSubmit", "onButtonClick"])
63407
+ }, null, 8, ["toolbar-item", "is-overflow-item", "onTextSubmit", "onButtonClick"])
63281
63408
  ]),
63282
63409
  default: withCtx(() => [
63283
63410
  item.tooltip ? (openBlock(), createElementBlock("div", _hoisted_2$b, [
63284
63411
  createTextVNode(toDisplayString(item.tooltip) + " ", 1),
63285
- item.disabled.value ? (openBlock(), createElementBlock("span", _hoisted_3$a, "(disabled)")) : createCommentVNode("", true)
63412
+ item.disabled.value ? (openBlock(), createElementBlock("span", _hoisted_3$9, "(disabled)")) : createCommentVNode("", true)
63286
63413
  ])) : createCommentVNode("", true)
63287
63414
  ]),
63288
63415
  _: 2
@@ -63298,7 +63425,7 @@ const _sfc_main$1$1 = {
63298
63425
  };
63299
63426
  }
63300
63427
  };
63301
- const ButtonGroup = /* @__PURE__ */ _export_sfc(_sfc_main$1$1, [["__scopeId", "data-v-7751c4e5"]]);
63428
+ const ButtonGroup = /* @__PURE__ */ _export_sfc(_sfc_main$1$1, [["__scopeId", "data-v-b09e5a20"]]);
63302
63429
  const _sfc_main$e = {
63303
63430
  __name: "Toolbar",
63304
63431
  emits: ["command", "toggle", "select"],
@@ -63343,7 +63470,9 @@ const _sfc_main$e = {
63343
63470
  return (_ctx, _cache) => {
63344
63471
  return openBlock(), createElementBlock("div", {
63345
63472
  class: "superdoc-toolbar",
63346
- key: unref(toolbarKey)
63473
+ key: unref(toolbarKey),
63474
+ role: "toolbar",
63475
+ "aria-label": "Toolbar"
63347
63476
  }, [
63348
63477
  unref(showLeftSide) ? (openBlock(), createBlock(ButtonGroup, {
63349
63478
  key: 0,
@@ -63369,7 +63498,7 @@ const _sfc_main$e = {
63369
63498
  };
63370
63499
  }
63371
63500
  };
63372
- const Toolbar = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-abd0fb95"]]);
63501
+ const Toolbar = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-2a400574"]]);
63373
63502
  const DEFAULT_API_ENDPOINT = "https://sd-dev-express-gateway-i6xtm.ondigitalocean.app/insights";
63374
63503
  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: ";
63375
63504
  async function baseInsightsFetch(payload, options2 = {}) {
@@ -63606,9 +63735,9 @@ const edit = '<!-- @note: includes color gradient for inline svg AI Writer -->\n
63606
63735
  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>';
63607
63736
  const _hoisted_1$c = { class: "ai-user-input-field" };
63608
63737
  const _hoisted_2$a = ["innerHTML"];
63609
- const _hoisted_3$9 = ["placeholder"];
63738
+ const _hoisted_3$8 = ["placeholder"];
63610
63739
  const _hoisted_4$4 = { class: "ai-loader" };
63611
- const _hoisted_5$4 = ["innerHTML"];
63740
+ const _hoisted_5$3 = ["innerHTML"];
63612
63741
  const _sfc_main$d = {
63613
63742
  __name: "AIWriter",
63614
63743
  props: {
@@ -63884,7 +64013,7 @@ const _sfc_main$d = {
63884
64013
  onInput: handleInput,
63885
64014
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => promptText.value = $event),
63886
64015
  rows: "4"
63887
- }, null, 40, _hoisted_3$9), [
64016
+ }, null, 40, _hoisted_3$8), [
63888
64017
  [vModelText, promptText.value]
63889
64018
  ])
63890
64019
  ]),
@@ -63894,7 +64023,7 @@ const _sfc_main$d = {
63894
64023
  class: "ai-textarea-icon ai-submit-button",
63895
64024
  onClick: withModifiers(handleSubmit, ["stop"]),
63896
64025
  innerHTML: unref(paperPlane)
63897
- }, null, 8, _hoisted_5$4)) : createCommentVNode("", true)
64026
+ }, null, 8, _hoisted_5$3)) : createCommentVNode("", true)
63898
64027
  ])
63899
64028
  ], 544);
63900
64029
  };
@@ -64229,71 +64358,80 @@ const useToolbarItem = (options2) => {
64229
64358
  onDeactivate
64230
64359
  };
64231
64360
  };
64232
- const _hoisted_1$b = { class: "alignment-buttons" };
64361
+ const _hoisted_1$b = ["innerHTML"];
64233
64362
  const _hoisted_2$9 = ["innerHTML"];
64234
- const _hoisted_3$8 = ["innerHTML"];
64363
+ const _hoisted_3$7 = ["innerHTML"];
64235
64364
  const _hoisted_4$3 = ["innerHTML"];
64236
- const _hoisted_5$3 = ["innerHTML"];
64237
64365
  const _sfc_main$c = {
64238
64366
  __name: "AlignmentButtons",
64239
64367
  emits: ["select"],
64240
64368
  setup(__props, { emit: __emit }) {
64369
+ const { isHighContrastMode: isHighContrastMode2 } = useHighContrastMode();
64241
64370
  const emit = __emit;
64242
64371
  const select = (alignment2) => {
64243
64372
  emit("select", alignment2);
64244
64373
  };
64245
64374
  return (_ctx, _cache) => {
64246
- return openBlock(), createElementBlock("div", _hoisted_1$b, [
64375
+ return openBlock(), createElementBlock("div", {
64376
+ class: normalizeClass(["alignment-buttons", { "high-contrast": unref(isHighContrastMode2) }])
64377
+ }, [
64247
64378
  createBaseVNode("div", {
64248
64379
  class: "button-icon",
64249
64380
  onClick: _cache[0] || (_cache[0] = ($event) => select("left")),
64250
64381
  innerHTML: unref(toolbarIcons).alignLeft,
64251
- "data-item": "btn-textAlign-option"
64252
- }, null, 8, _hoisted_2$9),
64382
+ "data-item": "btn-textAlign-option",
64383
+ role: "menuitem",
64384
+ "aria-label": "Align left"
64385
+ }, null, 8, _hoisted_1$b),
64253
64386
  createBaseVNode("div", {
64254
64387
  class: "button-icon",
64255
64388
  onClick: _cache[1] || (_cache[1] = ($event) => select("center")),
64256
64389
  innerHTML: unref(toolbarIcons).alignCenter,
64257
- "data-item": "btn-textAlign-option"
64258
- }, null, 8, _hoisted_3$8),
64390
+ "data-item": "btn-textAlign-option",
64391
+ role: "menuitem",
64392
+ "aria-label": "Align center"
64393
+ }, null, 8, _hoisted_2$9),
64259
64394
  createBaseVNode("div", {
64260
64395
  class: "button-icon",
64261
64396
  onClick: _cache[2] || (_cache[2] = ($event) => select("right")),
64262
64397
  innerHTML: unref(toolbarIcons).alignRight,
64263
- "data-item": "btn-textAlign-option"
64264
- }, null, 8, _hoisted_4$3),
64398
+ "data-item": "btn-textAlign-option",
64399
+ role: "menuitem",
64400
+ "aria-label": "Align right"
64401
+ }, null, 8, _hoisted_3$7),
64265
64402
  createBaseVNode("div", {
64266
64403
  class: "button-icon",
64267
64404
  onClick: _cache[3] || (_cache[3] = ($event) => select("justify")),
64268
64405
  innerHTML: unref(toolbarIcons).alignJustify,
64269
- "data-item": "btn-textAlign-option"
64270
- }, null, 8, _hoisted_5$3)
64271
- ]);
64406
+ "data-item": "btn-textAlign-option",
64407
+ role: "menuitem",
64408
+ "aria-label": "Justify"
64409
+ }, null, 8, _hoisted_4$3)
64410
+ ], 2);
64272
64411
  };
64273
64412
  }
64274
64413
  };
64275
- const AlignmentButtons = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-932a4937"]]);
64276
- const _hoisted_1$a = { class: "link-input-ctn" };
64277
- const _hoisted_2$8 = {
64414
+ const AlignmentButtons = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-58d8a9bb"]]);
64415
+ const _hoisted_1$a = {
64278
64416
  key: 0,
64279
64417
  class: "link-title"
64280
64418
  };
64281
- const _hoisted_3$7 = {
64419
+ const _hoisted_2$8 = {
64282
64420
  key: 1,
64283
64421
  class: "link-title"
64284
64422
  };
64285
- const _hoisted_4$2 = {
64423
+ const _hoisted_3$6 = {
64286
64424
  key: 2,
64287
64425
  class: "link-title"
64288
64426
  };
64289
- const _hoisted_5$2 = { key: 3 };
64290
- const _hoisted_6$1 = { class: "input-row" };
64291
- const _hoisted_7$1 = ["innerHTML"];
64292
- const _hoisted_8 = ["onKeydown"];
64293
- const _hoisted_9 = ["innerHTML"];
64294
- const _hoisted_10 = { class: "input-row link-buttons" };
64295
- const _hoisted_11 = ["innerHTML"];
64296
- const _hoisted_12 = {
64427
+ const _hoisted_4$2 = { key: 3 };
64428
+ const _hoisted_5$2 = { class: "input-row" };
64429
+ const _hoisted_6$1 = ["innerHTML"];
64430
+ const _hoisted_7 = ["onKeydown"];
64431
+ const _hoisted_8 = ["innerHTML"];
64432
+ const _hoisted_9 = { class: "input-row link-buttons" };
64433
+ const _hoisted_10 = ["innerHTML"];
64434
+ const _hoisted_11 = {
64297
64435
  key: 4,
64298
64436
  class: "input-row go-to-anchor clickable"
64299
64437
  };
@@ -64326,6 +64464,7 @@ const _sfc_main$b = {
64326
64464
  setup(__props, { emit: __emit }) {
64327
64465
  const emit = __emit;
64328
64466
  const props = __props;
64467
+ const { isHighContrastMode: isHighContrastMode2 } = useHighContrastMode();
64329
64468
  const { proxy } = getCurrentInstance();
64330
64469
  const handleSubmit = () => {
64331
64470
  if (proxy?.$submit instanceof Function) proxy.$submit();
@@ -64376,16 +64515,19 @@ const _sfc_main$b = {
64376
64515
  if (props.showInput) focusInput();
64377
64516
  });
64378
64517
  return (_ctx, _cache) => {
64379
- return openBlock(), createElementBlock("div", _hoisted_1$a, [
64380
- !__props.href ? (openBlock(), createElementBlock("div", _hoisted_2$8, "Add link")) : isAnchor.value ? (openBlock(), createElementBlock("div", _hoisted_3$7, "Page anchor")) : (openBlock(), createElementBlock("div", _hoisted_4$2, "Edit link")),
64381
- __props.showInput && !isAnchor.value ? (openBlock(), createElementBlock("div", _hoisted_5$2, [
64382
- createBaseVNode("div", _hoisted_6$1, [
64518
+ return openBlock(), createElementBlock("div", {
64519
+ class: normalizeClass(["link-input-ctn", { "high-contrast": unref(isHighContrastMode2) }])
64520
+ }, [
64521
+ !__props.href ? (openBlock(), createElementBlock("div", _hoisted_1$a, "Add link")) : isAnchor.value ? (openBlock(), createElementBlock("div", _hoisted_2$8, "Page anchor")) : (openBlock(), createElementBlock("div", _hoisted_3$6, "Edit link")),
64522
+ __props.showInput && !isAnchor.value ? (openBlock(), createElementBlock("div", _hoisted_4$2, [
64523
+ createBaseVNode("div", _hoisted_5$2, [
64383
64524
  createBaseVNode("div", {
64384
64525
  class: "input-icon",
64385
64526
  innerHTML: unref(toolbarIcons).linkInput
64386
- }, null, 8, _hoisted_7$1),
64527
+ }, null, 8, _hoisted_6$1),
64387
64528
  withDirectives(createBaseVNode("input", {
64388
64529
  type: "text",
64530
+ name: "link",
64389
64531
  placeholder: "Type or paste a link",
64390
64532
  class: normalizeClass({ error: urlError.value }),
64391
64533
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => rawUrl.value = $event),
@@ -64393,7 +64535,7 @@ const _sfc_main$b = {
64393
64535
  withKeys(withModifiers(handleSubmit, ["stop", "prevent"]), ["enter"]),
64394
64536
  _cache[1] || (_cache[1] = ($event) => urlError.value = false)
64395
64537
  ]
64396
- }, null, 42, _hoisted_8), [
64538
+ }, null, 42, _hoisted_7), [
64397
64539
  [vModelText, rawUrl.value]
64398
64540
  ]),
64399
64541
  createBaseVNode("div", {
@@ -64401,9 +64543,9 @@ const _sfc_main$b = {
64401
64543
  innerHTML: unref(toolbarIcons).openLink,
64402
64544
  onClick: openLink,
64403
64545
  "data-item": "btn-link-open"
64404
- }, null, 10, _hoisted_9)
64546
+ }, null, 10, _hoisted_8)
64405
64547
  ]),
64406
- createBaseVNode("div", _hoisted_10, [
64548
+ createBaseVNode("div", _hoisted_9, [
64407
64549
  __props.href ? (openBlock(), createElementBlock("button", {
64408
64550
  key: 0,
64409
64551
  class: "remove-btn",
@@ -64413,7 +64555,7 @@ const _sfc_main$b = {
64413
64555
  createBaseVNode("div", {
64414
64556
  class: "remove-btn__icon",
64415
64557
  innerHTML: unref(toolbarIcons).removeLink
64416
- }, null, 8, _hoisted_11),
64558
+ }, null, 8, _hoisted_10),
64417
64559
  _cache[3] || (_cache[3] = createTextVNode(" Remove "))
64418
64560
  ])) : createCommentVNode("", true),
64419
64561
  showApply.value ? (openBlock(), createElementBlock("button", {
@@ -64423,23 +64565,22 @@ const _sfc_main$b = {
64423
64565
  "data-item": "btn-link-apply"
64424
64566
  }, toDisplayString(getApplyText.value), 3)) : createCommentVNode("", true)
64425
64567
  ])
64426
- ])) : isAnchor.value ? (openBlock(), createElementBlock("div", _hoisted_12, [
64568
+ ])) : isAnchor.value ? (openBlock(), createElementBlock("div", _hoisted_11, [
64427
64569
  createBaseVNode("a", {
64428
64570
  onClick: _cache[2] || (_cache[2] = withModifiers((...args) => __props.goToAnchor && __props.goToAnchor(...args), ["stop", "prevent"]))
64429
64571
  }, "Go to " + toDisplayString(__props.href.startsWith("#_") ? __props.href.substring(2) : __props.href), 1)
64430
64572
  ])) : createCommentVNode("", true)
64431
- ]);
64573
+ ], 2);
64432
64574
  };
64433
64575
  }
64434
64576
  };
64435
- const LinkInput = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-04bac853"]]);
64436
- const _hoisted_1$9 = { class: "document-mode" };
64437
- const _hoisted_2$7 = ["onClick"];
64438
- const _hoisted_3$6 = { class: "document-mode-column icon-column" };
64439
- const _hoisted_4$1 = ["innerHTML"];
64440
- const _hoisted_5$1 = { class: "document-mode-column text-column" };
64441
- const _hoisted_6 = { class: "document-mode-type" };
64442
- const _hoisted_7 = { class: "document-mode-description" };
64577
+ const LinkInput = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-64aa14bc"]]);
64578
+ const _hoisted_1$9 = ["onClick"];
64579
+ const _hoisted_2$7 = { class: "document-mode-column icon-column" };
64580
+ const _hoisted_3$5 = ["innerHTML"];
64581
+ const _hoisted_4$1 = { class: "document-mode-column text-column" };
64582
+ const _hoisted_5$1 = { class: "document-mode-type" };
64583
+ const _hoisted_6 = { class: "document-mode-description" };
64443
64584
  const _sfc_main$a = {
64444
64585
  __name: "DocumentMode",
64445
64586
  props: {
@@ -64450,34 +64591,38 @@ const _sfc_main$a = {
64450
64591
  emits: ["select"],
64451
64592
  setup(__props, { emit: __emit }) {
64452
64593
  const emit = __emit;
64594
+ const { isHighContrastMode: isHighContrastMode2 } = useHighContrastMode();
64453
64595
  const handleClick2 = (item) => {
64454
64596
  emit("select", item);
64455
64597
  };
64456
64598
  return (_ctx, _cache) => {
64457
- return openBlock(), createElementBlock("div", _hoisted_1$9, [
64599
+ return openBlock(), createElementBlock("div", {
64600
+ class: normalizeClass(["document-mode", { "high-contrast": unref(isHighContrastMode2) }])
64601
+ }, [
64458
64602
  (openBlock(true), createElementBlock(Fragment$1, null, renderList(__props.options, (option) => {
64459
64603
  return openBlock(), createElementBlock("div", {
64460
64604
  class: normalizeClass(["option-item", { disabled: option.disabled }]),
64461
64605
  onClick: ($event) => handleClick2(option),
64462
- "data-item": "btn-documentMode-option"
64606
+ "data-item": "btn-documentMode-option",
64607
+ role: "menuitem"
64463
64608
  }, [
64464
- createBaseVNode("div", _hoisted_3$6, [
64609
+ createBaseVNode("div", _hoisted_2$7, [
64465
64610
  createBaseVNode("div", {
64466
64611
  class: "icon-column__icon",
64467
64612
  innerHTML: option.icon
64468
- }, null, 8, _hoisted_4$1)
64613
+ }, null, 8, _hoisted_3$5)
64469
64614
  ]),
64470
- createBaseVNode("div", _hoisted_5$1, [
64471
- createBaseVNode("div", _hoisted_6, toDisplayString(option.label), 1),
64472
- createBaseVNode("div", _hoisted_7, toDisplayString(option.description), 1)
64615
+ createBaseVNode("div", _hoisted_4$1, [
64616
+ createBaseVNode("div", _hoisted_5$1, toDisplayString(option.label), 1),
64617
+ createBaseVNode("div", _hoisted_6, toDisplayString(option.description), 1)
64473
64618
  ])
64474
- ], 10, _hoisted_2$7);
64619
+ ], 10, _hoisted_1$9);
64475
64620
  }), 256))
64476
- ]);
64621
+ ], 2);
64477
64622
  };
64478
64623
  }
64479
64624
  };
64480
- const DocumentMode = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-8afd7fbb"]]);
64625
+ const DocumentMode = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-050d9d49"]]);
64481
64626
  const _hoisted_1$8 = {
64482
64627
  key: 0,
64483
64628
  class: "linked-style-buttons"
@@ -64520,9 +64665,9 @@ const _sfc_main$9 = {
64520
64665
  }
64521
64666
  };
64522
64667
  const LinkedStyle = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-bf5a8c1e"]]);
64523
- const _hoisted_1$7 = ["onClick"];
64668
+ const _hoisted_1$7 = ["aria-label", "onClick"];
64524
64669
  const _hoisted_2$5 = ["innerHTML"];
64525
- const _hoisted_3$5 = ["innerHTML"];
64670
+ const _hoisted_3$4 = ["innerHTML"];
64526
64671
  const _sfc_main$8 = {
64527
64672
  __name: "IconGridRow",
64528
64673
  props: {
@@ -64559,12 +64704,15 @@ const _sfc_main$8 = {
64559
64704
  return openBlock(true), createElementBlock(Fragment$1, null, renderList(__props.icons, (row, rowIndex) => {
64560
64705
  return openBlock(), createElementBlock("div", {
64561
64706
  class: "option-row",
64562
- key: rowIndex
64707
+ key: rowIndex,
64708
+ role: "group"
64563
64709
  }, [
64564
64710
  (openBlock(true), createElementBlock(Fragment$1, null, renderList(row, (option, optionIndex) => {
64565
64711
  return openBlock(), createElementBlock("div", {
64566
64712
  class: "option",
64567
64713
  key: optionIndex,
64714
+ "aria-label": option.label,
64715
+ role: "menuitem",
64568
64716
  onClick: withModifiers(($event) => handleClick2(option), ["stop", "prevent"])
64569
64717
  }, [
64570
64718
  createBaseVNode("div", {
@@ -64577,7 +64725,7 @@ const _sfc_main$8 = {
64577
64725
  class: "option__check",
64578
64726
  innerHTML: unref(toolbarIcons).colorOptionCheck,
64579
64727
  style: normalizeStyle(getCheckStyle(option.value, optionIndex))
64580
- }, null, 12, _hoisted_3$5)) : createCommentVNode("", true)
64728
+ }, null, 12, _hoisted_3$4)) : createCommentVNode("", true)
64581
64729
  ], 8, _hoisted_1$7);
64582
64730
  }), 128))
64583
64731
  ]);
@@ -64585,11 +64733,11 @@ const _sfc_main$8 = {
64585
64733
  };
64586
64734
  }
64587
64735
  };
64588
- const IconGridRow = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-6a2a9a40"]]);
64736
+ const IconGridRow = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-d96a82fa"]]);
64589
64737
  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';
64590
64738
  const _hoisted_1$6 = { class: "options-grid-wrap" };
64591
64739
  const _hoisted_2$4 = ["innerHTML"];
64592
- const _hoisted_3$4 = { class: "option-grid-ctn" };
64740
+ const _hoisted_3$3 = { class: "option-grid-ctn" };
64593
64741
  const _sfc_main$7 = {
64594
64742
  __name: "IconGrid",
64595
64743
  props: {
@@ -64621,6 +64769,8 @@ const _sfc_main$7 = {
64621
64769
  __props.hasNoneIcon ? (openBlock(), createElementBlock("div", {
64622
64770
  key: 0,
64623
64771
  class: "none-option",
64772
+ role: "menuitem",
64773
+ "aria-label": "Clear color selection",
64624
64774
  onClick: _cache[0] || (_cache[0] = ($event) => handleSelect("none"))
64625
64775
  }, [
64626
64776
  createBaseVNode("span", {
@@ -64629,7 +64779,7 @@ const _sfc_main$7 = {
64629
64779
  }, null, 8, _hoisted_2$4),
64630
64780
  _cache[1] || (_cache[1] = createTextVNode(" None "))
64631
64781
  ])) : createCommentVNode("", true),
64632
- createBaseVNode("div", _hoisted_3$4, [
64782
+ createBaseVNode("div", _hoisted_3$3, [
64633
64783
  createVNode(IconGridRow, {
64634
64784
  icons: __props.icons,
64635
64785
  "active-color": __props.activeColor,
@@ -64648,7 +64798,7 @@ const _sfc_main$7 = {
64648
64798
  };
64649
64799
  }
64650
64800
  };
64651
- const IconGrid = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-47b783db"]]);
64801
+ const IconGrid = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-9246bdef"]]);
64652
64802
  const closeDropdown$1 = (dropdown) => {
64653
64803
  dropdown.expand.value = false;
64654
64804
  };
@@ -64682,84 +64832,83 @@ const renderColorOptions = (superToolbar, button, customIcons = [], hasNoneIcon
64682
64832
  };
64683
64833
  const icons = [
64684
64834
  [
64685
- makeColorOption("#111111"),
64686
- makeColorOption("#333333"),
64687
- makeColorOption("#5C5C5C"),
64688
- makeColorOption("#858585"),
64689
- makeColorOption("#ADADAD"),
64690
- makeColorOption("#D6D6D6"),
64691
- makeColorOption("#FFFFFF")
64835
+ makeColorOption("#111111", "black"),
64836
+ makeColorOption("#333333", "dark gray"),
64837
+ makeColorOption("#5C5C5C", "medium gray"),
64838
+ makeColorOption("#858585", "light gray"),
64839
+ makeColorOption("#ADADAD", "very light gray"),
64840
+ makeColorOption("#D6D6D6", "transparent gray"),
64841
+ makeColorOption("#FFFFFF", "white")
64692
64842
  ],
64693
64843
  [
64694
- makeColorOption("#860028"),
64695
- makeColorOption("#D2003F"),
64696
- makeColorOption("#DB3365"),
64697
- makeColorOption("#E4668C"),
64698
- makeColorOption("#ED99B2"),
64699
- makeColorOption("#F6CCD9"),
64700
- makeColorOption("#FF004D")
64844
+ makeColorOption("#860028", "dark red"),
64845
+ makeColorOption("#D2003F", "red"),
64846
+ makeColorOption("#DB3365", "coral red"),
64847
+ makeColorOption("#E4668C", "light red"),
64848
+ makeColorOption("#ED99B2", "pale pink"),
64849
+ makeColorOption("#F6CCD9", "transparent pink"),
64850
+ makeColorOption("#FF004D", "bright pink")
64701
64851
  ],
64702
64852
  [
64703
- makeColorOption("#83015E"),
64704
- makeColorOption("#CD0194"),
64705
- makeColorOption("#D734A9"),
64706
- makeColorOption("#E167BF"),
64707
- makeColorOption("#EB99D4"),
64708
- makeColorOption("#F5CCEA"),
64709
- makeColorOption("#FF00A8")
64853
+ makeColorOption("#83015E", "dark purple"),
64854
+ makeColorOption("#CD0194", "purple"),
64855
+ makeColorOption("#D734A9", "orchid"),
64856
+ makeColorOption("#E167BF", "light purple"),
64857
+ makeColorOption("#EB99D4", "lavender"),
64858
+ makeColorOption("#F5CCEA", "transparent pink"),
64859
+ makeColorOption("#FF00A8", "neon pink")
64710
64860
  ],
64711
64861
  [
64712
- makeColorOption("#8E220A"),
64713
- makeColorOption("#DD340F"),
64714
- makeColorOption("#E45C3F"),
64715
- makeColorOption("#EB856F"),
64716
- makeColorOption("#F1AE9F"),
64717
- makeColorOption("#F8D6CF"),
64718
- makeColorOption("#FF7A00")
64862
+ makeColorOption("#8E220A", "maroon"),
64863
+ makeColorOption("#DD340F", "red-orange"),
64864
+ makeColorOption("#E45C3F", "burnt orange"),
64865
+ makeColorOption("#EB856F", "peach"),
64866
+ makeColorOption("#F1AE9F", "pale peach"),
64867
+ makeColorOption("#F8D6CF", "transparent peach"),
64868
+ makeColorOption("#FF7A00", "orange")
64719
64869
  ],
64720
64870
  [
64721
- makeColorOption("#947D02"),
64722
- makeColorOption("#E7C302"),
64723
- makeColorOption("#ECCF35"),
64724
- makeColorOption("#F1DB67"),
64725
- makeColorOption("#F5E79A"),
64726
- makeColorOption("#FAF3CC"),
64727
- makeColorOption("#FAFF09")
64871
+ makeColorOption("#947D02", "olive"),
64872
+ makeColorOption("#E7C302", "mustard yellow"),
64873
+ makeColorOption("#ECCF35", "yellow"),
64874
+ makeColorOption("#F1DB67", "light yellow"),
64875
+ makeColorOption("#F5E79A", "very pale yellow"),
64876
+ makeColorOption("#FAF3CC", "transparent yellow"),
64877
+ makeColorOption("#FAFF09", "neon yellow")
64728
64878
  ],
64729
64879
  [
64730
- makeColorOption("#055432"),
64731
- makeColorOption("#07834F"),
64732
- makeColorOption("#399C72"),
64733
- makeColorOption("#6AB595"),
64734
- makeColorOption("#9CCDB9"),
64735
- makeColorOption("#CDE6DC"),
64736
- makeColorOption("#05F38F")
64880
+ makeColorOption("#055432", "forest green"),
64881
+ makeColorOption("#07834F", "green"),
64882
+ makeColorOption("#399C72", "medium green"),
64883
+ makeColorOption("#6AB595", "light green"),
64884
+ makeColorOption("#9CCDB9", "mint"),
64885
+ makeColorOption("#CDE6DC", "transparent mint"),
64886
+ makeColorOption("#05F38F", "bright teal")
64737
64887
  ],
64738
64888
  [
64739
- makeColorOption("#063E7E"),
64740
- makeColorOption("#0A60C5"),
64741
- makeColorOption("#3B80D1"),
64742
- makeColorOption("#6CA0DC"),
64743
- makeColorOption("#9DBFE8"),
64744
- makeColorOption("#CEDFF3"),
64745
- makeColorOption("#21c8ce")
64889
+ makeColorOption("#063E7E", "navy blue"),
64890
+ makeColorOption("#0A60C5", "blue"),
64891
+ makeColorOption("#3B80D1", "sky blue"),
64892
+ makeColorOption("#6CA0DC", "cornflower blue"),
64893
+ makeColorOption("#9DBFE8", "light blue"),
64894
+ makeColorOption("#CEDFF3", "very light blue"),
64895
+ makeColorOption("#21c8ce", "cyan")
64746
64896
  ],
64747
64897
  [
64748
- makeColorOption("#3E027A"),
64749
- makeColorOption("#6103BF"),
64750
- makeColorOption("#8136CC"),
64751
- makeColorOption("#A068D9"),
64752
- makeColorOption("#C09AE6"),
64753
- makeColorOption("#DFCDF2"),
64754
- makeColorOption("#A91DFF")
64898
+ makeColorOption("#3E027A", "deep purple"),
64899
+ makeColorOption("#6103BF", "indigo"),
64900
+ makeColorOption("#8136CC", "violet"),
64901
+ makeColorOption("#A068D9", "lavender pink"),
64902
+ makeColorOption("#C09AE6", "light lilac"),
64903
+ makeColorOption("#DFCDF2", "transparent lilac"),
64904
+ makeColorOption("#A91DFF", "neon purple")
64755
64905
  ]
64756
64906
  ];
64757
64907
  const getAvailableColorOptions = () => {
64758
64908
  return icons.flat().map((item) => item.value);
64759
64909
  };
64760
- const _hoisted_1$5 = { class: "toolbar-table-grid-wrapper" };
64761
- const _hoisted_2$3 = ["data-cols", "data-rows", "onClick"];
64762
- const _hoisted_3$3 = { class: "toolbar-table-grid-value" };
64910
+ const _hoisted_1$5 = ["data-cols", "data-rows", "onClick"];
64911
+ const _hoisted_2$3 = ["aria-valuetext"];
64763
64912
  const _sfc_main$6 = {
64764
64913
  __name: "TableGrid",
64765
64914
  emits: ["select", "clickoutside"],
@@ -64767,6 +64916,7 @@ const _sfc_main$6 = {
64767
64916
  const emit = __emit;
64768
64917
  const selectedRows = ref$1(0);
64769
64918
  const selectedCols = ref$1(0);
64919
+ const { isHighContrastMode: isHighContrastMode2 } = useHighContrastMode();
64770
64920
  const onTableGridMouseOver = (event) => {
64771
64921
  let target = event.target;
64772
64922
  let isGrid = !!target.dataset.grid;
@@ -64794,7 +64944,9 @@ const _sfc_main$6 = {
64794
64944
  emit("select", { cols, rows });
64795
64945
  };
64796
64946
  return (_ctx, _cache) => {
64797
- return openBlock(), createElementBlock("div", _hoisted_1$5, [
64947
+ return openBlock(), createElementBlock("div", {
64948
+ class: normalizeClass(["toolbar-table-grid-wrapper", { "high-contrast": unref(isHighContrastMode2) }])
64949
+ }, [
64798
64950
  createBaseVNode("div", {
64799
64951
  class: "toolbar-table-grid",
64800
64952
  onMouseover: onTableGridMouseOver,
@@ -64810,19 +64962,22 @@ const _sfc_main$6 = {
64810
64962
  "data-rows": i,
64811
64963
  "data-item": "true",
64812
64964
  onClick: withModifiers(($event) => handleClick2({ cols: n2, rows: i }), ["stop", "prevent"])
64813
- }, null, 8, _hoisted_2$3);
64965
+ }, null, 8, _hoisted_1$5);
64814
64966
  }), 64))
64815
64967
  ], 64);
64816
64968
  }), 64))
64817
64969
  ], 32),
64818
- createBaseVNode("div", _hoisted_3$3, toDisplayString(selectedRows.value) + " x " + toDisplayString(selectedCols.value), 1)
64819
- ]);
64970
+ createBaseVNode("div", {
64971
+ class: "toolbar-table-grid-value",
64972
+ "aria-valuetext": `${selectedRows.value} x ${selectedCols.value}`
64973
+ }, toDisplayString(selectedRows.value) + " x " + toDisplayString(selectedCols.value), 9, _hoisted_2$3)
64974
+ ], 2);
64820
64975
  };
64821
64976
  }
64822
64977
  };
64823
- const TableGrid = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-06352ab9"]]);
64978
+ const TableGrid = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-617bf152"]]);
64824
64979
  const _hoisted_1$4 = { class: "toolbar-table-actions" };
64825
- const _hoisted_2$2 = ["onClick", "data-item"];
64980
+ const _hoisted_2$2 = ["onClick", "data-item", "ariaLabel"];
64826
64981
  const _hoisted_3$2 = { class: "toolbar-table-actions__icon" };
64827
64982
  const _hoisted_4 = ["innerHTML"];
64828
64983
  const _hoisted_5 = { class: "toolbar-table-actions__label" };
@@ -64845,7 +65000,9 @@ const _sfc_main$5 = {
64845
65000
  return openBlock(), createElementBlock("div", {
64846
65001
  class: normalizeClass(["toolbar-table-actions__item", { "toolbar-table-actions__item--border": option.bottomBorder }]),
64847
65002
  onClick: ($event) => handleClick2(option),
64848
- "data-item": option.props?.["data-item"] || ""
65003
+ "data-item": option.props?.["data-item"] || "",
65004
+ ariaLabel: option.props?.ariaLabel,
65005
+ role: "menuitem"
64849
65006
  }, [
64850
65007
  createBaseVNode("div", _hoisted_3$2, [
64851
65008
  createBaseVNode("div", {
@@ -64860,7 +65017,7 @@ const _sfc_main$5 = {
64860
65017
  };
64861
65018
  }
64862
65019
  };
64863
- const TableActions = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-fdbfb4b0"]]);
65020
+ const TableActions = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-f82e859a"]]);
64864
65021
  const checkIconSvg = '<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';
64865
65022
  const _hoisted_1$3 = { class: "search-input-ctn" };
64866
65023
  const _hoisted_2$1 = { class: "row" };
@@ -64961,7 +65118,10 @@ const makeDefaultItems = ({
64961
65118
  name: "bold",
64962
65119
  command: "toggleBold",
64963
65120
  icon: toolbarIcons2.bold,
64964
- tooltip: toolbarTexts2.bold
65121
+ tooltip: toolbarTexts2.bold,
65122
+ attributes: {
65123
+ ariaLabel: "Bold"
65124
+ }
64965
65125
  });
64966
65126
  const fontButton = useToolbarItem({
64967
65127
  type: "dropdown",
@@ -64976,6 +65136,9 @@ const makeDefaultItems = ({
64976
65136
  isWide: true,
64977
65137
  style: { width: "116px" },
64978
65138
  suppressActiveHighlight: true,
65139
+ attributes: {
65140
+ ariaLabel: "Font family"
65141
+ },
64979
65142
  options: [...toolbarFonts ? toolbarFonts : TOOLBAR_FONTS],
64980
65143
  onActivate: ({ fontFamily: fontFamily2 }) => {
64981
65144
  if (!fontFamily2) return;
@@ -64996,6 +65159,9 @@ const makeDefaultItems = ({
64996
65159
  hasCaret: false,
64997
65160
  isWide: true,
64998
65161
  suppressActiveHighlight: true,
65162
+ attributes: {
65163
+ ariaLabel: "AI"
65164
+ },
64999
65165
  options: [
65000
65166
  {
65001
65167
  type: "render",
@@ -65043,6 +65209,9 @@ const makeDefaultItems = ({
65043
65209
  suppressActiveHighlight: true,
65044
65210
  isWide: true,
65045
65211
  command: "setFontSize",
65212
+ attributes: {
65213
+ ariaLabel: "Font size"
65214
+ },
65046
65215
  options: [
65047
65216
  { label: "8", key: "8pt", props: { "data-item": "btn-fontSize-option" } },
65048
65217
  { label: "9", key: "9pt", props: { "data-item": "btn-fontSize-option" } },
@@ -65078,14 +65247,20 @@ const makeDefaultItems = ({
65078
65247
  name: "italic",
65079
65248
  command: "toggleItalic",
65080
65249
  icon: toolbarIcons2.italic,
65081
- tooltip: toolbarTexts2.italic
65250
+ tooltip: toolbarTexts2.italic,
65251
+ attributes: {
65252
+ ariaLabel: "Italic"
65253
+ }
65082
65254
  });
65083
65255
  const underline = useToolbarItem({
65084
65256
  type: "button",
65085
65257
  name: "underline",
65086
65258
  command: "toggleUnderline",
65087
65259
  icon: toolbarIcons2.underline,
65088
- tooltip: toolbarTexts2.underline
65260
+ tooltip: toolbarTexts2.underline,
65261
+ attributes: {
65262
+ ariaLabel: "Underline"
65263
+ }
65089
65264
  });
65090
65265
  const highlight = useToolbarItem({
65091
65266
  type: "dropdown",
@@ -65098,6 +65273,9 @@ const makeDefaultItems = ({
65098
65273
  command: "setHighlight",
65099
65274
  noArgumentCommand: "unsetHighlight",
65100
65275
  suppressActiveHighlight: true,
65276
+ attributes: {
65277
+ ariaLabel: "Highlight"
65278
+ },
65101
65279
  options: [
65102
65280
  {
65103
65281
  key: "color",
@@ -65120,6 +65298,9 @@ const makeDefaultItems = ({
65120
65298
  tooltip: toolbarTexts2.color,
65121
65299
  command: "setColor",
65122
65300
  suppressActiveHighlight: true,
65301
+ attributes: {
65302
+ ariaLabel: "Color"
65303
+ },
65123
65304
  options: [
65124
65305
  {
65125
65306
  key: "color",
@@ -65140,6 +65321,9 @@ const makeDefaultItems = ({
65140
65321
  tooltip: toolbarTexts2.search,
65141
65322
  group: "right",
65142
65323
  inputRef: searchRef,
65324
+ attributes: {
65325
+ ariaLabel: "Search"
65326
+ },
65143
65327
  options: [
65144
65328
  {
65145
65329
  type: "render",
@@ -65165,6 +65349,9 @@ const makeDefaultItems = ({
65165
65349
  markName: "link",
65166
65350
  icon: toolbarIcons2.link,
65167
65351
  tooltip: toolbarTexts2.link,
65352
+ attributes: {
65353
+ ariaLabel: "Link dropdown"
65354
+ },
65168
65355
  options: [
65169
65356
  {
65170
65357
  type: "render",
@@ -65218,7 +65405,10 @@ const makeDefaultItems = ({
65218
65405
  command: "startImageUpload",
65219
65406
  icon: toolbarIcons2.image,
65220
65407
  tooltip: toolbarTexts2.image,
65221
- disabled: false
65408
+ disabled: false,
65409
+ attributes: {
65410
+ ariaLabel: "Image"
65411
+ }
65222
65412
  });
65223
65413
  const tableItem = useToolbarItem({
65224
65414
  type: "dropdown",
@@ -65229,6 +65419,9 @@ const makeDefaultItems = ({
65229
65419
  tooltip: toolbarTexts2.table,
65230
65420
  command: "insertTable",
65231
65421
  suppressActiveHighlight: true,
65422
+ attributes: {
65423
+ ariaLabel: "Table"
65424
+ },
65232
65425
  options: [
65233
65426
  {
65234
65427
  key: "table",
@@ -65255,6 +65448,9 @@ const makeDefaultItems = ({
65255
65448
  icon: toolbarIcons2.tableActions,
65256
65449
  hideLabel: true,
65257
65450
  disabled: true,
65451
+ attributes: {
65452
+ ariaLabel: "Table actions"
65453
+ },
65258
65454
  options: [
65259
65455
  {
65260
65456
  type: "render",
@@ -65267,69 +65463,102 @@ const makeDefaultItems = ({
65267
65463
  label: toolbarTexts2.addRowBefore,
65268
65464
  command: "addRowBefore",
65269
65465
  icon: toolbarIcons2.addRowBefore,
65270
- props: { "data-item": "btn-tableActions-option" }
65466
+ props: {
65467
+ "data-item": "btn-tableActions-option",
65468
+ ariaLabel: "Add row before"
65469
+ }
65271
65470
  },
65272
65471
  {
65273
65472
  label: toolbarTexts2.addRowAfter,
65274
65473
  command: "addRowAfter",
65275
65474
  icon: toolbarIcons2.addRowAfter,
65276
- props: { "data-item": "btn-tableActions-option" }
65475
+ props: {
65476
+ "data-item": "btn-tableActions-option",
65477
+ ariaLabel: "Add row after"
65478
+ }
65277
65479
  },
65278
65480
  {
65279
65481
  label: toolbarTexts2.addColumnBefore,
65280
65482
  command: "addColumnBefore",
65281
65483
  icon: toolbarIcons2.addColumnBefore,
65282
- props: { "data-item": "btn-tableActions-option" }
65484
+ props: {
65485
+ "data-item": "btn-tableActions-option",
65486
+ ariaLabel: "Add column before"
65487
+ }
65283
65488
  },
65284
65489
  {
65285
65490
  label: toolbarTexts2.addColumnAfter,
65286
65491
  command: "addColumnAfter",
65287
65492
  icon: toolbarIcons2.addColumnAfter,
65288
65493
  bottomBorder: true,
65289
- props: { "data-item": "btn-tableActions-option" }
65494
+ props: {
65495
+ "data-item": "btn-tableActions-option",
65496
+ ariaLabel: "Add column after"
65497
+ }
65290
65498
  },
65291
65499
  {
65292
65500
  label: toolbarTexts2.deleteRow,
65293
65501
  command: "deleteRow",
65294
65502
  icon: toolbarIcons2.deleteRow,
65295
- props: { "data-item": "btn-tableActions-option" }
65503
+ props: {
65504
+ "data-item": "btn-tableActions-option",
65505
+ ariaLabel: "Delete row"
65506
+ }
65296
65507
  },
65297
65508
  {
65298
65509
  label: toolbarTexts2.deleteColumn,
65299
65510
  command: "deleteColumn",
65300
65511
  icon: toolbarIcons2.deleteColumn,
65301
- props: { "data-item": "btn-tableActions-option" }
65512
+ props: {
65513
+ "data-item": "btn-tableActions-option",
65514
+ ariaLabel: "Delete column"
65515
+ }
65302
65516
  },
65303
65517
  {
65304
65518
  label: toolbarTexts2.deleteTable,
65305
65519
  command: "deleteTable",
65306
65520
  icon: toolbarIcons2.deleteTable,
65307
- props: { "data-item": "btn-tableActions-option" }
65521
+ props: {
65522
+ "data-item": "btn-tableActions-option",
65523
+ ariaLabel: "Delete table"
65524
+ }
65308
65525
  },
65309
65526
  {
65310
65527
  label: toolbarTexts2.transparentBorders,
65311
65528
  command: "deleteCellAndTableBorders",
65312
65529
  icon: toolbarIcons2.deleteBorders,
65313
65530
  bottomBorder: true,
65314
- props: { "data-item": "btn-tableActions-option" }
65531
+ props: {
65532
+ "data-item": "btn-tableActions-option",
65533
+ ariaLabel: "Delete cell and table borders"
65534
+ }
65315
65535
  },
65316
65536
  {
65317
65537
  label: toolbarTexts2.mergeCells,
65318
65538
  command: "mergeCells",
65319
65539
  icon: toolbarIcons2.mergeCells,
65320
- props: { "data-item": "btn-tableActions-option" }
65540
+ props: {
65541
+ "data-item": "btn-tableActions-option",
65542
+ ariaLabel: "Merge cells"
65543
+ }
65321
65544
  },
65322
65545
  {
65323
65546
  label: toolbarTexts2.splitCell,
65324
65547
  command: "splitCell",
65325
65548
  icon: toolbarIcons2.splitCell,
65326
- props: { "data-item": "btn-tableActions-option" }
65549
+ props: {
65550
+ "data-item": "btn-tableActions-option",
65551
+ ariaLabel: "Split cells"
65552
+ }
65327
65553
  },
65328
65554
  {
65329
65555
  label: toolbarTexts2.fixTables,
65330
65556
  command: "fixTables",
65331
65557
  icon: toolbarIcons2.fixTables,
65332
- props: { "data-item": "btn-tableActions-option" }
65558
+ props: {
65559
+ "data-item": "btn-tableActions-option",
65560
+ ariaLabel: "Fix tables"
65561
+ }
65333
65562
  }
65334
65563
  ];
65335
65564
  function renderTableActions(tableActionsItem2) {
@@ -65352,6 +65581,9 @@ const makeDefaultItems = ({
65352
65581
  markName: "textAlign",
65353
65582
  labelAttr: "textAlign",
65354
65583
  suppressActiveHighlight: true,
65584
+ attributes: {
65585
+ ariaLabel: "Text align"
65586
+ },
65355
65587
  options: [
65356
65588
  {
65357
65589
  type: "render",
@@ -65395,14 +65627,20 @@ const makeDefaultItems = ({
65395
65627
  name: "list",
65396
65628
  command: "toggleBulletList",
65397
65629
  icon: toolbarIcons2.bulletList,
65398
- tooltip: toolbarTexts2.bulletList
65630
+ tooltip: toolbarTexts2.bulletList,
65631
+ attributes: {
65632
+ ariaLabel: "Bullet list"
65633
+ }
65399
65634
  });
65400
65635
  const numberedList = useToolbarItem({
65401
65636
  type: "button",
65402
65637
  name: "numberedlist",
65403
65638
  command: "toggleOrderedList",
65404
65639
  icon: toolbarIcons2.numberedList,
65405
- tooltip: toolbarTexts2.numberedList
65640
+ tooltip: toolbarTexts2.numberedList,
65641
+ attributes: {
65642
+ ariaLabel: "Numbered list"
65643
+ }
65406
65644
  });
65407
65645
  const indentLeft = useToolbarItem({
65408
65646
  type: "button",
@@ -65410,7 +65648,10 @@ const makeDefaultItems = ({
65410
65648
  command: "decreaseTextIndent",
65411
65649
  icon: toolbarIcons2.indentLeft,
65412
65650
  tooltip: toolbarTexts2.indentLeft,
65413
- disabled: false
65651
+ disabled: false,
65652
+ attributes: {
65653
+ ariaLabel: "Left indent"
65654
+ }
65414
65655
  });
65415
65656
  const indentRight = useToolbarItem({
65416
65657
  type: "button",
@@ -65418,14 +65659,20 @@ const makeDefaultItems = ({
65418
65659
  command: "increaseTextIndent",
65419
65660
  icon: toolbarIcons2.indentRight,
65420
65661
  tooltip: toolbarTexts2.indentRight,
65421
- disabled: false
65662
+ disabled: false,
65663
+ attributes: {
65664
+ ariaLabel: "Right indent"
65665
+ }
65422
65666
  });
65423
65667
  const overflow = useToolbarItem({
65424
65668
  type: "overflow",
65425
65669
  name: "overflow",
65426
65670
  command: "toggleOverflow",
65427
65671
  icon: toolbarIcons2.overflow,
65428
- disabled: false
65672
+ disabled: false,
65673
+ attributes: {
65674
+ ariaLabel: "Overflow items"
65675
+ }
65429
65676
  });
65430
65677
  const zoom = useToolbarItem({
65431
65678
  type: "dropdown",
@@ -65439,6 +65686,9 @@ const makeDefaultItems = ({
65439
65686
  isWide: true,
65440
65687
  inlineTextInputVisible: false,
65441
65688
  hasInlineTextInput: true,
65689
+ attributes: {
65690
+ ariaLabel: "Zoom"
65691
+ },
65442
65692
  options: [
65443
65693
  { label: "50%", key: 0.5, props: { "data-item": "btn-zoom-option" } },
65444
65694
  { label: "75%", key: 0.75, props: { "data-item": "btn-zoom-option" } },
@@ -65461,6 +65711,9 @@ const makeDefaultItems = ({
65461
65711
  command: "undo",
65462
65712
  icon: toolbarIcons2.undo,
65463
65713
  group: "left",
65714
+ attributes: {
65715
+ ariaLabel: "Undo"
65716
+ },
65464
65717
  onDeactivate: () => {
65465
65718
  undo2.disabled.value = !superToolbar.undoDepth;
65466
65719
  }
@@ -65473,6 +65726,9 @@ const makeDefaultItems = ({
65473
65726
  command: "redo",
65474
65727
  icon: toolbarIcons2.redo,
65475
65728
  group: "left",
65729
+ attributes: {
65730
+ ariaLabel: "Redo"
65731
+ },
65476
65732
  onDeactivate: () => {
65477
65733
  redo2.disabled.value = !superToolbar.redoDepth;
65478
65734
  }
@@ -65484,7 +65740,10 @@ const makeDefaultItems = ({
65484
65740
  tooltip: toolbarTexts2.trackChanges,
65485
65741
  command: "toggleTrackChanges",
65486
65742
  icon: toolbarIcons2.trackChanges,
65487
- group: "left"
65743
+ group: "left",
65744
+ attributes: {
65745
+ ariaLabel: "Track changes"
65746
+ }
65488
65747
  });
65489
65748
  const acceptTrackedChangeBySelection = useToolbarItem({
65490
65749
  type: "button",
@@ -65493,7 +65752,10 @@ const makeDefaultItems = ({
65493
65752
  tooltip: toolbarTexts2.trackChangesAccept,
65494
65753
  command: "acceptTrackedChangeBySelection",
65495
65754
  icon: toolbarIcons2.trackChangesAccept,
65496
- group: "left"
65755
+ group: "left",
65756
+ attributes: {
65757
+ ariaLabel: "Accept tracked changes"
65758
+ }
65497
65759
  });
65498
65760
  const rejectTrackedChangeOnSelection = useToolbarItem({
65499
65761
  type: "button",
@@ -65502,7 +65764,10 @@ const makeDefaultItems = ({
65502
65764
  tooltip: toolbarTexts2.trackChangesReject,
65503
65765
  command: "rejectTrackedChangeOnSelection",
65504
65766
  icon: toolbarIcons2.trackChangesReject,
65505
- group: "left"
65767
+ group: "left",
65768
+ attributes: {
65769
+ ariaLabel: "Reject tracked changes"
65770
+ }
65506
65771
  });
65507
65772
  const toggleTrackChangesOriginal = useToolbarItem({
65508
65773
  type: "button",
@@ -65511,7 +65776,10 @@ const makeDefaultItems = ({
65511
65776
  tooltip: toolbarTexts2.trackChangesOriginal,
65512
65777
  command: "toggleTrackChangesShowOriginal",
65513
65778
  icon: toolbarIcons2.trackChangesOriginal,
65514
- group: "left"
65779
+ group: "left",
65780
+ attributes: {
65781
+ ariaLabel: "Toggle tracked changes show original"
65782
+ }
65515
65783
  });
65516
65784
  const toggleTrackChangesFinal = useToolbarItem({
65517
65785
  type: "button",
@@ -65520,14 +65788,20 @@ const makeDefaultItems = ({
65520
65788
  tooltip: toolbarTexts2.trackChangesFinal,
65521
65789
  command: "toggleTrackChangesShowFinal",
65522
65790
  icon: toolbarIcons2.trackChangesFinal,
65523
- group: "left"
65791
+ group: "left",
65792
+ attributes: {
65793
+ ariaLabel: "Toggle tracked changes show final"
65794
+ }
65524
65795
  });
65525
65796
  const clearFormatting = useToolbarItem({
65526
65797
  type: "button",
65527
65798
  name: "clearFormatting",
65528
65799
  command: "clearFormat",
65529
65800
  tooltip: toolbarTexts2.clearFormatting,
65530
- icon: toolbarIcons2.clearFormatting
65801
+ icon: toolbarIcons2.clearFormatting,
65802
+ attributes: {
65803
+ ariaLabel: "Clear formatting"
65804
+ }
65531
65805
  });
65532
65806
  [
65533
65807
  bold,
@@ -65543,7 +65817,10 @@ const makeDefaultItems = ({
65543
65817
  name: "copyFormat",
65544
65818
  tooltip: toolbarTexts2.copyFormat,
65545
65819
  icon: toolbarIcons2.copyFormat,
65546
- command: "copyFormat"
65820
+ command: "copyFormat",
65821
+ attributes: {
65822
+ ariaLabel: "Copy formatting"
65823
+ }
65547
65824
  });
65548
65825
  const getDocumentOptionsAfterRole = (role2, documentOptions2) => {
65549
65826
  if (role2 === "editor") return documentOptions2;
@@ -65572,7 +65849,8 @@ const makeDefaultItems = ({
65572
65849
  disabled: role !== "editor",
65573
65850
  attributes: {
65574
65851
  dropdownPosition: "right",
65575
- className: "toolbar-item--doc-mode"
65852
+ className: "toolbar-item--doc-mode",
65853
+ ariaLabel: "Document mode"
65576
65854
  },
65577
65855
  options: [
65578
65856
  {
@@ -65619,7 +65897,10 @@ const makeDefaultItems = ({
65619
65897
  name: "pageBreakTool",
65620
65898
  command: "insertPageBreak",
65621
65899
  icon: toolbarIcons2.pageBreak,
65622
- tooltip: toolbarTexts2.pageBreak
65900
+ tooltip: toolbarTexts2.pageBreak,
65901
+ attributes: {
65902
+ ariaLabel: "Page break"
65903
+ }
65623
65904
  });
65624
65905
  const controlSizes = /* @__PURE__ */ new Map([
65625
65906
  ["separator", 20],
@@ -65637,7 +65918,10 @@ const makeDefaultItems = ({
65637
65918
  name: "ruler",
65638
65919
  command: "toggleRuler",
65639
65920
  icon: toolbarIcons2.ruler,
65640
- tooltip: toolbarTexts2.ruler
65921
+ tooltip: toolbarTexts2.ruler,
65922
+ attributes: {
65923
+ ariaLabel: "Ruler"
65924
+ }
65641
65925
  });
65642
65926
  const selectedLinkedStyle = ref$1(null);
65643
65927
  const linkedStyles = useToolbarItem({
@@ -65653,7 +65937,8 @@ const makeDefaultItems = ({
65653
65937
  suppressActiveHighlight: true,
65654
65938
  disabled: false,
65655
65939
  attributes: {
65656
- className: "toolbar-item--linked-styles"
65940
+ className: "toolbar-item--linked-styles",
65941
+ ariaLabel: "Linked styles"
65657
65942
  },
65658
65943
  options: [
65659
65944
  {
@@ -65700,6 +65985,9 @@ const makeDefaultItems = ({
65700
65985
  command: "setLineHeight",
65701
65986
  dropdownValueKey: "key",
65702
65987
  selectedValue: "1",
65988
+ attributes: {
65989
+ ariaLabel: "Line height"
65990
+ },
65703
65991
  options: [
65704
65992
  { label: "1,0", key: "1", icon: () => renderIcon("1", lineHeight2.selectedValue), props: { "data-item": "btn-lineHeight-option" } },
65705
65993
  { label: "1,15", key: "1.15", icon: () => renderIcon("1.15", lineHeight2.selectedValue), props: { "data-item": "btn-lineHeight-option" } },
@@ -67017,7 +67305,8 @@ const _sfc_main$2 = {
67017
67305
  createBaseVNode("div", {
67018
67306
  ref_key: "editorElem",
67019
67307
  ref: editorElem,
67020
- class: "editor-element super-editor__element"
67308
+ class: "editor-element super-editor__element",
67309
+ role: "presentation"
67021
67310
  }, null, 512)
67022
67311
  ], 544),
67023
67312
  !editorReady.value ? (openBlock(), createElementBlock("div", _hoisted_2, [
@@ -67069,7 +67358,7 @@ const _sfc_main$2 = {
67069
67358
  };
67070
67359
  }
67071
67360
  };
67072
- const SuperEditor = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-ff8f86f4"]]);
67361
+ const SuperEditor = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-f27b7c30"]]);
67073
67362
  const _sfc_main$1 = {
67074
67363
  __name: "BasicUpload",
67075
67364
  emits: ["file-change"],
@@ -67196,18 +67485,19 @@ export {
67196
67485
  SuperConverter as S,
67197
67486
  Toolbar as T,
67198
67487
  _sfc_main$1 as _,
67199
- Extensions as a,
67200
- SuperEditor as b,
67201
- SuperInput as c,
67202
- SuperToolbar as d,
67203
- TrackChangesBasePluginKey as e,
67204
- createZip as f,
67205
- getActiveFormatting as g,
67206
- getAllowedImageDimensions as h,
67488
+ AnnotatorHelpers as a,
67489
+ Extensions as b,
67490
+ SuperEditor as c,
67491
+ SuperInput as d,
67492
+ SuperToolbar as e,
67493
+ TrackChangesBasePluginKey as f,
67494
+ createZip as g,
67495
+ getActiveFormatting as h,
67207
67496
  index$1 as i,
67208
- getMarksFromSelection as j,
67209
- getRichTextExtensions as k,
67210
- getStarterExtensions as l,
67211
- helpers as m,
67212
- index as n
67497
+ getAllowedImageDimensions as j,
67498
+ getMarksFromSelection as k,
67499
+ getRichTextExtensions as l,
67500
+ getStarterExtensions as m,
67501
+ helpers as n,
67502
+ index as o
67213
67503
  };