@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/docs/reference.md
CHANGED
|
@@ -9,7 +9,7 @@ rendering of every class is the kitchen-sink demo:
|
|
|
9
9
|
**<https://ponchia.github.io/bronto-ui/>**. Theming knobs and the token
|
|
10
10
|
contract: [docs/theming.md](theming.md).
|
|
11
11
|
|
|
12
|
-
-
|
|
12
|
+
- 683 classes across 186 component groups
|
|
13
13
|
- Import the typed registry: `import { cls, ui, cx } from '@ponchia/ui/classes'`
|
|
14
14
|
- Validate markup as data (no JS/TS): `@ponchia/ui/classes.json` — the same
|
|
15
15
|
vocabulary as language-neutral JSON (`groups`, `classes`, `states`,
|
|
@@ -324,6 +324,7 @@ each one matches a real selector in the stylesheet.
|
|
|
324
324
|
| --- | --- | --- |
|
|
325
325
|
| `cls.chip` | `ui-chip` | base |
|
|
326
326
|
| `cls.chipAccent` | `ui-chip--accent` | modifier |
|
|
327
|
+
| `cls.chipDense` | `ui-chip--dense` | modifier |
|
|
327
328
|
|
|
328
329
|
### `.ui-citation`
|
|
329
330
|
|
|
@@ -1214,6 +1215,12 @@ each one matches a real selector in the stylesheet.
|
|
|
1214
1215
|
| `cls.severityRowMeta` | `ui-severity-row__meta` | part |
|
|
1215
1216
|
| `cls.severityRowTitle` | `ui-severity-row__title` | part |
|
|
1216
1217
|
|
|
1218
|
+
### `.ui-severity-tone`
|
|
1219
|
+
|
|
1220
|
+
| Registry key | Class | Kind |
|
|
1221
|
+
| --- | --- | --- |
|
|
1222
|
+
| `cls.severityTone` | `ui-severity-tone` | base |
|
|
1223
|
+
|
|
1217
1224
|
### `.ui-shortcut`
|
|
1218
1225
|
|
|
1219
1226
|
| Registry key | Class | Kind |
|
|
@@ -1512,6 +1519,15 @@ each one matches a real selector in the stylesheet.
|
|
|
1512
1519
|
| `cls.timelineItem` | `ui-timeline__item` | part |
|
|
1513
1520
|
| `cls.timelineTime` | `ui-timeline__time` | part |
|
|
1514
1521
|
|
|
1522
|
+
### `.ui-timestrip`
|
|
1523
|
+
|
|
1524
|
+
| Registry key | Class | Kind |
|
|
1525
|
+
| --- | --- | --- |
|
|
1526
|
+
| `cls.timestrip` | `ui-timestrip` | base |
|
|
1527
|
+
| `cls.timestripAxis` | `ui-timestrip__axis` | part |
|
|
1528
|
+
| `cls.timestripEvent` | `ui-timestrip__event` | part |
|
|
1529
|
+
| `cls.timestripNow` | `ui-timestrip__now` | part |
|
|
1530
|
+
|
|
1515
1531
|
### `.ui-toast`
|
|
1516
1532
|
|
|
1517
1533
|
| Registry key | Class | Kind |
|
|
@@ -1664,13 +1680,9 @@ works in any framework without a binding layer:
|
|
|
1664
1680
|
families (`ui-alert`/`ui-toast`/`ui-meter`/`ui-dot`); the builders warn on an
|
|
1665
1681
|
out-of-set tone (see usage.md). Mapping an app's own variant
|
|
1666
1682
|
vocabulary onto a tone is application logic, not a framework class.
|
|
1667
|
-
- **Modal** — native `<dialog>`
|
|
1668
|
-
|
|
1669
|
-
(`
|
|
1670
|
-
`data-bronto-modal`, and run `initModal()` for the inert focus trap,
|
|
1671
|
-
focus-return, and Escape close signal. You still own the `is-open` state,
|
|
1672
|
-
backdrop, and top-layer stacking (`.is-open` is a bare grid — it does not
|
|
1673
|
-
float or stack on its own).
|
|
1683
|
+
- **Modal** — style a native `<dialog>` with `ui-modal`; use
|
|
1684
|
+
`initDialog()` for open/close triggers and focus return. Call
|
|
1685
|
+
`showModal()` to open the top layer; a CSS class is not an open state.
|
|
1674
1686
|
- **Current page** — mark the active link with `aria-current="page"`; it is
|
|
1675
1687
|
the programmatic cue the navs honour (`ui-sitenav`, `ui-app-nav`). The
|
|
1676
1688
|
`.is-active` class is the visual-only equivalent on `ui-app-nav`/`ui-tab`;
|
|
@@ -1718,10 +1730,10 @@ Exact mirror of the `:root` blocks in `css/tokens.css`
|
|
|
1718
1730
|
|
|
1719
1731
|
| Token | Value |
|
|
1720
1732
|
| --- | --- |
|
|
1721
|
-
| `--radius-xl` | `
|
|
1722
|
-
| `--radius-lg` | `
|
|
1723
|
-
| `--radius-md` | `
|
|
1724
|
-
| `--radius-sm` | `
|
|
1733
|
+
| `--radius-xl` | `8px` |
|
|
1734
|
+
| `--radius-lg` | `6px` |
|
|
1735
|
+
| `--radius-md` | `4px` |
|
|
1736
|
+
| `--radius-sm` | `2px` |
|
|
1725
1737
|
| `--radius-pill` | `999px` |
|
|
1726
1738
|
| `--space-2xs` | `0.25rem` |
|
|
1727
1739
|
| `--space-xs` | `0.5rem` |
|
|
@@ -1742,12 +1754,12 @@ Exact mirror of the `:root` blocks in `css/tokens.css`
|
|
|
1742
1754
|
| `--display` | `var(--dot-font)` |
|
|
1743
1755
|
| `--display-weight` | `700` |
|
|
1744
1756
|
| `--display-weight-strong` | `800` |
|
|
1745
|
-
| `--text-2xs` | `0.
|
|
1746
|
-
| `--text-xs` | `0.
|
|
1747
|
-
| `--text-sm` | `0.
|
|
1748
|
-
| `--text-base` | `
|
|
1749
|
-
| `--text-lg` | `1.
|
|
1750
|
-
| `--text-xl` | `1.
|
|
1757
|
+
| `--text-2xs` | `0.75rem` |
|
|
1758
|
+
| `--text-xs` | `0.8125rem` |
|
|
1759
|
+
| `--text-sm` | `0.875rem` |
|
|
1760
|
+
| `--text-base` | `1rem` |
|
|
1761
|
+
| `--text-lg` | `1.125rem` |
|
|
1762
|
+
| `--text-xl` | `1.5rem` |
|
|
1751
1763
|
| `--tracking-wide` | `0.14em` |
|
|
1752
1764
|
| `--tracking-wider` | `0.22em` |
|
|
1753
1765
|
| `--ease-standard` | `cubic-bezier(0.2, 0.8, 0.2, 1)` |
|
package/docs/reporting.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Static reports
|
|
2
2
|
|
|
3
|
+
Reports use readable screen prose, a 68ch measure, sentence-case headings, and
|
|
4
|
+
an independent print treatment. Put the decision before navigation. Use
|
|
5
|
+
`details.ui-report__toc` for collapsed contents and `nav.ui-report__toc` for
|
|
6
|
+
always-visible contents. See [composition recipes](compositions.md).
|
|
7
|
+
|
|
8
|
+
|
|
3
9
|
`@ponchia/ui` can dress static, LLM-authored HTML reports without a component
|
|
4
10
|
runtime. Load the normal bundle, then either opt in to the complete report kit
|
|
5
11
|
or import only the leaves a narrow report actually uses.
|
|
@@ -54,18 +60,18 @@ No install? Link the same files from a CDN. Pin the version — pre-1.0, breakin
|
|
|
54
60
|
changes ship in the minor (see [stability.md](./stability.md)):
|
|
55
61
|
|
|
56
62
|
```html
|
|
57
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.
|
|
58
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.
|
|
63
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.10.0/dist/bronto.css" />
|
|
64
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.10.0/dist/css/report-kit.css" />
|
|
59
65
|
```
|
|
60
66
|
|
|
61
67
|
Leaf-by-leaf CDN imports use the same `dist/css/` paths:
|
|
62
68
|
|
|
63
69
|
```html
|
|
64
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.
|
|
65
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.
|
|
66
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.
|
|
67
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.
|
|
68
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.
|
|
70
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.10.0/dist/bronto.css" />
|
|
71
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.10.0/dist/css/report.css" />
|
|
72
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.10.0/dist/css/dataviz.css" />
|
|
73
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.10.0/dist/css/annotations.css" />
|
|
74
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.10.0/dist/css/legend.css" />
|
|
69
75
|
```
|
|
70
76
|
|
|
71
77
|
The CDN serves the package's own `fonts/` next to the CSS, so font URLs resolve
|
|
@@ -579,7 +585,7 @@ raster).
|
|
|
579
585
|
> origin. A static report **opened from disk (`file://`) cannot import the module
|
|
580
586
|
> nor fetch `vega.json`** (CORS) — load Vega + Vega-Lite + vega-embed from pinned
|
|
581
587
|
> `/build/*.min.js` CDN tags and **inline the resolved `config` object**
|
|
582
|
-
> (generate it with `npm run emit:theme vega light`), the file
|
|
588
|
+
> (generate it with `npm run emit:theme vega light`), the `file://`-safe recipe in
|
|
583
589
|
> [vega.md](./vega.md#from-a-cdn-no-bundler). For a report
|
|
584
590
|
> you intend to **print/PDF**, prefer the frozen inline `<svg>` below — it has no
|
|
585
591
|
> runtime, prints exactly, and sidesteps all of this.
|
|
@@ -879,7 +885,7 @@ or validation runtime.
|
|
|
879
885
|
|
|
880
886
|
```json
|
|
881
887
|
{
|
|
882
|
-
"$schema": "https://cdn.jsdelivr.net/npm/@ponchia/ui@0.
|
|
888
|
+
"$schema": "https://cdn.jsdelivr.net/npm/@ponchia/ui@0.10.0/schemas/report-claims.v1.schema.json",
|
|
883
889
|
"schemaVersion": "bronto-report-claims.v1",
|
|
884
890
|
"report": { "title": "Decision readiness", "type": "decision" },
|
|
885
891
|
"claims": [
|
package/docs/stability.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# Public API stability
|
|
2
2
|
|
|
3
3
|
`@ponchia/ui` is pre-1.0. Breaking changes ship in the minor (`0.x.0`), and
|
|
4
|
-
patches are non-breaking. In practical terms: **PATCH releases (`0.
|
|
4
|
+
patches are non-breaking. In practical terms: **PATCH releases (`0.10.x`) are
|
|
5
5
|
non-breaking bug-fixes and additive changes — safe to upgrade without review;
|
|
6
6
|
MINOR releases (`0.x.0`) may include breaking changes and consumers should
|
|
7
7
|
review the CHANGELOG before upgrading.** Pin `~0.x` (tilde) to accept only
|
|
8
|
-
patches, or `^0.x`
|
|
8
|
+
patches, or `^0.x` for the same compatible pre-1.0 minor. This policy holds
|
|
9
9
|
until `1.0.0` is tagged. This matrix defines what counts as public API.
|
|
10
10
|
For the exhaustive package-manifest inventory — every `exports` key, every
|
|
11
11
|
shipped `files` entry, and the generated artifact provenance map — see
|
|
@@ -53,56 +53,22 @@ enough.
|
|
|
53
53
|
|
|
54
54
|
### Adoption evidence for 1.0
|
|
55
55
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
> full-surface audit of the largest downstream consumer (a Yjs-collaborative
|
|
73
|
-
> spatial canvas workspace: React, Vite, ~10k lines of its own CSS) found it
|
|
74
|
-
> using **26 of the 646 published classes**, and hand-rebuilding much of the
|
|
75
|
-
> rest — 10 bespoke empty states, 15 error surfaces, 17 control bars, three
|
|
76
|
-
> parallel severity vocabularies, its own Markdown prose layer, its own diff
|
|
77
|
-
> rows, its own meters, and two copies of visually-hidden text. Thirteen
|
|
78
|
-
> primitives that map almost exactly onto what it built return **zero** uses:
|
|
79
|
-
> `ui-state`, `ui-prose`, `ui-diff`, `ui-code`, `ui-meter`, `ui-progress`,
|
|
80
|
-
> `ui-toolstrip`, `ui-dot`, `ui-chip`, `ui-tag`, `ui-timeline`, `ui-steps`,
|
|
81
|
-
> `ui-job`.
|
|
82
|
-
>
|
|
83
|
-
> The lesson for this document is not about that consumer. It is that **"no
|
|
84
|
-
> inspected consumer imports the surface" has been measuring discoverability,
|
|
85
|
-
> not demand.** Those surfaces were not rejected; they were never found. The
|
|
86
|
-
> opt-in leaf model is right, but nothing tells a consumer which leaf it is
|
|
87
|
-
> about to reimplement — and `bronto-ui-check`, which catches part of it, was
|
|
88
|
-
> installed in that consumer and had never been run. Before any 1.0 decision
|
|
89
|
-
> retires a package-proven surface for lack of adoption, confirm the surface was
|
|
90
|
-
> *reachable*: named in the consumer's imports, or at least in a leaf it
|
|
91
|
-
> imports. Non-adoption of an unimported leaf is not evidence.
|
|
92
|
-
>
|
|
93
|
-
> The same audit produced this release's four consumer-driven changes (the tap
|
|
94
|
-
> target floor, the safe-area tokens, `ui-button__label`, and the dense tier)
|
|
95
|
-
> and the ADR-0001 canvas amendment. That is the intended loop: the consumer's
|
|
96
|
-
> local classes are the backlog, resolving either to a deletion there or an
|
|
97
|
-
> addition here.
|
|
98
|
-
|
|
99
|
-
| Surface family | Current evidence | 1.0 disposition |
|
|
100
|
-
| --- | --- | --- |
|
|
101
|
-
| Core CSS, class recipes, vanilla behaviors, tokens, and Tailwind bridge | Downstream-proven across five inspected non-example app, site, and service consumers. | Stabilize names and behavior contracts. Use consumer upgrades as the release-candidate proof. |
|
|
102
|
-
| Report, provenance, analytical CSS, annotations, glyphs, skins, workbench CSS, chart data, and Vega theme | Downstream-proven across four inspected report, site, dashboard, and tool consumers. | Keep opt-in. Stabilize the consumed paths; do not broaden the catalog during the freeze. |
|
|
103
|
-
| Controlled non-`<dialog>` modal | Package-proven by stack, portal, late-node, focus, and cleanup regressions. None of ten inspected non-example consumers initializes `initModal`. | Deprecated in 0.7; remove no earlier than 0.8 unless a real consumer adopts it. Native `<dialog>` + `initDialog` is the stable path. |
|
|
104
|
-
| React, Solid, Qwik, Svelte, and Vue lifecycle adapters | Package-proven by packed examples, types, and lifecycle tests. None of ten inspected non-example consumers imports an adapter entrypoint. | Deprecated in 0.7; remove no earlier than 0.8 unless a real consumer adopts one. Vanilla behaviors remain stable. |
|
|
105
|
-
| Mermaid, D2, Shiki, Figma Variables, and the report-claims schema | Package-proven by generated-data, render, schema, and drift checks. No inspected non-example consumer currently supplies downstream proof for every path. | Keep compatible through 0.8.x, but decide each 1.0 contract from adoption evidence rather than generator coverage alone. |
|
|
56
|
+
Separate downstream proof from package proof. An example build verifies the
|
|
57
|
+
published contract; a real application or report upgrade verifies that it is
|
|
58
|
+
useful. Record the candidate version, imported surface, visual/input checks,
|
|
59
|
+
and remaining consumer-specific overrides with the release.
|
|
60
|
+
|
|
61
|
+
The 0.10 direction is defined by
|
|
62
|
+
[ADR-0005](adr/0005-productive-tools-and-editorial-reports.md). The active
|
|
63
|
+
packed examples cover vanilla, Astro, SvelteKit, React, Tailwind, and static
|
|
64
|
+
reports. The unadopted framework adapters and controlled modal were removed
|
|
65
|
+
following their 0.7 deprecation; see the
|
|
66
|
+
[migration](migrations/0.9-to-0.10.md).
|
|
67
|
+
|
|
68
|
+
Do not maximize a consumer's fraction of the class catalog. Measure repeated
|
|
69
|
+
design decisions avoided and complete tasks improved. Check discoverability
|
|
70
|
+
before interpreting non-adoption, and keep legitimate domain-specific CSS in
|
|
71
|
+
the consumer.
|
|
106
72
|
|
|
107
73
|
After 1.0, breaking changes move to majors. Until then, the table below is the
|
|
108
74
|
current public-surface matrix and the release policy above still applies.
|
|
@@ -126,7 +92,6 @@ current public-surface matrix and the release policy above still applies.
|
|
|
126
92
|
| Consumer checker (`bronto-ui-check`) | Stable additive | The installed binary lexically validates literal `ui-*` classes and unresolved reserved-token references in supported code, style, and template sources after stripping comments; Markdown prose and generated/vendor directories are excluded. Exit 0 means no findings, exit 1 means contract findings, and exit 2 means invocation/input failure. New checks may be additive; an existing valid literal cannot become an error within a patch unless the corresponding public contract was already invalid. |
|
|
127
93
|
| Glyph registry/renderers (`@ponchia/ui/glyphs`) | Stable additive | Existing glyph names stay valid. New glyphs are additive. Renderer option names and accessibility defaults are public. |
|
|
128
94
|
| `.ui-icon` mask renderer | Stable | Class name, `--icon-size`, currentColor inheritance, and `--icon-mask` contract are public. The internal data URL encoding is not. |
|
|
129
|
-
| Framework lifecycle adapters (`react`/`solid`/`qwik`/`svelte`/`vue`) | Deprecated in 0.7 | Hook/action/directive names, optional peer behavior, root resolver support, and cleanup remain compatible through 0.7. Scheduled for removal no earlier than 0.8 under ADR-0004. Use vanilla behaviors in framework lifecycle code. |
|
|
130
95
|
| Skins (`@ponchia/ui/skins`, `css/skins.css`) | Stable additive | Existing skin names stay valid. New skins are additive. Skins are root-level choices. Skin CSS is opt-in, not in the default bundle. |
|
|
131
96
|
| Charts (`@ponchia/ui/charts`, `charts.json`, `css/dataviz.css`) | Stable additive | Token names, JSON shape, and 8 categorical slots are public. `css/dataviz.css` is opt-in, not in the default bundle. Exact palette values may tune if gates and release notes justify it. |
|
|
132
97
|
| External renderer themes (`@ponchia/ui/mermaid`, `@ponchia/ui/mermaid.json`, `@ponchia/ui/d2`, `@ponchia/ui/d2.json`, `@ponchia/ui/vega`, `@ponchia/ui/vega.json`) | Stable additive | Theme helper names, JSON shapes, and supported renderer theme slots are public. Values are resolved colours because Mermaid, D2, and Vega cannot consume Bronto CSS variables directly. Exact colours may tune with token changes, but `check:mermaid`, `check:d2`, and `check:vega` must prove every exported theme resolves with no `var()` leaks. No renderer runtime ships. |
|
|
@@ -150,7 +115,7 @@ current public-surface matrix and the release policy above still applies.
|
|
|
150
115
|
| Lifecycle state (`css/state.css`, `.ui-state*`, `.ui-syncbar`) | Stable additive | The `.ui-state`/`__label`/`__detail`/`--busy` classes, the canonical lifecycle state modifiers, `.ui-syncbar`, and the `ui.state` recipe are public. Opt-in, not in the default bundle. |
|
|
151
116
|
| Generated / AI-trust (`css/generated.css`, `.ui-generated*`, `.ui-origin-label*`, `.ui-reasoning*`, `.ui-tool-log`, `.ui-tool-call*`) | Stable additive | The generated-content, origin-label (incl. `--ai`), reasoning-trace and tool-log/tool-call class names and the `ui.originLabel` recipe are public. Opt-in, not in the default bundle. Not a chat kit; no confidence widget. |
|
|
152
117
|
| Workbench (`css/workbench.css`, `.ui-splitter*`, `.ui-inspector*`, `.ui-property*`, `.ui-selectionbar*`, `initSplitter`) | Stable additive | Splitter, inspector, property-row and selection-bar class + BEM part names are public (no recipe). `data-bronto-splitter`, `--splitter-pos`, `bronto:splitter:resize`, and the `initSplitter` cleanup contract are public. Opt-in, not in the default bundle. The host owns pane content, persistence, collapse policy, and selection state. |
|
|
153
|
-
| Command palette (`css/command.css`, `.ui-command*`, `initCommand`) | Stable additive | Command class/part names, the `data-bronto-command` attribute, and the event contract — `bronto:command:select` (`detail: { value, label }`) and `bronto:command:close` — are public. Bronto filters + navigates (APG combobox/listbox); the host owns the action registry/execution. Opt-in, not in the default bundle, no global hotkey.
|
|
118
|
+
| Command palette (`css/command.css`, `.ui-command*`, `initCommand`) | Stable additive | Command class/part names, the `data-bronto-command` attribute, and the event contract — `bronto:command:select` (`detail: { value, label }`) and `bronto:command:close` — are public. Bronto filters + navigates (APG combobox/listbox); the host owns the action registry/execution. Opt-in, not in the default bundle, no global hotkey. |
|
|
154
119
|
| Spark microcharts (`css/spark.css`, `.ui-spark*`) | Stable additive | Spark class names and inline sizing/label slots are public. Opt-in, not in the default bundle. The host owns data reduction and accessible surrounding text. |
|
|
155
120
|
| Bullet graphs (`css/bullet.css`, `.ui-bullet*`) | Stable additive | Bullet class names and measure/target/range custom-property slots are public. Opt-in, not in the default bundle. The host owns thresholds, units, and data mapping. |
|
|
156
121
|
| Diffs (`css/diff.css`, `.ui-diff*`) | Stable additive | Diff container/line/gutter class names and add/remove/highlight state modifiers are public. Opt-in, not in the default bundle. Bronto styles evidence; it does not compute diffs. |
|
|
@@ -160,7 +125,6 @@ current public-surface matrix and the release policy above still applies.
|
|
|
160
125
|
| Terms / glossary (`css/term.css`, `.ui-term`, `.ui-glossary`) | Stable additive | Term and glossary class names plus native-popover definition hooks are public. Opt-in, not in the default bundle. The host owns glossary content and terminology policy. |
|
|
161
126
|
| Contents rail (`css/toc.css`, `.ui-toc*`) | Stable additive | TOC rail class/part names and current-section state classes are public. Opt-in, not in the default bundle. The host owns section observation and active-state updates. |
|
|
162
127
|
| Tree outlines (`css/tree.css`, `.ui-tree*`) | Stable additive | Tree outline class names, depth styling, and native `<details>` composition are public. Opt-in, not in the default bundle. The host owns tree data, lazy loading, and selection state. |
|
|
163
|
-
| Controlled-modal focus trap (`initModal`, adapter `useModal`, `data-bronto-modal`) | Deprecated in 0.7 | The controlled non-`<dialog>` path remains compatible through 0.7 and is scheduled for removal no earlier than 0.8 under ADR-0004. Use native `<dialog>` with `initDialog()`; it remains stable. |
|
|
164
128
|
| Keyboard-shortcut hint (`.ui-shortcut`, `.ui-shortcut__sep`) | Stable additive | Class names for the chord/sequence hint over `.ui-kbd` are public. Ships in the core layer (class-only, no recipe). |
|
|
165
129
|
| Agent and migration data (`llms.txt`, `MIGRATIONS.json`) | Stable additive | `llms.txt` stays shipped as the offline agent entrypoint. `MIGRATIONS.json` stays a machine-readable migration map for breaking renames/removals. New migration entries are additive; removal of a migration record requires the same breaking-change discipline as the surface it describes. |
|
|
166
130
|
| Generated docs shipped in npm | Stable paths | Exported docs paths stay shipped and resolvable within a compatible minor. Markdown/text assets are for reading unless your runtime has a loader. Generated content may change with the source contract. |
|
package/docs/state.md
CHANGED
|
@@ -165,6 +165,52 @@ Colour is never the only channel (WCAG 1.4.1): `.ui-severity` carries an
|
|
|
165
165
|
author-written label, and `.ui-severity-dot` is only for rows that **also** name
|
|
166
166
|
their level in text.
|
|
167
167
|
|
|
168
|
+
### Painting a mark Bronto does not ship — `.ui-severity-tone`
|
|
169
|
+
|
|
170
|
+
The three classes above all draw something: a chip, a ruled row, a background
|
|
171
|
+
dot. A host painting its own mark — an SVG shape, a gradient stop, a canvas —
|
|
172
|
+
needs the tone as a **value** with none of that. `.ui-severity-tone` paints
|
|
173
|
+
nothing and only resolves `--severity-tone` from `data-level`:
|
|
174
|
+
|
|
175
|
+
```html
|
|
176
|
+
<circle class="ui-severity-tone" data-level="critical" fill="var(--severity-tone)" />
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Reach for it when `background` is not the property you need. An SVG shape
|
|
180
|
+
ignores `background` entirely, so without this a consumer restates the whole
|
|
181
|
+
tier table in `fill` — and then it can drift from the rows beside it.
|
|
182
|
+
|
|
183
|
+
## Timestrip — `.ui-timestrip`
|
|
184
|
+
|
|
185
|
+
A status list answers *what*. The strip answers **when**, on one axis, at a
|
|
186
|
+
glance: a cluster of marks at the leading edge is a fresh incident, a lone mark
|
|
187
|
+
pinned to the trailing edge has been wrong for a while. It takes the same
|
|
188
|
+
`data-level` as the ladder, so a strip cannot disagree with the rows under it.
|
|
189
|
+
|
|
190
|
+
```html
|
|
191
|
+
<div class="ui-timestrip" role="img" aria-label="When these alerts started, last 24 hours">
|
|
192
|
+
<span class="ui-timestrip__axis"></span>
|
|
193
|
+
<span class="ui-timestrip__now"></span>
|
|
194
|
+
<span class="ui-timestrip__event" data-level="critical" style="--at: 0.92"></span>
|
|
195
|
+
<span class="ui-timestrip__event" data-level="warning" style="--at: 0.4"></span>
|
|
196
|
+
<span class="ui-timestrip__event" data-level="ok" data-outside style="--at: 0"></span>
|
|
197
|
+
</div>
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
**This is geometry, not a chart.** The host owns the window, the clock, and the
|
|
201
|
+
arithmetic: it normalises each event to a position in `0..1` and writes it as
|
|
202
|
+
`--at`, where `0` is the oldest edge and `1` is now. Bronto owns the rail, the
|
|
203
|
+
now marker, and the mark. There are no scales, no ticks, no axis labels, and no
|
|
204
|
+
time parsing — a surface that wants those wants a chart, and Bronto
|
|
205
|
+
[refuses chart scales](./frontier-primitives.md).
|
|
206
|
+
|
|
207
|
+
`data-outside` marks an event older than the window. It stays at the edge at
|
|
208
|
+
reduced weight rather than vanishing, because a strip reading "quiet" while a
|
|
209
|
+
row says "failing for three days" is worse than one reading crowded.
|
|
210
|
+
|
|
211
|
+
The strip is decorative on its own: give it an `aria-label` naming what it
|
|
212
|
+
plots, and let the rows beneath it name each level in words.
|
|
213
|
+
|
|
168
214
|
## Recipe
|
|
169
215
|
|
|
170
216
|
```js
|
|
@@ -180,6 +226,7 @@ ui.job({ state: 'running' }); // "ui-job ui-job--running"
|
|
|
180
226
|
severity('critical'); // { class: 'ui-severity', 'data-level': 'critical' }
|
|
181
227
|
severity('warning', { part: 'row' }); // { class: 'ui-severity-row', … }
|
|
182
228
|
severity('nope'); // { class: 'ui-severity', 'data-level': 'unknown' }
|
|
229
|
+
severity('critical', { part: 'tone' }); // { class: 'ui-severity-tone', … }
|
|
183
230
|
|
|
184
231
|
SEVERITY_LEVELS; // ['critical','error','warning','notice','ok'] — sort/filter from this
|
|
185
232
|
```
|
package/docs/usage.md
CHANGED
|
@@ -137,8 +137,8 @@ one column inside a slim panel even when the window is wide (island-safe; it
|
|
|
137
137
|
nests). Two thresholds are built in: `ui-grid` drops to a single column at
|
|
138
138
|
**34rem** and `ui-statgrid`/`ui-app-metrics` at **30rem**, measured on the `ui-cq`
|
|
139
139
|
box. Note `rem` in a container query resolves against the **root** font size, not
|
|
140
|
-
|
|
141
|
-
|
|
140
|
+
a fixed device pixel size. At the default 16px root these are **544px** and
|
|
141
|
+
**480px**; they follow the browser text-size preference. And be aware `ui-grid` already collapses on its own via an
|
|
142
142
|
intrinsic `auto-fit` minmax, so `ui-cq` barely changes it — the primitive that
|
|
143
143
|
genuinely *needs* `ui-cq` to collapse by container (not viewport) is
|
|
144
144
|
`ui-statgrid`/`ui-app-metrics`. The container is named `bronto` (hardcoded — there
|
|
@@ -255,8 +255,8 @@ sentences at the same weight, a third is a bare `<p>`.
|
|
|
255
255
|
|
|
256
256
|
## Link vs link--cta
|
|
257
257
|
|
|
258
|
-
Plain `ui-link` for in-flow links. `ui-link--cta` is the
|
|
259
|
-
action link
|
|
258
|
+
Plain `ui-link` for in-flow links. `ui-link--cta` is the accent
|
|
259
|
+
action link with an arrow — a *navigational
|
|
260
260
|
call to action*, not a substitute for a button (no form submit, no
|
|
261
261
|
destructive action).
|
|
262
262
|
|
|
@@ -373,7 +373,7 @@ without it these widgets are unlabelled or unannounced:
|
|
|
373
373
|
```
|
|
374
374
|
|
|
375
375
|
Drop `--icon` and the same markup renders glyph + word. The slot also
|
|
376
|
-
|
|
376
|
+
ellipsis rather than wrapping, so a labelled button in a width-constrained
|
|
377
377
|
bar shrinks instead of pushing its neighbours out.
|
|
378
378
|
- **`ui-button--dense`** is for bars whose height is the constraint — a pane
|
|
379
379
|
title bar, a packed toolbar, a table row's actions. It lowers only the
|
|
@@ -468,28 +468,9 @@ convey identity to AT. Keep initials to ~2 characters — the box is
|
|
|
468
468
|
|
|
469
469
|
Prefer the **native `<dialog>`** path — you get top-layer, backdrop and
|
|
470
470
|
focus-trap free (wire it with `initDialog` for open-triggers + focus-return).
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
real consumer uses it. Migrate portals to a native `<dialog>` where possible;
|
|
475
|
-
if a framework must retain the controlled path during 0.7, keep the existing
|
|
476
|
-
accessible name and `bronto:modal:close` handling unchanged.
|
|
477
|
-
|
|
478
|
-
Controlled modals share one document-level stack. Opening a sibling portal
|
|
479
|
-
modal makes the previous modal inert and keeps only the new top modal
|
|
480
|
-
interactive; closing it restores focus into the previous modal. An
|
|
481
|
-
`initPopover()` trigger inside the top modal may target a panel portaled
|
|
482
|
-
elsewhere in the document: while that panel is open, it joins the live modal
|
|
483
|
-
tree and owns Escape without releasing unrelated background content. Background
|
|
484
|
-
nodes added after the modal opens are trapped too. If a controlled parent modal
|
|
485
|
-
closes while a descendant still carries `is-open`, the descendant is suspended
|
|
486
|
-
with the parent and resumes if the parent reopens.
|
|
487
|
-
|
|
488
|
-
**Scroll-lock is not automatic.** A native `<dialog>` does not freeze background
|
|
489
|
-
scroll — the page behind an open modal can
|
|
490
|
-
still scroll. If that matters, toggle a lock yourself while the modal is open
|
|
491
|
-
(`document.documentElement.style.overflow = 'hidden'`, restored on close), or add
|
|
492
|
-
`html:has(dialog[open]) { overflow: hidden }` for the native path.
|
|
471
|
+
Use a native `<dialog>` with `initDialog()` for focus, stacking, and close
|
|
472
|
+
behavior. Application frameworks own the mount/cleanup lifecycle. The removed
|
|
473
|
+
controlled-modal path is covered by the [0.10 migration](migrations/0.9-to-0.10.md).
|
|
493
474
|
|
|
494
475
|
## Carousel & lightbox: one primitive, two skins
|
|
495
476
|
|
|
@@ -665,7 +646,7 @@ authoring engine.
|
|
|
665
646
|
code — so put the human label in the `<li>` text and the code in `data-value`.
|
|
666
647
|
The `.ui-combobox__empty` ("No matches") is hidden until a filter empties the
|
|
667
648
|
list. Two intentional single-select APG deviations: ArrowDown on a closed list
|
|
668
|
-
filters rather than
|
|
649
|
+
filters rather than preselecting the first option, and Tab closes without
|
|
669
650
|
committing a merely-highlighted option (Enter/click commits).
|
|
670
651
|
- **Validation** is opt-in via `data-bronto-validate` on the form plus
|
|
671
652
|
`initFormValidation()`; it surfaces messages into a `ui-error-summary` you
|
|
@@ -757,7 +738,7 @@ moves into it, but there is **no focus trap** and the rest of the page stays
|
|
|
757
738
|
interactive — Tab moves *out* of the panel (it does not cycle), and it closes on
|
|
758
739
|
Escape or outside-click. Don't assume `<dialog>`-modal semantics; if you need a
|
|
759
740
|
trap and an inert backdrop, use a real modal (`<dialog>` + `initDialog`). The
|
|
760
|
-
|
|
741
|
+
controlled-modal path was removed in 0.10. And the
|
|
761
742
|
`is-open` fallback is a plain stacked element, so it sits
|
|
762
743
|
*under* any open native `<dialog>`'s top layer — another reason to prefer the
|
|
763
744
|
native `popover` attribute when a popover and a dialog can be open together.
|
|
@@ -792,7 +773,6 @@ These are JS widgets wearing the Bronto look; without the behavior they are iner
|
|
|
792
773
|
| Popover (`ui-popover`) | `initPopover` | no placement/ARIA — prefer the native `popover` attribute |
|
|
793
774
|
| Carousel (`ui-carousel`) | `initCarousel` | a native scroll-snap track (usable, no controls) |
|
|
794
775
|
| Native dialog/lightbox (`<dialog>`, `ui-lightbox`) | `initDialog` | closed markup stays closed; `data-bronto-open`/close buttons do nothing. Do not use `open` as a modal fallback: it is non-modal and has no trigger/focus-return path |
|
|
795
|
-
| Controlled modal (`ui-modal.is-open`, deprecated) | `initModal` (deprecated) | open skin only — no inert trap, focus-return, or Escape close signal |
|
|
796
776
|
| Menu (`data-bronto-menu`) | `initMenu` | a button next to a list with no open/close, outside-click, or Escape |
|
|
797
777
|
| Dismissible alert/callout (`data-bronto-dismissible`) | `dismissible` | the close affordance is just a button; nothing is removed |
|
|
798
778
|
| Toast | `toast()` | nothing — it is imperative-only |
|
|
@@ -826,3 +806,11 @@ the shipped palettes are gated (see [contrast.md](contrast.md)); your
|
|
|
826
806
|
custom accent is not. Verify primary-button label, `--accent-text`, and
|
|
827
807
|
the focus ring against their backgrounds. Full contract:
|
|
828
808
|
[theming.md](theming.md).
|
|
809
|
+
|
|
810
|
+
## Dense labels
|
|
811
|
+
|
|
812
|
+
Use `ui-chip--dense` for a static label in a short pane header.
|
|
813
|
+
`ui.chip({ dense: true })` returns that class. Buttons and links carrying it
|
|
814
|
+
retain pointer target floors; use an actual button for an action.
|
|
815
|
+
|
|
816
|
+
For complete tool/report layouts, use [composition recipes](compositions.md).
|
package/llms.txt
CHANGED
|
@@ -45,7 +45,7 @@ the path changes from source `css/` to built `dist/css/`:
|
|
|
45
45
|
<!-- installed locally -->
|
|
46
46
|
<link rel="stylesheet" href="./node_modules/@ponchia/ui/dist/css/<leaf>.css" />
|
|
47
47
|
<!-- or from a CDN; pin the version (pre-1.0, breaking changes ship in the minor) -->
|
|
48
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.
|
|
48
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.10.0/dist/css/<leaf>.css" />
|
|
49
49
|
```
|
|
50
50
|
|
|
51
51
|
The flattened default bundle is `dist/bronto.css` (bundler shorthand
|
|
@@ -74,9 +74,7 @@ import { applyStoredTheme } from '@ponchia/ui/behaviors';
|
|
|
74
74
|
|
|
75
75
|
Notable behaviors beyond the obvious: `initMenu()` adds close affordances to a
|
|
76
76
|
native `<details data-bronto-menu>` dropdown (outside-click/Escape/select-close);
|
|
77
|
-
`
|
|
78
|
-
role/aria-modal), but is deprecated in 0.7 for removal no earlier than 0.8;
|
|
79
|
-
prefer native `<dialog>` + `initDialog()`. `initDisabledGuard()` makes every `aria-disabled` control
|
|
77
|
+
Native `<dialog>` with `initDialog()` owns modal interaction. `initDisabledGuard()` makes every `aria-disabled` control
|
|
80
78
|
keyboard-inert (CSS alone is only pointer-inert). For the value-bearing fills,
|
|
81
79
|
`attrs.meter(value)` / `attrs.progress(value)` from `@ponchia/ui/classes` return
|
|
82
80
|
`role`+`aria-valuenow/min/max`+the `--value` style to spread onto the host.
|
|
@@ -86,20 +84,11 @@ matching `.ui-source-card`, seed lightweight preview metadata, and emit
|
|
|
86
84
|
`bronto:source:focus`; the host still owns numbering, fetching, trust decisions,
|
|
87
85
|
and any rich preview popover.
|
|
88
86
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
actions, and Vue uses dependency-free directives/plugin helpers:
|
|
95
|
-
|
|
96
|
-
```js
|
|
97
|
-
import { useDialog, useToast } from '@ponchia/ui/react'; // or '@ponchia/ui/solid' or '@ponchia/ui/qwik'
|
|
98
|
-
// React: scope with { root: reactRef } or a resolver, not { root: ref.current } during render.
|
|
99
|
-
// Qwik: hooks run in useVisibleTask$; scope with a Qwik signal — useDialog({ root: useSignal() }).
|
|
100
|
-
// Svelte: import { dialog, toast } from '@ponchia/ui/svelte'.
|
|
101
|
-
// Vue: import { vDialog, useToast } from '@ponchia/ui/vue', or app.use(brontoVue).
|
|
102
|
-
```
|
|
87
|
+
Initialize behaviors in the host framework's mount/cleanup lifecycle. Framework
|
|
88
|
+
adapter subpaths are removed in 0.10. Read `docs/compositions.md` before selecting
|
|
89
|
+
primitives: tools use sans headings and labels, reports prioritize reading,
|
|
90
|
+
and `ui-display` is an explicit brand treatment. The catalog is a lookup, not a
|
|
91
|
+
checklist of components to place on a page.
|
|
103
92
|
|
|
104
93
|
Optional display glyphs — dot-matrix bitmaps on the `.ui-dotmatrix` primitive
|
|
105
94
|
(decorative by default; `renderGlyph` is SSR-safe, `initDotGlyph` is the DOM form).
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ponchia/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"description": "CSS-first identity and UI layer for services, tools, sites, and reports
|
|
5
|
+
"description": "CSS-first identity and UI layer for services, tools, sites, and reports — works in HTML, every framework, and PDF, no component runtime. Shared app shell, forms, tables, workflow chrome, plus opt-in analytical/report primitives. Monochrome with one rationed accent. Zero runtime dependencies.",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"css",
|
|
8
8
|
"ui",
|
|
@@ -58,11 +58,6 @@
|
|
|
58
58
|
"schemas",
|
|
59
59
|
"annotations",
|
|
60
60
|
"connectors",
|
|
61
|
-
"react",
|
|
62
|
-
"solid",
|
|
63
|
-
"qwik",
|
|
64
|
-
"svelte",
|
|
65
|
-
"vue",
|
|
66
61
|
"shiki",
|
|
67
62
|
"llms.txt",
|
|
68
63
|
"CHANGELOG.md",
|
|
@@ -118,7 +113,11 @@
|
|
|
118
113
|
"docs/adr/0001-color-system.md",
|
|
119
114
|
"docs/adr/0002-scope-and-2026-baseline.md",
|
|
120
115
|
"docs/adr/0003-theme-model.md",
|
|
121
|
-
"docs/adr/0004-prune-unused-adapters.md"
|
|
116
|
+
"docs/adr/0004-prune-unused-adapters.md",
|
|
117
|
+
"docs/compositions.md",
|
|
118
|
+
"docs/adr/0005-productive-tools-and-editorial-reports.md",
|
|
119
|
+
"docs/migrations/0.9-to-0.10.md",
|
|
120
|
+
"docs/adr/0006-trusted-publishing.md"
|
|
122
121
|
],
|
|
123
122
|
"style": "./dist/bronto.css",
|
|
124
123
|
"scripts": {
|
|
@@ -181,7 +180,6 @@
|
|
|
181
180
|
"check:component-matrix": "node scripts/check-component-matrix.mjs",
|
|
182
181
|
"check:behavior-matrix": "node scripts/check-behavior-matrix.mjs",
|
|
183
182
|
"check:helper-matrix": "node scripts/check-helper-matrix.mjs",
|
|
184
|
-
"check:binding-matrix": "node scripts/check-binding-matrix.mjs",
|
|
185
183
|
"check:examples": "node scripts/check-examples.mjs",
|
|
186
184
|
"check:visual-baselines": "node scripts/check-visual-baselines.mjs",
|
|
187
185
|
"check:playwright-container": "node scripts/check-playwright-container.mjs",
|
|
@@ -200,7 +198,7 @@
|
|
|
200
198
|
"check:publint": "publint --strict",
|
|
201
199
|
"check:attw": "attw --pack --ignore-rules no-resolution cjs-resolves-to-esm",
|
|
202
200
|
"check:workflows": "github-actionlint .github/workflows/*.yml",
|
|
203
|
-
"check": "npm run lint && npm run check:format && npm run check:exports && npm run check:fresh && npm run check:classes && npm run check:recipe-types && npm run check:dead && npm run check:complexity && npm run check:types && npm run check:unit && npm run check:shiki && npm run check:dist && npm run check:pack && npm run check:consumer-surface && npm run check:consumer-types && npm run check:component-matrix && npm run check:behavior-matrix && npm run check:helper-matrix && npm run check:
|
|
201
|
+
"check": "npm run lint && npm run check:format && npm run check:exports && npm run check:fresh && npm run check:classes && npm run check:recipe-types && npm run check:dead && npm run check:complexity && npm run check:types && npm run check:unit && npm run check:shiki && npm run check:dist && npm run check:pack && npm run check:consumer-surface && npm run check:consumer-types && npm run check:component-matrix && npm run check:behavior-matrix && npm run check:helper-matrix && npm run check:examples && npm run check:visual-baselines && npm run check:playwright-container && npm run check:schemas && npm run check:publint && npm run check:attw && npm run check:workflows && npm run check:release && npm run check:versions && npm run check:migrations && npm run check:public-metadata && npm run check:public-hygiene && npm run check:doc-links && npm run check:doc-recipes && npm run check:contract && npm run check:variables && npm run check:contrast && npm run check:dtcg && npm run check:dts-emit && npm run check:glyphs && npm run check:color-policy && npm run check:skins && npm run check:charts && npm run check:mermaid && npm run check:d2 && npm run check:vega && npm run check:report && npm run check:legend && npm run check:chain",
|
|
204
202
|
"test": "node --test \"test/*.test.mjs\"",
|
|
205
203
|
"test:e2e": "playwright test",
|
|
206
204
|
"test:e2e:chromium": "playwright test --project=chromium",
|
|
@@ -217,7 +215,6 @@
|
|
|
217
215
|
"devDependencies": {
|
|
218
216
|
"@arethetypeswrong/cli": "^0.18.5",
|
|
219
217
|
"@axe-core/playwright": "^4.11.3",
|
|
220
|
-
"@builder.io/qwik": "^1.20.0",
|
|
221
218
|
"@playwright/test": "1.60.0",
|
|
222
219
|
"github-actionlint": "^1.7.12",
|
|
223
220
|
"jsdom": "^30.0.1",
|
|
@@ -225,9 +222,6 @@
|
|
|
225
222
|
"pdfjs-dist": "^6.2.108",
|
|
226
223
|
"prettier": "^3.9.6",
|
|
227
224
|
"publint": "^0.3.23",
|
|
228
|
-
"react": "^19.2.8",
|
|
229
|
-
"react-dom": "^19.2.8",
|
|
230
|
-
"solid-js": "^1.9.14",
|
|
231
225
|
"stylelint": "^17.14.1",
|
|
232
226
|
"stylelint-config-standard": "^40.0.0",
|
|
233
227
|
"stylelint-use-logical": "^2.1.3",
|
|
@@ -235,22 +229,6 @@
|
|
|
235
229
|
"vega": "^6.3.1",
|
|
236
230
|
"vega-lite": "^6.4.3"
|
|
237
231
|
},
|
|
238
|
-
"peerDependencies": {
|
|
239
|
-
"@builder.io/qwik": ">=1.5",
|
|
240
|
-
"react": ">=18",
|
|
241
|
-
"solid-js": ">=1.6"
|
|
242
|
-
},
|
|
243
|
-
"peerDependenciesMeta": {
|
|
244
|
-
"@builder.io/qwik": {
|
|
245
|
-
"optional": true
|
|
246
|
-
},
|
|
247
|
-
"react": {
|
|
248
|
-
"optional": true
|
|
249
|
-
},
|
|
250
|
-
"solid-js": {
|
|
251
|
-
"optional": true
|
|
252
|
-
}
|
|
253
|
-
},
|
|
254
232
|
"exports": {
|
|
255
233
|
".": {
|
|
256
234
|
"types": "./index.d.ts",
|
|
@@ -476,10 +454,6 @@
|
|
|
476
454
|
"types": "./behaviors/menu.d.ts",
|
|
477
455
|
"default": "./behaviors/menu.js"
|
|
478
456
|
},
|
|
479
|
-
"./behaviors/modal": {
|
|
480
|
-
"types": "./behaviors/modal.d.ts",
|
|
481
|
-
"default": "./behaviors/modal.js"
|
|
482
|
-
},
|
|
483
457
|
"./behaviors/popover": {
|
|
484
458
|
"types": "./behaviors/popover.d.ts",
|
|
485
459
|
"default": "./behaviors/popover.js"
|
|
@@ -524,26 +498,6 @@
|
|
|
524
498
|
"types": "./connectors/index.d.ts",
|
|
525
499
|
"default": "./connectors/index.js"
|
|
526
500
|
},
|
|
527
|
-
"./react": {
|
|
528
|
-
"types": "./react/index.d.ts",
|
|
529
|
-
"default": "./react/index.js"
|
|
530
|
-
},
|
|
531
|
-
"./solid": {
|
|
532
|
-
"types": "./solid/index.d.ts",
|
|
533
|
-
"default": "./solid/index.js"
|
|
534
|
-
},
|
|
535
|
-
"./qwik": {
|
|
536
|
-
"types": "./qwik/index.d.ts",
|
|
537
|
-
"default": "./qwik/index.js"
|
|
538
|
-
},
|
|
539
|
-
"./svelte": {
|
|
540
|
-
"types": "./svelte/index.d.ts",
|
|
541
|
-
"default": "./svelte/index.js"
|
|
542
|
-
},
|
|
543
|
-
"./vue": {
|
|
544
|
-
"types": "./vue/index.d.ts",
|
|
545
|
-
"default": "./vue/index.js"
|
|
546
|
-
},
|
|
547
501
|
"./skins": {
|
|
548
502
|
"types": "./tokens/skins.d.ts",
|
|
549
503
|
"default": "./tokens/skins.js"
|
|
@@ -568,7 +522,11 @@
|
|
|
568
522
|
"default": "./tokens/vega.js"
|
|
569
523
|
},
|
|
570
524
|
"./vega.json": "./tokens/vega.json",
|
|
571
|
-
"./fonts/*": "./fonts/*"
|
|
525
|
+
"./fonts/*": "./fonts/*",
|
|
526
|
+
"./docs/compositions.md": "./docs/compositions.md",
|
|
527
|
+
"./docs/adr/0005-productive-tools-and-editorial-reports.md": "./docs/adr/0005-productive-tools-and-editorial-reports.md",
|
|
528
|
+
"./docs/migrations/0.9-to-0.10.md": "./docs/migrations/0.9-to-0.10.md",
|
|
529
|
+
"./docs/adr/0006-trusted-publishing.md": "./docs/adr/0006-trusted-publishing.md"
|
|
572
530
|
},
|
|
573
531
|
"overrides": {
|
|
574
532
|
"adm-zip": "0.6.0",
|