@kouji-ui/core 0.8.2 → 0.8.4

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.
@@ -223,10 +223,73 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
223
223
  args: [{ providedIn: 'root' }]
224
224
  }] });
225
225
 
226
+ /** Default `z-index` of the first (outermost) open overlay. */
227
+ const KJ_OVERLAY_Z_BASE_DEFAULT = 1000;
228
+ /**
229
+ * Base `z-index` of the overlay stack — the level the first open overlay
230
+ * gets; each nested overlay opened on top of it gets the next integer up.
231
+ * Override per app via DI, or at runtime with `--kj-overlay-z-base` on
232
+ * `:root` (the CSS custom property wins when both are set).
233
+ */
234
+ const KJ_OVERLAY_Z_BASE = new InjectionToken('KJ_OVERLAY_Z_BASE', {
235
+ providedIn: 'root',
236
+ factory: () => KJ_OVERLAY_Z_BASE_DEFAULT,
237
+ });
238
+ /**
239
+ * CSS custom property every overlay panel / backdrop reads as
240
+ * `z-index: var(--kj-overlay-z, <default>)`. Written by
241
+ * {@link applyOverlayZIndex} on open and removed on close.
242
+ */
243
+ const KJ_OVERLAY_Z_VAR = '--kj-overlay-z';
244
+ /**
245
+ * Writes the stack-assigned `z-index` for one overlay to the DOM: the panel
246
+ * receives `--kj-overlay-z` (so its component CSS resolves the level), and
247
+ * when the panel sits inside a `.kj-overlay-wrapper` the wrapper receives
248
+ * the same custom property plus an inline `z-index`. Giving the wrapper the
249
+ * `z-index` turns it into one stacking context per overlay, so a backdrop
250
+ * and its panel move as a unit and a nested overlay's wrapper always paints
251
+ * above its opener's — regardless of the fixed `z-index` each component's
252
+ * stylesheet declares.
253
+ */
254
+ function applyOverlayZIndex(panel, zIndex) {
255
+ if (!panel)
256
+ return;
257
+ const z = String(zIndex);
258
+ panel.style.setProperty(KJ_OVERLAY_Z_VAR, z);
259
+ const wrapper = panel.parentElement;
260
+ if (wrapper?.classList.contains('kj-overlay-wrapper')) {
261
+ wrapper.style.setProperty(KJ_OVERLAY_Z_VAR, z);
262
+ wrapper.style.zIndex = z;
263
+ }
264
+ }
265
+ /** Reverses {@link applyOverlayZIndex} — call before the panel leaves its wrapper. */
266
+ function clearOverlayZIndex(panel) {
267
+ if (!panel)
268
+ return;
269
+ panel.style.removeProperty(KJ_OVERLAY_Z_VAR);
270
+ const wrapper = panel.parentElement;
271
+ if (wrapper?.classList.contains('kj-overlay-wrapper')) {
272
+ wrapper.style.removeProperty(KJ_OVERLAY_Z_VAR);
273
+ wrapper.style.removeProperty('z-index');
274
+ }
275
+ }
226
276
  /**
227
277
  * Global coordinator for nested-overlay behaviour: stack ordering, Escape
228
- * routing, and outside-click detection. Only the topmost overlay receives
229
- * Esc / outside-click — prevents the double-close problem.
278
+ * routing, outside-click detection, and z-index stacking. Only the topmost
279
+ * overlay receives Esc / outside-click — prevents the double-close problem.
280
+ *
281
+ * **Stacking.** Every overlay registers here when it opens and receives a
282
+ * `z-index` one above the highest overlay open at that moment (the first
283
+ * one gets the base, `1000` by default). The controller writes it to the
284
+ * panel and its wrapper as `--kj-overlay-z`, and every overlay stylesheet
285
+ * in the kit reads `z-index: var(--kj-overlay-z, …)`, so a select opened
286
+ * inside a command palette, a popover inside a dialog, or a dialog opened
287
+ * from a palette always paints above its opener. Closing an overlay pops it
288
+ * off the stack; the ones left keep their level, and the next overlay opens
289
+ * one above whatever is still open. Change the base app-wide with
290
+ * `KJ_OVERLAY_Z_BASE` (DI) or `--kj-overlay-z-base` on `:root`. Toasts are
291
+ * not part of the stack — they live in their own layer above it
292
+ * (`--kj-toast-z-index`, default `2000`).
230
293
  *
231
294
  * SSR-safe: every DOM access guarded by isPlatformBrowser.
232
295
  *
@@ -234,11 +297,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
234
297
  * @doc
235
298
  * @doc-name overlay-stack
236
299
  * @doc-is-main
237
- * @doc-description Routes Escape and outside-click to only the topmost overlay when overlays are nested.
300
+ * @doc-description Routes Escape and outside-click to only the topmost overlay when overlays are nested, and stacks each nested overlay above its opener.
238
301
  */
