@radix-ng/primitives 0.23.0 → 0.25.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 (293) hide show
  1. package/avatar/src/avatar-fallback.directive.d.ts +1 -1
  2. package/compodoc/documentation.json +14309 -15232
  3. package/core/index.d.ts +3 -2
  4. package/core/src/positioning/constants.d.ts +2 -0
  5. package/core/src/positioning/types.d.ts +31 -0
  6. package/{popover/src/popover.utils.d.ts → core/src/positioning/utils.d.ts} +4 -4
  7. package/dialog/src/dialog-trigger.directive.d.ts +12 -0
  8. package/fesm2022/radix-ng-primitives-accordion.mjs +19 -19
  9. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
  10. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +22 -22
  11. package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -1
  12. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs +3 -3
  13. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs.map +1 -1
  14. package/fesm2022/radix-ng-primitives-avatar.mjs +17 -17
  15. package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
  16. package/fesm2022/radix-ng-primitives-checkbox.mjs +16 -16
  17. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  18. package/fesm2022/radix-ng-primitives-collapsible.mjs +9 -9
  19. package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
  20. package/fesm2022/radix-ng-primitives-context-menu.mjs +34 -34
  21. package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -1
  22. package/fesm2022/radix-ng-primitives-core.mjs +211 -236
  23. package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
  24. package/fesm2022/radix-ng-primitives-dialog.mjs +31 -26
  25. package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
  26. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +34 -34
  27. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +1 -1
  28. package/fesm2022/radix-ng-primitives-label.mjs +3 -3
  29. package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
  30. package/fesm2022/radix-ng-primitives-menu.mjs +22 -22
  31. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
  32. package/fesm2022/radix-ng-primitives-menubar.mjs +31 -31
  33. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
  34. package/fesm2022/radix-ng-primitives-popover.mjs +246 -266
  35. package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
  36. package/fesm2022/radix-ng-primitives-progress.mjs +10 -10
  37. package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
  38. package/fesm2022/radix-ng-primitives-radio.mjs +12 -12
  39. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  40. package/fesm2022/radix-ng-primitives-roving-focus.mjs +6 -6
  41. package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -1
  42. package/fesm2022/radix-ng-primitives-select.mjs +34 -35
  43. package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
  44. package/fesm2022/radix-ng-primitives-separator.mjs +3 -3
  45. package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
  46. package/fesm2022/radix-ng-primitives-slider.mjs +31 -34
  47. package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
  48. package/fesm2022/radix-ng-primitives-switch.mjs +18 -15
  49. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  50. package/fesm2022/radix-ng-primitives-tabs.mjs +16 -16
  51. package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
  52. package/fesm2022/radix-ng-primitives-toggle-group.mjs +9 -9
  53. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  54. package/fesm2022/radix-ng-primitives-toggle.mjs +6 -6
  55. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
  56. package/fesm2022/radix-ng-primitives-tooltip.mjs +143 -242
  57. package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
  58. package/fesm2022/radix-ng-primitives-visually-hidden.mjs +9 -9
  59. package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -1
  60. package/package.json +3 -57
  61. package/popover/index.d.ts +0 -1
  62. package/popover/src/popover-arrow.directive.d.ts +3 -4
  63. package/popover/src/popover-content.directive.d.ts +17 -9
  64. package/popover/src/popover-root.directive.d.ts +25 -1
  65. package/popover/src/popover.constants.d.ts +0 -2
  66. package/popover/src/popover.types.d.ts +0 -31
  67. package/popover/src/utils/cdk-event.service.d.ts +30 -0
  68. package/popover/src/utils/constants.d.ts +1 -0
  69. package/popover/src/utils/types.d.ts +7 -0
  70. package/switch/src/switch-root.directive.d.ts +4 -1
  71. package/tooltip/src/tooltip-arrow.directive.d.ts +14 -1
  72. package/tooltip/src/tooltip-content.directive.d.ts +4 -5
  73. package/tooltip/src/tooltip-root.directive.d.ts +6 -3
  74. package/tooltip/src/tooltip.types.d.ts +0 -11
  75. package/core/src/control-value-accessor/index.d.ts +0 -75
  76. package/core/src/create-inject-context/assert-injector.d.ts +0 -51
  77. package/core/src/create-inject-context/index.d.ts +0 -68
  78. package/core/src/types.d.ts +0 -23
  79. package/esm2022/accordion/index.mjs +0 -40
  80. package/esm2022/accordion/radix-ng-primitives-accordion.mjs +0 -5
  81. package/esm2022/accordion/src/accordion-content.directive.mjs +0 -42
  82. package/esm2022/accordion/src/accordion-header.directive.mjs +0 -23
  83. package/esm2022/accordion/src/accordion-item.directive.mjs +0 -196
  84. package/esm2022/accordion/src/accordion-root.directive.mjs +0 -200
  85. package/esm2022/accordion/src/accordion-trigger.directive.mjs +0 -42
  86. package/esm2022/alert-dialog/index.mjs +0 -41
  87. package/esm2022/alert-dialog/radix-ng-primitives-alert-dialog.mjs +0 -5
  88. package/esm2022/alert-dialog/src/alert-dialog-cancel.directive.mjs +0 -24
  89. package/esm2022/alert-dialog/src/alert-dialog-content.directive.mjs +0 -34
  90. package/esm2022/alert-dialog/src/alert-dialog-root.directive.mjs +0 -24
  91. package/esm2022/alert-dialog/src/alert-dialog-title.directive.mjs +0 -14
  92. package/esm2022/alert-dialog/src/alert-dialog-trigger.directive.mjs +0 -24
  93. package/esm2022/alert-dialog/src/alert-dialog.service.mjs +0 -46
  94. package/esm2022/aspect-ratio/index.mjs +0 -2
  95. package/esm2022/aspect-ratio/radix-ng-primitives-aspect-ratio.mjs +0 -5
  96. package/esm2022/aspect-ratio/src/aspect-ratio.directive.mjs +0 -57
  97. package/esm2022/avatar/index.mjs +0 -31
  98. package/esm2022/avatar/radix-ng-primitives-avatar.mjs +0 -5
  99. package/esm2022/avatar/src/avatar-fallback.directive.mjs +0 -67
  100. package/esm2022/avatar/src/avatar-image.directive.mjs +0 -65
  101. package/esm2022/avatar/src/avatar-root.directive.mjs +0 -26
  102. package/esm2022/avatar/src/avatar.config.mjs +0 -17
  103. package/esm2022/checkbox/index.mjs +0 -36
  104. package/esm2022/checkbox/radix-ng-primitives-checkbox.mjs +0 -5
  105. package/esm2022/checkbox/src/checkbox-button.directive.mjs +0 -33
  106. package/esm2022/checkbox/src/checkbox-indicator.directive.mjs +0 -24
  107. package/esm2022/checkbox/src/checkbox-input.directive.mjs +0 -44
  108. package/esm2022/checkbox/src/checkbox.directive.mjs +0 -141
  109. package/esm2022/checkbox/src/checkbox.token.mjs +0 -6
  110. package/esm2022/collapsible/index.mjs +0 -4
  111. package/esm2022/collapsible/radix-ng-primitives-collapsible.mjs +0 -5
  112. package/esm2022/collapsible/src/collapsible-content.directive.mjs +0 -42
  113. package/esm2022/collapsible/src/collapsible-content.token.mjs +0 -3
  114. package/esm2022/collapsible/src/collapsible-root.directive.mjs +0 -127
  115. package/esm2022/collapsible/src/collapsible-trigger.directive.mjs +0 -49
  116. package/esm2022/context-menu/index.mjs +0 -65
  117. package/esm2022/context-menu/radix-ng-primitives-context-menu.mjs +0 -5
  118. package/esm2022/context-menu/src/context-menu-content.directive.mjs +0 -56
  119. package/esm2022/context-menu/src/context-menu-item-checkbox.directive.mjs +0 -39
  120. package/esm2022/context-menu/src/context-menu-item-indicator.directive.mjs +0 -22
  121. package/esm2022/context-menu/src/context-menu-item-radio-group.directive.mjs +0 -37
  122. package/esm2022/context-menu/src/context-menu-item-radio.directive.mjs +0 -67
  123. package/esm2022/context-menu/src/context-menu-item-selectable.mjs +0 -31
  124. package/esm2022/context-menu/src/context-menu-item.directive.mjs +0 -70
  125. package/esm2022/context-menu/src/context-menu-label.directive.mjs +0 -14
  126. package/esm2022/context-menu/src/context-menu-separator.directive.mjs +0 -21
  127. package/esm2022/context-menu/src/context-menu-trigger.directive.mjs +0 -92
  128. package/esm2022/core/index.mjs +0 -11
  129. package/esm2022/core/radix-ng-primitives-core.mjs +0 -5
  130. package/esm2022/core/src/accessor/provide-value-accessor.mjs +0 -19
  131. package/esm2022/core/src/auto-focus.directive.mjs +0 -80
  132. package/esm2022/core/src/control-value-accessor/index.mjs +0 -103
  133. package/esm2022/core/src/create-inject-context/assert-injector.mjs +0 -15
  134. package/esm2022/core/src/create-inject-context/index.mjs +0 -116
  135. package/esm2022/core/src/document.mjs +0 -6
  136. package/esm2022/core/src/id-generator.mjs +0 -43
  137. package/esm2022/core/src/inject-ng-control.mjs +0 -17
  138. package/esm2022/core/src/is-client.mjs +0 -6
  139. package/esm2022/core/src/is-inside-form.mjs +0 -7
  140. package/esm2022/core/src/types.mjs +0 -2
  141. package/esm2022/core/src/window.mjs +0 -15
  142. package/esm2022/dialog/index.mjs +0 -50
  143. package/esm2022/dialog/radix-ng-primitives-dialog.mjs +0 -5
  144. package/esm2022/dialog/src/dialog-close.directive.mjs +0 -25
  145. package/esm2022/dialog/src/dialog-content.directive.mjs +0 -46
  146. package/esm2022/dialog/src/dialog-description.directive.mjs +0 -14
  147. package/esm2022/dialog/src/dialog-dismiss.directive.mjs +0 -25
  148. package/esm2022/dialog/src/dialog-ref.mjs +0 -46
  149. package/esm2022/dialog/src/dialog-title.directive.mjs +0 -14
  150. package/esm2022/dialog/src/dialog-trigger.directive.mjs +0 -54
  151. package/esm2022/dialog/src/dialog.config.mjs +0 -6
  152. package/esm2022/dialog/src/dialog.injectors.mjs +0 -10
  153. package/esm2022/dialog/src/dialog.providers.mjs +0 -26
  154. package/esm2022/dialog/src/dialog.service.mjs +0 -96
  155. package/esm2022/dropdown-menu/index.mjs +0 -68
  156. package/esm2022/dropdown-menu/radix-ng-primitives-dropdown-menu.mjs +0 -5
  157. package/esm2022/dropdown-menu/src/dropdown-menu-content.directive.mjs +0 -56
  158. package/esm2022/dropdown-menu/src/dropdown-menu-item-checkbox.directive.mjs +0 -39
  159. package/esm2022/dropdown-menu/src/dropdown-menu-item-indicator.directive.mjs +0 -22
  160. package/esm2022/dropdown-menu/src/dropdown-menu-item-radio-group.directive.mjs +0 -37
  161. package/esm2022/dropdown-menu/src/dropdown-menu-item-radio.directive.mjs +0 -67
  162. package/esm2022/dropdown-menu/src/dropdown-menu-item-selectable.mjs +0 -31
  163. package/esm2022/dropdown-menu/src/dropdown-menu-item.directive.mjs +0 -73
  164. package/esm2022/dropdown-menu/src/dropdown-menu-label.directive.mjs +0 -14
  165. package/esm2022/dropdown-menu/src/dropdown-menu-separator.directive.mjs +0 -21
  166. package/esm2022/dropdown-menu/src/dropdown-menu-trigger.directive.mjs +0 -210
  167. package/esm2022/index.mjs +0 -2
  168. package/esm2022/label/index.mjs +0 -2
  169. package/esm2022/label/radix-ng-primitives-label.mjs +0 -5
  170. package/esm2022/label/src/label.directive.mjs +0 -57
  171. package/esm2022/menu/index.mjs +0 -45
  172. package/esm2022/menu/radix-ng-primitives-menu.mjs +0 -5
  173. package/esm2022/menu/src/menu-content.directive.mjs +0 -17
  174. package/esm2022/menu/src/menu-directive.mjs +0 -18
  175. package/esm2022/menu/src/menu-group.directive.mjs +0 -20
  176. package/esm2022/menu/src/menu-item.directive.mjs +0 -46
  177. package/esm2022/menu/src/menu-label.directive.mjs +0 -14
  178. package/esm2022/menu/src/menu-separator.directive.mjs +0 -21
  179. package/esm2022/menubar/index.mjs +0 -60
  180. package/esm2022/menubar/radix-ng-primitives-menubar.mjs +0 -5
  181. package/esm2022/menubar/src/menubar-content.directive.mjs +0 -17
  182. package/esm2022/menubar/src/menubar-item-checkbox.directive.mjs +0 -34
  183. package/esm2022/menubar/src/menubar-item-indicator.directive.mjs +0 -17
  184. package/esm2022/menubar/src/menubar-item-radio.directive.mjs +0 -35
  185. package/esm2022/menubar/src/menubar-item.directive.mjs +0 -20
  186. package/esm2022/menubar/src/menubar-radio-group.directive.mjs +0 -17
  187. package/esm2022/menubar/src/menubar-root.directive.mjs +0 -24
  188. package/esm2022/menubar/src/menubar-separator.directive.mjs +0 -17
  189. package/esm2022/menubar/src/menubar-trigger.directive.mjs +0 -45
  190. package/esm2022/popover/index.mjs +0 -51
  191. package/esm2022/popover/radix-ng-primitives-popover.mjs +0 -5
  192. package/esm2022/popover/src/popover-anchor.directive.mjs +0 -70
  193. package/esm2022/popover/src/popover-anchor.token.mjs +0 -3
  194. package/esm2022/popover/src/popover-arrow.directive.mjs +0 -117
  195. package/esm2022/popover/src/popover-arrow.token.mjs +0 -3
  196. package/esm2022/popover/src/popover-close.directive.mjs +0 -49
  197. package/esm2022/popover/src/popover-close.token.mjs +0 -3
  198. package/esm2022/popover/src/popover-content-attributes.component.mjs +0 -70
  199. package/esm2022/popover/src/popover-content-attributes.token.mjs +0 -3
  200. package/esm2022/popover/src/popover-content.directive.mjs +0 -255
  201. package/esm2022/popover/src/popover-root.directive.mjs +0 -315
  202. package/esm2022/popover/src/popover-root.inject.mjs +0 -7
  203. package/esm2022/popover/src/popover-trigger.directive.mjs +0 -41
  204. package/esm2022/popover/src/popover.constants.mjs +0 -90
  205. package/esm2022/popover/src/popover.types.mjs +0 -31
  206. package/esm2022/popover/src/popover.utils.mjs +0 -107
  207. package/esm2022/progress/index.mjs +0 -25
  208. package/esm2022/progress/radix-ng-primitives-progress.mjs +0 -5
  209. package/esm2022/progress/src/progress-indicator.directive.mjs +0 -33
  210. package/esm2022/progress/src/progress-root.directive.mjs +0 -132
  211. package/esm2022/radio/index.mjs +0 -5
  212. package/esm2022/radio/radix-ng-primitives-radio.mjs +0 -5
  213. package/esm2022/radio/src/radio-indicator.directive.mjs +0 -25
  214. package/esm2022/radio/src/radio-item-input.directive.mjs +0 -37
  215. package/esm2022/radio/src/radio-item.directive.mjs +0 -86
  216. package/esm2022/radio/src/radio-root.directive.mjs +0 -104
  217. package/esm2022/radio/src/radio-tokens.mjs +0 -3
  218. package/esm2022/radix-ng-primitives.mjs +0 -5
  219. package/esm2022/roving-focus/index.mjs +0 -3
  220. package/esm2022/roving-focus/radix-ng-primitives-roving-focus.mjs +0 -5
  221. package/esm2022/roving-focus/src/roving-focus-group.directive.mjs +0 -138
  222. package/esm2022/roving-focus/src/roving-focus-item.directive.mjs +0 -133
  223. package/esm2022/roving-focus/src/utils.mjs +0 -47
  224. package/esm2022/select/index.mjs +0 -65
  225. package/esm2022/select/radix-ng-primitives-select.mjs +0 -5
  226. package/esm2022/select/src/select-content.directive.mjs +0 -53
  227. package/esm2022/select/src/select-group.directive.mjs +0 -18
  228. package/esm2022/select/src/select-icon.directive.mjs +0 -18
  229. package/esm2022/select/src/select-item-indicator.directive.mjs +0 -23
  230. package/esm2022/select/src/select-item.directive.mjs +0 -122
  231. package/esm2022/select/src/select-label.directive.mjs +0 -15
  232. package/esm2022/select/src/select-separator.directive.mjs +0 -18
  233. package/esm2022/select/src/select-trigger.directive.mjs +0 -38
  234. package/esm2022/select/src/select-value.directive.mjs +0 -21
  235. package/esm2022/select/src/select.component.mjs +0 -234
  236. package/esm2022/separator/index.mjs +0 -2
  237. package/esm2022/separator/radix-ng-primitives-separator.mjs +0 -5
  238. package/esm2022/separator/src/separator.directive.mjs +0 -61
  239. package/esm2022/slider/index.mjs +0 -28
  240. package/esm2022/slider/radix-ng-primitives-slider.mjs +0 -5
  241. package/esm2022/slider/src/slider-horizontal.component.mjs +0 -117
  242. package/esm2022/slider/src/slider-impl.directive.mjs +0 -89
  243. package/esm2022/slider/src/slider-orientation-context.service.mjs +0 -27
  244. package/esm2022/slider/src/slider-range.component.mjs +0 -41
  245. package/esm2022/slider/src/slider-root.component.mjs +0 -210
  246. package/esm2022/slider/src/slider-thumb-impl.directive.mjs +0 -106
  247. package/esm2022/slider/src/slider-thumb.component.mjs +0 -22
  248. package/esm2022/slider/src/slider-track.component.mjs +0 -27
  249. package/esm2022/slider/src/slider-vertical.component.mjs +0 -117
  250. package/esm2022/slider/src/utils.mjs +0 -94
  251. package/esm2022/switch/index.mjs +0 -30
  252. package/esm2022/switch/radix-ng-primitives-switch.mjs +0 -5
  253. package/esm2022/switch/src/switch-input.directive.mjs +0 -44
  254. package/esm2022/switch/src/switch-root.directive.mjs +0 -145
  255. package/esm2022/switch/src/switch-thumb.directive.mjs +0 -26
  256. package/esm2022/tabs/index.mjs +0 -35
  257. package/esm2022/tabs/radix-ng-primitives-tabs.mjs +0 -5
  258. package/esm2022/tabs/src/tabs-content.directive.mjs +0 -35
  259. package/esm2022/tabs/src/tabs-list.directive.mjs +0 -26
  260. package/esm2022/tabs/src/tabs-root.directive.mjs +0 -57
  261. package/esm2022/tabs/src/tabs-trigger.directive.mjs +0 -78
  262. package/esm2022/tabs/src/utils.mjs +0 -7
  263. package/esm2022/toggle/index.mjs +0 -3
  264. package/esm2022/toggle/radix-ng-primitives-toggle.mjs +0 -5
  265. package/esm2022/toggle/src/toggle-visually-hidden-input.directive.mjs +0 -31
  266. package/esm2022/toggle/src/toggle.directive.mjs +0 -79
  267. package/esm2022/toggle-group/index.mjs +0 -6
  268. package/esm2022/toggle-group/radix-ng-primitives-toggle-group.mjs +0 -5
  269. package/esm2022/toggle-group/src/toggle-group-item.directive.mjs +0 -85
  270. package/esm2022/toggle-group/src/toggle-group-item.token.mjs +0 -3
  271. package/esm2022/toggle-group/src/toggle-group-multiple.directive.mjs +0 -185
  272. package/esm2022/toggle-group/src/toggle-group.directive.mjs +0 -179
  273. package/esm2022/toggle-group/src/toggle-group.token.mjs +0 -6
  274. package/esm2022/tooltip/index.mjs +0 -41
  275. package/esm2022/tooltip/radix-ng-primitives-tooltip.mjs +0 -5
  276. package/esm2022/tooltip/src/get-content-position.mjs +0 -31
  277. package/esm2022/tooltip/src/tooltip-arrow.directive.mjs +0 -92
  278. package/esm2022/tooltip/src/tooltip-arrow.token.mjs +0 -3
  279. package/esm2022/tooltip/src/tooltip-content-attributes.directive.mjs +0 -24
  280. package/esm2022/tooltip/src/tooltip-content.directive.mjs +0 -48
  281. package/esm2022/tooltip/src/tooltip-content.token.mjs +0 -3
  282. package/esm2022/tooltip/src/tooltip-root.directive.mjs +0 -288
  283. package/esm2022/tooltip/src/tooltip-trigger.directive.mjs +0 -70
  284. package/esm2022/tooltip/src/tooltip.config.mjs +0 -18
  285. package/esm2022/tooltip/src/tooltip.constants.mjs +0 -84
  286. package/esm2022/tooltip/src/tooltip.types.mjs +0 -14
  287. package/esm2022/visually-hidden/index.mjs +0 -4
  288. package/esm2022/visually-hidden/radix-ng-primitives-visually-hidden.mjs +0 -5
  289. package/esm2022/visually-hidden/src/visually-hidden-input-bubble.directive.mjs +0 -74
  290. package/esm2022/visually-hidden/src/visually-hidden-input.directive.mjs +0 -74
  291. package/esm2022/visually-hidden/src/visually-hidden.directive.mjs +0 -42
  292. package/tooltip/src/get-content-position.d.ts +0 -3
  293. package/tooltip/src/tooltip.constants.d.ts +0 -9
