@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.
- package/dist/BubbleMenu.svelte.d.ts +14 -0
- package/dist/BubbleMenu.svelte.d.ts.map +1 -0
- package/{src → dist}/EditableTextNodeEditor.svelte +1 -1
- package/dist/EditableTextNodeEditor.svelte.d.ts +26 -0
- package/dist/EditableTextNodeEditor.svelte.d.ts.map +1 -0
- package/dist/TemplateRenderer.svelte.d.ts +14 -0
- package/dist/TemplateRenderer.svelte.d.ts.map +1 -0
- package/dist/canvas/AgentPresenceLayer.svelte.d.ts +9 -0
- package/dist/canvas/AgentPresenceLayer.svelte.d.ts.map +1 -0
- package/dist/canvas/FloatingHorizontalScrollbar.svelte.d.ts +9 -0
- package/dist/canvas/FloatingHorizontalScrollbar.svelte.d.ts.map +1 -0
- package/dist/canvas/createCanvasClipboard.svelte.d.ts +32 -0
- package/dist/canvas/createCanvasClipboard.svelte.d.ts.map +1 -0
- package/dist/canvas/createCanvasClipboard.svelte.js +171 -0
- package/dist/canvas/createCanvasDisplacement.d.ts +32 -0
- package/dist/canvas/createCanvasDisplacement.d.ts.map +1 -0
- package/dist/canvas/createCanvasDisplacement.js +170 -0
- package/dist/canvas/createCanvasDocking.svelte.d.ts +56 -0
- package/dist/canvas/createCanvasDocking.svelte.d.ts.map +1 -0
- package/dist/canvas/createCanvasDocking.svelte.js +227 -0
- package/dist/canvas/createCanvasExplosion.svelte.d.ts +31 -0
- package/dist/canvas/createCanvasExplosion.svelte.d.ts.map +1 -0
- package/dist/canvas/createCanvasExplosion.svelte.js +346 -0
- package/dist/canvas/createCanvasGraph.svelte.d.ts +62 -0
- package/dist/canvas/createCanvasGraph.svelte.d.ts.map +1 -0
- package/dist/canvas/createCanvasGraph.svelte.js +223 -0
- package/dist/canvas/createCanvasInteractions.svelte.d.ts +28 -0
- package/dist/canvas/createCanvasInteractions.svelte.d.ts.map +1 -0
- package/dist/canvas/createCanvasInteractions.svelte.js +95 -0
- package/dist/canvas/createCanvasLayout.d.ts +22 -0
- package/dist/canvas/createCanvasLayout.d.ts.map +1 -0
- package/dist/canvas/createCanvasLayout.js +76 -0
- package/dist/canvas/createCanvasMultiDrag.svelte.d.ts +61 -0
- package/dist/canvas/createCanvasMultiDrag.svelte.d.ts.map +1 -0
- package/dist/canvas/createCanvasMultiDrag.svelte.js +105 -0
- package/dist/canvas/createCanvasNodeSync.svelte.d.ts +58 -0
- package/dist/canvas/createCanvasNodeSync.svelte.d.ts.map +1 -0
- package/dist/canvas/createCanvasNodeSync.svelte.js +82 -0
- package/dist/canvas/createCanvasSelection.svelte.d.ts +26 -0
- package/dist/canvas/createCanvasSelection.svelte.d.ts.map +1 -0
- package/dist/canvas/createCanvasSelection.svelte.js +26 -0
- package/dist/canvas/createCanvasShortcuts.d.ts +9 -0
- package/dist/canvas/createCanvasShortcuts.d.ts.map +1 -0
- package/dist/canvas/createCanvasShortcuts.js +97 -0
- package/dist/canvas/createCanvasTrajectory.d.ts +31 -0
- package/dist/canvas/createCanvasTrajectory.d.ts.map +1 -0
- package/dist/canvas/createCanvasTrajectory.js +141 -0
- package/dist/canvas/createStreamingCanvas.svelte.d.ts +19 -0
- package/dist/canvas/createStreamingCanvas.svelte.d.ts.map +1 -0
- package/dist/canvas/createStreamingCanvas.svelte.js +32 -0
- package/dist/canvas/index.d.ts +18 -688
- package/dist/canvas/index.d.ts.map +1 -0
- package/dist/canvas/index.js +34 -1839
- package/dist/canvas/types.d.ts +183 -0
- package/dist/canvas/types.d.ts.map +1 -0
- package/dist/canvas/types.js +1 -0
- package/dist/createNavigationGuard.svelte.d.ts +24 -0
- package/dist/createNavigationGuard.svelte.d.ts.map +1 -0
- package/dist/createNavigationGuard.svelte.js +65 -0
- package/dist/editor.svelte.d.ts +23 -0
- package/dist/editor.svelte.d.ts.map +1 -0
- package/dist/editor.svelte.js +41 -0
- package/dist/history/createHistoryShortcuts.d.ts +24 -0
- package/dist/history/createHistoryShortcuts.d.ts.map +1 -0
- package/dist/history/createHistoryShortcuts.js +57 -0
- package/dist/history/history.svelte.d.ts +18 -0
- package/dist/history/history.svelte.d.ts.map +1 -0
- package/dist/history/history.svelte.js +43 -0
- package/dist/history/index.d.ts +3 -0
- package/dist/history/index.d.ts.map +1 -0
- package/dist/history/index.js +2 -0
- package/{src → dist}/image-editor/ImageEditor.svelte +1 -1
- package/dist/image-editor/ImageEditor.svelte.d.ts +17 -0
- package/dist/image-editor/ImageEditor.svelte.d.ts.map +1 -0
- package/dist/image-editor/imageEditorState.svelte.d.ts +50 -0
- package/dist/image-editor/imageEditorState.svelte.d.ts.map +1 -0
- package/dist/image-editor/imageEditorState.svelte.js +132 -0
- package/dist/image-editor/index.d.ts +6 -16
- package/dist/image-editor/index.d.ts.map +1 -0
- package/dist/image-editor/index.js +2 -9
- package/dist/index.d.ts +20 -249
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -1119
- package/dist/navigationGuard.d.ts +21 -0
- package/dist/navigationGuard.d.ts.map +1 -0
- package/dist/navigationGuard.js +59 -0
- package/{src → dist}/spreadsheet/FormulaBar.svelte +1 -1
- package/dist/spreadsheet/FormulaBar.svelte.d.ts +17 -0
- package/dist/spreadsheet/FormulaBar.svelte.d.ts.map +1 -0
- package/{src → dist}/spreadsheet/SpreadsheetEditor.svelte +1 -1
- package/dist/spreadsheet/SpreadsheetEditor.svelte.d.ts +22 -0
- package/dist/spreadsheet/SpreadsheetEditor.svelte.d.ts.map +1 -0
- package/dist/spreadsheet/index.d.ts +9 -0
- package/dist/spreadsheet/index.d.ts.map +1 -0
- package/{src/spreadsheet/index.ts → dist/spreadsheet/index.js} +1 -1
- package/dist/spreadsheet/spreadsheet.svelte.d.ts +33 -0
- package/dist/spreadsheet/spreadsheet.svelte.d.ts.map +1 -0
- package/dist/spreadsheet/spreadsheet.svelte.js +160 -0
- package/package.json +14 -16
- package/dist/canvas/index.js.map +0 -1
- package/dist/chunk-HEOI4UNF.js +0 -1191
- package/dist/chunk-HEOI4UNF.js.map +0 -1
- package/dist/image-editor/index.js.map +0 -1
- package/dist/index.css +0 -50
- package/dist/index.css.map +0 -1
- package/dist/index.js.map +0 -1
- package/src/canvas/__tests__/canvas-clipboard.test.ts +0 -154
- package/src/canvas/__tests__/canvas-docking.test.ts +0 -288
- package/src/canvas/__tests__/canvas-explosion.test.ts +0 -634
- package/src/canvas/__tests__/canvas-graph.test.ts +0 -159
- package/src/canvas/__tests__/canvas-interactions.test.ts +0 -86
- package/src/canvas/__tests__/canvas-layout.test.ts +0 -75
- package/src/canvas/__tests__/canvas-multi-drag.test.ts +0 -112
- package/src/canvas/__tests__/canvas-node-sync.svelte.test.ts +0 -104
- package/src/canvas/__tests__/canvas-shortcuts.test.ts +0 -59
- package/src/canvas/createCanvasClipboard.svelte.ts +0 -219
- package/src/canvas/createCanvasDisplacement.ts +0 -253
- package/src/canvas/createCanvasDocking.svelte.ts +0 -355
- package/src/canvas/createCanvasExplosion.svelte.ts +0 -457
- package/src/canvas/createCanvasGraph.svelte.ts +0 -330
- package/src/canvas/createCanvasInteractions.svelte.ts +0 -112
- package/src/canvas/createCanvasLayout.ts +0 -129
- package/src/canvas/createCanvasMultiDrag.svelte.ts +0 -175
- package/src/canvas/createCanvasNodeSync.svelte.ts +0 -150
- package/src/canvas/createCanvasSelection.svelte.ts +0 -51
- package/src/canvas/createCanvasShortcuts.ts +0 -99
- package/src/canvas/createCanvasTrajectory.ts +0 -207
- package/src/canvas/createStreamingCanvas.svelte.ts +0 -56
- package/src/canvas/index.d.ts +0 -688
- package/src/canvas/index.ts +0 -126
- package/src/canvas/types.ts +0 -223
- package/src/createNavigationGuard.svelte.ts +0 -97
- package/src/editor.svelte.ts +0 -65
- package/src/history/createHistoryShortcuts.ts +0 -95
- package/src/history/history.svelte.ts +0 -68
- package/src/history/index.ts +0 -2
- package/src/image-editor/imageEditorState.svelte.ts +0 -151
- package/src/image-editor/index.d.ts +0 -16
- package/src/image-editor/index.ts +0 -2
- package/src/index.d.ts +0 -249
- package/src/index.ts +0 -89
- package/src/navigationGuard.ts +0 -82
- package/src/spreadsheet/spreadsheet.svelte.ts +0 -176
- package/src/svelte.d.ts +0 -5
- /package/{src → dist}/BubbleMenu.svelte +0 -0
- /package/{src → dist}/TemplateRenderer.svelte +0 -0
- /package/{src → dist}/canvas/AgentPresenceLayer.svelte +0 -0
- /package/{src → dist}/canvas/FloatingHorizontalScrollbar.svelte +0 -0
- /package/{src → dist}/canvas/README.md +0 -0
|
@@ -0,0 +1,21 @@
|
|
|
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
|
+
export interface NavigationGuardActionReturn {
|
|
10
|
+
update(newOptions: NavigationGuardOptions): void;
|
|
11
|
+
destroy(): void;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Svelte action to guard against navigation when there are unsaved changes.
|
|
15
|
+
* Attaches beforeunload to window and intercepts internal anchor clicks on the element.
|
|
16
|
+
*
|
|
17
|
+
* Usage:
|
|
18
|
+
* <div use:navigationGuard={{ isDirty, onBlocked: (url) => { pendingUrl = url; showConfirm = true; } }}>
|
|
19
|
+
*/
|
|
20
|
+
export declare function navigationGuard(node: HTMLElement, options: NavigationGuardOptions): NavigationGuardActionReturn;
|
|
21
|
+
//# sourceMappingURL=navigationGuard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigationGuard.d.ts","sourceRoot":"","sources":["../src/navigationGuard.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,sBAAsB;IACrC,6DAA6D;IAC7D,OAAO,EAAE,OAAO,CAAC;IACjB,qDAAqD;IACrD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wEAAwE;IACxE,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,CAAC,UAAU,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACjD,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,sBAAsB,GAC9B,2BAA2B,CAyD7B"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Svelte action to guard against navigation when there are unsaved changes.
|
|
3
|
+
* Attaches beforeunload to window and intercepts internal anchor clicks on the element.
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* <div use:navigationGuard={{ isDirty, onBlocked: (url) => { pendingUrl = url; showConfirm = true; } }}>
|
|
7
|
+
*/
|
|
8
|
+
export function navigationGuard(node, options) {
|
|
9
|
+
let isDirty = options.isDirty;
|
|
10
|
+
let enabled = options.enabled ?? true;
|
|
11
|
+
let onBlocked = options.onBlocked;
|
|
12
|
+
function handleBeforeUnload(e) {
|
|
13
|
+
if (!enabled || !isDirty)
|
|
14
|
+
return;
|
|
15
|
+
e.preventDefault();
|
|
16
|
+
e.returnValue = "";
|
|
17
|
+
}
|
|
18
|
+
function handleClick(e) {
|
|
19
|
+
if (!enabled || !isDirty)
|
|
20
|
+
return;
|
|
21
|
+
const target = e.target;
|
|
22
|
+
const anchor = target?.closest?.("a");
|
|
23
|
+
if (!anchor)
|
|
24
|
+
return;
|
|
25
|
+
if (anchor.target === "_blank")
|
|
26
|
+
return;
|
|
27
|
+
// Check if link is internal
|
|
28
|
+
if (typeof window !== "undefined") {
|
|
29
|
+
const isInternal = anchor.host === window.location.host;
|
|
30
|
+
if (!isInternal)
|
|
31
|
+
return;
|
|
32
|
+
if (anchor.pathname === window.location.pathname &&
|
|
33
|
+
anchor.search === window.location.search) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
e.preventDefault();
|
|
38
|
+
e.stopPropagation();
|
|
39
|
+
const href = anchor.href;
|
|
40
|
+
onBlocked?.(href);
|
|
41
|
+
}
|
|
42
|
+
if (typeof window !== "undefined") {
|
|
43
|
+
window.addEventListener("beforeunload", handleBeforeUnload);
|
|
44
|
+
}
|
|
45
|
+
node.addEventListener("click", handleClick, { capture: true });
|
|
46
|
+
return {
|
|
47
|
+
update(newOptions) {
|
|
48
|
+
isDirty = newOptions.isDirty;
|
|
49
|
+
enabled = newOptions.enabled ?? true;
|
|
50
|
+
onBlocked = newOptions.onBlocked;
|
|
51
|
+
},
|
|
52
|
+
destroy() {
|
|
53
|
+
if (typeof window !== "undefined") {
|
|
54
|
+
window.removeEventListener("beforeunload", handleBeforeUnload);
|
|
55
|
+
}
|
|
56
|
+
node.removeEventListener("click", handleClick, { capture: true });
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { indexToColName } from '@pixerate/editor';
|
|
3
|
-
import type { createReactiveSpreadsheet } from './spreadsheet.svelte';
|
|
3
|
+
import type { createReactiveSpreadsheet } from './spreadsheet.svelte.js';
|
|
4
4
|
|
|
5
5
|
interface Props {
|
|
6
6
|
sheetState?: ReturnType<typeof createReactiveSpreadsheet>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { createReactiveSpreadsheet } from './spreadsheet.svelte.js';
|
|
2
|
+
interface Props {
|
|
3
|
+
sheetState?: ReturnType<typeof createReactiveSpreadsheet>;
|
|
4
|
+
activeCoord?: {
|
|
5
|
+
row: number;
|
|
6
|
+
col: number;
|
|
7
|
+
} | null;
|
|
8
|
+
value?: string;
|
|
9
|
+
onChange?: (val: string) => void;
|
|
10
|
+
onCommit?: (val: string) => void;
|
|
11
|
+
onCancel?: () => void;
|
|
12
|
+
class?: string;
|
|
13
|
+
}
|
|
14
|
+
declare const FormulaBar: import("svelte").Component<Props, {}, "value">;
|
|
15
|
+
type FormulaBar = ReturnType<typeof FormulaBar>;
|
|
16
|
+
export default FormulaBar;
|
|
17
|
+
//# sourceMappingURL=FormulaBar.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormulaBar.svelte.d.ts","sourceRoot":"","sources":["../../src/spreadsheet/FormulaBar.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAGvE,UAAU,KAAK;IACb,UAAU,CAAC,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC;IAC1D,WAAW,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAsFH,QAAA,MAAM,UAAU,gDAAwC,CAAC;AACzD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAChD,eAAe,UAAU,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import type { Snippet } from 'svelte';
|
|
3
3
|
import { indexToColName, type SpreadsheetColumn, type SpreadsheetRow, type CellData } from '@pixerate/editor';
|
|
4
4
|
import FormulaBar from './FormulaBar.svelte';
|
|
5
|
-
import { createReactiveSpreadsheet } from './spreadsheet.svelte';
|
|
5
|
+
import { createReactiveSpreadsheet } from './spreadsheet.svelte.js';
|
|
6
6
|
|
|
7
7
|
interface Props {
|
|
8
8
|
sheetState?: ReturnType<typeof createReactiveSpreadsheet>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Snippet } from 'svelte';
|
|
2
|
+
import { type SpreadsheetColumn, type SpreadsheetRow, type CellData } from '@pixerate/editor';
|
|
3
|
+
import { createReactiveSpreadsheet } from './spreadsheet.svelte.js';
|
|
4
|
+
interface Props {
|
|
5
|
+
sheetState?: ReturnType<typeof createReactiveSpreadsheet>;
|
|
6
|
+
readOnly?: boolean;
|
|
7
|
+
readonly?: boolean;
|
|
8
|
+
showFormulaBar?: boolean;
|
|
9
|
+
class?: string;
|
|
10
|
+
customCellRenderer?: Snippet<[CellData, SpreadsheetColumn, SpreadsheetRow]> | Snippet<[{
|
|
11
|
+
row: SpreadsheetRow;
|
|
12
|
+
col: SpreadsheetColumn;
|
|
13
|
+
cell: CellData;
|
|
14
|
+
}]>;
|
|
15
|
+
onAddColumnClick?: () => void;
|
|
16
|
+
onColumnHeaderClick?: (col: SpreadsheetColumn) => void;
|
|
17
|
+
onColumnResize?: (colId: string, width: number) => void;
|
|
18
|
+
}
|
|
19
|
+
declare const SpreadsheetEditor: import("svelte").Component<Props, {}, "">;
|
|
20
|
+
type SpreadsheetEditor = ReturnType<typeof SpreadsheetEditor>;
|
|
21
|
+
export default SpreadsheetEditor;
|
|
22
|
+
//# sourceMappingURL=SpreadsheetEditor.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpreadsheetEditor.svelte.d.ts","sourceRoot":"","sources":["../../src/spreadsheet/SpreadsheetEditor.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAkB,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE9G,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAGlE,UAAU,KAAK;IACb,UAAU,CAAC,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC;IAC1D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EACf,OAAO,CAAC,CAAC,QAAQ,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAC,GACtD,OAAO,CAAC,CAAC;QAAE,GAAG,EAAE,cAAc,CAAC;QAAC,GAAG,EAAE,iBAAiB,CAAC;QAAC,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAC,CAAC;IAC/E,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACvD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzD;AAuYH,QAAA,MAAM,iBAAiB,2CAAwC,CAAC;AAChE,KAAK,iBAAiB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC9D,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ComponentProps } from "svelte";
|
|
2
|
+
import type SpreadsheetEditorComponent from "./SpreadsheetEditor.svelte";
|
|
3
|
+
import type FormulaBarComponent from "./FormulaBar.svelte";
|
|
4
|
+
export { default as SpreadsheetEditor } from './SpreadsheetEditor.svelte';
|
|
5
|
+
export { default as FormulaBar } from './FormulaBar.svelte';
|
|
6
|
+
export * from './spreadsheet.svelte.js';
|
|
7
|
+
export type SpreadsheetEditorProps = ComponentProps<typeof SpreadsheetEditorComponent>;
|
|
8
|
+
export type FormulaBarProps = ComponentProps<typeof FormulaBarComponent>;
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/spreadsheet/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,KAAK,0BAA0B,MAAM,4BAA4B,CAAC;AACzE,OAAO,KAAK,mBAAmB,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,cAAc,yBAAyB,CAAC;AAExC,MAAM,MAAM,sBAAsB,GAAG,cAAc,CAAC,OAAO,0BAA0B,CAAC,CAAC;AACvF,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { SpreadsheetController, type SpreadsheetControllerOptions, type SpreadsheetDocument, type CellCoordinate, type CellRange, type CellData, type SpreadsheetColumn, type SpreadsheetRow, type SpreadsheetDataSource } from '@pixerate/editor';
|
|
2
|
+
export declare function createReactiveSpreadsheet(options?: SpreadsheetControllerOptions): {
|
|
3
|
+
readonly document: SpreadsheetDocument;
|
|
4
|
+
readonly activeCell: CellCoordinate | null;
|
|
5
|
+
readonly selectedRange: CellRange | null;
|
|
6
|
+
readonly editingCell: CellCoordinate | null;
|
|
7
|
+
draftValue: string;
|
|
8
|
+
controller: SpreadsheetController;
|
|
9
|
+
getCell(rowId: string, colId: string): CellData;
|
|
10
|
+
setCellValue(rowId: string, colId: string, raw: string): void;
|
|
11
|
+
selectCell(row: number, col: number, extendSelection?: boolean): void;
|
|
12
|
+
selectRange(range: CellRange): void;
|
|
13
|
+
startEditing(row?: number, col?: number, initialVal?: string): void;
|
|
14
|
+
commitEditing(val?: string): void;
|
|
15
|
+
cancelEditing(): void;
|
|
16
|
+
moveCursor(dir: "up" | "down" | "left" | "right", extend?: boolean): void;
|
|
17
|
+
insertColumn(index: number, config?: Partial<SpreadsheetColumn>): void;
|
|
18
|
+
deleteColumn(colId: string): void;
|
|
19
|
+
insertRow(index: number, config?: Partial<SpreadsheetRow>): void;
|
|
20
|
+
deleteRow(rowId: string): void;
|
|
21
|
+
setColumnWidth(colId: string, width: number): void;
|
|
22
|
+
autoFitColumnWidth(colId: string, customWidth?: number): void;
|
|
23
|
+
loadDocument(document: SpreadsheetDocument): void;
|
|
24
|
+
syncWithDataSource(): void;
|
|
25
|
+
registerDataSource(ds: SpreadsheetDataSource): void;
|
|
26
|
+
setPrimaryDataSource(id: string | undefined): void;
|
|
27
|
+
recalculateAll(): void;
|
|
28
|
+
exportToTsv(): string;
|
|
29
|
+
importFromTsv(data: string): void;
|
|
30
|
+
undo(): void;
|
|
31
|
+
redo(): void;
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=spreadsheet.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spreadsheet.svelte.d.ts","sourceRoot":"","sources":["../../src/spreadsheet/spreadsheet.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,KAAK,4BAA4B,EACjC,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC3B,MAAM,kBAAkB,CAAC;AAE1B,wBAAgB,yBAAyB,CAAC,OAAO,GAAE,4BAAiC;;;;;gBAsD5D,MAAM;;mBAMX,MAAM,SAAS,MAAM,GAAG,QAAQ;wBAG3B,MAAM,SAAS,MAAM,OAAO,MAAM;oBAItC,MAAM,OAAO,MAAM;uBAKhB,SAAS;uBAIT,MAAM,QAAQ,MAAM,eAAe,MAAM;wBAMxC,MAAM;;oBAWV,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO;wBAK5B,MAAM,WAAW,OAAO,CAAC,iBAAiB,CAAC;wBAI3C,MAAM;qBAIT,MAAM,WAAW,OAAO,CAAC,cAAc,CAAC;qBAIxC,MAAM;0BAID,MAAM,SAAS,MAAM;8BAIjB,MAAM,gBAAgB,MAAM;2BAI/B,mBAAmB;;2BAanB,qBAAqB;6BAInB,MAAM,GAAG,SAAS;;;wBAWvB,MAAM;;;EAa7B"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { SpreadsheetController } from '@pixerate/editor';
|
|
2
|
+
export function createReactiveSpreadsheet(options = {}) {
|
|
3
|
+
let doc = $state({
|
|
4
|
+
id: options.document?.id || `sheet_${Date.now()}`,
|
|
5
|
+
name: options.document?.name || 'Sheet 1',
|
|
6
|
+
columns: options.document?.columns || [],
|
|
7
|
+
rows: options.document?.rows || [],
|
|
8
|
+
cells: options.document?.cells || {},
|
|
9
|
+
createdAt: options.document?.createdAt || Date.now(),
|
|
10
|
+
updatedAt: options.document?.updatedAt || Date.now()
|
|
11
|
+
});
|
|
12
|
+
let activeCell = $state(null);
|
|
13
|
+
let selectedRange = $state(null);
|
|
14
|
+
let editingCell = $state(null);
|
|
15
|
+
let draftValue = $state('');
|
|
16
|
+
const controller = new SpreadsheetController({
|
|
17
|
+
...options,
|
|
18
|
+
document: options.document,
|
|
19
|
+
onDocumentChange: (updated) => {
|
|
20
|
+
doc = { ...updated };
|
|
21
|
+
options.onDocumentChange?.(updated);
|
|
22
|
+
},
|
|
23
|
+
onSelectionChange: (active, range) => {
|
|
24
|
+
activeCell = active;
|
|
25
|
+
selectedRange = range;
|
|
26
|
+
options.onSelectionChange?.(active, range);
|
|
27
|
+
},
|
|
28
|
+
onCellCommit: (rowId, colId, raw, value) => {
|
|
29
|
+
options.onCellCommit?.(rowId, colId, raw, value);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
// Keep initial states aligned
|
|
33
|
+
doc = { ...controller.document };
|
|
34
|
+
activeCell = controller.activeCell;
|
|
35
|
+
selectedRange = controller.selectedRange;
|
|
36
|
+
return {
|
|
37
|
+
get document() {
|
|
38
|
+
return doc;
|
|
39
|
+
},
|
|
40
|
+
get activeCell() {
|
|
41
|
+
return activeCell;
|
|
42
|
+
},
|
|
43
|
+
get selectedRange() {
|
|
44
|
+
return selectedRange;
|
|
45
|
+
},
|
|
46
|
+
get editingCell() {
|
|
47
|
+
return editingCell;
|
|
48
|
+
},
|
|
49
|
+
get draftValue() {
|
|
50
|
+
return draftValue;
|
|
51
|
+
},
|
|
52
|
+
set draftValue(val) {
|
|
53
|
+
draftValue = val;
|
|
54
|
+
controller.draftValue = val;
|
|
55
|
+
},
|
|
56
|
+
controller,
|
|
57
|
+
getCell(rowId, colId) {
|
|
58
|
+
return controller.getCell(rowId, colId);
|
|
59
|
+
},
|
|
60
|
+
setCellValue(rowId, colId, raw) {
|
|
61
|
+
controller.setCellValue(rowId, colId, raw);
|
|
62
|
+
doc = { ...controller.document };
|
|
63
|
+
},
|
|
64
|
+
selectCell(row, col, extendSelection = false) {
|
|
65
|
+
controller.selectCell(row, col, extendSelection);
|
|
66
|
+
activeCell = controller.activeCell;
|
|
67
|
+
selectedRange = controller.selectedRange;
|
|
68
|
+
},
|
|
69
|
+
selectRange(range) {
|
|
70
|
+
controller.selectRange(range);
|
|
71
|
+
selectedRange = controller.selectedRange;
|
|
72
|
+
},
|
|
73
|
+
startEditing(row, col, initialVal) {
|
|
74
|
+
controller.startEditing(row, col, initialVal);
|
|
75
|
+
activeCell = controller.activeCell;
|
|
76
|
+
editingCell = controller.editingCell;
|
|
77
|
+
draftValue = controller.draftValue;
|
|
78
|
+
},
|
|
79
|
+
commitEditing(val) {
|
|
80
|
+
controller.commitEditing(val);
|
|
81
|
+
editingCell = null;
|
|
82
|
+
draftValue = '';
|
|
83
|
+
doc = { ...controller.document };
|
|
84
|
+
},
|
|
85
|
+
cancelEditing() {
|
|
86
|
+
controller.cancelEditing();
|
|
87
|
+
editingCell = null;
|
|
88
|
+
draftValue = '';
|
|
89
|
+
},
|
|
90
|
+
moveCursor(dir, extend = false) {
|
|
91
|
+
controller.moveCursor(dir, extend);
|
|
92
|
+
activeCell = controller.activeCell;
|
|
93
|
+
selectedRange = controller.selectedRange;
|
|
94
|
+
},
|
|
95
|
+
insertColumn(index, config) {
|
|
96
|
+
controller.insertColumn(index, config);
|
|
97
|
+
doc = { ...controller.document };
|
|
98
|
+
},
|
|
99
|
+
deleteColumn(colId) {
|
|
100
|
+
controller.deleteColumn(colId);
|
|
101
|
+
doc = { ...controller.document };
|
|
102
|
+
},
|
|
103
|
+
insertRow(index, config) {
|
|
104
|
+
controller.insertRow(index, config);
|
|
105
|
+
doc = { ...controller.document };
|
|
106
|
+
},
|
|
107
|
+
deleteRow(rowId) {
|
|
108
|
+
controller.deleteRow(rowId);
|
|
109
|
+
doc = { ...controller.document };
|
|
110
|
+
},
|
|
111
|
+
setColumnWidth(colId, width) {
|
|
112
|
+
controller.setColumnWidth(colId, width);
|
|
113
|
+
doc = { ...controller.document };
|
|
114
|
+
},
|
|
115
|
+
autoFitColumnWidth(colId, customWidth) {
|
|
116
|
+
controller.autoFitColumnWidth(colId, customWidth);
|
|
117
|
+
doc = { ...controller.document };
|
|
118
|
+
},
|
|
119
|
+
loadDocument(document) {
|
|
120
|
+
controller.loadDocument(document);
|
|
121
|
+
doc = { ...controller.document };
|
|
122
|
+
activeCell = controller.activeCell;
|
|
123
|
+
selectedRange = controller.selectedRange;
|
|
124
|
+
editingCell = controller.editingCell;
|
|
125
|
+
draftValue = controller.draftValue;
|
|
126
|
+
},
|
|
127
|
+
syncWithDataSource() {
|
|
128
|
+
controller.syncWithDataSource();
|
|
129
|
+
controller.recalculateAll();
|
|
130
|
+
doc = { ...controller.document };
|
|
131
|
+
},
|
|
132
|
+
registerDataSource(ds) {
|
|
133
|
+
controller.registerDataSource(ds);
|
|
134
|
+
doc = { ...controller.document };
|
|
135
|
+
},
|
|
136
|
+
setPrimaryDataSource(id) {
|
|
137
|
+
controller.setPrimaryDataSource(id);
|
|
138
|
+
doc = { ...controller.document };
|
|
139
|
+
},
|
|
140
|
+
recalculateAll() {
|
|
141
|
+
controller.recalculateAll();
|
|
142
|
+
doc = { ...controller.document };
|
|
143
|
+
},
|
|
144
|
+
exportToTsv() {
|
|
145
|
+
return controller.exportToTsv();
|
|
146
|
+
},
|
|
147
|
+
importFromTsv(data) {
|
|
148
|
+
controller.importFromTsv(data);
|
|
149
|
+
doc = { ...controller.document };
|
|
150
|
+
},
|
|
151
|
+
undo() {
|
|
152
|
+
controller.undo();
|
|
153
|
+
doc = { ...controller.document };
|
|
154
|
+
},
|
|
155
|
+
redo() {
|
|
156
|
+
controller.redo();
|
|
157
|
+
doc = { ...controller.document };
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pixerate/editor-svelte",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"description": "Svelte bindings and prompt/rich-text components for @pixerate/editor",
|
|
5
5
|
"author": "Pixerate",
|
|
6
6
|
"license": "MIT",
|
|
@@ -10,29 +10,25 @@
|
|
|
10
10
|
"directory": "packages/svelte"
|
|
11
11
|
},
|
|
12
12
|
"type": "module",
|
|
13
|
-
"main": "./dist/index.js",
|
|
14
|
-
"module": "./dist/index.js",
|
|
15
|
-
"types": "./dist/index.d.ts",
|
|
16
13
|
"svelte": "./dist/index.js",
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
17
15
|
"exports": {
|
|
18
16
|
".": {
|
|
19
17
|
"types": "./dist/index.d.ts",
|
|
20
18
|
"svelte": "./dist/index.js",
|
|
21
|
-
"import": "./dist/index.js",
|
|
22
19
|
"default": "./dist/index.js"
|
|
23
20
|
},
|
|
24
21
|
"./canvas": {
|
|
25
22
|
"types": "./dist/canvas/index.d.ts",
|
|
26
23
|
"svelte": "./dist/canvas/index.js",
|
|
27
|
-
"import": "./dist/canvas/index.js",
|
|
28
24
|
"default": "./dist/canvas/index.js"
|
|
29
25
|
},
|
|
30
26
|
"./image-editor": {
|
|
31
27
|
"types": "./dist/image-editor/index.d.ts",
|
|
32
28
|
"svelte": "./dist/image-editor/index.js",
|
|
33
|
-
"import": "./dist/image-editor/index.js",
|
|
34
29
|
"default": "./dist/image-editor/index.js"
|
|
35
|
-
}
|
|
30
|
+
},
|
|
31
|
+
"./package.json": "./package.json"
|
|
36
32
|
},
|
|
37
33
|
"typesVersions": {
|
|
38
34
|
"*": {
|
|
@@ -46,7 +42,10 @@
|
|
|
46
42
|
},
|
|
47
43
|
"files": [
|
|
48
44
|
"dist",
|
|
49
|
-
"
|
|
45
|
+
"!dist/**/*.test.*"
|
|
46
|
+
],
|
|
47
|
+
"sideEffects": [
|
|
48
|
+
"**/*.css"
|
|
50
49
|
],
|
|
51
50
|
"dependencies": {
|
|
52
51
|
"@dagrejs/dagre": "^1.1.4",
|
|
@@ -55,11 +54,11 @@
|
|
|
55
54
|
"@tiptap/extension-placeholder": "^2.11.5",
|
|
56
55
|
"@tiptap/pm": "^2.11.5",
|
|
57
56
|
"@tiptap/starter-kit": "^2.11.5",
|
|
58
|
-
"@pixerate/editor": "0.14.
|
|
57
|
+
"@pixerate/editor": "0.14.2"
|
|
59
58
|
},
|
|
60
59
|
"peerDependencies": {
|
|
61
60
|
"@xyflow/svelte": "^1.6.0",
|
|
62
|
-
"svelte": "^
|
|
61
|
+
"svelte": "^5.0.0"
|
|
63
62
|
},
|
|
64
63
|
"peerDependenciesMeta": {
|
|
65
64
|
"@xyflow/svelte": {
|
|
@@ -67,19 +66,18 @@
|
|
|
67
66
|
}
|
|
68
67
|
},
|
|
69
68
|
"devDependencies": {
|
|
69
|
+
"@sveltejs/package": "^2.5.8",
|
|
70
70
|
"@sveltejs/vite-plugin-svelte": "^5.0.3",
|
|
71
71
|
"@types/dagre": "^0.7.52",
|
|
72
72
|
"@xyflow/svelte": "^1.6.6",
|
|
73
|
-
"esbuild-svelte": "^0.9.5",
|
|
74
73
|
"svelte": "^5.0.0",
|
|
75
|
-
"svelte-
|
|
76
|
-
"tsup": "^8.4.0",
|
|
74
|
+
"svelte-check": "^4.7.6",
|
|
77
75
|
"typescript": "^5.7.3",
|
|
78
76
|
"vitest": "^4.1.11"
|
|
79
77
|
},
|
|
80
78
|
"scripts": {
|
|
81
|
-
"build": "
|
|
82
|
-
"typecheck": "
|
|
79
|
+
"build": "svelte-package -i src -o dist",
|
|
80
|
+
"typecheck": "svelte-check --tsconfig ./tsconfig.json --fail-on-warnings=false",
|
|
83
81
|
"test": "vitest run"
|
|
84
82
|
}
|
|
85
83
|
}
|