@harbour-enterprises/superdoc 0.12.30-rev.1 → 0.12.31-next.1

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 (65) hide show
  1. package/dist/chunks/{super-editor.es-Cs2w1rLv.es.js → super-editor.es-Bt5pMkY-.es.js} +534 -296
  2. package/dist/chunks/{super-editor.es-3Ibj8IyF.cjs → super-editor.es-CzfjXQ8V.cjs} +520 -282
  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 +1 -2
  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-B3YG794p.js → converter-LyqpytFD.js} +2 -2
  13. package/dist/super-editor/chunks/{docx-zipper-CjIsb1a6.js → docx-zipper-CSx2w--M.js} +1 -1
  14. package/dist/super-editor/chunks/{editor-HCMuRikV.js → editor-czvDp00c.js} +116 -81
  15. package/dist/super-editor/chunks/{toolbar-DNy-8F3W.js → toolbar-BnvzLMKn.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 +3 -5
  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/index.d.ts +0 -1
  33. package/dist/super-editor/extensions/heading/heading.d.ts.map +1 -1
  34. package/dist/super-editor/extensions/image/image.d.ts.map +1 -1
  35. package/dist/super-editor/extensions/line-break/line-break.d.ts.map +1 -1
  36. package/dist/super-editor/extensions/list-item/list-item.d.ts.map +1 -1
  37. package/dist/super-editor/extensions/mention/mention.d.ts.map +1 -1
  38. package/dist/super-editor/extensions/ordered-list/ordered-list.d.ts.map +1 -1
  39. package/dist/super-editor/extensions/page-number/page-number.d.ts.map +1 -1
  40. package/dist/super-editor/extensions/pagination/pagination-helpers.d.ts.map +1 -1
  41. package/dist/super-editor/extensions/run-item/run-item.d.ts.map +1 -1
  42. package/dist/super-editor/extensions/shape-container/shape-container.d.ts.map +1 -1
  43. package/dist/super-editor/extensions/shape-textbox/shape-textbox.d.ts.map +1 -1
  44. package/dist/super-editor/extensions/structured-content/structured-content.d.ts.map +1 -1
  45. package/dist/super-editor/extensions/table/table.d.ts.map +1 -1
  46. package/dist/super-editor/extensions/table-cell/table-cell.d.ts.map +1 -1
  47. package/dist/super-editor/extensions/table-header/table-header.d.ts.map +1 -1
  48. package/dist/super-editor/extensions/table-row/table-row.d.ts.map +1 -1
  49. package/dist/super-editor/file-zipper.es.js +1 -1
  50. package/dist/super-editor/index.d.ts +1 -1
  51. package/dist/super-editor/style.css +243 -196
  52. package/dist/super-editor/super-editor.es.js +333 -174
  53. package/dist/super-editor/tests/e2e/test-app/vite.config.d.ts +1 -1
  54. package/dist/super-editor/toolbar.es.js +2 -2
  55. package/dist/super-editor.cjs +1 -2
  56. package/dist/super-editor.es.js +14 -15
  57. package/dist/superdoc.cjs +34 -10
  58. package/dist/superdoc.es.js +232 -208
  59. package/dist/superdoc.umd.js +557 -294
  60. package/dist/superdoc.umd.js.map +1 -1
  61. package/package.json +2 -1
  62. package/dist/super-editor/extensions/field-annotation/fieldAnnotationHelpers/getHeaderFooterAnnotations.d.ts +0 -2
  63. package/dist/super-editor/extensions/field-annotation/fieldAnnotationHelpers/getHeaderFooterAnnotations.d.ts.map +0 -1
  64. package/dist/super-editor/tests/e2e/test-app/dist/assets/index-BTMvkUyI.d.ts +0 -3
  65. package/dist/super-editor/tests/e2e/test-app/dist/assets/index-BTMvkUyI.d.ts.map +0 -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-rev.1") {
23293
+ static updateDocumentVersion(docx = this.convertedXml, version2 = "0.12.31-next.1") {
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-rev.1") {
23759
+ function generateSuperdocVersion(pid = 2, version2 = "0.12.31-next.1") {
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,12 +40053,11 @@ 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 getAllHeaderFooterEditors = (editor) => {
40056
+ const annotateHeadersAndFooters = ({ editor, annotationValues = [], hiddenFieldIds = [] }) => {
40051
40057
  const sections = {
40052
40058
  header: editor.converter.headers || {},
40053
40059
  footer: editor.converter.footers || {}
40054
40060
  };
40055
- const allEditors = [];
40056
40061
  Object.entries(sections).forEach(([type2, items]) => {
40057
40062
  const editorsKey = `${type2}Editors`;
40058
40063
  Object.entries(items).forEach(([sectionId, data]) => {
@@ -40070,38 +40075,25 @@ const getAllHeaderFooterEditors = (editor) => {
40070
40075
  })
40071
40076
  };
40072
40077
  editor.converter[editorsKey].push(sectionEditor);
40073
- allEditors.push({
40074
- ...sectionEditor,
40075
- key: editorsKey,
40076
- type: type2,
40077
- sectionId
40078
- });
40079
40078
  }
40079
+ sectionEditor.editor.annotate(annotationValues, hiddenFieldIds);
40080
+ onHeaderFooterDataUpdate(
40081
+ { editor: sectionEditor.editor },
40082
+ editor,
40083
+ sectionId,
40084
+ type2
40085
+ );
40080
40086
  });
40081
40087
  });
40082
- return allEditors;
40083
- };
40084
- const annotateHeadersAndFooters = ({ editor, annotationValues = [], hiddenFieldIds = [], removeEmptyFields = false }) => {
40085
- const allEditors = getAllHeaderFooterEditors(editor);
40086
- allEditors.forEach(({ sectionId, editor: sectionEditor, type: type2 }) => {
40087
- sectionEditor.annotate(annotationValues, hiddenFieldIds, removeEmptyFields);
40088
- onHeaderFooterDataUpdate(
40089
- { editor: sectionEditor },
40090
- editor,
40091
- sectionId,
40092
- type2
40093
- );
40094
- });
40095
40088
  };
40096
40089
  const annotateDocument = ({
40097
40090
  annotationValues = [],
40098
40091
  hiddenFieldIds = [],
40099
- removeEmptyFields = false,
40100
40092
  schema,
40101
40093
  tr,
40102
40094
  editor
40103
40095
  }) => {
40104
- annotateHeadersAndFooters({ editor, annotationValues, hiddenFieldIds, removeEmptyFields });
40096
+ annotateHeadersAndFooters({ editor, annotationValues, hiddenFieldIds });
40105
40097
  const annotations = [];
40106
40098
  const FieldType = schema.nodes.fieldAnnotation;
40107
40099
  tr.doc.descendants((node2, pos) => {
@@ -40154,13 +40146,11 @@ const annotateDocument = ({
40154
40146
  });
40155
40147
  }
40156
40148
  }
40157
- if (removeEmptyFields) {
40158
- Array.from(toDelete).sort((a, b) => b - a).forEach((pos) => {
40159
- const ann = annotations.find((a) => a.pos === pos);
40160
- if (!ann) return;
40161
- tr = tr.delete(pos, pos + ann.node.nodeSize);
40162
- });
40163
- }
40149
+ Array.from(toDelete).sort((a, b) => b - a).forEach((pos) => {
40150
+ const ann = annotations.find((a) => a.pos === pos);
40151
+ if (!ann) return;
40152
+ tr = tr.delete(pos, pos + ann.node.nodeSize);
40153
+ });
40164
40154
  return tr;
40165
40155
  };
40166
40156
  const getFormattedDate = (input = null, format = "") => {
@@ -40178,7 +40168,7 @@ const getFormattedDate = (input = null, format = "") => {
40178
40168
  // e.g. “2025”
40179
40169
  });
40180
40170
  };
