@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-tooltip.mjs","sources":["../../../packages/primitives/tooltip/src/tooltip-anchor.token.ts","../../../packages/primitives/tooltip/src/tooltip-arrow.token.ts","../../../packages/primitives/tooltip/src/tooltip-close.token.ts","../../../packages/primitives/tooltip/src/tooltip-content-attributes.token.ts","../../../packages/primitives/tooltip/src/tooltip.types.ts","../../../packages/primitives/tooltip/src/tooltip-content.directive.ts","../../../packages/primitives/tooltip/src/tooltip-trigger.directive.ts","../../../packages/primitives/tooltip/src/utils/constants.ts","../../../packages/primitives/tooltip/src/utils/cdk-event.service.ts","../../../packages/primitives/tooltip/src/tooltip-root.directive.ts","../../../packages/primitives/tooltip/src/tooltip-root.inject.ts","../../../packages/primitives/tooltip/src/tooltip-anchor.directive.ts","../../../packages/primitives/tooltip/src/tooltip-arrow.directive.ts","../../../packages/primitives/tooltip/src/tooltip-close.directive.ts","../../../packages/primitives/tooltip/src/tooltip-content-attributes.component.ts","../../../packages/primitives/tooltip/index.ts","../../../packages/primitives/tooltip/radix-ng-primitives-tooltip.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { RdxTooltipAnchorDirective } from './tooltip-anchor.directive';\n\nexport const RdxTooltipAnchorToken = new InjectionToken<RdxTooltipAnchorDirective>('RdxTooltipAnchorToken');\n","import { InjectionToken } from '@angular/core';\nimport { RdxTooltipArrowDirective } from './tooltip-arrow.directive';\n\nexport const RdxTooltipArrowToken = new InjectionToken<RdxTooltipArrowDirective>('RdxTooltipArrowToken');\n","import { InjectionToken } from '@angular/core';\nimport { RdxTooltipCloseDirective } from './tooltip-close.directive';\n\nexport const RdxTooltipCloseToken = new InjectionToken<RdxTooltipCloseDirective>('RdxTooltipCloseToken');\n","import { InjectionToken } from '@angular/core';\nimport { RdxTooltipContentAttributesComponent } from './tooltip-content-attributes.component';\n\nexport const RdxTooltipContentAttributesToken = new InjectionToken<RdxTooltipContentAttributesComponent>(\n 'RdxTooltipContentAttributesToken'\n);\n","export enum RdxTooltipState {\n OPEN = 'open',\n CLOSED = 'closed'\n}\n\nexport enum RdxTooltipAction {\n OPEN = 'open',\n CLOSE = 'close'\n}\n\nexport enum RdxTooltipAttachDetachEvent {\n ATTACH = 'attach',\n DETACH = 'detach'\n}\n\nexport enum RdxTooltipAnimationStatus {\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 { injectTooltipRoot } from './tooltip-root.inject';\nimport { RdxTooltipAttachDetachEvent } from './tooltip.types';\n\n@Directive({\n selector: '[rdxTooltipContent]',\n hostDirectives: [CdkConnectedOverlay]\n})\nexport class RdxTooltipContentDirective implements OnInit {\n /** @ignore */\n private readonly rootDirective = injectTooltipRoot();\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-tooltip-trigger-${this.rootDirective.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.rootDirective.rdxCdkEventService?.primitivePreventedFromCdkEvent(\n this.rootDirective,\n 'cdkOverlayEscapeKeyDown'\n )\n ),\n filter((event) => event.key === 'Escape'),\n tap((event) => {\n this.onOverlayEscapeKeyDown.emit(event);\n }),\n filter(() => !this.rootDirective.firstDefaultOpen()),\n tap(() => {\n this.rootDirective.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.rootDirective.rdxCdkEventService?.primitivePreventedFromCdkEvent(\n this.rootDirective,\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.rootDirective.anchorDirective() ||\n !this.rootDirective\n .triggerDirective()\n .elementRef.nativeElement.contains(event.target as Element)\n );\n }),\n tap((event) => {\n this.onOverlayOutsideClick.emit(event);\n }),\n filter(() => !this.rootDirective.firstDefaultOpen()),\n tap(() => {\n this.rootDirective.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 rootDirective directive due to the opening animation\n */\n this.rootDirective.attachDetachEvent.set(RdxTooltipAttachDetachEvent.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 rootDirective directive due to the closing animation\n */\n this.rootDirective.attachDetachEvent.set(RdxTooltipAttachDetachEvent.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.rootDirective.arrowDirective()?.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.rootDirective.anchorDirective() ?? this.rootDirective.triggerDirective())\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 { injectTooltipRoot } from './tooltip-root.inject';\n\n@Directive({\n selector: '[rdxTooltipTrigger]',\n hostDirectives: [CdkOverlayOrigin],\n host: {\n type: 'button',\n '[attr.id]': 'name()',\n '[attr.aria-haspopup]': '\"dialog\"',\n '[attr.aria-expanded]': 'rootDirective.isOpen()',\n '[attr.aria-controls]': 'rootDirective.contentDirective().name()',\n '[attr.data-state]': 'rootDirective.state()',\n '(pointerenter)': 'pointerenter()',\n '(pointerleave)': 'pointerleave()',\n '(focus)': 'focus()',\n '(blur)': 'blur()',\n '(click)': 'click()'\n }\n})\nexport class RdxTooltipTriggerDirective {\n /** @ignore */\n protected readonly rootDirective = injectTooltipRoot();\n /** @ignore */\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n /** @ignore */\n readonly overlayOrigin = inject(CdkOverlayOrigin);\n\n /** @ignore */\n readonly name = computed(() => `rdx-tooltip-trigger-${this.rootDirective.uniqueId()}`);\n\n /** @ignore */\n pointerenter(): void {\n this.rootDirective.handleOpen();\n }\n\n /** @ignore */\n pointerleave(): void {\n this.rootDirective.handleClose();\n }\n\n /** @ignore */\n focus(): void {\n this.rootDirective.handleOpen();\n }\n\n /** @ignore */\n blur(): void {\n this.rootDirective.handleClose();\n }\n\n /** @ignore */\n click(): void {\n this.rootDirective.handleClose();\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, NumberInput } from '@angular/cdk/coercion';\nimport {\n afterNextRender,\n booleanAttribute,\n computed,\n contentChild,\n DestroyRef,\n Directive,\n effect,\n inject,\n input,\n numberAttribute,\n signal,\n untracked,\n ViewContainerRef\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { debounce, map, Subject, tap, timer } from 'rxjs';\nimport { RdxTooltipAnchorDirective } from './tooltip-anchor.directive';\nimport { RdxTooltipAnchorToken } from './tooltip-anchor.token';\nimport { RdxTooltipArrowToken } from './tooltip-arrow.token';\nimport { RdxTooltipCloseToken } from './tooltip-close.token';\nimport { RdxTooltipContentAttributesToken } from './tooltip-content-attributes.token';\nimport { RdxTooltipContentDirective } from './tooltip-content.directive';\nimport { RdxTooltipTriggerDirective } from './tooltip-trigger.directive';\nimport {\n RdxTooltipAction,\n RdxTooltipAnimationStatus,\n RdxTooltipAttachDetachEvent,\n RdxTooltipState\n} from './tooltip.types';\nimport { injectRdxCdkEventService } from './utils/cdk-event.service';\n\nlet nextId = 0;\n\n@Directive({\n selector: '[rdxTooltipRoot]',\n exportAs: 'rdxTooltipRoot'\n})\nexport class RdxTooltipRootDirective {\n /** @ignore */\n readonly uniqueId = signal(++nextId);\n /** @ignore */\n readonly name = computed(() => `rdx-tooltip-root-${this.uniqueId()}`);\n\n /**\n * @description The anchor directive that comes form outside the tooltip rootDirective\n * @default undefined\n */\n readonly anchor = input<RdxTooltipAnchorDirective | undefined>(void 0);\n /**\n * @description The open state of the tooltip 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 tooltip. `open` input take precedence of `defaultOpen` input.\n * @default undefined\n */\n readonly open = input<boolean | undefined, BooleanInput>(void 0, { transform: booleanAttribute });\n /**\n * To customise the open delay for a specific tooltip.\n */\n readonly openDelay = input<number, NumberInput>(500, {\n transform: numberAttribute\n });\n /**\n * To customise the close delay for a specific tooltip.\n */\n readonly closeDelay = input<number, NumberInput>(200, {\n transform: numberAttribute\n });\n /**\n * @description Whether to control the state of the tooltip 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<RdxTooltipAnimationStatus | null>(null);\n\n /** @ignore */\n readonly contentDirective = contentChild.required(RdxTooltipContentDirective);\n /** @ignore */\n readonly triggerDirective = contentChild.required(RdxTooltipTriggerDirective);\n /** @ignore */\n readonly arrowDirective = contentChild(RdxTooltipArrowToken);\n /** @ignore */\n readonly closeDirective = contentChild(RdxTooltipCloseToken);\n /** @ignore */\n readonly contentAttributesComponent = contentChild(RdxTooltipContentAttributesToken);\n /** @ignore */\n private readonly internalAnchorDirective = contentChild(RdxTooltipAnchorToken);\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(RdxTooltipState.CLOSED);\n\n /** @ignore */\n readonly attachDetachEvent = signal(RdxTooltipAttachDetachEvent.DETACH);\n\n /** @ignore */\n private readonly isFirstDefaultOpen = signal(false);\n\n /** @ignore */\n readonly anchorDirective = computed(() => this.internalAnchorDirective() ?? this.anchor());\n\n /** @ignore */\n readonly actionSubject$ = new Subject<RdxTooltipAction>();\n\n constructor() {\n this.rdxCdkEventService?.registerPrimitive(this);\n this.destroyRef.onDestroy(() => this.rdxCdkEventService?.deregisterPrimitive(this));\n this.actionSubscription();\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.actionSubject$.next(RdxTooltipAction.OPEN);\n }\n\n /** @ignore */\n handleClose(closeButton?: boolean): void {\n if (this.isFirstDefaultOpen()) {\n this.isFirstDefaultOpen.set(false);\n }\n if (!closeButton && this.externalControl()) {\n return;\n }\n this.actionSubject$.next(RdxTooltipAction.CLOSE);\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?: RdxTooltipState) {\n return (state ?? this.state()) === RdxTooltipState.OPEN;\n }\n\n /** @ignore */\n private setState(state = RdxTooltipState.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.contentDirective().open();\n if (!this.cssAnimation() || !this.cssOpeningAnimation()) {\n this.cssAnimationStatus.set(null);\n }\n }\n\n /** @ignore */\n private closeContent(): void {\n this.contentDirective().close();\n if (!this.cssAnimation() || !this.cssClosingAnimation()) {\n this.cssAnimationStatus.set(null);\n }\n }\n\n /** @ignore */\n private emitOnOpen(): void {\n this.contentDirective().onOpen.emit();\n }\n\n /** @ignore */\n private emitOnClosed(): void {\n this.contentDirective().onClosed.emit();\n }\n\n /** @ignore */\n private ifOpenOrCloseWithoutAnimations(state: RdxTooltipState) {\n return (\n !this.contentAttributesComponent() ||\n !this.cssAnimation() ||\n (this.cssAnimation() && !this.cssClosingAnimation() && state === RdxTooltipState.CLOSED) ||\n (this.cssAnimation() && !this.cssOpeningAnimation() && state === RdxTooltipState.OPEN) ||\n // !this.cssAnimationStatus() ||\n (this.cssOpeningAnimation() &&\n state === RdxTooltipState.OPEN &&\n [RdxTooltipAnimationStatus.OPEN_STARTED].includes(this.cssAnimationStatus()!)) ||\n (this.cssClosingAnimation() &&\n state === RdxTooltipState.CLOSED &&\n [RdxTooltipAnimationStatus.CLOSED_STARTED].includes(this.cssAnimationStatus()!))\n );\n }\n\n /** @ignore */\n private ifOpenOrCloseWithAnimations(cssAnimationStatus: RdxTooltipAnimationStatus | null) {\n return (\n this.contentAttributesComponent() &&\n this.cssAnimation() &&\n cssAnimationStatus &&\n ((this.cssOpeningAnimation() &&\n this.state() === RdxTooltipState.OPEN &&\n [RdxTooltipAnimationStatus.OPEN_ENDED].includes(cssAnimationStatus)) ||\n (this.cssClosingAnimation() &&\n this.state() === RdxTooltipState.CLOSED &&\n [RdxTooltipAnimationStatus.CLOSED_ENDED].includes(cssAnimationStatus)))\n );\n }\n\n /** @ignore */\n private openOrClose(state: RdxTooltipState) {\n const isOpen = this.isOpen(state);\n isOpen ? this.openContent() : this.closeContent();\n }\n\n /** @ignore */\n private emitOnOpenOrOnClosed(state: RdxTooltipState) {\n this.isOpen(state)\n ? this.attachDetachEvent() === RdxTooltipAttachDetachEvent.ATTACH && this.emitOnOpen()\n : this.attachDetachEvent() === RdxTooltipAttachDetachEvent.DETACH && this.emitOnClosed();\n }\n\n /** @ignore */\n private canEmitOnOpenOrOnClosed() {\n return (\n !this.cssAnimation() ||\n (!this.cssOpeningAnimation() && this.state() === RdxTooltipState.OPEN) ||\n (this.cssOpeningAnimation() &&\n this.state() === RdxTooltipState.OPEN &&\n this.cssAnimationStatus() === RdxTooltipAnimationStatus.OPEN_ENDED) ||\n (!this.cssClosingAnimation() && this.state() === RdxTooltipState.CLOSED) ||\n (this.cssClosingAnimation() &&\n this.state() === RdxTooltipState.CLOSED &&\n this.cssAnimationStatus() === RdxTooltipAnimationStatus.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 ? RdxTooltipState.OPEN : RdxTooltipState.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.setRoot(this);\n }\n });\n });\n };\n\n /** @ignore */\n private actionSubscription() {\n this.actionSubject$\n .asObservable()\n .pipe(\n map((action) => {\n switch (action) {\n case RdxTooltipAction.OPEN:\n return { action, duration: this.openDelay() };\n case RdxTooltipAction.CLOSE:\n return { action, duration: this.closeDelay() };\n }\n }),\n debounce((config) => timer(config.duration)),\n tap((config) => {\n switch (config.action) {\n case RdxTooltipAction.OPEN:\n this.setState(RdxTooltipState.OPEN);\n break;\n case RdxTooltipAction.CLOSE:\n this.setState(RdxTooltipState.CLOSED);\n break;\n }\n }),\n takeUntilDestroyed()\n )\n .subscribe();\n }\n}\n","import { assertInInjectionContext, inject, isDevMode } from '@angular/core';\nimport { RdxTooltipRootDirective } from './tooltip-root.directive';\n\nexport function injectTooltipRoot(optional?: false): RdxTooltipRootDirective;\nexport function injectTooltipRoot(optional: true): RdxTooltipRootDirective | null;\nexport function injectTooltipRoot(optional = false): RdxTooltipRootDirective | null {\n isDevMode() && assertInInjectionContext(injectTooltipRoot);\n return inject(RdxTooltipRootDirective, { 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 { RdxTooltipAnchorToken } from './tooltip-anchor.token';\nimport { RdxTooltipRootDirective } from './tooltip-root.directive';\nimport { injectTooltipRoot } from './tooltip-root.inject';\n\n@Directive({\n selector: '[rdxTooltipAnchor]',\n exportAs: 'rdxTooltipAnchor',\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: RdxTooltipAnchorToken,\n useExisting: forwardRef(() => RdxTooltipAnchorDirective)\n }\n ]\n})\nexport class RdxTooltipAnchorDirective {\n /**\n * @ignore\n * If outside the rootDirective then null, otherwise the rootDirective directive - with optional `true` passed in as the first param.\n * If outside the rootDirective and non-null value that means the html structure is wrong - tooltip inside tooltip.\n * */\n protected rootDirective = injectTooltipRoot(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-tooltip-external-anchor-${this.rootDirective?.uniqueId()}`);\n\n /** @ignore */\n click(): void {\n this.emitOutsideClick();\n }\n\n /** @ignore */\n setRoot(root: RdxTooltipRootDirective) {\n this.rootDirective = root;\n }\n\n private emitOutsideClick() {\n if (!this.rootDirective?.isOpen() || this.rootDirective?.contentDirective().onOverlayOutsideClickDisabled()) {\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.rootDirective?.triggerDirective().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 { RdxTooltipArrowToken } from './tooltip-arrow.token';\nimport { injectTooltipRoot } from './tooltip-root.inject';\n\n@Directive({\n selector: '[rdxTooltipArrow]',\n providers: [\n {\n provide: RdxTooltipArrowToken,\n useExisting: forwardRef(() => RdxTooltipArrowDirective)\n }\n ]\n})\nexport class RdxTooltipArrowDirective {\n /** @ignore */\n private readonly renderer = inject(Renderer2);\n /** @ignore */\n private readonly rootDirective = injectTooltipRoot();\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.rootDirective.contentDirective().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.rootDirective.anchorDirective() ?? this.rootDirective.triggerDirective()\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 { RdxTooltipCloseToken } from './tooltip-close.token';\nimport { injectTooltipRoot } from './tooltip-root.inject';\n\n/**\n * TODO: to be removed? But it seems to be useful when controlled from outside\n */\n@Directive({\n selector: '[rdxTooltipClose]',\n host: {\n type: 'button',\n '(click)': 'rootDirective.handleClose(true)'\n },\n providers: [\n {\n provide: RdxTooltipCloseToken,\n useExisting: forwardRef(() => RdxTooltipCloseDirective)\n }\n ]\n})\nexport class RdxTooltipCloseDirective {\n /** @ignore */\n protected readonly rootDirective = injectTooltipRoot();\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.rootDirective.controlledExternally()();\n\n untracked(() => {\n this.renderer.setStyle(\n this.elementRef.nativeElement,\n 'display',\n isControlledExternally ? null : 'none'\n );\n });\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, forwardRef } from '@angular/core';\nimport { RdxTooltipContentAttributesToken } from './tooltip-content-attributes.token';\nimport { injectTooltipRoot } from './tooltip-root.inject';\nimport { RdxTooltipAnimationStatus, RdxTooltipState } from './tooltip.types';\n\n@Component({\n selector: '[rdxTooltipContentAttributes]',\n template: `\n <ng-content />\n `,\n host: {\n '[attr.role]': '\"dialog\"',\n '[attr.id]': 'name()',\n '[attr.data-state]': 'rootDirective.state()',\n '[attr.data-side]': 'rootDirective.contentDirective().side()',\n '[attr.data-align]': 'rootDirective.contentDirective().align()',\n '[style]': 'disableAnimation() ? {animation: \"none !important\"} : null',\n '(animationstart)': 'onAnimationStart($event)',\n '(animationend)': 'onAnimationEnd($event)',\n '(pointerenter)': 'pointerenter()',\n '(pointerleave)': 'pointerleave()',\n '(focus)': 'focus()',\n '(blur)': 'blur()'\n },\n providers: [\n {\n provide: RdxTooltipContentAttributesToken,\n useExisting: forwardRef(() => RdxTooltipContentAttributesComponent)\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RdxTooltipContentAttributesComponent {\n /** @ignore */\n protected readonly rootDirective = injectTooltipRoot();\n\n /** @ignore */\n readonly name = computed(() => `rdx-tooltip-content-attributes-${this.rootDirective.uniqueId()}`);\n\n /** @ignore */\n readonly disableAnimation = computed(() => !this.canAnimate());\n\n /** @ignore */\n protected onAnimationStart(_: AnimationEvent) {\n this.rootDirective.cssAnimationStatus.set(\n this.rootDirective.state() === RdxTooltipState.OPEN\n ? RdxTooltipAnimationStatus.OPEN_STARTED\n : RdxTooltipAnimationStatus.CLOSED_STARTED\n );\n }\n\n /** @ignore */\n protected onAnimationEnd(_: AnimationEvent) {\n this.rootDirective.cssAnimationStatus.set(\n this.rootDirective.state() === RdxTooltipState.OPEN\n ? RdxTooltipAnimationStatus.OPEN_ENDED\n : RdxTooltipAnimationStatus.CLOSED_ENDED\n );\n }\n\n /** @ignore */\n protected pointerenter(): void {\n this.rootDirective.handleOpen();\n }\n\n /** @ignore */\n protected pointerleave(): void {\n this.rootDirective.handleClose();\n }\n\n /** @ignore */\n protected focus(): void {\n this.rootDirective.handleOpen();\n }\n\n /** @ignore */\n protected blur(): void {\n this.rootDirective.handleClose();\n }\n\n /** @ignore */\n private canAnimate() {\n return (\n this.rootDirective.cssAnimation() &&\n ((this.rootDirective.cssOpeningAnimation() && this.rootDirective.state() === RdxTooltipState.OPEN) ||\n (this.rootDirective.cssClosingAnimation() && this.rootDirective.state() === RdxTooltipState.CLOSED))\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RdxTooltipAnchorDirective } from './src/tooltip-anchor.directive';\nimport { RdxTooltipArrowDirective } from './src/tooltip-arrow.directive';\nimport { RdxTooltipCloseDirective } from './src/tooltip-close.directive';\nimport { RdxTooltipContentAttributesComponent } from './src/tooltip-content-attributes.component';\nimport { RdxTooltipContentDirective } from './src/tooltip-content.directive';\nimport { RdxTooltipRootDirective } from './src/tooltip-root.directive';\nimport { RdxTooltipTriggerDirective } from './src/tooltip-trigger.directive';\n\nexport * from './src/tooltip-anchor.directive';\nexport * from './src/tooltip-arrow.directive';\nexport * from './src/tooltip-close.directive';\nexport * from './src/tooltip-content-attributes.component';\nexport * from './src/tooltip-content.directive';\nexport * from './src/tooltip-root.directive';\nexport * from './src/tooltip-trigger.directive';\n\nconst _imports = [\n RdxTooltipArrowDirective,\n RdxTooltipCloseDirective,\n RdxTooltipContentDirective,\n RdxTooltipTriggerDirective,\n RdxTooltipRootDirective,\n RdxTooltipAnchorDirective,\n RdxTooltipContentAttributesComponent\n];\n\n@NgModule({\n imports: [..._imports],\n exports: [..._imports]\n})\nexport class RdxTooltipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"radix-ng-primitives-tooltip.mjs","sources":["../../../packages/primitives/tooltip/src/tooltip.config.ts","../../../packages/primitives/tooltip/src/utils.ts","../../../packages/primitives/tooltip/src/tooltip-provider.ts","../../../packages/primitives/tooltip/src/tooltip.ts","../../../packages/primitives/tooltip/src/tooltip-arrow.ts","../../../packages/primitives/tooltip/src/tooltip-popup.ts","../../../packages/primitives/tooltip/src/tooltip-portal.ts","../../../packages/primitives/tooltip/src/tooltip-portal-presence.ts","../../../packages/primitives/tooltip/src/tooltip-positioner.ts","../../../packages/primitives/tooltip/src/tooltip-trigger.ts","../../../packages/primitives/tooltip/src/tooltip-handle.ts","../../../packages/primitives/tooltip/index.ts","../../../packages/primitives/tooltip/radix-ng-primitives-tooltip.ts"],"sourcesContent":["import { inject, InjectionToken, Provider } from '@angular/core';\n\nexport type RdxTrackCursorAxis = 'none' | 'x' | 'y' | 'both';\n\nexport type RdxTooltipConfig = {\n /**\n * How long to wait before opening the tooltip. Specified in milliseconds.\n * @defaultValue 600\n */\n delay?: number;\n /**\n * How long to wait before closing the tooltip. Specified in milliseconds.\n * @defaultValue 0\n */\n closeDelay?: number;\n /**\n * Another tooltip within the same provider opens instantly when this window\n * has not yet elapsed since the previous one closed. Specified in milliseconds.\n * @defaultValue 400\n */\n timeout?: number;\n /**\n * When `true`, the tooltip closes as the pointer leaves the trigger instead of\n * staying open while the pointer moves over the popup.\n * @defaultValue false\n */\n disableHoverablePopup?: boolean;\n};\n\nexport const defaultTooltipConfig: Required<RdxTooltipConfig> = {\n delay: 600,\n closeDelay: 0,\n timeout: 400,\n disableHoverablePopup: false\n};\n\nexport const RdxTooltipDefaultsToken = new InjectionToken<RdxTooltipConfig>('RdxTooltipDefaultsToken');\n\nexport function provideRdxTooltipConfig(config: Partial<RdxTooltipConfig>): Provider[] {\n return [\n {\n provide: RdxTooltipDefaultsToken,\n useValue: { ...defaultTooltipConfig, ...config }\n }\n ];\n}\n\nexport function injectRdxTooltipConfig(): Required<RdxTooltipConfig> {\n return { ...defaultTooltipConfig, ...inject(RdxTooltipDefaultsToken, { optional: true }) };\n}\n","import { DestroyRef, signal, Signal } from '@angular/core';\n\nexport type TimeoutController = {\n start: () => void;\n stop: () => void;\n isPending: () => boolean;\n};\n\nexport type TooltipInstantController = {\n /** Whether the next tooltip in the group should open without waiting for the delay. */\n isInstant: Signal<boolean>;\n /** Call when a tooltip opens — leaves the group in the instant phase. */\n onOpen: () => void;\n /** Call when a tooltip closes — keeps the group instant for `timeout` ms, then re-arms the delay. */\n onClose: () => void;\n};\n\n/**\n * Tracks the shared \"instant\" window for a group of tooltips. Once one tooltip\n * opens, sibling tooltips open instantly until `timeout` ms after the last close.\n */\nexport function createTooltipInstantController(\n timeout: () => number,\n destroyRef?: DestroyRef\n): TooltipInstantController {\n const instant = signal(false);\n\n const timer = useTimeoutFn(() => instant.set(false), timeout, { immediate: false }, destroyRef);\n\n return {\n isInstant: instant.asReadonly(),\n onOpen: () => {\n timer.stop();\n instant.set(true);\n },\n onClose: () => {\n timer.start();\n }\n };\n}\n\nexport function useTimeoutFn(\n cb: () => void,\n delay: number | (() => number),\n options: { immediate?: boolean } = {},\n destroyRef?: DestroyRef\n): TimeoutController {\n let id: number | null = null;\n\n const resolveDelay = () => (typeof delay === 'function' ? (delay as () => number)() : delay);\n\n const stop = () => {\n if (id != null) {\n clearTimeout(id);\n id = null;\n }\n };\n\n const start = () => {\n stop();\n const ms = resolveDelay();\n if (ms <= 0) {\n queueMicrotask(cb);\n return;\n }\n id = window.setTimeout(() => {\n id = null;\n cb();\n }, ms);\n };\n\n if (options.immediate) {\n start();\n }\n if (destroyRef) {\n destroyRef.onDestroy(stop);\n }\n\n return { start, stop, isPending: () => id != null };\n}\n","import { DestroyRef, Directive, inject, input, numberAttribute, Signal } from '@angular/core';\nimport { createContext, NumberInput } from '@radix-ng/primitives/core';\nimport { injectRdxTooltipConfig } from './tooltip.config';\nimport { createTooltipInstantController } from './utils';\n\nexport interface RdxTooltipProviderContext {\n /** Default open delay for tooltips in this group, in milliseconds. */\n delay: Signal<number | undefined>;\n /** Default close delay for tooltips in this group, in milliseconds. */\n closeDelay: Signal<number | undefined>;\n /** Whether sibling tooltips should currently open instantly. */\n isInstant: Signal<boolean>;\n /** Notifies the group that a tooltip has opened. */\n onOpen: () => void;\n /** Notifies the group that a tooltip has closed. */\n onClose: () => void;\n}\n\nexport const [injectRdxTooltipProviderContext, provideRdxTooltipProviderContext] =\n createContext<RdxTooltipProviderContext>('RdxTooltipProviderContext');\n\nconst numberOrUndefined = (value: NumberInput | undefined) => (value == null ? undefined : numberAttribute(value));\n\nconst providerContext = (): RdxTooltipProviderContext => {\n const provider = inject(RdxTooltipProvider);\n\n return {\n delay: provider.delay,\n closeDelay: provider.closeDelay,\n isInstant: provider.instant.isInstant,\n onOpen: () => provider.instant.onOpen(),\n onClose: () => provider.instant.onClose()\n };\n};\n\n/**\n * Shares delay configuration and an instant-open window across a group of tooltips.\n * Once one tooltip opens, adjacent ones open instantly until `timeout` ms after the last close.\n */\n@Directive({\n selector: '[rdxTooltipProvider]',\n exportAs: 'rdxTooltipProvider',\n providers: [provideRdxTooltipProviderContext(providerContext)]\n})\nexport class RdxTooltipProvider {\n private readonly defaultConfig = injectRdxTooltipConfig();\n private readonly destroyRef = inject(DestroyRef);\n\n /**\n * How long to wait before opening tooltips in this group. Specified in milliseconds.\n */\n readonly delay = input<number | undefined, NumberInput | undefined>(undefined, { transform: numberOrUndefined });\n\n /**\n * How long to wait before closing tooltips in this group. Specified in milliseconds.\n */\n readonly closeDelay = input<number | undefined, NumberInput | undefined>(undefined, {\n transform: numberOrUndefined\n });\n\n /**\n * The window during which an adjacent tooltip opens instantly. Specified in milliseconds.\n */\n readonly timeout = input<number, NumberInput>(this.defaultConfig.timeout, { transform: numberAttribute });\n\n readonly instant = createTooltipInstantController(() => this.timeout(), this.destroyRef);\n}\n","import {\n booleanAttribute,\n computed,\n DestroyRef,\n Directive,\n effect,\n inject,\n input,\n model,\n numberAttribute,\n output,\n Signal,\n signal,\n untracked\n} from '@angular/core';\nimport type { ReferenceElement } from '@floating-ui/dom';\nimport { BooleanInput, createContext, injectId, NumberInput, watch } from '@radix-ng/primitives/core';\nimport { RdxPopper } from '@radix-ng/primitives/popper';\nimport { RdxTooltipHandle } from './tooltip-handle';\nimport { injectRdxTooltipProviderContext } from './tooltip-provider';\nimport { injectRdxTooltipConfig, RdxTrackCursorAxis } from './tooltip.config';\nimport { createTooltipInstantController, TooltipInstantController, useTimeoutFn } from './utils';\n\nexport interface RdxTooltipContext {\n contentId: string;\n isOpen: Signal<boolean>;\n /** Whether the tooltip opened/closed without waiting for the delay. */\n instant: Signal<boolean>;\n disabled: Signal<boolean>;\n disableHoverablePopup: Signal<boolean>;\n trackCursorAxis: Signal<RdxTrackCursorAxis>;\n /** The active trigger element. */\n trigger: Signal<HTMLElement | undefined>;\n triggers: Signal<HTMLElement[]>;\n payload: Signal<unknown>;\n open: (trigger?: HTMLElement, payload?: unknown) => void;\n close: () => void;\n /** Closes after the resolved close delay (used when hover/focus is lost). */\n closeDelayed: () => void;\n registerTrigger: (trigger: HTMLElement) => () => void;\n /** Hover entered a trigger — opens after the resolved delay (or instantly). */\n onTriggerEnter: (trigger?: HTMLElement, payload?: unknown) => void;\n /** Hover left a trigger — cancels a pending open and closes when appropriate. */\n onTriggerLeave: () => void;\n setCursorPosition: (position: { x: number; y: number } | undefined) => void;\n setDelays: (delay: number | undefined, closeDelay: number | undefined) => void;\n}\n\nexport const [injectRdxTooltipContext, provideRdxTooltipContext] =\n createContext<RdxTooltipContext>('RdxTooltipContext');\n\nconst context = () => contextFor(inject(RdxTooltip));\n\n@Directive({\n selector: '[rdxTooltip]',\n exportAs: 'rdxTooltip',\n providers: [provideRdxTooltipContext(context)],\n hostDirectives: [RdxPopper]\n})\nexport class RdxTooltip {\n private readonly defaultConfig = injectRdxTooltipConfig();\n private readonly provider = injectRdxTooltipProviderContext(true);\n private readonly popper = inject(RdxPopper);\n private readonly destroyRef = inject(DestroyRef);\n private hasAppliedDefaultOpen = false;\n\n /**\n * Whether the tooltip is currently open.\n */\n readonly open = model(false);\n\n /**\n * Whether the tooltip is initially open. Uncontrolled.\n */\n readonly defaultOpen = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * How long to wait before opening the tooltip. Specified in milliseconds.\n * Falls back to the surrounding provider, then to the global config.\n */\n readonly delay = input<number | undefined, NumberInput | undefined>(undefined, {\n transform: (value) => (value == null ? undefined : numberAttribute(value))\n });\n\n /**\n * How long to wait before closing the tooltip. Specified in milliseconds.\n */\n readonly closeDelay = input<number | undefined, NumberInput | undefined>(undefined, {\n transform: (value) => (value == null ? undefined : numberAttribute(value))\n });\n\n /**\n * When `true`, the tooltip closes as the pointer leaves the trigger instead of\n * staying open while the pointer moves over the popup.\n */\n readonly disableHoverablePopup = input<boolean, BooleanInput>(this.defaultConfig.disableHoverablePopup, {\n transform: booleanAttribute\n });\n\n /**\n * Determines which axis the tooltip should track the cursor on.\n */\n readonly trackCursorAxis = input<RdxTrackCursorAxis>('none');\n\n /**\n * When `true`, the tooltip will not open.\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Associates this root with detached trigger elements.\n */\n readonly handle = input<RdxTooltipHandle<any>>();\n\n /**\n * Event handler called when the open state changes.\n */\n readonly onOpenChange = output<boolean>();\n\n readonly contentId = injectId('rdx-tooltip-content-');\n readonly trigger = signal<HTMLElement | undefined>(undefined);\n readonly triggers = signal<HTMLElement[]>([]);\n readonly payload = signal<unknown>(undefined);\n readonly cursorPosition = signal<{ x: number; y: number } | undefined>(undefined);\n\n private readonly openedInstant = signal(false);\n\n /** Local instant window used when this tooltip is not inside a provider. */\n private readonly localInstant: TooltipInstantController = createTooltipInstantController(\n () => this.defaultConfig.timeout,\n this.destroyRef\n );\n\n private readonly instantGroup = this.provider ?? this.localInstant;\n\n /** Per-trigger overrides set by the active trigger, taking precedence over the root/provider. */\n private readonly triggerDelay = signal<number | undefined>(undefined);\n private readonly triggerCloseDelay = signal<number | undefined>(undefined);\n\n private readonly resolvedDelay = computed(\n () => this.triggerDelay() ?? this.delay() ?? this.provider?.delay() ?? this.defaultConfig.delay\n );\n private readonly resolvedCloseDelay = computed(\n () =>\n this.triggerCloseDelay() ??\n this.closeDelay() ??\n this.provider?.closeDelay() ??\n this.defaultConfig.closeDelay\n );\n\n /** Whether the most recent open happened without the delay. */\n readonly instant = this.openedInstant.asReadonly();\n\n private readonly virtualAnchor = computed<ReferenceElement | undefined>(() => {\n const axis = this.trackCursorAxis();\n const element = this.trigger();\n\n if (axis === 'none' || !element) {\n return element;\n }\n\n const position = this.cursorPosition();\n\n if (!position) {\n return element;\n }\n\n const followX = axis === 'x' || axis === 'both';\n const followY = axis === 'y' || axis === 'both';\n\n return {\n getBoundingClientRect: () => {\n const rect = element.getBoundingClientRect();\n const width = followX ? 0 : rect.width;\n const height = followY ? 0 : rect.height;\n const x = followX ? position.x : rect.x;\n const y = followY ? position.y : rect.y;\n\n return { width, height, x, y, top: y, left: x, right: x + width, bottom: y + height };\n }\n };\n });\n\n private readonly openTimer = useTimeoutFn(\n () => this.applyOpen(false),\n () => this.resolvedDelay()!,\n { immediate: false },\n this.destroyRef\n );\n\n private readonly closeTimer = useTimeoutFn(\n () => this.applyClose(),\n () => this.resolvedCloseDelay()!,\n { immediate: false },\n this.destroyRef\n );\n\n constructor() {\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((onCleanup) => {\n const handle = this.handle();\n\n if (handle) {\n onCleanup(untracked(() => handle.registerRoot(contextFor(this))));\n }\n });\n\n // Keep the popper anchored to the active trigger, or to the cursor while tracking.\n effect(() => this.popper.anchorOverride.set(this.virtualAnchor()));\n\n watch(\n [this.open],\n ([isOpen]) => {\n this.onOpenChange.emit(isOpen);\n\n if (isOpen) {\n this.instantGroup.onOpen();\n } else {\n this.instantGroup.onClose();\n this.openedInstant.set(false);\n }\n },\n { defer: true }\n );\n }\n\n /** Opens immediately, optionally switching the active trigger/payload. */\n show(trigger = this.trigger(), payload?: unknown) {\n this.applyOpen(true, trigger, payload);\n }\n\n close() {\n this.openTimer.stop();\n this.closeTimer.stop();\n this.applyClose();\n }\n\n /** Closes after the resolved close delay, e.g. when the pointer or focus leaves. */\n scheduleClose() {\n this.openTimer.stop();\n\n if (this.resolvedCloseDelay()! <= 0) {\n this.applyClose();\n } else {\n this.closeTimer.start();\n }\n }\n\n /** Hover/focus entered — open after the delay, or instantly within the instant window. */\n onTriggerEnter(trigger = this.trigger(), payload?: unknown) {\n if (this.disabled()) {\n return;\n }\n\n if (trigger) {\n this.trigger.set(trigger);\n }\n\n this.payload.set(payload);\n this.closeTimer.stop();\n\n if (this.instantGroup.isInstant() || this.resolvedDelay()! <= 0) {\n this.applyOpen(true, trigger, payload);\n } else {\n this.openTimer.start();\n }\n }\n\n onTriggerLeave() {\n this.openTimer.stop();\n\n if (this.disableHoverablePopup()) {\n this.scheduleClose();\n }\n // Otherwise the positioner's grace area decides when to close.\n }\n\n registerTrigger(trigger: HTMLElement) {\n this.triggers.update((triggers) => (triggers.includes(trigger) ? triggers : [...triggers, trigger]));\n\n if (!this.trigger()) {\n this.trigger.set(trigger);\n }\n\n return () => {\n this.triggers.update((triggers) => triggers.filter((candidate) => candidate !== trigger));\n\n if (this.trigger() === trigger) {\n const nextTrigger = this.triggers()[0];\n this.trigger.set(nextTrigger);\n\n if (!nextTrigger && !this.destroyRef.destroyed) {\n this.applyClose();\n }\n }\n };\n }\n\n setCursorPosition(position: { x: number; y: number } | undefined) {\n this.cursorPosition.set(position);\n }\n\n /** Applies per-trigger delay overrides from the trigger that is becoming active. */\n setDelays(delay: number | undefined, closeDelay: number | undefined) {\n this.triggerDelay.set(delay);\n this.triggerCloseDelay.set(closeDelay);\n }\n\n private applyOpen(instant: boolean, trigger = this.trigger(), payload?: unknown) {\n if (this.disabled()) {\n return;\n }\n\n this.openTimer.stop();\n this.closeTimer.stop();\n\n if (trigger) {\n this.trigger.set(trigger);\n }\n\n if (payload !== undefined) {\n this.payload.set(payload);\n }\n\n this.openedInstant.set(instant || this.instantGroup.isInstant());\n this.open.set(true);\n }\n\n private applyClose() {\n this.openedInstant.set(this.instantGroup.isInstant());\n this.open.set(false);\n }\n}\n\nfunction contextFor(root: RdxTooltip): RdxTooltipContext {\n return {\n contentId: root.contentId,\n isOpen: root.open,\n instant: root.instant,\n disabled: root.disabled,\n disableHoverablePopup: root.disableHoverablePopup,\n trackCursorAxis: root.trackCursorAxis,\n trigger: root.trigger.asReadonly(),\n triggers: root.triggers.asReadonly(),\n payload: root.payload.asReadonly(),\n open: (trigger?: HTMLElement, payload?: unknown) => root.show(trigger, payload),\n close: () => root.close(),\n closeDelayed: () => root.scheduleClose(),\n registerTrigger: (trigger: HTMLElement) => root.registerTrigger(trigger),\n onTriggerEnter: (trigger?: HTMLElement, payload?: unknown) => root.onTriggerEnter(trigger, payload),\n onTriggerLeave: () => root.onTriggerLeave(),\n setCursorPosition: (position) => root.setCursorPosition(position),\n setDelays: (delay, closeDelay) => root.setDelays(delay, closeDelay)\n };\n}\n","import { computed, Directive, inject } from '@angular/core';\nimport { RdxPopperArrow, RdxPopperContentWrapper } from '@radix-ng/primitives/popper';\nimport { RdxVisuallyHiddenDirective } from '@radix-ng/primitives/visually-hidden';\nimport { injectRdxTooltipContext } from './tooltip';\n\n@Directive({\n selector: '[rdxTooltipArrow]',\n hostDirectives: [RdxPopperArrow],\n host: {\n '[hidden]': 'isVisuallyHidden',\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 RdxTooltipArrow {\n protected readonly rootContext = injectRdxTooltipContext()!;\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 protected readonly isVisuallyHidden = !!inject(RdxVisuallyHiddenDirective, {\n optional: true\n });\n}\n","import { computed, Directive, inject } from '@angular/core';\nimport { RdxPopperContent, RdxPopperContentWrapper } from '@radix-ng/primitives/popper';\nimport { injectRdxTooltipContext } from './tooltip';\n\n/**\n * The tooltip popup. Renders the content with `role=\"tooltip\"`.\n */\n@Directive({\n selector: '[rdxTooltipPopup]',\n hostDirectives: [RdxPopperContent],\n host: {\n role: 'tooltip',\n '[id]': 'rootContext.contentId',\n '[attr.data-open]': 'rootContext.isOpen() ? \"\" : undefined',\n '[attr.data-closed]': 'rootContext.isOpen() ? undefined : \"\"',\n '[attr.data-instant]': 'rootContext.instant() ? \"\" : undefined',\n '[attr.data-side]': 'side()',\n '[attr.data-align]': 'align()'\n }\n})\nexport class RdxTooltipPopup {\n protected readonly rootContext = injectRdxTooltipContext()!;\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}\n","import { Directive, input } from '@angular/core';\nimport { RdxPortal, RdxPortalContainer } from '@radix-ng/primitives/portal';\n\n/**\n * Moves the tooltip to a different part of the DOM.\n */\n@Directive({\n selector: '[rdxTooltipPortal]',\n hostDirectives: [\n {\n directive: RdxPortal,\n inputs: ['container']\n }\n ]\n})\nexport class RdxTooltipPortal {\n readonly container = input.required<RdxPortalContainer>();\n}\n","import { Directive } from '@angular/core';\nimport { provideRdxPresenceContext, RdxPresenceDirective } from '@radix-ng/primitives/presence';\nimport { injectRdxTooltipContext } from './tooltip';\n\n@Directive({\n selector: 'ng-template[rdxTooltipPortalPresence]',\n hostDirectives: [RdxPresenceDirective],\n providers: [\n provideRdxPresenceContext(() => {\n const context = injectRdxTooltipContext()!;\n\n return { present: context.isOpen };\n })\n ]\n})\nexport class RdxTooltipPortalPresence {}\n","import {\n afterNextRender,\n booleanAttribute,\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n input,\n numberAttribute,\n signal\n} from '@angular/core';\nimport { outputFromObservable, outputToObservable } from '@angular/core/rxjs-interop';\nimport { BooleanInput, NumberInput, useGraceArea } from '@radix-ng/primitives/core';\nimport { RdxDismissableLayer } from '@radix-ng/primitives/dismissable-layer';\nimport {\n Align,\n provideRdxPopperContentConfig,\n RdxPopperAnchorElement,\n RdxPopperContentWrapper,\n Side\n} from '@radix-ng/primitives/popper';\nimport { injectRdxTooltipContext } from './tooltip';\n\n/**\n * Positions the tooltip popup against its trigger (or a custom anchor).\n */\n@Directive({\n selector: '[rdxTooltipPositioner]',\n providers: [provideRdxPopperContentConfig({ side: 'top', arrowPadding: 5, collisionPadding: 5 })],\n hostDirectives: [\n RdxDismissableLayer,\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-side]': 'wrapper.placedSide()',\n '[attr.data-align]': 'wrapper.placedAlign()',\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 '--transform-origin': 'var(--radix-popper-transform-origin)'\n }`\n }\n})\nexport class RdxTooltipPositioner {\n protected readonly rootContext = injectRdxTooltipContext()!;\n protected readonly wrapper = inject(RdxPopperContentWrapper);\n private readonly destroyRef = inject(DestroyRef);\n private readonly dismissableLayer = inject(RdxDismissableLayer);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\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 anchor to render against when open.\n */\n readonly side = input<Side>('top');\n\n /**\n * The distance in pixels from the anchor.\n */\n readonly sideOffset = input<number, NumberInput>(0, { transform: numberAttribute });\n\n /**\n * The preferred alignment against the anchor.\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 * The padding between the arrow and the edges of the content.\n */\n readonly arrowPadding = input<number, NumberInput>(5, { transform: numberAttribute });\n\n /**\n * When `true`, overrides the `side` and `align` preferences to prevent collisions with boundary edges.\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 * The 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 `align` axis.\n */\n readonly sticky = input<'partial' | 'always'>('partial');\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n */\n readonly hideWhenDetached = input<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 the position of the floating element on every animation frame if required.\n */\n readonly updatePositionStrategy = input<'optimized' | 'always'>('always');\n\n /**\n * Emits when the element is placed.\n */\n readonly placed = outputFromObservable(outputToObservable(this.wrapper.placed));\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 `DismissableLayer`. Can be prevented.\n */\n readonly pointerDownOutside = outputFromObservable(outputToObservable(this.dismissableLayer.pointerDownOutside));\n\n private readonly triggerEl = signal<HTMLElement | null>(null);\n private readonly containerEl = signal<HTMLElement | null>(null);\n\n private readonly graceArea = useGraceArea(this.triggerEl, this.containerEl, 300);\n\n private readonly afterNextRender = afterNextRender(() => {\n this.triggerEl.set(this.rootContext.trigger() ?? null);\n this.containerEl.set(this.elementRef.nativeElement);\n\n const handleScroll = (event: Event) => {\n const target = event.target as HTMLElement;\n const trigger = this.rootContext.trigger();\n\n if (trigger && target?.contains(trigger)) {\n this.rootContext.close();\n }\n };\n\n window.addEventListener('scroll', handleScroll, { capture: true });\n\n this.destroyRef.onDestroy(() => {\n window.removeEventListener('scroll', handleScroll, { capture: true });\n });\n\n this.graceArea.onPointerExit(() => {\n if (this.rootContext.disableHoverablePopup()) return;\n this.rootContext.closeDelayed();\n });\n });\n\n constructor() {\n this.dismissableLayer.focusOutside.subscribe((e) => e.preventDefault());\n\n this.dismissableLayer.dismiss.subscribe(() => this.rootContext.close());\n }\n}\n","import {\n booleanAttribute,\n computed,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n numberAttribute,\n signal,\n untracked\n} from '@angular/core';\nimport { BooleanInput, injectId, NumberInput } from '@radix-ng/primitives/core';\nimport { RdxPopperAnchor } from '@radix-ng/primitives/popper';\nimport { injectRdxTooltipContext } from './tooltip';\nimport { RdxTooltipHandle } from './tooltip-handle';\n\n@Directive({\n selector: '[rdxTooltipTrigger]',\n hostDirectives: [RdxPopperAnchor],\n host: {\n type: 'button',\n 'data-grace-area-trigger': \"''\",\n '[id]': 'triggerId()',\n '[attr.aria-describedby]': 'isOpen() ? rootContext()?.contentId : undefined',\n '[attr.data-popup-open]': 'isOpen() ? \"\" : undefined',\n '[attr.data-trigger-disabled]': 'isDisabled() ? \"\" : undefined',\n '(pointermove)': 'handlePointerMove($event)',\n '(pointerleave)': 'handlePointerLeave()',\n '(pointerdown)': 'handlePointerDown($event)',\n '(focus)': 'handleFocus()',\n '(blur)': 'handleBlur()',\n '(click)': 'handleClick()'\n }\n})\nexport class RdxTooltipTrigger {\n private readonly parentRootContext = injectRdxTooltipContext(true);\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly generatedId = injectId('rdx-tooltip-trigger-');\n\n /**\n * Associates this trigger with a detached tooltip root.\n */\n readonly handle = input<RdxTooltipHandle<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 tooltip imperatively.\n */\n readonly id = input<string>();\n\n /**\n * Whether the tooltip should close when the trigger is clicked.\n * @defaultValue true\n */\n readonly closeOnClick = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n /**\n * Whether this trigger is disabled. A disabled trigger never opens the tooltip.\n * @defaultValue false\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Overrides the open delay (ms) for this trigger. Falls back to the root/provider/global delay.\n */\n readonly delay = input<number | undefined, NumberInput | undefined>(undefined, {\n transform: (value) => (value == null ? undefined : numberAttribute(value))\n });\n\n /**\n * Overrides the close delay (ms) for this trigger. Falls back to the root/provider/global delay.\n */\n readonly closeDelay = input<number | undefined, NumberInput | undefined>(undefined, {\n transform: (value) => (value == null ? undefined : numberAttribute(value))\n });\n\n readonly userOnPointerDown = input<(event: PointerEvent) => void | boolean | Promise<void | boolean> | undefined>(\n undefined,\n { alias: 'rdxOnPointerDown' }\n );\n\n protected readonly triggerId = computed(() => this.id() ?? this.generatedId);\n protected readonly rootContext = computed(() => this.handle()?.context() ?? this.parentRootContext);\n\n /** Disabled if either the root or this trigger is disabled. */\n protected readonly isDisabled = computed(() => (this.rootContext()?.disabled() ?? false) || this.disabled());\n\n /** Whether this specific trigger is the active anchor of an open tooltip. */\n protected readonly isOpen = computed(\n () => this.rootContext()?.isOpen() === true && this.rootContext()?.trigger() === this.elementRef.nativeElement\n );\n\n private readonly isPointerDown = signal(false);\n private readonly hasPointerMoveOpened = signal(false);\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(untracked(() => this.parentRootContext!.registerTrigger(this.elementRef.nativeElement)));\n }\n });\n }\n\n protected handleFocus() {\n const rootContext = this.rootContext();\n\n if (!rootContext || this.isDisabled() || this.isPointerDown()) {\n return;\n }\n\n rootContext.setDelays(this.delay(), this.closeDelay());\n rootContext.open(this.elementRef.nativeElement, this.payload());\n }\n\n protected handleBlur() {\n this.rootContext()?.closeDelayed();\n }\n\n protected handleClick() {\n const rootContext = this.rootContext();\n\n if (rootContext?.isOpen() && this.closeOnClick()) {\n rootContext.close();\n }\n }\n\n protected handlePointerMove(event: PointerEvent) {\n if (event.pointerType === 'touch') {\n return;\n }\n\n const rootContext = this.rootContext();\n\n if (!rootContext || this.isDisabled()) {\n return;\n }\n\n if (rootContext.trackCursorAxis() !== 'none') {\n rootContext.setCursorPosition({ x: event.clientX, y: event.clientY });\n }\n\n if (!this.hasPointerMoveOpened()) {\n rootContext.setDelays(this.delay(), this.closeDelay());\n rootContext.onTriggerEnter(this.elementRef.nativeElement, this.payload());\n this.hasPointerMoveOpened.set(true);\n }\n }\n\n protected handlePointerLeave() {\n this.rootContext()?.onTriggerLeave();\n this.hasPointerMoveOpened.set(false);\n }\n\n protected async handlePointerDown(event: PointerEvent) {\n const user = this.userOnPointerDown();\n let result: unknown;\n\n if (user) {\n result = user(event);\n if (result instanceof Promise) result = await result;\n }\n\n if (event.defaultPrevented || result === false) {\n return;\n }\n\n this.isPointerDown.set(true);\n\n const handlePointerUp = () => {\n setTimeout(() => this.isPointerDown.set(false), 1);\n };\n\n document.addEventListener('pointerup', handlePointerUp, { once: true });\n }\n}\n","import { computed, signal } from '@angular/core';\nimport type { RdxTooltipContext } from './tooltip';\n\n/**\n * Connects a tooltip root with trigger elements rendered elsewhere in the DOM.\n */\ninterface RdxTooltipHandleTrigger<Payload> {\n element: HTMLElement;\n payload: () => Payload | undefined;\n}\n\nexport class RdxTooltipHandle<Payload = unknown> {\n private readonly rootContext = signal<RdxTooltipContext | undefined>(undefined);\n private readonly triggers = new Map<string, RdxTooltipHandleTrigger<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 tooltip trigger registered with id \"${triggerId}\".`);\n }\n\n this.rootContext()?.open(trigger.element, trigger.payload());\n }\n\n close() {\n this.rootContext()?.close();\n }\n\n registerRoot(rootContext: RdxTooltipContext) {\n this.rootContext.set(rootContext);\n this.triggers.forEach((trigger, id) => {\n this.rootTriggerCleanups.set(id, rootContext.registerTrigger(trigger.element));\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(trigger);\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 createRdxTooltipHandle<Payload = unknown>() {\n return new RdxTooltipHandle<Payload>();\n}\n","import { RdxTooltip } from './src/tooltip';\nimport { RdxTooltipArrow } from './src/tooltip-arrow';\nimport { RdxTooltipPopup } from './src/tooltip-popup';\nimport { RdxTooltipPortal } from './src/tooltip-portal';\nimport { RdxTooltipPortalPresence } from './src/tooltip-portal-presence';\nimport { RdxTooltipPositioner } from './src/tooltip-positioner';\nimport { RdxTooltipProvider } from './src/tooltip-provider';\nimport { RdxTooltipTrigger } from './src/tooltip-trigger';\n\nexport * from './src/tooltip';\nexport * from './src/tooltip-arrow';\nexport * from './src/tooltip-handle';\nexport * from './src/tooltip-popup';\nexport * from './src/tooltip-portal';\nexport * from './src/tooltip-portal-presence';\nexport * from './src/tooltip-positioner';\nexport * from './src/tooltip-provider';\nexport * from './src/tooltip-trigger';\nexport * from './src/tooltip.config';\n\nexport const tooltipImports = [\n RdxTooltip,\n RdxTooltipArrow,\n RdxTooltipPopup,\n RdxTooltipPortal,\n RdxTooltipPortalPresence,\n RdxTooltipPositioner,\n RdxTooltipProvider,\n RdxTooltipTrigger\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, linkedSignal, Directive, inject, ElementRef, computed, effect, Injector, afterNextRender } from '@angular/core';
2
+ import { input, linkedSignal, Directive, inject, ElementRef, computed, effect } from '@angular/core';
3
3
  import { watch } from '@radix-ng/primitives/core';
4
4
 
5
5
  /**
@@ -20,7 +20,7 @@ class RdxVisuallyHiddenDirective {
20
20
  this.computedFeature.set(feature);
21
21
  }
22
22
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxVisuallyHiddenDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
23
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: RdxVisuallyHiddenDirective, isStandalone: true, selector: "[rdxVisuallyHidden]", inputs: { feature: { classPropertyName: "feature", publicName: "feature", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.tabindex": "computedFeature() === \"fully-hidden\" ? \"-1\" : undefined", "attr.aria-hidden": "computedFeature() === \"focusable\" ? \"true\" : undefined", "attr.data-hidden": "computedFeature() === \"fully-hidden\" ? \"\" : undefined", "hidden": "computedFeature() === \"fully-hidden\" ? true : undefined", "style": "{\n position: 'absolute',\n border: 0,\n width: '1px',\n height: '1px',\n padding: 0,\n margin: '-1px',\n overflow: 'hidden',\n clip: 'rect(0, 0, 0, 0)',\n clipPath: 'inset(50%)',\n whiteSpace: 'nowrap',\n wordWrap: 'normal',\n top: '-1px',\n left: '-1px'\n }", "style.display": "feature() === \"focusable\" ? \"inline-block\" : \"none\"" } }, ngImport: i0 }); }
23
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: RdxVisuallyHiddenDirective, isStandalone: true, selector: "[rdxVisuallyHidden]", inputs: { feature: { classPropertyName: "feature", publicName: "feature", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.tabindex": "computedFeature() === \"fully-hidden\" ? \"-1\" : undefined", "attr.aria-hidden": "computedFeature() === \"fully-hidden\" ? \"true\" : undefined", "attr.data-hidden": "computedFeature() === \"fully-hidden\" ? \"\" : undefined", "hidden": "computedFeature() === \"fully-hidden\" ? true : undefined", "style": "{\n position: 'absolute',\n border: 0,\n width: '1px',\n height: '1px',\n padding: 0,\n margin: '-1px',\n overflow: 'hidden',\n clip: 'rect(0, 0, 0, 0)',\n clipPath: 'inset(50%)',\n whiteSpace: 'nowrap',\n wordWrap: 'normal'\n }", "style.display": "computedFeature() === \"focusable\" ? \"inline-block\" : \"none\"" } }, ngImport: i0 }); }
24
24
  }
25
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxVisuallyHiddenDirective, decorators: [{
26
26
  type: Directive,
@@ -28,7 +28,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
28
28
  selector: '[rdxVisuallyHidden]',
29
29
  host: {
30
30
  '[attr.tabindex]': 'computedFeature() === "fully-hidden" ? "-1" : undefined',
31
- '[attr.aria-hidden]': 'computedFeature() === "focusable" ? "true" : undefined',
31
+ '[attr.aria-hidden]': 'computedFeature() === "fully-hidden" ? "true" : undefined',
32
32
  '[attr.data-hidden]': 'computedFeature() === "fully-hidden" ? "" : undefined',
33
33
  '[hidden]': 'computedFeature() === "fully-hidden" ? true : undefined',
34
34
  '[style]': `{
@@ -42,11 +42,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
42
42
  clip: 'rect(0, 0, 0, 0)',
43
43
  clipPath: 'inset(50%)',
44
44
  whiteSpace: 'nowrap',
45
- wordWrap: 'normal',
46
- top: '-1px',
47
- left: '-1px'
45
+ wordWrap: 'normal'
48
46
  }`,
49
- '[style.display]': 'feature() === "focusable" ? "inline-block" : "none"'
47
+ '[style.display]': 'computedFeature() === "focusable" ? "inline-block" : "none"'
50
48
  }
51
49
  }]
52
50
  }], propDecorators: { feature: [{ type: i0.Input, args: [{ isSignal: true, alias: "feature", required: false }] }] } });
@@ -116,77 +114,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
116
114
  }]
117
115
  }], ctorParameters: () => [], propDecorators: { feature: [{ type: i0.Input, args: [{ isSignal: true, alias: "feature", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], checked: [{ type: i0.Input, args: [{ isSignal: true, alias: "checked", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
118
116
 
119
- // Implementation from https://github.com/unovue/radix-vue
117
+ /**
118
+ * Mirrors a control's value into a visually hidden `<input>` so it participates in form
119
+ * submission while staying out of the visual and (when `fully-hidden`) accessibility tree.
120
+ *
121
+ * Apply it to a real `<input>` element. It carries a **single scalar value** — the composed
122
+ * {@link RdxVisuallyHiddenInputBubbleDirective} owns `name`/`value`/`checked` and keeps the
123
+ * native value in sync, re-dispatching `input`/`change` events so the value bubbles to the form.
124
+ *
125
+ * A single `<input>` can only represent one form field, so object/array values are not
126
+ * supported here; render one directive per field instead.
127
+ *
128
+ * @example
129
+ * ```html
130
+ * <input rdxVisuallyHiddenInput [name]="'agree'" [value]="checked() ? 'on' : 'off'" />
131
+ * ```
132
+ */
120
133
  class RdxVisuallyHiddenInputDirective {
121
- constructor() {
122
- this.elementRef = inject(ElementRef);
123
- this.injector = inject(Injector);
124
- this.name = input(undefined, ...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
125
- this.value = input(...(ngDevMode ? [undefined, { debugName: "value" }] : /* istanbul ignore next */ []));
126
- this.checked = input(undefined, ...(ngDevMode ? [{ debugName: "checked" }] : /* istanbul ignore next */ []));
127
- this.required = input(undefined, ...(ngDevMode ? [{ debugName: "required" }] : /* istanbul ignore next */ []));
128
- this.disabled = input(undefined, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
129
- this.feature = input('fully-hidden', ...(ngDevMode ? [{ debugName: "feature" }] : /* istanbul ignore next */ []));
130
- this.parsedValue = computed(() => {
131
- const value = this.value();
132
- const name = this.name();
133
- if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
134
- return [{ name, value }];
135
- }
136
- if (Array.isArray(value)) {
137
- return value.flatMap((obj, index) => {
138
- if (typeof obj === 'object') {
139
- return Object.entries(obj).map(([key, val]) => ({
140
- name: `[${name}][${index}][${key}]`,
141
- value: val
142
- }));
143
- }
144
- else {
145
- return { name: `[${name}][${index}]`, value: obj };
146
- }
147
- });
148
- }
149
- if (value !== null && typeof value === 'object') {
150
- return Object.entries(value).map(([key, val]) => ({
151
- name: `[${name}][${key}]`,
152
- value: val
153
- }));
154
- }
155
- return [];
156
- }, ...(ngDevMode ? [{ debugName: "parsedValue" }] : /* istanbul ignore next */ []));
157
- afterNextRender(() => {
158
- effect(() => {
159
- const parsedValues = this.parsedValue();
160
- parsedValues.forEach((parsed) => {
161
- const inputElement = this.elementRef.nativeElement;
162
- inputElement.setAttribute('name', parsed.name);
163
- inputElement.setAttribute('value', parsed.value);
164
- });
165
- }, { injector: this.injector });
166
- });
167
- }
168
134
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxVisuallyHiddenInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
169
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: RdxVisuallyHiddenInputDirective, isStandalone: true, selector: "[rdxVisuallyHiddenInput]", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, feature: { classPropertyName: "feature", publicName: "feature", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: RdxVisuallyHiddenInputBubbleDirective, inputs: ["feature", "feature", "name", "name", "value", "value", "checked", "checked", "disabled", "disabled", "required", "required"] }], ngImport: i0 }); }
135
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: RdxVisuallyHiddenInputDirective, isStandalone: true, selector: "input[rdxVisuallyHiddenInput]", hostDirectives: [{ directive: RdxVisuallyHiddenInputBubbleDirective, inputs: ["feature", "feature", "name", "name", "value", "value", "checked", "checked", "required", "required", "disabled", "disabled"] }], ngImport: i0 }); }
170
136
  }
171
137
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxVisuallyHiddenInputDirective, decorators: [{
172
138
  type: Directive,
173
139
  args: [{
174
- selector: '[rdxVisuallyHiddenInput]',
140
+ selector: 'input[rdxVisuallyHiddenInput]',
175
141
  hostDirectives: [
176
142
  {
177
143
  directive: RdxVisuallyHiddenInputBubbleDirective,
178
- inputs: [
179
- 'feature: feature',
180
- 'name: name ',
181
- 'value: value',
182
- 'checked: checked',
183
- 'disabled: disabled',
184
- 'required: required'
185
- ]
144
+ inputs: ['feature', 'name', 'value', 'checked', 'required', 'disabled']
186
145
  }
187
146
  ]
188
147
  }]
189
- }], ctorParameters: () => [], propDecorators: { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], checked: [{ type: i0.Input, args: [{ isSignal: true, alias: "checked", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], feature: [{ type: i0.Input, args: [{ isSignal: true, alias: "feature", required: false }] }] } });
148
+ }] });
190
149
 
191
150
  /**
192
151
  * Generated bundle index. Do not edit.