@w6w/ui 0.2.11 → 0.2.55

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 (138) hide show
  1. package/CHANGELOG.md +139 -2
  2. package/README.md +28 -10
  3. package/dist/AppPicker.d.ts +12 -1
  4. package/dist/CanvasContextMenu.d.ts +19 -0
  5. package/dist/{CodeBlock-BqXDA35P.js → CodeBlock-C-oIIYfC.js} +1436 -555
  6. package/dist/CodeBlock-C-oIIYfC.js.map +1 -0
  7. package/dist/CodeBlock-CymlfyeA.cjs +15 -0
  8. package/dist/CodeBlock-CymlfyeA.cjs.map +1 -0
  9. package/dist/CodeEditor.d.ts +4 -1
  10. package/dist/ConditionEditor.d.ts +11 -0
  11. package/dist/JsonEditor.d.ts +12 -0
  12. package/dist/ParamCustomization.d.ts +5 -0
  13. package/dist/ParamsForm.d.ts +11 -3
  14. package/dist/RouterEditor.d.ts +5 -0
  15. package/dist/StepBuilderModal.d.ts +83 -13
  16. package/dist/StepNameEditor.d.ts +11 -0
  17. package/dist/StopEditor.d.ts +5 -0
  18. package/dist/TriggerFillForm.d.ts +14 -1
  19. package/dist/WebhookListenPanel.d.ts +28 -0
  20. package/dist/WorkflowConnections.d.ts +29 -0
  21. package/dist/WorkflowConnectionsPanel.d.ts +5 -0
  22. package/dist/WorkflowFlowEditor.d.ts +67 -8
  23. package/dist/assets/script-completion.worker-DDJKkj5M.js +8290 -0
  24. package/dist/assets/script-completion.worker-DDJKkj5M.js.map +1 -0
  25. package/dist/canvas-context-menu.d.ts +27 -0
  26. package/dist/code.cjs +1 -1
  27. package/dist/code.mjs +3 -4
  28. package/dist/code.mjs.map +1 -1
  29. package/dist/components/AnchoredFlyout.d.ts +7 -0
  30. package/dist/components/ColumnsEditor.d.ts +27 -0
  31. package/dist/components/Combobox.d.ts +12 -1
  32. package/dist/components/ConfirmModal.d.ts +3 -1
  33. package/dist/components/CsvPanel.d.ts +21 -0
  34. package/dist/components/DataEntryEditor.d.ts +38 -0
  35. package/dist/components/DataEntryList.d.ts +33 -0
  36. package/dist/components/DataStoreList.d.ts +33 -0
  37. package/dist/components/DataTableGrid.d.ts +46 -0
  38. package/dist/components/EventbriteTriggerPicker.d.ts +7 -0
  39. package/dist/components/ExecutionDetail.d.ts +17 -1
  40. package/dist/components/ExecutionList.d.ts +19 -1
  41. package/dist/components/ExecutionLogPanel.d.ts +61 -3
  42. package/dist/components/ExpressionEditorModal.d.ts +33 -10
  43. package/dist/components/ExpressionOptions.d.ts +101 -15
  44. package/dist/components/HtmlPreview.d.ts +7 -0
  45. package/dist/components/JsonTree.d.ts +32 -0
  46. package/dist/components/ResolvedParams.d.ts +6 -1
  47. package/dist/components/ResultViewer.d.ts +46 -0
  48. package/dist/components/ScriptBindingsNotice.d.ts +31 -0
  49. package/dist/components/ScriptCodeField.d.ts +13 -0
  50. package/dist/components/StepStatusPill.d.ts +7 -0
  51. package/dist/components/expression-authoring.d.ts +13 -0
  52. package/dist/components/expression-dom.d.ts +17 -2
  53. package/dist/components/expression-template.d.ts +25 -3
  54. package/dist/components/icons.d.ts +1 -1
  55. package/dist/components/json-compose.d.ts +53 -0
  56. package/dist/components/result-format.d.ts +13 -0
  57. package/dist/condition-editor.d.ts +44 -0
  58. package/dist/connection-app-meta-BEXlKBgV.cjs +22 -0
  59. package/dist/connection-app-meta-BEXlKBgV.cjs.map +1 -0
  60. package/dist/connection-app-meta-ZCPakGjD.js +12422 -0
  61. package/dist/connection-app-meta-ZCPakGjD.js.map +1 -0
  62. package/dist/data-stores/data-store-view.d.ts +371 -0
  63. package/dist/eventbrite-trigger-selection.d.ts +13 -0
  64. package/dist/flow-connect.d.ts +22 -16
  65. package/dist/flow-delete.d.ts +16 -0
  66. package/dist/flow-history.d.ts +75 -0
  67. package/dist/flow-layout.d.ts +13 -0
  68. package/dist/flow-loop-colors.d.ts +39 -0
  69. package/dist/flow-loop.d.ts +98 -0
  70. package/dist/flow-node-flags.d.ts +14 -0
  71. package/dist/flow-problems.d.ts +69 -0
  72. package/dist/flow-state.d.ts +20 -0
  73. package/dist/flow-types.d.ts +137 -9
  74. package/dist/flow-utils.d.ts +27 -13
  75. package/dist/flow.cjs +4 -2
  76. package/dist/flow.cjs.map +1 -1
  77. package/dist/flow.d.ts +9 -3
  78. package/dist/flow.mjs +4028 -1585
  79. package/dist/flow.mjs.map +1 -1
  80. package/dist/index.cjs +2 -1
  81. package/dist/index.cjs.map +1 -1
  82. package/dist/index.d.ts +30 -4
  83. package/dist/index.mjs +2559 -1287
  84. package/dist/index.mjs.map +1 -1
  85. package/dist/node-samples.d.ts +80 -0
  86. package/dist/output-shape.d.ts +30 -14
  87. package/dist/param-customization.d.ts +7 -0
  88. package/dist/provider.d.ts +119 -7
  89. package/dist/resolve-params.d.ts +45 -11
  90. package/dist/run-visuals.d.ts +14 -21
  91. package/dist/script-bindings.d.ts +63 -0
  92. package/dist/script-completion-service.d.ts +9 -0
  93. package/dist/script-completion.worker.d.ts +1 -0
  94. package/dist/script-completions.d.ts +2 -0
  95. package/dist/state-shape.d.ts +38 -0
  96. package/dist/step-preview-state.d.ts +155 -6
  97. package/dist/step-problems.d.ts +42 -12
  98. package/dist/test-inputs.d.ts +25 -0
  99. package/dist/trigger-registration.d.ts +28 -0
  100. package/dist/types.d.ts +70 -8
  101. package/dist/use-app-action-defs.d.ts +9 -1
  102. package/dist/use-test-input.d.ts +18 -0
  103. package/dist/workflow-connections.d.ts +78 -0
  104. package/package.json +16 -7
  105. package/src/code.css +60 -6
  106. package/src/styles/_canvas.scss +35 -0
  107. package/src/styles/_code-editor.scss +35 -0
  108. package/src/styles/_code.scss +6 -5
  109. package/src/styles/_connections.scss +64 -0
  110. package/src/styles/_copyable.scss +24 -0
  111. package/src/styles/_data-stores.scss +138 -0
  112. package/src/styles/_data-vars.scss +17 -6
  113. package/src/styles/_execution-history.scss +73 -0
  114. package/src/styles/_execution-log.scss +145 -1
  115. package/src/styles/_expression-modal.scss +106 -16
  116. package/src/styles/_fields.scss +11 -0
  117. package/src/styles/_flow.scss +166 -0
  118. package/src/styles/_fx.scss +3 -1
  119. package/src/styles/_incoming-state.scss +33 -0
  120. package/src/styles/_modal.scss +12 -0
  121. package/src/styles/_multiselect.scss +35 -0
  122. package/src/styles/_sections.scss +36 -0
  123. package/src/styles/_step-builder.scss +145 -0
  124. package/src/styles/_tester.scss +56 -0
  125. package/src/styles/_tokens.scss +27 -1
  126. package/src/styles.css +1347 -41
  127. package/src/styles.scss +2 -0
  128. package/dist/CodeBlock-BqXDA35P.js.map +0 -1
  129. package/dist/CodeBlock-CulfbnZD.cjs +0 -15
  130. package/dist/CodeBlock-CulfbnZD.cjs.map +0 -1
  131. package/dist/ConfirmModal-Ln99S9NT.js +0 -7919
  132. package/dist/ConfirmModal-Ln99S9NT.js.map +0 -1
  133. package/dist/ConfirmModal-fjHW5rN-.cjs +0 -14
  134. package/dist/ConfirmModal-fjHW5rN-.cjs.map +0 -1
  135. package/dist/Copyable-DA6eiU7w.cjs +0 -2
  136. package/dist/Copyable-DA6eiU7w.cjs.map +0 -1
  137. package/dist/Copyable-F4NTaG77.js +0 -847
  138. package/dist/Copyable-F4NTaG77.js.map +0 -1
