@pixerate/editor-svelte 0.22.0 → 0.24.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 (163) hide show
  1. package/README.md +6 -2
  2. package/dist/MergePreview.svelte +201 -0
  3. package/dist/MergePreview.svelte.d.ts +25 -0
  4. package/dist/MergePreview.svelte.d.ts.map +1 -0
  5. package/dist/StylesGallery.svelte +169 -0
  6. package/dist/StylesGallery.svelte.d.ts +27 -0
  7. package/dist/StylesGallery.svelte.d.ts.map +1 -0
  8. package/dist/TemplateRenderer.svelte +4 -10
  9. package/dist/TemplateRenderer.svelte.d.ts.map +1 -1
  10. package/dist/canvas/TokenBindingPicker.svelte +93 -0
  11. package/dist/canvas/TokenBindingPicker.svelte.d.ts +20 -0
  12. package/dist/canvas/TokenBindingPicker.svelte.d.ts.map +1 -0
  13. package/dist/canvas/TokenModeSwitcher.svelte +55 -0
  14. package/dist/canvas/TokenModeSwitcher.svelte.d.ts +18 -0
  15. package/dist/canvas/TokenModeSwitcher.svelte.d.ts.map +1 -0
  16. package/dist/canvas/createCanvasArrange.svelte.d.ts +4 -0
  17. package/dist/canvas/createCanvasArrange.svelte.d.ts.map +1 -1
  18. package/dist/canvas/createCanvasAutoLayout.svelte.d.ts +68 -0
  19. package/dist/canvas/createCanvasAutoLayout.svelte.d.ts.map +1 -0
  20. package/dist/canvas/createCanvasAutoLayout.svelte.js +78 -0
  21. package/dist/canvas/createCanvasTokens.svelte.d.ts +31 -0
  22. package/dist/canvas/createCanvasTokens.svelte.d.ts.map +1 -0
  23. package/dist/canvas/createCanvasTokens.svelte.js +50 -0
  24. package/dist/canvas/index.d.ts +7 -0
  25. package/dist/canvas/index.d.ts.map +1 -1
  26. package/dist/canvas/index.js +10 -0
  27. package/dist/fileImport.svelte.d.ts +8 -1
  28. package/dist/fileImport.svelte.d.ts.map +1 -1
  29. package/dist/fileImport.svelte.js +11 -1
  30. package/dist/find-replace/FindReplaceBar.svelte +203 -0
  31. package/dist/find-replace/FindReplaceBar.svelte.d.ts +15 -0
  32. package/dist/find-replace/FindReplaceBar.svelte.d.ts.map +1 -0
  33. package/dist/find-replace/findReplace.svelte.d.ts +27 -0
  34. package/dist/find-replace/findReplace.svelte.d.ts.map +1 -0
  35. package/dist/find-replace/findReplace.svelte.js +79 -0
  36. package/dist/find-replace/index.d.ts +6 -0
  37. package/dist/find-replace/index.d.ts.map +1 -0
  38. package/dist/find-replace/index.js +2 -0
  39. package/dist/generation/AssetMentionChips.svelte +130 -0
  40. package/dist/generation/AssetMentionChips.svelte.d.ts +21 -0
  41. package/dist/generation/AssetMentionChips.svelte.d.ts.map +1 -0
  42. package/dist/generation/GenerationHistory.svelte +161 -0
  43. package/dist/generation/GenerationHistory.svelte.d.ts +28 -0
  44. package/dist/generation/GenerationHistory.svelte.d.ts.map +1 -0
  45. package/dist/generation/GenerationSettings.svelte +174 -0
  46. package/dist/generation/GenerationSettings.svelte.d.ts +23 -0
  47. package/dist/generation/GenerationSettings.svelte.d.ts.map +1 -0
  48. package/dist/generation/JobProgress.svelte +53 -0
  49. package/dist/generation/JobProgress.svelte.d.ts +17 -0
  50. package/dist/generation/JobProgress.svelte.d.ts.map +1 -0
  51. package/dist/generation/index.d.ts +17 -0
  52. package/dist/generation/index.d.ts.map +1 -0
  53. package/dist/generation/index.js +7 -0
  54. package/dist/generation/plan.svelte.d.ts +16 -0
  55. package/dist/generation/plan.svelte.d.ts.map +1 -0
  56. package/dist/generation/plan.svelte.js +26 -0
  57. package/dist/generation/progress.svelte.d.ts +25 -0
  58. package/dist/generation/progress.svelte.d.ts.map +1 -0
  59. package/dist/generation/progress.svelte.js +36 -0
  60. package/dist/generation/records.svelte.d.ts +18 -0
  61. package/dist/generation/records.svelte.d.ts.map +1 -0
  62. package/dist/generation/records.svelte.js +66 -0
  63. package/dist/image-editor/AdjustmentLayersPanel.svelte +309 -0
  64. package/dist/image-editor/AdjustmentLayersPanel.svelte.d.ts +11 -0
  65. package/dist/image-editor/AdjustmentLayersPanel.svelte.d.ts.map +1 -0
  66. package/dist/image-editor/ControlSlider.svelte +39 -0
  67. package/dist/image-editor/ControlSlider.svelte.d.ts +13 -0
  68. package/dist/image-editor/ControlSlider.svelte.d.ts.map +1 -0
  69. package/dist/image-editor/CurvesEditor.svelte +105 -0
  70. package/dist/image-editor/CurvesEditor.svelte.d.ts +13 -0
  71. package/dist/image-editor/CurvesEditor.svelte.d.ts.map +1 -0
  72. package/dist/image-editor/Histogram.svelte +49 -0
  73. package/dist/image-editor/Histogram.svelte.d.ts +12 -0
  74. package/dist/image-editor/Histogram.svelte.d.ts.map +1 -0
  75. package/dist/image-editor/ImageEditor.svelte +104 -141
  76. package/dist/image-editor/ImageEditor.svelte.d.ts.map +1 -1
  77. package/dist/image-editor/RefineEdgePanel.svelte +180 -0
  78. package/dist/image-editor/RefineEdgePanel.svelte.d.ts +13 -0
  79. package/dist/image-editor/RefineEdgePanel.svelte.d.ts.map +1 -0
  80. package/dist/image-editor/SelectionOptionsBar.svelte +135 -0
  81. package/dist/image-editor/SelectionOptionsBar.svelte.d.ts +15 -0
  82. package/dist/image-editor/SelectionOptionsBar.svelte.d.ts.map +1 -0
  83. package/dist/image-editor/imageEditorState.svelte.d.ts +14 -1
  84. package/dist/image-editor/imageEditorState.svelte.d.ts.map +1 -1
  85. package/dist/image-editor/imageEditorState.svelte.js +40 -0
  86. package/dist/image-editor/index.d.ts +18 -0
  87. package/dist/image-editor/index.d.ts.map +1 -1
  88. package/dist/image-editor/index.js +6 -0
  89. package/dist/index.d.ts +12 -1
  90. package/dist/index.d.ts.map +1 -1
  91. package/dist/index.js +7 -0
  92. package/dist/merge.svelte.d.ts +51 -0
  93. package/dist/merge.svelte.d.ts.map +1 -0
  94. package/dist/merge.svelte.js +117 -0
  95. package/dist/paragraphStyles.svelte.d.ts +30 -0
  96. package/dist/paragraphStyles.svelte.d.ts.map +1 -0
  97. package/dist/paragraphStyles.svelte.js +44 -0
  98. package/dist/persistence/RecoveryPrompt.svelte +57 -0
  99. package/dist/persistence/RecoveryPrompt.svelte.d.ts +18 -0
  100. package/dist/persistence/RecoveryPrompt.svelte.d.ts.map +1 -0
  101. package/dist/persistence/autosave.svelte.d.ts +63 -0
  102. package/dist/persistence/autosave.svelte.d.ts.map +1 -0
  103. package/dist/persistence/autosave.svelte.js +110 -0
  104. package/dist/persistence/index.d.ts +6 -0
  105. package/dist/persistence/index.d.ts.map +1 -0
  106. package/dist/persistence/index.js +2 -0
  107. package/dist/review/TrackedChangesList.svelte +67 -0
  108. package/dist/review/TrackedChangesList.svelte.d.ts +13 -0
  109. package/dist/review/TrackedChangesList.svelte.d.ts.map +1 -0
  110. package/dist/review/documentCompare.svelte.d.ts +21 -0
  111. package/dist/review/documentCompare.svelte.d.ts.map +1 -0
  112. package/dist/review/documentCompare.svelte.js +23 -0
  113. package/dist/review/index.d.ts +4 -0
  114. package/dist/review/index.d.ts.map +1 -1
  115. package/dist/review/index.js +2 -0
  116. package/dist/review/review.svelte.d.ts +6 -0
  117. package/dist/review/review.svelte.d.ts.map +1 -1
  118. package/dist/review/review.svelte.js +3 -0
  119. package/dist/spreadsheet/FormulaBar.svelte +13 -4
  120. package/dist/spreadsheet/FormulaBar.svelte.d.ts.map +1 -1
  121. package/dist/spreadsheet/FormulaHints.svelte +7 -5
  122. package/dist/spreadsheet/FormulaHints.svelte.d.ts +3 -0
  123. package/dist/spreadsheet/FormulaHints.svelte.d.ts.map +1 -1
  124. package/dist/spreadsheet/NameManager.svelte +165 -0
  125. package/dist/spreadsheet/NameManager.svelte.d.ts +11 -0
  126. package/dist/spreadsheet/NameManager.svelte.d.ts.map +1 -0
  127. package/dist/spreadsheet/SheetTabs.svelte +161 -0
  128. package/dist/spreadsheet/SheetTabs.svelte.d.ts +10 -0
  129. package/dist/spreadsheet/SheetTabs.svelte.d.ts.map +1 -0
  130. package/dist/spreadsheet/SpreadsheetConditionalFormatPanel.svelte +184 -0
  131. package/dist/spreadsheet/SpreadsheetConditionalFormatPanel.svelte.d.ts +9 -0
  132. package/dist/spreadsheet/SpreadsheetConditionalFormatPanel.svelte.d.ts.map +1 -0
  133. package/dist/spreadsheet/SpreadsheetContextMenu.svelte +13 -5
  134. package/dist/spreadsheet/SpreadsheetContextMenu.svelte.d.ts +5 -1
  135. package/dist/spreadsheet/SpreadsheetContextMenu.svelte.d.ts.map +1 -1
  136. package/dist/spreadsheet/SpreadsheetDataValidationPanel.svelte +141 -0
  137. package/dist/spreadsheet/SpreadsheetDataValidationPanel.svelte.d.ts +9 -0
  138. package/dist/spreadsheet/SpreadsheetDataValidationPanel.svelte.d.ts.map +1 -0
  139. package/dist/spreadsheet/SpreadsheetEditor.svelte +199 -11
  140. package/dist/spreadsheet/SpreadsheetEditor.svelte.d.ts +2 -0
  141. package/dist/spreadsheet/SpreadsheetEditor.svelte.d.ts.map +1 -1
  142. package/dist/spreadsheet/SpreadsheetValidationDialog.svelte +92 -0
  143. package/dist/spreadsheet/SpreadsheetValidationDialog.svelte.d.ts +9 -0
  144. package/dist/spreadsheet/SpreadsheetValidationDialog.svelte.d.ts.map +1 -0
  145. package/dist/spreadsheet/index.d.ts +9 -0
  146. package/dist/spreadsheet/index.d.ts.map +1 -1
  147. package/dist/spreadsheet/index.js +5 -0
  148. package/dist/spreadsheet/spreadsheet.svelte.d.ts +57 -2
  149. package/dist/spreadsheet/spreadsheet.svelte.d.ts.map +1 -1
  150. package/dist/spreadsheet/spreadsheet.svelte.js +105 -6
  151. package/dist/tokens/TokenSwatch.svelte +14 -0
  152. package/dist/tokens/TokenSwatch.svelte.d.ts +8 -0
  153. package/dist/tokens/TokenSwatch.svelte.d.ts.map +1 -0
  154. package/dist/tokens/TokensPanel.svelte +323 -0
  155. package/dist/tokens/TokensPanel.svelte.d.ts +14 -0
  156. package/dist/tokens/TokensPanel.svelte.d.ts.map +1 -0
  157. package/dist/tokens/createTokens.svelte.d.ts +31 -0
  158. package/dist/tokens/createTokens.svelte.d.ts.map +1 -0
  159. package/dist/tokens/createTokens.svelte.js +43 -0
  160. package/dist/tokens/index.d.ts +7 -0
  161. package/dist/tokens/index.d.ts.map +1 -0
  162. package/dist/tokens/index.js +3 -0
  163. package/package.json +26 -2
