@ponchia/ui 0.6.5 → 0.6.7

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.
Files changed (108) hide show
  1. package/CHANGELOG.md +170 -0
  2. package/README.md +43 -23
  3. package/behaviors/carousel.d.ts.map +1 -1
  4. package/behaviors/carousel.js +3 -0
  5. package/behaviors/dialog.d.ts.map +1 -1
  6. package/behaviors/dialog.js +14 -8
  7. package/behaviors/forms.d.ts.map +1 -1
  8. package/behaviors/forms.js +11 -5
  9. package/behaviors/index.d.ts +2 -0
  10. package/behaviors/index.d.ts.map +1 -1
  11. package/behaviors/index.js +2 -0
  12. package/behaviors/internal.d.ts +2 -1
  13. package/behaviors/internal.d.ts.map +1 -1
  14. package/behaviors/internal.js +23 -3
  15. package/behaviors/legend.d.ts.map +1 -1
  16. package/behaviors/legend.js +41 -9
  17. package/behaviors/splitter.d.ts +26 -0
  18. package/behaviors/splitter.d.ts.map +1 -0
  19. package/behaviors/splitter.js +200 -0
  20. package/behaviors/table.js +3 -3
  21. package/behaviors/theme.js +2 -2
  22. package/classes/classes.json +230 -4
  23. package/classes/index.d.ts +49 -1
  24. package/classes/index.js +56 -1
  25. package/classes/vscode.css-custom-data.json +1 -1
  26. package/css/analytical.css +3 -1
  27. package/css/app.css +4 -4
  28. package/css/clamp.css +92 -0
  29. package/css/figure.css +102 -0
  30. package/css/highlights.css +50 -0
  31. package/css/interval.css +90 -0
  32. package/css/primitives.css +2 -3
  33. package/css/report-kit.css +38 -0
  34. package/css/report.css +51 -4
  35. package/css/sidenote.css +12 -2
  36. package/css/site.css +2 -1
  37. package/css/sources.css +5 -0
  38. package/css/state.css +120 -1
  39. package/css/table.css +4 -0
  40. package/css/tokens.css +9 -9
  41. package/css/workbench.css +101 -8
  42. package/dist/bronto.css +1 -1
  43. package/dist/css/analytical.css +1 -1
  44. package/dist/css/app.css +1 -1
  45. package/dist/css/clamp.css +1 -0
  46. package/dist/css/figure.css +1 -0
  47. package/dist/css/highlights.css +1 -0
  48. package/dist/css/interval.css +1 -0
  49. package/dist/css/primitives.css +1 -1
  50. package/dist/css/report-kit.css +1 -0
  51. package/dist/css/report.css +1 -1
  52. package/dist/css/sidenote.css +1 -1
  53. package/dist/css/site.css +1 -1
  54. package/dist/css/sources.css +1 -1
  55. package/dist/css/state.css +1 -1
  56. package/dist/css/table.css +1 -1
  57. package/dist/css/tokens.css +1 -1
  58. package/dist/css/workbench.css +1 -1
  59. package/docs/adr/0002-scope-and-2026-baseline.md +1 -1
  60. package/docs/architecture.md +67 -43
  61. package/docs/clamp.md +49 -0
  62. package/docs/contrast.md +34 -24
  63. package/docs/d2.md +37 -0
  64. package/docs/figure.md +71 -0
  65. package/docs/frontier-primitives.md +48 -23
  66. package/docs/highlights.md +52 -0
  67. package/docs/interop/tailwind.md +148 -0
  68. package/docs/interval.md +55 -0
  69. package/docs/legends.md +3 -2
  70. package/docs/mermaid.md +6 -0
  71. package/docs/migrations/0.2-to-0.3.md +80 -0
  72. package/docs/migrations/0.3-to-0.4.md +48 -0
  73. package/docs/migrations/0.4-to-0.5.md +96 -0
  74. package/docs/migrations/0.5-to-0.6.md +82 -0
  75. package/docs/package-contract.md +40 -2
  76. package/docs/reference.md +79 -6
  77. package/docs/reporting.md +132 -56
  78. package/docs/sidenote.md +7 -1
  79. package/docs/sources.md +1 -1
  80. package/docs/stability.md +5 -3
  81. package/docs/state.md +67 -10
  82. package/docs/theming.md +10 -2
  83. package/docs/usage.md +31 -11
  84. package/docs/workbench.md +59 -18
  85. package/llms.txt +82 -14
  86. package/package.json +68 -6
  87. package/qwik/index.d.ts +1 -0
  88. package/qwik/index.d.ts.map +1 -1
  89. package/qwik/index.js +26 -21
  90. package/react/index.d.ts +1 -0
  91. package/react/index.d.ts.map +1 -1
  92. package/react/index.js +4 -1
  93. package/schemas/report-claims.v1.schema.json +137 -0
  94. package/solid/index.d.ts +2 -0
  95. package/solid/index.d.ts.map +1 -1
  96. package/solid/index.js +3 -0
  97. package/svelte/index.d.ts +88 -0
  98. package/svelte/index.d.ts.map +1 -0
  99. package/svelte/index.js +166 -0
  100. package/tailwind.css +87 -0
  101. package/tokens/figma.variables.json +2241 -0
  102. package/tokens/index.js +1 -1
  103. package/tokens/index.json +2 -2
  104. package/tokens/resolved.json +3 -3
  105. package/tokens/tokens.dtcg.json +1 -1
  106. package/vue/index.d.ts +79 -0
  107. package/vue/index.d.ts.map +1 -0
  108. package/vue/index.js +197 -0
