@radix-ng/primitives 1.0.0-beta.2 → 1.0.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +76 -6
  3. package/fesm2022/radix-ng-primitives-accordion.mjs +5 -3
  4. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
  5. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +31 -24
  6. package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -1
  7. package/fesm2022/radix-ng-primitives-autocomplete.mjs +1744 -0
  8. package/fesm2022/radix-ng-primitives-autocomplete.mjs.map +1 -0
  9. package/fesm2022/radix-ng-primitives-calendar.mjs +5 -3
  10. package/fesm2022/radix-ng-primitives-calendar.mjs.map +1 -1
  11. package/fesm2022/radix-ng-primitives-combobox.mjs +1399 -606
  12. package/fesm2022/radix-ng-primitives-combobox.mjs.map +1 -1
  13. package/fesm2022/radix-ng-primitives-config.mjs +13 -4
  14. package/fesm2022/radix-ng-primitives-config.mjs.map +1 -1
  15. package/fesm2022/radix-ng-primitives-context-menu.mjs +51 -10
  16. package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -1
  17. package/fesm2022/radix-ng-primitives-core.mjs +1345 -64
  18. package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
  19. package/fesm2022/radix-ng-primitives-date-field.mjs +5 -3
  20. package/fesm2022/radix-ng-primitives-date-field.mjs.map +1 -1
  21. package/fesm2022/radix-ng-primitives-dialog.mjs +271 -145
  22. package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
  23. package/fesm2022/radix-ng-primitives-direction-provider.mjs +70 -0
  24. package/fesm2022/radix-ng-primitives-direction-provider.mjs.map +1 -0
  25. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs +519 -184
  26. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs.map +1 -1
  27. package/fesm2022/radix-ng-primitives-drawer.mjs +154 -64
  28. package/fesm2022/radix-ng-primitives-drawer.mjs.map +1 -1
  29. package/fesm2022/radix-ng-primitives-field.mjs +3 -2
  30. package/fesm2022/radix-ng-primitives-field.mjs.map +1 -1
  31. package/fesm2022/radix-ng-primitives-floating-focus-manager.mjs +517 -0
  32. package/fesm2022/radix-ng-primitives-floating-focus-manager.mjs.map +1 -0
  33. package/fesm2022/radix-ng-primitives-focus-scope.mjs +296 -70
  34. package/fesm2022/radix-ng-primitives-focus-scope.mjs.map +1 -1
  35. package/fesm2022/radix-ng-primitives-menu.mjs +894 -299
  36. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
  37. package/fesm2022/radix-ng-primitives-menubar.mjs +32 -4
  38. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
  39. package/fesm2022/radix-ng-primitives-navigation-menu.mjs +176 -207
  40. package/fesm2022/radix-ng-primitives-navigation-menu.mjs.map +1 -1
  41. package/fesm2022/radix-ng-primitives-popover.mjs +250 -250
  42. package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
  43. package/fesm2022/radix-ng-primitives-popper.mjs +94 -45
  44. package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -1
  45. package/fesm2022/radix-ng-primitives-portal.mjs +107 -17
  46. package/fesm2022/radix-ng-primitives-portal.mjs.map +1 -1
  47. package/fesm2022/radix-ng-primitives-presence.mjs +262 -79
  48. package/fesm2022/radix-ng-primitives-presence.mjs.map +1 -1
  49. package/fesm2022/radix-ng-primitives-preview-card.mjs +172 -218
  50. package/fesm2022/radix-ng-primitives-preview-card.mjs.map +1 -1
  51. package/fesm2022/radix-ng-primitives-roving-focus.mjs +4 -2
  52. package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -1
  53. package/fesm2022/radix-ng-primitives-scroll-area.mjs +5 -4
  54. package/fesm2022/radix-ng-primitives-scroll-area.mjs.map +1 -1
  55. package/fesm2022/radix-ng-primitives-select.mjs +303 -234
  56. package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
  57. package/fesm2022/radix-ng-primitives-slider.mjs +5 -3
  58. package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
  59. package/fesm2022/radix-ng-primitives-stepper.mjs +5 -3
  60. package/fesm2022/radix-ng-primitives-stepper.mjs.map +1 -1
  61. package/fesm2022/radix-ng-primitives-time-field.mjs +5 -3
  62. package/fesm2022/radix-ng-primitives-time-field.mjs.map +1 -1
  63. package/fesm2022/radix-ng-primitives-toast.mjs +15 -36
  64. package/fesm2022/radix-ng-primitives-toast.mjs.map +1 -1
  65. package/fesm2022/radix-ng-primitives-toggle-group.mjs +5 -3
  66. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  67. package/fesm2022/radix-ng-primitives-toolbar.mjs +5 -3
  68. package/fesm2022/radix-ng-primitives-toolbar.mjs.map +1 -1
  69. package/fesm2022/radix-ng-primitives-tooltip.mjs +105 -145
  70. package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
  71. package/package.json +14 -1
  72. package/types/radix-ng-primitives-accordion.d.ts +4 -3
  73. package/types/radix-ng-primitives-alert-dialog.d.ts +17 -11
  74. package/types/radix-ng-primitives-autocomplete.d.ts +661 -0
  75. package/types/radix-ng-primitives-calendar.d.ts +5 -3
  76. package/types/radix-ng-primitives-combobox.d.ts +727 -293
  77. package/types/radix-ng-primitives-config.d.ts +1 -1
  78. package/types/radix-ng-primitives-context-menu.d.ts +15 -5
  79. package/types/radix-ng-primitives-core.d.ts +762 -14
  80. package/types/radix-ng-primitives-date-field.d.ts +3 -2
  81. package/types/radix-ng-primitives-dialog.d.ts +107 -55
  82. package/types/radix-ng-primitives-direction-provider.d.ts +41 -0
  83. package/types/radix-ng-primitives-dismissable-layer.d.ts +147 -99
  84. package/types/radix-ng-primitives-drawer.d.ts +49 -22
  85. package/types/radix-ng-primitives-field.d.ts +1 -0
  86. package/types/radix-ng-primitives-floating-focus-manager.d.ts +175 -0
  87. package/types/radix-ng-primitives-focus-scope.d.ts +132 -1
  88. package/types/radix-ng-primitives-menu.d.ts +204 -112
  89. package/types/radix-ng-primitives-navigation-menu.d.ts +61 -101
  90. package/types/radix-ng-primitives-popover.d.ts +82 -115
  91. package/types/radix-ng-primitives-popper.d.ts +46 -10
  92. package/types/radix-ng-primitives-portal.d.ts +53 -8
  93. package/types/radix-ng-primitives-presence.d.ts +98 -17
  94. package/types/radix-ng-primitives-preview-card.d.ts +63 -95
  95. package/types/radix-ng-primitives-roving-focus.d.ts +7 -6
  96. package/types/radix-ng-primitives-scroll-area.d.ts +2 -2
  97. package/types/radix-ng-primitives-select.d.ts +192 -158
  98. package/types/radix-ng-primitives-slider.d.ts +5 -4
  99. package/types/radix-ng-primitives-stepper.d.ts +4 -3
  100. package/types/radix-ng-primitives-time-field.d.ts +3 -2
  101. package/types/radix-ng-primitives-toast.d.ts +7 -7
  102. package/types/radix-ng-primitives-toggle-group.d.ts +5 -4
  103. package/types/radix-ng-primitives-toolbar.d.ts +3 -2
  104. package/types/radix-ng-primitives-tooltip.d.ts +48 -84
