@kouji-ui/core 0.8.3 → 0.8.5

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.
@@ -405,6 +405,12 @@ class KjOverlayStack {
405
405
  if (!top || !top.opts.closeOnOutside)
406
406
  return;
407
407
  const target = e.target;
408
+ // A node that is no longer in the document is not "outside" — it is
409
+ // gone. `contains()` reports false for it just like it would for a
410
+ // genuine outside click, which would dismiss the overlay on a gesture
411
+ // that started inside it and whose target was re-rendered away.
412
+ if (target && !target.isConnected)
413
+ return;
408
414
  if (top.contentEl && target && top.contentEl.contains(target))
409
415
  return;
410
416
  top.opts.onClose();
@@ -461,6 +467,16 @@ class KjOverlayController {
461
467
  */
462
468
  strategies = null;
463
469
  stackHandle = null;
470
+ _stackHandle = signal(null, /* @ts-ignore */
471
+ ...(ngDevMode ? [{ debugName: "_stackHandle" }] : /* istanbul ignore next */ []));
472
+ /**
473
+ * Whether this overlay is the top of `KjOverlayStack` — nothing is open
474
+ * above it. Read by dismiss paths (backdrop click, Escape) so a gesture
475
+ * aimed at a nested overlay never falls through to its opener. `true`
476
+ * when the overlay is not registered at all (nothing to be under).
477
+ */
478
+ isTopmost = computed(() => this._stackHandle()?.isTopmost() ?? true, /* @ts-ignore */
479
+ ...(ngDevMode ? [{ debugName: "isTopmost" }] : /* istanbul ignore next */ []));
464
480
  transitionDeadline = 0;
465
481
  rafId = 0;
466
482
  transitionListener = null;
@@ -521,6 +537,7 @@ class KjOverlayController {
521
537
  s.backdrop?.onOpen?.();
522
538
  s.scrollLock?.onOpen?.();
523
539
  this.stackHandle = this.stack.register(this.id, { onClose: () => this.close('esc') });
540
+ this._stackHandle.set(this.stackHandle);
524
541
  if (this._panel())
525
542
  this.stack.markContentEl(this.id, this._panel());
526
543
  // Stacking: the panel (and its wrapper, when portalled) take the level
@@ -540,6 +557,7 @@ class KjOverlayController {
540
557
  clearOverlayZIndex(this._panel());
541
558
  this.stackHandle?.unregister();
542
559
  this.stackHandle = null;
560
+ this._stackHandle.set(null);
543
561
  s.scrollLock?.onClose?.();
544
562
  s.backdrop?.onClose?.();
545
563
  // Hide the panel synchronously before strategy cleanup so the brief
@@ -663,6 +681,61 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
663
681
  }]
664
682
  }], ctorParameters: () => [], propDecorators: { backdropAnchor: [{ type: i0.ViewChild, args: ['backdropAnchor', { ...{ read: ViewContainerRef }, isSignal: true }] }], panelAnchor: [{ type: i0.ViewChild, args: ['panelAnchor', { ...{ read: ViewContainerRef }, isSignal: true }] }] } });
665
683
 