@@ -12,6 +12,33 @@
12
12
  }
13
13
 
14
14
  /* Step builder (sidebar + content) */
15
+ .w6w-stepbuilder-picker {
16
+ display: flex;
17
+ flex-direction: column;
18
+ gap: var(--w6w-sp-3);
19
+ height: min(70vh, 560px);
20
+ min-height: 0;
21
+ overflow: hidden;
22
+ }
23
+ .w6w-stepbuilder-picker > .w6w-stepbuilder-search {
24
+ flex-shrink: 0;
25
+ }
26
+ .w6w-stepbuilder-picker > .w6w-stepbuilder {
27
+ flex: 1;
28
+ min-height: 0;
29
+ overflow: hidden;
30
+ }
31
+ .w6w-stepbuilder-picker .w6w-stepbuilder-sidebar {
32
+ overflow-y: auto;
33
+ }
34
+ .w6w-stepbuilder-picker .w6w-stepbuilder-content {
35
+ height: auto;
36
+ }
37
+ .w6w-stepbuilder-picker .w6w-apppicker-host {
38
+ height: 100%;
39
+ min-height: 0;
40
+ flex: 1;
41
+ }
15
42
  .w6w-stepbuilder {
16
43
  display: flex;
17
44
  gap: var(--w6w-sp-4);
@@ -335,6 +362,28 @@
335
362
  color: var(--w6w-muted-text, var(--w6w-text));
336
363
  }
