@radix-ng/primitives 0.51.0 → 1.0.0-beta.0

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 (178) hide show
  1. package/fesm2022/radix-ng-primitives-accordion.mjs +105 -38
  2. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
  3. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +221 -129
  4. package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -1
  5. package/fesm2022/radix-ng-primitives-arrow.mjs +20 -4
  6. package/fesm2022/radix-ng-primitives-arrow.mjs.map +1 -1
  7. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs.map +1 -1
  8. package/fesm2022/radix-ng-primitives-avatar.mjs +54 -61
  9. package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
  10. package/fesm2022/radix-ng-primitives-button.mjs +123 -0
  11. package/fesm2022/radix-ng-primitives-button.mjs.map +1 -0
  12. package/fesm2022/radix-ng-primitives-calendar.mjs.map +1 -1
  13. package/fesm2022/radix-ng-primitives-checkbox.mjs +378 -54
  14. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  15. package/fesm2022/radix-ng-primitives-collapsible.mjs +182 -81
  16. package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
  17. package/fesm2022/radix-ng-primitives-collection.mjs +40 -57
  18. package/fesm2022/radix-ng-primitives-collection.mjs.map +1 -1
  19. package/fesm2022/radix-ng-primitives-config.mjs.map +1 -1
  20. package/fesm2022/radix-ng-primitives-context-menu.mjs +140 -424
  21. package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -1
  22. package/fesm2022/radix-ng-primitives-core.mjs +735 -744
  23. package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
  24. package/fesm2022/radix-ng-primitives-cropper.mjs +1 -0
  25. package/fesm2022/radix-ng-primitives-cropper.mjs.map +1 -1
  26. package/fesm2022/radix-ng-primitives-date-field.mjs +51 -45
  27. package/fesm2022/radix-ng-primitives-date-field.mjs.map +1 -1
  28. package/fesm2022/radix-ng-primitives-dialog.mjs +655 -327
  29. package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
  30. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs +70 -46
  31. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs.map +1 -1
  32. package/fesm2022/radix-ng-primitives-drawer.mjs +1059 -0
  33. package/fesm2022/radix-ng-primitives-drawer.mjs.map +1 -0
  34. package/fesm2022/radix-ng-primitives-editable.mjs.map +1 -1
  35. package/fesm2022/radix-ng-primitives-field.mjs +363 -0
  36. package/fesm2022/radix-ng-primitives-field.mjs.map +1 -0
  37. package/fesm2022/radix-ng-primitives-fieldset.mjs +79 -0
  38. package/fesm2022/radix-ng-primitives-fieldset.mjs.map +1 -0
  39. package/fesm2022/radix-ng-primitives-focus-scope.mjs +23 -8
  40. package/fesm2022/radix-ng-primitives-focus-scope.mjs.map +1 -1
  41. package/fesm2022/radix-ng-primitives-input.mjs +172 -0
  42. package/fesm2022/radix-ng-primitives-input.mjs.map +1 -0
  43. package/fesm2022/radix-ng-primitives-label.mjs +6 -6
  44. package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
  45. package/fesm2022/radix-ng-primitives-menu.mjs +1480 -344
  46. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
  47. package/fesm2022/radix-ng-primitives-menubar.mjs +290 -162
  48. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
  49. package/fesm2022/radix-ng-primitives-meter.mjs +271 -0
  50. package/fesm2022/radix-ng-primitives-meter.mjs.map +1 -0
  51. package/fesm2022/radix-ng-primitives-navigation-menu.mjs +1052 -1553
  52. package/fesm2022/radix-ng-primitives-navigation-menu.mjs.map +1 -1
  53. package/fesm2022/radix-ng-primitives-number-field.mjs +1102 -367
  54. package/fesm2022/radix-ng-primitives-number-field.mjs.map +1 -1
  55. package/fesm2022/radix-ng-primitives-pagination.mjs.map +1 -1
  56. package/fesm2022/radix-ng-primitives-popover.mjs +978 -989
  57. package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
  58. package/fesm2022/radix-ng-primitives-popper.mjs +91 -41
  59. package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -1
  60. package/fesm2022/radix-ng-primitives-portal.mjs +34 -10
  61. package/fesm2022/radix-ng-primitives-portal.mjs.map +1 -1
  62. package/fesm2022/radix-ng-primitives-presence.mjs +134 -246
  63. package/fesm2022/radix-ng-primitives-presence.mjs.map +1 -1
  64. package/fesm2022/radix-ng-primitives-preview-card.mjs +997 -0
  65. package/fesm2022/radix-ng-primitives-preview-card.mjs.map +1 -0
  66. package/fesm2022/radix-ng-primitives-progress.mjs +223 -84
  67. package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
  68. package/fesm2022/radix-ng-primitives-radio.mjs +191 -51
  69. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  70. package/fesm2022/radix-ng-primitives-roving-focus.mjs +96 -50
  71. package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -1
  72. package/fesm2022/radix-ng-primitives-select.mjs +791 -509
  73. package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
  74. package/fesm2022/radix-ng-primitives-separator.mjs +12 -35
  75. package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
  76. package/fesm2022/radix-ng-primitives-slider.mjs +969 -717
  77. package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
  78. package/fesm2022/radix-ng-primitives-stepper.mjs +15 -19
  79. package/fesm2022/radix-ng-primitives-stepper.mjs.map +1 -1
  80. package/fesm2022/radix-ng-primitives-switch.mjs +125 -113
  81. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  82. package/fesm2022/radix-ng-primitives-tabs.mjs +381 -108
  83. package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
  84. package/fesm2022/radix-ng-primitives-time-field.mjs +55 -46
  85. package/fesm2022/radix-ng-primitives-time-field.mjs.map +1 -1
  86. package/fesm2022/radix-ng-primitives-toggle-group.mjs +121 -247
  87. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  88. package/fesm2022/radix-ng-primitives-toggle.mjs +98 -61
  89. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
  90. package/fesm2022/radix-ng-primitives-toolbar.mjs +303 -92
  91. package/fesm2022/radix-ng-primitives-toolbar.mjs.map +1 -1
  92. package/fesm2022/radix-ng-primitives-tooltip.mjs +690 -1071
  93. package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
  94. package/fesm2022/radix-ng-primitives-visually-hidden.mjs +25 -66
  95. package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -1
  96. package/meter/README.md +3 -0
  97. package/navigation-menu/README.md +2 -1
  98. package/package.json +31 -18
  99. package/portal/README.md +2 -0
  100. package/preview-card/README.md +3 -0
  101. package/schematics/collection.json +1 -0
  102. package/schematics/ng-add/index.d.ts +3 -2
  103. package/schematics/ng-add/index.js +62 -31
  104. package/schematics/ng-add/index.js.map +1 -1
  105. package/schematics/ng-add/package-config.d.ts +4 -2
  106. package/schematics/ng-add/package-config.js +10 -2
  107. package/schematics/ng-add/package-config.js.map +1 -1
  108. package/schematics/ng-add/schema.d.ts +3 -0
  109. package/schematics/ng-add/schema.js +3 -0
  110. package/schematics/ng-add/schema.js.map +1 -0
  111. package/schematics/ng-add/schema.json +14 -0
  112. package/select/README.md +2 -0
  113. package/types/radix-ng-primitives-accordion.d.ts +48 -14
  114. package/types/radix-ng-primitives-alert-dialog.d.ts +95 -38
  115. package/types/radix-ng-primitives-arrow.d.ts +1 -1
  116. package/types/radix-ng-primitives-aspect-ratio.d.ts +1 -1
  117. package/types/radix-ng-primitives-avatar.d.ts +7 -11
  118. package/types/radix-ng-primitives-button.d.ts +73 -0
  119. package/types/radix-ng-primitives-calendar.d.ts +1 -2
  120. package/types/radix-ng-primitives-checkbox.d.ts +201 -32
  121. package/types/radix-ng-primitives-collapsible.d.ts +112 -39
  122. package/types/radix-ng-primitives-collection.d.ts +38 -34
  123. package/types/radix-ng-primitives-config.d.ts +1 -1
  124. package/types/radix-ng-primitives-context-menu.d.ts +60 -116
  125. package/types/radix-ng-primitives-core.d.ts +307 -236
  126. package/types/radix-ng-primitives-cropper.d.ts +2 -2
  127. package/types/radix-ng-primitives-date-field.d.ts +38 -23
  128. package/types/radix-ng-primitives-dialog.d.ts +282 -165
  129. package/types/radix-ng-primitives-dismissable-layer.d.ts +15 -7
  130. package/types/radix-ng-primitives-drawer.d.ts +448 -0
  131. package/types/radix-ng-primitives-editable.d.ts +1 -1
  132. package/types/radix-ng-primitives-field.d.ts +373 -0
  133. package/types/radix-ng-primitives-fieldset.d.ts +48 -0
  134. package/types/radix-ng-primitives-focus-scope.d.ts +13 -5
  135. package/types/radix-ng-primitives-input.d.ts +87 -0
  136. package/types/radix-ng-primitives-label.d.ts +0 -1
  137. package/types/radix-ng-primitives-menu.d.ts +572 -99
  138. package/types/radix-ng-primitives-menubar.d.ts +60 -50
  139. package/types/radix-ng-primitives-meter.d.ts +193 -0
  140. package/types/radix-ng-primitives-navigation-menu.d.ts +422 -340
  141. package/types/radix-ng-primitives-number-field.d.ts +405 -145
  142. package/types/radix-ng-primitives-pagination.d.ts +2 -2
  143. package/types/radix-ng-primitives-popover.d.ts +365 -351
  144. package/types/radix-ng-primitives-popper.d.ts +49 -9
  145. package/types/radix-ng-primitives-portal.d.ts +14 -6
  146. package/types/radix-ng-primitives-presence.d.ts +28 -76
  147. package/types/radix-ng-primitives-preview-card.d.ts +359 -0
  148. package/types/radix-ng-primitives-progress.d.ts +174 -48
  149. package/types/radix-ng-primitives-radio.d.ts +55 -25
  150. package/types/radix-ng-primitives-roving-focus.d.ts +30 -21
  151. package/types/radix-ng-primitives-select.d.ts +475 -177
  152. package/types/radix-ng-primitives-separator.d.ts +7 -32
  153. package/types/radix-ng-primitives-slider.d.ts +315 -201
  154. package/types/radix-ng-primitives-stepper.d.ts +5 -7
  155. package/types/radix-ng-primitives-switch.d.ts +86 -71
  156. package/types/radix-ng-primitives-tabs.d.ts +213 -79
  157. package/types/radix-ng-primitives-time-field.d.ts +42 -27
  158. package/types/radix-ng-primitives-toggle-group.d.ts +85 -164
  159. package/types/radix-ng-primitives-toggle.d.ts +43 -53
  160. package/types/radix-ng-primitives-toolbar.d.ts +163 -38
  161. package/types/radix-ng-primitives-tooltip.d.ts +347 -384
  162. package/types/radix-ng-primitives-visually-hidden.d.ts +19 -19
  163. package/dropdown-menu/README.md +0 -1
  164. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +0 -581
  165. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +0 -1
  166. package/fesm2022/radix-ng-primitives-hover-card.mjs +0 -1238
  167. package/fesm2022/radix-ng-primitives-hover-card.mjs.map +0 -1
  168. package/fesm2022/radix-ng-primitives-select2.mjs +0 -897
  169. package/fesm2022/radix-ng-primitives-select2.mjs.map +0 -1
  170. package/fesm2022/radix-ng-primitives-tooltip2.mjs +0 -735
  171. package/fesm2022/radix-ng-primitives-tooltip2.mjs.map +0 -1
  172. package/hover-card/README.md +0 -3
  173. package/select2/README.md +0 -3
  174. package/tooltip2/README.md +0 -3
  175. package/types/radix-ng-primitives-dropdown-menu.d.ts +0 -171
  176. package/types/radix-ng-primitives-hover-card.d.ts +0 -471
  177. package/types/radix-ng-primitives-select2.d.ts +0 -511
  178. package/types/radix-ng-primitives-tooltip2.d.ts +0 -325
