@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,204 @@
1
+ import {
2
+ Field,
3
+ type FieldHelperTextProps,
4
+ type FieldInputProps as ArkFieldInputProps,
5
+ type FieldLabelProps,
6
+ type FieldRootProps as ArkFieldRootProps,
7
+ type FieldTextareaProps,
8
+ } from '@ark-ui/react/field'
9
+ import type { ReactNode } from 'react'
10
+ import { cx } from '@cerberus/styled-system/css'
11
+ import { field, type FieldVariantProps } from '@cerberus/styled-system/recipes'
12
+ import { FieldStatusIndicator } from './status-indicator'
13
+ import { FieldStartIndicator } from './start-indicator'
14
+
15
+ /**
16
+ * This module contains all the primitives of the Field component.
17
+ * @module 'field'
18
+ */
19
+
20
+ export type FieldRootProps = ArkFieldRootProps & FieldVariantProps
21
+
22
+ /**
23
+ * The context & container for the Field components.
24
+ * @description [Field Docs](https://cerberus.digitalu.design/react/field)
25
+ * @example
26
+ * ```tsx
27
+ * <FieldRoot required ids={{ input: 'exampleId' }}>
28
+ * <FieldLabel>Label</FieldLabel>
29
+ * <FieldInput />
30
+ * </FieldRoot>
31
+ * ```
32
+ */
33
+ export function FieldRoot(props: FieldRootProps) {
34
+ const { size, ...fieldProps } = props
35
+ const styles = field({ size })
36
+ return (
37
+ <Field.Root
38
+ {...fieldProps}
39
+ className={cx(styles.root, fieldProps.className)}
40
+ />
41
+ )
42
+ }
43
+
44
+ /**
45
+ * The label for the Field component.
46
+ * @description [Field Docs](https://cerberus.digitalu.design/react/field)
47
+ * @example
48
+ * ```tsx
49
+ * <FieldRoot>
50
+ * <FieldLabel>Label</FieldLabel>
51
+ * </FieldRoot>
52
+ * ```
53
+ */
54
+ export function FieldLabel(props: FieldLabelProps) {
55
+ const { children, ...nativeProps } = props
56
+ const styles = field()
57
+ return (
58
+ <Field.Label {...nativeProps} className={cx(styles.label, props.className)}>
59
+ {children}
60
+ <Field.RequiredIndicator>(required)</Field.RequiredIndicator>
61
+ </Field.Label>
62
+ )
63
+ }
64
+
65
+ /**
66
+ * The required indicator for the Field component.
67
+ */
68
+ export function FieldRequiredIndicator() {
69
+ return <Field.RequiredIndicator>(required)</Field.RequiredIndicator>
70
+ }
71
+
72
+ export interface FieldInputProps
73
+ extends Omit<ArkFieldInputProps, 'size'>,
74
+ FieldVariantProps {
75
+ /**
76
+ * An optional icon to display at the start of the input.
77
+ */
78
+ startIcon?: ReactNode
79
+ /**
80
+ * An optional icon to display at the end of the input.
81
+ */
82
+ endIcon?: ReactNode
83
+ }
84
+
85
+ /**
86
+ * The input for the Field component.
87
+ * @description [Field Docs](https://cerberus.digitalu.design/react/field)
88
+ * @example
89
+ * ```tsx
90
+ * <FieldRoot>
91
+ * <FieldInput />
92
+ * </FieldRoot>
93
+ * ```
94
+ */
95
+ export function FieldInput(props: FieldInputProps) {
96
+ const { size, startIcon, endIcon, ...fieldProps } = props
97
+ const styles = field({ size })
98
+ const hasStartIcon = Boolean(startIcon)
99
+
100
+ return (
101
+ <div className={styles.inputRoot}>
102
+ <FieldStartIndicator>{startIcon}</FieldStartIndicator>
103
+ <Field.Input
104
+ {...fieldProps}
105
+ {...(hasStartIcon && { 'data-has': 'start-indicator' })}
106
+ className={cx(styles.input, fieldProps.className)}
107
+ />
108
+ <FieldStatusIndicator fallback={endIcon} />
109
+ </div>
110
+ )
111
+ }
112
+
113
+ /**
114
+ * The helper text for the Field component that is shown when the field is
115
+ * valid.
116
+ * @description [Field Docs](https://cerberus.digitalu.design/react/field)
117
+ * @example
118
+ * ```tsx
119
+ * <FieldRoot>
120
+ * <FieldInput />
121
+ * <FieldHelperText>Helper text</FieldHelperText>
122
+ * </FieldRoot>
123
+ * ```
124
+ */
125
+ export function FieldHelperText(props: FieldHelperTextProps) {
126
+ const styles = field()
127
+
128
+ if (!props.children) return null
129
+
130
+ return (
131
+ <Field.HelperText
132
+ {...props}
133
+ className={cx(styles.helperText, props.className)}
134
+ />
135
+ )
136
+ }
137
+
138
+ /**
139
+ * The error text for the Field component that is shown when the field is
140
+ * invalid.
141
+ * @description [Field Docs](https://cerberus.digitalu.design/react/field)
142
+ * @example
143
+ * ```tsx
144
+ * <FieldRoot>
145
+ * <FieldInput />
146
+ * <FieldErrorText>Error text</FieldErrorText>
147
+ * </FieldRoot>
148
+ * ```
149
+ */
150
+ export function FieldErrorText(props: FieldHelperTextProps) {
151
+ const styles = field()
152
+
153
+ if (!props.children) return null
154
+
155
+ return (
156
+ <Field.ErrorText
157
+ {...props}
158
+ className={cx(styles.errorText, props.className)}
159
+ />
160
+ )
161
+ }
162
+
163
+ /**
164
+ * The textarea for the Field component.
165
+ * @description [Field Docs](https://cerberus.digitalu.design/react/field)
166
+ * @example
167
+ * ```tsx
168
+ * <FieldRoot>
169
+ * <FieldTextarea />
170
+ * </FieldRoot>
171
+ * ```
172
+ */
173
+ export function FieldTextarea(props: FieldTextareaProps) {
174
+ const styles = field()
175
+ return (
176
+ <Field.Textarea
177
+ {...props}
178
+ className={cx(styles.textarea, props.className)}
179
+ />
180
+ )
181
+ }
182
+
183
+ /**
184
+ * A named export for the FieldInput component.
185
+ * @description [Field Docs](https://cerberus.digitalu.design/react/field)
186
+ * @example
187
+ * ```tsx
188
+ * import { Input } from '@cerberus/react'
189
+ *
190
+ * <Field
191
+ * ids={{
192
+ * control: 'email',
193
+ * }}
194
+ * label="Enter your email"
195
+ * helperText="We'll never share your email with anyone else."
196
+ * errorText="Email is required."
197
+ * required
198
+ * >
199
+ * <Input type="email" />
200
+ * </Field>
201
+ * ```
202
+ */
203
+ export const Input = FieldInput
204
+ export const Textarea = FieldTextarea
@@ -0,0 +1,23 @@
1
+ import { cx } from '@cerberus/styled-system/css'
2
+ import { field } from '@cerberus/styled-system/recipes'
3
+ import type { HTMLAttributes } from 'react'
4
+
5
+ export type FieldIndicatorProps = HTMLAttributes<HTMLSpanElement>
6
+
7
+ /**
8
+ * The start indicator displays an indicator at the start of the Input.
9
+ * @description [Field Docs](https://cerberus.digitalu.design/react/field)
10
+ */
11
+ export function FieldStartIndicator(props: FieldIndicatorProps) {
12
+ const styles = field()
13
+
14
+ if (!props.children) return null
15
+
16
+ return (
17
+ <span
18
+ {...props}
19
+ data-part="start-indicator"
20
+ className={cx(props.className, styles.startIndicator)}
21
+ />
22
+ )
23
+ }
@@ -0,0 +1,58 @@
1
+ 'use client'
2
+
3
+ import { useFieldContext } from '@ark-ui/react'
4
+ import { cx } from '@cerberus/styled-system/css'
5
+ import { field } from '@cerberus/styled-system/recipes'
6
+ import { useCerberusContext } from '../../context/cerberus'
7
+ import type { HTMLAttributes, ReactNode } from 'react'
8
+
9
+ export interface FieldStatusIndicatorProps
10
+ extends HTMLAttributes<HTMLSpanElement> {
11
+ /**
12
+ * The fallback content to display when the field is valid.
13
+ */
14
+ fallback?: ReactNode
15
+ }
16
+
17
+ /**
18
+ * The invalid status indicator for the Field component.
19
+ * @description [Field Docs](https://cerberus.digitalu.design/react/field)
20
+ * @example
21
+ * ```tsx
22
+ * <FieldRoot>
23
+ * <FieldStatusIndicator />
24
+ * </FieldRoot>
25
+ * ```
26
+ */
27
+ export function FieldStatusIndicator(props: FieldStatusIndicatorProps) {
28
+ const { fallback, ...nativeProps } = props
29
+ const styles = field()
30
+ const fieldContext = useFieldContext()
31
+
32
+ const { icons } = useCerberusContext()
33
+ const { invalid: InvalidIcon } = icons
34
+
35
+ if (fieldContext.invalid) {
36
+ return (
37
+ <span
38
+ {...nativeProps}
39
+ aria-hidden="true"
40
+ data-invalid
41
+ className={cx(nativeProps.className, styles.statusIndicator)}
42
+ >
43
+ <InvalidIcon />
44
+ </span>
45
+ )
46
+ }
47
+
48
+ return (
49
+ <span
50
+ {...nativeProps}
51
+ aria-hidden="true"
52
+ data-part="end-indicator"
53
+ className={cx(nativeProps.className, styles.endIndicator)}
54
+ >
55
+ {fallback}
56
+ </span>
57
+ )
58
+ }
@@ -0,0 +1,55 @@
1
+ import type { FieldsetRootProps } from '@ark-ui/react'
2
+ import { splitProps } from '../../utils'
3
+ import { FieldsetParts } from './parts'
4
+ import type { FieldsetVariantProps } from '@cerberus/styled-system/recipes'
5
+
6
+ /**
7
+ * This module contains the Fieldset component.
8
+ * @module Fieldset
9
+ */
10
+
11
+ export interface FieldsetProps extends FieldsetRootProps, FieldsetVariantProps {
12
+ /**
13
+ * The legend/title/label of the fieldset group.
14
+ */
15
+ legend?: string
16
+ /**
17
+ * The description text for the fieldset group.
18
+ */
19
+ helperText?: string
20
+ /**
21
+ * The error text for the fieldset group shown when the field is invalid.
22
+ */
23
+ errorText?: string
24
+ }
25
+
26
+ /**
27
+ * A component used for grouping related fields in a form that is an
28
+ * abstraction of the Fieldset primitives.
29
+ * @description [Fieldset Docs](https://cerberus.digitalu.design/react/fieldset)
30
+ * @description [Primitive Docs](https://ark-ui.com/react/docs/components/fieldset)
31
+ */
32
+ export function Fieldset(props: FieldsetProps) {
33
+ const [fieldsetProps, { usage }, rootProps] = splitProps(
34
+ props,
35
+ ['legend', 'helperText', 'errorText', 'children'],
36
+ ['usage'],
37
+ )
38
+
39
+ return (
40
+ <FieldsetParts.Root {...rootProps}>
41
+ <FieldsetParts.Legend usage={usage}>
42
+ {fieldsetProps.legend}
43
+ </FieldsetParts.Legend>
44
+ <FieldsetParts.HelperText usage={usage}>
45
+ {fieldsetProps.helperText}
46
+ </FieldsetParts.HelperText>
47
+
48
+ {fieldsetProps.children}
49
+
50
+ <FieldsetParts.ErrorText>
51
+ {fieldsetProps.errorText}
52
+ </FieldsetParts.ErrorText>
53
+ </FieldsetParts.Root>
54
+ )
55
+ }
@@ -0,0 +1,3 @@
1
+ export * from './fieldset'
2
+ export * from './parts'
3
+ export * from './primitives'
@@ -0,0 +1,47 @@
1
+ import type { ElementType } from 'react'
2
+ import {
3
+ FieldsetErrorText,
4
+ FieldsetHelperText,
5
+ FieldsetLegend,
6
+ FieldsetRoot,
7
+ } from './primitives'
8
+
9
+ /**
10
+ * This module contains the parts of the Field component.
11
+ * @module 'field/parts'
12
+ */
13
+
14
+ interface FieldsetPartsValue {
15
+ /**
16
+ * The container of the field.
17
+ */
18
+ Root: ElementType
19
+ /**
20
+ * The label of the field.
21
+ */
22
+ Legend: ElementType
23
+ /**
24
+ * The text that displays when the field is valid.
25
+ */
26
+ HelperText: ElementType
27
+ /**
28
+ * The text that displays when the field is invalid.
29
+ */
30
+ ErrorText: ElementType
31
+ }
32
+
33
+ /**
34
+ * An Object containing the parts of the Field component. For users that
35
+ * prefer Object component syntax.
36
+ *
37
+ * @remarks
38
+ *
39
+ * When using object component syntax, you import the FieldParts object and
40
+ * the entire family of components vs. only what you use.
41
+ */
42
+ export const FieldsetParts: FieldsetPartsValue = {
43
+ Root: FieldsetRoot,
44
+ Legend: FieldsetLegend,
45
+ HelperText: FieldsetHelperText,
46
+ ErrorText: FieldsetErrorText,
47
+ }
@@ -0,0 +1,79 @@
1
+ import {
2
+ Fieldset,
3
+ type FieldsetHelperTextProps,
4
+ type FieldsetLegendProps,
5
+ type FieldsetRootProps,
6
+ } from '@ark-ui/react/fieldset'
7
+ import { cx } from '@cerberus/styled-system/css'
8
+ import {
9
+ fieldset,
10
+ type FieldsetVariantProps,
11
+ } from '@cerberus/styled-system/recipes'
12
+
13
+ /**
14
+ * This module contains all the primitives of the Fieldset component.
15
+ * @module 'react/fieldset'
16
+ */
17
+
18
+ /**
19
+ * The context & container for the Fieldset components.
20
+ * @description [Fieldset Docs](https://cerberus.digitalu.design/react/fieldset)
21
+ * @description [Primitive Docs](https://ark-ui.com/react/docs/components/fieldset)
22
+ */
23
+ export function FieldsetRoot(props: FieldsetRootProps) {
24
+ const styles = fieldset()
25
+ return (
26
+ <Fieldset.Root {...props} className={cx(styles.root, props.className)} />
27
+ )
28
+ }
29
+
30
+ /**
31
+ * The legend element for the Fieldset group.
32
+ * @description [Fieldset Docs](https://cerberus.digitalu.design/react/fieldset)
33
+ * @description [Primitive Docs](https://ark-ui.com/react/docs/components/fieldset)
34
+ */
35
+ export function FieldsetLegend(
36
+ props: FieldsetLegendProps & FieldsetVariantProps,
37
+ ) {
38
+ const { usage, ...legendProps } = props
39
+ const styles = fieldset({ usage })
40
+ return (
41
+ <Fieldset.Legend
42
+ {...legendProps}
43
+ className={cx(styles.legend, legendProps.className)}
44
+ />
45
+ )
46
+ }
47
+
48
+ /**
49
+ * The description element for the Fieldset group.
50
+ * @description [Fieldset Docs](https://cerberus.digitalu.design/react/fieldset)
51
+ * @description [Primitive Docs](https://ark-ui.com/react/docs/components/fieldset)
52
+ */
53
+ export function FieldsetHelperText(
54
+ props: FieldsetHelperTextProps & FieldsetVariantProps,
55
+ ) {
56
+ const { usage, ...helperTextProps } = props
57
+ const styles = fieldset({ usage })
58
+ return (
59
+ <Fieldset.HelperText
60
+ {...helperTextProps}
61
+ className={cx(styles.helperText, helperTextProps.className)}
62
+ />
63
+ )
64
+ }
65
+
66
+ /**
67
+ * The error text element for the Fieldset group.
68
+ * @description [Fieldset Docs](https://cerberus.digitalu.design/react/fieldset)
69
+ * @description [Primitive Docs](https://ark-ui.com/react/docs/components/fieldset)
70
+ */
71
+ export function FieldsetErrorText(props: FieldsetHelperTextProps) {
72
+ const styles = fieldset()
73
+ return (
74
+ <Fieldset.ErrorText
75
+ {...props}
76
+ className={cx(styles.errorText, props.className)}
77
+ />
78
+ )
79
+ }
@@ -0,0 +1,38 @@
1
+ import type { ReactNode, JSX } from 'react'
2
+
3
+ export interface ForProps<T extends readonly unknown[], U extends JSX.Element> {
4
+ /**
5
+ * The array to iterate over.
6
+ */
7
+ each: T | undefined | null | false
8
+ /**
9
+ * The fallback to render when the array is empty.
10
+ */
11
+ fallback?: JSX.Element
12
+ /**
13
+ * The children to render for each item in the array.
14
+ */
15
+ children: (item: T[number], index: number) => U
16
+ }
17
+
18
+ /**
19
+ * The For component is used to iterate over an array and render a list of
20
+ * components or display a fallback when the array is empty.
21
+ * Inspired by the `<For>` component from SolidJS.
22
+ *
23
+ * @example
24
+ * ```tsx
25
+ * <For each={['a', 'b', 'c']}>
26
+ * {(item, index) => <div key={index}>{item}</div>}
27
+ * </For>
28
+ * ```
29
+ */
30
+ export function For<T extends readonly unknown[], U extends JSX.Element>(
31
+ props: ForProps<T, U>,
32
+ ) {
33
+ if (!props.each || !props.each.length) {
34
+ return props.fallback || null
35
+ }
36
+
37
+ return props.each?.map(props.children) as ReactNode
38
+ }
@@ -0,0 +1,3 @@
1
+ export * from './parts'
2
+ export * from './primitives'
3
+ export * from './radio'
@@ -0,0 +1,65 @@
1
+ import type { ElementType } from 'react'
2
+ import {
3
+ RadioGroupRoot,
4
+ RadioGroupLabel,
5
+ RadioGroupIndicator,
6
+ RadioGroupItem,
7
+ RadioGroupItemText,
8
+ RadioGroupItemControl,
9
+ RadioGroupItemHiddenInput,
10
+ } from './primitives'
11
+
12
+ /**
13
+ * This module contains the parts of the Radio parts.
14
+ * @module 'radio/parts'
15
+ */
16
+
17
+ interface RadioPartsValue {
18
+ /**
19
+ * The container of the field.
20
+ */
21
+ Root: ElementType
22
+ /**
23
+ * The label of the field.
24
+ */
25
+ Label: ElementType
26
+ /**
27
+ * The indicator that appears when a radio is checked.
28
+ */
29
+ Indicator: ElementType
30
+ /**
31
+ * An individual radio item of the field.
32
+ */
33
+ Item: ElementType
34
+ /**
35
+ * The text that labels a single radio of the field.
36
+ */
37
+ ItemText: ElementType
38
+ /**
39
+ * The visual radio control of the field.
40
+ */
41
+ ItemControl: ElementType
42
+ /**
43
+ * The native input for a radio item in the field.
44
+ */
45
+ ItemHiddenInput: ElementType
46
+ }
47
+
48
+ /**
49
+ * An Object containing the parts of the Radio component. For users that
50
+ * prefer Object component syntax.
51
+ *
52
+ * @remarks
53
+ *
54
+ * When using object component syntax, you import the RadioParts object and
55
+ * the entire family of components vs. only what you use.
56
+ */
57
+ export const RadioParts: RadioPartsValue = {
58
+ Root: RadioGroupRoot,
59
+ Label: RadioGroupLabel,
60
+ Indicator: RadioGroupIndicator,
61
+ Item: RadioGroupItem,
62
+ ItemText: RadioGroupItemText,
63
+ ItemControl: RadioGroupItemControl,
64
+ ItemHiddenInput: RadioGroupItemHiddenInput,
65
+ }
@@ -0,0 +1,123 @@
1
+ import {
2
+ RadioGroup as ArkRadioGroup,
3
+ type RadioGroupIndicatorProps,
4
+ type RadioGroupItemControlProps,
5
+ type RadioGroupItemHiddenInputProps,
6
+ type RadioGroupItemProps,
7
+ type RadioGroupItemTextProps,
8
+ type RadioGroupLabelProps,
9
+ type RadioGroupRootProps,
10
+ } from '@ark-ui/react/radio-group'
11
+ import { cx } from '@cerberus/styled-system/css'
12
+ import {
13
+ radioGroup,
14
+ type RadioGroupVariantProps,
15
+ } from '@cerberus/styled-system/recipes'
16
+
17
+ /**
18
+ * This module contains the Radio primitives
19
+ * @module 'react/radio'
20
+ */
21
+
22
+ /**
23
+ * The RadioGroupRoot component is used to group radio buttons together.
24
+ */
25
+ export function RadioGroupRoot(
26
+ props: RadioGroupRootProps & RadioGroupVariantProps,
27
+ ) {
28
+ const { size, orientation, ...rootProps } = props
29
+ const styles = radioGroup({ size, orientation })
30
+ return (
31
+ <ArkRadioGroup.Root
32
+ {...rootProps}
33
+ className={cx(styles.root, rootProps.className)}
34
+ />
35
+ )
36
+ }
37
+
38
+ /**
39
+ * The RadioGroupLabel component is used to label a group of radio buttons.
40
+ */
41
+ export function RadioGroupLabel(props: RadioGroupLabelProps) {
42
+ const styles = radioGroup()
43
+ return (
44
+ <ArkRadioGroup.Label
45
+ {...props}
46
+ className={cx(styles.label, props.className)}
47
+ />
48
+ )
49
+ }
50
+
51
+ /**
52
+ * The RadioGroupIndicator component is used to indicate the selected radio
53
+ * button in a group.
54
+ */
55
+ export function RadioGroupIndicator(props: RadioGroupIndicatorProps) {
56
+ const styles = radioGroup()
57
+ return (
58
+ <ArkRadioGroup.Indicator
59
+ {...props}
60
+ className={cx(styles.indicator, props.className)}
61
+ />
62
+ )
63
+ }
64
+
65
+ /**
66
+ * The RadioGroupItem component is used to render a single radio button in a
67
+ * group.
68
+ */
69
+ export function RadioGroupItem(props: RadioGroupItemProps) {
70
+ const styles = radioGroup()
71
+ return (
72
+ <ArkRadioGroup.Item
73
+ {...props}
74
+ className={cx(styles.item, props.className)}
75
+ />
76
+ )
77
+ }
78
+
79
+ /**
80
+ * The RadioGroupItemText component is used to render the text label for a
81
+ * single radio button in a group.
82
+ */
83
+ export function RadioGroupItemText(
84
+ props: RadioGroupItemTextProps & RadioGroupVariantProps,
85
+ ) {
86
+ const { size, orientation, ...itemTextProps } = props
87
+ const styles = radioGroup({ size, orientation })
88
+ return (
89
+ <ArkRadioGroup.ItemText
90
+ {...itemTextProps}
91
+ className={cx(styles.itemText, itemTextProps.className)}
92
+ />
93
+ )
94
+ }
95
+
96
+ /**
97
+ * The RadioGroupItemControl component is used to render the control for a
98
+ * single radio button in a group.
99
+ */
100
+ export function RadioGroupItemControl(
101
+ props: RadioGroupItemControlProps & RadioGroupVariantProps,
102
+ ) {
103
+ const { size, orientation, ...itemControlProps } = props
104
+ const styles = radioGroup({ size, orientation })
105
+ return (
106
+ <ArkRadioGroup.ItemControl
107
+ {...itemControlProps}
108
+ className={cx(styles.itemControl, itemControlProps.className)}
109
+ />
110
+ )
111
+ }
112
+
113
+ /**
114
+ * The RadioGroupItemHiddenInput component is used to render the hidden input
115
+ * for a single radio button in a group.
116
+ */
117
+ export function RadioGroupItemHiddenInput(
118
+ props: RadioGroupItemHiddenInputProps,
119
+ ) {
120
+ return <ArkRadioGroup.ItemHiddenInput {...props} />
121
+ }
122
+
123
+ export const RadioGroup = RadioGroupRoot