239
302
  class KjOverlayStack {
240
303
  platformId = inject(PLATFORM_ID);
241
304
  isBrowser = isPlatformBrowser(this.platformId);
305
+ configuredBase = inject(KJ_OVERLAY_Z_BASE);
242
306
  _stack = signal([], /* @ts-ignore */
243
307
  ...(ngDevMode ? [{ debugName: "_stack" }] : /* istanbul ignore next */ []));
244
308
  _listenersInstalled = false;
@@ -246,7 +310,7 @@ class KjOverlayStack {
246
310
  _onPointerDown = (e) => this.handlePointerDown(e);
247
311
  register(id, opts) {
248
312
  if (!this.isBrowser) {
249
- return { unregister: () => { }, isTopmost: computed(() => false) };
313
+ return { unregister: () => { }, isTopmost: computed(() => false), zIndex: this.configuredBase };
250
314
  }
251
315
  const entry = {
252
316
  id,
@@ -256,6 +320,7 @@ class KjOverlayStack {
256
320
  closeOnOutside: opts.closeOnOutside ?? true,
257
321
  },
258
322
  contentEl: null,
323
+ zIndex: this.nextZIndex,
259
324
  };
260
325
  this._stack.update(s => [...s, entry]);
261
326
  this.ensureListeners();
@@ -270,6 +335,7 @@ class KjOverlayStack {
270
335
  this.maybeRemoveListeners();
271
336
  },
272
337
  isTopmost,
338
+ zIndex: entry.zIndex,
273
339
  };
274
340
  }
275
341
  markContentEl(id, el) {
@@ -280,6 +346,34 @@ class KjOverlayStack {
280
346
  entry.contentEl = el;
281
347
  }
282
348
  get stackSize() { return this._stack().length; }
349
+ /** `z-index` of a registered overlay, or `null` when `id` is not open. */
350
+ zIndexOf(id) {
351
+ return this._stack().find(e => e.id === id)?.zIndex ?? null;
352
+ }
353
+ /**
354
+ * Base level of the stack: `--kj-overlay-z-base` on `:root` when it holds
355
+ * a number, otherwise the `KJ_OVERLAY_Z_BASE` token (default `1000`).
356
+ */
357
+ get baseZIndex() {
358
+ if (this.isBrowser && typeof getComputedStyle === 'function') {
359
+ const raw = getComputedStyle(document.documentElement).getPropertyValue('--kj-overlay-z-base').trim();
360
+ const n = raw === '' ? NaN : Number(raw);
361
+ if (Number.isFinite(n))
362
+ return n;
363
+ }
364
+ return this.configuredBase;
365
+ }
366
+ /** The level the next overlay to open will receive: one above the topmost open one, or the base. */
367
+ get nextZIndex() {
368
+ const s = this._stack();
369
+ if (s.length === 0)
370
+ return this.baseZIndex;
371
+ let max = -Infinity;
372
+ for (const e of s)
373
+ if (e.zIndex > max)
374
+ max = e.zIndex;
375
+ return max + 1;
376
+ }
283
377
  ensureListeners() {
284
378
  if (this._listenersInstalled)
285
379
  return;
@@ -429,6 +523,9 @@ class KjOverlayController {
429
523
  this.stackHandle = this.stack.register(this.id, { onClose: () => this.close('esc') });
430
524
  if (this._panel())
431
525
  this.stack.markContentEl(this.id, this._panel());
526
+ // Stacking: the panel (and its wrapper, when portalled) take the level
527
+ // the stack just assigned — one above every overlay open right now.
528
+ applyOverlayZIndex(this._panel(), this.stackHandle.zIndex);
432
529
  this.runTransition('open', () => {
433
530
  this._state.set('open');
434
531
  s.focusTrap?.focusFirst();
@@ -440,6 +537,7 @@ class KjOverlayController {
440
537
  const s = this.strategies;
441
538
  this.runTransition('close', () => {
442
539
  s.focusTrap?.restoreFocus();
540
+ clearOverlayZIndex(this._panel());
443
541
  this.stackHandle?.unregister();
444
542
  this.stackHandle = null;
445
543
  s.scrollLock?.onClose?.();
@@ -612,6 +710,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
612
710
  * directly — a single positioned root owns z-stacking, pointer-events
613
711
  * isolation, and cleanup ordering across the whole overlay system.
614
712
  *
713
+ * Stacking inside the root is owned by `KjOverlayStack`: each wrapper gets
714
+ * an inline `z-index` (base `1000`, one higher per nested level) when its
715
+ * overlay opens, so a later overlay always paints above the ones already
716
+ * open. The root itself sits at `--kj-overlay-z-base` (default `1000`).
717
+ *
615
718
  * @doc-category Core/Overlay
616
719
  * @doc
617
720
  * @doc-name overlay-container
@@ -3041,7 +3144,23 @@ class KjListItem {
3041
3144
  setSize = signal(null, /* @ts-ignore */
3042
3145
  ...(ngDevMode ? [{ debugName: "setSize" }] : /* istanbul ignore next */ []));
3043
3146
  selection = inject(KjSelectionModel, { optional: true });
3044
- cfg = inject(KJ_LIST_NAVIGATOR_CONFIG, { optional: true });
3147
+ /**
3148
+ * The list container this item belongs to — the nearest
3149
+ * `KJ_LIST_NAVIGATOR_CONFIG` on the element-injector path, i.e. the
3150
+ * innermost list-style composite that encloses this item. `null` when
3151
+ * the item is rendered outside any container.
3152
+ *
3153
+ * This is what makes a nested composite (a select inside a command
3154
+ * palette, a menu inside a select, a combobox inside a dialog) keep
3155
+ * its items to itself: the item answers to exactly one container, and
3156
+ * every container filters its own `contentChildren(KjListItem)` query
3157
+ * down to the items that name it here (see {@link ownListItems}).
3158
+ * Without that filter a `descendants: true` query reaches straight
3159
+ * through a nested composite and steals its rows — the outer list then
3160
+ * navigates, filters, numbers (`aria-posinset`) and activates options
3161
+ * that are not its own.
3162
+ */
3163
+ container = inject(KJ_LIST_NAVIGATOR_CONFIG, { optional: true });
3045
3164
  /**
3046
3165
  * `aria-selected` driven by the injected selection model. `null` when
3047
3166
  * no model is provided, the value is undefined, or the mode is
@@ -3108,7 +3227,7 @@ class KjListItem {
3108
3227
  if (this.selection && v !== undefined) {
3109
3228
  ({ closeRequested } = this.selection.toggle(v));
3110
3229
  }
3111
- this.cfg?.afterSelect?.(v, closeRequested);
3230
+ this.container?.afterSelect?.(v, closeRequested);
3112
3231
  this.activate.emit(v);
3113
3232
  }
3114
3233
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjListItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
@@ -3406,6 +3525,45 @@ const injectListItem = () => inject(KjListItem);
3406
3525
  const injectSelectionModel = () => inject(KjSelectionModel);
3407
3526
  const injectFilterableList = () => inject(KjFilterableList);
3408
3527
 
3528
+ /**
3529
+ * Narrows a container's `contentChildren(KjListItem, { descendants: true })`
3530
+ * query to the items that actually belong to that container.
3531
+ *
3532
+ * Every list-style root (`KjSelect`, `KjCommandPalette`, `KjCombobox`,
3533
+ * `KjDropdownMenu(Content)`, `KjMenubar`, `KjTreeSelect`,
3534
+ * `KjCascadeSelect`) collects its rows with a `descendants: true` content
3535
+ * query. That query is blind to composition: it walks straight through a
3536
+ * nested list composite and hoovers up *its* rows too. A `<kj-select>`
3537
+ * placed inside a `<kj-command-palette>` therefore handed its options to
3538
+ * the palette, which then navigated onto them, filtered them with its own
3539
+ * query, renumbered their `aria-posinset` / `aria-setsize`, and — on
3540
+ * Enter — activated one of them as if it were a command row.
3541
+ *
3542
+ * `KjListItem` already resolves its one true owner through the element
3543
+ * injector ({@link KjListItem.container}: the nearest
3544
+ * `KJ_LIST_NAVIGATOR_CONFIG`, which a nested composite provides at its own
3545
+ * root). Filtering on that pointer gives every container exactly the items
3546
+ * inside its own list scope and nothing from a composite nested within it,
3547
+ * for any nesting — select in palette, select in dialog, menu in palette,
3548
+ * combobox in select.
3549
+ *
3550
+ * Items that resolve no container at all (`container === null` — rendered
3551
+ * outside any root) are kept, so a bare `[kjListItem]` used with a
3552
+ * hand-rolled container still registers.
3553
+ *
3554
+ * @param owner The container running the query — pass `this`.
3555
+ * @param query The raw `contentChildren(KjListItem, { descendants: true })` signal.
3556
+ *
3557
+ * @doc-category Core/Primitives
3558
+ */
3559
+ function ownListItems(
3560
+ // Typed as `object` rather than `KjListNavigatorConfig`: every caller
3561
+ // passes `this` from the field initializer that defines its own `items`,
3562
+ // and the stricter type would make that a circular type reference.
3563
+ owner, query) {
3564
+ return computed(() => query().filter(i => i.container === null || i.container === owner));
3565
+ }
3566
+
3409
3567
  const DEEP_SIGNAL = Symbol('kj.deep-signal');
3410
3568
  /**
3411
3569
  * Wraps a `Signal<T>` so that `result.foo` returns a child `Signal<T['foo']>`
@@ -14352,8 +14510,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
14352
14510
  * @doc-category Core/Overlay
14353
14511
  */
14354
14512
  class KjDropdownMenu {
14355
- /** All `KjListItem`s under this root. Source of truth for nav + type-ahead. */
14356
- items = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "items" } : /* istanbul ignore next */ {}), descendants: true });
14513
+ /**
14514
+ * Raw content query. `descendants: true` reaches straight through a
14515
+ * list composite nested inside this menu root, so it is never read
14516
+ * directly — `items` narrows it to this container's own scope.
14517
+ */
14518
+ allItems = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "allItems" } : /* istanbul ignore next */ {}), descendants: true });
14519
+ /**
14520
+ * All `KjListItem`s under this root. Source of truth for nav + type-ahead.
14521
+ *
14522
+ * Items owned by a list composite nested inside this one (a select
14523
+ * inside a palette, a menu inside a select) answer to that composite,
14524
+ * not to this one.
14525
+ */
14526
+ items = ownListItems(this, this.allItems);
14357
14527
  /** Menu items are actions — no selection model. Kept as `Object.is`. */
14358
14528
  compareBy = signal(Object.is, /* @ts-ignore */
14359
14529
  ...(ngDevMode ? [{ debugName: "compareBy" }] : /* istanbul ignore next */ []));
@@ -14370,7 +14540,7 @@ class KjDropdownMenu {
14370
14540
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjDropdownMenu, deps: [], target: i0.ɵɵFactoryTarget.Directive });
14371
14541
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "22.0.5", type: KjDropdownMenu, isStandalone: true, selector: "[kjDropdownMenu]", providers: [
14372
14542
  { provide: KJ_LIST_NAVIGATOR_CONFIG, useExisting: forwardRef(() => KjDropdownMenu) },
14373
- ], queries: [{ propertyName: "items", predicate: KjListItem, descendants: true, isSignal: true }], exportAs: ["kjDropdownMenu"], ngImport: i0 });
14543
+ ], queries: [{ propertyName: "allItems", predicate: KjListItem, descendants: true, isSignal: true }], exportAs: ["kjDropdownMenu"], ngImport: i0 });
14374
14544
  }
14375
14545
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjDropdownMenu, decorators: [{
14376
14546
  type: Directive,
@@ -14382,7 +14552,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
14382
14552
  { provide: KJ_LIST_NAVIGATOR_CONFIG, useExisting: forwardRef(() => KjDropdownMenu) },
14383
14553
  ],
14384
14554
  }]
14385
- }], propDecorators: { items: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KjListItem), { ...{ descendants: true }, isSignal: true }] }] } });
14555
+ }], propDecorators: { allItems: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KjListItem), { ...{ descendants: true }, isSignal: true }] }] } });
14386
14556
 