337
364
 
365
+ /* Triggers tab: the "Search all apps" row under the two columns, outside the
366
+ grid so the columns keep the host's remaining height. */
367
+ .w6w-readytouse-footer {
368
+ flex: 0 0 auto;
369
+ padding-top: var(--w6w-sp-3);
370
+ }
371
+
372
+ .w6w-readytouse-empty {
373
+ margin: 0;
374
+ }
375
+
376
+ /* A button that reads as an inline link — the empty state's "Search all apps". */
377
+ .w6w-linkbtn {
378
+ padding: 0;
379
+ border: 0;
380
+ background: none;
381
+ font: inherit;
382
+ color: var(--w6w-accent);
383
+ cursor: pointer;
384
+ text-decoration: underline;
385
+ }
386
+
338
387
  /* A Function/Workflow row, distinct from an app row at a glance: an app is
339
388
  somebody else's service, a Function/Workflow is something YOU built here.
340
389
  Applied by `CallableRow`, which both the home tab and the Workflows/
@@ -358,6 +407,12 @@
358
407
  /* Horizontal breathing room so header/footer align with the padded body. */
359
408
  padding-inline: var(--w6w-sp-1);
360
409
  }
410
+ /* The add flow's title: the node kind's label, then its editable name. */
411
+ .w6w-stepbuilder-title {
412
+ display: inline-flex;
413
+ align-items: center;
414
+ gap: var(--w6w-sp-2);
415
+ }
361
416
  /* Inline step rename (pencil) shown next to the modal title. */
362
417
  .w6w-step-rename {
363
418
  display: inline-flex;
@@ -374,3 +429,93 @@
374
429
  font-size: 0.9em;
375
430
  font-family: inherit;
376
431
  }