684
+ /**
685
+ * Tracks whether the press that produced a `click` actually BEGAN on the
686
+ * element that is about to dismiss an overlay.
687
+ *
688
+ * A backdrop covers the viewport, so the browser hands it clicks it never
689
+ * saw the start of. When the element a press began on is removed from the
690
+ * document before the pointer is released — which is exactly what happens
691
+ * when a `<kj-select>` nested in a `<kj-command-palette>` commits a NEW
692
+ * value, re-rendering its option list — the engine retargets the `click`
693
+ * to what is under the pointer by then. The option is gone and its whole
694
+ * portalled wrapper with it, so the palette's backdrop is what is left
695
+ * underneath, and its dismiss handler ran on a click the user aimed at an
696
+ * option. Committing the SAME value re-renders nothing, the option stays
697
+ * attached, the click lands on it, and the palette survives — which is why
698
+ * the bug looked like it depended on the value.
699
+ *
700
+ * The rule this encodes: a dismiss-on-click surface reacts only to a press
701
+ * it owns from the start. Arm on `pointerdown` (which is dispatched at the
702
+ * real origin, before any re-render can move it), and dismiss on `click`
703
+ * only if that arming happened.
704
+ *
705
+ * Clicks with `detail === 0` are let through: they are not pointer-driven
706
+ * at all (`element.click()`, keyboard activation, some assistive tooling),
707
+ * so no `pointerdown` ever arrives to match them against.
708
+ *
709
+ * @doc-category Core/Overlay
710
+ */
711
+ class KjDismissPress {
712
+ armed = false;
713
+ /**
714
+ * Bind to `pointerdown` (and `mousedown`, for engines without pointer
715
+ * events) on the dismissing element. Firing at all is the signal: the
716
+ * listener sits on that element, so the press started there.
717
+ */
718
+ arm() {
719
+ this.armed = true;
720
+ }
721
+ /**
722
+ * Bind to `click` on the dismissing element. `true` when the click
723
+ * belongs to a press that began here and should dismiss; `false` for a
724
+ * click retargeted onto this element after its original target left the
725
+ * document. Consumes the arming either way, so a stray click can never
726
+ * ride on the previous press.
727
+ */
728
+ owns(event) {
729
+ const armed = this.armed;
730
+ this.armed = false;
731
+ return event.detail === 0 || armed;
732
+ }
733
+ /** Drop any pending arming — call when the overlay closes or is destroyed. */
734
+ reset() {
735
+ this.armed = false;
736
+ }
737
+ }
738
+
666
739
  /**
667
740
  * Renders the backdrop scrim for an overlay. Reads the backdrop strategy
668
741
  * (className, closeOnClick) and the controller from the per-overlay
@@ -676,12 +749,30 @@ class KjBackdrop {
676
749
  ...(ngDevMode ? [{ debugName: "state" }] : /* istanbul ignore next */ []));
677
750
  klass = computed(() => this.strategy.className ?? 'kj-backdrop', /* @ts-ignore */
678
751
  ...(ngDevMode ? [{ debugName: "klass" }] : /* istanbul ignore next */ []));
679
- onClick(_e) {
752
+ /**
753
+ * Only a press that began on the scrim dismisses. A click retargeted
754
+ * here because its original target left the document mid-gesture (an
755
+ * option in an overlay stacked above, re-rendered on commit) is not the
756
+ * user asking to dismiss this overlay — see {@link KjDismissPress}.
757
+ */
758
+ press = new KjDismissPress();
759
+ onPress() {
760
+ // Nested overlays: while something is stacked above this one, that
761
+ // overlay owns the dismiss gesture — `KjOverlayStack` routes the same
762
+ // pointerdown to it. Judged here rather than on the click, because by
763
+ // then the overlay above has closed and unregistered.
764
+ if (this.controller && !this.controller.isTopmost())
765
+ return;
766
+ this.press.arm();
767
+ }
768
+ onClick(e) {
769
+ if (!this.press.owns(e))
770
+ return;
680
771
  if (this.strategy.closeOnClick)
681
772
  this.controller?.close('outside');
682
773
  }
683
774
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjBackdrop, deps: [], target: i0.ɵɵFactoryTarget.Component });
684
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.5", type: KjBackdrop, isStandalone: true, selector: "kj-backdrop", host: { listeners: { "click": "onClick($event)" }, properties: { "class": "klass()", "attr.data-state": "state()" } }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
775
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.5", type: KjBackdrop, isStandalone: true, selector: "kj-backdrop", host: { listeners: { "pointerdown": "onPress()", "mousedown": "onPress()", "click": "onClick($event)" }, properties: { "class": "klass()", "attr.data-state": "state()" } }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
685
776
  }
