@adia-ai/web-modules 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 +18 -6
- package/README.md +9 -9
- package/dist/chat/chat-shell.min.js +19 -19
- package/dist/everything.min.js +78 -78
- package/editor/editor-sidebar/editor-sidebar.js +75 -0
- package/editor/editor-sidebar/editor-sidebar.test.js +147 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
# Changelog — @adia-ai/web-modules
|
|
2
|
+
## [0.7.28] — 2026-07-14
|
|
3
|
+
|
|
4
|
+
### Fixed — GH #223, editor-sidebar `expand()` permanent wedge
|
|
5
|
+
- **`editor/editor-sidebar/editor-sidebar.js` — `expand()` no longer permanently wedges after its own transition.** `expand()` sets the pane's target width, kicking off `pane-ui`'s own CSS width transition (`editor-shell.bespoke.css`). Early `ResizeObserver` samples mid-transition are legitimately still `<= SNAP_THRESHOLD` while animating TOWARD the (above-threshold) target — `#syncCollapsed()` couldn't tell that apart from a genuine drag-to-collapse settle, so it flipped `[collapsed]` back to `true` mid-flight. That re-matches the `!important` collapsed-width CSS rule, which snaps the pane straight back to 48px and permanently interrupts the transition — no further resize ever occurs to self-correct, making `expand()`/`toggle()` silent no-ops thereafter. Fixed with an `#expandInFlight` flag (set by `expand()`, cleared by the pane's own `transitionend` — or a bounded fallback timer sized to the actual computed transition-duration, in case an interrupted transition doesn't fire `transitionend`) that suppresses collapse-inference for the duration of an explicit `expand()`'s own transition; a genuinely small sample is trusted normally once the flag clears. New tests: 6 cases (mid-transition suppression, `transitionend` settling + resumed normal inference afterward, the timer fallback, the zero-duration no-transition-to-race case).
|
|
6
|
+
|
|
7
|
+
### Maintenance
|
|
8
|
+
- **`dist/everything.min.js` rebuilt** to inline the `editor-sidebar.js` fix above.
|
|
9
|
+
|
|
10
|
+
## [0.7.27] — 2026-07-12
|
|
11
|
+
|
|
12
|
+
### Lockstep
|
|
13
|
+
Ride-along PATCH cut — no source changes this cycle. `dist/` shell bundles regenerated alongside the `@adia-ai/web-components` core fixes they inline (router navigation token, markdown code-span protection).
|
|
2
14
|
|
|
3
15
|
## [0.7.26] — 2026-07-04
|
|
4
16
|
|
|
@@ -1071,7 +1083,7 @@ Internal `@adia-ai/*` dep ranges stay at `^0.4.0` (patch-cut asymmetry — `^0.4
|
|
|
1071
1083
|
|
|
1072
1084
|
### Added
|
|
1073
1085
|
|
|
1074
|
-
- **`<theme-panel>` module — new `theme/` cluster.** Module-tier appearance-preferences control surface. Owns the three knobs of the AdiaUI theming contract: `[theme]` named themes (8 built-in slugs + tolerant for custom), `--a-density` / `--a-radius-k` parametric overrides, and `color-scheme` light/dark switching, plus optional `localStorage` persistence behind a small attribute API ([`packages/web-modules/theme/theme-panel/`](./theme/theme-panel/)). Reflected state — `[active-theme]`, `[active-scheme]`, `[active-density]`, `[active-radius]` — lets external CSS / JS react via `:has(theme-panel[active-scheme="dark"])` patterns without listening to events. One `theme-change` event per user-visible change (source ∈ `theme | slider | preset | scheme | reset | programmatic`). Attribute API: `[themes="slug1 slug2…"]` (override default 8), `[parametric]` (renders density + radius sliders), `[presets]` (renders compact / reset / spacious preset row), `[scheme-toggle]` (renders inline light/dark toggle — absorbs the legacy standalone `#theme-toggle` button per OD-002=A). 23 unit tests. Promoted from the ~30-line inline `#theme-panel` block + ~90 LOC of controller wiring previously duplicated in `site/index.html` and `playgrounds/admin-shell/`. Spec: [`.claude/docs/specs/theme-panel-module.md`](../../.claude/docs/specs/theme-panel-module.md). Plan:
|
|
1086
|
+
- **`<theme-panel>` module — new `theme/` cluster.** Module-tier appearance-preferences control surface. Owns the three knobs of the AdiaUI theming contract: `[theme]` named themes (8 built-in slugs + tolerant for custom), `--a-density` / `--a-radius-k` parametric overrides, and `color-scheme` light/dark switching, plus optional `localStorage` persistence behind a small attribute API ([`packages/web-modules/theme/theme-panel/`](./theme/theme-panel/)). Reflected state — `[active-theme]`, `[active-scheme]`, `[active-density]`, `[active-radius]` — lets external CSS / JS react via `:has(theme-panel[active-scheme="dark"])` patterns without listening to events. One `theme-change` event per user-visible change (source ∈ `theme | slider | preset | scheme | reset | programmatic`). Attribute API: `[themes="slug1 slug2…"]` (override default 8), `[parametric]` (renders density + radius sliders), `[presets]` (renders compact / reset / spacious preset row), `[scheme-toggle]` (renders inline light/dark toggle — absorbs the legacy standalone `#theme-toggle` button per OD-002=A). 23 unit tests. Promoted from the ~30-line inline `#theme-panel` block + ~90 LOC of controller wiring previously duplicated in `site/index.html` and `playgrounds/admin-shell/`. Spec: [`.claude/docs/specs/theme-panel-module.md`](../../.claude/docs/specs/theme-panel-module.md). Plan: `.claude/docs/plans/theme-panel-module-2026-05-11.md`. Commits `63d9deb4` (module Phase 1) + `a35d3131` (site consumer migration Phase 2; site.js −90 LOC + index.html −27 inline lines) + `c844aef4` (admin-shell playground consumer migration Phase 3; contents.html −25 lines + contents.js −48 LOC).
|
|
1075
1087
|
- **New subpath export `@adia-ai/web-modules/theme`** — consumers wanting just this cluster can `import '@adia-ai/web-modules/theme'` instead of the full barrel. `package.json` `exports` / `files` / `sideEffects` updated.
|
|
1076
1088
|
|
|
1077
1089
|
### Fixed
|
|
@@ -1097,7 +1109,7 @@ Internal `@adia-ai/*` dep ranges stay at `^0.4.0` (patch-cut asymmetry — `^0.4
|
|
|
1097
1109
|
- Catalog count: 118 → 121 yamls (+3 from simple cluster children).
|
|
1098
1110
|
## [0.4.0] - 2026-05-10
|
|
1099
1111
|
|
|
1100
|
-
**⚠️ BREAKING** — first non-patch release in the 0.x line. Closes the ADR-0023 arc per
|
|
1112
|
+
**⚠️ BREAKING** — first non-patch release in the 0.x line. Closes the ADR-0023 arc per `ADR-0024`. All 6 in-repo consumers migrated in v0.3.6; this release retires the legacy authoring shapes from the shell hosts.
|
|
1101
1113
|
|
|
1102
1114
|
### Removed (BREAKING)
|
|
1103
1115
|
|
|
@@ -1403,7 +1415,7 @@ instead of viewport width. No BREAKING changes.
|
|
|
1403
1415
|
|
|
1404
1416
|
⚠️ **BREAKING** — nav family removed (consolidated into
|
|
1405
1417
|
`@adia-ai/web-components` as primitives per
|
|
1406
|
-
|
|
1418
|
+
`ADR-0015 § Nav consolidation`).
|
|
1407
1419
|
|
|
1408
1420
|
### Removed — ⚠️ BREAKING
|
|
1409
1421
|
|
|
@@ -1458,7 +1470,7 @@ work in this package beyond the deletions above.
|
|
|
1458
1470
|
## [0.0.3] — 2026-05-01
|
|
1459
1471
|
|
|
1460
1472
|
⚠️ **BREAKING** — class-naming-convention sweep per
|
|
1461
|
-
|
|
1473
|
+
`ADR-0016`.
|
|
1462
1474
|
Module classes drop the `Adia` prefix. Tag names + CSS unchanged
|
|
1463
1475
|
from 0.0.2; this is purely a class-name rename.
|
|
1464
1476
|
|
|
@@ -1557,7 +1569,7 @@ no longer resolves there.
|
|
|
1557
1569
|
## [0.0.2] — 2026-05-01
|
|
1558
1570
|
|
|
1559
1571
|
⚠️ **BREAKING** — naming-convention sweep per
|
|
1560
|
-
|
|
1572
|
+
`ADR-0015`.
|
|
1561
1573
|
Modules use the new `<namespace-thing>` two-word convention; the
|
|
1562
1574
|
`adia-` brand prefix and the doubled `-ui-ui` form are retired.
|
|
1563
1575
|
Cluster directories renamed in lockstep with the element renames.
|
|
@@ -1637,7 +1649,7 @@ don't change.
|
|
|
1637
1649
|
|
|
1638
1650
|
Initial extraction from `@adia-ai/web-components/patterns/`. Captures
|
|
1639
1651
|
the three-tier architecture decision in
|
|
1640
|
-
|
|
1652
|
+
`ADR-0012`.
|
|
1641
1653
|
|
|
1642
1654
|
### Migrated from `@adia-ai/web-components/patterns/`
|
|
1643
1655
|
|
package/README.md
CHANGED
|
@@ -112,7 +112,7 @@ See the [CDN usage guide](https://ui-kit.exe.xyz/site/cdn-usage) for a full Code
|
|
|
112
112
|
|
|
113
113
|
### Using with AI agents
|
|
114
114
|
|
|
115
|
-
When composing UI with an AI coding agent (Claude Code / Cursor / Windsurf / Claude Desktop), load the **`adia-ui-kit` skill** in the harness — it encodes the 95-primitive catalog, composition patterns for all shells (admin / chat / editor / simple), and the Plan-Execute-Verify discipline that renders the composed surface in a real demo to verify intent. Skill lives at [`.agents/skills/adia-
|
|
115
|
+
When composing UI with an AI coding agent (Claude Code / Cursor / Windsurf / Claude Desktop), load the **`adia-ui-kit` skill** in the harness — it encodes the 95-primitive catalog, composition patterns for all shells (admin / chat / editor / simple), and the Plan-Execute-Verify discipline that renders the composed surface in a real demo to verify intent. Skill lives at [`.agents/skills/adia-compose/`](https://github.com/adiahealth/gen-ui-kit/tree/main/.agents/skills/adia-ui-kit) in the repo.
|
|
116
116
|
|
|
117
117
|
`@adia-ai/web-components` is **always required** (modules compose primitives at runtime). Two additional peer dependencies are declared but **only needed for specific clusters**:
|
|
118
118
|
|
|
@@ -184,18 +184,18 @@ equivalent of `import '@adia-ai/web-modules/shell'` +
|
|
|
184
184
|
`import '@adia-ai/web-modules/shell/admin-shell.css'`.
|
|
185
185
|
|
|
186
186
|
The default `@adia-ai/web-modules/shell` subpath stays CSS-free to
|
|
187
|
-
preserve the explicit-import contract (
|
|
187
|
+
preserve the explicit-import contract (`ADR-0030`);
|
|
188
188
|
`/with-css` is the named opt-in. Per-element companions
|
|
189
189
|
(`@adia-ai/web-modules/shell/admin-shell/with-css`) also exist for
|
|
190
190
|
finer-grained imports.
|
|
191
191
|
|
|
192
192
|
Each cluster carries a **shell host** (behavior-only orchestrator) plus
|
|
193
193
|
a **family of bespoke shell-tier children** (cluster-namespaced custom
|
|
194
|
-
elements with state-as-attribute semantics) per
|
|
194
|
+
elements with state-as-attribute semantics) per `ADR-0023`. The bespoke vocabulary is the only recognized authoring shape since v0.4.0 (`ADR-0024`).
|
|
195
195
|
|
|
196
196
|
> The patterns directory lived inside `@adia-ai/web-components` as
|
|
197
197
|
> `patterns/` until this package was extracted (see
|
|
198
|
-
>
|
|
198
|
+
> `ADR-0012`).
|
|
199
199
|
> Tags, CSS, and YAML/A2UI contracts are unchanged; only the import
|
|
200
200
|
> path moves.
|
|
201
201
|
|
|
@@ -223,7 +223,7 @@ hunt for it:
|
|
|
223
223
|
Future clusters on the strategic horizon: `data` (kanban, filters,
|
|
224
224
|
table-toolbar), `agent` (agent-trace, reasoning panels).
|
|
225
225
|
|
|
226
|
-
See [`adia-ui-authoring` skill, `references/shell-patterns.md`](../../.agents/skills/adia-
|
|
226
|
+
See [`adia-ui-authoring` skill, `references/shell-patterns.md`](../../.agents/skills/adia-author/references/shell-patterns.md) (absorbed `bespoke-shell-children`) for the canonical decomposition recipe used by all three families.
|
|
227
227
|
|
|
228
228
|
## Quick start
|
|
229
229
|
|
|
@@ -288,12 +288,12 @@ Then in your markup (bespoke shape, canonical since v0.4.0):
|
|
|
288
288
|
Modules and themes both peer-depend `web-components` directly; they
|
|
289
289
|
do not import each other. Composition happens at the consumer's
|
|
290
290
|
site, not inside the library. See
|
|
291
|
-
|
|
291
|
+
`ADR-0012`
|
|
292
292
|
for the rationale and the patterns/modules collapse.
|
|
293
293
|
|
|
294
294
|
## Migration from `@adia-ai/web-components/patterns`
|
|
295
295
|
|
|
296
|
-
The `patterns/` directory was extracted from `@adia-ai/web-components` into this package in v0.0.29 (
|
|
296
|
+
The `patterns/` directory was extracted from `@adia-ai/web-components` into this package in v0.0.29 (`ADR-0012`). If you're upgrading from a pre-v0.0.29 release:
|
|
297
297
|
|
|
298
298
|
```diff
|
|
299
299
|
- import '@adia-ai/web-components/patterns/app-shell/app-shell.js';
|
|
@@ -303,7 +303,7 @@ The `patterns/` directory was extracted from `@adia-ai/web-components` into this
|
|
|
303
303
|
+ import '@adia-ai/web-modules/chat';
|
|
304
304
|
```
|
|
305
305
|
|
|
306
|
-
CSS paths shift the same way. Tag names + class names also changed in v0.0.31 (ADR-0015 — `<app-shell-ui>` → `<admin-shell>`, `<adia-chat-ui>` → `<chat-shell>`, `<adia-editor-ui>` → `<editor-shell>`, `<gen-ui-ui>` → `<gen-root>`) and v0.0.32 (ADR-0016 — module classes drop the `Adia` prefix). And the legacy authoring shapes (`<aside-ui slot>`, `<section data-chat-messages>`, etc.) were retired in v0.4.0 in favor of the bespoke vocabulary — see
|
|
306
|
+
CSS paths shift the same way. Tag names + class names also changed in v0.0.31 (ADR-0015 — `<app-shell-ui>` → `<admin-shell>`, `<adia-chat-ui>` → `<chat-shell>`, `<adia-editor-ui>` → `<editor-shell>`, `<gen-ui-ui>` → `<gen-root>`) and v0.0.32 (ADR-0016 — module classes drop the `Adia` prefix). And the legacy authoring shapes (`<aside-ui slot>`, `<section data-chat-messages>`, etc.) were retired in v0.4.0 in favor of the bespoke vocabulary — see `ADR-0024` for the full migration recipe.
|
|
307
307
|
|
|
308
308
|
## Layout
|
|
309
309
|
|
|
@@ -347,7 +347,7 @@ All `<*-shell>` hosts are **behavior-only orchestrators** — they reflect state
|
|
|
347
347
|
- **JS-bearing children** carry `connected()`/`disconnected()` lifecycle for interactive behavior (`admin-sidebar` resize, `admin-command` palette, `chat-thread` streaming scroll, `editor-canvas` zoom, etc.).
|
|
348
348
|
- **CSS-only children** (no `.js` file — only `.yaml` + `.css` + `.a2ui.json`) declare slot intent for the host's styling system to attach against. Don't author a `.js` for these; the host handles their behavior via attribute selectors.
|
|
349
349
|
|
|
350
|
-
The decomposition recipe (when to JS-bearing vs CSS-only, how to namespace state attributes, slot vocabulary conventions) is captured in the [`adia-ui-authoring` skill, `references/shell-patterns.md`](../../.agents/skills/adia-
|
|
350
|
+
The decomposition recipe (when to JS-bearing vs CSS-only, how to namespace state attributes, slot vocabulary conventions) is captured in the [`adia-ui-authoring` skill, `references/shell-patterns.md`](../../.agents/skills/adia-author/references/shell-patterns.md) (absorbed `bespoke-shell-children`).
|
|
351
351
|
|
|
352
352
|
## License
|
|
353
353
|
|