432
+
433
+ .w6w-router-editor {
434
+ display: flex;
435
+ flex-direction: column;
436
+ gap: var(--w6w-sp-3);
437
+ }
438
+ .w6w-router-editor > p { margin: 0; }
439
+ .w6w-router-routes {
440
+ display: flex;
441
+ flex-direction: column;
442
+ gap: var(--w6w-sp-2);
443
+ }
444
+ .w6w-router-route {
445
+ min-width: 0;
446
+ }
447
+ .w6w-router-route.is-dragging { opacity: 0.45; }
448
+ .w6w-router-route.is-drop-target { box-shadow: 0 -2px var(--w6w-accent); }
449
+ .w6w-router-route-heading {
450
+ display: flex;
451
+ align-items: center;
452
+ gap: var(--w6w-sp-1);
453
+ margin-bottom: var(--w6w-sp-1);
454
+ }
455
+ .w6w-router-route-heading > :last-child { margin-left: auto; }
456
+ .w6w-router-grip { cursor: grab; }
457
+ .w6w-router-grip:active { cursor: grabbing; }
458
+ .w6w-router-route-name {
459
+ display: inline-flex;
460
+ align-items: center;
461
+ gap: var(--w6w-sp-2);
462
+ border: 0;
463
+ background: transparent;
464
+ padding: var(--w6w-sp-1) 0;
465
+ font: inherit;
466
+ font-size: var(--w6w-fs-xs);
467
+ color: var(--w6w-muted);
468
+ cursor: pointer;
469
+ }
470
+ .w6w-router-route-name:hover { color: var(--w6w-text); }
471
+ .w6w-router-route-name:disabled { cursor: default; }
472
+ .w6w-router-add { align-self: flex-start; }
473
+ .w6w-condition-editor {
474
+ position: relative;
475
+ padding-right: var(--w6w-sp-8);
476
+ }
477
+ .w6w-condition-row {
478
+ display: grid;
479
+ grid-template-columns: auto minmax(0, 1fr) minmax(100px, auto) minmax(0, 1fr);
480
+ gap: var(--w6w-sp-2);
481
+ align-items: stretch;
482
+ }
483
+ .w6w-condition-row > * { min-width: 0; }
484
+ .w6w-condition-row-removable {
485
+ grid-template-columns: auto minmax(0, 1fr) minmax(100px, auto) minmax(0, 1fr) auto;
486
+ }
487
+ .w6w-condition-row-boolean {
488
+ grid-template-columns: auto minmax(0, 1fr) minmax(100px, auto);
489
+ }
490
+ .w6w-condition-row-boolean.w6w-condition-row-removable {
491
+ grid-template-columns: auto minmax(0, 1fr) minmax(100px, auto) auto;
492
+ }
493
+ .w6w-condition-negate {
494
+ display: flex;
495
+ align-items: center;
496
+ gap: var(--w6w-sp-1);
497
+ font-size: var(--w6w-fs-xs);
498
+ }
499
+ .w6w-condition-rows {
500
+ display: flex;
501
+ flex-direction: column;
502
+ gap: var(--w6w-sp-2);
503
+ }
504
+ .w6w-condition-combinator,
505
+ .w6w-condition-add { align-self: flex-start; }
506
+ .w6w-condition-remove { align-self: center; }
507
+ .w6w-condition-comparison {
508
+ min-height: var(--w6w-sp-10);
509
+ padding: var(--w6w-sp-2);
510
+ background: var(--w6w-panel-2);
511
+ border: 1px solid var(--w6w-border);
512
+ border-radius: var(--w6w-radius);
513
+ color: var(--w6w-text);
514
+ font: inherit;
515
+ font-size: var(--w6w-fs-xs);
516
+ }
517
+ .w6w-condition-mode {
518
+ position: absolute;
519
+ right: 0;
520
+ top: var(--w6w-sp-2);
521
+ }
@@ -96,3 +96,59 @@
96
96
  baseline bar, `degraded` taller, `down` the full cell, and `unknown` a hatched
97
97
  outline with no solid fill (nothing was measured: not a good day, not a bad
98
98
  one). Each cell also carries a `title` with its day and state. */
99
+
100
+ /* ── ResultViewer (T0.1.1) — one result value, shown by format: a collapsible
101
+ JSON tree, xml/html/markdown source, or vendor html in a sandboxed iframe.
102
+ The viewer owns its OWN internal spacing only; the host pane spaces it. */
103
+ .w6w-result-viewer {
104
+ display: flex;
105
+ flex-direction: column;
106
+ gap: var(--w6w-sp-1);
107
+ min-width: 0;
108
+ }
109
+ /* The toolbar — Expand all / Collapse all for a tree, Rendered / Source for
110
+ html and markdown. End-aligned so it sits under the copy button's corner. */
111
+ .w6w-result-viewer-bar {
112
+ display: flex;
113
+ justify-content: flex-end;
114
+ gap: var(--w6w-sp-1);
115
+ }
116
+ /* The viewport: the one element that scrolls, capped by the inline `maxHeight`.
117
+ Mono + 0.85em are `.w6w-result`'s type (above), because both present the same
118
+ thing to the reader. */
119
+ .w6w-result-viewer-body {
120
+ flex: 1 1 auto;
121
+ min-width: 0;
122
+ font-family: var(--w6w-font-mono);
123
+ /* lint-tokens-allow: mirrors `.w6w-result`'s result type size above; the value is pinned by T0.1.1 */
124
+ font-size: 0.85em;
125
+ }
126
+ /* A plain-text result wraps instead of scrolling sideways: prose has no
127
+ meaningful line structure to preserve (a code block does — it keeps `wrap`
128
+ off by default for that reason). */
129
+ .w6w-result-viewer-text {
130
+ margin: 0;
131
+ white-space: pre-wrap;
132
+ word-break: break-word;
133
+ }
134
+ /* One indent step per nesting level, and no list markers: the `<summary>`
135
+ triangle already says "this node opens". */
136
+ .w6w-json-children {
137
+ padding-left: var(--w6w-sp-4);
138
+ }
139
+ /* Keys and counts recede; values stay the reading colour. */
140
+ .w6w-json-key,
141
+ .w6w-json-count {
142
+ color: var(--w6w-muted);
143
+ }
144
+ /* The sandboxed frame: fills the body's width and gives the preview a fixed
145
+ viewport (it cannot size itself to its own content from outside). `display:
146
+ block` is load-bearing — an inline iframe sits on a text baseline, so the
147
+ 3 px descender made the 320 px body scroll 3 px and drew a stray scrollbar. */
148
+ .w6w-html-preview {
149
+ display: block;
150
+ width: 100%;
151
+ height: 320px;
152
+ border: none;
153
+ background: var(--w6w-panel);
154
+ }
@@ -26,7 +26,9 @@
26
26
  * defined on :root so every `.w6w-*` component inherits them out of the box.
