@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.
- package/dist/chunks/{PdfViewer-DLN3Y3_F.cjs → PdfViewer-B14Psbm5.cjs} +1 -1
- package/dist/chunks/{PdfViewer-BEO8hsqF.es.js → PdfViewer-CpbPbmhH.es.js} +1 -1
- package/dist/chunks/{index-BXgp6uWu.es.js → index-BAB9eQRg.es.js} +3 -3
- package/dist/chunks/{index-yUHHKfBN-ChT8BlSW.es.js → index-BE8ctcJ1-BVHEZaEv.es.js} +1 -1
- package/dist/chunks/{index-yUHHKfBN-4EGB8drV.cjs → index-BE8ctcJ1-BsFfsr_5.cjs} +1 -1
- package/dist/chunks/{index-BaAAtu4I.cjs → index-BRloVMt4.cjs} +3 -3
- package/dist/chunks/{super-editor.es-w3oeQ-Dp.cjs → super-editor.es-hL-1R4Qv.cjs} +13 -8
- package/dist/chunks/{super-editor.es-CuXZDBte.es.js → super-editor.es-soAIWbdF.es.js} +13 -8
- package/dist/style.css +27 -10
- package/dist/super-editor/ai-writer.es.js +2 -2
- package/dist/super-editor/chunks/{converter-BeTmlsUD.js → converter-Dw2FWHjz.js} +1 -1
- package/dist/super-editor/chunks/{docx-zipper-BMC2MmfQ.js → docx-zipper-B-OgBQQi.js} +1 -1
- package/dist/super-editor/chunks/{editor-Cl128I8j.js → editor-CtEAROku.js} +4 -4
- package/dist/super-editor/chunks/{index-yUHHKfBN.js → index-BE8ctcJ1.js} +1 -1
- package/dist/super-editor/chunks/{toolbar-B47oEw9Q.js → toolbar-Bya4b9Yv.js} +2 -2
- package/dist/super-editor/converter.es.js +1 -1
- package/dist/super-editor/docx-zipper.es.js +2 -2
- package/dist/super-editor/editor.es.js +3 -3
- package/dist/super-editor/file-zipper.es.js +1 -1
- package/dist/super-editor/style.css +27 -10
- package/dist/super-editor/super-editor/src/components/toolbar/defaultItems.d.ts.map +1 -1
- package/dist/super-editor/super-editor/src/components/toolbar/super-toolbar.d.ts.map +1 -1
- package/dist/super-editor/super-editor.es.js +16 -11
- package/dist/super-editor/toolbar.es.js +2 -2
- package/dist/super-editor.cjs +1 -1
- package/dist/super-editor.es.js +1 -1
- package/dist/superdoc.cjs +2 -2
- package/dist/superdoc.es.js +2 -2
- package/dist/superdoc.umd.js +15 -10
- package/dist/superdoc.umd.js.map +1 -1
- 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-
|
|
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-
|
|
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-
|
|
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-
|
|
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.
|
|
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,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const superEditor_es = require("./super-editor.es-
|
|
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-
|
|
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-
|
|
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.
|
|
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.
|
|
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-
|
|
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.
|
|
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-
|
|
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.
|
|
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-
|
|
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.
|
|
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-
|
|
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(
|
|
791
|
-
.sd-editor-scoped :where(
|
|
792
|
-
|
|
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-
|
|
1743
|
+
.style-name[data-v-9c96d4a1] {
|
|
1727
1744
|
padding: 16px 10px;
|
|
1728
1745
|
}
|
|
1729
|
-
.style-name[data-v-
|
|
1746
|
+
.style-name[data-v-9c96d4a1]:hover {
|
|
1730
1747
|
background-color: #c8d0d8;
|
|
1731
1748
|
}
|
|
1732
|
-
.linked-style-buttons[data-v-
|
|
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-
|
|
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-
|
|
1772
|
+
.button-icon[data-v-9c96d4a1]:hover {
|
|
1756
1773
|
background-color: #d8dee5;
|
|
1757
1774
|
}
|
|
1758
|
-
.button-icon[data-v-
|
|
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-
|
|
3
|
-
import { _ as _export_sfc } from "./chunks/editor-
|
|
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.
|
|
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-
|
|
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-
|
|
16
|
-
import { D as DocxZipper } from "./docx-zipper-
|
|
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-
|
|
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.
|
|
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,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-
|
|
3
|
-
import { _ as _export_sfc, u as useHighContrastMode, g as global$1 } from "./editor-
|
|
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,6 +1,6 @@
|
|
|
1
|
-
import { E } from "./chunks/editor-
|
|
2
|
-
import "./chunks/converter-
|
|
3
|
-
import "./chunks/docx-zipper-
|
|
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
|
};
|
|
@@ -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(
|
|
417
|
-
.sd-editor-scoped :where(
|
|
418
|
-
|
|
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-
|
|
1369
|
+
.style-name[data-v-9c96d4a1] {
|
|
1353
1370
|
padding: 16px 10px;
|
|
1354
1371
|
}
|
|
1355
|
-
.style-name[data-v-
|
|
1372
|
+
.style-name[data-v-9c96d4a1]:hover {
|
|
1356
1373
|
background-color: #c8d0d8;
|
|
1357
1374
|
}
|
|
1358
|
-
.linked-style-buttons[data-v-
|
|
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-
|
|
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-
|
|
1398
|
+
.button-icon[data-v-9c96d4a1]:hover {
|
|
1382
1399
|
background-color: #d8dee5;
|
|
1383
1400
|
}
|
|
1384
|
-
.button-icon[data-v-
|
|
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":"
|
|
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":"AAwBA;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;GAeG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AAEH;;;;GAIG;AAEH;;;;GAIG;AACH;IAwBE;;;;OAIG;IACH,oBAHW,aAAa,EA4DvB;IArFD;;;OAGG;IACH,QAFU,aAAa,CAmBrB;IAWA,oBAAsB;IACtB,qBAAuB;IACvB,kBAAoD;IACpD,WAAkC;IAClC,cAA+B;IAC/B,aAAmC;IACnC,sBAA4B;IAuC5B,gCAA6B;IAI3B,uQAAoD;IAEtD,kBAAyC;IAI3C,0CAgBC;IAkVD;;;;OAIG;IACH,aAHc,GAAC,EAAA,GACF,IAAI,CAIhB;IAED;;;;OAIG;IACH,qBAHW,MAAM,GACJ,IAAI,CAMhB;IAED;;;;OAIG;IACH,8BAFa,IAAI,CAKhB;IAED;;;;OAIG;IACH,iCAHW,MAAM,GACJ,WAAW,EAAE,CAIzB;IAED;;;;OAIG;IACH,2BAHW,MAAM,GACJ,WAAW,GAAC,SAAS,CAIjC;IAgGD;;;;OAIG;IACH,sBAFa,IAAI,
|
|
1
|
+
{"version":3,"file":"super-toolbar.d.ts","sourceRoot":"","sources":["../../../../../src/components/toolbar/super-toolbar.js"],"names":[],"mappings":"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"}
|