superdoc 2.13.0-next.1 → 2.13.0-next.11
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/{create-super-doc-ui-BWWWNPP8.cjs → create-super-doc-ui-DNfQTF2k.cjs} +66 -6
- package/dist/chunks/{create-super-doc-ui-FnwgTkUv.es.js → create-super-doc-ui-XWtQHPGP.es.js} +66 -6
- package/dist/collaboration-upgrade-engine.cjs +1 -1
- package/dist/collaboration-upgrade-engine.es.js +1 -1
- package/dist/document-api/src/blocks/blocks.d.ts +3 -1
- package/dist/document-api/src/blocks/find-text.d.ts +3 -0
- package/dist/document-api/src/content-controls/content-controls.types.d.ts +1 -1
- package/dist/document-api/src/contract/command-catalog.d.ts +1 -1
- package/dist/document-api/src/contract/operation-definitions.d.ts +11 -1
- package/dist/document-api/src/contract/operation-registry.d.ts +7 -2
- package/dist/document-api/src/index.d.ts +7 -6
- package/dist/document-api/src/invoke/invoke.d.ts +2 -1
- package/dist/document-api/src/types/blocks.types.d.ts +38 -0
- package/dist/document-api/src/types/mutation-plan.types.d.ts +28 -4
- package/dist/document-api/src/types/table-operations.types.d.ts +2 -0
- package/dist/layout-engine/dom-contract/src/data-attrs.d.ts +3 -0
- package/dist/layout-engine/painters/dom/src/page-content.d.ts +3 -2
- package/dist/layout-engine/painters/dom/src/renderer.d.ts +1 -0
- package/dist/public/collaboration-worker.cjs +9 -0
- package/dist/public/collaboration-worker.es.js +8 -0
- package/dist/public/ui-react.cjs +1 -1
- package/dist/public/ui-react.es.js +1 -1
- package/dist/public/ui-vue.cjs +1 -1
- package/dist/public/ui-vue.es.js +1 -1
- package/dist/public/ui.cjs +1 -1
- package/dist/public/ui.es.js +1 -1
- package/dist/style.css +26 -26
- package/dist/style.layered.css +26 -26
- package/dist/superdoc/src/composables/use-viewport-fit.d.ts +1 -0
- package/dist/superdoc/src/core/collaboration/collaboration-exception.d.ts +2 -0
- package/dist/superdoc/src/core/collaboration/resolve-v2-collaboration-target.d.ts +16 -5
- package/dist/superdoc/src/core/theme/create-theme.d.ts +32 -20
- package/dist/superdoc/src/core/types/index.d.ts +59 -71
- package/dist/superdoc/src/public/collaboration-worker.d.cts +18 -0
- package/dist/superdoc/src/public/collaboration-worker.d.ts +48 -0
- package/dist/superdoc/src/public/export-types.d.ts +23 -0
- package/dist/superdoc/src/public/index.d.cts +12 -0
- package/dist/superdoc/src/public/index.d.ts +3 -0
- package/dist/superdoc/src/public/ui/types.d.ts +18 -9
- package/dist/superdoc.cjs +384 -267
- package/dist/superdoc.es.js +384 -267
- package/dist-cdn/style.layered.css +1 -1
- package/dist-cdn/superdoc.min.css +1 -1
- package/dist-cdn/superdoc.min.js +37 -37
- package/package.json +13 -2
|
@@ -568,6 +568,8 @@ export interface TablesGetCellsInput extends TableLocator {
|
|
|
568
568
|
}
|
|
569
569
|
/** Per-cell info with stable ref for write handoff. */
|
|
570
570
|
export interface TableCellInfo {
|
|
571
|
+
/** First paragraph in this cell, when the engine exposes paragraph identities. */
|
|
572
|
+
firstParagraphNodeId?: string;
|
|
571
573
|
/** Shorthand cell identifier: convenient for logging, Map keys, and display. */
|
|
572
574
|
nodeId: string;
|
|
573
575
|
/** Mutation-ready address: pass directly as `target` in follow-up cell operations. */
|
|
@@ -52,6 +52,8 @@ export declare const DATA_ATTRS: {
|
|
|
52
52
|
readonly LAYOUT_STORY: "data-layout-story";
|
|
53
53
|
/** Source block reference (today: producer's `blockId`). */
|
|
54
54
|
readonly LAYOUT_BLOCK_REF: "data-layout-block-ref";
|
|
55
|
+
/** Zero-based flow-column index that owns the rendered fragment. */
|
|
56
|
+
readonly LAYOUT_COLUMN_INDEX: "data-layout-column-index";
|
|
55
57
|
};
|
|
56
58
|
/**
|
|
57
59
|
* CamelCase keys for use with `element.dataset.*` property access.
|
|
@@ -75,6 +77,7 @@ export declare const DATASET_KEYS: {
|
|
|
75
77
|
readonly LAYOUT_FRAGMENT_ID: "layoutFragmentId";
|
|
76
78
|
readonly LAYOUT_STORY: "layoutStory";
|
|
77
79
|
readonly LAYOUT_BLOCK_REF: "layoutBlockRef";
|
|
80
|
+
readonly LAYOUT_COLUMN_INDEX: "layoutColumnIndex";
|
|
78
81
|
};
|
|
79
82
|
/**
|
|
80
83
|
* Encode a `LayoutStoryLocator`-shaped object into its dataset string form.
|
|
@@ -94,8 +94,9 @@ export declare function createEmptyPaintWorkSummary(): PaintWorkSummary;
|
|
|
94
94
|
* Painter plan P3a: reuse key for one exact page slot on the persistent-page
|
|
95
95
|
* path. Joins everything the painted page DOM depends on for a fixed page
|
|
96
96
|
* index: the resolve-stage version stamp per item (the product paint-reuse
|
|
97
|
-
* mechanism), fragment identity + geometry (stamps do not
|
|
98
|
-
* and, only when body content contains a dynamic field, its
|
|
97
|
+
* mechanism), fragment identity + geometry + column ownership (stamps do not
|
|
98
|
+
* cover these), and, only when body content contains a dynamic field, its
|
|
99
|
+
* page context.
|
|
99
100
|
* Header/footer providers have a separate decoration-only refresh path, so
|
|
100
101
|
* their context must not invalidate otherwise reusable body fragments.
|
|
101
102
|
*
|
|
@@ -657,6 +657,7 @@ export declare class DomPainter {
|
|
|
657
657
|
private resolveFragmentWrapperZIndex;
|
|
658
658
|
private applyFragmentWrapperZIndex;
|
|
659
659
|
private applyResolvedFragmentFrame;
|
|
660
|
+
private applyFragmentColumnOwnership;
|
|
660
661
|
/**
|
|
661
662
|
* Estimates the height of a fragment when explicit height is not available.
|
|
662
663
|
*
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
let _superdoc_docx_engine_collaboration_worker = require("@superdoc/docx-engine/collaboration-worker");
|
|
3
|
+
//#region src/public/collaboration-worker.ts
|
|
4
|
+
/** Register provider adapters and start the worker used by `workerUrls.collaboration`. */
|
|
5
|
+
function bootstrapSuperDocCollaborationWorker(options) {
|
|
6
|
+
(0, _superdoc_docx_engine_collaboration_worker.bootstrapSuperDocCollaborationWorker)(options);
|
|
7
|
+
}
|
|
8
|
+
//#endregion
|
|
9
|
+
exports.bootstrapSuperDocCollaborationWorker = bootstrapSuperDocCollaborationWorker;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { bootstrapSuperDocCollaborationWorker as bootstrapSuperDocCollaborationWorker$1 } from "@superdoc/docx-engine/collaboration-worker";
|
|
2
|
+
//#region src/public/collaboration-worker.ts
|
|
3
|
+
/** Register provider adapters and start the worker used by `workerUrls.collaboration`. */
|
|
4
|
+
function bootstrapSuperDocCollaborationWorker(options) {
|
|
5
|
+
bootstrapSuperDocCollaborationWorker$1(options);
|
|
6
|
+
}
|
|
7
|
+
//#endregion
|
|
8
|
+
export { bootstrapSuperDocCollaborationWorker };
|
package/dist/public/ui-react.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-
|
|
2
|
+
const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-DNfQTF2k.cjs");
|
|
3
3
|
const require_slice_source = require("../chunks/slice-source-CFaqq0Vo.cjs");
|
|
4
4
|
let react = require("react");
|
|
5
5
|
//#region src/public/ui/react.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as createSuperDocUI } from "../chunks/create-super-doc-ui-
|
|
1
|
+
import { t as createSuperDocUI } from "../chunks/create-super-doc-ui-XWtQHPGP.es.js";
|
|
2
2
|
import { t as toSliceSource } from "../chunks/slice-source-gfOhG2MW.es.js";
|
|
3
3
|
import { createContext, createElement, useCallback, useContext, useEffect, useRef, useState } from "react";
|
|
4
4
|
//#region src/public/ui/react.ts
|
package/dist/public/ui-vue.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-
|
|
2
|
+
const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-DNfQTF2k.cjs");
|
|
3
3
|
const require_slice_source = require("../chunks/slice-source-CFaqq0Vo.cjs");
|
|
4
4
|
let vue = require("vue");
|
|
5
5
|
//#region src/public/ui/vue.ts
|
package/dist/public/ui-vue.es.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as createSuperDocUI } from "../chunks/create-super-doc-ui-
|
|
1
|
+
import { t as createSuperDocUI } from "../chunks/create-super-doc-ui-XWtQHPGP.es.js";
|
|
2
2
|
import { t as toSliceSource } from "../chunks/slice-source-gfOhG2MW.es.js";
|
|
3
3
|
import { computed, inject, onScopeDispose, provide, shallowRef, toRaw, toValue, watch } from "vue";
|
|
4
4
|
//#region src/public/ui/vue.ts
|
package/dist/public/ui.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-
|
|
2
|
+
const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-DNfQTF2k.cjs");
|
|
3
3
|
exports.BUILT_IN_COMMAND_IDS = require_create_super_doc_ui.BUILT_IN_COMMAND_IDS;
|
|
4
4
|
exports.createSuperDocUI = require_create_super_doc_ui.createSuperDocUI;
|
|
5
5
|
exports.shallowEqual = require_create_super_doc_ui.shallowEqual;
|
package/dist/public/ui.es.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as shallowEqual, r as BUILT_IN_COMMAND_IDS, t as createSuperDocUI } from "../chunks/create-super-doc-ui-
|
|
1
|
+
import { n as shallowEqual, r as BUILT_IN_COMMAND_IDS, t as createSuperDocUI } from "../chunks/create-super-doc-ui-XWtQHPGP.es.js";
|
|
2
2
|
export { BUILT_IN_COMMAND_IDS, createSuperDocUI, shallowEqual };
|
package/dist/style.css
CHANGED
|
@@ -1818,11 +1818,11 @@ img[data-v-c95b2073] {
|
|
|
1818
1818
|
pointer-events: auto;
|
|
1819
1819
|
}
|
|
1820
1820
|
|
|
1821
|
-
.superdoc[data-v-
|
|
1821
|
+
.superdoc[data-v-ebe9a1fb] {
|
|
1822
1822
|
display: flex;
|
|
1823
1823
|
position: relative;
|
|
1824
1824
|
}
|
|
1825
|
-
.sd-visually-hidden[data-v-
|
|
1825
|
+
.sd-visually-hidden[data-v-ebe9a1fb] {
|
|
1826
1826
|
position: absolute;
|
|
1827
1827
|
width: 1px;
|
|
1828
1828
|
height: 1px;
|
|
@@ -1833,14 +1833,14 @@ img[data-v-c95b2073] {
|
|
|
1833
1833
|
white-space: nowrap;
|
|
1834
1834
|
border: 0;
|
|
1835
1835
|
}
|
|
1836
|
-
.superdoc__mutation-status[data-v-
|
|
1836
|
+
.superdoc__mutation-status[data-v-ebe9a1fb] {
|
|
1837
1837
|
position: sticky;
|
|
1838
1838
|
z-index: 10;
|
|
1839
1839
|
top: 12px;
|
|
1840
1840
|
height: 0;
|
|
1841
1841
|
pointer-events: none;
|
|
1842
1842
|
}
|
|
1843
|
-
.superdoc__edit-rejected-status[data-v-
|
|
1843
|
+
.superdoc__edit-rejected-status[data-v-ebe9a1fb] {
|
|
1844
1844
|
position: absolute;
|
|
1845
1845
|
top: 0;
|
|
1846
1846
|
left: 50%;
|
|
@@ -1858,30 +1858,30 @@ img[data-v-c95b2073] {
|
|
|
1858
1858
|
line-height: 20px;
|
|
1859
1859
|
pointer-events: none;
|
|
1860
1860
|
}
|
|
1861
|
-
.right-sidebar[data-v-
|
|
1861
|
+
.right-sidebar[data-v-ebe9a1fb] {
|
|
1862
1862
|
min-width: 320px;
|
|
1863
1863
|
height: 100%;
|
|
1864
1864
|
}
|
|
1865
|
-
.floating-comments[data-v-
|
|
1865
|
+
.floating-comments[data-v-ebe9a1fb] {
|
|
1866
1866
|
min-width: 300px;
|
|
1867
1867
|
width: 300px;
|
|
1868
1868
|
height: 100%;
|
|
1869
1869
|
overflow: visible;
|
|
1870
1870
|
}
|
|
1871
|
-
.superdoc__layers[data-v-
|
|
1871
|
+
.superdoc__layers[data-v-ebe9a1fb] {
|
|
1872
1872
|
height: 100%;
|
|
1873
1873
|
position: relative;
|
|
1874
1874
|
box-sizing: border-box;
|
|
1875
1875
|
}
|
|
1876
|
-
.superdoc__document[data-v-
|
|
1876
|
+
.superdoc__document[data-v-ebe9a1fb] {
|
|
1877
1877
|
width: 100%;
|
|
1878
1878
|
position: relative;
|
|
1879
1879
|
}
|
|
1880
|
-
.superdoc__sub-document[data-v-
|
|
1880
|
+
.superdoc__sub-document[data-v-ebe9a1fb] {
|
|
1881
1881
|
width: 100%;
|
|
1882
1882
|
position: relative;
|
|
1883
1883
|
}
|
|
1884
|
-
.superdoc__selection-layer[data-v-
|
|
1884
|
+
.superdoc__selection-layer[data-v-ebe9a1fb] {
|
|
1885
1885
|
position: absolute;
|
|
1886
1886
|
min-width: 100%;
|
|
1887
1887
|
min-height: 100%;
|
|
@@ -1892,13 +1892,13 @@ img[data-v-c95b2073] {
|
|
|
1892
1892
|
/* SD-3497: PDF whiteboard overlay sits above the rendered PDF canvas but below
|
|
1893
1893
|
the PDF comment anchors (z-index 6 in PdfCommentsLayer) so anchors stay
|
|
1894
1894
|
clickable, and below the selection layer (z-index 10). */
|
|
1895
|
-
.superdoc__whiteboard-layer[data-v-
|
|
1895
|
+
.superdoc__whiteboard-layer[data-v-ebe9a1fb] {
|
|
1896
1896
|
z-index: 4;
|
|
1897
1897
|
}
|
|
1898
|
-
.superdoc__temp-selection[data-v-
|
|
1898
|
+
.superdoc__temp-selection[data-v-ebe9a1fb] {
|
|
1899
1899
|
position: absolute;
|
|
1900
1900
|
}
|
|
1901
|
-
.superdoc__right-sidebar[data-v-
|
|
1901
|
+
.superdoc__right-sidebar[data-v-ebe9a1fb] {
|
|
1902
1902
|
width: 320px;
|
|
1903
1903
|
min-width: 320px;
|
|
1904
1904
|
padding: 0 10px;
|
|
@@ -1906,7 +1906,7 @@ img[data-v-c95b2073] {
|
|
|
1906
1906
|
position: relative;
|
|
1907
1907
|
z-index: 2;
|
|
1908
1908
|
}
|
|
1909
|
-
.superdoc__compact-comment-popover[data-v-
|
|
1909
|
+
.superdoc__compact-comment-popover[data-v-ebe9a1fb] {
|
|
1910
1910
|
position: absolute;
|
|
1911
1911
|
top: 12px;
|
|
1912
1912
|
right: 12px;
|
|
@@ -1915,14 +1915,14 @@ img[data-v-c95b2073] {
|
|
|
1915
1915
|
}
|
|
1916
1916
|
|
|
1917
1917
|
/* Tools styles */
|
|
1918
|
-
.tools[data-v-
|
|
1918
|
+
.tools[data-v-ebe9a1fb] {
|
|
1919
1919
|
position: absolute;
|
|
1920
1920
|
z-index: 3;
|
|
1921
1921
|
display: flex;
|
|
1922
1922
|
flex-direction: column;
|
|
1923
1923
|
gap: var(--sd-ui-tools-gap, 6px);
|
|
1924
1924
|
}
|
|
1925
|
-
.tools-item[data-v-
|
|
1925
|
+
.tools-item[data-v-ebe9a1fb] {
|
|
1926
1926
|
display: flex;
|
|
1927
1927
|
align-items: center;
|
|
1928
1928
|
justify-content: center;
|
|
@@ -1933,10 +1933,10 @@ img[data-v-c95b2073] {
|
|
|
1933
1933
|
cursor: pointer;
|
|
1934
1934
|
position: relative;
|
|
1935
1935
|
}
|
|
1936
|
-
.tools-item i[data-v-
|
|
1936
|
+
.tools-item i[data-v-ebe9a1fb] {
|
|
1937
1937
|
cursor: pointer;
|
|
1938
1938
|
}
|
|
1939
|
-
.superdoc__tools-icon[data-v-
|
|
1939
|
+
.superdoc__tools-icon[data-v-ebe9a1fb] {
|
|
1940
1940
|
width: var(--sd-ui-tools-icon-size, 20px);
|
|
1941
1941
|
height: var(--sd-ui-tools-icon-size, 20px);
|
|
1942
1942
|
flex-shrink: 0;
|
|
@@ -1951,22 +1951,22 @@ img[data-v-c95b2073] {
|
|
|
1951
1951
|
|
|
1952
1952
|
/* 834px is iPad screen size in portrait orientation */
|
|
1953
1953
|
@media (max-width: 834px) {
|
|
1954
|
-
.superdoc .superdoc__layers[data-v-
|
|
1954
|
+
.superdoc .superdoc__layers[data-v-ebe9a1fb] {
|
|
1955
1955
|
margin: 0;
|
|
1956
1956
|
border: 0 !important;
|
|
1957
1957
|
box-shadow: none;
|
|
1958
1958
|
}
|
|
1959
|
-
.superdoc__sub-document[data-v-
|
|
1959
|
+
.superdoc__sub-document[data-v-ebe9a1fb] {
|
|
1960
1960
|
max-width: 100%;
|
|
1961
1961
|
}
|
|
1962
|
-
.superdoc__right-sidebar[data-v-
|
|
1962
|
+
.superdoc__right-sidebar[data-v-ebe9a1fb] {
|
|
1963
1963
|
padding: 10px;
|
|
1964
1964
|
position: relative;
|
|
1965
1965
|
}
|
|
1966
1966
|
}
|
|
1967
1967
|
|
|
1968
1968
|
/* AI Writer styles */
|
|
1969
|
-
.ai-writer-container[data-v-
|
|
1969
|
+
.ai-writer-container[data-v-ebe9a1fb] {
|
|
1970
1970
|
position: fixed;
|
|
1971
1971
|
z-index: 1000;
|
|
1972
1972
|
background: white;
|
|
@@ -1982,10 +1982,10 @@ img[data-v-c95b2073] {
|
|
|
1982
1982
|
transform: translateY(-50%);
|
|
1983
1983
|
z-index: 50;
|
|
1984
1984
|
} */
|
|
1985
|
-
.ai-tool > svg[data-v-
|
|
1985
|
+
.ai-tool > svg[data-v-ebe9a1fb] {
|
|
1986
1986
|
fill: transparent;
|
|
1987
1987
|
}
|
|
1988
|
-
.ai-tool[data-v-
|
|
1988
|
+
.ai-tool[data-v-ebe9a1fb]::before {
|
|
1989
1989
|
content: '';
|
|
1990
1990
|
position: absolute;
|
|
1991
1991
|
width: 20px;
|
|
@@ -2006,7 +2006,7 @@ img[data-v-c95b2073] {
|
|
|
2006
2006
|
filter: brightness(1.2);
|
|
2007
2007
|
transition: filter 0.2s ease;
|
|
2008
2008
|
}
|
|
2009
|
-
.ai-tool[data-v-
|
|
2009
|
+
.ai-tool[data-v-ebe9a1fb]:hover::before {
|
|
2010
2010
|
filter: brightness(1.3);
|
|
2011
2011
|
}
|
|
2012
2012
|
|
|
@@ -2359,7 +2359,7 @@ img[data-v-c95b2073] {
|
|
|
2359
2359
|
transform: scale(1);
|
|
2360
2360
|
}
|
|
2361
2361
|
|
|
2362
|
-
.superdoc-toolbar-overflow[data-v-
|
|
2362
|
+
.superdoc-toolbar-overflow[data-v-5f8ee279] {
|
|
2363
2363
|
min-width: auto !important;
|
|
2364
2364
|
max-width: 200px;
|
|
2365
2365
|
flex-wrap: wrap;
|
package/dist/style.layered.css
CHANGED
|
@@ -1818,11 +1818,11 @@ img[data-v-c95b2073] {
|
|
|
1818
1818
|
pointer-events: auto;
|
|
1819
1819
|
}
|
|
1820
1820
|
|
|
1821
|
-
.superdoc[data-v-
|
|
1821
|
+
.superdoc[data-v-ebe9a1fb] {
|
|
1822
1822
|
display: flex;
|
|
1823
1823
|
position: relative;
|
|
1824
1824
|
}
|
|
1825
|
-
.sd-visually-hidden[data-v-
|
|
1825
|
+
.sd-visually-hidden[data-v-ebe9a1fb] {
|
|
1826
1826
|
position: absolute;
|
|
1827
1827
|
width: 1px;
|
|
1828
1828
|
height: 1px;
|
|
@@ -1833,14 +1833,14 @@ img[data-v-c95b2073] {
|
|
|
1833
1833
|
white-space: nowrap;
|
|
1834
1834
|
border: 0;
|
|
1835
1835
|
}
|
|
1836
|
-
.superdoc__mutation-status[data-v-
|
|
1836
|
+
.superdoc__mutation-status[data-v-ebe9a1fb] {
|
|
1837
1837
|
position: sticky;
|
|
1838
1838
|
z-index: 10;
|
|
1839
1839
|
top: 12px;
|
|
1840
1840
|
height: 0;
|
|
1841
1841
|
pointer-events: none;
|
|
1842
1842
|
}
|
|
1843
|
-
.superdoc__edit-rejected-status[data-v-
|
|
1843
|
+
.superdoc__edit-rejected-status[data-v-ebe9a1fb] {
|
|
1844
1844
|
position: absolute;
|
|
1845
1845
|
top: 0;
|
|
1846
1846
|
left: 50%;
|
|
@@ -1858,30 +1858,30 @@ img[data-v-c95b2073] {
|
|
|
1858
1858
|
line-height: 20px;
|
|
1859
1859
|
pointer-events: none;
|
|
1860
1860
|
}
|
|
1861
|
-
.right-sidebar[data-v-
|
|
1861
|
+
.right-sidebar[data-v-ebe9a1fb] {
|
|
1862
1862
|
min-width: 320px;
|
|
1863
1863
|
height: 100%;
|
|
1864
1864
|
}
|
|
1865
|
-
.floating-comments[data-v-
|
|
1865
|
+
.floating-comments[data-v-ebe9a1fb] {
|
|
1866
1866
|
min-width: 300px;
|
|
1867
1867
|
width: 300px;
|
|
1868
1868
|
height: 100%;
|
|
1869
1869
|
overflow: visible;
|
|
1870
1870
|
}
|
|
1871
|
-
.superdoc__layers[data-v-
|
|
1871
|
+
.superdoc__layers[data-v-ebe9a1fb] {
|
|
1872
1872
|
height: 100%;
|
|
1873
1873
|
position: relative;
|
|
1874
1874
|
box-sizing: border-box;
|
|
1875
1875
|
}
|
|
1876
|
-
.superdoc__document[data-v-
|
|
1876
|
+
.superdoc__document[data-v-ebe9a1fb] {
|
|
1877
1877
|
width: 100%;
|
|
1878
1878
|
position: relative;
|
|
1879
1879
|
}
|
|
1880
|
-
.superdoc__sub-document[data-v-
|
|
1880
|
+
.superdoc__sub-document[data-v-ebe9a1fb] {
|
|
1881
1881
|
width: 100%;
|
|
1882
1882
|
position: relative;
|
|
1883
1883
|
}
|
|
1884
|
-
.superdoc__selection-layer[data-v-
|
|
1884
|
+
.superdoc__selection-layer[data-v-ebe9a1fb] {
|
|
1885
1885
|
position: absolute;
|
|
1886
1886
|
min-width: 100%;
|
|
1887
1887
|
min-height: 100%;
|
|
@@ -1892,13 +1892,13 @@ img[data-v-c95b2073] {
|
|
|
1892
1892
|
/* SD-3497: PDF whiteboard overlay sits above the rendered PDF canvas but below
|
|
1893
1893
|
the PDF comment anchors (z-index 6 in PdfCommentsLayer) so anchors stay
|
|
1894
1894
|
clickable, and below the selection layer (z-index 10). */
|
|
1895
|
-
.superdoc__whiteboard-layer[data-v-
|
|
1895
|
+
.superdoc__whiteboard-layer[data-v-ebe9a1fb] {
|
|
1896
1896
|
z-index: 4;
|
|
1897
1897
|
}
|
|
1898
|
-
.superdoc__temp-selection[data-v-
|
|
1898
|
+
.superdoc__temp-selection[data-v-ebe9a1fb] {
|
|
1899
1899
|
position: absolute;
|
|
1900
1900
|
}
|
|
1901
|
-
.superdoc__right-sidebar[data-v-
|
|
1901
|
+
.superdoc__right-sidebar[data-v-ebe9a1fb] {
|
|
1902
1902
|
width: 320px;
|
|
1903
1903
|
min-width: 320px;
|
|
1904
1904
|
padding: 0 10px;
|
|
@@ -1906,7 +1906,7 @@ img[data-v-c95b2073] {
|
|
|
1906
1906
|
position: relative;
|
|
1907
1907
|
z-index: 2;
|
|
1908
1908
|
}
|
|
1909
|
-
.superdoc__compact-comment-popover[data-v-
|
|
1909
|
+
.superdoc__compact-comment-popover[data-v-ebe9a1fb] {
|
|
1910
1910
|
position: absolute;
|
|
1911
1911
|
top: 12px;
|
|
1912
1912
|
right: 12px;
|
|
@@ -1915,14 +1915,14 @@ img[data-v-c95b2073] {
|
|
|
1915
1915
|
}
|
|
1916
1916
|
|
|
1917
1917
|
/* Tools styles */
|
|
1918
|
-
.tools[data-v-
|
|
1918
|
+
.tools[data-v-ebe9a1fb] {
|
|
1919
1919
|
position: absolute;
|
|
1920
1920
|
z-index: 3;
|
|
1921
1921
|
display: flex;
|
|
1922
1922
|
flex-direction: column;
|
|
1923
1923
|
gap: var(--sd-ui-tools-gap, 6px);
|
|
1924
1924
|
}
|
|
1925
|
-
.tools-item[data-v-
|
|
1925
|
+
.tools-item[data-v-ebe9a1fb] {
|
|
1926
1926
|
display: flex;
|
|
1927
1927
|
align-items: center;
|
|
1928
1928
|
justify-content: center;
|
|
@@ -1933,10 +1933,10 @@ img[data-v-c95b2073] {
|
|
|
1933
1933
|
cursor: pointer;
|
|
1934
1934
|
position: relative;
|
|
1935
1935
|
}
|
|
1936
|
-
.tools-item i[data-v-
|
|
1936
|
+
.tools-item i[data-v-ebe9a1fb] {
|
|
1937
1937
|
cursor: pointer;
|
|
1938
1938
|
}
|
|
1939
|
-
.superdoc__tools-icon[data-v-
|
|
1939
|
+
.superdoc__tools-icon[data-v-ebe9a1fb] {
|
|
1940
1940
|
width: var(--sd-ui-tools-icon-size, 20px);
|
|
1941
1941
|
height: var(--sd-ui-tools-icon-size, 20px);
|
|
1942
1942
|
flex-shrink: 0;
|
|
@@ -1951,22 +1951,22 @@ img[data-v-c95b2073] {
|
|
|
1951
1951
|
|
|
1952
1952
|
/* 834px is iPad screen size in portrait orientation */
|
|
1953
1953
|
@media (max-width: 834px) {
|
|
1954
|
-
.superdoc .superdoc__layers[data-v-
|
|
1954
|
+
.superdoc .superdoc__layers[data-v-ebe9a1fb] {
|
|
1955
1955
|
margin: 0;
|
|
1956
1956
|
border: 0 !important;
|
|
1957
1957
|
box-shadow: none;
|
|
1958
1958
|
}
|
|
1959
|
-
.superdoc__sub-document[data-v-
|
|
1959
|
+
.superdoc__sub-document[data-v-ebe9a1fb] {
|
|
1960
1960
|
max-width: 100%;
|
|
1961
1961
|
}
|
|
1962
|
-
.superdoc__right-sidebar[data-v-
|
|
1962
|
+
.superdoc__right-sidebar[data-v-ebe9a1fb] {
|
|
1963
1963
|
padding: 10px;
|
|
1964
1964
|
position: relative;
|
|
1965
1965
|
}
|
|
1966
1966
|
}
|
|
1967
1967
|
|
|
1968
1968
|
/* AI Writer styles */
|
|
1969
|
-
.ai-writer-container[data-v-
|
|
1969
|
+
.ai-writer-container[data-v-ebe9a1fb] {
|
|
1970
1970
|
position: fixed;
|
|
1971
1971
|
z-index: 1000;
|
|
1972
1972
|
background: white;
|
|
@@ -1982,10 +1982,10 @@ img[data-v-c95b2073] {
|
|
|
1982
1982
|
transform: translateY(-50%);
|
|
1983
1983
|
z-index: 50;
|
|
1984
1984
|
} */
|
|
1985
|
-
.ai-tool > svg[data-v-
|
|
1985
|
+
.ai-tool > svg[data-v-ebe9a1fb] {
|
|
1986
1986
|
fill: transparent;
|
|
1987
1987
|
}
|
|
1988
|
-
.ai-tool[data-v-
|
|
1988
|
+
.ai-tool[data-v-ebe9a1fb]::before {
|
|
1989
1989
|
content: '';
|
|
1990
1990
|
position: absolute;
|
|
1991
1991
|
width: 20px;
|
|
@@ -2006,7 +2006,7 @@ img[data-v-c95b2073] {
|
|
|
2006
2006
|
filter: brightness(1.2);
|
|
2007
2007
|
transition: filter 0.2s ease;
|
|
2008
2008
|
}
|
|
2009
|
-
.ai-tool[data-v-
|
|
2009
|
+
.ai-tool[data-v-ebe9a1fb]:hover::before {
|
|
2010
2010
|
filter: brightness(1.3);
|
|
2011
2011
|
}
|
|
2012
2012
|
|
|
@@ -2359,7 +2359,7 @@ img[data-v-c95b2073] {
|
|
|
2359
2359
|
transform: scale(1);
|
|
2360
2360
|
}
|
|
2361
2361
|
|
|
2362
|
-
.superdoc-toolbar-overflow[data-v-
|
|
2362
|
+
.superdoc-toolbar-overflow[data-v-5f8ee279] {
|
|
2363
2363
|
min-width: auto !important;
|
|
2364
2364
|
max-width: 200px;
|
|
2365
2365
|
flex-wrap: wrap;
|
|
@@ -48,3 +48,4 @@ export function resolveFitWidthOptions(rawFitConfig: any): {
|
|
|
48
48
|
export function computeFitZoom(availableWidth: any, documentWidth: any): number | null;
|
|
49
49
|
export function computeAppliedFitZoom(availableWidth: any, documentWidth: any, options: any): number | null;
|
|
50
50
|
export function normalizePdfPageMeasurement(measured: any, scaleFactor: any, zoomFactor: any): any;
|
|
51
|
+
export function resolveEditorPageWidth(editor: any): number | null;
|
|
@@ -7,20 +7,20 @@
|
|
|
7
7
|
* first-class single-doc provider families — y-websocket, Hocuspocus, and
|
|
8
8
|
* Liveblocks — each bound to one `Y.Doc`, one provider session, and one
|
|
9
9
|
* awareness channel (implemented inside the bundled v2 runtime) and surfaced
|
|
10
|
-
* publicly through {@link
|
|
10
|
+
* publicly through {@link DocumentCollaborationConfig} (`Document.collaboration`).
|
|
11
11
|
*
|
|
12
12
|
* The resolver never returns a "maybe collaborative" result: it either returns
|
|
13
13
|
* a normalized, supported target or a stable, redacted diagnostic. Tokens, auth
|
|
14
14
|
* keys, auth endpoints, and query strings are never echoed back in diagnostics.
|
|
15
15
|
*/
|
|
16
16
|
/** Provider families the shipped v2 single-doc runtime can drive. */
|
|
17
|
-
export type SupportedV2ProviderFamily = 'y-websocket' | 'hocuspocus' | 'liveblocks';
|
|
17
|
+
export type SupportedV2ProviderFamily = 'y-websocket' | 'hocuspocus' | 'liveblocks' | 'extension';
|
|
18
18
|
/**
|
|
19
19
|
* Stable, machine-readable reasons a target cannot be treated as a supported v2
|
|
20
20
|
* collaboration room. These strings are part of the diagnostic contract and are
|
|
21
21
|
* safe to assert against in tests; they never carry caller-provided values.
|
|
22
22
|
*/
|
|
23
|
-
export type V2CollaborationUnsupportedReason = 'missing-target' | 'invalid-document-id' | 'invalid-server-url' | 'invalid-room-mode' | 'invalid-auth-endpoint' | 'missing-auth' | 'mixed-auth' | 'unsupported-document-type' | 'unsupported-multi-document' | 'unsupported-legacy-provider' | 'unsupported-provider-family';
|
|
23
|
+
export type V2CollaborationUnsupportedReason = 'missing-target' | 'invalid-document-id' | 'invalid-server-url' | 'invalid-room-mode' | 'invalid-auth-endpoint' | 'invalid-adapter-id' | 'invalid-provider-options' | 'missing-auth' | 'mixed-auth' | 'unsupported-document-type' | 'unsupported-multi-document' | 'unsupported-legacy-provider' | 'unsupported-provider-family';
|
|
24
24
|
/**
|
|
25
25
|
* Normalized, supported v2 collaboration room target.
|
|
26
26
|
*
|
|
@@ -38,11 +38,15 @@ export interface NormalizedV2CollaborationTarget {
|
|
|
38
38
|
/** Optional connection query params (e.g. auth token) forwarded verbatim. */
|
|
39
39
|
params?: Record<string, string>;
|
|
40
40
|
/** Hocuspocus auth-message token. */
|
|
41
|
-
token?: string;
|
|
41
|
+
token?: string | (() => string | Promise<string>);
|
|
42
42
|
/** Liveblocks anonymous public key auth mode. */
|
|
43
43
|
publicApiKey?: string;
|
|
44
44
|
/** Liveblocks server-side auth endpoint mode. */
|
|
45
45
|
authEndpoint?: string;
|
|
46
|
+
/** Adapter registration key for a customer collaboration Worker. */
|
|
47
|
+
adapterId?: string;
|
|
48
|
+
/** Structured-clone-safe options interpreted by the registered adapter. */
|
|
49
|
+
providerOptions?: unknown;
|
|
46
50
|
/** Explicit room operation; join is the default at the untrusted input boundary. */
|
|
47
51
|
roomMode: 'join' | 'create';
|
|
48
52
|
}
|
|
@@ -68,7 +72,9 @@ export interface LegacyCollaborationLike {
|
|
|
68
72
|
[key: string]: unknown;
|
|
69
73
|
}
|
|
70
74
|
export interface ResolveV2CollaborationTargetInput {
|
|
71
|
-
/**
|
|
75
|
+
/** Preferred connection settings. Explicit null or invalid input never falls back to the alias. */
|
|
76
|
+
collaboration?: unknown;
|
|
77
|
+
/** Compatibility spelling for document-level connection settings. */
|
|
72
78
|
v2Collaboration?: unknown;
|
|
73
79
|
/** Legacy provider-agnostic collaboration block (`modules.collaboration` / upgrade opts). */
|
|
74
80
|
legacyCollaboration?: LegacyCollaborationLike | null;
|
|
@@ -83,6 +89,11 @@ export interface ResolveV2CollaborationTargetInput {
|
|
|
83
89
|
*/
|
|
84
90
|
authEndpointBaseUrl?: string;
|
|
85
91
|
}
|
|
92
|
+
/** Select the public spelling before validation; do not merge settings from different rooms. */
|
|
93
|
+
export declare function readCollaborationConfig(input: {
|
|
94
|
+
collaboration?: unknown;
|
|
95
|
+
v2Collaboration?: unknown;
|
|
96
|
+
}): unknown;
|
|
86
97
|
/**
|
|
87
98
|
* Redact a connection URL for safe inclusion in diagnostics and artifacts.
|
|
88
99
|
*
|
|
@@ -1,43 +1,55 @@
|
|
|
1
1
|
export interface ThemeColors {
|
|
2
|
-
/** Action
|
|
2
|
+
/** Action color for buttons, links, and active states. @defaultValue `#1355ff` */
|
|
3
3
|
action?: string;
|
|
4
|
-
/**
|
|
4
|
+
/** Hover color for action elements. @defaultValue `#0f44cc` */
|
|
5
5
|
actionHover?: string;
|
|
6
|
-
/** Text color on action-colored
|
|
6
|
+
/** Text color shown on action-colored elements. @defaultValue `#ffffff` */
|
|
7
7
|
actionText?: string;
|
|
8
|
-
/**
|
|
8
|
+
/** Shared background for UI surfaces such as panels, cards, and dropdowns. @defaultValue `#ffffff` */
|
|
9
9
|
bg?: string;
|
|
10
|
-
/**
|
|
10
|
+
/** Background for hovered controls. @defaultValue `#dbdbdb` */
|
|
11
11
|
hoverBg?: string;
|
|
12
|
-
/**
|
|
12
|
+
/** Background for active and pressed controls. @defaultValue `#c8d0d8` */
|
|
13
13
|
activeBg?: string;
|
|
14
|
-
/**
|
|
14
|
+
/** Background for disabled controls. @defaultValue `#f5f5f5` */
|
|
15
15
|
disabledBg?: string;
|
|
16
|
-
/** Primary text color.
|
|
16
|
+
/** Primary UI text color. @defaultValue `#47484a` */
|
|
17
17
|
text?: string;
|
|
18
|
-
/** Secondary
|
|
18
|
+
/** Secondary UI text color. @defaultValue `#666666` */
|
|
19
19
|
textMuted?: string;
|
|
20
|
-
/**
|
|
20
|
+
/** Text color for disabled controls. @defaultValue `#ababab` */
|
|
21
21
|
textDisabled?: string;
|
|
22
|
-
/**
|
|
22
|
+
/** Shared UI border color. @defaultValue `#dbdbdb` */
|
|
23
23
|
border?: string;
|
|
24
24
|
}
|
|
25
|
+
/** SuperDoc CSS variable overrides applied after the semantic theme values. */
|
|
26
|
+
export type ThemeVariableOverrides = {
|
|
27
|
+
readonly [name: `--sd-${string}`]: string | null | undefined;
|
|
28
|
+
};
|
|
25
29
|
export interface ThemeConfig {
|
|
26
|
-
/**
|
|
30
|
+
/** Name used in the generated class, such as `product` for `sd-theme-product`. */
|
|
27
31
|
name?: string;
|
|
28
|
-
/**
|
|
32
|
+
/**
|
|
33
|
+
* Font family for SuperDoc UI surfaces that inherit the theme, such as body-mounted dialogs
|
|
34
|
+
* and floating surfaces. The Editor root and the external toolbar set `--sd-ui-font-family`
|
|
35
|
+
* inline from `uiDisplayFallbackFont`, and an inline declaration outranks the theme class —
|
|
36
|
+
* set `uiDisplayFallbackFont` to the same value to change those surfaces too.
|
|
37
|
+
*/
|
|
29
38
|
font?: string;
|
|
30
|
-
/**
|
|
39
|
+
/** Shared UI border radius, such as `8px`. */
|
|
31
40
|
radius?: string;
|
|
32
|
-
/**
|
|
41
|
+
/** Shared UI box shadow. */
|
|
33
42
|
shadow?: string;
|
|
34
|
-
/**
|
|
43
|
+
/** Semantic colors shared by SuperDoc UI components. */
|
|
35
44
|
colors?: ThemeColors;
|
|
36
|
-
/**
|
|
37
|
-
vars?:
|
|
45
|
+
/** Component-specific overrides, such as `{ '--sd-ui-toolbar-bg': '#f8fafc' }`. */
|
|
46
|
+
vars?: ThemeVariableOverrides;
|
|
38
47
|
}
|
|
48
|
+
/** CSS generated by {@link buildTheme}. */
|
|
39
49
|
export interface ThemeResult {
|
|
50
|
+
/** Class that activates the generated theme. */
|
|
40
51
|
className: string;
|
|
52
|
+
/** CSS rule containing the generated SuperDoc variables. */
|
|
41
53
|
css: string;
|
|
42
54
|
}
|
|
43
55
|
/**
|
|
@@ -65,8 +77,8 @@ export interface ThemeResult {
|
|
|
65
77
|
export declare function createTheme(config: ThemeConfig): string;
|
|
66
78
|
/**
|
|
67
79
|
* Build a SuperDoc theme and return both the class name and raw CSS.
|
|
68
|
-
*
|
|
69
|
-
*
|
|
80
|
+
* This function does not access the DOM. Use it for server rendering or when
|
|
81
|
+
* your application controls style injection, such as with a CSP nonce.
|
|
70
82
|
*
|
|
71
83
|
* @example
|
|
72
84
|
* ```ts
|