@harbour-enterprises/superdoc 0.29.0-next.14 → 0.29.0-next.16

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 (31) hide show
  1. package/dist/chunks/{PdfViewer-DLN3Y3_F.cjs → PdfViewer-B14Psbm5.cjs} +1 -1
  2. package/dist/chunks/{PdfViewer-BEO8hsqF.es.js → PdfViewer-CpbPbmhH.es.js} +1 -1
  3. package/dist/chunks/{index-BXgp6uWu.es.js → index-BAB9eQRg.es.js} +3 -3
  4. package/dist/chunks/{index-yUHHKfBN-ChT8BlSW.es.js → index-BE8ctcJ1-BVHEZaEv.es.js} +1 -1
  5. package/dist/chunks/{index-yUHHKfBN-4EGB8drV.cjs → index-BE8ctcJ1-BsFfsr_5.cjs} +1 -1
  6. package/dist/chunks/{index-BaAAtu4I.cjs → index-BRloVMt4.cjs} +3 -3
  7. package/dist/chunks/{super-editor.es-w3oeQ-Dp.cjs → super-editor.es-hL-1R4Qv.cjs} +13 -8
  8. package/dist/chunks/{super-editor.es-CuXZDBte.es.js → super-editor.es-soAIWbdF.es.js} +13 -8
  9. package/dist/style.css +27 -10
  10. package/dist/super-editor/ai-writer.es.js +2 -2
  11. package/dist/super-editor/chunks/{converter-BeTmlsUD.js → converter-Dw2FWHjz.js} +1 -1
  12. package/dist/super-editor/chunks/{docx-zipper-BMC2MmfQ.js → docx-zipper-B-OgBQQi.js} +1 -1
  13. package/dist/super-editor/chunks/{editor-Cl128I8j.js → editor-CtEAROku.js} +4 -4
  14. package/dist/super-editor/chunks/{index-yUHHKfBN.js → index-BE8ctcJ1.js} +1 -1
  15. package/dist/super-editor/chunks/{toolbar-B47oEw9Q.js → toolbar-Bya4b9Yv.js} +2 -2
  16. package/dist/super-editor/converter.es.js +1 -1
  17. package/dist/super-editor/docx-zipper.es.js +2 -2
  18. package/dist/super-editor/editor.es.js +3 -3
  19. package/dist/super-editor/file-zipper.es.js +1 -1
  20. package/dist/super-editor/style.css +27 -10
  21. package/dist/super-editor/super-editor/src/components/toolbar/defaultItems.d.ts.map +1 -1
  22. package/dist/super-editor/super-editor/src/components/toolbar/super-toolbar.d.ts.map +1 -1
  23. package/dist/super-editor/super-editor.es.js +16 -11
  24. package/dist/super-editor/toolbar.es.js +2 -2
  25. package/dist/super-editor.cjs +1 -1
  26. package/dist/super-editor.es.js +1 -1
  27. package/dist/superdoc.cjs +2 -2
  28. package/dist/superdoc.es.js +2 -2
  29. package/dist/superdoc.umd.js +15 -10
  30. package/dist/superdoc.umd.js.map +1 -1
  31. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const vue = require("./vue-BQxRC6G7.cjs");
