@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
@@ -1,36 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { ComponentFixture, TestBed } from '@angular/core/testing';
3
- import { RdxAvatarFallbackDirective } from '../src/avatar-fallback.directive';
4
- import { RdxAvatarImageDirective } from '../src/avatar-image.directive';
5
- import { RdxAvatarRootDirective } from '../src/avatar-root.directive';
6
-
7
- @Component({
8
- selector: 'rdx-mock-component',
9
- standalone: true,
10
- imports: [RdxAvatarImageDirective, RdxAvatarRootDirective, RdxAvatarFallbackDirective],
11
- template: `
12
- <span rdxAvatarRoot>
13
- <img
14
- rdxAvatarImage
15
- alt="Angular Logo"
16
- src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg=="
17
- />
18
- <span rdxAvatarFallback>Angular Logo</span>
19
- </span>
20
- `
21
- })
22
- class RdxMockComponent {}
23
-
24
- describe('RdxAvatarImageDirective', () => {
25
- let component: RdxMockComponent;
26
- let fixture: ComponentFixture<RdxMockComponent>;
27
-
28
- beforeEach(() => {
29
- fixture = TestBed.createComponent(RdxMockComponent);
30
- component = fixture.componentInstance;
31
- });
32
-
33
- it('should compile', () => {
34
- expect(component).toBeTruthy();
35
- });
36
- });
@@ -1,5 +0,0 @@
1
- {
2
- "lib": {
3
- "entryFile": "index.ts"
4
- }
5
- }
@@ -1,62 +0,0 @@
1
- import { isPlatformBrowser } from '@angular/common';
2
- import { Directive, inject, Input, NgZone, numberAttribute, OnDestroy, OnInit, PLATFORM_ID } from '@angular/core';
3
- import { injectAvatar } from './avatar-root.directive';
4
- import { injectAvatarConfig } from './avatar.config';
5
-
6
- export interface RdxAvatarFallbackProps {
7
- delayMs?: number;
8
- }
9
-
10
- @Directive({
11
- selector: 'span[rdxAvatarFallback]',
12
- exportAs: 'rdxAvatarFallback',
13
- standalone: true,
14
- host: {
15
- '[style.display]': 'visible ? null : "none"'
16
- }
17
- })
18
- export class RdxAvatarFallbackDirective implements RdxAvatarFallbackProps, OnInit, OnDestroy {
19
- private readonly avatar = injectAvatar();
20
-
21
- private readonly config = injectAvatarConfig();
22
-
23
- private readonly ngZone = inject(NgZone);
24
-
25
- private readonly platformId = inject(PLATFORM_ID);
26
-
27
- /**
28
- * Define a delay before the fallback is shown.
29
- * This is useful to only show the fallback for those with slower connections.
30
- * @default 0
31
- */
32
- @Input({ alias: 'rdxDelayMs', transform: numberAttribute }) delayMs: number = this.config.delayMs;
33
-
34
- protected get visible(): boolean {
35
- return this.delayElapsed && this.avatar._state() !== 'loaded';
36
- }
37
-
38
- /**
39
- * Determine the delay has elapsed, and we can show the fallback.
40
- */
41
- private delayElapsed = false;
42
-
43
- private timeoutId: ReturnType<typeof setTimeout> | null = null;
44
-
45
- ngOnInit(): void {
46
- if (isPlatformBrowser(this.platformId)) {
47
- this.ngZone.runOutsideAngular(() => {
48
- this.timeoutId = globalThis.setTimeout(() => {
49
- this.ngZone.run(() => {
50
- this.delayElapsed = true;
51
- });
52
- }, this.delayMs);
53
- });
54
- }
55
- }
56
-
57
- ngOnDestroy(): void {
58
- if (isPlatformBrowser(this.platformId) && this.timeoutId !== null) {
59
- globalThis.clearTimeout(this.timeoutId);
60
- }
61
- }
62
- }
@@ -1,55 +0,0 @@
1
- import { Directive, ElementRef, EventEmitter, inject, OnInit, Output } from '@angular/core';
2
- import { injectAvatar, RdxImageLoadingStatus } from './avatar-root.directive';
3
-
4
- export interface RdxAvatarImageProps {
5
- onLoadingStatusChange?: EventEmitter<RdxImageLoadingStatus>;
6
- }
7
-
8
- @Directive({
9
- selector: 'img[rdxAvatarImage]',
10
- exportAs: 'rdxAvatarImage',
11
- standalone: true,
12
- host: {
13
- '(load)': 'onLoad()',
14
- '(error)': 'onError()'
15
- }
16
- })
17
- export class RdxAvatarImageDirective implements RdxAvatarImageProps, OnInit {
18
- private readonly avatar = injectAvatar();
19
-
20
- private readonly elementRef = inject<ElementRef<HTMLImageElement>>(ElementRef);
21
-
22
- /**
23
- * By default, it will only render when it has loaded.
24
- * You can use the `onLoadingStatusChange` handler if you need more control.
25
- */
26
- @Output() onLoadingStatusChange = new EventEmitter<RdxImageLoadingStatus>();
27
-
28
- ngOnInit(): void {
29
- this.avatar._setState('loading');
30
-
31
- if (!this.nativeElement.src) {
32
- this.avatar._setState('error');
33
- }
34
-
35
- if (this.nativeElement.complete) {
36
- this.avatar._setState('loaded');
37
- }
38
-
39
- this.onLoadingStatusChange.emit(this.avatar._state());
40
- }
41
-
42
- protected onLoad(): void {
43
- this.avatar._setState('loaded');
44
- this.onLoadingStatusChange.emit('loaded');
45
- }
46
-
47
- protected onError(): void {
48
- this.avatar._setState('error');
49
- this.onLoadingStatusChange.emit('error');
50
- }
51
-
52
- get nativeElement() {
53
- return this.elementRef.nativeElement;
54
- }
55
- }
@@ -1,35 +0,0 @@
1
- import { Directive, inject, InjectionToken, signal } from '@angular/core';
2
-
3
- const RdxAvatarToken = new InjectionToken<RdxAvatarRootDirective>('RdxAvatarToken');
4
-
5
- export function injectAvatar(): RdxAvatarRootDirective {
6
- return inject(RdxAvatarToken);
7
- }
8
-
9
- export type RdxImageLoadingStatus = 'idle' | 'loading' | 'loaded' | 'error';
10
-
11
- @Directive({
12
- selector: 'span[rdxAvatarRoot]',
13
- exportAs: 'rdxAvatarRoot',
14
- standalone: true,
15
- providers: [{ provide: RdxAvatarToken, useExisting: RdxAvatarRootDirective }]
16
- })
17
- export class RdxAvatarRootDirective {
18
- /**
19
- * A readonly signal property that holds the current state of image loading.
20
- * To set a new status, use the `setState` method of the component.
21
- * @internal
22
- */
23
- readonly _state = signal<RdxImageLoadingStatus>('idle');
24
-
25
- /**
26
- * Set the avatar state.
27
- * @param state The new image loading status to set. This value should be one of the predefined states
28
- * in the `ImageLoadingStatus`
29
- * @returns void This method does not return a value.
30
- * @internal
31
- */
32
- _setState(state: RdxImageLoadingStatus): void {
33
- this._state.set(state);
34
- }
35
- }
@@ -1,29 +0,0 @@
1
- import { inject, InjectionToken, Provider } from '@angular/core';
2
-
3
- export interface RdxAvatarConfig {
4
- /**
5
- * Define a delay before the fallback is shown.
6
- * This is useful to only show the fallback for those with slower connections.
7
- * @default 0
8
- */
9
- delayMs: number;
10
- }
11
-
12
- export const defaultAvatarConfig: RdxAvatarConfig = {
13
- delayMs: 0
14
- };
15
-
16
- export const RdxAvatarConfigToken = new InjectionToken<RdxAvatarConfig>('RdxAvatarConfigToken');
17
-
18
- export function provideRdxAvatarConfig(config: Partial<RdxAvatarConfig>): Provider[] {
19
- return [
20
- {
21
- provide: RdxAvatarConfigToken,
22
- useValue: { ...defaultAvatarConfig, ...config }
23
- }
24
- ];
25
- }
26
-
27
- export function injectAvatarConfig(): RdxAvatarConfig {
28
- return inject(RdxAvatarConfigToken, { optional: true }) ?? defaultAvatarConfig;
29
- }
@@ -1,37 +0,0 @@
1
- import { Canvas, Meta } from '@storybook/blocks';
2
- import * as AvatarDirectiveStories from './avatar.stories';
3
-
4
- <Meta title="Primitives/Avatar" />
5
-
6
- # Avatar
7
-
8
- #### An image element with a fallback for representing the user.
9
-
10
- <Canvas sourceState="hidden" of={AvatarDirectiveStories.Default} />
11
-
12
- ## Features
13
-
14
- - ✅ Automatic and manual control over when the image renders.
15
- - ✅ Fallback part accepts any children.
16
- - ✅ Optionally delayMs fallback rendering to avoid content flashing.
17
-
18
- ## Global Configuration
19
-
20
- You can configure the default options for all avatars in your application by using the `provideRdxAvatarConfig` function in a providers array.
21
-
22
- ```ts
23
- import { provideRdxAvatarConfig } from '@radix-ng/primitives/avatar';
24
-
25
- bootstrapApplication(AppComponent, {
26
- providers: [provideRdxAvatarConfig({ delayMs: 1000 })]
27
- });
28
- ```
29
-
30
- ## Anatomy
31
-
32
- ```html
33
- <span rdxAvatarRoot>
34
- <img rdxAvatarImage src="..." alt="..." />
35
- <span rdxAvatarFallback>Angular</span>
36
- </span>
37
- ```
@@ -1,87 +0,0 @@
1
- import { componentWrapperDecorator, Meta, moduleMetadata, StoryObj } from '@storybook/angular';
2
- import { RdxAvatarFallbackDirective } from '../src/avatar-fallback.directive';
3
- import { RdxAvatarImageDirective } from '../src/avatar-image.directive';
4
- import { RdxAvatarRootDirective } from '../src/avatar-root.directive';
5
-
6
- export default {
7
- title: 'Primitives/Avatar',
8
- decorators: [
9
- moduleMetadata({
10
- imports: [RdxAvatarRootDirective, RdxAvatarImageDirective, RdxAvatarFallbackDirective]
11
- }),
12
- componentWrapperDecorator(
13
- (story) =>
14
- `<div class="radix-themes light light-theme radix-themes-default-fonts"
15
- data-accent-color="indigo"
16
- data-radius="medium"
17
- data-scaling="100%">${story}</div>`
18
- )
19
- ]
20
- } as Meta;
21
-
22
- type Story = StoryObj;
23
-
24
- export const Default: Story = {
25
- render: () => ({
26
- template: `
27
- <div style=" display: flex; gap: 20px">
28
- <span rdxAvatarRoot class="AvatarRoot">
29
- <img rdxAvatarImage
30
- src="https://images.unsplash.com/photo-1492633423870-43d1cd2775eb?&w=128&h=128&dpr=2&q=80"
31
- alt="Colm Tuite"
32
- class="AvatarImage" />
33
- <span rdxAvatarFallback class="AvatarFallback" rdxDelayMs="600">CT</span>
34
- </span>
35
-
36
- <span rdxAvatarRoot class="AvatarRoot">
37
- <img rdxAvatarImage
38
- class="AvatarImage"
39
- src="https://images.unsplash.com/photo-1511485977113-f34c92461ad9?ixlib=rb-1.2.1&w=128&h=128&dpr=2&q=80"
40
- alt="Pedro Duarte"
41
- />
42
- <span rdxAvatarFallback class="AvatarFallback" rdxDelayMs="600">
43
- JD
44
- </span>
45
- </span>
46
- <span rdxAvatarRoot class="AvatarRoot">
47
- <span rdxAvatarFallback class="AvatarFallback">PD</span>
48
- </span>
49
- </div>
50
- <style>
51
- .AvatarRoot {
52
- display: inline-flex;
53
- align-items: center;
54
- justify-content: center;
55
- vertical-align: middle;
56
- overflow: hidden;
57
- user-select: none;
58
- width: 45px;
59
- height: 45px;
60
- border-radius: 100%;
61
- background-color: var(--black-a3);
62
- }
63
-
64
- .AvatarImage {
65
- width: 100%;
66
- height: 100%;
67
- object-fit: cover;
68
- border-radius: inherit;
69
- }
70
-
71
- .AvatarFallback {
72
- width: 100%;
73
- height: 100%;
74
- display: flex;
75
- align-items: center;
76
- justify-content: center;
77
- background-color: white;
78
- color: var(--violet-11);
79
- font-size: 15px;
80
- line-height: 1;
81
- font-weight: 500;
82
- }
83
-
84
- </style>
85
- `
86
- })
87
- };
File without changes
@@ -1,46 +0,0 @@
1
- import { BooleanInput } from '@angular/cdk/coercion';
2
- import { booleanAttribute, Directive, ElementRef, EventEmitter, inject, input, Output } from '@angular/core';
3
-
4
- export type ButtonType = 'button' | 'submit' | 'reset';
5
-
6
- let nextId = 0;
7
-
8
- @Directive({
9
- selector: '[rdxButton]',
10
- standalone: true,
11
- host: {
12
- '[attr.id]': 'id()',
13
- '[attr.role]': 'type()',
14
- '[attr.disabled]': 'disabled() ? disabled() : null',
15
- '(click)': 'onClick($event)',
16
- '(blur)': 'onBlur()'
17
- }
18
- })
19
- export abstract class RdxButtonAbstractDirective {
20
- #elementRef = inject(ElementRef);
21
-
22
- readonly id = input<string>(`rdx-button-${nextId++}`);
23
-
24
- readonly type = input<ButtonType>('button');
25
-
26
- readonly isLoading = input<boolean, BooleanInput>(false, { transform: booleanAttribute });
27
-
28
- readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });
29
-
30
- @Output() onClickHandler = new EventEmitter<MouseEvent>();
31
-
32
- protected focused = false;
33
-
34
- protected onClick(event: MouseEvent) {
35
- this.onClickHandler.emit(event);
36
- this.focused = false;
37
- }
38
-
39
- protected onBlur() {
40
- this.focused = false;
41
- }
42
-
43
- get nativeElement() {
44
- return this.#elementRef.nativeElement;
45
- }
46
- }
@@ -1,5 +0,0 @@
1
- {
2
- "lib": {
3
- "entryFile": "index.ts"
4
- }
5
- }
@@ -1,26 +0,0 @@
1
- import { computed, Directive, input } from '@angular/core';
2
- import { injectCheckbox } from './checkbox.token';
3
-
4
- @Directive({
5
- standalone: true,
6
- selector: 'button[CheckboxButton]',
7
- host: {
8
- type: 'button',
9
- role: 'checkbox',
10
- tabindex: '-1',
11
- '[checked]': 'checkbox.checked',
12
- '[disabled]': 'checkbox.disabled',
13
- '[required]': 'checkbox.required',
14
- '[attr.id]': 'elementId()',
15
- '[attr.aria-checked]': 'checkbox.indeterminate ? "mixed" : checkbox.checked',
16
- '[attr.aria-required]': 'checkbox.required ? "" : null',
17
- '[attr.data-state]': 'checkbox.state',
18
- '[attr.data-disabled]': 'checkbox.disabled ? "" : null'
19
- }
20
- })
21
- export class RdxCheckboxButtonDirective {
22
- protected readonly checkbox = injectCheckbox();
23
-
24
- readonly id = input<string | null>(null);
25
- protected readonly elementId = computed(() => (this.id() ? this.id() : `rdx-checkbox-${this.id()}`));
26
- }
@@ -1,16 +0,0 @@
1
- import { Directive } from '@angular/core';
2
- import { injectCheckbox } from './checkbox.token';
3
-
4
- @Directive({
5
- selector: '[CheckboxIndicator]',
6
- standalone: true,
7
- host: {
8
- '[style.pointer-events]': '"none"',
9
- '[attr.aria-checked]': 'checkbox.indeterminate ? "mixed" : checkbox.checked',
10
- '[attr.data-state]': 'checkbox.state',
11
- '[attr.data-disabled]': 'checkbox.disabled ? "" : null'
12
- }
13
- })
14
- export class RdxCheckboxIndicatorDirective {
15
- protected readonly checkbox = injectCheckbox();
16
- }
@@ -1,36 +0,0 @@
1
- import { computed, Directive, input } from '@angular/core';
2
- import { injectCheckbox } from './checkbox.token';
3
-
4
- @Directive({
5
- standalone: true,
6
- selector: 'input[CheckboxInput]',
7
- host: {
8
- type: 'checkbox',
9
- tabindex: '-1',
10
- '[checked]': 'checkbox.checked',
11
- '[disabled]': 'checkbox.disabled',
12
- '[required]': 'checkbox.required',
13
- '[attr.id]': 'elementId()',
14
- '[attr.aria-hidden]': 'true',
15
- '[attr.aria-checked]': 'checkbox.indeterminate ? "mixed" : checkbox.checked',
16
- '[attr.aria-required]': 'checkbox.required ? "" : null',
17
- '[attr.data-state]': 'checkbox.state',
18
- '[attr.data-disabled]': 'checkbox.disabled ? "" : null',
19
- '[attr.value]': 'value()'
20
- }
21
- })
22
- export class RdxCheckboxInputDirective {
23
- protected readonly checkbox = injectCheckbox();
24
-
25
- readonly id = input<string>();
26
- protected readonly elementId = computed(() => (this.id() ? this.id() : `rdx-checkbox-${this.id()}`));
27
-
28
- protected readonly value = computed(() => {
29
- const state = this.checkbox.state;
30
- if (state === 'indeterminate') {
31
- return '';
32
- }
33
-
34
- return state ? 'on' : 'off';
35
- });
36
- }
@@ -1,146 +0,0 @@
1
- import { booleanAttribute, Directive, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';
2
- import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { RdxCheckboxToken } from './checkbox.token';
4
-
5
- export type CheckboxState = 'unchecked' | 'checked' | 'indeterminate';
6
-
7
- @Directive({
8
- selector: '[CheckboxRoot]',
9
- standalone: true,
10
- providers: [
11
- { provide: RdxCheckboxToken, useExisting: RdxCheckboxDirective },
12
- { provide: NG_VALUE_ACCESSOR, useExisting: RdxCheckboxDirective, multi: true }
13
- ],
14
- host: {
15
- '[disabled]': 'disabled',
16
- '[attr.data-disabled]': 'disabled ? "" : null',
17
- '[attr.data-state]': 'state',
18
-
19
- '(keydown)': 'onKeyDown($event)',
20
- '(click)': 'onClick($event)',
21
- '(blur)': 'onBlur()'
22
- }
23
- })
24
- export class RdxCheckboxDirective implements ControlValueAccessor, OnChanges {
25
- /**
26
- * The controlled checked state of the checkbox. Must be used in conjunction with onCheckedChange.
27
- */
28
- @Input({ transform: booleanAttribute }) checked = false;
29
-
30
- /**
31
- * Defines whether the checkbox is indeterminate.
32
- */
33
- @Input({ transform: booleanAttribute }) indeterminate = false;
34
-
35
- /**
36
- * Defines whether the checkbox is disabled.
37
- */
38
- @Input({ transform: booleanAttribute }) disabled = false;
39
-
40
- @Input({ transform: booleanAttribute }) required = false;
41
-
42
- /**
43
- * Event emitted when the checkbox checked state changes.
44
- */
45
- @Output() readonly checkedChange = new EventEmitter<boolean>();
46
-
47
- /**
48
- * Event emitted when the indeterminate state changes.
49
- */
50
- @Output() readonly indeterminateChange = new EventEmitter<boolean>();
51
-
52
- /**
53
- * Determine the state
54
- */
55
- get state(): CheckboxState {
56
- if (this.indeterminate) {
57
- return 'indeterminate';
58
- }
59
- return this.checked ? 'checked' : 'unchecked';
60
- }
61
-
62
- /**
63
- * Store the callback function that should be called when the checkbox checked state changes.
64
- * @internal
65
- */
66
- private onChange?: (checked: boolean) => void;
67
-
68
- /**
69
- * Store the callback function that should be called when the checkbox is blurred.
70
- * @internal
71
- */
72
- private onTouched?: () => void;
73
-
74
- protected onKeyDown(event: KeyboardEvent): void {
75
- // According to WAI ARIA, Checkboxes don't activate on enter keypress
76
- if (event.key === 'Enter') {
77
- event.preventDefault();
78
- }
79
- }
80
-
81
- protected onClick($event: MouseEvent): void {
82
- if (this.disabled) {
83
- return;
84
- }
85
-
86
- this.checked = this.indeterminate ? true : !this.checked;
87
- this.checkedChange.emit(this.checked);
88
- this.onChange?.(this.checked);
89
-
90
- if (this.indeterminate) {
91
- this.indeterminate = false;
92
- this.indeterminateChange.emit(this.indeterminate);
93
- }
94
-
95
- $event.preventDefault();
96
- }
97
-
98
- protected onBlur(): void {
99
- this.onTouched?.();
100
- }
101
-
102
- ngOnChanges(changes: SimpleChanges): void {
103
- if (changes['checked'] && !changes['checked'].isFirstChange()) {
104
- this.checkedChange.emit(this.checked);
105
- }
106
- if (changes['indeterminate'] && !changes['indeterminate'].isFirstChange()) {
107
- this.indeterminateChange.emit(this.indeterminate);
108
- }
109
- }
110
-
111
- /**
112
- * Sets the checked state of the checkbox.
113
- * @param checked The checked state of the checkbox.
114
- * @internal
115
- */
116
- writeValue(checked: boolean): void {
117
- this.checked = checked;
118
- }
119
-
120
- /**
121
- * Registers a callback function that should be called when the checkbox checked state changes.
122
- * @param fn The callback function.
123
- * @internal
124
- */
125
- registerOnChange(fn: (checked: boolean) => void): void {
126
- this.onChange = fn;
127
- }
128
-
129
- /**
130
- * Registers a callback function that should be called when the checkbox is blurred.
131
- * @param fn The callback function.
132
- * @internal
133
- */
134
- registerOnTouched(fn: () => void): void {
135
- this.onTouched = fn;
136
- }
137
-
138
- /**
139
- * Sets the disabled state of the checkbox.
140
- * @param isDisabled The disabled state of the checkbox.
141
- * @internal
142
- */
143
- setDisabledState(isDisabled: boolean): void {
144
- this.disabled = isDisabled;
145
- }
146
- }
@@ -1,8 +0,0 @@
1
- import { inject, InjectionToken } from '@angular/core';
2
- import type { RdxCheckboxDirective } from './checkbox.directive';
3
-
4
- export const RdxCheckboxToken = new InjectionToken<RdxCheckboxDirective>('RdxCheckboxToken');
5
-
6
- export function injectCheckbox(): RdxCheckboxDirective {
7
- return inject(RdxCheckboxToken);
8
- }