@adia-ai/web-components 0.5.21 → 0.6.0
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 +6 -0
- package/components/index.js +1 -2
- package/components/select/class.js +23 -13
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -11,6 +11,12 @@ runtime ships in the sibling `@adia-ai/a2ui-runtime` package
|
|
|
11
11
|
|
|
12
12
|
_No pending changes._
|
|
13
13
|
|
|
14
|
+
## [0.6.0] - 2026-05-18
|
|
15
|
+
|
|
16
|
+
_Lockstep ride-along (no source change in this package; companion to web-components v0.6.0 — see root CHANGELOG)._
|
|
17
|
+
|
|
18
|
+
**MINOR-line internal-dep range update:** internal `@adia-ai/*` dependency ranges move from `^0.5.0` to `^0.6.0` per AdiaUI lockstep policy.
|
|
19
|
+
|
|
14
20
|
## [0.5.21] - 2026-05-18
|
|
15
21
|
|
|
16
22
|
_Lockstep ride-along (no source change in this package; companion to web-components v0.5.21 — see root CHANGELOG)._
|
package/components/index.js
CHANGED
|
@@ -86,8 +86,7 @@ export { UINavItem } from './nav-item/nav-item.js';
|
|
|
86
86
|
export { UIOtpInput } from './otp-input/otp-input.js';
|
|
87
87
|
export { UIImage } from './image/image.js';
|
|
88
88
|
export { UISearch } from './search/search.js';
|
|
89
|
-
|
|
90
|
-
export { UIStat } from './stat/stat-ui.js';
|
|
89
|
+
export { UIStat } from './stat/stat.js';
|
|
91
90
|
export { UIProgressRow } from './progress-row/progress-row.js';
|
|
92
91
|
export { UIActionList, UIActionItem } from './action-list/action-list.js';
|
|
93
92
|
export { UIEmptyState } from './empty-state/empty-state.js';
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
import { UIFormElement } from '../../core/form.js';
|
|
15
15
|
import { anchorPopover } from '../../core/anchor.js';
|
|
16
|
+
import { untracked } from '../../core/signals.js';
|
|
16
17
|
|
|
17
18
|
function escapeHTML(s) {
|
|
18
19
|
return s.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
|
|
@@ -244,21 +245,30 @@ export class UISelect extends UIFormElement {
|
|
|
244
245
|
}
|
|
245
246
|
|
|
246
247
|
set options(list) {
|
|
247
|
-
this
|
|
248
|
-
//
|
|
249
|
-
|
|
250
|
-
|
|
248
|
+
// Wrap the internal rebuild in `untracked` so reads of `this.value` inside
|
|
249
|
+
// `#renderOptions()` (for aria-selected) and `#displayText()` (for the
|
|
250
|
+
// trigger label) don't subscribe a calling effect to this element's value
|
|
251
|
+
// signal. Without this, setting `.options` followed by `.value` from
|
|
252
|
+
// inside an effect creates a self-trigger cycle — the effect subscribes
|
|
253
|
+
// to value via #renderOptions, then notifies itself via the value write,
|
|
254
|
+
// and re-runs until the drain-loop guard fires.
|
|
255
|
+
untracked(() => {
|
|
256
|
+
this.#options = list;
|
|
257
|
+
// Ensure listbox exists before rendering (may be called before first render)
|
|
251
258
|
if (!this.#listbox) {
|
|
252
|
-
this.#listbox =
|
|
253
|
-
this.#listbox
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
259
|
+
this.#listbox = this.querySelector('[slot="listbox"]');
|
|
260
|
+
if (!this.#listbox) {
|
|
261
|
+
this.#listbox = document.createElement('div');
|
|
262
|
+
this.#listbox.setAttribute('slot', 'listbox');
|
|
263
|
+
this.#listbox.setAttribute('role', 'listbox');
|
|
264
|
+
this.#listbox.setAttribute('popover', 'manual');
|
|
265
|
+
this.appendChild(this.#listbox);
|
|
266
|
+
}
|
|
257
267
|
}
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
268
|
+
this.#renderOptions();
|
|
269
|
+
const display = this.querySelector('[slot="display"]');
|
|
270
|
+
if (display) display.textContent = this.#displayText();
|
|
271
|
+
});
|
|
262
272
|
}
|
|
263
273
|
|
|
264
274
|
get options() { return this.#options; }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adia-ai/web-components",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "AdiaUI web components — vanilla custom elements. A2UI runtime (renderer, registry, streams, wiring) lives in @adia-ai/a2ui-runtime.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "./index.d.ts",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"./core/icons-phosphor.js"
|
|
86
86
|
],
|
|
87
87
|
"dependencies": {
|
|
88
|
-
"@adia-ai/a2ui-runtime": "^0.
|
|
88
|
+
"@adia-ai/a2ui-runtime": "^0.6.0",
|
|
89
89
|
"@codemirror/commands": "^6.10.3",
|
|
90
90
|
"@codemirror/language": "^6.12.3",
|
|
91
91
|
"@codemirror/lint": "^6.9.5",
|