4
- const superdoc = require("./index-BaAAtu4I.cjs");
4
+ const superdoc = require("./index-BRloVMt4.cjs");
5
5
  function self(vars) {
6
6
  const {
7
7
  opacityDisabled,
@@ -1,5 +1,5 @@
1
1
  import { m as defineComponent, y as h, O as Transition, $ as process$1, J as watchEffect, a as computed, r as ref, j as onMounted, W as onUnmounted, b as createElementBlock, o as openBlock, f as createBaseVNode, e as createCommentVNode, v as createVNode, x as unref } from "./vue-D1vcEBAQ.es.js";
2
- import { d as derived, c, a as cB, f as fadeInTransition, b as cM, N as NBaseLoading, w as warnOnce, u as useConfig, e as useTheme, p as pxfy, g as createKey, h as useThemeClass, i as useCompitable, _ as _export_sfc, j as useSuperdocStore, s as storeToRefs, k as useSelection } from "./index-BXgp6uWu.es.js";
2
+ import { d as derived, c, a as cB, f as fadeInTransition, b as cM, N as NBaseLoading, w as warnOnce, u as useConfig, e as useTheme, p as pxfy, g as createKey, h as useThemeClass, i as useCompitable, _ as _export_sfc, j as useSuperdocStore, s as storeToRefs, k as useSelection } from "./index-BAB9eQRg.es.js";
3
3
  function self(vars) {
4
4
  const {
5
5
  opacityDisabled,
@@ -1,4 +1,4 @@
1
- import { q as index, C as CommentsPluginKey, h as TrackChangesBasePluginKey, E as Editor, n as getRichTextExtensions, f as SuperInput, e as SuperEditor, A as AIWriter, g as SuperToolbar, i as createZip } from "./super-editor.es-CuXZDBte.es.js";
1
+ import { q as index, C as CommentsPluginKey, h as TrackChangesBasePluginKey, E as Editor, n as getRichTextExtensions, f as SuperInput, e as SuperEditor, A as AIWriter, g as SuperToolbar, i as createZip } from "./super-editor.es-soAIWbdF.es.js";
2
2
  import { B as BlankDOCX } from "./blank-docx-ABm6XYAA.es.js";
3
3
  import { E as EventEmitter } from "./eventemitter3-D4gv5QOO.es.js";
4
4
  import { HocuspocusProvider, HocuspocusProviderWebsocket } from "@hocuspocus/provider";
@@ -17201,7 +17201,7 @@ const _sfc_main = {
17201
17201
  __name: "SuperDoc",
17202
17202
  emits: ["selection-update"],
17203
17203
  setup(__props, { emit: __emit }) {
17204
- const PdfViewer = defineAsyncComponent(() => import("./PdfViewer-BEO8hsqF.es.js"));
17204
+ const PdfViewer = defineAsyncComponent(() => import("./PdfViewer-CpbPbmhH.es.js"));
17205
17205
  const superdocStore = useSuperdocStore();
17206
17206
  const commentsStore = useCommentsStore();
17207
17207
  const {
@@ -17965,7 +17965,7 @@ class SuperDoc extends EventEmitter {
17965
17965
  this.config.colors = shuffleArray(this.config.colors);
17966
17966
  this.userColorMap = /* @__PURE__ */ new Map();
17967
17967
  this.colorIndex = 0;
17968
- this.version = "0.29.0-next.14";
17968
+ this.version = "0.29.0-next.16";
17969
17969
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
17970
17970
  this.superdocId = config.superdocId || v4();
17971
17971
  this.colors = this.config.colors;
@@ -1,4 +1,4 @@
1
- import { s as getDefaultExportFromCjs$2 } from "./super-editor.es-CuXZDBte.es.js";
1
+ import { s as getDefaultExportFromCjs$2 } from "./super-editor.es-soAIWbdF.es.js";
2
2
  import { V as VFile } from "./index-CvBqQJbG-CvBqQJbG.es.js";
3
3
  function bail(error) {
4
4
  if (error) {
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const superEditor_es = require("./super-editor.es-w3oeQ-Dp.cjs");
3
+ const superEditor_es = require("./super-editor.es-hL-1R4Qv.cjs");
4
4
  const indexCvBqQJbG = require("./index-CvBqQJbG-Dwm0THD7.cjs");
5
5
  function bail(error) {
6
6
  if (error) {
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const superEditor_es = require("./super-editor.es-w3oeQ-Dp.cjs");
2
+ const superEditor_es = require("./super-editor.es-hL-1R4Qv.cjs");
3
3
  const blankDocx = require("./blank-docx-DfW3Eeh2.cjs");
4
4
  const eventemitter3 = require("./eventemitter3-BvTILlBo.cjs");
5
5
  const provider = require("@hocuspocus/provider");
@@ -17218,7 +17218,7 @@ const _sfc_main = {
17218
17218
  __name: "SuperDoc",
17219
17219
  emits: ["selection-update"],
17220
17220
  setup(__props, { emit: __emit }) {
17221
- const PdfViewer = vue.defineAsyncComponent(() => Promise.resolve().then(() => require("./PdfViewer-DLN3Y3_F.cjs")));
17221
+ const PdfViewer = vue.defineAsyncComponent(() => Promise.resolve().then(() => require("./PdfViewer-B14Psbm5.cjs")));
17222
17222
  const superdocStore = useSuperdocStore();
17223
17223
  const commentsStore = useCommentsStore();
17224
17224
  const {
@@ -17982,7 +17982,7 @@ class SuperDoc extends eventemitter3.EventEmitter {
17982
17982
  this.config.colors = shuffleArray(this.config.colors);
17983
17983
  this.userColorMap = /* @__PURE__ */ new Map();
17984
17984
  this.colorIndex = 0;
17985
- this.version = "0.29.0-next.14";
17985
+ this.version = "0.29.0-next.16";
17986
17986
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
17987
17987
  this.superdocId = config.superdocId || uuid.v4();
17988
17988
  this.colors = this.config.colors;
@@ -35781,7 +35781,7 @@ const _SuperConverter = class _SuperConverter2 {
35781
35781
  static getStoredSuperdocVersion(docx) {
35782
35782
  return _SuperConverter2.getStoredCustomProperty(docx, "SuperdocVersion");
35783
35783
  }
35784
- static setStoredSuperdocVersion(docx = this.convertedXml, version2 = "0.29.0-next.14") {
35784
+ static setStoredSuperdocVersion(docx = this.convertedXml, version2 = "0.29.0-next.16") {
35785
35785
  return _SuperConverter2.setStoredCustomProperty(docx, "SuperdocVersion", version2, false);
35786
35786
  }
35787
35787
  /**
@@ -53970,7 +53970,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
53970
53970
  { default: remarkStringify },
53971
53971
  { default: remarkGfm }
53972
53972
  ] = await Promise.all([
53973
- Promise.resolve().then(() => require("./index-yUHHKfBN-4EGB8drV.cjs")),
53973
+ Promise.resolve().then(() => require("./index-BE8ctcJ1-BsFfsr_5.cjs")),
53974
53974
  Promise.resolve().then(() => require("./index-DRCvimau-H4Ck3S9a.cjs")),
53975
53975
  Promise.resolve().then(() => require("./index-C_x_N6Uh-Db3CUJMX.cjs")),
53976
53976
  Promise.resolve().then(() => require("./index-D_sWOSiG-BtDZzJ6I.cjs")),
@@ -54188,7 +54188,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
54188
54188
  * @returns {Object | void} Migration results
54189
54189
  */
54190
54190
  processCollaborationMigrations() {
54191
- console.debug("[checkVersionMigrations] Current editor version", "0.29.0-next.14");
54191
+ console.debug("[checkVersionMigrations] Current editor version", "0.29.0-next.16");
54192
54192
  if (!this.options.ydoc) return;
54193
54193
  const metaMap = this.options.ydoc.getMap("meta");
54194
54194
  let docVersion = metaMap.get("version");
@@ -88566,7 +88566,7 @@ const _hoisted_1$b = {
88566
88566
  key: 0,
88567
88567
  class: "linked-style-buttons"
88568
88568
  };
88569
- const _hoisted_2$8 = ["onClick", "onKeydown"];
88569
+ const _hoisted_2$8 = ["onClick", "onKeydown", "aria-label"];
88570
88570
  const _sfc_main$c = {
88571
88571
  __name: "LinkedStyle",
88572
88572
  props: {
@@ -88611,7 +88611,6 @@ const _sfc_main$c = {
88611
88611
  moveToPreviousStyle(index2);
88612
88612
  break;
88613
88613
  case "Enter":
88614
- console.log("style", style2);
88615
88614
  select(style2);
88616
88615
  break;
88617
88616
  }
@@ -88627,6 +88626,7 @@ const _sfc_main$c = {
88627
88626
  class: vue.normalizeClass(["style-item", { selected: __props.selectedOption === style2.id }]),
88628
88627
  onClick: ($event) => select(style2),
88629
88628
  onKeydown: (event) => handleKeyDown2(event, index2, style2),
88629
+ "aria-label": `Linked style - ${style2.id}`,
88630
88630
  ref_for: true,
88631
88631
  ref_key: "styleRefs",
88632
88632
  ref: styleRefs
@@ -88642,7 +88642,7 @@ const _sfc_main$c = {
88642
88642
  };
88643
88643
  }
88644
88644
  };
88645
- const LinkedStyle = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-698bdb8e"]]);
88645
+ const LinkedStyle = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-9c96d4a1"]]);
88646
88646
  const _hoisted_1$a = {
88647
88647
  key: 0,
88648
88648
  class: "link-title"
@@ -90362,11 +90362,15 @@ const makeDefaultItems = ({
90362
90362
  }
90363
90363
  }
90364
90364
  ],
90365
- onActivate: () => {
90365
+ onActivate: ({ linkedStyleMark }) => {
90366
+ const styles = getQuickFormatList(superToolbar.activeEditor);
90367
+ const selectedStyle = styles?.find((style2) => style2.id === linkedStyleMark?.attrs?.styleId);
90368
+ linkedStyles.label.value = selectedStyle ? selectedStyle.definition.attrs.name : toolbarTexts2.formatText;
90366
90369
  linkedStyles.disabled.value = false;
90367
90370
  },
90368
90371
  onDeactivate: () => {
90369
90372
  linkedStyles.disabled.value = true;
90373
+ linkedStyles.label.value = toolbarTexts2.formatText;
90370
90374
  }
90371
90375
  });
90372
90376
  const renderIcon = (value, selectedValue) => {
@@ -91071,10 +91075,11 @@ class SuperToolbar extends EventEmitter2 {
91071
91075
  item.setDisabled(!canRejectTrackedChanges);
91072
91076
  }
91073
91077
  if (item.name.value === "linkedStyles") {
91078
+ const linkedStyleMark = marks.find((mark) => mark.name === "styleId");
91074
91079
  if (this.activeEditor && !getQuickFormatList(this.activeEditor).length) {
91075
91080
  return item.deactivate();
91076
91081
  } else {
91077
- return item.activate();
91082
+ return item.activate({ linkedStyleMark });
91078
91083
  }
91079
91084
  }
91080
91085
  const rawActiveMark = marks.find((mark) => mark.name === item.name.value);
@@ -35764,7 +35764,7 @@ const _SuperConverter = class _SuperConverter2 {
35764
35764
  static getStoredSuperdocVersion(docx) {
35765
35765
  return _SuperConverter2.getStoredCustomProperty(docx, "SuperdocVersion");
35766
35766
  }
35767
- static setStoredSuperdocVersion(docx = this.convertedXml, version2 = "0.29.0-next.14") {
35767
+ static setStoredSuperdocVersion(docx = this.convertedXml, version2 = "0.29.0-next.16") {
35768
35768
  return _SuperConverter2.setStoredCustomProperty(docx, "SuperdocVersion", version2, false);
35769
35769
  }
35770
35770
  /**
@@ -53953,7 +53953,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
53953
53953
  { default: remarkStringify },
53954
53954
  { default: remarkGfm }
53955
53955
  ] = await Promise.all([
53956
- import("./index-yUHHKfBN-ChT8BlSW.es.js"),
53956
+ import("./index-BE8ctcJ1-BVHEZaEv.es.js"),
53957
53957
  import("./index-DRCvimau-Cw339678.es.js"),
53958
53958
  import("./index-C_x_N6Uh-DJn8hIEt.es.js"),
53959
53959
  import("./index-D_sWOSiG-DE96TaT5.es.js"),
@@ -54171,7 +54171,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
54171
54171
  * @returns {Object | void} Migration results
54172
54172
  */
54173
54173
  processCollaborationMigrations() {
54174
- console.debug("[checkVersionMigrations] Current editor version", "0.29.0-next.14");
54174
+ console.debug("[checkVersionMigrations] Current editor version", "0.29.0-next.16");
54175
54175
  if (!this.options.ydoc) return;
54176
54176
  const metaMap = this.options.ydoc.getMap("meta");
54177
54177
  let docVersion = metaMap.get("version");
@@ -88549,7 +88549,7 @@ const _hoisted_1$b = {
88549
88549
  key: 0,
88550
88550
  class: "linked-style-buttons"
88551
88551
  };
88552
- const _hoisted_2$8 = ["onClick", "onKeydown"];
88552
+ const _hoisted_2$8 = ["onClick", "onKeydown", "aria-label"];
88553
88553
  const _sfc_main$c = {
88554
88554
  __name: "LinkedStyle",
88555
88555
  props: {
@@ -88594,7 +88594,6 @@ const _sfc_main$c = {
88594
88594
  moveToPreviousStyle(index2);
88595
88595
  break;
88596
88596
  case "Enter":
88597
- console.log("style", style2);
88598
88597
  select(style2);
88599
88598
  break;
88600
88599
  }
@@ -88610,6 +88609,7 @@ const _sfc_main$c = {
88610
88609
  class: normalizeClass(["style-item", { selected: __props.selectedOption === style2.id }]),
88611
88610
  onClick: ($event) => select(style2),
88612
88611
  onKeydown: (event) => handleKeyDown2(event, index2, style2),
88612
+ "aria-label": `Linked style - ${style2.id}`,
88613
88613
  ref_for: true,
88614
88614
  ref_key: "styleRefs",
88615
88615
  ref: styleRefs
@@ -88625,7 +88625,7 @@ const _sfc_main$c = {
88625
88625
  };
88626
88626
  }
88627
88627
  };
88628
- const LinkedStyle = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-698bdb8e"]]);
88628
+ const LinkedStyle = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-9c96d4a1"]]);
88629
88629
  const _hoisted_1$a = {
88630
88630
  key: 0,
88631
88631
  class: "link-title"
@@ -90345,11 +90345,15 @@ const makeDefaultItems = ({
90345
90345
  }
90346
90346
  }
90347
90347
  ],
90348
- onActivate: () => {
90348
+ onActivate: ({ linkedStyleMark }) => {
90349
+ const styles = getQuickFormatList(superToolbar.activeEditor);
90350
+ const selectedStyle = styles?.find((style2) => style2.id === linkedStyleMark?.attrs?.styleId);
90351
+ linkedStyles.label.value = selectedStyle ? selectedStyle.definition.attrs.name : toolbarTexts2.formatText;
90349
90352
  linkedStyles.disabled.value = false;
90350
90353
  },
90351
90354
  onDeactivate: () => {
90352
90355
  linkedStyles.disabled.value = true;
90356
+ linkedStyles.label.value = toolbarTexts2.formatText;
90353
90357
  }
90354
90358
  });
90355
90359
  const renderIcon = (value, selectedValue) => {
@@ -91054,10 +91058,11 @@ class SuperToolbar extends EventEmitter2 {
91054
91058
  item.setDisabled(!canRejectTrackedChanges);
91055
91059
  }
91056
91060
  if (item.name.value === "linkedStyles") {
91061
+ const linkedStyleMark = marks.find((mark) => mark.name === "styleId");
91057
91062
  if (this.activeEditor && !getQuickFormatList(this.activeEditor).length) {
91058
91063
  return item.deactivate();
91059
91064
  } else {
91060
- return item.activate();
91065
+ return item.activate({ linkedStyleMark });
91061
91066
  }
91062
91067
  }
91063
91068
  const rawActiveMark = marks.find((mark) => mark.name === item.name.value);
package/dist/style.css CHANGED
@@ -785,13 +785,19 @@ to {
785
785
  :root {
786
786
  /* CSS variables */
787
787
  }
788
+ /* Isolate editor content from external/client CSS by reverting all properties.
789
+ * IMPORTANT: We exclude SVG elements and their children from this rule because
790
+ * 'all: revert' breaks SVG rendering (paths don't display, transforms don't work).
791
+ * SVG has its own rendering model and doesn't need CSS isolation the same way text content does.
792
+ */
788
793
  .sd-editor-scoped,
789
- .sd-editor-scoped :where(*),
790
- .sd-editor-scoped :where(*::before),
791
- .sd-editor-scoped :where(*::after) {
792
- /* all: revert; - affects display of SVGs - paths are not being rendered. */
794
+ .sd-editor-scoped :where(*:not(svg):not(svg *)),
795
+ .sd-editor-scoped :where(*:not(svg):not(svg *)::before),
796
+ .sd-editor-scoped :where(*:not(svg):not(svg *)::after) {
797
+ all: revert;
793
798
  box-sizing: border-box;
794
799
  }
800
+ /* Ensure SVG display properties for proper rendering */
795
801
  .sd-editor-scoped svg {
796
802
  display: inline-block;
797
803
  overflow: visible;
@@ -799,6 +805,17 @@ to {
799
805
  .sd-editor-scoped {
800
806
  display: block;
801
807
  }
808
+ /*
809
+ * Visual Regression Testing:
810
+ * This CSS isolation is critical for protecting editor content from external stylesheets.
811
+ * Visual regression tests should be added to the visual testing repository to ensure:
812
+ * 1. Text content is not affected by aggressive global CSS
813
+ * 2. SVG shapes (shape groups, vector shapes) render correctly
814
+ * 3. No visual regressions when client applications have conflicting styles
815
+ *
816
+ * Reference: PR #1219 - "improve style scoping in the editor to prevent external styles affecting content"
817
+ * Reference: PR #1236 - "shape groups" (this fix ensures both isolation AND SVG rendering work)
818
+ */
802
819
  .sd-input-active {
803
820
  border: 1px solid #1355ff !important;
804
821
  }
@@ -1723,13 +1740,13 @@ on the right if it is inside shape textbox.
1723
1740
  color: #666;
1724
1741
  }
1725
1742
 
1726
- .style-name[data-v-698bdb8e] {
1743
+ .style-name[data-v-9c96d4a1] {
1727
1744
  padding: 16px 10px;
1728
1745
  }
1729
- .style-name[data-v-698bdb8e]:hover {
1746
+ .style-name[data-v-9c96d4a1]:hover {
1730
1747
  background-color: #c8d0d8;
1731
1748
  }
1732
- .linked-style-buttons[data-v-698bdb8e] {
1749
+ .linked-style-buttons[data-v-9c96d4a1] {
1733
1750
  display: flex;
1734
1751
  flex-direction: column;
1735
1752
  width: 100%;
@@ -1740,7 +1757,7 @@ on the right if it is inside shape textbox.
1740
1757
  margin: 0;
1741
1758
  overflow: auto;
1742
1759
  }
1743
- .button-icon[data-v-698bdb8e] {
1760
+ .button-icon[data-v-9c96d4a1] {
1744
1761
  cursor: pointer;
1745
1762
  padding: 5px;
1746
1763
  font-size: 16px;
@@ -1752,10 +1769,10 @@ on the right if it is inside shape textbox.
1752
1769
  align-items: center;
1753
1770
  box-sizing: border-box;
1754
1771
  }
1755
- .button-icon[data-v-698bdb8e]:hover {
1772
+ .button-icon[data-v-9c96d4a1]:hover {
1756
1773
  background-color: #d8dee5;
1757
1774
  }
1758
- .button-icon[data-v-698bdb8e] svg {
1775
+ .button-icon[data-v-9c96d4a1] svg {
1759
1776
  width: 100%;
1760
1777
  height: 100%;
1761
1778
  display: block;
@@ -1,6 +1,6 @@
1
1
  import { ref, onMounted, onUnmounted, computed, createElementBlock, openBlock, withModifiers, createElementVNode, withDirectives, unref, vModelText, createCommentVNode, nextTick } from "vue";
2
- import { T as TextSelection } from "./chunks/converter-BeTmlsUD.js";
3
- import { _ as _export_sfc } from "./chunks/editor-Cl128I8j.js";
2
+ import { T as TextSelection } from "./chunks/converter-Dw2FWHjz.js";
3
+ import { _ as _export_sfc } from "./chunks/editor-CtEAROku.js";
4
4
  const DEFAULT_API_ENDPOINT = "https://sd-dev-express-gateway-i6xtm.ondigitalocean.app/insights";
5
5
  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: ";
6
6
  async function baseInsightsFetch(payload, options = {}) {
@@ -36045,7 +36045,7 @@ const _SuperConverter = class _SuperConverter {
36045
36045
  static getStoredSuperdocVersion(docx) {
36046
36046
  return _SuperConverter.getStoredCustomProperty(docx, "SuperdocVersion");
36047
36047
  }
36048
- static setStoredSuperdocVersion(docx = this.convertedXml, version = "0.29.0-next.14") {
36048
+ static setStoredSuperdocVersion(docx = this.convertedXml, version = "0.29.0-next.16") {
36049
36049
  return _SuperConverter.setStoredCustomProperty(docx, "SuperdocVersion", version, false);
36050
36050
  }
36051
36051
  /**
@@ -1,4 +1,4 @@
1
- import { p as process$1, az as commonjsGlobal, B as Buffer, aA as getDefaultExportFromCjs, aB as getContentTypesFromXml, aC as xmljs } from "./converter-BeTmlsUD.js";
1
+ import { p as process$1, az as commonjsGlobal, B as Buffer, aA as getDefaultExportFromCjs, aB as getContentTypesFromXml, aC as xmljs } from "./converter-Dw2FWHjz.js";
2
2
  function commonjsRequire(path) {
3
3
  throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
4
4
  }
@@ -12,8 +12,8 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
12
12
  var _Attribute_static, getGlobalAttributes_fn, getNodeAndMarksAttributes_fn, _Schema_static, createNodesSchema_fn, createMarksSchema_fn, _events, _ExtensionService_instances, setupExtensions_fn, attachEditorEvents_fn, _editor, _stateValidators, _xmlValidators, _requiredNodeTypes, _requiredMarkTypes, _SuperValidator_instances, initializeValidators_fn, collectValidatorRequirements_fn, analyzeDocument_fn, _commandService, _Editor_instances, initContainerElement_fn, init_fn, initRichText_fn, onFocus_fn, checkHeadless_fn, registerCopyHandler_fn, insertNewFileData_fn, createExtensionService_fn, createCommandService_fn, createConverter_fn, initMedia_fn, initFonts_fn, checkFonts_fn, determineUnsupportedFonts_fn, createSchema_fn, generatePmData_fn, createView_fn, onCollaborationReady_fn, initComments_fn, initPagination_fn, dispatchTransaction_fn, handleNodeSelection_fn, prepareDocumentForImport_fn, prepareDocumentForExport_fn, endCollaboration_fn, validateDocumentInit_fn, validateDocumentExport_fn, initDevTools_fn, _DocumentSectionView_instances, init_fn2, addToolTip_fn, _ListItemNodeView_instances, init_fn3, applyIndentStyling_fn, _FieldAnnotationView_instances, createAnnotation_fn, _AutoPageNumberNodeView_instances, renderDom_fn, scheduleUpdateNodeStyle_fn;
13
13
  import * as Y from "yjs";
14
14
  import { UndoManager, Item as Item$1, ContentType, Text as Text$1, XmlElement, encodeStateAsUpdate } from "yjs";
15
- import { P as PluginKey, a as Plugin, M as Mapping, N as NodeSelection, S as Selection, T as TextSelection, b as Slice, D as DOMSerializer, F as Fragment, c as DOMParser$1, d as Mark$1, e as dropPoint, A as AllSelection, p as process$1, B as Buffer2, f as callOrGet, g as getExtensionConfigField, h as getMarkType, i as getMarksFromSelection, j as getNodeType, k as getSchemaTypeNameByName, l as Schema$1, m as cleanSchemaItem, n as canSplit, o as defaultBlockAt$1, q as liftTarget, r as canJoin, s as joinPoint, t as replaceStep$1, R as ReplaceAroundStep$1, u as isTextSelection, v as getMarkRange, w as isMarkActive, x as isNodeActive, y as deleteProps, z as processContent, C as ReplaceStep, E as NodeRange, G as findWrapping, L as ListHelpers, H as findParentNode, I as isMacOS, J as isIOS, K as getSchemaTypeByName, O as inputRulesPlugin, Q as TrackDeleteMarkName, U as TrackInsertMarkName, V as v4, W as TrackFormatMarkName, X as comments_module_events, Y as findMark, Z as objectIncludes, _ as AddMarkStep, $ as RemoveMarkStep, a0 as twipsToLines, a1 as pixelsToTwips, a2 as helpers, a3 as posToDOMRect, a4 as CommandService, a5 as SuperConverter, a6 as createDocument, a7 as createDocFromMarkdown, a8 as createDocFromHTML, a9 as EditorState, aa as hasSomeParentWithClass, ab as isActive, ac as unflattenListsInHtml, ad as parseSizeUnit, ae as minMax, af as getLineHeightValueString, ag as updateDOMAttributes, ah as findChildren$5, ai as htmlHandler, aj as generateRandomSigned32BitIntStrId, ak as InputRule, al as kebabCase, am as findParentNodeClosestToPos, an as getListItemStyleDefinitions, ao as docxNumberingHelpers, ap as parseIndentElement, aq as combineIndents, ar as twipsToPixels, as as PIXELS_PER_INCH, at as SelectionRange, au as Transform, av as isInTable$1, aw as generateDocxRandomId, ax as insertNewRelationship, ay as inchesToPixels } from "./converter-BeTmlsUD.js";
16
- import { D as DocxZipper } from "./docx-zipper-BMC2MmfQ.js";
15
+ import { P as PluginKey, a as Plugin, M as Mapping, N as NodeSelection, S as Selection, T as TextSelection, b as Slice, D as DOMSerializer, F as Fragment, c as DOMParser$1, d as Mark$1, e as dropPoint, A as AllSelection, p as process$1, B as Buffer2, f as callOrGet, g as getExtensionConfigField, h as getMarkType, i as getMarksFromSelection, j as getNodeType, k as getSchemaTypeNameByName, l as Schema$1, m as cleanSchemaItem, n as canSplit, o as defaultBlockAt$1, q as liftTarget, r as canJoin, s as joinPoint, t as replaceStep$1, R as ReplaceAroundStep$1, u as isTextSelection, v as getMarkRange, w as isMarkActive, x as isNodeActive, y as deleteProps, z as processContent, C as ReplaceStep, E as NodeRange, G as findWrapping, L as ListHelpers, H as findParentNode, I as isMacOS, J as isIOS, K as getSchemaTypeByName, O as inputRulesPlugin, Q as TrackDeleteMarkName, U as TrackInsertMarkName, V as v4, W as TrackFormatMarkName, X as comments_module_events, Y as findMark, Z as objectIncludes, _ as AddMarkStep, $ as RemoveMarkStep, a0 as twipsToLines, a1 as pixelsToTwips, a2 as helpers, a3 as posToDOMRect, a4 as CommandService, a5 as SuperConverter, a6 as createDocument, a7 as createDocFromMarkdown, a8 as createDocFromHTML, a9 as EditorState, aa as hasSomeParentWithClass, ab as isActive, ac as unflattenListsInHtml, ad as parseSizeUnit, ae as minMax, af as getLineHeightValueString, ag as updateDOMAttributes, ah as findChildren$5, ai as htmlHandler, aj as generateRandomSigned32BitIntStrId, ak as InputRule, al as kebabCase, am as findParentNodeClosestToPos, an as getListItemStyleDefinitions, ao as docxNumberingHelpers, ap as parseIndentElement, aq as combineIndents, ar as twipsToPixels, as as PIXELS_PER_INCH, at as SelectionRange, au as Transform, av as isInTable$1, aw as generateDocxRandomId, ax as insertNewRelationship, ay as inchesToPixels } from "./converter-Dw2FWHjz.js";
16
+ import { D as DocxZipper } from "./docx-zipper-B-OgBQQi.js";
17
17
  import { ref, computed, createElementBlock, openBlock, withModifiers, Fragment as Fragment$1, renderList, normalizeClass, createCommentVNode, toDisplayString, createElementVNode, createApp } from "vue";
18
18
  var GOOD_LEAF_SIZE = 200;
19
19
  var RopeSequence = function RopeSequence2() {
@@ -15072,7 +15072,7 @@ const _Editor = class _Editor extends EventEmitter {
15072
15072
  { default: remarkStringify },
15073
15073
  { default: remarkGfm }
15074
15074
  ] = await Promise.all([
15075
- import("./index-yUHHKfBN.js"),
15075
+ import("./index-BE8ctcJ1.js"),
15076
15076
  import("./index-DRCvimau.js"),
15077
15077
  import("./index-C_x_N6Uh.js"),
15078
15078
  import("./index-D_sWOSiG.js"),
@@ -15290,7 +15290,7 @@ const _Editor = class _Editor extends EventEmitter {
15290
15290
  * @returns {Object | void} Migration results
15291
15291
  */
15292
15292
  processCollaborationMigrations() {
15293
- console.debug("[checkVersionMigrations] Current editor version", "0.29.0-next.14");
15293
+ console.debug("[checkVersionMigrations] Current editor version", "0.29.0-next.16");
15294
15294
  if (!this.options.ydoc) return;
15295
15295
  const metaMap = this.options.ydoc.getMap("meta");
15296
15296
  let docVersion = metaMap.get("version");
@@ -1,4 +1,4 @@
1
- import { aA as getDefaultExportFromCjs } from "./converter-BeTmlsUD.js";
1
+ import { aA as getDefaultExportFromCjs } from "./converter-Dw2FWHjz.js";
2
2
  import { V as VFile } from "./index-CvBqQJbG.js";
3
3
  function bail(error) {
4
4
  if (error) {
@@ -1,6 +1,6 @@
1
1
  import { computed, createElementBlock, openBlock, createElementVNode, createCommentVNode, normalizeClass, normalizeStyle, ref, withKeys, unref, withModifiers, createBlock, toDisplayString, withDirectives, vModelText, nextTick, getCurrentInstance, createVNode, readonly, watch, onMounted, onBeforeUnmount, reactive, onBeforeMount, inject, onActivated, onDeactivated, createTextVNode, Fragment, Comment, defineComponent, provide, h, Teleport, toRef, renderSlot, isVNode, shallowRef, watchEffect, mergeProps, Transition, vShow, cloneVNode, Text, renderList, withCtx } from "vue";
2
- import { p as process$1 } from "./converter-BeTmlsUD.js";
3
- import { _ as _export_sfc, u as useHighContrastMode, g as global$1 } from "./editor-Cl128I8j.js";
2
+ import { p as process$1 } from "./converter-Dw2FWHjz.js";
3
+ import { _ as _export_sfc, u as useHighContrastMode, g as global$1 } from "./editor-CtEAROku.js";
4
4
  const sanitizeNumber = (value, defaultNumber) => {
5
5
  let sanitized = value.replace(/[^0-9.]/g, "");
6
6
  sanitized = parseFloat(sanitized);
@@ -1,4 +1,4 @@
1
- import { a5 } from "./chunks/converter-BeTmlsUD.js";
1
+ import { a5 } from "./chunks/converter-Dw2FWHjz.js";
2
2
  export {
3
3
  a5 as SuperConverter
4
4
  };
@@ -1,5 +1,5 @@
1
- import "./chunks/converter-BeTmlsUD.js";
2
- import { D } from "./chunks/docx-zipper-BMC2MmfQ.js";
1
+ import "./chunks/converter-Dw2FWHjz.js";
2
+ import { D } from "./chunks/docx-zipper-B-OgBQQi.js";
3
3
  export {
4
4
  D as default
5
5
  };
@@ -1,6 +1,6 @@
1
- import { E } from "./chunks/editor-Cl128I8j.js";
2
- import "./chunks/converter-BeTmlsUD.js";
3
- import "./chunks/docx-zipper-BMC2MmfQ.js";
1
+ import { E } from "./chunks/editor-CtEAROku.js";
2
+ import "./chunks/converter-Dw2FWHjz.js";
3
+ import "./chunks/docx-zipper-B-OgBQQi.js";
4
4
  export {
5
5
  E as Editor
6
6
  };
@@ -1,4 +1,4 @@
1
- import { J as JSZip } from "./chunks/docx-zipper-BMC2MmfQ.js";
1
+ import { J as JSZip } from "./chunks/docx-zipper-B-OgBQQi.js";
2
2
  async function createZip(blobs, fileNames) {
3
3
  const zip = new JSZip();
4
4
  blobs.forEach((blob, index) => {
@@ -411,13 +411,19 @@ to {
411
411
  :root {
412
412
  /* CSS variables */
413
413
  }
414
+ /* Isolate editor content from external/client CSS by reverting all properties.
415
+ * IMPORTANT: We exclude SVG elements and their children from this rule because
416
+ * 'all: revert' breaks SVG rendering (paths don't display, transforms don't work).
417
+ * SVG has its own rendering model and doesn't need CSS isolation the same way text content does.
418
+ */
414
419
  .sd-editor-scoped,
415
- .sd-editor-scoped :where(*),
416
- .sd-editor-scoped :where(*::before),
417
- .sd-editor-scoped :where(*::after) {
418
- /* all: revert; - affects display of SVGs - paths are not being rendered. */
420
+ .sd-editor-scoped :where(*:not(svg):not(svg *)),
421
+ .sd-editor-scoped :where(*:not(svg):not(svg *)::before),
422
+ .sd-editor-scoped :where(*:not(svg):not(svg *)::after) {
423
+ all: revert;
419
424
  box-sizing: border-box;
420
425
  }
426
+ /* Ensure SVG display properties for proper rendering */
421
427
  .sd-editor-scoped svg {
422
428
  display: inline-block;
423
429
  overflow: visible;
@@ -425,6 +431,17 @@ to {
425
431
  .sd-editor-scoped {
426
432
  display: block;
427
433
  }
434
+ /*
435
+ * Visual Regression Testing:
436
+ * This CSS isolation is critical for protecting editor content from external stylesheets.
437
+ * Visual regression tests should be added to the visual testing repository to ensure:
438
+ * 1. Text content is not affected by aggressive global CSS
439
+ * 2. SVG shapes (shape groups, vector shapes) render correctly
440
+ * 3. No visual regressions when client applications have conflicting styles
441
+ *
442
+ * Reference: PR #1219 - "improve style scoping in the editor to prevent external styles affecting content"
443
+ * Reference: PR #1236 - "shape groups" (this fix ensures both isolation AND SVG rendering work)
444
+ */
428
445
  .sd-input-active {
429
446
  border: 1px solid #1355ff !important;
430
447
  }
@@ -1349,13 +1366,13 @@ on the right if it is inside shape textbox.
1349
1366
  color: #666;
1350
1367
  }
1351
1368
 
1352
- .style-name[data-v-698bdb8e] {
1369
+ .style-name[data-v-9c96d4a1] {
1353
1370
  padding: 16px 10px;
1354
1371
  }
1355
- .style-name[data-v-698bdb8e]:hover {
1372
+ .style-name[data-v-9c96d4a1]:hover {
1356
1373
  background-color: #c8d0d8;
1357
1374
  }
1358
- .linked-style-buttons[data-v-698bdb8e] {
1375
+ .linked-style-buttons[data-v-9c96d4a1] {
1359
1376
  display: flex;
1360
1377
  flex-direction: column;
1361
1378
  width: 100%;
@@ -1366,7 +1383,7 @@ on the right if it is inside shape textbox.
1366
1383
  margin: 0;
1367
1384
  overflow: auto;
1368
1385
  }
1369
- .button-icon[data-v-698bdb8e] {
1386
+ .button-icon[data-v-9c96d4a1] {
1370
1387
  cursor: pointer;
1371
1388
  padding: 5px;
1372
1389
  font-size: 16px;
@@ -1378,10 +1395,10 @@ on the right if it is inside shape textbox.
1378
1395
  align-items: center;
1379
1396
  box-sizing: border-box;
1380
1397
  }
1381
- .button-icon[data-v-698bdb8e]:hover {
1398
+ .button-icon[data-v-9c96d4a1]:hover {
1382
1399
  background-color: #d8dee5;
1383
1400
  }
1384
- .button-icon[data-v-698bdb8e] svg {
1401
+ .button-icon[data-v-9c96d4a1] svg {
1385
1402
  width: 100%;
1386
1403
  height: 100%;
1387
1404
  display: block;
@@ -1 +1 @@
1
- {"version":3,"file":"defaultItems.d.ts","sourceRoot":"","sources":["../../../../../src/components/toolbar/defaultItems.js"],"names":[],"mappings":"AAsBO;;;;;EA0qCN"}
1
+ {"version":3,"file":"defaultItems.d.ts","sourceRoot":"","sources":["../../../../../src/components/toolbar/defaultItems.js"],"names":[],"mappings":"AAuBO;;;;;EA8qCN"}
@@ -1 +1 @@
1
- {"version":3,"file":"super-toolbar.d.ts","sourceRoot":"","sources":["../../../../../src/components/toolbar/super-toolbar.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"super-toolbar.d.ts","sourceRoot":"","sources":["../../../../../src/components/toolbar/super-toolbar.js"],"names":[],"mappings":"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"}