@kouji-ui/core 0.9.0 → 0.9.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kouji-ui/core",
3
- "version": "0.9.0",
3
+ "version": "0.9.1",
4
4
  "description": "Headless Angular UI primitives — signal-driven directives with WCAG 2.1 AAA semantics, no CDK, and a handful of opt-in global stylesheets.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1549,7 +1549,9 @@ declare function releaseInert(el: Element): void;
1549
1549
  * Makes everything behind a modal `panel` inert: every child of `<body>`
1550
1550
  * outside the overlay container (except script/style nodes and live
1551
1551
  * regions), plus every overlay wrapper opened before the panel's own — a
1552
- * dialog stacked on a dialog freezes the one below. A body child that
1552
+ * dialog stacked on a dialog freezes the one below. The container itself is
1553
+ * never inerted, even for a panel mounted outside it, so overlays the modal
1554
+ * opens afterwards (dropdowns, pickers) stay usable. A body child that
1553
1555
  * contains the panel (an inline-mounted modal) is left alone, because
1554
1556
  * inerting it would inert the panel itself.
1555
1557
  *
@@ -12386,11 +12388,20 @@ declare class KjTableKeyboardNav implements KjTableKeyboardNavContext {
12386
12388
  private readonly cells;
12387
12389
  /** Id of the cell the user focused last; survives the cell leaving the DOM. */
12388
12390
  private readonly activeId;
12391
+ /** Tab stop resolved after the last render (see {@link tabStopId}). */
12392
+ private readonly resolvedStopId;
12389
12393
  /**
12390
12394
  * Id of the cell that owns `tabindex="0"`: the last focused cell while it
12391
12395
  * is rendered, else the first rendered cell in DOM order.
12396
+ *
12397
+ * Every cell reads this, so it must not touch the `cells` query: each
12398
+ * stamped cell view dirties the query, and a per-cell read would re-collect
12399
+ * it and re-sort the DOM once per cell — O(n²) for an n-cell body. It is
12400
+ * resolved once per render instead, after the cells are in the DOM. Until
12401
+ * then (and on the server) no cell is a Tab stop.
12392
12402
  */
12393
12403
  readonly tabStopId: _angular_core.Signal<string | null>;
12404
+ constructor();
12394
12405
  /** Record `cellId` as the last focused cell. @param cellId TanStack `cell.id`. */
12395
12406
  setActive(cellId: string): void;
12396
12407
  onKeyDown(event: KeyboardEvent): void;