@w6w/ui 0.2.0 → 0.2.54
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.
- package/CHANGELOG.md +146 -2
- package/README.md +28 -10
- package/dist/AppPicker.d.ts +58 -2
- package/dist/CanvasContextMenu.d.ts +19 -0
- package/dist/CanvasLayer.d.ts +38 -0
- package/dist/{CodeBlock-Dot3Pd7P.js → CodeBlock-C-oIIYfC.js} +1436 -555
- package/dist/CodeBlock-C-oIIYfC.js.map +1 -0
- package/dist/CodeBlock-CymlfyeA.cjs +15 -0
- package/dist/CodeBlock-CymlfyeA.cjs.map +1 -0
- package/dist/CodeEditor.d.ts +4 -1
- package/dist/ConditionEditor.d.ts +11 -0
- package/dist/EditConnectionModal.d.ts +6 -1
- package/dist/JsonEditor.d.ts +20 -0
- package/dist/Markdown.d.ts +25 -0
- package/dist/ParamCustomization.d.ts +5 -0
- package/dist/ParamsForm.d.ts +18 -4
- package/dist/RouterEditor.d.ts +5 -0
- package/dist/StepBuilderModal.d.ts +103 -15
- package/dist/StepNameEditor.d.ts +11 -0
- package/dist/StopEditor.d.ts +5 -0
- package/dist/TriggerFillForm.d.ts +14 -1
- package/dist/WebhookListenPanel.d.ts +28 -0
- package/dist/WorkflowConnections.d.ts +29 -0
- package/dist/WorkflowFlowEditor.d.ts +74 -7
- package/dist/app-pages.d.ts +2 -0
- package/dist/assets/script-completion.worker-DDJKkj5M.js +8290 -0
- package/dist/assets/script-completion.worker-DDJKkj5M.js.map +1 -0
- package/dist/canvas-context-menu.d.ts +27 -0
- package/dist/canvas-types.d.ts +36 -0
- package/dist/canvas-utils.d.ts +44 -0
- package/dist/code.cjs +1 -1
- package/dist/code.mjs +3 -4
- package/dist/code.mjs.map +1 -1
- package/dist/components/AnchoredFlyout.d.ts +7 -0
- package/dist/components/AuthFieldsForm.d.ts +11 -0
- package/dist/components/BudgetMeter.d.ts +15 -0
- package/dist/components/CallableList.d.ts +3 -2
- package/dist/components/ColumnsEditor.d.ts +27 -0
- package/dist/components/Combobox.d.ts +19 -1
- package/dist/components/ConnectionList.d.ts +2 -3
- package/dist/components/CredentialPicker.d.ts +35 -0
- package/dist/components/CsvPanel.d.ts +21 -0
- package/dist/components/DataEntryEditor.d.ts +38 -0
- package/dist/components/DataEntryList.d.ts +33 -0
- package/dist/components/DataStoreList.d.ts +33 -0
- package/dist/components/DataTable.d.ts +27 -0
- package/dist/components/DataTableGrid.d.ts +46 -0
- package/dist/components/EmptyState.d.ts +9 -0
- package/dist/components/EventbriteTriggerPicker.d.ts +7 -0
- package/dist/components/ExecutionDetail.d.ts +17 -1
- package/dist/components/ExecutionList.d.ts +19 -1
- package/dist/components/ExecutionLogPanel.d.ts +61 -3
- package/dist/components/ExpressionEditorModal.d.ts +33 -10
- package/dist/components/ExpressionOptions.d.ts +101 -15
- package/dist/components/HtmlPreview.d.ts +7 -0
- package/dist/components/JsonTree.d.ts +32 -0
- package/dist/components/ResolvedParams.d.ts +6 -1
- package/dist/components/ResultViewer.d.ts +46 -0
- package/dist/components/ScriptBindingsNotice.d.ts +31 -0
- package/dist/components/ScriptCodeField.d.ts +13 -0
- package/dist/components/StepStatusPill.d.ts +7 -0
- package/dist/components/expression-authoring.d.ts +13 -0
- package/dist/components/expression-dom.d.ts +17 -2
- package/dist/components/expression-template.d.ts +25 -3
- package/dist/components/icons.d.ts +1 -1
- package/dist/components/json-compose.d.ts +53 -0
- package/dist/components/result-format.d.ts +13 -0
- package/dist/condition-editor.d.ts +44 -0
- package/dist/data-stores/data-store-view.d.ts +371 -0
- package/dist/dynamic-fields.d.ts +60 -0
- package/dist/editor-theme.d.ts +24 -0
- package/dist/eventbrite-trigger-selection.d.ts +13 -0
- package/dist/flow-connect.d.ts +22 -16
- package/dist/flow-delete.d.ts +16 -0
- package/dist/flow-fanout.d.ts +2 -2
- package/dist/flow-history.d.ts +75 -0
- package/dist/flow-layout.d.ts +13 -0
- package/dist/flow-loop-colors.d.ts +39 -0
- package/dist/flow-loop.d.ts +98 -0
- package/dist/flow-node-flags.d.ts +14 -0
- package/dist/flow-problems.d.ts +69 -0
- package/dist/flow-state.d.ts +20 -0
- package/dist/flow-types.d.ts +155 -10
- package/dist/flow-utils.d.ts +33 -12
- package/dist/flow.cjs +4 -2
- package/dist/flow.cjs.map +1 -1
- package/dist/flow.d.ts +15 -2
- package/dist/flow.mjs +3737 -1350
- package/dist/flow.mjs.map +1 -1
- package/dist/index.cjs +2 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +43 -5
- package/dist/index.mjs +2855 -1333
- package/dist/index.mjs.map +1 -1
- package/dist/node-samples-ChdyMBnJ.cjs +22 -0
- package/dist/node-samples-ChdyMBnJ.cjs.map +1 -0
- package/dist/node-samples-DkJL07EX.js +12302 -0
- package/dist/node-samples-DkJL07EX.js.map +1 -0
- package/dist/node-samples.d.ts +80 -0
- package/dist/note-markdown.d.ts +22 -0
- package/dist/output-shape.d.ts +30 -14
- package/dist/param-customization.d.ts +7 -0
- package/dist/provider.d.ts +174 -13
- package/dist/resolve-params.d.ts +50 -11
- package/dist/run-visuals.d.ts +18 -22
- package/dist/script-bindings.d.ts +63 -0
- package/dist/script-completion-service.d.ts +9 -0
- package/dist/script-completion.worker.d.ts +1 -0
- package/dist/script-completions.d.ts +2 -0
- package/dist/state-shape.d.ts +38 -0
- package/dist/step-preview-state.d.ts +155 -6
- package/dist/step-problems.d.ts +64 -0
- package/dist/test-inputs.d.ts +25 -0
- package/dist/trigger-registration.d.ts +28 -0
- package/dist/types.d.ts +179 -11
- package/dist/use-app-action-defs.d.ts +9 -1
- package/dist/use-dynamic-fields.d.ts +23 -0
- package/dist/use-test-input.d.ts +18 -0
- package/dist/workflow-connections.d.ts +30 -0
- package/package.json +18 -7
- package/src/code.css +60 -6
- package/src/styles/_budget-meter.scss +46 -0
- package/src/styles/_callable-list.scss +15 -6
- package/src/styles/_canvas.scss +353 -0
- package/src/styles/_code-editor.scss +35 -0
- package/src/styles/_code.scss +6 -5
- package/src/styles/_connections.scss +2 -14
- package/src/styles/_copyable.scss +24 -0
- package/src/styles/_data-stores.scss +138 -0
- package/src/styles/_data-table.scss +55 -0
- package/src/styles/_data-vars.scss +17 -6
- package/src/styles/_empty-state.scss +21 -0
- package/src/styles/_execution-history.scss +73 -0
- package/src/styles/_execution-log.scss +145 -1
- package/src/styles/_expression-modal.scss +106 -16
- package/src/styles/_fields.scss +11 -0
- package/src/styles/_flow.scss +171 -0
- package/src/styles/_fx.scss +26 -1
- package/src/styles/_incoming-state.scss +33 -0
- package/src/styles/_layout.scss +10 -0
- package/src/styles/_markdown.scss +20 -0
- package/src/styles/_modal.scss +12 -0
- package/src/styles/_multiselect.scss +35 -0
- package/src/styles/_sections.scss +36 -0
- package/src/styles/_step-builder.scss +145 -0
- package/src/styles/_tester.scss +57 -14
- package/src/styles/_tokens.scss +27 -1
- package/src/styles.css +1861 -115
- package/src/styles.scss +7 -0
- package/dist/CodeBlock-CZu4TFSi.cjs +0 -15
- package/dist/CodeBlock-CZu4TFSi.cjs.map +0 -1
- package/dist/CodeBlock-Dot3Pd7P.js.map +0 -1
- package/dist/ConfirmModal-ChoiGy2K.cjs +0 -11
- package/dist/ConfirmModal-ChoiGy2K.cjs.map +0 -1
- package/dist/ConfirmModal-Wx3i8F1n.js +0 -6359
- package/dist/ConfirmModal-Wx3i8F1n.js.map +0 -1
- package/dist/Copyable-1niV9gUa.js +0 -771
- package/dist/Copyable-1niV9gUa.js.map +0 -1
- package/dist/Copyable-CYZU1o4X.cjs +0 -2
- package/dist/Copyable-CYZU1o4X.cjs.map +0 -1
package/src/styles/_layout.scss
CHANGED
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
/* Layout helpers */
|
|
2
|
+
|
|
3
|
+
/* A vertical column whose direct children are cards/panels. ONE gap, from the
|
|
4
|
+
shared spacing scale — never a per-screen number and never a second gap: do
|
|
5
|
+
not add this class to a container whose parent already gaps its children. */
|
|
6
|
+
.w6w-card-stack {
|
|
7
|
+
display: flex;
|
|
8
|
+
flex-direction: column;
|
|
9
|
+
gap: var(--w6w-sp-4);
|
|
10
|
+
}
|
|
11
|
+
|
|
2
12
|
.w6w-stack {
|
|
3
13
|
display: flex;
|
|
4
14
|
flex-direction: column;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/* Markdown: the leading YAML frontmatter, collapsed above the rendered body. The body itself
|
|
2
|
+
is unstyled here — the host styles it through the `className` it passes. */
|
|
3
|
+
.w6w-md-frontmatter {
|
|
4
|
+
margin-bottom: var(--w6w-sp-2);
|
|
5
|
+
border: 1px solid var(--w6w-border);
|
|
6
|
+
border-radius: 8px;
|
|
7
|
+
padding: var(--w6w-sp-1-5) var(--w6w-sp-2-5);
|
|
8
|
+
font-size: var(--w6w-fs-sm);
|
|
9
|
+
}
|
|
10
|
+
.w6w-md-frontmatter > summary {
|
|
11
|
+
cursor: pointer;
|
|
12
|
+
color: var(--w6w-muted);
|
|
13
|
+
}
|
|
14
|
+
.w6w-md-frontmatter > pre {
|
|
15
|
+
margin: var(--w6w-sp-2) 0 0;
|
|
16
|
+
overflow-x: auto;
|
|
17
|
+
font-family: var(--w6w-font-mono);
|
|
18
|
+
white-space: pre-wrap;
|
|
19
|
+
overflow-wrap: anywhere;
|
|
20
|
+
}
|
package/src/styles/_modal.scss
CHANGED
|
@@ -123,3 +123,15 @@ dialog.w6w-modal.w6w-modal-fullscreen .w6w-modal-header {
|
|
|
123
123
|
gap: var(--w6w-sp-1);
|
|
124
124
|
flex-shrink: 0;
|
|
125
125
|
}
|
|
126
|
+
|
|
127
|
+
.w6w-json-customized {
|
|
128
|
+
align-self: center;
|
|
129
|
+
border: 1px solid var(--w6w-accent);
|
|
130
|
+
border-radius: var(--w6w-radius-sm, 3px);
|
|
131
|
+
padding: 3px 7px;
|
|
132
|
+
background: color-mix(in srgb, var(--w6w-accent) 8%, transparent);
|
|
133
|
+
color: var(--w6w-accent);
|
|
134
|
+
font: inherit;
|
|
135
|
+
font-size: 11px;
|
|
136
|
+
cursor: pointer;
|
|
137
|
+
}
|
|
@@ -67,3 +67,38 @@
|
|
|
67
67
|
background: var(--w6w-border);
|
|
68
68
|
color: var(--w6w-text);
|
|
69
69
|
}
|
|
70
|
+
|
|
71
|
+
// An explicit schema hint exposes all choices as checkboxes without changing the value shape.
|
|
72
|
+
.w6w-fx-wrap:has(> .w6w-multiselect-checks) { align-items: flex-start; }
|
|
73
|
+
.w6w-multiselect-checks { padding: var(--w6w-sp-1) 0; }
|
|
74
|
+
.w6w-multiselect-checks-toolbar {
|
|
75
|
+
display: flex;
|
|
76
|
+
align-items: center;
|
|
77
|
+
gap: var(--w6w-sp-3);
|
|
78
|
+
margin-bottom: var(--w6w-sp-2);
|
|
79
|
+
}
|
|
80
|
+
.w6w-multiselect-checks-options {
|
|
81
|
+
border: 0;
|
|
82
|
+
padding: 0;
|
|
83
|
+
margin: 0;
|
|
84
|
+
min-width: 0;
|
|
85
|
+
display: grid;
|
|
86
|
+
grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr));
|
|
87
|
+
gap: var(--w6w-sp-2) var(--w6w-sp-4);
|
|
88
|
+
max-height: 240px;
|
|
89
|
+
overflow-y: auto;
|
|
90
|
+
}
|
|
91
|
+
.w6w-field .w6w-multiselect-check {
|
|
92
|
+
display: flex;
|
|
93
|
+
align-items: center;
|
|
94
|
+
gap: var(--w6w-sp-2);
|
|
95
|
+
margin: 0;
|
|
96
|
+
font-size: var(--w6w-fs-sm);
|
|
97
|
+
cursor: pointer;
|
|
98
|
+
}
|
|
99
|
+
.w6w-field .w6w-multiselect-check input[type="checkbox"] {
|
|
100
|
+
width: auto;
|
|
101
|
+
margin: 0;
|
|
102
|
+
flex-shrink: 0;
|
|
103
|
+
accent-color: var(--w6w-accent);
|
|
104
|
+
}
|
|
@@ -33,4 +33,40 @@
|
|
|
33
33
|
align-items: center;
|
|
34
34
|
gap: var(--w6w-sp-2-5);
|
|
35
35
|
}
|
|
36
|
+
/* Webhook "Listen for test event": the waiting row, its pulse, and the folded manual payload. */
|
|
37
|
+
.w6w-listen-waiting {
|
|
38
|
+
display: flex;
|
|
39
|
+
align-items: center;
|
|
40
|
+
gap: var(--w6w-sp-2-5);
|
|
41
|
+
min-width: 0;
|
|
42
|
+
code {
|
|
43
|
+
word-break: break-all;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
.w6w-listen-pulse {
|
|
47
|
+
flex-shrink: 0;
|
|
48
|
+
width: 8px;
|
|
49
|
+
height: 8px;
|
|
50
|
+
border-radius: 50%;
|
|
51
|
+
background: var(--w6w-accent);
|
|
52
|
+
animation: w6w-listen-pulse 1.2s ease-in-out infinite;
|
|
53
|
+
}
|
|
54
|
+
@keyframes w6w-listen-pulse {
|
|
55
|
+
0%,
|
|
56
|
+
100% {
|
|
57
|
+
opacity: 1;
|
|
58
|
+
}
|
|
59
|
+
50% {
|
|
60
|
+
opacity: 0.25;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
@media (prefers-reduced-motion: reduce) {
|
|
64
|
+
.w6w-listen-pulse {
|
|
65
|
+
animation: none;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
.w6w-listen-manual > summary {
|
|
69
|
+
cursor: pointer;
|
|
70
|
+
margin-bottom: var(--w6w-sp-2);
|
|
71
|
+
}
|
|
36
72
|
/* A labeled test-run output block (Result vs Console). */
|
|
@@ -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
|
+
}
|
package/src/styles/_tester.scss
CHANGED
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
|
|
37
37
|
/* Host-embedded ActionTestForm (studio's ConnectionTesterModal wraps it in its
|
|
38
38
|
OWN full modal). The widget then fills that modal as a full-height flex column:
|
|
39
|
-
the params
|
|
39
|
+
the params / result / saved-tests cards scroll, and the action bar is a bottom-pinned,
|
|
40
40
|
non-scrolling footer. These classes are only applied in `embedded` mode, so the
|
|
41
41
|
inline / own-pop-out layout is untouched. */
|
|
42
42
|
.w6w-tester-embedded-root {
|
|
@@ -54,19 +54,6 @@
|
|
|
54
54
|
min-height: 0;
|
|
55
55
|
overflow: auto;
|
|
56
56
|
}
|
|
57
|
-
.w6w-tester-embedded-cols {
|
|
58
|
-
display: flex;
|
|
59
|
-
gap: var(--w6w-sp-4);
|
|
60
|
-
align-items: flex-start;
|
|
61
|
-
}
|
|
62
|
-
.w6w-tester-embedded-main {
|
|
63
|
-
flex: 1;
|
|
64
|
-
min-width: 0;
|
|
65
|
-
}
|
|
66
|
-
.w6w-tester-embedded-rail {
|
|
67
|
-
width: 260px;
|
|
68
|
-
flex-shrink: 0;
|
|
69
|
-
}
|
|
70
57
|
/* The action bar as a pinned footer: kept out of the scroll region and separated
|
|
71
58
|
with a top border so Run / Save / Delete stay visible however long the params. */
|
|
72
59
|
.w6w-tester-actions-footer {
|
|
@@ -109,3 +96,59 @@
|
|
|
109
96
|
baseline bar, `degraded` taller, `down` the full cell, and `unknown` a hatched
|
|
110
97
|
outline with no solid fill (nothing was measured: not a good day, not a bad
|
|
111
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
|
+
}
|
package/src/styles/_tokens.scss
CHANGED
|
@@ -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;
|