@@ -0,0 +1,55 @@
1
+ <script lang="ts">
2
+ import {
3
+ getEffectiveTokenModes,
4
+ getNodeTokenModes,
5
+ setCanvasTokenMode,
6
+ type CanvasTokenOptions
7
+ } from '@pixerate/editor/canvas';
8
+ import { getCurrentMode, type TokenState } from '@pixerate/editor/tokens';
9
+ import type { CanvasNode } from './types.js';
10
+
11
+ interface Props {
12
+ state: TokenState;
13
+ nodes: CanvasNode[];
14
+ /** Frames / groups whose explicit mode is set (the first one's choice is shown). */
15
+ nodeIds: readonly string[];
16
+ onchange: (nodes: CanvasNode[]) => void;
17
+ options?: CanvasTokenOptions;
18
+ /** Show collections with a single mode too (default `false`). */
19
+ showSingleMode?: boolean;
20
+ class?: string;
21
+ }
22
+
23
+ let { state, nodes, nodeIds, onchange, options = {}, showSingleMode = false, class: className = '' }: Props = $props();
24
+
25
+ const first = $derived(nodes.find((n) => nodeIds.includes(n.id)));
26
+ const own = $derived(first ? getNodeTokenModes(first as any) : {});
27
+ const inherited = $derived.by(() => {
28
+ const parent = first?.parentId ? nodes.find((n) => n.id === first!.parentId) : undefined;
29
+ return parent ? getEffectiveTokenModes(parent as any, nodes as any, state, options) : { ...options.modes };
30
+ });
31
+ const collections = $derived(state.collections.filter((c) => showSingleMode || c.modes.length > 1));
32
+ </script>
33
+
34
+ {#if first}
35
+ <div data-token-mode-switcher="" class="flex flex-col gap-1 text-xs text-foreground {className}">
36
+ {#each collections as collection (collection.id)}
37
+ {@const explicit = collection.modes.some((m) => m.id === own[collection.id]) ? own[collection.id] : ''}
38
+ <label class="flex items-center gap-2" data-token-collection={collection.id}>
39
+ <span class="w-28 shrink-0 truncate text-muted-foreground">{collection.name}</span>
40
+ <select
41
+ aria-label="{collection.name} mode"
42
+ class="min-w-0 flex-1 rounded border border-border bg-background px-1 py-0.5 text-xs"
43
+ value={explicit}
44
+ onchange={(e) =>
45
+ onchange(setCanvasTokenMode(nodes as any[], nodeIds, collection.id, e.currentTarget.value || null, state, options))}
46
+ >
47
+ <option value="">Auto ({getCurrentMode(collection, inherited).name})</option>
48
+ {#each collection.modes as m (m.id)}
49
+ <option value={m.id}>{m.name}</option>
50
+ {/each}
51
+ </select>
52
+ </label>
53
+ {/each}
54
+ </div>
55
+ {/if}
@@ -0,0 +1,18 @@
1
+ import { type CanvasTokenOptions } from '@pixerate/editor/canvas';
2
+ import { type TokenState } from '@pixerate/editor/tokens';
3
+ import type { CanvasNode } from './types.js';
4
+ interface Props {
5
+ state: TokenState;
6
+ nodes: CanvasNode[];
7
+ /** Frames / groups whose explicit mode is set (the first one's choice is shown). */
8
+ nodeIds: readonly string[];
9
+ onchange: (nodes: CanvasNode[]) => void;
10
+ options?: CanvasTokenOptions;
11
+ /** Show collections with a single mode too (default `false`). */
12
+ showSingleMode?: boolean;
13
+ class?: string;
14
+ }
15
+ declare const TokenModeSwitcher: import("svelte").Component<Props, {}, "">;
16
+ type TokenModeSwitcher = ReturnType<typeof TokenModeSwitcher>;
17
+ export default TokenModeSwitcher;
18
+ //# sourceMappingURL=TokenModeSwitcher.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TokenModeSwitcher.svelte.d.ts","sourceRoot":"","sources":["../../src/canvas/TokenModeSwitcher.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,kBAAkB,EACvB,MAAM,yBAAyB,CAAC;AAClC,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG5C,UAAU,KAAK;IACd,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,oFAAoF;IACpF,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;IACxC,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,iEAAiE;IACjE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAsCF,QAAA,MAAM,iBAAiB,2CAAwC,CAAC;AAChE,KAAK,iBAAiB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC9D,eAAe,iBAAiB,CAAC"}
@@ -51,6 +51,10 @@ export declare function createCanvasArrange<TNode extends CanvasNode = CanvasNod
51
51
  exclude: (ids?: Iterable<string>, o?: import("@pixerate/editor/canvas").CombineShapeNodesOptions) => import("@pixerate/editor/canvas").CombineShapeNodesResult<any>;
52
52
  divide: (ids?: Iterable<string>, o?: import("@pixerate/editor/canvas").CombineShapeNodesOptions) => import("@pixerate/editor/canvas").CombineShapeNodesResult<any>;
53
53
  canCombineShapes: (ids?: Iterable<string>) => boolean;
54
+ offsetShapes(distance: number, ids?: Iterable<string>, offsetOptions?: import("@pixerate/editor/canvas").OffsetShapeNodesOptions): import("@pixerate/editor/canvas").ShapePathEditResult<any>;
55
+ canOffsetShapes: (ids?: Iterable<string>) => boolean;
56
+ outlineStroke(ids?: Iterable<string>, outlineOptions?: import("@pixerate/editor/canvas").OutlineShapeStrokesOptions): import("@pixerate/editor/canvas").ShapePathEditResult<any>;
57
+ canOutlineStroke: (ids?: Iterable<string>) => boolean;
54
58
  runAction(action: CanvasArrangeAction): boolean;
55
59
  beginDrag(ids?: Iterable<string>): void;
56
60
  drag(ids?: Iterable<string>): import("@pixerate/editor/canvas").SnapNodeDragResult | null;
@@ -1 +1 @@
1
- {"version":3,"file":"createCanvasArrange.svelte.d.ts","sourceRoot":"","sources":["../../src/canvas/createCanvasArrange.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,8BAA8B,EACnC,KAAK,SAAS,EACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,KAAK,WAAW,GAAG,8BAA8B,CAAC,GAAG,CAAC,CAAC;AAEvD,MAAM,WAAW,0BAA0B,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,CAChF,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,UAAU,GAAG,gBAAgB,CAAC;IACrE,QAAQ,EAAE,MAAM,KAAK,EAAE,CAAC;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;IACnC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;CAC/C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,EACxE,OAAO,EAAE,0BAA0B,CAAC,KAAK,CAAC;;IAkBzC;;;;;OAKG;wBACiB,MAAM;;;;;;;;;;sBAoD+j/C,CAAC;sBAAiE,CAAC;sBAAiE,CAAC;oBAA+D,CAAC;cAAyD,CAAC;gBAAiD,CAAC;;;;;;;;;0BAA8tC,CAAC;;;;;;;;;;EAxC1miD;AAED,MAAM,MAAM,aAAa,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,IAAI,UAAU,CAAC,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;AAEjH,MAAM,WAAW,6BAA6B;IAC7C,OAAO,EAAE;QAAE,SAAS,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,OAAO,CAAA;KAAE,CAAC;IACjE,uEAAuE;IACvE,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,OAAO,CAAA;KAAE,CAAC;IAC1D,aAAa,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IACrC,QAAQ,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;CAC7C;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,6BAA6B,GAAG,MAAM,IAAI,CAqB/F"}
1
+ {"version":3,"file":"createCanvasArrange.svelte.d.ts","sourceRoot":"","sources":["../../src/canvas/createCanvasArrange.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,8BAA8B,EACnC,KAAK,SAAS,EACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,KAAK,WAAW,GAAG,8BAA8B,CAAC,GAAG,CAAC,CAAC;AAEvD,MAAM,WAAW,0BAA0B,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,CAChF,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,UAAU,GAAG,gBAAgB,CAAC;IACrE,QAAQ,EAAE,MAAM,KAAK,EAAE,CAAC;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;IACnC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;CAC/C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,EACxE,OAAO,EAAE,0BAA0B,CAAC,KAAK,CAAC;;IAkBzC;;;;;OAKG;wBACiB,MAAM;;;;;;;;;;sBAoDu6hF,CAAC;sBAAiE,CAAC;sBAAiE,CAAC;oBAA+D,CAAC;cAAyD,CAAC;gBAAiD,CAAC;;;;;;;;;0BAA8tC,CAAC;;yBAA6kB,CAAC;;0BAAgf,CAAC;;;;;;;;;;EAxCjhnF;AAED,MAAM,MAAM,aAAa,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,IAAI,UAAU,CAAC,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;AAEjH,MAAM,WAAW,6BAA6B;IAC7C,OAAO,EAAE;QAAE,SAAS,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,OAAO,CAAA;KAAE,CAAC;IACjE,uEAAuE;IACvE,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,OAAO,CAAA;KAAE,CAAC;IAC1D,aAAa,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IACrC,QAAQ,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;CAC7C;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,6BAA6B,GAAG,MAAM,IAAI,CAqB/F"}
@@ -0,0 +1,68 @@
1
+ import { type CanvasAutoLayoutControllerOptions, type GuideLine, type PositionChangeLike } from '@pixerate/editor/canvas';
2
+ import type { CanvasNode } from './types.js';
3
+ type CoreOptions = CanvasAutoLayoutControllerOptions<any>;
4
+ export interface CreateCanvasAutoLayoutOptions<TNode extends CanvasNode = CanvasNode> extends Omit<CoreOptions, 'getNodes' | 'setNodes' | 'onGuidesChange'> {
5
+ getNodes: () => TNode[];
6
+ setNodes: (nodes: TNode[]) => void;
7
+ onGuidesChange?: (guides: GuideLine[]) => void;
8
+ }
9
+ /**
10
+ * Headless Svelte 5 rune for Figma-style auto layout on SvelteFlow sub-flows. Frames are
11
+ * nodes with `data.layout`; their children (`parentId`) are stacked, wrapped or placed on a
12
+ * grid, with hug / fill / fixed sizing, min / max, padding, alignment and constraints.
13
+ *
14
+ * Its actions (`addNode`, `removeNodes`, `resizeNode`, `moveChild`, `applyAutoLayout`) relayout
15
+ * in the same undoable step when a `HistoryManager` is passed. Wire the flow's own edits with
16
+ * `onnodedrag={({ targetNode }) => autoLayout.dragReorder(targetNode.id)}`,
17
+ * `onnodedragstop={({ targetNode }) => autoLayout.endReorderDrag(targetNode.id)}`,
18
+ * `ondelete={({ nodes }) => autoLayout.nodesDeleted(nodes)}`,
19
+ * `<NodeResizer {...autoLayout.resizerHandlers(id)} />` and call `autoLayout.measured(id)` when
20
+ * a node's content size changes. Render `guides` (the drop marker) with `<CanvasGuidesLayer>`.
21
+ */
22
+ export declare function createCanvasAutoLayout<TNode extends CanvasNode = CanvasNode>(options: CreateCanvasAutoLayoutOptions<TNode>): {
23
+ guides: GuideLine[];
24
+ hasPending: boolean;
25
+ /** Notes node changes (see the core controller) and flushes them on the next microtask. */
26
+ handleChanges<TChange extends PositionChangeLike>(changes: TChange[]): TChange[];
27
+ /** For SvelteFlow's `ondelete`: relayouts the frames the deleted nodes left. */
28
+ nodesDeleted(removed: Iterable<{
29
+ id: string;
30
+ parentId?: string;
31
+ }>): void;
32
+ /** Relayouts around node `id` after its measured (content) size changed. */
33
+ measured(id: string): void;
34
+ /**
35
+ * Handlers for SvelteFlow's `<NodeResizer>`: children follow their constraints and the
36
+ * frames around the node relayout when the resize ends.
37
+ */
38
+ resizerHandlers(id: string): {
39
+ onResizeStart: () => void;
40
+ onResizeEnd: () => void;
41
+ };
42
+ applyAutoLayout(frameId?: string): import("@pixerate/editor/canvas").CanvasNodeUpdate[];
43
+ layoutUpdates(ids: Iterable<string>): import("@pixerate/editor/canvas").CanvasNodeUpdate[];
44
+ relayout(ids: Iterable<string>): import("@pixerate/editor/canvas").CanvasNodeUpdate[];
45
+ addNode(node: any, addOptions?: {
46
+ index?: number;
47
+ }): import("@pixerate/editor/canvas").CanvasNodeUpdate[];
48
+ removeNodes(ids: Iterable<string>): import("@pixerate/editor/canvas").CanvasNodeUpdate[];
49
+ resizeNode(id: string, size: {
50
+ width?: number;
51
+ height?: number;
52
+ }): import("@pixerate/editor/canvas").CanvasNodeUpdate[];
53
+ moveChild(childId: string, index: number): import("@pixerate/editor/canvas").CanvasNodeUpdate[];
54
+ getInsertTarget(id: string, point?: import("@pixerate/editor/canvas").XYPosition): import("@pixerate/editor/canvas").AutoLayoutInsertTarget | undefined;
55
+ beginReorderDrag(id: string): void;
56
+ dragReorder(id: string, point?: import("@pixerate/editor/canvas").XYPosition): import("@pixerate/editor/canvas").AutoLayoutInsertTarget | undefined;
57
+ endReorderDrag(id: string, point?: import("@pixerate/editor/canvas").XYPosition): import("@pixerate/editor/canvas").CanvasNodeUpdate[];
58
+ noteChanges<TChange extends PositionChangeLike>(changes: TChange[]): TChange[];
59
+ noteRemoved(removed: Iterable<{
60
+ id: string;
61
+ parentId?: string;
62
+ }>): void;
63
+ flush(): import("@pixerate/editor/canvas").CanvasNodeUpdate[];
64
+ isFrame: (id: string) => boolean;
65
+ };
66
+ export type CanvasAutoLayout<TNode extends CanvasNode = CanvasNode> = ReturnType<typeof createCanvasAutoLayout<TNode>>;
67
+ export {};
68
+ //# sourceMappingURL=createCanvasAutoLayout.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createCanvasAutoLayout.svelte.d.ts","sourceRoot":"","sources":["../../src/canvas/createCanvasAutoLayout.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,iCAAiC,EACtC,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,KAAK,WAAW,GAAG,iCAAiC,CAAC,GAAG,CAAC,CAAC;AAE1D,MAAM,WAAW,6BAA6B,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,CACnF,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,UAAU,GAAG,gBAAgB,CAAC;IACrE,QAAQ,EAAE,MAAM,KAAK,EAAE,CAAC;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;IACnC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;CAC/C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,EAAE,OAAO,EAAE,6BAA6B,CAAC,KAAK,CAAC;;;IA+BzH,2FAA2F;kBAC7E,OAAO,SAAS,kBAAkB,WAAW,OAAO,EAAE,GAAG,OAAO,EAAE;IAKhF,gFAAgF;0BAC1D,QAAQ,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAIjE,4EAA4E;iBAC/D,MAAM;IAInB;;;OAGG;wBACiB,MAAM;;;;;;;;aAiBsk/F,CAAC;;;;aAAiX,CAAC;cAAwB,CAAC;;;;;;;;;;gBAAqrD,CAAC;;;;EAHnqjG;AAED,MAAM,MAAM,gBAAgB,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,IAAI,UAAU,CAAC,OAAO,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC"}
@@ -0,0 +1,78 @@
1
+ import { createCanvasAutoLayoutController } from '@pixerate/editor/canvas';
2
+ /**
3
+ * Headless Svelte 5 rune for Figma-style auto layout on SvelteFlow sub-flows. Frames are
4
+ * nodes with `data.layout`; their children (`parentId`) are stacked, wrapped or placed on a
5
+ * grid, with hug / fill / fixed sizing, min / max, padding, alignment and constraints.
6
+ *
7
+ * Its actions (`addNode`, `removeNodes`, `resizeNode`, `moveChild`, `applyAutoLayout`) relayout
8
+ * in the same undoable step when a `HistoryManager` is passed. Wire the flow's own edits with
9
+ * `onnodedrag={({ targetNode }) => autoLayout.dragReorder(targetNode.id)}`,
10
+ * `onnodedragstop={({ targetNode }) => autoLayout.endReorderDrag(targetNode.id)}`,
11
+ * `ondelete={({ nodes }) => autoLayout.nodesDeleted(nodes)}`,
12
+ * `<NodeResizer {...autoLayout.resizerHandlers(id)} />` and call `autoLayout.measured(id)` when
13
+ * a node's content size changes. Render `guides` (the drop marker) with `<CanvasGuidesLayer>`.
14
+ */
15
+ export function createCanvasAutoLayout(options) {
16
+ let guides = $state.raw([]);
17
+ let scheduled = false;
18
+ const controller = createCanvasAutoLayoutController({
19
+ ...options,
20
+ onGuidesChange: (next) => {
21
+ guides = next;
22
+ options.onGuidesChange?.(next);
23
+ }
24
+ });
25
+ // SvelteFlow writes its own changes after its callbacks run, so the flush waits a microtask.
26
+ const schedule = () => {
27
+ if (scheduled)
28
+ return;
29
+ scheduled = true;
30
+ queueMicrotask(() => {
31
+ scheduled = false;
32
+ controller.flush();
33
+ });
34
+ };
35
+ return {
36
+ ...controller,
37
+ /** Drop marker of the active reorder drag (flow coordinates); empty otherwise. */
38
+ get guides() {
39
+ return guides;
40
+ },
41
+ get hasPending() {
42
+ return controller.hasPending;
43
+ },
44
+ /** Notes node changes (see the core controller) and flushes them on the next microtask. */
45
+ handleChanges(changes) {
46
+ controller.noteChanges(changes);
47
+ schedule();
48
+ return changes;
49
+ },
50
+ /** For SvelteFlow's `ondelete`: relayouts the frames the deleted nodes left. */
51
+ nodesDeleted(removed) {
52
+ controller.noteRemoved(removed);
53
+ schedule();
54
+ },
55
+ /** Relayouts around node `id` after its measured (content) size changed. */
56
+ measured(id) {
57
+ controller.noteChanges([{ type: 'dimensions', id }]);
58
+ schedule();
59
+ },
60
+ /**
61
+ * Handlers for SvelteFlow's `<NodeResizer>`: children follow their constraints and the
62
+ * frames around the node relayout when the resize ends.
63
+ */
64
+ resizerHandlers(id) {
65
+ return {
66
+ onResizeStart: () => {
67
+ controller.noteChanges([{ type: 'dimensions', id, resizing: true }]);
68
+ },
69
+ onResizeEnd: () => {
70
+ queueMicrotask(() => {
71
+ controller.noteChanges([{ type: 'dimensions', id, resizing: false }]);
72
+ controller.flush();
73
+ });
74
+ }
75
+ };
76
+ }
77
+ };
78
+ }
@@ -0,0 +1,31 @@
1
+ import { type CanvasTokenOptions } from '@pixerate/editor/canvas';
2
+ import type { TokenModeContext, TokenState, TokenStore } from '@pixerate/editor/tokens';
3
+ import type { CanvasNode } from './types.js';
4
+ export interface CreateCanvasTokensOptions<TNode extends CanvasNode = CanvasNode> extends Omit<CanvasTokenOptions, 'modes'> {
5
+ store: TokenStore;
6
+ getNodes: () => TNode[];
7
+ setNodes: (nodes: TNode[]) => void;
8
+ /** Modes for nodes without an explicit mode up their tree, or a getter for reactive modes. */
9
+ modes?: TokenModeContext | (() => TokenModeContext | undefined);
10
+ }
11
+ /**
12
+ * Headless Svelte 5 rune keeping token-bound node properties resolved. Token edits, undo and
13
+ * redo re-resolve the nodes; deleting a variable detaches the nodes bound to it, keeping their
14
+ * values. Call `resolve()` after changing the nodes yourself (e.g. pasting bound nodes, or
15
+ * switching the root `modes`); `bind` and `setMode` resolve on their own.
16
+ */
17
+ export declare function createCanvasTokens<TNode extends CanvasNode = CanvasNode>(options: CreateCanvasTokensOptions<TNode>): {
18
+ /** The token store's state (reactive). */
19
+ readonly state: TokenState;
20
+ /** Binds (or with `null` unbinds) a property of the nodes; throws `TokenError` when refused. */
21
+ bind(ids: Iterable<string>, propertyKey: string, variableId: string | null): void;
22
+ /** Sets (or with `null` clears) an explicit mode on frames / groups; descendants follow. */
23
+ setMode(ids: Iterable<string>, collectionId: string, modeId: string | null): void;
24
+ /** The modes a node is in (its own, inherited, then the root `modes`). */
25
+ modesOf(nodeId: string): Record<string, string>;
26
+ /** Re-resolves every bound property (after changing nodes or root modes). */
27
+ resolve: () => void;
28
+ destroy: () => void;
29
+ };
30
+ export type SvelteCanvasTokens = ReturnType<typeof createCanvasTokens>;
31
+ //# sourceMappingURL=createCanvasTokens.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createCanvasTokens.svelte.d.ts","sourceRoot":"","sources":["../../src/canvas/createCanvasTokens.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,EAMN,KAAK,kBAAkB,EACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,yBAAyB,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC;IAC1H,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,MAAM,KAAK,EAAE,CAAC;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;IACnC,8FAA8F;IAC9F,KAAK,CAAC,EAAE,gBAAgB,GAAG,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC,CAAC;CAChE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,EAAE,OAAO,EAAE,yBAAyB,CAAC,KAAK,CAAC;IAoBjH,0CAA0C;;IAI1C,gGAAgG;cACtF,QAAQ,CAAC,MAAM,CAAC,eAAe,MAAM,cAAc,MAAM,GAAG,IAAI;IAG1E,4FAA4F;iBAC/E,QAAQ,CAAC,MAAM,CAAC,gBAAgB,MAAM,UAAU,MAAM,GAAG,IAAI;IAG1E,0EAA0E;oBAC1D,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAK/C,6EAA6E;;;EAI9E;AAED,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { bindCanvasToken, detachTokenBindings, getEffectiveTokenModes, resolveCanvasTokens, setCanvasTokenMode } from '@pixerate/editor/canvas';
2
+ /**
3
+ * Headless Svelte 5 rune keeping token-bound node properties resolved. Token edits, undo and
4
+ * redo re-resolve the nodes; deleting a variable detaches the nodes bound to it, keeping their
5
+ * values. Call `resolve()` after changing the nodes yourself (e.g. pasting bound nodes, or
6
+ * switching the root `modes`); `bind` and `setMode` resolve on their own.
7
+ */
8
+ export function createCanvasTokens(options) {
9
+ const { store } = options;
10
+ let state = $state.raw(store.getState());
11
+ const opts = () => ({
12
+ modes: typeof options.modes === 'function' ? options.modes() : options.modes,
13
+ properties: options.properties
14
+ });
15
+ const commit = (next) => {
16
+ if (next !== options.getNodes())
17
+ options.setNodes(next);
18
+ };
19
+ const resolve = () => commit(resolveCanvasTokens(options.getNodes(), store.getState(), opts()));
20
+ const unsubscribe = store.subscribe((event) => {
21
+ state = event.state;
22
+ let nodes = options.getNodes();
23
+ if (event.deletedVariableIds.length > 0)
24
+ nodes = detachTokenBindings(nodes, event.previous, event.deletedVariableIds, opts());
25
+ commit(resolveCanvasTokens(nodes, event.state, opts()));
26
+ });
27
+ return {
28
+ /** The token store's state (reactive). */
29
+ get state() {
30
+ return state;
31
+ },
32
+ /** Binds (or with `null` unbinds) a property of the nodes; throws `TokenError` when refused. */
33
+ bind(ids, propertyKey, variableId) {
34
+ commit(bindCanvasToken(options.getNodes(), ids, propertyKey, variableId, store.getState(), opts()));
35
+ },
36
+ /** Sets (or with `null` clears) an explicit mode on frames / groups; descendants follow. */
37
+ setMode(ids, collectionId, modeId) {
38
+ commit(setCanvasTokenMode(options.getNodes(), ids, collectionId, modeId, store.getState(), opts()));
39
+ },
40
+ /** The modes a node is in (its own, inherited, then the root `modes`). */
41
+ modesOf(nodeId) {
42
+ const nodes = options.getNodes();
43
+ const node = nodes.find((n) => n.id === nodeId);
44
+ return node ? getEffectiveTokenModes(node, nodes, store.getState(), opts()) : {};
45
+ },
46
+ /** Re-resolves every bound property (after changing nodes or root modes). */
47
+ resolve,
48
+ destroy: unsubscribe
49
+ };
50
+ }
@@ -22,5 +22,12 @@ export { measureBetween, measureToLine, measureSelection, measureLabel, isMeasur
22
22
  export { alignNodes, distributeNodes, matchSize, reorderNodes, applyNodeUpdates, invertNodeUpdates, lockNodes, unlockNodes, toggleLockNodes, isLocked, getNodeSize, getNodeRect, getAbsolutePosition, readStyleSize, withStyleSize, computeSnapGuides, createGuideIndex, createNodeGuideIndex, snapNodeDrag, findConnectorSnap, nearestHandlePositions, handlePoint, positionToSide, sideToPosition, oppositePosition, CONNECTION_LINE_TYPES, CanvasScenesStore, createCanvasScenesStore, parseCanvasScenes, fitViewportToRect, fitViewportToNodes, matchArrangeShortcut, DEFAULT_ARRANGE_SHORTCUTS, type AlignEdge, type DistributeAxis, type DistributeMode, type SizeDimension, type ZOrderOperation, type CanvasNodeUpdate, type GuideLine, type GuideIndex, type SnapGuidesOptions, type SnapResult, type ConnectorSnap, type ConnectorSnapTarget, type CanvasConnectionLineType, type CanvasScene, type CanvasScenesState, type CanvasViewport, type CanvasArrangeAction, type ArrangeShortcutBinding } from '@pixerate/editor/canvas';
23
23
  export { default as ShapeNode } from './ShapeNode.svelte';
24
24
  export { combineShapeNodes, canCombineShapeNodes, applyShapeCombination, revertShapeCombination, shapeNodeToPolygon, isShapeNode, getNodeShape, SHAPE_DATA_KEY, SHAPE_NODE_TYPE, SHAPE_OPERATIONS, SHAPE_KINDS, isShapeDescription, shapeToPolygon, getShapeSvg, getShapeRenderData, parseSvgPath, flattenSvgPath, polygonToSvgPath, simplifyRing, polygonBoolean, unionPolygons, intersectPolygons, subtractPolygons, xorPolygons, dividePolygons, polygonArea, multiPolygonArea, multiPolygonBounds, ringSignedArea, pointInRings, pointInMultiPolygon, type ShapeOperation, type ShapeDescription, type ShapeKind, type ShapePaint, type ShapeSize, type ShapeRenderData, type RectShape, type EllipseShape, type RegularPolygonShape, type StarShape, type PathShape, type PathCommand, type FlattenOptions, type PolygonToPathOptions, type CombineShapeNodesOptions, type CombineShapeNodesResult, type CombineShapeNodesRefusal, type ShapeNodePolygonOptions, type MultiPolygon, type PolygonWithHoles, type PolygonRing, type PolygonFillRule, type PolygonOperand, type PolygonInput, type PolygonPiece, type PolygonBooleanOperation, type PolygonBooleanOptions } from '@pixerate/editor/canvas';
25
+ export { offsetShapeNodes, outlineShapeNodeStrokes, canOffsetShapeNodes, canOutlineShapeNodeStrokes, applyShapeReplacement, hasVisibleStroke, shapeToBezierPath, shapeNodeToBezierPath, pathBoolean, unitePaths, intersectPaths, subtractPaths, excludePaths, dividePaths, normalizeBezierPath, bezierPathArea, offsetPath, outlineStroke, strokeOutlineRings, dashContours, toBezierPath, bezierPathToSvg, transformBezierPath, bezierPathBounds, bezierPathSignedArea, bezierPathLength, bezierPathPointAtLength, pointInBezierPath, distanceToBezierPath, countPathSegments, type BezierCommand, type BezierPath, type BezierPathInput, type PathOperand, type PathOperandInput, type PathOpsOptions, type PathBooleanResult, type DividePathsResult, type StrokeJoin, type StrokeCap, type OutlineStrokeOptions, type OffsetPathOptions, type OffsetShapeNodesOptions, type OutlineShapeStrokesOptions, type ShapePathEditResult, type ShapePathEditRefusal, type ShapePathEditOperation } from '@pixerate/editor/canvas';
25
26
  export { realClock, ManualClock, layoutBounds, canvasHeight, estimateCanvasHeight, blendLayout, connectedOnly, type Clock, type CanvasHeightOptions } from '@pixerate/editor/canvas';
27
+ export { layoutFrame, layoutAll, layoutUp, layoutUpMany, applyConstraints, getAutoLayout, getChildLayout, getLayoutSizing, getAutoLayoutGrid, getAutoLayoutInsertTarget, getFlowChildren, getLayoutParent, isAutoLayoutFrame, makeSizingCoherent, moveLayoutChild, mergeNodeUpdates, relayoutUpdates, resolvePadding, clampLayoutSize, createCanvasAutoLayoutController, AUTO_LAYOUT_DATA_KEY, CHILD_LAYOUT_DATA_KEY, type AutoLayout, type AutoLayoutChild, type AutoLayoutMode, type AutoLayoutSizing, type AutoLayoutSizingPair, type AutoLayoutSize, type AutoLayoutAlignMain, type AutoLayoutAlignCross, type AutoLayoutAlignContent, type AutoLayoutPadding, type AutoLayoutGrid, type AutoLayoutGridTrack, type AutoLayoutGridArea, type AutoLayoutGridCell, type AutoLayoutGridGeometry, type AutoLayoutCellAlign, type AutoLayoutConstraints, type AutoLayoutHorizontalConstraint, type AutoLayoutVerticalConstraint, type AutoLayoutMeasure, type AutoLayoutOptions, type AutoLayoutInsertTarget, type CanvasAutoLayoutController, type CanvasAutoLayoutControllerOptions } from '@pixerate/editor/canvas';
28
+ export { createCanvasAutoLayout, type CanvasAutoLayout, type CreateCanvasAutoLayoutOptions } from './createCanvasAutoLayout.svelte.js';
29
+ export { createCanvasTokens, type CreateCanvasTokensOptions, type SvelteCanvasTokens } from './createCanvasTokens.svelte.js';
30
+ export { default as TokenBindingPicker } from './TokenBindingPicker.svelte';
31
+ export { default as TokenModeSwitcher } from './TokenModeSwitcher.svelte';
32
+ export { bindCanvasToken, setCanvasTokenMode, resolveCanvasTokens, detachTokenBindings, pruneCanvasTokenModes, inspectNodeTokens, getNodeTokenBindings, getNodeTokenModes, getEffectiveTokenModes, getBindableTokenProperties, getCanvasTokenProperty, getTokenPropertyScope, getTokensForProperty, readNodeStyleProperty, writeNodeStyleProperty, CANVAS_TOKEN_PROPERTIES, TOKEN_BINDINGS_DATA_KEY, TOKEN_MODES_DATA_KEY, type CanvasTokenProperty, type CanvasTokenOptions, type CanvasTokenBindingInfo } from '@pixerate/editor/canvas';
26
33
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/canvas/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/canvas/index.ts"],"names":[],"mappings":"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"}
@@ -41,5 +41,15 @@ export { alignNodes, distributeNodes, matchSize, reorderNodes, applyNodeUpdates,
41
41
  export { default as ShapeNode } from './ShapeNode.svelte';
42
42
  // Shape nodes and boolean operations (Unite / Intersect / Subtract / Exclude / Divide)
43
43
  export { combineShapeNodes, canCombineShapeNodes, applyShapeCombination, revertShapeCombination, shapeNodeToPolygon, isShapeNode, getNodeShape, SHAPE_DATA_KEY, SHAPE_NODE_TYPE, SHAPE_OPERATIONS, SHAPE_KINDS, isShapeDescription, shapeToPolygon, getShapeSvg, getShapeRenderData, parseSvgPath, flattenSvgPath, polygonToSvgPath, simplifyRing, polygonBoolean, unionPolygons, intersectPolygons, subtractPolygons, xorPolygons, dividePolygons, polygonArea, multiPolygonArea, multiPolygonBounds, ringSignedArea, pointInRings, pointInMultiPolygon } from '@pixerate/editor/canvas';
44
+ // Curve-preserving path operations, Offset Path and Outline Stroke
45
+ export { offsetShapeNodes, outlineShapeNodeStrokes, canOffsetShapeNodes, canOutlineShapeNodeStrokes, applyShapeReplacement, hasVisibleStroke, shapeToBezierPath, shapeNodeToBezierPath, pathBoolean, unitePaths, intersectPaths, subtractPaths, excludePaths, dividePaths, normalizeBezierPath, bezierPathArea, offsetPath, outlineStroke, strokeOutlineRings, dashContours, toBezierPath, bezierPathToSvg, transformBezierPath, bezierPathBounds, bezierPathSignedArea, bezierPathLength, bezierPathPointAtLength, pointInBezierPath, distanceToBezierPath, countPathSegments } from '@pixerate/editor/canvas';
44
46
  // Clock and view helpers from core
45
47
  export { realClock, ManualClock, layoutBounds, canvasHeight, estimateCanvasHeight, blendLayout, connectedOnly } from '@pixerate/editor/canvas';
48
+ // Auto layout (Figma-style stacks, wrap, grid, hug / fill / fixed) and constraints
49
+ export { layoutFrame, layoutAll, layoutUp, layoutUpMany, applyConstraints, getAutoLayout, getChildLayout, getLayoutSizing, getAutoLayoutGrid, getAutoLayoutInsertTarget, getFlowChildren, getLayoutParent, isAutoLayoutFrame, makeSizingCoherent, moveLayoutChild, mergeNodeUpdates, relayoutUpdates, resolvePadding, clampLayoutSize, createCanvasAutoLayoutController, AUTO_LAYOUT_DATA_KEY, CHILD_LAYOUT_DATA_KEY } from '@pixerate/editor/canvas';
50
+ export { createCanvasAutoLayout } from './createCanvasAutoLayout.svelte.js';
51
+ // Design tokens: bindings, per-frame modes and inspector controls
52
+ export { createCanvasTokens } from './createCanvasTokens.svelte.js';
53
+ export { default as TokenBindingPicker } from './TokenBindingPicker.svelte';
54
+ export { default as TokenModeSwitcher } from './TokenModeSwitcher.svelte';
55
+ export { bindCanvasToken, setCanvasTokenMode, resolveCanvasTokens, detachTokenBindings, pruneCanvasTokenModes, inspectNodeTokens, getNodeTokenBindings, getNodeTokenModes, getEffectiveTokenModes, getBindableTokenProperties, getCanvasTokenProperty, getTokenPropertyScope, getTokensForProperty, readNodeStyleProperty, writeNodeStyleProperty, CANVAS_TOKEN_PROPERTIES, TOKEN_BINDINGS_DATA_KEY, TOKEN_MODES_DATA_KEY } from '@pixerate/editor/canvas';
@@ -1,5 +1,5 @@
1
1
  import type { Editor } from "@tiptap/core";
2
- import { type FileImportControllerOptions } from "@pixerate/editor";
2
+ import { type FileImportControllerOptions, type ImportStructureSummary } from "@pixerate/editor";
3
3
  /**
4
4
  * Imports markdown, HTML, plain-text and RTF files (or anything registered
5
5
  * with `registerImportAdapter` for the `document` target) into an editor,
@@ -13,6 +13,13 @@ export declare function createFileImport(getEditor: () => Editor | null | undefi
13
13
  readonly isImporting: boolean;
14
14
  readonly error: Error | null;
15
15
  readonly lastOutcomes: import("@pixerate/editor").ImportOutcome<import("@pixerate/editor").DocumentImport>[];
16
+ /**
17
+ * Structures detected in the last import (headings, lists, tables,
18
+ * columns), or `null` when no adapter reported any (only structure-aware
19
+ * adapters such as PDF do). Turn PDF detection off with
20
+ * `setOptions({ adapterOptions: { pdf: { structure: false } } })`.
21
+ */
22
+ readonly structureSummary: ImportStructureSummary | null;
16
23
  /** Value for `<input type="file" accept={…}>`. */
17
24
  readonly accept: string;
18
25
  /** Opens the browser file picker and imports the chosen files at the selection. */
@@ -1 +1 @@
1
- {"version":3,"file":"fileImport.svelte.d.ts","sourceRoot":"","sources":["../src/fileImport.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAEL,KAAK,2BAA2B,EAEjC,MAAM,kBAAkB,CAAC;AAE1B;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,EAC1C,OAAO,GAAE,2BAAgC;;;;IAqBvC,kDAAkD;;IAIlD,mFAAmF;;IAEnF,0FAA0F;;uBAEvE,2BAA2B;EAEjD;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"fileImport.svelte.d.ts","sourceRoot":"","sources":["../src/fileImport.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAGL,KAAK,2BAA2B,EAEhC,KAAK,sBAAsB,EAC5B,MAAM,kBAAkB,CAAC;AAE1B;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,EAC1C,OAAO,GAAE,2BAAgC;;;;IAsBvC;;;;;OAKG;+BACqB,sBAAsB,GAAG,IAAI;IAGrD,kDAAkD;;IAIlD,mFAAmF;;IAEnF,0FAA0F;;uBAEvE,2BAA2B;EAEjD;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { FileImportController, } from "@pixerate/editor";
1
+ import { FileImportController, summarizeImportStructure, } from "@pixerate/editor";
2
2
  /**
3
3
  * Imports markdown, HTML, plain-text and RTF files (or anything registered
4
4
  * with `registerImportAdapter` for the `document` target) into an editor,
@@ -14,6 +14,7 @@ export function createFileImport(getEditor, options = {}) {
14
14
  return editor && !editor.isDestroyed ? editor : null;
15
15
  }, options);
16
16
  let state = $state(controller.getState());
17
+ let summary = $derived(summarizeImportStructure(state.lastOutcomes));
17
18
  controller.subscribe((next) => {
18
19
  state = next;
19
20
  });
@@ -27,6 +28,15 @@ export function createFileImport(getEditor, options = {}) {
27
28
  get lastOutcomes() {
28
29
  return state.lastOutcomes;
29
30
  },
31
+ /**
32
+ * Structures detected in the last import (headings, lists, tables,
33
+ * columns), or `null` when no adapter reported any (only structure-aware
34
+ * adapters such as PDF do). Turn PDF detection off with
35
+ * `setOptions({ adapterOptions: { pdf: { structure: false } } })`.
36
+ */
37
+ get structureSummary() {
38
+ return summary;
39
+ },
30
40
  /** Value for `<input type="file" accept={…}>`. */
31
41
  get accept() {
32
42
  return controller.accept;