27
27
  */
28
28
 
29
- /* Light — the base defaults. */
29
+ /* Light — the base defaults.
30
+ `--w6w-loop-N` is the For each palette (flow-loop-colors.ts, LOOP_TONES): no red,
31
+ black or green, so a loop never reads as an error port or a success edge. */
30
32
  :where(:root) {
31
33
  --w6w-bg: #f7f8fa;
32
34
  --w6w-panel: #ffffff;
@@ -42,6 +44,12 @@
42
44
  --w6w-health-down: var(--w6w-danger);
43
45
  --w6w-health-unknown: #5f6875;
44
46
  --w6w-icon-swatch: #f0f2f6;
47
+ --w6w-loop-1: #2f6fdf;
48
+ --w6w-loop-2: #7c4ddb;
49
+ --w6w-loop-3: #b7791f;
50
+ --w6w-loop-4: #0e8fa8;
51
+ --w6w-loop-5: #b0399f;
52
+ --w6w-loop-6: #4f4fc7;
45
53
  --w6w-code-comment: #6b7280;
46
54
  --w6w-code-keyword: #8250df;
47
55
  --w6w-code-string: #0a7b34;
@@ -71,6 +79,12 @@
71
79
  --w6w-health-down: var(--w6w-danger);
72
80
  --w6w-health-unknown: #9aa3b2;
73
81
  --w6w-icon-swatch: #1f232c;
82
+ --w6w-loop-1: #5b9bff;
83
+ --w6w-loop-2: #a98bff;
84
+ --w6w-loop-3: #f0b13a;
85
+ --w6w-loop-4: #3cc6e0;
86
+ --w6w-loop-5: #e47ad6;
87
+ --w6w-loop-6: #8a8aff;
74
88
  --w6w-scheme: dark;
75
89
  --w6w-code-comment: #7d8797;
76
90
  --w6w-code-keyword: #d2a8ff;
@@ -100,6 +114,12 @@
100
114
  --w6w-health-down: var(--w6w-danger);
101
115
  --w6w-health-unknown: #5f6875;
102
116
  --w6w-icon-swatch: #f0f2f6;
117
+ --w6w-loop-1: #2f6fdf;
118
+ --w6w-loop-2: #7c4ddb;
119
+ --w6w-loop-3: #b7791f;
120
+ --w6w-loop-4: #0e8fa8;
121
+ --w6w-loop-5: #b0399f;
122
+ --w6w-loop-6: #4f4fc7;
103
123
  --w6w-code-comment: #6b7280;
104
124
  --w6w-code-keyword: #8250df;
105
125
  --w6w-code-string: #0a7b34;
@@ -124,6 +144,12 @@
124
144
  --w6w-health-down: var(--w6w-danger);
125
145
  --w6w-health-unknown: #9aa3b2;
126
146
  --w6w-icon-swatch: #1f232c;
147
+ --w6w-loop-1: #5b9bff;
148
+ --w6w-loop-2: #a98bff;
149
+ --w6w-loop-3: #f0b13a;
150
+ --w6w-loop-4: #3cc6e0;
151
+ --w6w-loop-5: #e47ad6;
152
+ --w6w-loop-6: #8a8aff;
127
153
  --w6w-code-comment: #7d8797;
128
154
  --w6w-code-keyword: #d2a8ff;
129
155
  --w6w-code-string: #7ee787;