@ponchia/ui 0.9.0 → 0.10.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 +70 -4
- package/MIGRATIONS.json +117 -27
- package/README.md +17 -9
- package/behaviors/index.d.ts +0 -2
- package/behaviors/index.d.ts.map +1 -1
- package/behaviors/index.js +0 -2
- package/behaviors/popover.js +4 -4
- package/classes/classes.json +24 -9
- package/classes/index.d.ts +8 -3
- package/classes/index.js +20 -3
- package/classes/vscode.css-custom-data.json +10 -10
- package/css/app.css +52 -30
- package/css/base.css +10 -14
- package/css/content.css +23 -21
- package/css/disclosure.css +17 -17
- package/css/feedback.css +15 -15
- package/css/forms.css +8 -7
- package/css/navigation.css +3 -3
- package/css/overlay.css +13 -29
- package/css/primitives.css +48 -28
- package/css/report.css +66 -42
- package/css/state.css +95 -6
- package/css/table.css +3 -3
- package/css/tokens.css +10 -10
- package/css/workbench.css +21 -9
- package/dist/bronto.css +1 -1
- package/dist/css/app.css +1 -1
- package/dist/css/base.css +1 -1
- package/dist/css/content.css +1 -1
- package/dist/css/disclosure.css +1 -1
- package/dist/css/feedback.css +1 -1
- package/dist/css/forms.css +1 -1
- package/dist/css/navigation.css +1 -1
- package/dist/css/overlay.css +1 -1
- package/dist/css/primitives.css +1 -1
- package/dist/css/report-kit.css +1 -1
- package/dist/css/report.css +1 -1
- package/dist/css/state.css +1 -1
- package/dist/css/table.css +1 -1
- package/dist/css/tokens.css +1 -1
- package/dist/css/workbench.css +1 -1
- package/docs/adr/0004-prune-unused-adapters.md +5 -1
- package/docs/adr/0005-productive-tools-and-editorial-reports.md +58 -0
- package/docs/adr/0006-trusted-publishing.md +92 -0
- package/docs/architecture.md +16 -23
- package/docs/command.md +1 -2
- package/docs/compositions.md +110 -0
- package/docs/frontier-primitives.md +1 -2
- package/docs/migrations/0.9-to-0.10.md +47 -0
- package/docs/package-contract.md +9 -12
- package/docs/reference.md +30 -18
- package/docs/reporting.md +15 -9
- package/docs/stability.md +19 -55
- package/docs/state.md +47 -0
- package/docs/usage.md +18 -30
- package/llms.txt +7 -18
- package/package.json +13 -55
- package/tokens/figma.variables.json +20 -20
- package/tokens/index.js +10 -10
- package/tokens/index.json +20 -20
- package/tokens/resolved.json +10 -10
- package/tokens/tokens.dtcg.json +20 -20
- package/behaviors/modal.d.ts +0 -45
- package/behaviors/modal.d.ts.map +0 -1
- package/behaviors/modal.js +0 -373
- package/qwik/index.d.ts +0 -48
- package/qwik/index.d.ts.map +0 -1
- package/qwik/index.js +0 -227
- package/react/index.d.ts +0 -45
- package/react/index.d.ts.map +0 -1
- package/react/index.js +0 -165
- package/solid/index.d.ts +0 -75
- package/solid/index.d.ts.map +0 -1
- package/solid/index.js +0 -172
- package/svelte/index.d.ts +0 -114
- package/svelte/index.d.ts.map +0 -1
- package/svelte/index.js +0 -197
- package/vue/index.d.ts +0 -116
- package/vue/index.d.ts.map +0 -1
- package/vue/index.js +0 -266
package/css/state.css
CHANGED
|
@@ -262,29 +262,38 @@
|
|
|
262
262
|
========================================================================== */
|
|
263
263
|
|
|
264
264
|
/* Declared once so a host putting the level on its own element gets the same
|
|
265
|
-
mapping from `data-level` + `var(--severity-tone)`, without copying a table.
|
|
265
|
+
mapping from `data-level` + `var(--severity-tone)`, without copying a table.
|
|
266
|
+
|
|
267
|
+
`.ui-severity-tone` is that host element's hook, and it paints nothing: the
|
|
268
|
+
three classes below all draw something — a chip, a ruled row, a background
|
|
269
|
+
dot — and a consumer whose mark Bronto does not ship needs the VALUE without
|
|
270
|
+
any of them. The case that proved it was an SVG `<circle>`, which ignores
|
|
271
|
+
`background` entirely, so a status strip had to restate the whole tier table
|
|
272
|
+
in `fill` and could then disagree with the rows beside it. */
|
|
266
273
|
.ui-severity,
|
|
267
274
|
.ui-severity-row,
|
|
268
|
-
.ui-severity-dot
|
|
275
|
+
.ui-severity-dot,
|
|
276
|
+
.ui-severity-tone,
|
|
277
|
+
.ui-timestrip__event {
|
|
269
278
|
--severity-tone: var(--text-dim);
|
|
270
279
|
}
|
|
271
280
|
|
|
272
|
-
:is(.ui-severity, .ui-severity-row, .ui-severity-dot):is(
|
|
281
|
+
:is(.ui-severity, .ui-severity-row, .ui-severity-dot, .ui-severity-tone, .ui-timestrip__event):is(
|
|
273
282
|
[data-level='critical'],
|
|
274
283
|
[data-level='error']
|
|
275
284
|
) {
|
|
276
285
|
--severity-tone: var(--danger);
|
|
277
286
|
}
|
|
278
287
|
|
|
279
|
-
:is(.ui-severity, .ui-severity-row, .ui-severity-dot)[data-level='warning'] {
|
|
288
|
+
:is(.ui-severity, .ui-severity-row, .ui-severity-dot, .ui-severity-tone, .ui-timestrip__event)[data-level='warning'] {
|
|
280
289
|
--severity-tone: var(--warning);
|
|
281
290
|
}
|
|
282
291
|
|
|
283
|
-
:is(.ui-severity, .ui-severity-row, .ui-severity-dot)[data-level='notice'] {
|
|
292
|
+
:is(.ui-severity, .ui-severity-row, .ui-severity-dot, .ui-severity-tone, .ui-timestrip__event)[data-level='notice'] {
|
|
284
293
|
--severity-tone: var(--info);
|
|
285
294
|
}
|
|
286
295
|
|
|
287
|
-
:is(.ui-severity, .ui-severity-row, .ui-severity-dot)[data-level='ok'] {
|
|
296
|
+
:is(.ui-severity, .ui-severity-row, .ui-severity-dot, .ui-severity-tone, .ui-timestrip__event)[data-level='ok'] {
|
|
288
297
|
--severity-tone: var(--success);
|
|
289
298
|
}
|
|
290
299
|
|
|
@@ -370,6 +379,86 @@
|
|
|
370
379
|
font-size: var(--text-2xs);
|
|
371
380
|
}
|
|
372
381
|
|
|
382
|
+
/* ==========================================================================
|
|
383
|
+
timestrip — WHEN the things in a list entered the state they are in.
|
|
384
|
+
|
|
385
|
+
A status list answers "what". This answers "when", on one axis, at a glance:
|
|
386
|
+
a cluster of marks at the leading edge is a fresh incident, a lone mark
|
|
387
|
+
pinned to the trailing edge has been wrong for a while. It is the companion
|
|
388
|
+
to `.ui-severity-row` and takes the same `data-level`, so a strip can never
|
|
389
|
+
disagree with the rows beneath it.
|
|
390
|
+
|
|
391
|
+
BOUNDARY — this is geometry, not a chart. The host owns the window, the
|
|
392
|
+
clock, and the arithmetic: it normalises each event to a position in 0..1 and
|
|
393
|
+
writes it as `--at`. Bronto owns the rail, the marker, and the mark. There
|
|
394
|
+
are no scales, no ticks, no axis labels and no time parsing here; a surface
|
|
395
|
+
that wanted those wants a chart, and Bronto refuses chart scales.
|
|
396
|
+
|
|
397
|
+
<div class="ui-timestrip" role="img" aria-label="…">
|
|
398
|
+
<span class="ui-timestrip__axis"></span>
|
|
399
|
+
<span class="ui-timestrip__now"></span>
|
|
400
|
+
<span class="ui-timestrip__event" data-level="critical" style="--at: .92"></span>
|
|
401
|
+
<span class="ui-timestrip__event" data-level="ok" data-outside style="--at: 0"></span>
|
|
402
|
+
</div>
|
|
403
|
+
|
|
404
|
+
`data-outside` is for an event older than the window. It stays at the edge at
|
|
405
|
+
reduced weight rather than vanishing, because a strip that reads "quiet"
|
|
406
|
+
while a row says "failing for three days" is worse than one that reads
|
|
407
|
+
crowded. The mark is not the state's only channel: the rows below name their
|
|
408
|
+
level in words, and the strip needs an `aria-label` naming what it plots.
|
|
409
|
+
========================================================================== */
|
|
410
|
+
|
|
411
|
+
.ui-timestrip {
|
|
412
|
+
block-size: 1.4rem;
|
|
413
|
+
display: block;
|
|
414
|
+
inline-size: 100%;
|
|
415
|
+
position: relative;
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
/* The rail the marks sit on, and the edge that is "now". Both are decorative:
|
|
419
|
+
they carry no fact the label and the rows do not already carry. */
|
|
420
|
+
.ui-timestrip__axis {
|
|
421
|
+
background: var(--line);
|
|
422
|
+
block-size: 1px;
|
|
423
|
+
inset-block-end: 0.35rem;
|
|
424
|
+
inset-inline: 0;
|
|
425
|
+
position: absolute;
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
.ui-timestrip__now {
|
|
429
|
+
border-inline-end: 1px dashed var(--text-dim);
|
|
430
|
+
inset-block: 0.1rem 0.25rem;
|
|
431
|
+
inset-inline-end: 0;
|
|
432
|
+
position: absolute;
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
/* `--at` is the host's answer: 0 is the oldest edge of the window, 1 is now.
|
|
436
|
+
Clamped rather than trusted — an out-of-range value is a host bug, and a mark
|
|
437
|
+
drawn outside its own strip is harder to diagnose than one at the edge. */
|
|
438
|
+
.ui-timestrip__event {
|
|
439
|
+
background: var(--severity-tone);
|
|
440
|
+
block-size: 0.4rem;
|
|
441
|
+
border-radius: var(--radius-pill);
|
|
442
|
+
inline-size: 0.4rem;
|
|
443
|
+
inset-block-end: 0.55rem;
|
|
444
|
+
inset-inline-start: calc(clamp(0, var(--at, 0), 1) * 100%);
|
|
445
|
+
position: absolute;
|
|
446
|
+
translate: -50% 0;
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
.ui-timestrip__event[data-outside] {
|
|
450
|
+
opacity: 0.55;
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
/* Forced colours: the tone is replaced, so the marks stop distinguishing tiers.
|
|
454
|
+
They still say WHEN, which is the strip's whole job, and the level stays
|
|
455
|
+
readable in the rows. */
|
|
456
|
+
@media (forced-colors: active) {
|
|
457
|
+
.ui-timestrip__event {
|
|
458
|
+
background: CanvasText;
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
|
|
373
462
|
/* Forced colours: the tone dot collapses to a system colour, so the
|
|
374
463
|
author-written label remains the state channel (it already must be). */
|
|
375
464
|
@media (forced-colors: active) {
|
package/css/table.css
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
.ui-table {
|
|
13
13
|
border-collapse: collapse;
|
|
14
|
-
font-family: var(--
|
|
14
|
+
font-family: var(--sans);
|
|
15
15
|
font-size: var(--text-sm);
|
|
16
16
|
min-inline-size: 100%;
|
|
17
17
|
inline-size: 100%;
|
|
@@ -32,9 +32,9 @@
|
|
|
32
32
|
color: var(--text-dim);
|
|
33
33
|
font-size: var(--text-2xs);
|
|
34
34
|
font-weight: 700;
|
|
35
|
-
letter-spacing:
|
|
35
|
+
letter-spacing: 0;
|
|
36
36
|
position: sticky;
|
|
37
|
-
text-transform:
|
|
37
|
+
text-transform: none;
|
|
38
38
|
inset-block-start: 0;
|
|
39
39
|
|
|
40
40
|
/* Keep the sticky header above body cells — cheap insurance for the
|
package/css/tokens.css
CHANGED
|
@@ -11,10 +11,10 @@
|
|
|
11
11
|
|
|
12
12
|
:root {
|
|
13
13
|
/* Sharp, near-zero radii — Nothing surfaces are crisp, not pill-soft. */
|
|
14
|
-
--radius-xl:
|
|
15
|
-
--radius-lg:
|
|
16
|
-
--radius-md:
|
|
17
|
-
--radius-sm:
|
|
14
|
+
--radius-xl: 8px;
|
|
15
|
+
--radius-lg: 6px;
|
|
16
|
+
--radius-md: 4px;
|
|
17
|
+
--radius-sm: 2px;
|
|
18
18
|
--radius-pill: 999px;
|
|
19
19
|
|
|
20
20
|
/* Spacing scale. */
|
|
@@ -39,12 +39,12 @@
|
|
|
39
39
|
--display: var(--dot-font);
|
|
40
40
|
--display-weight: 700;
|
|
41
41
|
--display-weight-strong: 800;
|
|
42
|
-
--text-2xs: 0.
|
|
43
|
-
--text-xs: 0.
|
|
44
|
-
--text-sm: 0.
|
|
45
|
-
--text-base:
|
|
46
|
-
--text-lg: 1.
|
|
47
|
-
--text-xl: 1.
|
|
42
|
+
--text-2xs: 0.75rem;
|
|
43
|
+
--text-xs: 0.8125rem;
|
|
44
|
+
--text-sm: 0.875rem;
|
|
45
|
+
--text-base: 1rem;
|
|
46
|
+
--text-lg: 1.125rem;
|
|
47
|
+
--text-xl: 1.5rem;
|
|
48
48
|
--tracking-wide: 0.14em;
|
|
49
49
|
--tracking-wider: 0.22em;
|
|
50
50
|
|
package/css/workbench.css
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
/* --- Inspector — a panel of details for the selected object. --- */
|
|
12
12
|
.ui-inspector {
|
|
13
|
+
container: bronto-inspector / inline-size;
|
|
13
14
|
background: var(--panel);
|
|
14
15
|
border: 1px solid var(--line);
|
|
15
16
|
border-radius: var(--radius-md);
|
|
@@ -22,6 +23,7 @@
|
|
|
22
23
|
align-items: baseline;
|
|
23
24
|
border-block-end: 1px solid var(--line);
|
|
24
25
|
display: flex;
|
|
26
|
+
flex-wrap: wrap;
|
|
25
27
|
gap: var(--space-sm);
|
|
26
28
|
justify-content: space-between;
|
|
27
29
|
padding-block-end: var(--space-xs);
|
|
@@ -152,14 +154,14 @@
|
|
|
152
154
|
border-radius: var(--radius-sm);
|
|
153
155
|
color: var(--text-soft);
|
|
154
156
|
cursor: pointer;
|
|
155
|
-
font-family: var(--
|
|
157
|
+
font-family: var(--sans);
|
|
156
158
|
font-size: var(--text-xs);
|
|
157
159
|
font-weight: 700;
|
|
158
|
-
letter-spacing:
|
|
160
|
+
letter-spacing: 0;
|
|
159
161
|
line-height: 1;
|
|
160
162
|
min-block-size: 1.9rem;
|
|
161
163
|
padding: 0.48rem 0.7rem;
|
|
162
|
-
text-transform:
|
|
164
|
+
text-transform: none;
|
|
163
165
|
}
|
|
164
166
|
|
|
165
167
|
.ui-segmented-buttons__button[aria-pressed='true'],
|
|
@@ -181,21 +183,31 @@
|
|
|
181
183
|
align-items: baseline;
|
|
182
184
|
display: grid;
|
|
183
185
|
gap: var(--space-sm);
|
|
184
|
-
grid-template-columns: minmax(
|
|
186
|
+
grid-template-columns: minmax(0, 38%) minmax(0, 1fr);
|
|
185
187
|
}
|
|
186
188
|
|
|
187
189
|
.ui-property__label {
|
|
188
190
|
color: var(--text-dim);
|
|
189
|
-
font-family: var(--
|
|
190
|
-
font-size: var(--text-
|
|
191
|
-
|
|
192
|
-
|
|
191
|
+
font-family: var(--sans);
|
|
192
|
+
font-size: var(--text-xs);
|
|
193
|
+
overflow-wrap: anywhere;
|
|
194
|
+
letter-spacing: 0;
|
|
195
|
+
text-transform: none;
|
|
193
196
|
}
|
|
194
197
|
|
|
195
198
|
.ui-property__value {
|
|
196
199
|
color: var(--text);
|
|
197
200
|
font-size: var(--text-sm);
|
|
198
201
|
min-inline-size: 0;
|
|
202
|
+
overflow-wrap: anywhere;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
@container bronto-inspector (max-inline-size: 20rem) {
|
|
206
|
+
.ui-property {
|
|
207
|
+
gap: var(--space-2xs);
|
|
208
|
+
grid-template-columns: minmax(0, 1fr);
|
|
209
|
+
padding-block: var(--space-xs);
|
|
210
|
+
}
|
|
199
211
|
}
|
|
200
212
|
|
|
201
213
|
/* --- Pane — a movable, renameable surface with a grab header.
|
|
@@ -304,7 +316,7 @@
|
|
|
304
316
|
|
|
305
317
|
.ui-selectionbar__count {
|
|
306
318
|
color: var(--text);
|
|
307
|
-
font-family: var(--
|
|
319
|
+
font-family: var(--sans);
|
|
308
320
|
font-size: var(--text-sm);
|
|
309
321
|
}
|
|
310
322
|
|