686
777
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjBackdrop, decorators: [{
687
778
  type: Component,
@@ -692,6 +783,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
692
783
  host: {
693
784
  '[class]': 'klass()',
694
785
  '[attr.data-state]': 'state()',
786
+ '(pointerdown)': 'onPress()',
787
+ '(mousedown)': 'onPress()',
695
788
  '(click)': 'onClick($event)',
696
789
  },
697
790
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -3144,7 +3237,23 @@ class KjListItem {
3144
3237
  setSize = signal(null, /* @ts-ignore */
3145
3238
  ...(ngDevMode ? [{ debugName: "setSize" }] : /* istanbul ignore next */ []));
3146
3239
  selection = inject(KjSelectionModel, { optional: true });
3147
- cfg = inject(KJ_LIST_NAVIGATOR_CONFIG, { optional: true });
3240
+ /**
3241
+ * The list container this item belongs to — the nearest
3242
+ * `KJ_LIST_NAVIGATOR_CONFIG` on the element-injector path, i.e. the
3243
+ * innermost list-style composite that encloses this item. `null` when
3244
+ * the item is rendered outside any container.
3245
+ *
3246
+ * This is what makes a nested composite (a select inside a command
3247
+ * palette, a menu inside a select, a combobox inside a dialog) keep
3248
+ * its items to itself: the item answers to exactly one container, and
3249
+ * every container filters its own `contentChildren(KjListItem)` query
3250
+ * down to the items that name it here (see {@link ownListItems}).
3251
+ * Without that filter a `descendants: true` query reaches straight
3252
+ * through a nested composite and steals its rows — the outer list then
3253
+ * navigates, filters, numbers (`aria-posinset`) and activates options
3254
+ * that are not its own.
3255
+ */
3256
+ container = inject(KJ_LIST_NAVIGATOR_CONFIG, { optional: true });
3148
3257
  /**
3149
3258
  * `aria-selected` driven by the injected selection model. `null` when
3150
3259
  * no model is provided, the value is undefined, or the mode is
@@ -3211,7 +3320,7 @@ class KjListItem {
3211
3320
  if (this.selection && v !== undefined) {
3212
3321
  ({ closeRequested } = this.selection.toggle(v));
3213
3322
  }
3214
- this.cfg?.afterSelect?.(v, closeRequested);
3323
+ this.container?.afterSelect?.(v, closeRequested);
3215
3324
  this.activate.emit(v);
3216
3325
  }
3217
3326
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjListItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
@@ -3509,6 +3618,45 @@ const injectListItem = () => inject(KjListItem);
3509
3618
  const injectSelectionModel = () => inject(KjSelectionModel);
3510
3619
  const injectFilterableList = () => inject(KjFilterableList);
3511
3620
 
3621
+ /**
3622
+ * Narrows a container's `contentChildren(KjListItem, { descendants: true })`
3623
+ * query to the items that actually belong to that container.
3624
+ *
3625
+ * Every list-style root (`KjSelect`, `KjCommandPalette`, `KjCombobox`,
3626
+ * `KjDropdownMenu(Content)`, `KjMenubar`, `KjTreeSelect`,
3627
+ * `KjCascadeSelect`) collects its rows with a `descendants: true` content
3628
+ * query. That query is blind to composition: it walks straight through a
3629
+ * nested list composite and hoovers up *its* rows too. A `<kj-select>`
3630
+ * placed inside a `<kj-command-palette>` therefore handed its options to
3631
+ * the palette, which then navigated onto them, filtered them with its own
3632
+ * query, renumbered their `aria-posinset` / `aria-setsize`, and — on
3633
+ * Enter — activated one of them as if it were a command row.
3634
+ *
3635
+ * `KjListItem` already resolves its one true owner through the element
3636
+ * injector ({@link KjListItem.container}: the nearest
3637
+ * `KJ_LIST_NAVIGATOR_CONFIG`, which a nested composite provides at its own
3638
+ * root). Filtering on that pointer gives every container exactly the items
3639
+ * inside its own list scope and nothing from a composite nested within it,
3640
+ * for any nesting — select in palette, select in dialog, menu in palette,
3641
+ * combobox in select.
3642
+ *
3643
+ * Items that resolve no container at all (`container === null` — rendered
3644
+ * outside any root) are kept, so a bare `[kjListItem]` used with a
3645
+ * hand-rolled container still registers.
3646
+ *
3647
+ * @param owner The container running the query — pass `this`.
3648
+ * @param query The raw `contentChildren(KjListItem, { descendants: true })` signal.
3649
+ *
3650
+ * @doc-category Core/Primitives
3651
+ */
3652
+ function ownListItems(
3653
+ // Typed as `object` rather than `KjListNavigatorConfig`: every caller
3654
+ // passes `this` from the field initializer that defines its own `items`,
3655
+ // and the stricter type would make that a circular type reference.
3656
+ owner, query) {
3657
+ return computed(() => query().filter(i => i.container === null || i.container === owner));
3658
+ }
3659
+
3512
3660
  const DEEP_SIGNAL = Symbol('kj.deep-signal');
3513
3661
  /**
3514
3662
  * Wraps a `Signal<T>` so that `result.foo` returns a child `Signal<T['foo']>`
@@ -14455,8 +14603,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
14455
14603
  * @doc-category Core/Overlay
14456
14604
  */
14457
14605
  class KjDropdownMenu {
14458
- /** All `KjListItem`s under this root. Source of truth for nav + type-ahead. */
14459
- items = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "items" } : /* istanbul ignore next */ {}), descendants: true });
14606
+ /**
14607
+ * Raw content query. `descendants: true` reaches straight through a
14608
+ * list composite nested inside this menu root, so it is never read
14609
+ * directly — `items` narrows it to this container's own scope.
14610
+ */
14611
+ allItems = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "allItems" } : /* istanbul ignore next */ {}), descendants: true });
14612
+ /**
14613
+ * All `KjListItem`s under this root. Source of truth for nav + type-ahead.
14614
+ *
14615
+ * Items owned by a list composite nested inside this one (a select
14616
+ * inside a palette, a menu inside a select) answer to that composite,
14617
+ * not to this one.
14618
+ */
14619
+ items = ownListItems(this, this.allItems);
14460
14620
  /** Menu items are actions — no selection model. Kept as `Object.is`. */
