@pixerate/editor-svelte 0.15.2 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/dist/BubbleMenu.svelte.d.ts +14 -0
  2. package/dist/BubbleMenu.svelte.d.ts.map +1 -0
  3. package/{src → dist}/EditableTextNodeEditor.svelte +1 -1
  4. package/dist/EditableTextNodeEditor.svelte.d.ts +26 -0
  5. package/dist/EditableTextNodeEditor.svelte.d.ts.map +1 -0
  6. package/dist/TemplateRenderer.svelte.d.ts +14 -0
  7. package/dist/TemplateRenderer.svelte.d.ts.map +1 -0
  8. package/dist/canvas/AgentPresenceLayer.svelte.d.ts +9 -0
  9. package/dist/canvas/AgentPresenceLayer.svelte.d.ts.map +1 -0
  10. package/dist/canvas/FloatingHorizontalScrollbar.svelte.d.ts +9 -0
  11. package/dist/canvas/FloatingHorizontalScrollbar.svelte.d.ts.map +1 -0
  12. package/dist/canvas/createCanvasClipboard.svelte.d.ts +32 -0
  13. package/dist/canvas/createCanvasClipboard.svelte.d.ts.map +1 -0
  14. package/dist/canvas/createCanvasClipboard.svelte.js +171 -0
  15. package/dist/canvas/createCanvasDisplacement.d.ts +32 -0
  16. package/dist/canvas/createCanvasDisplacement.d.ts.map +1 -0
  17. package/dist/canvas/createCanvasDisplacement.js +170 -0
  18. package/dist/canvas/createCanvasDocking.svelte.d.ts +56 -0
  19. package/dist/canvas/createCanvasDocking.svelte.d.ts.map +1 -0
  20. package/dist/canvas/createCanvasDocking.svelte.js +227 -0
  21. package/dist/canvas/createCanvasExplosion.svelte.d.ts +31 -0
  22. package/dist/canvas/createCanvasExplosion.svelte.d.ts.map +1 -0
  23. package/dist/canvas/createCanvasExplosion.svelte.js +346 -0
  24. package/dist/canvas/createCanvasGraph.svelte.d.ts +62 -0
  25. package/dist/canvas/createCanvasGraph.svelte.d.ts.map +1 -0
  26. package/dist/canvas/createCanvasGraph.svelte.js +223 -0
  27. package/dist/canvas/createCanvasInteractions.svelte.d.ts +28 -0
  28. package/dist/canvas/createCanvasInteractions.svelte.d.ts.map +1 -0
  29. package/dist/canvas/createCanvasInteractions.svelte.js +95 -0
  30. package/dist/canvas/createCanvasLayout.d.ts +22 -0
  31. package/dist/canvas/createCanvasLayout.d.ts.map +1 -0
  32. package/dist/canvas/createCanvasLayout.js +76 -0
  33. package/dist/canvas/createCanvasMultiDrag.svelte.d.ts +61 -0
  34. package/dist/canvas/createCanvasMultiDrag.svelte.d.ts.map +1 -0
  35. package/dist/canvas/createCanvasMultiDrag.svelte.js +105 -0
  36. package/dist/canvas/createCanvasNodeSync.svelte.d.ts +58 -0
  37. package/dist/canvas/createCanvasNodeSync.svelte.d.ts.map +1 -0
  38. package/dist/canvas/createCanvasNodeSync.svelte.js +82 -0
  39. package/dist/canvas/createCanvasSelection.svelte.d.ts +26 -0
  40. package/dist/canvas/createCanvasSelection.svelte.d.ts.map +1 -0
  41. package/dist/canvas/createCanvasSelection.svelte.js +26 -0
  42. package/dist/canvas/createCanvasShortcuts.d.ts +9 -0
  43. package/dist/canvas/createCanvasShortcuts.d.ts.map +1 -0
  44. package/dist/canvas/createCanvasShortcuts.js +97 -0
  45. package/dist/canvas/createCanvasTrajectory.d.ts +31 -0
  46. package/dist/canvas/createCanvasTrajectory.d.ts.map +1 -0
  47. package/dist/canvas/createCanvasTrajectory.js +141 -0
  48. package/dist/canvas/createStreamingCanvas.svelte.d.ts +19 -0
  49. package/dist/canvas/createStreamingCanvas.svelte.d.ts.map +1 -0
  50. package/dist/canvas/createStreamingCanvas.svelte.js +32 -0
  51. package/dist/canvas/index.d.ts +18 -688
  52. package/dist/canvas/index.d.ts.map +1 -0
  53. package/dist/canvas/index.js +34 -1839
  54. package/dist/canvas/types.d.ts +183 -0
  55. package/dist/canvas/types.d.ts.map +1 -0
  56. package/dist/canvas/types.js +1 -0
  57. package/dist/createNavigationGuard.svelte.d.ts +24 -0
  58. package/dist/createNavigationGuard.svelte.d.ts.map +1 -0
  59. package/dist/createNavigationGuard.svelte.js +65 -0
  60. package/dist/editor.svelte.d.ts +23 -0
  61. package/dist/editor.svelte.d.ts.map +1 -0
  62. package/dist/editor.svelte.js +41 -0
  63. package/dist/history/createHistoryShortcuts.d.ts +24 -0
  64. package/dist/history/createHistoryShortcuts.d.ts.map +1 -0
  65. package/dist/history/createHistoryShortcuts.js +57 -0
  66. package/dist/history/history.svelte.d.ts +18 -0
  67. package/dist/history/history.svelte.d.ts.map +1 -0
  68. package/dist/history/history.svelte.js +43 -0
  69. package/dist/history/index.d.ts +3 -0
  70. package/dist/history/index.d.ts.map +1 -0
  71. package/dist/history/index.js +2 -0
  72. package/{src → dist}/image-editor/ImageEditor.svelte +1 -1
  73. package/dist/image-editor/ImageEditor.svelte.d.ts +17 -0
  74. package/dist/image-editor/ImageEditor.svelte.d.ts.map +1 -0
  75. package/dist/image-editor/imageEditorState.svelte.d.ts +50 -0
  76. package/dist/image-editor/imageEditorState.svelte.d.ts.map +1 -0
  77. package/dist/image-editor/imageEditorState.svelte.js +132 -0
  78. package/dist/image-editor/index.d.ts +6 -16
  79. package/dist/image-editor/index.d.ts.map +1 -0
  80. package/dist/image-editor/index.js +2 -9
  81. package/dist/index.d.ts +20 -249
  82. package/dist/index.d.ts.map +1 -0
  83. package/dist/index.js +10 -1119
  84. package/dist/navigationGuard.d.ts +21 -0
  85. package/dist/navigationGuard.d.ts.map +1 -0
  86. package/dist/navigationGuard.js +59 -0
  87. package/{src → dist}/spreadsheet/FormulaBar.svelte +1 -1
  88. package/dist/spreadsheet/FormulaBar.svelte.d.ts +17 -0
  89. package/dist/spreadsheet/FormulaBar.svelte.d.ts.map +1 -0
  90. package/{src → dist}/spreadsheet/SpreadsheetEditor.svelte +1 -1
  91. package/dist/spreadsheet/SpreadsheetEditor.svelte.d.ts +22 -0
  92. package/dist/spreadsheet/SpreadsheetEditor.svelte.d.ts.map +1 -0
  93. package/dist/spreadsheet/index.d.ts +9 -0
  94. package/dist/spreadsheet/index.d.ts.map +1 -0
  95. package/{src/spreadsheet/index.ts → dist/spreadsheet/index.js} +1 -1
  96. package/dist/spreadsheet/spreadsheet.svelte.d.ts +33 -0
  97. package/dist/spreadsheet/spreadsheet.svelte.d.ts.map +1 -0
  98. package/dist/spreadsheet/spreadsheet.svelte.js +160 -0
  99. package/package.json +14 -16
  100. package/dist/canvas/index.js.map +0 -1
  101. package/dist/chunk-HEOI4UNF.js +0 -1191
  102. package/dist/chunk-HEOI4UNF.js.map +0 -1
  103. package/dist/image-editor/index.js.map +0 -1
  104. package/dist/index.css +0 -50
  105. package/dist/index.css.map +0 -1
  106. package/dist/index.js.map +0 -1
  107. package/src/canvas/__tests__/canvas-clipboard.test.ts +0 -154
  108. package/src/canvas/__tests__/canvas-docking.test.ts +0 -288
  109. package/src/canvas/__tests__/canvas-explosion.test.ts +0 -634
  110. package/src/canvas/__tests__/canvas-graph.test.ts +0 -159
  111. package/src/canvas/__tests__/canvas-interactions.test.ts +0 -86
  112. package/src/canvas/__tests__/canvas-layout.test.ts +0 -75
  113. package/src/canvas/__tests__/canvas-multi-drag.test.ts +0 -112
  114. package/src/canvas/__tests__/canvas-node-sync.svelte.test.ts +0 -104
  115. package/src/canvas/__tests__/canvas-shortcuts.test.ts +0 -59
  116. package/src/canvas/createCanvasClipboard.svelte.ts +0 -219
  117. package/src/canvas/createCanvasDisplacement.ts +0 -253
  118. package/src/canvas/createCanvasDocking.svelte.ts +0 -355
  119. package/src/canvas/createCanvasExplosion.svelte.ts +0 -457
  120. package/src/canvas/createCanvasGraph.svelte.ts +0 -330
  121. package/src/canvas/createCanvasInteractions.svelte.ts +0 -112
  122. package/src/canvas/createCanvasLayout.ts +0 -129
  123. package/src/canvas/createCanvasMultiDrag.svelte.ts +0 -175
  124. package/src/canvas/createCanvasNodeSync.svelte.ts +0 -150
  125. package/src/canvas/createCanvasSelection.svelte.ts +0 -51
  126. package/src/canvas/createCanvasShortcuts.ts +0 -99
  127. package/src/canvas/createCanvasTrajectory.ts +0 -207
  128. package/src/canvas/createStreamingCanvas.svelte.ts +0 -56
  129. package/src/canvas/index.d.ts +0 -688
  130. package/src/canvas/index.ts +0 -126
  131. package/src/canvas/types.ts +0 -223
  132. package/src/createNavigationGuard.svelte.ts +0 -97
  133. package/src/editor.svelte.ts +0 -65
  134. package/src/history/createHistoryShortcuts.ts +0 -95
  135. package/src/history/history.svelte.ts +0 -68
  136. package/src/history/index.ts +0 -2
  137. package/src/image-editor/imageEditorState.svelte.ts +0 -151
  138. package/src/image-editor/index.d.ts +0 -16
  139. package/src/image-editor/index.ts +0 -2
  140. package/src/index.d.ts +0 -249
  141. package/src/index.ts +0 -89
  142. package/src/navigationGuard.ts +0 -82
  143. package/src/spreadsheet/spreadsheet.svelte.ts +0 -176
  144. package/src/svelte.d.ts +0 -5
  145. /package/{src → dist}/BubbleMenu.svelte +0 -0
  146. /package/{src → dist}/TemplateRenderer.svelte +0 -0
  147. /package/{src → dist}/canvas/AgentPresenceLayer.svelte +0 -0
  148. /package/{src → dist}/canvas/FloatingHorizontalScrollbar.svelte +0 -0
  149. /package/{src → dist}/canvas/README.md +0 -0
