@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
@@ -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"}
@@ -1,3 +1,3 @@
1
1
  export { default as SpreadsheetEditor } from './SpreadsheetEditor.svelte';
2
2
  export { default as FormulaBar } from './FormulaBar.svelte';
3
- export * from './spreadsheet.svelte';
3
+ export * from './spreadsheet.svelte.js';
@@ -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.15.2",
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
- "src"
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.1"
57
+ "@pixerate/editor": "0.14.2"
59
58
  },
60
59
  "peerDependencies": {
61
60
  "@xyflow/svelte": "^1.6.0",
62
- "svelte": "^4.0.0 || ^5.0.0"
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-preprocess": "^6.0.5",
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": "tsup",
82
- "typecheck": "tsc --noEmit",
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
  }