@ponchia/ui 0.6.6 → 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 +105 -6
  2. package/README.md +36 -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 +23 -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 +25 -24
  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 +78 -5
  77. package/docs/reporting.md +113 -58
  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 +80 -12
  86. package/package.json +66 -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
@@ -27,6 +27,8 @@ semantic versioning contract for the surfaces listed here.
27
27
  | --- | --- | --- | --- | --- |
28
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
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
+ | `./tailwind` | `./tailwind.css` | Tailwind CSS bridge | Stable additive | CSS-only Tailwind v4 theme/variant bridge. It maps Bronto tokens into Tailwind namespaces; it does not import component CSS. |
31
+ | `./tailwind.css` | `./tailwind.css` | Tailwind CSS bridge | Stable additive | CSS-only Tailwind v4 theme/variant bridge. It maps Bronto tokens into Tailwind namespaces; it does not import component CSS. |
30
32
  | `./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
33
  | `./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
34
  | `./css/tokens.css` | `./dist/css/tokens.css` | Bundled layered CSS leaf | Stable additive | Generated layered direct-import leaf. Also included in dist/bronto.css. |
@@ -47,6 +49,7 @@ semantic versioning contract for the surfaces listed here.
47
49
  | `./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
50
  | `./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
51
  | `./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. |
52
+ | `./css/figure.css` | `./dist/css/figure.css` | Opt-in layered CSS leaf | Stable additive | Generated layered direct-import leaf. Opt-in and not included in dist/bronto.css. |
50
53
  | `./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
54
  | `./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
55
  | `./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. |
@@ -55,6 +58,9 @@ semantic versioning contract for the surfaces listed here.
55
58
  | `./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
59
  | `./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
60
  | `./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. |
61
+ | `./css/interval.css` | `./dist/css/interval.css` | Opt-in layered CSS leaf | Stable additive | Generated layered direct-import leaf. Opt-in and not included in dist/bronto.css. |
62
+ | `./css/clamp.css` | `./dist/css/clamp.css` | Opt-in layered CSS leaf | Stable additive | Generated layered direct-import leaf. Opt-in and not included in dist/bronto.css. |
63
+ | `./css/highlights.css` | `./dist/css/highlights.css` | Opt-in layered CSS leaf | Stable additive | Generated layered direct-import leaf. Opt-in and not included in dist/bronto.css. |
58
64
  | `./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
65
  | `./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
66
  | `./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. |
@@ -69,6 +75,7 @@ semantic versioning contract for the surfaces listed here.
69
75
  | `./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
76
  | `./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
77
  | `./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. |
78
+ | `./css/report-kit.css` | `./dist/css/report-kit.css` | Opt-in CSS roll-up | Stable additive | Generated layered roll-up for complete static reports. Not included in the default bundle. |
72
79
  | `./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
80
  | `./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
81
  | `./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. |
@@ -87,6 +94,7 @@ semantic versioning contract for the surfaces listed here.
87
94
  | `./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
95
  | `./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
96
  | `./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. |
97
+ | `./css/unlayered/figure.css` | `./css/figure.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
90
98
  | `./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
99
  | `./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
100
  | `./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. |
@@ -95,6 +103,9 @@ semantic versioning contract for the surfaces listed here.
95
103
  | `./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
104
  | `./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
105
  | `./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. |
106
+ | `./css/unlayered/interval.css` | `./css/interval.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/clamp.css` | `./css/clamp.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/highlights.css` | `./css/highlights.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
98
109
  | `./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
110
  | `./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
111
  | `./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. |
@@ -113,8 +124,11 @@ semantic versioning contract for the surfaces listed here.
113
124
  | `./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
125
  | `./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
126
  | `./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. |
127
+ | `./tokens/figma.variables.json` | `./tokens/figma.variables.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
128
  | `./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
129
  | `./llms.txt` | `./llms.txt` | Agent entrypoint | Stable path | Plain-text orientation file shipped for offline agents and tooling. |
130
+ | `./MIGRATIONS.json` | `./MIGRATIONS.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. |
131
+ | `./schemas/report-claims.v1.schema.json` | `./schemas/report-claims.v1.schema.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. |
118
132
  | `./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
133
  | `./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
134
  | `./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. |
@@ -129,6 +143,7 @@ semantic versioning contract for the surfaces listed here.
129
143
  | `./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
144
  | `./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
145
  | `./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. |
146
+ | `./docs/figure.md` | `./docs/figure.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
132
147
  | `./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
148
  | `./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
149
  | `./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. |
@@ -137,6 +152,9 @@ semantic versioning contract for the surfaces listed here.
137
152
  | `./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
153
  | `./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
154
  | `./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. |
155
+ | `./docs/interval.md` | `./docs/interval.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
156
+ | `./docs/clamp.md` | `./docs/clamp.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
157
+ | `./docs/highlights.md` | `./docs/highlights.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
140
158
  | `./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