@@ -1 +1 @@
1
- {"version":3,"file":"radix-ng-primitives-select.mjs","sources":["../../../packages/primitives/select/src/utils.ts","../../../packages/primitives/select/src/select-root.ts","../../../packages/primitives/select/src/select-backdrop.ts","../../../packages/primitives/select/src/select-group.ts","../../../packages/primitives/select/src/select-group-label.ts","../../../packages/primitives/select/src/select-icon.ts","../../../packages/primitives/select/src/select-popup.ts","../../../packages/primitives/select/src/select-item.ts","../../../packages/primitives/select/src/select-item-indicator.ts","../../../packages/primitives/select/src/select-item-text.ts","../../../packages/primitives/select/src/select-list.ts","../../../packages/primitives/select/src/select-portal.ts","../../../packages/primitives/select/src/select-portal-presence.ts","../../../packages/primitives/select/src/select-positioner.ts","../../../packages/primitives/select/src/select-positioner-content.ts","../../../packages/primitives/select/src/select-separator.ts","../../../packages/primitives/select/src/select-trigger.ts","../../../packages/primitives/select/src/select-value.ts","../../../packages/primitives/select/index.ts","../../../packages/primitives/select/radix-ng-primitives-select.ts"],"sourcesContent":["import { AcceptableValue, getActiveElement, isEqual } from '@radix-ng/primitives/core';\n\nexport const OPEN_KEYS = [' ', 'Enter', 'ArrowUp', 'ArrowDown'];\nexport const SELECTION_KEYS = [' ', 'Enter'];\nexport const CONTENT_MARGIN = 10;\n\nexport function valueComparator<T>(\n value: T | T[] | undefined,\n currentValue: T,\n comparator?: string | ((a: T, b: T) => boolean)\n) {\n if (value === undefined) return false;\n else if (Array.isArray(value)) return value.some((val) => compare(val, currentValue, comparator));\n else return compare(value, currentValue, comparator);\n}\n\nexport function compare<T>(value?: T, currentValue?: T, comparator?: string | ((a: T, b: T) => boolean)) {\n if (value === undefined || currentValue === undefined) return false;\n\n if (typeof value === 'string') return value === currentValue;\n\n if (typeof comparator === 'function') return comparator(value, currentValue);\n\n if (typeof comparator === 'string') return value?.[comparator as keyof T] === currentValue?.[comparator as keyof T];\n\n return isEqual(value, currentValue);\n}\n\nexport function shouldShowPlaceholder(value?: AcceptableValue | AcceptableValue[]): boolean {\n return value === undefined || value === null || value === '' || (Array.isArray(value) && value.length === 0);\n}\n\nexport function focusFirst(candidates: HTMLElement[]) {\n const PREVIOUSLY_FOCUSED_ELEMENT = getActiveElement();\n for (const candidate of candidates) {\n // if focus is already where we want to go, we don't want to keep going through the candidates\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus();\n if (getActiveElement() !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\n","import {\n booleanAttribute,\n computed,\n Directive,\n effect,\n inject,\n input,\n model,\n output,\n signal,\n untracked\n} from '@angular/core';\nimport {\n AcceptableValue,\n createContext,\n Direction,\n isNullish,\n ItemValueComparator,\n useTransitionStatus\n} from '@radix-ng/primitives/core';\nimport { RdxPopper } from '@radix-ng/primitives/popper';\nimport { compare, valueComparator } from './utils';\n\nexport interface SelectOption {\n value: any;\n disabled?: boolean;\n textContent: string;\n}\n\nconst context = () => {\n const context = inject(RdxSelectRoot);\n\n return {\n triggerElement: context.triggerElement,\n valueElement: context.valueElement,\n triggerPointerDownPosRef: context.triggerPointerDownPosRef,\n contentId: '',\n dir: context.dir,\n value: context.value,\n multiple: context.multiple,\n isItemEqualToValue: context.isItemEqualToValue,\n itemToStringLabel: context.itemToStringLabel,\n open: context.open,\n disabled: context.disabled,\n modal: context.modal,\n isEmptyModelValue: context.isEmptyModelValue,\n transitionStatus: context.transitionStatus,\n registerTransitionElement: context.registerTransitionElement,\n optionsSet: context.optionsSet,\n onOptionAdd: (option: any) => {\n const existingOption = context.getOption(option());\n if (existingOption) {\n context.optionsSet().delete(existingOption);\n }\n\n context.optionsSet().add(option());\n },\n onOptionRemove: (option: any) => {\n const existingOption = context.getOption(option());\n if (existingOption) {\n context.optionsSet().delete(existingOption);\n }\n },\n onValueChange: context.handleValueChange,\n onTriggerChange: (node: any) => {\n context.triggerElement.set(node.nativeElement);\n },\n onValueElementChange: (node: any) => {\n context.valueElement.set(node);\n },\n onOpenChange: (value: any) => {\n context.open.set(value);\n }\n };\n};\n\nexport type RdxSelectRootContext = ReturnType<typeof context>;\n\nexport const [injectSelectRootContext, provideSelectRootContext] = createContext<RdxSelectRootContext>(\n 'RdxSelectRootContext',\n 'components/select'\n);\n\n@Directive({\n selector: '[rdxSelectRoot]',\n exportAs: 'rdxSelectRoot',\n providers: [provideSelectRootContext(context)],\n hostDirectives: [RdxPopper]\n})\nexport class RdxSelectRoot {\n readonly open = model<boolean>(false);\n\n readonly value = model<AcceptableValue | AcceptableValue[]>();\n\n readonly multiple = input(false, { transform: booleanAttribute });\n\n readonly disabled = input(false, { transform: booleanAttribute });\n\n /** Whether the popup is modal: locks page scroll and makes outside content inert while open. */\n readonly modal = input(true, { transform: booleanAttribute });\n\n readonly dir = input<Direction>('ltr');\n\n /** How item values are compared for equality — a function `(a, b) => boolean` or an object key. */\n readonly isItemEqualToValue = input<ItemValueComparator<AcceptableValue>>();\n\n /** Converts a value to its display label (used by `RdxSelectValue`). */\n readonly itemToStringLabel = input<(value: AcceptableValue) => string>();\n\n /** Emits after the open/close transition (including any exit animation) finishes. */\n readonly onOpenChangeComplete = output<boolean>();\n\n private readonly transition = useTransitionStatus((open) => this.onOpenChangeComplete.emit(open));\n\n /** Open/close transition phase, for `data-starting-style` / `data-ending-style`. */\n readonly transitionStatus = this.transition.status;\n\n /** Registers the popup element whose animation determines transition completion. */\n readonly registerTransitionElement = this.transition.registerElement;\n\n readonly isEmptyModelValue = computed(() => {\n const value = this.value();\n if (this.multiple() && Array.isArray(value)) {\n return value.length === 0;\n }\n return isNullish(value);\n });\n\n constructor() {\n let previousOpen = untracked(this.open);\n effect(() => {\n const open = this.open();\n if (open === previousOpen) {\n return;\n }\n previousOpen = open;\n untracked(() => this.transition.start(open));\n });\n }\n\n readonly optionsSet = signal<Set<SelectOption>>(new Set());\n\n // The native `select` only associates the correct default value if the corresponding\n // `option` is rendered as a child **at the same time** as itself.\n // Because it might take a few renders for our items to gather the information to build\n // the native `option`(s), we generate a key on the `select` to make sure Vue re-builds it\n // each time the options change.\n readonly nativeSelectKey = computed(() => {\n return Array.from(this.optionsSet())\n .map((option) => option.value)\n .join(';');\n });\n\n readonly triggerElement = signal<HTMLElement | null>(null);\n readonly valueElement = signal<HTMLElement | null>(null);\n readonly triggerPointerDownPosRef = signal<{ x: number; y: number } | null>({\n x: 0,\n y: 0\n });\n\n getOption(value: SelectOption['value']) {\n return Array.from(this.optionsSet()).find((option) =>\n valueComparator(value, option.value, this.isItemEqualToValue())\n );\n }\n\n handleValueChange(value: AcceptableValue) {\n if (this.multiple()) {\n const current = this.value();\n const array = Array.isArray(current) ? [...current] : [];\n const index = array.findIndex((i) => compare(i, value, this.isItemEqualToValue()));\n index === -1 ? array.push(value) : array.splice(index, 1);\n this.value.set([...array]);\n } else {\n this.value.set(value);\n }\n }\n}\n","import { Directive } from '@angular/core';\nimport { injectSelectRootContext } from './select-root';\n\n/**\n * An overlay rendered beneath the popup in `modal` mode. Place it inside the portal/presence; style\n * it `position: fixed; inset: 0`. Exposes `data-open` / `data-closed` for animation.\n *\n * @group Components\n */\n@Directive({\n selector: '[rdxSelectBackdrop]',\n exportAs: 'rdxSelectBackdrop',\n host: {\n 'aria-hidden': 'true',\n '[attr.data-state]': 'rootContext.open() ? \"open\" : \"closed\"',\n '[attr.data-open]': 'rootContext.open() ? \"\" : undefined',\n '[attr.data-closed]': 'rootContext.open() ? undefined : \"\"'\n }\n})\nexport class RdxSelectBackdrop {\n protected readonly rootContext = injectSelectRootContext();\n}\n","import { Directive } from '@angular/core';\nimport { injectId } from '@radix-ng/primitives/core';\n\n@Directive({\n selector: '[rdxSelectGroup]',\n exportAs: 'rdxSelectGroup',\n host: {\n role: 'group',\n '[attr.aria-labelledby]': 'id'\n }\n})\nexport class RdxSelectGroup {\n readonly id = injectId('rdx-select-group-');\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[rdxSelectGroupLabel]',\n host: {}\n})\nexport class RdxSelectGroupLabel {}\n","import { Directive } from '@angular/core';\n\n/**\n * Decorative icon inside the trigger (e.g. a chevron). Hidden from assistive technology.\n *\n * @group Components\n */\n@Directive({\n selector: '[rdxSelectIcon]',\n exportAs: 'rdxSelectIcon',\n host: {\n 'aria-hidden': 'true'\n }\n})\nexport class RdxSelectIcon {}\n","import {\n afterNextRender,\n ContentChild,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n inject,\n InjectionToken,\n Injector,\n OutputRef,\n signal\n} from '@angular/core';\nimport { outputFromObservable, outputToObservable } from '@angular/core/rxjs-interop';\nimport { RdxCollectionItem, RdxCollectionProvider } from '@radix-ng/primitives/collection';\nimport { AcceptableValue, createContext, useListHighlight, useScrollLock } from '@radix-ng/primitives/core';\nimport { provideRdxDismissableLayerConfig, RdxDismissableLayer } from '@radix-ng/primitives/dismissable-layer';\nimport { RdxFocusScope } from '@radix-ng/primitives/focus-scope';\nimport { injectSelectRootContext } from './select-root';\nimport { SELECTION_KEYS, valueComparator } from './utils';\n\nconst context = () => {\n const context = inject(RdxSelectPopup);\n\n return {\n content: context.content,\n viewport: context.viewport,\n isPositioned: context.isPositioned,\n selectedItem: context.selectedItem,\n selectedItemText: context.selectedItemText,\n highlightedItem: context.highlight.highlightedItem,\n isHighlighted: (item: RdxCollectionItem) => context.highlight.highlightedItem() === item,\n highlightItem: (item: RdxCollectionItem) => context.highlight.set(item),\n isKeyboardActive: () => context.isKeyboardActive(),\n setKeyboardActive: (value: boolean) => context.setKeyboardActive(value),\n onViewportChange: (node: any) => {\n context.viewport.set(node);\n },\n onItemLeave: () => {\n context.highlight.clear();\n },\n itemRefCallback: (node: any, value: any, disabled: boolean) => {\n const isFirstValidItem = !context.firstValidItemFoundRef() && !disabled;\n const isSelectedItem = valueComparator(\n context.rootContext.value(),\n value,\n context.rootContext.isItemEqualToValue()\n );\n\n if (isSelectedItem || isFirstValidItem) {\n context.selectedItem.set(node);\n }\n\n if (isFirstValidItem) {\n context.firstValidItemFoundRef.set(true);\n }\n },\n itemTextRefCallback: (node: any, value: any, disabled: any) => {\n const isFirstValidItem = !context.firstValidItemFoundRef() && !disabled;\n const isSelectedItem = valueComparator(\n context.rootContext.value(),\n value,\n context.rootContext.isItemEqualToValue()\n );\n\n if (isSelectedItem || isFirstValidItem) {\n context.selectedItemText.set(node);\n }\n }\n };\n};\n\nexport type RdxSelectPopupContext = ReturnType<typeof context>;\n\nexport const [injectSelectPopupContext, provideSelectPopupContext] = createContext<RdxSelectPopupContext>(\n 'RdxSelectPopup',\n 'components/select'\n);\n\nexport interface RdxPositionerImpl {\n placed: OutputRef<any>;\n}\n\nexport const RDX_SELECT_POSITIONER_TOKEN = new InjectionToken<RdxPositionerImpl>('RDX_SELECT_POSITIONER_TOKEN');\n\n/**\n * The popup listbox. Holds DOM focus while open and navigates with the highlight model\n * (`aria-activedescendant`) — items are not individually focusable. (Renamed to `RdxSelectPopup` in a\n * later step; selector kept here during the navigation migration.)\n *\n * @group Components\n */\n@Directive({\n selector: '[rdxSelectPopup]',\n hostDirectives: [RdxFocusScope, RdxDismissableLayer, RdxCollectionProvider],\n providers: [\n provideSelectPopupContext(context),\n provideRdxDismissableLayerConfig(() => {\n return {\n disableOutsidePointerEvents: injectSelectRootContext().modal\n };\n })\n ],\n host: {\n role: 'listbox',\n tabindex: '-1',\n '[attr.aria-activedescendant]': 'highlight.activeId()',\n '[attr.aria-multiselectable]': 'rootContext.multiple() ? \"true\" : undefined',\n '[attr.data-state]': 'rootContext.open() ? \"open\" : \"closed\"',\n '[attr.data-open]': 'rootContext.open() ? \"\" : undefined',\n '[attr.data-closed]': 'rootContext.open() ? undefined : \"\"',\n '[attr.data-starting-style]': 'rootContext.transitionStatus() === \"starting\" ? \"\" : undefined',\n '[attr.data-ending-style]': 'rootContext.transitionStatus() === \"ending\" ? \"\" : undefined',\n '[dir]': 'rootContext.dir()',\n\n '(keydown)': 'handleKeyDown($event)',\n\n '[style]': `{\n display: 'flex',\n flexDirection: 'column',\n outline: 'none'\n }`\n }\n})\nexport class RdxSelectPopup {\n private readonly dismissableLayer = inject(RdxDismissableLayer);\n private readonly currentElement = inject(ElementRef);\n private readonly collection = inject(RdxCollectionProvider);\n private readonly injector = inject(Injector);\n\n readonly rootContext = injectSelectRootContext();\n\n /** Highlight-model navigation over the collected items (DOM order). */\n readonly highlight = useListHighlight<RdxCollectionItem>({\n items: this.collection.items,\n isNavigable: (item) => !item.disabled(),\n getId: (item) => item.element.id,\n injector: this.injector\n });\n\n readonly selectedItem = signal<HTMLElement | undefined>(undefined);\n\n readonly selectedItemText = signal<HTMLElement | undefined>(undefined);\n\n readonly firstValidItemFoundRef = signal(false);\n\n readonly viewport = signal<HTMLElement | undefined>(undefined);\n\n readonly isPositioned = signal(false);\n\n // Tracks whether the last interaction was the keyboard, so the highlight doesn't jump to an item\n // the cursor happens to rest on when arrow-key navigation scrolls the list.\n private keyboardActive = false;\n\n /**\n * Event handler called when the escape key is down.\n * Can be prevented.\n */\n readonly escapeKeyDown = outputFromObservable(outputToObservable(this.dismissableLayer.escapeKeyDown));\n\n /**\n * Event handler called when a `pointerdown` event happens outside of the `DismissableLayer`.\n * Can be prevented.\n */\n readonly pointerDownOutside = outputFromObservable(outputToObservable(this.dismissableLayer.pointerDownOutside));\n\n readonly content = signal<HTMLElement | null>(null);\n\n @ContentChild(RDX_SELECT_POSITIONER_TOKEN, { descendants: true })\n set positioner(port: RdxPositionerImpl | undefined) {\n if (port) {\n port.placed.subscribe(() => {\n this.highlightSelectedItem();\n this.scrollSelectedIntoView();\n this.isPositioned.set(true);\n });\n }\n }\n\n constructor() {\n // Lock page scroll while a modal popup is open (content mounts only while open).\n useScrollLock(this.rootContext.modal);\n\n // The popup's animation determines when the open/close transition (onOpenChangeComplete) is done.\n const unregisterTransition = this.rootContext.registerTransitionElement(this.currentElement.nativeElement);\n inject(DestroyRef).onDestroy(unregisterTransition);\n\n this.dismissableLayer.focusOutside.subscribe((e) => e.preventDefault());\n\n this.dismissableLayer.dismiss.subscribe(() => this.rootContext.onOpenChange(false));\n\n const focusScope = inject(RdxFocusScope);\n\n afterNextRender(() => {\n focusScope.unmountAutoFocus.subscribe((event) => {\n if (event.defaultPrevented) return;\n\n this.rootContext.triggerElement()?.focus({ preventScroll: true });\n\n event.preventDefault();\n });\n\n // Focus the popup itself (not an item) — the listbox is the focus owner; items are\n // navigated virtually via aria-activedescendant.\n focusScope.mountAutoFocus.subscribe((event) => {\n event.preventDefault();\n this.content()?.focus({ preventScroll: true });\n });\n\n this.content.set(this.currentElement.nativeElement.firstElementChild);\n });\n\n effect((onCleanup) => {\n if (!this.content()) return;\n\n let pointerMoveDelta = { x: 0, y: 0 };\n\n const handlePointerMove = (event: PointerEvent) => {\n pointerMoveDelta = {\n x: Math.abs(Math.round(event.pageX) - (this.rootContext.triggerPointerDownPosRef()?.x ?? 0)),\n y: Math.abs(Math.round(event.pageY) - (this.rootContext.triggerPointerDownPosRef()?.y ?? 0))\n };\n };\n\n const handlePointerUp = (event: PointerEvent) => {\n // Prevent options from being untappable on touch devices\n if (event.pointerType === 'touch') return;\n\n // If the pointer hasn't moved by a certain threshold then we prevent selecting item on `pointerup`.\n if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) {\n event.preventDefault();\n } else {\n // otherwise, if the event was outside the content, close.\n if (!this.content()?.contains(event.target as HTMLElement)) this.rootContext.onOpenChange(false);\n }\n document.removeEventListener('pointermove', handlePointerMove);\n this.rootContext.triggerPointerDownPosRef.set(null);\n };\n\n if (this.rootContext.triggerPointerDownPosRef() !== null) {\n document.addEventListener('pointermove', handlePointerMove);\n document.addEventListener('pointerup', handlePointerUp, {\n capture: true,\n once: true\n });\n }\n\n onCleanup(() => {\n document.removeEventListener('pointermove', handlePointerMove);\n document.removeEventListener('pointerup', handlePointerUp, {\n capture: true\n });\n });\n });\n }\n\n /** Highlights the selected item (or the first enabled one) when the popup opens. */\n highlightSelectedItem() {\n const items = this.collection.items();\n const selected = items.find((item) =>\n valueComparator(\n this.rootContext.value(),\n item.value() as AcceptableValue,\n this.rootContext.isItemEqualToValue()\n )\n );\n if (selected) {\n this.highlight.set(selected);\n } else {\n this.highlight.first();\n }\n }\n\n private scrollSelectedIntoView() {\n this.selectedItem()?.scrollIntoView?.({ block: 'nearest' });\n }\n\n setKeyboardActive(value: boolean) {\n this.keyboardActive = value;\n }\n\n isKeyboardActive() {\n return this.keyboardActive;\n }\n\n handleKeyDown(event: Event) {\n const keyEvent = event as KeyboardEvent;\n if (keyEvent.isComposing) return;\n\n // select should not be navigated using tab key so we prevent it\n if (keyEvent.key === 'Tab') {\n event.preventDefault();\n return;\n }\n\n if (SELECTION_KEYS.includes(keyEvent.key)) {\n event.preventDefault();\n const item = this.highlight.highlightedItem();\n if (item && !item.disabled()) {\n this.rootContext.onValueChange(item.value() as AcceptableValue);\n if (!this.rootContext.multiple()) this.rootContext.onOpenChange(false);\n }\n return;\n }\n\n if (['ArrowUp', 'ArrowDown', 'Home', 'End'].includes(keyEvent.key)) {\n event.preventDefault();\n this.keyboardActive = true;\n switch (keyEvent.key) {\n case 'ArrowDown':\n this.highlight.next();\n break;\n case 'ArrowUp':\n this.highlight.previous();\n break;\n case 'Home':\n this.highlight.first();\n break;\n case 'End':\n this.highlight.last();\n break;\n }\n }\n }\n}\n","import {\n afterNextRender,\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n linkedSignal\n} from '@angular/core';\nimport { RdxCollectionItem } from '@radix-ng/primitives/collection';\nimport { createContext, handleAndDispatchCustomEvent, injectId } from '@radix-ng/primitives/core';\nimport { injectSelectPopupContext } from './select-popup';\nimport { injectSelectRootContext } from './select-root';\nimport { SELECTION_KEYS, valueComparator } from './utils';\n\nconst context = () => {\n const context = inject(RdxSelectItem);\n return {\n value: context.value,\n disabled: context.disabled,\n isSelected: context.isSelected,\n textId: context.textId,\n\n onItemTextChange: (node: any) => {\n context.textValue$.set(((context.textValue$() || node.textContent) ?? '').trim());\n }\n };\n};\n\nexport type RdxSelectItemContext = ReturnType<typeof context>;\n\nexport const [injectSelectItemContext, provideSelectItemContext] = createContext<RdxSelectItemContext>(\n 'RdxSelectItemContext',\n 'components/select'\n);\n\nexport type SelectEvent = CustomEvent<{ originalEvent: PointerEvent | KeyboardEvent; value?: any }>;\n\n@Directive({\n selector: '[rdxSelectItem]',\n exportAs: 'rdxSelectItem',\n providers: [provideSelectItemContext(context)],\n hostDirectives: [\n {\n directive: RdxCollectionItem,\n inputs: ['value', 'disabled']\n }\n ],\n host: {\n role: 'option',\n '[attr.id]': 'id',\n '[attr.aria-selected]': 'isSelected()',\n '[attr.aria-disabled]': 'disabled() ? \"true\" : undefined',\n '[attr.data-state]': 'isSelected() ? \"checked\" : \"unchecked\"',\n '[attr.data-selected]': 'isSelected() ? \"\" : undefined',\n '[attr.data-highlighted]': 'isHighlighted() ? \"\" : undefined',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined',\n '(pointerup)': 'onPointerUp($event)',\n '(pointerleave)': 'onPointerLeave($event)',\n '(pointermove)': 'onPointerMove($event)'\n }\n})\nexport class RdxSelectItem {\n private readonly rootContext = injectSelectRootContext();\n private readonly contentContext = injectSelectPopupContext();\n private readonly collectionItem = inject(RdxCollectionItem);\n\n private readonly currentElement = inject(ElementRef);\n\n readonly value = input<any>();\n\n readonly textValue = input<string>('');\n\n readonly disabled = input(false, { transform: booleanAttribute });\n\n readonly textValue$ = linkedSignal(this.textValue);\n\n readonly isSelected = computed(() =>\n valueComparator(this.rootContext.value(), this.value(), this.rootContext.isItemEqualToValue())\n );\n\n /** Highlighted via the highlight model (keyboard / hover), not DOM focus. */\n readonly isHighlighted = computed(() => this.contentContext.isHighlighted(this.collectionItem));\n\n /** Item id, referenced by the popup's `aria-activedescendant`. */\n readonly id = injectId('rdx-select-item-');\n\n readonly textId = injectId('rdx-select-item-text-');\n\n private readonly afterNextRender = afterNextRender(() => {\n this.contentContext.itemRefCallback(this.currentElement.nativeElement, this.value(), this.disabled());\n });\n\n private SELECT_SELECT = 'select.select';\n\n onPointerUp(event: PointerEvent | KeyboardEvent) {\n if (event.defaultPrevented) return;\n if (this.disabled()) return;\n\n const eventDetail = { originalEvent: event, value: this.value() };\n\n handleAndDispatchCustomEvent(\n this.SELECT_SELECT,\n async (event: SelectEvent) => {\n if (event.defaultPrevented) return;\n\n this.rootContext.onValueChange(this.value());\n if (!this.rootContext.multiple()) {\n this.rootContext.onOpenChange(false);\n }\n },\n eventDetail\n );\n }\n\n onPointerLeave(event: Event) {\n if (event.defaultPrevented) return;\n this.contentContext.onItemLeave?.();\n }\n\n onPointerMove(event: Event) {\n if (event.defaultPrevented) return;\n // Ignore pointer events synthesized by keyboard-driven scrolling (don't steal the highlight).\n if (this.contentContext.isKeyboardActive()) {\n this.contentContext.setKeyboardActive(false);\n return;\n }\n if (!this.disabled()) {\n this.contentContext.highlightItem(this.collectionItem);\n }\n }\n\n handleKeyDown(event: Event) {\n const keyEvent = event as KeyboardEvent;\n if (event.defaultPrevented) return;\n if (SELECTION_KEYS.includes(keyEvent.key)) this.onPointerUp(keyEvent);\n }\n}\n","import { Directive } from '@angular/core';\nimport { injectSelectItemContext } from './select-item';\n\n@Directive({\n selector: '[rdxSelectItemIndicator]',\n host: {\n '[attr.aria-hidden]': 'true',\n '[hidden]': '!itemContext.isSelected()'\n }\n})\nexport class RdxSelectItemIndicator {\n readonly itemContext = injectSelectItemContext();\n}\n","import { afterNextRender, computed, DestroyRef, Directive, ElementRef, inject } from '@angular/core';\nimport { injectSelectItemContext } from './select-item';\nimport { injectSelectPopupContext } from './select-popup';\nimport { injectSelectRootContext } from './select-root';\n\n@Directive({\n selector: '[rdxSelectItemText]',\n host: {\n '[id]': 'itemContext.textId'\n }\n})\nexport class RdxSelectItemText {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n readonly rootContext = injectSelectRootContext();\n readonly contentContext = injectSelectPopupContext();\n readonly itemContext = injectSelectItemContext();\n\n readonly optionProps = computed(() => {\n return {\n value: this.itemContext.value(),\n disabled: this.itemContext.disabled(),\n textContent: this.elementRef.nativeElement.textContent ?? this.itemContext.value()?.toString() ?? ''\n };\n });\n\n constructor() {\n afterNextRender(() => {\n this.itemContext.onItemTextChange(this.elementRef.nativeElement);\n this.contentContext.itemTextRefCallback(\n this.elementRef.nativeElement,\n this.itemContext.value(),\n this.itemContext.disabled()\n );\n\n this.rootContext.onOptionAdd(this.optionProps);\n });\n\n const destroyRef = inject(DestroyRef);\n\n destroyRef.onDestroy(() => {\n this.rootContext.onOptionRemove(this.optionProps);\n });\n }\n}\n","import { afterNextRender, Directive, ElementRef, inject, signal } from '@angular/core';\nimport { injectSelectPopupContext } from './select-popup';\n\n@Directive({\n selector: '[rdxSelectList]',\n host: {\n role: 'presentation',\n '[attr.data-rdx-select-list]': '\"\"',\n '[style]': `{\n position: 'relative',\n flex: 1,\n overflow: 'hidden auto',\n scrollbarWidth: 'none'\n }`,\n '(scroll)': 'handleScroll($event)'\n }\n})\nexport class RdxSelectList {\n private readonly contentContext = injectSelectPopupContext();\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n private readonly prevScrollTopRef = signal(0);\n\n constructor() {\n afterNextRender(() => {\n this.contentContext?.onViewportChange(this.elementRef.nativeElement);\n });\n }\n\n handleScroll(event: Event) {\n const viewport = event.currentTarget as HTMLElement;\n\n this.prevScrollTopRef.set(viewport.scrollTop);\n }\n}\n","import { Directive, input } from '@angular/core';\nimport { RdxPortal, RdxPortalContainer } from '@radix-ng/primitives/portal';\n\n@Directive({\n selector: '[rdxSelectPortal]',\n hostDirectives: [\n {\n directive: RdxPortal,\n inputs: ['container']\n }\n ]\n})\nexport class RdxSelectPortal {\n /**\n * Optional container to portal the content into. Defaults to `document.body` when not set.\n */\n readonly container = input<RdxPortalContainer>();\n}\n","import { Directive } from '@angular/core';\nimport { provideRdxPresenceContext, RdxPresenceDirective } from '@radix-ng/primitives/presence';\nimport { injectSelectRootContext } from './select-root';\n\n@Directive({\n selector: 'ng-template[rdxSelectPortalPresence]',\n hostDirectives: [RdxPresenceDirective],\n providers: [\n provideRdxPresenceContext(() => {\n const context = injectSelectRootContext();\n\n return { present: context.open };\n })\n ]\n})\nexport class RdxSelectPortalPresence {}\n","import { booleanAttribute, Directive, ElementRef, forwardRef, inject, input, numberAttribute } from '@angular/core';\nimport { outputFromObservable, outputToObservable } from '@angular/core/rxjs-interop';\nimport { Align, RdxPopperContentWrapper, Side } from '@radix-ng/primitives/popper';\nimport { RDX_SELECT_POSITIONER_TOKEN, RdxPositionerImpl } from './select-popup';\n\n@Directive({\n selector: '[rdxSelectPositioner]',\n providers: [\n {\n provide: RDX_SELECT_POSITIONER_TOKEN,\n useExisting: forwardRef(() => RdxSelectPositioner)\n }\n ],\n hostDirectives: [\n {\n directive: RdxPopperContentWrapper,\n inputs: [\n 'side',\n 'sideOffset',\n 'align',\n 'alignOffset',\n 'arrowPadding',\n 'avoidCollisions',\n 'collisionBoundary',\n 'collisionPadding',\n 'sticky',\n 'hideWhenDetached',\n 'updatePositionStrategy'\n ]\n }\n ],\n host: {\n // re-namespace exposed content custom properties\n '[style]': `{\n 'boxSizing': 'border-box',\n '--radix-tooltip-content-transform-origin': 'var(--radix-popper-transform-origin)',\n '--radix-tooltip-content-available-width': 'var(--radix-popper-available-width)',\n '--radix-tooltip-content-available-height': 'var(--radix-popper-available-height)',\n '--radix-tooltip-trigger-width': 'var(--radix-popper-anchor-width)',\n '--radix-tooltip-trigger-height': 'var(--radix-popper-anchor-height)',\n }`\n }\n})\nexport class RdxSelectPositioner implements RdxPositionerImpl {\n /**\n * The preferred side of the anchor to render against when open.\n * Will be reversed when collisions occur and avoidCollisions is enabled.\n */\n readonly side = input<Side>('bottom');\n\n /**\n * The distance in pixels from the anchor.\n */\n readonly sideOffset = input(0, { transform: numberAttribute });\n\n /**\n * The preferred alignment against the anchor. May change when collisions occur.\n */\n readonly align = input<Align>('start');\n\n /**\n * An offset in pixels from the `start` or `end` alignment options.\n */\n readonly alignOffset = input(0, { transform: numberAttribute });\n\n /**\n * The padding between the arrow and the edges of the content.\n * If your content has border-radius, this will prevent it from overflowing the corners.\n */\n readonly arrowPadding = input(0, { transform: numberAttribute });\n\n /**\n * When `true`, overrides the `side` and `align` preferences to prevent collisions with boundary edges.\n */\n readonly avoidCollisions = input(true, { transform: booleanAttribute });\n\n /**\n * The element used as the collision boundary.\n * By default this is the viewport, though you can provide additional element(s) to be included in this check.\n */\n readonly collisionBoundary = input<ElementRef<HTMLElement> | ElementRef<HTMLElement>[]>();\n\n /**\n * The distance in pixels from the boundary edges where collision detection should occur.\n * Accepts a number (same for all sides), or a partial padding object, for example: `{ top: 20, left: 20 }`.\n */\n readonly collisionPadding = input<number | Partial<Record<Side, number>>>(0);\n\n /**\n * The sticky behavior on the `align` axis.\n * - `partial` will keep the content in the boundary as long as the trigger is at least partially in the boundary\n * - `always` will keep the content in the boundary regardless.\n */\n readonly sticky = input<'partial' | 'always'>('partial');\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n */\n readonly hideWhenDetached = input(false, { transform: booleanAttribute });\n\n /**\n * Whether to update the position of the floating element on every animation frame if required.\n */\n readonly updatePositionStrategy = input<'optimized' | 'always'>('always');\n\n /**\n * Emits when the element is placed.\n */\n readonly placed = outputFromObservable(outputToObservable(inject(RdxPopperContentWrapper).placed));\n}\n","import { Directive } from '@angular/core';\nimport { RdxPopperContent } from '@radix-ng/primitives/popper';\nimport { injectSelectRootContext } from './select-root';\n\n@Directive({\n selector: '[rdxSelectPositionerContent]',\n hostDirectives: [RdxPopperContent],\n host: {\n role: 'listbox',\n '[id]': 'rootContext.contentId'\n }\n})\nexport class RdxSelectPositionerContent {\n protected rootContext = injectSelectRootContext();\n}\n","import { Directive } from '@angular/core';\n\n/**\n * A visual divider between groups of items.\n *\n * @group Components\n */\n@Directive({\n selector: '[rdxSelectSeparator]',\n exportAs: 'rdxSelectSeparator',\n host: {\n role: 'separator',\n 'aria-hidden': 'true'\n }\n})\nexport class RdxSelectSeparator {}\n","import { afterNextRender, booleanAttribute, computed, Directive, ElementRef, inject, input } from '@angular/core';\nimport { injectId } from '@radix-ng/primitives/core';\nimport { injectFieldRootContext } from '@radix-ng/primitives/field';\nimport { RdxPopperAnchor } from '@radix-ng/primitives/popper';\nimport { injectSelectRootContext } from './select-root';\nimport { OPEN_KEYS } from './utils';\n\nconst attr = (value: boolean) => (value ? '' : undefined);\n\n@Directive({\n selector: 'button[rdxSelectTrigger]',\n hostDirectives: [RdxPopperAnchor],\n host: {\n role: 'combobox',\n type: 'button',\n '[attr.id]': 'id()',\n '[attr.aria-describedby]': 'describedBy()',\n '[attr.aria-invalid]': 'invalidState() ? \"true\" : undefined',\n '[attr.aria-required]': 'requiredState() ? \"true\" : undefined',\n '[attr.disabled]': 'isDisabled() ? \"\" : undefined',\n '[dir]': 'rootContext.dir()',\n '[attr.data-state]': 'rootContext.open() ? \"open\" : \"closed\"',\n '[attr.data-popup-open]': 'dataAttr(rootContext.open())',\n '[attr.data-placeholder]': 'dataAttr(rootContext.isEmptyModelValue())',\n '[attr.data-disabled]': 'dataAttr(isDisabled())',\n '[attr.data-invalid]': 'dataAttr(invalidState())',\n '[attr.data-valid]': 'dataAttr(!invalidState())',\n '[attr.data-required]': 'dataAttr(requiredState())',\n '[attr.data-filled]': 'dataAttr(filledState())',\n '[attr.data-focused]': 'dataAttr(focusedState())',\n '(click)': 'onClickHandler($event)',\n '(pointerdown)': 'onPointerDown($event)',\n '(pointerup)': 'onPointerUp($event)',\n '(keydown)': 'onKeydown($event)',\n '(focus)': 'onFocus()',\n '(blur)': 'onBlur()'\n }\n})\nexport class RdxSelectTrigger {\n readonly rootContext = injectSelectRootContext();\n\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly fieldRootContext = injectFieldRootContext(true);\n\n /** The trigger id; Field labels and descriptions reference it for accessible relationships. */\n readonly id = input(injectId('rdx-select-trigger-'));\n\n readonly disabled = input(false, { transform: booleanAttribute });\n\n readonly isDisabled = computed(\n () => this.rootContext.disabled() || this.disabled() || Boolean(this.fieldRootContext?.disabledState())\n );\n\n protected readonly invalidState = computed(() => Boolean(this.fieldRootContext?.invalidState()));\n protected readonly requiredState = computed(() => Boolean(this.fieldRootContext?.requiredState()));\n protected readonly filledState = computed(\n () => !this.rootContext.isEmptyModelValue() || Boolean(this.fieldRootContext?.filledState())\n );\n protected readonly focusedState = computed(() => Boolean(this.fieldRootContext?.focusedState()));\n\n protected readonly describedBy = computed(() => {\n if (!this.fieldRootContext) {\n return undefined;\n }\n const ids = [\n ...this.fieldRootContext.descriptionIds(),\n ...(this.fieldRootContext.invalidState() ? this.fieldRootContext.errorIds() : [])\n ];\n return ids.length ? ids.join(' ') : undefined;\n });\n\n constructor() {\n afterNextRender(() => {\n this.rootContext.onTriggerChange(this.elementRef);\n this.fieldRootContext?.setControlId(this.id());\n this.fieldRootContext?.setFilled(!this.rootContext.isEmptyModelValue());\n });\n }\n\n handleOpen() {\n if (!this.isDisabled()) {\n this.rootContext.onOpenChange(true);\n }\n }\n\n handlePointerOpen(event: Event) {\n const pointerEvent = event as PointerEvent;\n this.handleOpen();\n this.rootContext.triggerPointerDownPosRef.set({\n x: Math.round(pointerEvent.pageX),\n y: Math.round(pointerEvent.pageY)\n });\n }\n\n onClickHandler(event: Event) {\n // Whilst browsers generally have no issue focusing the trigger when clicking\n // on a label, Safari seems to struggle with the fact that there's no `onClick`.\n // We force `focus` in this case. Note: this doesn't create any other side-effect\n // because we are preventing default in `onPointerDown` so effectively\n // this only runs for a label 'click'\n (event?.currentTarget as HTMLElement)?.focus();\n }\n\n onPointerDown(event: Event) {\n const pointerEvent = event as PointerEvent;\n if (pointerEvent.pointerType === 'touch') return event.preventDefault();\n\n // prevent implicit pointer capture\n // https://www.w3.org/TR/pointerevents3/#implicit-pointer-capture\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(pointerEvent.pointerId)) {\n target.releasePointerCapture(pointerEvent.pointerId);\n }\n\n // only call handler if it's the left button (mousedown gets triggered by all mouse buttons)\n // but not when the control key is pressed (avoiding MacOS right click)\n if (pointerEvent.button === 0 && pointerEvent.ctrlKey === false) {\n this.handlePointerOpen(event);\n // prevent trigger from stealing focus from the active item after opening.\n event.preventDefault();\n }\n }\n\n onPointerUp(event: Event) {\n const pointerEvent = event as PointerEvent;\n event.preventDefault();\n // Only open on pointer up when using touch devices\n if (pointerEvent.pointerType === 'touch') this.handlePointerOpen(event);\n }\n\n onKeydown(event: Event) {\n const keyEvent = event as KeyboardEvent;\n if (OPEN_KEYS.includes(keyEvent.key)) {\n this.handleOpen();\n event.preventDefault();\n }\n }\n\n onFocus(): void {\n this.fieldRootContext?.setFocused(true);\n }\n\n onBlur(): void {\n this.fieldRootContext?.setFocused(false);\n this.fieldRootContext?.setTouched(true);\n }\n\n protected readonly dataAttr = attr;\n}\n","import { afterNextRender, computed, Directive, ElementRef, inject, input } from '@angular/core';\nimport { AcceptableValue } from '@radix-ng/primitives/core';\nimport { injectSelectRootContext } from './select-root';\nimport { valueComparator } from './utils';\n\n@Directive({\n selector: 'span[rdxSelectValue]',\n exportAs: 'rdxSelectedValue',\n host: {\n '[style.pointer-events]': '\"none\"'\n }\n})\nexport class RdxSelectValue {\n readonly rootContext = injectSelectRootContext();\n\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n readonly placeholder = input<string>();\n\n readonly slotText = computed(() => {\n return this.selectedLabel().length ? this.selectedLabel().join(', ') : this.placeholder();\n });\n\n readonly selectedLabel = computed(() => {\n const options = Array.from(this.rootContext.optionsSet());\n const customLabel = this.rootContext.itemToStringLabel();\n\n const labelFor = (value?: AcceptableValue): string => {\n if (customLabel && value !== undefined && value !== null) {\n return customLabel(value);\n }\n const option = options.find((o) => valueComparator(value, o.value, this.rootContext.isItemEqualToValue()));\n return option?.textContent ?? '';\n };\n\n const value = this.rootContext.value();\n const list = Array.isArray(value) ? value.map((v) => labelFor(v)) : [labelFor(value)];\n return list.filter(Boolean);\n });\n\n constructor() {\n afterNextRender(() => {\n this.rootContext.valueElement.set(this.elementRef.nativeElement);\n });\n }\n}\n","import { RdxSelectBackdrop } from './src/select-backdrop';\nimport { RdxSelectGroup } from './src/select-group';\nimport { RdxSelectGroupLabel } from './src/select-group-label';\nimport { RdxSelectIcon } from './src/select-icon';\nimport { RdxSelectItem } from './src/select-item';\nimport { RdxSelectItemIndicator } from './src/select-item-indicator';\nimport { RdxSelectItemText } from './src/select-item-text';\nimport { RdxSelectList } from './src/select-list';\nimport { RdxSelectPopup } from './src/select-popup';\nimport { RdxSelectPortal } from './src/select-portal';\nimport { RdxSelectPortalPresence } from './src/select-portal-presence';\nimport { RdxSelectPositioner } from './src/select-positioner';\nimport { RdxSelectPositionerContent } from './src/select-positioner-content';\nimport { RdxSelectRoot } from './src/select-root';\nimport { RdxSelectSeparator } from './src/select-separator';\nimport { RdxSelectTrigger } from './src/select-trigger';\nimport { RdxSelectValue } from './src/select-value';\n\nexport * from './src/select-backdrop';\nexport * from './src/select-group';\nexport * from './src/select-group-label';\nexport * from './src/select-icon';\nexport * from './src/select-item';\nexport * from './src/select-item-indicator';\nexport * from './src/select-item-text';\nexport * from './src/select-list';\nexport * from './src/select-popup';\nexport * from './src/select-portal';\nexport * from './src/select-portal-presence';\nexport * from './src/select-positioner';\nexport * from './src/select-positioner-content';\nexport * from './src/select-root';\nexport * from './src/select-separator';\nexport * from './src/select-trigger';\nexport * from './src/select-value';\nexport * from './src/utils';\n\nexport const _importsSelect = [\n RdxSelectRoot,\n RdxSelectPortal,\n RdxSelectTrigger,\n RdxSelectValue,\n RdxSelectPopup,\n RdxSelectList,\n RdxSelectItemIndicator,\n RdxSelectItem,\n RdxSelectItemText,\n RdxSelectGroupLabel,\n RdxSelectGroup,\n RdxSelectPositionerContent,\n RdxSelectPositioner,\n RdxSelectPortalPresence,\n RdxSelectIcon,\n RdxSelectSeparator,\n RdxSelectBackdrop\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["context","i1"],"mappings":"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"}
1
+ {"version":3,"file":"radix-ng-primitives-select.mjs","sources":["../../../packages/primitives/select/src/utils.ts","../../../packages/primitives/select/src/select-root.ts","../../../packages/primitives/select/src/select-backdrop.ts","../../../packages/primitives/select/src/select-group.ts","../../../packages/primitives/select/src/select-group-label.ts","../../../packages/primitives/select/src/select-icon.ts","../../../packages/primitives/select/src/select-popup.ts","../../../packages/primitives/select/src/select-item.ts","../../../packages/primitives/select/src/select-item-indicator.ts","../../../packages/primitives/select/src/select-item-text.ts","../../../packages/primitives/select/src/select-list.ts","../../../packages/primitives/select/src/select-portal.ts","../../../packages/primitives/select/src/select-positioner.ts","../../../packages/primitives/select/src/select-separator.ts","../../../packages/primitives/select/src/select-trigger.ts","../../../packages/primitives/select/src/select-value.ts","../../../packages/primitives/select/index.ts","../../../packages/primitives/select/radix-ng-primitives-select.ts"],"sourcesContent":["import { AcceptableValue, getActiveElement, isEqual } from '@radix-ng/primitives/core';\n\nexport const OPEN_KEYS = [' ', 'Enter', 'ArrowUp', 'ArrowDown'];\nexport const SELECTION_KEYS = [' ', 'Enter'];\nexport const CONTENT_MARGIN = 10;\n\nexport function valueComparator<T>(\n value: T | T[] | undefined,\n currentValue: T,\n comparator?: string | ((a: T, b: T) => boolean)\n) {\n if (value === undefined) return false;\n else if (Array.isArray(value)) return value.some((val) => compare(val, currentValue, comparator));\n else return compare(value, currentValue, comparator);\n}\n\nexport function compare<T>(value?: T, currentValue?: T, comparator?: string | ((a: T, b: T) => boolean)) {\n if (value === undefined || currentValue === undefined) return false;\n\n if (typeof value === 'string') return value === currentValue;\n\n if (typeof comparator === 'function') return comparator(value, currentValue);\n\n if (typeof comparator === 'string') return value?.[comparator as keyof T] === currentValue?.[comparator as keyof T];\n\n return isEqual(value, currentValue);\n}\n\nexport function shouldShowPlaceholder(value?: AcceptableValue | AcceptableValue[]): boolean {\n return value === undefined || value === null || value === '' || (Array.isArray(value) && value.length === 0);\n}\n\nexport function focusFirst(candidates: HTMLElement[]) {\n const PREVIOUSLY_FOCUSED_ELEMENT = getActiveElement();\n for (const candidate of candidates) {\n // if focus is already where we want to go, we don't want to keep going through the candidates\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus();\n if (getActiveElement() !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\n","import {\n booleanAttribute,\n computed,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n model,\n output,\n Signal,\n signal,\n untracked\n} from '@angular/core';\nimport {\n AcceptableValue,\n createContext,\n createFloatingRootContext,\n Direction,\n isNullish,\n ItemValueComparator,\n provideFloatingRootContext,\n provideFloatingTree,\n RdxFloatingRootContext,\n useTransitionStatus\n} from '@radix-ng/primitives/core';\nimport { injectDirection } from '@radix-ng/primitives/direction-provider';\nimport { getInteractionTypeFromEvent, RdxInteractionType } from '@radix-ng/primitives/floating-focus-manager';\nimport { RdxPopper } from '@radix-ng/primitives/popper';\nimport { compare, valueComparator } from './utils';\n\nexport interface SelectOption {\n value: any;\n disabled?: boolean;\n textContent: string;\n}\n\nexport type RdxSelectOpenMethod = RdxInteractionType;\n\nexport type RdxSelectOpenChangeReason =\n | 'trigger-press'\n | 'item-press'\n | 'outside-press'\n | 'escape-key'\n | 'window-resize'\n | 'focus-out'\n | 'list-navigation'\n | 'cancel-open'\n | 'none';\n\nexport type RdxSelectValueChangeReason = RdxSelectOpenChangeReason;\n\nexport interface RdxSelectChangeEventDetails<Reason extends string = string> {\n reason: Reason;\n event: Event;\n cancel: () => void;\n isCanceled: () => boolean;\n}\n\nexport type RdxSelectOpenChangeEventDetails = RdxSelectChangeEventDetails<RdxSelectOpenChangeReason>;\n\nexport interface RdxSelectOpenChangeEvent {\n open: boolean;\n eventDetails: RdxSelectOpenChangeEventDetails;\n}\n\nexport type RdxSelectValueChangeEventDetails = RdxSelectChangeEventDetails<RdxSelectValueChangeReason>;\n\nexport interface RdxSelectValueChangeEvent {\n value: AcceptableValue | AcceptableValue[];\n eventDetails: RdxSelectValueChangeEventDetails;\n}\n\nfunction createChangeEventDetails<Reason extends string>(\n reason: Reason,\n event: Event\n): RdxSelectChangeEventDetails<Reason> {\n let canceled = false;\n\n return {\n reason,\n event,\n cancel: () => {\n canceled = true;\n },\n isCanceled: () => canceled\n };\n}\n\nconst context = () => {\n const context = inject(RdxSelectRoot);\n\n return {\n triggerElement: context.triggerElement,\n valueElement: context.valueElement,\n triggerPointerDownPosRef: context.triggerPointerDownPosRef,\n contentId: '',\n dir: context.dir,\n value: context.value,\n multiple: context.multiple,\n isItemEqualToValue: context.isItemEqualToValue,\n itemToStringLabel: context.itemToStringLabel,\n open: context.open,\n openedByTouch: context.openedByTouch,\n openMethod: context.openMethod,\n openInteractionType: context.openInteractionType,\n closeInteractionType: context.closeInteractionType,\n disabled: context.disabled,\n modal: context.modal,\n isEmptyModelValue: context.isEmptyModelValue,\n transitionStatus: context.transitionStatus,\n registerTransitionElement: context.registerTransitionElement,\n optionsSet: context.optionsSet,\n onOptionAdd: (option: any) => {\n const existingOption = context.getOption(option());\n if (existingOption) {\n context.optionsSet().delete(existingOption);\n }\n\n context.optionsSet().add(option());\n },\n onOptionRemove: (option: any) => {\n const existingOption = context.getOption(option());\n if (existingOption) {\n context.optionsSet().delete(existingOption);\n }\n },\n onValueChange: (value: AcceptableValue, reason?: RdxSelectValueChangeReason, event?: Event) =>\n context.setValue(value, reason, event),\n onTriggerChange: (node: any) => {\n context.triggerElement.set(node.nativeElement);\n },\n onValueElementChange: (node: any) => {\n context.valueElement.set(node);\n },\n onOpenChange: (value: boolean, reason?: RdxSelectOpenChangeReason, event?: Event) =>\n context.setOpen(value, reason, event)\n };\n};\n\nexport type RdxSelectRootContext = ReturnType<typeof context>;\n\nexport const [injectSelectRootContext, provideSelectRootContext] = createContext<RdxSelectRootContext>(\n 'RdxSelectRootContext',\n 'components/select'\n);\n\n@Directive({\n selector: '[rdxSelectRoot]',\n exportAs: 'rdxSelectRoot',\n providers: [\n provideSelectRootContext(context),\n // New floating foundation (ADR 0015/0017) — the dismissal capability reads this shared context.\n provideFloatingTree(),\n provideFloatingRootContext(() => inject(RdxSelectRoot).floatingContext)\n ],\n hostDirectives: [RdxPopper]\n})\nexport class RdxSelectRoot {\n readonly open = model<boolean>(false);\n\n /** Whether the current open was initiated by **touch** (ADR 0016 §3 — gates the anchored scroll lock). */\n readonly openedByTouch = signal(false);\n /** How the select was opened. Base UI names this state `openMethod`. */\n readonly openInteractionType = signal<RdxInteractionType>(null);\n /** How the select was closed. */\n readonly closeInteractionType = signal<RdxInteractionType>(null);\n /** Public Base UI-aligned alias for the open interaction type. */\n readonly openMethod: Signal<RdxSelectOpenMethod> = computed(() => this.openInteractionType());\n\n /** Per-popup floating root context (ADR 0015) — `open` / `triggers` / reference for the dismissal engine. */\n readonly floatingContext: RdxFloatingRootContext = createFloatingRootContext({\n ownerDocument: inject(ElementRef).nativeElement.ownerDocument,\n open: () => this.open()\n });\n\n readonly value = model<AcceptableValue | AcceptableValue[]>();\n\n readonly multiple = input(false, { transform: booleanAttribute });\n\n readonly disabled = input(false, { transform: booleanAttribute });\n\n /** Whether the popup is modal: locks page scroll and makes outside content inert while open. */\n readonly modal = input(true, { transform: booleanAttribute });\n\n readonly dirInput = input<Direction | undefined>(undefined, { alias: 'dir' });\n readonly dir: Signal<Direction> = injectDirection(this.dirInput);\n\n /** How item values are compared for equality — a function `(a, b) => boolean` or an object key. */\n readonly isItemEqualToValue = input<ItemValueComparator<AcceptableValue>>();\n\n /** Converts a value to its display label (used by `RdxSelectValue`). */\n readonly itemToStringLabel = input<(value: AcceptableValue) => string>();\n\n /** Emits before an open-state change is committed; call `eventDetails.cancel()` to veto it. */\n readonly onOpenChange = output<RdxSelectOpenChangeEvent>();\n\n /** Emits before a value change is committed; call `eventDetails.cancel()` to veto it. */\n readonly onValueChange = output<RdxSelectValueChangeEvent>();\n\n /** Emits after the open/close transition (including any exit animation) finishes. */\n readonly onOpenChangeComplete = output<boolean>();\n\n private readonly transition = useTransitionStatus((open) => this.onOpenChangeComplete.emit(open));\n\n /** Open/close transition phase, for `data-starting-style` / `data-ending-style`. */\n readonly transitionStatus = this.transition.status;\n\n /** Registers the popup element whose animation determines transition completion. */\n readonly registerTransitionElement = this.transition.registerElement;\n\n readonly isEmptyModelValue = computed(() => {\n const value = this.value();\n if (this.multiple() && Array.isArray(value)) {\n return value.length === 0;\n }\n return isNullish(value);\n });\n\n constructor() {\n let previousOpen = untracked(this.open);\n effect(() => {\n const open = this.open();\n if (open === previousOpen) {\n return;\n }\n previousOpen = open;\n untracked(() => this.transition.start(open));\n });\n\n // A fresh open starts non-touch; the trigger flips it on a touch open. Reset whenever it closes.\n effect(() => {\n if (!this.open()) {\n untracked(() => this.openedByTouch.set(false));\n }\n });\n\n // Bridge the trigger into the floating context: the dismissal capability treats a press on the\n // trigger (the reference) as \"inside\", and uses it for positioning containment (ADR 0015).\n effect((onCleanup) => {\n const trigger = this.triggerElement();\n this.floatingContext.setReferenceElement(trigger);\n if (trigger) {\n this.floatingContext.triggers.add(trigger);\n onCleanup(() => this.floatingContext.triggers.delete(trigger));\n }\n });\n }\n\n readonly optionsSet = signal<Set<SelectOption>>(new Set());\n\n // The native `select` only associates the correct default value if the corresponding\n // `option` is rendered as a child **at the same time** as itself.\n // Because it might take a few renders for our items to gather the information to build\n // the native `option`(s), we generate a key on the `select` to make sure Vue re-builds it\n // each time the options change.\n readonly nativeSelectKey = computed(() => {\n return Array.from(this.optionsSet())\n .map((option) => option.value)\n .join(';');\n });\n\n readonly triggerElement = signal<HTMLElement | null>(null);\n readonly valueElement = signal<HTMLElement | null>(null);\n readonly triggerPointerDownPosRef = signal<{ x: number; y: number } | null>({\n x: 0,\n y: 0\n });\n\n getOption(value: SelectOption['value']) {\n return Array.from(this.optionsSet()).find((option) =>\n valueComparator(value, option.value, this.isItemEqualToValue())\n );\n }\n\n setValue(\n value: AcceptableValue,\n reason: RdxSelectValueChangeReason = 'none',\n event: Event = new Event('select.value-change')\n ): boolean {\n const nextValue = this.multiple()\n ? (() => {\n const current = this.value();\n const array = Array.isArray(current) ? [...current] : [];\n const index = array.findIndex((i) => compare(i, value, this.isItemEqualToValue()));\n index === -1 ? array.push(value) : array.splice(index, 1);\n return [...array];\n })()\n : value;\n\n const eventDetails = createChangeEventDetails(reason, event);\n this.onValueChange.emit({ value: nextValue, eventDetails });\n\n if (eventDetails.isCanceled()) {\n return false;\n }\n\n if (this.multiple()) {\n this.value.set(nextValue);\n } else {\n this.value.set(nextValue);\n }\n\n return true;\n }\n\n setOpen(open: boolean, reason: RdxSelectOpenChangeReason = 'none', event?: Event): boolean {\n const resolvedEvent = event ?? new Event('select.open-change');\n const interactionType = getInteractionTypeFromEvent(event);\n const eventDetails = createChangeEventDetails(reason, resolvedEvent);\n\n this.onOpenChange.emit({ open, eventDetails });\n\n if (eventDetails.isCanceled()) {\n return false;\n }\n\n this.open.set(open);\n\n if (open) {\n this.openedByTouch.set((event as PointerEvent | undefined)?.pointerType === 'touch');\n this.openInteractionType.set(interactionType);\n } else {\n this.closeInteractionType.set(interactionType);\n }\n\n return true;\n }\n}\n","import { Directive } from '@angular/core';\nimport { injectSelectRootContext } from './select-root';\n\n/**\n * An overlay rendered beneath the popup in `modal` mode. Place it inside the portal/presence; style\n * it `position: fixed; inset: 0`. Exposes `data-open` / `data-closed` for animation.\n *\n * @group Components\n */\n@Directive({\n selector: '[rdxSelectBackdrop]',\n exportAs: 'rdxSelectBackdrop',\n host: {\n 'aria-hidden': 'true',\n '[attr.data-state]': 'rootContext.open() ? \"open\" : \"closed\"',\n '[attr.data-open]': 'rootContext.open() ? \"\" : undefined',\n '[attr.data-closed]': 'rootContext.open() ? undefined : \"\"'\n }\n})\nexport class RdxSelectBackdrop {\n protected readonly rootContext = injectSelectRootContext();\n}\n","import { Directive } from '@angular/core';\nimport { injectId } from '@radix-ng/primitives/core';\n\n@Directive({\n selector: '[rdxSelectGroup]',\n exportAs: 'rdxSelectGroup',\n host: {\n role: 'group',\n '[attr.aria-labelledby]': 'id'\n }\n})\nexport class RdxSelectGroup {\n readonly id = injectId('rdx-select-group-');\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[rdxSelectGroupLabel]',\n host: {}\n})\nexport class RdxSelectGroupLabel {}\n","import { Directive } from '@angular/core';\n\n/**\n * Decorative icon inside the trigger (e.g. a chevron). Hidden from assistive technology.\n *\n * @group Components\n */\n@Directive({\n selector: '[rdxSelectIcon]',\n exportAs: 'rdxSelectIcon',\n host: {\n 'aria-hidden': 'true'\n }\n})\nexport class RdxSelectIcon {}\n","import {\n afterNextRender,\n computed,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n inject,\n InjectionToken,\n Injector,\n output,\n OutputRef,\n signal,\n Signal\n} from '@angular/core';\nimport { RdxCollectionItem, RdxCollectionProvider } from '@radix-ng/primitives/collection';\nimport {\n AcceptableValue,\n createContext,\n RDX_FLOATING_REGISTRATION,\n RDX_FLOATING_ROOT_CONTEXT,\n RdxFloatingNodeRegistration,\n useAnchoredScrollLock,\n useListHighlight\n} from '@radix-ng/primitives/core';\nimport { RdxDismiss, RdxOutsidePressDomEvent } from '@radix-ng/primitives/dismissable-layer';\nimport { RdxFocusScope } from '@radix-ng/primitives/focus-scope';\nimport { RdxPopperContent } from '@radix-ng/primitives/popper';\nimport { injectSelectRootContext } from './select-root';\nimport { SELECTION_KEYS, valueComparator } from './utils';\n\nconst context = () => {\n const context = inject(RdxSelectPopup);\n\n return {\n content: context.content,\n viewport: context.viewport,\n isPositioned: context.isPositioned,\n selectedItem: context.selectedItem,\n selectedItemText: context.selectedItemText,\n highlightedItem: context.highlight.highlightedItem,\n isHighlighted: (item: RdxCollectionItem) => context.highlight.highlightedItem() === item,\n highlightItem: (item: RdxCollectionItem) => context.highlight.set(item),\n isKeyboardActive: () => context.isKeyboardActive(),\n setKeyboardActive: (value: boolean) => context.setKeyboardActive(value),\n onViewportChange: (node: any) => {\n context.viewport.set(node);\n },\n onItemLeave: () => {\n context.highlight.clear();\n },\n itemRefCallback: (node: any, value: any, disabled: boolean) => {\n const isFirstValidItem = !context.firstValidItemFoundRef() && !disabled;\n const isSelectedItem = valueComparator(\n context.rootContext.value(),\n value,\n context.rootContext.isItemEqualToValue()\n );\n\n if (isSelectedItem || isFirstValidItem) {\n context.selectedItem.set(node);\n }\n\n if (isFirstValidItem) {\n context.firstValidItemFoundRef.set(true);\n }\n },\n itemTextRefCallback: (node: any, value: any, disabled: any) => {\n const isFirstValidItem = !context.firstValidItemFoundRef() && !disabled;\n const isSelectedItem = valueComparator(\n context.rootContext.value(),\n value,\n context.rootContext.isItemEqualToValue()\n );\n\n if (isSelectedItem || isFirstValidItem) {\n context.selectedItemText.set(node);\n }\n }\n };\n};\n\nexport type RdxSelectPopupContext = ReturnType<typeof context>;\n\nexport const [injectSelectPopupContext, provideSelectPopupContext] = createContext<RdxSelectPopupContext>(\n 'RdxSelectPopup',\n 'components/select'\n);\n\nexport interface RdxPositionerImpl {\n placed: OutputRef<any>;\n /**\n * Whether **item-aligned** positioning is currently active (Base UI `alignItemWithTriggerActive`).\n * `true` only for the item-aligned positioner while open **and not touch-opened** — a touch open\n * falls back to a plain anchored dropdown. The popper positioner omits this (always `false`). The\n * scroll-lock policy locks an item-aligned popup even when `modal === false` (ADR 0016 §2 / AC #3).\n */\n alignItemWithTriggerActive?: Signal<boolean>;\n}\n\nexport const RDX_SELECT_POSITIONER_TOKEN = new InjectionToken<RdxPositionerImpl>('RDX_SELECT_POSITIONER_TOKEN');\n\n/**\n * The popup listbox. Holds DOM focus while open and navigates with the highlight model\n * (`aria-activedescendant`) — items are not individually focusable.\n *\n * Since ADR 0010 §6 the popup is the **inner** element (the positioner is its ancestor): it carries\n * `role=\"listbox\"`, the `contentId`, and — via the composed {@link RdxPopperContent} — the\n * `data-side` / `data-align` attributes and the until-positioned animation guard previously held by\n * the deleted `rdxSelectPositionerContent`. `RdxPopperContent` also makes the popup the element the\n * `RdxPopperContentWrapper` ancestor reads its content z-index from. In item-aligned mode there is no\n * wrapper, so `RdxPopperContent` no-ops.\n *\n * @group Components\n */\n@Directive({\n selector: '[rdxSelectPopup]',\n hostDirectives: [RdxPopperContent, RdxFocusScope, RdxFloatingNodeRegistration, RdxCollectionProvider],\n providers: [provideSelectPopupContext(context)],\n host: {\n role: 'listbox',\n tabindex: '-1',\n '[id]': 'rootContext.contentId',\n '[attr.aria-activedescendant]': 'highlight.activeId()',\n '[attr.aria-multiselectable]': 'rootContext.multiple() ? \"true\" : undefined',\n '[attr.data-state]': 'rootContext.open() ? \"open\" : \"closed\"',\n '[attr.data-open]': 'rootContext.open() ? \"\" : undefined',\n '[attr.data-closed]': 'rootContext.open() ? undefined : \"\"',\n '[attr.data-starting-style]': 'rootContext.transitionStatus() === \"starting\" ? \"\" : undefined',\n '[attr.data-ending-style]': 'rootContext.transitionStatus() === \"ending\" ? \"\" : undefined',\n '[dir]': 'rootContext.dir()',\n\n '(keydown)': 'handleKeyDown($event)',\n\n '[style]': `{\n display: 'flex',\n flexDirection: 'column',\n outline: 'none'\n }`\n }\n})\nexport class RdxSelectPopup {\n private readonly floatingContext = inject(RDX_FLOATING_ROOT_CONTEXT);\n private readonly registration = inject(RDX_FLOATING_REGISTRATION, { optional: true });\n private readonly currentElement = inject(ElementRef);\n private readonly collection = inject(RdxCollectionProvider);\n private readonly injector = inject(Injector);\n\n readonly rootContext = injectSelectRootContext();\n\n /**\n * The collected items (DOM order). Exposed so the `item-aligned` positioner — now the popup's\n * **ancestor** — can read them without injecting {@link RdxCollectionProvider} (which the popup\n * provides as a descendant, so an upward `inject` would not find it).\n */\n readonly items = this.collection.items;\n\n /**\n * Highlight-model navigation over the collected items (DOM order). `loop` is disabled so arrow\n * navigation stops at the first / last item instead of wrapping around — matching native\n * `<select>` behavior.\n */\n readonly highlight = useListHighlight<RdxCollectionItem>({\n items: this.collection.items,\n isNavigable: (item) => !item.disabled(),\n getId: (item) => item.element.id,\n loop: signal(false),\n injector: this.injector\n });\n\n readonly selectedItem = signal<HTMLElement | undefined>(undefined);\n\n readonly selectedItemText = signal<HTMLElement | undefined>(undefined);\n\n readonly firstValidItemFoundRef = signal(false);\n\n readonly viewport = signal<HTMLElement | undefined>(undefined);\n\n readonly isPositioned = signal(false);\n\n // Tracks whether the last interaction was the keyboard, so the highlight doesn't jump to an item\n // the cursor happens to rest on when arrow-key navigation scrolls the list.\n private keyboardActive = false;\n\n /**\n * Event handler called when the escape key is down.\n * Can be prevented.\n */\n readonly escapeKeyDown = output<KeyboardEvent>();\n\n /**\n * Event handler called when a `pointerdown` event happens outside of the popup.\n * Can be prevented.\n */\n readonly pointerDownOutside = output<RdxOutsidePressDomEvent>();\n\n readonly content = signal<HTMLElement | null>(null);\n\n /**\n * The positioner — now an **ancestor** element — provides {@link RDX_SELECT_POSITIONER_TOKEN}\n * (Popper or item-aligned). We react to its `placed` to highlight and scroll the selected item\n * into view and flag the popup as positioned.\n */\n private readonly positioner = inject(RDX_SELECT_POSITIONER_TOKEN, { optional: true });\n\n constructor() {\n this.positioner?.placed.subscribe(() => {\n this.highlightSelectedItem();\n this.scrollSelectedIntoView();\n this.isPositioned.set(true);\n\n // In Popper mode the popup lives inside the positioner, which stays `visibility: hidden`\n // until it is placed — so the mount-time `mountAutoFocus` call no-ops on the hidden\n // listbox and keyboard navigation never starts. Focus it now that it is visible (skip if\n // focus already moved inside, e.g. item-aligned mode or a re-placement).\n const popup = this.content();\n if (popup && !popup.contains(document.activeElement)) {\n popup.focus({ preventScroll: true });\n }\n });\n\n // Keep the highlighted item in view during keyboard navigation. The highlight model is pure\n // state (it never moves DOM focus or scrolls), so without this the highlight can move past the\n // visible viewport — behind the scroll buttons. Only keyboard moves scroll; hover highlights\n // must not (the cursor is already over a visible item).\n effect(() => {\n const item = this.highlight.highlightedItem();\n if (item && this.keyboardActive) {\n item.element.scrollIntoView?.({ block: 'nearest' });\n }\n });\n\n // Activation policy (ADR 0016 §2 + §3). Lock page scroll while the popup is OPEN and either modal\n // **or** item-aligned — Base UI `(alignItemWithTriggerActive || modal) && open` (AC #3): an\n // item-aligned select overlays the trigger, so the page must not scroll behind it even when\n // `modal === false`. The gate keys on `open` (not mounted) so it releases at close-start. A\n // **touch** open never uses item-aligned mode (the positioner falls back), so the lock there is\n // driven by `modal` alone and the anchored helper only engages when the popup is viewport-width (§3).\n const itemAlignedActive = computed(() => this.positioner?.alignItemWithTriggerActive?.() ?? false);\n useAnchoredScrollLock(\n computed(() => (itemAlignedActive() || this.rootContext.modal()) && this.rootContext.open()),\n {\n touchOpen: () => this.rootContext.openedByTouch(),\n element: () => this.currentElement.nativeElement\n }\n );\n\n // The popup's animation determines when the open/close transition (onOpenChangeComplete) is done.\n const unregisterTransition = this.rootContext.registerTransitionElement(this.currentElement.nativeElement);\n inject(DestroyRef).onDestroy(unregisterTransition);\n\n // The popup (listbox) is this layer's floating element — the inside surface for containment.\n this.floatingContext.setFloatingElement(this.currentElement.nativeElement);\n\n // Dismissal (ADR 0015): Escape or an outside press closes the select. Focus-out does NOT close it\n // — the listbox holds focus while open (items are navigated virtually), so a focus-out is not a\n // dismissal (the legacy preventDefaulted it too).\n new RdxDismiss(this.floatingContext, () => this.registration?.node() ?? null, {\n escapeKey: () => true,\n outsidePress: () => true,\n focusOutside: () => false,\n onEscapeKeyDown: (event) => this.escapeKeyDown.emit(event),\n onPointerDownOutside: (event) => this.pointerDownOutside.emit(event),\n onDismiss: (reason, event) =>\n this.rootContext.onOpenChange(\n false,\n reason === 'escape-key' ? 'escape-key' : reason === 'focus-outside' ? 'focus-out' : 'outside-press',\n event\n )\n });\n\n const focusScope = inject(RdxFocusScope);\n\n afterNextRender(() => {\n focusScope.unmountAutoFocus.subscribe((event) => {\n if (event.defaultPrevented) return;\n\n this.rootContext.triggerElement()?.focus({ preventScroll: true });\n\n event.preventDefault();\n });\n\n // Focus the popup itself (not an item) — the listbox is the focus owner; items are\n // navigated virtually via aria-activedescendant.\n focusScope.mountAutoFocus.subscribe((event) => {\n event.preventDefault();\n this.content()?.focus({ preventScroll: true });\n });\n\n // The popup is now the listbox host itself (no longer the positioner's first child).\n this.content.set(this.currentElement.nativeElement);\n });\n\n effect((onCleanup) => {\n if (!this.content()) return;\n\n let pointerMoveDelta = { x: 0, y: 0 };\n\n const handlePointerMove = (event: PointerEvent) => {\n pointerMoveDelta = {\n x: Math.abs(Math.round(event.pageX) - (this.rootContext.triggerPointerDownPosRef()?.x ?? 0)),\n y: Math.abs(Math.round(event.pageY) - (this.rootContext.triggerPointerDownPosRef()?.y ?? 0))\n };\n };\n\n const handlePointerUp = (event: PointerEvent) => {\n // Prevent options from being untappable on touch devices\n if (event.pointerType === 'touch') return;\n\n // If the pointer hasn't moved by a certain threshold then we prevent selecting item on `pointerup`.\n if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) {\n event.preventDefault();\n } else {\n // otherwise, if the event was outside the content, close.\n if (!this.content()?.contains(event.target as HTMLElement)) {\n this.rootContext.onOpenChange(false, 'outside-press', event);\n }\n }\n document.removeEventListener('pointermove', handlePointerMove);\n this.rootContext.triggerPointerDownPosRef.set(null);\n };\n\n if (this.rootContext.triggerPointerDownPosRef() !== null) {\n document.addEventListener('pointermove', handlePointerMove);\n document.addEventListener('pointerup', handlePointerUp, {\n capture: true,\n once: true\n });\n }\n\n onCleanup(() => {\n document.removeEventListener('pointermove', handlePointerMove);\n document.removeEventListener('pointerup', handlePointerUp, {\n capture: true\n });\n });\n });\n\n effect((onCleanup) => {\n if (!itemAlignedActive() || !this.rootContext.open()) {\n return;\n }\n\n const popup = this.content();\n const view = popup?.ownerDocument.defaultView;\n\n if (!view) {\n return;\n }\n\n const handleResize = (event: UIEvent) => {\n this.rootContext.onOpenChange(false, 'window-resize', event);\n };\n\n view.addEventListener('resize', handleResize);\n onCleanup(() => view.removeEventListener('resize', handleResize));\n });\n }\n\n /** Highlights the selected item (or the first enabled one) when the popup opens. */\n highlightSelectedItem() {\n const items = this.collection.items();\n const selected = items.find((item) =>\n valueComparator(\n this.rootContext.value(),\n item.value() as AcceptableValue,\n this.rootContext.isItemEqualToValue()\n )\n );\n if (selected) {\n this.highlight.set(selected);\n } else {\n this.highlight.first();\n }\n }\n\n private scrollSelectedIntoView() {\n this.selectedItem()?.scrollIntoView?.({ block: 'nearest' });\n }\n\n setKeyboardActive(value: boolean) {\n this.keyboardActive = value;\n }\n\n isKeyboardActive() {\n return this.keyboardActive;\n }\n\n handleKeyDown(event: Event) {\n const keyEvent = event as KeyboardEvent;\n if (keyEvent.isComposing) return;\n\n // select should not be navigated using tab key so we prevent it\n if (keyEvent.key === 'Tab') {\n event.preventDefault();\n return;\n }\n\n if (SELECTION_KEYS.includes(keyEvent.key)) {\n event.preventDefault();\n const item = this.highlight.highlightedItem();\n if (item && !item.disabled()) {\n this.rootContext.onValueChange(item.value() as AcceptableValue, 'item-press', event);\n if (!this.rootContext.multiple()) {\n this.rootContext.onOpenChange(false, 'item-press', event);\n }\n }\n return;\n }\n\n if (['ArrowUp', 'ArrowDown', 'Home', 'End'].includes(keyEvent.key)) {\n event.preventDefault();\n this.keyboardActive = true;\n switch (keyEvent.key) {\n case 'ArrowDown':\n this.highlight.next();\n break;\n case 'ArrowUp':\n this.highlight.previous();\n break;\n case 'Home':\n this.highlight.first();\n break;\n case 'End':\n this.highlight.last();\n break;\n }\n }\n }\n}\n","import {\n afterNextRender,\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n linkedSignal\n} from '@angular/core';\nimport { RdxCollectionItem } from '@radix-ng/primitives/collection';\nimport { createContext, handleAndDispatchCustomEvent, injectId } from '@radix-ng/primitives/core';\nimport { injectSelectPopupContext } from './select-popup';\nimport { injectSelectRootContext } from './select-root';\nimport { SELECTION_KEYS, valueComparator } from './utils';\n\nconst context = () => {\n const context = inject(RdxSelectItem);\n return {\n value: context.value,\n disabled: context.disabled,\n isSelected: context.isSelected,\n textId: context.textId,\n\n onItemTextChange: (node: any) => {\n context.textValue$.set(((context.textValue$() || node.textContent) ?? '').trim());\n }\n };\n};\n\nexport type RdxSelectItemContext = ReturnType<typeof context>;\n\nexport const [injectSelectItemContext, provideSelectItemContext] = createContext<RdxSelectItemContext>(\n 'RdxSelectItemContext',\n 'components/select'\n);\n\nexport type SelectEvent = CustomEvent<{ originalEvent: PointerEvent | KeyboardEvent; value?: any }>;\n\n@Directive({\n selector: '[rdxSelectItem]',\n exportAs: 'rdxSelectItem',\n providers: [provideSelectItemContext(context)],\n hostDirectives: [\n {\n directive: RdxCollectionItem,\n inputs: ['value', 'disabled']\n }\n ],\n host: {\n role: 'option',\n '[attr.id]': 'id',\n '[attr.aria-selected]': 'isSelected()',\n '[attr.aria-disabled]': 'disabled() ? \"true\" : undefined',\n '[attr.data-state]': 'isSelected() ? \"checked\" : \"unchecked\"',\n '[attr.data-selected]': 'isSelected() ? \"\" : undefined',\n '[attr.data-highlighted]': 'isHighlighted() ? \"\" : undefined',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined',\n '(pointerup)': 'onPointerUp($event)',\n '(pointerleave)': 'onPointerLeave($event)',\n '(pointermove)': 'onPointerMove($event)'\n }\n})\nexport class RdxSelectItem {\n private readonly rootContext = injectSelectRootContext();\n private readonly contentContext = injectSelectPopupContext();\n private readonly collectionItem = inject(RdxCollectionItem);\n\n private readonly currentElement = inject(ElementRef);\n\n readonly value = input<any>();\n\n readonly textValue = input<string>('');\n\n readonly disabled = input(false, { transform: booleanAttribute });\n\n readonly textValue$ = linkedSignal(this.textValue);\n\n readonly isSelected = computed(() =>\n valueComparator(this.rootContext.value(), this.value(), this.rootContext.isItemEqualToValue())\n );\n\n /** Highlighted via the highlight model (keyboard / hover), not DOM focus. */\n readonly isHighlighted = computed(() => this.contentContext.isHighlighted(this.collectionItem));\n\n /** Item id, referenced by the popup's `aria-activedescendant`. */\n readonly id = injectId('rdx-select-item-');\n\n readonly textId = injectId('rdx-select-item-text-');\n\n private readonly afterNextRender = afterNextRender(() => {\n this.contentContext.itemRefCallback(this.currentElement.nativeElement, this.value(), this.disabled());\n });\n\n private SELECT_SELECT = 'select.select';\n\n onPointerUp(event: PointerEvent | KeyboardEvent) {\n if (event.defaultPrevented) return;\n if (this.disabled()) return;\n\n const eventDetail = { originalEvent: event, value: this.value() };\n\n handleAndDispatchCustomEvent(\n this.SELECT_SELECT,\n async (event: SelectEvent) => {\n if (event.defaultPrevented) return;\n\n this.rootContext.onValueChange(this.value(), 'item-press', event.detail.originalEvent);\n if (!this.rootContext.multiple()) {\n this.rootContext.onOpenChange(false, 'item-press', event.detail.originalEvent);\n }\n },\n eventDetail\n );\n }\n\n onPointerLeave(event: Event) {\n if (event.defaultPrevented) return;\n this.contentContext.onItemLeave?.();\n }\n\n onPointerMove(event: Event) {\n if (event.defaultPrevented) return;\n // Ignore pointer events synthesized by keyboard-driven scrolling (don't steal the highlight).\n if (this.contentContext.isKeyboardActive()) {\n this.contentContext.setKeyboardActive(false);\n return;\n }\n if (!this.disabled()) {\n this.contentContext.highlightItem(this.collectionItem);\n }\n }\n\n handleKeyDown(event: Event) {\n const keyEvent = event as KeyboardEvent;\n if (event.defaultPrevented) return;\n if (SELECTION_KEYS.includes(keyEvent.key)) this.onPointerUp(keyEvent);\n }\n}\n","import { Directive } from '@angular/core';\nimport { injectSelectItemContext } from './select-item';\n\n@Directive({\n selector: '[rdxSelectItemIndicator]',\n host: {\n '[attr.aria-hidden]': 'true',\n '[hidden]': '!itemContext.isSelected()'\n }\n})\nexport class RdxSelectItemIndicator {\n readonly itemContext = injectSelectItemContext();\n}\n","import { afterNextRender, computed, DestroyRef, Directive, ElementRef, inject } from '@angular/core';\nimport { injectSelectItemContext } from './select-item';\nimport { injectSelectPopupContext } from './select-popup';\nimport { injectSelectRootContext } from './select-root';\n\n@Directive({\n selector: '[rdxSelectItemText]',\n host: {\n '[id]': 'itemContext.textId'\n }\n})\nexport class RdxSelectItemText {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n readonly rootContext = injectSelectRootContext();\n readonly contentContext = injectSelectPopupContext();\n readonly itemContext = injectSelectItemContext();\n\n readonly optionProps = computed(() => {\n return {\n value: this.itemContext.value(),\n disabled: this.itemContext.disabled(),\n textContent: this.elementRef.nativeElement.textContent ?? this.itemContext.value()?.toString() ?? ''\n };\n });\n\n constructor() {\n afterNextRender(() => {\n this.itemContext.onItemTextChange(this.elementRef.nativeElement);\n this.contentContext.itemTextRefCallback(\n this.elementRef.nativeElement,\n this.itemContext.value(),\n this.itemContext.disabled()\n );\n\n this.rootContext.onOptionAdd(this.optionProps);\n });\n\n const destroyRef = inject(DestroyRef);\n\n destroyRef.onDestroy(() => {\n this.rootContext.onOptionRemove(this.optionProps);\n });\n }\n}\n","import { afterNextRender, Directive, ElementRef, inject, signal } from '@angular/core';\nimport { injectSelectPopupContext } from './select-popup';\n\n@Directive({\n selector: '[rdxSelectList]',\n host: {\n role: 'presentation',\n '[attr.data-rdx-select-list]': '\"\"',\n '[style]': `{\n position: 'relative',\n flex: 1,\n overflow: 'hidden auto',\n scrollbarWidth: 'none'\n }`,\n '(scroll)': 'handleScroll($event)'\n }\n})\nexport class RdxSelectList {\n private readonly contentContext = injectSelectPopupContext();\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n private readonly prevScrollTopRef = signal(0);\n\n constructor() {\n afterNextRender(() => {\n this.contentContext?.onViewportChange(this.elementRef.nativeElement);\n });\n }\n\n handleScroll(event: Event) {\n const viewport = event.currentTarget as HTMLElement;\n\n this.prevScrollTopRef.set(viewport.scrollTop);\n }\n}\n","import { Directive, isDevMode } from '@angular/core';\nimport { rdxDevError } from '@radix-ng/primitives/core';\nimport { RdxPortalPresence } from '@radix-ng/primitives/portal';\nimport { provideRdxPresenceContext } from '@radix-ng/primitives/presence';\nimport { injectSelectRootContext } from './select-root';\n\n/**\n * Structural directive that teleports the select popup into a container (default `document.body`)\n * while the select is open, and keeps it mounted until any CSS exit `@keyframes` finishes.\n *\n * Apply it with the `*` microsyntax on the popup — `<div *rdxSelectPortal rdxSelectPopup>` — or as an\n * explicit `<ng-template rdxSelectPortal>`. For a custom container use the explicit form with\n * `[container]`. Unlike the previous attribute portal it no longer parks an empty wrapper `<div>` in\n * `document.body` while the select is closed.\n */\n@Directive({\n selector: 'ng-template[rdxSelectPortal]',\n exportAs: 'rdxSelectPortal',\n hostDirectives: [{ directive: RdxPortalPresence, inputs: ['container'] }],\n providers: [provideRdxPresenceContext(() => ({ present: injectSelectRootContext().open }))]\n})\nexport class RdxSelectPortal {}\n\n/**\n * Dev-mode guard: `rdxSelectPortal` used to be an attribute directive on a `<div>`. It is now\n * structural, so the old `<div rdxSelectPortal>` markup would silently stop portaling — fail loudly\n * instead.\n */\n@Directive({\n selector: '[rdxSelectPortal]:not(ng-template)'\n})\nexport class RdxSelectPortalMisuseGuard {\n constructor() {\n if (isDevMode()) {\n rdxDevError(\n 'select/portal-on-element',\n '`rdxSelectPortal` is now a structural directive. ' +\n 'Use `*rdxSelectPortal` on the popup element or `<ng-template rdxSelectPortal>`. ' +\n 'rdxSelectPortalPresence has been removed.',\n 'components/select'\n );\n }\n }\n}\n","import { afterNextRender, Directive, ElementRef, forwardRef, inject, Injector } from '@angular/core';\nimport { setupInternalBackdrop } from '@radix-ng/primitives/core';\nimport {\n legacyPopperVars,\n provideRdxPopperContentConfig,\n provideRdxPopperContentWrapper,\n RdxPopperContentWrapper\n} from '@radix-ng/primitives/popper';\nimport { RDX_SELECT_POSITIONER_TOKEN, RdxPositionerImpl } from './select-popup';\nimport { injectSelectRootContext } from './select-root';\n\n/**\n * Positions the select popup against the trigger using the popper engine.\n *\n * A \"thin\" positioner (ADR 0012): it inherits the full popper positioning surface — the inputs\n * (`side`, `sideOffset`, `align`, …), the `placed` output, and the host bindings — from\n * {@link RdxPopperContentWrapper}, and declares select's Base UI-aligned defaults via the config\n * provider. It also satisfies {@link RdxPositionerImpl} (via the inherited `placed`) so the popup can\n * resolve it through {@link RDX_SELECT_POSITIONER_TOKEN}, the same as the item-aligned positioner.\n */\n@Directive({\n selector: '[rdxSelectPositioner]',\n providers: [\n ...provideRdxPopperContentWrapper(RdxSelectPositioner),\n provideRdxPopperContentConfig({ align: 'start', updatePositionStrategy: 'always' }),\n { provide: RDX_SELECT_POSITIONER_TOKEN, useExisting: forwardRef(() => RdxSelectPositioner) }\n ],\n host: {\n // The unified vars + placement attrs come from the wrapper (ADR 0012); only `box-sizing` and\n // the deprecated `--radix-select-*` aliases (still consumed by demos) remain here.\n '[style]': 'positionerStyle'\n }\n})\nexport class RdxSelectPositioner extends RdxPopperContentWrapper implements RdxPositionerImpl {\n protected readonly positionerStyle = { boxSizing: 'border-box', ...legacyPopperVars('select') };\n\n constructor() {\n super();\n const rootContext = injectSelectRootContext();\n const injector = inject(Injector);\n const host = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n // Modal select isolates the background with an internal backdrop (finding #1 / Base UI) instead of\n // a global pointer lock; the trigger stays clickable through a cutout (toggle-close).\n afterNextRender(() =>\n setupInternalBackdrop(host, injector, {\n isOpen: () => rootContext.open(),\n shouldRender: () => rootContext.modal(),\n cutout: () => rootContext.triggerElement()\n })\n );\n }\n}\n","import { Directive } from '@angular/core';\n\n/**\n * A visual divider between groups of items.\n *\n * @group Components\n */\n@Directive({\n selector: '[rdxSelectSeparator]',\n exportAs: 'rdxSelectSeparator',\n host: {\n role: 'separator',\n 'aria-hidden': 'true'\n }\n})\nexport class RdxSelectSeparator {}\n","import { afterNextRender, booleanAttribute, computed, Directive, ElementRef, inject, input } from '@angular/core';\nimport { injectId } from '@radix-ng/primitives/core';\nimport { injectFieldRootContext } from '@radix-ng/primitives/field';\nimport { RdxPopperAnchor } from '@radix-ng/primitives/popper';\nimport { injectSelectRootContext } from './select-root';\nimport { OPEN_KEYS } from './utils';\n\nconst attr = (value: boolean) => (value ? '' : undefined);\n\n@Directive({\n selector: 'button[rdxSelectTrigger]',\n hostDirectives: [RdxPopperAnchor],\n host: {\n role: 'combobox',\n type: 'button',\n '[attr.id]': 'id()',\n '[attr.aria-describedby]': 'describedBy()',\n '[attr.aria-invalid]': 'invalidState() ? \"true\" : undefined',\n '[attr.aria-required]': 'requiredState() ? \"true\" : undefined',\n '[attr.disabled]': 'isDisabled() ? \"\" : undefined',\n '[dir]': 'rootContext.dir()',\n '[attr.data-state]': 'rootContext.open() ? \"open\" : \"closed\"',\n '[attr.data-popup-open]': 'dataAttr(rootContext.open())',\n '[attr.data-placeholder]': 'dataAttr(rootContext.isEmptyModelValue())',\n '[attr.data-disabled]': 'dataAttr(isDisabled())',\n '[attr.data-invalid]': 'dataAttr(invalidState())',\n '[attr.data-valid]': 'dataAttr(!invalidState())',\n '[attr.data-required]': 'dataAttr(requiredState())',\n '[attr.data-filled]': 'dataAttr(filledState())',\n '[attr.data-focused]': 'dataAttr(focusedState())',\n '(click)': 'onClickHandler($event)',\n '(pointerdown)': 'onPointerDown($event)',\n '(pointerup)': 'onPointerUp($event)',\n '(keydown)': 'onKeydown($event)',\n '(focus)': 'onFocus()',\n '(blur)': 'onBlur()'\n }\n})\nexport class RdxSelectTrigger {\n readonly rootContext = injectSelectRootContext();\n\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly fieldRootContext = injectFieldRootContext(true);\n\n /** The trigger id; Field labels and descriptions reference it for accessible relationships. */\n readonly id = input(injectId('rdx-select-trigger-'));\n\n readonly disabled = input(false, { transform: booleanAttribute });\n\n readonly isDisabled = computed(\n () => this.rootContext.disabled() || this.disabled() || Boolean(this.fieldRootContext?.disabledState())\n );\n\n protected readonly invalidState = computed(() => Boolean(this.fieldRootContext?.invalidState()));\n protected readonly requiredState = computed(() => Boolean(this.fieldRootContext?.requiredState()));\n protected readonly filledState = computed(\n () => !this.rootContext.isEmptyModelValue() || Boolean(this.fieldRootContext?.filledState())\n );\n protected readonly focusedState = computed(() => Boolean(this.fieldRootContext?.focusedState()));\n\n protected readonly describedBy = computed(() => {\n if (!this.fieldRootContext) {\n return undefined;\n }\n const ids = [\n ...this.fieldRootContext.descriptionIds(),\n ...(this.fieldRootContext.invalidState() ? this.fieldRootContext.errorIds() : [])\n ];\n return ids.length ? ids.join(' ') : undefined;\n });\n\n constructor() {\n afterNextRender(() => {\n this.rootContext.onTriggerChange(this.elementRef);\n this.fieldRootContext?.setControlId(this.id());\n this.fieldRootContext?.setFilled(!this.rootContext.isEmptyModelValue());\n });\n }\n\n handleOpen(reason: 'trigger-press' | 'list-navigation', event: Event): boolean {\n if (!this.isDisabled()) {\n return this.rootContext.onOpenChange(true, reason, event);\n }\n\n return false;\n }\n\n handlePointerOpen(event: Event) {\n const pointerEvent = event as PointerEvent;\n\n if (this.handleOpen('trigger-press', event)) {\n this.rootContext.triggerPointerDownPosRef.set({\n x: Math.round(pointerEvent.pageX),\n y: Math.round(pointerEvent.pageY)\n });\n }\n }\n\n onClickHandler(event: Event) {\n // Whilst browsers generally have no issue focusing the trigger when clicking\n // on a label, Safari seems to struggle with the fact that there's no `onClick`.\n // We force `focus` in this case. Note: this doesn't create any other side-effect\n // because we are preventing default in `onPointerDown` so effectively\n // this only runs for a label 'click'\n (event?.currentTarget as HTMLElement)?.focus();\n }\n\n onPointerDown(event: Event) {\n const pointerEvent = event as PointerEvent;\n if (pointerEvent.pointerType === 'touch') return event.preventDefault();\n\n // prevent implicit pointer capture\n // https://www.w3.org/TR/pointerevents3/#implicit-pointer-capture\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(pointerEvent.pointerId)) {\n target.releasePointerCapture(pointerEvent.pointerId);\n }\n\n // only call handler if it's the left button (mousedown gets triggered by all mouse buttons)\n // but not when the control key is pressed (avoiding MacOS right click)\n if (pointerEvent.button === 0 && pointerEvent.ctrlKey === false) {\n this.handlePointerOpen(event);\n // prevent trigger from stealing focus from the active item after opening.\n event.preventDefault();\n }\n }\n\n onPointerUp(event: Event) {\n const pointerEvent = event as PointerEvent;\n event.preventDefault();\n // Only open on pointer up when using touch devices\n if (pointerEvent.pointerType === 'touch') this.handlePointerOpen(event);\n }\n\n onKeydown(event: Event) {\n const keyEvent = event as KeyboardEvent;\n if (OPEN_KEYS.includes(keyEvent.key)) {\n const reason =\n keyEvent.key === 'ArrowUp' || keyEvent.key === 'ArrowDown' ? 'list-navigation' : 'trigger-press';\n this.handleOpen(reason, event);\n event.preventDefault();\n }\n }\n\n onFocus(): void {\n this.fieldRootContext?.setFocused(true);\n }\n\n onBlur(): void {\n this.fieldRootContext?.setFocused(false);\n this.fieldRootContext?.setTouched(true);\n }\n\n protected readonly dataAttr = attr;\n}\n","import { afterNextRender, computed, Directive, ElementRef, inject, input } from '@angular/core';\nimport { AcceptableValue } from '@radix-ng/primitives/core';\nimport { injectSelectRootContext } from './select-root';\nimport { valueComparator } from './utils';\n\n@Directive({\n selector: 'span[rdxSelectValue]',\n exportAs: 'rdxSelectedValue',\n host: {\n '[style.pointer-events]': '\"none\"'\n }\n})\nexport class RdxSelectValue {\n readonly rootContext = injectSelectRootContext();\n\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n readonly placeholder = input<string>();\n\n readonly slotText = computed(() => {\n return this.selectedLabel().length ? this.selectedLabel().join(', ') : this.placeholder();\n });\n\n readonly selectedLabel = computed(() => {\n const options = Array.from(this.rootContext.optionsSet());\n const customLabel = this.rootContext.itemToStringLabel();\n\n const labelFor = (value?: AcceptableValue): string => {\n if (customLabel && value !== undefined && value !== null) {\n return customLabel(value);\n }\n const option = options.find((o) => valueComparator(value, o.value, this.rootContext.isItemEqualToValue()));\n return option?.textContent ?? '';\n };\n\n const value = this.rootContext.value();\n const list = Array.isArray(value) ? value.map((v) => labelFor(v)) : [labelFor(value)];\n return list.filter(Boolean);\n });\n\n constructor() {\n afterNextRender(() => {\n this.rootContext.valueElement.set(this.elementRef.nativeElement);\n });\n }\n}\n","import { RdxSelectBackdrop } from './src/select-backdrop';\nimport { RdxSelectGroup } from './src/select-group';\nimport { RdxSelectGroupLabel } from './src/select-group-label';\nimport { RdxSelectIcon } from './src/select-icon';\nimport { RdxSelectItem } from './src/select-item';\nimport { RdxSelectItemIndicator } from './src/select-item-indicator';\nimport { RdxSelectItemText } from './src/select-item-text';\nimport { RdxSelectList } from './src/select-list';\nimport { RdxSelectPopup } from './src/select-popup';\nimport { RdxSelectPortal, RdxSelectPortalMisuseGuard } from './src/select-portal';\nimport { RdxSelectPositioner } from './src/select-positioner';\nimport { RdxSelectRoot } from './src/select-root';\nimport { RdxSelectSeparator } from './src/select-separator';\nimport { RdxSelectTrigger } from './src/select-trigger';\nimport { RdxSelectValue } from './src/select-value';\n\nexport * from './src/select-backdrop';\nexport * from './src/select-group';\nexport * from './src/select-group-label';\nexport * from './src/select-icon';\nexport * from './src/select-item';\nexport * from './src/select-item-indicator';\nexport * from './src/select-item-text';\nexport * from './src/select-list';\nexport * from './src/select-popup';\nexport * from './src/select-portal';\nexport * from './src/select-positioner';\nexport * from './src/select-root';\nexport * from './src/select-separator';\nexport * from './src/select-trigger';\nexport * from './src/select-value';\nexport * from './src/utils';\n\nexport const _importsSelect = [\n RdxSelectRoot,\n RdxSelectPortal,\n RdxSelectPortalMisuseGuard,\n RdxSelectTrigger,\n RdxSelectValue,\n RdxSelectPopup,\n RdxSelectList,\n RdxSelectItemIndicator,\n RdxSelectItem,\n RdxSelectItemText,\n RdxSelectGroupLabel,\n RdxSelectGroup,\n RdxSelectPositioner,\n RdxSelectIcon,\n RdxSelectSeparator,\n RdxSelectBackdrop\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["context","i1"],"mappings":"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"}
@@ -4,6 +4,7 @@ import { DOCUMENT } from '@angular/common';
4
4
  import * as i1 from '@radix-ng/primitives/core';
5
5
  import { createContext, clamp, injectControlValueAccessor, injectId, RdxControlValueAccessor } from '@radix-ng/primitives/core';
6
6
  export { clamp } from '@radix-ng/primitives/core';
7
+ import { injectDirection } from '@radix-ng/primitives/direction-provider';
7
8
 
8
9
  /**
9
10
  * The Slider context exposes the root directive instance to every child part.
@@ -612,7 +613,8 @@ class RdxSliderRoot {
612
613
  * The reading direction. Mirrors the horizontal axis when set to `'rtl'`.
613
614
  * @default 'ltr'
614
615
  */
615
- this.dir = input('ltr', ...(ngDevMode ? [{ debugName: "dir" }] : /* istanbul ignore next */ []));
616
+ this.dirInput = input(undefined, { ...(ngDevMode ? { debugName: "dirInput" } : /* istanbul ignore next */ {}), alias: 'dir' });
617
+ this.dir = injectDirection(this.dirInput);
616
618
  /**
617
619
  * How thumbs behave when they meet in a range slider.
618
620
  * @default 'push'
@@ -764,7 +766,7 @@ class RdxSliderRoot {
764
766
  this.pressedInput = null;
765
767
  }
766
768
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxSliderRoot, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
767
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: RdxSliderRoot, isStandalone: true, selector: "div[rdxSliderRoot]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, largeStep: { classPropertyName: "largeStep", publicName: "largeStep", isSignal: true, isRequired: false, transformFunction: null }, minStepsBetweenValues: { classPropertyName: "minStepsBetweenValues", publicName: "minStepsBetweenValues", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, dir: { classPropertyName: "dir", publicName: "dir", isSignal: true, isRequired: false, transformFunction: null }, thumbCollisionBehavior: { classPropertyName: "thumbCollisionBehavior", publicName: "thumbCollisionBehavior", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, defaultValue: { classPropertyName: "defaultValue", publicName: "defaultValue", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", onValueChange: "onValueChange", onValueCommitted: "onValueCommitted" }, host: { attributes: { "role": "group" }, properties: { "id": "id()", "attr.aria-labelledby": "ariaLabelledBy()", "attr.dir": "dir()", "attr.data-orientation": "orientation()", "attr.data-disabled": "isDisabled() ? \"\" : undefined", "attr.data-dragging": "dragging() ? \"\" : undefined" } }, providers: [provideSliderRootContext(() => inject(RdxSliderRoot))], exportAs: ["rdxSliderRoot"], hostDirectives: [{ directive: i1.RdxControlValueAccessor, inputs: ["value", "value", "disabled", "disabled"] }], ngImport: i0 }); }
769
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: RdxSliderRoot, isStandalone: true, selector: "div[rdxSliderRoot]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, largeStep: { classPropertyName: "largeStep", publicName: "largeStep", isSignal: true, isRequired: false, transformFunction: null }, minStepsBetweenValues: { classPropertyName: "minStepsBetweenValues", publicName: "minStepsBetweenValues", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, dirInput: { classPropertyName: "dirInput", publicName: "dir", isSignal: true, isRequired: false, transformFunction: null }, thumbCollisionBehavior: { classPropertyName: "thumbCollisionBehavior", publicName: "thumbCollisionBehavior", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, defaultValue: { classPropertyName: "defaultValue", publicName: "defaultValue", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", onValueChange: "onValueChange", onValueCommitted: "onValueCommitted" }, host: { attributes: { "role": "group" }, properties: { "id": "id()", "attr.aria-labelledby": "ariaLabelledBy()", "attr.dir": "dir()", "attr.data-orientation": "orientation()", "attr.data-disabled": "isDisabled() ? \"\" : undefined", "attr.data-dragging": "dragging() ? \"\" : undefined" } }, providers: [provideSliderRootContext(() => inject(RdxSliderRoot))], exportAs: ["rdxSliderRoot"], hostDirectives: [{ directive: i1.RdxControlValueAccessor, inputs: ["value", "value", "disabled", "disabled"] }], ngImport: i0 }); }
768
770
  }
769
771
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxSliderRoot, decorators: [{
770
772
  type: Directive,
@@ -788,7 +790,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
788
790
  '[attr.data-dragging]': 'dragging() ? "" : undefined'
789
791
  }
790
792
  }]
791
- }], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], step: [{ type: i0.Input, args: [{ isSignal: true, alias: "step", required: false }] }], largeStep: [{ type: i0.Input, args: [{ isSignal: true, alias: "largeStep", required: false }] }], minStepsBetweenValues: [{ type: i0.Input, args: [{ isSignal: true, alias: "minStepsBetweenValues", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], dir: [{ type: i0.Input, args: [{ isSignal: true, alias: "dir", required: false }] }], thumbCollisionBehavior: [{ type: i0.Input, args: [{ isSignal: true, alias: "thumbCollisionBehavior", required: false }] }], format: [{ type: i0.Input, args: [{ isSignal: true, alias: "format", required: false }] }], locale: [{ type: i0.Input, args: [{ isSignal: true, alias: "locale", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], form: [{ type: i0.Input, args: [{ isSignal: true, alias: "form", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], defaultValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValue", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], ariaLabelledBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-labelledby", required: false }] }], onValueChange: [{ type: i0.Output, args: ["onValueChange"] }], onValueCommitted: [{ type: i0.Output, args: ["onValueCommitted"] }] } });
793
+ }], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], step: [{ type: i0.Input, args: [{ isSignal: true, alias: "step", required: false }] }], largeStep: [{ type: i0.Input, args: [{ isSignal: true, alias: "largeStep", required: false }] }], minStepsBetweenValues: [{ type: i0.Input, args: [{ isSignal: true, alias: "minStepsBetweenValues", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], dirInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "dir", required: false }] }], thumbCollisionBehavior: [{ type: i0.Input, args: [{ isSignal: true, alias: "thumbCollisionBehavior", required: false }] }], format: [{ type: i0.Input, args: [{ isSignal: true, alias: "format", required: false }] }], locale: [{ type: i0.Input, args: [{ isSignal: true, alias: "locale", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], form: [{ type: i0.Input, args: [{ isSignal: true, alias: "form", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], defaultValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValue", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], ariaLabelledBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-labelledby", required: false }] }], onValueChange: [{ type: i0.Output, args: ["onValueChange"] }], onValueCommitted: [{ type: i0.Output, args: ["onValueCommitted"] }] } });
792
794
 
793
795
  /**
794
796
  * A draggable handle. Render one per value; place an `input[rdxSliderThumbInput]`