@pipelex/mthds-ui 0.29.0 → 0.30.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 (33) hide show
  1. package/README.md +14 -8
  2. package/dist/{chunk-ZTXSDTVF.js → chunk-3BXB6HSF.js} +1304 -31
  3. package/dist/chunk-3BXB6HSF.js.map +1 -0
  4. package/dist/{chunk-Y46574OW.js → chunk-GAOBB3UT.js} +5 -2
  5. package/dist/chunk-GAOBB3UT.js.map +1 -0
  6. package/dist/chunk-KB2DIEVF.js +1 -0
  7. package/dist/{chunk-3I3ZPYMW.js → chunk-PJTYQURQ.js} +33 -1
  8. package/dist/chunk-PJTYQURQ.js.map +1 -0
  9. package/dist/form/react/index.d.ts +1 -1
  10. package/dist/form/react/index.js +2 -2
  11. package/dist/graph/index.d.ts +336 -9
  12. package/dist/graph/index.js +98 -4
  13. package/dist/graph/react/index.d.ts +26 -2
  14. package/dist/graph/react/index.js +975 -371
  15. package/dist/graph/react/index.js.map +1 -1
  16. package/dist/graph/react/styles/simple/SimpleStyle.css +434 -0
  17. package/dist/graph/react/viewer/GraphToolbar.css +114 -0
  18. package/dist/index.d.ts +2 -2
  19. package/dist/index.js +98 -4
  20. package/dist/standalone/graph-standalone.html +714 -165
  21. package/dist/standalone/graph-viewer.css +549 -0
  22. package/dist/standalone/graph-viewer.js +164 -164
  23. package/dist/static-graph/index.d.ts +1 -1
  24. package/dist/static-graph/index.js +1 -1
  25. package/dist/{types-BaFWy56P.d.ts → types-BNqjYF_x.d.ts} +152 -1
  26. package/package.json +2 -1
  27. package/dist/chunk-3I3ZPYMW.js.map +0 -1
  28. package/dist/chunk-F6TZIJ7A.js +0 -1
  29. package/dist/chunk-Y46574OW.js.map +0 -1
  30. package/dist/chunk-ZTXSDTVF.js.map +0 -1
  31. package/dist/graph/react/index.css +0 -749
  32. package/dist/graph/react/index.css.map +0 -1
  33. /package/dist/{chunk-F6TZIJ7A.js.map → chunk-KB2DIEVF.js.map} +0 -0
