@adia-ai/a2ui-corpus 0.7.26 → 0.7.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +53 -7
- package/README.md +1 -1
- package/catalog-a2ui_0_9.json +46 -2
- package/chunk-embeddings.json +1 -1
- package/chunks/_index.json +1 -1
- package/chunks/admin-topbar-status-indicator.json +2 -10
- package/chunks/analytics-chart.json +57 -3
- package/chunks/api-key-table.json +21 -2
- package/chunks/audit-log.json +31 -2
- package/chunks/blog-post-card.json +31 -2
- package/chunks/card-grid-images.json +181 -7
- package/chunks/card-with-stat-kpi.json +2 -10
- package/chunks/col-stat-label.json +2 -10
- package/chunks/dashboard-acquisition-panel.json +2 -1
- package/chunks/dashboard-audience-panel.json +57 -3
- package/chunks/dashboard-chart-recent.json +3 -1
- package/chunks/dashboard-overview-panel.json +3 -1
- package/chunks/dashboard-traffic-channels.json +2 -1
- package/chunks/grid-2col-entry-cards.json +9 -25
- package/chunks/integrations-grid.json +6 -2
- package/chunks/map-with-location-list.json +3 -1
- package/chunks/period-comparison.json +5 -2
- package/chunks/playground-a2ui.json +4 -3
- package/chunks/playground-gen-ui.json +3 -2
- package/chunks/real-time-metrics-dashboard.json +31 -2
- package/chunks/revenue-heatmap.json +3 -3
- package/chunks/row-wrap-tags.json +6 -46
- package/chunks/table-toolbar-with-table.json +11 -35
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,50 @@
|
|
|
1
1
|
# Changelog — @adia-ai/a2ui-corpus
|
|
2
|
+
## [0.7.28] — 2026-07-14
|
|
3
|
+
|
|
4
|
+
### Fixed — TKT-0010, corpus admission-time validation classes 1 and 3
|
|
5
|
+
|
|
6
|
+
`harvest-chunks.mjs`'s new admission-time validator (Phase 4a, shipped
|
|
7
|
+
0.7.27) found 104/384 templated chunk instances (27%) failing schema/
|
|
8
|
+
catalog validation. This cycle fixes the two classes owned by this
|
|
9
|
+
package's schemas:
|
|
10
|
+
|
|
11
|
+
- **`common_types.json`'s `CatalogComponentCommon`** now declares `span`
|
|
12
|
+
as a cross-cutting `DynamicString` property (mirroring the existing
|
|
13
|
+
`slot` entry) and a `patternProperties` allowance for `^data-` —
|
|
14
|
+
both legitimate JS/CSS hooks the transpiler already universally
|
|
15
|
+
preserves (TKT-0002), but previously rejected by Ajv's
|
|
16
|
+
`unevaluatedProperties: false` on every generated component schema
|
|
17
|
+
(the dominant failure class, ~70 of the 104).
|
|
18
|
+
- **New `DynamicObjectList` `$def`** — `Chart.data`/`Table.data`'s
|
|
19
|
+
dynamic array props were compiled to `DynamicStringList`
|
|
20
|
+
(array-of-string only), the wrong shape for row-record data. Split a
|
|
21
|
+
proper array-of-object variant; `components.mjs`'s `compileProp`
|
|
22
|
+
selects it when a prop's yaml declares `items: {type: object}` (see
|
|
23
|
+
`@adia-ai/web-components`'s `chart.yaml`/`table.yaml`). The
|
|
24
|
+
companion transpiler-side bug (the attribute value was never
|
|
25
|
+
actually `JSON.parse`d) is fixed in `@adia-ai/a2ui-compose`.
|
|
26
|
+
- **`catalog-a2ui_0_9.json` regenerated** to pick up both schema
|
|
27
|
+
changes.
|
|
28
|
+
|
|
29
|
+
Verified: `harvest-chunks.mjs --dry` dropped from 104 → 16 invalid
|
|
30
|
+
chunk instances; all 16 remaining are already-tracked class-2 debt
|
|
31
|
+
(enum drift + accessibility anti-patterns, matching `verify:corpus`'s
|
|
32
|
+
existing 118-warn baseline) — zero new class-1/3-shaped failures.
|
|
33
|
+
`--strict` stays opt-in (not flipped to the harvester's default) since
|
|
34
|
+
that floor is accepted, not cleared, by this cycle.
|
|
35
|
+
|
|
36
|
+
### Maintenance
|
|
37
|
+
- **Chunk corpus re-harvested** to reflect the schema fixes above plus
|
|
38
|
+
content fixes in three `.contents.html` sources (`IntegrationCard.provider`,
|
|
39
|
+
`Stat.label`, `Heatmap.type`, two runtime-badge placeholders, and
|
|
40
|
+
`Chart.data` now carrying real parsed arrays instead of raw JSON
|
|
41
|
+
text). 394 chunks total.
|
|
42
|
+
|
|
43
|
+
## [0.7.27] — 2026-07-12
|
|
44
|
+
|
|
45
|
+
### Maintenance
|
|
46
|
+
- **Chunk corpus re-harvested through the 0.7.27 transpiler** — chunk bodies now carry the fidelity fixes shipped in `@adia-ai/a2ui-compose` 0.7.27 (`[span]` preservation, `Tag` `text`-prop labels) and the `aria-label` propagation contract; embeddings index rebuilt to match (394 chunks × 1536d).
|
|
47
|
+
- **Catalog (`catalog-a2ui_0_9.json`) regenerated** — picks up `richtext-ui`'s new `flush` prop from the yaml SoT.
|
|
2
48
|
|
|
3
49
|
## [0.7.26] — 2026-07-04
|
|
4
50
|
|
|
@@ -302,7 +348,7 @@ Patterns shipped: card-ui header/section/footer anatomy; row-ui header pattern;
|
|
|
302
348
|
|
|
303
349
|
### Maintenance
|
|
304
350
|
|
|
305
|
-
- **Lockstep version bump only.** Peer's v0.6.32 absorbed the chunk + embeddings regen against the status:stable yaml sweep (recovery committed at `e864fc396` post peer's release commit `5285defa8`; see
|
|
351
|
+
- **Lockstep version bump only.** Peer's v0.6.32 absorbed the chunk + embeddings regen against the status:stable yaml sweep (recovery committed at `e864fc396` post peer's release commit `5285defa8`; see `2026-05-23-freshness-gate-recovery-v0.6.32.md` case study (git history)).
|
|
306
352
|
|
|
307
353
|
## [0.6.31] — 2026-05-23
|
|
308
354
|
|
|
@@ -953,7 +999,7 @@ The harvester is repo-tooling (`scripts/build/`), not a corpus package member, b
|
|
|
953
999
|
- **§42 nested-expand-then-transpile pass** — after collection, recursively expands `<!-- nested: <name> -->` placeholders in annotated chunks, then transpiles the expanded HTML to A2UI templates via `transpileHTML(html, { mode: 'instant' })`.
|
|
954
1000
|
- **§45 source-aware tier-1 expansion fix** — replaces §42's "first wins" canonical-html rule with directory-aware selection. **Bug**: `auth-card-content` has 24 instances; the 404 page sorted alphabetically first, so EVERY auth chunk silently inlined 404 page content from §41 landing through §45 discovery (smoke tests only checked retrieval strategy, not template content). **Fix**: Tier 1 exact directory match → Tier 2 deepest common directory prefix → Tier 3 alphabetical. Without it, `apps/user-flow/app/auth/sign-in/` shares depth with `apps/user-flow/app/auth/sign-in/mfa/` and tie-break would pick wrong sibling.
|
|
955
1001
|
|
|
956
|
-
See root [CHANGELOG.md `[Unreleased]`](../../../CHANGELOG.md) for the cross-cutting arc narrative +
|
|
1002
|
+
See root [CHANGELOG.md `[Unreleased]`](../../../CHANGELOG.md) for the cross-cutting arc narrative + `.claude/docs/journal/2026/05/2026-05-12.md` §§ 36-51 for per-§ details.
|
|
957
1003
|
## [0.4.3] - 2026-05-11
|
|
958
1004
|
|
|
959
1005
|
### Changed
|
|
@@ -1202,7 +1248,7 @@ Patch cut — no breaking changes.
|
|
|
1202
1248
|
|
|
1203
1249
|
### Changed — Trait registry now generated from web-components SoT (2026-05-02)
|
|
1204
1250
|
|
|
1205
|
-
`packages/a2ui/retrieval/catalog.js` no longer carries a hand-curated `traitRegistry` array. The trait list is loaded at module init from `packages/web-components/traits/_catalog.json` (generated by `node scripts/build/traits-catalog.mjs` in the monorepo root from live `defineTrait()` metadata). Per
|
|
1251
|
+
`packages/a2ui/retrieval/catalog.js` no longer carries a hand-curated `traitRegistry` array. The trait list is loaded at module init from `packages/web-components/traits/_catalog.json` (generated by `node scripts/build/traits-catalog.mjs` in the monorepo root from live `defineTrait()` metadata). Per `ADR-0018`.
|
|
1206
1252
|
|
|
1207
1253
|
Behavior changes:
|
|
1208
1254
|
- 4 phantom traits (`disabled-state`, `form-associated`, `value-sync`, `resettable`) no longer appear in MCP `get_traits` responses — they had no implementation in `traits/`. Auto-pruned by construction.
|
|
@@ -1250,11 +1296,11 @@ New `scripts/build/under-harvest-audit.mjs` flags pages under `site/pages/{patte
|
|
|
1250
1296
|
### Fixed — A2UI registry gap closure + ADR-0015 pattern migration (2026-05-02)
|
|
1251
1297
|
|
|
1252
1298
|
- **Registry additions** in `@adia-ai/a2ui-utils`: `Field`, `Rating`, `ListItem`, `NavItem`, `NavGroup`. All 5 components existed; only the registry mapping was missing. Net effect on the corpus: 28/113 hand-authored patterns previously rendered with `[unknown: X]` placeholders when imported into `/site/playground/a2ui-editor`. After: 0/113 unknown.
|
|
1253
|
-
- **`patterns/navigation/section-subnav.json`** migrated per
|
|
1299
|
+
- **`patterns/navigation/section-subnav.json`** migrated per `ADR-0015 § Nav consolidation`. `SectionNav` → `Nav variant=section`; `SectionNavItem` → `NavItem`. The pattern was referencing the retired 6-element nav family.
|
|
1254
1300
|
- **`patterns/layout/weather-widget.json`** — renamed `Metric` → `Stat` (no `<metric-ui>` exists; `Stat` is the canonical metric/value/change/trend primitive).
|
|
1255
1301
|
- Smoke side-effect: zettel score bumped 91 → 92; smoke validation flipped from `valid=false score=98/91` → `valid=true score=100/92`. The registry gaps were tripping validation upstream.
|
|
1256
1302
|
|
|
1257
|
-
Per-finding triage in
|
|
1303
|
+
Per-finding triage in `.claude/docs/reports/playground-examples-review-2026-05-02.md`.
|
|
1258
1304
|
## [0.2.0] - 2026-05-02
|
|
1259
1305
|
|
|
1260
1306
|
**Lockstep cut.** All 8 published `@adia-ai/*` packages now share one
|
|
@@ -1304,12 +1350,12 @@ release.
|
|
|
1304
1350
|
`<adia-chat-ui>`; `<editor-shell>` was `<adia-editor-ui>`;
|
|
1305
1351
|
`<admin-shell>` was `<app-shell-ui>`; `<gen-root>` was
|
|
1306
1352
|
`<gen-ui-ui>`; `<chat-thread-ui>` was `<chat-ui>`). Element renames
|
|
1307
|
-
per
|
|
1353
|
+
per `ADR-0015`;
|
|
1308
1354
|
nav consolidation per ADR-0015 § Nav consolidation. The 6-element
|
|
1309
1355
|
nav family (`<app-nav-*>` + `<section-nav-*>`) collapsed into 3
|
|
1310
1356
|
primitives. Synthesizer no longer emits the renamed-away tags.
|
|
1311
1357
|
- **`yaml name:` fields swept** per
|
|
1312
|
-
|
|
1358
|
+
`ADR-0016` —
|
|
1313
1359
|
primitives now `name: UI<X>` (was `Adia<X>`); modules now
|
|
1314
1360
|
`name: <X>` without the `Adia` prefix. Consumers reading the
|
|
1315
1361
|
catalog to cross-reference class names get the current convention.
|
package/README.md
CHANGED
|
@@ -61,7 +61,7 @@ hand-authored ungrounded JSON lives in `corpus/`.
|
|
|
61
61
|
> retrievable equivalents were either (a) already represented in the
|
|
62
62
|
> chunks corpus via annotated `data-chunk-*` regions, or (b) deemed
|
|
63
63
|
> non-grounded under the locked rule and DELETE'd in §73 Mode-C triage
|
|
64
|
-
> (target for v0.4.7). See
|
|
64
|
+
> (target for v0.4.7). See `.claude/docs/journal/2026/05/2026-05-12.md`
|
|
65
65
|
> §§ 36-§42, §65, §72 for the multi-arc retirement narrative.
|
|
66
66
|
|
|
67
67
|
## Layout
|
package/catalog-a2ui_0_9.json
CHANGED
|
@@ -4618,7 +4618,7 @@
|
|
|
4618
4618
|
},
|
|
4619
4619
|
"data": {
|
|
4620
4620
|
"description": "JS property (set programmatically — `el.data = [...]`). An array of plain objects; each object's keys are named by the `x` and `y` attributes — e.g. `<chart-ui x=\"month\" y=\"revenue\">` consumes `[{month:'Jan', revenue:3200}, {month:'Feb', revenue:4100}]`. The Chart.js `{labels, datasets}` envelope is NOT chart-ui's API — passing it (or any non-array value) renders an empty chart. May also be supplied declaratively as a JSON-array `data=\"[…]\"` attribute, hydrated once at connect. Custom accessor on the element class, not a reflected attribute.",
|
|
4621
|
-
"$ref": "#/$defs/
|
|
4621
|
+
"$ref": "#/$defs/DynamicObjectList"
|
|
4622
4622
|
},
|
|
4623
4623
|
"format": {
|
|
4624
4624
|
"description": "Number-format mode applied to axis labels + value overlays + donut total + gauge value + treemap value + funnel value + internal tooltip. `abbr` is the legacy 1.2K / 3M format; `decimal` fixes 2 decimals; `currency` prefixes via `--chart-currency-prefix` token (default \"$\"); `percent` multiplies × 100 and adds a % suffix.",
|
|
@@ -13904,6 +13904,10 @@
|
|
|
13904
13904
|
"lg"
|
|
13905
13905
|
],
|
|
13906
13906
|
"default": ""
|
|
13907
|
+
},
|
|
13908
|
+
"textContent": {
|
|
13909
|
+
"description": "Key label text, extracted from innerHTML (e.g. \"Ctrl+K\"). The main payload field for Kbd components extracted from HTML — mirrors Text/Code's textContent prop.",
|
|
13910
|
+
"$ref": "#/$defs/DynamicString"
|
|
13907
13911
|
}
|
|
13908
13912
|
},
|
|
13909
13913
|
"required": [
|
|
@@ -19977,6 +19981,11 @@
|
|
|
19977
19981
|
"component": {
|
|
19978
19982
|
"const": "RichText"
|
|
19979
19983
|
},
|
|
19984
|
+
"flush": {
|
|
19985
|
+
"description": "Paragraph-grade embedding mode — removes the article chrome (body padding and the 45rem reading measure, plus the trailing paragraph margin) so the rendered markdown sits flush in a host column like a plain text block. Use when richtext carries a single paragraph or fragment inside an already-measured layout (doc pages, cards); leave off for standalone articles and chat transcripts.",
|
|
19986
|
+
"type": "boolean",
|
|
19987
|
+
"default": false
|
|
19988
|
+
},
|
|
19980
19989
|
"markdown": {
|
|
19981
19990
|
"description": "Component property: markdown.",
|
|
19982
19991
|
"type": "string",
|
|
@@ -23148,7 +23157,7 @@
|
|
|
23148
23157
|
},
|
|
23149
23158
|
"data": {
|
|
23150
23159
|
"description": "Row records. Array of plain objects keyed to columns[].key.",
|
|
23151
|
-
"$ref": "#/$defs/
|
|
23160
|
+
"$ref": "#/$defs/DynamicObjectList"
|
|
23152
23161
|
},
|
|
23153
23162
|
"density": {
|
|
23154
23163
|
"description": "Controls cell padding and row height. 'compact' for dense data, 'standard' for default spacing, 'comfortable' for spacious rows.",
|
|
@@ -28046,6 +28055,10 @@
|
|
|
28046
28055
|
"description": "Named slot to project into when child of a slotted container.",
|
|
28047
28056
|
"type": "string"
|
|
28048
28057
|
},
|
|
28058
|
+
"span": {
|
|
28059
|
+
"description": "Grid-child column span, read by grid-ui's CSS attribute selector ([span=\"N\"] { grid-column: span N }). Layout-bearing like slot — accepted on every component, not a per-component prop (TKT-0002/TKT-0010).",
|
|
28060
|
+
"$ref": "#/$defs/DynamicString"
|
|
28061
|
+
},
|
|
28049
28062
|
"style": {
|
|
28050
28063
|
"description": "Inline CSS string applied to the host element (use sparingly; prefer variants).",
|
|
28051
28064
|
"type": "string"
|
|
@@ -28070,6 +28083,11 @@
|
|
|
28070
28083
|
"description": "Font weight role. Common values: thin, light, normal, medium, semibold, bold.",
|
|
28071
28084
|
"$ref": "#/$defs/DynamicString"
|
|
28072
28085
|
}
|
|
28086
|
+
},
|
|
28087
|
+
"patternProperties": {
|
|
28088
|
+
"^data-": {
|
|
28089
|
+
"description": "Arbitrary data-* attribute — a JS/CSS hook the transpiler passes through verbatim (TKT-0010); not modeled per-component."
|
|
28090
|
+
}
|
|
28073
28091
|
}
|
|
28074
28092
|
},
|
|
28075
28093
|
"Checkable": {
|
|
@@ -28189,6 +28207,32 @@
|
|
|
28189
28207
|
}
|
|
28190
28208
|
]
|
|
28191
28209
|
},
|
|
28210
|
+
"DynamicObjectList": {
|
|
28211
|
+
"description": "An array of plain objects (e.g. chart/table row records) that may be a literal, a path-bound reference, or the result of a FunctionCall. TKT-0010: split from DynamicStringList, which only ever accepted array-of-string — the wrong shape for JS-set collection props whose items are records.",
|
|
28212
|
+
"oneOf": [
|
|
28213
|
+
{
|
|
28214
|
+
"type": "array",
|
|
28215
|
+
"items": {
|
|
28216
|
+
"type": "object"
|
|
28217
|
+
}
|
|
28218
|
+
},
|
|
28219
|
+
{
|
|
28220
|
+
"type": "object",
|
|
28221
|
+
"properties": {
|
|
28222
|
+
"path": {
|
|
28223
|
+
"type": "string"
|
|
28224
|
+
}
|
|
28225
|
+
},
|
|
28226
|
+
"required": [
|
|
28227
|
+
"path"
|
|
28228
|
+
],
|
|
28229
|
+
"additionalProperties": false
|
|
28230
|
+
},
|
|
28231
|
+
{
|
|
28232
|
+
"$ref": "#/$defs/FunctionCall"
|
|
28233
|
+
}
|
|
28234
|
+
]
|
|
28235
|
+
},
|
|
28192
28236
|
"DynamicString": {
|
|
28193
28237
|
"description": "A string that may be a literal, a path-bound reference, or the result of a FunctionCall.",
|
|
28194
28238
|
"oneOf": [
|