@radix-ng/primitives 1.0.0-beta.4 → 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.
Files changed (83) hide show
  1. package/composite/README.md +3 -0
  2. package/fesm2022/radix-ng-primitives-accordion.mjs +12 -36
  3. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
  4. package/fesm2022/radix-ng-primitives-checkbox.mjs +33 -18
  5. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  6. package/fesm2022/radix-ng-primitives-composite.mjs +515 -0
  7. package/fesm2022/radix-ng-primitives-composite.mjs.map +1 -0
  8. package/fesm2022/radix-ng-primitives-core.mjs +7 -0
  9. package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
  10. package/fesm2022/radix-ng-primitives-dialog.mjs +54 -12
  11. package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
  12. package/fesm2022/radix-ng-primitives-drawer.mjs +442 -2
  13. package/fesm2022/radix-ng-primitives-drawer.mjs.map +1 -1
  14. package/fesm2022/radix-ng-primitives-editable.mjs +12 -7
  15. package/fesm2022/radix-ng-primitives-editable.mjs.map +1 -1
  16. package/fesm2022/radix-ng-primitives-floating-focus-manager.mjs +294 -8
  17. package/fesm2022/radix-ng-primitives-floating-focus-manager.mjs.map +1 -1
  18. package/fesm2022/radix-ng-primitives-focus-scope.mjs +9 -0
  19. package/fesm2022/radix-ng-primitives-focus-scope.mjs.map +1 -1
  20. package/fesm2022/radix-ng-primitives-menu.mjs +71 -20
  21. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
  22. package/fesm2022/radix-ng-primitives-menubar.mjs +68 -36
  23. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
  24. package/fesm2022/radix-ng-primitives-navigation-menu.mjs +281 -88
  25. package/fesm2022/radix-ng-primitives-navigation-menu.mjs.map +1 -1
  26. package/fesm2022/radix-ng-primitives-number-field.mjs +7 -2
  27. package/fesm2022/radix-ng-primitives-number-field.mjs.map +1 -1
  28. package/fesm2022/radix-ng-primitives-popover.mjs +117 -35
  29. package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
  30. package/fesm2022/radix-ng-primitives-popper.mjs +73 -65
  31. package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -1
  32. package/fesm2022/radix-ng-primitives-radio.mjs +77 -36
  33. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  34. package/fesm2022/radix-ng-primitives-roving-focus.mjs +40 -8
  35. package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -1
  36. package/fesm2022/radix-ng-primitives-scroll-area.mjs +56 -25
  37. package/fesm2022/radix-ng-primitives-scroll-area.mjs.map +1 -1
  38. package/fesm2022/radix-ng-primitives-select.mjs +62 -37
  39. package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
  40. package/fesm2022/radix-ng-primitives-slider.mjs +259 -28
  41. package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
  42. package/fesm2022/radix-ng-primitives-stepper.mjs +11 -7
  43. package/fesm2022/radix-ng-primitives-stepper.mjs.map +1 -1
  44. package/fesm2022/radix-ng-primitives-switch.mjs +10 -5
  45. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  46. package/fesm2022/radix-ng-primitives-tabs.mjs +64 -30
  47. package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
  48. package/fesm2022/radix-ng-primitives-toggle-group.mjs +69 -19
  49. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  50. package/fesm2022/radix-ng-primitives-toggle.mjs +37 -13
  51. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
  52. package/fesm2022/radix-ng-primitives-toolbar.mjs +50 -24
  53. package/fesm2022/radix-ng-primitives-toolbar.mjs.map +1 -1
  54. package/fesm2022/radix-ng-primitives-tooltip.mjs +180 -35
  55. package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
  56. package/navigation-menu/README.md +5 -2
  57. package/package.json +5 -1
  58. package/types/radix-ng-primitives-accordion.d.ts +9 -13
  59. package/types/radix-ng-primitives-checkbox.d.ts +27 -15
  60. package/types/radix-ng-primitives-composite.d.ts +152 -0
  61. package/types/radix-ng-primitives-core.d.ts +2 -0
  62. package/types/radix-ng-primitives-dialog.d.ts +13 -2
  63. package/types/radix-ng-primitives-drawer.d.ts +40 -2
  64. package/types/radix-ng-primitives-editable.d.ts +11 -5
  65. package/types/radix-ng-primitives-floating-focus-manager.d.ts +113 -16
  66. package/types/radix-ng-primitives-menu.d.ts +13 -5
  67. package/types/radix-ng-primitives-menubar.d.ts +10 -5
  68. package/types/radix-ng-primitives-navigation-menu.d.ts +65 -33
  69. package/types/radix-ng-primitives-number-field.d.ts +8 -3
  70. package/types/radix-ng-primitives-popover.d.ts +26 -10
  71. package/types/radix-ng-primitives-popper.d.ts +1 -0
  72. package/types/radix-ng-primitives-radio.d.ts +22 -13
  73. package/types/radix-ng-primitives-roving-focus.d.ts +15 -1
  74. package/types/radix-ng-primitives-scroll-area.d.ts +4 -1
  75. package/types/radix-ng-primitives-select.d.ts +16 -20
  76. package/types/radix-ng-primitives-slider.d.ts +60 -9
  77. package/types/radix-ng-primitives-stepper.d.ts +11 -4
  78. package/types/radix-ng-primitives-switch.d.ts +10 -4
  79. package/types/radix-ng-primitives-tabs.d.ts +20 -11
  80. package/types/radix-ng-primitives-toggle-group.d.ts +34 -17
  81. package/types/radix-ng-primitives-toggle.d.ts +14 -7
  82. package/types/radix-ng-primitives-toolbar.d.ts +22 -14
  83. package/types/radix-ng-primitives-tooltip.d.ts +38 -14