40181
- const AnnotatorHelpers = {
40171
+ const AnnotatorServices = {
40182
40172
  getFieldAttrs,
40183
40173
  processTables,
40184
40174
  annotateDocument,
@@ -40332,6 +40322,16 @@ const generateCollaborationData = (editor) => {
40332
40322
  initializeMetaMap(ydoc, editor);
40333
40323
  return encodeStateAsUpdate(ydoc);
40334
40324
  };
40325
+ const isHighContrastMode = ref$1(false);
40326
+ function useHighContrastMode() {
40327
+ const setHighContrastMode = (value) => {
40328
+ isHighContrastMode.value = value;
40329
+ };
40330
+ return {
40331
+ isHighContrastMode,
40332
+ setHighContrastMode
40333
+ };
40334
+ }
40335
40335
  const _Editor = class _Editor2 extends EventEmitter$1 {
40336
40336
  /**
40337
40337
  * Create a new Editor instance
@@ -40424,6 +40424,8 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
40424
40424
  }
40425
40425
  };
40426
40426
  let initMode = modes[this.options.mode] ?? modes.default;
40427
+ const { setHighContrastMode } = useHighContrastMode();
40428
+ this.setHighContrastMode = setHighContrastMode;
40427
40429
  initMode();
40428
40430
  }
40429
40431
  /**
@@ -40720,6 +40722,10 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
40720
40722
  if (!proseMirror || !pageSize || !pageMargins) {
40721
40723
  return;
40722
40724
  }
40725
+ proseMirror.setAttribute("role", "document");
40726
+ proseMirror.setAttribute("aria-multiline", true);
40727
+ proseMirror.setAttribute("aria-label", "Main content area, start typing to enter text.");
40728
+ proseMirror.setAttribute("aria-description", "");
40723
40729
  element.style.width = pageSize.width + "in";
40724
40730
  element.style.minWidth = pageSize.width + "in";
40725
40731
  element.style.minHeight = pageSize.height + "in";
@@ -40971,7 +40977,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
40971
40977
  * @returns {Object | void} Migration results
40972
40978
  */
40973
40979
  processCollaborationMigrations() {
40974
- console.debug("[checkVersionMigrations] Current editor version", "0.12.30-rev.1");
40980
+ console.debug("[checkVersionMigrations] Current editor version", "0.12.31-next.1");
40975
40981
  if (!this.options.ydoc) return;
40976
40982
  const metaMap = this.options.ydoc.getMap("meta");
40977
40983
  let docVersion = metaMap.get("version");
@@ -41060,8 +41066,10 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
41060
41066
  */
41061
41067
  prepareForAnnotations(annotationValues = []) {
41062
41068
  const { tr } = this.state;
41063
- const newTr = AnnotatorHelpers.processTables({ state: this.state, tr, annotationValues });
41069
+ const { dispatch } = this.view;
41070
+ const newTr = AnnotatorServices.processTables({ state: this.state, tr, annotationValues });
41064
41071
  this.view.dispatch(newTr);
41072
+ AnnotatorServices.annotateHeadersAndFooters({ editor: this, annotationValues });
41065
41073
  }
41066
41074
  /**
41067
41075
  * Annotate the document with the given annotation values.
@@ -41070,16 +41078,15 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
41070
41078
  * @param {String[]} hiddenIds List of field ids to remove from the document.
41071
41079
  * @returns {void}
41072
41080
  */
41073
- annotate(annotationValues = [], hiddenIds = [], removeEmptyFields = false) {
41081
+ annotate(annotationValues = [], hiddenIds = []) {
41074
41082
  const { state: state2, view, schema } = this;
41075
41083
  let tr = state2.tr;
41076
- tr = AnnotatorHelpers.processTables({ state: this.state, tr, annotationValues });
41077
- tr = AnnotatorHelpers.annotateDocument({
41084
+ tr = AnnotatorServices.processTables({ state: this.state, tr, annotationValues });
41085
+ tr = AnnotatorServices.annotateDocument({
41078
41086
  tr,
41079
41087
  schema,
41080
41088
  annotationValues,
41081
41089
  hiddenFieldIds: hiddenIds,
41082
- removeEmptyFields,
41083
41090
  editor: this
41084
41091
  });
41085
41092
  if (tr.docChanged) view.dispatch(tr.scrollIntoView());
@@ -41334,6 +41341,7 @@ createView_fn = function() {
41334
41341
  toggleHeaderFooterEditMode(this, null, false);
41335
41342
  const pm = document.querySelector(".ProseMirror");
41336
41343
  pm.classList.remove("header-footer-edit");
41344
+ pm.setAttribute("aria-readonly", false);
41337
41345
  }
41338
41346
  }
41339
41347
  });
@@ -42306,7 +42314,8 @@ const AiLoaderNode = Node$1.create({
42306
42314
  return {
42307
42315
  htmlAttributes: {
42308
42316
  class: "sd-ai-loader",
42309
- contentEditable: "false"
42317
+ contentEditable: "false",
42318
+ "aria-label": "AI loader node"
42310
42319
  }
42311
42320
  };
42312
42321
  },
@@ -42502,7 +42511,8 @@ const Document = Node$1.create({
42502
42511
  addAttributes() {
42503
42512
  return {
42504
42513
  attributes: {
42505
- rendered: false
42514
+ rendered: false,
42515
+ "aria-label": "Document node"
42506
42516
  }
42507
42517
  };
42508
42518
  }
@@ -42526,7 +42536,8 @@ const RunItem = Node$1.create({
42526
42536
  addAttributes() {
42527
42537
  return {
42528
42538
  attributes: {
42529
- rendered: false
42539
+ rendered: false,
42540
+ "aria-label": "Run node"
42530
42541
  }
42531
42542
  };
42532
42543
  }
@@ -42579,7 +42590,9 @@ const BulletList = Node$1.create({
42579
42590
  addOptions() {
42580
42591
  return {
42581
42592
  itemTypeName: "listItem",
42582
- htmlAttributes: {},
42593
+ htmlAttributes: {
42594
+ "aria-label": "Bullet list node"
42595
+ },
42583
42596
  keepMarks: true,
42584
42597
  keepAttributes: false
42585
42598
  };
@@ -42870,7 +42883,9 @@ const OrderedList = Node$1.create({
42870
42883
  addOptions() {
42871
42884
  return {
42872
42885
  itemTypeName: "listItem",
42873
- htmlAttributes: {},
42886
+ htmlAttributes: {
42887
+ "aria-label": "Ordered list node"
42888
+ },
42874
42889
  keepMarks: true,
42875
42890
  keepAttributes: false,
42876
42891
  listStyleTypes: ["decimal", "lowerAlpha", "lowerRoman"]
@@ -43270,7 +43285,9 @@ const ListItem = Node$1.create({
43270
43285
  // to run listItem commands first
43271
43286
  addOptions() {
43272
43287
  return {
43273
- htmlAttributes: {},
43288
+ htmlAttributes: {
43289
+ "aria-label": "List item node"
43290
+ },
43274
43291
  bulletListTypeName: "bulletList",
43275
43292
  orderedListTypeName: "orderedList"
43276
43293
  };
@@ -43792,7 +43809,9 @@ const Heading = Node$1.create({
43792
43809
  addOptions() {
43793
43810
  return {
43794
43811
  levels: [1, 2, 3, 4, 5, 6],
43795
- htmlAttributes: {}
43812
+ htmlAttributes: {
43813
+ "aria-label": "Heading node"
43814
+ }
43796
43815
  };
43797
43816
  },
43798
43817
  addAttributes() {
@@ -43853,7 +43872,8 @@ const CommentRangeStart = Node$1.create({
43853
43872
  addOptions() {
43854
43873
  return {
43855
43874
  htmlAttributes: {
43856
- contentEditable: "false"
43875
+ contentEditable: "false",
43876
+ "aria-label": "Comment range start node"
43857
43877
  }
43858
43878
  };
43859
43879
  },
@@ -43882,7 +43902,8 @@ const CommentRangeEnd = Node$1.create({
43882
43902
  addOptions() {
43883
43903
  return {
43884
43904
  htmlAttributes: {
43885
- contentEditable: "false"
43905
+ contentEditable: "false",
43906
+ "aria-label": "Comment range end node"
43886
43907
  }
43887
43908
  };
43888
43909
  },
@@ -43910,7 +43931,8 @@ const CommentReference = Node$1.create({
43910
43931
  addOptions() {
43911
43932
  return {
43912
43933
  htmlAttributes: {
43913
- contentEditable: "false"
43934
+ contentEditable: "false",
43935
+ "aria-label": "Comment reference node"
43914
43936
  }
43915
43937
  };
43916
43938
  },
@@ -44085,7 +44107,9 @@ const HardBreak = Node$1.create({
44085
44107
  return {
44086
44108
  htmlAttributes: {
44087
44109
  contentEditable: "false",
44088
- lineBreakType: "page"
44110
+ lineBreakType: "page",
44111
+ "aria-hidden": "true",
44112
+ "aria-label": "Hard break node"
44089
44113
  }
44090
44114
  };
44091
44115
  },
@@ -46443,7 +46467,9 @@ const Table = Node$1.create({
46443
46467
  tableRole: "table",
46444
46468
  addOptions() {
46445
46469
  return {
46446
- htmlAttributes: {},
46470
+ htmlAttributes: {
46471
+ "aria-label": "Table node"
46472
+ },
46447
46473
  resizable: true,
46448
46474
  handleWidth: 5,
46449
46475
  cellMinWidth: 25,
@@ -46693,7 +46719,9 @@ const TableHeader = Node$1.create({
46693
46719
  isolating: true,
46694
46720
  addOptions() {
46695
46721
  return {
46696
- htmlAttributes: {}
46722
+ htmlAttributes: {
46723
+ "aria-label": "Table head node"
46724
+ }
46697
46725
  };
46698
46726
  },
46699
46727
  addAttributes() {
@@ -46733,7 +46761,9 @@ const TableRow = Node$1.create({
46733
46761
  tableRole: "row",
46734
46762
  addOptions() {
46735
46763
  return {
46736
- htmlAttributes: {}
46764
+ htmlAttributes: {
46765
+ "aria-label": "Table row node"
46766
+ }
46737
46767
  };
46738
46768
  },
46739
46769
  addAttributes() {
@@ -46761,7 +46791,9 @@ const TableCell = Node$1.create({
46761
46791
  isolating: true,
46762
46792
  addOptions() {
46763
46793
  return {
46764
- htmlAttributes: {}
46794
+ htmlAttributes: {
46795
+ "aria-label": "Table cell node"
46796
+ }
46765
46797
  };
46766
46798
  },
46767
46799
  addAttributes() {
@@ -47303,15 +47335,6 @@ function findFieldAnnotationsBetween(from2, to, doc2) {
47303
47335
  });
47304
47336
  return fieldAnnotations;
47305
47337
  }
47306
- const getHeaderFooterAnnotations = (editor) => {
47307
- const editors = getAllHeaderFooterEditors(editor);
47308
- const allAnnotations = [];
47309
- editors.forEach(({ id, editor: editor2 }) => {
47310
- const annotations = getAllFieldAnnotations(editor2.state);
47311
- allAnnotations.push(...annotations);
47312
- });
47313
- return allAnnotations;
47314
- };
47315
47338
  const index$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
47316
47339
  __proto__: null,
47317
47340
  findFieldAnnotations,
@@ -47321,7 +47344,6 @@ const index$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
47321
47344
  findRemovedFieldAnnotations,
47322
47345
  getAllFieldAnnotations,
47323
47346
  getAllFieldAnnotationsWithRect,
47324
- getHeaderFooterAnnotations,
47325
47347
  trackFieldAnnotationsDeletion
47326
47348
  }, Symbol.toStringTag, { value: "Module" }));
47327
47349
  function guard(low, high, value) {
@@ -47452,7 +47474,8 @@ const FieldAnnotation = Node$1.create({
47452
47474
  addOptions() {
47453
47475
  return {
47454
47476
  htmlAttributes: {
47455
- class: annotationClass
47477
+ class: annotationClass,
47478
+ "aria-label": "Field annotation node"
47456
47479
  },
47457
47480
  annotationClass,
47458
47481
  annotationContentClass,
@@ -48394,7 +48417,8 @@ const Image = Node$1.create({
48394
48417
  return {
48395
48418
  allowBase64: true,
48396
48419
  htmlAttributes: {
48397
- style: "display: inline-block;"
48420
+ style: "display: inline-block;",
48421
+ "aria-label": "Image node"
48398
48422
  }
48399
48423
  };
48400
48424
  },
@@ -48510,7 +48534,11 @@ const BookmarkStart = Node$1.create({
48510
48534
  inline: true,
48511
48535
  addOptions() {
48512
48536
  return {
48513
- htmlAttributes: { style: "height: 0; width: 0;" }
48537
+ htmlAttributes: {
48538
+ style: "height: 0; width: 0;",
48539
+ "aria-label": "Bookmark start node",
48540
+ role: "link"
48541
+ }
48514
48542
  };
48515
48543
  },
48516
48544
  addAttributes() {
@@ -48544,7 +48572,8 @@ const Mention = Node$1.create({
48544
48572
  addOptions() {
48545
48573
  return {
48546
48574
  htmlAttributes: {
48547
- class: "sd-editor-mention"
48575
+ class: "sd-editor-mention",
48576
+ "aria-label": "Mention node"
48548
48577
  }
48549
48578
  };
48550
48579
  },
@@ -48582,7 +48611,8 @@ const PageNumber = Node$1.create({
48582
48611
  addOptions() {
48583
48612
  return {
48584
48613
  htmlAttributes: {
48585
- "data-id": "auto-page-number"
48614
+ "data-id": "auto-page-number",
48615
+ "aria-label": "Page number node"
48586
48616
  }
48587
48617
  };
48588
48618
  },
@@ -48601,7 +48631,8 @@ const TotalPageCount = Node$1.create({
48601
48631
  addOptions() {
48602
48632
  return {
48603
48633
  htmlAttributes: {
48604
- "data-id": "auto-total-pages"
48634
+ "data-id": "auto-total-pages",
48635
+ "aria-label": "Total page count node"
48605
48636
  }
48606
48637
  };
48607
48638
  },
@@ -48620,7 +48651,8 @@ const ShapeContainer = Node$1.create({
48620
48651
  addOptions() {
48621
48652
  return {
48622
48653
  htmlAttributes: {
48623
- class: "sd-editor-shape-container"
48654
+ class: "sd-editor-shape-container",
48655
+ "aria-label": "Shape container node"
48624
48656
  }
48625
48657
  };
48626
48658
  },
@@ -48673,7 +48705,8 @@ const ShapeTextbox = Node$1.create({
48673
48705
  addOptions() {
48674
48706
  return {
48675
48707
  htmlAttributes: {
48676
- class: "sd-editor-shape-textbox"
48708
+ class: "sd-editor-shape-textbox",
48709
+ "aria-label": "Shape textbox node"
48677
48710
  }
48678
48711
  };
48679
48712
  },
@@ -48765,7 +48798,9 @@ const StructuredContent = Node$1.create({
48765
48798
  addOptions() {
48766
48799
  return {
48767
48800
  annotationClass: "sd-structured-content-tag",
48768
- htmlAttributes: {}
48801
+ htmlAttributes: {
48802
+ "aria-label": "Structured content node"
48803
+ }
48769
48804
  };
48770
48805
  },
48771
48806
  parseDOM() {
@@ -52225,9 +52260,9 @@ const _export_sfc = (sfc, props) => {
52225
52260
  };
52226
52261
  const _hoisted_1$e = ["onClick", "onMouseenter"];
52227
52262
  const _hoisted_2$c = { key: 0 };
52228
- const _hoisted_3$b = { key: 0 };
52263
+ const _hoisted_3$a = { key: 0 };
52229
52264
  const _hoisted_4$6 = { key: 1 };
52230
- const _hoisted_5$6 = { key: 1 };
52265
+ const _hoisted_5$5 = { key: 1 };
52231
52266
  const _sfc_main$f = {
52232
52267
  __name: "Mentions",
52233
52268
  props: {
@@ -52300,9 +52335,9 @@ const _sfc_main$f = {
52300
52335
  class: normalizeClass(["user-row", { selected: activeUserIndex.value === index2 }])
52301
52336
  }, [
52302
52337
  user.name ? (openBlock(), createElementBlock("div", _hoisted_2$c, [
52303
- user.name ? (openBlock(), createElementBlock("span", _hoisted_3$b, toDisplayString(user.name), 1)) : createCommentVNode("", true),
52338
+ user.name ? (openBlock(), createElementBlock("span", _hoisted_3$a, toDisplayString(user.name), 1)) : createCommentVNode("", true),
52304
52339
  user.name && user.email ? (openBlock(), createElementBlock("span", _hoisted_4$6, " (" + toDisplayString(user.email) + ")", 1)) : createCommentVNode("", true)
52305
- ])) : (openBlock(), createElementBlock("div", _hoisted_5$6, [
52340
+ ])) : (openBlock(), createElementBlock("div", _hoisted_5$5, [
52306
52341
  createBaseVNode("span", null, toDisplayString(user.email), 1)
52307
52342
  ]))
52308
52343
  ], 42, _hoisted_1$e);
@@ -53613,15 +53648,16 @@ const _sfc_main$5$1 = {
53613
53648
  }
53614
53649
  };
53615
53650
  const ToolbarButtonIcon = /* @__PURE__ */ _export_sfc(_sfc_main$5$1, [["__scopeId", "data-v-6d7523ab"]]);
53616
- const _hoisted_1$3$1 = ["data-item"];
53617
- const _hoisted_2$2$1 = {
53651
+ const _hoisted_1$3$1 = ["role"];
53652
+ const _hoisted_2$2$1 = ["data-item", "aria-label"];
53653
+ const _hoisted_3$2$1 = {
53618
53654
  key: 1,
53619
53655
  class: "button-label"
53620
53656
  };
53621
- const _hoisted_3$2$1 = { key: 2 };
53622
- const _hoisted_4$5 = ["placeholder", "onKeydown", "id"];
53623
- const _hoisted_5$5 = ["placeholder", "onKeydown", "id"];
53624
- const _hoisted_6$2 = ["innerHTML"];
53657
+ const _hoisted_4$5 = { key: 2 };
53658
+ const _hoisted_5$4 = ["placeholder", "onKeydown", "id"];
53659
+ const _hoisted_6$2 = ["placeholder", "onKeydown", "id"];
53660
+ const _hoisted_7$1 = ["innerHTML"];
53625
53661
  const _sfc_main$4$1 = {
53626
53662
  __name: "ToolbarButton",
53627
53663
  props: {
@@ -53648,6 +53684,10 @@ const _sfc_main$4$1 = {
53648
53684
  defaultLabel: {
53649
53685
  type: String,
53650
53686
  default: null
53687
+ },
53688
+ isOverflowItem: {
53689
+ type: Boolean,
53690
+ default: false
53651
53691
  }
53652
53692
  },
53653
53693
  emits: ["buttonClick", "textSubmit"],
@@ -53671,6 +53711,7 @@ const _sfc_main$4$1 = {
53671
53711
  } = props.toolbarItem;
53672
53712
  const inlineTextInput = ref$1(props.defaultLabel);
53673
53713
  const inlineInput = ref$1(null);
53714
+ const { isHighContrastMode: isHighContrastMode2 } = useHighContrastMode();
53674
53715
  const handleClick2 = () => {
53675
53716
  if (hasInlineTextInput) {
53676
53717
  inlineInput.value?.focus();
@@ -53698,12 +53739,15 @@ const _sfc_main$4$1 = {
53698
53739
  return (_ctx, _cache) => {
53699
53740
  return openBlock(), createElementBlock("div", {
53700
53741
  class: normalizeClass(["toolbar-item", unref(attributes).className]),
53701
- style: normalizeStyle(getStyle.value)
53742
+ style: normalizeStyle(getStyle.value),
53743
+ role: __props.isOverflowItem ? "menuitem" : ""
53702
53744
  }, [
53703
53745
  createBaseVNode("div", {
53704
53746
  onClick: handleClick2,
53705
- class: normalizeClass(["toolbar-button", { active: unref(active), disabled: unref(disabled), narrow: __props.isNarrow, wide: __props.isWide, "has-inline-text-input": unref(hasInlineTextInput) }]),
53706
- "data-item": `btn-${unref(name) || ""}`
53747
+ 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) }]),
53748
+ "data-item": `btn-${unref(name) || ""}`,
53749
+ "aria-label": unref(attributes).ariaLabel,
53750
+ role: "button"
53707
53751
  }, [
53708
53752
  unref(icon) ? (openBlock(), createBlock(ToolbarButtonIcon, {
53709
53753
  key: 0,
@@ -53712,8 +53756,8 @@ const _sfc_main$4$1 = {
53712
53756
  icon: unref(icon),
53713
53757
  name: unref(name)
53714
53758
  }, null, 8, ["color", "icon", "name"])) : createCommentVNode("", true),
53715
- unref(label) && !unref(hideLabel) && !unref(inlineTextInputVisible) ? (openBlock(), createElementBlock("div", _hoisted_2$2$1, toDisplayString(unref(label)), 1)) : createCommentVNode("", true),
53716
- unref(inlineTextInputVisible) ? (openBlock(), createElementBlock("span", _hoisted_3$2$1, [
53759
+ unref(label) && !unref(hideLabel) && !unref(inlineTextInputVisible) ? (openBlock(), createElementBlock("div", _hoisted_3$2$1, toDisplayString(unref(label)), 1)) : createCommentVNode("", true),
53760
+ unref(inlineTextInputVisible) ? (openBlock(), createElementBlock("span", _hoisted_4$5, [
53717
53761
  unref(name) === "fontSize" ? withDirectives((openBlock(), createElementBlock("input", {
53718
53762
  key: 0,
53719
53763
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => inlineTextInput.value = $event),
@@ -53721,12 +53765,12 @@ const _sfc_main$4$1 = {
53721
53765
  placeholder: unref(label),
53722
53766
  onKeydown: withKeys(withModifiers(handleInputSubmit, ["prevent"]), ["enter"]),
53723
53767
  type: "text",
53724
- class: "button-text-input",
53768
+ class: normalizeClass(["button-text-input", { "high-contrast": unref(isHighContrastMode2) }]),
53725
53769
  id: "inlineTextInput-" + unref(name),
53726
53770
  autoccomplete: "off",
53727
53771
  ref_key: "inlineInput",
53728
53772
  ref: inlineInput
53729
- }, null, 40, _hoisted_4$5)), [
53773
+ }, null, 42, _hoisted_5$4)), [
53730
53774
  [vModelText, inlineTextInput.value]
53731
53775
  ]) : withDirectives((openBlock(), createElementBlock("input", {
53732
53776
  key: 1,
@@ -53739,7 +53783,7 @@ const _sfc_main$4$1 = {
53739
53783
  autoccomplete: "off",
53740
53784
  ref_key: "inlineInput",
53741
53785
  ref: inlineInput
53742
- }, null, 40, _hoisted_5$5)), [
53786
+ }, null, 40, _hoisted_6$2)), [
53743
53787
  [vModelText, inlineTextInput.value]
53744
53788
  ])
53745
53789
  ])) : createCommentVNode("", true),
@@ -53748,14 +53792,18 @@ const _sfc_main$4$1 = {
53748
53792
  class: "dropdown-caret",
53749
53793
  innerHTML: caretIcon.value,
53750
53794
  style: normalizeStyle({ opacity: unref(disabled) ? 0.6 : 1 })
53751
- }, null, 12, _hoisted_6$2)) : createCommentVNode("", true)
53752
- ], 10, _hoisted_1$3$1)
53753
- ], 6);
53795
+ }, null, 12, _hoisted_7$1)) : createCommentVNode("", true)
53796
+ ], 10, _hoisted_2$2$1)
53797
+ ], 14, _hoisted_1$3$1);
53754
53798
  };
53755
53799
  }
53756
53800
  };
53757
- const ToolbarButton = /* @__PURE__ */ _export_sfc(_sfc_main$4$1, [["__scopeId", "data-v-62bb3747"]]);
53758
- const _hoisted_1$2$1 = { class: "toolbar-separator" };
53801
+ const ToolbarButton = /* @__PURE__ */ _export_sfc(_sfc_main$4$1, [["__scopeId", "data-v-6eb57404"]]);
53802
+ const _hoisted_1$2$1 = {
53803
+ class: "toolbar-separator",
53804
+ role: "separator",
53805
+ "aria-label": "Toolbar separator"
53806
+ };
53759
53807
  const _sfc_main$3$1 = {
53760
53808
  __name: "ToolbarSeparator",
53761
53809
  props: {
@@ -53766,19 +53814,30 @@ const _sfc_main$3$1 = {
53766
53814
  },
53767
53815
  emits: ["command"],
53768
53816
  setup(__props, { emit: __emit }) {
53817
+ const { isHighContrastMode: isHighContrastMode2 } = useHighContrastMode();
53818
+ const getSeparatorColor = () => {
53819
+ if (isHighContrastMode2.value) {
53820
+ return "#000";
53821
+ }
53822
+ return "#dbdbdb";
53823
+ };
53769
53824
  return (_ctx, _cache) => {
53770
- return openBlock(), createElementBlock("div", _hoisted_1$2$1, _cache[0] || (_cache[0] = [
53771
- createBaseVNode("div", { class: "separator-inner" }, null, -1)
53772
- ]));
53825
+ return openBlock(), createElementBlock("div", _hoisted_1$2$1, [
53826
+ createBaseVNode("div", {
53827
+ class: "separator-inner",
53828
+ style: normalizeStyle({ backgroundColor: getSeparatorColor() })
53829
+ }, null, 4)
53830
+ ]);
53773
53831
  };
53774
53832
  }
53775
53833
  };
53776
- const ToolbarSeparator = /* @__PURE__ */ _export_sfc(_sfc_main$3$1, [["__scopeId", "data-v-ac2ee4f9"]]);
53834
+ const ToolbarSeparator = /* @__PURE__ */ _export_sfc(_sfc_main$3$1, [["__scopeId", "data-v-b240fc3a"]]);
53777
53835
  const _hoisted_1$1$1 = { class: "overflow-menu" };
53778
53836
  const _hoisted_2$1$1 = { class: "overflow-menu-trigger" };
53779
53837
  const _hoisted_3$1$1 = {
53780
53838
  key: 0,
53781
- class: "overflow-menu_items"
53839
+ class: "overflow-menu_items",
53840
+ role: "group"
53782
53841
  };
53783
53842
  const _sfc_main$2$1 = {
53784
53843
  __name: "OverflowMenu",
@@ -53816,16 +53875,17 @@ const _sfc_main$2$1 = {
53816
53875
  ]),
53817
53876
  isDropdownOpened.value ? (openBlock(), createElementBlock("div", _hoisted_3$1$1, [
53818
53877
  createVNode(ButtonGroup, {
53878
+ class: "superdoc-toolbar-overflow",
53819
53879
  "toolbar-items": __props.overflowItems,
53820
- onCommand: handleCommand,
53821
- class: "superdoc-toolbar-overflow"
53880
+ "from-overflow": "",
53881
+ onCommand: handleCommand
53822
53882
  }, null, 8, ["toolbar-items"])
53823
53883
  ])) : createCommentVNode("", true)
53824
53884
  ]);
53825
53885
  };
53826
53886
  }
53827
53887
  };
53828
- const OverflowMenu = /* @__PURE__ */ _export_sfc(_sfc_main$2$1, [["__scopeId", "data-v-ca29bf1d"]]);
53888
+ const OverflowMenu = /* @__PURE__ */ _export_sfc(_sfc_main$2$1, [["__scopeId", "data-v-c637209b"]]);
53829
53889
  function plugin$1(options2) {
53830
53890
  let _bPrefix = ".";
53831
53891
  let _ePrefix = "__";
@@ -63158,7 +63218,7 @@ const NSkeleton = defineComponent({
63158
63218
  });
63159
63219
  const _hoisted_1$d = { key: 0 };
63160
63220
  const _hoisted_2$b = { key: 0 };
63161
- const _hoisted_3$a = { key: 0 };
63221
+ const _hoisted_3$9 = { key: 0 };
63162
63222
  const _sfc_main$1$1 = {
63163
63223
  __name: "ButtonGroup",
63164
63224
  props: {
@@ -63173,6 +63233,10 @@ const _sfc_main$1$1 = {
63173
63233
  position: {
63174
63234
  type: String,
63175
63235
  default: "left"
63236
+ },
63237
+ fromOverflow: {
63238
+ type: Boolean,
63239
+ default: false
63176
63240
  }
63177
63241
  },
63178
63242
  emits: ["command"],
@@ -63180,6 +63244,7 @@ const _sfc_main$1$1 = {
63180
63244
  const emit = __emit;
63181
63245
  const props = __props;
63182
63246
  const currentItem = ref$1(null);
63247
+ const { isHighContrastMode: isHighContrastMode2 } = useHighContrastMode();
63183
63248
  const isMobile = window.matchMedia("(max-width: 768px)").matches;
63184
63249
  const styleMap = {
63185
63250
  left: {
@@ -63238,13 +63303,20 @@ const _sfc_main$1$1 = {
63238
63303
  };
63239
63304
  });
63240
63305
  };
63306
+ const getDropdownAttributes = (option, item) => {
63307
+ return {
63308
+ role: "menuitem",
63309
+ ariaLabel: `${item.attributes.value.ariaLabel} - ${option.label}`
63310
+ };
63311
+ };
63241
63312
  const handleClickOutside = (e) => {
63242
63313
  closeDropdowns();
63243
63314
  };
63244
63315
  return (_ctx, _cache) => {
63245
63316
  return openBlock(), createElementBlock("div", {
63246
63317
  style: normalizeStyle(getPositionStyle.value),
63247
- class: "button-group"
63318
+ class: "button-group",
63319
+ role: "group"
63248
63320
  }, [
63249
63321
  (openBlock(true), createElementBlock(Fragment$1, null, renderList(__props.toolbarItems, (item) => {
63250
63322
  return openBlock(), createElementBlock("div", {
@@ -63265,10 +63337,14 @@ const _sfc_main$1$1 = {
63265
63337
  show: item.expand.value,
63266
63338
  size: "medium",
63267
63339
  placement: "bottom-start",
63268
- class: "toolbar-button toolbar-dropdown sd-editor-toolbar-dropdown",
63340
+ class: normalizeClass(["toolbar-button toolbar-dropdown sd-editor-toolbar-dropdown", { "high-contrast": unref(isHighContrastMode2) }]),
63269
63341
  onSelect: (key, option) => handleSelect(item, option),
63270
63342
  onClickoutside: handleClickOutside,
63271
- style: normalizeStyle(item.dropdownStyles.value)
63343
+ style: normalizeStyle(item.dropdownStyles.value),
63344
+ "menu-props": () => ({
63345
+ role: "menu"
63346
+ }),
63347
+ "node-props": (option) => getDropdownAttributes(option, item)
63272
63348
  }, {
63273
63349
  default: withCtx(() => [
63274
63350
  createVNode(unref(NTooltip), {
@@ -63292,7 +63368,7 @@ const _sfc_main$1$1 = {
63292
63368
  }, 1032, ["disabled"])
63293
63369
  ]),
63294
63370
  _: 2
63295
- }, 1032, ["options", "trigger", "show", "onSelect", "style"])) : isButton(item) ? (openBlock(), createBlock(unref(NTooltip), {
63371
+ }, 1032, ["options", "trigger", "show", "class", "onSelect", "style", "node-props"])) : isButton(item) ? (openBlock(), createBlock(unref(NTooltip), {
63296
63372
  key: 2,
63297
63373
  trigger: "hover",
63298
63374
  class: "sd-editor-toolbar-tooltip"
@@ -63300,14 +63376,15 @@ const _sfc_main$1$1 = {
63300
63376
  trigger: withCtx(() => [
63301
63377
  createVNode(ToolbarButton, {
63302
63378
  "toolbar-item": item,
63379
+ "is-overflow-item": __props.fromOverflow,
63303
63380
  onTextSubmit: ($event) => handleToolbarButtonTextSubmit(item, $event),
63304
63381
  onButtonClick: ($event) => handleToolbarButtonClick(item)
63305
- }, null, 8, ["toolbar-item", "onTextSubmit", "onButtonClick"])
63382
+ }, null, 8, ["toolbar-item", "is-overflow-item", "onTextSubmit", "onButtonClick"])
63306
63383
  ]),
63307
63384
  default: withCtx(() => [
63308
63385
  item.tooltip ? (openBlock(), createElementBlock("div", _hoisted_2$b, [
63309
63386
  createTextVNode(toDisplayString(item.tooltip) + " ", 1),
63310
- item.disabled.value ? (openBlock(), createElementBlock("span", _hoisted_3$a, "(disabled)")) : createCommentVNode("", true)
63387
+ item.disabled.value ? (openBlock(), createElementBlock("span", _hoisted_3$9, "(disabled)")) : createCommentVNode("", true)
63311
63388
  ])) : createCommentVNode("", true)
63312
63389
  ]),
63313
63390
  _: 2
@@ -63323,7 +63400,7 @@ const _sfc_main$1$1 = {
63323
63400
  };
63324
63401
  }
63325
63402
  };
63326
- const ButtonGroup = /* @__PURE__ */ _export_sfc(_sfc_main$1$1, [["__scopeId", "data-v-7751c4e5"]]);
63403
+ const ButtonGroup = /* @__PURE__ */ _export_sfc(_sfc_main$1$1, [["__scopeId", "data-v-b09e5a20"]]);
63327
63404
  const _sfc_main$e = {
63328
63405
  __name: "Toolbar",
63329
63406
  emits: ["command", "toggle", "select"],
@@ -63368,7 +63445,9 @@ const _sfc_main$e = {
63368
63445
  return (_ctx, _cache) => {
63369
63446
  return openBlock(), createElementBlock("div", {
63370
63447
  class: "superdoc-toolbar",
63371
- key: unref(toolbarKey)
63448
+ key: unref(toolbarKey),
63449
+ role: "toolbar",
63450
+ "aria-label": "Toolbar"
63372
63451
  }, [
63373
63452
  unref(showLeftSide) ? (openBlock(), createBlock(ButtonGroup, {
63374
63453
  key: 0,
@@ -63394,7 +63473,7 @@ const _sfc_main$e = {
63394
63473
  };
63395
63474
  }
63396
63475
  };
63397
- const Toolbar = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-abd0fb95"]]);
63476
+ const Toolbar = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-2a400574"]]);
63398
63477
  const DEFAULT_API_ENDPOINT = "https://sd-dev-express-gateway-i6xtm.ondigitalocean.app/insights";
63399
63478
  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: ";
63400
63479
  async function baseInsightsFetch(payload, options2 = {}) {
@@ -63631,9 +63710,9 @@ const edit = '<!-- @note: includes color gradient for inline svg AI Writer -->\n
63631
63710
  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>';
63632
63711
  const _hoisted_1$c = { class: "ai-user-input-field" };
63633
63712
  const _hoisted_2$a = ["innerHTML"];
63634
- const _hoisted_3$9 = ["placeholder"];
63713
+ const _hoisted_3$8 = ["placeholder"];
63635
63714
  const _hoisted_4$4 = { class: "ai-loader" };
63636
- const _hoisted_5$4 = ["innerHTML"];
63715
+ const _hoisted_5$3 = ["innerHTML"];
63637
63716
  const _sfc_main$d = {
63638
63717
  __name: "AIWriter",
63639
63718
  props: {
@@ -63909,7 +63988,7 @@ const _sfc_main$d = {
63909
63988
  onInput: handleInput,
63910
63989
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => promptText.value = $event),
63911
63990
  rows: "4"
63912
- }, null, 40, _hoisted_3$9), [
63991
+ }, null, 40, _hoisted_3$8), [
63913
63992
  [vModelText, promptText.value]
63914
63993
  ])
63915
63994
  ]),
@@ -63919,7 +63998,7 @@ const _sfc_main$d = {
63919
63998
  class: "ai-textarea-icon ai-submit-button",
63920
63999
  onClick: withModifiers(handleSubmit, ["stop"]),
63921
64000
  innerHTML: unref(paperPlane)
63922
- }, null, 8, _hoisted_5$4)) : createCommentVNode("", true)
64001
+ }, null, 8, _hoisted_5$3)) : createCommentVNode("", true)
63923
64002
  ])
63924
64003
  ], 544);
63925
64004
  };
@@ -64254,71 +64333,80 @@ const useToolbarItem = (options2) => {
64254
64333
  onDeactivate
64255
64334
  };
64256
64335
  };
64257
- const _hoisted_1$b = { class: "alignment-buttons" };
64336
+ const _hoisted_1$b = ["innerHTML"];
64258
64337
  const _hoisted_2$9 = ["innerHTML"];
64259
- const _hoisted_3$8 = ["innerHTML"];
64338
+ const _hoisted_3$7 = ["innerHTML"];
64260
64339
  const _hoisted_4$3 = ["innerHTML"];
64261
- const _hoisted_5$3 = ["innerHTML"];
64262
64340
  const _sfc_main$c = {
64263
64341
  __name: "AlignmentButtons",
64264
64342
  emits: ["select"],
64265
64343
  setup(__props, { emit: __emit }) {
64344
+ const { isHighContrastMode: isHighContrastMode2 } = useHighContrastMode();
64266
64345
  const emit = __emit;
64267
64346
  const select = (alignment2) => {
64268
64347
  emit("select", alignment2);
64269
64348
  };
64270
64349
  return (_ctx, _cache) => {
64271
- return openBlock(), createElementBlock("div", _hoisted_1$b, [
64350
+ return openBlock(), createElementBlock("div", {
64351
+ class: normalizeClass(["alignment-buttons", { "high-contrast": unref(isHighContrastMode2) }])
64352
+ }, [
64272
64353
  createBaseVNode("div", {
64273
64354
  class: "button-icon",
64274
64355
  onClick: _cache[0] || (_cache[0] = ($event) => select("left")),
64275
64356
  innerHTML: unref(toolbarIcons).alignLeft,
64276
- "data-item": "btn-textAlign-option"
64277
- }, null, 8, _hoisted_2$9),
64357
+ "data-item": "btn-textAlign-option",
64358
+ role: "menuitem",
64359
+ "aria-label": "Align left"
64360
+ }, null, 8, _hoisted_1$b),
64278
64361
  createBaseVNode("div", {
64279
64362
  class: "button-icon",
64280
64363
  onClick: _cache[1] || (_cache[1] = ($event) => select("center")),
64281
64364
  innerHTML: unref(toolbarIcons).alignCenter,
64282
- "data-item": "btn-textAlign-option"
64283
- }, null, 8, _hoisted_3$8),
64365
+ "data-item": "btn-textAlign-option",
64366
+ role: "menuitem",
64367
+ "aria-label": "Align center"
64368
+ }, null, 8, _hoisted_2$9),
64284
64369
  createBaseVNode("div", {
64285
64370
  class: "button-icon",
64286
64371
  onClick: _cache[2] || (_cache[2] = ($event) => select("right")),
64287
64372
  innerHTML: unref(toolbarIcons).alignRight,
64288
- "data-item": "btn-textAlign-option"
64289
- }, null, 8, _hoisted_4$3),
64373
+ "data-item": "btn-textAlign-option",
64374
+ role: "menuitem",
64375
+ "aria-label": "Align right"
64376
+ }, null, 8, _hoisted_3$7),
64290
64377
  createBaseVNode("div", {
64291
64378
  class: "button-icon",
64292
64379
  onClick: _cache[3] || (_cache[3] = ($event) => select("justify")),
64293
64380
  innerHTML: unref(toolbarIcons).alignJustify,
64294
- "data-item": "btn-textAlign-option"
64295
- }, null, 8, _hoisted_5$3)
64296
- ]);
64381
+ "data-item": "btn-textAlign-option",
64382
+ role: "menuitem",
64383
+ "aria-label": "Justify"
64384
+ }, null, 8, _hoisted_4$3)
64385
+ ], 2);
64297
64386
  };
64298
64387
  }
64299
64388
  };
64300
- const AlignmentButtons = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-932a4937"]]);
64301
- const _hoisted_1$a = { class: "link-input-ctn" };
64302
- const _hoisted_2$8 = {
64389
+ const AlignmentButtons = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-58d8a9bb"]]);
64390
+ const _hoisted_1$a = {
64303
64391
  key: 0,
64304
64392
  class: "link-title"
64305
64393
  };
64306
- const _hoisted_3$7 = {
64394
+ const _hoisted_2$8 = {
64307
64395
  key: 1,
64308
64396
  class: "link-title"
64309
64397
  };
64310
- const _hoisted_4$2 = {
64398
+ const _hoisted_3$6 = {
64311
64399
  key: 2,
64312
64400
  class: "link-title"
64313
64401
  };
64314
- const _hoisted_5$2 = { key: 3 };
64315
- const _hoisted_6$1 = { class: "input-row" };
64316
- const _hoisted_7$1 = ["innerHTML"];
64317
- const _hoisted_8 = ["onKeydown"];
64318
- const _hoisted_9 = ["innerHTML"];
64319
- const _hoisted_10 = { class: "input-row link-buttons" };
64320
- const _hoisted_11 = ["innerHTML"];
64321
- const _hoisted_12 = {
64402
+ const _hoisted_4$2 = { key: 3 };
64403
+ const _hoisted_5$2 = { class: "input-row" };
64404
+ const _hoisted_6$1 = ["innerHTML"];
64405
+ const _hoisted_7 = ["onKeydown"];
64406
+ const _hoisted_8 = ["innerHTML"];
64407
+ const _hoisted_9 = { class: "input-row link-buttons" };
64408
+ const _hoisted_10 = ["innerHTML"];
64409
+ const _hoisted_11 = {
64322
64410
  key: 4,
64323
64411
  class: "input-row go-to-anchor clickable"
64324
64412
  };
@@ -64351,6 +64439,7 @@ const _sfc_main$b = {
64351
64439
  setup(__props, { emit: __emit }) {
64352
64440
  const emit = __emit;
64353
64441
  const props = __props;
64442
+ const { isHighContrastMode: isHighContrastMode2 } = useHighContrastMode();
64354
64443
  const { proxy } = getCurrentInstance();
64355
64444
  const handleSubmit = () => {
64356
64445
  if (proxy?.$submit instanceof Function) proxy.$submit();
@@ -64401,16 +64490,19 @@ const _sfc_main$b = {
64401
64490
  if (props.showInput) focusInput();
64402
64491
  });
64403
64492
  return (_ctx, _cache) => {
64404
- return openBlock(), createElementBlock("div", _hoisted_1$a, [
64405
- !__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")),
64406
- __props.showInput && !isAnchor.value ? (openBlock(), createElementBlock("div", _hoisted_5$2, [
64407
- createBaseVNode("div", _hoisted_6$1, [
64493
+ return openBlock(), createElementBlock("div", {
64494
+ class: normalizeClass(["link-input-ctn", { "high-contrast": unref(isHighContrastMode2) }])
64495
+ }, [
64496
+ !__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")),
64497
+ __props.showInput && !isAnchor.value ? (openBlock(), createElementBlock("div", _hoisted_4$2, [
64498
+ createBaseVNode("div", _hoisted_5$2, [
64408
64499
  createBaseVNode("div", {
64409
64500
  class: "input-icon",
64410
64501
  innerHTML: unref(toolbarIcons).linkInput
64411
- }, null, 8, _hoisted_7$1),
64502
+ }, null, 8, _hoisted_6$1),
64412
64503
  withDirectives(createBaseVNode("input", {
64413
64504
  type: "text",
64505
+ name: "link",
64414
64506
  placeholder: "Type or paste a link",
64415
64507
  class: normalizeClass({ error: urlError.value }),
64416
64508
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => rawUrl.value = $event),
@@ -64418,7 +64510,7 @@ const _sfc_main$b = {
64418
64510
  withKeys(withModifiers(handleSubmit, ["stop", "prevent"]), ["enter"]),
64419
64511
  _cache[1] || (_cache[1] = ($event) => urlError.value = false)
64420
64512
  ]
64421
- }, null, 42, _hoisted_8), [
64513
+ }, null, 42, _hoisted_7), [
64422
64514
  [vModelText, rawUrl.value]
64423
64515
  ]),
64424
64516
  createBaseVNode("div", {
@@ -64426,9 +64518,9 @@ const _sfc_main$b = {
64426
64518
  innerHTML: unref(toolbarIcons).openLink,
64427
64519
  onClick: openLink,
64428
64520
  "data-item": "btn-link-open"
64429
- }, null, 10, _hoisted_9)
64521
+ }, null, 10, _hoisted_8)
64430
64522
  ]),
64431
- createBaseVNode("div", _hoisted_10, [
64523
+ createBaseVNode("div", _hoisted_9, [
64432
64524
  __props.href ? (openBlock(), createElementBlock("button", {
64433
64525
  key: 0,
64434
64526
  class: "remove-btn",
@@ -64438,7 +64530,7 @@ const _sfc_main$b = {
64438
64530
  createBaseVNode("div", {
64439
64531
  class: "remove-btn__icon",
64440
64532
  innerHTML: unref(toolbarIcons).removeLink
64441
- }, null, 8, _hoisted_11),
64533
+ }, null, 8, _hoisted_10),
64442
64534
  _cache[3] || (_cache[3] = createTextVNode(" Remove "))
64443
64535
  ])) : createCommentVNode("", true),
64444
64536
  showApply.value ? (openBlock(), createElementBlock("button", {
@@ -64448,23 +64540,22 @@ const _sfc_main$b = {
64448
64540
  "data-item": "btn-link-apply"
64449
64541
  }, toDisplayString(getApplyText.value), 3)) : createCommentVNode("", true)
64450
64542
  ])
64451
- ])) : isAnchor.value ? (openBlock(), createElementBlock("div", _hoisted_12, [
64543
+ ])) : isAnchor.value ? (openBlock(), createElementBlock("div", _hoisted_11, [
64452
64544
  createBaseVNode("a", {
64453
64545
  onClick: _cache[2] || (_cache[2] = withModifiers((...args) => __props.goToAnchor && __props.goToAnchor(...args), ["stop", "prevent"]))
64454
64546
  }, "Go to " + toDisplayString(__props.href.startsWith("#_") ? __props.href.substring(2) : __props.href), 1)
64455
64547
  ])) : createCommentVNode("", true)
64456
- ]);
64548
+ ], 2);
64457
64549
  };
64458
64550
  }
64459
64551
  };
64460
- const LinkInput = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-04bac853"]]);
64461
- const _hoisted_1$9 = { class: "document-mode" };
64462
- const _hoisted_2$7 = ["onClick"];
64463
- const _hoisted_3$6 = { class: "document-mode-column icon-column" };
64464
- const _hoisted_4$1 = ["innerHTML"];
64465
- const _hoisted_5$1 = { class: "document-mode-column text-column" };
64466
- const _hoisted_6 = { class: "document-mode-type" };
64467
- const _hoisted_7 = { class: "document-mode-description" };
64552
+ const LinkInput = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-64aa14bc"]]);
64553
+ const _hoisted_1$9 = ["onClick"];
64554
+ const _hoisted_2$7 = { class: "document-mode-column icon-column" };
64555
+ const _hoisted_3$5 = ["innerHTML"];
64556
+ const _hoisted_4$1 = { class: "document-mode-column text-column" };
64557
+ const _hoisted_5$1 = { class: "document-mode-type" };
64558
+ const _hoisted_6 = { class: "document-mode-description" };
64468
64559
  const _sfc_main$a = {
64469
64560
  __name: "DocumentMode",
64470
64561
  props: {
@@ -64475,34 +64566,38 @@ const _sfc_main$a = {
64475
64566
  emits: ["select"],
64476
64567
  setup(__props, { emit: __emit }) {
64477
64568
  const emit = __emit;
64569
+ const { isHighContrastMode: isHighContrastMode2 } = useHighContrastMode();
64478
64570
  const handleClick2 = (item) => {
64479
64571
  emit("select", item);
64480
64572
  };
64481
64573
  return (_ctx, _cache) => {
64482
- return openBlock(), createElementBlock("div", _hoisted_1$9, [
64574
+ return openBlock(), createElementBlock("div", {
64575
+ class: normalizeClass(["document-mode", { "high-contrast": unref(isHighContrastMode2) }])
64576
+ }, [
64483
64577
  (openBlock(true), createElementBlock(Fragment$1, null, renderList(__props.options, (option) => {
64484
64578
  return openBlock(), createElementBlock("div", {
64485
64579
  class: normalizeClass(["option-item", { disabled: option.disabled }]),
64486
64580
  onClick: ($event) => handleClick2(option),
64487
- "data-item": "btn-documentMode-option"
64581
+ "data-item": "btn-documentMode-option",
64582
+ role: "menuitem"
64488
64583
  }, [
64489
- createBaseVNode("div", _hoisted_3$6, [
64584
+ createBaseVNode("div", _hoisted_2$7, [
64490
64585
  createBaseVNode("div", {
64491
64586
  class: "icon-column__icon",
64492
64587
  innerHTML: option.icon
64493
- }, null, 8, _hoisted_4$1)
64588
+ }, null, 8, _hoisted_3$5)
64494
64589
  ]),
64495
- createBaseVNode("div", _hoisted_5$1, [
64496
- createBaseVNode("div", _hoisted_6, toDisplayString(option.label), 1),
64497
- createBaseVNode("div", _hoisted_7, toDisplayString(option.description), 1)
64590
+ createBaseVNode("div", _hoisted_4$1, [
64591
+ createBaseVNode("div", _hoisted_5$1, toDisplayString(option.label), 1),
64592
+ createBaseVNode("div", _hoisted_6, toDisplayString(option.description), 1)
64498
64593
  ])
64499
- ], 10, _hoisted_2$7);
64594
+ ], 10, _hoisted_1$9);
64500
64595
  }), 256))
64501
- ]);
64596
+ ], 2);
64502
64597
  };
64503
64598
  }
64504
64599
  };
64505
- const DocumentMode = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-8afd7fbb"]]);
64600
+ const DocumentMode = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-050d9d49"]]);
64506
64601
  const _hoisted_1$8 = {
64507
64602
  key: 0,
64508
64603
  class: "linked-style-buttons"
@@ -64545,9 +64640,9 @@ const _sfc_main$9 = {
64545
64640
  }
64546
64641
  };
64547
64642
  const LinkedStyle = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-bf5a8c1e"]]);
64548
- const _hoisted_1$7 = ["onClick"];
64643
+ const _hoisted_1$7 = ["aria-label", "onClick"];
64549
64644
  const _hoisted_2$5 = ["innerHTML"];
64550
- const _hoisted_3$5 = ["innerHTML"];
64645
+ const _hoisted_3$4 = ["innerHTML"];
64551
64646
  const _sfc_main$8 = {
64552
64647
  __name: "IconGridRow",
64553
64648
  props: {
@@ -64584,12 +64679,15 @@ const _sfc_main$8 = {
64584
64679
  return openBlock(true), createElementBlock(Fragment$1, null, renderList(__props.icons, (row, rowIndex) => {
64585
64680
  return openBlock(), createElementBlock("div", {
64586
64681
  class: "option-row",
64587
- key: rowIndex
64682
+ key: rowIndex,
64683
+ role: "group"
64588
64684
  }, [
64589
64685
  (openBlock(true), createElementBlock(Fragment$1, null, renderList(row, (option, optionIndex) => {
64590
64686
  return openBlock(), createElementBlock("div", {
64591
64687
  class: "option",
64592
64688
  key: optionIndex,
64689
+ "aria-label": option.label,
64690
+ role: "menuitem",
64593
64691
  onClick: withModifiers(($event) => handleClick2(option), ["stop", "prevent"])
64594
64692
  }, [
64595
64693
  createBaseVNode("div", {
@@ -64602,7 +64700,7 @@ const _sfc_main$8 = {
64602
64700
  class: "option__check",
64603
64701
  innerHTML: unref(toolbarIcons).colorOptionCheck,
64604
64702
  style: normalizeStyle(getCheckStyle(option.value, optionIndex))
64605
- }, null, 12, _hoisted_3$5)) : createCommentVNode("", true)
64703
+ }, null, 12, _hoisted_3$4)) : createCommentVNode("", true)
64606
64704
  ], 8, _hoisted_1$7);
64607
64705
  }), 128))
64608
64706
  ]);
@@ -64610,11 +64708,11 @@ const _sfc_main$8 = {
64610
64708
  };
64611
64709
  }
64612
64710
  };
64613
- const IconGridRow = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-6a2a9a40"]]);
64711
+ const IconGridRow = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-d96a82fa"]]);
64614
64712
  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';
64615
64713
  const _hoisted_1$6 = { class: "options-grid-wrap" };
64616
64714
  const _hoisted_2$4 = ["innerHTML"];
64617
- const _hoisted_3$4 = { class: "option-grid-ctn" };
64715
+ const _hoisted_3$3 = { class: "option-grid-ctn" };
64618
64716
  const _sfc_main$7 = {
64619
64717
  __name: "IconGrid",
64620
64718
  props: {
@@ -64646,6 +64744,8 @@ const _sfc_main$7 = {
64646
64744
  __props.hasNoneIcon ? (openBlock(), createElementBlock("div", {
64647
64745
  key: 0,
64648
64746
  class: "none-option",
64747
+ role: "menuitem",
64748
+ "aria-label": "Clear color selection",
64649
64749
  onClick: _cache[0] || (_cache[0] = ($event) => handleSelect("none"))
64650
64750
  }, [
64651
64751
  createBaseVNode("span", {
@@ -64654,7 +64754,7 @@ const _sfc_main$7 = {
64654
64754
  }, null, 8, _hoisted_2$4),
64655
64755
  _cache[1] || (_cache[1] = createTextVNode(" None "))
64656
64756
  ])) : createCommentVNode("", true),
64657
- createBaseVNode("div", _hoisted_3$4, [
64757
+ createBaseVNode("div", _hoisted_3$3, [
64658
64758
  createVNode(IconGridRow, {
64659
64759
  icons: __props.icons,
64660
64760
  "active-color": __props.activeColor,
@@ -64673,7 +64773,7 @@ const _sfc_main$7 = {
64673
64773
  };
64674
64774
  }
64675
64775
  };
64676
- const IconGrid = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-47b783db"]]);
64776
+ const IconGrid = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-9246bdef"]]);
64677
64777
  const closeDropdown$1 = (dropdown) => {
64678
64778
  dropdown.expand.value = false;
64679
64779
  };
@@ -64707,84 +64807,83 @@ const renderColorOptions = (superToolbar, button, customIcons = [], hasNoneIcon
64707
64807
  };
64708
64808
  const icons = [
64709
64809
  [
64710
- makeColorOption("#111111"),
64711
- makeColorOption("#333333"),
64712
- makeColorOption("#5C5C5C"),
64713
- makeColorOption("#858585"),
64714
- makeColorOption("#ADADAD"),
64715
- makeColorOption("#D6D6D6"),
64716
- makeColorOption("#FFFFFF")
64810
+ makeColorOption("#111111", "black"),
64811
+ makeColorOption("#333333", "dark gray"),
64812
+ makeColorOption("#5C5C5C", "medium gray"),
64813
+ makeColorOption("#858585", "light gray"),
64814
+ makeColorOption("#ADADAD", "very light gray"),
64815
+ makeColorOption("#D6D6D6", "transparent gray"),
64816
+ makeColorOption("#FFFFFF", "white")
64717
64817
  ],
64718
64818
  [
64719
- makeColorOption("#860028"),
64720
- makeColorOption("#D2003F"),
64721
- makeColorOption("#DB3365"),
64722
- makeColorOption("#E4668C"),
64723
- makeColorOption("#ED99B2"),
64724
- makeColorOption("#F6CCD9"),
64725
- makeColorOption("#FF004D")
64819
+ makeColorOption("#860028", "dark red"),
64820
+ makeColorOption("#D2003F", "red"),
64821
+ makeColorOption("#DB3365", "coral red"),
64822
+ makeColorOption("#E4668C", "light red"),
64823
+ makeColorOption("#ED99B2", "pale pink"),
64824
+ makeColorOption("#F6CCD9", "transparent pink"),
64825
+ makeColorOption("#FF004D", "bright pink")
64726
64826
  ],
64727
64827
  [
64728
- makeColorOption("#83015E"),
64729
- makeColorOption("#CD0194"),
64730
- makeColorOption("#D734A9"),
64731
- makeColorOption("#E167BF"),
64732
- makeColorOption("#EB99D4"),
64733
- makeColorOption("#F5CCEA"),
64734
- makeColorOption("#FF00A8")
64828
+ makeColorOption("#83015E", "dark purple"),
64829
+ makeColorOption("#CD0194", "purple"),
64830
+ makeColorOption("#D734A9", "orchid"),
64831
+ makeColorOption("#E167BF", "light purple"),
64832
+ makeColorOption("#EB99D4", "lavender"),
64833
+ makeColorOption("#F5CCEA", "transparent pink"),
64834
+ makeColorOption("#FF00A8", "neon pink")
64735
64835
  ],
64736
64836
  [
64737
- makeColorOption("#8E220A"),
64738
- makeColorOption("#DD340F"),
64739
- makeColorOption("#E45C3F"),
64740
- makeColorOption("#EB856F"),
64741
- makeColorOption("#F1AE9F"),
64742
- makeColorOption("#F8D6CF"),
64743
- makeColorOption("#FF7A00")
64837
+ makeColorOption("#8E220A", "maroon"),
64838
+ makeColorOption("#DD340F", "red-orange"),
64839
+ makeColorOption("#E45C3F", "burnt orange"),
64840
+ makeColorOption("#EB856F", "peach"),
64841
+ makeColorOption("#F1AE9F", "pale peach"),
64842
+ makeColorOption("#F8D6CF", "transparent peach"),
64843
+ makeColorOption("#FF7A00", "orange")
64744
64844
  ],
64745
64845
  [
64746
- makeColorOption("#947D02"),
64747
- makeColorOption("#E7C302"),
64748
- makeColorOption("#ECCF35"),
64749
- makeColorOption("#F1DB67"),
64750
- makeColorOption("#F5E79A"),
64751
- makeColorOption("#FAF3CC"),
64752
- makeColorOption("#FAFF09")
64846
+ makeColorOption("#947D02", "olive"),
64847
+ makeColorOption("#E7C302", "mustard yellow"),
64848
+ makeColorOption("#ECCF35", "yellow"),
64849
+ makeColorOption("#F1DB67", "light yellow"),
64850
+ makeColorOption("#F5E79A", "very pale yellow"),
64851
+ makeColorOption("#FAF3CC", "transparent yellow"),
64852
+ makeColorOption("#FAFF09", "neon yellow")
64753
64853
  ],
64754
64854
  [
64755
- makeColorOption("#055432"),
64756
- makeColorOption("#07834F"),
64757
- makeColorOption("#399C72"),
64758
- makeColorOption("#6AB595"),
64759
- makeColorOption("#9CCDB9"),
64760
- makeColorOption("#CDE6DC"),
64761
- makeColorOption("#05F38F")
64855
+ makeColorOption("#055432", "forest green"),
64856
+ makeColorOption("#07834F", "green"),
64857
+ makeColorOption("#399C72", "medium green"),
64858
+ makeColorOption("#6AB595", "light green"),
64859
+ makeColorOption("#9CCDB9", "mint"),
64860
+ makeColorOption("#CDE6DC", "transparent mint"),
64861
+ makeColorOption("#05F38F", "bright teal")
64762
64862
  ],
64763
64863
  [
64764
- makeColorOption("#063E7E"),
64765
- makeColorOption("#0A60C5"),
64766
- makeColorOption("#3B80D1"),
64767
- makeColorOption("#6CA0DC"),
64768
- makeColorOption("#9DBFE8"),
64769
- makeColorOption("#CEDFF3"),
64770
- makeColorOption("#21c8ce")
64864
+ makeColorOption("#063E7E", "navy blue"),
64865
+ makeColorOption("#0A60C5", "blue"),
64866
+ makeColorOption("#3B80D1", "sky blue"),
64867
+ makeColorOption("#6CA0DC", "cornflower blue"),
64868
+ makeColorOption("#9DBFE8", "light blue"),
64869
+ makeColorOption("#CEDFF3", "very light blue"),
64870
+ makeColorOption("#21c8ce", "cyan")
64771
64871
  ],
64772
64872
  [
64773
- makeColorOption("#3E027A"),
64774
- makeColorOption("#6103BF"),
64775
- makeColorOption("#8136CC"),
64776
- makeColorOption("#A068D9"),
64777
- makeColorOption("#C09AE6"),
64778
- makeColorOption("#DFCDF2"),
64779
- makeColorOption("#A91DFF")
64873
+ makeColorOption("#3E027A", "deep purple"),
64874
+ makeColorOption("#6103BF", "indigo"),
64875
+ makeColorOption("#8136CC", "violet"),
64876
+ makeColorOption("#A068D9", "lavender pink"),
64877
+ makeColorOption("#C09AE6", "light lilac"),
64878
+ makeColorOption("#DFCDF2", "transparent lilac"),
64879
+ makeColorOption("#A91DFF", "neon purple")
64780
64880
  ]
64781
64881
  ];
64782
64882
  const getAvailableColorOptions = () => {
64783
64883
  return icons.flat().map((item) => item.value);
64784
64884
  };
64785
- const _hoisted_1$5 = { class: "toolbar-table-grid-wrapper" };
64786
- const _hoisted_2$3 = ["data-cols", "data-rows", "onClick"];
64787
- const _hoisted_3$3 = { class: "toolbar-table-grid-value" };
64885
+ const _hoisted_1$5 = ["data-cols", "data-rows", "onClick"];
64886
+ const _hoisted_2$3 = ["aria-valuetext"];
64788
64887
  const _sfc_main$6 = {
64789
64888
  __name: "TableGrid",
64790
64889
  emits: ["select", "clickoutside"],
@@ -64792,6 +64891,7 @@ const _sfc_main$6 = {
64792
64891
  const emit = __emit;
64793
64892
  const selectedRows = ref$1(0);
64794
64893
  const selectedCols = ref$1(0);
64894
+ const { isHighContrastMode: isHighContrastMode2 } = useHighContrastMode();
64795
64895
  const onTableGridMouseOver = (event) => {
64796
64896
  let target = event.target;
64797
64897
  let isGrid = !!target.dataset.grid;
@@ -64819,7 +64919,9 @@ const _sfc_main$6 = {
64819
64919
  emit("select", { cols, rows });
64820
64920
  };
64821
64921
  return (_ctx, _cache) => {
64822
- return openBlock(), createElementBlock("div", _hoisted_1$5, [
64922
+ return openBlock(), createElementBlock("div", {
64923
+ class: normalizeClass(["toolbar-table-grid-wrapper", { "high-contrast": unref(isHighContrastMode2) }])
64924
+ }, [
64823
64925
  createBaseVNode("div", {
64824
64926
  class: "toolbar-table-grid",
64825
64927
  onMouseover: onTableGridMouseOver,
@@ -64835,19 +64937,22 @@ const _sfc_main$6 = {
64835
64937
  "data-rows": i,
64836
64938
  "data-item": "true",
64837
64939
  onClick: withModifiers(($event) => handleClick2({ cols: n2, rows: i }), ["stop", "prevent"])
64838
- }, null, 8, _hoisted_2$3);
64940
+ }, null, 8, _hoisted_1$5);
64839
64941
  }), 64))
64840
64942
  ], 64);
64841
64943
  }), 64))
64842
64944
  ], 32),
64843
- createBaseVNode("div", _hoisted_3$3, toDisplayString(selectedRows.value) + " x " + toDisplayString(selectedCols.value), 1)
64844
- ]);
64945
+ createBaseVNode("div", {
64946
+ class: "toolbar-table-grid-value",
64947
+ "aria-valuetext": `${selectedRows.value} x ${selectedCols.value}`
64948
+ }, toDisplayString(selectedRows.value) + " x " + toDisplayString(selectedCols.value), 9, _hoisted_2$3)
64949
+ ], 2);
64845
64950
  };
64846
64951
  }
64847
64952
  };
64848
- const TableGrid = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-06352ab9"]]);
64953
+ const TableGrid = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-617bf152"]]);
64849
64954
  const _hoisted_1$4 = { class: "toolbar-table-actions" };
64850
- const _hoisted_2$2 = ["onClick", "data-item"];
64955
+ const _hoisted_2$2 = ["onClick", "data-item", "ariaLabel"];
64851
64956
  const _hoisted_3$2 = { class: "toolbar-table-actions__icon" };
64852
64957
  const _hoisted_4 = ["innerHTML"];
64853
64958
  const _hoisted_5 = { class: "toolbar-table-actions__label" };
@@ -64870,7 +64975,9 @@ const _sfc_main$5 = {
64870
64975
  return openBlock(), createElementBlock("div", {
64871
64976
  class: normalizeClass(["toolbar-table-actions__item", { "toolbar-table-actions__item--border": option.bottomBorder }]),
64872
64977
  onClick: ($event) => handleClick2(option),
64873
- "data-item": option.props?.["data-item"] || ""
64978
+ "data-item": option.props?.["data-item"] || "",
64979
+ ariaLabel: option.props?.ariaLabel,
64980
+ role: "menuitem"
64874
64981
  }, [
64875
64982
  createBaseVNode("div", _hoisted_3$2, [
64876
64983
  createBaseVNode("div", {
@@ -64885,7 +64992,7 @@ const _sfc_main$5 = {
64885
64992
  };
64886
64993
  }
64887
64994
  };
64888
- const TableActions = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-fdbfb4b0"]]);
64995
+ const TableActions = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-f82e859a"]]);
64889
64996
  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';
64890
64997
  const _hoisted_1$3 = { class: "search-input-ctn" };
64891
64998
  const _hoisted_2$1 = { class: "row" };
@@ -64986,7 +65093,10 @@ const makeDefaultItems = ({
64986
65093
  name: "bold",
64987
65094
  command: "toggleBold",
64988
65095
  icon: toolbarIcons2.bold,
64989
- tooltip: toolbarTexts2.bold
65096
+ tooltip: toolbarTexts2.bold,
65097
+ attributes: {
65098
+ ariaLabel: "Bold"
65099
+ }
64990
65100
  });
64991
65101
  const fontButton = useToolbarItem({
64992
65102
  type: "dropdown",
@@ -65001,6 +65111,9 @@ const makeDefaultItems = ({
65001
65111
  isWide: true,
65002
65112
  style: { width: "116px" },
65003
65113
  suppressActiveHighlight: true,
65114
+ attributes: {
65115
+ ariaLabel: "Font family"
65116
+ },
65004
65117
  options: [...toolbarFonts ? toolbarFonts : TOOLBAR_FONTS],
65005
65118
  onActivate: ({ fontFamily: fontFamily2 }) => {
65006
65119
  if (!fontFamily2) return;
@@ -65021,6 +65134,9 @@ const makeDefaultItems = ({
65021
65134
  hasCaret: false,
65022
65135
  isWide: true,
65023
65136
  suppressActiveHighlight: true,
65137
+ attributes: {
65138
+ ariaLabel: "AI"
65139
+ },
65024
65140
  options: [
65025
65141
  {
65026
65142
  type: "render",
@@ -65068,6 +65184,9 @@ const makeDefaultItems = ({
65068
65184
  suppressActiveHighlight: true,
65069
65185
  isWide: true,
65070
65186
  command: "setFontSize",
65187
+ attributes: {
65188
+ ariaLabel: "Font size"
65189
+ },
65071
65190
  options: [
65072
65191
  { label: "8", key: "8pt", props: { "data-item": "btn-fontSize-option" } },
65073
65192
  { label: "9", key: "9pt", props: { "data-item": "btn-fontSize-option" } },
@@ -65103,14 +65222,20 @@ const makeDefaultItems = ({
65103
65222
  name: "italic",
65104
65223
  command: "toggleItalic",
65105
65224
  icon: toolbarIcons2.italic,
65106
- tooltip: toolbarTexts2.italic
65225
+ tooltip: toolbarTexts2.italic,
65226
+ attributes: {
65227
+ ariaLabel: "Italic"
65228
+ }
65107
65229
  });
65108
65230
  const underline = useToolbarItem({
65109
65231
  type: "button",
65110
65232
  name: "underline",
65111
65233
  command: "toggleUnderline",
65112
65234
  icon: toolbarIcons2.underline,
65113
- tooltip: toolbarTexts2.underline
65235
+ tooltip: toolbarTexts2.underline,
65236
+ attributes: {
65237
+ ariaLabel: "Underline"
65238
+ }
65114
65239
  });
65115
65240
  const highlight = useToolbarItem({
65116
65241
  type: "dropdown",
@@ -65123,6 +65248,9 @@ const makeDefaultItems = ({
65123
65248
  command: "setHighlight",
65124
65249
  noArgumentCommand: "unsetHighlight",
65125
65250
  suppressActiveHighlight: true,
65251
+ attributes: {
65252
+ ariaLabel: "Highlight"
65253
+ },
65126
65254
  options: [
65127
65255
  {
65128
65256
  key: "color",
@@ -65145,6 +65273,9 @@ const makeDefaultItems = ({
65145
65273
  tooltip: toolbarTexts2.color,
65146
65274
  command: "setColor",
65147
65275
  suppressActiveHighlight: true,
65276
+ attributes: {
65277
+ ariaLabel: "Color"
65278
+ },
65148
65279
  options: [
65149
65280
  {
65150
65281
  key: "color",
@@ -65165,6 +65296,9 @@ const makeDefaultItems = ({
65165
65296
  tooltip: toolbarTexts2.search,
65166
65297
  group: "right",
65167
65298
  inputRef: searchRef,
65299
+ attributes: {
65300
+ ariaLabel: "Search"
65301
+ },
65168
65302
  options: [
65169
65303
  {
65170
65304
  type: "render",
@@ -65190,6 +65324,9 @@ const makeDefaultItems = ({
65190
65324
  markName: "link",
65191
65325
  icon: toolbarIcons2.link,
65192
65326
  tooltip: toolbarTexts2.link,
65327
+ attributes: {
65328
+ ariaLabel: "Link dropdown"
65329
+ },
65193
65330
  options: [
65194
65331
  {
65195
65332
  type: "render",
@@ -65243,7 +65380,10 @@ const makeDefaultItems = ({
65243
65380
  command: "startImageUpload",
65244
65381
  icon: toolbarIcons2.image,
65245
65382
  tooltip: toolbarTexts2.image,
65246
- disabled: false
65383
+ disabled: false,
65384
+ attributes: {
65385
+ ariaLabel: "Image"
65386
+ }
65247
65387
  });
65248
65388
  const tableItem = useToolbarItem({
65249
65389
  type: "dropdown",
@@ -65254,6 +65394,9 @@ const makeDefaultItems = ({
65254
65394
  tooltip: toolbarTexts2.table,
65255
65395
  command: "insertTable",
65256
65396
  suppressActiveHighlight: true,
65397
+ attributes: {
65398
+ ariaLabel: "Table"
65399
+ },
65257
65400
  options: [
65258
65401
  {
65259
65402
  key: "table",
@@ -65280,6 +65423,9 @@ const makeDefaultItems = ({
65280
65423
  icon: toolbarIcons2.tableActions,
65281
65424
  hideLabel: true,
65282
65425
  disabled: true,
65426
+ attributes: {
65427
+ ariaLabel: "Table actions"
65428
+ },
65283
65429
  options: [
65284
65430
  {
65285
65431
  type: "render",
@@ -65292,69 +65438,102 @@ const makeDefaultItems = ({
65292
65438
  label: toolbarTexts2.addRowBefore,
65293
65439
  command: "addRowBefore",
65294
65440
  icon: toolbarIcons2.addRowBefore,
65295
- props: { "data-item": "btn-tableActions-option" }
65441
+ props: {
65442
+ "data-item": "btn-tableActions-option",
65443
+ ariaLabel: "Add row before"
65444
+ }
65296
65445
  },
65297
65446
  {
65298
65447
  label: toolbarTexts2.addRowAfter,
65299
65448
  command: "addRowAfter",
65300
65449
  icon: toolbarIcons2.addRowAfter,
65301
- props: { "data-item": "btn-tableActions-option" }
65450
+ props: {
65451
+ "data-item": "btn-tableActions-option",
65452
+ ariaLabel: "Add row after"
65453
+ }
65302
65454
  },
65303
65455
  {
65304
65456
  label: toolbarTexts2.addColumnBefore,
65305
65457
  command: "addColumnBefore",
65306
65458
  icon: toolbarIcons2.addColumnBefore,
65307
- props: { "data-item": "btn-tableActions-option" }
65459
+ props: {
65460
+ "data-item": "btn-tableActions-option",
65461
+ ariaLabel: "Add column before"
65462
+ }
65308
65463
  },
65309
65464
  {
65310
65465
  label: toolbarTexts2.addColumnAfter,
65311
65466
  command: "addColumnAfter",
65312
65467
  icon: toolbarIcons2.addColumnAfter,
65313
65468
  bottomBorder: true,
65314
- props: { "data-item": "btn-tableActions-option" }
65469
+ props: {
65470
+ "data-item": "btn-tableActions-option",
65471
+ ariaLabel: "Add column after"
65472
+ }
65315
65473
  },
65316
65474
  {
65317
65475
  label: toolbarTexts2.deleteRow,
65318
65476
  command: "deleteRow",
65319
65477
  icon: toolbarIcons2.deleteRow,
65320
- props: { "data-item": "btn-tableActions-option" }
65478
+ props: {
65479
+ "data-item": "btn-tableActions-option",
65480
+ ariaLabel: "Delete row"
65481
+ }
65321
65482
  },
65322
65483
  {
65323
65484
  label: toolbarTexts2.deleteColumn,
65324
65485
  command: "deleteColumn",
65325
65486
  icon: toolbarIcons2.deleteColumn,
65326
- props: { "data-item": "btn-tableActions-option" }
65487
+ props: {
65488
+ "data-item": "btn-tableActions-option",
65489
+ ariaLabel: "Delete column"
65490
+ }
65327
65491
  },
65328
65492
  {
65329
65493
  label: toolbarTexts2.deleteTable,
65330
65494
  command: "deleteTable",
65331
65495
  icon: toolbarIcons2.deleteTable,
65332
- props: { "data-item": "btn-tableActions-option" }
65496
+ props: {
65497
+ "data-item": "btn-tableActions-option",
65498
+ ariaLabel: "Delete table"
65499
+ }
65333
65500
  },
65334
65501
  {
65335
65502
  label: toolbarTexts2.transparentBorders,
65336
65503
  command: "deleteCellAndTableBorders",
65337
65504
  icon: toolbarIcons2.deleteBorders,
65338
65505
  bottomBorder: true,
65339
- props: { "data-item": "btn-tableActions-option" }
65506
+ props: {
65507
+ "data-item": "btn-tableActions-option",
65508
+ ariaLabel: "Delete cell and table borders"
65509
+ }
65340
65510
  },
65341
65511
  {
65342
65512
  label: toolbarTexts2.mergeCells,
65343
65513
  command: "mergeCells",
65344
65514
  icon: toolbarIcons2.mergeCells,
65345
- props: { "data-item": "btn-tableActions-option" }
65515
+ props: {
65516
+ "data-item": "btn-tableActions-option",
65517
+ ariaLabel: "Merge cells"
65518
+ }
65346
65519
  },
65347
65520
  {
65348
65521
  label: toolbarTexts2.splitCell,
65349
65522
  command: "splitCell",
65350
65523
  icon: toolbarIcons2.splitCell,
65351
- props: { "data-item": "btn-tableActions-option" }
65524
+ props: {
65525
+ "data-item": "btn-tableActions-option",
65526
+ ariaLabel: "Split cells"
65527
+ }
65352
65528
  },
65353
65529
  {
65354
65530
  label: toolbarTexts2.fixTables,
65355
65531
  command: "fixTables",
65356
65532
  icon: toolbarIcons2.fixTables,
65357
- props: { "data-item": "btn-tableActions-option" }
65533
+ props: {
65534
+ "data-item": "btn-tableActions-option",
65535
+ ariaLabel: "Fix tables"
65536
+ }
65358
65537
  }
65359
65538
  ];
65360
65539
  function renderTableActions(tableActionsItem2) {
@@ -65377,6 +65556,9 @@ const makeDefaultItems = ({
65377
65556
  markName: "textAlign",
65378
65557
  labelAttr: "textAlign",
65379
65558
  suppressActiveHighlight: true,
65559
+ attributes: {
65560
+ ariaLabel: "Text align"
65561
+ },
65380
65562
  options: [
65381
65563
  {
65382
65564
  type: "render",
@@ -65420,14 +65602,20 @@ const makeDefaultItems = ({
65420
65602
  name: "list",
65421
65603
  command: "toggleBulletList",
65422
65604
  icon: toolbarIcons2.bulletList,
65423
- tooltip: toolbarTexts2.bulletList
65605
+ tooltip: toolbarTexts2.bulletList,
65606
+ attributes: {
65607
+ ariaLabel: "Bullet list"
65608
+ }
65424
65609
  });
65425
65610
  const numberedList = useToolbarItem({
65426
65611
  type: "button",
65427
65612
  name: "numberedlist",
65428
65613
  command: "toggleOrderedList",
65429
65614
  icon: toolbarIcons2.numberedList,
65430
- tooltip: toolbarTexts2.numberedList
65615
+ tooltip: toolbarTexts2.numberedList,
65616
+ attributes: {
65617
+ ariaLabel: "Numbered list"
65618
+ }
65431
65619
  });
65432
65620
  const indentLeft = useToolbarItem({
65433
65621
  type: "button",
@@ -65435,7 +65623,10 @@ const makeDefaultItems = ({
65435
65623
  command: "decreaseTextIndent",
65436
65624
  icon: toolbarIcons2.indentLeft,
65437
65625
  tooltip: toolbarTexts2.indentLeft,
65438
- disabled: false
65626
+ disabled: false,
65627
+ attributes: {
65628
+ ariaLabel: "Left indent"
65629
+ }
65439
65630
  });
65440
65631
  const indentRight = useToolbarItem({
65441
65632
  type: "button",
@@ -65443,14 +65634,20 @@ const makeDefaultItems = ({
65443
65634
  command: "increaseTextIndent",
65444
65635
  icon: toolbarIcons2.indentRight,
65445
65636
  tooltip: toolbarTexts2.indentRight,
65446
- disabled: false
65637
+ disabled: false,
65638
+ attributes: {
65639
+ ariaLabel: "Right indent"
65640
+ }
65447
65641
  });
65448
65642
  const overflow = useToolbarItem({
65449
65643
  type: "overflow",
65450
65644
  name: "overflow",
65451
65645
  command: "toggleOverflow",
65452
65646
  icon: toolbarIcons2.overflow,
65453
- disabled: false
65647
+ disabled: false,
65648
+ attributes: {
65649
+ ariaLabel: "Overflow items"
65650
+ }
65454
65651
  });
65455
65652
  const zoom = useToolbarItem({
65456
65653
  type: "dropdown",
@@ -65464,6 +65661,9 @@ const makeDefaultItems = ({
65464
65661
  isWide: true,
65465
65662
  inlineTextInputVisible: false,
65466
65663
  hasInlineTextInput: true,
65664
+ attributes: {
65665
+ ariaLabel: "Zoom"
65666
+ },
65467
65667
  options: [
65468
65668
  { label: "50%", key: 0.5, props: { "data-item": "btn-zoom-option" } },
65469
65669
  { label: "75%", key: 0.75, props: { "data-item": "btn-zoom-option" } },
@@ -65486,6 +65686,9 @@ const makeDefaultItems = ({
65486
65686
  command: "undo",
65487
65687
  icon: toolbarIcons2.undo,
65488
65688
  group: "left",
65689
+ attributes: {
65690
+ ariaLabel: "Undo"
65691
+ },
65489
65692
  onDeactivate: () => {
65490
65693
  undo2.disabled.value = !superToolbar.undoDepth;
65491
65694
  }
@@ -65498,6 +65701,9 @@ const makeDefaultItems = ({
65498
65701
  command: "redo",
65499
65702
  icon: toolbarIcons2.redo,
65500
65703
  group: "left",
65704
+ attributes: {
65705
+ ariaLabel: "Redo"
65706
+ },
65501
65707
  onDeactivate: () => {
65502
65708
  redo2.disabled.value = !superToolbar.redoDepth;
65503
65709
  }
@@ -65509,7 +65715,10 @@ const makeDefaultItems = ({
65509
65715
  tooltip: toolbarTexts2.trackChanges,
65510
65716
  command: "toggleTrackChanges",
65511
65717
  icon: toolbarIcons2.trackChanges,
65512
- group: "left"
65718
+ group: "left",
65719
+ attributes: {
65720
+ ariaLabel: "Track changes"
65721
+ }
65513
65722
  });
65514
65723
  const acceptTrackedChangeBySelection = useToolbarItem({
65515
65724
  type: "button",
@@ -65518,7 +65727,10 @@ const makeDefaultItems = ({
65518
65727
  tooltip: toolbarTexts2.trackChangesAccept,
65519
65728
  command: "acceptTrackedChangeBySelection",
65520
65729
  icon: toolbarIcons2.trackChangesAccept,
65521
- group: "left"
65730
+ group: "left",
65731
+ attributes: {
65732
+ ariaLabel: "Accept tracked changes"
65733
+ }
65522
65734
  });
65523
65735
  const rejectTrackedChangeOnSelection = useToolbarItem({
65524
65736
  type: "button",
@@ -65527,7 +65739,10 @@ const makeDefaultItems = ({
65527
65739
  tooltip: toolbarTexts2.trackChangesReject,
65528
65740
  command: "rejectTrackedChangeOnSelection",
65529
65741
  icon: toolbarIcons2.trackChangesReject,
65530
- group: "left"
65742
+ group: "left",
65743
+ attributes: {
65744
+ ariaLabel: "Reject tracked changes"
65745
+ }
65531
65746
  });
65532
65747
  const toggleTrackChangesOriginal = useToolbarItem({
65533
65748
  type: "button",
@@ -65536,7 +65751,10 @@ const makeDefaultItems = ({
65536
65751
  tooltip: toolbarTexts2.trackChangesOriginal,
65537
65752
  command: "toggleTrackChangesShowOriginal",
65538
65753
  icon: toolbarIcons2.trackChangesOriginal,
65539
- group: "left"
65754
+ group: "left",
65755
+ attributes: {
65756
+ ariaLabel: "Toggle tracked changes show original"
65757
+ }
65540
65758
  });
65541
65759
  const toggleTrackChangesFinal = useToolbarItem({
65542
65760
  type: "button",
@@ -65545,14 +65763,20 @@ const makeDefaultItems = ({
65545
65763
  tooltip: toolbarTexts2.trackChangesFinal,
65546
65764
  command: "toggleTrackChangesShowFinal",
65547
65765
  icon: toolbarIcons2.trackChangesFinal,
65548
- group: "left"
65766
+ group: "left",
65767
+ attributes: {
65768
+ ariaLabel: "Toggle tracked changes show final"
65769
+ }
65549
65770
  });
65550
65771
  const clearFormatting = useToolbarItem({
65551
65772
  type: "button",
65552
65773
  name: "clearFormatting",
65553
65774
  command: "clearFormat",
65554
65775
  tooltip: toolbarTexts2.clearFormatting,
65555
- icon: toolbarIcons2.clearFormatting
65776
+ icon: toolbarIcons2.clearFormatting,
65777
+ attributes: {
65778
+ ariaLabel: "Clear formatting"
65779
+ }
65556
65780
  });
65557
65781
  [
65558
65782
  bold,
@@ -65568,7 +65792,10 @@ const makeDefaultItems = ({
65568
65792
  name: "copyFormat",
65569
65793
  tooltip: toolbarTexts2.copyFormat,
65570
65794
  icon: toolbarIcons2.copyFormat,
65571
- command: "copyFormat"
65795
+ command: "copyFormat",
65796
+ attributes: {
65797
+ ariaLabel: "Copy formatting"
65798
+ }
65572
65799
  });
65573
65800
  const getDocumentOptionsAfterRole = (role2, documentOptions2) => {
65574
65801
  if (role2 === "editor") return documentOptions2;
@@ -65597,7 +65824,8 @@ const makeDefaultItems = ({
65597
65824
  disabled: role !== "editor",
65598
65825
  attributes: {
65599
65826
  dropdownPosition: "right",
65600
- className: "toolbar-item--doc-mode"
65827
+ className: "toolbar-item--doc-mode",
65828
+ ariaLabel: "Document mode"
65601
65829
  },
65602
65830
  options: [
65603
65831
  {
@@ -65644,7 +65872,10 @@ const makeDefaultItems = ({
65644
65872
  name: "pageBreakTool",
65645
65873
  command: "insertPageBreak",
65646
65874
  icon: toolbarIcons2.pageBreak,
65647
- tooltip: toolbarTexts2.pageBreak
65875
+ tooltip: toolbarTexts2.pageBreak,
65876
+ attributes: {
65877
+ ariaLabel: "Page break"
65878
+ }
65648
65879
  });
65649
65880
  const controlSizes = /* @__PURE__ */ new Map([
65650
65881
  ["separator", 20],
@@ -65662,7 +65893,10 @@ const makeDefaultItems = ({
65662
65893
  name: "ruler",
65663
65894
  command: "toggleRuler",
65664
65895
  icon: toolbarIcons2.ruler,
65665
- tooltip: toolbarTexts2.ruler
65896
+ tooltip: toolbarTexts2.ruler,
65897
+ attributes: {
65898
+ ariaLabel: "Ruler"
65899
+ }
65666
65900
  });
65667
65901
  const selectedLinkedStyle = ref$1(null);
65668
65902
  const linkedStyles = useToolbarItem({
@@ -65678,7 +65912,8 @@ const makeDefaultItems = ({
65678
65912
  suppressActiveHighlight: true,
65679
65913
  disabled: false,
65680
65914
  attributes: {
65681
- className: "toolbar-item--linked-styles"
65915
+ className: "toolbar-item--linked-styles",
65916
+ ariaLabel: "Linked styles"
65682
65917
  },
65683
65918
  options: [
65684
65919
  {
@@ -65725,6 +65960,9 @@ const makeDefaultItems = ({
65725
65960
  command: "setLineHeight",
65726
65961
  dropdownValueKey: "key",
65727
65962
  selectedValue: "1",
65963
+ attributes: {
65964
+ ariaLabel: "Line height"
65965
+ },
65728
65966
  options: [
65729
65967
  { label: "1,0", key: "1", icon: () => renderIcon("1", lineHeight2.selectedValue), props: { "data-item": "btn-lineHeight-option" } },
65730
65968
  { label: "1,15", key: "1.15", icon: () => renderIcon("1.15", lineHeight2.selectedValue), props: { "data-item": "btn-lineHeight-option" } },
@@ -67042,7 +67280,8 @@ const _sfc_main$2 = {
67042
67280
  createBaseVNode("div", {
67043
67281
  ref_key: "editorElem",
67044
67282
  ref: editorElem,
67045
- class: "editor-element super-editor__element"
67283
+ class: "editor-element super-editor__element",
67284
+ role: "presentation"
67046
67285
  }, null, 512)
67047
67286
  ], 544),
67048
67287
  !editorReady.value ? (openBlock(), createElementBlock("div", _hoisted_2, [
@@ -67094,7 +67333,7 @@ const _sfc_main$2 = {
67094
67333
  };
67095
67334
  }
67096
67335
  };
67097
- const SuperEditor = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-ff8f86f4"]]);
67336
+ const SuperEditor = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-f27b7c30"]]);
67098
67337
  const _sfc_main$1 = {
67099
67338
  __name: "BasicUpload",
67100
67339
  emits: ["file-change"],
@@ -67221,19 +67460,18 @@ export {
67221
67460
  SuperConverter as S,
67222
67461
  Toolbar as T,
67223
67462
  _sfc_main$1 as _,
67224
- AnnotatorHelpers as a,
67225
- Extensions as b,
67226
- SuperEditor as c,
67227
- SuperInput as d,
67228
- SuperToolbar as e,
67229
- TrackChangesBasePluginKey as f,
67230
- createZip as g,
67231
- getActiveFormatting as h,
67463
+ Extensions as a,
67464
+ SuperEditor as b,
67465
+ SuperInput as c,
67466
+ SuperToolbar as d,
67467
+ TrackChangesBasePluginKey as e,
67468
+ createZip as f,
67469
+ getActiveFormatting as g,
67470
+ getAllowedImageDimensions as h,
67232
67471
  index$1 as i,
67233
- getAllowedImageDimensions as j,
67234
- getMarksFromSelection as k,
67235
- getRichTextExtensions as l,
67236
- getStarterExtensions as m,
67237
- helpers as n,
67238
- index as o
67472
+ getMarksFromSelection as j,
67473
+ getRichTextExtensions as k,
67474
+ getStarterExtensions as l,
67475
+ helpers as m,
67476
+ index as n
67239
67477
  };