@ponchia/ui 0.6.12 → 0.7.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 +77 -0
- package/MIGRATIONS.json +14 -0
- package/README.md +14 -6
- package/behaviors/dialog.d.ts.map +1 -1
- package/behaviors/dialog.js +14 -0
- package/behaviors/modal.d.ts +4 -0
- package/behaviors/modal.d.ts.map +1 -1
- package/behaviors/modal.js +4 -0
- package/behaviors/splitter.d.ts +2 -0
- package/behaviors/splitter.d.ts.map +1 -1
- package/behaviors/splitter.js +15 -1
- package/behaviors/theme.d.ts +3 -2
- package/behaviors/theme.d.ts.map +1 -1
- package/behaviors/theme.js +10 -6
- package/bin/bronto-ui-check.mjs +286 -0
- package/classes/classes.json +7 -0
- package/css/disclosure.css +10 -0
- package/css/dots.css +43 -18
- package/css/feedback.css +35 -0
- package/css/report.css +0 -40
- package/css/site.css +10 -0
- package/dist/bronto.css +1 -1
- package/dist/css/disclosure.css +1 -1
- package/dist/css/dots.css +1 -1
- package/dist/css/feedback.css +1 -1
- package/dist/css/report-kit.css +1 -1
- package/dist/css/report.css +1 -1
- package/dist/css/site.css +1 -1
- package/docs/adr/0004-prune-unused-adapters.md +34 -0
- package/docs/architecture.md +14 -10
- package/docs/command.md +18 -4
- package/docs/migrations/0.6-to-0.7.md +85 -0
- package/docs/package-contract.md +10 -5
- package/docs/reporting.md +8 -8
- package/docs/stability.md +10 -9
- package/docs/theming.md +49 -5
- package/docs/usage.md +57 -17
- package/docs/workbench.md +16 -2
- package/llms.txt +7 -3
- package/package.json +13 -3
- package/qwik/index.d.ts.map +1 -1
- package/qwik/index.js +4 -0
- package/react/index.d.ts.map +1 -1
- package/react/index.js +4 -0
- package/solid/index.d.ts.map +1 -1
- package/solid/index.js +4 -0
- package/svelte/index.d.ts.map +1 -1
- package/svelte/index.js +4 -0
- package/tokens/tokens.dtcg.json +2508 -399
- package/vue/index.d.ts.map +1 -1
- package/vue/index.js +4 -0
package/docs/package-contract.md
CHANGED
|
@@ -174,9 +174,11 @@ semantic versioning contract for the surfaces listed here.
|
|
|
174
174
|
| `./docs/migrations/0.3-to-0.4.md` | `./docs/migrations/0.3-to-0.4.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
|
|
175
175
|
| `./docs/migrations/0.4-to-0.5.md` | `./docs/migrations/0.4-to-0.5.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
|
|
176
176
|
| `./docs/migrations/0.5-to-0.6.md` | `./docs/migrations/0.5-to-0.6.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
|
|
177
|
+
| `./docs/migrations/0.6-to-0.7.md` | `./docs/migrations/0.6-to-0.7.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
|
|
177
178
|
| `./docs/adr/0001-color-system.md` | `./docs/adr/0001-color-system.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
|
|
178
179
|
| `./docs/adr/0002-scope-and-2026-baseline.md` | `./docs/adr/0002-scope-and-2026-baseline.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
|
|
179
180
|
| `./docs/adr/0003-theme-model.md` | `./docs/adr/0003-theme-model.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
|
|
181
|
+
| `./docs/adr/0004-prune-unused-adapters.md` | `./docs/adr/0004-prune-unused-adapters.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
|
|
180
182
|
| `./classes` | types: `./classes/index.d.ts`<br>default: `./classes/index.js` | Class recipes JS | Stable | ESM class registry, recipes, attrs helpers, and cx joiner. The emitted class vocabulary is public. |
|
|
181
183
|
| `./classes.json` | `./classes/classes.json` | Machine-readable data | Stable additive | JSON package data for non-JS/tooling consumers. Shape is public unless the paired doc marks a field internal. |
|
|
182
184
|
| `./behaviors` | types: `./behaviors/index.d.ts`<br>default: `./behaviors/index.js` | Vanilla behavior JS | Stable | ESM, SSR-safe, cleanup-returning behavior initializers. Behavior internals are not public. |
|
|
@@ -205,11 +207,11 @@ semantic versioning contract for the surfaces listed here.
|
|
|
205
207
|
| `./glyphs` | types: `./glyphs/glyphs.d.ts`<br>default: `./glyphs/glyphs.js` | Geometry/render helper JS | Stable additive | ESM helper surface. Function names, options, and data shapes are public; rendering heuristics may tune. |
|
|
206
208
|
| `./annotations` | types: `./annotations/index.d.ts`<br>default: `./annotations/index.js` | Geometry/render helper JS | Stable additive | ESM helper surface. Function names, options, and data shapes are public; rendering heuristics may tune. |
|
|
207
209
|
| `./connectors` | types: `./connectors/index.d.ts`<br>default: `./connectors/index.js` | Geometry/render helper JS | Stable additive | ESM helper surface. Function names, options, and data shapes are public; rendering heuristics may tune. |
|
|
208
|
-
| `./react` | types: `./react/index.d.ts`<br>default: `./react/index.js` | Framework binding JS |
|
|
209
|
-
| `./solid` | types: `./solid/index.d.ts`<br>default: `./solid/index.js` | Framework binding JS |
|
|
210
|
-
| `./qwik` | types: `./qwik/index.d.ts`<br>default: `./qwik/index.js` | Framework binding JS |
|
|
211
|
-
| `./svelte` | types: `./svelte/index.d.ts`<br>default: `./svelte/index.js` | Framework binding JS |
|
|
212
|
-
| `./vue` | types: `./vue/index.d.ts`<br>default: `./vue/index.js` | Framework binding JS |
|
|
210
|
+
| `./react` | types: `./react/index.d.ts`<br>default: `./react/index.js` | Framework binding JS | Deprecated in 0.7 | Compatibility wrapper over vanilla behaviors. Scheduled for removal no earlier than 0.8 under ADR-0004; use direct behavior lifecycle cleanup. |
|
|
211
|
+
| `./solid` | types: `./solid/index.d.ts`<br>default: `./solid/index.js` | Framework binding JS | Deprecated in 0.7 | Compatibility wrapper over vanilla behaviors. Scheduled for removal no earlier than 0.8 under ADR-0004; use direct behavior lifecycle cleanup. |
|
|
212
|
+
| `./qwik` | types: `./qwik/index.d.ts`<br>default: `./qwik/index.js` | Framework binding JS | Deprecated in 0.7 | Compatibility wrapper over vanilla behaviors. Scheduled for removal no earlier than 0.8 under ADR-0004; use direct behavior lifecycle cleanup. |
|
|
213
|
+
| `./svelte` | types: `./svelte/index.d.ts`<br>default: `./svelte/index.js` | Framework binding JS | Deprecated in 0.7 | Compatibility wrapper over vanilla behaviors. Scheduled for removal no earlier than 0.8 under ADR-0004; use direct behavior lifecycle cleanup. |
|
|
214
|
+
| `./vue` | types: `./vue/index.d.ts`<br>default: `./vue/index.js` | Framework binding JS | Deprecated in 0.7 | Compatibility wrapper over vanilla behaviors. Scheduled for removal no earlier than 0.8 under ADR-0004; use direct behavior lifecycle cleanup. |
|
|
213
215
|
| `./skins` | types: `./tokens/skins.d.ts`<br>default: `./tokens/skins.js` | Renderer/theme helper JS | Stable additive | ESM theme data/helpers for opt-in skins, chart palettes, and external renderers. |
|
|
214
216
|
| `./charts` | types: `./tokens/charts.d.ts`<br>default: `./tokens/charts.js` | Renderer/theme helper JS | Stable additive | ESM theme data/helpers for opt-in skins, chart palettes, and external renderers. |
|
|
215
217
|
| `./charts.json` | `./tokens/charts.json` | Machine-readable data | Stable additive | JSON package data for non-JS/tooling consumers. Shape is public unless the paired doc marks a field internal. |
|
|
@@ -236,6 +238,7 @@ always includes `package.json`, `README.md`, `LICENSE`, and
|
|
|
236
238
|
| `fonts` | Vendored assets | Doto woff2 files plus OFL license. |
|
|
237
239
|
| `tokens` | Mixed source/generated data | Token source plus generated JSON, declarations, and renderer theme data. |
|
|
238
240
|
| `classes` | Mixed source/generated data | Class recipe source plus generated JSON/declarations/custom-data. |
|
|
241
|
+
| `bin` | Package file | Included in the npm files allowlist. |
|
|
239
242
|
| `behaviors` | Authored public JS directory | ESM source shipped as-is; adjacent declarations/maps are generated. |
|
|
240
243
|
| `glyphs` | Authored public JS directory | Glyph registry/renderers shipped as JS; declarations are generated. |
|
|
241
244
|
| `schemas` | Machine-readable schemas | Declarative JSON schemas for package-adjacent report/tooling contracts. |
|
|
@@ -295,9 +298,11 @@ always includes `package.json`, `README.md`, `LICENSE`, and
|
|
|
295
298
|
| `docs/migrations/0.3-to-0.4.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
|
|
296
299
|
| `docs/migrations/0.4-to-0.5.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
|
|
297
300
|
| `docs/migrations/0.5-to-0.6.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
|
|
301
|
+
| `docs/migrations/0.6-to-0.7.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
|
|
298
302
|
| `docs/adr/0001-color-system.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
|
|
299
303
|
| `docs/adr/0002-scope-and-2026-baseline.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
|
|
300
304
|
| `docs/adr/0003-theme-model.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
|
|
305
|
+
| `docs/adr/0004-prune-unused-adapters.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
|
|
301
306
|
|
|
302
307
|
## Artifact Provenance
|
|
303
308
|
|
package/docs/reporting.md
CHANGED
|
@@ -54,18 +54,18 @@ No install? Link the same files from a CDN. Pin the version — pre-1.0, breakin
|
|
|
54
54
|
changes ship in the minor (see [stability.md](./stability.md)):
|
|
55
55
|
|
|
56
56
|
```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.
|
|
57
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.7.0/dist/bronto.css" />
|
|
58
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.7.0/dist/css/report-kit.css" />
|
|
59
59
|
```
|
|
60
60
|
|
|
61
61
|
Leaf-by-leaf CDN imports use the same `dist/css/` paths:
|
|
62
62
|
|
|
63
63
|
```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.
|
|
64
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.7.0/dist/bronto.css" />
|
|
65
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.7.0/dist/css/report.css" />
|
|
66
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.7.0/dist/css/dataviz.css" />
|
|
67
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.7.0/dist/css/annotations.css" />
|
|
68
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.7.0/dist/css/legend.css" />
|
|
69
69
|
```
|
|
70
70
|
|
|
71
71
|
The CDN serves the package's own `fonts/` next to the CSS, so font URLs resolve
|
|
@@ -879,7 +879,7 @@ or validation runtime.
|
|
|
879
879
|
|
|
880
880
|
```json
|
|
881
881
|
{
|
|
882
|
-
"$schema": "https://cdn.jsdelivr.net/npm/@ponchia/ui@0.
|
|
882
|
+
"$schema": "https://cdn.jsdelivr.net/npm/@ponchia/ui@0.7.0/schemas/report-claims.v1.schema.json",
|
|
883
883
|
"schemaVersion": "bronto-report-claims.v1",
|
|
884
884
|
"report": { "title": "Decision readiness", "type": "decision" },
|
|
885
885
|
"claims": [
|
package/docs/stability.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
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.7.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
|
|
@@ -53,7 +53,7 @@ enough.
|
|
|
53
53
|
|
|
54
54
|
### Adoption evidence for 1.0
|
|
55
55
|
|
|
56
|
-
This snapshot records product evidence as of 2026-07-
|
|
56
|
+
This snapshot records product evidence as of 2026-07-20. Use three evidence
|
|
57
57
|
classes:
|
|
58
58
|
|
|
59
59
|
- **Downstream-proven:** A non-example app, site, report generator, or tool
|
|
@@ -72,9 +72,9 @@ consumer upgrades before the 1.0 release candidate.
|
|
|
72
72
|
| --- | --- | --- |
|
|
73
73
|
| 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. |
|
|
74
74
|
| 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. |
|
|
75
|
-
| Controlled non-`<dialog>` modal | Package-proven by stack, portal, late-node, focus, and cleanup regressions.
|
|
76
|
-
| React, Solid, Qwik, Svelte, and Vue lifecycle adapters | Package-proven by packed examples, types, and lifecycle tests.
|
|
77
|
-
| 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.
|
|
75
|
+
| 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. |
|
|
76
|
+
| 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. |
|
|
77
|
+
| 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.7.x, but decide each 1.0 contract from adoption evidence rather than generator coverage alone. |
|
|
78
78
|
|
|
79
79
|
After 1.0, breaking changes move to majors. Until then, the table below is the
|
|
80
80
|
current public-surface matrix and the release policy above still applies.
|
|
@@ -88,15 +88,16 @@ current public-surface matrix and the release policy above still applies.
|
|
|
88
88
|
| Class vocabulary as data (`@ponchia/ui/classes.json`, `@ponchia/ui/vscode.css-custom-data.json`) | Stable additive | The JSON shape (`groups`/`classes`/`states`/`customProperties`) and class/custom-property entries are public — for validating markup from a non-JS/non-TS host or editor integration. Generated from `cls` and CSS selectors; `classes.json`, `.d.ts`, reference docs, and VS Code custom data are drift-checked together. New classes/hooks are additive. |
|
|
89
89
|
| Design tokens | Stable names/roles | Token names and documented roles are public. Exact values and generated colour math outputs may change for visual tuning before 1.0. |
|
|
90
90
|
| `--accent-1..6` | Stable names/roles | A subtle-to-bold accent ramp derived from `--accent`. Exact resolved values are visual tuning; algorithm changes require release-note visibility and resolver/browser checks. |
|
|
91
|
-
| Tokens as data (`tokens.json`, `tokens.dtcg.json`, `tokens/resolved.json`, `tokens/figma.variables.json`) | Stable additive | The JSON shapes are public for non-CSS/non-JS consumers and handoff tooling. `resolved.json` exposes `light`/`dark`
|
|
91
|
+
| Tokens as data (`tokens.json`, `tokens.dtcg.json`, `tokens/resolved.json`, `tokens/figma.variables.json`) | Stable additive from 0.7 | The JSON shapes are public for non-CSS/non-JS consumers and handoff tooling. `tokens.dtcg.json` is a DTCG 2025.10 resolved projection with structured typed values; `tokens.json` preserves authored CSS expressions. `resolved.json` exposes flat `light`/`dark` colours and non-colour `scale`; `figma.variables.json` is the local Figma handoff. Token names/roles are stable; exact resolved values are visual tuning (pin `~0.x`). |
|
|
92
92
|
| Schemas (`schemas/*.schema.json`, `schemas/report-claims.v1.schema.json`) | Stable additive | Declarative JSON Schema contracts for package-adjacent tooling data. Existing schema files and enum values are public within a compatible minor; new optional properties and new schema files are additive. No validator runtime ships. |
|
|
93
93
|
| Theme axes | Mixed | `data-theme` (light/dark) is the **contractual** base. `data-surface="oled"`, `data-density`, and `data-contrast` are **convenience presets** — best-effort visual variants, **not** part of the stability contract; their presence and exact values may change for tuning. Computed-style smoke tests guard that the presets apply to their intended token families. |
|
|
94
94
|
| Tailwind v4 bridge (`@ponchia/ui/tailwind`, `@ponchia/ui/tailwind.css`) | Stable additive | CSS-only token/variant bridge for Tailwind v4. It maps Bronto tokens and variants into Tailwind namespaces; it must not import Bronto component CSS or change the default bundle. |
|
|
95
95
|
| Behavior attributes (`data-bronto-*`) | Stable | Attribute names and documented markup relationships are public. Behavior internals are not. |
|
|
96
96
|
| Behavior functions (`@ponchia/ui/behaviors`) | Stable | Exported function names, option names, custom events, SSR no-op behavior, idempotency, and cleanup-returning contract are public. |
|
|
97
|
+
| 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. |
|
|
97
98
|
| 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. |
|
|
98
99
|
| `.ui-icon` mask renderer | Stable | Class name, `--icon-size`, currentColor inheritance, and `--icon-mask` contract are public. The internal data URL encoding is not. |
|
|
99
|
-
| Framework lifecycle adapters (`react`/`solid`/`qwik`/`svelte`/`vue`) |
|
|
100
|
+
| 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. |
|
|
100
101
|
| 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. |
|
|
101
102
|
| 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. |
|
|
102
103
|
| 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. |
|
|
@@ -119,7 +120,7 @@ current public-surface matrix and the release policy above still applies.
|
|
|
119
120
|
| 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. |
|
|
120
121
|
| 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. |
|
|
121
122
|
| 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. |
|
|
122
|
-
| Command palette (`css/command.css`, `.ui-command*`, `initCommand
|
|
123
|
+
| 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. The deprecated framework bindings remain compatible only for the 0.7 migration window. |
|
|
123
124
|
| 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. |
|
|
124
125
|
| 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. |
|
|
125
126
|
| 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. |
|
|
@@ -129,7 +130,7 @@ current public-surface matrix and the release policy above still applies.
|
|
|
129
130
|
| 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. |
|
|
130
131
|
| 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. |
|
|
131
132
|
| 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. |
|
|
132
|
-
| Controlled-modal focus trap (`initModal`, `useModal`, `data-bronto-modal`) |
|
|
133
|
+
| 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. |
|
|
133
134
|
| 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). |
|
|
134
135
|
| 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. |
|
|
135
136
|
| 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/theming.md
CHANGED
|
@@ -4,6 +4,46 @@
|
|
|
4
4
|
This is the **stable, supported surface** for re-branding without forking.
|
|
5
5
|
Anything not listed here is internal and may change between minor versions.
|
|
6
6
|
|
|
7
|
+
## Theme selection, persistence, and OS synchronization
|
|
8
|
+
|
|
9
|
+
Declare both supported schemes in the document head so browser-owned controls
|
|
10
|
+
and chrome follow the active theme:
|
|
11
|
+
|
|
12
|
+
```html
|
|
13
|
+
<meta name="color-scheme" content="light dark" />
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Call `initThemeToggle()` for any `[data-bronto-theme-toggle]` controls. It
|
|
17
|
+
persists an explicit light/dark choice in `localStorage['bronto-theme']`, keeps
|
|
18
|
+
`aria-pressed` current, and emits `bronto:themechange` on `<html>`. When there is
|
|
19
|
+
no explicit `data-theme`, an OS preference change emits the same event, so
|
|
20
|
+
canvas, SVG, MapLibre, and other non-CSS renderers can redraw without a separate
|
|
21
|
+
media-query listener.
|
|
22
|
+
|
|
23
|
+
```js
|
|
24
|
+
import { initThemeToggle } from '@ponchia/ui/behaviors';
|
|
25
|
+
|
|
26
|
+
const stopTheme = initThemeToggle();
|
|
27
|
+
document.documentElement.addEventListener('bronto:themechange', (event) => {
|
|
28
|
+
redrawNonCssSurface(event.detail.theme);
|
|
29
|
+
});
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
For a stored preference without first-paint flash, put this render-blocking
|
|
33
|
+
script in `<head>` before the stylesheet/module code:
|
|
34
|
+
|
|
35
|
+
```html
|
|
36
|
+
<script>
|
|
37
|
+
try {
|
|
38
|
+
var theme = localStorage.getItem('bronto-theme');
|
|
39
|
+
if (theme === 'light' || theme === 'dark') document.documentElement.dataset.theme = theme;
|
|
40
|
+
} catch (error) {}
|
|
41
|
+
</script>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
To return to automatic OS mode, remove both the storage item and `data-theme`,
|
|
45
|
+
then reinitialize the theme behavior so it can subscribe to OS changes again.
|
|
46
|
+
|
|
7
47
|
## The brand knob: `--accent`
|
|
8
48
|
|
|
9
49
|
The accent family derives from `--accent` via `color-mix()` and the
|
|
@@ -307,11 +347,15 @@ semantics — the CSS can't add ARIA for you:
|
|
|
307
347
|
`@ponchia/ui/tokens.dtcg.json` is the token model in the W3C Design
|
|
308
348
|
Tokens Community Group format, for Style Dictionary / Figma / other
|
|
309
349
|
tooling. Generated from `tokens/index.js` and drift-checked by
|
|
310
|
-
`npm run check`.
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
350
|
+
`npm run check`. From 0.7 it is a resolved DTCG 2025.10 projection: colours use
|
|
351
|
+
structured sRGB values, dimensions use `{ value, unit }`, durations use
|
|
352
|
+
`{ value, unit }`, and every typed token has a non-null portable value. Derived
|
|
353
|
+
`var()` / `color-mix()` colours are resolved independently in the light and dark
|
|
354
|
+
groups. The authored CSS remains in `$extensions["com.ponchia.css"].authoredValue`.
|
|
355
|
+
CSS-only expressions that cannot be represented portably, including shadows,
|
|
356
|
+
and em-based letter-spacing remain in `@ponchia/ui/tokens.json` rather than
|
|
357
|
+
becoming fake DTCG values. The root extension lists every deliberately omitted
|
|
358
|
+
CSS variable.
|
|
315
359
|
|
|
316
360
|
`@ponchia/ui/tokens/figma.variables.json` is the resolved local handoff for
|
|
317
361
|
Figma Variables import/sync scripts. It is generated from `tokens/resolved.json`
|
package/docs/usage.md
CHANGED
|
@@ -362,20 +362,16 @@ element (e.g. `aria-label="Ada Lovelace"`) because the initials alone don't
|
|
|
362
362
|
convey identity to AT. Keep initials to ~2 characters — the box is
|
|
363
363
|
`overflow: hidden` and silently clips a third.
|
|
364
364
|
|
|
365
|
-
## Modal: native `<dialog>`
|
|
365
|
+
## Modal: use native `<dialog>`
|
|
366
366
|
|
|
367
367
|
Prefer the **native `<dialog>`** path — you get top-layer, backdrop and
|
|
368
368
|
focus-trap free (wire it with `initDialog` for open-triggers + focus-return).
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
you still own the `is-open` class, so drop it in response. On bind `initModal`
|
|
376
|
-
also gives the overlay `role="dialog"` + `aria-modal="true"` and dev-warns if it
|
|
377
|
-
has no accessible name (add `aria-label`/`aria-labelledby`). A drawer is a modal
|
|
378
|
-
that enters from an edge — same rule.
|
|
369
|
+
The older `ui-modal.is-open` + `data-bronto-modal` + `initModal()` path remains
|
|
370
|
+
compatible throughout 0.7, but is deprecated for removal no earlier than 0.8.
|
|
371
|
+
It duplicates platform focus, stacking, and inert ownership and no inspected
|
|
372
|
+
real consumer uses it. Migrate portals to a native `<dialog>` where possible;
|
|
373
|
+
if a framework must retain the controlled path during 0.7, keep the existing
|
|
374
|
+
accessible name and `bronto:modal:close` handling unchanged.
|
|
379
375
|
|
|
380
376
|
Controlled modals share one document-level stack. Opening a sibling portal
|
|
381
377
|
modal makes the previous modal inert and keeps only the new top modal
|
|
@@ -387,8 +383,8 @@ nodes added after the modal opens are trapped too. If a controlled parent modal
|
|
|
387
383
|
closes while a descendant still carries `is-open`, the descendant is suspended
|
|
388
384
|
with the parent and resumes if the parent reopens.
|
|
389
385
|
|
|
390
|
-
**Scroll-lock is not automatic
|
|
391
|
-
|
|
386
|
+
**Scroll-lock is not automatic.** A native `<dialog>` does not freeze background
|
|
387
|
+
scroll — the page behind an open modal can
|
|
392
388
|
still scroll. If that matters, toggle a lock yourself while the modal is open
|
|
393
389
|
(`document.documentElement.style.overflow = 'hidden'`, restored on close), or add
|
|
394
390
|
`html:has(dialog[open]) { overflow: hidden }` for the native path.
|
|
@@ -574,6 +570,49 @@ authoring engine.
|
|
|
574
570
|
provide. The summary's title is the legible sans, not the display face — it's
|
|
575
571
|
meant to be read.
|
|
576
572
|
|
|
573
|
+
### Branded file input: keep the native control operable
|
|
574
|
+
|
|
575
|
+
Prefer the visible native control: `<input class="ui-file" type="file">` styles
|
|
576
|
+
its file-selector button without hiding the input. If the product needs a
|
|
577
|
+
button-shaped label, keep the native input focusable inside the label and expose
|
|
578
|
+
its focus on the visible wrapper. Never use `display: none` on the input: that
|
|
579
|
+
removes it from keyboard navigation.
|
|
580
|
+
|
|
581
|
+
```html
|
|
582
|
+
<label class="ui-button upload-button">
|
|
583
|
+
Choose file
|
|
584
|
+
<input class="ui-visually-hidden" type="file" name="document" />
|
|
585
|
+
</label>
|
|
586
|
+
```
|
|
587
|
+
|
|
588
|
+
```css
|
|
589
|
+
.upload-button:focus-within {
|
|
590
|
+
outline: 3px solid var(--focus-ring);
|
|
591
|
+
outline-offset: var(--focus-offset);
|
|
592
|
+
}
|
|
593
|
+
```
|
|
594
|
+
|
|
595
|
+
### Sortable table: the button is part of the contract
|
|
596
|
+
|
|
597
|
+
Put a real button in each sortable header, mark the table, then initialize the
|
|
598
|
+
behavior. Use `data-sort="num"` for numeric columns and `data-sort-value` on a
|
|
599
|
+
cell when its displayed text is not a canonical sortable value.
|
|
600
|
+
|
|
601
|
+
```html
|
|
602
|
+
<table class="ui-table" data-bronto-sortable>
|
|
603
|
+
<thead><tr>
|
|
604
|
+
<th><button class="ui-table__sort" data-sort type="button">Name</button></th>
|
|
605
|
+
<th class="is-num"><button class="ui-table__sort" data-sort="num" type="button">Score</button></th>
|
|
606
|
+
</tr></thead>
|
|
607
|
+
<tbody><tr><td>Ada</td><td class="is-num" data-sort-value="9.5">9,5</td></tr></tbody>
|
|
608
|
+
</table>
|
|
609
|
+
```
|
|
610
|
+
|
|
611
|
+
```js
|
|
612
|
+
import { initTableSort } from '@ponchia/ui/behaviors';
|
|
613
|
+
const cleanup = initTableSort();
|
|
614
|
+
```
|
|
615
|
+
|
|
577
616
|
## Reveal: `ui-reveal` needs JS, `ui-scroll-reveal` doesn't
|
|
578
617
|
|
|
579
618
|
`ui-scroll-reveal` is scroll-driven and **zero-JS** — reach for it in a static
|
|
@@ -615,8 +654,9 @@ It is a **non-modal** dialog by design: the panel gets `role="dialog"` and focus
|
|
|
615
654
|
moves into it, but there is **no focus trap** and the rest of the page stays
|
|
616
655
|
interactive — Tab moves *out* of the panel (it does not cycle), and it closes on
|
|
617
656
|
Escape or outside-click. Don't assume `<dialog>`-modal semantics; if you need a
|
|
618
|
-
trap and an inert backdrop, use a real modal (`<dialog>` + `initDialog
|
|
619
|
-
`initModal
|
|
657
|
+
trap and an inert backdrop, use a real modal (`<dialog>` + `initDialog`). The
|
|
658
|
+
deprecated `initModal()` path remains available only for 0.7 migration. And the
|
|
659
|
+
`is-open` fallback is a plain stacked element, so it sits
|
|
620
660
|
*under* any open native `<dialog>`'s top layer — another reason to prefer the
|
|
621
661
|
native `popover` attribute when a popover and a dialog can be open together.
|
|
622
662
|
|
|
@@ -650,7 +690,7 @@ These are JS widgets wearing the Bronto look; without the behavior they are iner
|
|
|
650
690
|
| Popover (`ui-popover`) | `initPopover` | no placement/ARIA — prefer the native `popover` attribute |
|
|
651
691
|
| Carousel (`ui-carousel`) | `initCarousel` | a native scroll-snap track (usable, no controls) |
|
|
652
692
|
| 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 |
|
|
653
|
-
| Controlled modal (`ui-modal.is-open
|
|
693
|
+
| Controlled modal (`ui-modal.is-open`, deprecated) | `initModal` (deprecated) | open skin only — no inert trap, focus-return, or Escape close signal |
|
|
654
694
|
| Menu (`data-bronto-menu`) | `initMenu` | a button next to a list with no open/close, outside-click, or Escape |
|
|
655
695
|
| Dismissible alert/callout (`data-bronto-dismissible`) | `dismissible` | the close affordance is just a button; nothing is removed |
|
|
656
696
|
| Toast | `toast()` | nothing — it is imperative-only |
|
|
@@ -671,7 +711,7 @@ boundary of what CSS alone cannot do.
|
|
|
671
711
|
|
|
672
712
|
The CSS is the framework; `@ponchia/ui/behaviors` is the *sanctioned*
|
|
673
713
|
home for the little JS that genuinely needs scripting (theme persistence,
|
|
674
|
-
disclosure, dialog glue,
|
|
714
|
+
disclosure, native-dialog glue, toast, combobox, form-validation,
|
|
675
715
|
table-sort, splitter resizing). Reach for it instead of reimplementing — every
|
|
676
716
|
initializer is SSR-safe, idempotent, and returns a cleanup. If you find yourself
|
|
677
717
|
writing focus management, ARIA value sync, or `aria-expanded` toggling by hand,
|
package/docs/workbench.md
CHANGED
|
@@ -80,7 +80,17 @@ domain selection model.
|
|
|
80
80
|
data-bronto-splitter
|
|
81
81
|
style="--splitter-pos: 36%"
|
|
82
82
|
>
|
|
83
|
-
<section class="ui-splitter__pane" id="files" aria-label="Files"
|
|
83
|
+
<section class="ui-splitter__pane" id="files" aria-label="Files">
|
|
84
|
+
<div class="ui-cluster" role="group" aria-label="Resize files pane">
|
|
85
|
+
<button class="ui-button ui-button--sm" type="button" data-bronto-splitter-adjust="-10">
|
|
86
|
+
Narrow
|
|
87
|
+
</button>
|
|
88
|
+
<button class="ui-button ui-button--sm" type="button" data-bronto-splitter-adjust="10">
|
|
89
|
+
Widen
|
|
90
|
+
</button>
|
|
91
|
+
</div>
|
|
92
|
+
...
|
|
93
|
+
</section>
|
|
84
94
|
<div
|
|
85
95
|
class="ui-splitter__handle"
|
|
86
96
|
role="separator"
|
|
@@ -99,7 +109,11 @@ domain selection model.
|
|
|
99
109
|
Use `.ui-splitter--horizontal` for top/bottom panes. Arrow keys change the value
|
|
100
110
|
by 2 percentage points, Shift+Arrow and PageUp/PageDown by 10, and Home/End jump
|
|
101
111
|
to `aria-valuemin` / `aria-valuemax`. The handle needs a real accessible name
|
|
102
|
-
and `aria-controls` pointing at the primary pane.
|
|
112
|
+
and `aria-controls` pointing at the primary pane. Also provide ordinary buttons
|
|
113
|
+
with `data-bronto-splitter-adjust="-10"` / `"10"`: pointer users then have a
|
|
114
|
+
non-drag resize path, while keyboard and assistive-technology users retain the
|
|
115
|
+
separator interaction. The signed value is a percentage-point delta and is
|
|
116
|
+
clamped to the separator's min/max.
|
|
103
117
|
|
|
104
118
|
## Inspector — `.ui-inspector`
|
|
105
119
|
|
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.7.0/dist/css/<leaf>.css" />
|
|
49
49
|
```
|
|
50
50
|
|
|
51
51
|
The flattened default bundle is `dist/bronto.css` (bundler shorthand
|
|
@@ -75,7 +75,8 @@ import { applyStoredTheme } from '@ponchia/ui/behaviors';
|
|
|
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
77
|
`initModal()` wires the controlled `.ui-modal.is-open` path (inert focus-trap +
|
|
78
|
-
role/aria-modal)
|
|
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
|
|
79
80
|
keyboard-inert (CSS alone is only pointer-inert). For the value-bearing fills,
|
|
80
81
|
`attrs.meter(value)` / `attrs.progress(value)` from `@ponchia/ui/classes` return
|
|
81
82
|
`role`+`aria-valuenow/min/max`+the `--value` style to spread onto the host.
|
|
@@ -86,6 +87,8 @@ matching `.ui-source-card`, seed lightweight preview metadata, and emit
|
|
|
86
87
|
and any rich preview popover.
|
|
87
88
|
|
|
88
89
|
Optional lifecycle adapters wrap those behaviors without owning markup or state.
|
|
90
|
+
They remain compatible in 0.7 but are deprecated for removal no earlier than
|
|
91
|
+
0.8; prefer vanilla behavior initialization in the host lifecycle.
|
|
89
92
|
React/Solid/Qwik use hook bindings (peer deps `react` / `solid-js` /
|
|
90
93
|
`@builder.io/qwik`, optional — core stays zero-dep); Svelte uses dependency-free
|
|
91
94
|
actions, and Vue uses dependency-free directives/plugin helpers:
|
|
@@ -769,7 +772,8 @@ Read these from `node_modules/@ponchia/ui/` — no network needed:
|
|
|
769
772
|
resolved palette; the build fails below the declared floor.
|
|
770
773
|
- `tokens/index.d.ts` — every design-token name as a literal union.
|
|
771
774
|
- `tokens/index.json` — tokens as plain data (global / light / dark).
|
|
772
|
-
- `tokens/tokens.dtcg.json` —
|
|
775
|
+
- `tokens/tokens.dtcg.json` — resolved DTCG 2025.10 structured typed values;
|
|
776
|
+
authored CSS expressions remain in `tokens/index.json` and DTCG extensions.
|
|
773
777
|
- `tokens/resolved.json` — every colour token resolved to a static
|
|
774
778
|
`#rrggbb` / `rgba(...)` per theme (var() + color-mix() evaluated) in
|
|
775
779
|
`light`/`dark`, plus a `scale` block of the non-colour scales
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ponchia/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"type": "module",
|
|
5
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": [
|
|
@@ -38,6 +38,9 @@
|
|
|
38
38
|
"engines": {
|
|
39
39
|
"node": ">=18"
|
|
40
40
|
},
|
|
41
|
+
"bin": {
|
|
42
|
+
"bronto-ui-check": "./bin/bronto-ui-check.mjs"
|
|
43
|
+
},
|
|
41
44
|
"sideEffects": [
|
|
42
45
|
"**/*.css"
|
|
43
46
|
],
|
|
@@ -49,6 +52,7 @@
|
|
|
49
52
|
"fonts",
|
|
50
53
|
"tokens",
|
|
51
54
|
"classes",
|
|
55
|
+
"bin",
|
|
52
56
|
"behaviors",
|
|
53
57
|
"glyphs",
|
|
54
58
|
"schemas",
|
|
@@ -108,9 +112,11 @@
|
|
|
108
112
|
"docs/migrations/0.3-to-0.4.md",
|
|
109
113
|
"docs/migrations/0.4-to-0.5.md",
|
|
110
114
|
"docs/migrations/0.5-to-0.6.md",
|
|
115
|
+
"docs/migrations/0.6-to-0.7.md",
|
|
111
116
|
"docs/adr/0001-color-system.md",
|
|
112
117
|
"docs/adr/0002-scope-and-2026-baseline.md",
|
|
113
|
-
"docs/adr/0003-theme-model.md"
|
|
118
|
+
"docs/adr/0003-theme-model.md",
|
|
119
|
+
"docs/adr/0004-prune-unused-adapters.md"
|
|
114
120
|
],
|
|
115
121
|
"style": "./dist/bronto.css",
|
|
116
122
|
"scripts": {
|
|
@@ -188,10 +194,11 @@
|
|
|
188
194
|
"check:contract": "node scripts/check-contract.mjs",
|
|
189
195
|
"check:variables": "node scripts/check-variables.mjs",
|
|
190
196
|
"check:contrast": "node scripts/check-contrast.mjs",
|
|
197
|
+
"check:dtcg": "node scripts/check-dtcg.mjs",
|
|
191
198
|
"check:publint": "publint --strict",
|
|
192
199
|
"check:attw": "attw --pack --ignore-rules no-resolution cjs-resolves-to-esm",
|
|
193
200
|
"check:workflows": "github-actionlint .github/workflows/*.yml",
|
|
194
|
-
"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:binding-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: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",
|
|
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:binding-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",
|
|
195
202
|
"test": "node --test \"test/*.test.mjs\"",
|
|
196
203
|
"test:e2e": "playwright test",
|
|
197
204
|
"test:e2e:chromium": "playwright test --project=chromium",
|
|
@@ -399,9 +406,11 @@
|
|
|
399
406
|
"./docs/migrations/0.3-to-0.4.md": "./docs/migrations/0.3-to-0.4.md",
|
|
400
407
|
"./docs/migrations/0.4-to-0.5.md": "./docs/migrations/0.4-to-0.5.md",
|
|
401
408
|
"./docs/migrations/0.5-to-0.6.md": "./docs/migrations/0.5-to-0.6.md",
|
|
409
|
+
"./docs/migrations/0.6-to-0.7.md": "./docs/migrations/0.6-to-0.7.md",
|
|
402
410
|
"./docs/adr/0001-color-system.md": "./docs/adr/0001-color-system.md",
|
|
403
411
|
"./docs/adr/0002-scope-and-2026-baseline.md": "./docs/adr/0002-scope-and-2026-baseline.md",
|
|
404
412
|
"./docs/adr/0003-theme-model.md": "./docs/adr/0003-theme-model.md",
|
|
413
|
+
"./docs/adr/0004-prune-unused-adapters.md": "./docs/adr/0004-prune-unused-adapters.md",
|
|
405
414
|
"./classes": {
|
|
406
415
|
"types": "./classes/index.d.ts",
|
|
407
416
|
"default": "./classes/index.js"
|
|
@@ -558,6 +567,7 @@
|
|
|
558
567
|
"./fonts/*": "./fonts/*"
|
|
559
568
|
},
|
|
560
569
|
"overrides": {
|
|
570
|
+
"adm-zip": "0.6.0",
|
|
561
571
|
"esbuild": "0.28.1"
|
|
562
572
|
}
|
|
563
573
|
}
|
package/qwik/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"AAuHA;;;;;;;sBAOsB;AACtB,kCAJ8B,CAAC,SAAhB,YAAa,0DAChB,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,OAAO,GAAG,IAAI,SAC5B,yBAAyB,CAAC,CAAC,CAAC,GAC1B,IAAI,CAIjB;AAGM,sCADK,yBAAyB,CAAC,gBAAgB,GAAG,YAAY,CAAC,GAAmB,IAAI,CAGhC;AAEtD,sCADK,yBAAyB,GAAmB,IAAI,CAGH;AAElD,wCADK,yBAAyB,GAAmB,IAAI,CAGG;AAExD,qCADK,yBAAyB,GAAmB,IAAI,CAGA;AAErD,+BADK,yBAAyB,GAAmB,IAAI,CAGN;AAE/C,yCADK,yBAAyB,GAAmB,IAAI,CAGI;AAEzD,mCADK,yBAAyB,GAAmB,IAAI,CAGF;AAEnD,kCADK,yBAAyB,GAAmB,IAAI,CAGH;AAElD,oCADK,yBAAyB,GAAmB,IAAI,CAGD;AAEpD,+BADK,yBAAyB,GAAmB,IAAI,CAGN;AAE/C,iCADK,yBAAyB,GAAmB,IAAI,CAGJ;AAEjD,gCADK,yBAAyB,GAAmB,IAAI,CAGL;AAEhD,mCADK,yBAAyB,GAAmB,IAAI,CAGF;AAEnD,mCADK,yBAAyB,GAAmB,IAAI,CAGF;AAEnD,iCADK,yBAAyB,GAAmB,IAAI,CAGJ;AAEjD,qCADK,yBAAyB,GAAmB,IAAI,CAGA;AAErD,oCADK,yBAAyB,GAAmB,IAAI,CAGD;AAEpD,oCADK,yBAAyB,GAAmB,IAAI,CAGD;AAEpD,kCADK,yBAAyB,GAAmB,IAAI,CAGH;AAElD,kCADK,yBAAyB,GAAmB,IAAI,CAGH;AAElD,mCADK,yBAAyB,GAAmB,IAAI,CAGF;AAInD,4BADO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,KAAK,OAAO,CACzB;;sBA5LtB,OAAO,uBAAuB,EAAE,OAAO;2BACvC,OAAO,uBAAuB,EAAE,YAAY;+BAC5C,OAAO,uBAAuB,EAAE,gBAAgB;wBAChD,OAAO,uBAAuB,EAAE,SAAS;gCAEzC,QAAQ,GACd,OAAO,GACP;IAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAA;CAAE,GAChD;IAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAA;CAAE,GAClD,CAAC,MAAM,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,GAC7C,IAAI,GACJ,SAAS;8BAIa,CAAC,SAAhB,YAAa,sDACd,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,iBAAiB,CAAA;CAAE;sCAI9B,CAAC,SAAhB,YAAa,sDACd,iBAAiB,CAAC,CAAC,CAAC,GAC1B,CAAC,MAAM,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,GAC/C,IAAI,GACJ,SAAS;iCA2BT,uBAAuB"}
|
package/qwik/index.js
CHANGED
|
@@ -25,6 +25,10 @@
|
|
|
25
25
|
* const root = useSignal();
|
|
26
26
|
* useDialog({ root }); // <section ref={root}> … </section>
|
|
27
27
|
*
|
|
28
|
+
* @deprecated Import the framework-agnostic behavior initializers directly.
|
|
29
|
+
* This adapter remains compatible in 0.7 and is scheduled for removal no
|
|
30
|
+
* earlier than 0.8 because no real consumer adopted it.
|
|
31
|
+
*
|
|
28
32
|
* @typedef {import('../behaviors/index.js').Cleanup} Cleanup
|
|
29
33
|
* @typedef {import('../behaviors/index.js').DelegateOpts} DelegateOpts
|
|
30
34
|
* @typedef {import('../behaviors/index.js').ThemeStorageOpts} ThemeStorageOpts
|
package/react/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"AAoGA;;;;;;sBAMsB;AACtB,kCAJ8B,CAAC,SAAhB,YAAa,0DAChB,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,OAAO,GAAG,IAAI,SAC5B,yBAAyB,CAAC,CAAC,CAAC,GAC1B,IAAI,CAGjB;AAGM,sCADK,yBAAyB,CAAC,gBAAgB,GAAG,YAAY,CAAC,GAAmB,IAAI,CACb;AAEzE,sCADK,yBAAyB,GAAmB,IAAI,CACgB;AAErE,wCADK,yBAAyB,GAAmB,IAAI,CACwB;AAE7E,qCADK,yBAAyB,GAAmB,IAAI,CACkB;AAEvE,+BADK,yBAAyB,GAAmB,IAAI,CACM;AAE3D,yCADK,yBAAyB,GAAmB,IAAI,CAC0B;AAE/E,mCADK,yBAAyB,GAAmB,IAAI,CACc;AAEnE,kCADK,yBAAyB,GAAmB,IAAI,CACY;AAEjE,oCADK,yBAAyB,GAAmB,IAAI,CACgB;AAErE,+BADK,yBAAyB,GAAmB,IAAI,CACM;AAE3D,iCADK,yBAAyB,GAAmB,IAAI,CACU;AAE/D,gCADK,yBAAyB,GAAmB,IAAI,CACQ;AAE7D,mCADK,yBAAyB,GAAmB,IAAI,CACc;AAEnE,mCADK,yBAAyB,GAAmB,IAAI,CACc;AAEnE,iCADK,yBAAyB,GAAmB,IAAI,CACU;AAE/D,qCADK,yBAAyB,GAAmB,IAAI,CACkB;AAEvE,oCADK,yBAAyB,GAAmB,IAAI,CACgB;AAErE,oCADK,yBAAyB,GAAmB,IAAI,CACgB;AAErE,kCADK,yBAAyB,GAAmB,IAAI,CACY;AAEjE,kCADK,yBAAyB,GAAmB,IAAI,CACY;AAEjE,mCADK,yBAAyB,GAAmB,IAAI,CACc;AAInE,4BADO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,KAAK,OAAO,CACzB;;sBAlItB,OAAO,uBAAuB,EAAE,OAAO;2BACvC,OAAO,uBAAuB,EAAE,YAAY;+BAC5C,OAAO,uBAAuB,EAAE,gBAAgB;wBAChD,OAAO,uBAAuB,EAAE,SAAS;gCAEzC,QAAQ,GACd,OAAO,GACP;IAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAA;CAAE,GAClD,CAAC,MAAM,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,GAC7C,IAAI,GACJ,SAAS;8BAIa,CAAC,SAAhB,YAAa,sDACd,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,iBAAiB,CAAA;CAAE;sCAI9B,CAAC,SAAhB,YAAa,sDACd,iBAAiB,CAAC,CAAC,CAAC,GAC1B,CAAC,MAAM,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,GAC/C,IAAI,GACJ,SAAS;iCA2BT,uBAAuB"}
|
package/react/index.js
CHANGED
|
@@ -20,6 +20,10 @@
|
|
|
20
20
|
* The public types below are JSDoc `@typedef`s; the shipped `index.d.ts` is
|
|
21
21
|
* generated from them (and these signatures) by `tsc --emitDeclarationOnly`.
|
|
22
22
|
*
|
|
23
|
+
* @deprecated Import the framework-agnostic behavior initializers directly.
|
|
24
|
+
* This adapter remains compatible in 0.7 and is scheduled for removal no
|
|
25
|
+
* earlier than 0.8 because no real consumer adopted it.
|
|
26
|
+
*
|
|
23
27
|
* @typedef {import('../behaviors/index.js').Cleanup} Cleanup
|
|
24
28
|
* @typedef {import('../behaviors/index.js').DelegateOpts} DelegateOpts
|
|
25
29
|
* @typedef {import('../behaviors/index.js').ThemeStorageOpts} ThemeStorageOpts
|
package/solid/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"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"}
|
package/solid/index.js
CHANGED
|
@@ -20,6 +20,10 @@
|
|
|
20
20
|
* The public types below are JSDoc `@typedef`s; the shipped `index.d.ts` is
|
|
21
21
|
* generated from them (and these signatures) by `tsc --emitDeclarationOnly`.
|
|
22
22
|
*
|
|
23
|
+
* @deprecated Import the framework-agnostic behavior initializers directly.
|
|
24
|
+
* This adapter remains compatible in 0.7 and is scheduled for removal no
|
|
25
|
+
* earlier than 0.8 because no real consumer adopted it.
|
|
26
|
+
*
|
|
23
27
|
* @typedef {import('../behaviors/index.js').Cleanup} Cleanup
|
|
24
28
|
* @typedef {import('../behaviors/index.js').DelegateOpts} DelegateOpts
|
|
25
29
|
* @typedef {import('../behaviors/index.js').ThemeStorageOpts} ThemeStorageOpts
|
package/svelte/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"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"}
|