@@ -0,0 +1,434 @@
1
+ /* ─── Simple style — a flowchart of the method's steps in plain words ───── */
2
+ /* Token-only, like every component sheet here: the palette tokens on */
3
+ /* `.react-flow-container` theme it. The box metrics mirror the constants in */
4
+ /* `src/graph/styles/simpleStyle.ts`, which size the nodes for the layout */
5
+ /* before the DOM exists: change them together. */
6
+
7
+ /* ReactFlow wrappers: the shapes draw themselves, selection included. */
8
+ .react-flow__node-simpleStep,
9
+ .react-flow__node-simpleTerminal,
10
+ .react-flow__node-simpleDecision,
11
+ .react-flow__node-simpleFrame {
12
+ background: transparent;
13
+ border: none;
14
+ padding: 0;
15
+ }
16
+ .react-flow__node-simpleStep.selected,
17
+ .react-flow__node-simpleTerminal.selected,
18
+ .react-flow__node-simpleDecision.selected,
19
+ .react-flow__node-simpleFrame.selected {
20
+ box-shadow: none !important;
21
+ }
22
+ .react-flow__node-simpleFrame {
23
+ cursor: default !important;
24
+ }
25
+ .simple-handle.react-flow__handle {
26
+ opacity: 0;
27
+ border: none;
28
+ width: 1px;
29
+ height: 1px;
30
+ min-width: 0;
31
+ min-height: 0;
32
+ }
33
+
34
+ /* ─── Step ──────────────────────────────────────────────────────────────── */
35
+
36
+ .simple-step {
37
+ --simple-step-accent: var(--text-muted);
38
+ --simple-step-border: var(--border-strong);
39
+ --simple-step-bg: var(--surface-panel);
40
+
41
+ box-sizing: border-box;
42
+ width: 100%;
43
+ height: 100%;
44
+ padding: 10px 12px;
45
+ display: flex;
46
+ flex-direction: column;
47
+ gap: 6px;
48
+ border-radius: 10px;
49
+ border: 1.5px solid var(--simple-step-border);
50
+ background: var(--simple-step-bg);
51
+ box-shadow: var(--shadow-sm);
52
+ font-family: var(--font-sans);
53
+ overflow: hidden;
54
+ transition: box-shadow 0.15s;
55
+ }
56
+ .simple-step:hover {
57
+ box-shadow: var(--shadow-md);
58
+ }
59
+ .react-flow__node-simpleStep.selected .simple-step {
60
+ border-color: var(--color-accent);
61
+ box-shadow:
62
+ 0 0 0 2px var(--color-accent),
63
+ var(--shadow-md);
64
+ }
65
+
66
+ /* The steps that carry the method's judgement stand out; plumbing recedes. */
67
+ .simple-step--ai,
68
+ .simple-step--judge {
69
+ --simple-step-accent: var(--color-accent);
70
+ --simple-step-border: color-mix(in srgb, var(--color-accent) 55%, transparent);
71
+ --simple-step-bg: color-mix(in srgb, var(--color-accent) 7%, var(--surface-panel));
72
+ }
73
+ .simple-step--template,
74
+ .simple-step--code {
75
+ --simple-step-bg: var(--surface-sunken);
76
+ --simple-step-border: var(--border-default);
77
+ }
78
+ .simple-step--planned {
79
+ border-style: dashed;
80
+ opacity: 0.85;
81
+ }
82
+ /* A folded sub-method: a step that holds others, drawn as a small stack. */
83
+ .simple-step--steps,
84
+ .simple-step--parallel,
85
+ .simple-step--decision,
86
+ .simple-step--repeat {
87
+ --simple-step-border: var(--border-strong);
88
+ box-shadow:
89
+ 3px 3px 0 -1px var(--simple-step-bg),
90
+ 3px 3px 0 0 var(--border-default),
91
+ var(--shadow-sm);
92
+ }
93
+ .simple-step--failed {
94
+ --simple-step-border: var(--color-error);
95
+ }
96
+
97
+ .simple-step-header {
98
+ display: flex;
99
+ align-items: center;
100
+ gap: 6px;
101
+ height: 16px;
102
+ flex-shrink: 0;
103
+ }
104
+ .simple-step-category {
105
+ display: inline-flex;
106
+ align-items: center;
107
+ gap: 5px;
108
+ font-size: 11px;
109
+ font-weight: 600;
110
+ line-height: 16px;
111
+ color: var(--simple-step-accent);
112
+ white-space: nowrap;
113
+ overflow: hidden;
114
+ text-overflow: ellipsis;
115
+ min-width: 0;
116
+ }
117
+ .simple-step-category svg {
118
+ flex-shrink: 0;
119
+ }
120
+ .simple-step-header .simple-status {
121
+ margin-left: auto;
122
+ }
123
+ .simple-step-header .node-validation-badge {
124
+ margin-left: auto;
125
+ }
126
+ .simple-step-header .simple-status + .node-validation-badge {
127
+ margin-left: 0;
128
+ }
129
+
130
+ .simple-step-title {
131
+ font-size: 15px;
132
+ font-weight: 500;
133
+ line-height: 20px;
134
+ color: var(--text-primary);
135
+ overflow: hidden;
136
+ overflow-wrap: anywhere;
137
+ display: -webkit-box;
138
+ -webkit-line-clamp: 3;
139
+ -webkit-box-orient: vertical;
140
+ }
141
+ .simple-step--template .simple-step-title,
142
+ .simple-step--code .simple-step-title {
143
+ color: var(--text-secondary);
144
+ }
145
+
146
+ .simple-step-foreach {
147
+ align-self: flex-start;
148
+ display: inline-flex;
149
+ align-items: center;
150
+ gap: 4px;
151
+ height: 18px;
152
+ padding: 0 7px;
153
+ box-sizing: border-box;
154
+ border-radius: 9px;
155
+ border: 1px solid var(--ctrl-batch-border);
156
+ background: var(--ctrl-batch-bg);
157
+ color: var(--ctrl-batch-text);
158
+ font-size: 11px;
159
+ font-weight: 600;
160
+ line-height: 16px;
161
+ white-space: nowrap;
162
+ max-width: 100%;
163
+ overflow: hidden;
164
+ text-overflow: ellipsis;
165
+ flex-shrink: 0;
166
+ }
167
+
168
+ .simple-step-open {
169
+ all: unset;
170
+ box-sizing: border-box;
171
+ align-self: flex-start;
172
+ display: inline-flex;
173
+ align-items: center;
174
+ gap: 5px;
175
+ height: 22px;
176
+ padding: 0 8px;
177
+ border-radius: 6px;
178
+ border: 1px solid var(--border-default);
179
+ background: var(--surface-elevated);
180
+ color: var(--text-secondary);
181
+ font-family: var(--font-sans);
182
+ font-size: 11.5px;
183
+ font-weight: 500;
184
+ cursor: pointer;
185
+ flex-shrink: 0;
186
+ }
187
+ .simple-step-open:hover:not(:disabled) {
188
+ color: var(--text-primary);
189
+ border-color: var(--border-strong);
190
+ background: var(--surface-elevated-hover);
191
+ }
192
+ .simple-step-open:focus-visible {
193
+ outline: 2px solid var(--focus-ring);
194
+ outline-offset: 1px;
195
+ }
196
+ .simple-step-open:disabled {
197
+ cursor: default;
198
+ }
199
+
200
+ /* ─── Run status mark ───────────────────────────────────────────────────── */
201
+
202
+ .simple-status {
203
+ display: inline-flex;
204
+ align-items: center;
205
+ justify-content: center;
206
+ width: 16px;
207
+ height: 16px;
208
+ border-radius: 50%;
209
+ flex-shrink: 0;
210
+ color: var(--text-dim);
211
+ border: 1.5px solid currentColor;
212
+ box-sizing: border-box;
213
+ }
214
+ .simple-status--succeeded {
215
+ color: var(--color-success);
216
+ background: var(--color-success-bg);
217
+ }
218
+ .simple-status--failed {
219
+ color: var(--color-error);
220
+ background: var(--color-error-bg);
221
+ }
222
+ .simple-status--running {
223
+ color: var(--color-accent);
224
+ border-color: transparent;
225
+ }
226
+ .simple-status--running svg {
227
+ animation: simple-status-spin 1s linear infinite;
228
+ }
229
+ @keyframes simple-status-spin {
230
+ to {
231
+ transform: rotate(360deg);
232
+ }
233
+ }
234
+
235
+ /* ─── Input and output ──────────────────────────────────────────────────── */
236
+
237
+ .simple-terminal {
238
+ --simple-terminal-stroke: var(--color-stuff-border);
239
+ --simple-terminal-fill: var(--surface-panel);
240
+ --simple-terminal-tint: var(--color-stuff-bg);
241
+
242
+ position: relative;
243
+ box-sizing: border-box;
244
+ width: 100%;
245
+ height: 100%;
246
+ font-family: var(--font-sans);
247
+ }
248
+ .simple-terminal--output {
249
+ --simple-terminal-stroke: var(--color-success);
250
+ --simple-terminal-tint: var(--color-success-bg);
251
+ }
252
+ .simple-terminal-shape {
253
+ position: absolute;
254
+ inset: 0;
255
+ width: 100%;
256
+ height: 100%;
257
+ overflow: visible;
258
+ }
259
+ .simple-terminal-shape path {
260
+ fill: var(--simple-terminal-fill);
261
+ stroke: var(--simple-terminal-stroke);
262
+ stroke-width: 1.5px;
263
+ }
264
+ /* The tint goes over the opaque fill so stacked pages hide what is behind them. */
265
+ .simple-terminal > .simple-terminal-shape:not([class*="--back"]) path {
266
+ fill: color-mix(in srgb, var(--simple-terminal-stroke) 9%, var(--simple-terminal-fill));
267
+ }
268
+ .simple-terminal--output > .simple-terminal-shape:not([class*="--back"]) path {
269
+ stroke-width: 2px;
270
+ }
271
+ /* A list: the same page twice more, offset behind. */
272
+ .simple-terminal-shape--back1 {
273
+ transform: translate(4px, -4px);
274
+ }
275
+ .simple-terminal-shape--back2 {
276
+ transform: translate(8px, -8px);
277
+ }
278
+ .react-flow__node-simpleTerminal.selected .simple-terminal-shape path {
279
+ stroke: var(--color-accent);
280
+ stroke-width: 2.5px;
281
+ }
282
+ .simple-terminal-text {
283
+ position: relative;
284
+ box-sizing: border-box;
285
+ height: 100%;
286
+ padding: 10px 12px 16px;
287
+ display: flex;
288
+ flex-direction: column;
289
+ justify-content: center;
290
+ gap: 0;
291
+ text-align: center;
292
+ }
293
+ .simple-terminal-title {
294
+ font-size: 13px;
295
+ font-weight: 600;
296
+ line-height: 17px;
297
+ color: var(--text-primary);
298
+ overflow: hidden;
299
+ overflow-wrap: anywhere;
300
+ display: -webkit-box;
301
+ -webkit-line-clamp: 2;
302
+ -webkit-box-orient: vertical;
303
+ }
304
+ .simple-terminal-subtitle {
305
+ font-size: 11.5px;
306
+ line-height: 17px;
307
+ color: var(--text-muted);
308
+ white-space: nowrap;
309
+ overflow: hidden;
310
+ text-overflow: ellipsis;
311
+ }
312
+
313
+ /* ─── Decision ──────────────────────────────────────────────────────────── */
314
+
315
+ .simple-decision {
316
+ position: relative;
317
+ box-sizing: border-box;
318
+ width: 100%;
319
+ height: 100%;
320
+ display: flex;
321
+ align-items: center;
322
+ justify-content: center;
323
+ font-family: var(--font-sans);
324
+ }
325
+ .simple-decision-shape {
326
+ position: absolute;
327
+ inset: 0;
328
+ width: 100%;
329
+ height: 100%;
330
+ overflow: visible;
331
+ }
332
+ .simple-decision-shape path {
333
+ fill: color-mix(in srgb, var(--ctrl-condition-text) 10%, var(--surface-panel));
334
+ stroke: var(--ctrl-condition-text);
335
+ stroke-width: 1.5px;
336
+ }
337
+ .simple-decision--failed .simple-decision-shape path {
338
+ stroke: var(--color-error);
339
+ }
340
+ .react-flow__node-simpleDecision.selected .simple-decision-shape path {
341
+ stroke: var(--color-accent);
342
+ stroke-width: 2.5px;
343
+ }
344
+ .simple-decision-text {
345
+ position: relative;
346
+ width: 56%;
347
+ font-size: 13px;
348
+ font-weight: 600;
349
+ line-height: 16px;
350
+ text-align: center;
351
+ color: var(--text-primary);
352
+ overflow: hidden;
353
+ overflow-wrap: anywhere;
354
+ display: -webkit-box;
355
+ -webkit-line-clamp: 3;
356
+ -webkit-box-orient: vertical;
357
+ }
358
+ .simple-decision-marks {
359
+ position: absolute;
360
+ top: 6px;
361
+ right: 18%;
362
+ display: flex;
363
+ gap: 4px;
364
+ }
365
+
366
+ /* ─── "For each" frame ──────────────────────────────────────────────────── */
367
+
368
+ .simple-frame {
369
+ position: relative;
370
+ box-sizing: border-box;
371
+ width: 100%;
372
+ height: 100%;
373
+ border-radius: 14px;
374
+ border: 1.5px solid var(--ctrl-batch-border);
375
+ background: var(--ctrl-batch-bg);
376
+ font-family: var(--font-sans);
377
+ }
378
+ /* The stacked-card edge: the same frame, offset behind — "again, for each". */
379
+ .simple-frame::before {
380
+ content: "";
381
+ position: absolute;
382
+ inset: 0;
383
+ transform: translate(6px, 6px);
384
+ border-radius: 14px;
385
+ border: 1.5px solid var(--ctrl-batch-border);
386
+ opacity: 0.55;
387
+ z-index: -1;
388
+ pointer-events: none;
389
+ }
390
+ .react-flow__node-simpleFrame.selected .simple-frame {
391
+ border-color: var(--color-accent);
392
+ }
393
+ .simple-frame-header {
394
+ position: absolute;
395
+ top: 0;
396
+ left: 0;
397
+ right: 0;
398
+ display: flex;
399
+ align-items: center;
400
+ gap: 6px;
401
+ padding: 10px 14px;
402
+ pointer-events: none;
403
+ }
404
+ .simple-frame-title {
405
+ display: inline-flex;
406
+ align-items: center;
407
+ gap: 6px;
408
+ font-size: 13px;
409
+ font-weight: 600;
410
+ color: var(--ctrl-batch-text);
411
+ white-space: nowrap;
412
+ }
413
+ .simple-frame-header .simple-status,
414
+ .simple-frame-header .node-validation-badge {
415
+ pointer-events: auto;
416
+ }
417
+ .simple-frame-fold {
418
+ all: unset;
419
+ margin-left: auto;
420
+ display: inline-flex;
421
+ padding: 3px 6px;
422
+ border-radius: 6px;
423
+ color: var(--ctrl-batch-text);
424
+ cursor: pointer;
425
+ pointer-events: auto;
426
+ }
427
+ .simple-frame-fold:hover {
428
+ color: var(--text-primary);
429
+ background: var(--surface-elevated);
430
+ }
431
+ .simple-frame-fold:focus-visible {
432
+ outline: 2px solid var(--focus-ring);
433
+ outline-offset: 1px;
434
+ }
@@ -291,3 +291,117 @@
291
291
  content: "Fix: ";
