@radix-ng/primitives 0.12.0 → 0.12.2

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 (492) hide show
  1. package/README.md +6 -2
  2. package/accordion/src/accordion-content.directive.d.ts +11 -0
  3. package/accordion/src/accordion-header.directive.d.ts +7 -0
  4. package/accordion/src/accordion-item.directive.d.ts +82 -0
  5. package/accordion/src/accordion-root.directive.d.ts +93 -0
  6. package/accordion/src/accordion-trigger.directive.d.ts +15 -0
  7. package/alert-dialog/{index.ts → index.d.ts} +0 -1
  8. package/alert-dialog/src/alert-dialog-cancel.directive.d.ts +7 -0
  9. package/alert-dialog/src/alert-dialog-content.directive.d.ts +9 -0
  10. package/alert-dialog/src/alert-dialog-root.directive.d.ts +9 -0
  11. package/alert-dialog/src/alert-dialog-title.directive.d.ts +5 -0
  12. package/alert-dialog/src/alert-dialog-trigger.directive.d.ts +7 -0
  13. package/alert-dialog/src/alert-dialog.service.d.ts +14 -0
  14. package/avatar/src/avatar-fallback.directive.d.ts +28 -0
  15. package/avatar/src/avatar-image.directive.d.ts +21 -0
  16. package/avatar/src/avatar-root.directive.d.ts +21 -0
  17. package/avatar/src/avatar.config.d.ts +13 -0
  18. package/checkbox/src/checkbox-button.directive.d.ts +8 -0
  19. package/checkbox/src/checkbox-indicator.directive.d.ts +6 -0
  20. package/checkbox/src/checkbox-input.directive.d.ts +9 -0
  21. package/checkbox/src/checkbox.directive.d.ts +75 -0
  22. package/checkbox/src/checkbox.token.d.ts +4 -0
  23. package/collapsible/src/collapsible-content.directive.d.ts +17 -0
  24. package/collapsible/src/collapsible-content.token.d.ts +3 -0
  25. package/collapsible/src/collapsible-root.directive.d.ts +55 -0
  26. package/collapsible/src/collapsible-trigger.directive.d.ts +26 -0
  27. package/compodoc/documentation.json +13895 -0
  28. package/context-menu/src/context-menu-content.directive.d.ts +15 -0
  29. package/context-menu/src/context-menu-item-checkbox.directive.d.ts +9 -0
  30. package/context-menu/src/context-menu-item-indicator.directive.d.ts +7 -0
  31. package/context-menu/src/context-menu-item-radio-group.directive.d.ts +12 -0
  32. package/context-menu/src/context-menu-item-radio.directive.d.ts +19 -0
  33. package/context-menu/src/context-menu-item-selectable.d.ts +12 -0
  34. package/context-menu/src/context-menu-item.directive.d.ts +17 -0
  35. package/context-menu/src/context-menu-label.directive.d.ts +5 -0
  36. package/context-menu/src/context-menu-separator.directive.d.ts +6 -0
  37. package/context-menu/src/context-menu-trigger.directive.d.ts +31 -0
  38. package/dialog/index.d.ts +23 -0
  39. package/dialog/src/dialog-close.directive.d.ts +7 -0
  40. package/dialog/src/dialog-content.directive.d.ts +21 -0
  41. package/dialog/src/dialog-description.directive.d.ts +5 -0
  42. package/dialog/src/dialog-dismiss.directive.d.ts +7 -0
  43. package/dialog/src/dialog-ref.d.ts +37 -0
  44. package/dialog/src/dialog-title.directive.d.ts +5 -0
  45. package/dialog/src/dialog-trigger.directive.d.ts +16 -0
  46. package/dialog/src/{dialog.config.ts → dialog.config.d.ts} +17 -33
  47. package/dialog/src/dialog.injectors.d.ts +4 -0
  48. package/dialog/src/{dialog.providers.ts → dialog.providers.d.ts} +3 -11
  49. package/dialog/src/dialog.service.d.ts +26 -0
  50. package/dropdown-menu/src/dropdown-menu-content.directive.d.ts +15 -0
  51. package/dropdown-menu/src/dropdown-menu-item-checkbox.directive.d.ts +9 -0
  52. package/dropdown-menu/src/dropdown-menu-item-indicator.directive.d.ts +7 -0
  53. package/dropdown-menu/src/dropdown-menu-item-radio-group.directive.d.ts +12 -0
  54. package/dropdown-menu/src/dropdown-menu-item-radio.directive.d.ts +19 -0
  55. package/dropdown-menu/src/dropdown-menu-item-selectable.d.ts +12 -0
  56. package/dropdown-menu/src/dropdown-menu-item.directive.d.ts +17 -0
  57. package/dropdown-menu/src/dropdown-menu-label.directive.d.ts +5 -0
  58. package/dropdown-menu/src/dropdown-menu-separator.directive.d.ts +6 -0
  59. package/dropdown-menu/src/dropdown-menu-trigger.directive.d.ts +46 -0
  60. package/esm2022/accordion/index.mjs +6 -0
  61. package/esm2022/accordion/radix-ng-primitives-accordion.mjs +5 -0
  62. package/esm2022/accordion/src/accordion-content.directive.mjs +42 -0
  63. package/esm2022/accordion/src/accordion-header.directive.mjs +23 -0
  64. package/esm2022/accordion/src/accordion-item.directive.mjs +187 -0
  65. package/esm2022/accordion/src/accordion-root.directive.mjs +172 -0
  66. package/esm2022/accordion/src/accordion-trigger.directive.mjs +42 -0
  67. package/esm2022/alert-dialog/index.mjs +7 -0
  68. package/esm2022/alert-dialog/radix-ng-primitives-alert-dialog.mjs +5 -0
  69. package/esm2022/alert-dialog/src/alert-dialog-cancel.directive.mjs +24 -0
  70. package/esm2022/alert-dialog/src/alert-dialog-content.directive.mjs +34 -0
  71. package/esm2022/alert-dialog/src/alert-dialog-root.directive.mjs +24 -0
  72. package/esm2022/alert-dialog/src/alert-dialog-title.directive.mjs +14 -0
  73. package/esm2022/alert-dialog/src/alert-dialog-trigger.directive.mjs +24 -0
  74. package/esm2022/alert-dialog/src/alert-dialog.service.mjs +46 -0
  75. package/esm2022/avatar/index.mjs +5 -0
  76. package/esm2022/avatar/radix-ng-primitives-avatar.mjs +5 -0
  77. package/esm2022/avatar/src/avatar-fallback.directive.mjs +60 -0
  78. package/esm2022/avatar/src/avatar-image.directive.mjs +52 -0
  79. package/esm2022/avatar/src/avatar-root.directive.mjs +38 -0
  80. package/esm2022/avatar/src/avatar.config.mjs +17 -0
  81. package/esm2022/checkbox/index.mjs +6 -0
  82. package/esm2022/checkbox/radix-ng-primitives-checkbox.mjs +5 -0
  83. package/esm2022/checkbox/src/checkbox-button.directive.mjs +33 -0
  84. package/esm2022/checkbox/src/checkbox-indicator.directive.mjs +24 -0
  85. package/esm2022/checkbox/src/checkbox-input.directive.mjs +41 -0
  86. package/esm2022/checkbox/src/checkbox.directive.mjs +141 -0
  87. package/esm2022/checkbox/src/checkbox.token.mjs +6 -0
  88. package/esm2022/collapsible/index.mjs +4 -0
  89. package/esm2022/collapsible/radix-ng-primitives-collapsible.mjs +5 -0
  90. package/esm2022/collapsible/src/collapsible-content.directive.mjs +45 -0
  91. package/esm2022/collapsible/src/collapsible-content.token.mjs +3 -0
  92. package/esm2022/collapsible/src/collapsible-root.directive.mjs +118 -0
  93. package/esm2022/collapsible/src/collapsible-trigger.directive.mjs +49 -0
  94. package/esm2022/context-menu/index.mjs +11 -0
  95. package/esm2022/context-menu/radix-ng-primitives-context-menu.mjs +5 -0
  96. package/esm2022/context-menu/src/context-menu-content.directive.mjs +56 -0
  97. package/esm2022/context-menu/src/context-menu-item-checkbox.directive.mjs +39 -0
  98. package/esm2022/context-menu/src/context-menu-item-indicator.directive.mjs +22 -0
  99. package/esm2022/context-menu/src/context-menu-item-radio-group.directive.mjs +37 -0
  100. package/esm2022/context-menu/src/context-menu-item-radio.directive.mjs +67 -0
  101. package/esm2022/context-menu/src/context-menu-item-selectable.mjs +31 -0
  102. package/esm2022/context-menu/src/context-menu-item.directive.mjs +70 -0
  103. package/esm2022/context-menu/src/context-menu-label.directive.mjs +14 -0
  104. package/esm2022/context-menu/src/context-menu-separator.directive.mjs +21 -0
  105. package/esm2022/context-menu/src/context-menu-trigger.directive.mjs +92 -0
  106. package/esm2022/dialog/index.mjs +47 -0
  107. package/esm2022/dialog/radix-ng-primitives-dialog.mjs +5 -0
  108. package/esm2022/dialog/src/dialog-close.directive.mjs +25 -0
  109. package/esm2022/dialog/src/dialog-content.directive.mjs +46 -0
  110. package/esm2022/dialog/src/dialog-description.directive.mjs +14 -0
  111. package/esm2022/dialog/src/dialog-dismiss.directive.mjs +25 -0
  112. package/esm2022/dialog/src/dialog-ref.mjs +46 -0
  113. package/esm2022/dialog/src/dialog-title.directive.mjs +14 -0
  114. package/esm2022/dialog/src/dialog-trigger.directive.mjs +54 -0
  115. package/esm2022/dialog/src/dialog.config.mjs +6 -0
  116. package/esm2022/dialog/src/dialog.injectors.mjs +10 -0
  117. package/esm2022/dialog/src/dialog.providers.mjs +26 -0
  118. package/esm2022/dialog/src/dialog.service.mjs +87 -0
  119. package/esm2022/dropdown-menu/index.mjs +11 -0
  120. package/esm2022/dropdown-menu/radix-ng-primitives-dropdown-menu.mjs +5 -0
  121. package/esm2022/dropdown-menu/src/dropdown-menu-content.directive.mjs +56 -0
  122. package/esm2022/dropdown-menu/src/dropdown-menu-item-checkbox.directive.mjs +39 -0
  123. package/esm2022/dropdown-menu/src/dropdown-menu-item-indicator.directive.mjs +22 -0
  124. package/esm2022/dropdown-menu/src/dropdown-menu-item-radio-group.directive.mjs +37 -0
  125. package/esm2022/dropdown-menu/src/dropdown-menu-item-radio.directive.mjs +67 -0
  126. package/esm2022/dropdown-menu/src/dropdown-menu-item-selectable.mjs +31 -0
  127. package/esm2022/dropdown-menu/src/dropdown-menu-item.directive.mjs +71 -0
  128. package/esm2022/dropdown-menu/src/dropdown-menu-label.directive.mjs +14 -0
  129. package/esm2022/dropdown-menu/src/dropdown-menu-separator.directive.mjs +21 -0
  130. package/esm2022/dropdown-menu/src/dropdown-menu-trigger.directive.mjs +179 -0
  131. package/esm2022/index.mjs +2 -0
  132. package/esm2022/label/index.mjs +2 -0
  133. package/esm2022/label/radix-ng-primitives-label.mjs +5 -0
  134. package/esm2022/label/src/label.directive.mjs +59 -0
  135. package/esm2022/menu/index.mjs +45 -0
  136. package/esm2022/menu/radix-ng-primitives-menu.mjs +5 -0
  137. package/esm2022/menu/src/menu-content.directive.mjs +17 -0
  138. package/esm2022/menu/src/menu-directive.mjs +18 -0
  139. package/esm2022/menu/src/menu-group.directive.mjs +20 -0
  140. package/esm2022/menu/src/menu-item.directive.mjs +46 -0
  141. package/esm2022/menu/src/menu-label.directive.mjs +14 -0
  142. package/esm2022/menu/src/menu-separator.directive.mjs +21 -0
  143. package/esm2022/menubar/index.mjs +60 -0
  144. package/esm2022/menubar/radix-ng-primitives-menubar.mjs +5 -0
  145. package/esm2022/menubar/src/menubar-content.directive.mjs +17 -0
  146. package/esm2022/menubar/src/menubar-item-checkbox.directive.mjs +34 -0
  147. package/esm2022/menubar/src/menubar-item-indicator.directive.mjs +17 -0
  148. package/esm2022/menubar/src/menubar-item-radio.directive.mjs +35 -0
  149. package/esm2022/menubar/src/menubar-item.directive.mjs +20 -0
  150. package/esm2022/menubar/src/menubar-radio-group.directive.mjs +17 -0
  151. package/esm2022/menubar/src/menubar-root.directive.mjs +24 -0
  152. package/esm2022/menubar/src/menubar-separator.directive.mjs +17 -0
  153. package/esm2022/menubar/src/menubar-trigger.directive.mjs +45 -0
  154. package/esm2022/progress/index.mjs +3 -0
  155. package/esm2022/progress/radix-ng-primitives-progress.mjs +5 -0
  156. package/esm2022/progress/src/progress-indicator.directive.mjs +34 -0
  157. package/esm2022/progress/src/progress-root.directive.mjs +127 -0
  158. package/esm2022/radio/index.mjs +4 -0
  159. package/esm2022/radio/radix-ng-primitives-radio.mjs +5 -0
  160. package/esm2022/radio/src/radio-indicator.directive.mjs +25 -0
  161. package/esm2022/radio/src/radio-item.directive.mjs +70 -0
  162. package/esm2022/radio/src/radio-root.directive.mjs +194 -0
  163. package/esm2022/radio/src/radio-tokens.mjs +3 -0
  164. package/esm2022/radix-ng-primitives.mjs +5 -0
  165. package/esm2022/separator/index.mjs +2 -0
  166. package/esm2022/separator/radix-ng-primitives-separator.mjs +5 -0
  167. package/esm2022/separator/src/separator.directive.mjs +32 -0
  168. package/esm2022/switch/index.mjs +30 -0
  169. package/esm2022/switch/radix-ng-primitives-switch.mjs +5 -0
  170. package/esm2022/switch/src/switch-input.directive.mjs +32 -0
  171. package/esm2022/switch/src/switch-root.directive.mjs +95 -0
  172. package/esm2022/switch/src/switch-thumb.directive.mjs +23 -0
  173. package/esm2022/tabs/index.mjs +38 -0
  174. package/esm2022/tabs/radix-ng-primitives-tabs.mjs +5 -0
  175. package/esm2022/tabs/src/tabs-content.directive.mjs +29 -0
  176. package/esm2022/tabs/src/tabs-context.service.mjs +43 -0
  177. package/esm2022/tabs/src/tabs-list.directive.mjs +23 -0
  178. package/esm2022/tabs/src/tabs-root.directive.mjs +54 -0
  179. package/esm2022/tabs/src/tabs-trigger.directive.mjs +52 -0
  180. package/esm2022/toggle/index.mjs +2 -0
  181. package/esm2022/toggle/radix-ng-primitives-toggle.mjs +5 -0
  182. package/esm2022/toggle/src/toggle.directive.mjs +39 -0
  183. package/esm2022/toggle-group/index.mjs +6 -0
  184. package/esm2022/toggle-group/radix-ng-primitives-toggle-group.mjs +5 -0
  185. package/esm2022/toggle-group/src/toggle-group-button.directive.mjs +75 -0
  186. package/esm2022/toggle-group/src/toggle-group-button.token.mjs +6 -0
  187. package/esm2022/toggle-group/src/toggle-group-multi.directive.mjs +143 -0
  188. package/esm2022/toggle-group/src/toggle-group.directive.mjs +134 -0
  189. package/esm2022/toggle-group/src/toggle-group.token.mjs +6 -0
  190. package/fesm2022/radix-ng-primitives-accordion.mjs +455 -0
  191. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -0
  192. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +159 -0
  193. package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -0
  194. package/fesm2022/radix-ng-primitives-avatar.mjs +166 -0
  195. package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -0
  196. package/fesm2022/radix-ng-primitives-checkbox.mjs +241 -0
  197. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -0
  198. package/fesm2022/radix-ng-primitives-collapsible.mjs +213 -0
  199. package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -0
  200. package/fesm2022/radix-ng-primitives-context-menu.mjs +420 -0
  201. package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -0
  202. package/fesm2022/radix-ng-primitives-dialog.mjs +361 -0
  203. package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -0
  204. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +509 -0
  205. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +1 -0
  206. package/fesm2022/radix-ng-primitives-label.mjs +66 -0
  207. package/fesm2022/radix-ng-primitives-label.mjs.map +1 -0
  208. package/fesm2022/radix-ng-primitives-menu.mjs +158 -0
  209. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -0
  210. package/fesm2022/radix-ng-primitives-menubar.mjs +245 -0
  211. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -0
  212. package/fesm2022/radix-ng-primitives-progress.mjs +165 -0
  213. package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -0
  214. package/fesm2022/radix-ng-primitives-radio.mjs +289 -0
  215. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -0
  216. package/fesm2022/radix-ng-primitives-separator.mjs +39 -0
  217. package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -0
  218. package/fesm2022/radix-ng-primitives-switch.mjs +173 -0
  219. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -0
  220. package/fesm2022/radix-ng-primitives-tabs.mjs +222 -0
  221. package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -0
  222. package/fesm2022/radix-ng-primitives-toggle-group.mjs +358 -0
  223. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -0
  224. package/fesm2022/radix-ng-primitives-toggle.mjs +46 -0
  225. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -0
  226. package/fesm2022/radix-ng-primitives.mjs +4 -0
  227. package/fesm2022/radix-ng-primitives.mjs.map +1 -0
  228. package/label/src/label.directive.d.ts +29 -0
  229. package/menu/index.d.ts +18 -0
  230. package/menu/src/menu-content.directive.d.ts +6 -0
  231. package/menu/src/menu-directive.d.ts +6 -0
  232. package/menu/src/menu-group.directive.d.ts +6 -0
  233. package/menu/src/menu-item.directive.d.ts +12 -0
  234. package/menu/src/menu-label.directive.d.ts +5 -0
  235. package/menu/src/menu-separator.directive.d.ts +6 -0
  236. package/menubar/index.d.ts +24 -0
  237. package/menubar/src/menubar-content.directive.d.ts +6 -0
  238. package/menubar/src/menubar-item-checkbox.directive.d.ts +14 -0
  239. package/menubar/src/menubar-item-indicator.directive.d.ts +5 -0
  240. package/menubar/src/menubar-item-radio.directive.d.ts +14 -0
  241. package/menubar/src/menubar-item.directive.d.ts +8 -0
  242. package/menubar/src/menubar-radio-group.directive.d.ts +6 -0
  243. package/menubar/src/menubar-root.directive.d.ts +7 -0
  244. package/menubar/src/menubar-separator.directive.d.ts +6 -0
  245. package/menubar/src/menubar-trigger.directive.d.ts +11 -0
  246. package/package.json +124 -4
  247. package/progress/{index.ts → index.d.ts} +0 -1
  248. package/progress/src/progress-indicator.directive.d.ts +16 -0
  249. package/progress/src/progress-root.directive.d.ts +63 -0
  250. package/radio/{index.ts → index.d.ts} +0 -1
  251. package/radio/src/radio-indicator.directive.d.ts +9 -0
  252. package/radio/src/radio-item.directive.d.ts +21 -0
  253. package/radio/src/radio-root.directive.d.ts +72 -0
  254. package/radio/src/{radio-tokens.ts → radio-tokens.d.ts} +1 -5
  255. package/separator/src/separator.directive.d.ts +22 -0
  256. package/switch/index.d.ts +13 -0
  257. package/switch/src/switch-input.directive.d.ts +6 -0
  258. package/switch/src/switch-root.directive.d.ts +51 -0
  259. package/switch/src/switch-thumb.directive.d.ts +6 -0
  260. package/tabs/index.d.ts +15 -0
  261. package/tabs/src/tabs-content.directive.d.ts +8 -0
  262. package/tabs/src/tabs-context.service.d.ts +22 -0
  263. package/tabs/src/tabs-list.directive.d.ts +6 -0
  264. package/tabs/src/tabs-root.directive.d.ts +37 -0
  265. package/tabs/src/tabs-trigger.directive.d.ts +19 -0
  266. package/toggle/src/toggle.directive.d.ts +30 -0
  267. package/toggle-group/src/toggle-group-button.directive.d.ts +39 -0
  268. package/toggle-group/src/toggle-group-button.token.d.ts +4 -0
  269. package/toggle-group/src/toggle-group-multi.directive.d.ts +93 -0
  270. package/toggle-group/src/toggle-group.directive.d.ts +84 -0
  271. package/toggle-group/src/toggle-group.token.d.ts +5 -0
  272. package/.compodocrc.json +0 -12
  273. package/CHANGELOG.md +0 -182
  274. package/accordion/__tests__/accordion-content.directive.spec.ts +0 -8
  275. package/accordion/__tests__/accordion-header.directive.spec.ts +0 -8
  276. package/accordion/__tests__/accordion-item.directive.spec.ts +0 -8
  277. package/accordion/__tests__/accordion-root.directive.spec.ts +0 -8
  278. package/accordion/__tests__/accordion-trigger.directive.spec.ts +0 -8
  279. package/accordion/ng-package.json +0 -5
  280. package/accordion/src/accordion-content.directive.ts +0 -46
  281. package/accordion/src/accordion-header.directive.ts +0 -15
  282. package/accordion/src/accordion-item.directive.ts +0 -216
  283. package/accordion/src/accordion-root.directive.ts +0 -205
  284. package/accordion/src/accordion-trigger.directive.ts +0 -37
  285. package/accordion/stories/accordion.docs.mdx +0 -77
  286. package/accordion/stories/accordion.stories.ts +0 -340
  287. package/alert-dialog/ng-package.json +0 -5
  288. package/alert-dialog/src/alert-dialog-cancel.directive.ts +0 -17
  289. package/alert-dialog/src/alert-dialog-content.directive.ts +0 -24
  290. package/alert-dialog/src/alert-dialog-root.directive.ts +0 -15
  291. package/alert-dialog/src/alert-dialog-title.directive.ts +0 -7
  292. package/alert-dialog/src/alert-dialog-trigger.directive.ts +0 -17
  293. package/alert-dialog/src/alert-dialog.service.ts +0 -51
  294. package/alert-dialog/stories/alert-dialog.stories.ts +0 -139
  295. package/avatar/__tests__/avatar-fallback.directive.spec.ts +0 -31
  296. package/avatar/__tests__/avatar-image.directive.spec.ts +0 -36
  297. package/avatar/ng-package.json +0 -5
  298. package/avatar/src/avatar-fallback.directive.ts +0 -62
  299. package/avatar/src/avatar-image.directive.ts +0 -55
  300. package/avatar/src/avatar-root.directive.ts +0 -35
  301. package/avatar/src/avatar.config.ts +0 -29
  302. package/avatar/stories/avatar.docs.mdx +0 -37
  303. package/avatar/stories/avatar.stories.ts +0 -87
  304. package/button/__tests__/.gitkeep +0 -0
  305. package/button/src/button-abstract.directive.ts +0 -46
  306. package/checkbox/ng-package.json +0 -5
  307. package/checkbox/src/checkbox-button.directive.ts +0 -26
  308. package/checkbox/src/checkbox-indicator.directive.ts +0 -16
  309. package/checkbox/src/checkbox-input.directive.ts +0 -36
  310. package/checkbox/src/checkbox.directive.ts +0 -146
  311. package/checkbox/src/checkbox.token.ts +0 -8
  312. package/checkbox/stories/checkbox-group.component.ts +0 -87
  313. package/checkbox/stories/checkbox-group.styles.scss +0 -49
  314. package/checkbox/stories/checkbox-indeterminate.component.ts +0 -52
  315. package/checkbox/stories/checkbox.docs.mdx +0 -58
  316. package/checkbox/stories/checkbox.stories.ts +0 -105
  317. package/collapsible/__tests__/collapsible-content.directive.spec.ts +0 -30
  318. package/collapsible/__tests__/collapsible-root.directive.spec.ts +0 -27
  319. package/collapsible/__tests__/collapsible-trigger.directive.spec.ts +0 -30
  320. package/collapsible/ng-package.json +0 -5
  321. package/collapsible/src/collapsible-content.directive.ts +0 -34
  322. package/collapsible/src/collapsible-content.token.ts +0 -6
  323. package/collapsible/src/collapsible-root.directive.ts +0 -120
  324. package/collapsible/src/collapsible-trigger.directive.ts +0 -44
  325. package/collapsible/stories/collapsible-animation.component.ts +0 -116
  326. package/collapsible/stories/collapsible-external-triggering.component.ts +0 -86
  327. package/collapsible/stories/collapsible.docs.mdx +0 -53
  328. package/collapsible/stories/collapsible.stories.ts +0 -151
  329. package/context-menu/ng-package.json +0 -5
  330. package/context-menu/src/context-menu-content.directive.ts +0 -47
  331. package/context-menu/src/context-menu-item-checkbox.directive.ts +0 -30
  332. package/context-menu/src/context-menu-item-indicator.directive.ts +0 -14
  333. package/context-menu/src/context-menu-item-radio-group.directive.ts +0 -31
  334. package/context-menu/src/context-menu-item-radio.directive.ts +0 -69
  335. package/context-menu/src/context-menu-item-selectable.ts +0 -18
  336. package/context-menu/src/context-menu-item.directive.ts +0 -65
  337. package/context-menu/src/context-menu-label.directive.ts +0 -7
  338. package/context-menu/src/context-menu-separator.directive.ts +0 -13
  339. package/context-menu/src/context-menu-trigger.directive.ts +0 -82
  340. package/context-menu/stories/context-menu.docs.mdx +0 -23
  341. package/context-menu/stories/context-menu.stories.ts +0 -253
  342. package/core/index.ts +0 -3
  343. package/core/src/accessor/provide-value-accessor.ts +0 -20
  344. package/core/src/auto-focus.directive.ts +0 -81
  345. package/core/src/inject-ng-control.ts +0 -28
  346. package/core/src/mount.ts +0 -27
  347. package/dialog/__tests__/dialog-content.directive.spec.ts +0 -77
  348. package/dialog/__tests__/dialog-trigger.directive.spec.ts +0 -85
  349. package/dialog/index.ts +0 -31
  350. package/dialog/ng-package.json +0 -5
  351. package/dialog/src/dialog-close.directive.ts +0 -18
  352. package/dialog/src/dialog-content.directive.ts +0 -45
  353. package/dialog/src/dialog-description.directive.ts +0 -7
  354. package/dialog/src/dialog-dismiss.directive.ts +0 -18
  355. package/dialog/src/dialog-ref.ts +0 -70
  356. package/dialog/src/dialog-title.directive.ts +0 -7
  357. package/dialog/src/dialog-trigger.directive.ts +0 -52
  358. package/dialog/src/dialog.injectors.ts +0 -12
  359. package/dialog/src/dialog.service.ts +0 -94
  360. package/dialog/stories/dialog.docs.mdx +0 -32
  361. package/dialog/stories/dialog.stories.ts +0 -233
  362. package/dropdown-menu/ng-package.json +0 -5
  363. package/dropdown-menu/src/dropdown-menu-content.directive.ts +0 -47
  364. package/dropdown-menu/src/dropdown-menu-item-checkbox.directive.ts +0 -30
  365. package/dropdown-menu/src/dropdown-menu-item-indicator.directive.ts +0 -14
  366. package/dropdown-menu/src/dropdown-menu-item-radio-group.directive.ts +0 -31
  367. package/dropdown-menu/src/dropdown-menu-item-radio.directive.ts +0 -72
  368. package/dropdown-menu/src/dropdown-menu-item-selectable.ts +0 -18
  369. package/dropdown-menu/src/dropdown-menu-item.directive.ts +0 -66
  370. package/dropdown-menu/src/dropdown-menu-label.directive.ts +0 -7
  371. package/dropdown-menu/src/dropdown-menu-separator.directive.ts +0 -13
  372. package/dropdown-menu/src/dropdown-menu-trigger.directive.ts +0 -185
  373. package/dropdown-menu/stories/dropdown-menu-item-checkbox.component.ts +0 -104
  374. package/dropdown-menu/stories/dropdown-menu-item-checkbox.styles.scss +0 -106
  375. package/dropdown-menu/stories/dropdown-menu-item-radio.component.ts +0 -95
  376. package/dropdown-menu/stories/dropdown-menu-item-radio.styles.scss +0 -106
  377. package/dropdown-menu/stories/dropdown.docs.mdx +0 -27
  378. package/dropdown-menu/stories/dropdown.stories.ts +0 -212
  379. package/form-field/index.ts +0 -1
  380. package/form-field/src/.gitkeep +0 -0
  381. package/jest.config.ts +0 -21
  382. package/label/__tests__/label-root.directive.spec.ts +0 -99
  383. package/label/ng-package.json +0 -5
  384. package/label/src/label.directive.ts +0 -58
  385. package/label/stories/label.docs.mdx +0 -40
  386. package/label/stories/label.stories.ts +0 -76
  387. package/menu/index.ts +0 -29
  388. package/menu/ng-package.json +0 -5
  389. package/menu/src/menu-content.directive.ts +0 -9
  390. package/menu/src/menu-directive.ts +0 -10
  391. package/menu/src/menu-group.directive.ts +0 -12
  392. package/menu/src/menu-item.directive.ts +0 -44
  393. package/menu/src/menu-label.directive.ts +0 -7
  394. package/menu/src/menu-separator.directive.ts +0 -13
  395. package/menubar/index.ts +0 -38
  396. package/menubar/ng-package.json +0 -5
  397. package/menubar/src/menubar-content.directive.ts +0 -9
  398. package/menubar/src/menubar-item-checkbox.directive.ts +0 -32
  399. package/menubar/src/menubar-item-indicator.directive.ts +0 -10
  400. package/menubar/src/menubar-item-radio.directive.ts +0 -33
  401. package/menubar/src/menubar-item.directive.ts +0 -12
  402. package/menubar/src/menubar-radio-group.directive.ts +0 -9
  403. package/menubar/src/menubar-root.directive.ts +0 -15
  404. package/menubar/src/menubar-separator.directive.ts +0 -9
  405. package/menubar/src/menubar-trigger.directive.ts +0 -40
  406. package/menubar/stories/menubar.stories.ts +0 -229
  407. package/ng-package.json +0 -8
  408. package/portal/stories/portal.docs.mdx +0 -85
  409. package/presence/__test__/presence-test.component.ts +0 -51
  410. package/presence/__test__/presence.spec.ts +0 -50
  411. package/presence/index.ts +0 -4
  412. package/presence/src/presence.ts +0 -119
  413. package/presence/src/transitions/transition.collapse.ts +0 -99
  414. package/presence/src/transitions/transition.toast.ts +0 -27
  415. package/presence/src/types.ts +0 -20
  416. package/presence/src/utils.ts +0 -63
  417. package/presence/stories/presence-story.componen.ts +0 -69
  418. package/presence/stories/presence.docs.mdx +0 -40
  419. package/presence/stories/presence.stories.ts +0 -29
  420. package/progress/__test__/progress.spec.ts +0 -55
  421. package/progress/ng-package.json +0 -5
  422. package/progress/src/progress-indicator.directive.ts +0 -26
  423. package/progress/src/progress-root.directive.ts +0 -134
  424. package/progress/stories/progress.docs.mdx +0 -65
  425. package/progress/stories/progress.stories.ts +0 -66
  426. package/project.json +0 -39
  427. package/radio/ng-package.json +0 -5
  428. package/radio/src/radio-indicator.directive.ts +0 -17
  429. package/radio/src/radio-item.directive.ts +0 -68
  430. package/radio/src/radio-root.directive.ts +0 -207
  431. package/radio/stories/radio-group.component.ts +0 -39
  432. package/radio/stories/radio-group.styles.scss +0 -70
  433. package/radio/stories/radio.docs.mdx +0 -68
  434. package/radio/stories/radio.stories.ts +0 -155
  435. package/separator/__tests__/separator.directive.spec.ts +0 -58
  436. package/separator/ng-package.json +0 -5
  437. package/separator/src/separator.directive.ts +0 -35
  438. package/separator/stories/separator.docs.mdx +0 -37
  439. package/separator/stories/separator.stories.ts +0 -82
  440. package/slider/src/slider-input.directive.ts +0 -0
  441. package/slider/src/slider-thumb.directives.ts +0 -60
  442. package/slider/src/slider-track.directive.ts +0 -11
  443. package/slider/src/slider.directive.ts +0 -59
  444. package/slider/src/slider.types.ts +0 -4
  445. package/switch/index.ts +0 -22
  446. package/switch/ng-package.json +0 -5
  447. package/switch/src/switch-input.directive.ts +0 -24
  448. package/switch/src/switch-root.directive.ts +0 -127
  449. package/switch/src/switch-thumb.directive.ts +0 -15
  450. package/switch/stories/switch.docs.mdx +0 -83
  451. package/switch/stories/switch.stories.ts +0 -149
  452. package/tabs/__tests__/tabs-context.service.spec.ts +0 -35
  453. package/tabs/index.ts +0 -26
  454. package/tabs/ng-package.json +0 -5
  455. package/tabs/src/tabs-content.directive.ts +0 -23
  456. package/tabs/src/tabs-context.service.ts +0 -43
  457. package/tabs/src/tabs-list.directive.ts +0 -21
  458. package/tabs/src/tabs-root.directive.ts +0 -70
  459. package/tabs/src/tabs-trigger.directive.ts +0 -55
  460. package/tabs/stories/tabs.stories.ts +0 -213
  461. package/test-setup.ts +0 -1
  462. package/toggle/__tests__/toggle.directive.spec.ts +0 -87
  463. package/toggle/ng-package.json +0 -5
  464. package/toggle/src/toggle.directive.ts +0 -49
  465. package/toggle/stories/toggle.docs.mdx +0 -60
  466. package/toggle/stories/toggle.stories.ts +0 -84
  467. package/toggle-group/ng-package.json +0 -5
  468. package/toggle-group/src/toggle-group-button.directive.ts +0 -73
  469. package/toggle-group/src/toggle-group-button.token.ts +0 -8
  470. package/toggle-group/src/toggle-group-multi.directive.ts +0 -158
  471. package/toggle-group/src/toggle-group.directive.ts +0 -148
  472. package/toggle-group/src/toggle-group.token.ts +0 -11
  473. package/toggle-group/stories/toggle-group.docs.mdx +0 -87
  474. package/toggle-group/stories/toggle-group.stories.ts +0 -95
  475. package/tsconfig.doc.json +0 -11
  476. package/tsconfig.json +0 -29
  477. package/tsconfig.lib.json +0 -19
  478. package/tsconfig.lib.prod.json +0 -12
  479. package/tsconfig.spec.json +0 -11
  480. package/visually-hidden/README.md +0 -3
  481. package/visually-hidden/stories/visually-hidden.docs.mdx +0 -36
  482. /package/accordion/{index.ts → index.d.ts} +0 -0
  483. /package/avatar/{index.ts → index.d.ts} +0 -0
  484. /package/checkbox/{index.ts → index.d.ts} +0 -0
  485. /package/collapsible/{index.ts → index.d.ts} +0 -0
  486. /package/context-menu/{index.ts → index.d.ts} +0 -0
  487. /package/dropdown-menu/{index.ts → index.d.ts} +0 -0
  488. /package/{index.ts → index.d.ts} +0 -0
  489. /package/label/{index.ts → index.d.ts} +0 -0
  490. /package/separator/{index.ts → index.d.ts} +0 -0
  491. /package/toggle/{index.ts → index.d.ts} +0 -0
  492. /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
- }