package/docs/workbench.md CHANGED
@@ -1,29 +1,69 @@
1
- # Workbench — inspector, properties, selection bar
1
+ # Workbench — split panes, inspector, properties, selection bar
2
2
 
3
3
  `@ponchia/ui/css/workbench.css` is an opt-in set of primitives for **real
4
- tools**: an inspector panel, property rows for a selected object, and a bar of
5
- actions on the current selection. Generic kits stop at cards/tables/forms, so
6
- every app builds its own half-consistent workbench. This is the low-risk CSS
7
- core — layout and affordances only.
4
+ tools**: resizable split panes, an inspector panel, property rows for a selected
5
+ object, and a bar of actions on the current selection. Generic kits stop at
6
+ cards/tables/forms, so every app builds its own half-consistent workbench. This
7
+ is the low-risk core — layout, resize affordance, and ARIA value sync.
8
8
 
9
9
  ```css
10
10
  @import '@ponchia/ui';
11
11
  @import '@ponchia/ui/css/workbench.css';
12
12
  ```
13
13
 
14
- Resizable split panes (a focusable ARIA window-splitter behavior) and drag
15
- handles are deliberately deferred until a consumer needs them. Not in the core
16
- bundle.
14
+ ```js
15
+ import { initSplitter } from '@ponchia/ui/behaviors';
16
+
17
+ initSplitter();
18
+ ```
19
+
20
+ Not in the core bundle. Import the CSS leaf where the workbench appears and run
21
+ `initSplitter()` only if the page includes `[data-bronto-splitter]`.
22
+
23
+ ## Splitter — `.ui-splitter`
24
+
25
+ Two panes separated by a focusable ARIA separator handle. The CSS owns the grid
26
+ tracks and handle affordance; `initSplitter()` owns keyboard/pointer resizing,
27
+ `--splitter-pos`, `aria-valuenow`, and the `bronto:splitter:resize` event. The
28
+ host owns pane content, persistence, saved layout state, collapse policy, and any
29
+ domain selection model.
30
+
31
+ ```html
32
+ <div
33
+ class="ui-splitter ui-splitter--vertical"
34
+ data-bronto-splitter
35
+ style="--splitter-pos: 36%"
36
+ >
37
+ <section class="ui-splitter__pane" id="files" aria-label="Files">...</section>
38
+ <div
39
+ class="ui-splitter__handle"
40
+ role="separator"
41
+ tabindex="0"
42
+ aria-controls="files"
43
+ aria-label="Resize files pane"
44
+ aria-orientation="vertical"
45
+ aria-valuemin="20"
46
+ aria-valuemax="72"
47
+ aria-valuenow="36"
48
+ ></div>
49
+ <section class="ui-splitter__pane" aria-label="Preview">...</section>
50
+ </div>
51
+ ```
52
+
53
+ Use `.ui-splitter--horizontal` for top/bottom panes. Arrow keys change the value
54
+ by 2 percentage points, Shift+Arrow and PageUp/PageDown by 10, and Home/End jump
55
+ to `aria-valuemin` / `aria-valuemax`. The handle needs a real accessible name
56
+ and `aria-controls` pointing at the primary pane.
17
57
 
18
58
  ## Inspector — `.ui-inspector`
19
59
 
20
- A panel of details for the selected object: a `__header` (title + actions) over
60
+ A panel of details for the selected object: a `__head` (title + actions) over
21
61
  a `__body` of property rows.
22
62
 
23
63
  ```html
24
64
  <aside class="ui-inspector">
25
65
  <div class="ui-inspector__head">
26
- <h2 class="ui-eyebrow">Rectangle</h2>
66
+ <h2 class="ui-eyebrow">Sync job</h2>
27
67
  <button class="ui-button ui-button--subtle ui-button--sm" type="button">Reset</button>
28
68
  </div>
29
69
  <div class="ui-inspector__body">
@@ -39,12 +79,12 @@ A label/value pair, denser than `ui-key-value` and tuned for an inspector. The
39
79
 
40
80
  ```html
41
81
  <div class="ui-property">
42
- <span class="ui-property__label">Width</span>
43
- <span class="ui-property__value">240 px</span>
82
+ <span class="ui-property__label">Owner</span>
83
+ <span class="ui-property__value">Platform</span>
44
84
  </div>