@@ -1 +1 @@
1
- {"version":3,"file":"radix-ng-primitives-popover.mjs","sources":["../../../packages/primitives/popover/src/popover-anchor.token.ts","../../../packages/primitives/popover/src/popover-arrow.token.ts","../../../packages/primitives/popover/src/popover-close.token.ts","../../../packages/primitives/popover/src/popover-content-attributes.token.ts","../../../packages/primitives/popover/src/popover.types.ts","../../../packages/primitives/popover/src/popover-content.directive.ts","../../../packages/primitives/popover/src/popover-trigger.directive.ts","../../../packages/primitives/popover/src/utils/constants.ts","../../../packages/primitives/popover/src/utils/cdk-event.service.ts","../../../packages/primitives/popover/src/popover-root.directive.ts","../../../packages/primitives/popover/src/popover-root.inject.ts","../../../packages/primitives/popover/src/popover-anchor.directive.ts","../../../packages/primitives/popover/src/popover-arrow.directive.ts","../../../packages/primitives/popover/src/popover-close.directive.ts","../../../packages/primitives/popover/src/popover-content-attributes.component.ts","../../../packages/primitives/popover/index.ts","../../../packages/primitives/popover/radix-ng-primitives-popover.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { RdxPopoverAnchorDirective } from './popover-anchor.directive';\n\nexport const RdxPopoverAnchorToken = new InjectionToken<RdxPopoverAnchorDirective>('RdxPopoverAnchorToken');\n","import { InjectionToken } from '@angular/core';\nimport { RdxPopoverArrowDirective } from './popover-arrow.directive';\n\nexport const RdxPopoverArrowToken = new InjectionToken<RdxPopoverArrowDirective>('RdxPopoverArrowToken');\n","import { InjectionToken } from '@angular/core';\nimport { RdxPopoverCloseDirective } from './popover-close.directive';\n\nexport const RdxPopoverCloseToken = new InjectionToken<RdxPopoverCloseDirective>('RdxPopoverCloseToken');\n","import { InjectionToken } from '@angular/core';\nimport { RdxPopoverContentAttributesComponent } from './popover-content-attributes.component';\n\nexport const RdxPopoverContentAttributesToken = new InjectionToken<RdxPopoverContentAttributesComponent>(\n 'RdxPopoverContentAttributesToken'\n);\n","export enum RdxPopoverState {\n OPEN = 'open',\n CLOSED = 'closed'\n}\n\nexport enum RdxPopoverAttachDetachEvent {\n ATTACH = 'attach',\n DETACH = 'detach'\n}\n\nexport enum RdxPopoverAnimationStatus {\n OPEN_STARTED = 'open_started',\n OPEN_ENDED = 'open_ended',\n CLOSED_STARTED = 'closed_started',\n CLOSED_ENDED = 'closed_ended'\n}\n","import { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport { CdkConnectedOverlay, Overlay } from '@angular/cdk/overlay';\nimport {\n booleanAttribute,\n computed,\n DestroyRef,\n Directive,\n effect,\n inject,\n input,\n numberAttribute,\n OnInit,\n output,\n SimpleChange,\n TemplateRef,\n untracked\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n getAllPossibleConnectedPositions,\n getContentPosition,\n RDX_POSITIONING_DEFAULTS,\n RdxPositionAlign,\n RdxPositionSide,\n RdxPositionSideAndAlignOffsets\n} from '@radix-ng/primitives/core';\nimport { filter, tap } from 'rxjs';\nimport { injectPopoverRoot } from './popover-root.inject';\nimport { RdxPopoverAttachDetachEvent } from './popover.types';\n\n@Directive({\n selector: '[rdxPopoverContent]',\n hostDirectives: [CdkConnectedOverlay]\n})\nexport class RdxPopoverContentDirective implements OnInit {\n /** @ignore */\n private readonly popoverRoot = injectPopoverRoot();\n /** @ignore */\n private readonly templateRef = inject(TemplateRef);\n /** @ignore */\n private readonly overlay = inject(Overlay);\n /** @ignore */\n private readonly destroyRef = inject(DestroyRef);\n /** @ignore */\n private readonly connectedOverlay = inject(CdkConnectedOverlay);\n\n /** @ignore */\n readonly name = computed(() => `rdx-popover-trigger-${this.popoverRoot.uniqueId()}`);\n\n /**\n * @description The preferred side of the trigger to render against when open. Will be reversed when collisions occur and avoidCollisions is enabled.\n * @default top\n */\n readonly side = input<RdxPositionSide>(RdxPositionSide.Top);\n /**\n * @description The distance in pixels from the trigger.\n * @default undefined\n */\n readonly sideOffset = input<number, NumberInput>(NaN, {\n transform: numberAttribute\n });\n /**\n * @description The preferred alignment against the trigger. May change when collisions occur.\n * @default center\n */\n readonly align = input<RdxPositionAlign>(RdxPositionAlign.Center);\n /**\n * @description An offset in pixels from the \"start\" or \"end\" alignment options.\n * @default undefined\n */\n readonly alignOffset = input<number, NumberInput>(NaN, {\n transform: numberAttribute\n });\n\n /**\n * @description Whether to add some alternate positions of the content.\n * @default false\n */\n readonly alternatePositionsDisabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** @description Whether to prevent `onOverlayEscapeKeyDown` handler from calling. */\n readonly onOverlayEscapeKeyDownDisabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n /** @description Whether to prevent `onOverlayOutsideClick` handler from calling. */\n readonly onOverlayOutsideClickDisabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * @description Event handler called when the escape key is down.\n * It can be prevented by setting `onOverlayEscapeKeyDownDisabled` input to `true`.\n */\n readonly onOverlayEscapeKeyDown = output<KeyboardEvent>();\n /**\n * @description Event handler called when a pointer event occurs outside the bounds of the component.\n * It can be prevented by setting `onOverlayOutsideClickDisabled` input to `true`.\n */\n readonly onOverlayOutsideClick = output<MouseEvent>();\n\n /**\n * @description Event handler called after the overlay is open\n */\n readonly onOpen = output<void>();\n /**\n * @description Event handler called after the overlay is closed\n */\n readonly onClosed = output<void>();\n\n /** @ingore */\n readonly positions = computed(() => this.computePositions());\n\n constructor() {\n this.onOriginChangeEffect();\n this.onPositionChangeEffect();\n }\n\n /** @ignore */\n ngOnInit() {\n this.setScrollStrategy();\n this.setHasBackdrop();\n this.setDisableClose();\n this.onAttach();\n this.onDetach();\n this.connectKeydownEscape();\n this.connectOutsideClick();\n }\n\n /** @ignore */\n open() {\n if (this.connectedOverlay.open) {\n return;\n }\n const prevOpen = this.connectedOverlay.open;\n this.connectedOverlay.open = true;\n this.fireOverlayNgOnChanges('open', this.connectedOverlay.open, prevOpen);\n }\n\n /** @ignore */\n close() {\n if (!this.connectedOverlay.open) {\n return;\n }\n const prevOpen = this.connectedOverlay.open;\n this.connectedOverlay.open = false;\n this.fireOverlayNgOnChanges('open', this.connectedOverlay.open, prevOpen);\n }\n\n /** @ignore */\n positionChange() {\n return this.connectedOverlay.positionChange.asObservable();\n }\n\n /** @ignore */\n private connectKeydownEscape() {\n this.connectedOverlay.overlayKeydown\n .asObservable()\n .pipe(\n filter(\n () =>\n !this.onOverlayEscapeKeyDownDisabled() &&\n !this.popoverRoot.rdxCdkEventService?.primitivePreventedFromCdkEvent(\n this.popoverRoot,\n 'cdkOverlayEscapeKeyDown'\n )\n ),\n filter((event) => event.key === 'Escape'),\n tap((event) => {\n this.onOverlayEscapeKeyDown.emit(event);\n }),\n filter(() => !this.popoverRoot.firstDefaultOpen()),\n tap(() => {\n this.popoverRoot.handleClose();\n }),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe();\n }\n\n /** @ignore */\n private connectOutsideClick() {\n this.connectedOverlay.overlayOutsideClick\n .asObservable()\n .pipe(\n filter(\n () =>\n !this.onOverlayOutsideClickDisabled() &&\n !this.popoverRoot.rdxCdkEventService?.primitivePreventedFromCdkEvent(\n this.popoverRoot,\n 'cdkOverlayOutsideClick'\n )\n ),\n /**\n * Handle the situation when an anchor is added and the anchor becomes the origin of the overlay\n * hence the trigger will be considered the outside element\n */\n filter((event) => {\n return (\n !this.popoverRoot.popoverAnchorDirective() ||\n !this.popoverRoot\n .popoverTriggerDirective()\n .elementRef.nativeElement.contains(event.target as Element)\n );\n }),\n tap((event) => {\n this.onOverlayOutsideClick.emit(event);\n }),\n filter(() => !this.popoverRoot.firstDefaultOpen()),\n tap(() => {\n this.popoverRoot.handleClose();\n }),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe();\n }\n\n /** @ignore */\n private onAttach() {\n this.connectedOverlay.attach\n .asObservable()\n .pipe(\n tap(() => {\n /**\n * `this.onOpen.emit();` is being delegated to the root directive due to the opening animation\n */\n this.popoverRoot.attachDetachEvent.set(RdxPopoverAttachDetachEvent.ATTACH);\n }),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe();\n }\n\n /** @ignore */\n private onDetach() {\n this.connectedOverlay.detach\n .asObservable()\n .pipe(\n tap(() => {\n /**\n * `this.onClosed.emit();` is being delegated to the root directive due to the closing animation\n */\n this.popoverRoot.attachDetachEvent.set(RdxPopoverAttachDetachEvent.DETACH);\n }),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe();\n }\n\n /** @ignore */\n private setScrollStrategy() {\n const prevScrollStrategy = this.connectedOverlay.scrollStrategy;\n this.connectedOverlay.scrollStrategy = this.overlay.scrollStrategies.reposition();\n this.fireOverlayNgOnChanges('scrollStrategy', this.connectedOverlay.scrollStrategy, prevScrollStrategy);\n }\n\n /** @ignore */\n private setHasBackdrop() {\n const prevHasBackdrop = this.connectedOverlay.hasBackdrop;\n this.connectedOverlay.hasBackdrop = false;\n this.fireOverlayNgOnChanges('hasBackdrop', this.connectedOverlay.hasBackdrop, prevHasBackdrop);\n }\n\n /** @ignore */\n private setDisableClose() {\n const prevDisableClose = this.connectedOverlay.disableClose;\n this.connectedOverlay.disableClose = true;\n this.fireOverlayNgOnChanges('disableClose', this.connectedOverlay.disableClose, prevDisableClose);\n }\n\n /** @ignore */\n private setOrigin(origin: CdkConnectedOverlay['origin']) {\n const prevOrigin = this.connectedOverlay.origin;\n this.connectedOverlay.origin = origin;\n this.fireOverlayNgOnChanges('origin', this.connectedOverlay.origin, prevOrigin);\n }\n\n /** @ignore */\n private setPositions(positions: CdkConnectedOverlay['positions']) {\n const prevPositions = this.connectedOverlay.positions;\n this.connectedOverlay.positions = positions;\n this.fireOverlayNgOnChanges('positions', this.connectedOverlay.positions, prevPositions);\n this.connectedOverlay.overlayRef?.updatePosition();\n }\n\n /** @ignore */\n private computePositions() {\n const arrowHeight = this.popoverRoot.popoverArrowDirective()?.height() ?? 0;\n const offsets: RdxPositionSideAndAlignOffsets = {\n sideOffset:\n arrowHeight + (isNaN(this.sideOffset()) ? RDX_POSITIONING_DEFAULTS.offsets.side : this.sideOffset()),\n alignOffset: isNaN(this.alignOffset()) ? RDX_POSITIONING_DEFAULTS.offsets.align : this.alignOffset()\n };\n const basePosition = getContentPosition({\n side: this.side(),\n align: this.align(),\n sideOffset: offsets.sideOffset,\n alignOffset: offsets.alignOffset\n });\n const positions = [basePosition];\n if (!this.alternatePositionsDisabled()) {\n /**\n * Alternate positions for better user experience along the X/Y axis (e.g. vertical/horizontal scrolling)\n */\n const allPossibleConnectedPositions = getAllPossibleConnectedPositions();\n allPossibleConnectedPositions.forEach((_, key) => {\n const sideAndAlignArray = key.split('|');\n if (\n (sideAndAlignArray[0] as RdxPositionSide) !== this.side() ||\n (sideAndAlignArray[1] as RdxPositionAlign) !== this.align()\n ) {\n positions.push(\n getContentPosition({\n side: sideAndAlignArray[0] as RdxPositionSide,\n align: sideAndAlignArray[1] as RdxPositionAlign,\n sideOffset: offsets.sideOffset,\n alignOffset: offsets.alignOffset\n })\n );\n }\n });\n }\n return positions;\n }\n\n private onOriginChangeEffect() {\n effect(() => {\n const origin = (this.popoverRoot.popoverAnchorDirective() ?? this.popoverRoot.popoverTriggerDirective())\n .overlayOrigin;\n untracked(() => {\n this.setOrigin(origin);\n });\n });\n }\n\n /** @ignore */\n private onPositionChangeEffect() {\n effect(() => {\n const positions = this.positions();\n this.alternatePositionsDisabled();\n untracked(() => {\n this.setPositions(positions);\n });\n });\n }\n\n /** @ignore */\n private fireOverlayNgOnChanges<K extends keyof CdkConnectedOverlay, V extends CdkConnectedOverlay[K]>(\n input: K,\n currentValue: V,\n previousValue: V,\n firstChange = false\n ) {\n this.connectedOverlay.ngOnChanges({\n [input]: new SimpleChange(previousValue, currentValue, firstChange)\n });\n }\n}\n","import { CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { computed, Directive, ElementRef, inject } from '@angular/core';\nimport { injectPopoverRoot } from './popover-root.inject';\n\n@Directive({\n selector: '[rdxPopoverTrigger]',\n hostDirectives: [CdkOverlayOrigin],\n host: {\n type: 'button',\n '[attr.id]': 'name()',\n '[attr.aria-haspopup]': '\"dialog\"',\n '[attr.aria-expanded]': 'popoverRoot.isOpen()',\n '[attr.aria-controls]': 'popoverRoot.popoverContentDirective().name()',\n '[attr.data-state]': 'popoverRoot.state()',\n '(click)': 'click()'\n }\n})\nexport class RdxPopoverTriggerDirective {\n /** @ignore */\n protected readonly popoverRoot = injectPopoverRoot();\n /** @ignore */\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n /** @ignore */\n readonly overlayOrigin = inject(CdkOverlayOrigin);\n\n /** @ignore */\n readonly name = computed(() => `rdx-popover-trigger-${this.popoverRoot.uniqueId()}`);\n\n /** @ignore */\n protected click(): void {\n this.popoverRoot.handleToggle();\n }\n}\n","export const RdxCdkEventServiceWindowKey = Symbol('__RdxCdkEventService__');\n","import {\n DestroyRef,\n EnvironmentProviders,\n inject,\n Injectable,\n InjectionToken,\n isDevMode,\n makeEnvironmentProviders,\n NgZone,\n Provider,\n Renderer2,\n VERSION\n} from '@angular/core';\nimport { injectDocument, injectWindow } from '@radix-ng/primitives/core';\nimport { RdxCdkEventServiceWindowKey } from './constants';\nimport { EventType, EventTypeAsPrimitiveConfigKey, PrimitiveConfig, PrimitiveConfigs } from './types';\n\nfunction eventTypeAsPrimitiveConfigKey(eventType: EventType): EventTypeAsPrimitiveConfigKey {\n return `prevent${eventType[0].toUpperCase()}${eventType.slice(1)}` as EventTypeAsPrimitiveConfigKey;\n}\n\n@Injectable()\nclass RdxCdkEventService {\n document = injectDocument();\n destroyRef = inject(DestroyRef);\n ngZone = inject(NgZone);\n renderer2 = inject(Renderer2);\n window = injectWindow();\n\n primitiveConfigs?: PrimitiveConfigs;\n\n onDestroyCallbacks: Set<() => void> = new Set([() => deleteRdxCdkEventServiceWindowKey(this.window)]);\n\n #clickDomRootEventCallbacks: Set<(event: MouseEvent) => void> = new Set();\n\n constructor() {\n this.#listenToClickDomRootEvent();\n this.#registerOnDestroyCallbacks();\n }\n\n registerPrimitive<T extends object>(primitiveInstance: T) {\n if (!this.primitiveConfigs) {\n this.primitiveConfigs = new Map();\n }\n if (!this.primitiveConfigs.has(primitiveInstance)) {\n this.primitiveConfigs.set(primitiveInstance, {});\n }\n }\n\n deregisterPrimitive<T extends object>(primitiveInstance: T) {\n if (this.primitiveConfigs?.has(primitiveInstance)) {\n this.primitiveConfigs.delete(primitiveInstance);\n }\n }\n\n preventPrimitiveFromCdkEvent<T extends object>(primitiveInstance: T, eventType: EventType) {\n this.#setPreventPrimitiveFromCdkEvent(primitiveInstance, eventType, true);\n }\n\n allowPrimitiveForCdkEvent<T extends object>(primitiveInstance: T, eventType: EventType) {\n this.#setPreventPrimitiveFromCdkEvent(primitiveInstance, eventType, false);\n }\n\n preventPrimitiveFromCdkMultiEvents<T extends object>(primitiveInstance: T, eventTypes: EventType[]) {\n eventTypes.forEach((eventType) => {\n this.#setPreventPrimitiveFromCdkEvent(primitiveInstance, eventType, true);\n });\n }\n\n allowPrimitiveForCdkMultiEvents<T extends object>(primitiveInstance: T, eventTypes: EventType[]) {\n eventTypes.forEach((eventType) => {\n this.#setPreventPrimitiveFromCdkEvent(primitiveInstance, eventType, false);\n });\n }\n\n setPreventPrimitiveFromCdkMixEvents<T extends object>(primitiveInstance: T, eventTypes: PrimitiveConfig) {\n Object.keys(eventTypes).forEach((eventType) => {\n this.#setPreventPrimitiveFromCdkEvent(\n primitiveInstance,\n eventType as EventType,\n eventTypes[eventTypeAsPrimitiveConfigKey(eventType as EventType)]\n );\n });\n }\n\n primitivePreventedFromCdkEvent<T extends object>(primitiveInstance: T, eventType: EventType) {\n return this.primitiveConfigs?.get(primitiveInstance)?.[eventTypeAsPrimitiveConfigKey(eventType)];\n }\n\n addClickDomRootEventCallback(callback: (event: MouseEvent) => void) {\n this.#clickDomRootEventCallbacks.add(callback);\n }\n\n removeClickDomRootEventCallback(callback: (event: MouseEvent) => void) {\n return this.#clickDomRootEventCallbacks.delete(callback);\n }\n\n #setPreventPrimitiveFromCdkEvent<\n T extends object,\n R extends EventType,\n K extends PrimitiveConfig[EventTypeAsPrimitiveConfigKey<R>]\n >(primitiveInstance: T, eventType: R, value: K) {\n if (!this.primitiveConfigs?.has(primitiveInstance)) {\n isDevMode() &&\n console.error(\n '[RdxCdkEventService.preventPrimitiveFromCdkEvent] RDX Primitive instance has not been registered!',\n primitiveInstance\n );\n return;\n }\n switch (eventType) {\n case 'cdkOverlayOutsideClick':\n this.primitiveConfigs.get(primitiveInstance)!.preventCdkOverlayOutsideClick = value;\n break;\n case 'cdkOverlayEscapeKeyDown':\n this.primitiveConfigs.get(primitiveInstance)!.preventCdkOverlayEscapeKeyDown = value;\n break;\n }\n }\n\n #registerOnDestroyCallbacks() {\n this.destroyRef.onDestroy(() => {\n this.onDestroyCallbacks.forEach((onDestroyCallback) => onDestroyCallback());\n this.onDestroyCallbacks.clear();\n });\n }\n\n #listenToClickDomRootEvent() {\n const target = this.document;\n const eventName = 'click';\n const options: boolean | AddEventListenerOptions | undefined = { capture: true };\n const callback = (event: MouseEvent) => {\n this.#clickDomRootEventCallbacks.forEach((clickDomRootEventCallback) => clickDomRootEventCallback(event));\n };\n\n const major = parseInt(VERSION.major);\n const minor = parseInt(VERSION.minor);\n\n let destroyClickDomRootEventListener!: () => void;\n /**\n * @see src/cdk/platform/features/backwards-compatibility.ts in @angular/cdk\n */\n if (major > 19 || (major === 19 && minor > 0) || (major === 0 && minor === 0)) {\n destroyClickDomRootEventListener = this.ngZone.runOutsideAngular(() => {\n const destroyClickDomRootEventListenerInternal = this.renderer2.listen(\n target,\n eventName,\n callback,\n\n options\n );\n return () => {\n destroyClickDomRootEventListenerInternal();\n this.#clickDomRootEventCallbacks.clear();\n };\n });\n } else {\n /**\n * This part can get removed when v19.1 or higher is on the board\n */\n destroyClickDomRootEventListener = this.ngZone.runOutsideAngular(() => {\n target.addEventListener(eventName, callback, options);\n return () => {\n this.ngZone.runOutsideAngular(() => target.removeEventListener(eventName, callback, options));\n this.#clickDomRootEventCallbacks.clear();\n };\n });\n }\n this.onDestroyCallbacks.add(destroyClickDomRootEventListener);\n }\n}\n\nconst RdxCdkEventServiceToken = new InjectionToken<RdxCdkEventService>('RdxCdkEventServiceToken');\n\nconst existsErrorMessage = 'RdxCdkEventService should be provided only once!';\n\nconst deleteRdxCdkEventServiceWindowKey = (window: Window & typeof globalThis) => {\n delete (window as any)[RdxCdkEventServiceWindowKey];\n};\n\nconst getProvider: (throwWhenExists?: boolean) => Provider = (throwWhenExists = true) => ({\n provide: RdxCdkEventServiceToken,\n useFactory: () => {\n isDevMode() && console.log('providing RdxCdkEventService...');\n const window = injectWindow();\n if ((window as any)[RdxCdkEventServiceWindowKey]) {\n if (throwWhenExists) {\n throw Error(existsErrorMessage);\n } else {\n isDevMode() && console.warn(existsErrorMessage);\n }\n }\n (window as any)[RdxCdkEventServiceWindowKey] ??= new RdxCdkEventService();\n return (window as any)[RdxCdkEventServiceWindowKey];\n }\n});\n\nexport const provideRdxCdkEventServiceInRoot: () => EnvironmentProviders = () =>\n makeEnvironmentProviders([getProvider()]);\nexport const provideRdxCdkEventService: () => Provider = () => getProvider(false);\n\nexport const injectRdxCdkEventService = () => inject(RdxCdkEventServiceToken, { optional: true });\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n afterNextRender,\n booleanAttribute,\n computed,\n contentChild,\n DestroyRef,\n Directive,\n effect,\n inject,\n input,\n signal,\n untracked,\n ViewContainerRef\n} from '@angular/core';\nimport { RdxPopoverAnchorDirective } from './popover-anchor.directive';\nimport { RdxPopoverAnchorToken } from './popover-anchor.token';\nimport { RdxPopoverArrowToken } from './popover-arrow.token';\nimport { RdxPopoverCloseToken } from './popover-close.token';\nimport { RdxPopoverContentAttributesToken } from './popover-content-attributes.token';\nimport { RdxPopoverContentDirective } from './popover-content.directive';\nimport { RdxPopoverTriggerDirective } from './popover-trigger.directive';\nimport { RdxPopoverAnimationStatus, RdxPopoverAttachDetachEvent, RdxPopoverState } from './popover.types';\nimport { injectRdxCdkEventService } from './utils/cdk-event.service';\n\nlet nextId = 0;\n\n@Directive({\n selector: '[rdxPopoverRoot]',\n exportAs: 'rdxPopoverRoot'\n})\nexport class RdxPopoverRootDirective {\n /** @ignore */\n readonly uniqueId = signal(++nextId);\n /** @ignore */\n readonly name = computed(() => `rdx-popover-root-${this.uniqueId()}`);\n\n /**\n * @description The anchor directive that comes form outside the popover root\n * @default undefined\n */\n readonly anchor = input<RdxPopoverAnchorDirective | undefined>(void 0);\n /**\n * @description The open state of the popover when it is initially rendered. Use when you do not need to control its open state.\n * @default false\n */\n readonly defaultOpen = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n /**\n * @description The controlled state of the popover. `open` input take precedence of `defaultOpen` input.\n * @default undefined\n */\n readonly open = input<boolean | undefined, BooleanInput>(void 0, { transform: booleanAttribute });\n /**\n * @description Whether to control the state of the popover from external. Use in conjunction with `open` input.\n * @default undefined\n */\n readonly externalControl = input<boolean | undefined, BooleanInput>(void 0, { transform: booleanAttribute });\n /**\n * @description Whether to take into account CSS opening/closing animations.\n * @default false\n */\n readonly cssAnimation = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n /**\n * @description Whether to take into account CSS opening animations. `cssAnimation` input must be set to 'true'\n * @default false\n */\n readonly cssOpeningAnimation = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n /**\n * @description Whether to take into account CSS closing animations. `cssAnimation` input must be set to 'true'\n * @default false\n */\n readonly cssClosingAnimation = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** @ignore */\n readonly cssAnimationStatus = signal<RdxPopoverAnimationStatus | null>(null);\n\n /** @ignore */\n readonly popoverContentDirective = contentChild.required(RdxPopoverContentDirective);\n /** @ignore */\n readonly popoverTriggerDirective = contentChild.required(RdxPopoverTriggerDirective);\n /** @ignore */\n readonly popoverArrowDirective = contentChild(RdxPopoverArrowToken);\n /** @ignore */\n readonly popoverCloseDirective = contentChild(RdxPopoverCloseToken);\n /** @ignore */\n readonly popoverContentAttributesComponent = contentChild(RdxPopoverContentAttributesToken);\n /** @ignore */\n private readonly internalPopoverAnchorDirective = contentChild(RdxPopoverAnchorToken);\n\n /** @ignore */\n readonly viewContainerRef = inject(ViewContainerRef);\n /** @ignore */\n readonly rdxCdkEventService = injectRdxCdkEventService();\n /** @ignore */\n readonly destroyRef = inject(DestroyRef);\n\n /** @ignore */\n readonly state = signal(RdxPopoverState.CLOSED);\n\n /** @ignore */\n readonly attachDetachEvent = signal(RdxPopoverAttachDetachEvent.DETACH);\n\n /** @ignore */\n private readonly isFirstDefaultOpen = signal(false);\n\n /** @ignore */\n readonly popoverAnchorDirective = computed(() => this.internalPopoverAnchorDirective() ?? this.anchor());\n\n constructor() {\n this.rdxCdkEventService?.registerPrimitive(this);\n this.destroyRef.onDestroy(() => this.rdxCdkEventService?.deregisterPrimitive(this));\n this.onStateChangeEffect();\n this.onCssAnimationStatusChangeChangeEffect();\n this.onOpenChangeEffect();\n this.onIsFirstDefaultOpenChangeEffect();\n this.onAnchorChangeEffect();\n this.emitOpenOrClosedEventEffect();\n afterNextRender({\n write: () => {\n if (this.defaultOpen() && !this.open()) {\n this.isFirstDefaultOpen.set(true);\n }\n }\n });\n }\n\n /** @ignore */\n getAnimationParamsSnapshot() {\n return {\n cssAnimation: this.cssAnimation(),\n cssOpeningAnimation: this.cssOpeningAnimation(),\n cssClosingAnimation: this.cssClosingAnimation(),\n cssAnimationStatus: this.cssAnimationStatus(),\n attachDetachEvent: this.attachDetachEvent(),\n state: this.state(),\n canEmitOnOpenOrOnClosed: this.canEmitOnOpenOrOnClosed()\n };\n }\n\n /** @ignore */\n controlledExternally() {\n return this.externalControl;\n }\n\n /** @ignore */\n firstDefaultOpen() {\n return this.isFirstDefaultOpen();\n }\n\n /** @ignore */\n handleOpen(): void {\n if (this.externalControl()) {\n return;\n }\n this.setState(RdxPopoverState.OPEN);\n }\n\n /** @ignore */\n handleClose(): void {\n if (this.isFirstDefaultOpen()) {\n this.isFirstDefaultOpen.set(false);\n }\n if (this.externalControl()) {\n return;\n }\n this.setState(RdxPopoverState.CLOSED);\n }\n\n /** @ignore */\n handleToggle(): void {\n if (this.externalControl()) {\n return;\n }\n this.isOpen() ? this.handleClose() : this.handleOpen();\n }\n\n /** @ignore */\n isOpen(state?: RdxPopoverState) {\n return (state ?? this.state()) === RdxPopoverState.OPEN;\n }\n\n /** @ignore */\n private setState(state = RdxPopoverState.CLOSED): void {\n if (state === this.state()) {\n return;\n }\n this.state.set(state);\n }\n\n /** @ignore */\n private openContent(): void {\n this.popoverContentDirective().open();\n if (!this.cssAnimation() || !this.cssOpeningAnimation()) {\n this.cssAnimationStatus.set(null);\n }\n }\n\n /** @ignore */\n private closeContent(): void {\n this.popoverContentDirective().close();\n if (!this.cssAnimation() || !this.cssClosingAnimation()) {\n this.cssAnimationStatus.set(null);\n }\n }\n\n /** @ignore */\n private emitOnOpen(): void {\n this.popoverContentDirective().onOpen.emit();\n }\n\n /** @ignore */\n private emitOnClosed(): void {\n this.popoverContentDirective().onClosed.emit();\n }\n\n /** @ignore */\n private ifOpenOrCloseWithoutAnimations(state: RdxPopoverState) {\n return (\n !this.popoverContentAttributesComponent() ||\n !this.cssAnimation() ||\n (this.cssAnimation() && !this.cssClosingAnimation() && state === RdxPopoverState.CLOSED) ||\n (this.cssAnimation() && !this.cssOpeningAnimation() && state === RdxPopoverState.OPEN) ||\n // !this.cssAnimationStatus() ||\n (this.cssOpeningAnimation() &&\n state === RdxPopoverState.OPEN &&\n [RdxPopoverAnimationStatus.OPEN_STARTED].includes(this.cssAnimationStatus()!)) ||\n (this.cssClosingAnimation() &&\n state === RdxPopoverState.CLOSED &&\n [RdxPopoverAnimationStatus.CLOSED_STARTED].includes(this.cssAnimationStatus()!))\n );\n }\n\n /** @ignore */\n private ifOpenOrCloseWithAnimations(cssAnimationStatus: RdxPopoverAnimationStatus | null) {\n return (\n this.popoverContentAttributesComponent() &&\n this.cssAnimation() &&\n cssAnimationStatus &&\n ((this.cssOpeningAnimation() &&\n this.state() === RdxPopoverState.OPEN &&\n [RdxPopoverAnimationStatus.OPEN_ENDED].includes(cssAnimationStatus)) ||\n (this.cssClosingAnimation() &&\n this.state() === RdxPopoverState.CLOSED &&\n [RdxPopoverAnimationStatus.CLOSED_ENDED].includes(cssAnimationStatus)))\n );\n }\n\n /** @ignore */\n private openOrClose(state: RdxPopoverState) {\n const isOpen = this.isOpen(state);\n isOpen ? this.openContent() : this.closeContent();\n }\n\n /** @ignore */\n private emitOnOpenOrOnClosed(state: RdxPopoverState) {\n this.isOpen(state)\n ? this.attachDetachEvent() === RdxPopoverAttachDetachEvent.ATTACH && this.emitOnOpen()\n : this.attachDetachEvent() === RdxPopoverAttachDetachEvent.DETACH && this.emitOnClosed();\n }\n\n /** @ignore */\n private canEmitOnOpenOrOnClosed() {\n return (\n !this.cssAnimation() ||\n (!this.cssOpeningAnimation() && this.state() === RdxPopoverState.OPEN) ||\n (this.cssOpeningAnimation() &&\n this.state() === RdxPopoverState.OPEN &&\n this.cssAnimationStatus() === RdxPopoverAnimationStatus.OPEN_ENDED) ||\n (!this.cssClosingAnimation() && this.state() === RdxPopoverState.CLOSED) ||\n (this.cssClosingAnimation() &&\n this.state() === RdxPopoverState.CLOSED &&\n this.cssAnimationStatus() === RdxPopoverAnimationStatus.CLOSED_ENDED)\n );\n }\n\n /** @ignore */\n private onStateChangeEffect() {\n let isFirst = true;\n effect(() => {\n const state = this.state();\n untracked(() => {\n if (isFirst) {\n isFirst = false;\n return;\n }\n if (!this.ifOpenOrCloseWithoutAnimations(state)) {\n return;\n }\n this.openOrClose(state);\n });\n }, {});\n }\n\n /** @ignore */\n private onCssAnimationStatusChangeChangeEffect() {\n let isFirst = true;\n effect(() => {\n const cssAnimationStatus = this.cssAnimationStatus();\n untracked(() => {\n if (isFirst) {\n isFirst = false;\n return;\n }\n if (!this.ifOpenOrCloseWithAnimations(cssAnimationStatus)) {\n return;\n }\n this.openOrClose(this.state());\n });\n });\n }\n\n /** @ignore */\n private emitOpenOrClosedEventEffect() {\n let isFirst = true;\n effect(() => {\n this.attachDetachEvent();\n this.cssAnimationStatus();\n untracked(() => {\n if (isFirst) {\n isFirst = false;\n return;\n }\n const canEmitOpenClose = untracked(() => this.canEmitOnOpenOrOnClosed());\n if (!canEmitOpenClose) {\n return;\n }\n this.emitOnOpenOrOnClosed(this.state());\n });\n });\n }\n\n /** @ignore */\n private onOpenChangeEffect() {\n effect(() => {\n const open = this.open();\n untracked(() => {\n this.setState(open ? RdxPopoverState.OPEN : RdxPopoverState.CLOSED);\n });\n });\n }\n\n /** @ignore */\n private onIsFirstDefaultOpenChangeEffect() {\n const effectRef = effect(() => {\n const defaultOpen = this.defaultOpen();\n untracked(() => {\n if (!defaultOpen || this.open()) {\n effectRef.destroy();\n return;\n }\n this.handleOpen();\n });\n });\n }\n\n /** @ignore */\n private onAnchorChangeEffect = () => {\n effect(() => {\n const anchor = this.anchor();\n untracked(() => {\n if (anchor) {\n anchor.setPopoverRoot(this);\n }\n });\n });\n };\n}\n","import { assertInInjectionContext, inject, isDevMode } from '@angular/core';\nimport { RdxPopoverRootDirective } from './popover-root.directive';\n\nexport function injectPopoverRoot(optional?: false): RdxPopoverRootDirective;\nexport function injectPopoverRoot(optional: true): RdxPopoverRootDirective | null;\nexport function injectPopoverRoot(optional = false): RdxPopoverRootDirective | null {\n isDevMode() && assertInInjectionContext(injectPopoverRoot);\n return inject(RdxPopoverRootDirective, { optional });\n}\n","import { CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { computed, Directive, ElementRef, forwardRef, inject } from '@angular/core';\nimport { injectDocument } from '@radix-ng/primitives/core';\nimport { RdxPopoverAnchorToken } from './popover-anchor.token';\nimport { RdxPopoverRootDirective } from './popover-root.directive';\nimport { injectPopoverRoot } from './popover-root.inject';\n\n@Directive({\n selector: '[rdxPopoverAnchor]',\n exportAs: 'rdxPopoverAnchor',\n hostDirectives: [CdkOverlayOrigin],\n host: {\n type: 'button',\n '[attr.id]': 'name()',\n '[attr.aria-haspopup]': '\"dialog\"',\n '(click)': 'click()'\n },\n providers: [\n {\n provide: RdxPopoverAnchorToken,\n useExisting: forwardRef(() => RdxPopoverAnchorDirective)\n }\n ]\n})\nexport class RdxPopoverAnchorDirective {\n /**\n * @ignore\n * If outside the root then null, otherwise the root directive - with optional `true` passed in as the first param.\n * If outside the root and non-null value that means the html structure is wrong - popover inside popover.\n * */\n protected popoverRoot = injectPopoverRoot(true);\n /** @ignore */\n readonly elementRef = inject(ElementRef);\n /** @ignore */\n readonly overlayOrigin = inject(CdkOverlayOrigin);\n /** @ignore */\n readonly document = injectDocument();\n\n /** @ignore */\n readonly name = computed(() => `rdx-popover-external-anchor-${this.popoverRoot?.uniqueId()}`);\n\n /** @ignore */\n click(): void {\n this.emitOutsideClick();\n }\n\n /** @ignore */\n setPopoverRoot(popoverRoot: RdxPopoverRootDirective) {\n this.popoverRoot = popoverRoot;\n }\n\n private emitOutsideClick() {\n if (\n !this.popoverRoot?.isOpen() ||\n this.popoverRoot?.popoverContentDirective().onOverlayOutsideClickDisabled()\n ) {\n return;\n }\n const clickEvent = new MouseEvent('click', {\n view: this.document.defaultView,\n bubbles: true,\n cancelable: true,\n relatedTarget: this.elementRef.nativeElement\n });\n this.popoverRoot?.popoverTriggerDirective().elementRef.nativeElement.dispatchEvent(clickEvent);\n }\n}\n","import { NumberInput } from '@angular/cdk/coercion';\nimport { ConnectedOverlayPositionChange } from '@angular/cdk/overlay';\nimport {\n afterNextRender,\n computed,\n Directive,\n effect,\n ElementRef,\n forwardRef,\n inject,\n input,\n numberAttribute,\n Renderer2,\n signal,\n untracked\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport {\n getArrowPositionParams,\n getSideAndAlignFromAllPossibleConnectedPositions,\n RDX_POSITIONING_DEFAULTS\n} from '@radix-ng/primitives/core';\nimport { RdxPopoverArrowToken } from './popover-arrow.token';\nimport { injectPopoverRoot } from './popover-root.inject';\n\n@Directive({\n selector: '[rdxPopoverArrow]',\n providers: [\n {\n provide: RdxPopoverArrowToken,\n useExisting: forwardRef(() => RdxPopoverArrowDirective)\n }\n ]\n})\nexport class RdxPopoverArrowDirective {\n /** @ignore */\n private readonly renderer = inject(Renderer2);\n /** @ignore */\n private readonly popoverRoot = injectPopoverRoot();\n /** @ignore */\n readonly elementRef = inject(ElementRef);\n\n /**\n * @description The width of the arrow in pixels.\n * @default 10\n */\n readonly width = input<number, NumberInput>(RDX_POSITIONING_DEFAULTS.arrow.width, { transform: numberAttribute });\n\n /**\n * @description The height of the arrow in pixels.\n * @default 5\n */\n readonly height = input<number, NumberInput>(RDX_POSITIONING_DEFAULTS.arrow.height, { transform: numberAttribute });\n\n /** @ignore */\n readonly arrowSvgElement = computed<HTMLElement>(() => {\n const width = this.width();\n const height = this.height();\n\n const svgElement = this.renderer.createElement('svg', 'svg');\n this.renderer.setAttribute(svgElement, 'viewBox', '0 0 30 10');\n this.renderer.setAttribute(svgElement, 'width', String(width));\n this.renderer.setAttribute(svgElement, 'height', String(height));\n const polygonElement = this.renderer.createElement('polygon', 'svg');\n this.renderer.setAttribute(polygonElement, 'points', '0,0 30,0 15,10');\n this.renderer.setAttribute(svgElement, 'preserveAspectRatio', 'none');\n this.renderer.appendChild(svgElement, polygonElement);\n\n return svgElement;\n });\n\n /** @ignore */\n private readonly currentArrowSvgElement = signal<HTMLOrSVGElement | undefined>(void 0);\n /** @ignore */\n private readonly position = toSignal(this.popoverRoot.popoverContentDirective().positionChange());\n\n /** @ignore */\n private anchorOrTriggerRect: DOMRect;\n\n constructor() {\n afterNextRender({\n write: () => {\n if (this.elementRef.nativeElement.parentElement) {\n this.renderer.setStyle(this.elementRef.nativeElement.parentElement, 'position', 'relative');\n }\n this.renderer.setStyle(this.elementRef.nativeElement, 'position', 'absolute');\n this.renderer.setStyle(this.elementRef.nativeElement, 'boxSizing', '');\n this.renderer.setStyle(this.elementRef.nativeElement, 'fontSize', '0px');\n }\n });\n this.onArrowSvgElementChangeEffect();\n this.onContentPositionAndArrowDimensionsChangeEffect();\n }\n\n /** @ignore */\n private setAnchorOrTriggerRect() {\n this.anchorOrTriggerRect = (\n this.popoverRoot.popoverAnchorDirective() ?? this.popoverRoot.popoverTriggerDirective()\n ).elementRef.nativeElement.getBoundingClientRect();\n }\n\n /** @ignore */\n private setPosition(position: ConnectedOverlayPositionChange, arrowDimensions: { width: number; height: number }) {\n this.setAnchorOrTriggerRect();\n const posParams = getArrowPositionParams(\n getSideAndAlignFromAllPossibleConnectedPositions(position.connectionPair),\n { width: arrowDimensions.width, height: arrowDimensions.height },\n { width: this.anchorOrTriggerRect.width, height: this.anchorOrTriggerRect.height }\n );\n\n this.renderer.setStyle(this.elementRef.nativeElement, 'top', posParams.top);\n this.renderer.setStyle(this.elementRef.nativeElement, 'bottom', '');\n this.renderer.setStyle(this.elementRef.nativeElement, 'left', posParams.left);\n this.renderer.setStyle(this.elementRef.nativeElement, 'right', '');\n this.renderer.setStyle(this.elementRef.nativeElement, 'transform', posParams.transform);\n this.renderer.setStyle(this.elementRef.nativeElement, 'transformOrigin', posParams.transformOrigin);\n }\n\n /** @ignore */\n private onArrowSvgElementChangeEffect() {\n effect(() => {\n const arrowElement = this.arrowSvgElement();\n untracked(() => {\n const currentArrowSvgElement = this.currentArrowSvgElement();\n if (currentArrowSvgElement) {\n this.renderer.removeChild(this.elementRef.nativeElement, currentArrowSvgElement);\n }\n this.currentArrowSvgElement.set(arrowElement);\n this.renderer.setStyle(this.elementRef.nativeElement, 'width', `${this.width()}px`);\n this.renderer.setStyle(this.elementRef.nativeElement, 'height', `${this.height()}px`);\n this.renderer.appendChild(this.elementRef.nativeElement, this.currentArrowSvgElement());\n });\n });\n }\n\n /** @ignore */\n private onContentPositionAndArrowDimensionsChangeEffect() {\n effect(() => {\n const position = this.position();\n const arrowDimensions = { width: this.width(), height: this.height() };\n untracked(() => {\n if (!position) {\n return;\n }\n this.setPosition(position, arrowDimensions);\n });\n });\n }\n}\n","import { Directive, effect, ElementRef, forwardRef, inject, Renderer2, untracked } from '@angular/core';\nimport { RdxPopoverCloseToken } from './popover-close.token';\nimport { injectPopoverRoot } from './popover-root.inject';\n\n@Directive({\n selector: '[rdxPopoverClose]',\n host: {\n type: 'button',\n '(click)': 'popoverRoot.handleClose()'\n },\n providers: [\n {\n provide: RdxPopoverCloseToken,\n useExisting: forwardRef(() => RdxPopoverCloseDirective)\n }\n ]\n})\nexport class RdxPopoverCloseDirective {\n /** @ignore */\n protected readonly popoverRoot = injectPopoverRoot();\n /** @ignore */\n readonly elementRef = inject(ElementRef);\n /** @ignore */\n private readonly renderer = inject(Renderer2);\n\n constructor() {\n this.onIsControlledExternallyEffect();\n }\n\n /** @ignore */\n private onIsControlledExternallyEffect() {\n effect(() => {\n const isControlledExternally = this.popoverRoot.controlledExternally()();\n\n untracked(() => {\n this.renderer.setStyle(\n this.elementRef.nativeElement,\n 'display',\n isControlledExternally ? 'none' : null\n );\n });\n });\n }\n}\n","import { CdkTrapFocus } from '@angular/cdk/a11y';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChild,\n forwardRef,\n inject\n} from '@angular/core';\nimport { RdxFocusInitialDirective } from '@radix-ng/primitives/core';\nimport { RdxPopoverContentAttributesToken } from './popover-content-attributes.token';\nimport { injectPopoverRoot } from './popover-root.inject';\nimport { RdxPopoverAnimationStatus, RdxPopoverState } from './popover.types';\n\n@Component({\n selector: '[rdxPopoverContentAttributes]',\n template: `\n <ng-content />\n `,\n host: {\n '[attr.role]': '\"dialog\"',\n '[attr.id]': 'name()',\n '[attr.data-state]': 'popoverRoot.state()',\n '[attr.data-side]': 'popoverRoot.popoverContentDirective().side()',\n '[attr.data-align]': 'popoverRoot.popoverContentDirective().align()',\n '[style]': 'disableAnimation() ? {animation: \"none !important\"} : null',\n '(animationstart)': 'onAnimationStart($event)',\n '(animationend)': 'onAnimationEnd($event)'\n },\n hostDirectives: [CdkTrapFocus],\n providers: [\n {\n provide: RdxPopoverContentAttributesToken,\n useExisting: forwardRef(() => RdxPopoverContentAttributesComponent)\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RdxPopoverContentAttributesComponent {\n /** @ignore */\n private readonly focusTrapDirective = inject(CdkTrapFocus, { self: true });\n\n /** @ignore */\n @ContentChild(RdxFocusInitialDirective, { descendants: true })\n private readonly focusInitialDirective: RdxFocusInitialDirective;\n\n /** @ignore */\n protected readonly popoverRoot = injectPopoverRoot();\n\n /** @ignore */\n readonly name = computed(() => `rdx-popover-content-attributes-${this.popoverRoot.uniqueId()}`);\n\n /** @ignore */\n readonly disableAnimation = computed(() => !this.canAnimate());\n\n constructor() {\n afterNextRender({\n write: () => {\n if (this.focusInitialDirective) {\n return this.focusInitialDirective.focus();\n }\n this.focusTrapDirective.focusTrap.focusFirstTabbableElement();\n }\n });\n }\n\n /** @ignore */\n protected onAnimationStart(_: AnimationEvent) {\n this.popoverRoot.cssAnimationStatus.set(\n this.popoverRoot.state() === RdxPopoverState.OPEN\n ? RdxPopoverAnimationStatus.OPEN_STARTED\n : RdxPopoverAnimationStatus.CLOSED_STARTED\n );\n }\n\n /** @ignore */\n protected onAnimationEnd(_: AnimationEvent) {\n this.popoverRoot.cssAnimationStatus.set(\n this.popoverRoot.state() === RdxPopoverState.OPEN\n ? RdxPopoverAnimationStatus.OPEN_ENDED\n : RdxPopoverAnimationStatus.CLOSED_ENDED\n );\n }\n\n /** @ignore */\n private canAnimate() {\n return (\n this.popoverRoot.cssAnimation() &&\n ((this.popoverRoot.cssOpeningAnimation() && this.popoverRoot.state() === RdxPopoverState.OPEN) ||\n (this.popoverRoot.cssClosingAnimation() && this.popoverRoot.state() === RdxPopoverState.CLOSED))\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RdxPopoverAnchorDirective } from './src/popover-anchor.directive';\nimport { RdxPopoverArrowDirective } from './src/popover-arrow.directive';\nimport { RdxPopoverCloseDirective } from './src/popover-close.directive';\nimport { RdxPopoverContentAttributesComponent } from './src/popover-content-attributes.component';\nimport { RdxPopoverContentDirective } from './src/popover-content.directive';\nimport { RdxPopoverRootDirective } from './src/popover-root.directive';\nimport { RdxPopoverTriggerDirective } from './src/popover-trigger.directive';\n\nexport * from './src/popover-anchor.directive';\nexport * from './src/popover-arrow.directive';\nexport * from './src/popover-close.directive';\nexport * from './src/popover-content-attributes.component';\nexport * from './src/popover-content.directive';\nexport * from './src/popover-root.directive';\nexport * from './src/popover-trigger.directive';\n\nconst _imports = [\n RdxPopoverArrowDirective,\n RdxPopoverCloseDirective,\n RdxPopoverContentDirective,\n RdxPopoverTriggerDirective,\n RdxPopoverRootDirective,\n RdxPopoverAnchorDirective,\n RdxPopoverContentAttributesComponent\n];\n\n@NgModule({\n imports: [..._imports],\n exports: [..._imports]\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-portal-presence.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 inject,\n input,\n model,\n output,\n Signal,\n signal,\n untracked\n} from '@angular/core';\nimport {\n BooleanInput,\n createContext,\n injectId,\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 interface RdxPopoverOpenChange {\n open: boolean;\n triggerId: string | null;\n trigger: HTMLElement | undefined;\n reason: RdxPopoverOpenChangeReason;\n event: Event;\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 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 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 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] =\n createContext<RdxPopoverRootContext>('RdxPopoverRootContext');\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: [provideRdxPopoverRootContext(context)],\n hostDirectives: [RdxPopper]\n})\nexport class RdxPopoverRoot {\n private readonly popper = inject(RdxPopper);\n private readonly destroyRef = inject(DestroyRef);\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 readonly popupCloseCount = signal(0);\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'));\n\n constructor() {\n let previousOpen = this.open();\n\n effect(() => {\n const defaultOpen = this.defaultOpen();\n\n if (!this.hasAppliedDefaultOpen && defaultOpen) {\n this.hasAppliedDefaultOpen = true;\n this.open.set(defaultOpen);\n }\n });\n\n effect(() => {\n const defaultTriggerId = this.defaultTriggerId();\n\n if (!this.hasAppliedDefaultTriggerId && defaultTriggerId !== null) {\n this.hasAppliedDefaultTriggerId = true;\n this.triggerId.set(defaultTriggerId);\n }\n });\n\n effect(() => {\n const triggerId = this.triggerId();\n untracked(() => this.syncTriggerId(triggerId));\n });\n\n effect(() => {\n const open = this.open();\n\n if (open !== previousOpen) {\n previousOpen = open;\n untracked(() => this.transition.start(open));\n }\n });\n\n effect((onCleanup) => {\n const handle = this.handle();\n\n if (handle) {\n onCleanup(untracked(() => handle.registerRoot(contextFor(this))));\n }\n });\n\n effect(() => this.popper.anchorOverride.set(this.trigger()));\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 this.isHoverActive.set(fromHover);\n this.openChangeReason.set(reason);\n const previousTrigger = this.trigger();\n const changedTriggerWhileOpen = this.open() && previousTrigger !== trigger;\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 const changed = !this.open() || previousTrigger !== trigger;\n this.open.set(true);\n\n if (changed) {\n this.emitOpenChange(true, reason, event);\n }\n }\n\n close(reason: RdxPopoverOpenChangeReason = 'none', event = new Event('popover.open-change')) {\n this.clearHoverTimers();\n this.isHoverActive.set(false);\n\n if (!this.open()) {\n return;\n }\n\n this.instant.set(reason !== 'none' && reason !== 'trigger-hover');\n this.openChangeReason.set(reason);\n this.open.set(false);\n this.emitOpenChange(false, reason, 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\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\n if (this.destroyRef.destroyed) {\n return;\n }\n\n if (this.trigger() === trigger) {\n const next = this.registeredTriggers.entries().next().value as\n | [string, RdxPopoverRegisteredTrigger]\n | undefined;\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 emitOpenChange(open: boolean, reason: RdxPopoverOpenChangeReason, event: Event) {\n this.onOpenChange.emit({\n open,\n triggerId: this.triggerId(),\n trigger: this.trigger(),\n reason,\n event\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 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 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 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 { Directive } from '@angular/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","import { computed, DestroyRef, Directive, ElementRef, inject } from '@angular/core';\nimport { outputFromObservable, outputToObservable } from '@angular/core/rxjs-interop';\nimport { useScrollLock } from '@radix-ng/primitives/core';\nimport { provideRdxDismissableLayerConfig, RdxDismissableLayer } from '@radix-ng/primitives/dismissable-layer';\nimport { provideRdxFocusScopeConfig, RdxFocusScope } from '@radix-ng/primitives/focus-scope';\nimport { RdxPopperContent, RdxPopperContentWrapper } from '@radix-ng/primitives/popper';\nimport { injectRdxPopoverRootContext, RdxPopoverOpenChangeReason } from './popover-root';\n\n/**\n * A container for the popover contents.\n */\n@Directive({\n selector: '[rdxPopoverPopup]',\n hostDirectives: [RdxPopperContent, RdxDismissableLayer, RdxFocusScope],\n providers: [\n provideRdxDismissableLayerConfig(() => {\n const rootContext = injectRdxPopoverRootContext()!;\n\n return {\n disableOutsidePointerEvents: computed(() => rootContext.modal() === true)\n };\n }),\n provideRdxFocusScopeConfig(() => {\n const rootContext = injectRdxPopoverRootContext()!;\n\n return {\n trapped: computed(\n () =>\n rootContext.modal() === 'trap-focus' ||\n (rootContext.modal() === true && rootContext.hasPopupClose())\n )\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 dismissableLayer = inject(RdxDismissableLayer);\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 private dismissDetails: { reason: RdxPopoverOpenChangeReason; event: Event } = {\n reason: 'none',\n event: new Event('popover.dismiss')\n };\n\n /**\n * Event handler called when the escape key is down. Can be prevented.\n */\n readonly escapeKeyDown = outputFromObservable(outputToObservable(this.dismissableLayer.escapeKeyDown));\n\n /**\n * Event handler called when a pointerdown event happens outside of the popup. Can be prevented.\n */\n readonly pointerDownOutside = outputFromObservable(outputToObservable(this.dismissableLayer.pointerDownOutside));\n\n /**\n * Event handler called when focus moves outside of the popup. Can be prevented.\n */\n readonly focusOutside = outputFromObservable(outputToObservable(this.dismissableLayer.focusOutside));\n\n /**\n * Event handler called when an interaction happens outside of the popup. Can be prevented.\n */\n readonly interactOutside = outputFromObservable(outputToObservable(this.dismissableLayer.interactOutside));\n\n /**\n * Event handler called before focus moves into the popup. Can be prevented.\n */\n readonly openAutoFocus = outputFromObservable(outputToObservable(this.focusScope.mountAutoFocus));\n\n /**\n * Event handler called before focus returns after the popup is removed. Can be prevented.\n */\n readonly closeAutoFocus = outputFromObservable(outputToObservable(this.focusScope.unmountAutoFocus));\n\n constructor() {\n useScrollLock(computed(() => this.rootContext.modal() === true));\n\n const unregisterTransitionElement = this.rootContext.registerTransitionElement(\n inject<ElementRef<HTMLElement>>(ElementRef).nativeElement\n );\n\n inject(DestroyRef).onDestroy(unregisterTransitionElement);\n\n this.dismissableLayer.pointerDownOutside.subscribe((event) => {\n this.dismissDetails = { reason: 'outside-press', event };\n\n if (this.rootContext.triggers().some((trigger) => trigger.contains(event.target as Node))) {\n event.preventDefault();\n }\n });\n\n this.dismissableLayer.focusOutside.subscribe((event) => {\n this.dismissDetails = { reason: 'focus-out', event };\n\n if (this.rootContext.isPointerDownOnTrigger()) {\n event.preventDefault();\n }\n });\n\n this.dismissableLayer.escapeKeyDown.subscribe((event) => {\n this.dismissDetails = { reason: 'escape-key', event };\n });\n\n this.focusScope.mountAutoFocus.subscribe((event) => {\n if (this.rootContext.isHoverActive()) {\n event.preventDefault();\n }\n });\n\n this.dismissableLayer.dismiss.subscribe(() => {\n this.rootContext.close(this.dismissDetails.reason, this.dismissDetails.event);\n this.dismissDetails = { reason: 'none', event: new Event('popover.dismiss') };\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, input } from '@angular/core';\nimport { RdxPortal, RdxPortalContainer } from '@radix-ng/primitives/portal';\nimport { injectRdxPopoverRootContext } from './popover-root';\n\n/**\n * Moves the popover to a different part of the DOM.\n */\n@Directive({\n selector: '[rdxPopoverPortal]',\n hostDirectives: [\n {\n directive: RdxPortal,\n inputs: ['container']\n }\n ],\n host: {\n '[attr.data-closed]': 'rootContext.isOpen() ? undefined : \"\"',\n '[attr.data-open]': 'rootContext.isOpen() ? \"\" : undefined',\n '[attr.data-state]': 'rootContext.isOpen() ? \"open\" : \"closed\"'\n }\n})\nexport class RdxPopoverPortal {\n protected readonly rootContext = injectRdxPopoverRootContext()!;\n\n /**\n * Optional container to portal the content into. Defaults to `document.body`.\n */\n readonly container = input<RdxPortalContainer>();\n}\n","import { Directive } from '@angular/core';\nimport { provideRdxPresenceContext, RdxPresenceDirective } from '@radix-ng/primitives/presence';\nimport { injectRdxPopoverRootContext } from './popover-root';\n\n/**\n * Mounts the portal while the popover is open and waits for CSS exit keyframes before unmounting.\n */\n@Directive({\n selector: 'ng-template[rdxPopoverPortalPresence]',\n hostDirectives: [RdxPresenceDirective],\n providers: [\n provideRdxPresenceContext(() => {\n const context = injectRdxPopoverRootContext()!;\n\n return { present: context.isOpen };\n })\n ]\n})\nexport class RdxPopoverPortalPresence {}\n","import { booleanAttribute, Directive, effect, ElementRef, inject, input, numberAttribute, signal } from '@angular/core';\nimport { outputFromObservable, outputToObservable } from '@angular/core/rxjs-interop';\nimport { BooleanInput, NumberInput, useGraceArea } from '@radix-ng/primitives/core';\nimport {\n Align,\n provideRdxPopperContentConfig,\n RdxPopperAnchorElement,\n RdxPopperContentWrapper,\n Side\n} from '@radix-ng/primitives/popper';\nimport { injectRdxPopoverRootContext } from './popover-root';\n\n/**\n * Positions the popover against its trigger.\n */\n@Directive({\n selector: '[rdxPopoverPositioner]',\n providers: [\n provideRdxPopperContentConfig({ arrowPadding: 5, collisionPadding: 5, updatePositionStrategy: 'always' })\n ],\n hostDirectives: [\n {\n directive: RdxPopperContentWrapper,\n inputs: [\n 'anchor',\n 'side',\n 'sideOffset',\n 'align',\n 'alignOffset',\n 'arrowPadding',\n 'avoidCollisions',\n 'collisionBoundary',\n 'collisionPadding',\n 'sticky',\n 'hideWhenDetached',\n 'positionStrategy',\n 'updatePositionStrategy'\n ]\n }\n ],\n host: {\n '[attr.data-open]': 'rootContext.isOpen() ? \"\" : undefined',\n '[attr.data-closed]': 'rootContext.isOpen() ? undefined : \"\"',\n '[attr.data-anchor-hidden]': 'wrapper.anchorHidden() ? \"\" : undefined',\n '[attr.data-align]': 'wrapper.placedAlign()',\n '[attr.data-side]': 'wrapper.placedSide()',\n '[attr.data-instant]': 'rootContext.instant() ? \"\" : undefined',\n '[style]': `{\n '--anchor-width': 'var(--radix-popper-anchor-width)',\n '--anchor-height': 'var(--radix-popper-anchor-height)',\n '--available-width': 'var(--radix-popper-available-width)',\n '--available-height': 'var(--radix-popper-available-height)',\n '--positioner-width': 'var(--radix-popper-content-wrapper-width)',\n '--positioner-height': 'var(--radix-popper-content-wrapper-height)',\n '--transform-origin': 'var(--radix-popper-transform-origin)',\n '--radix-popover-content-transform-origin': 'var(--radix-popper-transform-origin)',\n '--radix-popover-content-available-width': 'var(--radix-popper-available-width)',\n '--radix-popover-content-available-height': 'var(--radix-popper-available-height)',\n '--radix-popover-trigger-width': 'var(--radix-popper-anchor-width)',\n '--radix-popover-trigger-height': 'var(--radix-popper-anchor-height)'\n }`\n }\n})\nexport class RdxPopoverPositioner {\n protected readonly rootContext = injectRdxPopoverRootContext()!;\n protected readonly wrapper = inject(RdxPopperContentWrapper);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly triggerEl = signal<HTMLElement | null>(null);\n private readonly containerEl = signal<HTMLElement | null>(this.elementRef.nativeElement);\n private readonly graceArea = useGraceArea(this.triggerEl, this.containerEl);\n\n /**\n * An element to position the popup against. Defaults to the trigger.\n */\n readonly anchor = input<RdxPopperAnchorElement>();\n\n /**\n * The preferred side of the trigger to render against when open.\n */\n readonly side = input<Side>('bottom');\n\n /**\n * Distance between the trigger and the popup in pixels.\n */\n readonly sideOffset = input<number, NumberInput>(0, { transform: numberAttribute });\n\n /**\n * How to align the popup relative to the specified side.\n */\n readonly align = input<Align>('center');\n\n /**\n * An offset in pixels from the `start` or `end` alignment options.\n */\n readonly alignOffset = input<number, NumberInput>(0, { transform: numberAttribute });\n\n /**\n * Minimum distance to maintain between the arrow and the edges of the popup.\n */\n readonly arrowPadding = input<number, NumberInput>(5, { transform: numberAttribute });\n\n /**\n * Whether to override side and alignment preferences to prevent collisions.\n */\n readonly avoidCollisions = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n /**\n * The element used as the collision boundary.\n */\n readonly collisionBoundary = input<ElementRef<HTMLElement> | ElementRef<HTMLElement>[]>();\n\n /**\n * Distance in pixels from the boundary edges where collision detection should occur.\n */\n readonly collisionPadding = input<number | Partial<Record<Side, number>>>(5);\n\n /**\n * The sticky behavior on the alignment axis.\n */\n readonly sticky = input<'partial' | 'always'>('partial');\n\n /**\n * Whether to hide the popup when the trigger becomes fully occluded.\n */\n readonly hideWhenDetached = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * The CSS position strategy used by Floating UI.\n */\n readonly positionStrategy = input<'fixed' | 'absolute'>('fixed');\n\n /**\n * Whether to update position on every animation frame.\n */\n readonly updatePositionStrategy = input<'optimized' | 'always'>('always');\n\n /**\n * Emits when the popup has been placed.\n */\n readonly placed = outputFromObservable(outputToObservable(inject(RdxPopperContentWrapper).placed));\n\n constructor() {\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()',\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 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 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() {\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 } from './src/popover-portal';\nimport { RdxPopoverPortalPresence } from './src/popover-portal-presence';\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-portal-presence';\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 RdxPopoverPortalPresence,\n RdxPopoverPortal,\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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"}