@radix-ng/primitives 1.0.0-beta.5 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/composite/README.md +3 -0
- package/fesm2022/radix-ng-primitives-accordion.mjs +12 -36
- package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-composite.mjs +515 -0
- package/fesm2022/radix-ng-primitives-composite.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-drawer.mjs +442 -2
- package/fesm2022/radix-ng-primitives-drawer.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-menu.mjs +38 -16
- package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-menubar.mjs +68 -36
- package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-navigation-menu.mjs +281 -88
- package/fesm2022/radix-ng-primitives-navigation-menu.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-popover.mjs +40 -15
- package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-popper.mjs +73 -65
- package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-radio.mjs +63 -27
- package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-roving-focus.mjs +40 -8
- package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-scroll-area.mjs +56 -25
- package/fesm2022/radix-ng-primitives-scroll-area.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-select.mjs +3 -0
- package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-tabs.mjs +50 -21
- package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toggle-group.mjs +66 -21
- package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toggle.mjs +29 -11
- package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toolbar.mjs +50 -24
- package/fesm2022/radix-ng-primitives-toolbar.mjs.map +1 -1
- package/navigation-menu/README.md +5 -2
- package/package.json +5 -1
- package/types/radix-ng-primitives-accordion.d.ts +9 -13
- package/types/radix-ng-primitives-composite.d.ts +152 -0
- package/types/radix-ng-primitives-drawer.d.ts +40 -2
- package/types/radix-ng-primitives-menu.d.ts +5 -3
- package/types/radix-ng-primitives-menubar.d.ts +10 -5
- package/types/radix-ng-primitives-navigation-menu.d.ts +65 -33
- package/types/radix-ng-primitives-popover.d.ts +9 -5
- package/types/radix-ng-primitives-popper.d.ts +1 -0
- package/types/radix-ng-primitives-radio.d.ts +11 -9
- package/types/radix-ng-primitives-roving-focus.d.ts +15 -1
- package/types/radix-ng-primitives-scroll-area.d.ts +4 -1
- package/types/radix-ng-primitives-tabs.d.ts +8 -5
- package/types/radix-ng-primitives-toggle-group.d.ts +27 -16
- package/types/radix-ng-primitives-toggle.d.ts +5 -5
- package/types/radix-ng-primitives-toolbar.d.ts +22 -14
|
@@ -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-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 createCancelableChangeEventDetails,\n createContext,\n createFloatingRootContext,\n Direction,\n injectId,\n isNullish,\n ItemValueComparator,\n provideFloatingRootContext,\n provideFloatingTree,\n RdxCancelableChangeEventDetails,\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 type RdxSelectOpenChangeEventDetails = RdxCancelableChangeEventDetails<RdxSelectOpenChangeReason>;\n\nexport interface RdxSelectOpenChangeEvent {\n open: boolean;\n eventDetails: RdxSelectOpenChangeEventDetails;\n}\n\nexport type RdxSelectValueChangeEventDetails = RdxCancelableChangeEventDetails<RdxSelectValueChangeReason>;\n\nexport interface RdxSelectValueChangeEvent {\n value: AcceptableValue | AcceptableValue[];\n eventDetails: RdxSelectValueChangeEventDetails;\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: context.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 contentId = injectId('rdx-select-content-');\n\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 } = createCancelableChangeEventDetails(reason, event, this.triggerElement() ?? undefined);\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 } = createCancelableChangeEventDetails(\n reason,\n resolvedEvent,\n this.triggerElement() ?? undefined\n );\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 {\n provideFloatingFocusManagerConfig,\n RdxFloatingFocusManager\n} from '@radix-ng/primitives/floating-focus-manager';\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: [\n RdxPopperContent,\n { directive: RdxFloatingFocusManager, inputs: ['returnFocus: finalFocus'] },\n RdxFloatingNodeRegistration,\n RdxCollectionProvider\n ],\n providers: [\n provideSelectPopupContext(context),\n provideFloatingFocusManagerConfig(() => {\n const rootContext = injectSelectRootContext();\n const host = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n\n return {\n modal: () => false,\n enabled: () => rootContext.open() || rootContext.transitionStatus() === 'ending',\n closeOnFocusOut: () => false,\n // The listbox owns DOM focus; items are navigated virtually through aria-activedescendant.\n initialFocus: () => host,\n restoreFocus: () => true,\n openInteractionType: () => rootContext.openInteractionType(),\n closeInteractionType: () => rootContext.closeInteractionType()\n };\n })\n ],\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<HTMLElement>>(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 afterNextRender(() => {\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 { createRdxTriggerInteraction } from '@radix-ng/primitives/floating-focus-manager';\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-controls]': 'triggerInteraction.ariaControls()',\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]': 'triggerInteraction.dataState()',\n '[attr.data-popup-open]': 'triggerInteraction.dataPopupOpen()',\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 protected readonly triggerInteraction = createRdxTriggerInteraction({\n trigger: () => this.elementRef.nativeElement,\n activeTrigger: () => this.rootContext.triggerElement(),\n open: () => this.rootContext.open(),\n disabled: () => this.isDisabled(),\n contentId: () => this.rootContext.contentId\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 this.triggerInteraction.recordPointerDown(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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"}
|
|
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 createCancelableChangeEventDetails,\n createContext,\n createFloatingRootContext,\n Direction,\n injectId,\n isNullish,\n ItemValueComparator,\n provideFloatingRootContext,\n provideFloatingTree,\n RdxCancelableChangeEventDetails,\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 type RdxSelectOpenChangeEventDetails = RdxCancelableChangeEventDetails<RdxSelectOpenChangeReason>;\n\nexport interface RdxSelectOpenChangeEvent {\n open: boolean;\n eventDetails: RdxSelectOpenChangeEventDetails;\n}\n\nexport type RdxSelectValueChangeEventDetails = RdxCancelableChangeEventDetails<RdxSelectValueChangeReason>;\n\nexport interface RdxSelectValueChangeEvent {\n value: AcceptableValue | AcceptableValue[];\n eventDetails: RdxSelectValueChangeEventDetails;\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: context.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 contentId = injectId('rdx-select-content-');\n\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 } = createCancelableChangeEventDetails(reason, event, this.triggerElement() ?? undefined);\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 } = createCancelableChangeEventDetails(\n reason,\n resolvedEvent,\n this.triggerElement() ?? undefined\n );\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 {\n provideFloatingFocusManagerConfig,\n RdxFloatingFocusManager\n} from '@radix-ng/primitives/floating-focus-manager';\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: [\n RdxPopperContent,\n { directive: RdxFloatingFocusManager, inputs: ['returnFocus: finalFocus'] },\n RdxFloatingNodeRegistration,\n RdxCollectionProvider\n ],\n providers: [\n provideSelectPopupContext(context),\n provideFloatingFocusManagerConfig(() => {\n const rootContext = injectSelectRootContext();\n const host = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n\n return {\n modal: () => false,\n enabled: () => rootContext.open() || rootContext.transitionStatus() === 'ending',\n closeOnFocusOut: () => false,\n // The listbox owns DOM focus; items are navigated virtually through aria-activedescendant.\n initialFocus: () => host,\n restoreFocus: () => true,\n openInteractionType: () => rootContext.openInteractionType(),\n closeInteractionType: () => rootContext.closeInteractionType()\n };\n })\n ],\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<HTMLElement>>(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 afterNextRender(() => {\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 { createRdxTriggerInteraction } from '@radix-ng/primitives/floating-focus-manager';\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-controls]': 'triggerInteraction.ariaControls()',\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]': 'triggerInteraction.dataState()',\n '[attr.data-popup-open]': 'triggerInteraction.dataPopupOpen()',\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 protected readonly triggerInteraction = createRdxTriggerInteraction({\n trigger: () => this.elementRef.nativeElement,\n activeTrigger: () => this.rootContext.triggerElement(),\n open: () => this.rootContext.open(),\n disabled: () => this.isDisabled(),\n contentId: () => this.rootContext.contentId\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 if (this.rootContext.open()) {\n return;\n }\n (event?.currentTarget as HTMLElement)?.focus();\n }\n\n onPointerDown(event: Event) {\n const pointerEvent = event as PointerEvent;\n this.triggerInteraction.recordPointerDown(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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"}
|