@cerberus-design/react 0.15.0 → 0.16.0-next-feeb186

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 (550) hide show
  1. package/build/legacy/_tsup-dts-rollup.d.cts +1345 -319
  2. package/build/legacy/components/Accordion.cjs.map +1 -1
  3. package/build/legacy/components/AccordionItemGroup.cjs.map +1 -1
  4. package/build/legacy/components/DatePicker.client.cjs +63 -77
  5. package/build/legacy/components/DatePicker.client.cjs.map +1 -1
  6. package/build/legacy/components/FileStatus.cjs +126 -79
  7. package/build/legacy/components/FileStatus.cjs.map +1 -1
  8. package/build/legacy/components/Legend.cjs +10 -22
  9. package/build/legacy/components/Legend.cjs.map +1 -1
  10. package/build/legacy/components/button/button.cjs +154 -0
  11. package/build/legacy/components/button/button.cjs.map +1 -0
  12. package/build/legacy/components/button/index.cjs +163 -0
  13. package/build/legacy/components/button/index.cjs.map +1 -0
  14. package/build/legacy/components/button/parts.cjs +159 -0
  15. package/build/legacy/components/button/parts.cjs.map +1 -0
  16. package/build/legacy/components/checkbox/checkbox-icon.cjs +121 -0
  17. package/build/legacy/components/checkbox/checkbox-icon.cjs.map +1 -0
  18. package/build/legacy/components/checkbox/checkbox.cjs +165 -0
  19. package/build/legacy/components/checkbox/checkbox.cjs.map +1 -0
  20. package/build/legacy/components/checkbox/index.cjs +179 -0
  21. package/build/legacy/components/checkbox/index.cjs.map +1 -0
  22. package/build/legacy/components/checkbox/parts.cjs +89 -0
  23. package/build/legacy/components/checkbox/parts.cjs.map +1 -0
  24. package/build/legacy/components/checkbox/primitives.cjs +87 -0
  25. package/build/legacy/components/checkbox/primitives.cjs.map +1 -0
  26. package/build/legacy/components/cta-dialog/context.cjs +33 -0
  27. package/build/legacy/components/cta-dialog/context.cjs.map +1 -0
  28. package/build/legacy/components/cta-dialog/index.cjs +433 -0
  29. package/build/legacy/components/cta-dialog/index.cjs.map +1 -0
  30. package/build/legacy/{context/cta-modal.cjs → components/cta-dialog/provider.cjs} +175 -128
  31. package/build/legacy/components/cta-dialog/provider.cjs.map +1 -0
  32. package/build/legacy/components/cta-dialog/trigger-item.cjs +99 -0
  33. package/build/legacy/components/cta-dialog/trigger-item.cjs.map +1 -0
  34. package/build/legacy/components/cta-dialog/utils.cjs +47 -0
  35. package/build/legacy/components/cta-dialog/utils.cjs.map +1 -0
  36. package/build/legacy/components/{FieldMessage.cjs → deprecated/FieldMessage.cjs} +4 -17
  37. package/build/legacy/components/deprecated/FieldMessage.cjs.map +1 -0
  38. package/build/legacy/components/{FieldsetLabel.cjs → deprecated/FieldsetLabel.cjs} +1 -1
  39. package/build/legacy/components/deprecated/FieldsetLabel.cjs.map +1 -0
  40. package/build/legacy/components/{Textarea.cjs → deprecated/Label.cjs} +24 -36
  41. package/build/legacy/components/deprecated/Label.cjs.map +1 -0
  42. package/build/legacy/components/{Modal.cjs → deprecated/Modal.cjs} +1 -1
  43. package/build/legacy/components/deprecated/Modal.cjs.map +1 -0
  44. package/build/legacy/components/{ModalDescription.cjs → deprecated/ModalDescription.cjs} +1 -1
  45. package/build/legacy/components/deprecated/ModalDescription.cjs.map +1 -0
  46. package/build/legacy/components/{ModalHeader.cjs → deprecated/ModalHeader.cjs} +1 -1
  47. package/build/legacy/components/deprecated/ModalHeader.cjs.map +1 -0
  48. package/build/legacy/components/{ModalHeading.cjs → deprecated/ModalHeading.cjs} +1 -1
  49. package/build/legacy/components/deprecated/ModalHeading.cjs.map +1 -0
  50. package/build/legacy/components/{NavMenuLink.cjs → deprecated/NavMenuLink.cjs} +2 -2
  51. package/build/legacy/components/deprecated/NavMenuLink.cjs.map +1 -0
  52. package/build/legacy/components/{NavMenuList.cjs → deprecated/NavMenuList.cjs} +2 -2
  53. package/build/legacy/components/deprecated/NavMenuList.cjs.map +1 -0
  54. package/build/legacy/components/{NavMenuTrigger.cjs → deprecated/NavMenuTrigger.cjs} +2 -2
  55. package/build/legacy/components/deprecated/NavMenuTrigger.cjs.map +1 -0
  56. package/build/legacy/components/field/field.cjs +130 -0
  57. package/build/legacy/components/field/field.cjs.map +1 -0
  58. package/build/legacy/components/field/index.cjs +267 -0
  59. package/build/legacy/components/field/index.cjs.map +1 -0
  60. package/build/legacy/components/field/parts.cjs +188 -0
  61. package/build/legacy/components/field/parts.cjs.map +1 -0
  62. package/build/legacy/components/field/primitives.cjs +191 -0
  63. package/build/legacy/components/field/primitives.cjs.map +1 -0
  64. package/build/legacy/components/{Button.cjs → field/start-indicator.cjs} +14 -19
  65. package/build/legacy/components/field/start-indicator.cjs.map +1 -0
  66. package/build/legacy/components/field/status-indicator.cjs +78 -0
  67. package/build/legacy/components/field/status-indicator.cjs.map +1 -0
  68. package/build/legacy/components/fieldset/fieldset.cjs +116 -0
  69. package/build/legacy/components/fieldset/fieldset.cjs.map +1 -0
  70. package/build/legacy/components/fieldset/index.cjs +126 -0
  71. package/build/legacy/components/fieldset/index.cjs.map +1 -0
  72. package/build/legacy/components/fieldset/parts.cjs +80 -0
  73. package/build/legacy/components/fieldset/parts.cjs.map +1 -0
  74. package/build/legacy/components/fieldset/primitives.cjs +76 -0
  75. package/build/legacy/components/fieldset/primitives.cjs.map +1 -0
  76. package/build/legacy/components/for.cjs +37 -0
  77. package/build/legacy/components/for.cjs.map +1 -0
  78. package/build/legacy/components/radio/index.cjs +143 -0
  79. package/build/legacy/components/radio/index.cjs.map +1 -0
  80. package/build/legacy/components/radio/parts.cjs +113 -0
  81. package/build/legacy/components/radio/parts.cjs.map +1 -0
  82. package/build/legacy/components/radio/primitives.cjs +115 -0
  83. package/build/legacy/components/radio/primitives.cjs.map +1 -0
  84. package/build/legacy/components/radio/radio.cjs +82 -0
  85. package/build/legacy/components/radio/radio.cjs.map +1 -0
  86. package/build/legacy/components/select/index.cjs +265 -0
  87. package/build/legacy/components/select/index.cjs.map +1 -0
  88. package/build/legacy/components/select/option-group.cjs +60 -0
  89. package/build/legacy/components/select/option-group.cjs.map +1 -0
  90. package/build/legacy/components/select/parts.cjs +153 -0
  91. package/build/legacy/components/select/parts.cjs.map +1 -0
  92. package/build/legacy/components/select/primitives.cjs +167 -0
  93. package/build/legacy/components/select/primitives.cjs.map +1 -0
  94. package/build/legacy/components/select/select.cjs +212 -0
  95. package/build/legacy/components/select/select.cjs.map +1 -0
  96. package/build/legacy/components/switch/index.cjs +118 -0
  97. package/build/legacy/components/switch/index.cjs.map +1 -0
  98. package/build/legacy/components/switch/parts.cjs +75 -0
  99. package/build/legacy/components/switch/parts.cjs.map +1 -0
  100. package/build/legacy/components/switch/primitives.cjs +72 -0
  101. package/build/legacy/components/switch/primitives.cjs.map +1 -0
  102. package/build/legacy/components/{Fieldset.cjs → switch/switch-indicator.cjs} +17 -32
  103. package/build/legacy/components/switch/switch-indicator.cjs.map +1 -0
  104. package/build/legacy/components/switch/switch.cjs +106 -0
  105. package/build/legacy/components/switch/switch.cjs.map +1 -0
  106. package/build/legacy/components/toggle/index.cjs +45 -0
  107. package/build/legacy/components/toggle/index.cjs.map +1 -0
  108. package/build/legacy/components/toggle/parts.cjs +41 -0
  109. package/build/legacy/components/toggle/parts.cjs.map +1 -0
  110. package/build/legacy/components/toggle/primitives.cjs +35 -0
  111. package/build/legacy/components/toggle/primitives.cjs.map +1 -0
  112. package/build/legacy/config/types.cjs.map +1 -1
  113. package/build/legacy/context/confirm-modal.cjs +55 -45
  114. package/build/legacy/context/confirm-modal.cjs.map +1 -1
  115. package/build/legacy/context/field.cjs +23 -4
  116. package/build/legacy/context/field.cjs.map +1 -1
  117. package/build/legacy/context/notification-center.cjs +24 -16
  118. package/build/legacy/context/notification-center.cjs.map +1 -1
  119. package/build/legacy/context/prompt-modal.cjs +206 -194
  120. package/build/legacy/context/prompt-modal.cjs.map +1 -1
  121. package/build/legacy/hooks/useDate.cjs.map +1 -1
  122. package/build/legacy/hooks/useRootColors.cjs +0 -1
  123. package/build/legacy/hooks/useRootColors.cjs.map +1 -1
  124. package/build/legacy/hooks/useToggle.cjs.map +1 -1
  125. package/build/legacy/index.cjs +2023 -1466
  126. package/build/legacy/index.cjs.map +1 -1
  127. package/build/legacy/utils/index.cjs +22 -2
  128. package/build/legacy/utils/index.cjs.map +1 -1
  129. package/build/modern/_tsup-dts-rollup.d.ts +1345 -319
  130. package/build/modern/{chunk-PM7CWT3N.js → chunk-245SMQ45.js} +2 -2
  131. package/build/modern/chunk-245SMQ45.js.map +1 -0
  132. package/build/modern/chunk-2BIHLH4V.js +15 -0
  133. package/build/modern/chunk-2BIHLH4V.js.map +1 -0
  134. package/build/modern/chunk-2CVGNLIM.js +15 -0
  135. package/build/modern/chunk-2CVGNLIM.js.map +1 -0
  136. package/build/modern/{chunk-ISCJ542I.js → chunk-2HOUQ2DX.js} +2 -2
  137. package/build/modern/chunk-2LF3HPNA.js +1 -0
  138. package/build/modern/chunk-4LSTU6WU.js +8 -0
  139. package/build/modern/chunk-4LSTU6WU.js.map +1 -0
  140. package/build/modern/chunk-5RTNSVYU.js +88 -0
  141. package/build/modern/chunk-5RTNSVYU.js.map +1 -0
  142. package/build/modern/chunk-6I2FW4WI.js +33 -0
  143. package/build/modern/chunk-6I2FW4WI.js.map +1 -0
  144. package/build/modern/chunk-6ICNCCPD.js +47 -0
  145. package/build/modern/chunk-6ICNCCPD.js.map +1 -0
  146. package/build/modern/chunk-6KZVE4HC.js +52 -0
  147. package/build/modern/chunk-6KZVE4HC.js.map +1 -0
  148. package/build/modern/{chunk-25HMVHLT.js → chunk-7SU6FCTJ.js} +5 -5
  149. package/build/modern/chunk-7TQRTBUP.js +19 -0
  150. package/build/modern/chunk-7TQRTBUP.js.map +1 -0
  151. package/build/modern/{chunk-UZVQ4INR.js → chunk-AIJ75ENY.js} +2 -2
  152. package/build/modern/chunk-AIJ75ENY.js.map +1 -0
  153. package/build/modern/chunk-AO3GB72J.js +27 -0
  154. package/build/modern/chunk-AO3GB72J.js.map +1 -0
  155. package/build/modern/{chunk-NUMM4TNC.js → chunk-AUALRL3U.js} +2 -2
  156. package/build/modern/chunk-AUALRL3U.js.map +1 -0
  157. package/build/modern/{chunk-IGHMP4WA.js → chunk-AZRFYQO7.js} +1 -1
  158. package/build/modern/chunk-AZRFYQO7.js.map +1 -0
  159. package/build/modern/chunk-BL7G3577.js +29 -0
  160. package/build/modern/chunk-BL7G3577.js.map +1 -0
  161. package/build/modern/chunk-BPRF34DU.js +62 -0
  162. package/build/modern/chunk-BPRF34DU.js.map +1 -0
  163. package/build/modern/chunk-CAZ3EICD.js +16 -0
  164. package/build/modern/chunk-CAZ3EICD.js.map +1 -0
  165. package/build/modern/chunk-CIMY2U22.js +10 -0
  166. package/build/modern/chunk-CIMY2U22.js.map +1 -0
  167. package/build/modern/chunk-CNA2VKAH.js +43 -0
  168. package/build/modern/chunk-CNA2VKAH.js.map +1 -0
  169. package/build/modern/chunk-CYC2YUKU.js +1 -0
  170. package/build/modern/{chunk-PZAZKQMO.js → chunk-DRDNNRU3.js} +2 -2
  171. package/build/modern/chunk-DRDNNRU3.js.map +1 -0
  172. package/build/modern/{chunk-NJSETNRL.js → chunk-DXBZ3HMY.js} +2 -2
  173. package/build/modern/chunk-DXOKSZVQ.js +12 -0
  174. package/build/modern/chunk-DXOKSZVQ.js.map +1 -0
  175. package/build/modern/chunk-EL4MX2PG.js +22 -0
  176. package/build/modern/chunk-EL4MX2PG.js.map +1 -0
  177. package/build/modern/chunk-FBS7AX76.js +37 -0
  178. package/build/modern/chunk-FBS7AX76.js.map +1 -0
  179. package/build/modern/chunk-FUL2VRDU.js +25 -0
  180. package/build/modern/chunk-FUL2VRDU.js.map +1 -0
  181. package/build/modern/{chunk-BHB56M7S.js → chunk-H54FR7IP.js} +6 -6
  182. package/build/modern/chunk-H54FR7IP.js.map +1 -0
  183. package/build/modern/chunk-IASVL7CW.js +19 -0
  184. package/build/modern/chunk-IASVL7CW.js.map +1 -0
  185. package/build/modern/{chunk-REO5GUNC.js → chunk-ICTISECN.js} +1 -1
  186. package/build/modern/chunk-ICTISECN.js.map +1 -0
  187. package/build/modern/chunk-IDTAB2UJ.js +1 -0
  188. package/build/modern/chunk-IKDXADLX.js +1 -0
  189. package/build/modern/chunk-KQQPZJEI.js +21 -0
  190. package/build/modern/chunk-KQQPZJEI.js.map +1 -0
  191. package/build/modern/chunk-KWZ3CEG6.js +23 -0
  192. package/build/modern/chunk-KWZ3CEG6.js.map +1 -0
  193. package/build/modern/{chunk-JWIJHSI6.js → chunk-L7N24B6B.js} +3 -6
  194. package/build/modern/chunk-L7N24B6B.js.map +1 -0
  195. package/build/modern/chunk-LT62577B.js +23 -0
  196. package/build/modern/chunk-LT62577B.js.map +1 -0
  197. package/build/modern/chunk-LZWNHXRP.js +48 -0
  198. package/build/modern/chunk-LZWNHXRP.js.map +1 -0
  199. package/build/modern/{chunk-EDARV2EI.js → chunk-MISIUX63.js} +4 -4
  200. package/build/modern/chunk-MVO2GNUA.js +47 -0
  201. package/build/modern/chunk-MVO2GNUA.js.map +1 -0
  202. package/build/modern/{chunk-3BM6MZ4A.js → chunk-MWRO5QYD.js} +1 -1
  203. package/build/modern/chunk-MWRO5QYD.js.map +1 -0
  204. package/build/modern/{chunk-SD3OVTHT.js → chunk-O542MPR7.js} +40 -43
  205. package/build/modern/chunk-O542MPR7.js.map +1 -0
  206. package/build/modern/chunk-OGYMMATX.js +1 -0
  207. package/build/modern/chunk-OVHCXBBI.js +22 -0
  208. package/build/modern/chunk-OVHCXBBI.js.map +1 -0
  209. package/build/modern/chunk-PLHYOCY3.js +23 -0
  210. package/build/modern/chunk-PLHYOCY3.js.map +1 -0
  211. package/build/modern/{chunk-JIRW4XOJ.js → chunk-Q3I4H6EC.js} +2 -2
  212. package/build/modern/chunk-Q3I4H6EC.js.map +1 -0
  213. package/build/modern/chunk-QCBLRACK.js +133 -0
  214. package/build/modern/chunk-QCBLRACK.js.map +1 -0
  215. package/build/modern/{chunk-FGCO27TC.js → chunk-QEM3M4N3.js} +25 -34
  216. package/build/modern/chunk-QEM3M4N3.js.map +1 -0
  217. package/build/modern/{chunk-ILQW5VZT.js → chunk-RBNOEAWJ.js} +4 -7
  218. package/build/modern/chunk-RBNOEAWJ.js.map +1 -0
  219. package/build/modern/{chunk-YKKNWILF.js → chunk-RHCTPSKT.js} +2 -15
  220. package/build/modern/chunk-RHCTPSKT.js.map +1 -0
  221. package/build/modern/chunk-STLN7BMJ.js +22 -0
  222. package/build/modern/chunk-STLN7BMJ.js.map +1 -0
  223. package/build/modern/{chunk-7NN3SJ7W.js → chunk-SWX5JWZR.js} +2 -2
  224. package/build/modern/chunk-SWX5JWZR.js.map +1 -0
  225. package/build/modern/{chunk-GCQMH4QA.js → chunk-SXLPDPOZ.js} +4 -4
  226. package/build/modern/chunk-TIJAFPHQ.js +1 -0
  227. package/build/modern/chunk-TYPULJMJ.js +1 -0
  228. package/build/modern/chunk-UDY6USHW.js +1 -0
  229. package/build/modern/chunk-V4YYGGMH.js +1 -0
  230. package/build/modern/chunk-VSTOSLFS.js +100 -0
  231. package/build/modern/chunk-VSTOSLFS.js.map +1 -0
  232. package/build/modern/{chunk-ZL6ZITLA.js → chunk-WECB67DC.js} +2 -2
  233. package/build/modern/chunk-WECB67DC.js.map +1 -0
  234. package/build/modern/{chunk-BAWZBF5Q.js → chunk-WN7TJX6J.js} +2 -2
  235. package/build/modern/{chunk-RMVJK26W.js → chunk-XJQXHSH7.js} +1 -2
  236. package/build/modern/chunk-XJQXHSH7.js.map +1 -0
  237. package/build/modern/chunk-XTNGF4D6.js +41 -0
  238. package/build/modern/chunk-XTNGF4D6.js.map +1 -0
  239. package/build/modern/chunk-Y4ZEJ2EF.js +31 -0
  240. package/build/modern/chunk-Y4ZEJ2EF.js.map +1 -0
  241. package/build/modern/{chunk-WPVDQRRF.js → chunk-YOTXFCCC.js} +2 -2
  242. package/build/modern/chunk-YOTXFCCC.js.map +1 -0
  243. package/build/modern/chunk-Z3FDG263.js +53 -0
  244. package/build/modern/chunk-Z3FDG263.js.map +1 -0
  245. package/build/modern/{chunk-JAROS4Q3.js → chunk-Z4342DRO.js} +10 -10
  246. package/build/modern/chunk-Z4342DRO.js.map +1 -0
  247. package/build/modern/chunk-Z52R6ABJ.js +21 -0
  248. package/build/modern/chunk-Z52R6ABJ.js.map +1 -0
  249. package/build/modern/{chunk-O6LFWUHI.js → chunk-ZFFW5ELD.js} +10 -10
  250. package/build/modern/chunk-ZFFW5ELD.js.map +1 -0
  251. package/build/modern/components/Accordion.js +1 -1
  252. package/build/modern/components/AccordionItemGroup.js +3 -3
  253. package/build/modern/components/Admonition.client.js +3 -3
  254. package/build/modern/components/Admonition.js +4 -4
  255. package/build/modern/components/Avatar.js +2 -2
  256. package/build/modern/components/DatePicker.client.js +4 -3
  257. package/build/modern/components/FileStatus.js +11 -5
  258. package/build/modern/components/FileUploader.js +3 -3
  259. package/build/modern/components/Legend.js +1 -2
  260. package/build/modern/components/Tag.js +2 -2
  261. package/build/modern/components/button/button.js +12 -0
  262. package/build/modern/components/button/index.js +16 -0
  263. package/build/modern/components/button/parts.js +10 -0
  264. package/build/modern/components/checkbox/checkbox-icon.js +12 -0
  265. package/build/modern/components/checkbox/checkbox.js +13 -0
  266. package/build/modern/components/checkbox/index.js +30 -0
  267. package/build/modern/components/checkbox/parts.js +8 -0
  268. package/build/modern/components/checkbox/primitives.js +17 -0
  269. package/build/modern/components/cta-dialog/context.js +8 -0
  270. package/build/modern/components/cta-dialog/index.js +26 -0
  271. package/build/modern/components/cta-dialog/provider.js +22 -0
  272. package/build/modern/components/cta-dialog/provider.js.map +1 -0
  273. package/build/modern/components/cta-dialog/trigger-item.js +10 -0
  274. package/build/modern/components/cta-dialog/trigger-item.js.map +1 -0
  275. package/build/modern/components/cta-dialog/utils.js +7 -0
  276. package/build/modern/components/cta-dialog/utils.js.map +1 -0
  277. package/build/modern/components/deprecated/FieldMessage.js +8 -0
  278. package/build/modern/components/deprecated/FieldMessage.js.map +1 -0
  279. package/build/modern/components/deprecated/FieldsetLabel.js +7 -0
  280. package/build/modern/components/deprecated/FieldsetLabel.js.map +1 -0
  281. package/build/modern/components/deprecated/Label.js +17 -0
  282. package/build/modern/components/deprecated/Label.js.map +1 -0
  283. package/build/modern/components/deprecated/Modal.js +7 -0
  284. package/build/modern/components/deprecated/Modal.js.map +1 -0
  285. package/build/modern/components/deprecated/ModalDescription.js +7 -0
  286. package/build/modern/components/deprecated/ModalDescription.js.map +1 -0
  287. package/build/modern/components/deprecated/ModalHeader.js +7 -0
  288. package/build/modern/components/deprecated/ModalHeader.js.map +1 -0
  289. package/build/modern/components/deprecated/ModalHeading.js +7 -0
  290. package/build/modern/components/deprecated/ModalHeading.js.map +1 -0
  291. package/build/modern/components/deprecated/NavMenuLink.js +8 -0
  292. package/build/modern/components/deprecated/NavMenuLink.js.map +1 -0
  293. package/build/modern/components/deprecated/NavMenuList.js +12 -0
  294. package/build/modern/components/deprecated/NavMenuList.js.map +1 -0
  295. package/build/modern/components/deprecated/NavMenuTrigger.js +11 -0
  296. package/build/modern/components/deprecated/NavMenuTrigger.js.map +1 -0
  297. package/build/modern/components/field/field.js +14 -0
  298. package/build/modern/components/field/field.js.map +1 -0
  299. package/build/modern/components/field/index.js +44 -0
  300. package/build/modern/components/field/index.js.map +1 -0
  301. package/build/modern/components/field/parts.js +11 -0
  302. package/build/modern/components/field/parts.js.map +1 -0
  303. package/build/modern/components/field/primitives.js +26 -0
  304. package/build/modern/components/field/primitives.js.map +1 -0
  305. package/build/modern/components/field/start-indicator.js +7 -0
  306. package/build/modern/components/field/start-indicator.js.map +1 -0
  307. package/build/modern/components/field/status-indicator.js +9 -0
  308. package/build/modern/components/field/status-indicator.js.map +1 -0
  309. package/build/modern/components/fieldset/fieldset.js +11 -0
  310. package/build/modern/components/fieldset/fieldset.js.map +1 -0
  311. package/build/modern/components/fieldset/index.js +24 -0
  312. package/build/modern/components/fieldset/index.js.map +1 -0
  313. package/build/modern/components/fieldset/parts.js +8 -0
  314. package/build/modern/components/fieldset/parts.js.map +1 -0
  315. package/build/modern/components/fieldset/primitives.js +13 -0
  316. package/build/modern/components/fieldset/primitives.js.map +1 -0
  317. package/build/modern/components/for.js +7 -0
  318. package/build/modern/components/for.js.map +1 -0
  319. package/build/modern/components/radio/index.js +30 -0
  320. package/build/modern/components/radio/index.js.map +1 -0
  321. package/build/modern/components/radio/parts.js +8 -0
  322. package/build/modern/components/radio/parts.js.map +1 -0
  323. package/build/modern/components/radio/primitives.js +21 -0
  324. package/build/modern/components/radio/primitives.js.map +1 -0
  325. package/build/modern/components/radio/radio.js +8 -0
  326. package/build/modern/components/radio/radio.js.map +1 -0
  327. package/build/modern/components/select/index.js +57 -0
  328. package/build/modern/components/select/index.js.map +1 -0
  329. package/build/modern/components/select/option-group.js +10 -0
  330. package/build/modern/components/select/option-group.js.map +1 -0
  331. package/build/modern/components/select/parts.js +8 -0
  332. package/build/modern/components/select/parts.js.map +1 -0
  333. package/build/modern/components/select/primitives.js +37 -0
  334. package/build/modern/components/select/primitives.js.map +1 -0
  335. package/build/modern/components/select/select.js +15 -0
  336. package/build/modern/components/select/select.js.map +1 -0
  337. package/build/modern/components/switch/index.js +26 -0
  338. package/build/modern/components/switch/index.js.map +1 -0
  339. package/build/modern/components/switch/parts.js +8 -0
  340. package/build/modern/components/switch/parts.js.map +1 -0
  341. package/build/modern/components/switch/primitives.js +15 -0
  342. package/build/modern/components/switch/primitives.js.map +1 -0
  343. package/build/modern/components/switch/switch-indicator.js +9 -0
  344. package/build/modern/components/switch/switch-indicator.js.map +1 -0
  345. package/build/modern/components/switch/switch.js +11 -0
  346. package/build/modern/components/switch/switch.js.map +1 -0
  347. package/build/modern/components/toggle/index.js +14 -0
  348. package/build/modern/components/toggle/index.js.map +1 -0
  349. package/build/modern/components/toggle/parts.js +8 -0
  350. package/build/modern/components/toggle/parts.js.map +1 -0
  351. package/build/modern/components/toggle/primitives.js +9 -0
  352. package/build/modern/components/toggle/primitives.js.map +1 -0
  353. package/build/modern/context/confirm-modal.js +5 -4
  354. package/build/modern/context/field.js +34 -4
  355. package/build/modern/context/field.js.map +1 -1
  356. package/build/modern/context/notification-center.js +5 -4
  357. package/build/modern/context/prompt-modal.js +13 -7
  358. package/build/modern/hooks/useDate.js +1 -1
  359. package/build/modern/hooks/useRootColors.js +1 -1
  360. package/build/modern/hooks/useToggle.js +1 -1
  361. package/build/modern/index.js +304 -129
  362. package/build/modern/index.js.map +1 -1
  363. package/build/modern/utils/index.js +5 -3
  364. package/package.json +2 -2
  365. package/src/components/Accordion.tsx +1 -0
  366. package/src/components/DatePicker.client.tsx +3 -15
  367. package/src/components/FileStatus.tsx +4 -5
  368. package/src/components/Legend.tsx +5 -6
  369. package/src/components/button/button.tsx +77 -0
  370. package/src/components/button/index.ts +2 -0
  371. package/src/components/button/parts.ts +32 -0
  372. package/src/components/checkbox/checkbox-icon.tsx +39 -0
  373. package/src/components/checkbox/checkbox.tsx +42 -0
  374. package/src/components/checkbox/index.ts +3 -0
  375. package/src/components/checkbox/parts.ts +59 -0
  376. package/src/components/checkbox/primitives.tsx +104 -0
  377. package/src/components/cta-dialog/context.tsx +34 -0
  378. package/src/components/cta-dialog/index.ts +2 -0
  379. package/src/{context/cta-modal.tsx → components/cta-dialog/provider.tsx} +34 -68
  380. package/src/components/cta-dialog/trigger-item.tsx +53 -0
  381. package/src/components/cta-dialog/utils.ts +57 -0
  382. package/src/components/{FieldMessage.tsx → deprecated/FieldMessage.tsx} +2 -13
  383. package/src/components/deprecated/FieldsetLabel.tsx +32 -0
  384. package/src/components/deprecated/Label.tsx +24 -0
  385. package/src/components/{NavMenuLink.tsx → deprecated/NavMenuLink.tsx} +1 -1
  386. package/src/components/{NavMenuList.tsx → deprecated/NavMenuList.tsx} +3 -3
  387. package/src/components/{NavMenuTrigger.tsx → deprecated/NavMenuTrigger.tsx} +4 -4
  388. package/src/components/field/field.tsx +77 -0
  389. package/src/components/field/index.ts +5 -0
  390. package/src/components/field/parts.ts +77 -0
  391. package/src/components/field/primitives.tsx +204 -0
  392. package/src/components/field/start-indicator.tsx +23 -0
  393. package/src/components/field/status-indicator.tsx +58 -0
  394. package/src/components/fieldset/fieldset.tsx +55 -0
  395. package/src/components/fieldset/index.ts +3 -0
  396. package/src/components/fieldset/parts.ts +47 -0
  397. package/src/components/fieldset/primitives.tsx +79 -0
  398. package/src/components/for.tsx +38 -0
  399. package/src/components/radio/index.ts +3 -0
  400. package/src/components/radio/parts.ts +65 -0
  401. package/src/components/radio/primitives.tsx +123 -0
  402. package/src/components/radio/radio.tsx +35 -0
  403. package/src/components/select/index.ts +4 -0
  404. package/src/components/select/option-group.tsx +34 -0
  405. package/src/components/select/parts.ts +113 -0
  406. package/src/components/select/primitives.tsx +205 -0
  407. package/src/components/select/select.tsx +135 -0
  408. package/src/components/switch/index.ts +3 -0
  409. package/src/components/switch/parts.ts +53 -0
  410. package/src/components/switch/primitives.tsx +69 -0
  411. package/src/components/switch/switch-indicator.tsx +9 -0
  412. package/src/components/switch/switch.tsx +30 -0
  413. package/src/components/toggle/index.ts +2 -0
  414. package/src/components/toggle/parts.ts +32 -0
  415. package/src/components/toggle/primitives.tsx +17 -0
  416. package/src/config/types.ts +1 -0
  417. package/src/context/confirm-modal.tsx +1 -1
  418. package/src/context/field.tsx +6 -5
  419. package/src/context/notification-center.tsx +1 -1
  420. package/src/context/prompt-modal.tsx +16 -18
  421. package/src/hooks/useDate.ts +1 -7
  422. package/src/hooks/useRootColors.ts +0 -1
  423. package/src/hooks/useToggle.ts +1 -3
  424. package/src/index.ts +24 -24
  425. package/src/utils/index.ts +30 -0
  426. package/build/legacy/components/Button.cjs.map +0 -1
  427. package/build/legacy/components/Checkbox.cjs +0 -113
  428. package/build/legacy/components/Checkbox.cjs.map +0 -1
  429. package/build/legacy/components/FieldMessage.cjs.map +0 -1
  430. package/build/legacy/components/Fieldset.cjs.map +0 -1
  431. package/build/legacy/components/FieldsetLabel.cjs.map +0 -1
  432. package/build/legacy/components/Input.cjs +0 -95
  433. package/build/legacy/components/Input.cjs.map +0 -1
  434. package/build/legacy/components/Label.cjs +0 -93
  435. package/build/legacy/components/Label.cjs.map +0 -1
  436. package/build/legacy/components/Modal.cjs.map +0 -1
  437. package/build/legacy/components/ModalDescription.cjs.map +0 -1
  438. package/build/legacy/components/ModalHeader.cjs.map +0 -1
  439. package/build/legacy/components/ModalHeading.cjs.map +0 -1
  440. package/build/legacy/components/NavMenuLink.cjs.map +0 -1
  441. package/build/legacy/components/NavMenuList.cjs.map +0 -1
  442. package/build/legacy/components/NavMenuTrigger.cjs.map +0 -1
  443. package/build/legacy/components/Radio.cjs +0 -81
  444. package/build/legacy/components/Radio.cjs.map +0 -1
  445. package/build/legacy/components/Select.cjs +0 -120
  446. package/build/legacy/components/Select.cjs.map +0 -1
  447. package/build/legacy/components/Textarea.cjs.map +0 -1
  448. package/build/legacy/components/Toggle.cjs +0 -101
  449. package/build/legacy/components/Toggle.cjs.map +0 -1
  450. package/build/legacy/context/cta-modal.cjs.map +0 -1
  451. package/build/modern/chunk-3BM6MZ4A.js.map +0 -1
  452. package/build/modern/chunk-3ZDFQO25.js +0 -31
  453. package/build/modern/chunk-3ZDFQO25.js.map +0 -1
  454. package/build/modern/chunk-7NN3SJ7W.js.map +0 -1
  455. package/build/modern/chunk-BHB56M7S.js.map +0 -1
  456. package/build/modern/chunk-C5EHJUS5.js +0 -10
  457. package/build/modern/chunk-C5EHJUS5.js.map +0 -1
  458. package/build/modern/chunk-EXGKZGML.js +0 -28
  459. package/build/modern/chunk-EXGKZGML.js.map +0 -1
  460. package/build/modern/chunk-FGCO27TC.js.map +0 -1
  461. package/build/modern/chunk-FTPZHG6J.js +0 -46
  462. package/build/modern/chunk-FTPZHG6J.js.map +0 -1
  463. package/build/modern/chunk-IGHMP4WA.js.map +0 -1
  464. package/build/modern/chunk-ILQW5VZT.js.map +0 -1
  465. package/build/modern/chunk-JAROS4Q3.js.map +0 -1
  466. package/build/modern/chunk-JIJM6JFJ.js +0 -36
  467. package/build/modern/chunk-JIJM6JFJ.js.map +0 -1
  468. package/build/modern/chunk-JIRW4XOJ.js.map +0 -1
  469. package/build/modern/chunk-JWIJHSI6.js.map +0 -1
  470. package/build/modern/chunk-KKHL3ZO4.js +0 -69
  471. package/build/modern/chunk-KKHL3ZO4.js.map +0 -1
  472. package/build/modern/chunk-MZ3UCDUL.js +0 -43
  473. package/build/modern/chunk-MZ3UCDUL.js.map +0 -1
  474. package/build/modern/chunk-N24COMHJ.js +0 -63
  475. package/build/modern/chunk-N24COMHJ.js.map +0 -1
  476. package/build/modern/chunk-NMF2HYWO.js +0 -50
  477. package/build/modern/chunk-NMF2HYWO.js.map +0 -1
  478. package/build/modern/chunk-NUMM4TNC.js.map +0 -1
  479. package/build/modern/chunk-O6LFWUHI.js.map +0 -1
  480. package/build/modern/chunk-PM7CWT3N.js.map +0 -1
  481. package/build/modern/chunk-PZAZKQMO.js.map +0 -1
  482. package/build/modern/chunk-REO5GUNC.js.map +0 -1
  483. package/build/modern/chunk-RMVJK26W.js.map +0 -1
  484. package/build/modern/chunk-SD3OVTHT.js.map +0 -1
  485. package/build/modern/chunk-UZDVOIW5.js +0 -33
  486. package/build/modern/chunk-UZDVOIW5.js.map +0 -1
  487. package/build/modern/chunk-UZVQ4INR.js.map +0 -1
  488. package/build/modern/chunk-WPVDQRRF.js.map +0 -1
  489. package/build/modern/chunk-XQICKZH4.js +0 -59
  490. package/build/modern/chunk-XQICKZH4.js.map +0 -1
  491. package/build/modern/chunk-YKKNWILF.js.map +0 -1
  492. package/build/modern/chunk-ZL6ZITLA.js.map +0 -1
  493. package/build/modern/components/Button.js +0 -7
  494. package/build/modern/components/Checkbox.js +0 -11
  495. package/build/modern/components/FieldMessage.js +0 -9
  496. package/build/modern/components/Fieldset.js +0 -9
  497. package/build/modern/components/FieldsetLabel.js +0 -7
  498. package/build/modern/components/Input.js +0 -11
  499. package/build/modern/components/Label.js +0 -10
  500. package/build/modern/components/Modal.js +0 -7
  501. package/build/modern/components/ModalDescription.js +0 -7
  502. package/build/modern/components/ModalHeader.js +0 -7
  503. package/build/modern/components/ModalHeading.js +0 -7
  504. package/build/modern/components/NavMenuLink.js +0 -8
  505. package/build/modern/components/NavMenuList.js +0 -12
  506. package/build/modern/components/NavMenuTrigger.js +0 -11
  507. package/build/modern/components/Radio.js +0 -9
  508. package/build/modern/components/Select.js +0 -13
  509. package/build/modern/components/Textarea.js +0 -9
  510. package/build/modern/components/Toggle.js +0 -10
  511. package/build/modern/context/cta-modal.js +0 -18
  512. package/src/components/Button.tsx +0 -35
  513. package/src/components/Checkbox.tsx +0 -93
  514. package/src/components/Fieldset.tsx +0 -65
  515. package/src/components/FieldsetLabel.tsx +0 -59
  516. package/src/components/Input.tsx +0 -69
  517. package/src/components/Label.tsx +0 -69
  518. package/src/components/Radio.tsx +0 -73
  519. package/src/components/Select.tsx +0 -108
  520. package/src/components/Textarea.tsx +0 -52
  521. package/src/components/Toggle.tsx +0 -91
  522. /package/build/modern/{chunk-ISCJ542I.js.map → chunk-2HOUQ2DX.js.map} +0 -0
  523. /package/build/modern/{components/Button.js.map → chunk-2LF3HPNA.js.map} +0 -0
  524. /package/build/modern/{chunk-25HMVHLT.js.map → chunk-7SU6FCTJ.js.map} +0 -0
  525. /package/build/modern/{components/Checkbox.js.map → chunk-CYC2YUKU.js.map} +0 -0
  526. /package/build/modern/{chunk-NJSETNRL.js.map → chunk-DXBZ3HMY.js.map} +0 -0
  527. /package/build/modern/{components/FieldMessage.js.map → chunk-IDTAB2UJ.js.map} +0 -0
  528. /package/build/modern/{components/Fieldset.js.map → chunk-IKDXADLX.js.map} +0 -0
  529. /package/build/modern/{chunk-EDARV2EI.js.map → chunk-MISIUX63.js.map} +0 -0
  530. /package/build/modern/{components/FieldsetLabel.js.map → chunk-OGYMMATX.js.map} +0 -0
  531. /package/build/modern/{chunk-GCQMH4QA.js.map → chunk-SXLPDPOZ.js.map} +0 -0
  532. /package/build/modern/{components/Input.js.map → chunk-TIJAFPHQ.js.map} +0 -0
  533. /package/build/modern/{components/Label.js.map → chunk-TYPULJMJ.js.map} +0 -0
  534. /package/build/modern/{components/Modal.js.map → chunk-UDY6USHW.js.map} +0 -0
  535. /package/build/modern/{components/ModalDescription.js.map → chunk-V4YYGGMH.js.map} +0 -0
  536. /package/build/modern/{chunk-BAWZBF5Q.js.map → chunk-WN7TJX6J.js.map} +0 -0
  537. /package/build/modern/components/{ModalHeader.js.map → button/button.js.map} +0 -0
  538. /package/build/modern/components/{ModalHeading.js.map → button/index.js.map} +0 -0
  539. /package/build/modern/components/{NavMenuLink.js.map → button/parts.js.map} +0 -0
  540. /package/build/modern/components/{NavMenuList.js.map → checkbox/checkbox-icon.js.map} +0 -0
  541. /package/build/modern/components/{NavMenuTrigger.js.map → checkbox/checkbox.js.map} +0 -0
  542. /package/build/modern/components/{Radio.js.map → checkbox/index.js.map} +0 -0
  543. /package/build/modern/components/{Select.js.map → checkbox/parts.js.map} +0 -0
  544. /package/build/modern/components/{Textarea.js.map → checkbox/primitives.js.map} +0 -0
  545. /package/build/modern/components/{Toggle.js.map → cta-dialog/context.js.map} +0 -0
  546. /package/build/modern/{context/cta-modal.js.map → components/cta-dialog/index.js.map} +0 -0
  547. /package/src/components/{Modal.tsx → deprecated/Modal.tsx} +0 -0
  548. /package/src/components/{ModalDescription.tsx → deprecated/ModalDescription.tsx} +0 -0
  549. /package/src/components/{ModalHeader.tsx → deprecated/ModalHeader.tsx} +0 -0
  550. /package/src/components/{ModalHeading.tsx → deprecated/ModalHeading.tsx} +0 -0
