@ponchia/ui 0.6.4 → 0.6.6

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.
@@ -0,0 +1,286 @@
1
+ # Frontier primitives
2
+
3
+ This is the strategic memory for Bronto's design-system differentiation. The
4
+ goal is not to out-catalog Radix, Carbon, Atlassian, Fluent, Spectrum, or
5
+ shadcn. Those systems already cover the standard component center: buttons,
6
+ forms, dialogs, tabs, menus, cards, tables, tooltips, badges, navigation,
7
+ loaders, and date inputs.
8
+
9
+ Bronto should instead own the interface layer that makes complex work legible:
10
+ explanation, provenance, relationships, command access, workbench ergonomics,
11
+ generated reports, and durable system state. In short: interfaces that explain
12
+ themselves.
13
+
14
+ ## Boundary
15
+
16
+ The pattern that worked for annotations should stay the rule:
17
+
18
+ - Bronto owns visual grammar, class vocabulary, token use, accessibility
19
+ guidance, pure geometry helpers, and small idempotent behavior kernels.
20
+ - The host owns domain state, data mapping, chart scales, tour step order,
21
+ command execution, persistence, AI/tool orchestration, and announcements that
22
+ need product-specific wording.
23
+ - New surfaces stay opt-in. They should not enter `dist/bronto.css` by default
24
+ unless they are clearly universal chrome.
25
+ - Prefer CSS and markup first. Add JS only when the browser cannot express the
26
+ behavior without measuring, filtering, keyboard state, or pointer tracking.
27
+
28
+ This keeps Bronto useful across Astro, SvelteKit, React, Solid, Qwik, plain
29
+ HTML, and generated static reports without becoming a framework component kit.
30
+
31
+ ## Already aligned in 0.5.0
32
+
33
+ The analytical/generated-report suite is already the first concrete expression
34
+ of this strategy:
35
+
36
+ - `annotations`: subject / connector / note grammar for SVG figures.
37
+ - `legends`: data keys that prevent chart meaning drifting from palette tokens.
38
+ - `marks`: semantic prose evidence and passage brackets.
39
+ - `connectors`: DOMRect leader lines between related UI regions.
40
+ - `spotlight`: the visual language of guided focus without a tour engine.
41
+ - `crosshair`: pointer/ruler/readout surface without chart-domain mapping.
42
+ - `selection`: shared selected/excluded/candidate states without hit-testing.
43
+ - `sources`: citation / source-card / source-list / provenance with a
44
+ trust-state grammar (candidate #1 below — now shipped in 0.5.0).
45
+
46
+ These are intentionally not a chart framework. They are communication
47
+ primitives.
48
+
49
+ ## 2026 scout batch — report & evidence grammar
50
+
51
+ A multi-source scout pass (2026-06-03) surfaced the next concrete batch. All
52
+ four are novel, Baseline-clean on the 2026 floor, and squarely on the
53
+ "explains itself" north star — the report / review / evidence lane. They ship
54
+ as opt-in surfaces (never default `dist/bronto.css`), CSS-and-markup first,
55
+ each with the same host-owns-state boundary that kept the chart renderer out in
56
+ 0.6.0. **All four shipped** — `ui-diff` in PR #97, then `ui-code` / `ui-spark` /
57
+ `ui-sidenote` in PR #100 — opt-in leaves, unreleased on the 0.6.0 package line.
58
+
59
+ ### `ui-diff` — line/row change grammar ✅ shipped
60
+
61
+ A CSS-grid gutter grammar (`ui-diff`, `__row --add/--remove/--context`,
62
+ `__hunk`, `--unified/--split`). The host supplies pre-classified rows; Bronto
63
+ only paints — redundant `::before` +/- sign glyphs (never colour-only), tone
64
+ tints, and optional subgrid alignment that degrades to plain grid. Composes
65
+ with the shipped `ui-compare--2up`. Boundary: all tokenizing, row alignment,
66
+ and hunk computation stay in the host — the moment Bronto parses or aligns rows
67
+ it crosses the line that deleted the bar renderer in 0.6.0. Diff is the most
68
+ explanation-dense surface Bronto does not yet own.
69
+
70
+ ### `ui-code` — fenced-code evidence chrome
71
+
72
+ A static code surface that paints already-tokenized markup (head bar,
73
+ line-number gutter via CSS counters, `.is-add` / `.is-del` / `.is-hl` line
74
+ states) and **never parses**. The host — or Shiki, via the shipped
75
+ `shiki/nothing.json` token-colour theme — supplies the token spans; Bronto owns
76
+ chrome only. Code-as-evidence for changelogs, version history, and generated
77
+ reports; pairs with the `.ui-src` provenance pill and marks. Degrades to a
78
+ plain scrollable `<pre>`.
79
+
80
+ ### `ui-spark` — inline datawords
81
+
82
+ Word-sized inline microcharts (line / bar / tristate / win-loss) for
83
+ trend-in-a-sentence inside reports and dense tables — the inline-series gap the
84
+ scalar `ui-delta` / `ui-num` / `ui-stat` leave open, and one block-level Vega
85
+ will not fill. The host normalises each point to `0..1` (`--v`); Bronto paints
86
+ geometry via inline SVG + custom properties + `currentColor`. No JS,
87
+ SSR-static, print-survivable. Boundary: Bronto refuses raw values and
88
+ min/max/scale computation, and every spark carries a host-supplied text / aria
89
+ equivalent (a bare sparkline is opaque to AT).
90
+
91
+ ### `ui-sidenote` / `ui-marginnote` — marginal explanation
92
+
93
+ Numbered margin sidenotes plus unnumbered marginnotes with CSS-counter
94
+ numbering and zero-JS responsive collapse (the Tufte `:checked` pattern);
95
+ degrades to an inline aside on narrow viewports and a footnote under
96
+ `@media print`. The channel for evidence, caveats, and provenance asides that
97
+ do not belong in the main column. Scope it as typographic margin notes,
98
+ reconciled with the existing `report.css` `__footnotes` numbering — not a
99
+ second backref engine.
100
+
101
+ ## 2026 scout batch #2 — explanation & provenance cluster ✅ shipped
102
+
103
+ A second scout pass (2026-06-04) ranked the next five and they all shipped as
104
+ opt-in leaves (unreleased on the 0.6.0 line). All clear web-native + fit +
105
+ leverage, and sit dead-centre on the explanation / provenance / orientation
106
+ lanes — not component parity.
107
+
108
+ ### `ui-textref` — deep-link to the cited sentence ✅ shipped
109
+
110
+ `@ponchia/ui/css/textref.css`. A citation whose `href` is a URL Text Fragment
111
+ (`#…:~:text=`): the browser scrolls to + highlights the exact quoted text, and
112
+ Bronto owns the on-brand `::target-text` paint (`--textref-highlight`). The
113
+ cheapest high-leverage item in the scout — extends the `sources.css` trust layer
114
+ from "label a source" to "point inside it". The host builds the fragment URL (a
115
+ three-line pure encoder, documented); no kernel. Degrades cleanly where Text
116
+ Fragments are unsupported.
117
+
118
+ ### `ui-bullet` — Stephen-Few bullet graph ✅ shipped
119
+
120
+ `@ponchia/ui/css/bullet.css`. Measure bar + target tick + 2–3 grayscale
121
+ qualitative bands — the canonical SLO / error-budget figure `ui-meter` cannot
122
+ encode. Same host-normalises-to-0..1 contract as `ui-spark` (`--v` measure,
123
+ `--t` target, `--band-lo`/`--band-hi` boundaries; `ui.bulletMeasure({ tone })`).
124
+ Few designed it grayscale, which is exactly the Nothing palette. Requires a
125
+ host-written `role="img"` + `aria-label`.
126
+
127
+ ### `ui-term` / `ui-glossary` — inline glossary ✅ shipped
128
+
129
+ `@ponchia/ui/css/term.css`. The accessible upgrade of the touch/keyboard-broken
130
+ `abbr[title]`: a `ui-term` `<button popovertarget>` whose `ui-def` definition is
131
+ a native `[popover]`, plus an end-of-document `ui-glossary` `<dl>`. The native
132
+ popover pairing gives open/Esc/light-dismiss for free — no kernel. Popovers don't
133
+ print, so the printed doc leans on the glossary block.
134
+
135
+ ### `ui-toc` — scrollspy table of contents ✅ shipped
136
+
137
+ `@ponchia/ui/css/toc.css`. A sticky contents rail (`--toc-top`) whose active
138
+ entry keys on `aria-current="true"`. CSS can't know the in-view section, so the
139
+ host mirrors it — statically, or with a small copy-paste IntersectionObserver
140
+ (no kernel ships). Degrades to a plain anchored list.
141
+
142
+ ### `ui-tree` — hierarchy outline ✅ shipped
143
+
144
+ `@ponchia/ui/css/tree.css`. A depth-indented outline on nested native
145
+ `<details>` (`ui-tree__branch`/`__leaf`/`__summary`/`__label`; add `name` for an
146
+ exclusive-accordion group). Composes the disclosure grammar `ui-accordion` owns —
147
+ it does not reinvent it. A11y honesty: a `<details>` group is a disclosure group,
148
+ NOT an ARIA `tree`; the roving-focus kernel is deferred behind a real consumer
149
+ (e.g. a workbench file pane).
150
+
151
+ ## Next strong candidates
152
+
153
+ ### 1. Source, citation, and provenance UI — ✅ shipped in 0.5.0
154
+
155
+ Shipped as `@ponchia/ui/css/sources.css` (`ui-citation`/`ui-source-card`/
156
+ `ui-source-list`/`ui-provenance` + the cross-cutting `ui-src--*` trust states),
157
+ matching the surface below. The optional `initSources` behavior now adds
158
+ source-card focus, a temporary `.is-source-active` cue, and lightweight preview
159
+ metadata over existing citation/source IDs.
160
+
161
+ Why it matters: AI output, generated reports, audit views, docs, and operational
162
+ tools all need to answer "where did this come from?" Normal UI kits have tags
163
+ and footnotes, but not a trust grammar. The shipped surface and its trust-state
164
+ vocabulary are documented with the component; richer preview popovers remain
165
+ host-owned.
166
+
167
+ ### 2. Lifecycle and system-state UI — 🟡 `ui-state` family shipped in 0.5.0
168
+
169
+ Shipped as `@ponchia/ui/css/state.css` (`ui-state` + the canonical state matrix
170
+ + `ui-syncbar`), matching the "good first build" below. `ui-job` (background
171
+ progress) and `ui-conflict` (resolution affordances) remain deferred until a
172
+ consumer needs them; `ui-review-state` is covered by the reviewed/needs-review
173
+ state modifiers.
174
+
175
+ Why it matters: serious apps spend a lot of time in states like saving, saved,
176
+ queued, offline, stale, retrying, conflicted, locked, reviewed, and background
177
+ job running. These states are usually improvised per product, so even good apps
178
+ feel inconsistent. Still deferred: `ui-job` (background progress) and
179
+ `ui-conflict` (resolution affordances), each until a consumer needs it.
180
+
181
+ ### 3. Command-first UI — ✅ shipped in 0.5.0
182
+
183
+ The keyboard-hint primitive (`.ui-shortcut` + `.ui-shortcut__sep` over `.ui-kbd`,
184
+ core chrome) landed first, then the `ui-command` palette: the
185
+ `@ponchia/ui/css/command.css` shell + the `initCommand` `data-bronto-command`
186
+ behavior (filter, roving focus, `bronto:command:select`/`close`) + `useCommand`
187
+ bindings. The host still owns the action registry and execution — Bronto only
188
+ filters and navigates.
189
+
190
+ Why it matters: command palettes turn a product from a page collection into a
191
+ tool. Existing libraries such as cmdk and kbar are good, but Bronto can own the
192
+ design-system contract: shortcuts, actions, groups, disabled reasons, context,
193
+ and command result feedback. The host still owns the action registry and
194
+ execution; global Cmd/Ctrl+K stays opt-in by design.
195
+
196
+ ### 4. Workbench UI — 🟡 inspector / property / selectionbar shipped in 0.5.0
197
+
198
+ Shipped as `@ponchia/ui/css/workbench.css` (`ui-inspector`, `ui-property`,
199
+ `ui-selectionbar`) — the low-risk CSS core below. Resizable split panes
200
+ (`ui-splitter`, an ARIA window-splitter behavior) and drag handles remain
201
+ deferred until a consumer needs them.
202
+
203
+ Why it matters: real tools need inspectors, object action bars, split panes,
204
+ resize handles, property rows, dense trees, and selected-object affordances.
205
+ Generic UI kits tend to stop at cards/tables/forms, leaving every app to build
206
+ its own half-consistent workbench. Still open: a `ui-splitter` ARIA
207
+ window-splitter behavior (focusable separator, `aria-valuemin/max/now`,
208
+ arrow-key resize) and drag/drop affordances — both deferred, and Bronto should
209
+ style drag handles, not become a drag-and-drop framework.
210
+
211
+ ### 5. Generated-content and AI trust primitives — 🟡 shipped in 0.5.0
212
+
213
+ Shipped as `@ponchia/ui/css/generated.css` (`ui-generated`, `ui-origin-label`,
214
+ `ui-reasoning`, `ui-tool-log` / `ui-tool-call`) — the origin/provenance labels,
215
+ generated-content wrapper, and tool-call log of the "good first build" below.
216
+ Chat-thread components and a `ui-confidence` widget are intentionally not shipped.
217
+
218
+ Why it matters: AI interfaces are becoming common, but most UI systems either
219
+ ship chat bubbles or nothing. Bronto should not become a chat framework. It
220
+ should own the trust surfaces around generated content. The host still owns model
221
+ metadata, tool execution, traces, redaction, and safety; chat-thread components
222
+ and a `ui-confidence` widget are intentionally not shipped (never fabricate a
223
+ precision signal the product does not have).
224
+
225
+ ## Priority
226
+
227
+ The CSS cores of candidates 1–5 shipped in 0.5.0, the 2026 scout batch shipped
228
+ in PRs #97/#100, and scout batch #2 (textref / bullet / term / toc / tree)
229
+ shipped 2026-06-04.
230
+
231
+ **The proven lane is report / provenance / explanation** — it is the only lane
232
+ with a real consumer (LLM-authored reports). The command, workbench, and
233
+ durable-state lanes shipped their CSS cores and have had **no non-demo
234
+ consumer since**; their follow-ons are demand-gated, not queued. Active work
235
+ is therefore consolidation of the report lane (hub routing, print/PDF
236
+ fidelity, consumer-contract gates), not new surfaces.
237
+
238
+ ### Report-lane candidates (build only after the routing hub carries them)
239
+
240
+ From the 2026-06-09 local scout — kept on merit, deliberately NOT started
241
+ until the reporting.md routing/adoption pass has landed (shipping more leaves
242
+ into an unrouted hub repeats the discoverability gap):
243
+
244
+ 1. `ui-interval` — honest low–high uncertainty span + ± chip, inline in
245
+ reports; the error-bar grammar generic kits never ship.
246
+ 2. `ui-clamp` — N-line clamp + fade + native show-more for claim-basis and
247
+ source excerpts (`-webkit-line-clamp` + `mask-image` + `<details>`).
248
+ 3. `ui-highlights` — cited-evidence / search-hit spans painted from host
249
+ Ranges via the CSS Custom Highlight API (progressive enhancement; clean
250
+ no-op below the floor).
251
+
252
+ ### Dormant (build with the first real app consumer, not before)
253
+
254
+ - `ui-job` / `ui-conflict` lifecycle surfaces (candidate 2).
255
+ - `ui-splitter` ARIA window-splitter behavior + drag affordances
256
+ (candidate 4), which is also the gating consumer for `ui-tree`'s deferred
257
+ roving-focus tree kernel.
258
+ - Any command/workbench follow-ons beyond the shipped CSS cores.
259
+
260
+ Dormant items stay gated on a real consumer needing them. This posture keeps
261
+ Bronto differentiated while staying inside its core philosophy: small,
262
+ framework-agnostic primitives that make complex interfaces clearer.
263
+
264
+ ## Inspiration watchlist
265
+
266
+ These are examples of the kind of older or under-supported work worth mining for
267
+ ideas. They are not dependency recommendations; the useful part is the shape of
268
+ the primitive, not the implementation stack.
269
+
270
+ | Project | Useful idea | Bronto-shaped lesson |
271
+ | --- | --- | --- |
272
+ | Susie Lu `d3-annotation` | Subject / connector / note grammar for explaining SVG figures. | Keep annotation as a grammar, not a chart engine or editor. |
273
+ | Susie Lu `d3-legend` | Colour, size, and symbol legends as reusable figure keys. | Legends belong in the design system because they explain visual encodings. |
274
+ | Twitter `labella.js` | One-dimensional label collision avoidance for timelines and dense axes. | A tiny `declutterLabels` helper can be more valuable than another component. |
275
+ | `D3-Labeler` / `d3fc-label-layout` | Greedy/simulated-annealing label placement. | Direct labels need layout helpers; host still owns chart scales and data. |
276
+ | `d3-lasso` | Possible / not-possible / selected / not-selected states while drawing a region. | Bronto should own selection vocabulary and maybe region visuals, not hit-testing. |
277
+ | `leader-line` / `react-xarrows` | Lines and arrows between DOM elements. | DOMRect connectors are broadly useful, but should be styleable and token-bound. |
278
+ | LinkedIn `hopscotch` / `chardin.js` | Guided tours as target + note + step metadata. | Bronto should own spotlight visuals, not the tour state machine. |
279
+ | `Waypoints` / `gumshoe` | Scroll-triggered section awareness and scrollspy navigation. | Long documents and reports may need section-progress/navigation affordances. |
280
+ | `mark.js`, `Rangy`, `TextHighlighter` | Search hits, user text selections, persistent text highlights. | Evidence/source marks need careful semantics around ranges and generated content. |
281
+ | `Mousetrap` / `Keypress` | Keyboard shortcut grammar and key sequences. | Command-first UI needs shortcut display and action dispatch boundaries. |
282
+ | `Split.js` | Small, unopinionated resizable split views. | Workbench panes are worth styling; behavior must follow accessible splitter rules. |
283
+ | jQuery Steps / old wizard plugins | Multi-step flows with progress, validation, and branching. | If Bronto adds stepper/wizard UI, it should be state vocabulary first. |
284
+ | `progressbar.js` | Lightweight progress shapes and determinate/indeterminate motion. | Lifecycle/job UI should make long-running work persistent and legible. |
285
+ | `react-json-view` / old JSON viewers | Inspectable structured data with collapse/copy/path affordances. | Generated/tool output needs compact inspector primitives without a React lock-in. |
286
+ | old diff viewers / `jsdifflib` | Side-by-side and inline change explanation. | Becoming `ui-diff` (2026 batch): Bronto paints the row/gutter grammar, the host pre-classifies rows — parsing and alignment stay outside Bronto. |
@@ -0,0 +1,263 @@
1
+ <!-- @ponchia/ui - GENERATED from package.json by scripts/gen-package-contract.mjs.
2
+ Do not edit by hand; run `npm run package-contract:build`.
3
+ Drift-checked in CI through check:fresh. -->
4
+
5
+ # Package Contract
6
+
7
+ This is the manifest-facing contract for `@ponchia/ui`: every exported
8
+ subpath, every `files` allowlist entry, and the committed generated-artifact
9
+ pipeline. It complements [stability.md](./stability.md), which defines the
10
+ semantic versioning contract for the surfaces listed here.
11
+
12
+ ## Contract Summary
13
+
14
+ | Surface group | Stability | Contract |
15
+ | --- | --- | --- |
16
+ | CSS root and `dist/bronto.css` | Stable | CSS-only default bundle. CSS side-effect imports are supported in CSS-aware bundlers; Node/runtime JS root imports are not. |
17
+ | CSS leaves | Stable additive | Direct leaves are generated as layered `dist/css/*.css` exports; raw unlayered source leaves are explicit escape hatches under `./css/unlayered/*`. |
18
+ | JS subpaths | Stable | ESM-only public subpaths. Runtime behavior is SSR-safe and dependency-free unless a framework binding declares an optional peer. |
19
+ | Machine-readable data | Stable additive | JSON/data exports are for non-JS hosts, validators, renderers, and offline agents. Additive fields are allowed within a compatible minor. |
20
+ | Shipped docs | Stable paths | Curated Markdown/text docs ship inside the npm tarball for offline readers. Generated docs are regenerated and drift-checked. |
21
+ | Fonts | Stable path pattern | Doto assets ship under `fonts/*` with their OFL license. |
22
+ | Repo tooling, demos, tests, examples, workflows | Internal | Useful for development and learning, but not shipped runtime API unless a path is explicitly exported below. |
23
+
24
+ ## Export Matrix
25
+
26
+ | Export | Target | Group | Stability | Contract |
27
+ | --- | --- | --- | --- | --- |
28
+ | `.` | style: `./dist/bronto.css`<br>default: `./dist/bronto.css` | CSS root bundle | Stable | CSS-only package root. Supported as a CSS side-effect import in CSS-aware bundlers; not a Node/runtime JS entrypoint. |
29
+ | `./dist/bronto.css` | `./dist/bronto.css` | Flattened CSS bundle | Stable path | The prebuilt default stylesheet. Generated from css/core.css and byte-checked by check:dist. |
30
+ | `./css` | `./css/core.css` | CSS source fan-out | Stable path | Bundler entrypoint for css/core.css. It preserves source @import boundaries and layer behavior. |
31
+ | `./css/core.css` | `./css/core.css` | CSS source fan-out | Stable path | Source fan-out file for consumers that want the authored leaf graph through a bundler. |
32
+ | `./css/tokens.css` | `./dist/css/tokens.css` | Bundled layered CSS leaf | Stable additive | Generated layered direct-import leaf. Also included in dist/bronto.css. |
33
+ | `./css/fonts.css` | `./dist/css/fonts.css` | Bundled layered CSS leaf | Stable additive | Generated layered direct-import leaf. Also included in dist/bronto.css. |
34
+ | `./css/base.css` | `./dist/css/base.css` | Bundled layered CSS leaf | Stable additive | Generated layered direct-import leaf. Also included in dist/bronto.css. |
35
+ | `./css/motion.css` | `./dist/css/motion.css` | Bundled layered CSS leaf | Stable additive | Generated layered direct-import leaf. Also included in dist/bronto.css. |
36
+ | `./css/dots.css` | `./dist/css/dots.css` | Bundled layered CSS leaf | Stable additive | Generated layered direct-import leaf. Also included in dist/bronto.css. |
37
+ | `./css/navigation.css` | `./dist/css/navigation.css` | Bundled layered CSS leaf | Stable additive | Generated layered direct-import leaf. Also included in dist/bronto.css. |
38
+ | `./css/site.css` | `./dist/css/site.css` | Bundled layered CSS leaf | Stable additive | Generated layered direct-import leaf. Also included in dist/bronto.css. |
39
+ | `./css/content.css` | `./dist/css/content.css` | Bundled layered CSS leaf | Stable additive | Generated layered direct-import leaf. Also included in dist/bronto.css. |
40
+ | `./css/primitives.css` | `./dist/css/primitives.css` | Bundled layered CSS leaf | Stable additive | Generated layered direct-import leaf. Also included in dist/bronto.css. |
41
+ | `./css/forms.css` | `./dist/css/forms.css` | Bundled layered CSS leaf | Stable additive | Generated layered direct-import leaf. Also included in dist/bronto.css. |
42
+ | `./css/feedback.css` | `./dist/css/feedback.css` | Bundled layered CSS leaf | Stable additive | Generated layered direct-import leaf. Also included in dist/bronto.css. |
43
+ | `./css/overlay.css` | `./dist/css/overlay.css` | Bundled layered CSS leaf | Stable additive | Generated layered direct-import leaf. Also included in dist/bronto.css. |
44
+ | `./css/disclosure.css` | `./dist/css/disclosure.css` | Bundled layered CSS leaf | Stable additive | Generated layered direct-import leaf. Also included in dist/bronto.css. |
45
+ | `./css/table.css` | `./dist/css/table.css` | Bundled layered CSS leaf | Stable additive | Generated layered direct-import leaf. Also included in dist/bronto.css. |
46
+ | `./css/app.css` | `./dist/css/app.css` | Bundled layered CSS leaf | Stable additive | Generated layered direct-import leaf. Also included in dist/bronto.css. |
47
+ | `./css/skins.css` | `./dist/css/skins.css` | Opt-in layered CSS leaf | Stable additive | Generated layered direct-import leaf. Opt-in and not included in dist/bronto.css. |
48
+ | `./css/dataviz.css` | `./dist/css/dataviz.css` | Opt-in layered CSS leaf | Stable additive | Generated layered direct-import leaf. Opt-in and not included in dist/bronto.css. |
49
+ | `./css/report.css` | `./dist/css/report.css` | Opt-in layered CSS leaf | Stable additive | Generated layered direct-import leaf. Opt-in and not included in dist/bronto.css. |
50
+ | `./css/annotations.css` | `./dist/css/annotations.css` | Opt-in layered CSS leaf | Stable additive | Generated layered direct-import leaf. Opt-in and not included in dist/bronto.css. |
51
+ | `./css/legend.css` | `./dist/css/legend.css` | Opt-in layered CSS leaf | Stable additive | Generated layered direct-import leaf. Opt-in and not included in dist/bronto.css. |
52
+ | `./css/marks.css` | `./dist/css/marks.css` | Opt-in layered CSS leaf | Stable additive | Generated layered direct-import leaf. Opt-in and not included in dist/bronto.css. |
53
+ | `./css/connectors.css` | `./dist/css/connectors.css` | Opt-in layered CSS leaf | Stable additive | Generated layered direct-import leaf. Opt-in and not included in dist/bronto.css. |
54
+ | `./css/spotlight.css` | `./dist/css/spotlight.css` | Opt-in layered CSS leaf | Stable additive | Generated layered direct-import leaf. Opt-in and not included in dist/bronto.css. |
55
+ | `./css/crosshair.css` | `./dist/css/crosshair.css` | Opt-in layered CSS leaf | Stable additive | Generated layered direct-import leaf. Opt-in and not included in dist/bronto.css. |
56
+ | `./css/selection.css` | `./dist/css/selection.css` | Opt-in layered CSS leaf | Stable additive | Generated layered direct-import leaf. Opt-in and not included in dist/bronto.css. |
57
+ | `./css/sources.css` | `./dist/css/sources.css` | Opt-in layered CSS leaf | Stable additive | Generated layered direct-import leaf. Opt-in and not included in dist/bronto.css. |
58
+ | `./css/diff.css` | `./dist/css/diff.css` | Opt-in layered CSS leaf | Stable additive | Generated layered direct-import leaf. Opt-in and not included in dist/bronto.css. |
59
+ | `./css/code.css` | `./dist/css/code.css` | Opt-in layered CSS leaf | Stable additive | Generated layered direct-import leaf. Opt-in and not included in dist/bronto.css. |
60
+ | `./css/spark.css` | `./dist/css/spark.css` | Opt-in layered CSS leaf | Stable additive | Generated layered direct-import leaf. Opt-in and not included in dist/bronto.css. |
61
+ | `./css/sidenote.css` | `./dist/css/sidenote.css` | Opt-in layered CSS leaf | Stable additive | Generated layered direct-import leaf. Opt-in and not included in dist/bronto.css. |
62
+ | `./css/textref.css` | `./dist/css/textref.css` | Opt-in layered CSS leaf | Stable additive | Generated layered direct-import leaf. Opt-in and not included in dist/bronto.css. |
63
+ | `./css/bullet.css` | `./dist/css/bullet.css` | Opt-in layered CSS leaf | Stable additive | Generated layered direct-import leaf. Opt-in and not included in dist/bronto.css. |
64
+ | `./css/term.css` | `./dist/css/term.css` | Opt-in layered CSS leaf | Stable additive | Generated layered direct-import leaf. Opt-in and not included in dist/bronto.css. |
65
+ | `./css/toc.css` | `./dist/css/toc.css` | Opt-in layered CSS leaf | Stable additive | Generated layered direct-import leaf. Opt-in and not included in dist/bronto.css. |
66
+ | `./css/tree.css` | `./dist/css/tree.css` | Opt-in layered CSS leaf | Stable additive | Generated layered direct-import leaf. Opt-in and not included in dist/bronto.css. |
67
+ | `./css/state.css` | `./dist/css/state.css` | Opt-in layered CSS leaf | Stable additive | Generated layered direct-import leaf. Opt-in and not included in dist/bronto.css. |
68
+ | `./css/generated.css` | `./dist/css/generated.css` | Opt-in layered CSS leaf | Stable additive | Generated layered direct-import leaf. Opt-in and not included in dist/bronto.css. |
69
+ | `./css/workbench.css` | `./dist/css/workbench.css` | Opt-in layered CSS leaf | Stable additive | Generated layered direct-import leaf. Opt-in and not included in dist/bronto.css. |
70
+ | `./css/command.css` | `./dist/css/command.css` | Opt-in layered CSS leaf | Stable additive | Generated layered direct-import leaf. Opt-in and not included in dist/bronto.css. |
71
+ | `./css/analytical.css` | `./dist/css/analytical.css` | Opt-in CSS roll-up | Stable additive | Generated layered roll-up of the analytical leaves. Not included in the default bundle. |
72
+ | `./css/unlayered/tokens.css` | `./css/tokens.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
73
+ | `./css/unlayered/fonts.css` | `./css/fonts.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
74
+ | `./css/unlayered/base.css` | `./css/base.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
75
+ | `./css/unlayered/motion.css` | `./css/motion.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
76
+ | `./css/unlayered/dots.css` | `./css/dots.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
77
+ | `./css/unlayered/navigation.css` | `./css/navigation.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
78
+ | `./css/unlayered/site.css` | `./css/site.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
79
+ | `./css/unlayered/content.css` | `./css/content.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
80
+ | `./css/unlayered/primitives.css` | `./css/primitives.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
81
+ | `./css/unlayered/forms.css` | `./css/forms.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
82
+ | `./css/unlayered/feedback.css` | `./css/feedback.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
83
+ | `./css/unlayered/overlay.css` | `./css/overlay.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
84
+ | `./css/unlayered/disclosure.css` | `./css/disclosure.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
85
+ | `./css/unlayered/table.css` | `./css/table.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
86
+ | `./css/unlayered/app.css` | `./css/app.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
87
+ | `./css/unlayered/skins.css` | `./css/skins.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
88
+ | `./css/unlayered/dataviz.css` | `./css/dataviz.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
89
+ | `./css/unlayered/report.css` | `./css/report.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
90
+ | `./css/unlayered/annotations.css` | `./css/annotations.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
91
+ | `./css/unlayered/legend.css` | `./css/legend.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
92
+ | `./css/unlayered/marks.css` | `./css/marks.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
93
+ | `./css/unlayered/connectors.css` | `./css/connectors.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
94
+ | `./css/unlayered/spotlight.css` | `./css/spotlight.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
95
+ | `./css/unlayered/crosshair.css` | `./css/crosshair.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
96
+ | `./css/unlayered/selection.css` | `./css/selection.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
97
+ | `./css/unlayered/sources.css` | `./css/sources.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
98
+ | `./css/unlayered/diff.css` | `./css/diff.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
99
+ | `./css/unlayered/code.css` | `./css/code.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
100
+ | `./css/unlayered/spark.css` | `./css/spark.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
101
+ | `./css/unlayered/sidenote.css` | `./css/sidenote.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
102
+ | `./css/unlayered/textref.css` | `./css/textref.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
103
+ | `./css/unlayered/bullet.css` | `./css/bullet.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
104
+ | `./css/unlayered/term.css` | `./css/term.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
105
+ | `./css/unlayered/toc.css` | `./css/toc.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
106
+ | `./css/unlayered/tree.css` | `./css/tree.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
107
+ | `./css/unlayered/state.css` | `./css/state.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
108
+ | `./css/unlayered/generated.css` | `./css/generated.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
109
+ | `./css/unlayered/workbench.css` | `./css/workbench.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
110
+ | `./css/unlayered/command.css` | `./css/command.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
111
+ | `./tokens` | types: `./tokens/index.d.ts`<br>default: `./tokens/index.js` | Design tokens JS | Stable names/roles | ESM token registry and helpers. Token names and documented roles are public; exact values may tune before 1.0. |
112
+ | `./vscode.css-custom-data.json` | `./classes/vscode.css-custom-data.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. |
113
+ | `./tokens.json` | `./tokens/index.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. |
114
+ | `./tokens.dtcg.json` | `./tokens/tokens.dtcg.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. |
115
+ | `./tokens/resolved.json` | `./tokens/resolved.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. |
116
+ | `./shiki/nothing.json` | `./shiki/nothing.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. |
117
+ | `./llms.txt` | `./llms.txt` | Agent entrypoint | Stable path | Plain-text orientation file shipped for offline agents and tooling. |
118
+ | `./docs/architecture.md` | `./docs/architecture.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
119
+ | `./docs/reference.md` | `./docs/reference.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
120
+ | `./docs/theming.md` | `./docs/theming.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
121
+ | `./docs/contrast.md` | `./docs/contrast.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
122
+ | `./docs/stability.md` | `./docs/stability.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
123
+ | `./docs/package-contract.md` | `./docs/package-contract.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
124
+ | `./docs/usage.md` | `./docs/usage.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
125
+ | `./docs/frontier-primitives.md` | `./docs/frontier-primitives.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
126
+ | `./docs/reporting.md` | `./docs/reporting.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
127
+ | `./docs/dots.md` | `./docs/dots.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
128
+ | `./docs/glyphs.md` | `./docs/glyphs.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
129
+ | `./docs/mermaid.md` | `./docs/mermaid.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
130
+ | `./docs/d2.md` | `./docs/d2.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
131
+ | `./docs/vega.md` | `./docs/vega.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
132
+ | `./docs/annotations.md` | `./docs/annotations.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
133
+ | `./docs/legends.md` | `./docs/legends.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
134
+ | `./docs/marks.md` | `./docs/marks.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
135
+ | `./docs/connectors.md` | `./docs/connectors.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
136
+ | `./docs/spotlight.md` | `./docs/spotlight.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
137
+ | `./docs/crosshair.md` | `./docs/crosshair.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
138
+ | `./docs/selection.md` | `./docs/selection.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
139
+ | `./docs/sources.md` | `./docs/sources.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
140
+ | `./docs/diff.md` | `./docs/diff.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
141
+ | `./docs/code.md` | `./docs/code.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
142
+ | `./docs/spark.md` | `./docs/spark.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
143
+ | `./docs/sidenote.md` | `./docs/sidenote.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
144
+ | `./docs/textref.md` | `./docs/textref.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
145
+ | `./docs/bullet.md` | `./docs/bullet.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
146
+ | `./docs/term.md` | `./docs/term.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
147
+ | `./docs/toc.md` | `./docs/toc.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
148
+ | `./docs/tree.md` | `./docs/tree.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
149
+ | `./docs/state.md` | `./docs/state.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
150
+ | `./docs/generated.md` | `./docs/generated.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
151
+ | `./docs/workbench.md` | `./docs/workbench.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
152
+ | `./docs/command.md` | `./docs/command.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
153
+ | `./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. |
154
+ | `./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. |
155
+ | `./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. |
156
+ | `./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. |
157
+ | `./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. |
158
+ | `./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. |
159
+ | `./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. |
160
+ | `./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. |
161
+ | `./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. |
162
+ | `./react` | types: `./react/index.d.ts`<br>default: `./react/index.js` | Framework binding JS | Stable thin adapter | Optional peer wrapper over vanilla behaviors. It owns lifecycle hookup, not markup or component state. |
163
+ | `./solid` | types: `./solid/index.d.ts`<br>default: `./solid/index.js` | Framework binding JS | Stable thin adapter | Optional peer wrapper over vanilla behaviors. It owns lifecycle hookup, not markup or component state. |
164
+ | `./qwik` | types: `./qwik/index.d.ts`<br>default: `./qwik/index.js` | Framework binding JS | Stable thin adapter | Optional peer wrapper over vanilla behaviors. It owns lifecycle hookup, not markup or component state. |
165
+ | `./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. |
166
+ | `./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. |
167
+ | `./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. |
168
+ | `./mermaid` | types: `./tokens/mermaid.d.ts`<br>default: `./tokens/mermaid.js` | Renderer/theme helper JS | Stable additive | ESM theme data/helpers for opt-in skins, chart palettes, and external renderers. |
169
+ | `./mermaid.json` | `./tokens/mermaid.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. |
170
+ | `./d2` | types: `./tokens/d2.d.ts`<br>default: `./tokens/d2.js` | Renderer/theme helper JS | Stable additive | ESM theme data/helpers for opt-in skins, chart palettes, and external renderers. |
171
+ | `./d2.json` | `./tokens/d2.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. |
172
+ | `./vega` | types: `./tokens/vega.d.ts`<br>default: `./tokens/vega.js` | Renderer/theme helper JS | Stable additive | ESM theme data/helpers for opt-in skins, chart palettes, and external renderers. |
173
+ | `./vega.json` | `./tokens/vega.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. |
174
+ | `./fonts/*` | `./fonts/*` | Vendored font asset glob | Stable path pattern | Doto font files and license. Font file names are shipped assets, not JS APIs. |
175
+
176
+ ## Shipped Files Allowlist
177
+
178
+ `package.json` controls the npm tarball with this `files` list. npm also
179
+ always includes `package.json`, `README.md`, `LICENSE`, and
180
+ `CHANGELOG.md`; `check:pack` verifies no dev-only path leaks.
181
+
182
+ | Path | Kind | Contract |
183
+ | --- | --- | --- |
184
+ | `css` | Source CSS directory | Public source leaves. Mostly hand-authored; generated exceptions are called out in the provenance table. |
185
+ | `dist` | Generated CSS directory | Prebuilt layered bundle and leaves. Never hand-edit. |
186
+ | `fonts` | Vendored assets | Doto woff2 files plus OFL license. |
187
+ | `tokens` | Mixed source/generated data | Token source plus generated JSON, declarations, and renderer theme data. |
188
+ | `classes` | Mixed source/generated data | Class recipe source plus generated JSON/declarations/custom-data. |
189
+ | `behaviors` | Authored public JS directory | ESM source shipped as-is; adjacent declarations/maps are generated. |
190
+ | `glyphs` | Authored public JS directory | Glyph registry/renderers shipped as JS; declarations are generated. |
191
+ | `annotations` | Authored public JS directory | ESM source shipped as-is; adjacent declarations/maps are generated. |
192
+ | `connectors` | Authored public JS directory | ESM source shipped as-is; adjacent declarations/maps are generated. |
193
+ | `react` | Authored public JS directory | ESM source shipped as-is; adjacent declarations/maps are generated. |
194
+ | `solid` | Authored public JS directory | ESM source shipped as-is; adjacent declarations/maps are generated. |
195
+ | `qwik` | Authored public JS directory | ESM source shipped as-is; adjacent declarations/maps are generated. |
196
+ | `shiki` | Theme data | Shiki theme JSON on the governed palette. |
197
+ | `llms.txt` | Agent entrypoint | Shipped plain-text orientation for offline LLM/agent consumers. |
198
+ | `CHANGELOG.md` | Release record | Shipped historical release notes. |
199
+ | `MIGRATIONS.json` | Migration data | Shipped rename/migration map for tooling. |
200
+ | `docs/architecture.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
201
+ | `docs/reference.md` | Generated documentation | Committed generated doc; never hand-edit. |
202
+ | `docs/theming.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
203
+ | `docs/contrast.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
204
+ | `docs/stability.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
205
+ | `docs/package-contract.md` | Generated documentation | Committed generated doc; never hand-edit. |
206
+ | `docs/usage.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
207
+ | `docs/frontier-primitives.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
208
+ | `docs/reporting.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
209
+ | `docs/dots.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
210
+ | `docs/glyphs.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
211
+ | `docs/mermaid.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
212
+ | `docs/d2.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
213
+ | `docs/vega.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
214
+ | `docs/annotations.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
215
+ | `docs/legends.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
216
+ | `docs/marks.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
217
+ | `docs/connectors.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
218
+ | `docs/spotlight.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
219
+ | `docs/crosshair.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
220
+ | `docs/selection.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
221
+ | `docs/sources.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
222
+ | `docs/diff.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
223
+ | `docs/code.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
224
+ | `docs/spark.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
225
+ | `docs/sidenote.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
226
+ | `docs/textref.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
227
+ | `docs/bullet.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
228
+ | `docs/term.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
229
+ | `docs/toc.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
230
+ | `docs/tree.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
231
+ | `docs/state.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
232
+ | `docs/generated.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
233
+ | `docs/workbench.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
234
+ | `docs/command.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
235
+ | `docs/adr/0001-color-system.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
236
+ | `docs/adr/0002-scope-and-2026-baseline.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
237
+ | `docs/adr/0003-theme-model.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
238
+
239
+ ## Artifact Provenance
240
+
241
+ Generated files are committed so the package can publish without a consumer-side
242
+ build step. Edit the source of truth, run the listed generator, and commit the
243
+ result. The listed gates are part of `npm run check`.
244
+
245
+ | Surface | Source of truth | Generated outputs | Generator | Gate | Note |
246
+ | --- | --- | --- | --- | --- | --- |
247
+ | Package manifest | `package.json` | docs/package-contract.md | `npm run package-contract:build` | check:fresh | The complete export/file matrix in this document is generated from the manifest. |
248
+ | Token model | `tokens/index.js` | css/tokens.css; tokens/index.json; tokens/tokens.dtcg.json; tokens/resolved.json; tokens/index.d.ts | `npm run tokens:css:build; tokens:build; dtcg:build; resolved:build; dts:build` | check:fresh; check:contrast | Token names/roles are public. Resolved values are visual tuning before 1.0. |
249
+ | Class registry | `classes/index.js plus css/*.css selectors` | classes/classes.json; classes/index.d.ts; classes/vscode.css-custom-data.json; docs/reference.md | `npm run classes:json:build; dts:build; vscode:build; reference:build` | check:fresh; check:classes; check:contract | The typed registry, JSON vocabulary, and generated reference stay aligned with real selectors. |
250
+ | Authored CSS graph | `css/core.css plus css/*.css leaves` | dist/bronto.css; dist/css/*.css (40 layered outputs) | `npm run dist:build` | check:dist; check:exports | Default bundle and direct layered leaf imports are generated from authored CSS and size-gated. |
251
+ | JSDoc-authored public JS | `behaviors/; annotations/; connectors/; react/; solid/; qwik/` | adjacent *.d.ts and *.d.ts.map files | `npm run dts:emit` | check:dts-emit; check:types; check:attw; check:publint | Declarations are emitted from the shipped JS, not separately maintained. |
252
+ | Glyph registry | `glyphs/glyphs.js` | glyphs/glyphs.d.ts | `npm run glyphs:build` | check:glyphs; npm test | Glyph names and render options are public. The registry stays sorted and type-covered. |
253
+ | Display colorways | `tokens/skins.js` | css/skins.css; tokens/skins.d.ts | `npm run skins:build` | check:skins; check:contrast | Skins are opt-in root-level choices and never part of dist/bronto.css. |
254
+ | Chart palette | `tokens/charts.js` | css/dataviz.css; tokens/charts.json; tokens/charts.d.ts | `npm run charts:build` | check:charts | Data-viz colors are opt-in, CVD-gated, and never UI chrome. |
255
+ | External renderer themes | `tokens/mermaid.js; tokens/d2.js; tokens/vega.js` | tokens/{mermaid,d2,vega}.{js,json,d.ts} | `npm run mermaid:build; d2:build; vega:build` | check:mermaid; check:d2; check:vega | Renderer configs use resolved colors because the external renderers cannot consume CSS variables directly. |
256
+ | Contrast report | `tokens/resolved.json; tokens/skins.js; tokens/charts.js` | docs/contrast.md | `npm run contrast:build` | check:contrast | WCAG floors are hard-gated; APCA is reported as advisory. |
257
+
258
+ ## Internal Paths
259
+
260
+ These paths are intentionally not part of the npm runtime surface:
261
+ `scripts/`, `demo/`, `test/`, `examples/`, `.github/`, local config
262
+ files, visual baselines, and development-only audit artifacts. They may change
263
+ without a package-level compatibility promise.