292
292
  font-weight: 600;
293
293
  }
294
+
295
+ /* ─── Style menu ────────────────────────────────────────────────────────── */
296
+ /* A list of the registered styles, opened from the toolbar. Placement */
297
+ /* follows the toolbar's anchor with the validation dropdown's vocabulary. */
298
+
299
+ .graph-toolbar-style {
300
+ position: relative;
301
+ display: inline-flex;
302
+ }
303
+
304
+ .graph-toolbar-btn--open {
305
+ background: var(--surface-overlay-hover);
306
+ color: var(--text-primary);
307
+ border-color: var(--border-strong);
308
+ }
309
+
310
+ .graph-style-menu {
311
+ position: absolute;
312
+ z-index: 12;
313
+ width: max-content;
314
+ min-width: min(240px, calc(100vw - 24px));
315
+ max-width: min(320px, calc(100vw - 24px));
316
+ padding: 4px;
317
+ display: flex;
318
+ flex-direction: column;
319
+ gap: 2px;
320
+ border-radius: 8px;
321
+ background: var(--surface-overlay);
322
+ border: 1px solid var(--border-default);
323
+ box-shadow: var(--shadow-md);
324
+ backdrop-filter: blur(6px);
325
+ pointer-events: auto;
326
+ font-family: var(--font-sans);
327
+ cursor: default;
328
+ }
329
+ .graph-style-menu--down-start {
330
+ top: calc(100% + 6px);
331
+ left: 0;
332
+ }
333
+ .graph-style-menu--down-end {
334
+ top: calc(100% + 6px);
335
+ right: 0;
336
+ }
337
+ .graph-style-menu--up-start {
338
+ bottom: calc(100% + 6px);
339
+ left: 0;
340
+ }
341
+ .graph-style-menu--up-end {
342
+ bottom: calc(100% + 6px);
343
+ right: 0;
344
+ }
345
+ .graph-style-menu--side-end {
346
+ left: calc(100% + 6px);
347
+ top: 0;
348
+ }
349
+ .graph-style-menu--side-start {
350
+ right: calc(100% + 6px);
351
+ top: 0;
352
+ }
353
+
354
+ .graph-style-menu-item {
355
+ all: unset;
356
+ box-sizing: border-box;
357
+ display: flex;
358
+ align-items: flex-start;
359
+ gap: 10px;
360
+ padding: 7px 8px;
361
+ border-radius: 6px;
362
+ cursor: pointer;
363
+ color: var(--text-secondary);
364
+ }
365
+ .graph-style-menu-item:hover,
366
+ .graph-style-menu-item:focus-visible {
367
+ background: var(--surface-elevated-hover);
368
+ color: var(--text-primary);
369
+ }
370
+ .graph-style-menu-item:focus-visible {
371
+ outline: 2px solid var(--focus-ring);
372
+ outline-offset: -2px;
373
+ }
374
+ .graph-style-menu-item--checked {
375
+ color: var(--text-primary);
376
+ }
377
+ .graph-style-menu-icon {
378
+ display: inline-flex;
379
+ padding-top: 1px;
380
+ color: var(--text-muted);
381
+ }
382
+ .graph-style-menu-item--checked .graph-style-menu-icon {
383
+ color: var(--color-accent);
384
+ }
385
+ .graph-style-menu-text {
386
+ display: flex;
387
+ flex-direction: column;
388
+ gap: 1px;
389
+ flex: 1;
390
+ min-width: 0;
391
+ }
392
+ .graph-style-menu-name {
393
+ font-size: 12.5px;
394
+ font-weight: 600;
395
+ line-height: 16px;
396
+ }
397
+ .graph-style-menu-description {
398
+ font-size: 11.5px;
399
+ line-height: 15px;
400
+ color: var(--text-muted);
401
+ }
402
+ .graph-style-menu-check {
403
+ display: inline-flex;
404
+ width: 14px;
405
+ padding-top: 1px;
406
+ color: var(--color-accent);
407
+ }
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { A as ARROW_CLOSED_MARKER, B as BINDING_STEP_TYPE, w as BindingNode, x as BindingStepSpec, y as BindingStepType, z as CONTROLLER_PADDING_BOTTOM, E as CONTROLLER_PADDING_TOP, H as CONTROLLER_PADDING_X, r as CardNode, C as ConceptInfo, D as DataflowAnalysis, I as EDGE_TYPE, J as EdgeType, K as FOLD_MODE, M as FieldResolution, F as FoldMode, m as FoldToggleOptions, O as GRAPH_DIRECTION, Q as GRAPH_SPEC_MODE, R as GRAPH_THEME, S as GRAPH_THEME_MODE, f as GraphConfig, t as GraphData, g as GraphDirection, d as GraphEdge, e as GraphNode, c as GraphNodeData, b as GraphSpec, U as GraphSpecEdge, W as GraphSpecEdgeKind, X as GraphSpecMeta, o as GraphSpecMode, Y as GraphSpecModelUsage, p as GraphSpecNode, Z as GraphSpecNodeError, _ as GraphSpecNodeIo, j as GraphSpecNodeIoItem, $ as GraphSpecNodeTiming, a0 as GraphSpecNodeUsage, a1 as GraphSpecUsage, G as GraphTheme, h as GraphThemeMode, a2 as JudgmentQuestionSpec, a3 as KNOWN_PIPE_TYPES, L as LabelDescriptor, v as LayoutConfig, a4 as NODE_TYPE_CONTROLLER, a5 as NODE_TYPE_PIPE_CARD, a6 as NODE_TYPE_STUFF, a7 as NodeKind, n as NodePipeType, N as NodeValidationSummary, a8 as PipeBatchBlueprint, a9 as PipeBlueprintBase, P as PipeBlueprintUnion, s as PipeCallNode, u as PipeCardPayload, aa as PipeComposeBlueprint, ab as PipeComposeConstructBlueprint, ac as PipeComposeConstructField, ad as PipeConditionBlueprint, l as PipeControllerType, ae as PipeDocGenBlueprint, af as PipeExtractBlueprint, ag as PipeFuncBlueprint, ah as PipeImgGenBlueprint, ai as PipeJudgeBlueprint, aj as PipeLLMBlueprint, q as PipeOperatorType, ak as PipeParallelBlueprint, al as PipeSearchBlueprint, am as PipeSequenceBlueprint, an as PipeSignatureBlueprint, i as PipeStatus, ao as PipeStructureBlueprint, ap as PipeType, a as PresenceMarker, aq as STUFF_ID_PREFIX, ar as SequenceStepSpec, as as StuffMultiplicity, at as StuffRegistryEntry, au as StuffRole, av as StuffSpecInfo, aw as SubPipeSpec, ax as TOOLBAR_POSITION, ay as TemplateBlueprint, az as ToolbarOrientation, T as ToolbarPosition, aA as ToolbarSide, aB as VALIDATION_STATE, V as ValidationIssue, k as ValidationState, aC as graphSpecMode, aD as isBindingNode, aE as isBindingStepSpec, aF as isDryGraphSpec, aG as isPluralMultiplicity, aH as isStaticGraphSpec, aI as isStuffNodeId, aJ as multiplicitySuffix, aK as nodeHeight, aL as nodeWidth, aM as stuffDigestFromId, aN as stuffNodeId, aO as toolbarOrientation, aP as toolbarSide } from './types-BaFWy56P.js';
2
- export { ControllerRect, DARK_PALETTE_COLORS, DEFAULT_GRAPH_CONFIG, ElkPositionResult, GraphSpecValidationError, LIGHT_PALETTE_COLORS, LayoutResult, MAX_VISIBLE_CONTROLLER_CHILDREN, StuffLocation, applyControllers, applyFolds, applyValidationDecorations, asCardNode, asPipeCallNode, buildChildToControllerMap, buildContainmentChain, buildControllerNodes, buildDataflowAnalysis, buildDataflowGraph, buildElkGraph, buildGraph, buildPipeCardPayload, buildValidationDecorations, estimateNodeDimensions, extractAbsolutePositions, findCousinControllers, findStuffByDigest, getConceptInfo, getLayoutedElements, getPaletteColors, getPaletteForTheme, getPipeBlueprint, inputPortId, outermostFoldedAncestor, outputPortId, pipeRefOf, resolveConceptRef, resolveIssueTargetNodeId, validateGraphSpec } from './graph/index.js';
1
+ export { A as ARROW_CLOSED_MARKER, B as BINDING_STEP_TYPE, y as BindingNode, z as BindingStepSpec, H as BindingStepType, I as CONTROLLER_PADDING_BOTTOM, J as CONTROLLER_PADDING_TOP, K as CONTROLLER_PADDING_X, s as CardNode, C as ConceptInfo, D as DataflowAnalysis, M as EDGE_TYPE, O as EDGE_TYPE_ROUTED, E as EdgeRoute, Q as EdgeType, R as FOLD_MODE, U as FieldResolution, F as FoldMode, n as FoldToggleOptions, W as GRAPH_DIRECTION, X as GRAPH_SPEC_MODE, Y as GRAPH_STYLE, Z as GRAPH_THEME, _ as GRAPH_THEME_MODE, f as GraphConfig, u as GraphData, g as GraphDirection, d as GraphEdge, e as GraphNode, c as GraphNodeData, x as GraphPoint, b as GraphSpec, $ as GraphSpecEdge, a0 as GraphSpecEdgeKind, a1 as GraphSpecMeta, p as GraphSpecMode, a2 as GraphSpecModelUsage, q as GraphSpecNode, a3 as GraphSpecNodeError, a4 as GraphSpecNodeIo, k as GraphSpecNodeIoItem, a5 as GraphSpecNodeTiming, a6 as GraphSpecNodeUsage, a7 as GraphSpecUsage, i as GraphStyleId, G as GraphTheme, h as GraphThemeMode, a8 as JudgmentQuestionSpec, a9 as KNOWN_PIPE_TYPES, L as LabelDescriptor, w as LayoutConfig, aa as NODE_TYPE_CONTROLLER, ab as NODE_TYPE_PIPE_CARD, ac as NODE_TYPE_SIMPLE_DECISION, ad as NODE_TYPE_SIMPLE_FRAME, ae as NODE_TYPE_SIMPLE_STEP, af as NODE_TYPE_SIMPLE_TERMINAL, ag as NODE_TYPE_STUFF, ah as NodeKind, o as NodePipeType, N as NodeValidationSummary, ai as PipeBatchBlueprint, aj as PipeBlueprintBase, P as PipeBlueprintUnion, t as PipeCallNode, v as PipeCardPayload, ak as PipeComposeBlueprint, al as PipeComposeConstructBlueprint, am as PipeComposeConstructField, an as PipeConditionBlueprint, m as PipeControllerType, ao as PipeDocGenBlueprint, ap as PipeExtractBlueprint, aq as PipeFuncBlueprint, ar as PipeImgGenBlueprint, as as PipeJudgeBlueprint, at as PipeLLMBlueprint, r as PipeOperatorType, au as PipeParallelBlueprint, av as PipeSearchBlueprint, aw as PipeSequenceBlueprint, ax as PipeSignatureBlueprint, j as PipeStatus, ay as PipeStructureBlueprint, az as PipeType, a as PresenceMarker, aA as STEP_CATEGORY, aB as STUFF_ID_PREFIX, aC as SequenceStepSpec, aD as SimpleNodePayload, S as StepCategory, aE as StuffMultiplicity, aF as StuffRegistryEntry, aG as StuffRole, aH as StuffSpecInfo, aI as SubPipeSpec, aJ as TOOLBAR_POSITION, aK as TemplateBlueprint, aL as ToolbarOrientation, T as ToolbarPosition, aM as ToolbarSide, aN as VALIDATION_STATE, V as ValidationIssue, l as ValidationState, aO as graphSpecMode, aP as isBindingNode, aQ as isBindingStepSpec, aR as isDryGraphSpec, aS as isPluralMultiplicity, aT as isStaticGraphSpec, aU as isStuffNodeId, aV as multiplicitySuffix, aW as nodeHeight, aX as nodeWidth, aY as stuffDigestFromId, aZ as stuffNodeId, a_ as toolbarOrientation, a$ as toolbarSide } from './types-BNqjYF_x.js';
2
+ export { ControllerRect, DARK_PALETTE_COLORS, DEFAULT_GRAPH_CONFIG, ElkPositionResult, GRAPH_STYLES, GRAPH_STYLE_IDS, GRAPH_STYLE_PIPELINES, GraphSpecValidationError, GraphStyleCapabilities, GraphStyleDescriptor, GraphStylePipeline, LIGHT_PALETTE_COLORS, LayoutResult, MAX_VISIBLE_CONTROLLER_CHILDREN, ROUTE_CORNER_RADIUS_PX, ROUTE_ENDPOINT_TOLERANCE_PX, SIMPLE_DECISION_WIDTHS, SIMPLE_FOLD_DEPTH, SIMPLE_STEP_TITLE_FONT_PX, SIMPLE_STEP_WIDE_WIDTH, SIMPLE_STEP_WIDTH, SIMPLE_TERMINAL_WIDTH, SIMPLE_TITLE_MAX_LINES, STEP_CATEGORY_BY_PIPE_TYPE, STEP_CATEGORY_WORDS, SimpleProjection, SimpleProjectionInput, StuffLocation, StyleFrameArgs, StyleProjection, StyleProjectionArgs, WrapEstimate, aggregateStatus, applyControllers, applyFolds, applySimpleFrames, applyValidationDecorations, asCardNode, asPipeCallNode, buildChildToControllerMap, buildContainmentChain, buildControllerNodes, buildDataflowAnalysis, buildDataflowGraph, buildElkGraph, buildGraph, buildPipeCardPayload, buildValidationDecorations, conceptPlainName, estimateNodeDimensions, estimateWrap, extractAbsolutePositions, extractEdgeRoutes, findCousinControllers, findStuffByDigest, fitRoute, getConceptInfo, getLayoutedElements, getPaletteColors, getPaletteForTheme, getPipeBlueprint, humanizeIdentifier, inputPortId, isGenericConcept, isGraphStyleId, outcomeLabel, outermostFoldedAncestor, outputPortId, pipeRefOf, polylineMidpoint, projectSimpleGraph, resolveConceptRef, resolveGraphStyle, resolveIssueTargetNodeId, resolveStyleMenu, roundedPolylinePath, routeLabelCenter, sentenceCase, simpleDecisionSize, simpleDefaultFolds, simpleEdgeLabelSize, simpleStepSize, simpleTerminalSize, simpleTitleWrap, sortParentsFirst, stripDomain, textWidthPx, validateGraphSpec } from './graph/index.js';
3
3
  export { P as ParsedPipeRef, m as makePipeRef, p as parsePipeRef } from './pipeRefs-BQJO5nh5.js';
4
4
  import 'elkjs/lib/elk-api';