@@ -1,8 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, Renderer2, ElementRef, input, computed, effect, forwardRef, Directive, ViewContainerRef, DestroyRef, PLATFORM_ID, output, signal, contentChild, untracked, TemplateRef, NgModule } from '@angular/core';
2
+ import { InjectionToken, inject, ElementRef, Directive, ViewContainerRef, DestroyRef, PLATFORM_ID, input, output, signal, computed, contentChild, effect, untracked, forwardRef, Renderer2, afterNextRender, TemplateRef, NgModule } from '@angular/core';
3
+ import { injectDocument, injectWindow, getArrowPositionParams, getSideAndAlignFromAllPossibleConnectedPositions, RdxPositionSide, RdxPositionAlign, getContentPosition } from '@radix-ng/primitives/core';
3
4
  import { Overlay } from '@angular/cdk/overlay';
4
5
  import { TemplatePortal } from '@angular/cdk/portal';
5
- import { DOCUMENT, isPlatformBrowser } from '@angular/common';
6
+ import { isPlatformBrowser } from '@angular/common';
6
7
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
7
8
  import { filter, take, asyncScheduler } from 'rxjs';
8
9
 
@@ -10,107 +11,6 @@ const RdxTooltipArrowToken = new InjectionToken('RdxTooltipArrowToken');
10
11
 
