@radix-ng/primitives 0.12.1 → 0.13.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 (497) hide show
  1. package/README.md +3 -1
  2. package/accordion/index.d.ts +16 -0
  3. package/accordion/src/accordion-content.directive.d.ts +11 -0
  4. package/accordion/src/accordion-header.directive.d.ts +7 -0
  5. package/accordion/src/accordion-item.directive.d.ts +82 -0
  6. package/accordion/src/accordion-root.directive.d.ts +93 -0
  7. package/accordion/src/accordion-trigger.directive.d.ts +15 -0
  8. package/alert-dialog/{index.ts → index.d.ts} +0 -1
  9. package/alert-dialog/src/alert-dialog-cancel.directive.d.ts +7 -0
  10. package/alert-dialog/src/alert-dialog-content.directive.d.ts +9 -0
  11. package/alert-dialog/src/alert-dialog-root.directive.d.ts +9 -0
  12. package/alert-dialog/src/alert-dialog-title.directive.d.ts +5 -0
  13. package/alert-dialog/src/alert-dialog-trigger.directive.d.ts +7 -0
  14. package/alert-dialog/src/alert-dialog.service.d.ts +14 -0
  15. package/avatar/src/avatar-fallback.directive.d.ts +28 -0
  16. package/avatar/src/avatar-image.directive.d.ts +21 -0
  17. package/avatar/src/avatar-root.directive.d.ts +21 -0
  18. package/avatar/src/avatar.config.d.ts +13 -0
  19. package/checkbox/src/checkbox-button.directive.d.ts +8 -0
  20. package/checkbox/src/checkbox-indicator.directive.d.ts +6 -0
  21. package/checkbox/src/checkbox-input.directive.d.ts +9 -0
  22. package/checkbox/src/checkbox.directive.d.ts +75 -0
  23. package/checkbox/src/checkbox.token.d.ts +4 -0
  24. package/collapsible/src/collapsible-content.directive.d.ts +17 -0
  25. package/collapsible/src/collapsible-content.token.d.ts +3 -0
  26. package/collapsible/src/collapsible-root.directive.d.ts +55 -0
  27. package/collapsible/src/collapsible-trigger.directive.d.ts +26 -0
  28. package/compodoc/documentation.json +14249 -0
  29. package/context-menu/index.d.ts +26 -0
  30. package/context-menu/src/context-menu-content.directive.d.ts +15 -0
  31. package/context-menu/src/context-menu-item-checkbox.directive.d.ts +9 -0
  32. package/context-menu/src/context-menu-item-indicator.directive.d.ts +7 -0
  33. package/context-menu/src/context-menu-item-radio-group.directive.d.ts +12 -0
  34. package/context-menu/src/context-menu-item-radio.directive.d.ts +19 -0
  35. package/context-menu/src/context-menu-item-selectable.d.ts +12 -0
  36. package/context-menu/src/context-menu-item.directive.d.ts +17 -0
  37. package/context-menu/src/context-menu-label.directive.d.ts +5 -0
  38. package/context-menu/src/context-menu-separator.directive.d.ts +6 -0
  39. package/context-menu/src/context-menu-trigger.directive.d.ts +31 -0
  40. package/dialog/index.d.ts +23 -0
  41. package/dialog/src/dialog-close.directive.d.ts +7 -0
  42. package/dialog/src/dialog-content.directive.d.ts +21 -0
  43. package/dialog/src/dialog-description.directive.d.ts +5 -0
  44. package/dialog/src/dialog-dismiss.directive.d.ts +7 -0
  45. package/dialog/src/dialog-ref.d.ts +37 -0
  46. package/dialog/src/dialog-title.directive.d.ts +5 -0
  47. package/dialog/src/dialog-trigger.directive.d.ts +16 -0
  48. package/dialog/src/dialog.config.d.ts +39 -0
  49. package/dialog/src/dialog.injectors.d.ts +4 -0
  50. package/dialog/src/{dialog.providers.ts → dialog.providers.d.ts} +3 -11
  51. package/dialog/src/dialog.service.d.ts +26 -0
  52. package/dropdown-menu/index.d.ts +26 -0
  53. package/dropdown-menu/src/dropdown-menu-content.directive.d.ts +15 -0
  54. package/dropdown-menu/src/dropdown-menu-item-checkbox.directive.d.ts +9 -0
  55. package/dropdown-menu/src/dropdown-menu-item-indicator.directive.d.ts +7 -0
  56. package/dropdown-menu/src/dropdown-menu-item-radio-group.directive.d.ts +12 -0
  57. package/dropdown-menu/src/dropdown-menu-item-radio.directive.d.ts +19 -0
  58. package/dropdown-menu/src/dropdown-menu-item-selectable.d.ts +12 -0
  59. package/dropdown-menu/src/dropdown-menu-item.directive.d.ts +17 -0
  60. package/dropdown-menu/src/dropdown-menu-label.directive.d.ts +5 -0
  61. package/dropdown-menu/src/dropdown-menu-separator.directive.d.ts +6 -0
  62. package/dropdown-menu/src/dropdown-menu-trigger.directive.d.ts +46 -0
  63. package/esm2022/accordion/index.mjs +40 -0
  64. package/esm2022/accordion/radix-ng-primitives-accordion.mjs +5 -0
  65. package/esm2022/accordion/src/accordion-content.directive.mjs +42 -0
  66. package/esm2022/accordion/src/accordion-header.directive.mjs +23 -0
  67. package/esm2022/accordion/src/accordion-item.directive.mjs +187 -0
  68. package/esm2022/accordion/src/accordion-root.directive.mjs +172 -0
  69. package/esm2022/accordion/src/accordion-trigger.directive.mjs +42 -0
  70. package/esm2022/alert-dialog/index.mjs +7 -0
  71. package/esm2022/alert-dialog/radix-ng-primitives-alert-dialog.mjs +5 -0
  72. package/esm2022/alert-dialog/src/alert-dialog-cancel.directive.mjs +24 -0
  73. package/esm2022/alert-dialog/src/alert-dialog-content.directive.mjs +34 -0
  74. package/esm2022/alert-dialog/src/alert-dialog-root.directive.mjs +24 -0
  75. package/esm2022/alert-dialog/src/alert-dialog-title.directive.mjs +14 -0
  76. package/esm2022/alert-dialog/src/alert-dialog-trigger.directive.mjs +24 -0
  77. package/esm2022/alert-dialog/src/alert-dialog.service.mjs +46 -0
  78. package/esm2022/avatar/index.mjs +5 -0
  79. package/esm2022/avatar/radix-ng-primitives-avatar.mjs +5 -0
  80. package/esm2022/avatar/src/avatar-fallback.directive.mjs +60 -0
  81. package/esm2022/avatar/src/avatar-image.directive.mjs +52 -0
  82. package/esm2022/avatar/src/avatar-root.directive.mjs +38 -0
  83. package/esm2022/avatar/src/avatar.config.mjs +17 -0
  84. package/esm2022/checkbox/index.mjs +6 -0
  85. package/esm2022/checkbox/radix-ng-primitives-checkbox.mjs +5 -0
  86. package/esm2022/checkbox/src/checkbox-button.directive.mjs +33 -0
  87. package/esm2022/checkbox/src/checkbox-indicator.directive.mjs +24 -0
  88. package/esm2022/checkbox/src/checkbox-input.directive.mjs +41 -0
  89. package/esm2022/checkbox/src/checkbox.directive.mjs +141 -0
  90. package/esm2022/checkbox/src/checkbox.token.mjs +6 -0
  91. package/esm2022/collapsible/index.mjs +4 -0
  92. package/esm2022/collapsible/radix-ng-primitives-collapsible.mjs +5 -0
  93. package/esm2022/collapsible/src/collapsible-content.directive.mjs +45 -0
  94. package/esm2022/collapsible/src/collapsible-content.token.mjs +3 -0
  95. package/esm2022/collapsible/src/collapsible-root.directive.mjs +118 -0
  96. package/esm2022/collapsible/src/collapsible-trigger.directive.mjs +49 -0
  97. package/esm2022/context-menu/index.mjs +65 -0
  98. package/esm2022/context-menu/radix-ng-primitives-context-menu.mjs +5 -0
  99. package/esm2022/context-menu/src/context-menu-content.directive.mjs +56 -0
  100. package/esm2022/context-menu/src/context-menu-item-checkbox.directive.mjs +39 -0
  101. package/esm2022/context-menu/src/context-menu-item-indicator.directive.mjs +22 -0
  102. package/esm2022/context-menu/src/context-menu-item-radio-group.directive.mjs +37 -0
  103. package/esm2022/context-menu/src/context-menu-item-radio.directive.mjs +67 -0
  104. package/esm2022/context-menu/src/context-menu-item-selectable.mjs +31 -0
  105. package/esm2022/context-menu/src/context-menu-item.directive.mjs +70 -0
  106. package/esm2022/context-menu/src/context-menu-label.directive.mjs +14 -0
  107. package/esm2022/context-menu/src/context-menu-separator.directive.mjs +21 -0
  108. package/esm2022/context-menu/src/context-menu-trigger.directive.mjs +92 -0
  109. package/esm2022/dialog/index.mjs +50 -0
  110. package/esm2022/dialog/radix-ng-primitives-dialog.mjs +5 -0
  111. package/esm2022/dialog/src/dialog-close.directive.mjs +25 -0
  112. package/esm2022/dialog/src/dialog-content.directive.mjs +46 -0
  113. package/esm2022/dialog/src/dialog-description.directive.mjs +14 -0
  114. package/esm2022/dialog/src/dialog-dismiss.directive.mjs +25 -0
  115. package/esm2022/dialog/src/dialog-ref.mjs +46 -0
  116. package/esm2022/dialog/src/dialog-title.directive.mjs +14 -0
  117. package/esm2022/dialog/src/dialog-trigger.directive.mjs +54 -0
  118. package/esm2022/dialog/src/dialog.config.mjs +6 -0
  119. package/esm2022/dialog/src/dialog.injectors.mjs +10 -0
  120. package/esm2022/dialog/src/dialog.providers.mjs +26 -0
  121. package/esm2022/dialog/src/dialog.service.mjs +96 -0
  122. package/esm2022/dropdown-menu/index.mjs +68 -0
  123. package/esm2022/dropdown-menu/radix-ng-primitives-dropdown-menu.mjs +5 -0
  124. package/esm2022/dropdown-menu/src/dropdown-menu-content.directive.mjs +56 -0
  125. package/esm2022/dropdown-menu/src/dropdown-menu-item-checkbox.directive.mjs +39 -0
  126. package/esm2022/dropdown-menu/src/dropdown-menu-item-indicator.directive.mjs +22 -0
  127. package/esm2022/dropdown-menu/src/dropdown-menu-item-radio-group.directive.mjs +37 -0
  128. package/esm2022/dropdown-menu/src/dropdown-menu-item-radio.directive.mjs +67 -0
  129. package/esm2022/dropdown-menu/src/dropdown-menu-item-selectable.mjs +31 -0
  130. package/esm2022/dropdown-menu/src/dropdown-menu-item.directive.mjs +71 -0
  131. package/esm2022/dropdown-menu/src/dropdown-menu-label.directive.mjs +14 -0
  132. package/esm2022/dropdown-menu/src/dropdown-menu-separator.directive.mjs +21 -0
  133. package/esm2022/dropdown-menu/src/dropdown-menu-trigger.directive.mjs +179 -0
  134. package/esm2022/index.mjs +2 -0
  135. package/esm2022/label/index.mjs +2 -0
  136. package/esm2022/label/radix-ng-primitives-label.mjs +5 -0
  137. package/esm2022/label/src/label.directive.mjs +59 -0
  138. package/esm2022/menu/index.mjs +45 -0
  139. package/esm2022/menu/radix-ng-primitives-menu.mjs +5 -0
  140. package/esm2022/menu/src/menu-content.directive.mjs +17 -0
  141. package/esm2022/menu/src/menu-directive.mjs +18 -0
  142. package/esm2022/menu/src/menu-group.directive.mjs +20 -0
  143. package/esm2022/menu/src/menu-item.directive.mjs +46 -0
  144. package/esm2022/menu/src/menu-label.directive.mjs +14 -0
  145. package/esm2022/menu/src/menu-separator.directive.mjs +21 -0
  146. package/esm2022/menubar/index.mjs +60 -0
  147. package/esm2022/menubar/radix-ng-primitives-menubar.mjs +5 -0
  148. package/esm2022/menubar/src/menubar-content.directive.mjs +17 -0
  149. package/esm2022/menubar/src/menubar-item-checkbox.directive.mjs +34 -0
  150. package/esm2022/menubar/src/menubar-item-indicator.directive.mjs +17 -0
  151. package/esm2022/menubar/src/menubar-item-radio.directive.mjs +35 -0
  152. package/esm2022/menubar/src/menubar-item.directive.mjs +20 -0
  153. package/esm2022/menubar/src/menubar-radio-group.directive.mjs +17 -0
  154. package/esm2022/menubar/src/menubar-root.directive.mjs +24 -0
  155. package/esm2022/menubar/src/menubar-separator.directive.mjs +17 -0
  156. package/esm2022/menubar/src/menubar-trigger.directive.mjs +45 -0
  157. package/esm2022/progress/index.mjs +25 -0
  158. package/esm2022/progress/radix-ng-primitives-progress.mjs +5 -0
  159. package/esm2022/progress/src/progress-indicator.directive.mjs +34 -0
  160. package/esm2022/progress/src/progress-root.directive.mjs +127 -0
  161. package/esm2022/radio/index.mjs +4 -0
  162. package/esm2022/radio/radix-ng-primitives-radio.mjs +5 -0
  163. package/esm2022/radio/src/radio-indicator.directive.mjs +25 -0
  164. package/esm2022/radio/src/radio-item.directive.mjs +70 -0
  165. package/esm2022/radio/src/radio-root.directive.mjs +194 -0
  166. package/esm2022/radio/src/radio-tokens.mjs +3 -0
  167. package/esm2022/radix-ng-primitives.mjs +5 -0
  168. package/esm2022/separator/index.mjs +2 -0
  169. package/esm2022/separator/radix-ng-primitives-separator.mjs +5 -0
  170. package/esm2022/separator/src/separator.directive.mjs +32 -0
  171. package/esm2022/switch/index.mjs +30 -0
  172. package/esm2022/switch/radix-ng-primitives-switch.mjs +5 -0
  173. package/esm2022/switch/src/switch-input.directive.mjs +32 -0
  174. package/esm2022/switch/src/switch-root.directive.mjs +95 -0
  175. package/esm2022/switch/src/switch-thumb.directive.mjs +23 -0
  176. package/esm2022/tabs/index.mjs +38 -0
  177. package/esm2022/tabs/radix-ng-primitives-tabs.mjs +5 -0
  178. package/esm2022/tabs/src/tabs-content.directive.mjs +29 -0
  179. package/esm2022/tabs/src/tabs-context.service.mjs +43 -0
  180. package/esm2022/tabs/src/tabs-list.directive.mjs +23 -0
  181. package/esm2022/tabs/src/tabs-root.directive.mjs +54 -0
  182. package/esm2022/tabs/src/tabs-trigger.directive.mjs +52 -0
  183. package/esm2022/toggle/index.mjs +2 -0
  184. package/esm2022/toggle/radix-ng-primitives-toggle.mjs +5 -0
  185. package/esm2022/toggle/src/toggle.directive.mjs +39 -0
  186. package/esm2022/toggle-group/index.mjs +6 -0
  187. package/esm2022/toggle-group/radix-ng-primitives-toggle-group.mjs +5 -0
  188. package/esm2022/toggle-group/src/toggle-group-button.directive.mjs +75 -0
  189. package/esm2022/toggle-group/src/toggle-group-button.token.mjs +6 -0
  190. package/esm2022/toggle-group/src/toggle-group-multi.directive.mjs +143 -0
  191. package/esm2022/toggle-group/src/toggle-group.directive.mjs +134 -0
  192. package/esm2022/toggle-group/src/toggle-group.token.mjs +6 -0
  193. package/fesm2022/radix-ng-primitives-accordion.mjs +483 -0
  194. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -0
  195. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +159 -0
  196. package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -0
  197. package/fesm2022/radix-ng-primitives-avatar.mjs +166 -0
  198. package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -0
  199. package/fesm2022/radix-ng-primitives-checkbox.mjs +241 -0
  200. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -0
  201. package/fesm2022/radix-ng-primitives-collapsible.mjs +213 -0
  202. package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -0
  203. package/fesm2022/radix-ng-primitives-context-menu.mjs +463 -0
  204. package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -0
  205. package/fesm2022/radix-ng-primitives-dialog.mjs +373 -0
  206. package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -0
  207. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +555 -0
  208. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +1 -0
  209. package/fesm2022/radix-ng-primitives-label.mjs +66 -0
  210. package/fesm2022/radix-ng-primitives-label.mjs.map +1 -0
  211. package/fesm2022/radix-ng-primitives-menu.mjs +158 -0
  212. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -0
  213. package/fesm2022/radix-ng-primitives-menubar.mjs +245 -0
  214. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -0
  215. package/fesm2022/radix-ng-primitives-progress.mjs +184 -0
  216. package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -0
  217. package/fesm2022/radix-ng-primitives-radio.mjs +289 -0
  218. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -0
  219. package/fesm2022/radix-ng-primitives-separator.mjs +39 -0
  220. package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -0
  221. package/fesm2022/radix-ng-primitives-switch.mjs +173 -0
  222. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -0
  223. package/fesm2022/radix-ng-primitives-tabs.mjs +222 -0
  224. package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -0
  225. package/fesm2022/radix-ng-primitives-toggle-group.mjs +358 -0
  226. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -0
  227. package/fesm2022/radix-ng-primitives-toggle.mjs +46 -0
  228. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -0
  229. package/fesm2022/radix-ng-primitives.mjs +4 -0
  230. package/fesm2022/radix-ng-primitives.mjs.map +1 -0
  231. package/label/src/label.directive.d.ts +29 -0
  232. package/menu/index.d.ts +18 -0
  233. package/menu/src/menu-content.directive.d.ts +6 -0
  234. package/menu/src/menu-directive.d.ts +6 -0
  235. package/menu/src/menu-group.directive.d.ts +6 -0
  236. package/menu/src/menu-item.directive.d.ts +12 -0
  237. package/menu/src/menu-label.directive.d.ts +5 -0
  238. package/menu/src/menu-separator.directive.d.ts +6 -0
  239. package/menubar/index.d.ts +24 -0
  240. package/menubar/src/menubar-content.directive.d.ts +6 -0
  241. package/menubar/src/menubar-item-checkbox.directive.d.ts +14 -0
  242. package/menubar/src/menubar-item-indicator.directive.d.ts +5 -0
  243. package/menubar/src/menubar-item-radio.directive.d.ts +14 -0
  244. package/menubar/src/menubar-item.directive.d.ts +8 -0
  245. package/menubar/src/menubar-radio-group.directive.d.ts +6 -0
  246. package/menubar/src/menubar-root.directive.d.ts +7 -0
  247. package/menubar/src/menubar-separator.directive.d.ts +6 -0
  248. package/menubar/src/menubar-trigger.directive.d.ts +11 -0
  249. package/package.json +124 -4
  250. package/progress/index.d.ts +11 -0
  251. package/progress/src/progress-indicator.directive.d.ts +16 -0
  252. package/progress/src/progress-root.directive.d.ts +63 -0
  253. package/radio/{index.ts → index.d.ts} +0 -1
  254. package/radio/src/radio-indicator.directive.d.ts +9 -0
  255. package/radio/src/radio-item.directive.d.ts +21 -0
  256. package/radio/src/radio-root.directive.d.ts +72 -0
  257. package/radio/src/{radio-tokens.ts → radio-tokens.d.ts} +1 -5
  258. package/separator/src/separator.directive.d.ts +22 -0
  259. package/switch/index.d.ts +13 -0
  260. package/switch/src/switch-input.directive.d.ts +6 -0
  261. package/switch/src/switch-root.directive.d.ts +51 -0
  262. package/switch/src/switch-thumb.directive.d.ts +6 -0
  263. package/tabs/index.d.ts +15 -0
  264. package/tabs/src/tabs-content.directive.d.ts +8 -0
  265. package/tabs/src/tabs-context.service.d.ts +22 -0
  266. package/tabs/src/tabs-list.directive.d.ts +6 -0
  267. package/tabs/src/tabs-root.directive.d.ts +37 -0
  268. package/tabs/src/tabs-trigger.directive.d.ts +19 -0
  269. package/toggle/src/toggle.directive.d.ts +30 -0
  270. package/toggle-group/src/toggle-group-button.directive.d.ts +39 -0
  271. package/toggle-group/src/toggle-group-button.token.d.ts +4 -0
  272. package/toggle-group/src/toggle-group-multi.directive.d.ts +93 -0
  273. package/toggle-group/src/toggle-group.directive.d.ts +84 -0
  274. package/toggle-group/src/toggle-group.token.d.ts +5 -0
  275. package/.compodocrc.json +0 -12
  276. package/CHANGELOG.md +0 -189
  277. package/accordion/__tests__/accordion-content.directive.spec.ts +0 -8
  278. package/accordion/__tests__/accordion-header.directive.spec.ts +0 -8
  279. package/accordion/__tests__/accordion-item.directive.spec.ts +0 -8
  280. package/accordion/__tests__/accordion-root.directive.spec.ts +0 -8
  281. package/accordion/__tests__/accordion-trigger.directive.spec.ts +0 -8
  282. package/accordion/index.ts +0 -5
  283. package/accordion/ng-package.json +0 -5
  284. package/accordion/src/accordion-content.directive.ts +0 -46
  285. package/accordion/src/accordion-header.directive.ts +0 -15
  286. package/accordion/src/accordion-item.directive.ts +0 -216
  287. package/accordion/src/accordion-root.directive.ts +0 -205
  288. package/accordion/src/accordion-trigger.directive.ts +0 -37
  289. package/accordion/stories/accordion.docs.mdx +0 -77
  290. package/accordion/stories/accordion.stories.ts +0 -340
  291. package/alert-dialog/ng-package.json +0 -5
  292. package/alert-dialog/src/alert-dialog-cancel.directive.ts +0 -17
  293. package/alert-dialog/src/alert-dialog-content.directive.ts +0 -24
  294. package/alert-dialog/src/alert-dialog-root.directive.ts +0 -15
  295. package/alert-dialog/src/alert-dialog-title.directive.ts +0 -7
  296. package/alert-dialog/src/alert-dialog-trigger.directive.ts +0 -17
  297. package/alert-dialog/src/alert-dialog.service.ts +0 -51
  298. package/alert-dialog/stories/alert-dialog.stories.ts +0 -139
  299. package/avatar/__tests__/avatar-fallback.directive.spec.ts +0 -31
  300. package/avatar/__tests__/avatar-image.directive.spec.ts +0 -36
  301. package/avatar/ng-package.json +0 -5
  302. package/avatar/src/avatar-fallback.directive.ts +0 -62
  303. package/avatar/src/avatar-image.directive.ts +0 -55
  304. package/avatar/src/avatar-root.directive.ts +0 -35
  305. package/avatar/src/avatar.config.ts +0 -29
  306. package/avatar/stories/avatar.docs.mdx +0 -37
  307. package/avatar/stories/avatar.stories.ts +0 -87
  308. package/button/__tests__/.gitkeep +0 -0
  309. package/button/src/button-abstract.directive.ts +0 -46
  310. package/checkbox/ng-package.json +0 -5
  311. package/checkbox/src/checkbox-button.directive.ts +0 -26
  312. package/checkbox/src/checkbox-indicator.directive.ts +0 -16
  313. package/checkbox/src/checkbox-input.directive.ts +0 -36
  314. package/checkbox/src/checkbox.directive.ts +0 -146
  315. package/checkbox/src/checkbox.token.ts +0 -8
  316. package/checkbox/stories/checkbox-group.component.ts +0 -87
  317. package/checkbox/stories/checkbox-group.styles.scss +0 -49
  318. package/checkbox/stories/checkbox-indeterminate.component.ts +0 -52
  319. package/checkbox/stories/checkbox.docs.mdx +0 -58
  320. package/checkbox/stories/checkbox.stories.ts +0 -105
  321. package/collapsible/__tests__/collapsible-content.directive.spec.ts +0 -30
  322. package/collapsible/__tests__/collapsible-root.directive.spec.ts +0 -27
  323. package/collapsible/__tests__/collapsible-trigger.directive.spec.ts +0 -30
  324. package/collapsible/ng-package.json +0 -5
  325. package/collapsible/src/collapsible-content.directive.ts +0 -34
  326. package/collapsible/src/collapsible-content.token.ts +0 -6
  327. package/collapsible/src/collapsible-root.directive.ts +0 -120
  328. package/collapsible/src/collapsible-trigger.directive.ts +0 -44
  329. package/collapsible/stories/collapsible-animation.component.ts +0 -116
  330. package/collapsible/stories/collapsible-external-triggering.component.ts +0 -86
  331. package/collapsible/stories/collapsible.docs.mdx +0 -53
  332. package/collapsible/stories/collapsible.stories.ts +0 -151
  333. package/context-menu/index.ts +0 -10
  334. package/context-menu/ng-package.json +0 -5
  335. package/context-menu/src/context-menu-content.directive.ts +0 -47
  336. package/context-menu/src/context-menu-item-checkbox.directive.ts +0 -30
  337. package/context-menu/src/context-menu-item-indicator.directive.ts +0 -14
  338. package/context-menu/src/context-menu-item-radio-group.directive.ts +0 -31
  339. package/context-menu/src/context-menu-item-radio.directive.ts +0 -69
  340. package/context-menu/src/context-menu-item-selectable.ts +0 -18
  341. package/context-menu/src/context-menu-item.directive.ts +0 -65
  342. package/context-menu/src/context-menu-label.directive.ts +0 -7
  343. package/context-menu/src/context-menu-separator.directive.ts +0 -13
  344. package/context-menu/src/context-menu-trigger.directive.ts +0 -82
  345. package/context-menu/stories/context-menu.docs.mdx +0 -23
  346. package/context-menu/stories/context-menu.stories.ts +0 -253
  347. package/core/index.ts +0 -3
  348. package/core/src/accessor/provide-value-accessor.ts +0 -20
  349. package/core/src/auto-focus.directive.ts +0 -81
  350. package/core/src/inject-ng-control.ts +0 -28
  351. package/core/src/mount.ts +0 -27
  352. package/dialog/__tests__/dialog-content.directive.spec.ts +0 -77
  353. package/dialog/__tests__/dialog-trigger.directive.spec.ts +0 -85
  354. package/dialog/index.ts +0 -31
  355. package/dialog/ng-package.json +0 -5
  356. package/dialog/src/dialog-close.directive.ts +0 -18
  357. package/dialog/src/dialog-content.directive.ts +0 -45
  358. package/dialog/src/dialog-description.directive.ts +0 -7
  359. package/dialog/src/dialog-dismiss.directive.ts +0 -18
  360. package/dialog/src/dialog-ref.ts +0 -70
  361. package/dialog/src/dialog-title.directive.ts +0 -7
  362. package/dialog/src/dialog-trigger.directive.ts +0 -52
  363. package/dialog/src/dialog.config.ts +0 -55
  364. package/dialog/src/dialog.injectors.ts +0 -12
  365. package/dialog/src/dialog.service.ts +0 -94
  366. package/dialog/stories/dialog.docs.mdx +0 -32
  367. package/dialog/stories/dialog.stories.ts +0 -233
  368. package/dropdown-menu/index.ts +0 -10
  369. package/dropdown-menu/ng-package.json +0 -5
  370. package/dropdown-menu/src/dropdown-menu-content.directive.ts +0 -47
  371. package/dropdown-menu/src/dropdown-menu-item-checkbox.directive.ts +0 -30
  372. package/dropdown-menu/src/dropdown-menu-item-indicator.directive.ts +0 -14
  373. package/dropdown-menu/src/dropdown-menu-item-radio-group.directive.ts +0 -31
  374. package/dropdown-menu/src/dropdown-menu-item-radio.directive.ts +0 -72
  375. package/dropdown-menu/src/dropdown-menu-item-selectable.ts +0 -18
  376. package/dropdown-menu/src/dropdown-menu-item.directive.ts +0 -66
  377. package/dropdown-menu/src/dropdown-menu-label.directive.ts +0 -7
  378. package/dropdown-menu/src/dropdown-menu-separator.directive.ts +0 -13
  379. package/dropdown-menu/src/dropdown-menu-trigger.directive.ts +0 -185
  380. package/dropdown-menu/stories/dropdown-menu-item-checkbox.component.ts +0 -104
  381. package/dropdown-menu/stories/dropdown-menu-item-checkbox.styles.scss +0 -106
  382. package/dropdown-menu/stories/dropdown-menu-item-radio.component.ts +0 -95
  383. package/dropdown-menu/stories/dropdown-menu-item-radio.styles.scss +0 -106
  384. package/dropdown-menu/stories/dropdown.docs.mdx +0 -27
  385. package/dropdown-menu/stories/dropdown.stories.ts +0 -212
  386. package/form-field/index.ts +0 -1
  387. package/form-field/src/.gitkeep +0 -0
  388. package/jest.config.ts +0 -21
  389. package/label/__tests__/label-root.directive.spec.ts +0 -99
  390. package/label/ng-package.json +0 -5
  391. package/label/src/label.directive.ts +0 -58
  392. package/label/stories/label.docs.mdx +0 -40
  393. package/label/stories/label.stories.ts +0 -76
  394. package/menu/index.ts +0 -29
  395. package/menu/ng-package.json +0 -5
  396. package/menu/src/menu-content.directive.ts +0 -9
  397. package/menu/src/menu-directive.ts +0 -10
  398. package/menu/src/menu-group.directive.ts +0 -12
  399. package/menu/src/menu-item.directive.ts +0 -44
  400. package/menu/src/menu-label.directive.ts +0 -7
  401. package/menu/src/menu-separator.directive.ts +0 -13
  402. package/menubar/index.ts +0 -38
  403. package/menubar/ng-package.json +0 -5
  404. package/menubar/src/menubar-content.directive.ts +0 -9
  405. package/menubar/src/menubar-item-checkbox.directive.ts +0 -32
  406. package/menubar/src/menubar-item-indicator.directive.ts +0 -10
  407. package/menubar/src/menubar-item-radio.directive.ts +0 -33
  408. package/menubar/src/menubar-item.directive.ts +0 -12
  409. package/menubar/src/menubar-radio-group.directive.ts +0 -9
  410. package/menubar/src/menubar-root.directive.ts +0 -15
  411. package/menubar/src/menubar-separator.directive.ts +0 -9
  412. package/menubar/src/menubar-trigger.directive.ts +0 -40
  413. package/menubar/stories/menubar.stories.ts +0 -229
  414. package/ng-package.json +0 -8
  415. package/portal/stories/portal.docs.mdx +0 -85
  416. package/presence/__test__/presence-test.component.ts +0 -51
  417. package/presence/__test__/presence.spec.ts +0 -50
  418. package/presence/index.ts +0 -4
  419. package/presence/src/presence.ts +0 -119
  420. package/presence/src/transitions/transition.collapse.ts +0 -99
  421. package/presence/src/transitions/transition.toast.ts +0 -27
  422. package/presence/src/types.ts +0 -20
  423. package/presence/src/utils.ts +0 -63
  424. package/presence/stories/presence-story.componen.ts +0 -69
  425. package/presence/stories/presence.docs.mdx +0 -40
  426. package/presence/stories/presence.stories.ts +0 -29
  427. package/progress/__test__/progress.spec.ts +0 -55
  428. package/progress/index.ts +0 -4
  429. package/progress/ng-package.json +0 -5
  430. package/progress/src/progress-indicator.directive.ts +0 -26
  431. package/progress/src/progress-root.directive.ts +0 -134
  432. package/progress/stories/progress.docs.mdx +0 -65
  433. package/progress/stories/progress.stories.ts +0 -66
  434. package/project.json +0 -39
  435. package/radio/ng-package.json +0 -5
  436. package/radio/src/radio-indicator.directive.ts +0 -17
  437. package/radio/src/radio-item.directive.ts +0 -68
  438. package/radio/src/radio-root.directive.ts +0 -207
  439. package/radio/stories/radio-group.component.ts +0 -39
  440. package/radio/stories/radio-group.styles.scss +0 -70
  441. package/radio/stories/radio.docs.mdx +0 -68
  442. package/radio/stories/radio.stories.ts +0 -155
  443. package/separator/__tests__/separator.directive.spec.ts +0 -58
  444. package/separator/ng-package.json +0 -5
  445. package/separator/src/separator.directive.ts +0 -35
  446. package/separator/stories/separator.docs.mdx +0 -37
  447. package/separator/stories/separator.stories.ts +0 -82
  448. package/slider/src/slider-input.directive.ts +0 -0
  449. package/slider/src/slider-thumb.directives.ts +0 -60
  450. package/slider/src/slider-track.directive.ts +0 -11
  451. package/slider/src/slider.directive.ts +0 -59
  452. package/slider/src/slider.types.ts +0 -4
  453. package/switch/index.ts +0 -22
  454. package/switch/ng-package.json +0 -5
  455. package/switch/src/switch-input.directive.ts +0 -24
  456. package/switch/src/switch-root.directive.ts +0 -127
  457. package/switch/src/switch-thumb.directive.ts +0 -15
  458. package/switch/stories/switch.docs.mdx +0 -83
  459. package/switch/stories/switch.stories.ts +0 -149
  460. package/tabs/__tests__/tabs-context.service.spec.ts +0 -35
  461. package/tabs/index.ts +0 -26
  462. package/tabs/ng-package.json +0 -5
  463. package/tabs/src/tabs-content.directive.ts +0 -23
  464. package/tabs/src/tabs-context.service.ts +0 -43
  465. package/tabs/src/tabs-list.directive.ts +0 -21
  466. package/tabs/src/tabs-root.directive.ts +0 -70
  467. package/tabs/src/tabs-trigger.directive.ts +0 -55
  468. package/tabs/stories/tabs.stories.ts +0 -213
  469. package/test-setup.ts +0 -1
  470. package/toggle/__tests__/toggle.directive.spec.ts +0 -87
  471. package/toggle/ng-package.json +0 -5
  472. package/toggle/src/toggle.directive.ts +0 -49
  473. package/toggle/stories/toggle.docs.mdx +0 -60
  474. package/toggle/stories/toggle.stories.ts +0 -84
  475. package/toggle-group/ng-package.json +0 -5
  476. package/toggle-group/src/toggle-group-button.directive.ts +0 -73
  477. package/toggle-group/src/toggle-group-button.token.ts +0 -8
  478. package/toggle-group/src/toggle-group-multi.directive.ts +0 -158
  479. package/toggle-group/src/toggle-group.directive.ts +0 -148
  480. package/toggle-group/src/toggle-group.token.ts +0 -11
  481. package/toggle-group/stories/toggle-group.docs.mdx +0 -87
  482. package/toggle-group/stories/toggle-group.stories.ts +0 -95
  483. package/tsconfig.doc.json +0 -11
  484. package/tsconfig.json +0 -29
  485. package/tsconfig.lib.json +0 -19
  486. package/tsconfig.lib.prod.json +0 -12
  487. package/tsconfig.spec.json +0 -11
  488. package/visually-hidden/README.md +0 -3
  489. package/visually-hidden/stories/visually-hidden.docs.mdx +0 -36
  490. /package/avatar/{index.ts → index.d.ts} +0 -0
  491. /package/checkbox/{index.ts → index.d.ts} +0 -0
  492. /package/collapsible/{index.ts → index.d.ts} +0 -0
  493. /package/{index.ts → index.d.ts} +0 -0
  494. /package/label/{index.ts → index.d.ts} +0 -0
  495. /package/separator/{index.ts → index.d.ts} +0 -0
  496. /package/toggle/{index.ts → index.d.ts} +0 -0
  497. /package/toggle-group/{index.ts → index.d.ts} +0 -0