159
  | `./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
160
  | `./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. |
@@ -150,6 +168,11 @@ semantic versioning contract for the surfaces listed here.
150
168
  | `./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
169
  | `./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
170
  | `./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. |
171
+ | `./docs/interop/tailwind.md` | `./docs/interop/tailwind.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
172
+ | `./docs/migrations/0.2-to-0.3.md` | `./docs/migrations/0.2-to-0.3.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
173
+ | `./docs/migrations/0.3-to-0.4.md` | `./docs/migrations/0.3-to-0.4.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
174
+ | `./docs/migrations/0.4-to-0.5.md` | `./docs/migrations/0.4-to-0.5.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
175
+ | `./docs/migrations/0.5-to-0.6.md` | `./docs/migrations/0.5-to-0.6.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
153
176
  | `./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
177
  | `./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
178
  | `./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. |
@@ -162,6 +185,8 @@ semantic versioning contract for the surfaces listed here.
162
185
  | `./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
186
  | `./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
187
  | `./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. |
188
+ | `./svelte` | types: `./svelte/index.d.ts`<br>default: `./svelte/index.js` | Framework binding JS | Stable thin adapter | Optional peer wrapper over vanilla behaviors. It owns lifecycle hookup, not markup or component state. |
189
+ | `./vue` | types: `./vue/index.d.ts`<br>default: `./vue/index.js` | Framework binding JS | Stable thin adapter | Optional peer wrapper over vanilla behaviors. It owns lifecycle hookup, not markup or component state. |
165
190
  | `./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
191
  | `./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
192
  | `./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. |
@@ -183,16 +208,20 @@ always includes `package.json`, `README.md`, `LICENSE`, and
183
208
  | --- | --- | --- |
184
209
  | `css` | Source CSS directory | Public source leaves. Mostly hand-authored; generated exceptions are called out in the provenance table. |
185
210
  | `dist` | Generated CSS directory | Prebuilt layered bundle and leaves. Never hand-edit. |
211
+ | `tailwind.css` | Tailwind CSS bridge | CSS-only Tailwind v4 theme/variant bridge; hand-authored and not part of the default Bronto bundle. |
186
212
  | `fonts` | Vendored assets | Doto woff2 files plus OFL license. |
187
213
  | `tokens` | Mixed source/generated data | Token source plus generated JSON, declarations, and renderer theme data. |
188
214
  | `classes` | Mixed source/generated data | Class recipe source plus generated JSON/declarations/custom-data. |
189
215
  | `behaviors` | Authored public JS directory | ESM source shipped as-is; adjacent declarations/maps are generated. |
190
216
  | `glyphs` | Authored public JS directory | Glyph registry/renderers shipped as JS; declarations are generated. |
217
+ | `schemas` | Machine-readable schemas | Declarative JSON schemas for package-adjacent report/tooling contracts. |
191
218
  | `annotations` | Authored public JS directory | ESM source shipped as-is; adjacent declarations/maps are generated. |
192
219
  | `connectors` | Authored public JS directory | ESM source shipped as-is; adjacent declarations/maps are generated. |
193
220
  | `react` | Authored public JS directory | ESM source shipped as-is; adjacent declarations/maps are generated. |
194
221
  | `solid` | Authored public JS directory | ESM source shipped as-is; adjacent declarations/maps are generated. |
195
222
  | `qwik` | Authored public JS directory | ESM source shipped as-is; adjacent declarations/maps are generated. |
223
+ | `svelte` | Authored public JS directory | ESM source shipped as-is; adjacent declarations/maps are generated. |
224
+ | `vue` | Authored public JS directory | ESM source shipped as-is; adjacent declarations/maps are generated. |
196
225
  | `shiki` | Theme data | Shiki theme JSON on the governed palette. |
197
226
  | `llms.txt` | Agent entrypoint | Shipped plain-text orientation for offline LLM/agent consumers. |
198
227
  | `CHANGELOG.md` | Release record | Shipped historical release notes. |
@@ -211,6 +240,7 @@ always includes `package.json`, `README.md`, `LICENSE`, and
211
240
  | `docs/mermaid.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
212
241
  | `docs/d2.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
213
242
  | `docs/vega.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
243
+ | `docs/figure.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
214
244
  | `docs/annotations.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
215
245
  | `docs/legends.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
216
246
  | `docs/marks.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
@@ -219,6 +249,9 @@ always includes `package.json`, `README.md`, `LICENSE`, and
219
249
  | `docs/crosshair.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
220
250
  | `docs/selection.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
221
251
  | `docs/sources.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
252
+ | `docs/interval.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
253
+ | `docs/clamp.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
254
+ | `docs/highlights.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
222
255
  | `docs/diff.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
223
256
  | `docs/code.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