14387
14557
  function deferredMount() {
14388
14558
  let ctx = null;
@@ -14459,8 +14629,20 @@ class KjDropdownMenuContent {
14459
14629
  kjMount = input('portal', /* @ts-ignore */
14460
14630
  ...(ngDevMode ? [{ debugName: "kjMount" }] : /* istanbul ignore next */ []));
14461
14631
  // ── KjListNavigatorConfig ────────────────────────────────────────────
14462
- /** All `KjListItem`s projected into the menu panel. */
14463
- items = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "items" } : /* istanbul ignore next */ {}), descendants: true });
14632
+ /**
14633
+ * Raw content query. `descendants: true` reaches straight through a
14634
+ * list composite nested inside this menu panel, so it is never read
14635
+ * directly — `items` narrows it to this container's own scope.
14636
+ */
14637
+ allItems = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "allItems" } : /* istanbul ignore next */ {}), descendants: true });
14638
+ /**
14639
+ * All `KjListItem`s projected into the menu panel.
14640
+ *
14641
+ * Items owned by a list composite nested inside this one (a select
14642
+ * inside a palette, a menu inside a select) answer to that composite,
14643
+ * not to this one.
14644
+ */
14645
+ items = ownListItems(this, this.allItems);
14464
14646
  /** Menu items are actions — no selection model. Kept as `Object.is`. */
14465
14647
  compareBy = signal(Object.is, /* @ts-ignore */
14466
14648
  ...(ngDevMode ? [{ debugName: "compareBy" }] : /* istanbul ignore next */ []));
@@ -14576,7 +14758,7 @@ class KjDropdownMenuContent {
14576
14758
  useFactory: () => signal('roving'),
14577
14759
  },
14578
14760
  KjTypeAhead,
14579
- ], queries: [{ propertyName: "items", predicate: KjListItem, descendants: true, isSignal: true }], hostDirectives: [{ directive: KjOverlayPanel, inputs: ["kjFor", "kjFor"] }, { directive: KjListNavigator, inputs: ["kjOrientation", "kjOrientation", "kjFocusMode", "kjFocusMode"] }], ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
14761
+ ], queries: [{ propertyName: "allItems", predicate: KjListItem, descendants: true, isSignal: true }], hostDirectives: [{ directive: KjOverlayPanel, inputs: ["kjFor", "kjFor"] }, { directive: KjListNavigator, inputs: ["kjOrientation", "kjOrientation", "kjFocusMode", "kjFocusMode"] }], ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
14580
14762
  }
14581
14763
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjDropdownMenuContent, decorators: [{
14582
14764
  type: Component,
@@ -14622,7 +14804,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
14622
14804
  },
14623
14805
  template: `<ng-content />`,
14624
14806
  }]
14625
- }], ctorParameters: () => [], propDecorators: { kjSide: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjSide", required: false }] }], kjAlign: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjAlign", required: false }] }], kjMount: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjMount", required: false }] }], items: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KjListItem), { ...{ descendants: true }, isSignal: true }] }] } });
14807
+ }], ctorParameters: () => [], propDecorators: { kjSide: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjSide", required: false }] }], kjAlign: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjAlign", required: false }] }], kjMount: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjMount", required: false }] }], allItems: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KjListItem), { ...{ descendants: true }, isSignal: true }] }] } });
14626
14808
 
14627
14809
  /**
14628
14810
  * An individual item inside a `[kjDropdownMenu]` panel.
@@ -15052,7 +15234,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
15052
15234
  const KJ_TOAST_SONNER_STRATEGY = Object.freeze({
15053
15235
  maxVisible: 3,
15054
15236
  gap: 14,
15055
- baseZIndex: 100,
15237
+ baseZIndex: 2000,
15056
15238
  positionX: 'end',
15057
15239
  positionY: 'bottom',
15058
15240
  duration: 4000,
@@ -15066,7 +15248,7 @@ const KJ_TOAST_SONNER_STRATEGY = Object.freeze({
15066
15248
  const KJ_TOAST_LIST_STRATEGY = Object.freeze({
15067
15249
  maxVisible: Number.POSITIVE_INFINITY,
15068
15250
  gap: 8,
15069
- baseZIndex: 100,
15251
+ baseZIndex: 2000,
15070
15252
  positionX: 'end',
15071
15253
  positionY: 'bottom',
15072
15254
  duration: 5000,
@@ -15907,8 +16089,20 @@ class KjCommandPalette {
15907
16089
  kjActivate = output();
15908
16090
  /** Stable listbox id for `aria-controls` wiring. */
15909
16091
  listId = nextCommandListId();
15910
- /** All `KjListItem`s under this palette. Source of truth for nav + filter. */
15911
- items = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "items" } : /* istanbul ignore next */ {}), descendants: true });
16092
+ /**
16093
+ * Raw content query. `descendants: true` reaches straight through a
16094
+ * list composite nested inside this palette, so it is never read
16095
+ * directly — `items` narrows it to this container's own scope.
16096
+ */
16097
+ allItems = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "allItems" } : /* istanbul ignore next */ {}), descendants: true });
16098
+ /**
16099
+ * All `KjListItem`s under this palette. Source of truth for nav + filter.
16100
+ *
16101
+ * Items owned by a list composite nested inside this one (a select
16102
+ * inside a palette, a menu inside a select) answer to that composite,
16103
+ * not to this one.
16104
+ */
16105
+ items = ownListItems(this, this.allItems);
15912
16106
  filterSvc = inject(KjFilterableList);
15913
16107
  /** Visible (filter-passing) items. */
15914
16108
  visibleItems = computed(() => this.filterSvc.visibleItems(), /* @ts-ignore */
@@ -16036,7 +16230,7 @@ class KjCommandPalette {
16036
16230
  { provide: KJ_LIST_NAVIGATOR_CONFIG, useExisting: forwardRef(() => KjCommandPalette) },
16037
16231
  KjFilterableList,
16038
16232
  KjTypeAhead,
16039
- ], queries: [{ propertyName: "items", predicate: KjListItem, descendants: true, isSignal: true }], exportAs: ["kjCommandPalette"], ngImport: i0 });
16233
+ ], queries: [{ propertyName: "allItems", predicate: KjListItem, descendants: true, isSignal: true }], exportAs: ["kjCommandPalette"], ngImport: i0 });
16040
16234
  }
16041
16235
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjCommandPalette, decorators: [{
16042
16236
  type: Directive,
@@ -16050,7 +16244,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
16050
16244
  KjTypeAhead,
16051
16245
  ],
16052
16246
  }]
16053
- }], ctorParameters: () => [], propDecorators: { kjFilter: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjFilter", required: false }] }], kjShouldFilter: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjShouldFilter", required: false }] }], kjLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjLoading", required: false }] }], kjAutoActivateFirst: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjAutoActivateFirst", required: false }] }], kjDismissOnActivate: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjDismissOnActivate", required: false }] }], kjValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjValue", required: false }] }, { type: i0.Output, args: ["kjValueChange"] }], kjQuery: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjQuery", required: false }] }, { type: i0.Output, args: ["kjQueryChange"] }], kjActivate: [{ type: i0.Output, args: ["kjActivate"] }], items: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KjListItem), { ...{ descendants: true }, isSignal: true }] }] } });
16247
+ }], ctorParameters: () => [], propDecorators: { kjFilter: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjFilter", required: false }] }], kjShouldFilter: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjShouldFilter", required: false }] }], kjLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjLoading", required: false }] }], kjAutoActivateFirst: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjAutoActivateFirst", required: false }] }], kjDismissOnActivate: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjDismissOnActivate", required: false }] }], kjValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjValue", required: false }] }, { type: i0.Output, args: ["kjValueChange"] }], kjQuery: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjQuery", required: false }] }, { type: i0.Output, args: ["kjQueryChange"] }], kjActivate: [{ type: i0.Output, args: ["kjActivate"] }], allItems: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KjListItem), { ...{ descendants: true }, isSignal: true }] }] } });
16054
16248
 
16055
16249
  /**
16056
16250
  * Search input inside the command palette. Composes `KjListNavigator`
@@ -20473,8 +20667,20 @@ class KjSelect {
20473
20667
  focus() {
20474
20668
  this._triggerEl()?.nativeElement.focus();
20475
20669
  }
20476
- /** All `KjListItem`s under this select — source for navigator + type-ahead. */
20477
- items = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "items" } : /* istanbul ignore next */ {}), descendants: true });
20670
+ /**
20671
+ * Raw content query. `descendants: true` reaches straight through a
20672
+ * list composite nested inside this select, so it is never read
20673
+ * directly — `items` narrows it to this container's own scope.
20674
+ */
20675
+ allItems = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "allItems" } : /* istanbul ignore next */ {}), descendants: true });
20676
+ /**
20677
+ * All `KjListItem`s under this select — source for navigator + type-ahead.
20678
+ *
20679
+ * Items owned by a list composite nested inside this one (a select
20680
+ * inside a palette, a menu inside a select) answer to that composite,
20681
+ * not to this one.
20682
+ */
20683
+ items = ownListItems(this, this.allItems);
20478
20684
  /** Implements `KjListNavigatorConfig.mode`. */