14461
14621
  compareBy = signal(Object.is, /* @ts-ignore */
14462
14622
  ...(ngDevMode ? [{ debugName: "compareBy" }] : /* istanbul ignore next */ []));
@@ -14473,7 +14633,7 @@ class KjDropdownMenu {
14473
14633
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjDropdownMenu, deps: [], target: i0.ɵɵFactoryTarget.Directive });
14474
14634
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "22.0.5", type: KjDropdownMenu, isStandalone: true, selector: "[kjDropdownMenu]", providers: [
14475
14635
  { provide: KJ_LIST_NAVIGATOR_CONFIG, useExisting: forwardRef(() => KjDropdownMenu) },
14476
- ], queries: [{ propertyName: "items", predicate: KjListItem, descendants: true, isSignal: true }], exportAs: ["kjDropdownMenu"], ngImport: i0 });
14636
+ ], queries: [{ propertyName: "allItems", predicate: KjListItem, descendants: true, isSignal: true }], exportAs: ["kjDropdownMenu"], ngImport: i0 });
14477
14637
  }
14478
14638
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjDropdownMenu, decorators: [{
14479
14639
  type: Directive,
@@ -14485,7 +14645,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
14485
14645
  { provide: KJ_LIST_NAVIGATOR_CONFIG, useExisting: forwardRef(() => KjDropdownMenu) },
14486
14646
  ],
14487
14647
  }]
14488
- }], propDecorators: { items: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KjListItem), { ...{ descendants: true }, isSignal: true }] }] } });
14648
+ }], propDecorators: { allItems: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KjListItem), { ...{ descendants: true }, isSignal: true }] }] } });
14489
14649
 