@@ -0,0 +1,555 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, booleanAttribute, numberAttribute, Directive, Input, inject, ElementRef, EventEmitter, Output, NgModule } from '@angular/core';
3
+ import { CdkMenuTrigger, MENU_TRIGGER, PARENT_OR_NEW_MENU_STACK_PROVIDER, CdkMenu, CdkMenuItem, CDK_MENU } from '@angular/cdk/menu';
4
+ import { Subject, startWith, pairwise } from 'rxjs';
5
+ import { outputFromObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
6
+ import { UniqueSelectionDispatcher } from '@angular/cdk/collections';
7
+ import * as i1 from '@radix-ng/primitives/separator';
8
+ import { RdxSeparatorRootDirective } from '@radix-ng/primitives/separator';
9
+
10
+ var DropdownSide;
11
+ (function (DropdownSide) {
12
+ DropdownSide["Top"] = "top";
13
+ DropdownSide["Right"] = "right";
14
+ DropdownSide["Bottom"] = "bottom";
15
+ DropdownSide["Left"] = "left";
16
+ })(DropdownSide || (DropdownSide = {}));
17
+ var DropdownAlign;
18
+ (function (DropdownAlign) {
19
+ DropdownAlign["Start"] = "start";
20
+ DropdownAlign["Center"] = "center";
21
+ DropdownAlign["End"] = "end";
22
+ })(DropdownAlign || (DropdownAlign = {}));
23
+ const mapRdxAlignToCdkPosition = {
24
+ start: 'top',
25
+ center: 'center',
26
+ end: 'bottom'
27
+ };
28
+ const dropdownPositions = {
29
+ top: {
30
+ originX: 'start',
31
+ originY: 'top',
32
+ overlayX: 'start',
33
+ overlayY: 'bottom',
34
+ offsetX: 0,
35
+ offsetY: 0
36
+ },
37
+ right: {
38
+ originX: 'end',
39
+ originY: 'top',
40
+ overlayX: 'start',
41
+ overlayY: 'top',
42
+ offsetX: 0,
43
+ offsetY: 0
44
+ },
45
+ bottom: {
46
+ originX: 'start',
47
+ originY: 'bottom',
48
+ overlayX: 'start',
49
+ overlayY: 'top',
50
+ offsetX: 0,
51
+ offsetY: 0
52
+ },
53
+ left: {
54
+ originX: 'start',
55
+ originY: 'top',
56
+ overlayX: 'end',
57
+ overlayY: 'top',
58
+ offsetX: 0,
59
+ offsetY: 0
60
+ }
61
+ };
62
+ class RdxDropdownMenuTriggerDirective extends CdkMenuTrigger {
63
+ set rdxDropdownMenuTrigger(value) {
64
+ this.menuTemplateRef = value;
65
+ }
66
+ set side(value) {
67
+ if (!Object.values(DropdownSide).includes(value)) {
68
+ throw new Error(`Unknown side: ${value}`);
69
+ }
70
+ this._side = value;
71
+ this.menuPosition[0] = dropdownPositions[value];
72
+ }
73
+ get side() {
74
+ return this._side;
75
+ }
76
+ set align(value) {
77
+ if (!Object.values(DropdownAlign).includes(value)) {
78
+ throw new Error(`Unknown align: ${value}`);
79
+ }
80
+ this._align = value;
81
+ if (this.isVertical) {
82
+ this.defaultPosition.overlayX = this.defaultPosition.originX = value;
83
+ }
84
+ else {
85
+ this.defaultPosition.overlayY = this.defaultPosition.originY = mapRdxAlignToCdkPosition[value];
86
+ }
87
+ }
88
+ get align() {
89
+ return this._align;
90
+ }
91
+ set sideOffset(value) {
92
+ // todo need invert value for top and left
93
+ if (this.isVertical) {
94
+ this.defaultPosition.offsetY = value;
95
+ }
96
+ else {
97
+ this.defaultPosition.offsetX = value;
98
+ }
99
+ }
100
+ set alignOffset(value) {
101
+ // todo need invert value for top and left
102
+ if (this.isVertical) {
103
+ this.defaultPosition.offsetX = value;
104
+ }
105
+ else {
106
+ this.defaultPosition.offsetY = value;
107
+ }
108
+ }
109
+ get isVertical() {
110
+ return this._side === DropdownSide.Top || this._side === DropdownSide.Bottom;
111
+ }
112
+ get defaultPosition() {
113
+ return this.menuPosition[0];
114
+ }
115
+ constructor() {
116
+ super();
117
+ /**
118
+ * @ignore
119
+ */
120
+ this.disabled = input(false, {
121
+ transform: booleanAttribute
122
+ });
123
+ this._side = DropdownSide.Bottom;
124
+ this._align = DropdownAlign.Start;
125
+ this.onOpenChange = outputFromObservable(this.opened);
126
+ // todo priority
127
+ this.menuPosition = [{ ...dropdownPositions[DropdownSide.Bottom] }];
128
+ }
129
+ onPointerDown($event) {
130
+ // only call handler if it's the left button (mousedown gets triggered by all mouse buttons)
131
+ // but not when the control key is pressed (avoiding MacOS right click)
132
+ if (!this.disabled() && $event.button === 0 && !$event.ctrlKey) {
133
+ /* empty */
134
+ if (!this.isOpen()) {
135
+ // prevent trigger focusing when opening
136
+ // this allows the content to be given focus without competition
137
+ $event.preventDefault();
138
+ }
139
+ }
140
+ }
141
+ getOverlayRef() {
142
+ return this.overlayRef;
143
+ }
144
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxDropdownMenuTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
145
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.1", type: RdxDropdownMenuTriggerDirective, isStandalone: true, selector: "[rdxDropdownMenuTrigger]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, rdxDropdownMenuTrigger: { classPropertyName: "rdxDropdownMenuTrigger", publicName: "rdxDropdownMenuTrigger", isSignal: false, isRequired: false, transformFunction: null }, side: { classPropertyName: "side", publicName: "side", isSignal: false, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: false, isRequired: false, transformFunction: null }, sideOffset: { classPropertyName: "sideOffset", publicName: "sideOffset", isSignal: false, isRequired: false, transformFunction: numberAttribute }, alignOffset: { classPropertyName: "alignOffset", publicName: "alignOffset", isSignal: false, isRequired: false, transformFunction: numberAttribute } }, outputs: { onOpenChange: "onOpenChange" }, host: { attributes: { "type": "button" }, listeners: { "pointerdown": "onPointerDown($event)" }, properties: { "attr.aria-haspopup": "'menu'", "attr.aria-expanded": "isOpen()", "attr.data-state": "isOpen() ? 'open': 'closed'", "attr.data-disabled": "disabled() ? '' : undefined", "disabled": "disabled()" } }, providers: [
146
+ { provide: CdkMenuTrigger, useExisting: RdxDropdownMenuTriggerDirective },
147
+ { provide: MENU_TRIGGER, useExisting: CdkMenuTrigger },
148
+ PARENT_OR_NEW_MENU_STACK_PROVIDER
149
+ ], usesInheritance: true, ngImport: i0 }); }
150
+ }
151
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxDropdownMenuTriggerDirective, decorators: [{
152
+ type: Directive,
153
+ args: [{
154
+ selector: '[rdxDropdownMenuTrigger]',
155
+ standalone: true,
156
+ host: {
157
+ type: 'button',
158
+ '[attr.aria-haspopup]': "'menu'",
159
+ '[attr.aria-expanded]': 'isOpen()',
160
+ '[attr.data-state]': "isOpen() ? 'open': 'closed'",
161
+ '[attr.data-disabled]': "disabled() ? '' : undefined",
162
+ '[disabled]': 'disabled()',
163
+ '(pointerdown)': 'onPointerDown($event)'
164
+ },
165
+ providers: [
166
+ { provide: CdkMenuTrigger, useExisting: RdxDropdownMenuTriggerDirective },
167
+ { provide: MENU_TRIGGER, useExisting: CdkMenuTrigger },
168
+ PARENT_OR_NEW_MENU_STACK_PROVIDER
169
+ ]
170
+ }]
171
+ }], ctorParameters: () => [], propDecorators: { rdxDropdownMenuTrigger: [{
172
+ type: Input
173
+ }], side: [{
174
+ type: Input
175
+ }], align: [{
176
+ type: Input
177
+ }], sideOffset: [{
178
+ type: Input,
179
+ args: [{ transform: numberAttribute }]
180
+ }], alignOffset: [{
181
+ type: Input,
182
+ args: [{ transform: numberAttribute }]
183
+ }] } });
184
+
185
+ class RdxDropdownMenuContentDirective extends CdkMenu {
186
+ constructor() {
187
+ super();
188
+ this.highlighted = new Subject();
189
+ this.menuTrigger = inject(RdxDropdownMenuTriggerDirective, { optional: true });
190
+ this.onEscapeKeyDown = () => undefined;
191
+ this.closeOnEscape = true;
192
+ this.highlighted.pipe(startWith(null), pairwise()).subscribe(([prev, item]) => {
193
+ if (prev) {
194
+ prev.highlighted = false;
195
+ }
196
+ if (item) {
197
+ item.highlighted = true;
198
+ }
199
+ });
200
+ }
201
+ updateActiveItem(item) {
202
+ this.keyManager.updateActiveItem(item);
203
+ }
204
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxDropdownMenuContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
205
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.1", type: RdxDropdownMenuContentDirective, isStandalone: true, selector: "[rdxDropdownMenuContent]", inputs: { onEscapeKeyDown: "onEscapeKeyDown", closeOnEscape: "closeOnEscape" }, host: { properties: { "attr.data-state": "menuTrigger.isOpen() ? 'open': 'closed'", "attr.data-align": "menuTrigger!.align", "attr.data-side": "menuTrigger!.side", "attr.data-orientation": "orientation" } }, providers: [
206
+ {
207
+ provide: CdkMenu,
208
+ useExisting: RdxDropdownMenuContentDirective
209
+ }
210
+ ], usesInheritance: true, ngImport: i0 }); }
211
+ }
212
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxDropdownMenuContentDirective, decorators: [{
213
+ type: Directive,
214
+ args: [{
215
+ selector: '[rdxDropdownMenuContent]',
216
+ standalone: true,
217
+ host: {
218
+ '[attr.data-state]': "menuTrigger.isOpen() ? 'open': 'closed'",
219
+ '[attr.data-align]': 'menuTrigger!.align',
220
+ '[attr.data-side]': 'menuTrigger!.side',
221
+ '[attr.data-orientation]': 'orientation'
222
+ },
223
+ providers: [
224
+ {
225
+ provide: CdkMenu,
226
+ useExisting: RdxDropdownMenuContentDirective
227
+ }
228
+ ]
229
+ }]
230
+ }], ctorParameters: () => [], propDecorators: { onEscapeKeyDown: [{
231
+ type: Input
232
+ }], closeOnEscape: [{
233
+ type: Input
234
+ }] } });
235
+
236
+ class RdxDropdownMenuItemDirective extends CdkMenuItem {
237
+ constructor() {
238
+ super();
239
+ this.menu = inject(RdxDropdownMenuContentDirective);
240
+ this.nativeElement = inject(ElementRef).nativeElement;
241
+ this.highlighted = false;
242
+ this.disabled = false;
243
+ this.onSelect = new EventEmitter();
244
+ this.menu.highlighted.pipe(takeUntilDestroyed()).subscribe((value) => {
245
+ if (value !== this) {
246
+ this.highlighted = false;
247
+ }
248
+ });
249
+ this.triggered.subscribe(this.onSelect);
250
+ }
251
+ onPointerMove() {
252
+ this.nativeElement.focus({ preventScroll: true });
253
+ this.menu.updateActiveItem(this);
254
+ }
255
+ onKeydown(event) {
256
+ if (this.nativeElement.tagName !== 'BUTTON' && ['Enter', ' '].includes(event.key)) {
257
+ event.preventDefault();
258
+ }
259
+ if (event.key === 'Escape') {
260
+ if (!this.menu.closeOnEscape) {
261
+ event.stopPropagation();
262
+ }
263
+ else {
264
+ this.menu.onEscapeKeyDown(event);
265
+ }
266
+ }
267
+ }
268
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxDropdownMenuItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
269
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.1", type: RdxDropdownMenuItemDirective, isStandalone: true, selector: "[rdxDropdownMenuItem]", inputs: { disabled: ["disabled", "disabled", booleanAttribute] }, outputs: { onSelect: "onSelect" }, host: { attributes: { "type": "button" }, listeners: { "pointermove": "onPointerMove()", "focus": "menu.highlighted.next(this)", "keydown": "onKeydown($event)" }, properties: { "attr.data-orientation": "\"vertical\"", "attr.data-highlighted": "highlighted ? \"\" : null", "attr.data-disabled": "disabled ? \"\" : null", "attr.disabled": "disabled ? \"\" : null" } }, providers: [
270
+ { provide: CdkMenuItem, useExisting: RdxDropdownMenuItemDirective },
271
+ { provide: CDK_MENU, useExisting: RdxDropdownMenuContentDirective }
272
+ ], usesInheritance: true, ngImport: i0 }); }
273
+ }
274
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxDropdownMenuItemDirective, decorators: [{
275
+ type: Directive,
276
+ args: [{
277
+ selector: '[rdxDropdownMenuItem]',
278
+ standalone: true,
279
+ host: {
280
+ type: 'button',
281
+ // todo horizontal ?
282
+ '[attr.data-orientation]': '"vertical"',
283
+ '[attr.data-highlighted]': 'highlighted ? "" : null',
284
+ '[attr.data-disabled]': 'disabled ? "" : null',
285
+ '[attr.disabled]': 'disabled ? "" : null',
286
+ '(pointermove)': 'onPointerMove()',
287
+ '(focus)': 'menu.highlighted.next(this)',
288
+ '(keydown)': 'onKeydown($event)'
289
+ },
290
+ providers: [
291
+ { provide: CdkMenuItem, useExisting: RdxDropdownMenuItemDirective },
292
+ { provide: CDK_MENU, useExisting: RdxDropdownMenuContentDirective }
293
+ ]
294
+ }]
295
+ }], ctorParameters: () => [], propDecorators: { disabled: [{
296
+ type: Input,
297
+ args: [{ transform: booleanAttribute }]
298
+ }], onSelect: [{
299
+ type: Output
300
+ }] } });
301
+
302
+ /** Base class providing checked state for selectable DropdownMenuItems. */
303
+ class RdxDropdownMenuSelectable extends RdxDropdownMenuItemDirective {
304
+ constructor() {
305
+ super(...arguments);
306
+ /** Whether the element is checked */
307
+ this.checked = false;
308
+ this.checkedChange = new EventEmitter();
309
+ }
310
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxDropdownMenuSelectable, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
311
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.1", type: RdxDropdownMenuSelectable, isStandalone: true, inputs: { checked: ["checked", "checked", booleanAttribute] }, outputs: { checkedChange: "checkedChange" }, host: { properties: { "attr.aria-checked": "!!checked", "attr.aria-disabled": "disabled || null", "attr.data-state": "checked ? \"checked\" : \"unchecked\"" } }, usesInheritance: true, ngImport: i0 }); }
312
+ }
313
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxDropdownMenuSelectable, decorators: [{
314
+ type: Directive,
315
+ args: [{
316
+ standalone: true,
317
+ host: {
318
+ '[attr.aria-checked]': '!!checked',
319
+ '[attr.aria-disabled]': 'disabled || null',
320
+ '[attr.data-state]': 'checked ? "checked" : "unchecked"'
321
+ }
322
+ }]
323
+ }], propDecorators: { checked: [{
324
+ type: Input,
325
+ args: [{ transform: booleanAttribute }]
326
+ }], checkedChange: [{
327
+ type: Output
328
+ }] } });
329
+
330
+ class RdxDropdownMenuItemCheckboxDirective extends RdxDropdownMenuSelectable {
331
+ trigger(options) {
332
+ if (!this.disabled) {
333
+ this.checked = !this.checked;
334
+ this.checkedChange.emit(this.checked);
335
+ }
336
+ super.trigger(options);
337
+ }
338
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxDropdownMenuItemCheckboxDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
339
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.1", type: RdxDropdownMenuItemCheckboxDirective, isStandalone: true, selector: "[rdxDropdownMenuItemCheckbox]", host: { attributes: { "role": "menuitemcheckbox" } }, providers: [
340
+ { provide: RdxDropdownMenuSelectable, useExisting: RdxDropdownMenuItemCheckboxDirective },
341
+ { provide: RdxDropdownMenuItemDirective, useExisting: RdxDropdownMenuSelectable },
342
+ { provide: CdkMenuItem, useExisting: RdxDropdownMenuItemDirective },
343
+ { provide: CDK_MENU, useExisting: RdxDropdownMenuContentDirective }
344
+ ], usesInheritance: true, ngImport: i0 }); }
345
+ }
346
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxDropdownMenuItemCheckboxDirective, decorators: [{
347
+ type: Directive,
348
+ args: [{
349
+ selector: '[rdxDropdownMenuItemCheckbox]',
350
+ standalone: true,
351
+ host: {
352
+ role: 'menuitemcheckbox'
353
+ },
354
+ providers: [
355
+ { provide: RdxDropdownMenuSelectable, useExisting: RdxDropdownMenuItemCheckboxDirective },
356
+ { provide: RdxDropdownMenuItemDirective, useExisting: RdxDropdownMenuSelectable },
357
+ { provide: CdkMenuItem, useExisting: RdxDropdownMenuItemDirective },
358
+ { provide: CDK_MENU, useExisting: RdxDropdownMenuContentDirective }
359
+ ]
360
+ }]
361
+ }] });
362
+
363
+ class RdxDropdownMenuItemIndicatorDirective {
364
+ constructor() {
365
+ this.item = inject(RdxDropdownMenuSelectable);
366
+ }
367
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxDropdownMenuItemIndicatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
368
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.1", type: RdxDropdownMenuItemIndicatorDirective, isStandalone: true, selector: "[rdxDropdownMenuItemIndicator]", host: { properties: { "style.display": "item.checked ? 'block' : 'none'", "attr.data-state": "item.checked ? 'checked' : 'unchecked'" } }, ngImport: i0 }); }
369
+ }
370
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxDropdownMenuItemIndicatorDirective, decorators: [{
371
+ type: Directive,
372
+ args: [{
373
+ selector: '[rdxDropdownMenuItemIndicator]',
374
+ standalone: true,
375
+ host: {
376
+ '[style.display]': "item.checked ? 'block' : 'none'",
377
+ '[attr.data-state]': "item.checked ? 'checked' : 'unchecked'"
378
+ }
379
+ }]
380
+ }] });
381
+
382
+ class RdxDropdownMenuItemRadioGroupDirective {
383
+ constructor() {
384
+ this.selectionDispatcher = inject(UniqueSelectionDispatcher);
385
+ this._value = null;
386
+ this.valueChange = new EventEmitter();
387
+ }
388
+ set value(id) {
389
+ this._value = id;
390
+ }
391
+ get value() {
392
+ return this._value;
393
+ }
394
+ ngAfterContentInit() {
395
+ this.selectionDispatcher.notify(this.value, '');
396
+ }
397
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxDropdownMenuItemRadioGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
398
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.1", type: RdxDropdownMenuItemRadioGroupDirective, isStandalone: true, selector: "[rdxDropdownMenuItemRadioGroup]", inputs: { value: "value" }, outputs: { valueChange: "valueChange" }, host: { attributes: { "role": "group" } }, providers: [{ provide: UniqueSelectionDispatcher, useClass: UniqueSelectionDispatcher }], ngImport: i0 }); }
399
+ }
400
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxDropdownMenuItemRadioGroupDirective, decorators: [{
401
+ type: Directive,
402
+ args: [{
403
+ selector: '[rdxDropdownMenuItemRadioGroup]',
404
+ standalone: true,
405
+ host: {
406
+ role: 'group'
407
+ },
408
+ providers: [{ provide: UniqueSelectionDispatcher, useClass: UniqueSelectionDispatcher }]
409
+ }]
410
+ }], propDecorators: { value: [{
411
+ type: Input
412
+ }], valueChange: [{
413
+ type: Output
414
+ }] } });
415
+
416
+ /** Counter used to set a unique id and name for a selectable item */
417
+ let nextId = 0;
418
+ class RdxDropdownMenuItemRadioDirective extends RdxDropdownMenuSelectable {
419
+ get value() {
420
+ return this._value || this.id;
421
+ }
422
+ set value(value) {
423
+ this._value = value;
424
+ }
425
+ constructor() {
426
+ super();
427
+ /** The unique selection dispatcher for this radio's `RdxDropdownMenuItemRadioGroupDirective`. */
428
+ this.selectionDispatcher = inject(UniqueSelectionDispatcher);
429
+ this.group = inject(RdxDropdownMenuItemRadioGroupDirective);
430
+ /** An ID to identify this radio item to the `UniqueSelectionDispatcher`. */
431
+ this.id = `${nextId++}`;
432
+ this.triggered.subscribe(() => {
433
+ if (!this.disabled) {
434
+ this.selectionDispatcher.notify(this.value, '');
435
+ this.group.valueChange.emit(this.value);
436
+ }
437
+ });
438
+ }
439
+ ngAfterContentInit() {
440
+ this.removeDispatcherListener = this.selectionDispatcher.listen((id) => {
441
+ this.checked = this.value === id;
442
+ });
443
+ }
444
+ ngOnDestroy() {
445
+ super.ngOnDestroy();
446
+ this.removeDispatcherListener();
447
+ }
448
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxDropdownMenuItemRadioDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
449
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.1", type: RdxDropdownMenuItemRadioDirective, isStandalone: true, selector: "[rdxDropdownMenuItemRadio]", inputs: { value: "value" }, host: { attributes: { "role": "menuitemradio" } }, providers: [
450
+ { provide: RdxDropdownMenuSelectable, useExisting: RdxDropdownMenuItemRadioDirective },
451
+ { provide: RdxDropdownMenuItemDirective, useExisting: RdxDropdownMenuSelectable },
452
+ { provide: CdkMenuItem, useExisting: RdxDropdownMenuItemDirective },
453
+ { provide: CDK_MENU, useExisting: RdxDropdownMenuContentDirective }
454
+ ], usesInheritance: true, ngImport: i0 }); }
455
+ }
456
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxDropdownMenuItemRadioDirective, decorators: [{
457
+ type: Directive,
458
+ args: [{
459
+ selector: '[rdxDropdownMenuItemRadio]',
460
+ standalone: true,
461
+ host: {
462
+ role: 'menuitemradio'
463
+ },
464
+ providers: [
465
+ { provide: RdxDropdownMenuSelectable, useExisting: RdxDropdownMenuItemRadioDirective },
466
+ { provide: RdxDropdownMenuItemDirective, useExisting: RdxDropdownMenuSelectable },
467
+ { provide: CdkMenuItem, useExisting: RdxDropdownMenuItemDirective },
468
+ { provide: CDK_MENU, useExisting: RdxDropdownMenuContentDirective }
469
+ ]
470
+ }]
471
+ }], ctorParameters: () => [], propDecorators: { value: [{
472
+ type: Input
473
+ }] } });
474
+
475
+ class RdxDropdownMenuLabelDirective {
476
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxDropdownMenuLabelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
477
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.1", type: RdxDropdownMenuLabelDirective, isStandalone: true, selector: "[rdxDropdownMenuLabel]", ngImport: i0 }); }
478
+ }
479
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxDropdownMenuLabelDirective, decorators: [{
480
+ type: Directive,
481
+ args: [{
482
+ selector: '[rdxDropdownMenuLabel]',
483
+ standalone: true
484
+ }]
485
+ }] });
486
+
487
+ class RdxDropdownMenuSeparatorDirective {
488
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxDropdownMenuSeparatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
489
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.1", type: RdxDropdownMenuSeparatorDirective, isStandalone: true, selector: "[rdxDropdownMenuSeparator]", host: { attributes: { "role": "separator" }, properties: { "attr.aria-orientation": "'horizontal'" } }, hostDirectives: [{ directive: i1.RdxSeparatorRootDirective }], ngImport: i0 }); }
490
+ }
491
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxDropdownMenuSeparatorDirective, decorators: [{
492
+ type: Directive,
493
+ args: [{
494
+ selector: '[rdxDropdownMenuSeparator]',
495
+ standalone: true,
496
+ hostDirectives: [RdxSeparatorRootDirective],
497
+ host: {
498
+ role: 'separator',
499
+ '[attr.aria-orientation]': "'horizontal'"
500
+ }
501
+ }]
502
+ }] });
503
+
504
+ const _imports = [
505
+ RdxDropdownMenuTriggerDirective,
506
+ RdxDropdownMenuContentDirective,
507
+ RdxDropdownMenuItemCheckboxDirective,
508
+ RdxDropdownMenuItemIndicatorDirective,
509
+ RdxDropdownMenuItemRadioGroupDirective,
510
+ RdxDropdownMenuItemRadioDirective,
511
+ RdxDropdownMenuSelectable,
512
+ RdxDropdownMenuItemDirective,
513
+ RdxDropdownMenuLabelDirective,
514
+ RdxDropdownMenuSeparatorDirective,
515
+ RdxDropdownMenuTriggerDirective
516
+ ];
517
+ class Rdx {
518
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Rdx, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
519
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.1", ngImport: i0, type: Rdx, imports: [RdxDropdownMenuTriggerDirective,
520
+ RdxDropdownMenuContentDirective,
521
+ RdxDropdownMenuItemCheckboxDirective,
522
+ RdxDropdownMenuItemIndicatorDirective,
523
+ RdxDropdownMenuItemRadioGroupDirective,
524
+ RdxDropdownMenuItemRadioDirective,
525
+ RdxDropdownMenuSelectable,
526
+ RdxDropdownMenuItemDirective,
527
+ RdxDropdownMenuLabelDirective,
528
+ RdxDropdownMenuSeparatorDirective,
529
+ RdxDropdownMenuTriggerDirective], exports: [RdxDropdownMenuTriggerDirective,
530
+ RdxDropdownMenuContentDirective,
531
+ RdxDropdownMenuItemCheckboxDirective,
532
+ RdxDropdownMenuItemIndicatorDirective,
533
+ RdxDropdownMenuItemRadioGroupDirective,
534
+ RdxDropdownMenuItemRadioDirective,
535
+ RdxDropdownMenuSelectable,
536
+ RdxDropdownMenuItemDirective,
537
+ RdxDropdownMenuLabelDirective,
538
+ RdxDropdownMenuSeparatorDirective,
539
+ RdxDropdownMenuTriggerDirective] }); }
540
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Rdx }); }
541
+ }
542
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Rdx, decorators: [{
543
+ type: NgModule,
544
+ args: [{
545
+ imports: [..._imports],
546
+ exports: [..._imports]
547
+ }]
548
+ }] });
549
+
550
+ /**
551
+ * Generated bundle index. Do not edit.
552
+ */
553
+
554
+ export { DropdownAlign, DropdownSide, Rdx, RdxDropdownMenuContentDirective, RdxDropdownMenuItemCheckboxDirective, RdxDropdownMenuItemDirective, RdxDropdownMenuItemIndicatorDirective, RdxDropdownMenuItemRadioDirective, RdxDropdownMenuItemRadioGroupDirective, RdxDropdownMenuLabelDirective, RdxDropdownMenuSelectable, RdxDropdownMenuSeparatorDirective, RdxDropdownMenuTriggerDirective, mapRdxAlignToCdkPosition };
555
+ //# sourceMappingURL=radix-ng-primitives-dropdown-menu.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radix-ng-primitives-dropdown-menu.mjs","sources":["../../../packages/primitives/dropdown-menu/src/dropdown-menu-trigger.directive.ts","../../../packages/primitives/dropdown-menu/src/dropdown-menu-content.directive.ts","../../../packages/primitives/dropdown-menu/src/dropdown-menu-item.directive.ts","../../../packages/primitives/dropdown-menu/src/dropdown-menu-item-selectable.ts","../../../packages/primitives/dropdown-menu/src/dropdown-menu-item-checkbox.directive.ts","../../../packages/primitives/dropdown-menu/src/dropdown-menu-item-indicator.directive.ts","../../../packages/primitives/dropdown-menu/src/dropdown-menu-item-radio-group.directive.ts","../../../packages/primitives/dropdown-menu/src/dropdown-menu-item-radio.directive.ts","../../../packages/primitives/dropdown-menu/src/dropdown-menu-label.directive.ts","../../../packages/primitives/dropdown-menu/src/dropdown-menu-separator.directive.ts","../../../packages/primitives/dropdown-menu/index.ts","../../../packages/primitives/dropdown-menu/radix-ng-primitives-dropdown-menu.ts"],"sourcesContent":["import { BooleanInput } from '@angular/cdk/coercion';\nimport { CdkMenuTrigger, MENU_TRIGGER, PARENT_OR_NEW_MENU_STACK_PROVIDER } from '@angular/cdk/menu';\nimport { ConnectedPosition, OverlayRef, VerticalConnectionPos } from '@angular/cdk/overlay';\nimport { booleanAttribute, Directive, Input, input, numberAttribute, TemplateRef } from '@angular/core';\nimport { outputFromObservable } from '@angular/core/rxjs-interop';\n\nexport enum DropdownSide {\n Top = 'top',\n Right = 'right',\n Bottom = 'bottom',\n Left = 'left'\n}\n\nexport enum DropdownAlign {\n Start = 'start',\n Center = 'center',\n End = 'end'\n}\n\nexport const mapRdxAlignToCdkPosition = {\n start: 'top',\n center: 'center',\n end: 'bottom'\n};\n\nconst dropdownPositions: Record<DropdownSide, ConnectedPosition> = {\n top: {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: 0,\n offsetY: 0\n },\n right: {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: 0,\n offsetY: 0\n },\n bottom: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: 0,\n offsetY: 0\n },\n left: {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: 0,\n offsetY: 0\n }\n};\n\n@Directive({\n selector: '[rdxDropdownMenuTrigger]',\n standalone: true,\n host: {\n type: 'button',\n '[attr.aria-haspopup]': \"'menu'\",\n '[attr.aria-expanded]': 'isOpen()',\n '[attr.data-state]': \"isOpen() ? 'open': 'closed'\",\n '[attr.data-disabled]': \"disabled() ? '' : undefined\",\n '[disabled]': 'disabled()',\n\n '(pointerdown)': 'onPointerDown($event)'\n },\n providers: [\n { provide: CdkMenuTrigger, useExisting: RdxDropdownMenuTriggerDirective },\n { provide: MENU_TRIGGER, useExisting: CdkMenuTrigger },\n PARENT_OR_NEW_MENU_STACK_PROVIDER\n ]\n})\nexport class RdxDropdownMenuTriggerDirective extends CdkMenuTrigger {\n /**\n * @ignore\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute\n });\n\n @Input()\n set rdxDropdownMenuTrigger(value: TemplateRef<unknown> | null) {\n this.menuTemplateRef = value;\n }\n\n @Input()\n set side(value: DropdownSide) {\n if (!Object.values(DropdownSide).includes(value)) {\n throw new Error(`Unknown side: ${value}`);\n }\n\n this._side = value;\n\n this.menuPosition[0] = dropdownPositions[value];\n }\n\n get side() {\n return this._side;\n }\n\n private _side: DropdownSide = DropdownSide.Bottom;\n\n @Input()\n set align(value: DropdownAlign) {\n if (!Object.values(DropdownAlign).includes(value)) {\n throw new Error(`Unknown align: ${value}`);\n }\n\n this._align = value;\n\n if (this.isVertical) {\n this.defaultPosition.overlayX = this.defaultPosition.originX = value;\n } else {\n this.defaultPosition.overlayY = this.defaultPosition.originY = mapRdxAlignToCdkPosition[\n value\n ] as VerticalConnectionPos;\n }\n }\n\n get align() {\n return this._align;\n }\n\n private _align: DropdownAlign = DropdownAlign.Start;\n\n @Input({ transform: numberAttribute })\n set sideOffset(value: number) {\n // todo need invert value for top and left\n if (this.isVertical) {\n this.defaultPosition.offsetY = value;\n } else {\n this.defaultPosition.offsetX = value;\n }\n }\n\n @Input({ transform: numberAttribute })\n set alignOffset(value: number) {\n // todo need invert value for top and left\n if (this.isVertical) {\n this.defaultPosition.offsetX = value;\n } else {\n this.defaultPosition.offsetY = value;\n }\n }\n\n onOpenChange = outputFromObservable(this.opened);\n\n get isVertical(): boolean {\n return this._side === DropdownSide.Top || this._side === DropdownSide.Bottom;\n }\n\n get defaultPosition(): ConnectedPosition {\n return this.menuPosition[0];\n }\n\n constructor() {\n super();\n // todo priority\n this.menuPosition = [{ ...dropdownPositions[DropdownSide.Bottom] }];\n }\n\n onPointerDown($event: MouseEvent) {\n // only call handler if it's the left button (mousedown gets triggered by all mouse buttons)\n // but not when the control key is pressed (avoiding MacOS right click)\n if (!this.disabled() && $event.button === 0 && !$event.ctrlKey) {\n /* empty */\n if (!this.isOpen()) {\n // prevent trigger focusing when opening\n // this allows the content to be given focus without competition\n $event.preventDefault();\n }\n }\n }\n\n getOverlayRef(): OverlayRef | null {\n return this.overlayRef;\n }\n}\n","import { CdkMenu, CdkMenuItem } from '@angular/cdk/menu';\nimport { Directive, inject, Input } from '@angular/core';\nimport { pairwise, startWith, Subject } from 'rxjs';\nimport { RdxDropdownMenuItemDirective } from './dropdown-menu-item.directive';\nimport { RdxDropdownMenuTriggerDirective } from './dropdown-menu-trigger.directive';\n\n@Directive({\n selector: '[rdxDropdownMenuContent]',\n standalone: true,\n host: {\n '[attr.data-state]': \"menuTrigger.isOpen() ? 'open': 'closed'\",\n '[attr.data-align]': 'menuTrigger!.align',\n '[attr.data-side]': 'menuTrigger!.side',\n '[attr.data-orientation]': 'orientation'\n },\n providers: [\n {\n provide: CdkMenu,\n useExisting: RdxDropdownMenuContentDirective\n }\n ]\n})\nexport class RdxDropdownMenuContentDirective extends CdkMenu {\n readonly highlighted = new Subject<RdxDropdownMenuItemDirective>();\n readonly menuTrigger = inject(RdxDropdownMenuTriggerDirective, { optional: true });\n\n @Input() onEscapeKeyDown: (event?: Event) => void = () => undefined;\n @Input() closeOnEscape: boolean = true;\n\n constructor() {\n super();\n\n this.highlighted.pipe(startWith(null), pairwise()).subscribe(([prev, item]) => {\n if (prev) {\n prev.highlighted = false;\n }\n\n if (item) {\n item.highlighted = true;\n }\n });\n }\n\n updateActiveItem(item: CdkMenuItem) {\n this.keyManager.updateActiveItem(item);\n }\n}\n","import { CDK_MENU, CdkMenuItem } from '@angular/cdk/menu';\nimport { booleanAttribute, Directive, ElementRef, EventEmitter, inject, Input, Output } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { RdxDropdownMenuContentDirective } from './dropdown-menu-content.directive';\n\n@Directive({\n selector: '[rdxDropdownMenuItem]',\n standalone: true,\n host: {\n type: 'button',\n // todo horizontal ?\n '[attr.data-orientation]': '\"vertical\"',\n '[attr.data-highlighted]': 'highlighted ? \"\" : null',\n '[attr.data-disabled]': 'disabled ? \"\" : null',\n '[attr.disabled]': 'disabled ? \"\" : null',\n '(pointermove)': 'onPointerMove()',\n '(focus)': 'menu.highlighted.next(this)',\n '(keydown)': 'onKeydown($event)'\n },\n providers: [\n { provide: CdkMenuItem, useExisting: RdxDropdownMenuItemDirective },\n { provide: CDK_MENU, useExisting: RdxDropdownMenuContentDirective }\n ]\n})\nexport class RdxDropdownMenuItemDirective extends CdkMenuItem {\n protected readonly menu = inject(RdxDropdownMenuContentDirective);\n protected readonly nativeElement = inject(ElementRef).nativeElement;\n\n highlighted = false;\n\n @Input({ transform: booleanAttribute }) override disabled: boolean = false;\n\n @Output() readonly onSelect = new EventEmitter<void>();\n\n constructor() {\n super();\n\n this.menu.highlighted.pipe(takeUntilDestroyed()).subscribe((value) => {\n if (value !== this) {\n this.highlighted = false;\n }\n });\n\n this.triggered.subscribe(this.onSelect);\n }\n\n protected onPointerMove() {\n this.nativeElement.focus({ preventScroll: true });\n this.menu.updateActiveItem(this);\n }\n\n protected onKeydown(event: KeyboardEvent) {\n if (this.nativeElement.tagName !== 'BUTTON' && ['Enter', ' '].includes(event.key)) {\n event.preventDefault();\n }\n\n if (event.key === 'Escape') {\n if (!this.menu.closeOnEscape) {\n event.stopPropagation();\n } else {\n this.menu.onEscapeKeyDown(event);\n }\n }\n }\n}\n","import { booleanAttribute, Directive, EventEmitter, Input, Output } from '@angular/core';\nimport { RdxDropdownMenuItemDirective } from './dropdown-menu-item.directive';\n\n/** Base class providing checked state for selectable DropdownMenuItems. */\n@Directive({\n standalone: true,\n host: {\n '[attr.aria-checked]': '!!checked',\n '[attr.aria-disabled]': 'disabled || null',\n '[attr.data-state]': 'checked ? \"checked\" : \"unchecked\"'\n }\n})\nexport class RdxDropdownMenuSelectable extends RdxDropdownMenuItemDirective {\n /** Whether the element is checked */\n @Input({ transform: booleanAttribute }) checked: boolean = false;\n\n @Output() readonly checkedChange = new EventEmitter<boolean>();\n}\n","import { CDK_MENU, CdkMenuItem } from '@angular/cdk/menu';\nimport { Directive } from '@angular/core';\nimport { RdxDropdownMenuContentDirective } from './dropdown-menu-content.directive';\nimport { RdxDropdownMenuSelectable } from './dropdown-menu-item-selectable';\nimport { RdxDropdownMenuItemDirective } from './dropdown-menu-item.directive';\n\n@Directive({\n selector: '[rdxDropdownMenuItemCheckbox]',\n standalone: true,\n host: {\n role: 'menuitemcheckbox'\n },\n providers: [\n { provide: RdxDropdownMenuSelectable, useExisting: RdxDropdownMenuItemCheckboxDirective },\n { provide: RdxDropdownMenuItemDirective, useExisting: RdxDropdownMenuSelectable },\n { provide: CdkMenuItem, useExisting: RdxDropdownMenuItemDirective },\n { provide: CDK_MENU, useExisting: RdxDropdownMenuContentDirective }\n ]\n})\nexport class RdxDropdownMenuItemCheckboxDirective extends RdxDropdownMenuSelectable {\n override trigger(options?: { keepOpen: boolean }) {\n if (!this.disabled) {\n this.checked = !this.checked;\n\n this.checkedChange.emit(this.checked);\n }\n\n super.trigger(options);\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { RdxDropdownMenuSelectable } from './dropdown-menu-item-selectable';\n\n@Directive({\n selector: '[rdxDropdownMenuItemIndicator]',\n standalone: true,\n host: {\n '[style.display]': \"item.checked ? 'block' : 'none'\",\n '[attr.data-state]': \"item.checked ? 'checked' : 'unchecked'\"\n }\n})\nexport class RdxDropdownMenuItemIndicatorDirective {\n item = inject(RdxDropdownMenuSelectable);\n}\n","import { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport { AfterContentInit, Directive, EventEmitter, inject, Input, Output } from '@angular/core';\n\n@Directive({\n selector: '[rdxDropdownMenuItemRadioGroup]',\n standalone: true,\n host: {\n role: 'group'\n },\n providers: [{ provide: UniqueSelectionDispatcher, useClass: UniqueSelectionDispatcher }]\n})\nexport class RdxDropdownMenuItemRadioGroupDirective<T> implements AfterContentInit {\n private readonly selectionDispatcher = inject(UniqueSelectionDispatcher);\n\n @Input()\n set value(id: T | null) {\n this._value = id;\n }\n\n get value(): T | null {\n return this._value;\n }\n\n private _value: T | null = null;\n\n @Output() readonly valueChange = new EventEmitter();\n\n ngAfterContentInit(): void {\n this.selectionDispatcher.notify(this.value as string, '');\n }\n}\n","import { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport { CDK_MENU, CdkMenuItem } from '@angular/cdk/menu';\nimport { AfterContentInit, Directive, inject, Input, OnDestroy } from '@angular/core';\nimport { RdxDropdownMenuContentDirective } from './dropdown-menu-content.directive';\nimport { RdxDropdownMenuItemRadioGroupDirective } from './dropdown-menu-item-radio-group.directive';\nimport { RdxDropdownMenuSelectable } from './dropdown-menu-item-selectable';\nimport { RdxDropdownMenuItemDirective } from './dropdown-menu-item.directive';\n\n/** Counter used to set a unique id and name for a selectable item */\nlet nextId = 0;\n\n@Directive({\n selector: '[rdxDropdownMenuItemRadio]',\n standalone: true,\n host: {\n role: 'menuitemradio'\n },\n providers: [\n { provide: RdxDropdownMenuSelectable, useExisting: RdxDropdownMenuItemRadioDirective },\n { provide: RdxDropdownMenuItemDirective, useExisting: RdxDropdownMenuSelectable },\n { provide: CdkMenuItem, useExisting: RdxDropdownMenuItemDirective },\n { provide: CDK_MENU, useExisting: RdxDropdownMenuContentDirective }\n ]\n})\nexport class RdxDropdownMenuItemRadioDirective\n extends RdxDropdownMenuSelectable\n implements AfterContentInit, OnDestroy\n{\n /** The unique selection dispatcher for this radio's `RdxDropdownMenuItemRadioGroupDirective`. */\n private readonly selectionDispatcher = inject(UniqueSelectionDispatcher);\n\n private readonly group = inject(RdxDropdownMenuItemRadioGroupDirective);\n\n @Input()\n get value() {\n return this._value || this.id;\n }\n\n set value(value: string) {\n this._value = value;\n }\n\n private _value: string | undefined;\n\n /** An ID to identify this radio item to the `UniqueSelectionDispatcher`. */\n private id = `${nextId++}`;\n\n private removeDispatcherListener!: () => void;\n\n constructor() {\n super();\n\n this.triggered.subscribe(() => {\n if (!this.disabled) {\n this.selectionDispatcher.notify(this.value, '');\n\n this.group.valueChange.emit(this.value);\n }\n });\n }\n\n ngAfterContentInit() {\n this.removeDispatcherListener = this.selectionDispatcher.listen((id: string) => {\n this.checked = this.value === id;\n });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this.removeDispatcherListener();\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[rdxDropdownMenuLabel]',\n standalone: true\n})\nexport class RdxDropdownMenuLabelDirective {}\n","import { Directive } from '@angular/core';\nimport { RdxSeparatorRootDirective } from '@radix-ng/primitives/separator';\n\n@Directive({\n selector: '[rdxDropdownMenuSeparator]',\n standalone: true,\n hostDirectives: [RdxSeparatorRootDirective],\n host: {\n role: 'separator',\n '[attr.aria-orientation]': \"'horizontal'\"\n }\n})\nexport class RdxDropdownMenuSeparatorDirective {}\n","import { NgModule } from '@angular/core';\nimport { RdxDropdownMenuContentDirective } from './src/dropdown-menu-content.directive';\nimport { RdxDropdownMenuItemCheckboxDirective } from './src/dropdown-menu-item-checkbox.directive';\nimport { RdxDropdownMenuItemIndicatorDirective } from './src/dropdown-menu-item-indicator.directive';\nimport { RdxDropdownMenuItemRadioGroupDirective } from './src/dropdown-menu-item-radio-group.directive';\nimport { RdxDropdownMenuItemRadioDirective } from './src/dropdown-menu-item-radio.directive';\nimport { RdxDropdownMenuSelectable } from './src/dropdown-menu-item-selectable';\nimport { RdxDropdownMenuItemDirective } from './src/dropdown-menu-item.directive';\nimport { RdxDropdownMenuLabelDirective } from './src/dropdown-menu-label.directive';\nimport { RdxDropdownMenuSeparatorDirective } from './src/dropdown-menu-separator.directive';\nimport { RdxDropdownMenuTriggerDirective } from './src/dropdown-menu-trigger.directive';\n\nexport * from './src/dropdown-menu-content.directive';\nexport * from './src/dropdown-menu-item-checkbox.directive';\nexport * from './src/dropdown-menu-item-indicator.directive';\nexport * from './src/dropdown-menu-item-radio-group.directive';\nexport * from './src/dropdown-menu-item-radio.directive';\nexport * from './src/dropdown-menu-item-selectable';\nexport * from './src/dropdown-menu-item.directive';\nexport * from './src/dropdown-menu-label.directive';\nexport * from './src/dropdown-menu-separator.directive';\nexport * from './src/dropdown-menu-trigger.directive';\n\nconst _imports = [\n RdxDropdownMenuTriggerDirective,\n RdxDropdownMenuContentDirective,\n RdxDropdownMenuItemCheckboxDirective,\n RdxDropdownMenuItemIndicatorDirective,\n RdxDropdownMenuItemRadioGroupDirective,\n RdxDropdownMenuItemRadioDirective,\n RdxDropdownMenuSelectable,\n RdxDropdownMenuItemDirective,\n RdxDropdownMenuLabelDirective,\n RdxDropdownMenuSeparatorDirective,\n RdxDropdownMenuTriggerDirective\n];\n\n@NgModule({\n imports: [..._imports],\n exports: [..._imports]\n})\nexport class Rdx {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}