@adia-ai/adia-ui-factory 0.8.11 → 0.8.13
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/.claude-plugin/plugin.json +1 -1
- package/.mcp.json +1 -1
- package/CHANGELOG.md +14 -0
- package/README.md +30 -0
- package/package.json +1 -1
- package/references/spa-architecture.md +3 -3
- package/skills/adia-compose/assets/figma-make/guidelines/components.md +2 -2
- package/skills/adia-compose/assets/figma-make/guidelines/styles.md +1 -1
- package/skills/adia-compose/assets/figma-make/guidelines/tokens.md +16 -1
- package/skills/adia-host/SKILL.md +6 -5
- package/skills/adia-host/evals/routing-corpus.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "adia-factory",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.13",
|
|
4
4
|
"description": "Author and verify apps built ON the adia-ui (@adia-ai) light-DOM web-component framework \u2014 orient, scaffold, compose, wire, verify, and migrate across SPA and SSR rendering modes. Wires the a2ui MCP for catalog retrieval, UI generation, and validation.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Kim",
|
package/.mcp.json
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog — adia-factory
|
|
2
2
|
|
|
3
|
+
## [0.8.13] — 2026-07-25
|
|
4
|
+
|
|
5
|
+
### Maintenance
|
|
6
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 11-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.8.13 work shipped in 12 named theme identities + select-menu Theme row in theme-panel; fixes scale.css wiring, Preset/Reset UX, and a Theme-select XSS finding. See `packages/web-modules/CHANGELOG.md#0813--2026-07-25` for details.
|
|
7
|
+
- **`.claude-plugin/plugin.json` version bump** — moves in lockstep with package.json (the `/plugin update` cache key).
|
|
8
|
+
|
|
9
|
+
## [0.8.12] — 2026-07-24
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
- **`adia-compose`, `adia-host`, and `references/spa-architecture.md` learn the v0.8.11 size model** — three skills still taught the removed `xs`/`xl` size vocabulary and the deprecated `[verse]`-only density register; following them verbatim would have authored invalid attribute values or wired a host to the wrong opt-in CSS layer. Figma Make guidelines (`adia-compose/assets/figma-make/guidelines/{components,tokens,styles}.md`) now teach `size` as sm/md/lg and introduce the ancestor `[scale]` register (six tiers) alongside `--a-density`; `adia-host`'s SKILL.md cascade order + Host Record template and its `evals/routing-corpus.json` rationale now cite `scale.css` (verse/prose as deprecated aliases); `spa-architecture.md`'s host-document snippet links `scale.css` and demonstrates `scale="ui-sm"`. Stale "127 primitives" counts corrected to 125 in the same pass.
|
|
13
|
+
|
|
14
|
+
### Maintenance
|
|
15
|
+
- **`.claude-plugin/plugin.json` version bump** — moves in lockstep with package.json (the `/plugin update` cache key).
|
|
16
|
+
|
|
3
17
|
## [0.8.11] — 2026-07-23
|
|
4
18
|
|
|
5
19
|
### Maintenance
|
package/README.md
CHANGED
|
@@ -7,6 +7,36 @@ hosts. Maintainer counterpart: **adia-forge**.
|
|
|
7
7
|
Re-engineered 2026-07 for the Fable 5 harness (design:
|
|
8
8
|
`.claude/docs/specs/plugin-estate-v2.md`).
|
|
9
9
|
|
|
10
|
+
## Install
|
|
11
|
+
|
|
12
|
+
**Via Git** (Claude Code plugin marketplace — requires access to this repo,
|
|
13
|
+
which is private):
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
/plugin marketplace add adiahealth/gen-ui-kit
|
|
17
|
+
/plugin install adia-factory@gen-ui-kit
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Sources the in-repo manifest at `packages/plugins/.claude-plugin/marketplace.json`.
|
|
21
|
+
Only reachable by people who already have repo access — there is no public
|
|
22
|
+
marketplace repo for external/no-access installs (`docs/tickets/TKT-0001`,
|
|
23
|
+
`wontfix`).
|
|
24
|
+
|
|
25
|
+
**Via npm** (package content only):
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
npm install @adia-ai/adia-ui-factory
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Published in lockstep with the framework packages — pulls this plugin's
|
|
32
|
+
`skills`/`agents`/`commands`/`references`/`hooks` into
|
|
33
|
+
`node_modules/@adia-ai/adia-ui-factory` for vendoring or inspection. This
|
|
34
|
+
does **not** by itself register the plugin with Claude Code's `/plugin`
|
|
35
|
+
system — no marketplace manifest currently sources it from npm. The bare-repo
|
|
36
|
+
posture (ADR-0040) is about this plugin working standalone in any consumer
|
|
37
|
+
repo once installed some other way (no monorepo path assumptions in its own
|
|
38
|
+
scripts) — it does not add an npm-sourced marketplace entry.
|
|
39
|
+
|
|
10
40
|
## Skills (13)
|
|
11
41
|
|
|
12
42
|
| Skill | Species | Job |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adia-ai/adia-ui-factory",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.13",
|
|
4
4
|
"description": "Author and verify apps built ON the adia-ui (@adia-ai) light-DOM web-component framework \u2014 orient, scaffold, compose, wire, verify, and migrate across SPA and SSR rendering modes. Wires the a2ui MCP for catalog retrieval, UI generation, and validation.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"adia-ui",
|
|
@@ -14,13 +14,13 @@ One static `index.html` whose job is to load CSS in cascade order and register c
|
|
|
14
14
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
15
15
|
<link rel="stylesheet" href="/node_modules/@adia-ai/web-components/styles/host.css" /> <!-- foundation: tokens + resets + page frame -->
|
|
16
16
|
<link rel="stylesheet" href="/node_modules/@adia-ai/web-components/styles/index.css" /> <!-- barrel: every component's CSS (link BOTH) -->
|
|
17
|
-
<link rel="stylesheet" href="/node_modules/@adia-ai/web-components/styles/
|
|
17
|
+
<link rel="stylesheet" href="/node_modules/@adia-ai/web-components/styles/scale.css" /> <!-- opt-in sizing register (only if a surface uses [scale]) -->
|
|
18
18
|
<link rel="stylesheet" href="./index.css" /> <!-- page framing: sizes + centers the surface -->
|
|
19
19
|
<link rel="stylesheet" href="./components/my-surface/my-surface.css" /> <!-- the surface's own chrome -->
|
|
20
20
|
<script type="module" src="./components/my-surface/my-surface.js"></script> <!-- its FIRST import is the registration barrel -->
|
|
21
21
|
</head>
|
|
22
22
|
<body>
|
|
23
|
-
<my-surface
|
|
23
|
+
<my-surface scale="ui-sm"></my-surface>
|
|
24
24
|
</body>
|
|
25
25
|
</html>
|
|
26
26
|
```
|
|
@@ -39,7 +39,7 @@ Vite serves `/node_modules/...` hrefs during dev and bundles them at build; bare
|
|
|
39
39
|
- **One registration script** — the side-effecting barrel `import '@adia-ai/web-components'`. Don't piecemeal-import primitives: composites render internal `*-ui` tags (e.g. `chat-input-ui` internally renders `textarea-ui` + `select-ui`) that stay unregistered and collapse to 0px unless the barrel ran.
|
|
40
40
|
- Bespoke shell children need the **cluster barrel** (`@adia-ai/web-modules/shell`, `/chat`, `/editor`, `/simple`) — importing `admin-shell.js` alone registers only the host tag, not `admin-sidebar` / `admin-page` / the other children.
|
|
41
41
|
- Never hand-roll `:where(html,body){}` — the foundation owns the page frame; re-rolling it drifts from the system (the classic serif-leak bug).
|
|
42
|
-
- A `
|
|
42
|
+
- A `[scale]` register has two halves: link `scale.css` **and** put `scale="…"` (one of the six tiers — `ui-sm | ui-md | ui-lg | content-sm | content-md | content-lg`) on the surface. One without the other is a no-op. `[verse]`/`[prose]` still work as deprecated aliases (`ui-sm`/`content-md`) but are removed at v1.0 — new code should reach for `[scale]` directly.
|
|
43
43
|
- `themes.css` (named palettes) is **not** in the styles barrel — link it separately. `data-scheme` switches light/dark; `data-theme` picks the named palette.
|
|
44
44
|
- Guards: `defineIfFree(tag, ctor)` (`core/register.js`) for defines; a `#booted` flag in `connected()` — the callback re-fires on DOM moves. And `customElements.whenDefined(name)` never rejects: a `Promise.all([...whenDefined])` boot gate hangs forever on one unimported tag — chrome renders (tag-keyed CSS), the page stays "empty", zero console errors.
|
|
45
45
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# AdiaUI — Components
|
|
2
2
|
|
|
3
|
-
Every primitive is `<name>-ui`.
|
|
3
|
+
Every primitive is `<name>-ui`. 125 primitives + 4 app shells are
|
|
4
4
|
registered by `everything.min.js`. Reach for a tag before hand-building.
|
|
5
5
|
Full per-component docs + live demos: https://ui-kit.exe.xyz/site/components/<name>
|
|
6
6
|
|
|
@@ -40,7 +40,7 @@ What are you placing?
|
|
|
40
40
|
Two independent attributes:
|
|
41
41
|
- **`variant`** (visual style): `solid` (default) · `outline` · `ghost`. `primary` is an alias of `solid`.
|
|
42
42
|
- **`color`** (semantic intent, composes with variant): `default` · `accent` · `info` · `success` · `warning` · `danger`.
|
|
43
|
-
- **`size`**: `
|
|
43
|
+
- **`size`**: `sm` `md` `lg`. For a whole region denser or larger than the default, set `scale="ui-sm" … "content-lg"` on an ancestor — scale picks the table, size picks the row (six tiers; see the Density section below).
|
|
44
44
|
|
|
45
45
|
```html
|
|
46
46
|
<!-- CORRECT — variant + color compose; size is independent -->
|
|
@@ -75,7 +75,7 @@ inline overrides bloat the markup and bypass the documented API.
|
|
|
75
75
|
```
|
|
76
76
|
|
|
77
77
|
The common attributes: `variant` (visual style), `color` (semantic
|
|
78
|
-
intent), `size` (`
|
|
78
|
+
intent), `size` (`sm`–`lg`), `gap` (`1`–`6`). See `components.md`.
|
|
79
79
|
|
|
80
80
|
## Overriding a component (only when there's no attribute)
|
|
81
81
|
|
|
@@ -105,6 +105,21 @@ Default is `1`. Lower = tighter, higher = roomier. Because spacing is
|
|
|
105
105
|
parametric, this stays internally consistent — you don't restyle each
|
|
106
106
|
component.
|
|
107
107
|
|
|
108
|
+
For a bigger jump than a density tweak — a genuinely different register,
|
|
109
|
+
not just tighter/looser — set the ancestor `[scale]` attribute instead.
|
|
110
|
+
Six tiers: `ui-sm | ui-md | ui-lg | content-sm | content-md | content-lg`.
|
|
111
|
+
`[scale]` swaps the whole sizing table for its subtree; `size` still picks
|
|
112
|
+
the row within it:
|
|
113
|
+
|
|
114
|
+
```html
|
|
115
|
+
<div scale="ui-sm">
|
|
116
|
+
<!-- every size="sm"/"md"/"lg" inside renders one register denser -->
|
|
117
|
+
</div>
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
`--a-density` and `[scale]` compose — density fine-tunes within whichever
|
|
121
|
+
table `[scale]` selected.
|
|
122
|
+
|
|
108
123
|
## Rules
|
|
109
124
|
|
|
110
125
|
1. **Prefer attributes** (`variant` / `color` / `size` / `gap`) over token
|
|
@@ -90,10 +90,11 @@ Build order — snippets and the full invariant list in `spa-architecture.md`;
|
|
|
90
90
|
`adia-project`'s `bin/adia-scaffold spa` emits the pre-wired skeleton:
|
|
91
91
|
|
|
92
92
|
1. **Host document** — npm-consumer paths; cascade order later-wins:
|
|
93
|
-
`host.css` → `styles/index.css` → opt-in `
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
93
|
+
`host.css` → `styles/index.css` → opt-in `scale.css` (the ancestor
|
|
94
|
+
`[scale]` register — `verse.css`/`prose.css` are its deprecated,
|
|
95
|
+
still-working aliases) → page → component CSS. Link BOTH `host.css`
|
|
96
|
+
and `styles/index.css` — the styles barrel is split and `host.css` is
|
|
97
|
+
foundation-only; alone it renders primitives unstyled.
|
|
97
98
|
2. **Surface container** — self-booting custom element rendering in
|
|
98
99
|
`connected()`, guarded by `defineIfFree` + a `#booted` flag (the callback
|
|
99
100
|
re-fires on DOM moves).
|
|
@@ -151,7 +152,7 @@ Mode: SPA | SSR | hybrid — signal: <file / dep
|
|
|
151
152
|
Framework: <name, or none> — [D] documented | [G] inferred, per ssr-integration.md
|
|
152
153
|
Registration: <file>:<call site> — one side-effecting barrel import, client-only
|
|
153
154
|
Route owner: <router-ui> | <framework router> — exactly one per scope
|
|
154
|
-
CSS links: host.css + styles/index.css (+ verse.css) — both live, or primitives render unstyled
|
|
155
|
+
CSS links: host.css + styles/index.css (+ scale.css, or its deprecated verse.css/prose.css alias) — both live, or primitives render unstyled
|
|
155
156
|
State placement: cookies/localStorage/session | client signal — per mode's lifetime rule
|
|
156
157
|
Gates: registration / route-owner / CSS-links / state — pass | fail, each
|
|
157
158
|
```
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
"phrase": "link host.css and styles/index.css in the right cascade order",
|
|
76
76
|
"expected": "adia-host",
|
|
77
77
|
"expected_shape": "host-document-cascade",
|
|
78
|
-
"rationale": "The host document's cascade order (host.css -> styles/index.css ->
|
|
78
|
+
"rationale": "The host document's cascade order (host.css -> styles/index.css -> scale.css -> page -> component CSS) is adia-host's SPA path step 1."
|
|
79
79
|
},
|
|
80
80
|
{
|
|
81
81
|
"id": "host-document-02",
|