@@ -0,0 +1,35 @@
1
+ import type { RadioGroupItemProps } from '@ark-ui/react'
2
+ import { type RadioGroupVariantProps } from '@cerberus/styled-system/recipes'
3
+ import {
4
+ RadioGroupItem,
5
+ RadioGroupItemControl,
6
+ RadioGroupItemHiddenInput,
7
+ RadioGroupItemText,
8
+ } from './primitives'
9
+
10
+ /**
11
+ * This module contains the Radio component.
12
+ * @module
13
+ */
14
+
15
+ export type RadioProps = RadioGroupVariantProps & RadioGroupItemProps
16
+
17
+ /**
18
+ * The Radio component is used to allow users to select a single option from a list of options.
19
+ * @see https://cerberus.digitalu.design/react/radio
20
+ * @memberof module:Field
21
+ * @example
22
+ * ```tsx
23
+ * <Radio value="option1">Option 1</Radio>
24
+ * ```
25
+ */
26
+ export function Radio(props: RadioProps) {
27
+ const { size, children, ...groupProps } = props
28
+ return (
29
+ <RadioGroupItem {...groupProps}>
30
+ <RadioGroupItemControl size={size} />
31
+ <RadioGroupItemText size={size}>{children}</RadioGroupItemText>
32
+ <RadioGroupItemHiddenInput />
33
+ </RadioGroupItem>
34
+ )
35
+ }
@@ -0,0 +1,4 @@
1
+ export * from './parts'
2
+ export * from './primitives'
3
+ export * from './select'
4
+ export * from './option-group'
@@ -0,0 +1,34 @@
1
+ import type {
2
+ SelectItemGroupLabelProps,
3
+ SelectItemGroupProps,
4
+ } from '@ark-ui/react/select'
5
+ import { SelectItemGroup, SelectItemGroupLabel } from './primitives'
6
+
7
+ /**
8
+ * The OptionGroup component is a group of options in the dropdown list.
9
+ * @definition [Select docs](https://cerberus.digitalu.design/react/select)
10
+ * @definition [ARK docs](https://ark-ui.com/react/docs/components/select)
11
+ * @example
12
+ * ```tsx
13
+ * <OptionGroup>
14
+ * <OptionGroupLabel>Greek gods</OptionGroupLabel>
15
+ * ...
16
+ * </OptionGroup>
17
+ * ```
18
+ */
19
+ export function OptionGroup(props: SelectItemGroupProps) {
20
+ return <SelectItemGroup {...props} />
21
+ }
22
+
23
+ /**
24
+ * The OptionGroupLabel component is the label of the OptionGroup.
25
+ * @definition [Select docs](https://cerberus.digitalu.design/react/select)
26
+ * @definition [ARK docs](https://ark-ui.com/react/docs/components/select)
27
+ * @example
28
+ * ```tsx
29
+ * <OptionGroupLabel>Greek gods</OptionGroupLabel>
30
+ * ```
31
+ */
32
+ export function OptionGroupLabel(props: SelectItemGroupLabelProps) {
33
+ return <SelectItemGroupLabel {...props} />
34
+ }
@@ -0,0 +1,113 @@
1
+ import type { ElementType } from 'react'
2
+ import {
3
+ SelectClearTrigger,
4
+ SelectContent,
5
+ SelectControl,
6
+ SelectHiddenSelect,
7
+ SelectIndicator,
8
+ SelectItem,
9
+ SelectItemGroup,
10
+ SelectItemGroupLabel,
11
+ SelectItemIndicator,
12
+ SelectItemText,
13
+ SelectLabel,
14
+ SelectPositioner,
15
+ SelectRoot,
16
+ SelectTrigger,
17
+ SelectValueText,
18
+ } from './primitives'
19
+
20
+ /**
21
+ * This module contains the parts of the Select parts.
22
+ * @module 'select/parts'
23
+ */
24
+
25
+ interface SelectPartsValue {
26
+ /**
27
+ * The context provider for the Select component.
28
+ */
29
+ Root: ElementType
30
+ /**
31
+ * The label that appears above the select input.
32
+ */
33
+ Label: ElementType
34
+ /**
35
+ * The control that wraps the select trigger.
36
+ */
37
+ Control: ElementType
38
+ /**
39
+ * The trigger that opens the dropdown.
40
+ */
41
+ Trigger: ElementType
42
+ /**
43
+ * The trigger to clear the select input.
44
+ */
45
+ ClearTrigger: ElementType
46
+ /**
47
+ * The text that appears in the trigger.
48
+ */
49
+ ValueText: ElementType
50
+ /**
51
+ * The indicator that appears in the trigger.
52
+ */
53
+ Indicator: ElementType
54
+ /**
55
+ * The positioner that wraps the content.
56
+ */
57
+ Positioner: ElementType
58
+ /**
59
+ * The content of the select component.
60
+ */
61
+ Content: ElementType
62
+ /**
63
+ * A group of items in the select component.
64
+ */
65
+ ItemGroup: ElementType
66
+ /**
67
+ * The label for a group of items in the select component.
68
+ */
69
+ ItemGroupLabel: ElementType
70
+ /**
71
+ * An individual item in the select component.
72
+ */
73
+ Item: ElementType
74
+ /**
75
+ * The text that labels a single radio of the field.
76
+ */
77
+ ItemText: ElementType
78
+ /**
79
+ * The indicator that appears when the item has been selected.
80
+ */
81
+ ItemIndicator: ElementType
82
+ /**
83
+ * The native select for use within a field.
84
+ */
85
+ HiddenSelect: ElementType
86
+ }
87
+
88
+ /**
89
+ * An Object containing the parts of the Radio component. For users that
90
+ * prefer Object component syntax.
91
+ *
92
+ * @remarks
93
+ *
94
+ * When using object component syntax, you import the SelectParts object and
95
+ * the entire family of components vs. only what you use.
96
+ */
97
+ export const SelectParts: SelectPartsValue = {
98
+ Root: SelectRoot,
99
+ Label: SelectLabel,
100
+ Control: SelectControl,
101
+ Trigger: SelectTrigger,
102
+ ClearTrigger: SelectClearTrigger,
103
+ ValueText: SelectValueText,
104
+ Indicator: SelectIndicator,
105
+ Positioner: SelectPositioner,
106
+ Content: SelectContent,
107
+ ItemGroup: SelectItemGroup,
108
+ ItemGroupLabel: SelectItemGroupLabel,
109
+ Item: SelectItem,
110
+ ItemText: SelectItemText,
111
+ ItemIndicator: SelectItemIndicator,
112
+ HiddenSelect: SelectHiddenSelect,
113
+ }
@@ -0,0 +1,205 @@
1
+ import {
2
+ createListCollection,
3
+ Select,
4
+ type ListCollection,
5
+ type SelectClearTriggerProps,
6
+ type SelectContentProps,
7
+ type SelectControlProps,
8
+ type SelectHiddenSelectProps,
9
+ type SelectIndicatorProps,
10
+ type SelectItemGroupLabelProps,
11
+ type SelectItemGroupProps,
12
+ type SelectItemIndicatorProps,
13
+ type SelectItemProps,
14
+ type SelectItemTextProps,
15
+ type SelectLabelProps,
16
+ type SelectPositionerProps,
17
+ type SelectRootProps,
18
+ type SelectTriggerProps,
19
+ type SelectValueChangeDetails,
20
+ type SelectValueTextProps,
21
+ } from '@ark-ui/react/select'
22
+ import {
23
+ select,
24
+ type SelectVariantProps,
25
+ } from '@cerberus/styled-system/recipes'
26
+ import { cx } from '@cerberus/styled-system/css'
27
+ import type { SelectCollectionItem } from './select'
28
+
29
+ /**
30
+ * This module contains the Select primitives
31
+ * @module 'react/select'
32
+ */
33
+
34
+ /**
35
+ * The SelectRoot component is the context provider for the Select component.
36
+ */
37
+ export function SelectRoot(
38
+ props: SelectRootProps<SelectCollectionItem> & SelectVariantProps,
39
+ ) {
40
+ const { size, ...rootProps } = props
41
+ const styles = select({ size })
42
+ return (
43
+ <Select.Root
44
+ {...rootProps}
45
+ className={cx(styles.root, rootProps.className)}
46
+ />
47
+ )
48
+ }
49
+
50
+ /**
51
+ * The label that appears above the select input.
52
+ */
53
+ export function SelectLabel(props: SelectLabelProps) {
54
+ const styles = select()
55
+ return (
56
+ <Select.Label {...props} className={cx(styles.label, props.className)} />
57
+ )
58
+ }
59
+
60
+ /**
61
+ * The control that wraps the select trigger.
62
+ */
63
+ export function SelectControl(props: SelectControlProps) {
64
+ return <Select.Control {...props} />
65
+ }
66
+
67
+ /**
68
+ * The trigger that opens the dropdown.
69
+ */
70
+ export function SelectTrigger(props: SelectTriggerProps) {
71
+ const styles = select()
72
+ return (
73
+ <Select.Trigger
74
+ {...props}
75
+ className={cx(styles.trigger, props.className)}
76
+ />
77
+ )
78
+ }
79
+
80
+ /**
81
+ * The text that appears in the trigger.
82
+ */
83
+ export function SelectValueText(props: SelectValueTextProps) {
84
+ return <Select.ValueText {...props} />
85
+ }
86
+
87
+ /**
88
+ * The indicator that appears in the trigger.
89
+ */
90
+ export function SelectIndicator(props: SelectIndicatorProps) {
91
+ const styles = select()
92
+ return (
93
+ <Select.Indicator
94
+ {...props}
95
+ className={cx(styles.indicator, props.className)}
96
+ />
97
+ )
98
+ }
99
+
100
+ /**
101
+ * The trigger that clears the selected value.
102
+ */
103
+ export function SelectClearTrigger(props: SelectClearTriggerProps) {
104
+ return <Select.ClearTrigger {...props} />
105
+ }
106
+
107
+ /**
108
+ * The positioner that contains the dropdown.
109
+ */
110
+ export function SelectPositioner(props: SelectPositionerProps) {
111
+ const styles = select()
112
+ return (
113
+ <Select.Positioner
114
+ {...props}
115
+ className={cx(styles.positioner, props.className)}
116
+ />
117
+ )
118
+ }
119
+
120
+ /**
121
+ * The content of the dropdown (i.e. the container itself).
122
+ */
123
+ export function SelectContent(props: SelectContentProps & SelectVariantProps) {
124
+ const { size, ...contentProps } = props
125
+ const styles = select({ size })
126
+ return (
127
+ <Select.Content
128
+ {...contentProps}
129
+ className={cx(styles.content, contentProps.className)}
130
+ />
131
+ )
132
+ }
133
+
134
+ /**
135
+ * The container for a group of item options.
136
+ */
137
+ export function SelectItemGroup(props: SelectItemGroupProps) {
138
+ return <Select.ItemGroup {...props} />
139
+ }
140
+
141
+ /**
142
+ * The label for a group of item options.
143
+ */
144
+ export function SelectItemGroupLabel(props: SelectItemGroupLabelProps) {
145
+ const styles = select()
146
+ return (
147
+ <Select.ItemGroupLabel
148
+ {...props}
149
+ className={cx(styles.itemGroupLabel, props.className)}
150
+ />
151
+ )
152
+ }
153
+
154
+ /**
155
+ * The container for an item in the select content.
156
+ */
157
+ export function SelectItem(props: SelectItemProps) {
158
+ const styles = select()
159
+ return <Select.Item {...props} className={cx(styles.item, props.className)} />
160
+ }
161
+
162
+ /**
163
+ * The text for an item option.
164
+ */
165
+ export function SelectItemText(props: SelectItemTextProps) {
166
+ return <Select.ItemText {...props} />
167
+ }
168
+
169
+ /**
170
+ * The indicator for an item option shown when it is selected.
171
+ */
172
+ export function SelectItemIndicator(props: SelectItemIndicatorProps) {
173
+ const styles = select()
174
+ return (
175
+ <Select.ItemIndicator
176
+ {...props}
177
+ className={cx(styles.itemIndicator, props.className)}
178
+ />
179
+ )
180
+ }
181
+
182
+ /**
183
+ * The native input for a select item.
184
+ */
185
+ export function SelectHiddenSelect(props: SelectHiddenSelectProps) {
186
+ return <Select.HiddenSelect {...props} />
187
+ }
188
+
189
+ /**
190
+ * A helper function to create a SelectCollection object.
191
+ * @param collection - An array of SelectCollectionItem objects that matches
192
+ * the following shape:
193
+ * ```ts
194
+ * [{ label: 'Hades', value: 'hades', disabled?: true }]
195
+ * ```
196
+ */
197
+ export function createSelectCollection(
198
+ collection: SelectCollectionItem[],
199
+ ): ListCollection<SelectCollectionItem> {
200
+ return createListCollection({
201
+ items: collection,
202
+ })
203
+ }
204
+
205
+ export type { SelectValueChangeDetails, ListCollection }
@@ -0,0 +1,135 @@
1
+ 'use client'
2
+
3
+ import type { SelectItemProps, SelectRootProps } from '@ark-ui/react/select'
4
+ import { type SelectVariantProps } from '@cerberus/styled-system/recipes'
5
+ import { HStack } from '@cerberus/styled-system/jsx'
6
+ import { useCerberusContext } from '../../context/cerberus'
7
+ import { Portal } from '../Portal'
8
+ import { Show } from '../Show'
9
+ import { SelectParts } from './parts'
10
+
11
+ /**
12
+ * This module contains the Select components.
13
+ * @module 'react/select'
14
+ */
15
+
16
+ export interface SelectCollectionItem {
17
+ /**
18
+ * What is displayed in the dropdown list.
19
+ */
20
+ label: string
21
+ /**
22
+ * The value of the selected item used in the form.
23
+ */
24
+ value: string
25
+ /**
26
+ * If the item is disabled.
27
+ */
28
+ disabled?: boolean
29
+ }
30
+
31
+ export interface SelectCollection {
32
+ /**
33
+ * The items to be displayed in the dropdown list.
34
+ */
35
+ items: SelectCollectionItem[]
36
+ }
37
+
38
+ export interface BaseSelectProps {
39
+ /**
40
+ * The placeholder text when no option is selected.
41
+ */
42
+ placeholder?: string
43
+ }
44
+
45
+ export type SelectProps = SelectRootProps<SelectCollectionItem> &
46
+ BaseSelectProps &
47
+ SelectVariantProps
48
+
49
+ /**
50
+ * The Select component is a dropdown list that allows users to select an
51
+ * option from a list.
52
+ * @definition [Select docs](https://cerberus.digitalu.design/react/select)
53
+ * @definition [ARK docs](https://ark-ui.com/react/docs/components/select)
54
+ * @example
55
+ * ```tsx
56
+ * import { Select, Option, createListCollection } from '@cerberus-design/react'
57
+ *
58
+ * export function SelectBasicPreview() {
59
+ * const collection = createListCollection({
60
+ * items: [
61
+ * { label: 'Hades', value: 'hades' },
62
+ * { label: 'Persephone', value: 'persephone' },
63
+ * { label: 'Zeus', value: 'zeus', disabled: true },
64
+ * ]
65
+ * })
66
+ *
67
+ * return (
68
+ * <Select
69
+ * collection={collection}
70
+ * label="Select Relative"
71
+ * placeholder="Choose option"
72
+ * >
73
+ * {collection.items.map((item) => (
74
+ * <Option key={item.value} item={item} />
75
+ * ))}
76
+ * </Select>
77
+ * )
78
+ * }
79
+ */
80
+ export function Select(props: SelectProps) {
81
+ const { collection, placeholder, ...rootProps } = props
82
+ const { icons } = useCerberusContext()
83
+ const { selectArrow: SelectArrow, invalid: InvalidIcon } = icons
84
+
85
+ return (
86
+ <SelectParts.Root collection={collection} {...rootProps}>
87
+ <SelectParts.Control>
88
+ <SelectParts.Trigger>
89
+ <SelectParts.ValueText placeholder={placeholder} />
90
+
91
+ <HStack>
92
+ <Show when={props.invalid}>
93
+ <InvalidIcon data-part="invalid-icon" />
94
+ </Show>
95
+ <SelectParts.Indicator>
96
+ <SelectArrow />
97
+ </SelectParts.Indicator>
98
+ </HStack>
99
+ </SelectParts.Trigger>
100
+ </SelectParts.Control>
101
+
102
+ <Portal>
103
+ <SelectParts.Positioner>
104
+ <SelectParts.Content size={rootProps.size}>
105
+ {props.children}
106
+ </SelectParts.Content>
107
+ </SelectParts.Positioner>
108
+ </Portal>
109
+
110
+ <SelectParts.HiddenSelect />
111
+ </SelectParts.Root>
112
+ )
113
+ }
114
+
115
+ export interface OptionProps extends SelectItemProps {
116
+ /**
117
+ * The CollectionListItem to be displayed in the dropdown list.
118
+ */
119
+ item: SelectCollectionItem
120
+ }
121
+
122
+ export function Option(props: OptionProps) {
123
+ const { item, ...itemProps } = props
124
+ const { icons } = useCerberusContext()
125
+ const { selectChecked: CheckedIcon } = icons
126
+
127
+ return (
128
+ <SelectParts.Item {...itemProps} item={item}>
129
+ <SelectParts.ItemText>{item?.label}</SelectParts.ItemText>
130
+ <SelectParts.ItemIndicator>
131
+ <CheckedIcon />
132
+ </SelectParts.ItemIndicator>
133
+ </SelectParts.Item>
134
+ )
135
+ }
@@ -0,0 +1,3 @@
1
+ export * from './parts'
2
+ export * from './primitives'
3
+ export * from './switch'
@@ -0,0 +1,53 @@
1
+ import type { ElementType } from 'react'
2
+ import {
3
+ SwitchControl,
4
+ SwitchLabel,
5
+ SwitchRoot,
6
+ SwitchThumb,
7
+ SwitchHiddenInput,
8
+ } from './primitives'
9
+
10
+ /**
11
+ * This module contains the parts of the Radio parts.
12
+ * @module 'radio/parts'
13
+ */
14
+
15
+ interface SwitchPartsValue {
16
+ /**
17
+ * The container of the field.
18
+ */
19
+ Root: ElementType
20
+ /**
21
+ * The label of the field.
22
+ */
23
+ Label: ElementType
24
+ /**
25
+ * The visual input of the switch.
26
+ */
27
+ Control: ElementType
28
+ /**
29
+ * The thumb item of the switch.
30
+ */
31
+ Thumb: ElementType
32
+ /**
33
+ * The native input for the switch.
34
+ */
35
+ HiddenInput: ElementType
36
+ }
37
+
38
+ /**
39
+ * An Object containing the parts of the Radio component. For users that
40
+ * prefer Object component syntax.
41
+ *
42
+ * @remarks
43
+ *
44
+ * When using object component syntax, you import the SwitchParts object and
45
+ * the entire family of components vs. only what you use.
46
+ */
47
+ export const SwitchParts: SwitchPartsValue = {
48
+ Root: SwitchRoot,
49
+ Label: SwitchLabel,
50
+ Control: SwitchControl,
51
+ Thumb: SwitchThumb,
52
+ HiddenInput: SwitchHiddenInput,
53
+ }
@@ -0,0 +1,69 @@
1
+ import {
2
+ Switch,
3
+ type SwitchControlProps,
4
+ type SwitchLabelProps,
5
+ type SwitchRootProps,
6
+ type SwitchThumbProps,
7
+ } from '@ark-ui/react'
8
+ import { cx } from '@cerberus/styled-system/css'
9
+ import {
10
+ switchRecipe,
11
+ type SwitchRecipeVariantProps,
12
+ } from '@cerberus/styled-system/recipes'
13
+
14
+ /**
15
+ * This module contains the Switch primitives
16
+ * @module 'react/switch'
17
+ */
18
+
19
+ /**
20
+ * The SwitchRoot component is the context provider for the Switch components.
21
+ */
22
+ export function SwitchRoot(props: SwitchRootProps & SwitchRecipeVariantProps) {
23
+ const { size, ...rootProps } = props
24
+ const styles = switchRecipe({ size })
25
+ return (
26
+ <Switch.Root
27
+ {...rootProps}
28
+ className={cx(styles.root, rootProps.className)}
29
+ />
30
+ )
31
+ }
32
+
33
+ /**
34
+ * The SwitchLabel component is the label for the Switch.
35
+ */
36
+ export function SwitchLabel(props: SwitchLabelProps) {
37
+ const styles = switchRecipe()
38
+ return (
39
+ <Switch.Label {...props} className={cx(styles.label, props.className)} />
40
+ )
41
+ }
42
+
43
+ /**
44
+ * The SwitchControl component is the visual input for the Switch.
45
+ */
46
+ export function SwitchControl(props: SwitchControlProps) {
47
+ const styles = switchRecipe()
48
+ return (
49
+ <Switch.Control
50
+ {...props}
51
+ className={cx(styles.control, props.className)}
52
+ />
53
+ )
54
+ }
55
+
56
+ /**
57
+ * The SwitchThumb component is the thumb for the Switch.
58
+ */
59
+ export function SwitchThumb(props: SwitchThumbProps) {
60
+ const styles = switchRecipe()
61
+ return (
62
+ <Switch.Thumb {...props} className={cx(styles.thumb, props.className)} />
63
+ )
64
+ }
65
+
66
+ /**
67
+ * The SwitchHiddenInput component is the native input for the Switch.
68
+ */
69
+ export const SwitchHiddenInput = Switch.HiddenInput
@@ -0,0 +1,9 @@
1
+ 'use client'
2
+
3
+ import { useCerberusContext } from '../../context/cerberus'
4
+
5
+ export function SwitchIndicator() {
6
+ const { icons } = useCerberusContext()
7
+ const { toggleChecked: CheckIcon } = icons
8
+ return <CheckIcon />
9
+ }
@@ -0,0 +1,30 @@
1
+ import type { SwitchRootProps } from '@ark-ui/react'
2
+ import type { SwitchRecipeVariantProps } from '@cerberus/styled-system/recipes'
3
+ import { SwitchParts } from './parts'
4
+ import { SwitchIndicator } from './switch-indicator'
5
+
6
+ export type SwitchProps = SwitchRootProps & SwitchRecipeVariantProps
7
+
8
+ /**
9
+ * The Switch component is a and abstraction of the primitives that displays a
10
+ * controlled Switch with a label.
11
+ * @description [Cerberus Docs] https://cerberus.digitalu.design/react/switch
12
+ * @description [Ark Docs] https://ark-ui.com/docs/components/switch
13
+ */
14
+ export function Switch(props: SwitchProps) {
15
+ const { children, ...rootProps } = props
16
+
17
+ return (
18
+ <SwitchParts.Root {...rootProps}>
19
+ <SwitchParts.Control>
20
+ <SwitchParts.Thumb>
21
+ <SwitchIndicator />
22
+ </SwitchParts.Thumb>
23
+ </SwitchParts.Control>
24
+
25
+ <SwitchParts.Label>{children}</SwitchParts.Label>
26
+
27
+ <SwitchParts.HiddenInput />
28
+ </SwitchParts.Root>
29
+ )
30
+ }
@@ -0,0 +1,2 @@
1
+ export * from './parts'
2
+ export * from './primitives'