14490
14650
  function deferredMount() {
14491
14651
  let ctx = null;
@@ -14562,8 +14722,20 @@ class KjDropdownMenuContent {
14562
14722
  kjMount = input('portal', /* @ts-ignore */
14563
14723
  ...(ngDevMode ? [{ debugName: "kjMount" }] : /* istanbul ignore next */ []));
14564
14724
  // ── KjListNavigatorConfig ────────────────────────────────────────────
14565
- /** All `KjListItem`s projected into the menu panel. */
14566
- items = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "items" } : /* istanbul ignore next */ {}), descendants: true });
14725
+ /**
14726
+ * Raw content query. `descendants: true` reaches straight through a
14727
+ * list composite nested inside this menu panel, so it is never read
14728
+ * directly — `items` narrows it to this container's own scope.
14729
+ */
14730
+ allItems = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "allItems" } : /* istanbul ignore next */ {}), descendants: true });
14731
+ /**
14732
+ * All `KjListItem`s projected into the menu panel.
14733
+ *
14734
+ * Items owned by a list composite nested inside this one (a select
14735
+ * inside a palette, a menu inside a select) answer to that composite,
14736
+ * not to this one.
14737
+ */
14738
+ items = ownListItems(this, this.allItems);
14567
14739
  /** Menu items are actions — no selection model. Kept as `Object.is`. */
14568
14740
  compareBy = signal(Object.is, /* @ts-ignore */
14569
14741
  ...(ngDevMode ? [{ debugName: "compareBy" }] : /* istanbul ignore next */ []));
@@ -14679,7 +14851,7 @@ class KjDropdownMenuContent {
14679
14851
  useFactory: () => signal('roving'),
14680
14852
  },
14681
14853
  KjTypeAhead,
14682
- ], 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 });
14854
+ ], 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 });
14683
14855
  }
14684
14856
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjDropdownMenuContent, decorators: [{
14685
14857
  type: Component,
@@ -14725,7 +14897,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
14725
14897
  },
14726
14898
  template: `<ng-content />`,
14727
14899
  }]
14728
- }], 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 }] }] } });
14900
+ }], 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 }] }] } });
14729
14901
 
14730
14902
  /**
14731
14903
  * An individual item inside a `[kjDropdownMenu]` panel.
@@ -16010,8 +16182,20 @@ class KjCommandPalette {
16010
16182
  kjActivate = output();
16011
16183
  /** Stable listbox id for `aria-controls` wiring. */
16012
16184
  listId = nextCommandListId();
16013
- /** All `KjListItem`s under this palette. Source of truth for nav + filter. */
16014
- items = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "items" } : /* istanbul ignore next */ {}), descendants: true });
16185
+ /**
16186
+ * Raw content query. `descendants: true` reaches straight through a
16187
+ * list composite nested inside this palette, so it is never read
16188
+ * directly — `items` narrows it to this container's own scope.
16189
+ */
16190
+ allItems = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "allItems" } : /* istanbul ignore next */ {}), descendants: true });
16191
+ /**
16192
+ * All `KjListItem`s under this palette. Source of truth for nav + filter.
16193
+ *
16194
+ * Items owned by a list composite nested inside this one (a select
16195
+ * inside a palette, a menu inside a select) answer to that composite,
16196
+ * not to this one.
16197
+ */
16198
+ items = ownListItems(this, this.allItems);
16015
16199
  filterSvc = inject(KjFilterableList);
16016
16200
  /** Visible (filter-passing) items. */
16017
16201
  visibleItems = computed(() => this.filterSvc.visibleItems(), /* @ts-ignore */
@@ -16139,7 +16323,7 @@ class KjCommandPalette {
16139
16323
  { provide: KJ_LIST_NAVIGATOR_CONFIG, useExisting: forwardRef(() => KjCommandPalette) },
16140
16324
  KjFilterableList,
16141
16325
  KjTypeAhead,
16142
- ], queries: [{ propertyName: "items", predicate: KjListItem, descendants: true, isSignal: true }], exportAs: ["kjCommandPalette"], ngImport: i0 });
16326
+ ], queries: [{ propertyName: "allItems", predicate: KjListItem, descendants: true, isSignal: true }], exportAs: ["kjCommandPalette"], ngImport: i0 });
16143
16327
  }
16144
16328
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjCommandPalette, decorators: [{
16145
16329
  type: Directive,
@@ -16153,7 +16337,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
16153
16337
  KjTypeAhead,
16154
16338
  ],
16155
16339
  }]
16156
- }], 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 }] }] } });
16340
+ }], 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 }] }] } });
16157
16341
 