45
85
  <div class="ui-property">
46
- <span class="ui-property__label">Fill</span>
47
- <span class="ui-property__value"><input class="ui-input" value="#121212" /></span>
86
+ <span class="ui-property__label">Retries</span>
87
+ <span class="ui-property__value"><input class="ui-input" value="3" /></span>
48
88
  </div>
49
89
  ```
50
90
 
@@ -72,7 +112,8 @@ A raised bar of actions on the current selection: a `__count` on one side,
72
112
 
73
113
  ## Scope
74
114
 
75
- CSS only, no recipes — these are structural containers and rows; apply the
76
- classes directly (or read them from `cls.inspector`, `cls.property`, …). Pair
77
- the selection bar with the cross-cutting [`ui-sel`](./selection.md) states on the
78
- selected items themselves; Bronto styles both, the host owns the hit-testing.
115
+ No recipes — these are structural containers and rows; apply the classes
116
+ directly (or read them from `cls.splitter`, `cls.inspector`, `cls.property`, …).
117
+ Pair the selection bar with the cross-cutting [`ui-sel`](./selection.md) states
118
+ on the selected items themselves. Bronto styles both and wires the splitter
119
+ affordance; the host owns hit-testing, persistence, pane contents, and commands.
package/llms.txt CHANGED
@@ -44,7 +44,7 @@ the path changes from source `css/` to built `dist/css/`:
44
44
  <!-- installed locally -->
45
45
  <link rel="stylesheet" href="./node_modules/@ponchia/ui/dist/css/<leaf>.css" />
46
46
  <!-- or from a CDN; pin the version (pre-1.0, breaking changes ship in the minor) -->
47
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.6.5/dist/css/<leaf>.css" />
47
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.6.7/dist/css/<leaf>.css" />
48
48
  ```
49
49
 
50
50
  The flattened default bundle is `dist/bronto.css` (bundler shorthand
@@ -213,10 +213,30 @@ simulated protan/deutan/tritan), `--chart-seq-*` (sequential), `--chart-div-*`
213
213
  pattern N; colour is never the sole signal). Details in `docs/theming.md`.
214
214
 
215
215
  Building analytical / generated-report UI? Import the roll-up
216
- `@ponchia/ui/css/analytical.css` (bundles annotations + legend + marks +
217
- connectors + spotlight + crosshair + selection) instead of the seven leaves;
218
- add `css/dataviz.css` for chart colours and `css/report.css` for the document
219
- grammar. The individual layers (each opt-in, none in the default bundle):
216
+ `@ponchia/ui/css/analytical.css` (bundles figure + annotations + legend +
217
+ marks + connectors + spotlight + crosshair + selection + highlights) instead
218
+ of the nine leaves; add `css/dataviz.css` for chart colours and `css/report.css`
219
+ for the document grammar. Interval and clamp are report/evidence leaves but are
220
+ NOT in the roll-up; link them individually. The individual layers (each opt-in,
221
+ none in the default bundle):
222
+
223
+ Optional figure stage for charts, diagrams, screenshots, and annotated media —
224
+ opt-in, never in the default bundle. It composes with `ui-report__figure` but
225
+ does not replace it:
226
+
227
+ ```html
228
+ <link rel="stylesheet" href="@ponchia/ui/css/figure.css" />
229
+ ```
230
+
231
+ Use `ui-figure` on the `<figure>`, `ui-figure__caption` on the caption,
232
+ `ui-figure__body` and optional `ui-figure__body--key-right` for stage + key
233
+ layout, `ui-figure__stage` for the centered media box, `ui-figure__media` for
234
+ the chart/SVG/img/canvas, `ui-figure__overlay` for pointer-transparent absolute
235
+ overlays, `ui-figure__key` for legends, and `ui-figure__data` for fallback
236
+ tables. Author-set knobs: `--figure-max-inline`, `--figure-min-block`,
237
+ `--figure-key-width`. Bronto owns layout only; the host owns data, scales,
238
+ chart rendering, overlay content, and accessibility text. Details:
239
+ `docs/figure.md`.
220
240
 
221
241
  Optional SVG annotations for charts/reports — opt-in, never in the default
222
242
  bundle. This is Bronto's subject / connector / note grammar inspired by
@@ -351,6 +371,20 @@ Apply `ui-sel` + `ui-sel--on` (selected), `ui-sel--off` (excluded), or
351
371
  row, list item, map region) from YOUR selection/brush logic — Bronto only styles
352
372
  them. `ui.sel({ state: 'on'|'off'|'maybe' })`. Details: `docs/selection.md`.
353
373
 