11
12
  const RdxTooltipContentToken = new InjectionToken('RdxTooltipContentToken');
12
13
 
13
- var RdxTooltipSide;
14
- (function (RdxTooltipSide) {
15
- RdxTooltipSide["Top"] = "top";
16
- RdxTooltipSide["Right"] = "right";
17
- RdxTooltipSide["Bottom"] = "bottom";
18
- RdxTooltipSide["Left"] = "left";
19
- })(RdxTooltipSide || (RdxTooltipSide = {}));
20
- var RdxTooltipAlign;
21
- (function (RdxTooltipAlign) {
22
- RdxTooltipAlign["Start"] = "start";
23
- RdxTooltipAlign["Center"] = "center";
24
- RdxTooltipAlign["End"] = "end";
25
- })(RdxTooltipAlign || (RdxTooltipAlign = {}));
26
-
27
- class RdxTooltipArrowDirective {
28
- constructor() {
29
- /** @ignore */
30
- this.renderer = inject(Renderer2);
31
- /** @ignore */
32
- this.contentDirective = inject(RdxTooltipContentToken);
33
- /** @ignore */
34
- this.elementRef = inject(ElementRef);
35
- /**
36
- * The width of the arrow in pixels.
37
- */
38
- this.width = input(10);
39
- /**
40
- * The height of the arrow in pixels.
41
- */
42
- this.height = input(5);
43
- /** @ignore */
44
- this.arrowSvgElement = computed(() => {
45
- const width = this.width();
46
- const height = this.height();
47
- const svgElement = this.renderer.createElement('svg', 'svg');
48
- this.renderer.setAttribute(svgElement, 'viewBox', '0 0 30 10');
49
- this.renderer.setAttribute(svgElement, 'width', String(width));
50
- this.renderer.setAttribute(svgElement, 'height', String(height));
51
- const polygonElement = this.renderer.createElement('polygon', 'svg');
52
- this.renderer.setAttribute(polygonElement, 'points', '0,0 30,0 15,10');
53
- this.renderer.setAttribute(svgElement, 'preserveAspectRatio', 'none');
54
- this.renderer.appendChild(svgElement, polygonElement);
55
- return svgElement;
56
- });
57
- /** @ignore */
58
- this.onArrowSvgElementChangeEffect = effect(() => {
59
- const arrowElement = this.arrowSvgElement();
60
- this.renderer.appendChild(this.elementRef.nativeElement, arrowElement);
61
- });
62
- /** @ignore */
63
- this.onSideChangeEffect = effect(() => {
64
- const side = this.contentDirective.side();
65
- this.elementRef.nativeElement.parentElement?.setAttribute('style', `position: relative;`);
66
- this.elementRef.nativeElement.style.position = 'absolute';
67
- this.elementRef.nativeElement.style.boxSizing = '';
68
- this.elementRef.nativeElement.style.width = `${this.width()}px`;
69
- this.elementRef.nativeElement.style.height = `${this.height()}px`;
70
- this.elementRef.nativeElement.style.fontSize = '0px';
71
- if ([RdxTooltipSide.Top, RdxTooltipSide.Bottom].includes(side)) {
72
- this.elementRef.nativeElement.style.left = `calc(50% - ${this.width() / 2}px)`;
73
- this.elementRef.nativeElement.style.top = '100%';
74
- if (side === RdxTooltipSide.Bottom) {
75
- this.elementRef.nativeElement.style.transform = 'rotate(180deg)';
76
- this.elementRef.nativeElement.style.top = `-${this.height()}px`;
77
- }
78
- }
79
- if ([RdxTooltipSide.Left, RdxTooltipSide.Right].includes(side)) {
80
- this.elementRef.nativeElement.style.top = `calc(50% - ${this.height() / 2}px)`;
81
- if (side === RdxTooltipSide.Left) {
82
- this.elementRef.nativeElement.style.left = `100%`;
83
- this.elementRef.nativeElement.style.transform = 'rotate(-90deg) translate(0, -50%)';
84
- }
85
- if (side === RdxTooltipSide.Right) {
86
- this.elementRef.nativeElement.style.right = `100%`;
87
- this.elementRef.nativeElement.style.transform = 'rotate(90deg) translate(0, -50%)';
88
- }
89
- }
90
- });
91
- }
92
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxTooltipArrowDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
93
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.11", type: RdxTooltipArrowDirective, isStandalone: true, selector: "[rdxTooltipArrow]", inputs: { width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
94
- {
95
- provide: RdxTooltipArrowToken,
96
- useExisting: forwardRef(() => RdxTooltipArrowDirective)
97
- }
98
- ], ngImport: i0 }); }
99
- }
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxTooltipArrowDirective, decorators: [{
101
- type: Directive,
102
- args: [{
103
- selector: '[rdxTooltipArrow]',
104
- standalone: true,
105
- providers: [
106
- {
107
- provide: RdxTooltipArrowToken,
108
- useExisting: forwardRef(() => RdxTooltipArrowDirective)
109
- }
110
- ]
111
- }]
112
- }] });
113
-
114
14
  class RdxTooltipTriggerDirective {
115
15
  constructor() {
116
16
  /** @ignore */
@@ -158,10 +58,10 @@ class RdxTooltipTriggerDirective {
158
58
  onClick() {
159
59
  this.tooltipRoot.handleClose();
160
60
  }
161
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxTooltipTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
162
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: RdxTooltipTriggerDirective, isStandalone: true, selector: "[rdxTooltipTrigger]", host: { listeners: { "pointermove": "onPointerMove($event)", "pointerleave": "onPointerLeave()", "pointerdown": "onPointerDown()", "focus": "onFocus()", "blur": "onBlur()", "click": "onClick()" }, properties: { "attr.data-state": "tooltipRoot.state()" } }, ngImport: i0 }); }
61
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: RdxTooltipTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
62
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.5", type: RdxTooltipTriggerDirective, isStandalone: true, selector: "[rdxTooltipTrigger]", host: { listeners: { "pointermove": "onPointerMove($event)", "pointerleave": "onPointerLeave()", "pointerdown": "onPointerDown()", "focus": "onFocus()", "blur": "onBlur()", "click": "onClick()" }, properties: { "attr.data-state": "tooltipRoot.state()" } }, ngImport: i0 }); }
163
63
  }