20479
20685
  mode = computed(() => this._multiple() ? 'multi' : 'single', /* @ts-ignore */
20480
20686
  ...(ngDevMode ? [{ debugName: "mode" }] : /* istanbul ignore next */ []));
@@ -20510,7 +20716,7 @@ class KjSelect {
20510
20716
  KjSelectionModel,
20511
20717
  KjTypeAhead,
20512
20718
  KjOverlayController,
20513
- ], queries: [{ propertyName: "items", predicate: KjListItem, descendants: true, isSignal: true }], exportAs: ["kjSelect"], ngImport: i0 });
20719
+ ], queries: [{ propertyName: "allItems", predicate: KjListItem, descendants: true, isSignal: true }], exportAs: ["kjSelect"], ngImport: i0 });
20514
20720
  }
20515
20721
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjSelect, decorators: [{
20516
20722
  type: Directive,
@@ -20526,7 +20732,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
20526
20732
  KjOverlayController,
20527
20733
  ],
20528
20734
  }]
20529
- }], ctorParameters: () => [], propDecorators: { kjSelectValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjSelectValue", required: false }] }, { type: i0.Output, args: ["kjSelectValueChange"] }], kjCompareBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjCompareBy", required: false }] }], items: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KjListItem), { ...{ descendants: true }, isSignal: true }] }] } });
20735
+ }], ctorParameters: () => [], propDecorators: { kjSelectValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjSelectValue", required: false }] }, { type: i0.Output, args: ["kjSelectValueChange"] }], kjCompareBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjCompareBy", required: false }] }], allItems: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KjListItem), { ...{ descendants: true }, isSignal: true }] }] } });
20530
20736
 
20531
20737
  /**
20532
20738
  * Wraps `onClick()` and forces `ariaHasPopup` to `'listbox'` so the trigger
@@ -20781,8 +20987,20 @@ class KjCombobox {
20781
20987
  ...(ngDevMode ? [{ debugName: "compareBy" }] : /* istanbul ignore next */ []));
20782
20988
  /** Stable listbox id for `aria-controls` wiring. */
20783
20989
  listboxId = nextId();
20784
- /** All `KjListItem`s under this combobox — source for nav + filter. */
20785
- items = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "items" } : /* istanbul ignore next */ {}), descendants: true });
20990
+ /**
20991
+ * Raw content query. `descendants: true` reaches straight through a
20992
+ * list composite nested inside this combobox, so it is never read
20993
+ * directly — `items` narrows it to this container's own scope.
20994
+ */
20995
+ allItems = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "allItems" } : /* istanbul ignore next */ {}), descendants: true });
20996
+ /**
20997
+ * All `KjListItem`s under this combobox — source for nav + filter.
20998
+ *
20999
+ * Items owned by a list composite nested inside this one (a select
21000
+ * inside a palette, a menu inside a select) answer to that composite,
21001
+ * not to this one.
21002
+ */
21003
+ items = ownListItems(this, this.allItems);
20786
21004
  /** Filter-aware visible items, exposed for KjListNavigatorConfig. */
20787
21005
  visibleItems = computed(() => this.filter.visibleItems(), /* @ts-ignore */
20788
21006
  ...(ngDevMode ? [{ debugName: "visibleItems" }] : /* istanbul ignore next */ []));
@@ -20934,7 +21152,7 @@ class KjCombobox {
20934
21152
  KjSelectionModel,
20935
21153
  KjFilterableList,
20936
21154
  KjOverlayController,
20937
- ], queries: [{ propertyName: "items", predicate: KjListItem, descendants: true, isSignal: true }], exportAs: ["kjCombobox"], hostDirectives: [{ directive: KjDisabled, inputs: ["kjDisabled", "kjDisabled"] }], ngImport: i0 });
21155
+ ], queries: [{ propertyName: "allItems", predicate: KjListItem, descendants: true, isSignal: true }], exportAs: ["kjCombobox"], hostDirectives: [{ directive: KjDisabled, inputs: ["kjDisabled", "kjDisabled"] }], ngImport: i0 });
20938
21156
  }
20939
21157
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjCombobox, decorators: [{
20940
21158
  type: Directive,
@@ -20953,7 +21171,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
20953
21171
  '[attr.data-state]': "open() ? 'open' : 'closed'",
20954
21172
  },
20955
21173
  }]
20956
- }], ctorParameters: () => [], propDecorators: { kjValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjValue", required: false }] }, { type: i0.Output, args: ["kjValueChange"] }], kjQueryInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjQuery", required: false }] }], kjShouldFilter: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjShouldFilter", required: false }] }], kjLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjLoading", required: false }] }], kjFreeText: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjFreeText", required: false }] }], kjFilter: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjFilter", required: false }] }], kjAutoActivateFirst: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjAutoActivateFirst", required: false }] }], kjQueryChange: [{ type: i0.Output, args: ["kjQueryChange"] }], kjCommit: [{ type: i0.Output, args: ["kjCommit"] }], items: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KjListItem), { ...{ descendants: true }, isSignal: true }] }] } });
21174
+ }], ctorParameters: () => [], propDecorators: { kjValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjValue", required: false }] }, { type: i0.Output, args: ["kjValueChange"] }], kjQueryInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjQuery", required: false }] }], kjShouldFilter: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjShouldFilter", required: false }] }], kjLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjLoading", required: false }] }], kjFreeText: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjFreeText", required: false }] }], kjFilter: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjFilter", required: false }] }], kjAutoActivateFirst: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjAutoActivateFirst", required: false }] }], kjQueryChange: [{ type: i0.Output, args: ["kjQueryChange"] }], kjCommit: [{ type: i0.Output, args: ["kjCommit"] }], allItems: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KjListItem), { ...{ descendants: true }, isSignal: true }] }] } });
20957
21175
 
20958
21176
  /**
20959
21177
  * Decorates a native `<input>` to act as the combobox trigger. Composes the
@@ -21585,8 +21803,20 @@ class KjCascadeSelect {
21585
21803
  /** Emitted when the active-descendant crosses a level boundary. */
21586
21804
  kjLevelChange = output();
21587
21805
  // ── KjListNavigatorConfig implementation ──────────────────────────
21588
- /** All `KjListItem`s under this cascade — source for the navigators. */
21589
- items = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "items" } : /* istanbul ignore next */ {}), descendants: true });
21806
+ /**
21807
+ * Raw content query. `descendants: true` reaches straight through a
21808
+ * list composite nested inside this cascade, so it is never read
21809
+ * directly — `items` narrows it to this container's own scope.
21810
+ */
21811
+ allItems = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "allItems" } : /* istanbul ignore next */ {}), descendants: true });
21812
+ /**
21813
+ * All `KjListItem`s under this cascade — source for the navigators.
21814
+ *
21815
+ * Items owned by a list composite nested inside this one (a select
21816
+ * inside a palette, a menu inside a select) answer to that composite,
21817
+ * not to this one.
21818
+ */
21819
+ items = ownListItems(this, this.allItems);
21590
21820
  /**
21591
21821
  * Every projected `KjCascadeSelectOption`. Used by {@link findOption}
21592
21822
  * to resolve a `KjListItem` id (typically the navigator's active id)
@@ -21737,7 +21967,7 @@ class KjCascadeSelect {
21737
21967
  { provide: KJ_LIST_NAVIGATOR_CONFIG, useExisting: forwardRef(() => KjCascadeSelect) },
21738
21968
  KjSelectionModel,
21739
21969
  KjOverlayController,
21740
- ], queries: [{ propertyName: "items", predicate: KjListItem, descendants: true, isSignal: true }, { propertyName: "_options", predicate: KjCascadeSelectOption, descendants: true, isSignal: true }], exportAs: ["kjCascadeSelect"], ngImport: i0 });
21970
+ ], queries: [{ propertyName: "allItems", predicate: KjListItem, descendants: true, isSignal: true }, { propertyName: "_options", predicate: KjCascadeSelectOption, descendants: true, isSignal: true }], exportAs: ["kjCascadeSelect"], ngImport: i0 });
21741
21971
  }
21742
21972
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjCascadeSelect, decorators: [{
21743
21973
  type: Directive,
@@ -21753,7 +21983,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
21753
21983
  KjOverlayController,
21754
21984
  ],
21755
21985
  }]
21756
- }], ctorParameters: () => [], propDecorators: { kjValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjValue", required: false }] }, { type: i0.Output, args: ["kjValueChange"] }], kjCascadePath: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjCascadePath", required: false }] }, { type: i0.Output, args: ["kjCascadePathChange"] }], kjTreeShape: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjTreeShape", required: false }] }], kjSubPanelOpenDelayMs: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjSubPanelOpenDelayMs", required: false }] }], kjSubPanelCloseDelayMs: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjSubPanelCloseDelayMs", required: false }] }], kjLevelChange: [{ type: i0.Output, args: ["kjLevelChange"] }], items: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KjListItem), { ...{ descendants: true }, isSignal: true }] }], _options: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KjCascadeSelectOption), { ...{ descendants: true }, isSignal: true }] }] } });
21986
+ }], ctorParameters: () => [], propDecorators: { kjValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjValue", required: false }] }, { type: i0.Output, args: ["kjValueChange"] }], kjCascadePath: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjCascadePath", required: false }] }, { type: i0.Output, args: ["kjCascadePathChange"] }], kjTreeShape: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjTreeShape", required: false }] }], kjSubPanelOpenDelayMs: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjSubPanelOpenDelayMs", required: false }] }], kjSubPanelCloseDelayMs: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjSubPanelCloseDelayMs", required: false }] }], kjLevelChange: [{ type: i0.Output, args: ["kjLevelChange"] }], allItems: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KjListItem), { ...{ descendants: true }, isSignal: true }] }], _options: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KjCascadeSelectOption), { ...{ descendants: true }, isSignal: true }] }] } });
21757
21987
 
21758
21988
  /**
21759
21989
  * Trigger button for the Cascade Select root panel. Opens the panel on click
@@ -21993,7 +22223,8 @@ class KjTreeSelect {
21993
22223
  * until node-level wiring lands (Task 3 of the migration plan); kept
21994
22224
  * here now so the config contract is satisfied today.
21995
22225
  */
