@angular/cdk-experimental 20.1.0-next.1 → 20.1.0-next.2

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.
Files changed (61) hide show
  1. package/accordion/index.d.ts +22 -22
  2. package/{accordion.d-LmKAOYNE.d.ts → accordion.d-MvKtoWUK.d.ts} +11 -11
  3. package/column-resize/index.d.ts +37 -37
  4. package/combobox/index.d.ts +8 -8
  5. package/deferred-content/index.d.ts +7 -7
  6. package/{expansion.d-DB4i_1Aa.d.ts → expansion.d-BvIuKvYU.d.ts} +4 -4
  7. package/fesm2022/accordion-CN4PcmAh.mjs.map +1 -1
  8. package/fesm2022/accordion.mjs.map +1 -1
  9. package/fesm2022/cdk-experimental.mjs +1 -1
  10. package/fesm2022/cdk-experimental.mjs.map +1 -1
  11. package/fesm2022/column-resize.mjs.map +1 -1
  12. package/fesm2022/combobox.mjs.map +1 -1
  13. package/fesm2022/deferred-content.mjs.map +1 -1
  14. package/fesm2022/expansion-C9iQLHOG.mjs.map +1 -1
  15. package/fesm2022/list-focus-BXQdAA3i.mjs.map +1 -1
  16. package/fesm2022/{list-selection-BLV4Yy7T.mjs → list-selection-C41ApAbt.mjs} +7 -1
  17. package/fesm2022/list-selection-C41ApAbt.mjs.map +1 -0
  18. package/fesm2022/list-typeahead-DIIbNJrP.mjs +64 -0
  19. package/fesm2022/list-typeahead-DIIbNJrP.mjs.map +1 -0
  20. package/fesm2022/listbox.mjs +3 -2
  21. package/fesm2022/listbox.mjs.map +1 -1
  22. package/fesm2022/{option-r2ojgVMH.mjs → option-D44ECQK6.mjs} +3 -62
  23. package/fesm2022/option-D44ECQK6.mjs.map +1 -0
  24. package/fesm2022/polyfill-CXksG4af.mjs.map +1 -1
  25. package/fesm2022/popover-edit.mjs.map +1 -1
  26. package/fesm2022/{radio-s5uO_tmJ.mjs → radio-button-BiqPDreS.mjs} +2 -2
  27. package/fesm2022/radio-button-BiqPDreS.mjs.map +1 -0
  28. package/fesm2022/{radio.mjs → radio-group.mjs} +4 -4
  29. package/fesm2022/radio-group.mjs.map +1 -0
  30. package/fesm2022/scrolling.mjs.map +1 -1
  31. package/fesm2022/selection.mjs.map +1 -1
  32. package/fesm2022/table-scroll-container.mjs.map +1 -1
  33. package/fesm2022/{tabs-CeifH1j2.mjs → tabs-DLPSZvPZ.mjs} +33 -9
  34. package/fesm2022/tabs-DLPSZvPZ.mjs.map +1 -0
  35. package/fesm2022/tabs.mjs +84 -26
  36. package/fesm2022/tabs.mjs.map +1 -1
  37. package/fesm2022/tree.mjs +691 -0
  38. package/fesm2022/tree.mjs.map +1 -0
  39. package/fesm2022/ui-patterns.mjs +5 -4
  40. package/fesm2022/ui-patterns.mjs.map +1 -1
  41. package/{list-navigation.d-Br99p_2O.d.ts → list-navigation.d-tcweHm4g.d.ts} +3 -3
  42. package/{list-selection.d-BQWRFJI-.d.ts → list-selection.d-BBLdeUeF.d.ts} +5 -5
  43. package/list-typeahead.d-DvIIfjfu.d.ts +48 -0
  44. package/listbox/index.d.ts +28 -27
  45. package/{listbox.d-C8oz9si7.d.ts → listbox.d-hkdivyCf.d.ts} +20 -62
  46. package/package.json +9 -5
  47. package/popover-edit/index.d.ts +30 -30
  48. package/{radio → radio-group}/index.d.ts +20 -20
  49. package/{radio-group.d-C3xIREax.d.ts → radio-group.d-CcY7mCC2.d.ts} +15 -15
  50. package/scrolling/index.d.ts +6 -6
  51. package/selection/index.d.ts +14 -14
  52. package/table-scroll-container/index.d.ts +6 -6
  53. package/tabs/index.d.ts +63 -46
  54. package/{tabs.d-CBlJ33jz.d.ts → tabs.d-DHT_RQQu.d.ts} +42 -31
  55. package/tree/index.d.ts +298 -0
  56. package/ui-patterns/index.d.ts +8 -7
  57. package/fesm2022/list-selection-BLV4Yy7T.mjs.map +0 -1
  58. package/fesm2022/option-r2ojgVMH.mjs.map +0 -1
  59. package/fesm2022/radio-s5uO_tmJ.mjs.map +0 -1
  60. package/fesm2022/radio.mjs.map +0 -1
  61. package/fesm2022/tabs-CeifH1j2.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree.mjs","sources":["../../../../../k8-fastbuild-ST-46c76129e412/bin/src/cdk-experimental/ui-patterns/tree/tree.ts","../../../../../k8-fastbuild-ST-46c76129e412/bin/src/cdk-experimental/tree/tree.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {computed, signal} from '@angular/core';\nimport {SignalLike} from '../behaviors/signal-like/signal-like';\nimport {ListFocus, ListFocusInputs, ListFocusItem} from '../behaviors/list-focus/list-focus';\nimport {\n ListNavigation,\n ListNavigationInputs,\n ListNavigationItem,\n} from '../behaviors/list-navigation/list-navigation';\nimport {\n ListSelection,\n ListSelectionInputs,\n ListSelectionItem,\n} from '../behaviors/list-selection/list-selection';\nimport {\n ListTypeahead,\n ListTypeaheadInputs,\n ListTypeaheadItem,\n} from '../behaviors/list-typeahead/list-typeahead';\nimport {ExpansionItem, ExpansionControl, ListExpansion} from '../behaviors/expansion/expansion';\nimport {KeyboardEventManager} from '../behaviors/event-manager/keyboard-event-manager';\nimport {PointerEventManager} from '../behaviors/event-manager/pointer-event-manager';\nimport {ModifierKey as Modifier} from '../behaviors/event-manager/event-manager';\n\n/** Represents the required inputs for a tree item. */\nexport interface TreeItemInputs<V>\n extends ListFocusItem,\n ListNavigationItem,\n ListSelectionItem<V>,\n ListTypeaheadItem {\n /** The parent item. */\n parent: SignalLike<TreeItemPattern<V> | TreePattern<V>>;\n\n /** Whether this item has children. Children can be lazily loaded. */\n hasChildren: SignalLike<boolean>;\n\n /** The children items. */\n children: SignalLike<TreeItemPattern<V>[]>;\n\n /** The tree pattern this item belongs to. */\n tree: SignalLike<TreePattern<V>>;\n}\n\nexport interface TreeItemPattern<V> extends TreeItemInputs<V> {}\n/**\n * Represents an item in a Tree.\n */\nexport class TreeItemPattern<V> implements ExpansionItem {\n /** The unique identifier used by the expansion behavior. */\n readonly expansionId: SignalLike<string>;\n\n /** Controls expansion for child items. */\n readonly expansionManager: ListExpansion;\n\n /** Controls expansion for this item. */\n readonly expansion: ExpansionControl;\n\n /** Whether the item is expandable. It's expandable if children item exist. */\n readonly expandable: SignalLike<boolean>;\n\n /** The level of the current item in a tree. */\n readonly level: SignalLike<number> = computed(() => this.parent().level() + 1);\n\n /** Whether this item is currently expanded. */\n readonly expanded = computed(() => this.expansion.isExpanded());\n\n /** Whether this item is visible. */\n readonly visible = computed(() => this.parent().expanded());\n\n /** The number of items under the same parent at the same level. */\n readonly setsize = computed(() => this.parent().children().length);\n\n /** The position of this item among its siblings (1-based). */\n readonly posinset = computed(() => this.parent().children().indexOf(this) + 1);\n\n /** Whether the item is active. */\n readonly active = computed(() => this.tree().focusManager.activeItem() === this);\n\n /** The tabindex of the item. */\n readonly tabindex = computed(() => this.tree().focusManager.getItemTabindex(this));\n\n /** Whether the item is selected. */\n readonly selected = computed(() => this.tree().value().includes(this.value()));\n\n constructor(readonly inputs: TreeItemInputs<V>) {\n this.id = inputs.id;\n this.value = inputs.value;\n this.element = inputs.element;\n this.disabled = inputs.disabled;\n this.searchTerm = inputs.searchTerm;\n this.expansionId = inputs.id;\n this.tree = inputs.tree;\n this.parent = inputs.parent;\n this.children = inputs.children;\n this.expandable = inputs.hasChildren;\n this.expansion = new ExpansionControl({\n ...inputs,\n expandable: this.expandable,\n expansionId: this.expansionId,\n expansionManager: this.parent().expansionManager,\n });\n this.expansionManager = new ListExpansion({\n ...inputs,\n multiExpandable: () => true,\n // TODO(ok7sai): allow pre-expanded tree items.\n expandedIds: signal([]),\n items: this.children,\n disabled: computed(() => this.tree()?.disabled() ?? false),\n });\n }\n}\n\n/** The selection operations that the tree can perform. */\ninterface SelectOptions {\n toggle?: boolean;\n selectOne?: boolean;\n selectRange?: boolean;\n anchor?: boolean;\n}\n\n/** Represents the required inputs for a tree. */\nexport interface TreeInputs<V>\n extends Omit<\n ListFocusInputs<TreeItemPattern<V>> &\n ListNavigationInputs<TreeItemPattern<V>> &\n ListSelectionInputs<TreeItemPattern<V>, V> &\n ListTypeaheadInputs<TreeItemPattern<V>>,\n 'items'\n > {\n /** All items in the tree, in document order (DFS-like, a flattened list). */\n allItems: SignalLike<TreeItemPattern<V>[]>;\n}\n\nexport interface TreePattern<V> extends TreeInputs<V> {}\n/** Controls the state and interactions of a tree view. */\nexport class TreePattern<V> {\n /** Controls focus for the all visible tree items. */\n readonly focusManager: ListFocus<TreeItemPattern<V>>;\n\n /** Controls navigation for all visible tree items. */\n readonly navigationManager: ListNavigation<TreeItemPattern<V>>;\n\n /** Controls selection for all visible tree items. */\n readonly selectionManager: ListSelection<TreeItemPattern<V>, V>;\n\n /** Controls typeahead for all visible tree items. */\n readonly typeaheadManager: ListTypeahead<TreeItemPattern<V>>;\n\n /** Controls expansion for direct children of the tree root (top-level items). */\n readonly expansionManager: ListExpansion;\n\n /** The root level is 0. */\n readonly level = () => 0;\n\n /** The root is always expanded. */\n readonly expanded = () => true;\n\n /** The tabindex of the tree. */\n readonly tabindex = computed(() => this.focusManager.getListTabindex());\n\n /** The id of the current active item. */\n readonly activedescendant = computed(() => this.focusManager.getActiveDescendant());\n\n /** Whether the tree is performing a range selection. */\n readonly inSelection = signal(false);\n\n /** The direct children of the root (top-level tree items). */\n readonly children = computed(() =>\n this.inputs.allItems().filter(item => item.level() === this.level() + 1),\n );\n\n /** All currently visible tree items. An item is visible if their parent is expanded. */\n readonly visibleItems = computed(() => this.inputs.allItems().filter(item => item.visible()));\n\n /** Whether the tree selection follows focus. */\n readonly followFocus = computed(() => this.inputs.selectionMode() === 'follow');\n\n /** The key for navigating to the previous item. */\n readonly prevKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowUp';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n });\n\n /** The key for navigating to the next item. */\n readonly nextKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowDown';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n });\n\n /** The key for collapsing an item or moving to its parent. */\n readonly collapseKey = computed(() => {\n if (this.inputs.orientation() === 'horizontal') {\n return 'ArrowUp';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n });\n\n /** The key for expanding an item or moving to its first child. */\n readonly expandKey = computed(() => {\n if (this.inputs.orientation() === 'horizontal') {\n return 'ArrowDown';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n });\n\n /** Represents the space key. Does nothing when the user is actively using typeahead. */\n readonly dynamicSpaceKey = computed(() => (this.typeaheadManager.isTyping() ? '' : ' '));\n\n /** Regular expression to match characters for typeahead. */\n readonly typeaheadRegexp = /^.$/;\n\n /** Uncommitted tree item for selecting a range of tree items. */\n readonly anchorItem = signal<TreeItemPattern<V> | undefined>(undefined);\n\n /**\n * Uncommitted tree item index for selecting a range of tree items.\n *\n * The index is computed in case the tree item position is changed caused by tree expansions.\n */\n readonly anchorIndex = computed(() =>\n this.anchorItem() ? this.visibleItems().indexOf(this.anchorItem()!) : -1,\n );\n\n /** The keydown event manager for the tree. */\n readonly keydown = computed(() => {\n const manager = new KeyboardEventManager();\n\n if (!this.followFocus()) {\n manager\n .on(this.prevKey, () => this.prev())\n .on(this.nextKey, () => this.next())\n .on('Home', () => this.first())\n .on('End', () => this.last())\n .on(this.typeaheadRegexp, e => this.search(e.key));\n }\n\n if (this.followFocus()) {\n manager\n .on(this.prevKey, () => this.prev({selectOne: true}))\n .on(this.nextKey, () => this.next({selectOne: true}))\n .on('Home', () => this.first({selectOne: true}))\n .on('End', () => this.last({selectOne: true}))\n .on(this.typeaheadRegexp, e => this.search(e.key, {selectOne: true}));\n }\n\n if (this.inputs.multi()) {\n manager\n .on(Modifier.Any, 'Shift', () => this.anchorItem.set(this.focusManager.activeItem()))\n .on(Modifier.Shift, this.prevKey, () => this.prev({selectRange: true}))\n .on(Modifier.Shift, this.nextKey, () => this.next({selectRange: true}))\n .on([Modifier.Ctrl | Modifier.Shift, Modifier.Meta | Modifier.Shift], 'Home', () =>\n this.first({selectRange: true, anchor: false}),\n )\n .on([Modifier.Ctrl | Modifier.Shift, Modifier.Meta | Modifier.Shift], 'End', () =>\n this.last({selectRange: true, anchor: false}),\n )\n .on(Modifier.Shift, 'Enter', () =>\n this._updateSelection({selectRange: true, anchor: false}),\n )\n .on(Modifier.Shift, this.dynamicSpaceKey, () =>\n this._updateSelection({selectRange: true, anchor: false}),\n );\n }\n\n if (!this.followFocus() && this.inputs.multi()) {\n manager\n .on(this.dynamicSpaceKey, () => this.selectionManager.toggle())\n .on('Enter', () => this.selectionManager.toggle())\n .on([Modifier.Ctrl, Modifier.Meta], 'A', () => this.selectionManager.toggleAll());\n }\n\n if (!this.followFocus() && !this.inputs.multi()) {\n manager.on(this.dynamicSpaceKey, () => this.selectionManager.toggleOne());\n manager.on('Enter', () => this.selectionManager.toggleOne());\n }\n\n if (this.inputs.multi() && this.followFocus()) {\n manager\n .on([Modifier.Ctrl, Modifier.Meta], this.prevKey, () => this.prev())\n .on([Modifier.Ctrl, Modifier.Meta], this.nextKey, () => this.next())\n .on([Modifier.Ctrl, Modifier.Meta], ' ', () => this.selectionManager.toggle())\n .on([Modifier.Ctrl, Modifier.Meta], 'Enter', () => this.selectionManager.toggle())\n .on([Modifier.Ctrl, Modifier.Meta], 'Home', () => this.first())\n .on([Modifier.Ctrl, Modifier.Meta], 'End', () => this.last())\n .on([Modifier.Ctrl, Modifier.Meta], 'A', () => {\n this.selectionManager.toggleAll();\n this.selectionManager.select(); // Ensure the currect item remains selected.\n });\n }\n\n manager\n .on(this.expandKey, () => this.expand())\n .on(this.collapseKey, () => this.collapse())\n .on(Modifier.Shift, '*', () => this.expandSiblings());\n\n return manager;\n });\n\n /** The pointerdown event manager for the tree. */\n pointerdown = computed(() => {\n const manager = new PointerEventManager();\n\n if (this.multi()) {\n manager.on(Modifier.Shift, e => this.goto(e, {selectRange: true}));\n }\n\n if (!this.multi() && this.followFocus()) {\n return manager.on(e => this.goto(e, {selectOne: true}));\n }\n\n if (!this.multi() && !this.followFocus()) {\n return manager.on(e => this.goto(e, {toggle: true}));\n }\n\n if (this.multi() && this.followFocus()) {\n return manager\n .on(e => this.goto(e, {selectOne: true}))\n .on(Modifier.Ctrl, e => this.goto(e, {toggle: true}));\n }\n\n if (this.multi() && !this.followFocus()) {\n return manager.on(e => this.goto(e, {toggle: true}));\n }\n\n return manager;\n });\n\n constructor(readonly inputs: TreeInputs<V>) {\n this.allItems = inputs.allItems;\n this.focusMode = inputs.focusMode;\n this.disabled = inputs.disabled;\n this.activeIndex = inputs.activeIndex;\n this.skipDisabled = inputs.skipDisabled;\n this.wrap = inputs.wrap;\n this.orientation = inputs.orientation;\n this.textDirection = inputs.textDirection;\n this.multi = inputs.multi;\n this.value = inputs.value;\n this.selectionMode = inputs.selectionMode;\n this.typeaheadDelay = inputs.typeaheadDelay;\n this.focusManager = new ListFocus({\n ...inputs,\n items: this.visibleItems,\n });\n this.navigationManager = new ListNavigation({\n ...inputs,\n wrap: computed(() => this.inputs.wrap() && !this.inSelection()),\n items: this.visibleItems,\n focusManager: this.focusManager,\n });\n this.selectionManager = new ListSelection({\n ...inputs,\n items: this.visibleItems,\n focusManager: this.focusManager,\n });\n this.typeaheadManager = new ListTypeahead({\n ...inputs,\n items: this.visibleItems,\n focusManager: this.focusManager,\n });\n this.expansionManager = new ListExpansion({\n multiExpandable: () => true,\n // TODO(ok7sai): allow pre-expanded tree items.\n expandedIds: signal([]),\n items: this.children,\n disabled: this.disabled,\n });\n }\n\n /**\n * Sets the tree to it's default initial state.\n *\n * Sets the active index of the tree to the first focusable selected tree item if one exists.\n * Otherwise, sets focus to the first focusable tree item.\n */\n setDefaultState() {\n let firstItemIndex: number | undefined;\n\n for (const [index, item] of this.allItems().entries()) {\n if (!item.visible()) continue;\n if (!this.focusManager.isFocusable(item)) continue;\n\n if (firstItemIndex === undefined) {\n firstItemIndex = index;\n }\n\n if (item.selected()) {\n this.activeIndex.set(index);\n return;\n }\n }\n\n if (firstItemIndex !== undefined) {\n this.activeIndex.set(firstItemIndex);\n }\n }\n\n /** Handles keydown events on the tree. */\n onKeydown(event: KeyboardEvent) {\n if (!this.disabled()) {\n this.keydown().handle(event);\n }\n }\n\n /** Handles pointerdown events on the tree. */\n onPointerdown(event: PointerEvent) {\n if (!this.disabled()) {\n this.pointerdown().handle(event);\n }\n }\n\n /** Navigates to the first visible tree item in the tree. */\n first(opts?: SelectOptions) {\n this._navigate(opts, () => this.navigationManager.first());\n }\n\n /** Navigates to the last visible tree item in the tree. */\n last(opts?: SelectOptions) {\n this._navigate(opts, () => this.navigationManager.last());\n }\n\n /** Navigates to the next visible tree item in the tree. */\n next(opts?: SelectOptions) {\n this._navigate(opts, () => this.navigationManager.next());\n }\n\n /** Navigates to the previous visible tree item in the tree. */\n prev(opts?: SelectOptions) {\n this._navigate(opts, () => this.navigationManager.prev());\n }\n\n /** Navigates to the given tree item in the tree. */\n goto(event: PointerEvent, opts?: SelectOptions) {\n const item = this._getItem(event);\n this._navigate(opts, () => this.navigationManager.goto(item));\n this.toggleExpansion(item);\n }\n\n /** Handles typeahead search navigation for the tree. */\n search(char: string, opts?: SelectOptions) {\n this._navigate(opts, () => this.typeaheadManager.search(char));\n }\n\n /** Toggles to expand or collapse a tree item. */\n toggleExpansion(item?: TreeItemPattern<V>) {\n item ??= this.focusManager.activeItem();\n if (!item || !this.focusManager.isFocusable(item)) return;\n\n if (!item.expandable()) return;\n if (item.expanded()) {\n this.collapse();\n } else {\n item.expansion.open();\n }\n }\n\n /** Expands a tree item. */\n expand(item?: TreeItemPattern<V>) {\n item ??= this.focusManager.activeItem();\n if (!item || !this.focusManager.isFocusable(item)) return;\n\n if (item.expandable() && !item.expanded()) {\n item.expansion.open();\n } else if (item.expanded() && item.children().length > 0) {\n const firstChild = item.children()[0];\n if (this.focusManager.isFocusable(firstChild)) {\n this.navigationManager.goto(firstChild);\n }\n }\n }\n\n /** Expands all sibling tree items including itself. */\n expandSiblings(item?: TreeItemPattern<V>) {\n item ??= this.focusManager.activeItem();\n const siblings = item.parent()?.children();\n siblings?.forEach(item => this.expand(item));\n }\n\n /** Collapses a tree item. */\n collapse(item?: TreeItemPattern<V>) {\n item ??= this.focusManager.activeItem();\n if (!item || !this.focusManager.isFocusable(item)) return;\n\n if (item.expandable() && item.expanded()) {\n item.expansion.close();\n } else if (item.parent() && item.parent() !== this) {\n const parentItem = item.parent();\n if (parentItem instanceof TreeItemPattern && this.focusManager.isFocusable(parentItem)) {\n this.navigationManager.goto(parentItem);\n }\n }\n }\n\n /** Safely performs a navigation operation. */\n private _navigate(opts: SelectOptions = {}, operation: () => boolean) {\n if (opts?.selectRange) {\n this.inSelection.set(true);\n this.selectionManager.rangeStartIndex.set(this.anchorIndex());\n }\n\n const moved = operation();\n\n if (moved) {\n this._updateSelection(opts);\n }\n\n this.inSelection.set(false);\n }\n\n /** Handles updating selection for the tree. */\n private _updateSelection(opts: SelectOptions = {anchor: true}) {\n if (opts.toggle) {\n this.selectionManager.toggle();\n }\n if (opts.selectOne) {\n this.selectionManager.selectOne();\n }\n if (opts.selectRange) {\n this.selectionManager.selectRange();\n }\n if (!opts.anchor) {\n this.anchorItem.set(this.visibleItems()[this.selectionManager.rangeStartIndex()]);\n }\n }\n\n /** Retrieves the TreeItemPattern associated with a DOM event, if any. */\n private _getItem(event: Event): TreeItemPattern<V> | undefined {\n if (!(event.target instanceof HTMLElement)) {\n return;\n }\n const element = event.target.closest('[role=\"treeitem\"]');\n return this.inputs.allItems().find(i => i.element() === element);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n Directive,\n ElementRef,\n afterRenderEffect,\n booleanAttribute,\n computed,\n inject,\n input,\n model,\n signal,\n Signal,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {DeferredContent, DeferredContentAware} from '@angular/cdk-experimental/deferred-content';\nimport {TreeItemPattern, TreePattern} from '../ui-patterns/tree/tree';\n\ninterface HasElement {\n element: Signal<HTMLElement>;\n}\n\n/**\n * Sort directives by their document order.\n */\nfunction sortDirectives(a: HasElement, b: HasElement) {\n return (a.element().compareDocumentPosition(b.element()) & Node.DOCUMENT_POSITION_PRECEDING) > 0\n ? 1\n : -1;\n}\n\n/**\n * A Tree container.\n *\n * Transforms nested lists into an accessible, ARIA-compliant tree structure.\n *\n * ```html\n * <ul cdkTree [(value)]=\"selectedItems\" [multi]=\"true\">\n * <li cdkTreeItem [value]=\"'leaf1'\">Leaf Item 1</li>\n * <li cdkTreeItem [value]=\"'parent1'\">\n * Parent Item 1\n * <ul cdkTreeItemGroup [value]=\"'parent1'\">\n * <ng-template cdkTreeItemGroupContent>\n * <li cdkTreeItem [value]=\"'child1.1'\">Child Item 1.1</li>\n * <li cdkTreeItem [value]=\"'child1.2'\">Child Item 1.2</li>\n * </ng-template>\n * </ul>\n * </li>\n * <li cdkTreeItem [value]=\"'leaf2'\" [disabled]=\"true\">Disabled Leaf Item 2</li>\n * </ul>\n * ```\n */\n@Directive({\n selector: '[cdkTree]',\n exportAs: 'cdkTree',\n host: {\n 'class': 'cdk-tree',\n 'role': 'tree',\n '[attr.aria-orientation]': 'pattern.orientation()',\n '[attr.aria-multiselectable]': 'pattern.multi()',\n '[attr.aria-disabled]': 'pattern.disabled()',\n '[attr.aria-activedescendant]': 'pattern.activedescendant()',\n '[tabindex]': 'pattern.tabindex()',\n '(keydown)': 'pattern.onKeydown($event)',\n '(pointerdown)': 'pattern.onPointerdown($event)',\n '(focusin)': 'onFocus()',\n },\n})\nexport class CdkTree<V> {\n /** All CdkTreeItem instances within this tree. */\n private readonly _unorderedItems = signal(new Set<CdkTreeItem<V>>());\n\n /** All CdkGroup instances within this tree. */\n readonly unorderedGroups = signal(new Set<CdkTreeItemGroup<V>>());\n\n /** Orientation of the tree. */\n readonly orientation = input<'vertical' | 'horizontal'>('vertical');\n\n /** Whether multi-selection is allowed. */\n readonly multi = input(false, {transform: booleanAttribute});\n\n /** Whether the tree is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The selection strategy used by the tree. */\n readonly selectionMode = input<'explicit' | 'follow'>('explicit');\n\n /** The focus strategy used by the tree. */\n readonly focusMode = input<'roving' | 'activedescendant'>('roving');\n\n /** Whether navigation wraps. */\n readonly wrap = input(true, {transform: booleanAttribute});\n\n /** Whether to skip disabled items during navigation. */\n readonly skipDisabled = input(true, {transform: booleanAttribute});\n\n /** Typeahead delay. */\n readonly typeaheadDelay = input(0.5);\n\n /** Selected item values. */\n readonly value = model<V[]>([]);\n\n /** Text direction. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** The UI pattern for the tree. */\n readonly pattern: TreePattern<V> = new TreePattern<V>({\n ...this,\n allItems: computed(() =>\n [...this._unorderedItems()].sort(sortDirectives).map(item => item.pattern),\n ),\n activeIndex: signal(0),\n });\n\n /** Whether the tree has received focus yet. */\n private _hasFocused = signal(false);\n\n constructor() {\n afterRenderEffect(() => {\n if (!this._hasFocused()) {\n this.pattern.setDefaultState();\n }\n });\n }\n\n onFocus() {\n this._hasFocused.set(true);\n }\n\n register(child: CdkTreeItemGroup<V> | CdkTreeItem<V>) {\n if (child instanceof CdkTreeItemGroup) {\n this.unorderedGroups().add(child);\n this.unorderedGroups.set(new Set(this.unorderedGroups()));\n }\n\n if (child instanceof CdkTreeItem) {\n this._unorderedItems().add(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n }\n\n deregister(child: CdkTreeItemGroup<V> | CdkTreeItem<V>) {\n if (child instanceof CdkTreeItemGroup) {\n this.unorderedGroups().delete(child);\n this.unorderedGroups.set(new Set(this.unorderedGroups()));\n }\n\n if (child instanceof CdkTreeItem) {\n this._unorderedItems().delete(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n }\n}\n\n/**\n * A selectable and expandable Tree Item in a Tree.\n */\n@Directive({\n selector: '[cdkTreeItem]',\n exportAs: 'cdkTreeItem',\n host: {\n 'class': 'cdk-treeitem',\n '[class.cdk-active]': 'pattern.active()',\n 'role': 'treeitem',\n '[id]': 'pattern.id()',\n '[attr.aria-expanded]': 'pattern.expandable() ? pattern.expanded() : null',\n '[attr.aria-selected]': 'pattern.selected()',\n '[attr.aria-disabled]': 'pattern.disabled()',\n '[attr.aria-level]': 'pattern.level()',\n '[attr.aria-owns]': 'group()?.id',\n '[attr.aria-setsize]': 'pattern.setsize()',\n '[attr.aria-posinset]': 'pattern.posinset()',\n '[attr.tabindex]': 'pattern.tabindex()',\n '[attr.inert]': 'pattern.visible() ? null : true',\n },\n})\nexport class CdkTreeItem<V> implements OnInit, OnDestroy, HasElement {\n /** A reference to the tree item element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A unique identifier for the tree item. */\n private readonly _id = inject(_IdGenerator).getId('cdk-tree-item-');\n\n /** The top level CdkTree. */\n private readonly _tree = inject(CdkTree<V>);\n\n /** The parent CdkTreeItem. */\n private readonly _treeItem = inject(CdkTreeItem<V>, {optional: true, skipSelf: true});\n\n /** The parent CdkGroup, if any. */\n private readonly _parentGroup = inject(CdkTreeItemGroup<V>, {optional: true});\n\n /** The top level TreePattern. */\n private readonly _treePattern = computed(() => this._tree.pattern);\n\n /** The parent TreeItemPattern. */\n private readonly _parentPattern: Signal<TreeItemPattern<V> | TreePattern<V>> = computed(\n () => this._treeItem?.pattern ?? this._treePattern(),\n );\n\n /** The host native element. */\n readonly element = computed(() => this._elementRef.nativeElement);\n\n /** The value of the tree item. */\n readonly value = input.required<V>();\n\n /** Whether the tree item is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Optional label for typeahead. Defaults to the element's textContent. */\n readonly label = input<string>();\n\n /** Search term for typeahead. */\n readonly searchTerm = computed(() => this.label() ?? this.element().textContent);\n\n /** Manual group assignment. */\n readonly group = signal<CdkTreeItemGroup<V> | undefined>(undefined);\n\n /** The UI pattern for this item. */\n readonly pattern: TreeItemPattern<V> = new TreeItemPattern<V>({\n ...this,\n id: () => this._id,\n tree: this._treePattern,\n parent: this._parentPattern,\n children: computed(\n () =>\n this.group()\n ?.children()\n .map(item => (item as CdkTreeItem<V>).pattern) ?? [],\n ),\n hasChildren: computed(() => !!this.group()),\n });\n\n constructor() {\n afterRenderEffect(() => {\n const group = [...this._tree.unorderedGroups()].find(group => group.value() === this.value());\n if (group) {\n this.group.set(group);\n }\n });\n\n // Updates the visibility of the owned group.\n afterRenderEffect(() => {\n this.group()?.visible.set(this.pattern.expanded());\n });\n }\n\n ngOnInit() {\n this._tree.register(this);\n this._parentGroup?.register(this);\n }\n\n ngOnDestroy() {\n this._tree.deregister(this);\n this._parentGroup?.deregister(this);\n }\n}\n\n/**\n * Container that designates content as a group.\n */\n@Directive({\n selector: '[cdkTreeItemGroup]',\n exportAs: 'cdkTreeItemGroup',\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n host: {\n 'class': 'cdk-treeitem-group',\n 'role': 'group',\n '[id]': 'id',\n '[attr.inert]': 'visible() ? null : true',\n },\n})\nexport class CdkTreeItemGroup<V> implements OnInit, OnDestroy, HasElement {\n /** A reference to the group element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware);\n\n /** The top level CdkTree. */\n private readonly _tree = inject(CdkTree<V>);\n\n /** All groupable items that are descendants of the group. */\n private readonly _unorderedItems = signal(new Set<CdkTreeItem<V>>());\n\n /** The host native element. */\n readonly element = computed(() => this._elementRef.nativeElement);\n\n /** Unique ID for the group. */\n readonly id = inject(_IdGenerator).getId('cdk-tree-group-');\n\n /** Whether the group is visible. */\n readonly visible = signal(true);\n\n /** Child items within this group. */\n readonly children = computed(() => [...this._unorderedItems()].sort(sortDirectives));\n\n /** Identifier for matching the group owner. */\n readonly value = input.required<V>();\n\n constructor() {\n // Connect the group's hidden state to the DeferredContentAware's visibility.\n afterRenderEffect(() => {\n this._deferredContentAware.contentVisible.set(this.visible());\n });\n }\n\n ngOnInit() {\n this._tree.register(this);\n }\n\n ngOnDestroy() {\n this._tree.deregister(this);\n }\n\n register(child: CdkTreeItem<V>) {\n this._unorderedItems().add(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n\n deregister(child: CdkTreeItem<V>) {\n this._unorderedItems().delete(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n}\n\n/**\n * A structural directive that marks the `ng-template` to be used as the content\n * for a `CdkTreeItemGroup`. This content can be lazily loaded.\n */\n@Directive({\n selector: 'ng-template[cdkTreeItemGroupContent]',\n hostDirectives: [DeferredContent],\n})\nexport class CdkTreeItemGroupContent {}\n"],"names":["Modifier"],"mappings":"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"}
@@ -1,10 +1,11 @@
1
- export { L as ListboxPattern, O as OptionPattern } from './option-r2ojgVMH.mjs';
2
- export { a as RadioButtonPattern, R as RadioGroupPattern } from './radio-s5uO_tmJ.mjs';
3
- export { T as TabListPattern, b as TabPanelPattern, a as TabPattern } from './tabs-CeifH1j2.mjs';
1
+ export { L as ListboxPattern, O as OptionPattern } from './option-D44ECQK6.mjs';
2
+ export { a as RadioButtonPattern, R as RadioGroupPattern } from './radio-button-BiqPDreS.mjs';
3
+ export { T as TabListPattern, b as TabPanelPattern, a as TabPattern } from './tabs-DLPSZvPZ.mjs';
4
4
  export { b as AccordionGroupPattern, A as AccordionPanelPattern, a as AccordionTriggerPattern } from './accordion-CN4PcmAh.mjs';
5
5
  import './list-focus-BXQdAA3i.mjs';
6
6
  import '@angular/core';
7
- import './list-selection-BLV4Yy7T.mjs';
7
+ import './list-selection-C41ApAbt.mjs';
8
+ import './list-typeahead-DIIbNJrP.mjs';
8
9
  import './expansion-C9iQLHOG.mjs';
9
10
 
10
11
  /** Converts a getter setter style signal to a WritableSignalLike. */
@@ -1 +1 @@
1
- {"version":3,"file":"ui-patterns.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-46c76129e412/bin/src/cdk-experimental/ui-patterns/behaviors/signal-like/signal-like.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nexport type SignalLike<T> = () => T;\n\nexport interface WritableSignalLike<T> extends SignalLike<T> {\n set(value: T): void;\n update(updateFn: (value: T) => T): void;\n}\n\n/** Converts a getter setter style signal to a WritableSignalLike. */\nexport function convertGetterSetterToWritableSignalLike<T>(\n getter: () => T,\n setter: (v: T) => void,\n): WritableSignalLike<T> {\n // tslint:disable-next-line:ban Have to use `Object.assign` to preserve the getter function.\n return Object.assign(getter, {\n set: setter,\n update: (updateCallback: (v: T) => T) => setter(updateCallback(getter())),\n });\n}\n"],"names":[],"mappings":";;;;;;;;;AAeA;AACgB,SAAA,uCAAuC,CACrD,MAAe,EACf,MAAsB,EAAA;;AAGtB,IAAA,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AAC3B,QAAA,GAAG,EAAE,MAAM;AACX,QAAA,MAAM,EAAE,CAAC,cAA2B,KAAK,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;AAC1E,KAAA,CAAC;AACJ;;;;"}
1
+ {"version":3,"file":"ui-patterns.mjs","sources":["../../../../../k8-fastbuild-ST-46c76129e412/bin/src/cdk-experimental/ui-patterns/behaviors/signal-like/signal-like.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nexport type SignalLike<T> = () => T;\n\nexport interface WritableSignalLike<T> extends SignalLike<T> {\n set(value: T): void;\n update(updateFn: (value: T) => T): void;\n}\n\n/** Converts a getter setter style signal to a WritableSignalLike. */\nexport function convertGetterSetterToWritableSignalLike<T>(\n getter: () => T,\n setter: (v: T) => void,\n): WritableSignalLike<T> {\n // tslint:disable-next-line:ban Have to use `Object.assign` to preserve the getter function.\n return Object.assign(getter, {\n set: setter,\n update: (updateCallback: (v: T) => T) => setter(updateCallback(getter())),\n });\n}\n"],"names":[],"mappings":";;;;;;;;;;AAeA;AACgB,SAAA,uCAAuC,CACrD,MAAe,EACf,MAAsB,EAAA;;AAGtB,IAAA,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AAC3B,QAAA,GAAG,EAAE,MAAM;AACX,QAAA,MAAM,EAAE,CAAC,cAA2B,KAAK,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;AAC1E,KAAA,CAAC;AACJ;;;;"}
@@ -1,4 +1,4 @@
1
- import * as i0 from '@angular/core';
1
+ import * as _angular_core from '@angular/core';
2
2
 
3
3
  type SignalLike<T> = () => T;
4
4
  interface WritableSignalLike<T> extends SignalLike<T> {
@@ -129,9 +129,9 @@ interface ListFocusInputs<T extends ListFocusItem> {
129
129
  declare class ListFocus<T extends ListFocusItem> {
130
130
  readonly inputs: ListFocusInputs<T>;
131
131
  /** The last index that was active. */
132
- prevActiveIndex: i0.WritableSignal<number>;
132
+ prevActiveIndex: _angular_core.WritableSignal<number>;
133
133
  /** The current active item. */
134
- activeItem: i0.Signal<T>;
134
+ activeItem: _angular_core.Signal<T>;
135
135
  constructor(inputs: ListFocusInputs<T>);
136
136
  /** Whether the list is in a disabled state. */
137
137
  isListDisabled(): boolean;
@@ -1,5 +1,5 @@
1
- import * as i0 from '@angular/core';
2
- import { f as ListFocusItem, S as SignalLike, a as ListFocusInputs, W as WritableSignalLike, d as ListFocus } from './list-navigation.d-Br99p_2O.js';
1
+ import * as _angular_core from '@angular/core';
2
+ import { f as ListFocusItem, S as SignalLike, a as ListFocusInputs, W as WritableSignalLike, d as ListFocus } from './list-navigation.d-tcweHm4g.js';
3
3
 
4
4
  /** Represents an item in a collection, such as a listbox option, than can be selected. */
5
5
  interface ListSelectionItem<V> extends ListFocusItem {
@@ -21,11 +21,11 @@ declare class ListSelection<T extends ListSelectionItem<V>, V> {
21
21
  focusManager: ListFocus<T>;
22
22
  };
23
23
  /** The start index to use for range selection. */
24
- rangeStartIndex: i0.WritableSignal<number>;
24
+ rangeStartIndex: _angular_core.WritableSignal<number>;
25
25
  /** The end index to use for range selection. */
26
- rangeEndIndex: i0.WritableSignal<number>;
26
+ rangeEndIndex: _angular_core.WritableSignal<number>;
27
27
  /** The currently selected items. */
28
- selectedItems: i0.Signal<T[]>;
28
+ selectedItems: _angular_core.Signal<T[]>;
29
29
  constructor(inputs: ListSelectionInputs<T, V> & {
30
30
  focusManager: ListFocus<T>;
31
31
  });
@@ -0,0 +1,48 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { f as ListFocusItem, S as SignalLike, a as ListFocusInputs, d as ListFocus } from './list-navigation.d-tcweHm4g.js';
3
+
4
+ /**
5
+ * Represents an item in a collection, such as a listbox option, than can be navigated to by
6
+ * typeahead.
7
+ */
8
+ interface ListTypeaheadItem extends ListFocusItem {
9
+ /** The text used by the typeahead search. */
10
+ searchTerm: SignalLike<string>;
11
+ }
12
+ /**
13
+ * Represents the required inputs for a collection that contains items that can be navigated to by
14
+ * typeahead.
15
+ */
16
+ interface ListTypeaheadInputs<T extends ListTypeaheadItem> extends ListFocusInputs<T> {
17
+ /** The amount of time before the typeahead search is reset. */
18
+ typeaheadDelay: SignalLike<number>;
19
+ }
20
+ /** Controls typeahead for a list of items. */
21
+ declare class ListTypeahead<T extends ListTypeaheadItem> {
22
+ readonly inputs: ListTypeaheadInputs<T> & {
23
+ focusManager: ListFocus<T>;
24
+ };
25
+ /** A reference to the timeout for resetting the typeahead search. */
26
+ timeout?: ReturnType<typeof setTimeout> | undefined;
27
+ /** The focus controller of the parent list. */
28
+ focusManager: ListFocus<T>;
29
+ /** Whether the user is actively typing a typeahead search query. */
30
+ isTyping: _angular_core.Signal<boolean>;
31
+ /** Keeps track of the characters that typeahead search is being called with. */
32
+ private _query;
33
+ /** The index where that the typeahead search was initiated from. */
34
+ private _startIndex;
35
+ constructor(inputs: ListTypeaheadInputs<T> & {
36
+ focusManager: ListFocus<T>;
37
+ });
38
+ /** Performs a typeahead search, appending the given character to the search string. */
39
+ search(char: string): boolean;
40
+ /**
41
+ * Returns the first item whose search term matches the
42
+ * current query starting from the the current anchor index.
43
+ */
44
+ private _getItem;
45
+ }
46
+
47
+ export { ListTypeahead as L };
48
+ export type { ListTypeaheadItem as a, ListTypeaheadInputs as b };
@@ -1,8 +1,9 @@
1
- import * as i0 from '@angular/core';
1
+ import * as _angular_core from '@angular/core';
2
2
  import * as _angular_cdk_bidi from '@angular/cdk/bidi';
3
- import { b as OptionPattern, a as ListboxPattern } from '../listbox.d-C8oz9si7.js';
4
- import '../list-navigation.d-Br99p_2O.js';
5
- import '../list-selection.d-BQWRFJI-.js';
3
+ import { b as OptionPattern, a as ListboxPattern } from '../listbox.d-hkdivyCf.js';
4
+ import '../list-navigation.d-tcweHm4g.js';
5
+ import '../list-selection.d-BBLdeUeF.js';
6
+ import '../list-typeahead.d-DvIIfjfu.js';
6
7
 
7
8
  /**
8
9
  * A listbox container.
@@ -24,37 +25,37 @@ declare class CdkListbox<V> {
24
25
  /** The CdkOptions nested inside of the CdkListbox. */
25
26
  private readonly _cdkOptions;
26
27
  /** A signal wrapper for directionality. */
27
- protected textDirection: i0.Signal<_angular_cdk_bidi.Direction>;
28
+ protected textDirection: _angular_core.Signal<_angular_cdk_bidi.Direction>;
28
29
  /** The Option UIPatterns of the child CdkOptions. */
29
- protected items: i0.Signal<OptionPattern<any>[]>;
30
+ protected items: _angular_core.Signal<OptionPattern<any>[]>;
30
31
  /** Whether the list is vertically or horizontally oriented. */
31
- orientation: i0.InputSignal<"vertical" | "horizontal">;
32
+ orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
32
33
  /** Whether multiple items in the list can be selected at once. */
33
- multi: i0.InputSignalWithTransform<boolean, unknown>;
34
+ multi: _angular_core.InputSignalWithTransform<boolean, unknown>;
34
35
  /** Whether focus should wrap when navigating. */
35
- wrap: i0.InputSignalWithTransform<boolean, unknown>;
36
+ wrap: _angular_core.InputSignalWithTransform<boolean, unknown>;
36
37
  /** Whether disabled items in the list should be skipped when navigating. */
37
- skipDisabled: i0.InputSignalWithTransform<boolean, unknown>;
38
+ skipDisabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
38
39
  /** The focus strategy used by the list. */
39
- focusMode: i0.InputSignal<"roving" | "activedescendant">;
40
+ focusMode: _angular_core.InputSignal<"roving" | "activedescendant">;
40
41
  /** The selection strategy used by the list. */
41
- selectionMode: i0.InputSignal<"follow" | "explicit">;
42
+ selectionMode: _angular_core.InputSignal<"follow" | "explicit">;
42
43
  /** The amount of time before the typeahead search is reset. */
43
- typeaheadDelay: i0.InputSignal<number>;
44
+ typeaheadDelay: _angular_core.InputSignal<number>;
44
45
  /** Whether the listbox is disabled. */
45
- disabled: i0.InputSignalWithTransform<boolean, unknown>;
46
+ disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
46
47
  /** Whether the listbox is readonly. */
47
- readonly: i0.InputSignalWithTransform<boolean, unknown>;
48
+ readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
48
49
  /** The values of the current selected items. */
49
- value: i0.ModelSignal<V[]>;
50
+ value: _angular_core.ModelSignal<V[]>;
50
51
  /** The Listbox UIPattern. */
51
52
  pattern: ListboxPattern<V>;
52
53
  /** Whether the listbox has received focus yet. */
53
54
  private _hasFocused;
54
55
  constructor();
55
56
  onFocus(): void;
56
- static ɵfac: i0.ɵɵFactoryDeclaration<CdkListbox<any>, never>;
57
- static ɵdir: i0.ɵɵDirectiveDeclaration<CdkListbox<any>, "[cdkListbox]", ["cdkListbox"], { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "multi": { "alias": "multi"; "required": false; "isSignal": true; }; "wrap": { "alias": "wrap"; "required": false; "isSignal": true; }; "skipDisabled": { "alias": "skipDisabled"; "required": false; "isSignal": true; }; "focusMode": { "alias": "focusMode"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "typeaheadDelay": { "alias": "typeaheadDelay"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, ["_cdkOptions"], never, true, never>;
57
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CdkListbox<any>, never>;
58
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CdkListbox<any>, "[cdkListbox]", ["cdkListbox"], { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "multi": { "alias": "multi"; "required": false; "isSignal": true; }; "wrap": { "alias": "wrap"; "required": false; "isSignal": true; }; "skipDisabled": { "alias": "skipDisabled"; "required": false; "isSignal": true; }; "focusMode": { "alias": "focusMode"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "typeaheadDelay": { "alias": "typeaheadDelay"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, ["_cdkOptions"], never, true, never>;
58
59
  }
59
60
  /** A selectable option in a CdkListbox. */
60
61
  declare class CdkOption<V> {
@@ -65,23 +66,23 @@ declare class CdkOption<V> {
65
66
  /** A unique identifier for the option. */
66
67
  private readonly _generatedId;
67
68
  /** A unique identifier for the option. */
68
- protected id: i0.Signal<string>;
69
+ protected id: _angular_core.Signal<string>;
69
70
  /** The value of the option. */
70
- protected value: i0.InputSignal<V>;
71
+ protected value: _angular_core.InputSignal<V>;
71
72
  /** The text used by the typeahead search. */
72
- protected searchTerm: i0.Signal<any>;
73
+ protected searchTerm: _angular_core.Signal<any>;
73
74
  /** The parent Listbox UIPattern. */
74
- protected listbox: i0.Signal<ListboxPattern<any>>;
75
+ protected listbox: _angular_core.Signal<ListboxPattern<any>>;
75
76
  /** A reference to the option element to be focused on navigation. */
76
- protected element: i0.Signal<any>;
77
+ protected element: _angular_core.Signal<any>;
77
78
  /** Whether an item is disabled. */
78
- disabled: i0.InputSignalWithTransform<boolean, unknown>;
79
+ disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
79
80
  /** The text used by the typeahead search. */
80
- label: i0.InputSignal<string | undefined>;
81
+ label: _angular_core.InputSignal<string | undefined>;
81
82
  /** The Option UIPattern. */
82
83
  pattern: OptionPattern<V>;
83
- static ɵfac: i0.ɵɵFactoryDeclaration<CdkOption<any>, never>;
84
- static ɵdir: i0.ɵɵDirectiveDeclaration<CdkOption<any>, "[cdkOption]", ["cdkOption"], { "value": { "alias": "value"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
84
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CdkOption<any>, never>;
85
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CdkOption<any>, "[cdkOption]", ["cdkOption"], { "value": { "alias": "value"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
85
86
  }
86
87
 
87
88
  export { CdkListbox, CdkOption };
@@ -1,49 +1,7 @@
1
- import * as i0 from '@angular/core';
2
- import { f as ListFocusItem, S as SignalLike, a as ListFocusInputs, d as ListFocus, e as ListNavigationItem, b as ListNavigation, L as ListNavigationInputs, K as KeyboardEventManager, P as PointerEventManager } from './list-navigation.d-Br99p_2O.js';
3
- import { L as ListSelectionItem, b as ListSelection, a as ListSelectionInputs } from './list-selection.d-BQWRFJI-.js';
4
-
5
- /**
6
- * Represents an item in a collection, such as a listbox option, than can be navigated to by
7
- * typeahead.
8
- */
9
- interface ListTypeaheadItem extends ListFocusItem {
10
- /** The text used by the typeahead search. */
11
- searchTerm: SignalLike<string>;
12
- }
13
- /**
14
- * Represents the required inputs for a collection that contains items that can be navigated to by
15
- * typeahead.
16
- */
17
- interface ListTypeaheadInputs<T extends ListTypeaheadItem> extends ListFocusInputs<T> {
18
- /** The amount of time before the typeahead search is reset. */
19
- typeaheadDelay: SignalLike<number>;
20
- }
21
- /** Controls typeahead for a list of items. */
22
- declare class ListTypeahead<T extends ListTypeaheadItem> {
23
- readonly inputs: ListTypeaheadInputs<T> & {
24
- focusManager: ListFocus<T>;
25
- };
26
- /** A reference to the timeout for resetting the typeahead search. */
27
- timeout?: ReturnType<typeof setTimeout> | undefined;
28
- /** The focus controller of the parent list. */
29
- focusManager: ListFocus<T>;
30
- /** Whether the user is actively typing a typeahead search query. */
31
- isTyping: i0.Signal<boolean>;
32
- /** Keeps track of the characters that typeahead search is being called with. */
33
- private _query;
34
- /** The index where that the typeahead search was initiated from. */
35
- private _startIndex;
36
- constructor(inputs: ListTypeaheadInputs<T> & {
37
- focusManager: ListFocus<T>;
38
- });
39
- /** Performs a typeahead search, appending the given character to the search string. */
40
- search(char: string): boolean;
41
- /**
42
- * Returns the first item whose search term matches the
43
- * current query starting from the the current anchor index.
44
- */
45
- private _getItem;
46
- }
1
+ import * as _angular_core from '@angular/core';
2
+ import { e as ListNavigationItem, f as ListFocusItem, S as SignalLike, d as ListFocus, b as ListNavigation, L as ListNavigationInputs, a as ListFocusInputs, K as KeyboardEventManager, P as PointerEventManager } from './list-navigation.d-tcweHm4g.js';
3
+ import { L as ListSelectionItem, b as ListSelection, a as ListSelectionInputs } from './list-selection.d-BBLdeUeF.js';
4
+ import { a as ListTypeaheadItem, b as ListTypeaheadInputs, L as ListTypeahead } from './list-typeahead.d-DvIIfjfu.js';
47
5
 
48
6
  /**
49
7
  * Represents the properties exposed by a listbox that need to be accessed by an option.
@@ -65,11 +23,11 @@ declare class OptionPattern<V> {
65
23
  /** The value of the option. */
66
24
  value: SignalLike<V>;
67
25
  /** The position of the option in the list. */
68
- index: i0.Signal<number>;
26
+ index: _angular_core.Signal<number>;
69
27
  /** Whether the option is active. */
70
- active: i0.Signal<boolean>;
28
+ active: _angular_core.Signal<boolean>;
71
29
  /** Whether the option is selected. */
72
- selected: i0.Signal<boolean | undefined>;
30
+ selected: _angular_core.Signal<boolean | undefined>;
73
31
  /** Whether the option is disabled. */
74
32
  disabled: SignalLike<boolean>;
75
33
  /** The text used by the typeahead search. */
@@ -77,7 +35,7 @@ declare class OptionPattern<V> {
77
35
  /** A reference to the parent listbox. */
78
36
  listbox: SignalLike<ListboxPattern$1<V> | undefined>;
79
37
  /** The tabindex of the option. */
80
- tabindex: i0.Signal<0 | -1 | undefined>;
38
+ tabindex: _angular_core.Signal<0 | -1 | undefined>;
81
39
  /** The html element that should receive focus. */
82
40
  element: SignalLike<HTMLElement>;
83
41
  constructor(args: OptionInputs<V>);
@@ -108,27 +66,27 @@ declare class ListboxPattern<V> {
108
66
  /** Whether the list is vertically or horizontally oriented. */
109
67
  orientation: SignalLike<'vertical' | 'horizontal'>;
110
68
  /** Whether the listbox is disabled. */
111
- disabled: i0.Signal<boolean>;
69
+ disabled: _angular_core.Signal<boolean>;
112
70
  /** Whether the listbox is readonly. */
113
71
  readonly: SignalLike<boolean>;
114
72
  /** The tabindex of the listbox. */
115
- tabindex: i0.Signal<0 | -1>;
73
+ tabindex: _angular_core.Signal<0 | -1>;
116
74
  /** The id of the current active item. */
117
- activedescendant: i0.Signal<string | undefined>;
75
+ activedescendant: _angular_core.Signal<string | undefined>;
118
76
  /** Whether multiple items in the list can be selected at once. */
119
77
  multi: SignalLike<boolean>;
120
78
  /** The number of items in the listbox. */
121
- setsize: i0.Signal<number>;
79
+ setsize: _angular_core.Signal<number>;
122
80
  /** Whether the listbox selection follows focus. */
123
- followFocus: i0.Signal<boolean>;
81
+ followFocus: _angular_core.Signal<boolean>;
124
82
  /** Whether the listbox should wrap. Used to disable wrapping while range selecting. */
125
- wrap: i0.WritableSignal<boolean>;
83
+ wrap: _angular_core.WritableSignal<boolean>;
126
84
  /** The key used to navigate to the previous item in the list. */
127
- prevKey: i0.Signal<"ArrowUp" | "ArrowRight" | "ArrowLeft">;
85
+ prevKey: _angular_core.Signal<"ArrowUp" | "ArrowRight" | "ArrowLeft">;
128
86
  /** The key used to navigate to the next item in the list. */
129
- nextKey: i0.Signal<"ArrowRight" | "ArrowLeft" | "ArrowDown">;
87
+ nextKey: _angular_core.Signal<"ArrowRight" | "ArrowLeft" | "ArrowDown">;
130
88
  /** Represents the space key. Does nothing when the user is actively using typeahead. */
131
- dynamicSpaceKey: i0.Signal<"" | " ">;
89
+ dynamicSpaceKey: _angular_core.Signal<"" | " ">;
132
90
  /** The regexp used to decide if a key should trigger typeahead. */
133
91
  typeaheadRegexp: RegExp;
134
92
  /**
@@ -143,11 +101,11 @@ declare class ListboxPattern<V> {
143
101
  * In other words, "rangeStartIndex" is only set when a user commits to starting a range selection
144
102
  * while "anchorIndex" is set whenever a user indicates they may be starting a range selection.
145
103
  */
146
- anchorIndex: i0.WritableSignal<number>;
104
+ anchorIndex: _angular_core.WritableSignal<number>;
147
105
  /** The keydown event manager for the listbox. */
148
- keydown: i0.Signal<KeyboardEventManager<KeyboardEvent>>;
106
+ keydown: _angular_core.Signal<KeyboardEventManager<KeyboardEvent>>;
149
107
  /** The pointerdown event manager for the listbox. */
150
- pointerdown: i0.Signal<PointerEventManager<PointerEvent>>;
108
+ pointerdown: _angular_core.Signal<PointerEventManager<PointerEvent>>;
151
109
  constructor(inputs: ListboxInputs<V>);
152
110
  /** Returns a set of violations */
153
111
  validate(): string[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angular/cdk-experimental",
3
- "version": "20.1.0-next.1",
3
+ "version": "20.1.0-next.2",
4
4
  "description": "Experimental components for Angular CDK",
5
5
  "repository": {
6
6
  "type": "git",
@@ -12,7 +12,7 @@
12
12
  },
13
13
  "homepage": "https://github.com/angular/components#readme",
14
14
  "peerDependencies": {
15
- "@angular/cdk": "20.1.0-next.1",
15
+ "@angular/cdk": "20.1.0-next.2",
16
16
  "@angular/core": "^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0"
17
17
  },
18
18
  "devDependencies": {
@@ -68,9 +68,9 @@
68
68
  "types": "./popover-edit/index.d.ts",
69
69
  "default": "./fesm2022/popover-edit.mjs"
70
70
  },
71
- "./radio": {
72
- "types": "./radio/index.d.ts",
73
- "default": "./fesm2022/radio.mjs"
71
+ "./radio-group": {
72
+ "types": "./radio-group/index.d.ts",
73
+ "default": "./fesm2022/radio-group.mjs"
74
74
  },
75
75
  "./scrolling": {
76
76
  "types": "./scrolling/index.d.ts",
@@ -88,6 +88,10 @@
88
88
  "types": "./tabs/index.d.ts",
89
89
  "default": "./fesm2022/tabs.mjs"
90
90
  },
91
+ "./tree": {
92
+ "types": "./tree/index.d.ts",
93
+ "default": "./fesm2022/tree.mjs"
94
+ },
91
95
  "./ui-patterns": {
92
96
  "types": "./ui-patterns/index.d.ts",
93
97
  "default": "./fesm2022/ui-patterns.mjs"