374
+ Optional Custom Highlight API paint — opt-in, CSS only, never in the default
375
+ bundle. For cited evidence, search hits, and current match ranges without
376
+ wrapping text nodes:
377
+
378
+ ```html
379
+ <link rel="stylesheet" href="@ponchia/ui/css/highlights.css" />
380
+ ```
381
+
382
+ Put `ui-highlights` on the text scope. The host creates `Range` objects and
383
+ registers `Highlight` sets as `CSS.highlights.set('bronto-evidence', ...)`,
384
+ `bronto-search`, and `bronto-current`; Bronto only paints them. Custom props:
385
+ `--highlight-evidence`, `--highlight-search`, `--highlight-current`. Always
386
+ check `CSS.highlights` before registering. Details: `docs/highlights.md`.
387
+
354
388
  Optional source/citation/provenance trust layer — opt-in, CSS only, never in
355
389
  the default bundle. The grammar for "where did this come from?" in generated
356
390
  reports/AI output:
@@ -371,6 +405,32 @@ author-written label (never colour alone). A tone class **needs a host**:
371
405
  states; the host owns fetching, numbering, and trust. `ui.citation({chip,state})` / `ui.source({state})` /
372
406
  `ui.provenance({state})`. Details: `docs/sources.md`.
373
407
 
408
+ Optional low/high interval — opt-in, CSS only, never in the default bundle. For
409
+ confidence windows, estimates, budget bands, or caveated evidence readings:
410
+
411
+ ```html
412
+ <link rel="stylesheet" href="@ponchia/ui/css/interval.css" />
413
+ ```
414
+
415
+ Use `ui-interval` with host-normalised `--lo` and `--hi` (0..1), optional
416
+ `ui-interval__point` with `--v`, plus `ui-interval__track`,
417
+ `ui-interval__range`, `ui-interval__label`, and `ui-interval__bounds`.
418
+ The container needs host-written text (`role="img"` + `aria-label`, or nearby
419
+ visible prose). Bronto paints geometry only. Details: `docs/interval.md`.
420
+
421
+ Optional bounded excerpt clamp — opt-in, CSS only, never in the default bundle.
422
+ For source excerpts, claim basis, and caveats that should scan compactly but
423
+ remain reachable:
424
+
425
+ ```html
426
+ <link rel="stylesheet" href="@ponchia/ui/css/clamp.css" />
427
+ ```
428
+
429
+ Use `ui-clamp` with `--clamp-lines`, `ui-clamp__body`, and optionally a checkbox
430
+ `ui-clamp__toggle` followed by a visible `ui-clamp__control` containing explicit
431
+ `ui-clamp__more` / `ui-clamp__less` text. Host owns IDs and content. Print
432
+ expands the body and hides the control. Details: `docs/clamp.md`.
433
+
374
434
  Optional line/row change-review grammar — opt-in, CSS only, never in the
375
435
  default bundle. For code review, changelogs, version history, config diffs, and
376
436
  generated reports:
@@ -569,11 +629,13 @@ specifiers only work after a bundler rewrites them:
569
629
  <link rel="stylesheet" href="./node_modules/@ponchia/ui/dist/bronto.css" />
570
630
  <link rel="stylesheet" href="./node_modules/@ponchia/ui/dist/css/report.css" />
571
631
  <link rel="stylesheet" href="./node_modules/@ponchia/ui/dist/css/dataviz.css" />
632
+ <link rel="stylesheet" href="./node_modules/@ponchia/ui/dist/css/figure.css" />
572
633
  <link rel="stylesheet" href="./node_modules/@ponchia/ui/dist/css/sources.css" />