224
257
  | `docs/spark.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
@@ -232,6 +265,11 @@ always includes `package.json`, `README.md`, `LICENSE`, and
232
265
  | `docs/generated.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
233
266
  | `docs/workbench.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
234
267
  | `docs/command.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
268
+ | `docs/interop/tailwind.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
269
+ | `docs/migrations/0.2-to-0.3.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
270
+ | `docs/migrations/0.3-to-0.4.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
271
+ | `docs/migrations/0.4-to-0.5.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
272
+ | `docs/migrations/0.5-to-0.6.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
235
273
  | `docs/adr/0001-color-system.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
236
274
  | `docs/adr/0002-scope-and-2026-baseline.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
237
275
  | `docs/adr/0003-theme-model.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
@@ -245,9 +283,9 @@ result. The listed gates are part of `npm run check`.
245
283
  | Surface | Source of truth | Generated outputs | Generator | Gate | Note |
246
284
  | --- | --- | --- | --- | --- | --- |
247
285
  | 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. |
286
+ | Token model | `tokens/index.js` | css/tokens.css; tokens/index.json; tokens/tokens.dtcg.json; tokens/resolved.json; tokens/figma.variables.json; tokens/index.d.ts | `npm run tokens:css:build; tokens:build; dtcg:build; resolved:build; figma:variables:build; dts:build` | check:fresh; check:contrast | Token names/roles are public. Resolved and Figma handoff values are visual tuning before 1.0. |
249
287
  | 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. |
