superdoc 2.18.1-next.4 → 2.19.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{create-super-doc-ui-C3HDE1IE.es.js → create-super-doc-ui-BFJ9Y0YV.cjs} +1396 -1
- package/dist/chunks/{create-super-doc-ui-Gxk1m05U.cjs → create-super-doc-ui-Dfw1b6h_.es.js} +1318 -66
- package/dist/collaboration-upgrade-engine.cjs +1 -1
- package/dist/collaboration-upgrade-engine.es.js +1 -1
- package/dist/document-api/src/contract/command-catalog.d.ts +1 -1
- package/dist/document-api/src/contract/operation-definitions.d.ts +9 -0
- package/dist/document-api/src/index.d.ts +1 -0
- package/dist/document-api/src/validation-primitives.d.ts +1 -1
- package/dist/document-api/src/watermarks/watermarks.d.ts +4 -1
- package/dist/document-api/src/watermarks/watermarks.types.d.ts +34 -0
- package/dist/layout-engine/painters/dom/src/index.d.ts +2 -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 +596 -80
- package/dist/style.layered.css +597 -81
- package/dist/superdoc/src/components/surfaces/WatermarkSurface.vue.d.ts +16 -0
- package/dist/superdoc/src/components/surfaces/watermark-surface-runtime.d.ts +8 -0
- package/dist/superdoc/src/core/types/index.d.ts +4 -4
- package/dist/superdoc/src/internal/toolbar/built-in/OverflowMenu.vue.d.ts +93 -1
- package/dist/superdoc/src/internal/toolbar/built-in/Toolbar.vue.d.ts +3 -1
- package/dist/superdoc/src/internal/toolbar/built-in/ToolbarDropdown.vue.d.ts +1 -0
- package/dist/superdoc/src/internal/toolbar/built-in/toolbarIcons.d.ts +1 -0
- package/dist/superdoc/src/internal/toolbar/built-in/toolbarTexts.d.ts +1 -0
- package/dist/superdoc/src/internal/toolbar/built-in-toolbar.d.ts +3 -0
- package/dist/superdoc/src/public/ui/types.d.ts +10 -1
- package/dist/superdoc/src/public/ui/watermark-controller.d.ts +32 -0
- package/dist/superdoc/src/public/ui/watermark-dialog-state.d.ts +66 -0
- package/dist/superdoc/src/public/ui/watermark-draft.d.ts +6 -0
- package/dist/superdoc/src/public/ui.d.cts +12 -0
- package/dist/superdoc/src/public/ui.d.ts +1 -1
- package/dist/superdoc.cjs +107 -171
- package/dist/superdoc.es.js +105 -169
- package/dist-cdn/style.layered.css +1 -1
- package/dist-cdn/superdoc.min.css +1 -1
- package/dist-cdn/superdoc.min.js +38 -37
- package/package.json +2 -2
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { WatermarkDialogModel } from '../../public/ui/watermark-dialog-state.js';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
model: WatermarkDialogModel;
|
|
4
|
+
surfaceId?: string;
|
|
5
|
+
mode?: string;
|
|
6
|
+
request?: object;
|
|
7
|
+
resolve?: (value?: unknown) => void;
|
|
8
|
+
close?: (reason?: string) => void;
|
|
9
|
+
};
|
|
10
|
+
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
11
|
+
close: (reason?: string) => void;
|
|
12
|
+
surfaceId: string;
|
|
13
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
|
|
14
|
+
fileInput: HTMLInputElement;
|
|
15
|
+
}, HTMLFormElement>;
|
|
16
|
+
export default _default;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** The runtime owns its Vue component; consumers only need the surface request value. */
|
|
2
|
+
export function createWatermarkSurfaceRuntime(getContainer?: () => HTMLElement | null): {
|
|
3
|
+
component: unknown;
|
|
4
|
+
captureFocusReturn(): (isCurrent: () => boolean) => Promise<void>;
|
|
5
|
+
mount(): void;
|
|
6
|
+
announce(message: string): void;
|
|
7
|
+
destroy(): void;
|
|
8
|
+
};
|
|
@@ -3559,13 +3559,13 @@ export interface SuperDocZoomConfig {
|
|
|
3559
3559
|
/** The three regions rendered by the built-in toolbar. */
|
|
3560
3560
|
export type ToolbarRegion = 'left' | 'center' | 'right';
|
|
3561
3561
|
/** Built-in controls accepted by `ui.toolbar.items` and `excludeItems`. */
|
|
3562
|
-
export type ToolbarItemId = 'undo' | 'redo' | 'track-changes-accept-selection' | 'track-changes-reject-selection' | 'search' | 'zoom' | 'font-family' | 'font-size' | 'bold' | 'italic' | 'underline' | 'strikethrough' | 'text-color' | 'highlight-color' | 'link' | 'image' | 'table-of-contents' | 'table' | 'table-actions' | 'text-align' | 'bullet-list' | 'numbered-list' | 'indent-decrease' | 'indent-increase' | 'line-height' | 'linked-style' | 'ruler' | 'measurement-unit' | 'formatting-marks' | 'copy-format' | 'clear-formatting' | 'ai' | 'document-mode';
|
|
3562
|
+
export type ToolbarItemId = 'undo' | 'redo' | 'track-changes-accept-selection' | 'track-changes-reject-selection' | 'search' | 'zoom' | 'font-family' | 'font-size' | 'bold' | 'italic' | 'underline' | 'strikethrough' | 'text-color' | 'highlight-color' | 'link' | 'image' | 'table-of-contents' | 'watermark' | 'table' | 'table-actions' | 'text-align' | 'bullet-list' | 'numbered-list' | 'indent-decrease' | 'indent-increase' | 'line-height' | 'linked-style' | 'ruler' | 'measurement-unit' | 'formatting-marks' | 'copy-format' | 'clear-formatting' | 'ai' | 'document-mode';
|
|
3563
3563
|
/** Controls that `includeItems` can add to the default toolbar. */
|
|
3564
|
-
export type ToolbarOptionalItemId = 'formatting-marks' | 'table-of-contents';
|
|
3564
|
+
export type ToolbarOptionalItemId = 'formatting-marks' | 'table-of-contents' | 'watermark';
|
|
3565
3565
|
/** Slots whose built-in toolbar icon can be replaced. */
|
|
3566
|
-
export type ToolbarIconId = 'undo' | 'redo' | 'bold' | 'italic' | 'underline' | 'strikethrough' | 'text-color' | 'link' | 'image' | 'table-of-contents' | 'align-left' | 'align-right' | 'align-center' | 'align-justify' | 'bullet-list' | 'numbered-list' | 'indent-decrease' | 'indent-increase' | 'track-changes-accept-selection' | 'track-changes-reject-selection' | 'document-mode' | 'document-mode-editing' | 'document-mode-suggesting' | 'document-mode-viewing' | 'overflow' | 'ruler' | 'linked-style' | 'highlight-color' | 'ai' | 'table' | 'table-actions' | 'split-cell' | 'merge-cells' | 'insert-row-before' | 'insert-row-after' | 'insert-column-before' | 'insert-column-after' | 'delete-row' | 'delete-column' | 'delete-table' | 'remove-borders' | 'fix-tables' | 'line-height' | 'search' | 'formatting-marks' | 'copy-format' | 'clear-formatting';
|
|
3566
|
+
export type ToolbarIconId = 'undo' | 'redo' | 'bold' | 'italic' | 'underline' | 'strikethrough' | 'text-color' | 'link' | 'image' | 'table-of-contents' | 'watermark' | 'align-left' | 'align-right' | 'align-center' | 'align-justify' | 'bullet-list' | 'numbered-list' | 'indent-decrease' | 'indent-increase' | 'track-changes-accept-selection' | 'track-changes-reject-selection' | 'document-mode' | 'document-mode-editing' | 'document-mode-suggesting' | 'document-mode-viewing' | 'overflow' | 'ruler' | 'linked-style' | 'highlight-color' | 'ai' | 'table' | 'table-actions' | 'split-cell' | 'merge-cells' | 'insert-row-before' | 'insert-row-after' | 'insert-column-before' | 'insert-column-after' | 'delete-row' | 'delete-column' | 'delete-table' | 'remove-borders' | 'fix-tables' | 'line-height' | 'search' | 'formatting-marks' | 'copy-format' | 'clear-formatting';
|
|
3567
3567
|
/** Text slots whose built-in label or tooltip can be replaced. */
|
|
3568
|
-
export type ToolbarStringId = 'bold' | 'font-family' | 'ai' | 'font-size' | 'italic' | 'underline' | 'highlight-color' | 'strikethrough' | 'text-color' | 'search' | 'link' | 'image' | 'table-of-contents' | 'table' | 'table-actions' | 'insert-row-before' | 'insert-row-after' | 'insert-column-before' | 'insert-column-after' | 'delete-row' | 'delete-column' | 'delete-table' | 'remove-borders' | 'merge-cells' | 'split-cell' | 'fix-tables' | 'text-align' | 'bullet-list' | 'numbered-list' | 'indent-decrease' | 'indent-increase' | 'zoom' | 'measurement-unit' | 'undo' | 'redo' | 'track-changes-accept-selection' | 'track-changes-reject-selection' | 'clear-formatting' | 'copy-format' | 'line-height' | 'linked-style-label' | 'ruler' | 'formatting-marks' | 'linked-style' | 'document-mode-editing' | 'document-mode-suggesting' | 'document-mode-viewing' | 'document-mode-editing-description' | 'document-mode-suggesting-description' | 'document-mode-viewing-description';
|
|
3568
|
+
export type ToolbarStringId = 'bold' | 'font-family' | 'ai' | 'font-size' | 'italic' | 'underline' | 'highlight-color' | 'strikethrough' | 'text-color' | 'search' | 'link' | 'image' | 'table-of-contents' | 'watermark' | 'table' | 'table-actions' | 'insert-row-before' | 'insert-row-after' | 'insert-column-before' | 'insert-column-after' | 'delete-row' | 'delete-column' | 'delete-table' | 'remove-borders' | 'merge-cells' | 'split-cell' | 'fix-tables' | 'text-align' | 'bullet-list' | 'numbered-list' | 'indent-decrease' | 'indent-increase' | 'zoom' | 'measurement-unit' | 'undo' | 'redo' | 'track-changes-accept-selection' | 'track-changes-reject-selection' | 'clear-formatting' | 'copy-format' | 'line-height' | 'linked-style-label' | 'ruler' | 'formatting-marks' | 'linked-style' | 'document-mode-editing' | 'document-mode-suggesting' | 'document-mode-viewing' | 'document-mode-editing-description' | 'document-mode-suggesting-description' | 'document-mode-viewing-description';
|
|
3569
3569
|
/** One selectable option in a custom toolbar dropdown. */
|
|
3570
3570
|
export interface ToolbarCustomOption {
|
|
3571
3571
|
/** Stable option identity. Also used as the selected value when `value` is omitted. */
|
|
@@ -8,5 +8,97 @@ declare const _default: import('vue').DefineComponent<{}, {
|
|
|
8
8
|
readonly toolbarItem?: Record<string, any> | undefined;
|
|
9
9
|
readonly overflowItems?: unknown[] | undefined;
|
|
10
10
|
};
|
|
11
|
-
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
|
|
11
|
+
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
|
|
12
|
+
dropdown: ({
|
|
13
|
+
$: import('vue').ComponentInternalInstance;
|
|
14
|
+
$data: {};
|
|
15
|
+
$props: Partial<{}> & Omit<{} & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>;
|
|
16
|
+
$attrs: import('vue').Attrs;
|
|
17
|
+
$refs: {
|
|
18
|
+
[x: string]: unknown;
|
|
19
|
+
} & {
|
|
20
|
+
triggerRef: HTMLDivElement;
|
|
21
|
+
menuRef: HTMLDivElement;
|
|
22
|
+
};
|
|
23
|
+
$slots: Readonly<{
|
|
24
|
+
[name: string]: import('vue').Slot<any> | undefined;
|
|
25
|
+
}>;
|
|
26
|
+
$root: import('vue').ComponentPublicInstance | null;
|
|
27
|
+
$parent: import('vue').ComponentPublicInstance | null;
|
|
28
|
+
$host: Element | null;
|
|
29
|
+
$emit: (event: string, ...args: any[]) => void;
|
|
30
|
+
$el: HTMLDivElement;
|
|
31
|
+
$options: import('vue').ComponentOptionsBase<Readonly<{}> & Readonly<{}>, {
|
|
32
|
+
focusTrigger: () => void;
|
|
33
|
+
$emit: (event: "select" | "update:show", ...args: any[]) => void;
|
|
34
|
+
placement: string;
|
|
35
|
+
options: unknown[];
|
|
36
|
+
disabled: boolean;
|
|
37
|
+
contentStyle: Record<string, any>;
|
|
38
|
+
show: boolean;
|
|
39
|
+
menuProps: Function;
|
|
40
|
+
nodeProps: Function;
|
|
41
|
+
closeOnEscape: boolean;
|
|
42
|
+
hasOpenChild: boolean;
|
|
43
|
+
$props: {
|
|
44
|
+
readonly placement?: string | undefined;
|
|
45
|
+
readonly options?: unknown[] | undefined;
|
|
46
|
+
readonly disabled?: boolean | undefined;
|
|
47
|
+
readonly contentStyle?: Record<string, any> | undefined;
|
|
48
|
+
readonly show?: boolean | undefined;
|
|
49
|
+
readonly menuProps?: Function | undefined;
|
|
50
|
+
readonly nodeProps?: Function | undefined;
|
|
51
|
+
readonly closeOnEscape?: boolean | undefined;
|
|
52
|
+
readonly hasOpenChild?: boolean | undefined;
|
|
53
|
+
};
|
|
54
|
+
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & {
|
|
55
|
+
beforeCreate?: (() => void) | (() => void)[];
|
|
56
|
+
created?: (() => void) | (() => void)[];
|
|
57
|
+
beforeMount?: (() => void) | (() => void)[];
|
|
58
|
+
mounted?: (() => void) | (() => void)[];
|
|
59
|
+
beforeUpdate?: (() => void) | (() => void)[];
|
|
60
|
+
updated?: (() => void) | (() => void)[];
|
|
61
|
+
activated?: (() => void) | (() => void)[];
|
|
62
|
+
deactivated?: (() => void) | (() => void)[];
|
|
63
|
+
beforeDestroy?: (() => void) | (() => void)[];
|
|
64
|
+
beforeUnmount?: (() => void) | (() => void)[];
|
|
65
|
+
destroyed?: (() => void) | (() => void)[];
|
|
66
|
+
unmounted?: (() => void) | (() => void)[];
|
|
67
|
+
renderTracked?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
|
|
68
|
+
renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
|
|
69
|
+
errorCaptured?: ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void)[];
|
|
70
|
+
};
|
|
71
|
+
$forceUpdate: () => void;
|
|
72
|
+
$nextTick: typeof import('vue').nextTick;
|
|
73
|
+
$watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
|
|
74
|
+
} & Readonly<{}> & Omit<Readonly<{}> & Readonly<{}>, "placement" | "options" | "$props" | "$emit" | "disabled" | "contentStyle" | "show" | "menuProps" | "nodeProps" | "closeOnEscape" | "hasOpenChild" | "focusTrigger"> & {
|
|
75
|
+
focusTrigger: () => void;
|
|
76
|
+
$emit: (event: "select" | "update:show", ...args: any[]) => void;
|
|
77
|
+
placement: string;
|
|
78
|
+
options: unknown[];
|
|
79
|
+
disabled: boolean;
|
|
80
|
+
contentStyle: Record<string, any>;
|
|
81
|
+
show: boolean;
|
|
82
|
+
menuProps: Function;
|
|
83
|
+
nodeProps: Function;
|
|
84
|
+
closeOnEscape: boolean;
|
|
85
|
+
hasOpenChild: boolean;
|
|
86
|
+
$props: {
|
|
87
|
+
readonly placement?: string | undefined;
|
|
88
|
+
readonly options?: unknown[] | undefined;
|
|
89
|
+
readonly disabled?: boolean | undefined;
|
|
90
|
+
readonly contentStyle?: Record<string, any> | undefined;
|
|
91
|
+
readonly show?: boolean | undefined;
|
|
92
|
+
readonly menuProps?: Function | undefined;
|
|
93
|
+
readonly nodeProps?: Function | undefined;
|
|
94
|
+
readonly closeOnEscape?: boolean | undefined;
|
|
95
|
+
readonly hasOpenChild?: boolean | undefined;
|
|
96
|
+
};
|
|
97
|
+
} & {} & import('vue').ComponentCustomProperties & {} & {
|
|
98
|
+
$slots: {
|
|
99
|
+
trigger?(_: {}): any;
|
|
100
|
+
menu?(_: {}): any;
|
|
101
|
+
};
|
|
102
|
+
}) | null;
|
|
103
|
+
}, HTMLDivElement>;
|
|
12
104
|
export default _default;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
declare const _default: import('vue').DefineComponent<{}, {
|
|
2
2
|
$emit: (event: "select" | "toggle" | "command", ...args: any[]) => void;
|
|
3
|
-
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
|
|
3
|
+
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
|
|
4
|
+
toolbarRoot: HTMLDivElement;
|
|
5
|
+
}, HTMLDivElement>;
|
|
4
6
|
export default _default;
|
|
@@ -4,6 +4,7 @@ type __VLS_WithTemplateSlots<T, S> = T & (new () => {
|
|
|
4
4
|
$slots: S;
|
|
5
5
|
});
|
|
6
6
|
declare const __VLS_component: import('vue').DefineComponent<{}, {
|
|
7
|
+
focusTrigger: () => void;
|
|
7
8
|
$emit: (event: "select" | "update:show", ...args: any[]) => void;
|
|
8
9
|
placement: string;
|
|
9
10
|
options: unknown[];
|
|
@@ -8,6 +8,7 @@ export namespace toolbarIcons {
|
|
|
8
8
|
export { linkIconSvg as link };
|
|
9
9
|
export { imageIconSvg as image };
|
|
10
10
|
export { tocIconSvg as tableOfContents };
|
|
11
|
+
export { watermarkIconSvg as watermark };
|
|
11
12
|
export { alignLeftIconSvg as alignLeft };
|
|
12
13
|
export { alignRightIconSvg as alignRight };
|
|
13
14
|
export { alignCenterIconSvg as alignCenter };
|
|
@@ -33,6 +33,7 @@ export class BuiltInToolbar extends EventEmitter<string | symbol, any> {
|
|
|
33
33
|
link: any;
|
|
34
34
|
image: any;
|
|
35
35
|
tableOfContents: any;
|
|
36
|
+
watermark: any;
|
|
36
37
|
alignLeft: any;
|
|
37
38
|
alignRight: any;
|
|
38
39
|
alignCenter: any;
|
|
@@ -113,6 +114,7 @@ export class BuiltInToolbar extends EventEmitter<string | symbol, any> {
|
|
|
113
114
|
link: string;
|
|
114
115
|
image: string;
|
|
115
116
|
tableOfContents: string;
|
|
117
|
+
watermark: string;
|
|
116
118
|
table: string;
|
|
117
119
|
tableActions: string;
|
|
118
120
|
addRowBefore: string;
|
|
@@ -166,6 +168,7 @@ export class BuiltInToolbar extends EventEmitter<string | symbol, any> {
|
|
|
166
168
|
customButtons: never[];
|
|
167
169
|
showFormattingMarksButton: boolean;
|
|
168
170
|
showTableOfContentsButton: boolean;
|
|
171
|
+
showWatermarkButton: boolean;
|
|
169
172
|
};
|
|
170
173
|
toolbarItems: any[];
|
|
171
174
|
overflowItems: any[];
|
|
@@ -30,7 +30,7 @@ import { BuiltInCommandId } from './commands.js';
|
|
|
30
30
|
* (`scripts/ensure-types.cjs` `rewriteDocApiPaths`), so no bare private
|
|
31
31
|
* specifier leaks into the emitted `.d.ts`.
|
|
32
32
|
*/
|
|
33
|
-
export type { Receipt, SelectionInfo, SelectionTarget, SelectionPoint, TextTarget, TextAddress, ScrollIntoViewInput, ScrollIntoViewOutput, DocumentApi, EntityAddress, CommentsListQuery as DocumentApiCommentsListQuery, CommentsListResult, TrackChangesListResult, ContentControlsListResult, ContentControlInfo, ContentControlTarget, RichContentInsertInput, OperationCapabilityResolveResult, SDHtmlMarkdownSupportCheckResult, PictureWatermarkInput, TextWatermark, WatermarkInfo, WatermarkTarget, } from '../../../../document-api/src/index.js';
|
|
33
|
+
export type { Receipt, SelectionInfo, SelectionTarget, SelectionPoint, TextTarget, TextAddress, ScrollIntoViewInput, ScrollIntoViewOutput, DocumentApi, EntityAddress, CommentsListQuery as DocumentApiCommentsListQuery, CommentsListResult, TrackChangesListResult, ContentControlsListResult, ContentControlInfo, ContentControlTarget, RichContentInsertInput, OperationCapabilityResolveResult, SDHtmlMarkdownSupportCheckResult, PictureWatermarkInput, RetainedPictureWatermarkInput, TextWatermark, WatermarkInfo, WatermarkTarget, WatermarksApplyInput, WatermarksApplyResult, WatermarksApplySuccess, WatermarksApplyTarget, } from '../../../../document-api/src/index.js';
|
|
34
34
|
export type { StyleCatalogView, StyleCatalogItemType, StyleCatalogFilterType, StyleProvenance, StyleCatalogItemVisibility, StyleCatalogItemUsage, StyleCatalogItemPreview, StyleCatalogItem, StyleCatalogDefaults, StyleCatalogDiagnostic, StyleCatalogSourceStatus, StylesGetCatalogInput, StylesGetCatalogResult, } from '../../../../document-api/src/index.js';
|
|
35
35
|
export type { ListPresetId } from '../../../../document-api/src/index.js';
|
|
36
36
|
export type { BrowserDocumentApi, PartialBrowserDocumentApi } from '../browser-document-api.js';
|
|
@@ -1409,6 +1409,13 @@ export interface ContextMenuHandle {
|
|
|
1409
1409
|
y: number;
|
|
1410
1410
|
}): ViewportContext;
|
|
1411
1411
|
}
|
|
1412
|
+
/** Runtime control for the built-in watermark dialog. */
|
|
1413
|
+
export interface WatermarkHandle {
|
|
1414
|
+
/** Open the dialog for the active document, or return an unavailable reason. */
|
|
1415
|
+
open(): WorkflowActionResult;
|
|
1416
|
+
/** Dismiss the dialog. Already submitted changes continue to completion. */
|
|
1417
|
+
close(): void;
|
|
1418
|
+
}
|
|
1412
1419
|
/**
|
|
1413
1420
|
* Structural shape of the active editor the controller reads. Every member is
|
|
1414
1421
|
* optional so a non-browser / pre-ready stub still satisfies it. The
|
|
@@ -1562,6 +1569,8 @@ export interface SuperDocUI {
|
|
|
1562
1569
|
readonly search: SearchController;
|
|
1563
1570
|
/** Built-in context menu runtime control. */
|
|
1564
1571
|
readonly contextMenu: ContextMenuHandle;
|
|
1572
|
+
/** Built-in watermark dialog runtime control. */
|
|
1573
|
+
readonly watermark: WatermarkHandle;
|
|
1565
1574
|
/** Styles surface (read-only catalogue + active paragraph style). */
|
|
1566
1575
|
readonly styles: StylesHandle;
|
|
1567
1576
|
/** Format-painter surface (DOM listener coordination). */
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { RetainedPictureWatermarkInput, WatermarkInput } from '../../../../document-api/src/index.js';
|
|
2
|
+
import { SurfaceHandle, SurfaceRequest } from '../../core/types/index.js';
|
|
3
|
+
import { BrowserDocumentApi } from '../browser-document-api.js';
|
|
4
|
+
import { FontFamilyOption, WatermarkHandle } from './types.js';
|
|
5
|
+
import { WatermarkPreview } from './watermark-dialog-state.js';
|
|
6
|
+
interface WatermarkEditor {
|
|
7
|
+
doc: Pick<BrowserDocumentApi, 'watermarks' | 'sections'>;
|
|
8
|
+
host?: {
|
|
9
|
+
watermarkPreview?(input: {
|
|
10
|
+
watermark: WatermarkInput | RetainedPictureWatermarkInput;
|
|
11
|
+
sectionId?: string;
|
|
12
|
+
expectedRevision?: string;
|
|
13
|
+
}): Promise<WatermarkPreview>;
|
|
14
|
+
events?: {
|
|
15
|
+
subscribe(listener: (event: {
|
|
16
|
+
type: string;
|
|
17
|
+
}) => void): () => void;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
interface WatermarkControllerOptions {
|
|
22
|
+
getEditor(): WatermarkEditor | null;
|
|
23
|
+
getMode(): string | null;
|
|
24
|
+
getFonts(): readonly FontFamilyOption[];
|
|
25
|
+
getContainer?(): HTMLElement | null;
|
|
26
|
+
openSurface: ((request: SurfaceRequest) => SurfaceHandle) | null;
|
|
27
|
+
announce?(message: string): void;
|
|
28
|
+
}
|
|
29
|
+
export declare function createWatermarkController(options: WatermarkControllerOptions): WatermarkHandle & {
|
|
30
|
+
destroy(): void;
|
|
31
|
+
};
|
|
32
|
+
export {};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { WatermarkPlacement, WatermarkScalePercent } from '../../../../document-api/src/index.js';
|
|
2
|
+
import { FontFamilyOption } from './types.js';
|
|
3
|
+
export interface WatermarkDraft {
|
|
4
|
+
kind: 'none' | 'text' | 'picture';
|
|
5
|
+
geometryKind: 'text' | 'picture' | null;
|
|
6
|
+
text: string;
|
|
7
|
+
fontFamily: string;
|
|
8
|
+
fontSize: 'auto' | number;
|
|
9
|
+
bold: boolean;
|
|
10
|
+
italic: boolean;
|
|
11
|
+
color: string;
|
|
12
|
+
transparency: number;
|
|
13
|
+
orientation: 'horizontal' | 'diagonal';
|
|
14
|
+
scalePercent: WatermarkScalePercent;
|
|
15
|
+
washout: boolean;
|
|
16
|
+
lockAspectRatio: boolean;
|
|
17
|
+
pictureName: string;
|
|
18
|
+
src?: string;
|
|
19
|
+
sourceWatermarkId?: string;
|
|
20
|
+
placement?: WatermarkPlacement;
|
|
21
|
+
widthPt?: number;
|
|
22
|
+
heightPt?: number;
|
|
23
|
+
customPlacement: boolean;
|
|
24
|
+
customOrientation: boolean;
|
|
25
|
+
customSize: boolean;
|
|
26
|
+
}
|
|
27
|
+
export type WatermarkPageVariant = 'all' | 'default' | 'first' | 'even';
|
|
28
|
+
export interface WatermarkPreview {
|
|
29
|
+
url: string;
|
|
30
|
+
width: number;
|
|
31
|
+
height: number;
|
|
32
|
+
}
|
|
33
|
+
export interface WatermarkDialogSnapshot {
|
|
34
|
+
phase: 'loading' | 'editing' | 'previewing' | 'applying';
|
|
35
|
+
draft: WatermarkDraft;
|
|
36
|
+
sections: {
|
|
37
|
+
id: string;
|
|
38
|
+
label: string;
|
|
39
|
+
}[];
|
|
40
|
+
sectionId: string | null;
|
|
41
|
+
variant: WatermarkPageVariant;
|
|
42
|
+
items: {
|
|
43
|
+
id: string;
|
|
44
|
+
label: string;
|
|
45
|
+
locations: string;
|
|
46
|
+
}[];
|
|
47
|
+
selectedIds: string[];
|
|
48
|
+
fonts: FontFamilyOption[];
|
|
49
|
+
dirty: boolean;
|
|
50
|
+
canApply: boolean;
|
|
51
|
+
error: string | null;
|
|
52
|
+
stale: boolean;
|
|
53
|
+
readonlyReason: string | null;
|
|
54
|
+
impact: string;
|
|
55
|
+
impactDetails: string[];
|
|
56
|
+
preview: WatermarkPreview | null;
|
|
57
|
+
}
|
|
58
|
+
export interface WatermarkDialogModel {
|
|
59
|
+
getSnapshot(): WatermarkDialogSnapshot;
|
|
60
|
+
subscribe(listener: (snapshot: WatermarkDialogSnapshot) => void): () => void;
|
|
61
|
+
patchDraft(patch: Partial<WatermarkDraft>): void;
|
|
62
|
+
setScope(sectionId: string | null, variant: WatermarkPageVariant): void;
|
|
63
|
+
selectWatermarks(ids: string[]): void;
|
|
64
|
+
apply(): Promise<void>;
|
|
65
|
+
reload(): Promise<void>;
|
|
66
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { RetainedPictureWatermarkInput, WatermarkInfo, WatermarkInput } from '../../../../document-api/src/index.js';
|
|
2
|
+
import { WatermarkDraft } from './watermark-dialog-state.js';
|
|
3
|
+
export declare function createWatermarkDraft(item?: WatermarkInfo): WatermarkDraft;
|
|
4
|
+
export declare function patchWatermarkDraft(draft: WatermarkDraft, patch: Partial<WatermarkDraft>): WatermarkDraft;
|
|
5
|
+
export declare function getWatermarkDraftError(draft: WatermarkDraft): string | null;
|
|
6
|
+
export declare function toWatermarkInput(draft: WatermarkDraft): WatermarkInput | RetainedPictureWatermarkInput;
|
|
@@ -45,6 +45,7 @@ import type { OperationCapabilityResolveResult as __Cjs_OperationCapabilityResol
|
|
|
45
45
|
import type { PartialBrowserDocumentApi as __Cjs_PartialBrowserDocumentApi } from './ui.js' with { "resolution-mode": "import" };
|
|
46
46
|
import type { PictureWatermarkInput as __Cjs_PictureWatermarkInput } from './ui.js' with { "resolution-mode": "import" };
|
|
47
47
|
import type { Receipt as __Cjs_Receipt } from './ui.js' with { "resolution-mode": "import" };
|
|
48
|
+
import type { RetainedPictureWatermarkInput as __Cjs_RetainedPictureWatermarkInput } from './ui.js' with { "resolution-mode": "import" };
|
|
48
49
|
import type { RichContentInsertInput as __Cjs_RichContentInsertInput } from './ui.js' with { "resolution-mode": "import" };
|
|
49
50
|
import type { ScrollIntoViewInput as __Cjs_ScrollIntoViewInput } from './ui.js' with { "resolution-mode": "import" };
|
|
50
51
|
import type { ScrollIntoViewOutput as __Cjs_ScrollIntoViewOutput } from './ui.js' with { "resolution-mode": "import" };
|
|
@@ -106,7 +107,12 @@ import type { ViewportGetRectInput as __Cjs_ViewportGetRectInput } from './ui.js
|
|
|
106
107
|
import type { ViewportHandle as __Cjs_ViewportHandle } from './ui.js' with { "resolution-mode": "import" };
|
|
107
108
|
import type { ViewportRect as __Cjs_ViewportRect } from './ui.js' with { "resolution-mode": "import" };
|
|
108
109
|
import type { ViewportRectResult as __Cjs_ViewportRectResult } from './ui.js' with { "resolution-mode": "import" };
|
|
110
|
+
import type { WatermarkHandle as __Cjs_WatermarkHandle } from './ui.js' with { "resolution-mode": "import" };
|
|
109
111
|
import type { WatermarkInfo as __Cjs_WatermarkInfo } from './ui.js' with { "resolution-mode": "import" };
|
|
112
|
+
import type { WatermarksApplyInput as __Cjs_WatermarksApplyInput } from './ui.js' with { "resolution-mode": "import" };
|
|
113
|
+
import type { WatermarksApplyResult as __Cjs_WatermarksApplyResult } from './ui.js' with { "resolution-mode": "import" };
|
|
114
|
+
import type { WatermarksApplySuccess as __Cjs_WatermarksApplySuccess } from './ui.js' with { "resolution-mode": "import" };
|
|
115
|
+
import type { WatermarksApplyTarget as __Cjs_WatermarksApplyTarget } from './ui.js' with { "resolution-mode": "import" };
|
|
110
116
|
import type { WatermarkTarget as __Cjs_WatermarkTarget } from './ui.js' with { "resolution-mode": "import" };
|
|
111
117
|
import type { WorkflowActionResult as __Cjs_WorkflowActionResult } from './ui.js' with { "resolution-mode": "import" };
|
|
112
118
|
import type { WorkflowReceipt as __Cjs_WorkflowReceipt } from './ui.js' with { "resolution-mode": "import" };
|
|
@@ -161,6 +167,7 @@ export type { __Cjs_OperationCapabilityResolveResult as OperationCapabilityResol
|
|
|
161
167
|
export type { __Cjs_PartialBrowserDocumentApi as PartialBrowserDocumentApi };
|
|
162
168
|
export type { __Cjs_PictureWatermarkInput as PictureWatermarkInput };
|
|
163
169
|
export type { __Cjs_Receipt as Receipt };
|
|
170
|
+
export type { __Cjs_RetainedPictureWatermarkInput as RetainedPictureWatermarkInput };
|
|
164
171
|
export type { __Cjs_RichContentInsertInput as RichContentInsertInput };
|
|
165
172
|
export type { __Cjs_ScrollIntoViewInput as ScrollIntoViewInput };
|
|
166
173
|
export type { __Cjs_ScrollIntoViewOutput as ScrollIntoViewOutput };
|
|
@@ -223,7 +230,12 @@ export type { __Cjs_ViewportGetRectInput as ViewportGetRectInput };
|
|
|
223
230
|
export type { __Cjs_ViewportHandle as ViewportHandle };
|
|
224
231
|
export type { __Cjs_ViewportRect as ViewportRect };
|
|
225
232
|
export type { __Cjs_ViewportRectResult as ViewportRectResult };
|
|
233
|
+
export type { __Cjs_WatermarkHandle as WatermarkHandle };
|
|
226
234
|
export type { __Cjs_WatermarkInfo as WatermarkInfo };
|
|
235
|
+
export type { __Cjs_WatermarksApplyInput as WatermarksApplyInput };
|
|
236
|
+
export type { __Cjs_WatermarksApplyResult as WatermarksApplyResult };
|
|
237
|
+
export type { __Cjs_WatermarksApplySuccess as WatermarksApplySuccess };
|
|
238
|
+
export type { __Cjs_WatermarksApplyTarget as WatermarksApplyTarget };
|
|
227
239
|
export type { __Cjs_WatermarkTarget as WatermarkTarget };
|
|
228
240
|
export type { __Cjs_WorkflowActionResult as WorkflowActionResult };
|
|
229
241
|
export type { __Cjs_WorkflowReceipt as WorkflowReceipt };
|
|
@@ -26,4 +26,4 @@
|
|
|
26
26
|
export { createSuperDocUI } from './ui/create-super-doc-ui.js';
|
|
27
27
|
export { shallowEqual } from './ui/equality.js';
|
|
28
28
|
export { BUILT_IN_COMMAND_IDS } from './ui/commands.js';
|
|
29
|
-
export type { EqualityFn, SelectorFn, Subscribable, SuperDocUI, BorrowedSuperDocUI, SuperDocUIOptions, SuperDocUIState, SuperDocUIScope, SuperDocLike, SuperDocEditorLike, CommandHandle, CommandState, CommandExecutionResult, WorkflowReceipt, WorkflowActionResult, WorkflowScrollResult, SelectionRestoreResult, SuperDocUIReason, CommandId, CommandsHandle, ContextMenuItem, ContextMenuHandle, SearchController, SearchHandle, SearchQueryOptions, CustomCommandContext, CustomCommandHandle, CustomCommandHandleState, CustomCommandRegistration, CustomCommandRegistrationResult, MetadataHandle, SelectionHandle, ToolbarHandle, BuiltInCommandId, ToolbarCommandId, CommentsHandle, TrackChangesHandle, ContentControlsHandle, ContentControlFocusResult, ContentControlHighlightResult, FontsHandle, ZoomHandle, DocumentHandle, DocumentReplacementResult, ViewportHandle, StylesHandle, ActiveParagraphStyle, SliceStatus, SelectionSlice, SelectionCapture, CommentAnchorCapture, ToolbarSnapshotSlice, CommentsSlice, TrackChangesSlice, ContentControlsSlice, FontsSlice, ZoomSlice, DocumentSlice, StylesSlice, SearchSnapshot, SearchSlice, StyleCatalogView, StyleCatalogItemType, StyleCatalogFilterType, StyleProvenance, StyleCatalogItemVisibility, StyleCatalogItemUsage, StyleCatalogItemPreview, StyleCatalogItem, StyleCatalogDefaults, StyleCatalogDiagnostic, StyleCatalogSourceStatus, StylesGetCatalogInput, StylesGetCatalogResult, CommentInfo, CommentsListQuery, TrackChangeInfo, TrackChangePointHit, TrackChangesItem, FontFamilyOption, FontSizeOption, CommentAddress, TrackedChangeAddress, ContentControlViewportAddress, ViewportEntityAddress, ViewportEntityHit, ViewportContext, ViewportRect, ViewportGetRectInput, ViewportRectResult, BrowserDocumentApi, PartialBrowserDocumentApi, DocumentApi, Receipt, SelectionInfo, SelectionTarget, SelectionPoint, TextTarget, TextAddress, ScrollIntoViewInput, ScrollIntoViewOutput, EntityAddress, CommentsListResult, TrackChangesListResult, ContentControlsListResult, ContentControlInfo, ContentControlTarget, RichContentInsertInput, OperationCapabilityResolveResult, SDHtmlMarkdownSupportCheckResult, PictureWatermarkInput, TextWatermark, WatermarkInfo, WatermarkTarget, } from './ui/types.js';
|
|
29
|
+
export type { EqualityFn, SelectorFn, Subscribable, SuperDocUI, BorrowedSuperDocUI, SuperDocUIOptions, SuperDocUIState, SuperDocUIScope, SuperDocLike, SuperDocEditorLike, CommandHandle, CommandState, CommandExecutionResult, WorkflowReceipt, WorkflowActionResult, WorkflowScrollResult, SelectionRestoreResult, SuperDocUIReason, CommandId, CommandsHandle, ContextMenuItem, ContextMenuHandle, WatermarkHandle, SearchController, SearchHandle, SearchQueryOptions, CustomCommandContext, CustomCommandHandle, CustomCommandHandleState, CustomCommandRegistration, CustomCommandRegistrationResult, MetadataHandle, SelectionHandle, ToolbarHandle, BuiltInCommandId, ToolbarCommandId, CommentsHandle, TrackChangesHandle, ContentControlsHandle, ContentControlFocusResult, ContentControlHighlightResult, FontsHandle, ZoomHandle, DocumentHandle, DocumentReplacementResult, ViewportHandle, StylesHandle, ActiveParagraphStyle, SliceStatus, SelectionSlice, SelectionCapture, CommentAnchorCapture, ToolbarSnapshotSlice, CommentsSlice, TrackChangesSlice, ContentControlsSlice, FontsSlice, ZoomSlice, DocumentSlice, StylesSlice, SearchSnapshot, SearchSlice, StyleCatalogView, StyleCatalogItemType, StyleCatalogFilterType, StyleProvenance, StyleCatalogItemVisibility, StyleCatalogItemUsage, StyleCatalogItemPreview, StyleCatalogItem, StyleCatalogDefaults, StyleCatalogDiagnostic, StyleCatalogSourceStatus, StylesGetCatalogInput, StylesGetCatalogResult, CommentInfo, CommentsListQuery, TrackChangeInfo, TrackChangePointHit, TrackChangesItem, FontFamilyOption, FontSizeOption, CommentAddress, TrackedChangeAddress, ContentControlViewportAddress, ViewportEntityAddress, ViewportEntityHit, ViewportContext, ViewportRect, ViewportGetRectInput, ViewportRectResult, BrowserDocumentApi, PartialBrowserDocumentApi, DocumentApi, Receipt, SelectionInfo, SelectionTarget, SelectionPoint, TextTarget, TextAddress, ScrollIntoViewInput, ScrollIntoViewOutput, EntityAddress, CommentsListResult, TrackChangesListResult, ContentControlsListResult, ContentControlInfo, ContentControlTarget, RichContentInsertInput, OperationCapabilityResolveResult, SDHtmlMarkdownSupportCheckResult, PictureWatermarkInput, RetainedPictureWatermarkInput, TextWatermark, WatermarkInfo, WatermarkTarget, WatermarksApplyInput, WatermarksApplyResult, WatermarksApplySuccess, WatermarksApplyTarget, } from './ui/types.js';
|