16158
16342
  /**
16159
16343
  * Search input inside the command palette. Composes `KjListNavigator`
@@ -20576,8 +20760,20 @@ class KjSelect {
20576
20760
  focus() {
20577
20761
  this._triggerEl()?.nativeElement.focus();
20578
20762
  }
20579
- /** All `KjListItem`s under this select — source for navigator + type-ahead. */
20580
- items = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "items" } : /* istanbul ignore next */ {}), descendants: true });
20763
+ /**
20764
+ * Raw content query. `descendants: true` reaches straight through a
20765
+ * list composite nested inside this select, so it is never read
20766
+ * directly — `items` narrows it to this container's own scope.
20767
+ */
20768
+ allItems = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "allItems" } : /* istanbul ignore next */ {}), descendants: true });
20769
+ /**
20770
+ * All `KjListItem`s under this select — source for navigator + type-ahead.
20771
+ *
20772
+ * Items owned by a list composite nested inside this one (a select
20773
+ * inside a palette, a menu inside a select) answer to that composite,
20774
+ * not to this one.
20775
+ */
20776
+ items = ownListItems(this, this.allItems);
20581
20777
  /** Implements `KjListNavigatorConfig.mode`. */
20582
20778
  mode = computed(() => this._multiple() ? 'multi' : 'single', /* @ts-ignore */
20583
20779
  ...(ngDevMode ? [{ debugName: "mode" }] : /* istanbul ignore next */ []));
@@ -20613,7 +20809,7 @@ class KjSelect {
20613
20809
  KjSelectionModel,
20614
20810
  KjTypeAhead,
20615
20811
  KjOverlayController,
20616
- ], queries: [{ propertyName: "items", predicate: KjListItem, descendants: true, isSignal: true }], exportAs: ["kjSelect"], ngImport: i0 });
20812
+ ], queries: [{ propertyName: "allItems", predicate: KjListItem, descendants: true, isSignal: true }], exportAs: ["kjSelect"], ngImport: i0 });
20617
20813
  }
20618
20814
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjSelect, decorators: [{
20619
20815
  type: Directive,
@@ -20629,7 +20825,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
20629
20825
  KjOverlayController,
20630
20826
  ],
20631
20827
  }]
20632
- }], 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 }] }] } });
20828
+ }], 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 }] }] } });
20633
20829
 
20634
20830
  /**
20635
20831
  * Wraps `onClick()` and forces `ariaHasPopup` to `'listbox'` so the trigger
@@ -20884,8 +21080,20 @@ class KjCombobox {
20884
21080
  ...(ngDevMode ? [{ debugName: "compareBy" }] : /* istanbul ignore next */ []));
20885
21081
  /** Stable listbox id for `aria-controls` wiring. */
20886
21082
  listboxId = nextId();
20887
- /** All `KjListItem`s under this combobox — source for nav + filter. */
20888
- items = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "items" } : /* istanbul ignore next */ {}), descendants: true });
21083
+ /**
21084
+ * Raw content query. `descendants: true` reaches straight through a
21085
+ * list composite nested inside this combobox, so it is never read
21086
+ * directly — `items` narrows it to this container's own scope.
21087
+ */
21088
+ allItems = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "allItems" } : /* istanbul ignore next */ {}), descendants: true });
21089
+ /**
21090
+ * All `KjListItem`s under this combobox — source for nav + filter.
21091
+ *
21092
+ * Items owned by a list composite nested inside this one (a select
21093
+ * inside a palette, a menu inside a select) answer to that composite,
21094
+ * not to this one.
21095
+ */
21096
+ items = ownListItems(this, this.allItems);
20889
21097
  /** Filter-aware visible items, exposed for KjListNavigatorConfig. */
20890
21098
  visibleItems = computed(() => this.filter.visibleItems(), /* @ts-ignore */
20891
21099
  ...(ngDevMode ? [{ debugName: "visibleItems" }] : /* istanbul ignore next */ []));