288
+ | Authored CSS graph | `css/core.css plus css/*.css leaves` | dist/bronto.css; dist/css/*.css (46 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
289
  | 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
290
  | 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
291
  | 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. |
package/docs/reference.md CHANGED
@@ -9,7 +9,7 @@ rendering of every class is the kitchen-sink demo:
9
9
  **<https://ponchia.github.io/bronto-ui/>**. Theming knobs and the token
10
10
  contract: [docs/theming.md](theming.md).
11
11
 
12
- - 593 classes across 171 component groups
12
+ - 634 classes across 177 component groups
13
13
  - Import the typed registry: `import { cls, ui, cx } from '@ponchia/ui/classes'`
14
14
  - Validate markup as data (no JS/TS): `@ponchia/ui/classes.json` — the same
15
15
  vocabulary as language-neutral JSON (`groups`, `classes`, `states`,
@@ -348,6 +348,17 @@ each one matches a real selector in the stylesheet.
348
348
  | `cls.claimUnknown` | `ui-claim--unknown` | modifier |
349
349
  | `cls.claimUnsupported` | `ui-claim--unsupported` | modifier |
350
350
 
351
+ ### `.ui-clamp`
352
+
353
+ | Registry key | Class | Kind |
354
+ | --- | --- | --- |
355
+ | `cls.clamp` | `ui-clamp` | base |
356
+ | `cls.clampBody` | `ui-clamp__body` | part |
357
+ | `cls.clampControl` | `ui-clamp__control` | part |
358
+ | `cls.clampLess` | `ui-clamp__less` | part |
359
+ | `cls.clampMore` | `ui-clamp__more` | part |
360
+ | `cls.clampToggle` | `ui-clamp__toggle` | part |
361
+
351
362
  ### `.ui-cluster`
352
363
 
353
364
  | Registry key | Class | Kind |
@@ -616,6 +627,20 @@ each one matches a real selector in the stylesheet.
616
627
  | --- | --- | --- |
617
628
  | `cls.field` | `ui-field` | base |
618
629
 
630
+ ### `.ui-figure`
631
+
632
+ | Registry key | Class | Kind |
633
+ | --- | --- | --- |
634
+ | `cls.figure` | `ui-figure` | base |
635
+ | `cls.figureBody` | `ui-figure__body` | part |
636
+ | `cls.figureBodyKeyRight` | `ui-figure__body--key-right` | modifier |
637
+ | `cls.figureCaption` | `ui-figure__caption` | part |
638
+ | `cls.figureData` | `ui-figure__data` | part |
639
+ | `cls.figureKey` | `ui-figure__key` | part |
640
+ | `cls.figureMedia` | `ui-figure__media` | part |
641
+ | `cls.figureOverlay` | `ui-figure__overlay` | part |
642
+ | `cls.figureStage` | `ui-figure__stage` | part |
643
+
619
644
  ### `.ui-file`
620
645
 
621
646
  | Registry key | Class | Kind |
@@ -649,6 +674,12 @@ each one matches a real selector in the stylesheet.
649
674
  | --- | --- | --- |
650
675
  | `cls.halftone` | `ui-halftone` | base |
651
676
 
677
+ ### `.ui-highlights`
678
+
679
+ | Registry key | Class | Kind |
680
+ | --- | --- | --- |
681
+ | `cls.highlights` | `ui-highlights` | base |
682
+
652
683
  ### `.ui-hint`
653
684
 
654
685
  | Registry key | Class | Kind |
@@ -691,6 +722,36 @@ each one matches a real selector in the stylesheet.
691
722
  | `cls.inspectorBody` | `ui-inspector__body` | part |
692
723
  | `cls.inspectorHead` | `ui-inspector__head` | part |
693
724
 
725
+ ### `.ui-interval`
726
+
727
+ | Registry key | Class | Kind |
728
+ | --- | --- | --- |
729
+ | `cls.interval` | `ui-interval` | base |
730
+ | `cls.intervalBounds` | `ui-interval__bounds` | part |
731
+ | `cls.intervalLabel` | `ui-interval__label` | part |
732
+ | `cls.intervalPoint` | `ui-interval__point` | part |
733
+ | `cls.intervalRange` | `ui-interval__range` | part |
734
+ | `cls.intervalTrack` | `ui-interval__track` | part |
735
+
736
+ ### `.ui-job`
737
+
738
+ | Registry key | Class | Kind |
739
+ | --- | --- | --- |
740
+ | `cls.job` | `ui-job` | base |
741
+ | `cls.jobActions` | `ui-job__actions` | part |
742
+ | `cls.jobBar` | `ui-job__bar` | part |
743
+ | `cls.jobBody` | `ui-job__body` | part |
744
+ | `cls.jobHead` | `ui-job__head` | part |
745
+ | `cls.jobMeta` | `ui-job__meta` | part |
746
+ | `cls.jobProgress` | `ui-job__progress` | part |
747
+ | `cls.jobTitle` | `ui-job__title` | part |
748
+ | `cls.jobBlocked` | `ui-job--blocked` | modifier |
749
+ | `cls.jobCompact` | `ui-job--compact` | modifier |
750
+ | `cls.jobComplete` | `ui-job--complete` | modifier |
751
+ | `cls.jobFailed` | `ui-job--failed` | modifier |
752
+ | `cls.jobQueued` | `ui-job--queued` | modifier |
753
+ | `cls.jobRunning` | `ui-job--running` | modifier |
754
+
694
755
  ### `.ui-kbd`
695
756
 
696
757
  | Registry key | Class | Kind |
@@ -1189,6 +1250,16 @@ each one matches a real selector in the stylesheet.
1189
1250
  | --- | --- | --- |
1190
1251
  | `cls.spinner` | `ui-spinner` | base |
1191
1252
 
1253
+ ### `.ui-splitter`
1254
+
1255
+ | Registry key | Class | Kind |
1256
+ | --- | --- | --- |
1257
+ | `cls.splitter` | `ui-splitter` | base |
1258
+ | `cls.splitterHandle` | `ui-splitter__handle` | part |
1259
+ | `cls.splitterPane` | `ui-splitter__pane` | part |
1260
+ | `cls.splitterHorizontal` | `ui-splitter--horizontal` | modifier |
1261
+ | `cls.splitterVertical` | `ui-splitter--vertical` | modifier |
1262
+
1192
1263
  ### `.ui-spotlight`
1193
1264
 
1194
1265
  | Registry key | Class | Kind |
@@ -1517,9 +1588,11 @@ works in any framework without a binding layer:
1517
1588
  vocabulary onto a tone is application logic, not a framework class.
1518
1589
  - **Modal** — native `<dialog>` gets backdrop + top-layer + focus-trap
1519
1590
  free. For a controlled/portal modal, add `is-open`
1520
- (`ui.modal({ open: true })`) for the same skin/layout; the
1521
- backdrop, top-layer stacking AND focus-trap are then yours (`.is-open`
1522
- is a bare grid it does not float or stack on its own).
1591
+ (`ui.modal({ open: true })`) for the same skin/layout, mark the overlay
1592
+ `data-bronto-modal`, and run `initModal()` for the inert focus trap,
1593
+ focus-return, and Escape close signal. You still own the `is-open` state,
1594
+ backdrop, and top-layer stacking (`.is-open` is a bare grid — it does not
1595
+ float or stack on its own).
1523
1596
  - **Current page** — mark the active link with `aria-current="page"`; it is
1524
1597
  the programmatic cue the navs honour (`ui-sitenav`, `ui-app-nav`). The
1525
1598
  `.is-active` class is the visual-only equivalent on `ui-app-nav`/`ui-tab`;
@@ -1694,7 +1767,7 @@ Exact mirror of the `:root` blocks in `css/tokens.css`
1694
1767
  | `--text-dim` | `#a0a0a0` |
1695
1768
  | `--accent` | `#ff3b41` |
1696
1769
  | `--accent-ramp-end` | `#000000` |
1697
- | `--accent-strong` | `color-mix(in srgb, var(--accent) 84%, #fff)` |
1770
+ | `--accent-strong` | `color-mix(in srgb, var(--accent) 80%, #fff)` |
1698
1771
  | `--accent-text` | `var(--accent-strong)` |
1699
1772
  | `--on-accent` | `var(--button-text)` |
1700
1773
  | `--accent-soft` | `color-mix(in srgb, var(--accent) 14%, transparent)` |
package/docs/reporting.md CHANGED
@@ -1,12 +1,19 @@
1
1
  # Static reports
2
2
 
3
3
  `@ponchia/ui` can dress static, LLM-authored HTML reports without a component
4
- runtime. Load the normal bundle, then opt in to the report layer, chart palette,
5
- and annotation layer only when the report needs them.
4
+ runtime. Load the normal bundle, then either opt in to the complete report kit
5
+ or import only the leaves a narrow report actually uses.
6
6
 
7
7
  In a bundled app, package specifiers are fine because Vite or another bundler
8
8
  rewrites them:
9
9
 
10
+ ```css
11
+ @import '@ponchia/ui';
12
+ @import '@ponchia/ui/css/report-kit.css';
13
+ ```
14
+
15
+ For tighter payload control, import leaves one by one:
16
+
10
17
  ```css
11
18
  @import '@ponchia/ui';
12
19
  @import '@ponchia/ui/css/report.css';
@@ -16,9 +23,11 @@ rewrites them:
16
23
  ```
17
24
 
18
25
  **`dist/bronto.css` is the standard component set only — it does NOT contain
19
- the report, chart, annotation, or legend layers.** Those are opt-in leaves
20
- under `dist/css/`; a report links the default bundle *and* each leaf it uses.
21
- Forgetting them is the most common way an LLM-emitted report renders unstyled.
26
+ the report, chart, annotation, source, trust, or code/diff layers.**
27
+ `report-kit.css` is the one-file opt-in path for complete static reports; the
28
+ individual leaves remain available under `dist/css/` when a report uses only a
29
+ small subset. Forgetting the opt-in CSS is the most common way an LLM-emitted
30
+ report renders unstyled.
22
31
 
23
32
  For standalone browser HTML, use real stylesheet URLs. Package specifiers like
24
33
  `@ponchia/ui/css/report.css` do not resolve in a saved `.html` file — and note
@@ -27,6 +36,14 @@ the path is `dist/css/`, the built leaf, not the source `css/`:
27
36
  ```html
28
37
  <!-- installed locally -->
29
38
  <link rel="stylesheet" href="./node_modules/@ponchia/ui/dist/bronto.css" />
39
+ <link rel="stylesheet" href="./node_modules/@ponchia/ui/dist/css/report-kit.css" />
40
+ ```
41
+
42
+ Or, if you are intentionally keeping a report minimal, link only the leaves it
43
+ uses:
44
+
45
+ ```html
46
+ <link rel="stylesheet" href="./node_modules/@ponchia/ui/dist/bronto.css" />
30
47
  <link rel="stylesheet" href="./node_modules/@ponchia/ui/dist/css/report.css" />
31
48
  <link rel="stylesheet" href="./node_modules/@ponchia/ui/dist/css/dataviz.css" />
32
49
  <link rel="stylesheet" href="./node_modules/@ponchia/ui/dist/css/annotations.css" />
@@ -37,11 +54,18 @@ No install? Link the same files from a CDN. Pin the version — pre-1.0, breakin
37
54
  changes ship in the minor (see [stability.md](./stability.md)):
38
55
 
39
56
  ```html
40
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.6.6/dist/bronto.css" />
41
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.6.6/dist/css/report.css" />
42
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.6.6/dist/css/dataviz.css" />
43
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.6.6/dist/css/annotations.css" />
44
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.6.6/dist/css/legend.css" />
57
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.6.7/dist/bronto.css" />
58
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.6.7/dist/css/report-kit.css" />
59
+ ```
60
+
61
+ Leaf-by-leaf CDN imports use the same `dist/css/` paths:
62
+
63
+ ```html
64
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.6.7/dist/bronto.css" />
65
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.6.7/dist/css/report.css" />
66
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.6.7/dist/css/dataviz.css" />
67
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.6.7/dist/css/annotations.css" />
68
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.6.7/dist/css/legend.css" />
45
69
  ```
46
70
 
47
71
  The CDN serves the package's own `fonts/` next to the CSS, so font URLs resolve
@@ -60,15 +84,20 @@ sanitize that content before rendering it and do not initialize
60
84
  evidence). The _content_ inside those sections is where the rest of the
61
85
  analytical layer earns its place. Each one is an opt-in import that stays out of
62
86
  the default bundle — add the leaves a given report actually needs.
63
- `@ponchia/ui/css/analytical.css` is a convenience roll-up of the **seven
64
- figure-layer leaves only** (annotations, legends, marks, connectors, spotlight,
65
- crosshair, selection) — sources, generated, state, and the prose/evidence
66
- leaves below are NOT in it and must be linked individually. Reach for:
87
+ `@ponchia/ui/css/analytical.css` is a convenience roll-up of the **nine
88
+ figure/evidence-layer leaves only** (figure, annotations, legends, marks,
89
+ connectors, spotlight, crosshair, selection, highlights) — sources, generated,
90
+ state, interval, clamp, and the prose/evidence leaves below are NOT in it and
91
+ must be linked individually. Reach for:
67
92
 
68
93
  | Layer | Import | Reach for it when… |
69
94
  | --- | --- | --- |
95
+ | **Figure stage** (`.ui-figure*`) | `css/figure.css` | A chart, diagram, screenshot, or annotated SVG needs a stable media box, overlay slot, right-side key, and fallback-data slot. It composes with `ui-report__figure`; it does not render charts or own scales. See [figure.md](./figure.md). |
70
96
  | **Marks** (`.ui-mark`, `.ui-bracket-note`) | `css/marks.css` | You want to emphasise a phrase _in prose_ — a highlight on the finding, an underline on a risk, or a bracket around an evidence/caveat passage. The inline counterpart to annotations. See [marks.md](./marks.md). |
71
97
  | **Sources / provenance** (`.ui-citation`, `.ui-source-card`, `.ui-source-list`, `.ui-provenance`) | `css/sources.css` | The report makes claims a reader will question — "where did this come from?". A CSS-only trust layer whose cross-cutting state modifier (`.ui-src--verified`, plus reviewed / generated / unverified / stale / conflict) sets a rationed tone, always paired with a written label, never colour alone. See [sources.md](./sources.md). |
98
+ | **Interval** (`.ui-interval*`) | `css/interval.css` | Evidence is a low/high estimate, confidence window, target band, or uncertain reading. The host normalises `--lo`, `--hi`, and optional `--v`; Bronto only paints the range and point. See [interval.md](./interval.md). |
99
+ | **Clamp** (`.ui-clamp*`) | `css/clamp.css` | A source excerpt, claim basis, or caveat should scan as a bounded text block but remain reachable through explicit "Show more" / "Show less" labels and print expansion. See [clamp.md](./clamp.md). |
100
+ | **Highlights** (`.ui-highlights`) | `css/highlights.css` | The host registers CSS Custom Highlight API ranges for cited evidence, search hits, or the current match without wrapping DOM text nodes. See [highlights.md](./highlights.md). |
72
101
  | **Annotations** (`.ui-annotation*`) | `css/annotations.css` | A figure needs an explicit callout — a peak, a limit, a watched region — or a small decorative margin mark. SVG only. See [annotations.md](./annotations.md) and the [off-chart + scaling notes](./annotations.md#using-annotations-off-chart) before you size one. |
73
102
  | **Legends / data keys** (`.ui-legend*`) | `css/legend.css` | A chart figure needs a colour key. WCAG 1.4.1 by construction. See [legends.md](./legends.md). |
74
103
  | **Mermaid theme** (`@ponchia/ui/mermaid`) | _(JS/JSON, no CSS)_ | The report embeds a [Mermaid](https://mermaid.js.org) diagram (flowchart, sequence, pie…) and you want it on-brand instead of generic. A resolved `base` theme projected from the same tokens as `charts.json`; annotate the rendered SVG with the annotation layer. See [mermaid.md](./mermaid.md). |
@@ -200,7 +229,8 @@ fetching, and claim wording.
200
229
  audit reports. Add `ui-report__action-title`, `__action-owner`,
201
230
  `__action-due`, `__action-priority`, `__action-criteria`, and
202
231
  `__action-source` when the action is a real workflow item. The status text
203
- must be written out; do not rely on tone alone.
232
+ must be written out; do not rely on tone alone. The status occupies the side
233
+ rail on wide screens; the other action fields stay in the main text column.
204
234
 
205
235
  Decision brief pattern:
206
236
 
@@ -348,11 +378,11 @@ Evidence ledger pattern:
348
378
  deltas — they are not free-standing utilities.) Keep raw Markdown tables
349
379
  inside `ui-prose`; use `.ui-table` for curated evidence tables. If a
350
380
  `ui-report__evidence` block contains only a `ui-table-wrap`, the report layer
351
- removes the inner frame so evidence tables do not look double-boxed.
352
- Report tables preserve words by default so identifiers and headings do not
353
- split into unreadable fragments in PDF. Add `ui-table--break-anywhere` only
354
- for machine-token tables where avoiding horizontal overflow matters more than
355
- preserving words.
381
+ removes the inner frame so evidence tables do not look double-boxed. Report
382
+ tables preserve words by default so identifiers and headings do not split into
383
+ unreadable fragments in PDF. Add `ui-table--break-anywhere` only for
384
+ machine-token tables where fixed, shrink-to-fit columns and forced wrapping
385
+ matter more than preserving words.
356
386
  - Every `<figure>` should include a `figcaption` using `ui-report__caption`.
357
387
  - Do not use raw color values. Theme with `--accent`; use status tones for
358
388
  status; use chart tokens only in chart figures.
@@ -473,12 +503,14 @@ from one of two routes:
473
503
  painting marks from the `--chart-N` palette so the figure prints exactly and
474
504
  carries no runtime.
475
505
 
476
- Whichever route, the figure frame is the same: wrap it in `ui-report__figure`,
477
- caption it with `ui-report__caption`, give it the standalone, portable
478
- `.ui-legend` data key (`@ponchia/ui/css/legend.css` see
479
- [legends.md](./legends.md)), and pair every colour with a direct label, a
480
- pattern, **and** a fallback `ui-table` so the figure survives mono print and
481
- colour-vision deficiency.
506
+ Whichever route, the figure frame is the same: wrap it in
507
+ `ui-report__figure ui-figure`, caption it with
508
+ `ui-report__caption ui-figure__caption`, put the rendered chart in
509
+ `ui-figure__stage`, give it the standalone, portable `.ui-legend` data key
510
+ (`@ponchia/ui/css/legend.css` see [legends.md](./legends.md)), and pair every
511
+ colour with a direct label, a pattern, **and** a fallback `ui-table` in
512
+ `ui-figure__data` so the figure survives mono print and colour-vision
513
+ deficiency.
482
514
 
483
515
  A Vega-Lite figure. The live mount is **`ui-screen-only`** and the fallback
484
516
  `ui-table` carries the data into print — a live chart bakes the on-screen theme
@@ -486,14 +518,16 @@ into its SVG/canvas at render time, so printing it would emit a dark-baked chart
486
518
  on white paper. Print the table; keep the chart for screen:
487
519
 
488
520
  ```html
489
- <figure class="ui-report__figure" role="group" aria-labelledby="chart-title">
490
- <figcaption id="chart-title" class="ui-report__caption">
521
+ <figure class="ui-report__figure ui-figure" role="group" aria-labelledby="chart-title">
522
+ <figcaption id="chart-title" class="ui-report__caption ui-figure__caption">
491
523
  Fig 1 - Weekly focus split
492
524
  </figcaption>
493
- <div id="focus-chart" class="ui-screen-only" style="min-block-size: 240px">
494
- <noscript>Chart needs JavaScript — the data is in the table below.</noscript>
525
+ <div class="ui-figure__stage ui-screen-only" style="--figure-min-block: 240px">
526
+ <div id="focus-chart" class="ui-figure__media">
527
+ <noscript>Chart needs JavaScript — the data is in the table below.</noscript>
528
+ </div>
495
529
  </div>
496
- <div class="ui-table-wrap">
530
+ <div class="ui-figure__data ui-table-wrap">
497
531
  <table class="ui-table ui-table--dense">
498
532
  <caption>Chart source data</caption>
499
533
  <thead>
@@ -543,35 +577,42 @@ A frozen, token-themed inline `<svg>` for the same data — no runtime, prints
543
577
  exactly, with a `.ui-legend` key and the fallback table:
544
578
 
545
579
  ```html
546
- <figure class="ui-report__figure ui-print-exact" role="group" aria-labelledby="chart-title">
547
- <figcaption id="chart-title" class="ui-report__caption">
580
+ <figure class="ui-report__figure ui-figure ui-print-exact" role="group" aria-labelledby="chart-title">
581
+ <figcaption id="chart-title" class="ui-report__caption ui-figure__caption">
548
582
  Fig 1 - Weekly focus split
549
583
  </figcaption>
550
- <ul class="ui-legend" aria-label="Series">
551
- <li class="ui-legend__item">
552
- <span
553
- class="ui-legend__swatch"
554
- style="--chart-color: var(--chart-1); --chart-pattern: var(--chart-pattern-1)"
555
- aria-hidden="true"
556
- ></span>
557
- <span class="ui-legend__label">Research</span>
558
- </li>
559
- <li class="ui-legend__item">
560
- <span
561
- class="ui-legend__swatch"
562
- style="--chart-color: var(--chart-2); --chart-pattern: var(--chart-pattern-2)"
563
- aria-hidden="true"
564
- ></span>
565
- <span class="ui-legend__label">Delivery</span>
566
- </li>
567
- </ul>
568
- <svg viewBox="0 0 360 160" role="img" aria-labelledby="focus-svg-title">
569
- <title id="focus-svg-title">Weekly focus split</title>
570
- <line x1="36" y1="132" x2="324" y2="132" stroke="var(--line)" />
571
- <rect x="72" y="42" width="96" height="90" fill="var(--chart-1)" />
572
- <rect x="200" y="77" width="96" height="55" fill="var(--chart-2)" />
573
- </svg>
574
- <div class="ui-table-wrap">
584
+ <div class="ui-figure__body ui-figure__body--key-right">
585
+ <div class="ui-figure__stage">
586
+ <svg class="ui-figure__media" viewBox="0 0 360 160" role="img" aria-labelledby="focus-svg-title focus-svg-desc">
587
+ <title id="focus-svg-title">Weekly focus split</title>
588
+ <desc id="focus-svg-desc">Research is 18 hours and delivery is 11 hours.</desc>
589
+ <line x1="36" y1="132" x2="324" y2="132" stroke="var(--line)" />
590
+ <rect x="72" y="42" width="96" height="90" fill="var(--chart-1)" />
591
+ <rect x="200" y="77" width="96" height="55" fill="var(--chart-2)" />
592
+ </svg>
593
+ </div>
594
+ <div class="ui-figure__key">
595
+ <ul class="ui-legend" aria-label="Series">
596
+ <li class="ui-legend__item">
597
+ <span
598
+ class="ui-legend__swatch"
599
+ style="--chart-color: var(--chart-1); --chart-pattern: var(--chart-pattern-1)"
600
+ aria-hidden="true"
601
+ ></span>
602
+ <span class="ui-legend__label">Research</span>
603
+ </li>
604
+ <li class="ui-legend__item">
605
+ <span
606
+ class="ui-legend__swatch"
607
+ style="--chart-color: var(--chart-2); --chart-pattern: var(--chart-pattern-2)"
608
+ aria-hidden="true"
609
+ ></span>
610
+ <span class="ui-legend__label">Delivery</span>
611
+ </li>
612
+ </ul>
613
+ </div>
614
+ </div>
615
+ <div class="ui-figure__data ui-table-wrap">
575
616
  <table class="ui-table ui-table--dense">
576
617
  <caption>Chart source data</caption>
577
618
  <thead>
@@ -820,8 +861,14 @@ important reports. The HTML stays the readable artifact; the sidecar lets a
820
861
  checker prove that claim IDs, source IDs, trust states, retrieval dates and
821
862
  high-risk decisions still line up after editing.
822
863
 
864
+ The declarative contract ships as
865
+ `@ponchia/ui/schemas/report-claims.v1.schema.json` for validators in any
866
+ language. It is a schema only — `@ponchia/ui` does not ship a report generator
867
+ or validation runtime.
868
+
823
869
  ```json
824
870
  {
871
+ "$schema": "https://cdn.jsdelivr.net/npm/@ponchia/ui@0.6.7/schemas/report-claims.v1.schema.json",
825
872
  "schemaVersion": "bronto-report-claims.v1",
826
873
  "report": { "title": "Decision readiness", "type": "decision" },
827
874
  "claims": [
@@ -843,6 +890,14 @@ high-risk decisions still line up after editing.
843
890
  "retrievedAt": "2026-06-08T10:00:00Z",
844
891
  "supports": ["claim-primary"]
845
892
  }
893
+ ],
894
+ "relations": [
895
+ {
896
+ "claimId": "claim-primary",
897
+ "sourceId": "source-primary",
898
+ "kind": "supports",
899
+ "note": "The metrics export supports the operational-risk conclusion."
900
+ }
846
901
  ]
847
902
  }
848
903
  ```
package/docs/sidenote.md CHANGED
@@ -23,7 +23,13 @@ tradition — the channel for evidence, caveats, and provenance asides that belo
23
23
  (or a section) so the count starts at 1 there.
24
24
  2. **The margin gutter.** At the same breakpoint, give that container
25
25
  `padding-inline-end: calc(var(--sidenote-width) + var(--sidenote-gap))` so the
26
- floated note has room. `--sidenote-width` defaults to `12rem`.
26
+ floated note has room. The two knobs are **root-scoped** (defaults `12rem` /
27
+ `2rem`) precisely so this calc resolves on any container — and overriding
28
+ either one on the container re-sizes the notes and the gutter together.
29
+ **This is load-bearing, not cosmetic:** without the gutter the floated note
30
+ spills past the page edge — a horizontal-overflow defect any visual QA pass
31
+ will flag. In a constrained shell that cannot spare a gutter, use the
32
+ in-flow `ui-sidenote` (which collapses inline) rather than `ui-marginnote`.
27
33
 
28
34
  ```html
29
35
  <article style="counter-reset: ui-sidenote">
package/docs/sources.md CHANGED
@@ -44,7 +44,7 @@ host and add a tone. It draws a small pill with a leading trust dot:
44
44
 
45
45
  ```html
46
46
  <span class="ui-src ui-src--verified">Verified</span>
47
- <span class="ui-src ui-src--generated">AI-generated</span>
47
+ <span class="ui-src ui-src--generated">Machine-generated</span>
48
48
  <span class="ui-src ui-src--stale">Stale · 14d</span>
49
49
  ```
50
50