@adia-ai/web-modules 0.8.21 → 0.8.23
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 +26 -0
- package/chat/chat-composer/chat-composer.js +2 -1
- package/chat/chat-shell/chat-shell.js +26 -2
- package/chat/chat-sidebar/chat-sidebar.js +2 -1
- package/chat/chat-thread/chat-thread.js +2 -1
- package/dist/chat/chat-shell.min.js +25 -28
- package/dist/editor/editor-shell.min.js +5 -5
- package/dist/everything.min.js +112 -115
- package/dist/shell/admin-shell.min.css +1 -1
- package/dist/shell/admin-shell.min.js +3 -3
- package/dist/web-modules.min.css +1 -1
- package/dist/web-modules.sheet.js +1 -1
- package/editor/editor-canvas/editor-canvas.js +2 -1
- package/editor/editor-shell/editor-shell.js +2 -1
- package/editor/editor-sidebar/editor-sidebar.js +2 -1
- package/editor/editor-toolbar/editor-toolbar.js +2 -1
- package/form/form-popover/form-popover.a2ui.json +1 -1
- package/form/form-popover/form-popover.js +20 -1
- package/form/form-popover/form-popover.yaml +8 -6
- package/package.json +5 -5
- package/runtime/a2ui-root/a2ui-root.js +2 -1
- package/runtime/gen-root/gen-root.js +2 -1
- package/shell/admin-command/admin-command.js +2 -1
- package/shell/admin-shell/admin-shell.js +2 -1
- package/shell/admin-shell/css/admin-shell.bespoke.css +6 -2
- package/shell/admin-shell/css/admin-shell.sidebar.css +1 -1
- package/shell/admin-shell/css/admin-shell.templates.css +8 -0
- package/shell/admin-sidebar/admin-sidebar.js +2 -1
- package/shell/embed-shell/embed-shell.js +2 -1
- package/theme/theme-panel/theme-panel.js +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# Changelog — @adia-ai/web-modules
|
|
2
2
|
|
|
3
|
+
## [0.8.23] — 2026-07-30
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
- **`chat-shell` loads `@adia-ai/llm` lazily** (gh#541). The static import of `llm/index.js` — a gitignored BUILD artifact — 500'd every /site route with a full-viewport error overlay on any checkout that hadn't built packages/llm (validated on a literal fresh clone). The import now happens at first send via a `@vite-ignore` dynamic candidate chain (source layout `../../../llm`, bundle layout `../../llm` — covers repo + npm, raw + dist); a missing build degrades to an in-thread error message instead of killing the site. Fresh-clone probe: no overlay, site boots; both candidate URLs verified resolving in-repo.
|
|
7
|
+
- **`admin-page` border anatomy completed** (gh#536, operator ruling): content blocks in `admin-page-body` divide with a border-bottom ONLY between multiples (`:not(:last-child)` — a single section draws nothing); header border-bottom and footer border-top were already the rule. Site-side (same ruling): `.demo-frame` owns the frame — the embedded shell island no longer double-borders inside it, and `.demo-body` shares `--page-content-inset` so the demo body's left rag aligns with the page-header text. Surface-verified on /site/patterns/admin-page-header (island 0px/no shadow, header and body rag both at x=282).
|
|
8
|
+
- **`admin-shell` resize grabber reads above shell chrome** (gh#513, operator report). The handle's `z-index: 1/2` tied-or-lost to the content island's sticky page-header/footer bands (`z-index: 1`, later in DOM); now `z-index: 3` in both declaring files. Duplicate `[data-resize]` styling across bespoke.css + sidebar.css noted on the issue as pre-existing drift.
|
|
9
|
+
- **`admin-shell` content-island border RESTORED same-day** (gh#500 follow-up, operator report 2026-07-30). The gh#500 cut earlier in this window removed `admin-content > admin-scroll`'s border + shadow as "outer borders" — a misread: the ruling targeted COMPONENT outer borders, and the missing page-content container frame was flagged within hours. The island border, shadow, and `admin-content` border-inline are back to their pre-gh#500 state; net change for this entry across the two commits is zero on the island, and the sanctioned dividers (subnav aside `border-inline-end`, page-header `border-bottom`, footer `border-top`, sidebar edges) were never touched.
|
|
10
|
+
- **Internal peers pin the exact lockstep version** (gh#489). `@adia-ai/web-components`, `@adia-ai/a2ui-runtime`, and `@adia-ai/llm` were peer-declared as `^0.8.0`, so npm never moved them on a lockstep bump — a consumer sat on web-modules 0.8.22 beside llm 0.8.19, and the stale llm's pre-gh#462 tarball made it look like a fresh regression. Peers are now exact (`0.8.22` this cut, bumped every cut by `bump.mjs`, gated by `check:lockstep`'s new `peer-exact-mismatch`). Consumer impact: a partial upgrade now fails loudly at install (`ERESOLVE`) instead of silently mixing versions — upgrade the three peers together with web-modules, which the lockstep contract already required.
|
|
11
|
+
|
|
12
|
+
### Maintenance
|
|
13
|
+
- **`billing/` touched in this release window** (6 file(s), e.g. `billing-overview/billing-overview.html`) — carried by the entries above.
|
|
14
|
+
- **`dashboard/` touched in this release window** (2 file(s), e.g. `dashboard-layout/dashboard-layout.html`) — carried by the entries above.
|
|
15
|
+
- **`editor/` touched in this release window** (11 file(s), e.g. `editor-canvas-empty/editor-canvas-empty.html`) — carried by the entries above.
|
|
16
|
+
- **`feedback/` touched in this release window** (1 file(s), e.g. `confirm-dialog/confirm-dialog.html`) — carried by the entries above.
|
|
17
|
+
- **`settings/` touched in this release window** (2 file(s), e.g. `integrations-page/integrations-page.html`) — carried by the entries above.
|
|
18
|
+
- **`simple/` touched in this release window** (3 file(s), e.g. `simple-content/simple-content.html`) — carried by the entries above.
|
|
19
|
+
- **`theme/` touched in this release window** (2 file(s), e.g. `theme-panel/theme-panel.html`) — carried by the entries above.
|
|
20
|
+
|
|
21
|
+
## [0.8.22] — 2026-07-29
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
- **`form-popover-ui`'s summary tracks programmatic `checked` mutations** (independent-review finding, 2026-07-29). The module listened only to bubbling change/input, but `el.checked = true` reflects the attribute without any event — so the trigger text went stale, contradicting the module's own "DOM is the source of truth" rule. A MutationObserver on the body element (subtree, `[checked]` filter + childList) now covers the non-event paths, including check-ui rows added or removed after stamping; scoped to the body so the module's own trigger writes can't feed back. Disconnect symmetric. Tests 11 → 13.
|
|
25
|
+
|
|
26
|
+
### Maintenance
|
|
27
|
+
- **`dist/` bundles rebuilt** in this cut's window (1 file(s)) — regenerated from the source changes described above, not independent edits.
|
|
28
|
+
|
|
3
29
|
## [0.8.21] — 2026-07-28
|
|
4
30
|
|
|
5
31
|
### Changed
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
* backwards compat.
|
|
33
33
|
*/
|
|
34
34
|
|
|
35
|
+
import { defineIfFree } from '../../../web-components/core/register.js';
|
|
35
36
|
import { UIElement } from '../../../web-components/core/element.js';
|
|
36
37
|
|
|
37
38
|
class ChatComposer extends UIElement {
|
|
@@ -103,5 +104,5 @@ class ChatComposer extends UIElement {
|
|
|
103
104
|
}
|
|
104
105
|
}
|
|
105
106
|
|
|
106
|
-
|
|
107
|
+
defineIfFree('chat-composer', ChatComposer);
|
|
107
108
|
export { ChatComposer };
|
|
@@ -1,6 +1,12 @@
|
|
|
1
|
+
import { defineIfFree } from '../../../web-components/core/register.js';
|
|
1
2
|
import { UIElement } from '../../../web-components/core/element.js';
|
|
2
3
|
import { renderMarkdown } from '../../../web-components/core/markdown.js';
|
|
3
|
-
|
|
4
|
+
// LAZY llm import (gh#541): packages/llm/index.js is a BUILD ARTIFACT
|
|
5
|
+
// (gitignored; TS source only in a fresh checkout). A static import here
|
|
6
|
+
// rides the everything-barrel, so a missing artifact 500'd EVERY /site
|
|
7
|
+
// route with a full-viewport vite-error-overlay — the freeze-shaped dev
|
|
8
|
+
// failure. Deferred to first send: a missing build degrades chat-shell's
|
|
9
|
+
// LLM wiring with an in-thread error instead of killing the site.
|
|
4
10
|
import '../../../web-components/components/code/code.js';
|
|
5
11
|
|
|
6
12
|
function escapeHTML(s) {
|
|
@@ -270,6 +276,24 @@ class ChatShell extends UIElement {
|
|
|
270
276
|
...opts,
|
|
271
277
|
};
|
|
272
278
|
|
|
279
|
+
let streamChat;
|
|
280
|
+
// Candidate chain (gh#541): '../../../llm' resolves from the SOURCE
|
|
281
|
+
// layout (repo chat/chat-shell/ AND npm @adia-ai/web-modules/chat/
|
|
282
|
+
// chat-shell/); '../../llm' resolves from the BUNDLE layout (dist/ is
|
|
283
|
+
// one level shallower in both worlds). @vite-ignore keeps vite's
|
|
284
|
+
// import-analysis from resolving the build artifact at transform time
|
|
285
|
+
// — a missing file otherwise 500s the module + overlays every route.
|
|
286
|
+
for (const cand of ['../../../llm/index.js', '../../llm/index.js']) {
|
|
287
|
+
try {
|
|
288
|
+
({ streamChat } = await import(/* @vite-ignore */ new URL(cand, import.meta.url).href));
|
|
289
|
+
break;
|
|
290
|
+
} catch { /* try next */ }
|
|
291
|
+
}
|
|
292
|
+
if (!streamChat) {
|
|
293
|
+
this.appendMessage({ role: 'error', content: '@adia-ai/llm is not available — in a fresh checkout run the packages/llm build (see gh#527/gh#541).' });
|
|
294
|
+
this.#emit('error', { error: new Error('llm build artifact missing') });
|
|
295
|
+
return;
|
|
296
|
+
}
|
|
273
297
|
for await (const chunk of streamChat(streamOpts)) {
|
|
274
298
|
if (chunk.type === 'text') {
|
|
275
299
|
this.appendChunk(chunk.text);
|
|
@@ -330,5 +354,5 @@ class ChatShell extends UIElement {
|
|
|
330
354
|
}
|
|
331
355
|
}
|
|
332
356
|
|
|
333
|
-
|
|
357
|
+
defineIfFree('chat-shell', ChatShell);
|
|
334
358
|
export { ChatShell };
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
* code should prefer <chat-sidebar>.
|
|
38
38
|
*/
|
|
39
39
|
|
|
40
|
+
import { defineIfFree } from '../../../web-components/core/register.js';
|
|
40
41
|
import { UIElement } from '../../../web-components/core/element.js';
|
|
41
42
|
|
|
42
43
|
const SNAP_THRESHOLD = 96;
|
|
@@ -225,5 +226,5 @@ class ChatSidebar extends UIElement {
|
|
|
225
226
|
}
|
|
226
227
|
}
|
|
227
228
|
|
|
228
|
-
|
|
229
|
+
defineIfFree('chat-sidebar', ChatSidebar);
|
|
229
230
|
export { ChatSidebar };
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
* markdown + escape rules); the thread just owns the scroll surface.
|
|
30
30
|
*/
|
|
31
31
|
|
|
32
|
+
import { defineIfFree } from '../../../web-components/core/register.js';
|
|
32
33
|
import { UIElement } from '../../../web-components/core/element.js';
|
|
33
34
|
|
|
34
35
|
const SCROLL_BOTTOM_TOLERANCE = 40; // px from bottom that counts as "at bottom"
|
|
@@ -104,5 +105,5 @@ class ChatThread extends UIElement {
|
|
|
104
105
|
}
|
|
105
106
|
}
|
|
106
107
|
|
|
107
|
-
|
|
108
|
+
defineIfFree('chat-thread', ChatThread);
|
|
108
109
|
export { ChatThread };
|