@@ -21037,7 +21245,7 @@ class KjCombobox {
21037
21245
  KjSelectionModel,
21038
21246
  KjFilterableList,
21039
21247
  KjOverlayController,
21040
- ], queries: [{ propertyName: "items", predicate: KjListItem, descendants: true, isSignal: true }], exportAs: ["kjCombobox"], hostDirectives: [{ directive: KjDisabled, inputs: ["kjDisabled", "kjDisabled"] }], ngImport: i0 });
21248
+ ], queries: [{ propertyName: "allItems", predicate: KjListItem, descendants: true, isSignal: true }], exportAs: ["kjCombobox"], hostDirectives: [{ directive: KjDisabled, inputs: ["kjDisabled", "kjDisabled"] }], ngImport: i0 });
21041
21249
  }
21042
21250
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjCombobox, decorators: [{
21043
21251
  type: Directive,
@@ -21056,7 +21264,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
21056
21264
  '[attr.data-state]': "open() ? 'open' : 'closed'",
21057
21265
  },
21058
21266
  }]
21059
- }], 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 }] }] } });
21267
+ }], 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 }] }] } });
21060
21268
 
21061
21269
  /**
21062
21270
  * Decorates a native `<input>` to act as the combobox trigger. Composes the
@@ -21688,8 +21896,20 @@ class KjCascadeSelect {
21688
21896
  /** Emitted when the active-descendant crosses a level boundary. */
21689
21897
  kjLevelChange = output();
21690
21898
  // ── KjListNavigatorConfig implementation ──────────────────────────
21691
- /** All `KjListItem`s under this cascade — source for the navigators. */
21692
- items = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "items" } : /* istanbul ignore next */ {}), descendants: true });
21899
+ /**
21900
+ * Raw content query. `descendants: true` reaches straight through a
21901
+ * list composite nested inside this cascade, so it is never read
21902
+ * directly — `items` narrows it to this container's own scope.
21903
+ */
21904
+ allItems = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "allItems" } : /* istanbul ignore next */ {}), descendants: true });
21905
+ /**
21906
+ * All `KjListItem`s under this cascade — source for the navigators.
21907
+ *
21908
+ * Items owned by a list composite nested inside this one (a select
21909
+ * inside a palette, a menu inside a select) answer to that composite,
21910
+ * not to this one.
21911
+ */
21912
+ items = ownListItems(this, this.allItems);
21693
21913
  /**
21694
21914
  * Every projected `KjCascadeSelectOption`. Used by {@link findOption}
21695
21915
  * to resolve a `KjListItem` id (typically the navigator's active id)
@@ -21840,7 +22060,7 @@ class KjCascadeSelect {
21840
22060
  { provide: KJ_LIST_NAVIGATOR_CONFIG, useExisting: forwardRef(() => KjCascadeSelect) },
21841
22061
  KjSelectionModel,
21842
22062
  KjOverlayController,
21843
- ], queries: [{ propertyName: "items", predicate: KjListItem, descendants: true, isSignal: true }, { propertyName: "_options", predicate: KjCascadeSelectOption, descendants: true, isSignal: true }], exportAs: ["kjCascadeSelect"], ngImport: i0 });
22063
+ ], queries: [{ propertyName: "allItems", predicate: KjListItem, descendants: true, isSignal: true }, { propertyName: "_options", predicate: KjCascadeSelectOption, descendants: true, isSignal: true }], exportAs: ["kjCascadeSelect"], ngImport: i0 });
21844
22064
  }
21845
22065
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjCascadeSelect, decorators: [{
21846
22066
  type: Directive,
@@ -21856,7 +22076,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
21856
22076
  KjOverlayController,
21857
22077
  ],
21858
22078
  }]
21859
- }], 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 }] }] } });
22079
+ }], 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 }] }] } });
21860
22080
 
21861
22081
  /**
21862
22082
  * Trigger button for the Cascade Select root panel. Opens the panel on click
@@ -22096,7 +22316,8 @@ class KjTreeSelect {
22096
22316
  * until node-level wiring lands (Task 3 of the migration plan); kept
22097
22317
  * here now so the config contract is satisfied today.
22098
22318
  */
