dishui 0.0.45 → 0.0.46

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 (60) hide show
  1. package/dist/chart.js +46 -0
  2. package/dist/components/Chart/Chart.d.ts +17 -0
  3. package/dist/components/Chart/Chart.js +29 -0
  4. package/dist/components/Chart/Chart.js.map +1 -0
  5. package/dist/components/Chart/index.d.ts +15 -0
  6. package/dist/components/Input/index.js +2 -2
  7. package/dist/components/Input/index.js.map +1 -1
  8. package/dist/components/Select/index.js +1 -1
  9. package/dist/components/Select/index.js.map +1 -1
  10. package/dist/components/pro/Flow/Flow.js +492 -392
  11. package/dist/components/pro/Flow/Flow.js.map +1 -1
  12. package/dist/components/pro/Flow/FlowCanvas.js +895 -864
  13. package/dist/components/pro/Flow/FlowCanvas.js.map +1 -1
  14. package/dist/components/pro/Flow/context/FlowUIContext.d.ts +2 -0
  15. package/dist/components/pro/Flow/context/FlowUIContext.js +68 -65
  16. package/dist/components/pro/Flow/context/FlowUIContext.js.map +1 -1
  17. package/dist/components/pro/Flow/edges/edgePaths.js +234 -216
  18. package/dist/components/pro/Flow/edges/edgePaths.js.map +1 -1
  19. package/dist/components/pro/Flow/hooks/useKeyboardShortcuts.js +21 -10
  20. package/dist/components/pro/Flow/hooks/useKeyboardShortcuts.js.map +1 -1
  21. package/dist/components/pro/Flow/hooks/useMindMap.js +138 -134
  22. package/dist/components/pro/Flow/hooks/useMindMap.js.map +1 -1
  23. package/dist/components/pro/Flow/index.d.ts +1 -1
  24. package/dist/components/pro/Flow/nodes/MediaContent.js +47 -25
  25. package/dist/components/pro/Flow/nodes/MediaContent.js.map +1 -1
  26. package/dist/components/pro/Flow/nodes/Model3DView.d.ts +7 -0
  27. package/dist/components/pro/Flow/nodes/Model3DView.js +118 -0
  28. package/dist/components/pro/Flow/nodes/Model3DView.js.map +1 -0
  29. package/dist/components/pro/Flow/nodes/NodeHandles.d.ts +2 -1
  30. package/dist/components/pro/Flow/nodes/NodeHandles.js +4 -2
  31. package/dist/components/pro/Flow/nodes/NodeHandles.js.map +1 -1
  32. package/dist/components/pro/Flow/nodes/NodeRenderer.d.ts +2 -0
  33. package/dist/components/pro/Flow/nodes/NodeRenderer.js +115 -113
  34. package/dist/components/pro/Flow/nodes/NodeRenderer.js.map +1 -1
  35. package/dist/components/pro/Flow/nodes/NodeText.d.ts +3 -0
  36. package/dist/components/pro/Flow/nodes/NodeText.js +26 -17
  37. package/dist/components/pro/Flow/nodes/NodeText.js.map +1 -1
  38. package/dist/components/pro/Flow/panels/FlowToolbar.js +85 -79
  39. package/dist/components/pro/Flow/panels/FlowToolbar.js.map +1 -1
  40. package/dist/components/pro/Flow/panels/InspectorPanel.js +618 -488
  41. package/dist/components/pro/Flow/panels/InspectorPanel.js.map +1 -1
  42. package/dist/components/pro/Flow/panels/OutlinePanel.js +15 -15
  43. package/dist/components/pro/Flow/panels/OutlinePanel.js.map +1 -1
  44. package/dist/components/pro/Flow/panels/ShapePalette.js +71 -55
  45. package/dist/components/pro/Flow/panels/ShapePalette.js.map +1 -1
  46. package/dist/components/pro/Flow/panels/toolbarIcons.d.ts +1 -0
  47. package/dist/components/pro/Flow/panels/toolbarIcons.js +59 -41
  48. package/dist/components/pro/Flow/panels/toolbarIcons.js.map +1 -1
  49. package/dist/components/pro/Flow/types.d.ts +13 -4
  50. package/dist/components/pro/Flow/types.js.map +1 -1
  51. package/dist/dishui.css +1 -1
  52. package/dist/index-nostyled.d.ts +3 -1
  53. package/dist/index.d.ts +3 -1
  54. package/dist/index.js +145 -143
  55. package/dist/utils/i18n.d.ts +1 -0
  56. package/dist/utils/i18n.js +200 -6
  57. package/dist/utils/i18n.js.map +1 -1
  58. package/dist/utils/menu.js +26 -10
  59. package/dist/utils/menu.js.map +1 -1
  60. package/package.json +14 -3
@@ -12,16 +12,33 @@ var t = {
12
12
  }, o = () => /* @__PURE__ */ h("svg", {
13
13
  ...t,
14
14
  "aria-hidden": "true",
15
- children: [/* @__PURE__ */ r("path", { d: "M19 12H5" }), /* @__PURE__ */ r("path", { d: "M11 18l-6-6 6-6" })]
15
+ children: [
16
+ /* @__PURE__ */ r("circle", {
17
+ cx: "12",
18
+ cy: "12",
19
+ r: "6"
20
+ }),
21
+ /* @__PURE__ */ r("circle", {
22
+ cx: "12",
23
+ cy: "12",
24
+ r: "2"
25
+ }),
26
+ /* @__PURE__ */ r("path", { d: "M4 12H2M22 12h-2M12 4V2M12 22v-2" }),
27
+ /* @__PURE__ */ r("path", { d: "M17.5 5.5l1-1M5.5 17.5l-1 1" })
28
+ ]
16
29
  }), v = () => /* @__PURE__ */ h("svg", {
17
30
  ...t,
18
31
  "aria-hidden": "true",
19
- children: [/* @__PURE__ */ r("path", { d: "M9 14L4 9l5-5" }), /* @__PURE__ */ r("path", { d: "M4 9h11a5 5 0 0 1 0 10h-4" })]
32
+ children: [/* @__PURE__ */ r("path", { d: "M19 12H5" }), /* @__PURE__ */ r("path", { d: "M11 18l-6-6 6-6" })]
20
33
  }), l = () => /* @__PURE__ */ h("svg", {
34
+ ...t,
35
+ "aria-hidden": "true",
36
+ children: [/* @__PURE__ */ r("path", { d: "M9 14L4 9l5-5" }), /* @__PURE__ */ r("path", { d: "M4 9h11a5 5 0 0 1 0 10h-4" })]
37
+ }), M = () => /* @__PURE__ */ h("svg", {
21
38
  ...t,
22
39
  "aria-hidden": "true",
23
40
  children: [/* @__PURE__ */ r("path", { d: "M15 14l5-5-5-5" }), /* @__PURE__ */ r("path", { d: "M20 9H9a5 5 0 0 0 0 10h4" })]
24
- }), g = () => /* @__PURE__ */ h("svg", {
41
+ }), x = () => /* @__PURE__ */ h("svg", {
25
42
  ...t,
26
43
  "aria-hidden": "true",
27
44
  children: [
@@ -44,7 +61,7 @@ var t = {
44
61
  strokeDasharray: "2 2"
45
62
  })
46
63
  ]
47
- }), x = () => /* @__PURE__ */ h("svg", {
64
+ }), g = () => /* @__PURE__ */ h("svg", {
48
65
  ...t,
49
66
  "aria-hidden": "true",
50
67
  children: [
@@ -71,7 +88,7 @@ var t = {
71
88
  rx: "0.5"
72
89
  })
73
90
  ]
74
- }), M = () => /* @__PURE__ */ h("svg", {
91
+ }), p = () => /* @__PURE__ */ h("svg", {
75
92
  ...t,
76
93
  "aria-hidden": "true",
77
94
  children: [
@@ -91,7 +108,7 @@ var t = {
91
108
  }),
92
109
  /* @__PURE__ */ r("path", { d: "M14 5h5M17 3v4" })
93
110
  ]
94
- }), p = ({ kind: e }) => e === "left" || e === "center-h" || e === "right" ? /* @__PURE__ */ h("svg", {
111
+ }), s = ({ kind: e }) => e === "left" || e === "center-h" || e === "right" ? /* @__PURE__ */ h("svg", {
95
112
  ...t,
96
113
  "aria-hidden": "true",
97
114
  children: [
@@ -163,7 +180,7 @@ var t = {
163
180
  height: "4"
164
181
  })
165
182
  ] })