@@ -1,151 +0,0 @@
1
- import {
2
- ImageEditorController,
3
- type ImageEditorOptions,
4
- type ImageEditorState,
5
- type ImageEditorTool,
6
- type CropBox,
7
- type AspectRatio,
8
- type ImageAdjustments,
9
- type DepthMaskOptions,
10
- type Annotation,
11
- type CreateAnnotationPayload,
12
- type ExportOptions,
13
- type SerializedImageEditorState,
14
- type ImagePoint,
15
- } from '@pixerate/editor';
16
-
17
- export function createReactiveImageEditor(options: ImageEditorOptions = {}) {
18
- const controller = new ImageEditorController(options);
19
- let state = $state<ImageEditorState>(controller.getState());
20
- let historyTicks = $state<number>(0);
21
-
22
- controller.subscribe((updated) => {
23
- state = { ...updated };
24
- historyTicks++;
25
- });
26
-
27
- return {
28
- get controller() {
29
- return controller;
30
- },
31
- get state() {
32
- return state;
33
- },
34
- get canUndo() {
35
- // depend on historyTicks for reactivity
36
- void historyTicks;
37
- return controller.canUndo;
38
- },
39
- get canRedo() {
40
- void historyTicks;
41
- return controller.canRedo;
42
- },
43
- setTool(tool: ImageEditorTool) {
44
- controller.setTool(tool);
45
- },
46
- setCrop(crop: CropBox | null, addToHistory = true) {
47
- controller.setCrop(crop, addToHistory);
48
- },
49
- applyCropPreset(ratio: AspectRatio) {
50
- controller.applyCropPreset(ratio);
51
- },
52
- resetCrop() {
53
- controller.resetCrop();
54
- },
55
- rotate(degrees: number) {
56
- controller.rotate(degrees);
57
- },
58
- setRotation(degrees: number) {
59
- controller.setRotation(degrees);
60
- },
61
- flipHorizontal() {
62
- controller.flipHorizontal();
63
- },
64
- flipVertical() {
65
- controller.flipVertical();
66
- },
67
- setAdjustments(partial: Partial<ImageAdjustments>, commitToHistory = true) {
68
- controller.setAdjustments(partial, commitToHistory);
69
- },
70
- resetAdjustments() {
71
- controller.resetAdjustments();
72
- },
73
- setDepthMask(partial: Partial<DepthMaskOptions>) {
74
- controller.setDepthMask(partial);
75
- },
76
- resetDepthMask() {
77
- controller.resetDepthMask();
78
- },
79
- addAnnotation(ann: CreateAnnotationPayload) {
80
- return controller.addAnnotation(ann);
81
- },
82
- updateAnnotation(id: string, partial: Partial<Annotation>, commitToHistory = true) {
83
- controller.updateAnnotation(id, partial, commitToHistory);
84
- },
85
- removeAnnotation(id: string) {
86
- controller.removeAnnotation(id);
87
- },
88
- clearAnnotations() {
89
- controller.clearAnnotations();
90
- },
91
- selectAnnotation(id: string | null) {
92
- controller.selectAnnotation(id);
93
- },
94
- undo() {
95
- return controller.undo();
96
- },
97
- redo() {
98
- return controller.redo();
99
- },
100
- reset() {
101
- controller.reset();
102
- },
103
- zoomIn(factor?: number) {
104
- controller.zoomIn(factor);
105
- },
106
- zoomOut(factor?: number) {
107
- controller.zoomOut(factor);
108
- },
109
- resetZoom() {
110
- controller.resetZoom();
111
- },
112
- setZoom(zoom: number) {
113
- controller.setZoom(zoom);
114
- },
115
- setPan(pan: ImagePoint) {
116
- controller.setPan(pan);
117
- },
118
- setComparing(comparing: boolean) {
119
- controller.setComparing(comparing);
120
- },
121
- loadImage(src: string | HTMLImageElement) {
122
- return controller.loadImage(src);
123
- },
124
- toDataURL(opts?: ExportOptions) {
125
- return controller.toDataURL(opts);
126
- },
127
- toBlob(opts?: ExportOptions) {
128
- return controller.toBlob(opts);
129
- },
130
- toJSON() {
131
- return controller.toJSON();
132
- },
133
- loadJSON(data: SerializedImageEditorState) {
134
- controller.loadJSON(data);
135
- },
136
- renderMask(opts?: { useAnnotations?: boolean; useCrop?: boolean }) {
137
- return controller.renderMask(opts);
138
- },
139
- toMaskDataURL(opts?: { useAnnotations?: boolean; useCrop?: boolean }) {
140
- return controller.toMaskDataURL(opts);
141
- },
142
- applyInpaintedImage(newDataUrl: string) {
143
- return controller.applyInpaintedImage(newDataUrl);
144
- },
145
- applyBackgroundRemovedImage(newDataUrl: string) {
146
- return controller.applyBackgroundRemovedImage(newDataUrl);
147
- },
148
- };
149
- }
150
-
151
- export type ReactiveImageEditor = ReturnType<typeof createReactiveImageEditor>;
@@ -1,16 +0,0 @@
1
- import type { Component } from 'svelte';
2
- import type { ExportOptions, ImageEditorOptions } from '@pixerate/editor';
3
- import type { ReactiveImageEditor } from './imageEditorState.svelte';
4
-
5
- export interface ImageEditorProps {
6
- editor?: ReactiveImageEditor;
7
- src?: string;
8
- class?: string;
9
- style?: string;
10
- onSave?: (dataUrl: string) => void;
11
- exportOptions?: ExportOptions;
12
- }
13
-
14
- export declare const ImageEditor: Component<ImageEditorProps>;
15
- export declare function createReactiveImageEditor(options?: ImageEditorOptions): ReactiveImageEditor;
16
- export type { ReactiveImageEditor } from './imageEditorState.svelte';
@@ -1,2 +0,0 @@
1
- export { default as ImageEditor } from './ImageEditor.svelte';
2
- export * from './imageEditorState.svelte';
package/src/index.d.ts DELETED
@@ -1,249 +0,0 @@
1
- import type { Component } from "svelte";
2
- import type {
3
- Editor,
4
- Content,
5
- Extensions,
6
- EditorOptions,
7
- FocusPosition,
8
- } from "@tiptap/core";
9
- import type {
10
- Template,
11
- TemplateVersion,
12
- Token,
13
- TokenType,
14
- ColorGradient,
15
- RichTextPresetOptions,
16
- MarkdownOptions,
17
- } from "@pixerate/editor";
18
-
19
- export interface SvelteInitiateEditorOptions extends Partial<EditorOptions> {
20
- richTextOptions?: RichTextPresetOptions;
21
- }
22
-
23
- export declare const initiateEditor: (
24
- element?: HTMLElement,
25
- content?: Content,
26
- extensions?: Extensions,
27
- options?: SvelteInitiateEditorOptions,
28
- ) => Editor;
29
-
30
- export interface ReactiveEditorState {
31
- editor: Editor | undefined;
32
- content: string;
33
- isEditable: boolean;
34
- }
35
-
36
- export declare function createReactiveEditor(
37
- initialContent?: string,
38
- extensions?: Extensions,
39
- options?: Partial<EditorOptions>,
40
- ): {
41
- readonly current: Editor | undefined;
42
- mount(element: HTMLElement): Editor;
43
- destroy(): void;
44
- };
45
-
46
- export interface EditableTextNodeEditorProps {
47
- class?: string;
48
- editorClass?: string;
49
- content?: Content;
50
- showMenu?: boolean;
51
- editable?: boolean;
52
- editor?: Editor;
53
- extensions?: Extensions;
54
- onUpdate?: () => void;
55
- onFocus?: () => void;
56
- onBlur?: () => void;
57
- onCreate?: () => void;
58
- placeholder?: string;
59
- markdown?: boolean | MarkdownOptions;
60
- richTextOptions?: RichTextPresetOptions;
61
- autofocus?: FocusPosition | boolean;
62
- image?: ImageOptions | boolean;
63
- uploadImage?: (file: File) => Promise<string> | string;
64
- onUploadError?: (error: Error, file: File) => void;
65
- }
66
-
67
- export interface BubbleMenuProps {
68
- editor?: Editor;
69
- class?: string;
70
- children?: any;
71
- }
72
-
73
- export interface TemplateRendererProps {
74
- content: string;
75
- templates?: Template[];
76
- templateColorMap?: Map<string, ColorGradient>;
77
- resolve?: boolean;
78
- class?: string;
79
- onTemplateClick?: (templateName: string) => void;
80
- onVariableClick?: (variableName: string) => void;
81
- }
82
-
83
- export declare const EditableTextNodeEditor: Component<EditableTextNodeEditorProps>;
84
- export declare const BubbleMenu: Component<BubbleMenuProps>;
85
- export declare const TemplateRenderer: Component<TemplateRendererProps>;
86
-
87
- export type {
88
- Template,
89
- TemplateVersion,
90
- Token,
91
- TokenType,
92
- ColorGradient,
93
- RichTextPresetOptions,
94
- };
95
-
96
- import type {
97
- SpreadsheetController,
98
- SpreadsheetControllerOptions,
99
- SpreadsheetDocument,
100
- SpreadsheetColumn,
101
- SpreadsheetRow,
102
- CellCoordinate,
103
- CellRange,
104
- CellData,
105
- SpreadsheetDataSource,
106
- } from "@pixerate/editor";
107
-
108
- export interface SpreadsheetEditorProps {
109
- sheetState: ReturnType<typeof createReactiveSpreadsheet>;
110
- readonly?: boolean;
111
- readOnly?: boolean;
112
- showFormulaBar?: boolean;
113
- class?: string;
114
- customCellRenderer?:
115
- | ((cell: CellData, col: SpreadsheetColumn, row: SpreadsheetRow) => any)
116
- | ((args: {
117
- cell: CellData;
118
- col: SpreadsheetColumn;
119
- row: SpreadsheetRow;
120
- }) => any)
121
- | ((args: {
122
- row: SpreadsheetRow;
123
- col: SpreadsheetColumn;
124
- cell: CellData;
125
- }) => any);
126
- onAddColumnClick?: () => void;
127
- onColumnHeaderClick?: (col: SpreadsheetColumn) => void;
128
- onColumnResize?: (colId: string, width: number) => void;
129
- }
130
-
131
- export interface FormulaBarProps {
132
- sheetState: ReturnType<typeof createReactiveSpreadsheet>;
133
- class?: string;
134
- }
135
-
136
- export declare const SpreadsheetEditor: Component<SpreadsheetEditorProps>;
137
- export declare const FormulaBar: Component<FormulaBarProps>;
138
-
139
- export declare function createReactiveSpreadsheet(
140
- options?: SpreadsheetControllerOptions,
141
- ): {
142
- readonly document: SpreadsheetDocument;
143
- readonly activeCell: CellCoordinate | null;
144
- readonly selectedRange: CellRange | null;
145
- readonly editingCell: CellCoordinate | null;
146
- draftValue: string;
147
- controller: SpreadsheetController;
148
- getCell(rowId: string, colId: string): CellData;
149
- setCellValue(rowId: string, colId: string, raw: string): void;
150
- selectCell(row: number, col: number, extendSelection?: boolean): void;
151
- selectRange(range: CellRange): void;
152
- startEditing(row?: number, col?: number, initialVal?: string): void;
153
- commitEditing(val?: string): void;
154
- cancelEditing(): void;
155
- moveCursor(dir: "up" | "down" | "left" | "right", extend?: boolean): void;
156
- insertColumn(index: number, config?: Partial<SpreadsheetColumn>): void;
157
- deleteColumn(colId: string): void;
158
- insertRow(index: number, config?: Partial<SpreadsheetRow>): void;
159
- deleteRow(rowId: string): void;
160
- setColumnWidth(colId: string, width: number): void;
161
- loadDocument(document: SpreadsheetDocument): void;
162
- syncWithDataSource(): void;
163
- registerDataSource(ds: SpreadsheetDataSource): void;
164
- setPrimaryDataSource(id: string | undefined): void;
165
- recalculateAll(): void;
166
- exportToTsv(): string;
167
- importFromTsv(data: string): void;
168
- undo(): void;
169
- redo(): void;
170
- };
171
-
172
- export interface NavigationGuardOptions {
173
- isDirty: boolean;
174
- enabled?: boolean;
175
- onBlocked?: (url: string) => void;
176
- }
177
-
178
- export interface NavigationGuardActionReturn {
179
- update(newOptions: NavigationGuardOptions): void;
180
- destroy(): void;
181
- }
182
-
183
- export declare function navigationGuard(
184
- node: HTMLElement,
185
- options: NavigationGuardOptions,
186
- ): NavigationGuardActionReturn;
187
-
188
- export interface CreateNavigationGuardOptions {
189
- isDirty: boolean | (() => boolean);
190
- enabled?: boolean | (() => boolean);
191
- onNavigate?: (url: string) => void;
192
- onBlocked?: (url: string) => void;
193
- }
194
-
195
- export interface NavigationGuardManager {
196
- readonly showConfirm: boolean;
197
- setShowConfirm(show: boolean): void;
198
- readonly pendingUrl: string | null;
199
- intercept(url: string): boolean;
200
- confirmLeave(): void;
201
- cancelLeave(): void;
202
- destroy(): void;
203
- }
204
-
205
- export declare function createNavigationGuard(
206
- options: CreateNavigationGuardOptions,
207
- ): NavigationGuardManager;
208
-
209
- export interface SvelteHistory extends HistoryState {
210
- readonly manager: HistoryManager;
211
- undo(): boolean;
212
- redo(): boolean;
213
- clear(): void;
214
- execute(command: Command): void;
215
- executeMerged(command: Command, options?: { windowMs?: number }): void;
216
- batch(name: string, fn: () => void): void;
217
- subscribe(run: (value: HistoryState) => void): () => void;
218
- }
219
-
220
- export declare function createHistory(
221
- managerOrOptions?: HistoryManager | HistoryManagerOptions,
222
- ): SvelteHistory;
223
-
224
- export interface HistoryShortcutsOptions {
225
- enabled?: boolean;
226
- target?: Window | HTMLElement | null;
227
- ignoreEditableElements?: boolean;
228
- }
229
-
230
- export declare function createHistoryShortcuts(
231
- manager: HistoryManager,
232
- options?: HistoryShortcutsOptions,
233
- ): { destroy: () => void };
234
-
235
- export {
236
- DirtyTracker,
237
- createDirtyTracker,
238
- defaultIsEqual,
239
- HistoryManager,
240
- createHistoryManager,
241
- } from "@pixerate/editor";
242
- export type {
243
- DirtyTrackerOptions,
244
- Command,
245
- HistoryState,
246
- HistoryManagerOptions,
247
- } from "@pixerate/editor";
248
-
249
- export * from "./image-editor";
package/src/index.ts DELETED
@@ -1,89 +0,0 @@
1
- import type { Component } from "svelte";
2
- import type { Editor, Content, Extensions, FocusPosition } from "@tiptap/core";
3
- import type {
4
- Template,
5
- ColorGradient,
6
- RichTextPresetOptions,
7
- MarkdownOptions,
8
- ImageOptions,
9
- } from "@pixerate/editor";
10
-
11
- import EditableTextNodeEditorComponent from "./EditableTextNodeEditor.svelte";
12
- import BubbleMenuComponent from "./BubbleMenu.svelte";
13
- import TemplateRendererComponent from "./TemplateRenderer.svelte";
14
-
15
- export * from "./editor.svelte";
16
- export * from "./navigationGuard";
17
- export * from "./createNavigationGuard.svelte";
18
- export * from "./history";
19
-
20
- export {
21
- DirtyTracker,
22
- createDirtyTracker,
23
- defaultIsEqual,
24
- HistoryManager,
25
- createHistoryManager,
26
- } from "@pixerate/editor";
27
- export type {
28
- DirtyTrackerOptions,
29
- Command,
30
- HistoryState,
31
- HistoryManagerOptions,
32
- } from "@pixerate/editor";
33
-
34
- export interface EditableTextNodeEditorProps {
35
- class?: string;
36
- editorClass?: string;
37
- content?: Content;
38
- showMenu?: boolean;
39
- editable?: boolean;
40
- editor?: Editor;
41
- extensions?: Extensions;
42
- onUpdate?: () => void;
43
- onFocus?: () => void;
44
- onBlur?: () => void;
45
- onCreate?: () => void;
46
- placeholder?: string;
47
- markdown?: boolean | MarkdownOptions;
48
- richTextOptions?: RichTextPresetOptions;
49
- autofocus?: FocusPosition | boolean;
50
- image?: ImageOptions | boolean;
51
- uploadImage?: (file: File) => Promise<string> | string;
52
- onUploadError?: (error: Error, file: File) => void;
53
- }
54
-
55
- export interface BubbleMenuProps {
56
- editor?: Editor;
57
- class?: string;
58
- children?: any;
59
- }
60
-
61
- export interface TemplateRendererProps {
62
- content: string;
63
- templates?: Template[];
64
- templateColorMap?: Map<string, ColorGradient>;
65
- resolve?: boolean;
66
- class?: string;
67
- onTemplateClick?: (templateName: string) => void;
68
- onVariableClick?: (variableName: string) => void;
69
- }
70
-
71
- export const EditableTextNodeEditor =
72
- EditableTextNodeEditorComponent as unknown as Component<EditableTextNodeEditorProps>;
73
- export const BubbleMenu =
74
- BubbleMenuComponent as unknown as Component<BubbleMenuProps>;
75
- export const TemplateRenderer =
76
- TemplateRendererComponent as unknown as Component<TemplateRendererProps>;
77
-
78
- export type {
79
- Template,
80
- TemplateVersion,
81
- Token,
82
- TokenType,
83
- ColorGradient,
84
- RichTextPresetOptions,
85
- ImageOptions,
86
- } from "@pixerate/editor";
87
-
88
- export * from "./spreadsheet";
89
- export * from "./image-editor";
@@ -1,82 +0,0 @@
1
- export interface NavigationGuardOptions {
2
- /** Whether the current form or editor has unsaved changes */
3
- isDirty: boolean;
4
- /** Whether guarding is enabled (defaults to true) */
5
- enabled?: boolean;
6
- /** Callback fired when an internal navigation attempt is intercepted */
7
- onBlocked?: (url: string) => void;
8
- }
9
-
10
- export interface NavigationGuardActionReturn {
11
- update(newOptions: NavigationGuardOptions): void;
12
- destroy(): void;
13
- }
14
-
15
- /**
16
- * Svelte action to guard against navigation when there are unsaved changes.
17
- * Attaches beforeunload to window and intercepts internal anchor clicks on the element.
18
- *
19
- * Usage:
20
- * <div use:navigationGuard={{ isDirty, onBlocked: (url) => { pendingUrl = url; showConfirm = true; } }}>
21
- */
22
- export function navigationGuard(
23
- node: HTMLElement,
24
- options: NavigationGuardOptions,
25
- ): NavigationGuardActionReturn {
26
- let isDirty = options.isDirty;
27
- let enabled = options.enabled ?? true;
28
- let onBlocked = options.onBlocked;
29
-
30
- function handleBeforeUnload(e: BeforeUnloadEvent) {
31
- if (!enabled || !isDirty) return;
32
- e.preventDefault();
33
- e.returnValue = "";
34
- }
35
-
36
- function handleClick(e: MouseEvent) {
37
- if (!enabled || !isDirty) return;
38
-
39
- const target = e.target as HTMLElement | null;
40
- const anchor = target?.closest?.("a");
41
- if (!anchor) return;
42
- if (anchor.target === "_blank") return;
43
-
44
- // Check if link is internal
45
- if (typeof window !== "undefined") {
46
- const isInternal = anchor.host === window.location.host;
47
- if (!isInternal) return;
48
-
49
- if (
50
- anchor.pathname === window.location.pathname &&
51
- anchor.search === window.location.search
52
- ) {
53
- return;
54
- }
55
- }
56
-
57
- e.preventDefault();
58
- e.stopPropagation();
59
-
60
- const href = anchor.href;
61
- onBlocked?.(href);
62
- }
63
-
64
- if (typeof window !== "undefined") {
65
- window.addEventListener("beforeunload", handleBeforeUnload);
66
- }
67
- node.addEventListener("click", handleClick, { capture: true });
68
-
69
- return {
70
- update(newOptions: NavigationGuardOptions) {
71
- isDirty = newOptions.isDirty;
72
- enabled = newOptions.enabled ?? true;
73
- onBlocked = newOptions.onBlocked;
74
- },
75
- destroy() {
76
- if (typeof window !== "undefined") {
77
- window.removeEventListener("beforeunload", handleBeforeUnload);
78
- }
79
- node.removeEventListener("click", handleClick, { capture: true });
80
- },
81
- };
82
- }