@w6w/ui 0.2.0 → 0.2.11
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 +7 -0
- package/dist/AppPicker.d.ts +47 -2
- package/dist/CanvasLayer.d.ts +38 -0
- package/dist/{CodeBlock-Dot3Pd7P.js → CodeBlock-BqXDA35P.js} +2 -2
- package/dist/{CodeBlock-Dot3Pd7P.js.map → CodeBlock-BqXDA35P.js.map} +1 -1
- package/dist/{CodeBlock-CZu4TFSi.cjs → CodeBlock-CulfbnZD.cjs} +2 -2
- package/dist/{CodeBlock-CZu4TFSi.cjs.map → CodeBlock-CulfbnZD.cjs.map} +1 -1
- package/dist/ConfirmModal-Ln99S9NT.js +7919 -0
- package/dist/ConfirmModal-Ln99S9NT.js.map +1 -0
- package/dist/ConfirmModal-fjHW5rN-.cjs +14 -0
- package/dist/ConfirmModal-fjHW5rN-.cjs.map +1 -0
- package/dist/Copyable-DA6eiU7w.cjs +2 -0
- package/dist/Copyable-DA6eiU7w.cjs.map +1 -0
- package/dist/{Copyable-1niV9gUa.js → Copyable-F4NTaG77.js} +91 -15
- package/dist/Copyable-F4NTaG77.js.map +1 -0
- package/dist/EditConnectionModal.d.ts +6 -1
- package/dist/JsonEditor.d.ts +8 -0
- package/dist/Markdown.d.ts +25 -0
- package/dist/ParamsForm.d.ts +7 -1
- package/dist/StepBuilderModal.d.ts +23 -5
- package/dist/WorkflowFlowEditor.d.ts +14 -3
- package/dist/app-pages.d.ts +2 -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 +2 -2
- 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/Combobox.d.ts +8 -1
- package/dist/components/ConnectionList.d.ts +2 -3
- package/dist/components/CredentialPicker.d.ts +35 -0
- package/dist/components/DataTable.d.ts +27 -0
- package/dist/components/EmptyState.d.ts +9 -0
- package/dist/components/icons.d.ts +1 -1
- package/dist/dynamic-fields.d.ts +60 -0
- package/dist/editor-theme.d.ts +24 -0
- package/dist/flow-fanout.d.ts +2 -2
- package/dist/flow-types.d.ts +18 -1
- package/dist/flow-utils.d.ts +10 -3
- package/dist/flow.cjs +2 -2
- package/dist/flow.cjs.map +1 -1
- package/dist/flow.d.ts +9 -0
- package/dist/flow.mjs +1519 -1138
- package/dist/flow.mjs.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +14 -2
- package/dist/index.mjs +1362 -1123
- package/dist/index.mjs.map +1 -1
- package/dist/note-markdown.d.ts +22 -0
- package/dist/provider.d.ts +56 -7
- package/dist/resolve-params.d.ts +5 -0
- package/dist/run-visuals.d.ts +4 -1
- package/dist/step-problems.d.ts +34 -0
- package/dist/types.d.ts +109 -3
- package/dist/use-dynamic-fields.d.ts +23 -0
- package/package.json +4 -2
- package/src/styles/_budget-meter.scss +46 -0
- package/src/styles/_callable-list.scss +15 -6
- package/src/styles/_canvas.scss +318 -0
- package/src/styles/_connections.scss +2 -14
- package/src/styles/_data-table.scss +55 -0
- package/src/styles/_empty-state.scss +21 -0
- package/src/styles/_flow.scss +11 -0
- package/src/styles/_fx.scss +23 -0
- package/src/styles/_layout.scss +10 -0
- package/src/styles/_markdown.scss +20 -0
- package/src/styles/_tester.scss +1 -14
- package/src/styles.css +572 -39
- package/src/styles.scss +5 -0
- 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.map +0 -1
- package/dist/Copyable-CYZU1o4X.cjs +0 -2
- package/dist/Copyable-CYZU1o4X.cjs.map +0 -1
package/src/styles.css
CHANGED
|
@@ -914,6 +914,15 @@ svg.react-flow__connectionline {
|
|
|
914
914
|
* uncoordinated ones exist across the four repos today).
|
|
915
915
|
*/
|
|
916
916
|
/* Layout helpers */
|
|
917
|
+
/* A vertical column whose direct children are cards/panels. ONE gap, from the
|
|
918
|
+
shared spacing scale — never a per-screen number and never a second gap: do
|
|
919
|
+
not add this class to a container whose parent already gaps its children. */
|
|
920
|
+
.w6w-card-stack {
|
|
921
|
+
display: flex;
|
|
922
|
+
flex-direction: column;
|
|
923
|
+
gap: var(--w6w-sp-4);
|
|
924
|
+
}
|
|
925
|
+
|
|
917
926
|
.w6w-stack {
|
|
918
927
|
display: flex;
|
|
919
928
|
flex-direction: column;
|
|
@@ -1804,6 +1813,32 @@ select optgroup {
|
|
|
1804
1813
|
color: var(--w6w-accent);
|
|
1805
1814
|
}
|
|
1806
1815
|
|
|
1816
|
+
/* The json param's ƒx rides INSIDE the editor box, top-right, as the editor's
|
|
1817
|
+
`overlay` (same mechanism as the `copyable` button in `_step-config.scss`).
|
|
1818
|
+
Opaque backdrop because it sits on line 1; the text keeps right padding so
|
|
1819
|
+
it is never covered; with `copyable` on it steps left of the copy button. */
|
|
1820
|
+
.w6w-json-editor > .w6w-expr-fx {
|
|
1821
|
+
position: absolute;
|
|
1822
|
+
top: var(--w6w-sp-1);
|
|
1823
|
+
right: var(--w6w-sp-1);
|
|
1824
|
+
z-index: 1;
|
|
1825
|
+
border: none;
|
|
1826
|
+
background: var(--w6w-panel);
|
|
1827
|
+
border-radius: 6px;
|
|
1828
|
+
}
|
|
1829
|
+
|
|
1830
|
+
.w6w-json-editor:has(> .w6w-expr-fx) .cm-content {
|
|
1831
|
+
padding-right: var(--w6w-sp-10);
|
|
1832
|
+
}
|
|
1833
|
+
|
|
1834
|
+
.w6w-json-editor:has(> .w6w-copyable-btn) > .w6w-expr-fx {
|
|
1835
|
+
right: calc(var(--w6w-sp-1) * 2 + var(--w6w-sp-8));
|
|
1836
|
+
}
|
|
1837
|
+
|
|
1838
|
+
.w6w-json-editor:has(> .w6w-copyable-btn):has(> .w6w-expr-fx) .cm-content {
|
|
1839
|
+
padding-right: var(--w6w-sp-20);
|
|
1840
|
+
}
|
|
1841
|
+
|
|
1807
1842
|
/* Copyable — an in-box copy affordance decorating a value-displaying control
|
|
1808
1843
|
(an <input>, a <textarea>, or CodeBlock's <pre>). Mirrors `.w6w-fx-wrap`
|
|
1809
1844
|
(`_fx.scss:1-88`): the WRAPPER owns the box chrome and every child it holds
|
|
@@ -3444,6 +3479,17 @@ dialog.w6w-modal.w6w-modal-fullscreen .w6w-modal-header {
|
|
|
3444
3479
|
white-space: nowrap;
|
|
3445
3480
|
}
|
|
3446
3481
|
|
|
3482
|
+
/* A trigger node's card (ControlNodeCard, `isTrigger`) — a half-pill: fully
|
|
3483
|
+
rounded entry (left) edge, the ordinary 4px corner on the exit (right) edge,
|
|
3484
|
+
so a run's start reads apart from the steps it feeds. No radius token
|
|
3485
|
+
exists beyond --w6w-radius (10px), hence the literals. Wider left inset
|
|
3486
|
+
clears the curve. */
|
|
3487
|
+
.w6w-flow .w6w-node-trigger {
|
|
3488
|
+
border-radius: 999px 4px 4px 999px;
|
|
3489
|
+
/* lint-tokens-allow: 14px right inset matches the non-trigger card's inline padding */
|
|
3490
|
+
padding: var(--w6w-sp-1-5) 14px var(--w6w-sp-1-5) var(--w6w-sp-4);
|
|
3491
|
+
}
|
|
3492
|
+
|
|
3447
3493
|
/* The ordinary (success) ports — bumped from the library's own 6px default
|
|
3448
3494
|
(2026-08-30: "ports must have consistent size") to match the error port
|
|
3449
3495
|
below exactly. `:not(.w6w-handle-multi)`: the multi-input handle is its
|
|
@@ -3648,7 +3694,7 @@ dialog.w6w-modal.w6w-modal-fullscreen .w6w-modal-header {
|
|
|
3648
3694
|
|
|
3649
3695
|
/* Host-embedded ActionTestForm (studio's ConnectionTesterModal wraps it in its
|
|
3650
3696
|
OWN full modal). The widget then fills that modal as a full-height flex column:
|
|
3651
|
-
the params
|
|
3697
|
+
the params / result / saved-tests cards scroll, and the action bar is a bottom-pinned,
|
|
3652
3698
|
non-scrolling footer. These classes are only applied in `embedded` mode, so the
|
|
3653
3699
|
inline / own-pop-out layout is untouched. */
|
|
3654
3700
|
.w6w-tester-embedded-root {
|
|
@@ -3669,22 +3715,6 @@ dialog.w6w-modal.w6w-modal-fullscreen .w6w-modal-header {
|
|
|
3669
3715
|
overflow: auto;
|
|
3670
3716
|
}
|
|
3671
3717
|
|
|
3672
|
-
.w6w-tester-embedded-cols {
|
|
3673
|
-
display: flex;
|
|
3674
|
-
gap: var(--w6w-sp-4);
|
|
3675
|
-
align-items: flex-start;
|
|
3676
|
-
}
|
|
3677
|
-
|
|
3678
|
-
.w6w-tester-embedded-main {
|
|
3679
|
-
flex: 1;
|
|
3680
|
-
min-width: 0;
|
|
3681
|
-
}
|
|
3682
|
-
|
|
3683
|
-
.w6w-tester-embedded-rail {
|
|
3684
|
-
width: 260px;
|
|
3685
|
-
flex-shrink: 0;
|
|
3686
|
-
}
|
|
3687
|
-
|
|
3688
3718
|
/* The action bar as a pinned footer: kept out of the scroll region and separated
|
|
3689
3719
|
with a top border so Run / Save / Delete stay visible however long the params. */
|
|
3690
3720
|
.w6w-tester-actions-footer {
|
|
@@ -5341,16 +5371,23 @@ button.w6w-rel-open:focus-visible strong {
|
|
|
5341
5371
|
.w6w-callable-list-body {
|
|
5342
5372
|
border: 1px solid var(--w6w-border);
|
|
5343
5373
|
border-radius: 8px;
|
|
5344
|
-
|
|
5374
|
+
background: var(--w6w-panel);
|
|
5375
|
+
overflow: hidden;
|
|
5345
5376
|
}
|
|
5346
5377
|
|
|
5347
|
-
.w6w-callable-list-
|
|
5348
|
-
list-style: none;
|
|
5349
|
-
margin: 0;
|
|
5350
|
-
padding: 0;
|
|
5378
|
+
.w6w-callable-list-main {
|
|
5351
5379
|
display: flex;
|
|
5352
5380
|
flex-direction: column;
|
|
5353
|
-
gap: var(--w6w-sp-
|
|
5381
|
+
gap: var(--w6w-sp-0-5);
|
|
5382
|
+
min-width: 0;
|
|
5383
|
+
text-align: left;
|
|
5384
|
+
}
|
|
5385
|
+
|
|
5386
|
+
.w6w-callable-list-open {
|
|
5387
|
+
all: unset;
|
|
5388
|
+
cursor: pointer;
|
|
5389
|
+
display: block;
|
|
5390
|
+
width: 100%;
|
|
5354
5391
|
}
|
|
5355
5392
|
|
|
5356
5393
|
.w6w-callable-list-trail {
|
|
@@ -5367,6 +5404,75 @@ button.w6w-rel-open:focus-visible strong {
|
|
|
5367
5404
|
font-size: var(--w6w-fs-xs);
|
|
5368
5405
|
}
|
|
5369
5406
|
|
|
5407
|
+
.w6w-callable-list-row-desc {
|
|
5408
|
+
display: block;
|
|
5409
|
+
}
|
|
5410
|
+
|
|
5411
|
+
/* The frame is the ONLY element of a DataTable that draws an outer border and a
|
|
5412
|
+
radius (T-3). `overflow: hidden` clips the cells at the rounded corners, so
|
|
5413
|
+
the table below never needs an outer edge of its own. */
|
|
5414
|
+
.w6w-data-table-frame {
|
|
5415
|
+
border: 1px solid var(--w6w-border);
|
|
5416
|
+
border-radius: var(--w6w-radius);
|
|
5417
|
+
background: var(--w6w-panel);
|
|
5418
|
+
overflow: hidden;
|
|
5419
|
+
}
|
|
5420
|
+
|
|
5421
|
+
/* No outer border here (T-3): the frame above already draws it. */
|
|
5422
|
+
.w6w-data-table {
|
|
5423
|
+
width: 100%;
|
|
5424
|
+
border-collapse: collapse;
|
|
5425
|
+
color: var(--w6w-text);
|
|
5426
|
+
}
|
|
5427
|
+
|
|
5428
|
+
/* Inner separators only (T-3): a right border on every cell but the last column
|
|
5429
|
+
and a bottom border on every row but the last. First column, first row, last
|
|
5430
|
+
column and last row therefore paint nothing on the outside — one border per
|
|
5431
|
+
outer edge, from the frame. */
|
|
5432
|
+
.w6w-data-table th,
|
|
5433
|
+
.w6w-data-table td {
|
|
5434
|
+
border-right: 1px solid var(--w6w-border);
|
|
5435
|
+
border-bottom: 1px solid var(--w6w-border);
|
|
5436
|
+
padding: var(--w6w-sp-2) var(--w6w-sp-3);
|
|
5437
|
+
text-align: left;
|
|
5438
|
+
vertical-align: middle;
|
|
5439
|
+
}
|
|
5440
|
+
|
|
5441
|
+
.w6w-data-table th:last-child,
|
|
5442
|
+
.w6w-data-table td:last-child {
|
|
5443
|
+
border-right: 0;
|
|
5444
|
+
}
|
|
5445
|
+
|
|
5446
|
+
.w6w-data-table tbody tr:last-child > td {
|
|
5447
|
+
border-bottom: 0;
|
|
5448
|
+
}
|
|
5449
|
+
|
|
5450
|
+
/* Header-only table (rows=[] + loading, e.g. a list still fetching): there is no
|
|
5451
|
+
`tbody tr:last-child` to strip, so the header's bottom border would sit right
|
|
5452
|
+
on top of the frame's own bottom edge and paint it twice. With no body row the
|
|
5453
|
+
header is the last row, so it paints no bottom border — the frame supplies it. */
|
|
5454
|
+
.w6w-data-table:not(:has(tbody tr)) th {
|
|
5455
|
+
border-bottom: 0;
|
|
5456
|
+
}
|
|
5457
|
+
|
|
5458
|
+
.w6w-data-table th {
|
|
5459
|
+
color: var(--w6w-muted);
|
|
5460
|
+
}
|
|
5461
|
+
|
|
5462
|
+
.w6w-data-table-row-clickable {
|
|
5463
|
+
cursor: pointer;
|
|
5464
|
+
}
|
|
5465
|
+
|
|
5466
|
+
.w6w-data-table-row-clickable:hover {
|
|
5467
|
+
background: var(--w6w-panel-2);
|
|
5468
|
+
}
|
|
5469
|
+
|
|
5470
|
+
.w6w-data-table-link {
|
|
5471
|
+
display: block;
|
|
5472
|
+
color: inherit;
|
|
5473
|
+
text-decoration: none;
|
|
5474
|
+
}
|
|
5475
|
+
|
|
5370
5476
|
/* Connections (D-12u): ConnectionList, ConnectionHeader and the state tags they share. */
|
|
5371
5477
|
.w6w-connection-list {
|
|
5372
5478
|
display: flex;
|
|
@@ -5391,26 +5497,12 @@ button.w6w-rel-open:focus-visible strong {
|
|
|
5391
5497
|
flex-shrink: 0;
|
|
5392
5498
|
}
|
|
5393
5499
|
|
|
5394
|
-
.w6w-connection-
|
|
5395
|
-
|
|
5396
|
-
margin: 0;
|
|
5397
|
-
padding: 0;
|
|
5398
|
-
display: flex;
|
|
5399
|
-
flex-direction: column;
|
|
5400
|
-
gap: var(--w6w-sp-1);
|
|
5401
|
-
}
|
|
5402
|
-
|
|
5403
|
-
.w6w-connection-row {
|
|
5404
|
-
display: flex;
|
|
5500
|
+
.w6w-connection-cell-name {
|
|
5501
|
+
display: inline-flex;
|
|
5405
5502
|
align-items: center;
|
|
5406
5503
|
gap: var(--w6w-sp-2);
|
|
5407
5504
|
}
|
|
5408
5505
|
|
|
5409
|
-
.w6w-connection-row-main {
|
|
5410
|
-
flex: 1;
|
|
5411
|
-
min-width: 0;
|
|
5412
|
-
}
|
|
5413
|
-
|
|
5414
5506
|
.w6w-connection-row-actions {
|
|
5415
5507
|
display: flex;
|
|
5416
5508
|
gap: var(--w6w-sp-1-5);
|
|
@@ -5484,3 +5576,444 @@ button.w6w-rel-open:focus-visible strong {
|
|
|
5484
5576
|
.w6w-connection-id-copy:focus-within .w6w-copyable-btn {
|
|
5485
5577
|
opacity: 1;
|
|
5486
5578
|
}
|
|
5579
|
+
|
|
5580
|
+
.w6w-empty-state {
|
|
5581
|
+
position: relative;
|
|
5582
|
+
min-height: 10rem;
|
|
5583
|
+
background: var(--w6w-panel);
|
|
5584
|
+
color: var(--w6w-text);
|
|
5585
|
+
border: 1px solid var(--w6w-border);
|
|
5586
|
+
}
|
|
5587
|
+
|
|
5588
|
+
.w6w-empty-state-inner {
|
|
5589
|
+
position: absolute;
|
|
5590
|
+
top: 50%;
|
|
5591
|
+
left: 50%;
|
|
5592
|
+
transform: translate(-50%, -50%);
|
|
5593
|
+
display: flex;
|
|
5594
|
+
flex-direction: column;
|
|
5595
|
+
align-items: center;
|
|
5596
|
+
gap: var(--w6w-sp-2);
|
|
5597
|
+
text-align: center;
|
|
5598
|
+
}
|
|
5599
|
+
|
|
5600
|
+
.w6w-empty-state-body {
|
|
5601
|
+
color: var(--w6w-muted);
|
|
5602
|
+
}
|
|
5603
|
+
|
|
5604
|
+
.w6w-canvas-layer {
|
|
5605
|
+
position: absolute;
|
|
5606
|
+
top: 0;
|
|
5607
|
+
left: 0;
|
|
5608
|
+
width: 0;
|
|
5609
|
+
height: 0;
|
|
5610
|
+
overflow: visible;
|
|
5611
|
+
pointer-events: none;
|
|
5612
|
+
}
|
|
5613
|
+
|
|
5614
|
+
.w6w-canvas-section,
|
|
5615
|
+
.w6w-canvas-note {
|
|
5616
|
+
position: absolute;
|
|
5617
|
+
box-sizing: border-box;
|
|
5618
|
+
border: 1px solid var(--w6w-canvas-color, var(--w6w-border));
|
|
5619
|
+
border-radius: var(--w6w-radius, 6px);
|
|
5620
|
+
background: color-mix(in srgb, var(--w6w-canvas-color, var(--w6w-panel)) 14%, transparent);
|
|
5621
|
+
pointer-events: none;
|
|
5622
|
+
}
|
|
5623
|
+
|
|
5624
|
+
.w6w-canvas-note {
|
|
5625
|
+
border-color: color-mix(in srgb, var(--w6w-canvas-color, var(--w6w-border)) 55%, var(--w6w-panel));
|
|
5626
|
+
background: color-mix(in srgb, var(--w6w-canvas-color, var(--w6w-panel)) 32%, var(--w6w-panel));
|
|
5627
|
+
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
|
|
5628
|
+
}
|
|
5629
|
+
|
|
5630
|
+
.w6w-canvas-note.selected,
|
|
5631
|
+
.w6w-canvas-section.selected {
|
|
5632
|
+
outline: 2px solid var(--w6w-accent);
|
|
5633
|
+
outline-offset: 2px;
|
|
5634
|
+
}
|
|
5635
|
+
|
|
5636
|
+
.w6w-canvas-note-body {
|
|
5637
|
+
pointer-events: auto;
|
|
5638
|
+
color: var(--w6w-text);
|
|
5639
|
+
}
|
|
5640
|
+
|
|
5641
|
+
.w6w-canvas-section-title {
|
|
5642
|
+
position: absolute;
|
|
5643
|
+
max-width: 320px;
|
|
5644
|
+
overflow: hidden;
|
|
5645
|
+
padding: var(--w6w-sp-0-5) var(--w6w-sp-1-5);
|
|
5646
|
+
border-radius: 6px;
|
|
5647
|
+
color: color-mix(in srgb, var(--w6w-canvas-color, var(--w6w-text)) 55%, var(--w6w-text));
|
|
5648
|
+
font-size: var(--w6w-fs-sm);
|
|
5649
|
+
font-weight: var(--w6w-fw-semibold);
|
|
5650
|
+
text-overflow: ellipsis;
|
|
5651
|
+
white-space: nowrap;
|
|
5652
|
+
}
|
|
5653
|
+
|
|
5654
|
+
.w6w-canvas-section-title.editable {
|
|
5655
|
+
pointer-events: auto;
|
|
5656
|
+
cursor: grab;
|
|
5657
|
+
touch-action: none;
|
|
5658
|
+
}
|
|
5659
|
+
|
|
5660
|
+
.w6w-canvas-section-title.editable:hover {
|
|
5661
|
+
background: color-mix(in srgb, var(--w6w-canvas-color, var(--w6w-panel)) 18%, transparent);
|
|
5662
|
+
}
|
|
5663
|
+
|
|
5664
|
+
.w6w-canvas-note-body {
|
|
5665
|
+
box-sizing: border-box;
|
|
5666
|
+
height: 100%;
|
|
5667
|
+
overflow: auto;
|
|
5668
|
+
padding: var(--w6w-sp-3) var(--w6w-sp-3);
|
|
5669
|
+
font-size: var(--w6w-fs-sm);
|
|
5670
|
+
line-height: var(--w6w-lh-normal);
|
|
5671
|
+
overflow-wrap: anywhere;
|
|
5672
|
+
}
|
|
5673
|
+
.w6w-canvas-note-body h1,
|
|
5674
|
+
.w6w-canvas-note-body h2,
|
|
5675
|
+
.w6w-canvas-note-body h3,
|
|
5676
|
+
.w6w-canvas-note-body h4,
|
|
5677
|
+
.w6w-canvas-note-body h5,
|
|
5678
|
+
.w6w-canvas-note-body h6,
|
|
5679
|
+
.w6w-canvas-note-body p,
|
|
5680
|
+
.w6w-canvas-note-body ul,
|
|
5681
|
+
.w6w-canvas-note-body ol {
|
|
5682
|
+
margin: 0 0 var(--w6w-sp-1);
|
|
5683
|
+
}
|
|
5684
|
+
.w6w-canvas-note-body h1 {
|
|
5685
|
+
font-size: var(--w6w-fs-2xl);
|
|
5686
|
+
line-height: var(--w6w-lh-tight);
|
|
5687
|
+
}
|
|
5688
|
+
.w6w-canvas-note-body h2 {
|
|
5689
|
+
font-size: var(--w6w-fs-xl);
|
|
5690
|
+
line-height: var(--w6w-lh-tight);
|
|
5691
|
+
}
|
|
5692
|
+
.w6w-canvas-note-body h3 {
|
|
5693
|
+
font-size: var(--w6w-fs-lg);
|
|
5694
|
+
line-height: var(--w6w-lh-tight);
|
|
5695
|
+
}
|
|
5696
|
+
.w6w-canvas-note-body h4,
|
|
5697
|
+
.w6w-canvas-note-body h5,
|
|
5698
|
+
.w6w-canvas-note-body h6 {
|
|
5699
|
+
font-size: var(--w6w-fs-base);
|
|
5700
|
+
}
|
|
5701
|
+
|
|
5702
|
+
.w6w-canvas-note-editor {
|
|
5703
|
+
outline: none;
|
|
5704
|
+
cursor: text;
|
|
5705
|
+
}
|
|
5706
|
+
.w6w-canvas-note-editor > div,
|
|
5707
|
+
.w6w-canvas-note-editor > h1,
|
|
5708
|
+
.w6w-canvas-note-editor > h2,
|
|
5709
|
+
.w6w-canvas-note-editor > h3,
|
|
5710
|
+
.w6w-canvas-note-editor > h4,
|
|
5711
|
+
.w6w-canvas-note-editor > h5,
|
|
5712
|
+
.w6w-canvas-note-editor > h6 {
|
|
5713
|
+
margin: 0;
|
|
5714
|
+
}
|
|
5715
|
+
|
|
5716
|
+
.w6w-note-resize {
|
|
5717
|
+
position: absolute;
|
|
5718
|
+
right: var(--w6w-sp-0-5);
|
|
5719
|
+
bottom: var(--w6w-sp-0-5);
|
|
5720
|
+
width: 14px;
|
|
5721
|
+
height: 14px;
|
|
5722
|
+
cursor: nwse-resize;
|
|
5723
|
+
pointer-events: auto;
|
|
5724
|
+
touch-action: none;
|
|
5725
|
+
opacity: 0;
|
|
5726
|
+
background: linear-gradient(135deg, transparent 45%, var(--w6w-muted) 45% 52%, transparent 52% 70%, var(--w6w-muted) 70% 77%, transparent 77%);
|
|
5727
|
+
}
|
|
5728
|
+
|
|
5729
|
+
.w6w-canvas-note:hover .w6w-note-resize,
|
|
5730
|
+
.w6w-canvas-note.selected .w6w-note-resize,
|
|
5731
|
+
.w6w-canvas-section.selected .w6w-note-resize {
|
|
5732
|
+
opacity: 1;
|
|
5733
|
+
}
|
|
5734
|
+
|
|
5735
|
+
.w6w-canvas-note-empty {
|
|
5736
|
+
color: var(--w6w-muted);
|
|
5737
|
+
font-style: italic;
|
|
5738
|
+
}
|
|
5739
|
+
|
|
5740
|
+
.w6w-note-toolbar {
|
|
5741
|
+
position: absolute;
|
|
5742
|
+
display: flex;
|
|
5743
|
+
align-items: center;
|
|
5744
|
+
gap: var(--w6w-sp-0-5);
|
|
5745
|
+
padding: var(--w6w-sp-1);
|
|
5746
|
+
background: var(--w6w-panel);
|
|
5747
|
+
color: var(--w6w-text);
|
|
5748
|
+
border: 1px solid var(--w6w-border);
|
|
5749
|
+
border-radius: 10px;
|
|
5750
|
+
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);
|
|
5751
|
+
font-size: var(--w6w-fs-sm);
|
|
5752
|
+
white-space: nowrap;
|
|
5753
|
+
pointer-events: auto;
|
|
5754
|
+
}
|
|
5755
|
+
.w6w-note-toolbar .w6w-icon-btn {
|
|
5756
|
+
gap: var(--w6w-sp-1);
|
|
5757
|
+
padding: var(--w6w-sp-1-5);
|
|
5758
|
+
color: var(--w6w-text);
|
|
5759
|
+
}
|
|
5760
|
+
|
|
5761
|
+
.w6w-note-toolbar-group {
|
|
5762
|
+
position: relative;
|
|
5763
|
+
display: inline-flex;
|
|
5764
|
+
}
|
|
5765
|
+
|
|
5766
|
+
.w6w-note-toolbar-sep {
|
|
5767
|
+
align-self: stretch;
|
|
5768
|
+
width: 1px;
|
|
5769
|
+
margin: var(--w6w-sp-0-5) var(--w6w-sp-0-5);
|
|
5770
|
+
background: var(--w6w-border);
|
|
5771
|
+
}
|
|
5772
|
+
|
|
5773
|
+
.w6w-note-grip {
|
|
5774
|
+
cursor: grab;
|
|
5775
|
+
touch-action: none;
|
|
5776
|
+
}
|
|
5777
|
+
|
|
5778
|
+
.w6w-note-grip:active {
|
|
5779
|
+
cursor: grabbing;
|
|
5780
|
+
}
|
|
5781
|
+
|
|
5782
|
+
.w6w-note-toolbar .w6w-section-title-input {
|
|
5783
|
+
flex: none;
|
|
5784
|
+
width: auto;
|
|
5785
|
+
margin: 0;
|
|
5786
|
+
padding: var(--w6w-sp-1) var(--w6w-sp-1-5);
|
|
5787
|
+
border: 1px solid transparent;
|
|
5788
|
+
border-radius: 6px;
|
|
5789
|
+
background: transparent;
|
|
5790
|
+
color: inherit;
|
|
5791
|
+
font: inherit;
|
|
5792
|
+
font-weight: var(--w6w-fw-semibold);
|
|
5793
|
+
}
|
|
5794
|
+
|
|
5795
|
+
.w6w-note-toolbar .w6w-section-title-input:hover {
|
|
5796
|
+
border-color: var(--w6w-border);
|
|
5797
|
+
}
|
|
5798
|
+
|
|
5799
|
+
.w6w-note-toolbar .w6w-section-title-input:focus {
|
|
5800
|
+
border-color: var(--w6w-accent);
|
|
5801
|
+
outline: none;
|
|
5802
|
+
}
|
|
5803
|
+
|
|
5804
|
+
.w6w-note-size-btn {
|
|
5805
|
+
font-weight: var(--w6w-fw-semibold);
|
|
5806
|
+
}
|
|
5807
|
+
|
|
5808
|
+
.w6w-note-delete:hover {
|
|
5809
|
+
color: var(--w6w-danger);
|
|
5810
|
+
}
|
|
5811
|
+
|
|
5812
|
+
.w6w-note-swatch {
|
|
5813
|
+
width: 16px;
|
|
5814
|
+
height: 16px;
|
|
5815
|
+
border-radius: 50%;
|
|
5816
|
+
background: var(--w6w-canvas-color);
|
|
5817
|
+
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.15);
|
|
5818
|
+
}
|
|
5819
|
+
|
|
5820
|
+
.w6w-note-menu {
|
|
5821
|
+
position: absolute;
|
|
5822
|
+
top: calc(100% + var(--w6w-sp-2));
|
|
5823
|
+
left: 0;
|
|
5824
|
+
z-index: 1;
|
|
5825
|
+
display: flex;
|
|
5826
|
+
padding: var(--w6w-sp-1);
|
|
5827
|
+
background: var(--w6w-panel);
|
|
5828
|
+
border: 1px solid var(--w6w-border);
|
|
5829
|
+
border-radius: 10px;
|
|
5830
|
+
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);
|
|
5831
|
+
}
|
|
5832
|
+
|
|
5833
|
+
.w6w-note-menu-colors {
|
|
5834
|
+
display: grid;
|
|
5835
|
+
grid-template-columns: repeat(5, 24px);
|
|
5836
|
+
gap: var(--w6w-sp-1-5);
|
|
5837
|
+
padding: var(--w6w-sp-2);
|
|
5838
|
+
}
|
|
5839
|
+
|
|
5840
|
+
.w6w-note-swatch-btn {
|
|
5841
|
+
position: relative;
|
|
5842
|
+
width: 24px;
|
|
5843
|
+
height: 24px;
|
|
5844
|
+
padding: 0;
|
|
5845
|
+
border: 2px solid transparent;
|
|
5846
|
+
border-radius: 50%;
|
|
5847
|
+
background: var(--w6w-canvas-color);
|
|
5848
|
+
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.15);
|
|
5849
|
+
cursor: pointer;
|
|
5850
|
+
}
|
|
5851
|
+
|
|
5852
|
+
.w6w-note-swatch-btn.active {
|
|
5853
|
+
border-color: var(--w6w-panel);
|
|
5854
|
+
box-shadow: 0 0 0 2px var(--w6w-accent);
|
|
5855
|
+
}
|
|
5856
|
+
|
|
5857
|
+
.w6w-note-swatch-custom {
|
|
5858
|
+
overflow: hidden;
|
|
5859
|
+
background: conic-gradient(#f87171, #facc15, #4ade80, #60a5fa, #a78bfa, #f87171);
|
|
5860
|
+
}
|
|
5861
|
+
.w6w-note-swatch-custom input {
|
|
5862
|
+
position: absolute;
|
|
5863
|
+
inset: 0;
|
|
5864
|
+
width: 100%;
|
|
5865
|
+
height: 100%;
|
|
5866
|
+
opacity: 0;
|
|
5867
|
+
cursor: pointer;
|
|
5868
|
+
}
|
|
5869
|
+
|
|
5870
|
+
.w6w-note-menu-sizes {
|
|
5871
|
+
flex-direction: column;
|
|
5872
|
+
min-width: 150px;
|
|
5873
|
+
}
|
|
5874
|
+
|
|
5875
|
+
.w6w-note-menu-item {
|
|
5876
|
+
padding: var(--w6w-sp-1) var(--w6w-sp-2);
|
|
5877
|
+
border: 0;
|
|
5878
|
+
border-radius: 6px;
|
|
5879
|
+
background: transparent;
|
|
5880
|
+
color: inherit;
|
|
5881
|
+
text-align: left;
|
|
5882
|
+
font-weight: var(--w6w-fw-semibold);
|
|
5883
|
+
cursor: pointer;
|
|
5884
|
+
}
|
|
5885
|
+
|
|
5886
|
+
.w6w-note-menu-item:hover {
|
|
5887
|
+
background: var(--w6w-panel-2);
|
|
5888
|
+
}
|
|
5889
|
+
|
|
5890
|
+
.w6w-note-size-1 {
|
|
5891
|
+
font-size: var(--w6w-fs-xl);
|
|
5892
|
+
}
|
|
5893
|
+
|
|
5894
|
+
.w6w-note-size-2 {
|
|
5895
|
+
font-size: var(--w6w-fs-lg);
|
|
5896
|
+
}
|
|
5897
|
+
|
|
5898
|
+
.w6w-note-size-3 {
|
|
5899
|
+
font-size: var(--w6w-fs-base);
|
|
5900
|
+
}
|
|
5901
|
+
|
|
5902
|
+
.w6w-note-size-0 {
|
|
5903
|
+
font-size: var(--w6w-fs-sm);
|
|
5904
|
+
font-weight: var(--w6w-fw-regular);
|
|
5905
|
+
}
|
|
5906
|
+
|
|
5907
|
+
.w6w-flow-tools {
|
|
5908
|
+
display: flex;
|
|
5909
|
+
align-items: center;
|
|
5910
|
+
gap: var(--w6w-sp-1-5);
|
|
5911
|
+
}
|
|
5912
|
+
|
|
5913
|
+
.w6w-flow-tool {
|
|
5914
|
+
padding: var(--w6w-sp-2);
|
|
5915
|
+
background: var(--w6w-panel);
|
|
5916
|
+
color: var(--w6w-text);
|
|
5917
|
+
border: 1px solid var(--w6w-border);
|
|
5918
|
+
}
|
|
5919
|
+
|
|
5920
|
+
.w6w-flow-tool.active {
|
|
5921
|
+
border-color: var(--w6w-accent);
|
|
5922
|
+
color: var(--w6w-accent);
|
|
5923
|
+
background: color-mix(in srgb, var(--w6w-accent) 12%, var(--w6w-panel));
|
|
5924
|
+
}
|
|
5925
|
+
|
|
5926
|
+
.w6w-section-draw {
|
|
5927
|
+
position: absolute;
|
|
5928
|
+
inset: 0;
|
|
5929
|
+
z-index: 4;
|
|
5930
|
+
cursor: crosshair;
|
|
5931
|
+
touch-action: none;
|
|
5932
|
+
}
|
|
5933
|
+
|
|
5934
|
+
.w6w-section-draw-rect {
|
|
5935
|
+
position: absolute;
|
|
5936
|
+
box-sizing: border-box;
|
|
5937
|
+
border: 2px dashed var(--w6w-accent);
|
|
5938
|
+
border-radius: var(--w6w-radius, 6px);
|
|
5939
|
+
background: color-mix(in srgb, var(--w6w-accent) 10%, transparent);
|
|
5940
|
+
pointer-events: none;
|
|
5941
|
+
}
|
|
5942
|
+
|
|
5943
|
+
/* BudgetMeter — usage-vs-limit bar with a reserved segment.
|
|
5944
|
+
*
|
|
5945
|
+
* Token-only: every colour is a --w6w-* custom property, so a host restyles
|
|
5946
|
+
* the meter (including the over-limit state) by overriding tokens, never by
|
|
5947
|
+
* targeting a hex value here. */
|
|
5948
|
+
.w6w-budget-meter {
|
|
5949
|
+
display: flex;
|
|
5950
|
+
flex-direction: column;
|
|
5951
|
+
gap: var(--w6w-sp-1);
|
|
5952
|
+
}
|
|
5953
|
+
|
|
5954
|
+
.w6w-budget-meter-head {
|
|
5955
|
+
display: flex;
|
|
5956
|
+
align-items: baseline;
|
|
5957
|
+
justify-content: space-between;
|
|
5958
|
+
gap: var(--w6w-sp-2);
|
|
5959
|
+
color: var(--w6w-muted);
|
|
5960
|
+
}
|
|
5961
|
+
|
|
5962
|
+
.w6w-budget-meter-label {
|
|
5963
|
+
color: var(--w6w-text);
|
|
5964
|
+
}
|
|
5965
|
+
|
|
5966
|
+
.w6w-budget-meter-value {
|
|
5967
|
+
font-variant-numeric: tabular-nums;
|
|
5968
|
+
}
|
|
5969
|
+
|
|
5970
|
+
.w6w-budget-meter-track {
|
|
5971
|
+
display: flex;
|
|
5972
|
+
width: 100%;
|
|
5973
|
+
height: 8px;
|
|
5974
|
+
overflow: hidden;
|
|
5975
|
+
background: var(--w6w-panel-2);
|
|
5976
|
+
border: 1px solid var(--w6w-border);
|
|
5977
|
+
border-radius: var(--w6w-radius);
|
|
5978
|
+
}
|
|
5979
|
+
|
|
5980
|
+
.w6w-budget-meter-used {
|
|
5981
|
+
height: 100%;
|
|
5982
|
+
background: var(--w6w-accent);
|
|
5983
|
+
}
|
|
5984
|
+
|
|
5985
|
+
.w6w-budget-meter-reserved {
|
|
5986
|
+
height: 100%;
|
|
5987
|
+
background: var(--w6w-health-degraded);
|
|
5988
|
+
}
|
|
5989
|
+
|
|
5990
|
+
.w6w-budget-meter-over .w6w-budget-meter-used {
|
|
5991
|
+
background: var(--w6w-danger);
|
|
5992
|
+
}
|
|
5993
|
+
|
|
5994
|
+
.w6w-budget-meter-over .w6w-budget-meter-value {
|
|
5995
|
+
color: var(--w6w-danger);
|
|
5996
|
+
}
|
|
5997
|
+
|
|
5998
|
+
/* Markdown: the leading YAML frontmatter, collapsed above the rendered body. The body itself
|
|
5999
|
+
is unstyled here — the host styles it through the `className` it passes. */
|
|
6000
|
+
.w6w-md-frontmatter {
|
|
6001
|
+
margin-bottom: var(--w6w-sp-2);
|
|
6002
|
+
border: 1px solid var(--w6w-border);
|
|
6003
|
+
border-radius: 8px;
|
|
6004
|
+
padding: var(--w6w-sp-1-5) var(--w6w-sp-2-5);
|
|
6005
|
+
font-size: var(--w6w-fs-sm);
|
|
6006
|
+
}
|
|
6007
|
+
|
|
6008
|
+
.w6w-md-frontmatter > summary {
|
|
6009
|
+
cursor: pointer;
|
|
6010
|
+
color: var(--w6w-muted);
|
|
6011
|
+
}
|
|
6012
|
+
|
|
6013
|
+
.w6w-md-frontmatter > pre {
|
|
6014
|
+
margin: var(--w6w-sp-2) 0 0;
|
|
6015
|
+
overflow-x: auto;
|
|
6016
|
+
font-family: var(--w6w-font-mono);
|
|
6017
|
+
white-space: pre-wrap;
|
|
6018
|
+
overflow-wrap: anywhere;
|
|
6019
|
+
}
|
package/src/styles.scss
CHANGED
|
@@ -61,4 +61,9 @@
|
|
|
61
61
|
@use "styles/server-resources";
|
|
62
62
|
@use "styles/reliability";
|
|
63
63
|
@use "styles/callable-list";
|
|
64
|
+
@use "styles/data-table";
|
|
64
65
|
@use "styles/connections";
|
|
66
|
+
@use "styles/empty-state";
|
|
67
|
+
@use "styles/canvas";
|
|
68
|
+
@use "styles/budget-meter";
|
|
69
|
+
@use "styles/markdown";
|