22099
- items = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "items" } : /* istanbul ignore next */ {}), descendants: true });
22319
+ allItems = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "allItems" } : /* istanbul ignore next */ {}), descendants: true });
22320
+ items = ownListItems(this, this.allItems);
22100
22321
  /**
22101
22322
  * Single canonical value signal. Shared with the legacy `kjValue`
22102
22323
  * model — `KjSelectionModel` reads / writes through this signal.
@@ -22233,7 +22454,7 @@ class KjTreeSelect {
22233
22454
  { provide: KJ_LIST_NAVIGATOR_CONFIG, useExisting: forwardRef(() => KjTreeSelect) },
22234
22455
  KjSelectionModel,
22235
22456
  KjOverlayController,
22236
- ], queries: [{ propertyName: "items", predicate: KjListItem, descendants: true, isSignal: true }], ngImport: i0 });
22457
+ ], queries: [{ propertyName: "allItems", predicate: KjListItem, descendants: true, isSignal: true }], ngImport: i0 });
22237
22458
  }
22238
22459
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjTreeSelect, decorators: [{
22239
22460
  type: Directive,
@@ -22247,7 +22468,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
22247
22468
  KjOverlayController,
22248
22469
  ],
22249
22470
  }]
22250
- }], 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 }] }] } });
22471
+ }], 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 }] }] } });
22251
22472
 
22252
22473
  /**
22253
22474
  * Individual tree node (treeitem). Composes `KjListItem` via
@@ -28293,8 +28514,20 @@ class KjMenubar {
28293
28514
  /** Emits the bar item's id when its popup opens, or `null` when all are closed. */
28294
28515
  kjOpenChange = output();
28295
28516
  // ── KjListNavigatorConfig ────────────────────────────────────────────
28296
- /** All `KjListItem`s composed by `KjMenubarItem` children. */
28297
- items = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "items" } : /* istanbul ignore next */ {}), descendants: true });
28517
+ /**
28518
+ * Raw content query. `descendants: true` reaches straight through a
28519
+ * list composite nested inside this menubar, so it is never read
28520
+ * directly — `items` narrows it to this container's own scope.
28521
+ */
28522
+ allItems = contentChildren(KjListItem, { ...(ngDevMode ? { debugName: "allItems" } : /* istanbul ignore next */ {}), descendants: true });
28523
+ /**
28524
+ * All `KjListItem`s composed by `KjMenubarItem` children.
28525
+ *
28526
+ * Items owned by a list composite nested inside this one (a select
28527
+ * inside a palette, a menu inside a select) answer to that composite,
28528
+ * not to this one.
28529
+ */
28530
+ items = ownListItems(this, this.allItems);
28298
28531
  /** No selection model on a menubar. Identity compare. */
28299
28532
  compareBy = signal(Object.is, /* @ts-ignore */
28300
28533
  ...(ngDevMode ? [{ debugName: "compareBy" }] : /* istanbul ignore next */ []));
@@ -28505,7 +28738,7 @@ class KjMenubar {
28505
28738
  useFactory: () => signal('roving'),
28506
28739
  },
28507
28740
  KjTypeAhead,
28508
- ], queries: [{ propertyName: "items", predicate: KjListItem, descendants: true, isSignal: true }], exportAs: ["kjMenubar"], hostDirectives: [{ directive: KjListNavigator }], ngImport: i0 });
28741
+ ], queries: [{ propertyName: "allItems", predicate: KjListItem, descendants: true, isSignal: true }], exportAs: ["kjMenubar"], hostDirectives: [{ directive: KjListNavigator }], ngImport: i0 });
28509
28742
  }
28510
28743
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjMenubar, decorators: [{
28511
28744
  type: Directive,
@@ -28531,7 +28764,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
28531
28764
  '(focusin)': '_onFocusin($event)',
28532
28765
  },
28533
28766
  }]
28534
- }], 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 }] }] } });
28767
+ }], 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 }] }] } });
28535
28768
 
28536
28769
  let _menubarPanelId = 0;
28537
28770
  /**
@@ -30543,5 +30776,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
30543
30776
  * Generated bundle index. Do not edit.
30544
30777
  */
30545
30778
 
30546
- 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, 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 };
30779
+ 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, KjDismissPress, 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 };
30547
30780
  //# sourceMappingURL=kouji-ui-core.mjs.map