@adia-ai/web-components 0.6.25 → 0.6.26

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 CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog — @adia-ai/web-components
2
2
 
3
+ ## [0.6.26] — 2026-05-22
4
+
5
+ ### Added — regression tests for FB-46 (select-ui) and FB-47 (table-ui)
6
+
7
+ - **`components/select/select.test.js`** (new, 4 tests) — locks the FB-46 `[multiple]` pre-init fix: `<option selected>` captures all values, `.value="a,b"` syncs `aria-selected` via Set, single-select backward compat preserved.
8
+ - **`components/table/table.test.js`** (2 new tests) — locks the FB-47 Enter-key fix: Enter on a focused body cell fires `cell-click` with correct row data; Enter on a header cell does NOT fire `cell-click` (sort path only).
9
+ - **`components/select/select.examples.html`** — multi-select pre-selected demo variants added (option-selected form and value= form).
10
+
11
+ ### Maintenance
12
+
13
+ - Lockstep version bump. Substantive v0.6.26 source fix: `editor-sidebar` `#syncCollapsed()` 0-width guard applied (FB-42/FB-48, `@adia-ai/web-modules`). See `packages/web-modules/CHANGELOG.md`.
14
+
3
15
  ## [0.6.25] — 2026-05-22
4
16
 
5
17
  ### Fixed — `table-ui` Enter key activates focused body cell (FB-47)
@@ -392,10 +404,6 @@ Scope: custom elements, core (`AdiaElement` + reactivity + templates),
392
404
  trait system, style tokens, patterns (composite elements). The A2UI
393
405
  runtime ships in the sibling `@adia-ai/a2ui-runtime` package
394
406
  (renamed from `@adia-ai/a2ui-utils` in v0.3.0) as of `0.0.4`.
395
- ## [Unreleased]
396
-
397
- _No pending changes._
398
-
399
407
  ## [0.6.4] - 2026-05-18
400
408
 
401
409
  ### v0.6.4 — Lockstep ride-along
@@ -236,3 +236,50 @@ describe('table-ui — wrap default + opt-in', () => {
236
236
  }
237
237
  });
238
238
  });
239
+
240
+ describe('table-ui — FB-47 keyboard: Enter activates focused body cell', () => {
241
+ beforeEach(() => { document.body.innerHTML = ''; });
242
+
243
+ it('Enter on a focused body cell fires cell-click with the row data', async () => {
244
+ const el = mount('<table-ui></table-ui>');
245
+ el.columns = COLS;
246
+ el.data = ROWS;
247
+ await raf();
248
+
249
+ // ArrowDown from null initialises #focusedCell to {row:0,col:0} then
250
+ // increments to {row:1,col:0} and calls #updateFocus → [data-focused] on
251
+ // the second body row cell.
252
+ el.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowDown', bubbles: true }));
253
+ await tick();
254
+
255
+ let fired = null;
256
+ el.addEventListener('cell-click', (e) => { fired = e.detail; });
257
+
258
+ el.dispatchEvent(new KeyboardEvent('keydown', { key: 'Enter', bubbles: true }));
259
+ await tick();
260
+
261
+ expect(fired).not.toBeNull();
262
+ expect(fired.row).toMatchObject({ id: 2, name: 'Bob' }); // index 1 = second row
263
+ });
264
+
265
+ it('Enter on a focused header cell does NOT fire cell-click (sort path only)', async () => {
266
+ const el = mount('<table-ui></table-ui>');
267
+ el.columns = COLS;
268
+ el.data = ROWS;
269
+ await raf();
270
+
271
+ // ArrowUp from null initialises to {row:0,col:0} then decrements to
272
+ // {row:-1,col:0} → header row.
273
+ el.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowUp', bubbles: true }));
274
+ await tick();
275
+
276
+ let cellClickFired = false;
277
+ el.addEventListener('cell-click', () => { cellClickFired = true; });
278
+
279
+ el.dispatchEvent(new KeyboardEvent('keydown', { key: 'Enter', bubbles: true }));
280
+ await tick();
281
+
282
+ // Header Enter triggers sort (or no-op if not sortable), never cell-click.
283
+ expect(cellClickFired).toBe(false);
284
+ });
285
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adia-ai/web-components",
3
- "version": "0.6.25",
3
+ "version": "0.6.26",
4
4
  "description": "AdiaUI web components \u2014 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",