21996
- items = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "items" } : /* istanbul ignore next */ {}), descendants: true });
22226
+ allItems = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "allItems" } : /* istanbul ignore next */ {}), descendants: true });
22227
+ items = ownListItems(this, this.allItems);
21997
22228
  /**
21998
22229
  * Single canonical value signal. Shared with the legacy `kjValue`
21999
22230
  * model — `KjSelectionModel` reads / writes through this signal.
@@ -22130,7 +22361,7 @@ class KjTreeSelect {
22130
22361
  { provide: KJ_LIST_NAVIGATOR_CONFIG, useExisting: forwardRef(() => KjTreeSelect) },
22131
22362
  KjSelectionModel,
22132
22363
  KjOverlayController,
22133
- ], queries: [{ propertyName: "items", predicate: KjListItem, descendants: true, isSignal: true }], ngImport: i0 });
22364
+ ], queries: [{ propertyName: "allItems", predicate: KjListItem, descendants: true, isSignal: true }], ngImport: i0 });
22134
22365
  }
22135
22366
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjTreeSelect, decorators: [{
22136
22367
  type: Directive,
@@ -22144,7 +22375,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
22144
22375
  KjOverlayController,
22145
22376
  ],
22146
22377
  }]
22147
- }], ctorParameters: () => [], propDecorators: { kjNodes: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjNodes", required: false }] }], kjSelectionMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjSelectionMode", required: false }] }], kjValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjValue", required: false }] }, { type: i0.Output, args: ["kjValueChange"] }], kjTreeShape: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjTreeShape", required: false }] }], kjExpandedKeys: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjExpandedKeys", required: false }] }, { type: i0.Output, args: ["kjExpandedKeysChange"] }], kjNodeSelect: [{ type: i0.Output, args: ["kjNodeSelect"] }], kjNodeExpand: [{ type: i0.Output, args: ["kjNodeExpand"] }], kjNodeCollapse: [{ type: i0.Output, args: ["kjNodeCollapse"] }], items: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KjListItem), { ...{ descendants: true }, isSignal: true }] }] } });
22378
+ }], ctorParameters: () => [], propDecorators: { kjNodes: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjNodes", required: false }] }], kjSelectionMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjSelectionMode", required: false }] }], kjValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjValue", required: false }] }, { type: i0.Output, args: ["kjValueChange"] }], kjTreeShape: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjTreeShape", required: false }] }], kjExpandedKeys: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjExpandedKeys", required: false }] }, { type: i0.Output, args: ["kjExpandedKeysChange"] }], kjNodeSelect: [{ type: i0.Output, args: ["kjNodeSelect"] }], kjNodeExpand: [{ type: i0.Output, args: ["kjNodeExpand"] }], kjNodeCollapse: [{ type: i0.Output, args: ["kjNodeCollapse"] }], allItems: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KjListItem), { ...{ descendants: true }, isSignal: true }] }] } });
22148
22379
 
22149
22380
  /**
22150
22381
  * Individual tree node (treeitem). Composes `KjListItem` via
@@ -28190,8 +28421,20 @@ class KjMenubar {
28190
28421
  /** Emits the bar item's id when its popup opens, or `null` when all are closed. */
28191
28422
  kjOpenChange = output();
28192
28423
  // ── KjListNavigatorConfig ────────────────────────────────────────────
28193
- /** All `KjListItem`s composed by `KjMenubarItem` children. */
28194
- items = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "items" } : /* istanbul ignore next */ {}), descendants: true });
28424
+ /**
28425
+ * Raw content query. `descendants: true` reaches straight through a
28426
+ * list composite nested inside this menubar, so it is never read
28427
+ * directly — `items` narrows it to this container's own scope.
28428
+ */
28429
+ allItems = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "allItems" } : /* istanbul ignore next */ {}), descendants: true });
28430
+ /**
28431
+ * All `KjListItem`s composed by `KjMenubarItem` children.
28432
+ *
28433
+ * Items owned by a list composite nested inside this one (a select
28434
+ * inside a palette, a menu inside a select) answer to that composite,
28435
+ * not to this one.
28436
+ */
28437
+ items = ownListItems(this, this.allItems);
28195
28438
  /** No selection model on a menubar. Identity compare. */
28196
28439
  compareBy = signal(Object.is, /* @ts-ignore */
28197
28440
  ...(ngDevMode ? [{ debugName: "compareBy" }] : /* istanbul ignore next */ []));
@@ -28402,7 +28645,7 @@ class KjMenubar {
28402
28645
  useFactory: () => signal('roving'),
28403
28646
  },
28404
28647
  KjTypeAhead,
28405
- ], queries: [{ propertyName: "items", predicate: KjListItem, descendants: true, isSignal: true }], exportAs: ["kjMenubar"], hostDirectives: [{ directive: KjListNavigator }], ngImport: i0 });
28648
+ ], queries: [{ propertyName: "allItems", predicate: KjListItem, descendants: true, isSignal: true }], exportAs: ["kjMenubar"], hostDirectives: [{ directive: KjListNavigator }], ngImport: i0 });
28406
28649
  }
28407
28650
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjMenubar, decorators: [{
28408
28651
  type: Directive,
@@ -28428,7 +28671,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
28428
28671
  '(focusin)': '_onFocusin($event)',
28429
28672
  },
28430
28673
  }]
28431
- }], ctorParameters: () => [], propDecorators: { kjLoop: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjLoop", required: false }] }], kjAutoDisclose: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjAutoDisclose", required: false }] }], kjAutoDiscloseDelayMs: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjAutoDiscloseDelayMs", required: false }] }], kjAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjAriaLabel", required: false }] }], kjOpenChange: [{ type: i0.Output, args: ["kjOpenChange"] }], items: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KjListItem), { ...{ descendants: true }, isSignal: true }] }] } });
28674
+ }], ctorParameters: () => [], propDecorators: { kjLoop: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjLoop", required: false }] }], kjAutoDisclose: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjAutoDisclose", required: false }] }], kjAutoDiscloseDelayMs: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjAutoDiscloseDelayMs", required: false }] }], kjAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjAriaLabel", required: false }] }], kjOpenChange: [{ type: i0.Output, args: ["kjOpenChange"] }], allItems: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KjListItem), { ...{ descendants: true }, isSignal: true }] }] } });
28432
28675
 
28433
28676
  let _menubarPanelId = 0;
28434
28677
  /**
@@ -30440,5 +30683,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
30440
30683
  * Generated bundle index. Do not edit.
30441
30684
  */
30442
30685
 