166
- }), s = () => /* @__PURE__ */ h("svg", {
183
+ }), u = () => /* @__PURE__ */ h("svg", {
167
184
  ...t,
168
185
  "aria-hidden": "true",
169
186
  children: [/* @__PURE__ */ r("circle", {
@@ -171,7 +188,7 @@ var t = {
171
188
  cy: "11",
172
189
  r: "7"
173
190
  }), /* @__PURE__ */ r("path", { d: "M21 21l-4.3-4.3M8 11h6" })]
174
- }), u = () => /* @__PURE__ */ h("svg", {
191
+ }), y = () => /* @__PURE__ */ h("svg", {
175
192
  ...t,
176
193
  "aria-hidden": "true",
177
194
  children: [/* @__PURE__ */ r("circle", {
@@ -179,7 +196,7 @@ var t = {
179
196
  cy: "11",
180
197
  r: "7"
181
198
  }), /* @__PURE__ */ r("path", { d: "M21 21l-4.3-4.3M11 8v6M8 11h6" })]
182
- }), y = () => /* @__PURE__ */ h("svg", {
199
+ }), I = () => /* @__PURE__ */ h("svg", {
183
200
  ...t,
184
201
  "aria-hidden": "true",
185
202
  children: [/* @__PURE__ */ r("path", { d: "M4 9V5a1 1 0 0 1 1-1h4M15 4h4a1 1 0 0 1 1 1v4M20 15v4a1 1 0 0 1-1 1h-4M9 20H5a1 1 0 0 1-1-1v-4" }), /* @__PURE__ */ r("rect", {
@@ -207,7 +224,7 @@ var t = {
207
224
  }),
208
225
  /* @__PURE__ */ r("path", { d: "M13 21l4-7 4 7z" })
209
226
  ]
210
- }), I = () => /* @__PURE__ */ h("svg", {
227
+ }), m = () => /* @__PURE__ */ h("svg", {
211
228
  ...t,
212
229
  "aria-hidden": "true",
213
230
  children: [/* @__PURE__ */ r("circle", {
@@ -215,15 +232,15 @@ var t = {
215
232
  cy: "12",
216
233
  r: "3"
217
234
  }), /* @__PURE__ */ r("path", { d: "M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z" })]
218
- }), m = () => /* @__PURE__ */ r("svg", {
235
+ }), f = () => /* @__PURE__ */ r("svg", {
219
236
  ...t,
220
237
  "aria-hidden": "true",
221
238
  children: /* @__PURE__ */ r("path", { d: "M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01" })
222
- }), f = () => /* @__PURE__ */ h("svg", {
239
+ }), b = () => /* @__PURE__ */ h("svg", {
223
240
  ...t,
224
241
  "aria-hidden": "true",
225
242
  children: [/* @__PURE__ */ r("path", { d: "M8 4H7a2 2 0 0 0-2 2v3a2 2 0 0 1-2 2 2 2 0 0 1 2 2v3a2 2 0 0 0 2 2h1" }), /* @__PURE__ */ r("path", { d: "M16 4h1a2 2 0 0 1 2 2v3a2 2 0 0 0 2 2 2 2 0 0 0-2 2v3a2 2 0 0 1-2 2h-1" })]
226
- }), b = () => /* @__PURE__ */ h("svg", {
243
+ }), H = () => /* @__PURE__ */ h("svg", {
227
244
  ...t,
228
245
  "aria-hidden": "true",
229
246
  children: [/* @__PURE__ */ r("rect", {
@@ -233,7 +250,7 @@ var t = {
233
250
  height: "18",
234
251
  rx: "2"
235
252
  }), /* @__PURE__ */ r("path", { d: "M9 3v18M15 3v18M3 9h18M3 15h18" })]
236
- }), H = () => /* @__PURE__ */ h("svg", {
253
+ }), V = () => /* @__PURE__ */ h("svg", {
237
254
  ...t,
238
255
  "aria-hidden": "true",
239
256
  children: [/* @__PURE__ */ r("rect", {
@@ -249,7 +266,7 @@ var t = {
249
266
  height: "6",
250
267
  rx: "1"
251
268
  })]
252
- }), V = () => /* @__PURE__ */ h("svg", {
269
+ }), z = () => /* @__PURE__ */ h("svg", {
253
270
  ...t,
254
271
  "aria-hidden": "true",
255
272
  children: [
@@ -257,7 +274,7 @@ var t = {
257
274
  /* @__PURE__ */ r("path", { d: "M8 11l4 4 4-4" }),
258
275
  /* @__PURE__ */ r("path", { d: "M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2" })
259
276
  ]
260
- }), z = () => /* @__PURE__ */ h("svg", {
277
+ }), A = () => /* @__PURE__ */ h("svg", {
261
278
  ...t,
262
279
  "aria-hidden": "true",
263
280
  children: [
@@ -265,11 +282,11 @@ var t = {
265
282
  /* @__PURE__ */ r("path", { d: "M8 7l4-4 4 4" }),
266
283
  /* @__PURE__ */ r("path", { d: "M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2" })
267
284
  ]
268
- }), A = () => /* @__PURE__ */ h("svg", {
285
+ }), G = () => /* @__PURE__ */ h("svg", {
269
286
  ...t,
270
287
  "aria-hidden": "true",
271
288
  children: [/* @__PURE__ */ r("path", { d: "M22 2 11 13" }), /* @__PURE__ */ r("path", { d: "M22 2 15 22l-4-9-9-4 20-7z" })]
272
- }), G = () => /* @__PURE__ */ h("svg", {
289
+ }), L = () => /* @__PURE__ */ h("svg", {
273
290
  ...t,
274
291
  "aria-hidden": "true",
275
292
  children: [
@@ -288,7 +305,7 @@ var t = {
288
305
  /* @__PURE__ */ r("path", { d: "M4 17l5-5 3 3 2-2 6 6" }),
289
306
  /* @__PURE__ */ r("path", { d: "M16 3v7m-3-3 3 3 3-3" })
290
307
  ]
291
- }), L = ({ visible: e = !0 }) => /* @__PURE__ */ h("svg", {
308
+ }), j = ({ visible: e = !0 }) => /* @__PURE__ */ h("svg", {
292
309
  ...t,
293
310
  "aria-hidden": "true",
294
311
  children: [
@@ -309,7 +326,7 @@ var t = {
309
326
  }),
310
327
  e ? /* @__PURE__ */ r("path", { d: "M2 12s3.5-5 10-5 10 5 10 5-3.5 5-10 5S2 12 2 12zM12 10a2 2 0 1 0 0 4 2 2 0 0 0 0-4z" }) : /* @__PURE__ */ r("path", { d: "M3 3l18 18" })
311
328
  ]
312
- }), j = () => /* @__PURE__ */ h("svg", {
329
+ }), C = () => /* @__PURE__ */ h("svg", {
313
330
  ...t,
314
331
  "aria-hidden": "true",
315
332
  children: [
@@ -329,28 +346,29 @@ var t = {
329
346
  ]
330
347
  });
331
348
  export {
332
- p as IconAlign,
333
- L as IconAnchorVisible,
334
- o as IconBack,
335
- z as IconExport,
336
- G as IconExportImage,
337
- y as IconFitView,
338
- x as IconGeoGroup,
339
- b as IconGrid,
340
- g as IconGroup,
341
- V as IconImport,
342
- I as IconInspector,
343
- f as IconJson,
344
- H as IconMiniMap,
345
- m as IconOutline,
346
- j as IconPresent,
347
- A as IconPublish,
348
- l as IconRedo,
349
+ s as IconAlign,
350
+ j as IconAnchorVisible,
351
+ o as IconAutoFocus,
352
+ v as IconBack,
353
+ A as IconExport,
354
+ L as IconExportImage,
355
+ I as IconFitView,
356
+ g as IconGeoGroup,
357
+ H as IconGrid,
358
+ x as IconGroup,
359
+ z as IconImport,
360
+ m as IconInspector,
361
+ b as IconJson,
362
+ V as IconMiniMap,
363
+ f as IconOutline,
364
+ C as IconPresent,
365
+ G as IconPublish,
366
+ M as IconRedo,
349
367
  w as IconShapes,
350
- v as IconUndo,
351
- M as IconUngroup,
352
- u as IconZoomIn,
353
- s as IconZoomOut
368
+ l as IconUndo,
369
+ p as IconUngroup,
370
+ y as IconZoomIn,
371
+ u as IconZoomOut
354
372
  };
355
373
 
356
374
  //# sourceMappingURL=toolbarIcons.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolbarIcons.js","names":[],"sources":["../../../../../src/components/pro/Flow/panels/toolbarIcons.tsx"],"sourcesContent":["import React from 'react';\n\n/**\n * Toolbar icon set for the Flow editor.\n * Compact 20x20 stroke icons that inherit `currentColor`, so they follow the\n * button's variant (primary/ghost) automatically.\n */\n\nconst base = {\n width: 18,\n height: 18,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: 'round' as const,\n strokeLinejoin: 'round' as const,\n};\n\nexport const IconSelect: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <path d=\"M4 3l7 17 2.5-6.5L20 11 4 3z\" />\n </svg>\n);\n\n\nexport const IconBack: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <path d=\"M19 12H5\" />\n <path d=\"M11 18l-6-6 6-6\" />\n </svg>\n);\n\nexport const IconUndo: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <path d=\"M9 14L4 9l5-5\" />\n <path d=\"M4 9h11a5 5 0 0 1 0 10h-4\" />\n </svg>\n);\n\nexport const IconRedo: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <path d=\"M15 14l5-5-5-5\" />\n <path d=\"M20 9H9a5 5 0 0 0 0 10h4\" />\n </svg>\n);\n\nexport const IconGroup: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <rect x=\"3\" y=\"3\" width=\"8\" height=\"8\" rx=\"1\" />\n <rect x=\"13\" y=\"13\" width=\"8\" height=\"8\" rx=\"1\" />\n <path d=\"M13 6h4a1 1 0 0 1 1 1v4\" strokeDasharray=\"2 2\" />\n </svg>\n);\n\nexport const IconGeoGroup: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" strokeDasharray=\"3 3\" />\n <rect x=\"7\" y=\"7\" width=\"4\" height=\"4\" rx=\"0.5\" />\n <rect x=\"13\" y=\"13\" width=\"4\" height=\"4\" rx=\"0.5\" />\n </svg>\n);\n\nexport const IconUngroup: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\" />\n <rect x=\"14\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\" />\n <path d=\"M14 5h5M17 3v4\" />\n </svg>\n);\n\nexport type AlignIconKind = 'left' | 'center-h' | 'right' | 'top' | 'center-v' | 'bottom' | 'distribute-h' | 'distribute-v';\n\nexport const IconAlign: React.FC<{ kind: AlignIconKind }> = ({ kind }) => {\n const vertical = kind === 'left' || kind === 'center-h' || kind === 'right';\n if (vertical) {\n const x = kind === 'left' ? 5 : kind === 'right' ? 19 : 12;\n return (\n <svg {...base} aria-hidden=\"true\">\n <path d={`M${x} 3v18`} />\n <rect x={kind === 'left' ? 5 : kind === 'right' ? 10 : 7} y=\"5\" width=\"9\" height=\"4\" rx=\"0.5\" />\n <rect x={kind === 'left' ? 5 : kind === 'right' ? 5 : 4} y=\"14\" width=\"14\" height=\"4\" rx=\"0.5\" />\n </svg>\n );\n }\n if (kind === 'top' || kind === 'center-v' || kind === 'bottom') {\n const y = kind === 'top' ? 5 : kind === 'bottom' ? 19 : 12;\n return (\n <svg {...base} aria-hidden=\"true\">\n <path d={`M3 ${y}h18`} />\n <rect x=\"5\" y={kind === 'top' ? 5 : kind === 'bottom' ? 10 : 7} width=\"4\" height=\"9\" rx=\"0.5\" />\n <rect x=\"14\" y={kind === 'top' ? 5 : kind === 'bottom' ? 5 : 4} width=\"4\" height=\"14\" rx=\"0.5\" />\n </svg>\n );\n }\n return (\n <svg {...base} aria-hidden=\"true\">\n {kind === 'distribute-h' ? (\n <><path d=\"M3 3v18M21 3v18\" /><rect x=\"6\" y=\"7\" width=\"4\" height=\"10\" /><rect x=\"14\" y=\"7\" width=\"4\" height=\"10\" /></>\n ) : (\n <><path d=\"M3 3h18M3 21h18\" /><rect x=\"7\" y=\"6\" width=\"10\" height=\"4\" /><rect x=\"7\" y=\"14\" width=\"10\" height=\"4\" /></>\n )}\n </svg>\n );\n};\n\nexport const IconZoomOut: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <circle cx=\"11\" cy=\"11\" r=\"7\" />\n <path d=\"M21 21l-4.3-4.3M8 11h6\" />\n </svg>\n);\n\nexport const IconZoomIn: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <circle cx=\"11\" cy=\"11\" r=\"7\" />\n <path d=\"M21 21l-4.3-4.3M11 8v6M8 11h6\" />\n </svg>\n);\n\nexport const IconFitView: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <path d=\"M4 9V5a1 1 0 0 1 1-1h4M15 4h4a1 1 0 0 1 1 1v4M20 15v4a1 1 0 0 1-1 1h-4M9 20H5a1 1 0 0 1-1-1v-4\" />\n <rect x=\"9\" y=\"9\" width=\"6\" height=\"6\" rx=\"1\" />\n </svg>\n);\n\nexport const IconShapes: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <rect x=\"3\" y=\"13\" width=\"8\" height=\"8\" rx=\"1\" />\n <circle cx=\"17\" cy=\"7\" r=\"4\" />\n <path d=\"M13 21l4-7 4 7z\" />\n </svg>\n);\n\nexport const IconInspector: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n <path d=\"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z\" />\n </svg>\n);\n\nexport const IconOutline: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <path d=\"M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01\" />\n </svg>\n);\n\nexport const IconJson: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <path d=\"M8 4H7a2 2 0 0 0-2 2v3a2 2 0 0 1-2 2 2 2 0 0 1 2 2v3a2 2 0 0 0 2 2h1\" />\n <path d=\"M16 4h1a2 2 0 0 1 2 2v3a2 2 0 0 0 2 2 2 2 0 0 0-2 2v3a2 2 0 0 1-2 2h-1\" />\n </svg>\n);\n\nexport const IconGrid: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" />\n <path d=\"M9 3v18M15 3v18M3 9h18M3 15h18\" />\n </svg>\n);\n\nexport const IconMiniMap: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"16\" rx=\"2\" />\n <rect x=\"13\" y=\"12\" width=\"6\" height=\"6\" rx=\"1\" />\n </svg>\n);\n\nexport const IconImport: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <path d=\"M12 3v12\" />\n <path d=\"M8 11l4 4 4-4\" />\n <path d=\"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2\" />\n </svg>\n);\n\nexport const IconExport: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <path d=\"M12 15V3\" />\n <path d=\"M8 7l4-4 4 4\" />\n <path d=\"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2\" />\n </svg>\n);\n\nexport const IconPublish: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <path d=\"M22 2 11 13\" />\n <path d=\"M22 2 15 22l-4-9-9-4 20-7z\" />\n </svg>\n);\n\nexport const IconExportImage: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"16\" rx=\"2\" />\n <circle cx=\"9\" cy=\"9\" r=\"1.5\" />\n <path d=\"M4 17l5-5 3 3 2-2 6 6\" />\n <path d=\"M16 3v7m-3-3 3 3 3-3\" />\n </svg>\n);\n\nexport const IconAnchorVisible: React.FC<{ visible?: boolean }> = ({ visible = true }) => (\n <svg {...base} aria-hidden=\"true\">\n <rect x=\"4\" y=\"5\" width=\"16\" height=\"14\" rx=\"2\" strokeDasharray=\"3 2\" />\n <circle cx=\"4\" cy=\"5\" r=\"2\" fill=\"currentColor\" stroke=\"none\" />\n {visible ? (\n <path d=\"M2 12s3.5-5 10-5 10 5 10 5-3.5 5-10 5S2 12 2 12zM12 10a2 2 0 1 0 0 4 2 2 0 0 0 0-4z\" />\n ) : (\n <path d=\"M3 3l18 18\" />\n )}\n </svg>\n);\n\nexport const IconPresent: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <rect x=\"2\" y=\"4\" width=\"20\" height=\"13\" rx=\"2\" />\n <path d=\"M10 8.5l4.5 2.5L10 13.5z\" fill=\"currentColor\" stroke=\"none\" />\n <path d=\"M12 17v3M8 20h8\" />\n </svg>\n);\n"],"mappings":"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"}
1
+ {"version":3,"file":"toolbarIcons.js","names":[],"sources":["../../../../../src/components/pro/Flow/panels/toolbarIcons.tsx"],"sourcesContent":["import React from 'react';\n\n/**\n * Toolbar icon set for the Flow editor.\n * Compact 20x20 stroke icons that inherit `currentColor`, so they follow the\n * button's variant (primary/ghost) automatically.\n */\n\nconst base = {\n width: 18,\n height: 18,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: 'round' as const,\n strokeLinejoin: 'round' as const,\n};\n\nexport const IconSelect: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <path d=\"M4 3l7 17 2.5-6.5L20 11 4 3z\" />\n </svg>\n);\n\n\nexport const IconAutoFocus: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"12\" r=\"6\" />\n <circle cx=\"12\" cy=\"12\" r=\"2\" />\n <path d=\"M4 12H2M22 12h-2M12 4V2M12 22v-2\" />\n <path d=\"M17.5 5.5l1-1M5.5 17.5l-1 1\" />\n </svg>\n);\n\nexport const IconBack: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <path d=\"M19 12H5\" />\n <path d=\"M11 18l-6-6 6-6\" />\n </svg>\n);\n\nexport const IconUndo: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <path d=\"M9 14L4 9l5-5\" />\n <path d=\"M4 9h11a5 5 0 0 1 0 10h-4\" />\n </svg>\n);\n\nexport const IconRedo: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <path d=\"M15 14l5-5-5-5\" />\n <path d=\"M20 9H9a5 5 0 0 0 0 10h4\" />\n </svg>\n);\n\nexport const IconGroup: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <rect x=\"3\" y=\"3\" width=\"8\" height=\"8\" rx=\"1\" />\n <rect x=\"13\" y=\"13\" width=\"8\" height=\"8\" rx=\"1\" />\n <path d=\"M13 6h4a1 1 0 0 1 1 1v4\" strokeDasharray=\"2 2\" />\n </svg>\n);\n\nexport const IconGeoGroup: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" strokeDasharray=\"3 3\" />\n <rect x=\"7\" y=\"7\" width=\"4\" height=\"4\" rx=\"0.5\" />\n <rect x=\"13\" y=\"13\" width=\"4\" height=\"4\" rx=\"0.5\" />\n </svg>\n);\n\nexport const IconUngroup: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\" />\n <rect x=\"14\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\" />\n <path d=\"M14 5h5M17 3v4\" />\n </svg>\n);\n\nexport type AlignIconKind = 'left' | 'center-h' | 'right' | 'top' | 'center-v' | 'bottom' | 'distribute-h' | 'distribute-v';\n\nexport const IconAlign: React.FC<{ kind: AlignIconKind }> = ({ kind }) => {\n const vertical = kind === 'left' || kind === 'center-h' || kind === 'right';\n if (vertical) {\n const x = kind === 'left' ? 5 : kind === 'right' ? 19 : 12;\n return (\n <svg {...base} aria-hidden=\"true\">\n <path d={`M${x} 3v18`} />\n <rect x={kind === 'left' ? 5 : kind === 'right' ? 10 : 7} y=\"5\" width=\"9\" height=\"4\" rx=\"0.5\" />\n <rect x={kind === 'left' ? 5 : kind === 'right' ? 5 : 4} y=\"14\" width=\"14\" height=\"4\" rx=\"0.5\" />\n </svg>\n );\n }\n if (kind === 'top' || kind === 'center-v' || kind === 'bottom') {\n const y = kind === 'top' ? 5 : kind === 'bottom' ? 19 : 12;\n return (\n <svg {...base} aria-hidden=\"true\">\n <path d={`M3 ${y}h18`} />\n <rect x=\"5\" y={kind === 'top' ? 5 : kind === 'bottom' ? 10 : 7} width=\"4\" height=\"9\" rx=\"0.5\" />\n <rect x=\"14\" y={kind === 'top' ? 5 : kind === 'bottom' ? 5 : 4} width=\"4\" height=\"14\" rx=\"0.5\" />\n </svg>\n );\n }\n return (\n <svg {...base} aria-hidden=\"true\">\n {kind === 'distribute-h' ? (\n <><path d=\"M3 3v18M21 3v18\" /><rect x=\"6\" y=\"7\" width=\"4\" height=\"10\" /><rect x=\"14\" y=\"7\" width=\"4\" height=\"10\" /></>\n ) : (\n <><path d=\"M3 3h18M3 21h18\" /><rect x=\"7\" y=\"6\" width=\"10\" height=\"4\" /><rect x=\"7\" y=\"14\" width=\"10\" height=\"4\" /></>\n )}\n </svg>\n );\n};\n\nexport const IconZoomOut: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <circle cx=\"11\" cy=\"11\" r=\"7\" />\n <path d=\"M21 21l-4.3-4.3M8 11h6\" />\n </svg>\n);\n\nexport const IconZoomIn: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <circle cx=\"11\" cy=\"11\" r=\"7\" />\n <path d=\"M21 21l-4.3-4.3M11 8v6M8 11h6\" />\n </svg>\n);\n\nexport const IconFitView: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <path d=\"M4 9V5a1 1 0 0 1 1-1h4M15 4h4a1 1 0 0 1 1 1v4M20 15v4a1 1 0 0 1-1 1h-4M9 20H5a1 1 0 0 1-1-1v-4\" />\n <rect x=\"9\" y=\"9\" width=\"6\" height=\"6\" rx=\"1\" />\n </svg>\n);\n\nexport const IconShapes: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <rect x=\"3\" y=\"13\" width=\"8\" height=\"8\" rx=\"1\" />\n <circle cx=\"17\" cy=\"7\" r=\"4\" />\n <path d=\"M13 21l4-7 4 7z\" />\n </svg>\n);\n\nexport const IconInspector: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n <path d=\"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z\" />\n </svg>\n);\n\nexport const IconOutline: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <path d=\"M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01\" />\n </svg>\n);\n\nexport const IconJson: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <path d=\"M8 4H7a2 2 0 0 0-2 2v3a2 2 0 0 1-2 2 2 2 0 0 1 2 2v3a2 2 0 0 0 2 2h1\" />\n <path d=\"M16 4h1a2 2 0 0 1 2 2v3a2 2 0 0 0 2 2 2 2 0 0 0-2 2v3a2 2 0 0 1-2 2h-1\" />\n </svg>\n);\n\nexport const IconGrid: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" />\n <path d=\"M9 3v18M15 3v18M3 9h18M3 15h18\" />\n </svg>\n);\n\nexport const IconMiniMap: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"16\" rx=\"2\" />\n <rect x=\"13\" y=\"12\" width=\"6\" height=\"6\" rx=\"1\" />\n </svg>\n);\n\nexport const IconImport: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <path d=\"M12 3v12\" />\n <path d=\"M8 11l4 4 4-4\" />\n <path d=\"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2\" />\n </svg>\n);\n\nexport const IconExport: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <path d=\"M12 15V3\" />\n <path d=\"M8 7l4-4 4 4\" />\n <path d=\"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2\" />\n </svg>\n);\n\nexport const IconPublish: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <path d=\"M22 2 11 13\" />\n <path d=\"M22 2 15 22l-4-9-9-4 20-7z\" />\n </svg>\n);\n\nexport const IconExportImage: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"16\" rx=\"2\" />\n <circle cx=\"9\" cy=\"9\" r=\"1.5\" />\n <path d=\"M4 17l5-5 3 3 2-2 6 6\" />\n <path d=\"M16 3v7m-3-3 3 3 3-3\" />\n </svg>\n);\n\nexport const IconAnchorVisible: React.FC<{ visible?: boolean }> = ({ visible = true }) => (\n <svg {...base} aria-hidden=\"true\">\n <rect x=\"4\" y=\"5\" width=\"16\" height=\"14\" rx=\"2\" strokeDasharray=\"3 2\" />\n <circle cx=\"4\" cy=\"5\" r=\"2\" fill=\"currentColor\" stroke=\"none\" />\n {visible ? (\n <path d=\"M2 12s3.5-5 10-5 10 5 10 5-3.5 5-10 5S2 12 2 12zM12 10a2 2 0 1 0 0 4 2 2 0 0 0 0-4z\" />\n ) : (\n <path d=\"M3 3l18 18\" />\n )}\n </svg>\n);\n\nexport const IconPresent: React.FC = () => (\n <svg {...base} aria-hidden=\"true\">\n <rect x=\"2\" y=\"4\" width=\"20\" height=\"13\" rx=\"2\" />\n <path d=\"M10 8.5l4.5 2.5L10 13.5z\" fill=\"currentColor\" stroke=\"none\" />\n <path d=\"M12 17v3M8 20h8\" />\n </svg>\n);\n"],"mappings":"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"}
@@ -1,7 +1,10 @@
1
1
  /** Arrow marker type for edges and lines */
2
2
  export type FlowEdgeMarkerKind = 'none' | 'arrow' | 'arrowclosed';
3
+ /** Label placement for SVG icon stamps. */
4
+ export type FlowIconLabelPlacement = 'top' | 'middle' | 'bottom' | 'left' | 'right';
3
5
  /** Media stamp kinds rendered via DOM overlay. */
4
- export type FlowMediaKind = 'markdown' | 'html' | 'mermaid' | 'math' | 'ai';
6
+ export type FlowMediaKind = 'markdown' | 'html' | 'mermaid' | 'math' | 'image' | 'model3d' | 'ai';
7
+ export type FlowModelFormat = 'stl' | 'obj' | '3mf';
5
8
  /** AI media node configuration (persisted subset). */
6
9
  export interface FlowAIConfig {
7
10
  /** API endpoint (OpenAI-compatible chat completions or Anthropic messages). */
@@ -107,12 +110,18 @@ export interface FlowNodeData {
107
110
  svgId?: string;
108
111
  /** Whether the SVG stamp draws a bordered box around the icon. */
109
112
  iconBox?: boolean;
110
- /** Label placement for SVG stamps: below the icon (default) or centered. */
111
- labelPlacement?: 'below' | 'center' | 'above';
113
+ /** Label placement for SVG stamps. Left/right use top-to-bottom vertical text. */
114
+ labelPlacement?: FlowIconLabelPlacement;
115
+ /** Horizontal offset from the resolved icon label position, in canvas units. */
116
+ labelOffsetX?: number;
117
+ /** Vertical offset from the resolved icon label position, in canvas units. */
118
+ labelOffsetY?: number;
112
119
  /** Media node kind (for type 'mediaNode'). */
113
120
  mediaKind?: FlowMediaKind;
114
- /** Source content for the media node (markdown/html/mermaid/latex text). */
121
+ /** Source content or URL for the media node. */
115
122
  mediaContent?: string;
123
+ /** Explicit model format for 3D media nodes. */
124
+ modelFormat?: FlowModelFormat;
116
125
  /** AI media node configuration (serializable subset; secrets are runtime-only). */
117
126
  aiConfig?: FlowAIConfig;
118
127
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../src/components/pro/Flow/types.ts"],"sourcesContent":["/** Arrow marker type for edges and lines */\nexport type FlowEdgeMarkerKind = 'none' | 'arrow' | 'arrowclosed';\n\n/** Media stamp kinds rendered via DOM overlay. */\nexport type FlowMediaKind = 'markdown' | 'html' | 'mermaid' | 'math' | 'ai';\n\n/** AI media node configuration (persisted subset). */\nexport interface FlowAIConfig {\n /** API endpoint (OpenAI-compatible chat completions or Anthropic messages). */\n gateway: string;\n protocol: 'openai' | 'anthropic';\n model: string;\n /** API key. Persisted in the document; treat exported JSON as sensitive. */\n apiKey?: string;\n systemPrompt?: string;\n /** Extra request headers. */\n headers?: Record<string, string>;\n}\n\n/** Line style */\nexport type FlowEdgeLineStyle = 'solid' | 'dashed' | 'dotted' | 'dynamic';\n\n/** Dash density for dashed/dotted lines */\nexport type FlowEdgeDashDensity = 'sparse' | 'medium' | 'dense';\n\n/** Bezier control points for simplebezier edge segments (canvas coordinates) */\nexport interface FlowBezierControl {\n c1x: number;\n c1y: number;\n c2x: number;\n c2y: number;\n}\n\n/** Persisted edge styling on edge.data */\nexport interface FlowEdgeData {\n strokeColor?: string;\n strokeWidth?: number;\n lineStyle?: FlowEdgeLineStyle;\n dashDensity?: FlowEdgeDashDensity;\n markerStart?: FlowEdgeMarkerKind;\n markerEnd?: FlowEdgeMarkerKind;\n labelText?: string;\n labelFontSize?: number;\n labelFontFamily?: string;\n /** Play a source-to-target traveling gradient while in presentation mode. */\n animated?: boolean;\n /** Waypoints; absolute canvas coords unless waypointGroupId set */\n waypoints?: Array<{ x: number; y: number }>;\n waypointGroupId?: string;\n /**\n * Per-segment bezier controls for simplebezier type;\n * null entries use default computed controls.\n */\n bezierControls?: Array<FlowBezierControl | null> | null;\n}\n\n/** Edge type names */\nexport type FlowEdgeTypeName =\n | 'smoothstep'\n | 'step'\n | 'straight'\n | 'simplebezier';\n\n/** Border line style */\nexport type FlowBorderStyle = 'none' | 'solid' | 'dashed' | 'dotted' | 'dynamic';\n\n/** Gradient direction */\nexport type GradientDirection =\n | 'to-r'\n | 'to-l'\n | 'to-b'\n | 'to-t'\n | 'to-br'\n | 'to-tl'\n | 'to-tr'\n | 'to-bl';\n\n/** Group label placement */\nexport type FlowGroupLabelPlacement = 'top' | 'bottom' | 'left' | 'right';\nexport type FlowGroupLabelAlign = 'start' | 'center' | 'end';\n\nexport const FLOW_NODE_TYPES = [\n 'shapeRect',\n 'shapeRoundRect',\n 'shapeEllipse',\n 'shapeDiamond',\n 'shapeDocument',\n 'shapeParallelogram',\n 'shapeTriangle',\n 'shapeTrapezoid',\n 'shapePentagon',\n 'shapeHexagon',\n 'shapeStar',\n 'shapeHexagram',\n 'shapeRightTriangle',\n 'shapeCorner',\n 'textLabel',\n 'flowGroup',\n 'geometryGroup',\n 'dividerNode',\n 'arrowNode',\n 'polylineNode',\n 'shapeSvg',\n 'mediaNode',\n 'animAnchor',\n] as const;\n\nexport type FlowShapeType = (typeof FLOW_NODE_TYPES)[number];\n\n/** Custom key-value attribute on a node */\nexport interface FlowNodeAttribute {\n key: string;\n value: string;\n}\n\n/** Data stored on each flow node */\nexport interface FlowNodeData {\n label: string;\n fill: string;\n stroke: string;\n strokeWidth: number;\n color: string;\n fontSize: number;\n /**\n * Label/font color. When unset, falls back to `color` (legacy behavior where\n * a single color drove both the label and the SVG icon tint).\n */\n labelColor?: string;\n borderStyle?: FlowBorderStyle;\n rotation?: number;\n flipX?: boolean;\n flipY?: boolean;\n fillGradientTo?: string;\n fillGradientDirection?: GradientDirection;\n attributes?: FlowNodeAttribute[];\n childCanvasId?: string;\n isGroup?: boolean;\n groupBorderStyle?: FlowBorderStyle;\n groupLabelPlacement?: FlowGroupLabelPlacement;\n groupLabelAlign?: FlowGroupLabelAlign;\n groupLabelFill?: string;\n groupLabelRotation?: 0 | 90 | 180 | 270;\n groupLabelBgMode?: 'text' | 'full';\n dividerOrientation?: 'horizontal' | 'vertical';\n arrowDouble?: boolean;\n arrowBent?: boolean;\n arrowBendX?: number;\n arrowBendY?: number;\n polylineWaypoints?: Array<{ x: number; y: number }>;\n /** SVG stamp icon id (for type 'shapeSvg'). */\n svgId?: string;\n /** Whether the SVG stamp draws a bordered box around the icon. */\n iconBox?: boolean;\n /** Label placement for SVG stamps: below the icon (default) or centered. */\n labelPlacement?: 'below' | 'center' | 'above';\n /** Media node kind (for type 'mediaNode'). */\n mediaKind?: FlowMediaKind;\n /** Source content for the media node (markdown/html/mermaid/latex text). */\n mediaContent?: string;\n /** AI media node configuration (serializable subset; secrets are runtime-only). */\n aiConfig?: FlowAIConfig;\n /**\n * Stable creation index for `animAnchor` nodes, used to order slides. The\n * displayed sequence badge is derived from this ordering, so deleting an\n * anchor renumbers the rest automatically.\n */\n animIndex?: number;\n /** Marks nodes managed by Mindmap mode. */\n isMindMapNode?: boolean;\n /** Logical parent used by Mindmap auto-layout (separate from visual groups). */\n mindMapParentId?: string;\n}\n\n/** A flow node */\nexport interface FlowNode {\n id: string;\n type: FlowShapeType;\n position: { x: number; y: number };\n width: number;\n height: number;\n data: FlowNodeData;\n parentId?: string;\n zIndex?: number;\n}\n\n/** A flow edge (connection between nodes) */\nexport interface FlowEdge {\n id: string;\n source: string;\n target: string;\n sourceHandle?: string;\n targetHandle?: string;\n type: FlowEdgeTypeName;\n data: FlowEdgeData;\n}\n\n/** Independent line types */\nexport type FlowLineType = 'freehand' | 'straight' | 'polyline' | 'arrow';\n\n/** An independent line not attached to nodes */\nexport interface FlowLine {\n id: string;\n type: FlowLineType;\n points: Array<{ x: number; y: number }>;\n strokeColor: string;\n strokeWidth: number;\n lineStyle: FlowEdgeLineStyle;\n dashDensity?: FlowEdgeDashDensity;\n markerStart?: FlowEdgeMarkerKind;\n markerEnd?: FlowEdgeMarkerKind;\n closed?: boolean;\n zIndex?: number;\n parentId?: string;\n}\n\n/** Single canvas layer data */\nexport interface FlowCanvasData {\n nodes: FlowNode[];\n edges: FlowEdge[];\n lines: FlowLine[];\n}\n\n/** Multi-canvas document; root canvas id is 'root' */\nexport interface FlowDocument {\n canvases: Record<string, FlowCanvasData>;\n stack: string[];\n}\n\n/** Active tool modes */\nexport type FlowToolMode =\n | 'select'\n | 'pan'\n | 'connect'\n | 'freehand'\n | 'line'\n | 'polyline'\n | 'arrow';\n\n/** Viewport transform state */\nexport interface ViewportState {\n x: number;\n y: number;\n zoom: number;\n}\n\n/** Selection state */\nexport interface SelectionState {\n nodeIds: Set<string>;\n edgeIds: Set<string>;\n lineIds: Set<string>;\n}\n\n/** Props for the Flow component */\nexport interface FlowProps {\n /** Initial document; if not provided, starts with empty doc */\n initialDocument?: FlowDocument;\n /** Callback when document changes */\n onChange?: (doc: FlowDocument) => void;\n /** Width of the component (defaults to 100%) */\n width?: number | string;\n /** Height of the component (defaults to 100%) */\n height?: number | string;\n /** Whether the flow is read-only */\n readOnly?: boolean;\n /** Leave the current document from the built-in toolbar. */\n onBack?: () => void;\n /** Export the current canvas as PNG from the built-in toolbar. */\n onExportPNG?: () => void | Promise<void>;\n /** Publish or configure sharing from the built-in toolbar. */\n onPublish?: () => void;\n /** Show minimap */\n showMiniMap?: boolean;\n /** Show grid */\n showGrid?: boolean;\n /** Grid size in pixels */\n gridSize?: number;\n /** CSS class for outer container */\n className?: string;\n}\n"],"mappings":"AAiFA,IAAa,IAAkB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF"}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../src/components/pro/Flow/types.ts"],"sourcesContent":["/** Arrow marker type for edges and lines */\nexport type FlowEdgeMarkerKind = 'none' | 'arrow' | 'arrowclosed';\n\n/** Label placement for SVG icon stamps. */\nexport type FlowIconLabelPlacement = 'top' | 'middle' | 'bottom' | 'left' | 'right';\n\n/** Media stamp kinds rendered via DOM overlay. */\nexport type FlowMediaKind = 'markdown' | 'html' | 'mermaid' | 'math' | 'image' | 'model3d' | 'ai';\n\nexport type FlowModelFormat = 'stl' | 'obj' | '3mf';\n\n/** AI media node configuration (persisted subset). */\nexport interface FlowAIConfig {\n /** API endpoint (OpenAI-compatible chat completions or Anthropic messages). */\n gateway: string;\n protocol: 'openai' | 'anthropic';\n model: string;\n /** API key. Persisted in the document; treat exported JSON as sensitive. */\n apiKey?: string;\n systemPrompt?: string;\n /** Extra request headers. */\n headers?: Record<string, string>;\n}\n\n/** Line style */\nexport type FlowEdgeLineStyle = 'solid' | 'dashed' | 'dotted' | 'dynamic';\n\n/** Dash density for dashed/dotted lines */\nexport type FlowEdgeDashDensity = 'sparse' | 'medium' | 'dense';\n\n/** Bezier control points for simplebezier edge segments (canvas coordinates) */\nexport interface FlowBezierControl {\n c1x: number;\n c1y: number;\n c2x: number;\n c2y: number;\n}\n\n/** Persisted edge styling on edge.data */\nexport interface FlowEdgeData {\n strokeColor?: string;\n strokeWidth?: number;\n lineStyle?: FlowEdgeLineStyle;\n dashDensity?: FlowEdgeDashDensity;\n markerStart?: FlowEdgeMarkerKind;\n markerEnd?: FlowEdgeMarkerKind;\n labelText?: string;\n labelFontSize?: number;\n labelFontFamily?: string;\n /** Play a source-to-target traveling gradient while in presentation mode. */\n animated?: boolean;\n /** Waypoints; absolute canvas coords unless waypointGroupId set */\n waypoints?: Array<{ x: number; y: number }>;\n waypointGroupId?: string;\n /**\n * Per-segment bezier controls for simplebezier type;\n * null entries use default computed controls.\n */\n bezierControls?: Array<FlowBezierControl | null> | null;\n}\n\n/** Edge type names */\nexport type FlowEdgeTypeName =\n | 'smoothstep'\n | 'step'\n | 'straight'\n | 'simplebezier';\n\n/** Border line style */\nexport type FlowBorderStyle = 'none' | 'solid' | 'dashed' | 'dotted' | 'dynamic';\n\n/** Gradient direction */\nexport type GradientDirection =\n | 'to-r'\n | 'to-l'\n | 'to-b'\n | 'to-t'\n | 'to-br'\n | 'to-tl'\n | 'to-tr'\n | 'to-bl';\n\n/** Group label placement */\nexport type FlowGroupLabelPlacement = 'top' | 'bottom' | 'left' | 'right';\nexport type FlowGroupLabelAlign = 'start' | 'center' | 'end';\n\nexport const FLOW_NODE_TYPES = [\n 'shapeRect',\n 'shapeRoundRect',\n 'shapeEllipse',\n 'shapeDiamond',\n 'shapeDocument',\n 'shapeParallelogram',\n 'shapeTriangle',\n 'shapeTrapezoid',\n 'shapePentagon',\n 'shapeHexagon',\n 'shapeStar',\n 'shapeHexagram',\n 'shapeRightTriangle',\n 'shapeCorner',\n 'textLabel',\n 'flowGroup',\n 'geometryGroup',\n 'dividerNode',\n 'arrowNode',\n 'polylineNode',\n 'shapeSvg',\n 'mediaNode',\n 'animAnchor',\n] as const;\n\nexport type FlowShapeType = (typeof FLOW_NODE_TYPES)[number];\n\n/** Custom key-value attribute on a node */\nexport interface FlowNodeAttribute {\n key: string;\n value: string;\n}\n\n/** Data stored on each flow node */\nexport interface FlowNodeData {\n label: string;\n fill: string;\n stroke: string;\n strokeWidth: number;\n color: string;\n fontSize: number;\n /**\n * Label/font color. When unset, falls back to `color` (legacy behavior where\n * a single color drove both the label and the SVG icon tint).\n */\n labelColor?: string;\n borderStyle?: FlowBorderStyle;\n rotation?: number;\n flipX?: boolean;\n flipY?: boolean;\n fillGradientTo?: string;\n fillGradientDirection?: GradientDirection;\n attributes?: FlowNodeAttribute[];\n childCanvasId?: string;\n isGroup?: boolean;\n groupBorderStyle?: FlowBorderStyle;\n groupLabelPlacement?: FlowGroupLabelPlacement;\n groupLabelAlign?: FlowGroupLabelAlign;\n groupLabelFill?: string;\n groupLabelRotation?: 0 | 90 | 180 | 270;\n groupLabelBgMode?: 'text' | 'full';\n dividerOrientation?: 'horizontal' | 'vertical';\n arrowDouble?: boolean;\n arrowBent?: boolean;\n arrowBendX?: number;\n arrowBendY?: number;\n polylineWaypoints?: Array<{ x: number; y: number }>;\n /** SVG stamp icon id (for type 'shapeSvg'). */\n svgId?: string;\n /** Whether the SVG stamp draws a bordered box around the icon. */\n iconBox?: boolean;\n /** Label placement for SVG stamps. Left/right use top-to-bottom vertical text. */\n labelPlacement?: FlowIconLabelPlacement;\n /** Horizontal offset from the resolved icon label position, in canvas units. */\n labelOffsetX?: number;\n /** Vertical offset from the resolved icon label position, in canvas units. */\n labelOffsetY?: number;\n /** Media node kind (for type 'mediaNode'). */\n mediaKind?: FlowMediaKind;\n /** Source content or URL for the media node. */\n mediaContent?: string;\n /** Explicit model format for 3D media nodes. */\n modelFormat?: FlowModelFormat;\n /** AI media node configuration (serializable subset; secrets are runtime-only). */\n aiConfig?: FlowAIConfig;\n /**\n * Stable creation index for `animAnchor` nodes, used to order slides. The\n * displayed sequence badge is derived from this ordering, so deleting an\n * anchor renumbers the rest automatically.\n */\n animIndex?: number;\n /** Marks nodes managed by Mindmap mode. */\n isMindMapNode?: boolean;\n /** Logical parent used by Mindmap auto-layout (separate from visual groups). */\n mindMapParentId?: string;\n}\n\n/** A flow node */\nexport interface FlowNode {\n id: string;\n type: FlowShapeType;\n position: { x: number; y: number };\n width: number;\n height: number;\n data: FlowNodeData;\n parentId?: string;\n zIndex?: number;\n}\n\n/** A flow edge (connection between nodes) */\nexport interface FlowEdge {\n id: string;\n source: string;\n target: string;\n sourceHandle?: string;\n targetHandle?: string;\n type: FlowEdgeTypeName;\n data: FlowEdgeData;\n}\n\n/** Independent line types */\nexport type FlowLineType = 'freehand' | 'straight' | 'polyline' | 'arrow';\n\n/** An independent line not attached to nodes */\nexport interface FlowLine {\n id: string;\n type: FlowLineType;\n points: Array<{ x: number; y: number }>;\n strokeColor: string;\n strokeWidth: number;\n lineStyle: FlowEdgeLineStyle;\n dashDensity?: FlowEdgeDashDensity;\n markerStart?: FlowEdgeMarkerKind;\n markerEnd?: FlowEdgeMarkerKind;\n closed?: boolean;\n zIndex?: number;\n parentId?: string;\n}\n\n/** Single canvas layer data */\nexport interface FlowCanvasData {\n nodes: FlowNode[];\n edges: FlowEdge[];\n lines: FlowLine[];\n}\n\n/** Multi-canvas document; root canvas id is 'root' */\nexport interface FlowDocument {\n canvases: Record<string, FlowCanvasData>;\n stack: string[];\n}\n\n/** Active tool modes */\nexport type FlowToolMode =\n | 'select'\n | 'pan'\n | 'connect'\n | 'freehand'\n | 'line'\n | 'polyline'\n | 'arrow';\n\n/** Viewport transform state */\nexport interface ViewportState {\n x: number;\n y: number;\n zoom: number;\n}\n\n/** Selection state */\nexport interface SelectionState {\n nodeIds: Set<string>;\n edgeIds: Set<string>;\n lineIds: Set<string>;\n}\n\n/** Props for the Flow component */\nexport interface FlowProps {\n /** Initial document; if not provided, starts with empty doc */\n initialDocument?: FlowDocument;\n /** Callback when document changes */\n onChange?: (doc: FlowDocument) => void;\n /** Width of the component (defaults to 100%) */\n width?: number | string;\n /** Height of the component (defaults to 100%) */\n height?: number | string;\n /** Whether the flow is read-only */\n readOnly?: boolean;\n /** Leave the current document from the built-in toolbar. */\n onBack?: () => void;\n /** Export the current canvas as PNG from the built-in toolbar. */\n onExportPNG?: () => void | Promise<void>;\n /** Publish or configure sharing from the built-in toolbar. */\n onPublish?: () => void;\n /** Show minimap */\n showMiniMap?: boolean;\n /** Show grid */\n showGrid?: boolean;\n /** Grid size in pixels */\n gridSize?: number;\n /** CSS class for outer container */\n className?: string;\n}\n"],"mappings":"AAsFA,IAAa,IAAkB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF"}