@ponchia/ui 0.8.1 → 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 +149 -3
- package/MIGRATIONS.json +117 -27
- package/README.md +19 -11
- 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 +48 -10
- package/classes/index.d.ts +16 -3
- package/classes/index.js +28 -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/core.css +1 -0
- 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 +37 -39
- package/css/primitives.css +48 -28
- package/css/report.css +66 -42
- package/css/row.css +154 -0
- package/css/state.css +95 -6
- package/css/table.css +3 -3
- package/css/tokens.css +10 -10
- package/css/workbench.css +22 -10
- 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/row.css +1 -0
- 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.8-to-0.9.md +66 -0
- package/docs/migrations/0.9-to-0.10.md +47 -0
- package/docs/package-contract.md +13 -13
- package/docs/reference.md +43 -18
- package/docs/reporting.md +15 -9
- package/docs/stability.md +20 -55
- package/docs/state.md +47 -0
- package/docs/theming.md +16 -0
- package/docs/usage.md +60 -30
- package/llms.txt +7 -18
- package/package.json +15 -54
- 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/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
|
|
@@ -186,6 +186,48 @@ a `.ui-legend` key, and fallback data. Full LLM/static report cookbook:
|
|
|
186
186
|
spinner is CSS. This is the ARIA-driven contract — see reference.md
|
|
187
187
|
→ "Composition & state".
|
|
188
188
|
|
|
189
|
+
## Rows: `ui-row` vs table vs menu item
|
|
190
|
+
|
|
191
|
+
Three shapes look alike and are not interchangeable:
|
|
192
|
+
|
|
193
|
+
- **`ui-table`** when the data has columns and a header. A table promises that
|
|
194
|
+
the third cell means the same thing on every line.
|
|
195
|
+
- **`ui-menu__item`** when the list is a menu: it dismisses on choice, and it is
|
|
196
|
+
reached through `ui-menu-host`.
|
|
197
|
+
- **`ui-row`** for everything else — a search result, a file in an explorer, an
|
|
198
|
+
outline entry, a backlink, a commit. A full-width clickable line that
|
|
199
|
+
*persists*.
|
|
200
|
+
|
|
201
|
+
```html
|
|
202
|
+
<button class="ui-row ui-row--ruled" type="button" aria-current="true">
|
|
203
|
+
<span class="ui-row__mark" aria-hidden="true">◆</span>
|
|
204
|
+
<span class="ui-row__title">apps/server/src/collab/room.ts</span>
|
|
205
|
+
<span class="ui-row__meta">4m</span>
|
|
206
|
+
</button>
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
The one rule worth knowing: **`__title` is what truncates.** It takes the slack
|
|
210
|
+
and gives it back first; `__meta` never shrinks, because a half-rendered number
|
|
211
|
+
is worse than no number.
|
|
212
|
+
|
|
213
|
+
**Pick the right attribute, and it is probably not `aria-selected`.** That one
|
|
214
|
+
is only valid on a row whose role accepts it — `option` inside a `listbox`, or
|
|
215
|
+
`row` / `tab` / `gridcell` / `treeitem`. On a bare `<button>` it is invalid ARIA
|
|
216
|
+
and axe rates it *critical*; this project shipped that mistake in its own demo
|
|
217
|
+
and the a11y gate caught it before release.
|
|
218
|
+
|
|
219
|
+
- `aria-current="true"` — the row is the current one. The common case, and valid
|
|
220
|
+
on any element.
|
|
221
|
+
- `aria-selected="true"` — only when the row really is an `option` in a
|
|
222
|
+
`listbox`, or another role that accepts it.
|
|
223
|
+
- `.is-selected` — when neither fits.
|
|
224
|
+
|
|
225
|
+
All three paint the same, so the visual state cannot disagree with the announced
|
|
226
|
+
one. Rows carrying a severity should use `ui-severity-row` (`css/state.css`)
|
|
227
|
+
instead, which adds the tone gutter.
|
|
228
|
+
|
|
229
|
+
`ui-menu__item` composes `ui-row`, which is why they cannot drift.
|
|
230
|
+
|
|
189
231
|
## Empty state vs invite
|
|
190
232
|
|
|
191
233
|
Both use `ui-empty-state`, and the slots are the same three parts — a quiet
|
|
@@ -213,8 +255,8 @@ sentences at the same weight, a third is a bare `<p>`.
|
|
|
213
255
|
|
|
214
256
|
## Link vs link--cta
|
|
215
257
|
|
|
216
|
-
Plain `ui-link` for in-flow links. `ui-link--cta` is the
|
|
217
|
-
action link
|
|
258
|
+
Plain `ui-link` for in-flow links. `ui-link--cta` is the accent
|
|
259
|
+
action link with an arrow — a *navigational
|
|
218
260
|
call to action*, not a substitute for a button (no form submit, no
|
|
219
261
|
destructive action).
|
|
220
262
|
|
|
@@ -331,7 +373,7 @@ without it these widgets are unlabelled or unannounced:
|
|
|
331
373
|
```
|
|
332
374
|
|
|
333
375
|
Drop `--icon` and the same markup renders glyph + word. The slot also
|
|
334
|
-
|
|
376
|
+
ellipsis rather than wrapping, so a labelled button in a width-constrained
|
|
335
377
|
bar shrinks instead of pushing its neighbours out.
|
|
336
378
|
- **`ui-button--dense`** is for bars whose height is the constraint — a pane
|
|
337
379
|
title bar, a packed toolbar, a table row's actions. It lowers only the
|
|
@@ -426,28 +468,9 @@ convey identity to AT. Keep initials to ~2 characters — the box is
|
|
|
426
468
|
|
|
427
469
|
Prefer the **native `<dialog>`** path — you get top-layer, backdrop and
|
|
428
470
|
focus-trap free (wire it with `initDialog` for open-triggers + focus-return).
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
real consumer uses it. Migrate portals to a native `<dialog>` where possible;
|
|
433
|
-
if a framework must retain the controlled path during 0.7, keep the existing
|
|
434
|
-
accessible name and `bronto:modal:close` handling unchanged.
|
|
435
|
-
|
|
436
|
-
Controlled modals share one document-level stack. Opening a sibling portal
|
|
437
|
-
modal makes the previous modal inert and keeps only the new top modal
|
|
438
|
-
interactive; closing it restores focus into the previous modal. An
|
|
439
|
-
`initPopover()` trigger inside the top modal may target a panel portaled
|
|
440
|
-
elsewhere in the document: while that panel is open, it joins the live modal
|
|
441
|
-
tree and owns Escape without releasing unrelated background content. Background
|
|
442
|
-
nodes added after the modal opens are trapped too. If a controlled parent modal
|
|
443
|
-
closes while a descendant still carries `is-open`, the descendant is suspended
|
|
444
|
-
with the parent and resumes if the parent reopens.
|
|
445
|
-
|
|
446
|
-
**Scroll-lock is not automatic.** A native `<dialog>` does not freeze background
|
|
447
|
-
scroll — the page behind an open modal can
|
|
448
|
-
still scroll. If that matters, toggle a lock yourself while the modal is open
|
|
449
|
-
(`document.documentElement.style.overflow = 'hidden'`, restored on close), or add
|
|
450
|
-
`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).
|
|
451
474
|
|
|
452
475
|
## Carousel & lightbox: one primitive, two skins
|
|
453
476
|
|
|
@@ -623,7 +646,7 @@ authoring engine.
|
|
|
623
646
|
code — so put the human label in the `<li>` text and the code in `data-value`.
|
|
624
647
|
The `.ui-combobox__empty` ("No matches") is hidden until a filter empties the
|
|
625
648
|
list. Two intentional single-select APG deviations: ArrowDown on a closed list
|
|
626
|
-
filters rather than
|
|
649
|
+
filters rather than preselecting the first option, and Tab closes without
|
|
627
650
|
committing a merely-highlighted option (Enter/click commits).
|
|
628
651
|
- **Validation** is opt-in via `data-bronto-validate` on the form plus
|
|
629
652
|
`initFormValidation()`; it surfaces messages into a `ui-error-summary` you
|
|
@@ -715,7 +738,7 @@ moves into it, but there is **no focus trap** and the rest of the page stays
|
|
|
715
738
|
interactive — Tab moves *out* of the panel (it does not cycle), and it closes on
|
|
716
739
|
Escape or outside-click. Don't assume `<dialog>`-modal semantics; if you need a
|
|
717
740
|
trap and an inert backdrop, use a real modal (`<dialog>` + `initDialog`). The
|
|
718
|
-
|
|
741
|
+
controlled-modal path was removed in 0.10. And the
|
|
719
742
|
`is-open` fallback is a plain stacked element, so it sits
|
|
720
743
|
*under* any open native `<dialog>`'s top layer — another reason to prefer the
|
|
721
744
|
native `popover` attribute when a popover and a dialog can be open together.
|
|
@@ -750,7 +773,6 @@ These are JS widgets wearing the Bronto look; without the behavior they are iner
|
|
|
750
773
|
| Popover (`ui-popover`) | `initPopover` | no placement/ARIA — prefer the native `popover` attribute |
|
|
751
774
|
| Carousel (`ui-carousel`) | `initCarousel` | a native scroll-snap track (usable, no controls) |
|
|
752
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 |
|
|
753
|
-
| Controlled modal (`ui-modal.is-open`, deprecated) | `initModal` (deprecated) | open skin only — no inert trap, focus-return, or Escape close signal |
|
|
754
776
|
| Menu (`data-bronto-menu`) | `initMenu` | a button next to a list with no open/close, outside-click, or Escape |
|
|
755
777
|
| Dismissible alert/callout (`data-bronto-dismissible`) | `dismissible` | the close affordance is just a button; nothing is removed |
|
|
756
778
|
| Toast | `toast()` | nothing — it is imperative-only |
|
|
@@ -784,3 +806,11 @@ the shipped palettes are gated (see [contrast.md](contrast.md)); your
|
|
|
784
806
|
custom accent is not. Verify primary-button label, `--accent-text`, and
|
|
785
807
|
the focus ring against their backgrounds. Full contract:
|
|
786
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,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ponchia/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.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": [
|
|
@@ -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",
|
|
@@ -114,10 +109,15 @@
|
|
|
114
109
|
"docs/migrations/0.5-to-0.6.md",
|
|
115
110
|
"docs/migrations/0.6-to-0.7.md",
|
|
116
111
|
"docs/migrations/0.7-to-0.8.md",
|
|
112
|
+
"docs/migrations/0.8-to-0.9.md",
|
|
117
113
|
"docs/adr/0001-color-system.md",
|
|
118
114
|
"docs/adr/0002-scope-and-2026-baseline.md",
|
|
119
115
|
"docs/adr/0003-theme-model.md",
|
|
120
|
-
"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"
|
|
121
121
|
],
|
|
122
122
|
"style": "./dist/bronto.css",
|
|
123
123
|
"scripts": {
|
|
@@ -180,7 +180,6 @@
|
|
|
180
180
|
"check:component-matrix": "node scripts/check-component-matrix.mjs",
|
|
181
181
|
"check:behavior-matrix": "node scripts/check-behavior-matrix.mjs",
|
|
182
182
|
"check:helper-matrix": "node scripts/check-helper-matrix.mjs",
|
|
183
|
-
"check:binding-matrix": "node scripts/check-binding-matrix.mjs",
|
|
184
183
|
"check:examples": "node scripts/check-examples.mjs",
|
|
185
184
|
"check:visual-baselines": "node scripts/check-visual-baselines.mjs",
|
|
186
185
|
"check:playwright-container": "node scripts/check-playwright-container.mjs",
|
|
@@ -199,7 +198,7 @@
|
|
|
199
198
|
"check:publint": "publint --strict",
|
|
200
199
|
"check:attw": "attw --pack --ignore-rules no-resolution cjs-resolves-to-esm",
|
|
201
200
|
"check:workflows": "github-actionlint .github/workflows/*.yml",
|
|
202
|
-
"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",
|
|
203
202
|
"test": "node --test \"test/*.test.mjs\"",
|
|
204
203
|
"test:e2e": "playwright test",
|
|
205
204
|
"test:e2e:chromium": "playwright test --project=chromium",
|
|
@@ -216,7 +215,6 @@
|
|
|
216
215
|
"devDependencies": {
|
|
217
216
|
"@arethetypeswrong/cli": "^0.18.5",
|
|
218
217
|
"@axe-core/playwright": "^4.11.3",
|
|
219
|
-
"@builder.io/qwik": "^1.20.0",
|
|
220
218
|
"@playwright/test": "1.60.0",
|
|
221
219
|
"github-actionlint": "^1.7.12",
|
|
222
220
|
"jsdom": "^30.0.1",
|
|
@@ -224,9 +222,6 @@
|
|
|
224
222
|
"pdfjs-dist": "^6.2.108",
|
|
225
223
|
"prettier": "^3.9.6",
|
|
226
224
|
"publint": "^0.3.23",
|
|
227
|
-
"react": "^19.2.8",
|
|
228
|
-
"react-dom": "^19.2.8",
|
|
229
|
-
"solid-js": "^1.9.14",
|
|
230
225
|
"stylelint": "^17.14.1",
|
|
231
226
|
"stylelint-config-standard": "^40.0.0",
|
|
232
227
|
"stylelint-use-logical": "^2.1.3",
|
|
@@ -234,22 +229,6 @@
|
|
|
234
229
|
"vega": "^6.3.1",
|
|
235
230
|
"vega-lite": "^6.4.3"
|
|
236
231
|
},
|
|
237
|
-
"peerDependencies": {
|
|
238
|
-
"@builder.io/qwik": ">=1.5",
|
|
239
|
-
"react": ">=18",
|
|
240
|
-
"solid-js": ">=1.6"
|
|
241
|
-
},
|
|
242
|
-
"peerDependenciesMeta": {
|
|
243
|
-
"@builder.io/qwik": {
|
|
244
|
-
"optional": true
|
|
245
|
-
},
|
|
246
|
-
"react": {
|
|
247
|
-
"optional": true
|
|
248
|
-
},
|
|
249
|
-
"solid-js": {
|
|
250
|
-
"optional": true
|
|
251
|
-
}
|
|
252
|
-
},
|
|
253
232
|
"exports": {
|
|
254
233
|
".": {
|
|
255
234
|
"types": "./index.d.ts",
|
|
@@ -279,6 +258,7 @@
|
|
|
279
258
|
"./css/skins.css": "./dist/css/skins.css",
|
|
280
259
|
"./css/dataviz.css": "./dist/css/dataviz.css",
|
|
281
260
|
"./css/report.css": "./dist/css/report.css",
|
|
261
|
+
"./css/row.css": "./dist/css/row.css",
|
|
282
262
|
"./css/figure.css": "./dist/css/figure.css",
|
|
283
263
|
"./css/annotations.css": "./dist/css/annotations.css",
|
|
284
264
|
"./css/legend.css": "./dist/css/legend.css",
|
|
@@ -324,6 +304,7 @@
|
|
|
324
304
|
"./css/unlayered/skins.css": "./css/skins.css",
|
|
325
305
|
"./css/unlayered/dataviz.css": "./css/dataviz.css",
|
|
326
306
|
"./css/unlayered/report.css": "./css/report.css",
|
|
307
|
+
"./css/unlayered/row.css": "./css/row.css",
|
|
327
308
|
"./css/unlayered/figure.css": "./css/figure.css",
|
|
328
309
|
"./css/unlayered/annotations.css": "./css/annotations.css",
|
|
329
310
|
"./css/unlayered/legend.css": "./css/legend.css",
|
|
@@ -473,10 +454,6 @@
|
|
|
473
454
|
"types": "./behaviors/menu.d.ts",
|
|
474
455
|
"default": "./behaviors/menu.js"
|
|
475
456
|
},
|
|
476
|
-
"./behaviors/modal": {
|
|
477
|
-
"types": "./behaviors/modal.d.ts",
|
|
478
|
-
"default": "./behaviors/modal.js"
|
|
479
|
-
},
|
|
480
457
|
"./behaviors/popover": {
|
|
481
458
|
"types": "./behaviors/popover.d.ts",
|
|
482
459
|
"default": "./behaviors/popover.js"
|
|
@@ -521,26 +498,6 @@
|
|
|
521
498
|
"types": "./connectors/index.d.ts",
|
|
522
499
|
"default": "./connectors/index.js"
|
|
523
500
|
},
|
|
524
|
-
"./react": {
|
|
525
|
-
"types": "./react/index.d.ts",
|
|
526
|
-
"default": "./react/index.js"
|
|
527
|
-
},
|
|
528
|
-
"./solid": {
|
|
529
|
-
"types": "./solid/index.d.ts",
|
|
530
|
-
"default": "./solid/index.js"
|
|
531
|
-
},
|
|
532
|
-
"./qwik": {
|
|
533
|
-
"types": "./qwik/index.d.ts",
|
|
534
|
-
"default": "./qwik/index.js"
|
|
535
|
-
},
|
|
536
|
-
"./svelte": {
|
|
537
|
-
"types": "./svelte/index.d.ts",
|
|
538
|
-
"default": "./svelte/index.js"
|
|
539
|
-
},
|
|
540
|
-
"./vue": {
|
|
541
|
-
"types": "./vue/index.d.ts",
|
|
542
|
-
"default": "./vue/index.js"
|
|
543
|
-
},
|
|
544
501
|
"./skins": {
|
|
545
502
|
"types": "./tokens/skins.d.ts",
|
|
546
503
|
"default": "./tokens/skins.js"
|
|
@@ -565,7 +522,11 @@
|
|
|
565
522
|
"default": "./tokens/vega.js"
|
|
566
523
|
},
|
|
567
524
|
"./vega.json": "./tokens/vega.json",
|
|
568
|
-
"./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"
|
|
569
530
|
},
|
|
570
531
|
"overrides": {
|
|
571
532
|
"adm-zip": "0.6.0",
|
|
@@ -1836,12 +1836,12 @@
|
|
|
1836
1836
|
"type": "FLOAT",
|
|
1837
1837
|
"sourceCssVariable": "--radius-lg",
|
|
1838
1838
|
"valuesByMode": {
|
|
1839
|
-
"global":
|
|
1839
|
+
"global": 6
|
|
1840
1840
|
},
|
|
1841
1841
|
"$extensions": {
|
|
1842
1842
|
"com.ponchia.css": {
|
|
1843
1843
|
"variable": "--radius-lg",
|
|
1844
|
-
"value": "
|
|
1844
|
+
"value": "6px"
|
|
1845
1845
|
}
|
|
1846
1846
|
},
|
|
1847
1847
|
"unit": "px"
|
|
@@ -1851,12 +1851,12 @@
|
|
|
1851
1851
|
"type": "FLOAT",
|
|
1852
1852
|
"sourceCssVariable": "--radius-md",
|
|
1853
1853
|
"valuesByMode": {
|
|
1854
|
-
"global":
|
|
1854
|
+
"global": 4
|
|
1855
1855
|
},
|
|
1856
1856
|
"$extensions": {
|
|
1857
1857
|
"com.ponchia.css": {
|
|
1858
1858
|
"variable": "--radius-md",
|
|
1859
|
-
"value": "
|
|
1859
|
+
"value": "4px"
|
|
1860
1860
|
}
|
|
1861
1861
|
},
|
|
1862
1862
|
"unit": "px"
|
|
@@ -1881,12 +1881,12 @@
|
|
|
1881
1881
|
"type": "FLOAT",
|
|
1882
1882
|
"sourceCssVariable": "--radius-sm",
|
|
1883
1883
|
"valuesByMode": {
|
|
1884
|
-
"global":
|
|
1884
|
+
"global": 2
|
|
1885
1885
|
},
|
|
1886
1886
|
"$extensions": {
|
|
1887
1887
|
"com.ponchia.css": {
|
|
1888
1888
|
"variable": "--radius-sm",
|
|
1889
|
-
"value": "
|
|
1889
|
+
"value": "2px"
|
|
1890
1890
|
}
|
|
1891
1891
|
},
|
|
1892
1892
|
"unit": "px"
|
|
@@ -1896,12 +1896,12 @@
|
|
|
1896
1896
|
"type": "FLOAT",
|
|
1897
1897
|
"sourceCssVariable": "--radius-xl",
|
|
1898
1898
|
"valuesByMode": {
|
|
1899
|
-
"global":
|
|
1899
|
+
"global": 8
|
|
1900
1900
|
},
|
|
1901
1901
|
"$extensions": {
|
|
1902
1902
|
"com.ponchia.css": {
|
|
1903
1903
|
"variable": "--radius-xl",
|
|
1904
|
-
"value": "
|
|
1904
|
+
"value": "8px"
|
|
1905
1905
|
}
|
|
1906
1906
|
},
|
|
1907
1907
|
"unit": "px"
|
|
@@ -2114,12 +2114,12 @@
|
|
|
2114
2114
|
"type": "FLOAT",
|
|
2115
2115
|
"sourceCssVariable": "--text-2xs",
|
|
2116
2116
|
"valuesByMode": {
|
|
2117
|
-
"global": 0.
|
|
2117
|
+
"global": 0.75
|
|
2118
2118
|
},
|
|
2119
2119
|
"$extensions": {
|
|
2120
2120
|
"com.ponchia.css": {
|
|
2121
2121
|
"variable": "--text-2xs",
|
|
2122
|
-
"value": "0.
|
|
2122
|
+
"value": "0.75rem"
|
|
2123
2123
|
}
|
|
2124
2124
|
},
|
|
2125
2125
|
"unit": "rem"
|
|
@@ -2129,12 +2129,12 @@
|
|
|
2129
2129
|
"type": "FLOAT",
|
|
2130
2130
|
"sourceCssVariable": "--text-base",
|
|
2131
2131
|
"valuesByMode": {
|
|
2132
|
-
"global":
|
|
2132
|
+
"global": 1
|
|
2133
2133
|
},
|
|
2134
2134
|
"$extensions": {
|
|
2135
2135
|
"com.ponchia.css": {
|
|
2136
2136
|
"variable": "--text-base",
|
|
2137
|
-
"value": "
|
|
2137
|
+
"value": "1rem"
|
|
2138
2138
|
}
|
|
2139
2139
|
},
|
|
2140
2140
|
"unit": "rem"
|
|
@@ -2144,12 +2144,12 @@
|
|
|
2144
2144
|
"type": "FLOAT",
|
|
2145
2145
|
"sourceCssVariable": "--text-lg",
|
|
2146
2146
|
"valuesByMode": {
|
|
2147
|
-
"global": 1.
|
|
2147
|
+
"global": 1.125
|
|
2148
2148
|
},
|
|
2149
2149
|
"$extensions": {
|
|
2150
2150
|
"com.ponchia.css": {
|
|
2151
2151
|
"variable": "--text-lg",
|
|
2152
|
-
"value": "1.
|
|
2152
|
+
"value": "1.125rem"
|
|
2153
2153
|
}
|
|
2154
2154
|
},
|
|
2155
2155
|
"unit": "rem"
|
|
@@ -2159,12 +2159,12 @@
|
|
|
2159
2159
|
"type": "FLOAT",
|
|
2160
2160
|
"sourceCssVariable": "--text-sm",
|
|
2161
2161
|
"valuesByMode": {
|
|
2162
|
-
"global": 0.
|
|
2162
|
+
"global": 0.875
|
|
2163
2163
|
},
|
|
2164
2164
|
"$extensions": {
|
|
2165
2165
|
"com.ponchia.css": {
|
|
2166
2166
|
"variable": "--text-sm",
|
|
2167
|
-
"value": "0.
|
|
2167
|
+
"value": "0.875rem"
|
|
2168
2168
|
}
|
|
2169
2169
|
},
|
|
2170
2170
|
"unit": "rem"
|
|
@@ -2174,12 +2174,12 @@
|
|
|
2174
2174
|
"type": "FLOAT",
|
|
2175
2175
|
"sourceCssVariable": "--text-xl",
|
|
2176
2176
|
"valuesByMode": {
|
|
2177
|
-
"global": 1.
|
|
2177
|
+
"global": 1.5
|
|
2178
2178
|
},
|
|
2179
2179
|
"$extensions": {
|
|
2180
2180
|
"com.ponchia.css": {
|
|
2181
2181
|
"variable": "--text-xl",
|
|
2182
|
-
"value": "1.
|
|
2182
|
+
"value": "1.5rem"
|
|
2183
2183
|
}
|
|
2184
2184
|
},
|
|
2185
2185
|
"unit": "rem"
|
|
@@ -2189,12 +2189,12 @@
|
|
|
2189
2189
|
"type": "FLOAT",
|
|
2190
2190
|
"sourceCssVariable": "--text-xs",
|
|
2191
2191
|
"valuesByMode": {
|
|
2192
|
-
"global": 0.
|
|
2192
|
+
"global": 0.8125
|
|
2193
2193
|
},
|
|
2194
2194
|
"$extensions": {
|
|
2195
2195
|
"com.ponchia.css": {
|
|
2196
2196
|
"variable": "--text-xs",
|
|
2197
|
-
"value": "0.
|
|
2197
|
+
"value": "0.8125rem"
|
|
2198
2198
|
}
|
|
2199
2199
|
},
|
|
2200
2200
|
"unit": "rem"
|
package/tokens/index.js
CHANGED
|
@@ -21,10 +21,10 @@
|
|
|
21
21
|
export const cssVars = {
|
|
22
22
|
// Global :root — scales, shared with both themes.
|
|
23
23
|
global: {
|
|
24
|
-
'--radius-xl': '
|
|
25
|
-
'--radius-lg': '
|
|
26
|
-
'--radius-md': '
|
|
27
|
-
'--radius-sm': '
|
|
24
|
+
'--radius-xl': '8px',
|
|
25
|
+
'--radius-lg': '6px',
|
|
26
|
+
'--radius-md': '4px',
|
|
27
|
+
'--radius-sm': '2px',
|
|
28
28
|
'--radius-pill': '999px',
|
|
29
29
|
'--space-2xs': '0.25rem',
|
|
30
30
|
'--space-xs': '0.5rem',
|
|
@@ -63,12 +63,12 @@ export const cssVars = {
|
|
|
63
63
|
'--display': 'var(--dot-font)',
|
|
64
64
|
'--display-weight': '700',
|
|
65
65
|
'--display-weight-strong': '800',
|
|
66
|
-
'--text-2xs': '0.
|
|
67
|
-
'--text-xs': '0.
|
|
68
|
-
'--text-sm': '0.
|
|
69
|
-
'--text-base': '
|
|
70
|
-
'--text-lg': '1.
|
|
71
|
-
'--text-xl': '1.
|
|
66
|
+
'--text-2xs': '0.75rem',
|
|
67
|
+
'--text-xs': '0.8125rem',
|
|
68
|
+
'--text-sm': '0.875rem',
|
|
69
|
+
'--text-base': '1rem',
|
|
70
|
+
'--text-lg': '1.125rem',
|
|
71
|
+
'--text-xl': '1.5rem',
|
|
72
72
|
'--tracking-wide': '0.14em',
|
|
73
73
|
'--tracking-wider': '0.22em',
|
|
74
74
|
'--ease-standard': 'cubic-bezier(0.2, 0.8, 0.2, 1)',
|
package/tokens/index.json
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"$comment": "GENERATED from tokens/index.js — do not edit by hand. Run `npm run tokens:build`; drift-checked by check:fresh. A build artifact for non-JS tooling (Style Dictionary, Figma, other languages).",
|
|
3
3
|
"cssVars": {
|
|
4
4
|
"global": {
|
|
5
|
-
"--radius-xl": "
|
|
6
|
-
"--radius-lg": "
|
|
7
|
-
"--radius-md": "
|
|
8
|
-
"--radius-sm": "
|
|
5
|
+
"--radius-xl": "8px",
|
|
6
|
+
"--radius-lg": "6px",
|
|
7
|
+
"--radius-md": "4px",
|
|
8
|
+
"--radius-sm": "2px",
|
|
9
9
|
"--radius-pill": "999px",
|
|
10
10
|
"--space-2xs": "0.25rem",
|
|
11
11
|
"--space-xs": "0.5rem",
|
|
@@ -26,12 +26,12 @@
|
|
|
26
26
|
"--display": "var(--dot-font)",
|
|
27
27
|
"--display-weight": "700",
|
|
28
28
|
"--display-weight-strong": "800",
|
|
29
|
-
"--text-2xs": "0.
|
|
30
|
-
"--text-xs": "0.
|
|
31
|
-
"--text-sm": "0.
|
|
32
|
-
"--text-base": "
|
|
33
|
-
"--text-lg": "1.
|
|
34
|
-
"--text-xl": "1.
|
|
29
|
+
"--text-2xs": "0.75rem",
|
|
30
|
+
"--text-xs": "0.8125rem",
|
|
31
|
+
"--text-sm": "0.875rem",
|
|
32
|
+
"--text-base": "1rem",
|
|
33
|
+
"--text-lg": "1.125rem",
|
|
34
|
+
"--text-xl": "1.5rem",
|
|
35
35
|
"--tracking-wide": "0.14em",
|
|
36
36
|
"--tracking-wider": "0.22em",
|
|
37
37
|
"--ease-standard": "cubic-bezier(0.2, 0.8, 0.2, 1)",
|
|
@@ -153,10 +153,10 @@
|
|
|
153
153
|
},
|
|
154
154
|
"tokens": {
|
|
155
155
|
"scale": {
|
|
156
|
-
"radius-xl": "
|
|
157
|
-
"radius-lg": "
|
|
158
|
-
"radius-md": "
|
|
159
|
-
"radius-sm": "
|
|
156
|
+
"radius-xl": "8px",
|
|
157
|
+
"radius-lg": "6px",
|
|
158
|
+
"radius-md": "4px",
|
|
159
|
+
"radius-sm": "2px",
|
|
160
160
|
"radius-pill": "999px",
|
|
161
161
|
"space-2xs": "0.25rem",
|
|
162
162
|
"space-xs": "0.5rem",
|
|
@@ -177,12 +177,12 @@
|
|
|
177
177
|
"display": "var(--dot-font)",
|
|
178
178
|
"display-weight": "700",
|
|
179
179
|
"display-weight-strong": "800",
|
|
180
|
-
"text-2xs": "0.
|
|
181
|
-
"text-xs": "0.
|
|
182
|
-
"text-sm": "0.
|
|
183
|
-
"text-base": "
|
|
184
|
-
"text-lg": "1.
|
|
185
|
-
"text-xl": "1.
|
|
180
|
+
"text-2xs": "0.75rem",
|
|
181
|
+
"text-xs": "0.8125rem",
|
|
182
|
+
"text-sm": "0.875rem",
|
|
183
|
+
"text-base": "1rem",
|
|
184
|
+
"text-lg": "1.125rem",
|
|
185
|
+
"text-xl": "1.5rem",
|
|
186
186
|
"tracking-wide": "0.14em",
|
|
187
187
|
"tracking-wider": "0.22em",
|
|
188
188
|
"ease-standard": "cubic-bezier(0.2, 0.8, 0.2, 1)",
|
package/tokens/resolved.json
CHANGED
|
@@ -129,10 +129,10 @@
|
|
|
129
129
|
"--focus-ring": "#ff3b41"
|
|
130
130
|
},
|
|
131
131
|
"scale": {
|
|
132
|
-
"--radius-xl": "
|
|
133
|
-
"--radius-lg": "
|
|
134
|
-
"--radius-md": "
|
|
135
|
-
"--radius-sm": "
|
|
132
|
+
"--radius-xl": "8px",
|
|
133
|
+
"--radius-lg": "6px",
|
|
134
|
+
"--radius-md": "4px",
|
|
135
|
+
"--radius-sm": "2px",
|
|
136
136
|
"--radius-pill": "999px",
|
|
137
137
|
"--space-2xs": "0.25rem",
|
|
138
138
|
"--space-xs": "0.5rem",
|
|
@@ -153,12 +153,12 @@
|
|
|
153
153
|
"--display": "'Doto', 'JetBrains Mono', 'Fira Code', 'Cascadia Code', 'SF Mono', ui-monospace, monospace",
|
|
154
154
|
"--display-weight": "700",
|
|
155
155
|
"--display-weight-strong": "800",
|
|
156
|
-
"--text-2xs": "0.
|
|
157
|
-
"--text-xs": "0.
|
|
158
|
-
"--text-sm": "0.
|
|
159
|
-
"--text-base": "
|
|
160
|
-
"--text-lg": "1.
|
|
161
|
-
"--text-xl": "1.
|
|
156
|
+
"--text-2xs": "0.75rem",
|
|
157
|
+
"--text-xs": "0.8125rem",
|
|
158
|
+
"--text-sm": "0.875rem",
|
|
159
|
+
"--text-base": "1rem",
|
|
160
|
+
"--text-lg": "1.125rem",
|
|
161
|
+
"--text-xl": "1.5rem",
|
|
162
162
|
"--tracking-wide": "0.14em",
|
|
163
163
|
"--tracking-wider": "0.22em",
|
|
164
164
|
"--ease-standard": "cubic-bezier(0.2, 0.8, 0.2, 1)",
|