30443
- export { DRAWER_DATA, DRAWER_DRAG, DRAWER_SIDE, EN_CATALOG, FR_CATALOG, KJ_ACCORDION, KJ_ACCORDION_ITEM, KJ_ALERT, KJ_ALERT_CONFIG, KJ_ALERT_DEFAULTS, KJ_AVATAR, KJ_AVATAR_GROUP, KJ_BREADCRUMB, KJ_BREADCRUMB_CONFIG, KJ_BREADCRUMB_DEFAULTS, KJ_BUTTON_CONFIG, KJ_BUTTON_DEFAULTS, KJ_BUTTON_GROUP, KJ_CALENDAR, KJ_CAROUSEL, KJ_CAROUSEL_INDICATORS, KJ_CAROUSEL_SLIDE, KJ_CASCADE_SELECT, KJ_CHAT, KJ_CHAT_BUBBLE_CONFIG, KJ_CHAT_BUBBLE_DEFAULTS, KJ_CHAT_CONFIG, KJ_CHAT_LOG, KJ_COLOR_PICKER, KJ_CONFIRM_POPUP, KJ_DATE_PICKER, KJ_DATE_RANGE_PRESETS, KJ_DROPDOWN_MENU, KJ_ECHARTS, KJ_FIELD, KJ_FILE_UPLOAD, KJ_FILE_UPLOAD_DEFAULT_MESSAGES, KJ_FILE_UPLOAD_ITEM, KJ_FORM, KJ_FORM_FIELD, KJ_ICON_CSS_PATH, KJ_ICON_ENTRIES, KJ_ICON_LOADER, KJ_ICON_REGISTRY, KJ_ICON_RESOLVER, KJ_INPUT_GROUP, KJ_INPUT_MASK_PRESETS, KJ_INPUT_MASK_TOKENS, KJ_INPUT_OTP, KJ_KBD_SIZE_PRESET, KJ_LINK_CONFIG, KJ_LINK_DEFAULTS, KJ_LIST, KJ_LIST_FOCUS_MODE, KJ_LIST_NAVIGATOR_CONFIG, KJ_LIST_ROW, KJ_LOCALE_CONFIG, KJ_MENUBAR, KJ_MONACO_CONFIG, KJ_MONACO_LANGUAGE_LOADERS, KJ_NUMBER_INPUT, KJ_OVERLAY_BACKDROP_STRATEGY, KJ_OVERLAY_BADGE, KJ_OVERLAY_FOCUS_TRAP_STRATEGY, KJ_OVERLAY_LIVE_ANNOUNCER_STRATEGY, KJ_OVERLAY_MOUNT_STRATEGY, KJ_OVERLAY_PANEL_ROLE, KJ_OVERLAY_POSITION_STRATEGY, KJ_OVERLAY_SCROLL_LOCK_STRATEGY, KJ_OVERLAY_TRIGGER_EVENT_STRATEGY, KJ_PAGINATION, KJ_PAGINATION_CONFIG, KJ_PAGINATION_DEFAULTS, KJ_PASSWORD_INPUT, KJ_PROGRESS_BAR, KJ_PROGRESS_BAR_CONFIG, KJ_PROGRESS_BAR_DEFAULTS, KJ_PROSE_CSS_PATH, KJ_RADIO_GROUP, KJ_RICH_TEXT, KJ_RICH_TEXT_EXTENSIONS, KJ_RICH_TEXT_FEATURES, KJ_RICH_TEXT_NODE, KJ_ROVING_TABINDEX, KJ_RTE_OVERLAY_DATA, KJ_SELECT, KJ_SIZE_FALLBACK, KJ_SIZE_PRESET, KJ_SLIDER, KJ_SPEED_DIAL, KJ_SPINNER_CONFIG, KJ_SPINNER_DEFAULTS, KJ_STEP, KJ_STEPPER, KJ_TABLE, KJ_TABLE_STORAGE, KJ_TABS, KJ_TABS_CONFIG, KJ_TABS_DEFAULTS, KJ_TAG, KJ_TAG_CONFIG, KJ_TAG_DEFAULTS, KJ_TAG_LIST, KJ_TEXTAREA_CONFIG, KJ_TEXTAREA_DEFAULTS, KJ_TIME_PICKER, KJ_TOAST_LIST_STRATEGY, KJ_TOAST_SONNER_STRATEGY, KJ_TOAST_STRATEGY, KJ_TRANSLATION_CATALOGS, KJ_TREE_SELECT, KJ_VARIANT_FALLBACK, KJ_VARIANT_PRESET, KjAccordion, KjAccordionContent, KjAccordionItem, KjAccordionTrigger, KjAlert, KjAlertActions, KjAlertDescription, KjAlertDismiss, KjAlertIcon, KjAlertTitle, KjAriaDescribedBy, KjAriaLabelledBy, KjAvatar, KjAvatarFallback, KjAvatarGroup, KjAvatarImage, KjBackdrop, KjBadge, KjBlockquote, KjBreadcrumb, KjBreadcrumbCurrent, KjBreadcrumbEllipsis, KjBreadcrumbItem, KjBreadcrumbLink, KjBreadcrumbList, KjBreadcrumbSeparator, KjButton, KjButtonGroup, KjCalendar, KjCalendarDay, KjCalendarGrid, KjCalendarHeader, KjCarousel, KjCarouselAutoplay, KjCarouselIndicator, KjCarouselIndicators, KjCarouselNext, KjCarouselPauseToggle, KjCarouselPrevious, KjCarouselSlide, KjCarouselViewport, KjCascadeSelect, KjCascadeSelectOption, KjCascadeSelectPanel, KjCascadeSelectSubPanel, KjCascadeSelectTrigger, KjChart, KjChartTableFallback, KjChat, KjChatAnnouncer, KjChatAvatar, KjChatBubble, KjChatFooter, KjChatHeader, KjChatLog, KjChatStore, KjCheckbox, KjCode, KjColorPicker, KjColorPickerAlphaSlider, KjColorPickerArea, KjColorPickerHueSlider, KjColorPickerInput, KjColorPickerPanel, KjColorPickerTrigger, KjCombobox, KjComboboxInput, KjComboboxListbox, KjComboboxOption, KjCommandEmpty, KjCommandGroup, KjCommandInput, KjCommandItem, KjCommandList, KjCommandPalette, KjCommandPaletteDialog, KjCommandPaletteTrigger, KjCommandSeparator, KjConfirmPopup, KjConfirmPopupAction, KjConfirmPopupCancel, KjConfirmPopupContent, KjConfirmPopupMessage, KjConfirmPopupTrigger, KjDatePicker, KjDatePickerCalendar, KjDatePickerTrigger, KjDateRangePresetOption, KjDateRangePresets, KjDialog$1 as KjDialog, KjDialogRef, KjDialog as KjDialogService, KjDirectionality, KjDisabled, KjDivider, KjDrawer, KjDrawerRef, KjDrawerService, KjDropdownMenu, KjDropdownMenuContent, KjDropdownMenuGroup, KjDropdownMenuItem, KjDropdownMenuLabel, KjDropdownMenuSeparator, KjDropdownMenuTrigger, KjEditor, KjEditorLoader, KjField, KjFieldError, KjFieldGroup, KjFieldHelp, KjFieldLabel, KjFileUpload, KjFileUploadDropzone, KjFileUploadItem, KjFileUploadList, KjFileUploadTrigger, KjFilterableList, KjFocusRing, KjFocusTrap, KjForm, KjFormControl, KjFormError, KjFormErrorSummary, KjFormField, KjFormLabel, KjIconDirective, KjId, KjInput, KjInputGroup, KjInputGroupAddon, KjInputMask, KjInputOtp, KjInputOtpCell, KjKbd, KjLead, KjLink, KjList, KjListGroup, KjListGroupLabel, KjListItem, KjListNavigator, KjListRow, KjListSeparator, KjLiveRegion, KjLocale, KjMenubar, KjMenubarItem, KjMotion, KjMuted, KjNumberInput, KjNumberInputGroup, KjNumberStepper, KjOption, KjOverflowContent, KjOverlayBadge, KjOverlayBadgeContent, KjOverlayBuilder, KjOverlayController, KjOverlayHandle, KjOverlayPanel, KjOverlayStack, KjOverlayTrigger, KjOverlayWrapper, KjPagination, KjPaginationEllipsis, KjPaginationFirst, KjPaginationInfo, KjPaginationItem, KjPaginationLast, KjPaginationNext, KjPaginationPrevious, KjPasswordCapsLockWarning, KjPasswordInput, KjPasswordInputScope, KjPasswordStrength, KjPasswordToggle, KjPopoverArrow, KjPopoverClose, KjPopoverContent, KjPopoverTitle, KjPopoverTrigger, KjProgressBar, KjProgressBarFill, KjRadio, KjRadioGroup, KjReducedMotion, KjRichTextEditor, KjRichTextExtensionDirective, KjRovingTabindex, KjRovingTabindexItemDirective, KjSelect, KjSelectContent, KjSelectTrigger, KjSelectionModel, KjSheet, KjSheetRef, KjSheetService, KjSize, KjSkeleton, KjSkipLink, KjSlider, KjSliderRange, KjSliderThumb, KjSliderTrack, KjSpeedDial, KjSpeedDialAction, KjSpeedDialActions, KjSpeedDialTrigger, KjSpinner, KjStep, KjStepContent, KjStepLabel, KjStepper, KjStepperNext, KjStepperPrevious, KjStepperReset, KjTab, KjTabList, KjTabPanel, KjTable, KjTableCell, KjTableFilterOutlet, KjTableHeader, KjTableKeyboardNav, KjTableRow, KjTabs, KjTag, KjTagList, KjTagRemove, KjTextarea, KjTimePicker, KjTimePickerHours, KjTimePickerMeridiem, KjTimePickerMinutes, KjTimePickerSeconds, KjToast, KjToastClose, KjToastPanel, KjToastRef, KjToastService, KjToastViewport, KjToggle, KjTooltipArrow, KjTooltipContent, KjTooltipGroup, KjTooltipTrigger, KjTranslate, KjTranslateService, KjTreeSelect, KjTreeSelectContent, KjTreeSelectNode, KjTreeSelectToggle, KjTreeSelectTrigger, KjTruncate, KjTypeAhead, KjVariant, KjVisuallyHidden, MaskEngine, SHEET_ARIA_LABEL, SHEET_DATA, SHEET_DETENT, SHEET_DISMISSIBLE, addDays, addMonths, addYears, anchoredTo, assertive, bindPresets, blurredBackdrop, bodyPortal, buildMonthMatrix, coalesceAnnouncement, compareDay, compileMask, corner, createKjDecoratorNode, createKjImageNode, cssClip, defaultDateRangePresets, defaultMaskTokens, defaultPasswordScorer, edgeSheet, endOfMonth, firstDayOfWeek, formatDateLong, formatDateShort, formatMonthYear, getIconMode, htmlOverflow, inContainer, inMemoryAdapter, inPlace, inPlaceSibling, inertBased, injectFilterableList, injectKjFilterParams, injectKjIconResolver, injectListItem, injectRichTextNode, injectRteOverlayData, injectSelectionModel, isInRange, isKjFilterModel, isSameDay, isSameMonth, kjColumn, kjColumnGroup, kjContainsFilter, kjDateFilterFn, kjFileMatchesAccept, kjFuzzyFilter, kjHsvToHsl, kjHsvToRgb, kjMultiFilterFn, kjNumberFilterFn, kjParseHex, kjRgbToHex, kjRgbToHsv, kjSetFilterFn, kjStartsWithFilter, kjSubstringFilter, kjTableResource, kjTextFilterFn, localStorageAdapter, matchSlashCommands, nextCascadeId, nextChatMessageId, nextDropdownMenuLabelId, nextPopoverTitleId, noBackdrop, noScrollLock, noTrap, normalizeLanguage, onClick, onContextMenu, onFocus, onFocusOrInput, onHotkey, onHover, parseDate, parseSlash, pointAt, polite, programmatic, provideECharts, provideIconLoader, provideIconResolver, provideIcons, provideKjAlert, provideKjBreadcrumb, provideKjButton, provideKjChat, provideKjChatBubble, provideKjDocumentDirection, provideKjFilterParams, provideKjInputMaskTokens, provideKjLink, provideKjLocale, provideKjPagination, provideKjProgressBar, provideKjRichText, provideKjSpinner, provideKjTableStorage, provideKjTabs, provideKjTag, provideKjTextarea, provideKjToastListStrategy, provideKjToastSonnerStrategy, provideKjToastStrategy, provideKjTranslations, provideMonaco, provideMonacoLanguages, resolveChartPalette, resolveDateRangePreset, sessionStorageAdapter, silent, solidBackdrop, startOfDay, startOfMonth, stripDiacritics, tabCycle, toDeepSignal, viewportCentered, weekdayLongNames, weekdayShortNames };
30686
+ export { DRAWER_DATA, DRAWER_DRAG, DRAWER_SIDE, EN_CATALOG, FR_CATALOG, KJ_ACCORDION, KJ_ACCORDION_ITEM, KJ_ALERT, KJ_ALERT_CONFIG, KJ_ALERT_DEFAULTS, KJ_AVATAR, KJ_AVATAR_GROUP, KJ_BREADCRUMB, KJ_BREADCRUMB_CONFIG, KJ_BREADCRUMB_DEFAULTS, KJ_BUTTON_CONFIG, KJ_BUTTON_DEFAULTS, KJ_BUTTON_GROUP, KJ_CALENDAR, KJ_CAROUSEL, KJ_CAROUSEL_INDICATORS, KJ_CAROUSEL_SLIDE, KJ_CASCADE_SELECT, KJ_CHAT, KJ_CHAT_BUBBLE_CONFIG, KJ_CHAT_BUBBLE_DEFAULTS, KJ_CHAT_CONFIG, KJ_CHAT_LOG, KJ_COLOR_PICKER, KJ_CONFIRM_POPUP, KJ_DATE_PICKER, KJ_DATE_RANGE_PRESETS, KJ_DROPDOWN_MENU, KJ_ECHARTS, KJ_FIELD, KJ_FILE_UPLOAD, KJ_FILE_UPLOAD_DEFAULT_MESSAGES, KJ_FILE_UPLOAD_ITEM, KJ_FORM, KJ_FORM_FIELD, KJ_ICON_CSS_PATH, KJ_ICON_ENTRIES, KJ_ICON_LOADER, KJ_ICON_REGISTRY, KJ_ICON_RESOLVER, KJ_INPUT_GROUP, KJ_INPUT_MASK_PRESETS, KJ_INPUT_MASK_TOKENS, KJ_INPUT_OTP, KJ_KBD_SIZE_PRESET, KJ_LINK_CONFIG, KJ_LINK_DEFAULTS, KJ_LIST, KJ_LIST_FOCUS_MODE, KJ_LIST_NAVIGATOR_CONFIG, KJ_LIST_ROW, KJ_LOCALE_CONFIG, KJ_MENUBAR, KJ_MONACO_CONFIG, KJ_MONACO_LANGUAGE_LOADERS, KJ_NUMBER_INPUT, KJ_OVERLAY_BACKDROP_STRATEGY, KJ_OVERLAY_BADGE, KJ_OVERLAY_FOCUS_TRAP_STRATEGY, KJ_OVERLAY_LIVE_ANNOUNCER_STRATEGY, KJ_OVERLAY_MOUNT_STRATEGY, KJ_OVERLAY_PANEL_ROLE, KJ_OVERLAY_POSITION_STRATEGY, KJ_OVERLAY_SCROLL_LOCK_STRATEGY, KJ_OVERLAY_TRIGGER_EVENT_STRATEGY, KJ_OVERLAY_Z_BASE, KJ_OVERLAY_Z_BASE_DEFAULT, KJ_OVERLAY_Z_VAR, KJ_PAGINATION, KJ_PAGINATION_CONFIG, KJ_PAGINATION_DEFAULTS, KJ_PASSWORD_INPUT, KJ_PROGRESS_BAR, KJ_PROGRESS_BAR_CONFIG, KJ_PROGRESS_BAR_DEFAULTS, KJ_PROSE_CSS_PATH, KJ_RADIO_GROUP, KJ_RICH_TEXT, KJ_RICH_TEXT_EXTENSIONS, KJ_RICH_TEXT_FEATURES, KJ_RICH_TEXT_NODE, KJ_ROVING_TABINDEX, KJ_RTE_OVERLAY_DATA, KJ_SELECT, KJ_SIZE_FALLBACK, KJ_SIZE_PRESET, KJ_SLIDER, KJ_SPEED_DIAL, KJ_SPINNER_CONFIG, KJ_SPINNER_DEFAULTS, KJ_STEP, KJ_STEPPER, KJ_TABLE, KJ_TABLE_STORAGE, KJ_TABS, KJ_TABS_CONFIG, KJ_TABS_DEFAULTS, KJ_TAG, KJ_TAG_CONFIG, KJ_TAG_DEFAULTS, KJ_TAG_LIST, KJ_TEXTAREA_CONFIG, KJ_TEXTAREA_DEFAULTS, KJ_TIME_PICKER, KJ_TOAST_LIST_STRATEGY, KJ_TOAST_SONNER_STRATEGY, KJ_TOAST_STRATEGY, KJ_TRANSLATION_CATALOGS, KJ_TREE_SELECT, KJ_VARIANT_FALLBACK, KJ_VARIANT_PRESET, KjAccordion, KjAccordionContent, KjAccordionItem, KjAccordionTrigger, KjAlert, KjAlertActions, KjAlertDescription, KjAlertDismiss, KjAlertIcon, KjAlertTitle, KjAriaDescribedBy, KjAriaLabelledBy, KjAvatar, KjAvatarFallback, KjAvatarGroup, KjAvatarImage, KjBackdrop, KjBadge, KjBlockquote, KjBreadcrumb, KjBreadcrumbCurrent, KjBreadcrumbEllipsis, KjBreadcrumbItem, KjBreadcrumbLink, KjBreadcrumbList, KjBreadcrumbSeparator, KjButton, KjButtonGroup, KjCalendar, KjCalendarDay, KjCalendarGrid, KjCalendarHeader, KjCarousel, KjCarouselAutoplay, KjCarouselIndicator, KjCarouselIndicators, KjCarouselNext, KjCarouselPauseToggle, KjCarouselPrevious, KjCarouselSlide, KjCarouselViewport, KjCascadeSelect, KjCascadeSelectOption, KjCascadeSelectPanel, KjCascadeSelectSubPanel, KjCascadeSelectTrigger, KjChart, KjChartTableFallback, KjChat, KjChatAnnouncer, KjChatAvatar, KjChatBubble, KjChatFooter, KjChatHeader, KjChatLog, KjChatStore, KjCheckbox, KjCode, KjColorPicker, KjColorPickerAlphaSlider, KjColorPickerArea, KjColorPickerHueSlider, KjColorPickerInput, KjColorPickerPanel, KjColorPickerTrigger, KjCombobox, KjComboboxInput, KjComboboxListbox, KjComboboxOption, KjCommandEmpty, KjCommandGroup, KjCommandInput, KjCommandItem, KjCommandList, KjCommandPalette, KjCommandPaletteDialog, KjCommandPaletteTrigger, KjCommandSeparator, KjConfirmPopup, KjConfirmPopupAction, KjConfirmPopupCancel, KjConfirmPopupContent, KjConfirmPopupMessage, KjConfirmPopupTrigger, KjDatePicker, KjDatePickerCalendar, KjDatePickerTrigger, KjDateRangePresetOption, KjDateRangePresets, KjDialog$1 as KjDialog, KjDialogRef, KjDialog as KjDialogService, KjDirectionality, KjDisabled, KjDivider, KjDrawer, KjDrawerRef, KjDrawerService, KjDropdownMenu, KjDropdownMenuContent, KjDropdownMenuGroup, KjDropdownMenuItem, KjDropdownMenuLabel, KjDropdownMenuSeparator, KjDropdownMenuTrigger, KjEditor, KjEditorLoader, KjField, KjFieldError, KjFieldGroup, KjFieldHelp, KjFieldLabel, KjFileUpload, KjFileUploadDropzone, KjFileUploadItem, KjFileUploadList, KjFileUploadTrigger, KjFilterableList, KjFocusRing, KjFocusTrap, KjForm, KjFormControl, KjFormError, KjFormErrorSummary, KjFormField, KjFormLabel, KjIconDirective, KjId, KjInput, KjInputGroup, KjInputGroupAddon, KjInputMask, KjInputOtp, KjInputOtpCell, KjKbd, KjLead, KjLink, KjList, KjListGroup, KjListGroupLabel, KjListItem, KjListNavigator, KjListRow, KjListSeparator, KjLiveRegion, KjLocale, KjMenubar, KjMenubarItem, KjMotion, KjMuted, KjNumberInput, KjNumberInputGroup, KjNumberStepper, KjOption, KjOverflowContent, KjOverlayBadge, KjOverlayBadgeContent, KjOverlayBuilder, KjOverlayController, KjOverlayHandle, KjOverlayPanel, KjOverlayStack, KjOverlayTrigger, KjOverlayWrapper, KjPagination, KjPaginationEllipsis, KjPaginationFirst, KjPaginationInfo, KjPaginationItem, KjPaginationLast, KjPaginationNext, KjPaginationPrevious, KjPasswordCapsLockWarning, KjPasswordInput, KjPasswordInputScope, KjPasswordStrength, KjPasswordToggle, KjPopoverArrow, KjPopoverClose, KjPopoverContent, KjPopoverTitle, KjPopoverTrigger, KjProgressBar, KjProgressBarFill, KjRadio, KjRadioGroup, KjReducedMotion, KjRichTextEditor, KjRichTextExtensionDirective, KjRovingTabindex, KjRovingTabindexItemDirective, KjSelect, KjSelectContent, KjSelectTrigger, KjSelectionModel, KjSheet, KjSheetRef, KjSheetService, KjSize, KjSkeleton, KjSkipLink, KjSlider, KjSliderRange, KjSliderThumb, KjSliderTrack, KjSpeedDial, KjSpeedDialAction, KjSpeedDialActions, KjSpeedDialTrigger, KjSpinner, KjStep, KjStepContent, KjStepLabel, KjStepper, KjStepperNext, KjStepperPrevious, KjStepperReset, KjTab, KjTabList, KjTabPanel, KjTable, KjTableCell, KjTableFilterOutlet, KjTableHeader, KjTableKeyboardNav, KjTableRow, KjTabs, KjTag, KjTagList, KjTagRemove, KjTextarea, KjTimePicker, KjTimePickerHours, KjTimePickerMeridiem, KjTimePickerMinutes, KjTimePickerSeconds, KjToast, KjToastClose, KjToastPanel, KjToastRef, KjToastService, KjToastViewport, KjToggle, KjTooltipArrow, KjTooltipContent, KjTooltipGroup, KjTooltipTrigger, KjTranslate, KjTranslateService, KjTreeSelect, KjTreeSelectContent, KjTreeSelectNode, KjTreeSelectToggle, KjTreeSelectTrigger, KjTruncate, KjTypeAhead, KjVariant, KjVisuallyHidden, MaskEngine, SHEET_ARIA_LABEL, SHEET_DATA, SHEET_DETENT, SHEET_DISMISSIBLE, addDays, addMonths, addYears, anchoredTo, applyOverlayZIndex, assertive, bindPresets, blurredBackdrop, bodyPortal, buildMonthMatrix, clearOverlayZIndex, coalesceAnnouncement, compareDay, compileMask, corner, createKjDecoratorNode, createKjImageNode, createOverlayWrapper, cssClip, defaultDateRangePresets, defaultMaskTokens, defaultPasswordScorer, edgeSheet, endOfMonth, firstDayOfWeek, formatDateLong, formatDateShort, formatMonthYear, getIconMode, getOverlayContainer, htmlOverflow, inContainer, inMemoryAdapter, inPlace, inPlaceSibling, inertBased, injectFilterableList, injectKjFilterParams, injectKjIconResolver, injectListItem, injectRichTextNode, injectRteOverlayData, injectSelectionModel, isInRange, isKjFilterModel, isSameDay, isSameMonth, kjColumn, kjColumnGroup, kjContainsFilter, kjDateFilterFn, kjFileMatchesAccept, kjFuzzyFilter, kjHsvToHsl, kjHsvToRgb, kjMultiFilterFn, kjNumberFilterFn, kjParseHex, kjRgbToHex, kjRgbToHsv, kjSetFilterFn, kjStartsWithFilter, kjSubstringFilter, kjTableResource, kjTextFilterFn, localStorageAdapter, matchSlashCommands, nextCascadeId, nextChatMessageId, nextDropdownMenuLabelId, nextPopoverTitleId, noBackdrop, noScrollLock, noTrap, normalizeLanguage, onClick, onContextMenu, onFocus, onFocusOrInput, onHotkey, onHover, ownListItems, parseDate, parseSlash, pointAt, polite, programmatic, provideECharts, provideIconLoader, provideIconResolver, provideIcons, provideKjAlert, provideKjBreadcrumb, provideKjButton, provideKjChat, provideKjChatBubble, provideKjDocumentDirection, provideKjFilterParams, provideKjInputMaskTokens, provideKjLink, provideKjLocale, provideKjPagination, provideKjProgressBar, provideKjRichText, provideKjSpinner, provideKjTableStorage, provideKjTabs, provideKjTag, provideKjTextarea, provideKjToastListStrategy, provideKjToastSonnerStrategy, provideKjToastStrategy, provideKjTranslations, provideMonaco, provideMonacoLanguages, resolveChartPalette, resolveDateRangePreset, sessionStorageAdapter, silent, solidBackdrop, startOfDay, startOfMonth, stripDiacritics, tabCycle, toDeepSignal, viewportCentered, weekdayLongNames, weekdayShortNames };
30444
30687
  //# sourceMappingURL=kouji-ui-core.mjs.map