@@ -1 +1 @@
1
- {"version":3,"file":"radix-ng-primitives-popover.mjs","sources":["../../../packages/primitives/popover/src/popover-root.ts","../../../packages/primitives/popover/src/popover-arrow.ts","../../../packages/primitives/popover/src/popover-backdrop.ts","../../../packages/primitives/popover/src/popover-popup.ts","../../../packages/primitives/popover/src/popover-close.ts","../../../packages/primitives/popover/src/popover-description.ts","../../../packages/primitives/popover/src/popover-portal.ts","../../../packages/primitives/popover/src/popover-positioner.ts","../../../packages/primitives/popover/src/popover-title.ts","../../../packages/primitives/popover/src/popover-trigger.ts","../../../packages/primitives/popover/src/popover-viewport.ts","../../../packages/primitives/popover/src/popover-handle.ts","../../../packages/primitives/popover/index.ts","../../../packages/primitives/popover/radix-ng-primitives-popover.ts"],"sourcesContent":["import {\n booleanAttribute,\n computed,\n DestroyRef,\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 BooleanInput,\n createCancelableChangeEventDetails,\n createContext,\n createFloatingRootContext,\n injectId,\n provideFloatingRootContext,\n provideFloatingTree,\n RdxCancelableChangeEventDetails,\n RdxFloatingRootContext,\n RdxTransitionStatus,\n useTransitionStatus\n} from '@radix-ng/primitives/core';\nimport { RdxPopper } from '@radix-ng/primitives/popper';\nimport { RdxPopoverHandle } from './popover-handle';\n\nexport type RdxPopoverModal = boolean | 'trap-focus';\nexport type RdxPopoverOpenChangeReason =\n | 'trigger-hover'\n | 'trigger-focus'\n | 'trigger-press'\n | 'outside-press'\n | 'escape-key'\n | 'close-press'\n | 'focus-out'\n | 'imperative-action'\n | 'none';\n\nexport type RdxPopoverOpenChangeEventDetails = RdxCancelableChangeEventDetails<RdxPopoverOpenChangeReason>;\n\nexport interface RdxPopoverOpenChange {\n open: boolean;\n triggerId: string | null;\n trigger: HTMLElement | undefined;\n reason: RdxPopoverOpenChangeReason;\n event: Event;\n eventDetails: RdxPopoverOpenChangeEventDetails;\n}\n\ninterface RdxPopoverRegisteredTrigger {\n element: HTMLElement;\n payload: () => unknown;\n}\n\nconst transformModal = (value: BooleanInput | 'trap-focus'): RdxPopoverModal =>\n value === 'trap-focus' ? value : booleanAttribute(value);\n\nconst context = () => contextFor(inject(RdxPopoverRoot));\n\nexport interface RdxPopoverRootContext {\n contentId: string;\n descriptionId: Signal<string | undefined>;\n isOpen: Signal<boolean>;\n present: Signal<boolean>;\n modal: Signal<RdxPopoverModal>;\n titleId: Signal<string | undefined>;\n trigger: Signal<HTMLElement | undefined>;\n triggers: Signal<HTMLElement[]>;\n hasPopupClose: Signal<boolean>;\n isHoverActive: Signal<boolean>;\n instant: Signal<boolean>;\n openChangeReason: Signal<RdxPopoverOpenChangeReason>;\n isPointerDownOnTrigger: Signal<boolean>;\n /** Whether the current open was initiated by touch (ADR 0016 §3 — gates the anchored scroll lock). */\n openedByTouch: Signal<boolean>;\n close: (reason?: RdxPopoverOpenChangeReason, event?: Event) => void;\n cancelHoverClose: () => void;\n cancelHoverOpen: () => void;\n closeOnHover: () => void;\n payload: Signal<unknown>;\n open: (\n trigger?: HTMLElement,\n payload?: unknown,\n triggerId?: string,\n reason?: RdxPopoverOpenChangeReason,\n event?: Event\n ) => void;\n openOnHover: (trigger: HTMLElement, payload: unknown, triggerId: string, event: PointerEvent) => void;\n registerTrigger: (id: string, trigger: HTMLElement, payload: () => unknown) => () => void;\n setDescriptionId: (id: string | undefined) => void;\n setTitleId: (id: string | undefined) => void;\n setPointerDownOnTrigger: (pointerDown: boolean) => void;\n setOpenedByTouch: (value: boolean) => void;\n setHoverDelays: (delay: number, closeDelay: number) => void;\n registerPopupClose: () => () => void;\n registerTransitionElement: (element: HTMLElement) => () => void;\n transitionStatus: Signal<RdxPopoverTransitionStatus>;\n registerViewport: (onTriggerChange: (previous: HTMLElement, next: HTMLElement) => void) => () => void;\n toggle: (triggerId: string, trigger: HTMLElement, payload?: unknown, event?: Event) => void;\n}\n\nexport const [injectRdxPopoverRootContext, provideRdxPopoverRootContext] = createContext<RdxPopoverRootContext>(\n 'RdxPopoverRootContext',\n 'components/popover'\n);\n\nexport type RdxPopoverTransitionStatus = RdxTransitionStatus;\n\n/**\n * Groups all parts of the popover.\n */\n@Directive({\n selector: '[rdxPopoverRoot]',\n exportAs: 'rdxPopoverRoot',\n providers: [\n provideRdxPopoverRootContext(context),\n // New floating foundation (ADR 0015/0017 migration). Inherit-or-create tree (nested sharing);\n // the per-popup root context bridges open / triggers / reference.\n provideFloatingTree(),\n provideFloatingRootContext(() => inject(RdxPopoverRoot).floatingContext)\n ],\n hostDirectives: [RdxPopper]\n})\nexport class RdxPopoverRoot {\n private readonly popper = inject(RdxPopper);\n private readonly destroyRef = inject(DestroyRef);\n\n /** Shared per-popup floating context (ADR 0015 §1): `open`, trigger registry, reference / floating els. */\n readonly floatingContext: RdxFloatingRootContext = createFloatingRootContext({\n ownerDocument: inject(ElementRef).nativeElement.ownerDocument,\n open: () => this.open()\n });\n private hasAppliedDefaultOpen = false;\n private hasAppliedDefaultTriggerId = false;\n private openTimer: ReturnType<typeof setTimeout> | undefined;\n private closeTimer: ReturnType<typeof setTimeout> | undefined;\n private hoverDelay = 300;\n private hoverCloseDelay = 0;\n private instantFrame: number | undefined;\n private readonly transition = useTransitionStatus((open) => {\n this.instant.set(false);\n this.onOpenChangeComplete.emit(open);\n });\n readonly isHoverActive = signal(false);\n readonly instant = signal(false);\n readonly openChangeReason = signal<RdxPopoverOpenChangeReason>('none');\n readonly transitionStatus = this.transition.status;\n\n /**\n * Whether the popover is currently open.\n */\n readonly open = model(false);\n\n /**\n * Whether the popover is initially open.\n */\n readonly defaultOpen = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * ID of the trigger associated with a controlled popover.\n */\n readonly triggerId = model<string | null>(null);\n\n /**\n * ID of the trigger associated with an initially open uncontrolled popover.\n */\n readonly defaultTriggerId = input<string | null>(null);\n\n /**\n * Determines whether the popover blocks outside interaction or only traps focus.\n */\n readonly modal = input<RdxPopoverModal, BooleanInput | 'trap-focus'>(false, { transform: transformModal });\n\n /**\n * Associates this root with detached trigger elements.\n */\n readonly handle = input<RdxPopoverHandle<any>>();\n\n readonly contentId = injectId('rdx-popover-content-');\n readonly descriptionId = signal<string | undefined>(undefined);\n readonly titleId = signal<string | undefined>(undefined);\n readonly trigger = signal<HTMLElement | undefined>(undefined);\n readonly triggers = signal<HTMLElement[]>([]);\n readonly payload = signal<unknown>(undefined);\n readonly isPointerDownOnTrigger = signal(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 readonly popupCloseCount = signal(0);\n private readonly preventUnmountOnClose = signal(false);\n readonly onOpenChange = output<RdxPopoverOpenChange>();\n readonly onOpenChangeComplete = output<boolean>();\n private readonly registeredTriggers = new Map<string, RdxPopoverRegisteredTrigger>();\n private readonly viewportTriggerChange = new Set<(previous: HTMLElement, next: HTMLElement) => void>();\n\n readonly state = computed(() => (this.open() ? 'open' : 'closed'), { debugName: 'RdxPopoverRoot.state' });\n readonly present = computed(() => this.open() || this.preventUnmountOnClose(), {\n debugName: 'RdxPopoverRoot.present'\n });\n\n constructor() {\n let previousOpen = this.open();\n\n // Keep the floating context's reference element in sync with the active trigger.\n effect(() => this.floatingContext.setReferenceElement(this.trigger() ?? null));\n\n effect(\n () => {\n if (this.open() && this.preventUnmountOnClose()) {\n this.preventUnmountOnClose.set(false);\n }\n },\n { debugName: 'RdxPopoverRoot.clearPreventUnmountOnOpen' }\n );\n\n effect(\n () => {\n const defaultOpen = this.defaultOpen();\n\n if (!this.hasAppliedDefaultOpen && defaultOpen) {\n this.hasAppliedDefaultOpen = true;\n this.open.set(defaultOpen);\n }\n },\n { debugName: 'RdxPopoverRoot.applyDefaultOpen' }\n );\n\n effect(\n () => {\n const defaultTriggerId = this.defaultTriggerId();\n\n if (!this.hasAppliedDefaultTriggerId && defaultTriggerId !== null) {\n this.hasAppliedDefaultTriggerId = true;\n this.triggerId.set(defaultTriggerId);\n }\n },\n { debugName: 'RdxPopoverRoot.applyDefaultTriggerId' }\n );\n\n effect(\n () => {\n const triggerId = this.triggerId();\n untracked(() => this.syncTriggerId(triggerId));\n },\n { debugName: 'RdxPopoverRoot.syncTriggerId' }\n );\n\n effect(\n () => {\n const open = this.open();\n\n if (open !== previousOpen) {\n previousOpen = open;\n untracked(() => this.transition.start(open));\n }\n },\n { debugName: 'RdxPopoverRoot.startTransition' }\n );\n\n effect(\n (onCleanup) => {\n const handle = this.handle();\n\n if (handle) {\n onCleanup(untracked(() => handle.registerRoot(contextFor(this))));\n }\n },\n { debugName: 'RdxPopoverRoot.registerHandle' }\n );\n\n effect(() => this.popper.anchorOverride.set(this.trigger()), {\n debugName: 'RdxPopoverRoot.syncAnchorOverride'\n });\n\n this.destroyRef.onDestroy(() => {\n this.clearHoverTimers();\n\n if (this.instantFrame !== undefined) {\n cancelAnimationFrame(this.instantFrame);\n }\n });\n }\n\n show(\n trigger = this.trigger(),\n payload?: unknown,\n triggerId?: string,\n reason: RdxPopoverOpenChangeReason = 'none',\n event = new Event('popover.open-change'),\n fromHover = false\n ) {\n this.clearHoverTimers();\n const previousTrigger = this.trigger();\n const changedTriggerWhileOpen = this.open() && previousTrigger !== trigger;\n const changed = !this.open() || previousTrigger !== trigger;\n\n if (!changed) {\n this.isHoverActive.set(fromHover);\n this.openChangeReason.set(reason);\n if (triggerId !== undefined) {\n this.triggerId.set(triggerId);\n }\n this.payload.set(payload);\n return;\n }\n\n const change = this.createOpenChangeEvent(true, reason, event, trigger, triggerId ?? this.triggerId());\n this.onOpenChange.emit(change.payload);\n\n if (change.eventDetails.isCanceled()) {\n return;\n }\n\n this.isHoverActive.set(fromHover);\n this.openChangeReason.set(reason);\n this.instant.set(changedTriggerWhileOpen || reason === 'trigger-focus');\n\n if (changedTriggerWhileOpen) {\n this.scheduleInstantReset();\n }\n\n if (trigger) {\n if (previousTrigger && previousTrigger !== trigger) {\n this.viewportTriggerChange.forEach((notify) => notify(previousTrigger, trigger));\n }\n\n this.trigger.set(trigger);\n }\n\n if (triggerId !== undefined) {\n this.triggerId.set(triggerId);\n }\n\n this.payload.set(payload);\n this.preventUnmountOnClose.set(false);\n this.open.set(true);\n this.floatingContext.events.emit('openchange', { open: true, reason, event: change.eventDetails.event });\n }\n\n close(reason: RdxPopoverOpenChangeReason = 'none', event = new Event('popover.open-change')) {\n this.clearHoverTimers();\n\n if (!this.open()) {\n return;\n }\n\n const change = this.createOpenChangeEvent(false, reason, event, this.trigger(), this.triggerId());\n this.onOpenChange.emit(change.payload);\n\n if (change.eventDetails.isCanceled()) {\n return;\n }\n\n this.isHoverActive.set(false);\n this.openedByTouch.set(false);\n this.instant.set(reason !== 'none' && reason !== 'trigger-hover');\n this.openChangeReason.set(reason);\n this.preventUnmountOnClose.set(change.shouldPreventUnmountOnClose());\n this.open.set(false);\n this.floatingContext.events.emit('openchange', { open: false, reason, event: change.eventDetails.event });\n }\n\n toggle(triggerId: string, trigger: HTMLElement, payload?: unknown, event?: Event) {\n this.clearHoverTimers();\n\n if (this.open() && this.trigger() === trigger) {\n this.close('trigger-press', event);\n return;\n }\n\n this.show(trigger, payload, triggerId, 'trigger-press', event);\n }\n\n openOnHover(trigger: HTMLElement, payload: unknown, triggerId: string, event: PointerEvent) {\n this.clearHoverTimers();\n this.isHoverActive.set(true);\n\n if (this.open()) {\n this.show(trigger, payload, triggerId, 'trigger-hover', event, true);\n return;\n }\n\n this.openTimer = setTimeout(\n () => this.show(trigger, payload, triggerId, 'trigger-hover', event, true),\n this.hoverDelay\n );\n }\n\n closeOnHover() {\n if (!this.isHoverActive()) {\n return;\n }\n\n this.clearOpenTimer();\n this.clearCloseTimer();\n this.closeTimer = setTimeout(\n () => this.close('trigger-hover', new Event('popover.hover-close')),\n this.hoverCloseDelay\n );\n }\n\n cancelHoverClose() {\n this.clearCloseTimer();\n }\n\n cancelHoverOpen() {\n this.clearOpenTimer();\n }\n\n setHoverDelays(delay: number, closeDelay: number) {\n this.hoverDelay = delay;\n this.hoverCloseDelay = closeDelay;\n }\n\n registerTrigger(id: string, trigger: HTMLElement, payload: () => unknown) {\n this.registeredTriggers.set(id, { element: trigger, payload });\n this.triggers.update((triggers) => (triggers.includes(trigger) ? triggers : [...triggers, trigger]));\n // Bridge into the floating context's trigger registry (new dismissal/focus inside-element checks).\n this.floatingContext.triggers.add(trigger);\n\n if (this.triggerId() === id) {\n this.trigger.set(trigger);\n this.payload.set(payload());\n } else if (!this.trigger() && this.triggerId() === null) {\n this.trigger.set(trigger);\n this.payload.set(payload());\n }\n\n return () => {\n if (this.registeredTriggers.get(id)?.element === trigger) {\n this.registeredTriggers.delete(id);\n }\n\n this.triggers.update((triggers) => triggers.filter((candidate) => candidate !== trigger));\n this.floatingContext.triggers.delete(trigger);\n\n if (this.destroyRef.destroyed) {\n return;\n }\n\n if (this.trigger() === trigger) {\n const next = this.registeredTriggers.entries().next().value;\n\n if (this.triggerId() !== null) {\n this.triggerId.set(next?.[0] ?? null);\n }\n\n this.trigger.set(next?.[1].element);\n this.payload.set(next?.[1].payload());\n\n if (!next && !this.destroyRef.destroyed) {\n this.close();\n }\n }\n };\n }\n\n registerViewport(onTriggerChange: (previous: HTMLElement, next: HTMLElement) => void) {\n this.viewportTriggerChange.add(onTriggerChange);\n return () => this.viewportTriggerChange.delete(onTriggerChange);\n }\n\n registerTransitionElement(element: HTMLElement) {\n return this.transition.registerElement(element);\n }\n\n private syncTriggerId(triggerId: string | null) {\n if (triggerId === null) {\n this.trigger.set(undefined);\n this.payload.set(undefined);\n return;\n }\n\n const trigger = this.registeredTriggers.get(triggerId);\n\n if (!trigger) {\n this.trigger.set(undefined);\n this.payload.set(undefined);\n return;\n }\n\n if (trigger.element === this.trigger()) {\n return;\n }\n\n const previousTrigger = this.trigger();\n\n if (previousTrigger && this.open()) {\n this.viewportTriggerChange.forEach((notify) => notify(previousTrigger, trigger.element));\n }\n\n this.trigger.set(trigger.element);\n this.payload.set(trigger.payload());\n }\n\n private createOpenChangeEvent(\n open: boolean,\n reason: RdxPopoverOpenChangeReason,\n event: Event,\n trigger: HTMLElement | undefined,\n triggerId: string | null\n ) {\n const change = createCancelableChangeEventDetails(reason, event, trigger);\n\n return {\n eventDetails: change.eventDetails,\n shouldPreventUnmountOnClose: change.shouldPreventUnmountOnClose,\n payload: {\n open,\n triggerId,\n trigger: change.eventDetails.trigger,\n reason: change.eventDetails.reason,\n event: change.eventDetails.event,\n eventDetails: change.eventDetails\n } satisfies RdxPopoverOpenChange\n };\n }\n\n private clearHoverTimers() {\n this.clearOpenTimer();\n this.clearCloseTimer();\n }\n\n private clearOpenTimer() {\n if (this.openTimer !== undefined) {\n clearTimeout(this.openTimer);\n this.openTimer = undefined;\n }\n }\n\n private clearCloseTimer() {\n if (this.closeTimer !== undefined) {\n clearTimeout(this.closeTimer);\n this.closeTimer = undefined;\n }\n }\n\n private scheduleInstantReset() {\n if (this.instantFrame !== undefined) {\n cancelAnimationFrame(this.instantFrame);\n }\n\n this.instantFrame = requestAnimationFrame(() => {\n this.instantFrame = undefined;\n\n if (!this.destroyRef.destroyed && this.open()) {\n this.instant.set(false);\n }\n });\n }\n}\n\nfunction contextFor(root: RdxPopoverRoot): RdxPopoverRootContext {\n return {\n contentId: root.contentId,\n descriptionId: root.descriptionId.asReadonly(),\n isOpen: root.open,\n present: root.present,\n modal: root.modal,\n titleId: root.titleId.asReadonly(),\n trigger: root.trigger.asReadonly(),\n triggers: root.triggers.asReadonly(),\n payload: root.payload.asReadonly(),\n hasPopupClose: computed(() => root.popupCloseCount() > 0),\n isHoverActive: root.isHoverActive.asReadonly(),\n instant: root.instant.asReadonly(),\n openChangeReason: root.openChangeReason.asReadonly(),\n isPointerDownOnTrigger: root.isPointerDownOnTrigger.asReadonly(),\n openedByTouch: root.openedByTouch.asReadonly(),\n close: (reason?: RdxPopoverOpenChangeReason, event?: Event) => root.close(reason, event),\n cancelHoverClose: () => root.cancelHoverClose(),\n cancelHoverOpen: () => root.cancelHoverOpen(),\n closeOnHover: () => root.closeOnHover(),\n open: (trigger, payload, triggerId, reason, event) => root.show(trigger, payload, triggerId, reason, event),\n openOnHover: (trigger, payload, triggerId, event) => root.openOnHover(trigger, payload, triggerId, event),\n registerTrigger: (id, trigger, payload) => root.registerTrigger(id, trigger, payload),\n setDescriptionId: (id: string | undefined) => root.descriptionId.set(id),\n setTitleId: (id: string | undefined) => root.titleId.set(id),\n setPointerDownOnTrigger: (pointerDown: boolean) => root.isPointerDownOnTrigger.set(pointerDown),\n setOpenedByTouch: (value: boolean) => root.openedByTouch.set(value),\n setHoverDelays: (delay: number, closeDelay: number) => root.setHoverDelays(delay, closeDelay),\n registerPopupClose: () => {\n root.popupCloseCount.update((count) => count + 1);\n return () => root.popupCloseCount.update((count) => count - 1);\n },\n registerTransitionElement: (element) => root.registerTransitionElement(element),\n transitionStatus: root.transitionStatus,\n registerViewport: (onTriggerChange) => root.registerViewport(onTriggerChange),\n toggle: (triggerId, trigger, payload, event) => root.toggle(triggerId, trigger, payload, event)\n };\n}\n","import { computed, Directive, inject } from '@angular/core';\nimport { RdxPopperArrow, RdxPopperContentWrapper } from '@radix-ng/primitives/popper';\nimport { injectRdxPopoverRootContext } from './popover-root';\n\n/**\n * An optional arrow element rendered alongside the popover.\n */\n@Directive({\n selector: '[rdxPopoverArrow]',\n hostDirectives: [RdxPopperArrow],\n host: {\n '[attr.data-open]': 'rootContext.isOpen() ? \"\" : undefined',\n '[attr.data-closed]': 'rootContext.isOpen() ? undefined : \"\"',\n '[attr.data-side]': 'side()',\n '[attr.data-align]': 'align()',\n '[attr.data-uncentered]': 'uncentered() ? \"\" : undefined'\n }\n})\nexport class RdxPopoverArrow {\n protected readonly rootContext = injectRdxPopoverRootContext();\n private readonly wrapper = inject(RdxPopperContentWrapper, { optional: true });\n\n protected readonly side = computed(() => this.wrapper?.placedSide());\n protected readonly align = computed(() => this.wrapper?.placedAlign());\n protected readonly uncentered = computed(() => this.wrapper?.arrowUncentered() ?? false);\n}\n","import { DestroyRef, Directive, ElementRef, inject } from '@angular/core';\nimport { RDX_FLOATING_ROOT_CONTEXT } from '@radix-ng/primitives/core';\nimport { injectRdxPopoverRootContext } from './popover-root';\n\n/**\n * An optional backdrop rendered behind the popup.\n */\n@Directive({\n selector: '[rdxPopoverBackdrop]',\n host: {\n '[attr.data-closed]': 'rootContext.isOpen() ? undefined : \"\"',\n '[attr.data-ending-style]': 'rootContext.transitionStatus() === \"ending\" ? \"\" : undefined',\n '[attr.data-instant]': 'rootContext.instant() ? \"\" : undefined',\n '[attr.data-open]': 'rootContext.isOpen() ? \"\" : undefined',\n '[attr.data-starting-style]': 'rootContext.transitionStatus() === \"starting\" ? \"\" : undefined',\n '[attr.data-state]': 'rootContext.isOpen() ? \"open\" : \"closed\"'\n }\n})\nexport class RdxPopoverBackdrop {\n protected readonly rootContext = injectRdxPopoverRootContext();\n\n constructor() {\n // Register the backdrop as owned DOM footprint for primitive-specific checks. The focus manager's\n // marker keep-set stays narrow and does not keep sibling backdrop roots.\n const floatingContext = inject(RDX_FLOATING_ROOT_CONTEXT, { optional: true });\n if (floatingContext) {\n const host = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n floatingContext.addFloatingElement(host);\n inject(DestroyRef).onDestroy(() => floatingContext.removeFloatingElement(host));\n }\n }\n}\n","import { computed, DestroyRef, Directive, ElementRef, inject, output } from '@angular/core';\nimport { outputFromObservable, outputToObservable } from '@angular/core/rxjs-interop';\nimport {\n RDX_FLOATING_REGISTRATION,\n RDX_FLOATING_ROOT_CONTEXT,\n RdxFloatingNodeRegistration,\n useAnchoredScrollLock\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 { RdxFocusScope } from '@radix-ng/primitives/focus-scope';\nimport { RdxPopperContent, RdxPopperContentWrapper } from '@radix-ng/primitives/popper';\nimport { injectRdxPopoverRootContext } from './popover-root';\n\n/**\n * A container for the popover contents.\n *\n * **ADR 0015/0017 Phase-4 migration** onto the new floating dismissal + focus engine (same pattern as\n * Dialog; browser-verified via `popover.behavior` Playwright). Popover-specific:\n * - **Hover-open disables the manager** (`enabled = isOpen && !isHoverActive`) — Base UI parity\n * (`disabled={!mounted || openReason === triggerHover}`); a hover-opened popover does not trap / mark.\n * (The legacy only suppressed auto-focus while still trapping — that Radix divergence is dropped.)\n * - Trap = `'trap-focus' || (modal === true && hasPopupClose())`; scroll lock + real outside `inert`\n * isolation key off the full modal (`modal === true`).\n * - No `disablePointerDismissal` — outside-press + focus-out always close.\n *\n * Note: a positioned popover does **not** auto-focus into the popup on open (pre-existing — the legacy\n * behaved the same; verified). The trap holds focus once it is inside. Auto-focus-on-open + redirecting a\n * Tab from the trigger into the popup needs the deferred portal-focus bridge / guards (ADR 0017 §6a).\n */\n@Directive({\n selector: '[rdxPopoverPopup]',\n hostDirectives: [RdxPopperContent, RdxFloatingNodeRegistration, RdxFloatingFocusManager],\n providers: [\n provideFloatingFocusManagerConfig(() => {\n const rootContext = injectRdxPopoverRootContext();\n return {\n modal: () =>\n rootContext.modal() === 'trap-focus' ||\n (rootContext.modal() === true && rootContext.hasPopupClose()),\n // Full modal blocks outside pointer interaction; `trap-focus` only traps focus.\n inert: () => rootContext.modal() === true && rootContext.hasPopupClose(),\n // Active for the whole MOUNTED lifetime (Base UI `disabled={!mounted}`, not `open`) for\n // trap/return-focus — including an explicit `preventUnmountOnClose()` cycle after the\n // exit transition. Marker + isolation are additionally gated on `open` inside the\n // manager. Still suppressed while hover-opened.\n enabled: () => rootContext.present() && !rootContext.isHoverActive()\n };\n })\n ],\n host: {\n role: 'dialog',\n '[attr.aria-describedby]': 'rootContext.descriptionId()',\n '[attr.aria-labelledby]': 'rootContext.titleId()',\n '[attr.data-closed]': 'rootContext.isOpen() ? undefined : \"\"',\n '[attr.data-ending-style]': 'rootContext.transitionStatus() === \"ending\" ? \"\" : undefined',\n '[attr.data-instant]': 'rootContext.instant() ? \"\" : undefined',\n '[attr.data-open]': 'rootContext.isOpen() ? \"\" : undefined',\n '[attr.data-starting-style]': 'rootContext.transitionStatus() === \"starting\" ? \"\" : undefined',\n '[attr.data-state]': 'rootContext.isOpen() ? \"open\" : \"closed\"',\n '[attr.data-align]': 'align()',\n '[attr.data-side]': 'side()',\n '[id]': 'rootContext.contentId',\n '(pointerenter)': 'rootContext.cancelHoverClose()'\n }\n})\nexport class RdxPopoverPopup {\n protected readonly rootContext = injectRdxPopoverRootContext();\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n private readonly floatingContext = inject(RDX_FLOATING_ROOT_CONTEXT);\n private readonly registration = inject(RDX_FLOATING_REGISTRATION, { optional: true });\n private readonly focusManager = inject(RdxFloatingFocusManager);\n private readonly focusScope = inject(RdxFocusScope);\n private readonly wrapper = inject(RdxPopperContentWrapper, { optional: true });\n protected readonly align = computed(() => this.wrapper?.placedAlign());\n protected readonly side = computed(() => this.wrapper?.placedSide());\n\n /** Event handler called when the escape key is down. Can be prevented. */\n readonly escapeKeyDown = output<KeyboardEvent>();\n\n /** Event handler called when a pointerdown event happens outside of the popup. Can be prevented. */\n readonly pointerDownOutside = output<RdxOutsidePressDomEvent>();\n\n /** Event handler called when focus moves outside of the popup. Can be prevented. */\n readonly focusOutside = output<FocusEvent>();\n\n /** Event handler called when an interaction (pointer / focus) happens outside of the popup. */\n readonly interactOutside = output<RdxOutsidePressDomEvent | FocusEvent>();\n\n /** Event handler called before focus moves into the popup. Can be prevented. */\n readonly openAutoFocus = outputFromObservable(outputToObservable(this.focusScope.mountAutoFocus));\n\n /** Event handler called before focus returns after the popup is removed. Can be prevented. */\n readonly closeAutoFocus = outputFromObservable(outputToObservable(this.focusScope.unmountAutoFocus));\n\n constructor() {\n this.floatingContext.setFloatingElement(this.host);\n\n // Background pointer/AT isolation for a full modal is the focus manager's `inert` pass (finding\n // #4), not a global body lock; only the page scroll lock stays here. Activation policy (ADR 0016\n // §2): lock only while a `modal === true` popover is OPEN and was **not** hover-opened, gated on\n // `open` (not mounted) so it releases at close-start. For a **touch** open the anchored helper only\n // locks when the popup is effectively viewport-width (a small popover stays swipe-to-dismissable on\n // mobile, §3).\n useAnchoredScrollLock(\n computed(\n () =>\n this.rootContext.isOpen() && this.rootContext.modal() === true && !this.rootContext.isHoverActive()\n ),\n {\n touchOpen: () => this.rootContext.openedByTouch(),\n element: () => this.host\n }\n );\n\n const unregisterTransitionElement = this.rootContext.registerTransitionElement(this.host);\n inject(DestroyRef).onDestroy(unregisterTransitionElement);\n\n // A hover-opened popover must not steal focus — suppress the composed focus scope's auto-focus.\n this.focusScope.mountAutoFocus.subscribe((event) => {\n if (this.rootContext.isHoverActive()) {\n event.preventDefault();\n }\n });\n\n // Dismissal: Escape + outside-press always close (no pointer-dismissal opt-out). Focus-out is\n // owned by the focus manager (below), so the capability's own focus-out is disabled.\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) => {\n this.pointerDownOutside.emit(event);\n this.interactOutside.emit(event);\n },\n onDismiss: (reason, event) => {\n this.rootContext.close(reason === 'escape-key' ? 'escape-key' : 'outside-press', event);\n }\n });\n\n // Focus-out close (ADR 0017 §3) — re-expose as `focusOutside` (preventable) and close unless vetoed.\n this.focusManager.focusOut.subscribe((event) => {\n this.focusOutside.emit(event);\n this.interactOutside.emit(event);\n if (!event.defaultPrevented) {\n this.rootContext.close('focus-out', event);\n }\n });\n }\n}\n","import { DestroyRef, Directive, inject } from '@angular/core';\nimport { RdxPopoverPopup } from './popover-popup';\nimport { injectRdxPopoverRootContext } from './popover-root';\n\n/**\n * A button that closes the popover.\n */\n@Directive({\n selector: 'button[rdxPopoverClose]',\n host: {\n type: 'button',\n '(click)': 'rootContext.close(\"close-press\", $event)'\n }\n})\nexport class RdxPopoverClose {\n protected readonly rootContext = injectRdxPopoverRootContext();\n\n constructor() {\n if (inject(RdxPopoverPopup, { optional: true })) {\n const unregister = this.rootContext.registerPopupClose();\n inject(DestroyRef).onDestroy(unregister);\n }\n }\n}\n","import { DestroyRef, Directive, inject } from '@angular/core';\nimport { injectId } from '@radix-ng/primitives/core';\nimport { injectRdxPopoverRootContext } from './popover-root';\n\n/**\n * An accessible description for the popover.\n */\n@Directive({\n selector: '[rdxPopoverDescription]',\n host: {\n '[id]': 'id'\n }\n})\nexport class RdxPopoverDescription {\n private readonly rootContext = injectRdxPopoverRootContext();\n readonly id = injectId('rdx-popover-description-');\n\n constructor() {\n this.rootContext.setDescriptionId(this.id);\n inject(DestroyRef).onDestroy(() => this.rootContext.setDescriptionId(undefined));\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 { injectRdxPopoverRootContext } from './popover-root';\n\n/**\n * Structural directive that teleports the popover content into a container (default `document.body`)\n * while the popover is open, and keeps it mounted until any CSS exit `@keyframes` finishes.\n *\n * Apply it with the `*` microsyntax on the positioner — `<div *rdxPopoverPortal rdxPopoverPositioner>`\n * — or as an explicit `<ng-template rdxPopoverPortal>`. For a custom container use the explicit form\n * with `[container]`.\n */\n@Directive({\n selector: 'ng-template[rdxPopoverPortal]',\n exportAs: 'rdxPopoverPortal',\n hostDirectives: [{ directive: RdxPortalPresence, inputs: ['container'] }],\n providers: [provideRdxPresenceContext(() => ({ present: injectRdxPopoverRootContext().present }))]\n})\nexport class RdxPopoverPortal {}\n\n/**\n * Dev-mode guard: `rdxPopoverPortal` used to be an attribute directive on a `<div>`. It is now\n * structural, so the old `<div rdxPopoverPortal>` markup would silently stop portaling — fail loudly\n * instead.\n */\n@Directive({\n selector: '[rdxPopoverPortal]:not(ng-template)'\n})\nexport class RdxPopoverPortalMisuseGuard {\n constructor() {\n if (isDevMode()) {\n rdxDevError(\n 'popover/portal-on-element',\n '`rdxPopoverPortal` is now a structural directive. ' +\n 'Use `*rdxPopoverPortal` on the positioner element or `<ng-template rdxPopoverPortal>`. ' +\n 'rdxPopoverPortalPresence has been removed.',\n 'components/popover'\n );\n }\n }\n}\n","import { Directive, effect, ElementRef, inject, signal } from '@angular/core';\nimport { useGraceArea } from '@radix-ng/primitives/core';\nimport {\n legacyPopperVars,\n provideRdxPopperContentConfig,\n provideRdxPopperContentWrapper,\n RdxPopperContentWrapper\n} from '@radix-ng/primitives/popper';\nimport { injectRdxPopoverRootContext } from './popover-root';\n\n/**\n * Positions the popover against its trigger.\n *\n * A \"thin\" positioner (ADR 0012): it inherits the popper positioning surface (inputs, `placed`\n * output, unified vars + placement attrs) from {@link RdxPopperContentWrapper} and adds popover's own\n * concerns — Base UI-aligned defaults via the config provider, the open/closed/instant state\n * attributes, the deprecated `--radix-popover-*` aliases, and the grace-area hover bridge.\n */\n@Directive({\n selector: '[rdxPopoverPositioner]',\n providers: [\n ...provideRdxPopperContentWrapper(RdxPopoverPositioner),\n provideRdxPopperContentConfig({ arrowPadding: 5, collisionPadding: 5, updatePositionStrategy: 'always' })\n ],\n host: {\n '[attr.data-open]': 'rootContext.isOpen() ? \"\" : undefined',\n '[attr.data-closed]': 'rootContext.isOpen() ? undefined : \"\"',\n '[attr.data-instant]': 'rootContext.instant() ? \"\" : undefined',\n // `data-side`/`data-align`/`data-anchor-hidden` and the unified `--anchor-*`/`--available-*`/\n // `--transform-origin` vars come from the inherited wrapper (ADR 0012); only the deprecated\n // `--radix-popover-*` aliases remain, for one release of back-compat.\n '[style]': 'legacyVars'\n }\n})\nexport class RdxPopoverPositioner extends RdxPopperContentWrapper {\n protected readonly rootContext = injectRdxPopoverRootContext();\n protected readonly legacyVars = legacyPopperVars('popover');\n private readonly containerRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly triggerEl = signal<HTMLElement | null>(null);\n private readonly containerEl = signal<HTMLElement | null>(this.containerRef.nativeElement);\n private readonly graceArea = useGraceArea(this.triggerEl, this.containerEl);\n\n constructor() {\n super();\n\n effect(() => this.triggerEl.set(this.rootContext.trigger() ?? null));\n\n this.graceArea.onPointerExit(() => {\n this.rootContext.closeOnHover();\n });\n }\n}\n","import { DestroyRef, Directive, inject } from '@angular/core';\nimport { injectId } from '@radix-ng/primitives/core';\nimport { injectRdxPopoverRootContext } from './popover-root';\n\n/**\n * An accessible title for the popover.\n */\n@Directive({\n selector: '[rdxPopoverTitle]',\n host: {\n '[id]': 'id'\n }\n})\nexport class RdxPopoverTitle {\n private readonly rootContext = injectRdxPopoverRootContext();\n readonly id = injectId('rdx-popover-title-');\n\n constructor() {\n this.rootContext.setTitleId(this.id);\n inject(DestroyRef).onDestroy(() => this.rootContext.setTitleId(undefined));\n }\n}\n","import {\n booleanAttribute,\n computed,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n numberAttribute,\n untracked\n} from '@angular/core';\nimport { injectId, NumberInput } from '@radix-ng/primitives/core';\nimport { RdxPopperAnchor } from '@radix-ng/primitives/popper';\nimport { RdxPopoverHandle } from './popover-handle';\nimport { injectRdxPopoverRootContext } from './popover-root';\n\n/**\n * A button that opens the popover.\n */\n@Directive({\n selector: 'button[rdxPopoverTrigger]',\n hostDirectives: [RdxPopperAnchor],\n host: {\n type: 'button',\n '[attr.aria-controls]': 'rootContext()?.contentId',\n '[attr.aria-expanded]': 'isOpen()',\n '[attr.aria-haspopup]': '\"dialog\"',\n '[attr.data-state]': 'isOpen() ? \"open\" : \"closed\"',\n '[attr.data-popup-open]': 'isOpen() ? \"\" : undefined',\n '[attr.data-pressed]': 'isPressed() ? \"\" : undefined',\n '[attr.disabled]': 'disabled() ? \"\" : undefined',\n '[id]': 'triggerId()',\n '(click)': 'handleClick($event)',\n '(pointerenter)': 'handlePointerEnter($event)',\n '(pointerleave)': 'handlePointerLeave($event)',\n '(pointerdown)': 'handlePointerDown($event)',\n '(pointerup)': 'handlePointerUp()',\n '(pointercancel)': 'handlePointerUp()'\n }\n})\nexport class RdxPopoverTrigger {\n private readonly parentRootContext = injectRdxPopoverRootContext(true);\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** Pointer type of the most recent `pointerdown`, used to detect a touch open (ADR 0016 §3). */\n private lastPointerType = '';\n\n /**\n * Associates this trigger with a detached popover root.\n */\n readonly handle = input<RdxPopoverHandle<any>>();\n\n /**\n * Data associated with this trigger while it is active.\n */\n readonly payload = input<unknown>();\n\n /**\n * ID used to identify this trigger when opening a detached popover imperatively.\n */\n readonly id = input<string>();\n\n /**\n * Whether the trigger should ignore user interaction.\n */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Whether the popover should also open when this trigger is hovered.\n */\n readonly openOnHover = input(false, { transform: booleanAttribute });\n\n /**\n * How long to wait before opening the popover on hover, in milliseconds.\n */\n readonly delay = input<number, NumberInput>(300, { transform: numberAttribute });\n\n /**\n * How long to wait before closing a hover-opened popover, in milliseconds.\n */\n readonly closeDelay = input<number, NumberInput>(0, { transform: numberAttribute });\n\n protected readonly triggerId = computed(() => this.id() ?? this.generatedId);\n protected readonly rootContext = computed(() => this.handle()?.context() ?? this.parentRootContext);\n protected readonly isOpen = computed(\n () => this.rootContext()?.isOpen() === true && this.rootContext()?.trigger() === this.elementRef.nativeElement\n );\n protected readonly isPressed = computed(\n () => this.isOpen() && this.rootContext()?.openChangeReason() === 'trigger-press'\n );\n private readonly generatedId = injectId('rdx-popover-trigger-');\n\n constructor() {\n effect((onCleanup) => {\n const handle = this.handle();\n\n if (handle) {\n onCleanup(\n untracked(() =>\n handle.registerTrigger(this.triggerId(), this.elementRef.nativeElement, () => this.payload())\n )\n );\n } else if (this.parentRootContext) {\n onCleanup(\n untracked(() =>\n this.parentRootContext!.registerTrigger(this.triggerId(), this.elementRef.nativeElement, () =>\n this.payload()\n )\n )\n );\n }\n });\n }\n\n protected handleClick(event: MouseEvent) {\n if (this.disabled()) {\n return;\n }\n\n // Record whether this open is a touch tap (ADR 0016 §3). `detail === 0` is a keyboard-activated\n // click (no preceding pointerdown), which must read non-touch regardless of the last pointer type.\n this.rootContext()?.setOpenedByTouch(event.detail !== 0 && this.lastPointerType === 'touch');\n this.rootContext()?.setPointerDownOnTrigger(false);\n\n if (this.handle()) {\n this.handle()!.toggle(this.triggerId(), event);\n } else {\n this.parentRootContext?.toggle(this.triggerId(), this.elementRef.nativeElement, this.payload(), event);\n }\n }\n\n protected handlePointerEnter(event: PointerEvent) {\n const rootContext = this.rootContext();\n\n if (event.pointerType === 'touch' || !rootContext || this.disabled() || !this.openOnHover()) {\n return;\n }\n\n rootContext.setHoverDelays(this.delay(), this.closeDelay());\n rootContext.openOnHover(this.elementRef.nativeElement, this.payload(), this.triggerId(), event);\n }\n\n protected handlePointerLeave(event: PointerEvent) {\n if (event.pointerType === 'touch' || !this.openOnHover()) {\n return;\n }\n\n this.rootContext()?.cancelHoverOpen();\n }\n\n protected handlePointerDown(event: PointerEvent) {\n this.lastPointerType = event.pointerType;\n this.rootContext()?.setPointerDownOnTrigger(true);\n }\n\n protected handlePointerUp() {\n this.rootContext()?.setPointerDownOnTrigger(false);\n }\n}\n","import { afterNextRender, DestroyRef, Directive, ElementRef, inject, signal } from '@angular/core';\nimport { injectRdxPopoverRootContext } from './popover-root';\n\n/**\n * A viewport for animating content changes when a popover moves between triggers.\n *\n * Render one direct child inside the viewport. It is marked with `data-current`;\n * when the active trigger changes, a DOM snapshot is retained as `data-previous`\n * until its CSS animation or transition completes.\n */\n@Directive({\n selector: '[rdxPopoverViewport]',\n host: {\n '[attr.data-activation-direction]': 'activationDirection()',\n '[attr.data-transitioning]': 'transitioning() ? \"\" : undefined'\n }\n})\nexport class RdxPopoverViewport {\n private readonly rootContext = injectRdxPopoverRootContext();\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly destroyRef = inject(DestroyRef);\n private previous: HTMLElement | undefined;\n private cleanupTimer: ReturnType<typeof setTimeout> | undefined;\n private observer: MutationObserver | undefined;\n\n protected readonly activationDirection = signal<string | undefined>(undefined);\n protected readonly transitioning = signal(false);\n\n constructor() {\n const unregister = this.rootContext.registerViewport((previousTrigger, nextTrigger) => {\n this.startTransition(previousTrigger, nextTrigger);\n });\n\n afterNextRender(() => {\n this.markCurrent();\n\n this.observer = new MutationObserver(() => this.markCurrent());\n this.observer.observe(this.elementRef.nativeElement, { childList: true });\n });\n\n this.destroyRef.onDestroy(() => {\n unregister();\n this.observer?.disconnect();\n this.cleanupPrevious();\n });\n }\n\n private startTransition(previousTrigger: HTMLElement, nextTrigger: HTMLElement) {\n const current = this.current();\n\n if (!current) {\n return;\n }\n\n this.cleanupPrevious();\n this.activationDirection.set(getActivationDirection(previousTrigger, nextTrigger));\n\n const previous = current.cloneNode(true) as HTMLElement;\n const popup = this.elementRef.nativeElement.closest('[rdxPopoverPopup]');\n const popupRect = popup?.getBoundingClientRect();\n\n previous.removeAttribute('data-current');\n previous.setAttribute('data-previous', '');\n previous.setAttribute('aria-hidden', 'true');\n previous.setAttribute('inert', '');\n removeIds(previous);\n\n if (popupRect) {\n previous.style.setProperty('--popup-width', `${popupRect.width}px`);\n previous.style.setProperty('--popup-height', `${popupRect.height}px`);\n }\n\n previous.addEventListener('animationend', () => this.cleanupPrevious(), { once: true });\n previous.addEventListener('transitionend', () => this.cleanupPrevious(), { once: true });\n\n this.previous = previous;\n this.elementRef.nativeElement.insertBefore(previous, current);\n this.transitioning.set(true);\n\n queueMicrotask(() => this.scheduleCleanup(previous));\n }\n\n private markCurrent() {\n this.current()?.setAttribute('data-current', '');\n }\n\n private current() {\n return Array.from(this.elementRef.nativeElement.children).find(\n (child): child is HTMLElement => child instanceof HTMLElement && !child.hasAttribute('data-previous')\n );\n }\n\n private scheduleCleanup(previous: HTMLElement) {\n if (this.previous !== previous) {\n return;\n }\n\n const style = getComputedStyle(previous);\n const duration = Math.max(\n getMaxDuration(style.animationDuration, style.animationDelay),\n getMaxDuration(style.transitionDuration, style.transitionDelay)\n );\n\n this.cleanupTimer = setTimeout(() => this.cleanupPrevious(), duration > 0 ? duration + 50 : 0);\n }\n\n private cleanupPrevious() {\n if (this.cleanupTimer !== undefined) {\n clearTimeout(this.cleanupTimer);\n this.cleanupTimer = undefined;\n }\n\n this.previous?.remove();\n this.previous = undefined;\n this.transitioning.set(false);\n }\n}\n\nfunction getActivationDirection(previous: HTMLElement, next: HTMLElement) {\n const previousRect = previous.getBoundingClientRect();\n const nextRect = next.getBoundingClientRect();\n const previousCenter = getCenter(previousRect);\n const nextCenter = getCenter(nextRect);\n const directions: string[] = [];\n\n if (nextCenter.x < previousCenter.x) {\n directions.push('left');\n } else if (nextCenter.x > previousCenter.x) {\n directions.push('right');\n }\n\n if (nextCenter.y < previousCenter.y) {\n directions.push('up');\n } else if (nextCenter.y > previousCenter.y) {\n directions.push('down');\n }\n\n return directions.join(' ') || undefined;\n}\n\nfunction removeIds(element: HTMLElement) {\n element.removeAttribute('id');\n element.querySelectorAll('[id]').forEach((child) => child.removeAttribute('id'));\n}\n\nfunction getCenter(rect: DOMRect) {\n return { x: rect.left + rect.width / 2, y: rect.top + rect.height / 2 };\n}\n\nfunction getMaxDuration(durations: string, delays: string) {\n const durationValues = durations.split(',').map(parseDuration);\n const delayValues = delays.split(',').map(parseDuration);\n\n return durationValues.reduce((max, duration, index) => {\n const delay = delayValues[index % delayValues.length] ?? 0;\n return Math.max(max, duration + delay);\n }, 0);\n}\n\nfunction parseDuration(value: string) {\n const duration = Number.parseFloat(value);\n\n if (Number.isNaN(duration)) {\n return 0;\n }\n\n return value.trim().endsWith('ms') ? duration : duration * 1000;\n}\n","import { computed, signal } from '@angular/core';\nimport type { RdxPopoverRootContext } from './popover-root';\n\n/**\n * Connects a popover root with trigger elements rendered elsewhere in the DOM.\n */\ninterface RdxPopoverHandleTrigger<Payload> {\n element: HTMLElement;\n payload: () => Payload | undefined;\n}\n\nexport class RdxPopoverHandle<Payload = unknown> {\n private readonly rootContext = signal<RdxPopoverRootContext | undefined>(undefined);\n private readonly triggers = new Map<string, RdxPopoverHandleTrigger<Payload>>();\n private readonly rootTriggerCleanups = new Map<string, () => void>();\n\n readonly isOpen = computed(() => this.rootContext()?.isOpen() ?? false);\n\n open(triggerId: string) {\n const trigger = this.triggers.get(triggerId);\n\n if (!trigger) {\n throw new Error(`No popover trigger registered with id \"${triggerId}\".`);\n }\n\n this.rootContext()?.open(\n trigger.element,\n trigger.payload(),\n triggerId,\n 'imperative-action',\n new Event('popover.open')\n );\n }\n\n close() {\n this.rootContext()?.close('imperative-action', new Event('popover.close'));\n }\n\n toggle(triggerId: string, event = new Event('popover.toggle')) {\n const trigger = this.triggers.get(triggerId);\n\n if (!trigger) {\n throw new Error(`No popover trigger registered with id \"${triggerId}\".`);\n }\n\n this.rootContext()?.toggle(triggerId, trigger.element, trigger.payload(), event);\n }\n\n registerRoot(rootContext: RdxPopoverRootContext) {\n this.rootContext.set(rootContext);\n this.triggers.forEach((trigger, id) => {\n this.rootTriggerCleanups.set(id, rootContext.registerTrigger(id, trigger.element, trigger.payload));\n });\n\n return () => {\n if (this.rootContext() === rootContext) {\n this.rootTriggerCleanups.forEach((cleanup) => cleanup());\n this.rootTriggerCleanups.clear();\n this.rootContext.set(undefined);\n }\n };\n }\n\n registerTrigger(id: string, trigger: HTMLElement, payload: () => Payload | undefined) {\n this.rootTriggerCleanups.get(id)?.();\n this.triggers.set(id, { element: trigger, payload });\n const unregisterFromRoot = this.rootContext()?.registerTrigger(id, trigger, payload);\n\n if (unregisterFromRoot) {\n this.rootTriggerCleanups.set(id, unregisterFromRoot);\n }\n\n return () => {\n this.rootTriggerCleanups.get(id)?.();\n this.rootTriggerCleanups.delete(id);\n\n if (this.triggers.get(id)?.element === trigger) {\n this.triggers.delete(id);\n }\n };\n }\n\n context() {\n return this.rootContext();\n }\n}\n\nexport function createRdxPopoverHandle<Payload = unknown>() {\n return new RdxPopoverHandle<Payload>();\n}\n","import { NgModule } from '@angular/core';\nimport { RdxPopoverArrow } from './src/popover-arrow';\nimport { RdxPopoverBackdrop } from './src/popover-backdrop';\nimport { RdxPopoverClose } from './src/popover-close';\nimport { RdxPopoverDescription } from './src/popover-description';\nimport { RdxPopoverPopup } from './src/popover-popup';\nimport { RdxPopoverPortal, RdxPopoverPortalMisuseGuard } from './src/popover-portal';\nimport { RdxPopoverPositioner } from './src/popover-positioner';\nimport { RdxPopoverRoot } from './src/popover-root';\nimport { RdxPopoverTitle } from './src/popover-title';\nimport { RdxPopoverTrigger } from './src/popover-trigger';\nimport { RdxPopoverViewport } from './src/popover-viewport';\n\nexport * from './src/popover-arrow';\nexport * from './src/popover-backdrop';\nexport * from './src/popover-close';\nexport * from './src/popover-description';\nexport * from './src/popover-handle';\nexport * from './src/popover-popup';\nexport * from './src/popover-portal';\nexport * from './src/popover-positioner';\nexport * from './src/popover-root';\nexport * from './src/popover-title';\nexport * from './src/popover-trigger';\nexport * from './src/popover-viewport';\n\nexport const popoverImports = [\n RdxPopoverRoot,\n RdxPopoverTrigger,\n RdxPopoverPortal,\n RdxPopoverPortalMisuseGuard,\n RdxPopoverBackdrop,\n RdxPopoverPositioner,\n RdxPopoverPopup,\n RdxPopoverArrow,\n RdxPopoverTitle,\n RdxPopoverDescription,\n RdxPopoverClose,\n RdxPopoverViewport\n];\n\n@NgModule({\n imports: [...popoverImports],\n exports: [...popoverImports]\n})\nexport class RdxPopoverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"radix-ng-primitives-popover.mjs","sources":["../../../packages/primitives/popover/src/popover-root.ts","../../../packages/primitives/popover/src/popover-arrow.ts","../../../packages/primitives/popover/src/popover-backdrop.ts","../../../packages/primitives/popover/src/popover-popup.ts","../../../packages/primitives/popover/src/popover-close.ts","../../../packages/primitives/popover/src/popover-description.ts","../../../packages/primitives/popover/src/popover-portal.ts","../../../packages/primitives/popover/src/popover-positioner.ts","../../../packages/primitives/popover/src/popover-title.ts","../../../packages/primitives/popover/src/popover-trigger.ts","../../../packages/primitives/popover/src/popover-viewport.ts","../../../packages/primitives/popover/src/popover-handle.ts","../../../packages/primitives/popover/index.ts","../../../packages/primitives/popover/radix-ng-primitives-popover.ts"],"sourcesContent":["import {\n booleanAttribute,\n computed,\n DestroyRef,\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 BooleanInput,\n createCancelableChangeEventDetails,\n createContext,\n createFloatingRootContext,\n injectId,\n provideFloatingRootContext,\n provideFloatingTree,\n RdxCancelableChangeEventDetails,\n RdxFloatingRootContext,\n RdxTransitionStatus,\n useTransitionStatus\n} from '@radix-ng/primitives/core';\nimport { getInteractionTypeFromEvent, RdxInteractionType } from '@radix-ng/primitives/floating-focus-manager';\nimport { RdxPopper } from '@radix-ng/primitives/popper';\nimport { RdxPopoverHandle } from './popover-handle';\n\nexport type RdxPopoverModal = boolean | 'trap-focus';\nexport type RdxPopoverOpenChangeReason =\n | 'trigger-hover'\n | 'trigger-focus'\n | 'trigger-press'\n | 'outside-press'\n | 'escape-key'\n | 'close-press'\n | 'focus-out'\n | 'imperative-action'\n | 'none';\n\nexport type RdxPopoverOpenChangeEventDetails = RdxCancelableChangeEventDetails<RdxPopoverOpenChangeReason>;\n\nexport interface RdxPopoverOpenChange {\n open: boolean;\n triggerId: string | null;\n trigger: HTMLElement | undefined;\n reason: RdxPopoverOpenChangeReason;\n event: Event;\n eventDetails: RdxPopoverOpenChangeEventDetails;\n}\n\ninterface RdxPopoverRegisteredTrigger {\n element: HTMLElement;\n payload: () => unknown;\n}\n\nconst transformModal = (value: BooleanInput | 'trap-focus'): RdxPopoverModal =>\n value === 'trap-focus' ? value : booleanAttribute(value);\n\nconst context = () => contextFor(inject(RdxPopoverRoot));\n\nexport interface RdxPopoverRootContext {\n contentId: string;\n descriptionId: Signal<string | undefined>;\n isOpen: Signal<boolean>;\n present: Signal<boolean>;\n modal: Signal<RdxPopoverModal>;\n titleId: Signal<string | undefined>;\n trigger: Signal<HTMLElement | undefined>;\n triggers: Signal<HTMLElement[]>;\n hasPopupClose: Signal<boolean>;\n isHoverActive: Signal<boolean>;\n instant: Signal<boolean>;\n openChangeReason: Signal<RdxPopoverOpenChangeReason>;\n isPointerDownOnTrigger: Signal<boolean>;\n /** Whether the current open was initiated by touch (ADR 0016 §3 — gates the anchored scroll lock). */\n openedByTouch: Signal<boolean>;\n openInteractionType: Signal<RdxInteractionType>;\n closeInteractionType: Signal<RdxInteractionType>;\n close: (reason?: RdxPopoverOpenChangeReason, event?: Event) => void;\n cancelHoverClose: () => void;\n cancelHoverOpen: () => void;\n closeOnHover: () => void;\n payload: Signal<unknown>;\n open: (\n trigger?: HTMLElement,\n payload?: unknown,\n triggerId?: string,\n reason?: RdxPopoverOpenChangeReason,\n event?: Event\n ) => void;\n openOnHover: (trigger: HTMLElement, payload: unknown, triggerId: string, event: PointerEvent) => void;\n registerTrigger: (id: string, trigger: HTMLElement, payload: () => unknown) => () => void;\n setDescriptionId: (id: string | undefined) => void;\n setTitleId: (id: string | undefined) => void;\n setPointerDownOnTrigger: (pointerDown: boolean) => void;\n setOpenedByTouch: (value: boolean) => void;\n setTriggerOpenInteractionType: (type: RdxInteractionType) => void;\n setHoverDelays: (delay: number, closeDelay: number) => void;\n registerPopupClose: () => () => void;\n registerTransitionElement: (element: HTMLElement) => () => void;\n transitionStatus: Signal<RdxPopoverTransitionStatus>;\n beforeContentFocusGuard: Signal<HTMLElement | null>;\n registerViewport: (onTriggerChange: (previous: HTMLElement, next: HTMLElement) => void) => () => void;\n setBeforeContentFocusGuard: (element: HTMLElement | null) => void;\n toggle: (triggerId: string, trigger: HTMLElement, payload?: unknown, event?: Event) => void;\n}\n\nexport const [injectRdxPopoverRootContext, provideRdxPopoverRootContext] = createContext<RdxPopoverRootContext>(\n 'RdxPopoverRootContext',\n 'components/popover'\n);\n\nexport type RdxPopoverTransitionStatus = RdxTransitionStatus;\n\n/**\n * Groups all parts of the popover.\n */\n@Directive({\n selector: '[rdxPopoverRoot]',\n exportAs: 'rdxPopoverRoot',\n providers: [\n provideRdxPopoverRootContext(context),\n // New floating foundation (ADR 0015/0017 migration). Inherit-or-create tree (nested sharing);\n // the per-popup root context bridges open / triggers / reference.\n provideFloatingTree(),\n provideFloatingRootContext(() => inject(RdxPopoverRoot).floatingContext)\n ],\n hostDirectives: [RdxPopper]\n})\nexport class RdxPopoverRoot {\n private readonly popper = inject(RdxPopper);\n private readonly destroyRef = inject(DestroyRef);\n\n /** Shared per-popup floating context (ADR 0015 §1): `open`, trigger registry, reference / floating els. */\n readonly floatingContext: RdxFloatingRootContext = createFloatingRootContext({\n ownerDocument: inject(ElementRef).nativeElement.ownerDocument,\n open: () => this.open()\n });\n private hasAppliedDefaultOpen = false;\n private hasAppliedDefaultTriggerId = false;\n private openTimer: ReturnType<typeof setTimeout> | undefined;\n private closeTimer: ReturnType<typeof setTimeout> | undefined;\n private hoverDelay = 300;\n private hoverCloseDelay = 0;\n private instantFrame: number | undefined;\n private readonly transition = useTransitionStatus((open) => {\n this.instant.set(false);\n this.onOpenChangeComplete.emit(open);\n });\n readonly isHoverActive = signal(false);\n readonly instant = signal(false);\n readonly openChangeReason = signal<RdxPopoverOpenChangeReason>('none');\n readonly transitionStatus = this.transition.status;\n\n /**\n * Whether the popover is currently open.\n */\n readonly open = model(false);\n\n /**\n * Whether the popover is initially open.\n */\n readonly defaultOpen = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * ID of the trigger associated with a controlled popover.\n */\n readonly triggerId = model<string | null>(null);\n\n /**\n * ID of the trigger associated with an initially open uncontrolled popover.\n */\n readonly defaultTriggerId = input<string | null>(null);\n\n /**\n * Determines whether the popover blocks outside interaction or only traps focus.\n */\n readonly modal = input<RdxPopoverModal, BooleanInput | 'trap-focus'>(false, { transform: transformModal });\n\n /**\n * Associates this root with detached trigger elements.\n */\n readonly handle = input<RdxPopoverHandle<any>>();\n\n readonly contentId = injectId('rdx-popover-content-');\n readonly beforeContentFocusGuard = signal<HTMLElement | null>(null);\n readonly descriptionId = signal<string | undefined>(undefined);\n readonly titleId = signal<string | undefined>(undefined);\n readonly trigger = signal<HTMLElement | undefined>(undefined);\n readonly triggers = signal<HTMLElement[]>([]);\n readonly payload = signal<unknown>(undefined);\n readonly isPointerDownOnTrigger = signal(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 readonly openInteractionType = signal<RdxInteractionType>(null);\n readonly closeInteractionType = signal<RdxInteractionType>(null);\n readonly popupCloseCount = signal(0);\n private readonly preventUnmountOnClose = signal(false);\n private readonly pendingTriggerOpenInteractionType = signal<RdxInteractionType>(null);\n readonly onOpenChange = output<RdxPopoverOpenChange>();\n readonly onOpenChangeComplete = output<boolean>();\n private readonly registeredTriggers = new Map<string, RdxPopoverRegisteredTrigger>();\n private readonly viewportTriggerChange = new Set<(previous: HTMLElement, next: HTMLElement) => void>();\n\n readonly state = computed(() => (this.open() ? 'open' : 'closed'), { debugName: 'RdxPopoverRoot.state' });\n readonly present = computed(() => this.open() || this.preventUnmountOnClose(), {\n debugName: 'RdxPopoverRoot.present'\n });\n\n constructor() {\n let previousOpen = this.open();\n\n // Keep the floating context's reference element in sync with the active trigger.\n effect(() => this.floatingContext.setReferenceElement(this.trigger() ?? null));\n\n effect(\n () => {\n if (this.open() && this.preventUnmountOnClose()) {\n this.preventUnmountOnClose.set(false);\n }\n },\n { debugName: 'RdxPopoverRoot.clearPreventUnmountOnOpen' }\n );\n\n effect(\n () => {\n const defaultOpen = this.defaultOpen();\n\n if (!this.hasAppliedDefaultOpen && defaultOpen) {\n this.hasAppliedDefaultOpen = true;\n this.open.set(defaultOpen);\n }\n },\n { debugName: 'RdxPopoverRoot.applyDefaultOpen' }\n );\n\n effect(\n () => {\n const defaultTriggerId = this.defaultTriggerId();\n\n if (!this.hasAppliedDefaultTriggerId && defaultTriggerId !== null) {\n this.hasAppliedDefaultTriggerId = true;\n this.triggerId.set(defaultTriggerId);\n }\n },\n { debugName: 'RdxPopoverRoot.applyDefaultTriggerId' }\n );\n\n effect(\n () => {\n const triggerId = this.triggerId();\n untracked(() => this.syncTriggerId(triggerId));\n },\n { debugName: 'RdxPopoverRoot.syncTriggerId' }\n );\n\n effect(\n () => {\n const open = this.open();\n\n if (open !== previousOpen) {\n previousOpen = open;\n untracked(() => this.transition.start(open));\n }\n },\n { debugName: 'RdxPopoverRoot.startTransition' }\n );\n\n effect(\n (onCleanup) => {\n const handle = this.handle();\n\n if (handle) {\n onCleanup(untracked(() => handle.registerRoot(contextFor(this))));\n }\n },\n { debugName: 'RdxPopoverRoot.registerHandle' }\n );\n\n effect(() => this.popper.anchorOverride.set(this.trigger()), {\n debugName: 'RdxPopoverRoot.syncAnchorOverride'\n });\n\n this.destroyRef.onDestroy(() => {\n this.clearHoverTimers();\n\n if (this.instantFrame !== undefined) {\n cancelAnimationFrame(this.instantFrame);\n }\n });\n }\n\n show(\n trigger = this.trigger(),\n payload?: unknown,\n triggerId?: string,\n reason: RdxPopoverOpenChangeReason = 'none',\n event?: Event,\n fromHover = false\n ) {\n this.clearHoverTimers();\n const previousTrigger = this.trigger();\n const changedTriggerWhileOpen = this.open() && previousTrigger !== trigger;\n const changed = !this.open() || previousTrigger !== trigger;\n\n if (!changed) {\n this.isHoverActive.set(fromHover);\n this.openChangeReason.set(reason);\n if (triggerId !== undefined) {\n this.triggerId.set(triggerId);\n }\n this.payload.set(payload);\n return;\n }\n\n const resolvedEvent = event ?? new Event('popover.open-change');\n const change = this.createOpenChangeEvent(true, reason, resolvedEvent, trigger, triggerId ?? this.triggerId());\n this.onOpenChange.emit(change.payload);\n\n if (change.eventDetails.isCanceled()) {\n return;\n }\n\n const interactionType = this.consumeOpenInteractionType(event);\n this.openInteractionType.set(interactionType);\n this.openedByTouch.set(interactionType === 'touch');\n this.isHoverActive.set(fromHover);\n this.openChangeReason.set(reason);\n this.instant.set(changedTriggerWhileOpen || reason === 'trigger-focus');\n\n if (changedTriggerWhileOpen) {\n this.scheduleInstantReset();\n }\n\n if (trigger) {\n if (previousTrigger && previousTrigger !== trigger) {\n this.viewportTriggerChange.forEach((notify) => notify(previousTrigger, trigger));\n }\n\n this.trigger.set(trigger);\n }\n\n if (triggerId !== undefined) {\n this.triggerId.set(triggerId);\n }\n\n this.payload.set(payload);\n this.preventUnmountOnClose.set(false);\n this.open.set(true);\n this.floatingContext.events.emit('openchange', { open: true, reason, event: change.eventDetails.event });\n }\n\n close(reason: RdxPopoverOpenChangeReason = 'none', event?: Event) {\n this.clearHoverTimers();\n\n if (!this.open()) {\n return;\n }\n\n const resolvedEvent = event ?? new Event('popover.open-change');\n const change = this.createOpenChangeEvent(false, reason, resolvedEvent, this.trigger(), this.triggerId());\n this.onOpenChange.emit(change.payload);\n\n if (change.eventDetails.isCanceled()) {\n return;\n }\n\n this.pendingTriggerOpenInteractionType.set(null);\n this.closeInteractionType.set(getInteractionTypeFromEvent(event));\n this.isHoverActive.set(false);\n this.openedByTouch.set(false);\n this.instant.set(reason !== 'none' && reason !== 'trigger-hover');\n this.openChangeReason.set(reason);\n this.preventUnmountOnClose.set(change.shouldPreventUnmountOnClose());\n this.open.set(false);\n this.floatingContext.events.emit('openchange', { open: false, reason, event: change.eventDetails.event });\n }\n\n toggle(triggerId: string, trigger: HTMLElement, payload?: unknown, event?: Event) {\n this.clearHoverTimers();\n\n if (this.open() && this.trigger() === trigger) {\n this.close('trigger-press', event);\n return;\n }\n\n this.show(trigger, payload, triggerId, 'trigger-press', event);\n }\n\n openOnHover(trigger: HTMLElement, payload: unknown, triggerId: string, event: PointerEvent) {\n this.clearHoverTimers();\n this.isHoverActive.set(true);\n\n if (this.open()) {\n this.show(trigger, payload, triggerId, 'trigger-hover', event, true);\n return;\n }\n\n this.openTimer = setTimeout(\n () => this.show(trigger, payload, triggerId, 'trigger-hover', event, true),\n this.hoverDelay\n );\n }\n\n closeOnHover() {\n if (!this.isHoverActive()) {\n return;\n }\n\n this.clearOpenTimer();\n this.clearCloseTimer();\n this.closeTimer = setTimeout(\n () => this.close('trigger-hover', new Event('popover.hover-close')),\n this.hoverCloseDelay\n );\n }\n\n cancelHoverClose() {\n this.clearCloseTimer();\n }\n\n cancelHoverOpen() {\n this.clearOpenTimer();\n }\n\n setHoverDelays(delay: number, closeDelay: number) {\n this.hoverDelay = delay;\n this.hoverCloseDelay = closeDelay;\n }\n\n setTriggerOpenInteractionType(type: RdxInteractionType): void {\n this.pendingTriggerOpenInteractionType.set(type);\n }\n\n registerTrigger(id: string, trigger: HTMLElement, payload: () => unknown) {\n this.registeredTriggers.set(id, { element: trigger, payload });\n this.triggers.update((triggers) => (triggers.includes(trigger) ? triggers : [...triggers, trigger]));\n // Bridge into the floating context's trigger registry (new dismissal/focus inside-element checks).\n this.floatingContext.triggers.add(trigger);\n\n if (this.triggerId() === id) {\n this.trigger.set(trigger);\n this.payload.set(payload());\n } else if (!this.trigger() && this.triggerId() === null) {\n this.trigger.set(trigger);\n this.payload.set(payload());\n }\n\n return () => {\n if (this.registeredTriggers.get(id)?.element === trigger) {\n this.registeredTriggers.delete(id);\n }\n\n this.triggers.update((triggers) => triggers.filter((candidate) => candidate !== trigger));\n this.floatingContext.triggers.delete(trigger);\n\n if (this.destroyRef.destroyed) {\n return;\n }\n\n if (this.trigger() === trigger) {\n const next = this.registeredTriggers.entries().next().value;\n\n if (this.triggerId() !== null) {\n this.triggerId.set(next?.[0] ?? null);\n }\n\n this.trigger.set(next?.[1].element);\n this.payload.set(next?.[1].payload());\n\n if (!next && !this.destroyRef.destroyed) {\n this.close();\n }\n }\n };\n }\n\n registerViewport(onTriggerChange: (previous: HTMLElement, next: HTMLElement) => void) {\n this.viewportTriggerChange.add(onTriggerChange);\n return () => this.viewportTriggerChange.delete(onTriggerChange);\n }\n\n setBeforeContentFocusGuard(element: HTMLElement | null) {\n this.beforeContentFocusGuard.set(element);\n }\n\n registerTransitionElement(element: HTMLElement) {\n return this.transition.registerElement(element);\n }\n\n private syncTriggerId(triggerId: string | null) {\n if (triggerId === null) {\n this.trigger.set(undefined);\n this.payload.set(undefined);\n return;\n }\n\n const trigger = this.registeredTriggers.get(triggerId);\n\n if (!trigger) {\n this.trigger.set(undefined);\n this.payload.set(undefined);\n return;\n }\n\n if (trigger.element === this.trigger()) {\n return;\n }\n\n const previousTrigger = this.trigger();\n\n if (previousTrigger && this.open()) {\n this.viewportTriggerChange.forEach((notify) => notify(previousTrigger, trigger.element));\n }\n\n this.trigger.set(trigger.element);\n this.payload.set(trigger.payload());\n }\n\n private createOpenChangeEvent(\n open: boolean,\n reason: RdxPopoverOpenChangeReason,\n event: Event,\n trigger: HTMLElement | undefined,\n triggerId: string | null\n ) {\n const change = createCancelableChangeEventDetails(reason, event, trigger);\n\n return {\n eventDetails: change.eventDetails,\n shouldPreventUnmountOnClose: change.shouldPreventUnmountOnClose,\n payload: {\n open,\n triggerId,\n trigger: change.eventDetails.trigger,\n reason: change.eventDetails.reason,\n event: change.eventDetails.event,\n eventDetails: change.eventDetails\n } satisfies RdxPopoverOpenChange\n };\n }\n\n private clearHoverTimers() {\n this.clearOpenTimer();\n this.clearCloseTimer();\n }\n\n private clearOpenTimer() {\n if (this.openTimer !== undefined) {\n clearTimeout(this.openTimer);\n this.openTimer = undefined;\n }\n }\n\n private clearCloseTimer() {\n if (this.closeTimer !== undefined) {\n clearTimeout(this.closeTimer);\n this.closeTimer = undefined;\n }\n }\n\n private scheduleInstantReset() {\n if (this.instantFrame !== undefined) {\n cancelAnimationFrame(this.instantFrame);\n }\n\n this.instantFrame = requestAnimationFrame(() => {\n this.instantFrame = undefined;\n\n if (!this.destroyRef.destroyed && this.open()) {\n this.instant.set(false);\n }\n });\n }\n\n private consumeOpenInteractionType(event?: Event): RdxInteractionType {\n const pending = this.pendingTriggerOpenInteractionType();\n this.pendingTriggerOpenInteractionType.set(null);\n return pending ?? getInteractionTypeFromEvent(event);\n }\n}\n\nfunction contextFor(root: RdxPopoverRoot): RdxPopoverRootContext {\n return {\n contentId: root.contentId,\n descriptionId: root.descriptionId.asReadonly(),\n isOpen: root.open,\n present: root.present,\n modal: root.modal,\n titleId: root.titleId.asReadonly(),\n trigger: root.trigger.asReadonly(),\n triggers: root.triggers.asReadonly(),\n payload: root.payload.asReadonly(),\n hasPopupClose: computed(() => root.popupCloseCount() > 0),\n isHoverActive: root.isHoverActive.asReadonly(),\n instant: root.instant.asReadonly(),\n openChangeReason: root.openChangeReason.asReadonly(),\n isPointerDownOnTrigger: root.isPointerDownOnTrigger.asReadonly(),\n openedByTouch: root.openedByTouch.asReadonly(),\n openInteractionType: root.openInteractionType.asReadonly(),\n closeInteractionType: root.closeInteractionType.asReadonly(),\n close: (reason?: RdxPopoverOpenChangeReason, event?: Event) => root.close(reason, event),\n cancelHoverClose: () => root.cancelHoverClose(),\n cancelHoverOpen: () => root.cancelHoverOpen(),\n closeOnHover: () => root.closeOnHover(),\n open: (trigger, payload, triggerId, reason, event) => root.show(trigger, payload, triggerId, reason, event),\n openOnHover: (trigger, payload, triggerId, event) => root.openOnHover(trigger, payload, triggerId, event),\n registerTrigger: (id, trigger, payload) => root.registerTrigger(id, trigger, payload),\n setDescriptionId: (id: string | undefined) => root.descriptionId.set(id),\n setTitleId: (id: string | undefined) => root.titleId.set(id),\n setPointerDownOnTrigger: (pointerDown: boolean) => root.isPointerDownOnTrigger.set(pointerDown),\n setOpenedByTouch: (value: boolean) => root.openedByTouch.set(value),\n setTriggerOpenInteractionType: (type: RdxInteractionType) => root.setTriggerOpenInteractionType(type),\n setHoverDelays: (delay: number, closeDelay: number) => root.setHoverDelays(delay, closeDelay),\n registerPopupClose: () => {\n root.popupCloseCount.update((count) => count + 1);\n return () => root.popupCloseCount.update((count) => count - 1);\n },\n registerTransitionElement: (element) => root.registerTransitionElement(element),\n transitionStatus: root.transitionStatus,\n beforeContentFocusGuard: root.beforeContentFocusGuard.asReadonly(),\n registerViewport: (onTriggerChange) => root.registerViewport(onTriggerChange),\n setBeforeContentFocusGuard: (element) => root.setBeforeContentFocusGuard(element),\n toggle: (triggerId, trigger, payload, event) => root.toggle(triggerId, trigger, payload, event)\n };\n}\n","import { computed, Directive, inject } from '@angular/core';\nimport { RdxPopperArrow, RdxPopperContentWrapper } from '@radix-ng/primitives/popper';\nimport { injectRdxPopoverRootContext } from './popover-root';\n\n/**\n * An optional arrow element rendered alongside the popover.\n */\n@Directive({\n selector: '[rdxPopoverArrow]',\n hostDirectives: [RdxPopperArrow],\n host: {\n '[attr.data-open]': 'rootContext.isOpen() ? \"\" : undefined',\n '[attr.data-closed]': 'rootContext.isOpen() ? undefined : \"\"',\n '[attr.data-side]': 'side()',\n '[attr.data-align]': 'align()',\n '[attr.data-uncentered]': 'uncentered() ? \"\" : undefined'\n }\n})\nexport class RdxPopoverArrow {\n protected readonly rootContext = injectRdxPopoverRootContext();\n private readonly wrapper = inject(RdxPopperContentWrapper, { optional: true });\n\n protected readonly side = computed(() => this.wrapper?.placedSide());\n protected readonly align = computed(() => this.wrapper?.placedAlign());\n protected readonly uncentered = computed(() => this.wrapper?.arrowUncentered() ?? false);\n}\n","import { DestroyRef, Directive, ElementRef, inject } from '@angular/core';\nimport { RDX_FLOATING_ROOT_CONTEXT } from '@radix-ng/primitives/core';\nimport { injectRdxPopoverRootContext } from './popover-root';\n\n/**\n * An optional backdrop rendered behind the popup.\n */\n@Directive({\n selector: '[rdxPopoverBackdrop]',\n host: {\n role: 'presentation',\n '[attr.data-closed]': 'rootContext.isOpen() ? undefined : \"\"',\n '[attr.data-ending-style]': 'rootContext.transitionStatus() === \"ending\" ? \"\" : undefined',\n '[attr.data-instant]': 'rootContext.instant() ? \"\" : undefined',\n '[attr.data-open]': 'rootContext.isOpen() ? \"\" : undefined',\n '[attr.data-starting-style]': 'rootContext.transitionStatus() === \"starting\" ? \"\" : undefined',\n '[attr.data-state]': 'rootContext.isOpen() ? \"open\" : \"closed\"',\n '[style.pointer-events]': 'rootContext.openChangeReason() === \"trigger-hover\" ? \"none\" : null',\n '[style.user-select]': '\"none\"'\n }\n})\nexport class RdxPopoverBackdrop {\n protected readonly rootContext = injectRdxPopoverRootContext();\n\n constructor() {\n const host = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n host.style.setProperty('-webkit-user-select', 'none');\n\n // Register the backdrop as owned DOM footprint for primitive-specific checks. The focus manager's\n // marker keep-set stays narrow and does not keep sibling backdrop roots.\n const floatingContext = inject(RDX_FLOATING_ROOT_CONTEXT, { optional: true });\n if (floatingContext) {\n floatingContext.addFloatingElement(host);\n inject(DestroyRef).onDestroy(() => floatingContext.removeFloatingElement(host));\n }\n }\n}\n","import { computed, DestroyRef, Directive, ElementRef, inject, output } from '@angular/core';\nimport { outputFromObservable, outputToObservable } from '@angular/core/rxjs-interop';\nimport {\n RDX_FLOATING_REGISTRATION,\n RDX_FLOATING_ROOT_CONTEXT,\n RdxFloatingNodeRegistration,\n useAnchoredScrollLock\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 { RdxFocusScope } from '@radix-ng/primitives/focus-scope';\nimport { RdxPopperContent, RdxPopperContentWrapper } from '@radix-ng/primitives/popper';\nimport { injectRdxPopoverRootContext } from './popover-root';\n\n/**\n * A container for the popover contents.\n *\n * **ADR 0015/0017 Phase-4 migration** onto the new floating dismissal + focus engine (same pattern as\n * Dialog; browser-verified via `popover.behavior` Playwright). Popover-specific:\n * - **Hover-open disables the manager** (`enabled = isOpen && !isHoverActive`) — Base UI parity\n * (`disabled={!mounted || openReason === triggerHover}`); a hover-opened popover does not trap / mark.\n * (The legacy only suppressed auto-focus while still trapping — that Radix divergence is dropped.)\n * - Trap = `'trap-focus' || (modal === true && hasPopupClose())`; scroll lock + real outside `inert`\n * isolation key off the full modal (`modal === true`).\n * - No `disablePointerDismissal` — outside-press + focus-out always close.\n *\n * Note: a positioned popover does **not** auto-focus into the popup on open (pre-existing — the legacy\n * behaved the same; verified). The trap holds focus once it is inside; portal tab-order handoff is owned\n * by `RdxFloatingFocusManager` and anchored to the active trigger below.\n */\n@Directive({\n selector: '[rdxPopoverPopup]',\n hostDirectives: [\n RdxPopperContent,\n RdxFloatingNodeRegistration,\n { directive: RdxFloatingFocusManager, inputs: ['initialFocus', 'returnFocus: finalFocus'] }\n ],\n providers: [\n provideFloatingFocusManagerConfig(() => {\n const rootContext = injectRdxPopoverRootContext();\n return {\n modal: () =>\n rootContext.modal() === 'trap-focus' ||\n (rootContext.modal() === true && rootContext.hasPopupClose()),\n // Full modal blocks outside pointer interaction; `trap-focus` only traps focus.\n inert: () => rootContext.modal() === true && rootContext.hasPopupClose(),\n restoreFocus: () => 'popup',\n previousFocusableElement: () => rootContext.trigger() ?? null,\n beforeContentFocusGuardRef: () => (element) => rootContext.setBeforeContentFocusGuard(element),\n // Active for the whole MOUNTED lifetime (Base UI `disabled={!mounted}`, not `open`) for\n // trap/return-focus — including an explicit `preventUnmountOnClose()` cycle after the\n // exit transition. Marker + isolation are additionally gated on `open` inside the\n // manager. Still suppressed while hover-opened.\n enabled: () => rootContext.present() && !rootContext.isHoverActive(),\n openInteractionType: () => rootContext.openInteractionType(),\n closeInteractionType: () => rootContext.closeInteractionType()\n };\n })\n ],\n host: {\n role: 'dialog',\n '[attr.aria-describedby]': 'rootContext.descriptionId()',\n '[attr.aria-labelledby]': 'rootContext.titleId()',\n '[attr.data-closed]': 'rootContext.isOpen() ? undefined : \"\"',\n '[attr.data-ending-style]': 'rootContext.transitionStatus() === \"ending\" ? \"\" : undefined',\n '[attr.data-instant]': 'rootContext.instant() ? \"\" : undefined',\n '[attr.data-open]': 'rootContext.isOpen() ? \"\" : undefined',\n '[attr.data-starting-style]': 'rootContext.transitionStatus() === \"starting\" ? \"\" : undefined',\n '[attr.data-state]': 'rootContext.isOpen() ? \"open\" : \"closed\"',\n '[attr.data-align]': 'align()',\n '[attr.data-side]': 'side()',\n '[id]': 'rootContext.contentId',\n '(pointerenter)': 'rootContext.cancelHoverClose()'\n }\n})\nexport class RdxPopoverPopup {\n protected readonly rootContext = injectRdxPopoverRootContext();\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n private readonly floatingContext = inject(RDX_FLOATING_ROOT_CONTEXT);\n private readonly registration = inject(RDX_FLOATING_REGISTRATION, { optional: true });\n private readonly focusManager = inject(RdxFloatingFocusManager);\n private readonly focusScope = inject(RdxFocusScope);\n private readonly wrapper = inject(RdxPopperContentWrapper, { optional: true });\n protected readonly align = computed(() => this.wrapper?.placedAlign());\n protected readonly side = computed(() => this.wrapper?.placedSide());\n\n /** Event handler called when the escape key is down. Can be prevented. */\n readonly escapeKeyDown = output<KeyboardEvent>();\n\n /** Event handler called when a pointerdown event happens outside of the popup. Can be prevented. */\n readonly pointerDownOutside = output<RdxOutsidePressDomEvent>();\n\n /** Event handler called when focus moves outside of the popup. Can be prevented. */\n readonly focusOutside = output<FocusEvent>();\n\n /** Event handler called when an interaction (pointer / focus) happens outside of the popup. */\n readonly interactOutside = output<RdxOutsidePressDomEvent | FocusEvent>();\n\n /** Event handler called before focus moves into the popup. Can be prevented. */\n readonly openAutoFocus = outputFromObservable(outputToObservable(this.focusScope.mountAutoFocus));\n\n /** Event handler called before focus returns after the popup is removed. Can be prevented. */\n readonly closeAutoFocus = outputFromObservable(outputToObservable(this.focusScope.unmountAutoFocus));\n\n constructor() {\n this.floatingContext.setFloatingElement(this.host);\n\n // Background pointer/AT isolation for a full modal is the focus manager's `inert` pass (finding\n // #4), not a global body lock; only the page scroll lock stays here. Activation policy (ADR 0016\n // §2): lock only while a `modal === true` popover is OPEN and was **not** hover-opened, gated on\n // `open` (not mounted) so it releases at close-start. For a **touch** open the anchored helper only\n // locks when the popup is effectively viewport-width (a small popover stays swipe-to-dismissable on\n // mobile, §3).\n useAnchoredScrollLock(\n computed(\n () =>\n this.rootContext.isOpen() && this.rootContext.modal() === true && !this.rootContext.isHoverActive()\n ),\n {\n touchOpen: () => this.rootContext.openedByTouch(),\n element: () => this.host\n }\n );\n\n const unregisterTransitionElement = this.rootContext.registerTransitionElement(this.host);\n inject(DestroyRef).onDestroy(unregisterTransitionElement);\n\n // A hover-opened popover must not steal focus — suppress the composed focus scope's auto-focus.\n this.focusScope.mountAutoFocus.subscribe((event) => {\n if (this.rootContext.isHoverActive()) {\n event.preventDefault();\n }\n });\n\n // Dismissal: Escape + outside-press always close (no pointer-dismissal opt-out). Focus-out is\n // owned by the focus manager (below), so the capability's own focus-out is disabled.\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) => {\n this.pointerDownOutside.emit(event);\n this.interactOutside.emit(event);\n },\n onDismiss: (reason, event) => {\n this.rootContext.close(reason === 'escape-key' ? 'escape-key' : 'outside-press', event);\n }\n });\n\n // Focus-out close (ADR 0017 §3) — re-expose as `focusOutside` (preventable) and close unless vetoed.\n this.focusManager.focusOut.subscribe((event) => {\n this.focusOutside.emit(event);\n this.interactOutside.emit(event);\n if (!event.defaultPrevented) {\n this.rootContext.close('focus-out', event);\n }\n });\n }\n}\n","import { DestroyRef, Directive, inject } from '@angular/core';\nimport { RdxPopoverPopup } from './popover-popup';\nimport { injectRdxPopoverRootContext } from './popover-root';\n\n/**\n * A button that closes the popover.\n */\n@Directive({\n selector: 'button[rdxPopoverClose]',\n host: {\n type: 'button',\n '(click)': 'rootContext.close(\"close-press\", $event)'\n }\n})\nexport class RdxPopoverClose {\n protected readonly rootContext = injectRdxPopoverRootContext();\n\n constructor() {\n if (inject(RdxPopoverPopup, { optional: true })) {\n const unregister = this.rootContext.registerPopupClose();\n inject(DestroyRef).onDestroy(unregister);\n }\n }\n}\n","import { computed, DestroyRef, Directive, effect, inject, input } from '@angular/core';\nimport { injectId } from '@radix-ng/primitives/core';\nimport { injectRdxPopoverRootContext } from './popover-root';\n\n/**\n * An accessible description for the popover.\n */\n@Directive({\n selector: '[rdxPopoverDescription]',\n host: {\n '[id]': 'id()'\n }\n})\nexport class RdxPopoverDescription {\n private readonly rootContext = injectRdxPopoverRootContext();\n private readonly generatedId = injectId('rdx-popover-description-');\n\n readonly idInput = input<string | undefined>(undefined, { alias: 'id' });\n readonly id = computed(() => this.idInput() ?? this.generatedId);\n\n constructor() {\n effect((onCleanup) => {\n const id = this.id();\n this.rootContext.setDescriptionId(id);\n onCleanup(() => this.rootContext.setDescriptionId(undefined));\n });\n\n inject(DestroyRef).onDestroy(() => this.rootContext.setDescriptionId(undefined));\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 { injectRdxPopoverRootContext } from './popover-root';\n\n/**\n * Structural directive that teleports the popover content into a container (default `document.body`)\n * while the popover is open, and keeps it mounted until any CSS exit `@keyframes` finishes.\n *\n * Apply it with the `*` microsyntax on the positioner — `<div *rdxPopoverPortal rdxPopoverPositioner>`\n * — or as an explicit `<ng-template rdxPopoverPortal>`. For a custom container use the explicit form\n * with `[container]`.\n */\n@Directive({\n selector: 'ng-template[rdxPopoverPortal]',\n exportAs: 'rdxPopoverPortal',\n hostDirectives: [{ directive: RdxPortalPresence, inputs: ['container'] }],\n providers: [provideRdxPresenceContext(() => ({ present: injectRdxPopoverRootContext().present }))]\n})\nexport class RdxPopoverPortal {}\n\n/**\n * Dev-mode guard: `rdxPopoverPortal` used to be an attribute directive on a `<div>`. It is now\n * structural, so the old `<div rdxPopoverPortal>` markup would silently stop portaling — fail loudly\n * instead.\n */\n@Directive({\n selector: '[rdxPopoverPortal]:not(ng-template)'\n})\nexport class RdxPopoverPortalMisuseGuard {\n constructor() {\n if (isDevMode()) {\n rdxDevError(\n 'popover/portal-on-element',\n '`rdxPopoverPortal` is now a structural directive. ' +\n 'Use `*rdxPopoverPortal` on the positioner element or `<ng-template rdxPopoverPortal>`. ' +\n 'rdxPopoverPortalPresence has been removed.',\n 'components/popover'\n );\n }\n }\n}\n","import { Directive, effect, ElementRef, inject, signal } from '@angular/core';\nimport { useGraceArea } from '@radix-ng/primitives/core';\nimport {\n legacyPopperVars,\n provideRdxPopperContentConfig,\n provideRdxPopperContentWrapper,\n RdxPopperContentWrapper\n} from '@radix-ng/primitives/popper';\nimport { injectRdxPopoverRootContext } from './popover-root';\n\n/**\n * Positions the popover against its trigger.\n *\n * A \"thin\" positioner (ADR 0012): it inherits the popper positioning surface (inputs, `placed`\n * output, unified vars + placement attrs) from {@link RdxPopperContentWrapper} and adds popover's own\n * concerns — Base UI-aligned defaults via the config provider, the open/closed/instant state\n * attributes, the deprecated `--radix-popover-*` aliases, and the grace-area hover bridge.\n */\n@Directive({\n selector: '[rdxPopoverPositioner]',\n providers: [\n ...provideRdxPopperContentWrapper(RdxPopoverPositioner),\n provideRdxPopperContentConfig({ arrowPadding: 5, collisionPadding: 5, updatePositionStrategy: 'always' })\n ],\n host: {\n '[attr.data-open]': 'rootContext.isOpen() ? \"\" : undefined',\n '[attr.data-closed]': 'rootContext.isOpen() ? undefined : \"\"',\n '[attr.data-instant]': 'rootContext.instant() ? \"\" : undefined',\n // `data-side`/`data-align`/`data-anchor-hidden` and the unified `--anchor-*`/`--available-*`/\n // `--transform-origin` vars come from the inherited wrapper (ADR 0012); only the deprecated\n // `--radix-popover-*` aliases remain, for one release of back-compat.\n '[style]': 'legacyVars'\n }\n})\nexport class RdxPopoverPositioner extends RdxPopperContentWrapper {\n protected readonly rootContext = injectRdxPopoverRootContext();\n protected readonly legacyVars = legacyPopperVars('popover');\n private readonly containerRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly triggerEl = signal<HTMLElement | null>(null);\n private readonly containerEl = signal<HTMLElement | null>(this.containerRef.nativeElement);\n private readonly graceArea = useGraceArea(this.triggerEl, this.containerEl);\n\n constructor() {\n super();\n\n effect(() => this.triggerEl.set(this.rootContext.trigger() ?? null));\n\n this.graceArea.onPointerExit(() => {\n this.rootContext.closeOnHover();\n });\n }\n}\n","import { computed, DestroyRef, Directive, effect, inject, input } from '@angular/core';\nimport { injectId } from '@radix-ng/primitives/core';\nimport { injectRdxPopoverRootContext } from './popover-root';\n\n/**\n * An accessible title for the popover.\n */\n@Directive({\n selector: '[rdxPopoverTitle]',\n host: {\n '[id]': 'id()'\n }\n})\nexport class RdxPopoverTitle {\n private readonly rootContext = injectRdxPopoverRootContext();\n private readonly generatedId = injectId('rdx-popover-title-');\n\n readonly idInput = input<string | undefined>(undefined, { alias: 'id' });\n readonly id = computed(() => this.idInput() ?? this.generatedId);\n\n constructor() {\n effect((onCleanup) => {\n const id = this.id();\n this.rootContext.setTitleId(id);\n onCleanup(() => this.rootContext.setTitleId(undefined));\n });\n\n inject(DestroyRef).onDestroy(() => this.rootContext.setTitleId(undefined));\n }\n}\n","import {\n booleanAttribute,\n computed,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n numberAttribute,\n untracked\n} from '@angular/core';\nimport { injectId, NumberInput, rdxDevError } from '@radix-ng/primitives/core';\nimport { createRdxTriggerInteraction, useTriggerFocusGuards } from '@radix-ng/primitives/floating-focus-manager';\nimport { RdxPopperAnchor } from '@radix-ng/primitives/popper';\nimport { RdxPopoverHandle } from './popover-handle';\nimport { injectRdxPopoverRootContext } from './popover-root';\n\n/**\n * A button that opens the popover.\n */\n@Directive({\n selector: 'button[rdxPopoverTrigger]',\n hostDirectives: [RdxPopperAnchor],\n host: {\n type: 'button',\n '[attr.aria-controls]': 'rootContext()?.contentId',\n '[attr.aria-expanded]': 'triggerInteraction.ariaExpanded()',\n '[attr.aria-haspopup]': '\"dialog\"',\n '[attr.data-state]': 'triggerInteraction.dataState()',\n '[attr.data-popup-open]': 'triggerInteraction.dataPopupOpen()',\n '[attr.data-pressed]': 'isPressed() ? \"\" : undefined',\n '[attr.disabled]': 'triggerInteraction.disabled() ? \"\" : undefined',\n '[id]': 'triggerId()',\n '(click)': 'handleClick($event)',\n '(pointerenter)': 'handlePointerEnter($event)',\n '(pointerleave)': 'handlePointerLeave($event)',\n '(pointerdown)': 'handlePointerDown($event)',\n '(pointerup)': 'handlePointerUp()',\n '(pointercancel)': 'handlePointerUp()'\n }\n})\nexport class RdxPopoverTrigger {\n private readonly parentRootContext = injectRdxPopoverRootContext(true);\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Associates this trigger with a detached popover root.\n */\n readonly handle = input<RdxPopoverHandle<any>>();\n\n /**\n * Data associated with this trigger while it is active.\n */\n readonly payload = input<unknown>();\n\n /**\n * ID used to identify this trigger when opening a detached popover imperatively.\n */\n readonly id = input<string>();\n\n /**\n * Whether the trigger should ignore user interaction.\n */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Whether the popover should also open when this trigger is hovered.\n */\n readonly openOnHover = input(false, { transform: booleanAttribute });\n\n /**\n * How long to wait before opening the popover on hover, in milliseconds.\n */\n readonly delay = input<number, NumberInput>(300, { transform: numberAttribute });\n\n /**\n * How long to wait before closing a hover-opened popover, in milliseconds.\n */\n readonly closeDelay = input<number, NumberInput>(0, { transform: numberAttribute });\n\n protected readonly triggerId = computed(() => this.id() ?? this.generatedId);\n protected readonly rootContext = computed(() => this.handle()?.context() ?? this.parentRootContext);\n protected readonly isOpen = computed(\n () => this.rootContext()?.isOpen() === true && this.rootContext()?.trigger() === this.elementRef.nativeElement\n );\n protected readonly triggerInteraction = createRdxTriggerInteraction({\n trigger: () => this.elementRef.nativeElement,\n activeTrigger: () => this.rootContext()?.trigger(),\n open: () => this.rootContext()?.isOpen() ?? false,\n disabled: () => this.disabled(),\n contentId: () => this.rootContext()?.contentId\n });\n protected readonly isPressed = computed(\n () => this.triggerInteraction.isActive() && this.rootContext()?.openChangeReason() === 'trigger-press'\n );\n private readonly generatedId = injectId('rdx-popover-trigger-');\n\n constructor() {\n effect(() => {\n if (!this.handle() && !this.parentRootContext) {\n rdxDevError(\n 'popover/trigger-missing-root',\n '`rdxPopoverTrigger` must be used inside `rdxPopoverRoot` or receive a `handle` connected to a root.',\n 'components/popover'\n );\n }\n });\n\n effect((onCleanup) => {\n const handle = this.handle();\n\n if (handle) {\n onCleanup(\n untracked(() =>\n handle.registerTrigger(this.triggerId(), this.elementRef.nativeElement, () => this.payload())\n )\n );\n } else if (this.parentRootContext) {\n onCleanup(\n untracked(() =>\n this.parentRootContext!.registerTrigger(this.triggerId(), this.elementRef.nativeElement, () =>\n this.payload()\n )\n )\n );\n }\n });\n\n useTriggerFocusGuards({\n trigger: () => this.elementRef.nativeElement,\n close: (event) => this.rootContext()?.close('focus-out', event),\n beforeContentFocusGuard: () => this.rootContext()?.beforeContentFocusGuard(),\n contentId: () => this.rootContext()?.contentId,\n enabled: () => this.triggerInteraction.isActive(),\n popupElement: () => {\n const contentId = this.rootContext()?.contentId;\n return contentId\n ? (this.elementRef.nativeElement.ownerDocument.getElementById(contentId) as HTMLElement | null)\n : null;\n }\n });\n }\n\n protected handleClick(event: MouseEvent) {\n if (this.disabled()) {\n return;\n }\n\n // Record whether this open is a touch tap (ADR 0016 §3). `detail === 0` is a keyboard-activated\n // click (no preceding pointerdown), which must read non-touch regardless of the last pointer type.\n const interactionType = this.triggerInteraction.clickInteractionType(event);\n this.rootContext()?.setOpenedByTouch(interactionType === 'touch');\n this.rootContext()?.setTriggerOpenInteractionType(interactionType);\n this.rootContext()?.setPointerDownOnTrigger(false);\n\n if (this.handle()) {\n this.handle()!.toggle(this.triggerId(), event);\n } else {\n this.parentRootContext?.toggle(this.triggerId(), this.elementRef.nativeElement, this.payload(), event);\n }\n }\n\n protected handlePointerEnter(event: PointerEvent) {\n const rootContext = this.rootContext();\n\n if (event.pointerType === 'touch' || !rootContext || this.disabled() || !this.openOnHover()) {\n return;\n }\n\n rootContext.setHoverDelays(this.delay(), this.closeDelay());\n rootContext.openOnHover(this.elementRef.nativeElement, this.payload(), this.triggerId(), event);\n }\n\n protected handlePointerLeave(event: PointerEvent) {\n if (event.pointerType === 'touch' || !this.openOnHover()) {\n return;\n }\n\n this.rootContext()?.cancelHoverOpen();\n }\n\n protected handlePointerDown(event: PointerEvent) {\n this.triggerInteraction.recordPointerDown(event);\n this.rootContext()?.setPointerDownOnTrigger(true);\n }\n\n protected handlePointerUp() {\n this.rootContext()?.setPointerDownOnTrigger(false);\n }\n}\n","import { afterNextRender, DestroyRef, Directive, ElementRef, inject, signal } from '@angular/core';\nimport { injectRdxPopoverRootContext } from './popover-root';\n\n/**\n * A viewport for animating content changes when a popover moves between triggers.\n *\n * Render one direct child inside the viewport. It is marked with `data-current`;\n * when the active trigger changes, a DOM snapshot is retained as `data-previous`\n * until its CSS animation or transition completes.\n */\n@Directive({\n selector: '[rdxPopoverViewport]',\n host: {\n '[attr.data-activation-direction]': 'activationDirection()',\n '[attr.data-transitioning]': 'transitioning() ? \"\" : undefined'\n }\n})\nexport class RdxPopoverViewport {\n private readonly rootContext = injectRdxPopoverRootContext();\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly destroyRef = inject(DestroyRef);\n private previous: HTMLElement | undefined;\n private cleanupTimer: ReturnType<typeof setTimeout> | undefined;\n private observer: MutationObserver | undefined;\n\n protected readonly activationDirection = signal<string | undefined>(undefined);\n protected readonly transitioning = signal(false);\n\n constructor() {\n const unregister = this.rootContext.registerViewport((previousTrigger, nextTrigger) => {\n this.startTransition(previousTrigger, nextTrigger);\n });\n\n afterNextRender(() => {\n this.markCurrent();\n\n this.observer = new MutationObserver(() => this.markCurrent());\n this.observer.observe(this.elementRef.nativeElement, { childList: true });\n });\n\n this.destroyRef.onDestroy(() => {\n unregister();\n this.observer?.disconnect();\n this.cleanupPrevious();\n });\n }\n\n private startTransition(previousTrigger: HTMLElement, nextTrigger: HTMLElement) {\n const current = this.current();\n\n if (!current) {\n return;\n }\n\n this.cleanupPrevious();\n this.activationDirection.set(getActivationDirection(previousTrigger, nextTrigger));\n\n const previous = current.cloneNode(true) as HTMLElement;\n const popup = this.elementRef.nativeElement.closest('[rdxPopoverPopup]');\n const popupRect = popup?.getBoundingClientRect();\n\n previous.removeAttribute('data-current');\n previous.setAttribute('data-previous', '');\n previous.setAttribute('aria-hidden', 'true');\n previous.setAttribute('inert', '');\n removeIds(previous);\n\n if (popupRect) {\n previous.style.setProperty('--popup-width', `${popupRect.width}px`);\n previous.style.setProperty('--popup-height', `${popupRect.height}px`);\n }\n\n previous.addEventListener('animationend', () => this.cleanupPrevious(), { once: true });\n previous.addEventListener('transitionend', () => this.cleanupPrevious(), { once: true });\n\n this.previous = previous;\n this.elementRef.nativeElement.insertBefore(previous, current);\n this.transitioning.set(true);\n\n queueMicrotask(() => this.scheduleCleanup(previous));\n }\n\n private markCurrent() {\n this.current()?.setAttribute('data-current', '');\n }\n\n private current() {\n return Array.from(this.elementRef.nativeElement.children).find(\n (child): child is HTMLElement => child instanceof HTMLElement && !child.hasAttribute('data-previous')\n );\n }\n\n private scheduleCleanup(previous: HTMLElement) {\n if (this.previous !== previous) {\n return;\n }\n\n const style = getComputedStyle(previous);\n const duration = Math.max(\n getMaxDuration(style.animationDuration, style.animationDelay),\n getMaxDuration(style.transitionDuration, style.transitionDelay)\n );\n\n this.cleanupTimer = setTimeout(() => this.cleanupPrevious(), duration > 0 ? duration + 50 : 0);\n }\n\n private cleanupPrevious() {\n if (this.cleanupTimer !== undefined) {\n clearTimeout(this.cleanupTimer);\n this.cleanupTimer = undefined;\n }\n\n this.previous?.remove();\n this.previous = undefined;\n this.transitioning.set(false);\n }\n}\n\nfunction getActivationDirection(previous: HTMLElement, next: HTMLElement) {\n const previousRect = previous.getBoundingClientRect();\n const nextRect = next.getBoundingClientRect();\n const previousCenter = getCenter(previousRect);\n const nextCenter = getCenter(nextRect);\n const directions: string[] = [];\n\n if (nextCenter.x < previousCenter.x) {\n directions.push('left');\n } else if (nextCenter.x > previousCenter.x) {\n directions.push('right');\n }\n\n if (nextCenter.y < previousCenter.y) {\n directions.push('up');\n } else if (nextCenter.y > previousCenter.y) {\n directions.push('down');\n }\n\n return directions.join(' ') || undefined;\n}\n\nfunction removeIds(element: HTMLElement) {\n element.removeAttribute('id');\n element.querySelectorAll('[id]').forEach((child) => child.removeAttribute('id'));\n}\n\nfunction getCenter(rect: DOMRect) {\n return { x: rect.left + rect.width / 2, y: rect.top + rect.height / 2 };\n}\n\nfunction getMaxDuration(durations: string, delays: string) {\n const durationValues = durations.split(',').map(parseDuration);\n const delayValues = delays.split(',').map(parseDuration);\n\n return durationValues.reduce((max, duration, index) => {\n const delay = delayValues[index % delayValues.length] ?? 0;\n return Math.max(max, duration + delay);\n }, 0);\n}\n\nfunction parseDuration(value: string) {\n const duration = Number.parseFloat(value);\n\n if (Number.isNaN(duration)) {\n return 0;\n }\n\n return value.trim().endsWith('ms') ? duration : duration * 1000;\n}\n","import { computed, signal } from '@angular/core';\nimport type { RdxPopoverRootContext } from './popover-root';\n\n/**\n * Connects a popover root with trigger elements rendered elsewhere in the DOM.\n */\ninterface RdxPopoverHandleTrigger<Payload> {\n element: HTMLElement;\n payload: () => Payload | undefined;\n}\n\nexport class RdxPopoverHandle<Payload = unknown> {\n private readonly rootContext = signal<RdxPopoverRootContext | undefined>(undefined);\n private readonly triggers = new Map<string, RdxPopoverHandleTrigger<Payload>>();\n private readonly rootTriggerCleanups = new Map<string, () => void>();\n\n readonly isOpen = computed(() => this.rootContext()?.isOpen() ?? false);\n\n open(triggerId: string) {\n const trigger = this.triggers.get(triggerId);\n\n if (!trigger) {\n throw new Error(`No popover trigger registered with id \"${triggerId}\".`);\n }\n\n this.rootContext()?.open(\n trigger.element,\n trigger.payload(),\n triggerId,\n 'imperative-action',\n new Event('popover.open')\n );\n }\n\n close() {\n this.rootContext()?.close('imperative-action', new Event('popover.close'));\n }\n\n toggle(triggerId: string, event = new Event('popover.toggle')) {\n const trigger = this.triggers.get(triggerId);\n\n if (!trigger) {\n throw new Error(`No popover trigger registered with id \"${triggerId}\".`);\n }\n\n this.rootContext()?.toggle(triggerId, trigger.element, trigger.payload(), event);\n }\n\n registerRoot(rootContext: RdxPopoverRootContext) {\n this.rootContext.set(rootContext);\n this.triggers.forEach((trigger, id) => {\n this.rootTriggerCleanups.set(id, rootContext.registerTrigger(id, trigger.element, trigger.payload));\n });\n\n return () => {\n if (this.rootContext() === rootContext) {\n this.rootTriggerCleanups.forEach((cleanup) => cleanup());\n this.rootTriggerCleanups.clear();\n this.rootContext.set(undefined);\n }\n };\n }\n\n registerTrigger(id: string, trigger: HTMLElement, payload: () => Payload | undefined) {\n this.rootTriggerCleanups.get(id)?.();\n this.triggers.set(id, { element: trigger, payload });\n const unregisterFromRoot = this.rootContext()?.registerTrigger(id, trigger, payload);\n\n if (unregisterFromRoot) {\n this.rootTriggerCleanups.set(id, unregisterFromRoot);\n }\n\n return () => {\n this.rootTriggerCleanups.get(id)?.();\n this.rootTriggerCleanups.delete(id);\n\n if (this.triggers.get(id)?.element === trigger) {\n this.triggers.delete(id);\n }\n };\n }\n\n context() {\n return this.rootContext();\n }\n}\n\nexport function createRdxPopoverHandle<Payload = unknown>() {\n return new RdxPopoverHandle<Payload>();\n}\n","import { NgModule } from '@angular/core';\nimport { RdxPopoverArrow } from './src/popover-arrow';\nimport { RdxPopoverBackdrop } from './src/popover-backdrop';\nimport { RdxPopoverClose } from './src/popover-close';\nimport { RdxPopoverDescription } from './src/popover-description';\nimport { RdxPopoverPopup } from './src/popover-popup';\nimport { RdxPopoverPortal, RdxPopoverPortalMisuseGuard } from './src/popover-portal';\nimport { RdxPopoverPositioner } from './src/popover-positioner';\nimport { RdxPopoverRoot } from './src/popover-root';\nimport { RdxPopoverTitle } from './src/popover-title';\nimport { RdxPopoverTrigger } from './src/popover-trigger';\nimport { RdxPopoverViewport } from './src/popover-viewport';\n\nexport * from './src/popover-arrow';\nexport * from './src/popover-backdrop';\nexport * from './src/popover-close';\nexport * from './src/popover-description';\nexport * from './src/popover-handle';\nexport * from './src/popover-popup';\nexport * from './src/popover-portal';\nexport * from './src/popover-positioner';\nexport * from './src/popover-root';\nexport * from './src/popover-title';\nexport * from './src/popover-trigger';\nexport * from './src/popover-viewport';\n\nexport const popoverImports = [\n RdxPopoverRoot,\n RdxPopoverTrigger,\n RdxPopoverPortal,\n RdxPopoverPortalMisuseGuard,\n RdxPopoverBackdrop,\n RdxPopoverPositioner,\n RdxPopoverPopup,\n RdxPopoverArrow,\n RdxPopoverTitle,\n RdxPopoverDescription,\n RdxPopoverClose,\n RdxPopoverViewport\n];\n\n@NgModule({\n imports: [...popoverImports],\n exports: [...popoverImports]\n})\nexport class RdxPopoverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}