@w6w/ui 0.0.0-stage → 0.1.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.
- package/CHANGELOG.md +48 -0
- package/LICENSE +21 -0
- package/README.md +260 -2
- package/dist/ActionTestForm.d.ts +76 -0
- package/dist/AddConnectionModal.d.ts +24 -0
- package/dist/AppPicker.d.ts +83 -0
- package/dist/CodeBlock-CZu4TFSi.cjs +15 -0
- package/dist/CodeBlock-CZu4TFSi.cjs.map +1 -0
- package/dist/CodeBlock-Dot3Pd7P.js +2889 -0
- package/dist/CodeBlock-Dot3Pd7P.js.map +1 -0
- package/dist/CodeBlock.d.ts +65 -0
- package/dist/CodeEditor.d.ts +42 -0
- package/dist/ConfirmModal-DJPYXE9t.cjs +11 -0
- package/dist/ConfirmModal-DJPYXE9t.cjs.map +1 -0
- package/dist/ConfirmModal-sY1tzkBO.js +6335 -0
- package/dist/ConfirmModal-sY1tzkBO.js.map +1 -0
- package/dist/Copyable-1niV9gUa.js +771 -0
- package/dist/Copyable-1niV9gUa.js.map +1 -0
- package/dist/Copyable-CYZU1o4X.cjs +2 -0
- package/dist/Copyable-CYZU1o4X.cjs.map +1 -0
- package/dist/JsonEditor.d.ts +60 -0
- package/dist/NodeConfigForm.d.ts +70 -0
- package/dist/ParamsForm.d.ts +56 -0
- package/dist/PropertyEntryForm.d.ts +56 -0
- package/dist/RetryPolicyFields.d.ts +18 -0
- package/dist/StepBuilderModal.d.ts +375 -0
- package/dist/TriggerFillForm.d.ts +52 -0
- package/dist/WaitEditor.d.ts +6 -0
- package/dist/WorkflowFlowEditor.d.ts +119 -0
- package/dist/YamlEditor.d.ts +46 -0
- package/dist/app-categories.d.ts +38 -0
- package/dist/app-pages.d.ts +111 -0
- package/dist/code.cjs +2 -0
- package/dist/code.cjs.map +1 -0
- package/dist/code.d.ts +29 -0
- package/dist/code.mjs +7 -0
- package/dist/code.mjs.map +1 -0
- package/dist/components/ApiCallsPanel.d.ts +41 -0
- package/dist/components/AppIcon.d.ts +25 -0
- package/dist/components/AuthFieldsForm.d.ts +22 -0
- package/dist/components/Combobox.d.ts +24 -0
- package/dist/components/ConfirmModal.d.ts +33 -0
- package/dist/components/Copyable.d.ts +51 -0
- package/dist/components/CopyableText.d.ts +40 -0
- package/dist/components/DeleteButton.d.ts +16 -0
- package/dist/components/EditButton.d.ts +10 -0
- package/dist/components/ExecutionDetail.d.ts +70 -0
- package/dist/components/ExecutionFilters.d.ts +59 -0
- package/dist/components/ExecutionList.d.ts +60 -0
- package/dist/components/ExecutionLogPanel.d.ts +98 -0
- package/dist/components/ExecutionStats.d.ts +47 -0
- package/dist/components/ExpressionEditorModal.d.ts +42 -0
- package/dist/components/ExpressionInput.d.ts +36 -0
- package/dist/components/ExpressionOptions.d.ts +185 -0
- package/dist/components/HealthStatusPill.d.ts +25 -0
- package/dist/components/HistoryTimeline.d.ts +56 -0
- package/dist/components/Icon.d.ts +34 -0
- package/dist/components/IconButton.d.ts +60 -0
- package/dist/components/InfoTip.d.ts +15 -0
- package/dist/components/InternalIcon.d.ts +19 -0
- package/dist/components/ListItem.d.ts +25 -0
- package/dist/components/Modal.d.ts +29 -0
- package/dist/components/RepoSyncIndicator.d.ts +29 -0
- package/dist/components/ResolvedParams.d.ts +31 -0
- package/dist/components/ServerResources.d.ts +47 -0
- package/dist/components/StepStatusPill.d.ts +51 -0
- package/dist/components/UptimeStrip.d.ts +56 -0
- package/dist/components/execution-format.d.ts +24 -0
- package/dist/components/expression-dom.d.ts +154 -0
- package/dist/components/expression-template.d.ts +86 -0
- package/dist/components/history-scale.d.ts +33 -0
- package/dist/components/icons.d.ts +41 -0
- package/dist/components/resolved-clip.d.ts +42 -0
- package/dist/components/server-resources-format.d.ts +68 -0
- package/dist/components/server-resources.fixture.d.ts +9 -0
- package/dist/components/use-copy.d.ts +14 -0
- package/dist/createW6WApi.d.ts +31 -0
- package/dist/flow-connect.d.ts +138 -0
- package/dist/flow-fanout.d.ts +15 -0
- package/dist/flow-types.d.ts +356 -0
- package/dist/flow-utils.d.ts +284 -0
- package/dist/flow.cjs +3 -0
- package/dist/flow.cjs.map +1 -0
- package/dist/flow.d.ts +22 -0
- package/dist/flow.mjs +1977 -0
- package/dist/flow.mjs.map +1 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +94 -0
- package/dist/index.mjs +1811 -0
- package/dist/index.mjs.map +1 -0
- package/dist/oauth-popup.d.ts +17 -0
- package/dist/output-shape.d.ts +58 -0
- package/dist/provider.d.ts +420 -0
- package/dist/resolve-params.d.ts +112 -0
- package/dist/resolved-json.d.ts +21 -0
- package/dist/run-visuals.d.ts +90 -0
- package/dist/step-preview-state.d.ts +143 -0
- package/dist/theme.d.ts +32 -0
- package/dist/trigger-fields.d.ts +56 -0
- package/dist/types.d.ts +413 -0
- package/dist/ui.css +1 -0
- package/dist/use-app-action-defs.d.ts +7 -0
- package/dist/use-enter-submit.d.ts +23 -0
- package/dist/use-seed-sources.d.ts +16 -0
- package/package.json +111 -3
- package/src/code.css +542 -0
- package/src/styles/_buttons.scss +38 -0
- package/src/styles/_chips.scss +210 -0
- package/src/styles/_code.scss +139 -0
- package/src/styles/_copyable.scss +147 -0
- package/src/styles/_data-vars.scss +38 -0
- package/src/styles/_execution-history.scss +282 -0
- package/src/styles/_execution-log.scss +178 -0
- package/src/styles/_expression-field.scss +65 -0
- package/src/styles/_expression-inline.scss +63 -0
- package/src/styles/_expression-modal.scss +292 -0
- package/src/styles/_fields.scss +161 -0
- package/src/styles/_flow.scss +217 -0
- package/src/styles/_fx.scss +158 -0
- package/src/styles/_health.scss +46 -0
- package/src/styles/_history-timeline.scss +156 -0
- package/src/styles/_icon-button.scss +22 -0
- package/src/styles/_icon.scss +15 -0
- package/src/styles/_icons.scss +31 -0
- package/src/styles/_incoming-state.scss +46 -0
- package/src/styles/_info-tip.scss +9 -0
- package/src/styles/_layout.scss +6 -0
- package/src/styles/_lists.scss +64 -0
- package/src/styles/_modal.scss +125 -0
- package/src/styles/_multiselect.scss +69 -0
- package/src/styles/_repo-sync-indicator.scss +99 -0
- package/src/styles/_scale.scss +70 -0
- package/src/styles/_sections.scss +36 -0
- package/src/styles/_server-resources.scss +163 -0
- package/src/styles/_step-builder.scss +376 -0
- package/src/styles/_step-config.scss +195 -0
- package/src/styles/_tabs.scss +54 -0
- package/src/styles/_tester.scss +111 -0
- package/src/styles/_tokens.scss +141 -0
- package/src/styles/_uptime.scss +61 -0
- package/src/styles.css +4208 -0
- package/src/styles.scss +61 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
.w6w-testout {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
gap: var(--w6w-sp-1);
|
|
5
|
+
}
|
|
6
|
+
.w6w-testout-label {
|
|
7
|
+
font-size: 0.72em;
|
|
8
|
+
font-weight: var(--w6w-fw-semibold);
|
|
9
|
+
letter-spacing: 0.04em;
|
|
10
|
+
text-transform: uppercase;
|
|
11
|
+
color: var(--w6w-muted);
|
|
12
|
+
}
|
|
13
|
+
/* Console output reads as a terminal — monospace + muted, distinct from Result. */
|
|
14
|
+
.w6w-testout-console {
|
|
15
|
+
font-family: var(--w6w-font-mono);
|
|
16
|
+
color: var(--w6w-muted);
|
|
17
|
+
border-style: dashed;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/* Result / error box */
|
|
21
|
+
.w6w-result {
|
|
22
|
+
background: var(--w6w-panel-2);
|
|
23
|
+
border: 1px solid var(--w6w-border);
|
|
24
|
+
border-radius: 8px;
|
|
25
|
+
padding: var(--w6w-sp-2-5) var(--w6w-sp-3);
|
|
26
|
+
font-family: var(--w6w-font-mono);
|
|
27
|
+
font-size: 0.85em;
|
|
28
|
+
white-space: pre-wrap;
|
|
29
|
+
word-break: break-word;
|
|
30
|
+
color: var(--w6w-text);
|
|
31
|
+
}
|
|
32
|
+
.w6w-result.w6w-error {
|
|
33
|
+
border-color: var(--w6w-danger);
|
|
34
|
+
color: var(--w6w-danger);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/* Host-embedded ActionTestForm (studio's ConnectionTesterModal wraps it in its
|
|
38
|
+
OWN full modal). The widget then fills that modal as a full-height flex column:
|
|
39
|
+
the params + saved-tests region scrolls, and the action bar is a bottom-pinned,
|
|
40
|
+
non-scrolling footer. These classes are only applied in `embedded` mode, so the
|
|
41
|
+
inline / own-pop-out layout is untouched. */
|
|
42
|
+
.w6w-tester-embedded-root {
|
|
43
|
+
flex: 1;
|
|
44
|
+
min-height: 0;
|
|
45
|
+
}
|
|
46
|
+
.w6w-tester-embedded {
|
|
47
|
+
display: flex;
|
|
48
|
+
flex-direction: column;
|
|
49
|
+
flex: 1;
|
|
50
|
+
min-height: 0;
|
|
51
|
+
}
|
|
52
|
+
.w6w-tester-embedded-scroll {
|
|
53
|
+
flex: 1;
|
|
54
|
+
min-height: 0;
|
|
55
|
+
overflow: auto;
|
|
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
|
+
/* The action bar as a pinned footer: kept out of the scroll region and separated
|
|
71
|
+
with a top border so Run / Save / Delete stay visible however long the params. */
|
|
72
|
+
.w6w-tester-actions-footer {
|
|
73
|
+
margin-top: auto;
|
|
74
|
+
border-top: 1px solid var(--w6w-border);
|
|
75
|
+
padding-top: var(--w6w-sp-3);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/* ActionTestForm's OWN pop-out (`Modal size="full"`, the "Edit params" ⤢
|
|
79
|
+
toggle — not the host-embedded case above). T1.4.1 round 1 made `-full`'s
|
|
80
|
+
`overflow: hidden` live for the first time; the dialog itself no longer
|
|
81
|
+
scrolls, so at a realistic param count (15-23 is typical for a first-party
|
|
82
|
+
action, e.g. followupboss/search-people, youtube/search) content below the
|
|
83
|
+
fold became unreachable with zero scrollbar. This mirrors the
|
|
84
|
+
`.w6w-tester-embedded-scroll` mechanism above — flex:1/min-height:0 to fill
|
|
85
|
+
the dialog's remaining flex-column height, `overflow: auto` to own the
|
|
86
|
+
scrollbar — so the params + result (+ saved-tests rail) region scrolls
|
|
87
|
+
internally while the Run/Save/Delete action bar stays a pinned,
|
|
88
|
+
non-scrolling footer via the SAME `.w6w-tester-actions-footer` class. */
|
|
89
|
+
.w6w-tester-popout {
|
|
90
|
+
display: flex;
|
|
91
|
+
flex-direction: column;
|
|
92
|
+
flex: 1;
|
|
93
|
+
min-height: 0;
|
|
94
|
+
}
|
|
95
|
+
.w6w-tester-popout-scroll {
|
|
96
|
+
flex: 1;
|
|
97
|
+
min-height: 0;
|
|
98
|
+
overflow: auto;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/* Uptime strip — one cell per day, "how has this service behaved lately" at a
|
|
102
|
+
glance. Colour comes from the same `--w6w-health-*` tokens as the health pill,
|
|
103
|
+
through the same single `--w6w-health-color` indirection (set once on the cell,
|
|
104
|
+
remapped by the per-state class below), so overriding a token restyles the pill
|
|
105
|
+
and the strip together.
|
|
106
|
+
|
|
107
|
+
Colour is never the only signal: the FILL HEIGHT encodes severity, so the row
|
|
108
|
+
stays readable in greyscale and for a colour-blind viewer — `ok` a short
|
|
109
|
+
baseline bar, `degraded` taller, `down` the full cell, and `unknown` a hatched
|
|
110
|
+
outline with no solid fill (nothing was measured: not a good day, not a bad
|
|
111
|
+
one). Each cell also carries a `title` with its day and state. */
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @w6w/ui — styles for the pure-presentation components.
|
|
3
|
+
*
|
|
4
|
+
* Everything is namespaced under `.w6w-*` class names so this stylesheet
|
|
5
|
+
* won't collide with your app's CSS.
|
|
6
|
+
*
|
|
7
|
+
* THEMING
|
|
8
|
+
* -------
|
|
9
|
+
* The library ships a complete DEFAULT theme in BOTH light and dark:
|
|
10
|
+
* - Light is the base.
|
|
11
|
+
* - Dark applies automatically when the OS prefers dark
|
|
12
|
+
* (`prefers-color-scheme: dark`).
|
|
13
|
+
* - Either mode can be forced with `data-theme="light" | "dark"` on any
|
|
14
|
+
* ancestor (usually <html>) — the same signal the JS components read
|
|
15
|
+
* (AppIcon / CodeEditor / JsonEditor: explicit prop > data-theme > OS pref),
|
|
16
|
+
* so CSS and components always agree.
|
|
17
|
+
*
|
|
18
|
+
* A HOST can override any subset of the tokens — set the ones you care about and
|
|
19
|
+
* the rest keep their themed defaults:
|
|
20
|
+
*
|
|
21
|
+
* :root { --w6w-accent: #3355e6; } // one token, both modes
|
|
22
|
+
* html[data-theme="dark"] { --w6w-panel: #000 } // mode-specific
|
|
23
|
+
*
|
|
24
|
+
* Every default below is declared through `:where(...)` (specificity 0), so ANY
|
|
25
|
+
* host rule — even a plain `:root { ... }` — wins without !important. Tokens are
|
|
26
|
+
* defined on :root so every `.w6w-*` component inherits them out of the box.
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
/* Light — the base defaults. */
|
|
30
|
+
:where(:root) {
|
|
31
|
+
color-scheme: light;
|
|
32
|
+
--w6w-bg: #f7f8fa;
|
|
33
|
+
--w6w-panel: #ffffff;
|
|
34
|
+
--w6w-panel-2: #f0f2f6;
|
|
35
|
+
--w6w-border: #d9dee5;
|
|
36
|
+
--w6w-text: #1a1d24;
|
|
37
|
+
--w6w-muted: #5f6875;
|
|
38
|
+
--w6w-accent: #3355e6;
|
|
39
|
+
--w6w-danger: #c1362f;
|
|
40
|
+
--w6w-success: #2e9e5b;
|
|
41
|
+
--w6w-health-ok: var(--w6w-success);
|
|
42
|
+
--w6w-health-degraded: #c77700;
|
|
43
|
+
--w6w-health-down: var(--w6w-danger);
|
|
44
|
+
--w6w-health-unknown: #5f6875;
|
|
45
|
+
--w6w-icon-swatch: #f0f2f6;
|
|
46
|
+
--w6w-code-comment: #6b7280;
|
|
47
|
+
--w6w-code-keyword: #8250df;
|
|
48
|
+
--w6w-code-string: #0a7b34;
|
|
49
|
+
--w6w-code-number: #b3541e;
|
|
50
|
+
--w6w-code-function: #1f6feb;
|
|
51
|
+
--w6w-code-punctuation: #5f6875;
|
|
52
|
+
--w6w-code-variable: #953800;
|
|
53
|
+
--w6w-radius: 10px;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/* Dark — followed automatically from the OS preference (unless a host has
|
|
57
|
+
forced a mode via data-theme, which is handled by the blocks below). */
|
|
58
|
+
@media (prefers-color-scheme: dark) {
|
|
59
|
+
:where(:root) {
|
|
60
|
+
color-scheme: dark;
|
|
61
|
+
--w6w-bg: #0f1115;
|
|
62
|
+
--w6w-panel: #181b22;
|
|
63
|
+
--w6w-panel-2: #1f232c;
|
|
64
|
+
--w6w-border: #2a2f3a;
|
|
65
|
+
--w6w-text: #e6e8ee;
|
|
66
|
+
--w6w-muted: #9aa3b2;
|
|
67
|
+
--w6w-accent: #5b8cff;
|
|
68
|
+
--w6w-danger: #ff6b6b;
|
|
69
|
+
--w6w-success: #3fbf77;
|
|
70
|
+
--w6w-health-ok: var(--w6w-success);
|
|
71
|
+
--w6w-health-degraded: #f0a020;
|
|
72
|
+
--w6w-health-down: var(--w6w-danger);
|
|
73
|
+
--w6w-health-unknown: #9aa3b2;
|
|
74
|
+
--w6w-icon-swatch: #1f232c;
|
|
75
|
+
--w6w-code-comment: #7d8797;
|
|
76
|
+
--w6w-code-keyword: #d2a8ff;
|
|
77
|
+
--w6w-code-string: #7ee787;
|
|
78
|
+
--w6w-code-number: #ffab70;
|
|
79
|
+
--w6w-code-function: #79c0ff;
|
|
80
|
+
--w6w-code-punctuation: #9aa3b2;
|
|
81
|
+
--w6w-code-variable: #ffa657;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/* Explicit mode. Declared AFTER the media query at equal (zero) specificity, so
|
|
86
|
+
a forced data-theme always beats the OS preference. */
|
|
87
|
+
:where([data-theme="light"]) {
|
|
88
|
+
color-scheme: light;
|
|
89
|
+
--w6w-bg: #f7f8fa;
|
|
90
|
+
--w6w-panel: #ffffff;
|
|
91
|
+
--w6w-panel-2: #f0f2f6;
|
|
92
|
+
--w6w-border: #d9dee5;
|
|
93
|
+
--w6w-text: #1a1d24;
|
|
94
|
+
--w6w-muted: #5f6875;
|
|
95
|
+
--w6w-accent: #3355e6;
|
|
96
|
+
--w6w-danger: #c1362f;
|
|
97
|
+
--w6w-success: #2e9e5b;
|
|
98
|
+
--w6w-health-ok: var(--w6w-success);
|
|
99
|
+
--w6w-health-degraded: #c77700;
|
|
100
|
+
--w6w-health-down: var(--w6w-danger);
|
|
101
|
+
--w6w-health-unknown: #5f6875;
|
|
102
|
+
--w6w-icon-swatch: #f0f2f6;
|
|
103
|
+
--w6w-code-comment: #6b7280;
|
|
104
|
+
--w6w-code-keyword: #8250df;
|
|
105
|
+
--w6w-code-string: #0a7b34;
|
|
106
|
+
--w6w-code-number: #b3541e;
|
|
107
|
+
--w6w-code-function: #1f6feb;
|
|
108
|
+
--w6w-code-punctuation: #5f6875;
|
|
109
|
+
--w6w-code-variable: #953800;
|
|
110
|
+
}
|
|
111
|
+
:where([data-theme="dark"]) {
|
|
112
|
+
color-scheme: dark;
|
|
113
|
+
--w6w-bg: #0f1115;
|
|
114
|
+
--w6w-panel: #181b22;
|
|
115
|
+
--w6w-panel-2: #1f232c;
|
|
116
|
+
--w6w-border: #2a2f3a;
|
|
117
|
+
--w6w-text: #e6e8ee;
|
|
118
|
+
--w6w-muted: #9aa3b2;
|
|
119
|
+
--w6w-accent: #5b8cff;
|
|
120
|
+
--w6w-danger: #ff6b6b;
|
|
121
|
+
--w6w-success: #3fbf77;
|
|
122
|
+
--w6w-health-ok: var(--w6w-success);
|
|
123
|
+
--w6w-health-degraded: #f0a020;
|
|
124
|
+
--w6w-health-down: var(--w6w-danger);
|
|
125
|
+
--w6w-health-unknown: #9aa3b2;
|
|
126
|
+
--w6w-icon-swatch: #1f232c;
|
|
127
|
+
--w6w-code-comment: #7d8797;
|
|
128
|
+
--w6w-code-keyword: #d2a8ff;
|
|
129
|
+
--w6w-code-string: #7ee787;
|
|
130
|
+
--w6w-code-number: #ffab70;
|
|
131
|
+
--w6w-code-function: #79c0ff;
|
|
132
|
+
--w6w-code-punctuation: #9aa3b2;
|
|
133
|
+
--w6w-code-variable: #ffa657;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.w6w-muted {
|
|
137
|
+
color: var(--w6w-muted);
|
|
138
|
+
}
|
|
139
|
+
.w6w-small {
|
|
140
|
+
font-size: 0.85em;
|
|
141
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
.w6w-uptime-strip {
|
|
2
|
+
display: grid;
|
|
3
|
+
grid-auto-flow: column;
|
|
4
|
+
grid-auto-columns: minmax(0, 1fr);
|
|
5
|
+
gap: var(--w6w-sp-0-5);
|
|
6
|
+
height: 22px;
|
|
7
|
+
min-width: 0;
|
|
8
|
+
align-items: stretch;
|
|
9
|
+
}
|
|
10
|
+
.w6w-uptime-cell {
|
|
11
|
+
--w6w-health-color: var(--w6w-health-unknown);
|
|
12
|
+
--w6w-uptime-fill: 100%;
|
|
13
|
+
position: relative;
|
|
14
|
+
min-width: 2px;
|
|
15
|
+
border-radius: 2px;
|
|
16
|
+
/* The unfilled remainder of the day, so the strip reads as a continuous row
|
|
17
|
+
rather than as floating bars. */
|
|
18
|
+
background: color-mix(in srgb, var(--w6w-border) 55%, transparent);
|
|
19
|
+
overflow: hidden;
|
|
20
|
+
}
|
|
21
|
+
.w6w-uptime-cell::after {
|
|
22
|
+
content: "";
|
|
23
|
+
position: absolute;
|
|
24
|
+
left: 0;
|
|
25
|
+
right: 0;
|
|
26
|
+
bottom: 0;
|
|
27
|
+
height: var(--w6w-uptime-fill);
|
|
28
|
+
border-radius: inherit;
|
|
29
|
+
background: var(--w6w-health-color);
|
|
30
|
+
}
|
|
31
|
+
.w6w-uptime-cell-ok {
|
|
32
|
+
--w6w-health-color: var(--w6w-health-ok);
|
|
33
|
+
--w6w-uptime-fill: 35%;
|
|
34
|
+
}
|
|
35
|
+
.w6w-uptime-cell-degraded {
|
|
36
|
+
--w6w-health-color: var(--w6w-health-degraded);
|
|
37
|
+
--w6w-uptime-fill: 65%;
|
|
38
|
+
}
|
|
39
|
+
.w6w-uptime-cell-down {
|
|
40
|
+
--w6w-health-color: var(--w6w-health-down);
|
|
41
|
+
--w6w-uptime-fill: 100%;
|
|
42
|
+
}
|
|
43
|
+
.w6w-uptime-cell-unknown {
|
|
44
|
+
--w6w-health-color: var(--w6w-health-unknown);
|
|
45
|
+
--w6w-uptime-fill: 100%;
|
|
46
|
+
}
|
|
47
|
+
/* No solid fill for `unknown` — a hatch, so an unmeasured day can never be
|
|
48
|
+
mistaken for a healthy or a failing one, with or without colour. */
|
|
49
|
+
.w6w-uptime-cell-unknown::after {
|
|
50
|
+
background: repeating-linear-gradient(
|
|
51
|
+
45deg,
|
|
52
|
+
color-mix(in srgb, var(--w6w-health-color) 45%, transparent) 0 2px,
|
|
53
|
+
transparent 2px 5px
|
|
54
|
+
);
|
|
55
|
+
border: 1px solid color-mix(in srgb, var(--w6w-health-color) 35%, var(--w6w-border));
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/* --- CodeBlock ------------------------------------------------------------ */
|
|
59
|
+
/* Read-only syntax-highlighted display (`<CodeBlock>`). The colours come from
|
|
60
|
+
the `--w6w-code-*` tokens via inline styles Prism sets, so this rule only
|
|
61
|
+
owns box, rhythm and overflow. */
|