164
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxTooltipTriggerDirective, decorators: [{
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: RdxTooltipTriggerDirective, decorators: [{
165
65
  type: Directive,
166
66
  args: [{
167
67
  selector: '[rdxTooltipTrigger]',
@@ -210,7 +110,9 @@ class RdxTooltipRootDirective {
210
110
  /** @ignore */
211
111
  this.platformId = inject(PLATFORM_ID);
212
112
  /** @ignore */
213
- this.document = inject(DOCUMENT);
113
+ this.document = injectDocument();
114
+ /** @ignore */
115
+ this.window = injectWindow();
214
116
  /** @ignore */
215
117
  this.tooltipConfig = injectTooltipConfig();
216
118
  /**
@@ -249,7 +151,7 @@ class RdxTooltipRootDirective {
249
151
  /** @ignore */
250
152
  this.tooltipContentDirective = contentChild.required(RdxTooltipContentToken);
251
153
  /** @ignore */
252
- this.tooltipTriggerElementRef = contentChild.required(RdxTooltipTriggerDirective, { read: ElementRef });
154
+ this.tooltipTriggerDirective = contentChild.required(RdxTooltipTriggerDirective);
253
155
  /** @ignore */
254
156
  this.openTimer = 0;
255
157
  /** @ignore */
@@ -320,7 +222,7 @@ class RdxTooltipRootDirective {
320
222
  onClose() {
321
223
  this.clearTimeout(this.skipDelayTimer);
322
224
  if (isPlatformBrowser(this.platformId)) {
323
- this.skipDelayTimer = window.setTimeout(() => {
225
+ this.skipDelayTimer = this.window.setTimeout(() => {
324
226
  this.isOpenDelayed.set(true);
325
227
  }, this.tooltipConfig.skipDelayDuration);
326
228
  }
@@ -370,7 +272,7 @@ class RdxTooltipRootDirective {
370
272
  handleDelayedOpen() {
371
273
  this.clearTimeout(this.openTimer);
372
274
  if (isPlatformBrowser(this.platformId)) {
373
- this.openTimer = window.setTimeout(() => {
275
+ this.openTimer = this.window.setTimeout(() => {
374
276
  this.wasOpenDelayed.set(true);
375
277
  this.setOpen(true);
376
278
  }, this.delayDuration());
@@ -437,7 +339,7 @@ class RdxTooltipRootDirective {
437
339
  getPositionStrategy(connectedPosition) {
438
340
  return this.overlay
439
341
  .position()
440
- .flexibleConnectedTo(this.tooltipTriggerElementRef())
342
+ .flexibleConnectedTo(this.tooltipTriggerDirective().elementRef)
441
343
  .withFlexibleDimensions(false)
442
344
  .withPositions([
443
345
  connectedPosition
@@ -447,18 +349,18 @@ class RdxTooltipRootDirective {
447
349
  /** @ignore */
448
350
  clearTimeout(timeoutId) {
449
351
  if (isPlatformBrowser(this.platformId)) {
450
- window.clearTimeout(timeoutId);
352
+ this.window.clearTimeout(timeoutId);
451
353
  }
452
354
  }
453
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxTooltipRootDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
454
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.11", type: RdxTooltipRootDirective, isStandalone: true, selector: "[rdxTooltipRoot]", inputs: { defaultOpen: { classPropertyName: "defaultOpen", publicName: "defaultOpen", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, delayDuration: { classPropertyName: "delayDuration", publicName: "delayDuration", isSignal: true, isRequired: false, transformFunction: null }, disableHoverableContent: { classPropertyName: "disableHoverableContent", publicName: "disableHoverableContent", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onOpenChange: "onOpenChange" }, providers: [
355
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: RdxTooltipRootDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
356
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.0.5", type: RdxTooltipRootDirective, isStandalone: true, selector: "[rdxTooltipRoot]", inputs: { defaultOpen: { classPropertyName: "defaultOpen", publicName: "defaultOpen", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, delayDuration: { classPropertyName: "delayDuration", publicName: "delayDuration", isSignal: true, isRequired: false, transformFunction: null }, disableHoverableContent: { classPropertyName: "disableHoverableContent", publicName: "disableHoverableContent", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onOpenChange: "onOpenChange" }, providers: [
455
357
  {
456
358
  provide: RdxTooltipRootToken,
457
359
  useExisting: forwardRef(() => RdxTooltipRootDirective)
458
360
  }
459
- ], queries: [{ propertyName: "tooltipContentDirective", first: true, predicate: RdxTooltipContentToken, descendants: true, isSignal: true }, { propertyName: "tooltipTriggerElementRef", first: true, predicate: RdxTooltipTriggerDirective, descendants: true, read: ElementRef, isSignal: true }], exportAs: ["rdxTooltipRoot"], ngImport: i0 }); }
361
+ ], queries: [{ propertyName: "tooltipContentDirective", first: true, predicate: RdxTooltipContentToken, descendants: true, isSignal: true }, { propertyName: "tooltipTriggerDirective", first: true, predicate: RdxTooltipTriggerDirective, descendants: true, isSignal: true }], exportAs: ["rdxTooltipRoot"], ngImport: i0 }); }
460
362
  }
461
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxTooltipRootDirective, decorators: [{
363
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: RdxTooltipRootDirective, decorators: [{
462
364
  type: Directive,
463
365
  args: [{
464
366
  selector: '[rdxTooltipRoot]',
@@ -473,15 +375,121 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
473
375
  }]
474
376
  }] });
475
377
 
378
+ class RdxTooltipArrowDirective {
379
+ constructor() {
380
+ /** @ignore */
381
+ this.tooltipRoot = injectTooltipRoot();
382
+ /** @ignore */
383
+ this.renderer = inject(Renderer2);
384
+ /** @ignore */
385
+ this.contentDirective = inject(RdxTooltipContentToken);
386
+ /** @ignore */
387
+ this.elementRef = inject(ElementRef);
388
+ /**
389
+ * The width of the arrow in pixels.
390
+ */
391
+ this.width = input(10);
392
+ /**
393
+ * The height of the arrow in pixels.
394
+ */
395
+ this.height = input(5);
396
+ /** @ignore */
397
+ this.currentArrowSvgElement = signal(void 0);
398
+ /** @ignore */
399
+ this.arrowSvgElement = computed(() => {
400
+ const width = this.width();
401
+ const height = this.height();
402
+ const svgElement = this.renderer.createElement('svg', 'svg');
403
+ this.renderer.setAttribute(svgElement, 'viewBox', '0 0 30 10');
404
+ this.renderer.setAttribute(svgElement, 'width', String(width));
405
+ this.renderer.setAttribute(svgElement, 'height', String(height));
406
+ const polygonElement = this.renderer.createElement('polygon', 'svg');
407
+ this.renderer.setAttribute(polygonElement, 'points', '0,0 30,0 15,10');
408
+ this.renderer.setAttribute(svgElement, 'preserveAspectRatio', 'none');
409
+ this.renderer.appendChild(svgElement, polygonElement);
410
+ return svgElement;
411
+ });
412
+ /** @ignore */
413
+ this.onArrowSvgElementChangeEffect = effect(() => {
414
+ const arrowElement = this.arrowSvgElement();
415
+ untracked(() => {
416
+ const currentArrowSvgElement = this.currentArrowSvgElement();
417
+ if (currentArrowSvgElement) {
418
+ this.renderer.removeChild(this.elementRef.nativeElement, currentArrowSvgElement);
419
+ }
420
+ this.currentArrowSvgElement.set(arrowElement);
421
+ this.renderer.setStyle(this.elementRef.nativeElement, 'width', `${this.width()}px`);
422
+ this.renderer.setStyle(this.elementRef.nativeElement, 'height', `${this.height()}px`);
423
+ this.renderer.appendChild(this.elementRef.nativeElement, this.currentArrowSvgElement());
424
+ });
425
+ });
426
+ /** @ignore */
427
+ this.onContentPositionAndArrowDimensionsChangeEffect = effect(() => {
428
+ const position = this.contentDirective.position();
429
+ const arrowDimensions = { width: this.width(), height: this.height() };
430
+ untracked(() => {
431
+ if (!position) {
432
+ return;
433
+ }
434
+ this.setPosition(position, arrowDimensions);
435
+ });
436
+ });
437
+ afterNextRender({
438
+ write: () => {
439
+ if (this.elementRef.nativeElement.parentElement) {
440
+ this.renderer.setStyle(this.elementRef.nativeElement.parentElement, 'position', 'relative');
441
+ }
442
+ this.renderer.setStyle(this.elementRef.nativeElement, 'position', 'absolute');
443
+ this.renderer.setStyle(this.elementRef.nativeElement, 'boxSizing', '');
444
+ this.renderer.setStyle(this.elementRef.nativeElement, 'fontSize', '0px');
445
+ }
446
+ });
447
+ }
448
+ /** @ignore */
449
+ setTriggerRect() {
450
+ this.triggerRect = this.tooltipRoot.tooltipTriggerDirective().elementRef.nativeElement.getBoundingClientRect();
451
+ }
452
+ /** @ignore */
453
+ setPosition(position, arrowDimensions) {
454
+ this.setTriggerRect();
455
+ const posParams = getArrowPositionParams(getSideAndAlignFromAllPossibleConnectedPositions(position), { width: arrowDimensions.width, height: arrowDimensions.height }, { width: this.triggerRect.width, height: this.triggerRect.height });
456
+ this.renderer.setStyle(this.elementRef.nativeElement, 'top', posParams.top);
457
+ this.renderer.setStyle(this.elementRef.nativeElement, 'bottom', '');
458
+ this.renderer.setStyle(this.elementRef.nativeElement, 'left', posParams.left);
459
+ this.renderer.setStyle(this.elementRef.nativeElement, 'right', '');
460
+ this.renderer.setStyle(this.elementRef.nativeElement, 'transform', posParams.transform);
461
+ }
462
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: RdxTooltipArrowDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
463
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.5", type: RdxTooltipArrowDirective, isStandalone: true, selector: "[rdxTooltipArrow]", inputs: { width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
464
+ {
465
+ provide: RdxTooltipArrowToken,
466
+ useExisting: forwardRef(() => RdxTooltipArrowDirective)
467
+ }
468
+ ], ngImport: i0 }); }
469
+ }
470
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: RdxTooltipArrowDirective, decorators: [{
471
+ type: Directive,
472
+ args: [{
473
+ selector: '[rdxTooltipArrow]',
474
+ standalone: true,
475
+ providers: [
476
+ {
477
+ provide: RdxTooltipArrowToken,
478
+ useExisting: forwardRef(() => RdxTooltipArrowDirective)
479
+ }
480
+ ]
481
+ }]
482
+ }], ctorParameters: () => [] });
483
+
476
484
  class RdxTooltipContentAttributesDirective {
477
485
  constructor() {
478
486
  this.tooltipRoot = inject(RdxTooltipRootDirective);
479
487
  this.tooltipContent = inject(RdxTooltipContentToken);
480
488
  }
481
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxTooltipContentAttributesDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
482
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: RdxTooltipContentAttributesDirective, isStandalone: true, selector: "[rdxTooltipContentAttributes]", host: { properties: { "attr.data-state": "tooltipRoot.state()", "attr.data-side": "tooltipContent.side()" } }, ngImport: i0 }); }
489
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: RdxTooltipContentAttributesDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
490
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.5", type: RdxTooltipContentAttributesDirective, isStandalone: true, selector: "[rdxTooltipContentAttributes]", host: { properties: { "attr.data-state": "tooltipRoot.state()", "attr.data-side": "tooltipContent.side()" } }, ngImport: i0 }); }
483
491
  }
484
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxTooltipContentAttributesDirective, decorators: [{
492
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: RdxTooltipContentAttributesDirective, decorators: [{
485
493
  type: Directive,
486
494
  args: [{
487
495
  selector: '[rdxTooltipContentAttributes]',
@@ -493,118 +501,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
493
501
  }]
494
502
  }] });
495
503
 
496
- const TOOLTIP_POSITIONS = {
497
- [RdxTooltipSide.Top]: {
498
- [RdxTooltipAlign.Center]: {
499
- originX: 'center',
500
- originY: 'top',
501
- overlayX: 'center',
502
- overlayY: 'bottom'
503
- },
504
- [RdxTooltipAlign.Start]: {
505
- originX: 'start',
506
- originY: 'top',
507
- overlayX: 'start',
508
- overlayY: 'bottom'
509
- },
510
- [RdxTooltipAlign.End]: {
511
- originX: 'end',
512
- originY: 'top',
513
- overlayX: 'end',
514
- overlayY: 'bottom'
515
- }
516
- },
517
- [RdxTooltipSide.Right]: {
518
- [RdxTooltipAlign.Center]: {
519
- originX: 'end',
520
- originY: 'center',
521
- overlayX: 'start',
522
- overlayY: 'center'
523
- },
524
- [RdxTooltipAlign.Start]: {
525
- originX: 'end',
526
- originY: 'top',
527
- overlayX: 'start',
528
- overlayY: 'top'
529
- },
530
- [RdxTooltipAlign.End]: {
531
- originX: 'end',
532
- originY: 'bottom',
533
- overlayX: 'start',
534
- overlayY: 'bottom'
535
- }
536
- },
537
- [RdxTooltipSide.Bottom]: {
538
- [RdxTooltipAlign.Center]: {
539
- originX: 'center',
540
- originY: 'bottom',
541
- overlayX: 'center',
542
- overlayY: 'top'
543
- },
544
- [RdxTooltipAlign.Start]: {
545
- originX: 'start',
546
- originY: 'bottom',
547
- overlayX: 'start',
548
- overlayY: 'top'
549
- },
550
- [RdxTooltipAlign.End]: {
551
- originX: 'end',
552
- originY: 'bottom',
553
- overlayX: 'end',
554
- overlayY: 'top'
555
- }
556
- },
557
- [RdxTooltipSide.Left]: {
558
- [RdxTooltipAlign.Center]: {
559
- originX: 'start',
560
- originY: 'center',
561
- overlayX: 'end',
562
- overlayY: 'center'
563
- },
564
- [RdxTooltipAlign.Start]: {
565
- originX: 'start',
566
- originY: 'top',
567
- overlayX: 'end',
568
- overlayY: 'top'
569
- },
570
- [RdxTooltipAlign.End]: {
571
- originX: 'start',
572
- originY: 'bottom',
573
- overlayX: 'end',
574
- overlayY: 'bottom'
575
- }
576
- }
577
- };
578
-
579
- function getContentPosition(side, align, sideOffset, alignOffset) {
580
- const position = TOOLTIP_POSITIONS[side][align] ?? TOOLTIP_POSITIONS[RdxTooltipSide.Top][RdxTooltipAlign.Center];
581
- if (sideOffset > 0) {
582
- let xFactor = 0;
583
- let yFactor = 0;
584
- switch (side) {
585
- case RdxTooltipSide.Top:
586
- yFactor = -1;
587
- break;
588
- case RdxTooltipSide.Bottom:
589
- yFactor = 1;
590
- break;
591
- case RdxTooltipSide.Left:
592
- xFactor = -1;
593
- break;
594
- case RdxTooltipSide.Right:
595
- xFactor = 1;
596
- break;
597
- }
598
- position.offsetX = xFactor * sideOffset;
599
- position.offsetY = yFactor * sideOffset;
600
- }
601
- if ([RdxTooltipAlign.Start, RdxTooltipAlign.End].includes(align) && alignOffset) {
602
- const alignOffsetFactor = align === RdxTooltipAlign.End ? -1 : 1;
603
- position.offsetX = alignOffsetFactor * alignOffset;
604
- }
605
- return position;
606
- }
607
-
608
504
  class RdxTooltipContentDirective {
609
505
  constructor() {
610
506
  /** @ignore */
@@ -612,7 +508,7 @@ class RdxTooltipContentDirective {
612
508
  /**
613
509
  * The preferred side of the trigger to render against when open. Will be reversed when collisions occur and avoidCollisions is enabled.
614
510
  */
615
- this.side = input(RdxTooltipSide.Top);
511
+ this.side = input(RdxPositionSide.Top);
616
512
  /**
617
513
  * The distance in pixels from the trigger.
618
514
  */
@@ -620,13 +516,18 @@ class RdxTooltipContentDirective {
620
516
  /**
621
517
  * The preferred alignment against the trigger. May change when collisions occur.
622
518
  */
623
- this.align = input(RdxTooltipAlign.Center);
519
+ this.align = input(RdxPositionAlign.Center);
624
520
  /**
625
521
  * An offset in pixels from the "start" or "end" alignment options.
626
522
  */
627
523
  this.alignOffset = input(0);
628
524
  /** @ingore */
629
- this.position = computed(() => getContentPosition(this.side(), this.align(), this.sideOffset(), this.alignOffset()));
525
+ this.position = computed(() => getContentPosition({
526
+ side: this.side(),
527
+ align: this.align(),
528
+ sideOffset: this.sideOffset(),
529
+ alignOffset: this.alignOffset()
530
+ }));
630
531
  /**
631
532
  * Event handler called when the escape key is down. It can be prevented by calling event.preventDefault.
632
533
  */
@@ -636,10 +537,10 @@ class RdxTooltipContentDirective {
636
537
  */
637
538
  this.onPointerDownOutside = output();
638
539
  }
639
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxTooltipContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
640
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.11", type: RdxTooltipContentDirective, isStandalone: true, selector: "[rdxTooltipContent]", inputs: { side: { classPropertyName: "side", publicName: "side", isSignal: true, isRequired: false, transformFunction: null }, sideOffset: { classPropertyName: "sideOffset", publicName: "sideOffset", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, alignOffset: { classPropertyName: "alignOffset", publicName: "alignOffset", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onEscapeKeyDown: "onEscapeKeyDown", onPointerDownOutside: "onPointerDownOutside" }, providers: [{ provide: RdxTooltipContentToken, useExisting: forwardRef(() => RdxTooltipContentDirective) }], ngImport: i0 }); }
540
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: RdxTooltipContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
541
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.5", type: RdxTooltipContentDirective, isStandalone: true, selector: "[rdxTooltipContent]", inputs: { side: { classPropertyName: "side", publicName: "side", isSignal: true, isRequired: false, transformFunction: null }, sideOffset: { classPropertyName: "sideOffset", publicName: "sideOffset", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, alignOffset: { classPropertyName: "alignOffset", publicName: "alignOffset", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onEscapeKeyDown: "onEscapeKeyDown", onPointerDownOutside: "onPointerDownOutside" }, providers: [{ provide: RdxTooltipContentToken, useExisting: forwardRef(() => RdxTooltipContentDirective) }], ngImport: i0 }); }
641
542
  }
642
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxTooltipContentDirective, decorators: [{
543
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: RdxTooltipContentDirective, decorators: [{
643
544
  type: Directive,
644
545
  args: [{
645
546
  selector: '[rdxTooltipContent]',
@@ -656,8 +557,8 @@ const _imports = [
656
557
  RdxTooltipRootDirective
657
558
  ];
658
559
  class RdxTooltipModule {
659
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
660
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.11", ngImport: i0, type: RdxTooltipModule, imports: [RdxTooltipArrowDirective,
560
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: RdxTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
561
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.5", ngImport: i0, type: RdxTooltipModule, imports: [RdxTooltipArrowDirective,
661
562
  RdxTooltipContentDirective,
662
563
  RdxTooltipTriggerDirective,
663
564
  RdxTooltipContentAttributesDirective,
@@ -666,9 +567,9 @@ class RdxTooltipModule {
666
567
  RdxTooltipTriggerDirective,
667
568
  RdxTooltipContentAttributesDirective,
668
569
  RdxTooltipRootDirective] }); }
669
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxTooltipModule }); }
570
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: RdxTooltipModule }); }
670
571
  }
671
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxTooltipModule, decorators: [{
572
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: RdxTooltipModule, decorators: [{
672
573
  type: NgModule,
673
574
  args: [{
674
575
  imports: [..._imports],
@@ -680,5 +581,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
680
581
  * Generated bundle index. Do not edit.
681
582
  */
682
583
 
683
- export { RdxTooltipAlign, RdxTooltipArrowDirective, RdxTooltipContentAttributesDirective, RdxTooltipContentDirective, RdxTooltipModule, RdxTooltipRootDirective, RdxTooltipRootToken, RdxTooltipSide, RdxTooltipTriggerDirective, injectTooltipRoot };
584
+ export { RdxTooltipArrowDirective, RdxTooltipContentAttributesDirective, RdxTooltipContentDirective, RdxTooltipModule, RdxTooltipRootDirective, RdxTooltipRootToken, RdxTooltipTriggerDirective, injectTooltipRoot };
684
585
  //# sourceMappingURL=radix-ng-primitives-tooltip.mjs.map