573
634
  ```
574
635
 
575
636
  In Vite/webpack/etc., import `@ponchia/ui`, `@ponchia/ui/css/report.css`, and
576
- `@ponchia/ui/css/dataviz.css` instead.
637
+ `@ponchia/ui/css/dataviz.css` instead; add `figure.css`, `interval.css`,
638
+ `clamp.css`, or `highlights.css` only when the report uses them.
577
639
 
578
640
  Canonical report skeleton:
579
641
 
@@ -583,10 +645,10 @@ Canonical report skeleton:
583
645
  <p class="ui-eyebrow">Report</p>
584
646
  <h1 class="ui-report__title">System review</h1>
585
647
  <p class="ui-report__subtitle">Static HTML, Chromium PDF-ready.</p>
586
- <ol class="ui-report__meta">
648
+ <ul class="ui-report__meta">
587
649
  <li>2026-06-01</li>
588
650
  <li>Generated</li>
589
- </ol>
651
+ </ul>
590
652
  </header>
591
653
  <section class="ui-report__section">
592
654
  <h2 class="ui-report__section-head">Executive summary</h2>
@@ -616,8 +678,9 @@ Report rules for agents:
616
678
  - Use semantic headings; give tables captions and header cells; give charts
617
679
  captions, legends/direct labels, and fallback data.
618
680
  - For a chart, theme Vega-Lite with `@ponchia/ui/vega` or hand-author a
619
- token-themed inline `<svg>` inside a `ui-report__figure`. Bronto ships no
620
- chart component.
681
+ token-themed inline `<svg>` inside `ui-report__figure ui-figure`, with a
682
+ `ui-figure__stage`, optional `ui-figure__key`, and fallback `ui-figure__data`.
683
+ Bronto ships no chart component.
621
684
  - Put the above-the-fold call in `ui-report__decision`; use
622
685
  `ui-report__finding--critical|--major|--minor|--resolved` only when the
623
686
  written finding label also states the severity/status.
@@ -633,9 +696,12 @@ Report rules for agents:
633
696
  conflicting, unverified, or generated inputs should be surfaced near affected
634
697
  claims, not only in the source appendix.
635
698
  - For important reports, emit a sidecar `claims.json` / source archive manifest
636
- with stable claim IDs, source IDs, status, risk, retrieval time, and
637
- claim-source relations. The visible HTML remains the primary artifact, but the
638
- sidecar lets tools prove IDs and high-risk evidence still resolve.
699
+ with `schemaVersion: "bronto-report-claims.v1"` and, when validating,
700
+ `@ponchia/ui/schemas/report-claims.v1.schema.json`. Include stable claim IDs,
701
+ source IDs, status, risk, retrieval time, and explicit `relations`
702
+ (`supports`, `limits`, `contradicts`, or `informs`). The visible HTML remains
703
+ the primary artifact, but the sidecar lets tools prove IDs and high-risk
704
+ evidence still resolve.
639
705
  - Use `ui-delta` (`--up`/`--down`/`--flat`, `--invert` when up is bad) for a
640
706
  trend figure and `ui-compare` (`--2up`) for an A/B / before-after section.
641
707
  - Use `ui-report__section--unnumbered` for appendices in numbered reports.
@@ -676,6 +742,8 @@ Read these from `node_modules/@ponchia/ui/` — no network needed:
676
742
  - `docs/reporting.md` — static/PDF-first report cookbook for LLM-authored
677
743
  reports, including report skeletons, decision/finding/evidence patterns,
678
744
  chart rules, print utilities, and safety boundaries.
745
+ - `schemas/report-claims.v1.schema.json` — declarative JSON Schema for
746
+ `claims.json` sidecars that map report claims to source IDs and relations.
679
747
  - `docs/annotations.md` — SVG annotation recipes and helper guidance for
680
748
  analytical figures.
681
749
  - `docs/mermaid.md` — theme Mermaid diagrams from bronto tokens (resolved
@@ -705,7 +773,7 @@ Read these from `node_modules/@ponchia/ui/` — no network needed:
705
773
  annotation geometry.
706
774
  - `classes/vscode.css-custom-data.json` — editor autocomplete for tokens.
707
775
 
708
- ## Human-browsable references (not shipped in the npm tarball, by design)
776
+ ## External web references
709
777
 
710
778
  - Live kitchen-sink demo (every component, light/dark, RTL): https://ponchia.github.io/bronto-ui/
711
779
  - Architecture & the CSS-first decision: https://github.com/Ponchia/bronto-ui/blob/main/docs/architecture.md
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@ponchia/ui",
3
- "version": "0.6.5",
3
+ "version": "0.6.7",
4
4
  "type": "module",
5
- "description": "CSS-first design system for interfaces that explain themselves — works in HTML, every framework, and PDF, no component runtime. A standard component set plus an opt-in analytical & report layer (annotations, legends, connectors, data-viz, report grammar). Monochrome with one rationed accent, re-skinnable from one --accent knob. Zero runtime dependencies.",
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",
@@ -44,16 +44,20 @@
44
44
  "files": [
45
45
  "css",
46
46
  "dist",
47
+ "tailwind.css",
47
48
  "fonts",
48
49
  "tokens",
49
50
  "classes",
50
51
  "behaviors",
51
52
  "glyphs",
53
+ "schemas",
52
54
  "annotations",
53
55
  "connectors",
54
56
  "react",
55
57
  "solid",
56
58
  "qwik",
59
+ "svelte",
60
+ "vue",
57
61
  "shiki",
58
62
  "llms.txt",
59
63
  "CHANGELOG.md",
@@ -72,6 +76,7 @@
72
76
  "docs/mermaid.md",
73
77
  "docs/d2.md",
74
78
  "docs/vega.md",
79
+ "docs/figure.md",
75
80
  "docs/annotations.md",
76
81
  "docs/legends.md",
77
82
  "docs/marks.md",
@@ -80,6 +85,9 @@
80
85
  "docs/crosshair.md",
81
86
  "docs/selection.md",
82
87
  "docs/sources.md",
88
+ "docs/interval.md",
89
+ "docs/clamp.md",
90
+ "docs/highlights.md",
83
91
  "docs/diff.md",
84
92
  "docs/code.md",
85
93
  "docs/spark.md",
@@ -93,6 +101,11 @@
93
101
  "docs/generated.md",
94
102
  "docs/workbench.md",
95
103
  "docs/command.md",
104
+ "docs/interop/tailwind.md",
105
+ "docs/migrations/0.2-to-0.3.md",
106
+ "docs/migrations/0.3-to-0.4.md",
107
+ "docs/migrations/0.4-to-0.5.md",
108
+ "docs/migrations/0.5-to-0.6.md",
96
109
  "docs/adr/0001-color-system.md",
97
110
  "docs/adr/0002-scope-and-2026-baseline.md",
98
111
  "docs/adr/0003-theme-model.md"
@@ -105,6 +118,7 @@
105
118
  "check:format": "prettier --check .",
106
119
  "size:report": "node scripts/size-report.mjs",
107
120
  "report:pdf": "node scripts/render-pdf.mjs",
121
+ "release:prep": "node scripts/release-prep.mjs",
108
122
  "emit:theme": "node scripts/emit-theme.mjs",
109
123
  "emit:theme:check": "node scripts/emit-theme.mjs --check",
110
124
  "gen": "npm run prepack",
@@ -113,6 +127,7 @@
113
127
  "tokens:css:build": "node scripts/gen-tokens-css.mjs",
114
128
  "dtcg:build": "node scripts/gen-dtcg.mjs",
115
129
  "resolved:build": "node scripts/gen-resolved.mjs",
130
+ "figma:variables:build": "node scripts/gen-figma-variables.mjs",
116
131
  "dts:build": "node scripts/gen-dts.mjs",
117
132
  "dts:emit": "node scripts/emit-dts.mjs",
118
133
  "glyphs:build": "node scripts/gen-glyphs.mjs",
@@ -131,6 +146,7 @@
131
146
  "check:fresh": "node scripts/check-fresh.mjs",
132
147
  "check:classes": "node scripts/check-classes.mjs",
133
148
  "check:recipe-types": "node scripts/check-recipe-types.mjs",
149
+ "check:dead": "knip",
134
150
  "check:chain": "node scripts/check-chain.mjs",
135
151
  "check:dts-emit": "node scripts/check-dts-emit.mjs",
136
152
  "check:glyphs": "node scripts/check-glyphs.mjs",
@@ -146,18 +162,28 @@
146
162
  "check:shiki": "node scripts/check-shiki.mjs",
147
163
  "check:dist": "node scripts/check-dist.mjs",
148
164
  "check:pack": "node scripts/check-pack.mjs",
165
+ "check:examples": "node scripts/check-examples.mjs",
149
166
  "check:release": "node scripts/check-release.mjs",
150
167
  "check:versions": "node scripts/check-versions.mjs",
168
+ "check:migrations": "node scripts/check-migrations.mjs",
151
169
  "check:public-metadata": "node scripts/check-public-metadata.mjs",
170
+ "check:public-hygiene": "node scripts/check-public-hygiene.mjs",
152
171
  "check:doc-recipes": "node scripts/check-doc-recipes.mjs",
153
172
  "check:contract": "node scripts/check-contract.mjs",
173
+ "check:variables": "node scripts/check-variables.mjs",
154
174
  "check:contrast": "node scripts/check-contrast.mjs",
155
175
  "check:publint": "publint --strict",
156
176
  "check:attw": "attw --pack --ignore-rules no-resolution cjs-resolves-to-esm",
157
- "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:types && npm run check:shiki && npm run check:dist && npm run check:pack && npm run check:publint && npm run check:attw && npm run check:release && npm run check:versions && npm run check:public-metadata && npm run check:doc-recipes && npm run check:contract && 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",
177
+ "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:types && npm run check:shiki && npm run check:dist && npm run check:pack && npm run check:examples && npm run check:publint && npm run check:attw && 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-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",
158
178
  "test": "node --test \"test/*.test.mjs\"",
159
- "prepack": "npm run tokens:css:build && npm run tokens:build && npm run dtcg:build && npm run resolved:build && npm run dts:build && npm run dts:emit && npm run reference:build && npm run package-contract:build && npm run classes:json:build && npm run contrast:build && npm run vscode:build && npm run skins:build && npm run charts:build && npm run mermaid:build && npm run d2:build && npm run vega:build && npm run dist:build && npm run glyphs:build",
160
- "prepublishOnly": "npm run check && npm test"
179
+ "test:e2e": "playwright test",
180
+ "test:e2e:chromium": "playwright test --project=chromium",
181
+ "test:e2e:nonpixel": "node scripts/test-e2e-nonpixel.mjs",
182
+ "test:examples": "node scripts/test-examples.mjs",
183
+ "build:artifacts": "npm run tokens:css:build && npm run tokens:build && npm run dtcg:build && npm run resolved:build && npm run figma:variables:build && npm run dts:build && npm run dts:emit && npm run reference:build && npm run package-contract:build && npm run classes:json:build && npm run contrast:build && npm run vscode:build && npm run skins:build && npm run charts:build && npm run mermaid:build && npm run d2:build && npm run vega:build && npm run dist:build && npm run glyphs:build",
184
+ "verify:artifacts": "npm run check:fresh && npm run check:dist && npm run check:dts-emit && npm run check:glyphs && npm run check:skins && npm run check:charts && npm run check:mermaid && npm run check:d2 && npm run check:vega && npm run check:pack",
185
+ "prepack": "npm run build:artifacts && npm run verify:artifacts",
186
+ "prepublishOnly": "npm run build:artifacts && npm run check && npm test"
161
187
  },
162
188
  "devDependencies": {
163
189
  "@arethetypeswrong/cli": "^0.18.3",
@@ -165,7 +191,9 @@
165
191
  "@builder.io/qwik": "^1.20.0",
166
192
  "@playwright/test": "1.60.0",
167
193
  "jsdom": "^29.1.1",
168
- "prettier": "^3.8.3",
194
+ "knip": "^6.16.1",
195
+ "pdfjs-dist": "^6.0.227",
196
+ "prettier": "^3.8.4",
169
197
  "publint": "^0.3.21",
170
198
  "react": "^19.2.7",
171
199
  "react-dom": "^19.2.7",
@@ -199,6 +227,8 @@
199
227
  "default": "./dist/bronto.css"
200
228
  },
201
229
  "./dist/bronto.css": "./dist/bronto.css",
230
+ "./tailwind": "./tailwind.css",
231
+ "./tailwind.css": "./tailwind.css",
202
232
  "./css": "./css/core.css",
203
233
  "./css/core.css": "./css/core.css",
204
234
  "./css/tokens.css": "./dist/css/tokens.css",
@@ -219,6 +249,7 @@
219
249
  "./css/skins.css": "./dist/css/skins.css",
220
250
  "./css/dataviz.css": "./dist/css/dataviz.css",
221
251
  "./css/report.css": "./dist/css/report.css",
252
+ "./css/figure.css": "./dist/css/figure.css",
222
253
  "./css/annotations.css": "./dist/css/annotations.css",
223
254
  "./css/legend.css": "./dist/css/legend.css",
224
255
  "./css/marks.css": "./dist/css/marks.css",
@@ -227,6 +258,9 @@
227
258
  "./css/crosshair.css": "./dist/css/crosshair.css",
228
259
  "./css/selection.css": "./dist/css/selection.css",
229
260
  "./css/sources.css": "./dist/css/sources.css",
261
+ "./css/interval.css": "./dist/css/interval.css",
262
+ "./css/clamp.css": "./dist/css/clamp.css",
263
+ "./css/highlights.css": "./dist/css/highlights.css",
230
264
  "./css/diff.css": "./dist/css/diff.css",
231
265
  "./css/code.css": "./dist/css/code.css",
232
266
  "./css/spark.css": "./dist/css/spark.css",
@@ -241,6 +275,7 @@
241
275
  "./css/workbench.css": "./dist/css/workbench.css",
242
276
  "./css/command.css": "./dist/css/command.css",
243
277
  "./css/analytical.css": "./dist/css/analytical.css",
278
+ "./css/report-kit.css": "./dist/css/report-kit.css",
244
279
  "./css/unlayered/tokens.css": "./css/tokens.css",
245
280
  "./css/unlayered/fonts.css": "./css/fonts.css",
246
281
  "./css/unlayered/base.css": "./css/base.css",
@@ -259,6 +294,7 @@
259
294
  "./css/unlayered/skins.css": "./css/skins.css",
260
295
  "./css/unlayered/dataviz.css": "./css/dataviz.css",
261
296
  "./css/unlayered/report.css": "./css/report.css",
297
+ "./css/unlayered/figure.css": "./css/figure.css",
262
298
  "./css/unlayered/annotations.css": "./css/annotations.css",
263
299
  "./css/unlayered/legend.css": "./css/legend.css",
264
300
  "./css/unlayered/marks.css": "./css/marks.css",
@@ -267,6 +303,9 @@
267
303
  "./css/unlayered/crosshair.css": "./css/crosshair.css",
268
304
  "./css/unlayered/selection.css": "./css/selection.css",
269
305
  "./css/unlayered/sources.css": "./css/sources.css",
306
+ "./css/unlayered/interval.css": "./css/interval.css",
307
+ "./css/unlayered/clamp.css": "./css/clamp.css",
308
+ "./css/unlayered/highlights.css": "./css/highlights.css",
270
309
  "./css/unlayered/diff.css": "./css/diff.css",
271
310
  "./css/unlayered/code.css": "./css/code.css",
272
311
  "./css/unlayered/spark.css": "./css/spark.css",
@@ -288,8 +327,11 @@
288
327
  "./tokens.json": "./tokens/index.json",
289
328
  "./tokens.dtcg.json": "./tokens/tokens.dtcg.json",
290
329
  "./tokens/resolved.json": "./tokens/resolved.json",
330
+ "./tokens/figma.variables.json": "./tokens/figma.variables.json",
291
331
  "./shiki/nothing.json": "./shiki/nothing.json",
292
332
  "./llms.txt": "./llms.txt",
333
+ "./MIGRATIONS.json": "./MIGRATIONS.json",
334
+ "./schemas/report-claims.v1.schema.json": "./schemas/report-claims.v1.schema.json",
293
335
  "./docs/architecture.md": "./docs/architecture.md",
294
336
  "./docs/reference.md": "./docs/reference.md",
295
337
  "./docs/theming.md": "./docs/theming.md",
@@ -304,6 +346,7 @@
304
346
  "./docs/mermaid.md": "./docs/mermaid.md",
305
347
  "./docs/d2.md": "./docs/d2.md",
306
348
  "./docs/vega.md": "./docs/vega.md",
349
+ "./docs/figure.md": "./docs/figure.md",
307
350
  "./docs/annotations.md": "./docs/annotations.md",
308
351
  "./docs/legends.md": "./docs/legends.md",
309
352
  "./docs/marks.md": "./docs/marks.md",
@@ -312,6 +355,9 @@
312
355
  "./docs/crosshair.md": "./docs/crosshair.md",
313
356
  "./docs/selection.md": "./docs/selection.md",
314
357
  "./docs/sources.md": "./docs/sources.md",
358
+ "./docs/interval.md": "./docs/interval.md",
359
+ "./docs/clamp.md": "./docs/clamp.md",
360
+ "./docs/highlights.md": "./docs/highlights.md",
315
361
  "./docs/diff.md": "./docs/diff.md",
316
362
  "./docs/code.md": "./docs/code.md",
317
363
  "./docs/spark.md": "./docs/spark.md",
@@ -325,6 +371,11 @@
325
371
  "./docs/generated.md": "./docs/generated.md",
326
372
  "./docs/workbench.md": "./docs/workbench.md",
327
373
  "./docs/command.md": "./docs/command.md",
374
+ "./docs/interop/tailwind.md": "./docs/interop/tailwind.md",
375
+ "./docs/migrations/0.2-to-0.3.md": "./docs/migrations/0.2-to-0.3.md",
376
+ "./docs/migrations/0.3-to-0.4.md": "./docs/migrations/0.3-to-0.4.md",
377
+ "./docs/migrations/0.4-to-0.5.md": "./docs/migrations/0.4-to-0.5.md",
378
+ "./docs/migrations/0.5-to-0.6.md": "./docs/migrations/0.5-to-0.6.md",
328
379
  "./docs/adr/0001-color-system.md": "./docs/adr/0001-color-system.md",
329
380
  "./docs/adr/0002-scope-and-2026-baseline.md": "./docs/adr/0002-scope-and-2026-baseline.md",
330
381
  "./docs/adr/0003-theme-model.md": "./docs/adr/0003-theme-model.md",
@@ -361,6 +412,14 @@
361
412
  "types": "./qwik/index.d.ts",
362
413
  "default": "./qwik/index.js"
363
414
  },
415
+ "./svelte": {
416
+ "types": "./svelte/index.d.ts",
417
+ "default": "./svelte/index.js"
418
+ },
419
+ "./vue": {
420
+ "types": "./vue/index.d.ts",
421
+ "default": "./vue/index.js"
422
+ },
364
423
  "./skins": {
365
424
  "types": "./tokens/skins.d.ts",
366
425
  "default": "./tokens/skins.js"
@@ -386,5 +445,8 @@
386
445
  },
387
446
  "./vega.json": "./tokens/vega.json",
388
447
  "./fonts/*": "./fonts/*"
448
+ },
449
+ "overrides": {
450
+ "esbuild": "0.28.1"
389
451
  }
390
452
  }
package/qwik/index.d.ts CHANGED
@@ -26,6 +26,7 @@ export function useSpotlight(opts?: BrontoBindingOptsResolver): void;
26
26
  export function useCrosshair(opts?: BrontoBindingOptsResolver): void;
27
27
  export function useCommand(opts?: BrontoBindingOptsResolver): void;
28
28
  export function useSources(opts?: BrontoBindingOptsResolver): void;
29
+ export function useSplitter(opts?: BrontoBindingOptsResolver): void;
29
30
  export function useToast(): (message: string, opts?: ToastOpts) => Cleanup;
30
31
  export { applyStoredTheme };
31
32
  export type Cleanup = import("../behaviors/index.js").Cleanup;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"AAiHA;;;;;;sBAMsB;AACtB,wCAHY,CAAC,IAAI,CAAC,EAAE,YAAY,KAAK,OAAO,GAAG,IAAI,SACvC,yBAAyB,GACvB,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;AAIlD,4BADO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,KAAK,OAAO,CACzB;;sBArLtB,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;iCA0BT,uBAAuB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"AAkHA;;;;;;sBAMsB;AACtB,wCAHY,CAAC,IAAI,CAAC,EAAE,YAAY,KAAK,OAAO,GAAG,IAAI,SACvC,yBAAyB,GACvB,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;;sBA1LtB,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"}