@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
@@ -25,55 +25,65 @@ __export(confirm_modal_exports, {
25
25
  useConfirmModal: () => useConfirmModal
26
26
  });
27
27
  module.exports = __toCommonJS(confirm_modal_exports);
28
- var import_react5 = require("react");
28
+ var import_react6 = require("react");
29
29
 
30
- // src/components/Button.tsx
30
+ // src/components/button/button.tsx
31
+ var import_react2 = require("react");
31
32
  var import_css = require("@cerberus/styled-system/css");
32
33
  var import_recipes = require("@cerberus/styled-system/recipes");
34
+ var import_jsx = require("@cerberus/styled-system/jsx");
35
+
36
+ // src/components/Show.tsx
37
+ var import_react = require("react");
38
+ function Show(props) {
39
+ const { when, children, fallback } = props;
40
+ const condition = (0, import_react.useMemo)(() => when ?? false, [when]);
41
+ return (0, import_react.useMemo)(() => {
42
+ if (condition) return children;
43
+ return fallback ?? null;
44
+ }, [condition, children, fallback]);
45
+ }
46
+
47
+ // src/components/button/button.tsx
33
48
  var import_jsx_runtime = require("react/jsx-runtime");
49
+ var ButtonContext = (0, import_react2.createContext)({
50
+ pending: false
51
+ });
34
52
  function Button(props) {
35
- const { palette, usage, shape, ...nativeProps } = props;
36
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
53
+ const { palette, usage, shape, size, pending = false, ...nativeProps } = props;
54
+ const value = (0, import_react2.useMemo)(() => ({ pending }), [pending]);
55
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ButtonContext.Provider, { value, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
37
56
  "button",
38
57
  {
39
58
  ...nativeProps,
59
+ disabled: pending || nativeProps.disabled,
40
60
  className: (0, import_css.cx)(
41
61
  nativeProps.className,
42
62
  (0, import_recipes.button)({
43
63
  palette,
44
64
  usage,
45
- shape
65
+ shape,
66
+ size
46
67
  })
47
68
  )
48
69
  }
49
- );
70
+ ) });
50
71
  }
51
72
 
52
73
  // src/context/confirm-modal.tsx
53
74
  var import_css4 = require("@cerberus/styled-system/css");
54
75
 
55
- // src/components/Show.tsx
56
- var import_react = require("react");
57
- function Show(props) {
58
- const { when, children, fallback } = props;
59
- const condition = (0, import_react.useMemo)(() => when ?? false, [when]);
60
- return (0, import_react.useMemo)(() => {
61
- if (condition) return children;
62
- return fallback ?? null;
63
- }, [condition, children, fallback]);
64
- }
65
-
66
76
  // src/components/Avatar.tsx
67
77
  var import_css2 = require("@cerberus/styled-system/css");
68
78
  var import_patterns = require("@cerberus/styled-system/patterns");
69
79
  var import_recipes2 = require("@cerberus/styled-system/recipes");
70
80
 
71
81
  // src/context/cerberus.tsx
72
- var import_react2 = require("react");
82
+ var import_react3 = require("react");
73
83
  var import_jsx_runtime2 = require("react/jsx-runtime");
74
- var CerberusContext = (0, import_react2.createContext)(null);
84
+ var CerberusContext = (0, import_react3.createContext)(null);
75
85
  function useCerberusContext() {
76
- const context = (0, import_react2.useContext)(CerberusContext);
86
+ const context = (0, import_react3.useContext)(CerberusContext);
77
87
  if (!context) {
78
88
  throw new Error("useCerberus must be used within a CerberusProvider");
79
89
  }
@@ -170,21 +180,21 @@ var iconSizeMap = {
170
180
  };
171
181
 
172
182
  // src/context/confirm-modal.tsx
173
- var import_jsx = require("@cerberus/styled-system/jsx");
183
+ var import_jsx2 = require("@cerberus/styled-system/jsx");
174
184
 
175
185
  // src/components/Dialog.tsx
176
- var import_react4 = require("@ark-ui/react");
186
+ var import_react5 = require("@ark-ui/react");
177
187
  var import_recipes3 = require("@cerberus/styled-system/recipes");
178
188
 
179
189
  // src/components/Portal.tsx
180
- var import_react3 = require("@ark-ui/react");
181
- var Portal = import_react3.Portal;
190
+ var import_react4 = require("@ark-ui/react");
191
+ var Portal = import_react4.Portal;
182
192
 
183
193
  // src/components/Dialog.tsx
184
194
  var import_css3 = require("@cerberus/styled-system/css");
185
195
  var import_jsx_runtime4 = require("react/jsx-runtime");
186
196
  function DialogProvider(props) {
187
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react4.Dialog.Root, { ...props });
197
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react5.Dialog.Root, { ...props });
188
198
  }
189
199
  function Dialog(props) {
190
200
  const { size, ...contentProps } = props;
@@ -196,39 +206,39 @@ function Dialog(props) {
196
206
  }
197
207
  function DialogHeading(props) {
198
208
  const styles = (0, import_recipes3.dialog)();
199
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react4.Dialog.Title, { ...props, className: (0, import_css3.cx)(props.className, styles.title) });
209
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react5.Dialog.Title, { ...props, className: (0, import_css3.cx)(props.className, styles.title) });
200
210
  }
201
211
  function DialogDescription(props) {
202
212
  const styles = (0, import_recipes3.dialog)();
203
213
  return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
204
- import_react4.Dialog.Description,
214
+ import_react5.Dialog.Description,
205
215
  {
206
216
  ...props,
207
217
  className: (0, import_css3.cx)(props.className, styles.description)
208
218
  }
209
219
  );
210
220
  }
211
- var DialogTrigger = import_react4.Dialog.Trigger;
212
- var DialogCloseTrigger = import_react4.Dialog.CloseTrigger;
213
- var DialogBackdrop = import_react4.Dialog.Backdrop;
214
- var DialogPositioner = import_react4.Dialog.Positioner;
215
- var DialogContent = import_react4.Dialog.Content;
221
+ var DialogTrigger = import_react5.Dialog.Trigger;
222
+ var DialogCloseTrigger = import_react5.Dialog.CloseTrigger;
223
+ var DialogBackdrop = import_react5.Dialog.Backdrop;
224
+ var DialogPositioner = import_react5.Dialog.Positioner;
225
+ var DialogContent = import_react5.Dialog.Content;
216
226
 
217
227
  // src/context/confirm-modal.tsx
218
228
  var import_jsx_runtime5 = require("react/jsx-runtime");
219
- var ConfirmModalContext = (0, import_react5.createContext)(null);
229
+ var ConfirmModalContext = (0, import_react6.createContext)(null);
220
230
  function ConfirmModal(props) {
221
- const [open, setOpen] = (0, import_react5.useState)(false);
222
- const [content, setContent] = (0, import_react5.useState)(null);
223
- const resolveRef = (0, import_react5.useRef)(null);
231
+ const [open, setOpen] = (0, import_react6.useState)(false);
232
+ const [content, setContent] = (0, import_react6.useState)(null);
233
+ const resolveRef = (0, import_react6.useRef)(null);
224
234
  const kind = (content == null ? void 0 : content.kind) ?? "non-destructive";
225
235
  const { icons } = useCerberusContext();
226
236
  const { confirmModal: ConfirmIcon } = icons;
227
- const palette = (0, import_react5.useMemo)(
237
+ const palette = (0, import_react6.useMemo)(
228
238
  () => kind === "destructive" ? "danger" : "action",
229
239
  [kind]
230
240
  );
231
- const handleChoice = (0, import_react5.useCallback)(
241
+ const handleChoice = (0, import_react6.useCallback)(
232
242
  (e) => {
233
243
  var _a, _b;
234
244
  const target = e.currentTarget;
@@ -240,7 +250,7 @@ function ConfirmModal(props) {
240
250
  },
241
251
  [setOpen]
242
252
  );
243
- const handleShow = (0, import_react5.useCallback)(
253
+ const handleShow = (0, import_react6.useCallback)(
244
254
  (options) => {
245
255
  return new Promise((resolve) => {
246
256
  setContent({ ...options });
@@ -250,7 +260,7 @@ function ConfirmModal(props) {
250
260
  },
251
261
  [setOpen, setContent]
252
262
  );
253
- const value = (0, import_react5.useMemo)(
263
+ const value = (0, import_react6.useMemo)(
254
264
  () => ({
255
265
  show: handleShow
256
266
  }),
@@ -258,10 +268,10 @@ function ConfirmModal(props) {
258
268
  );
259
269
  return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(ConfirmModalContext.Provider, { value, children: [
260
270
  props.children,
261
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(DialogProvider, { open, onOpenChange: (e) => setOpen(e.open), children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Dialog, { size: "sm", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx.VStack, { gap: "xl", w: "full", children: [
262
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx.VStack, { alignItems: "flex-start", gap: "md", w: "full", children: [
271
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(DialogProvider, { open, onOpenChange: (e) => setOpen(e.open), children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Dialog, { size: "sm", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx2.VStack, { gap: "xl", w: "full", children: [
272
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx2.VStack, { alignItems: "flex-start", gap: "md", w: "full", children: [
263
273
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
264
- import_jsx.HStack,
274
+ import_jsx2.HStack,
265
275
  {
266
276
  alignSelf: "center",
267
277
  justify: "center",
@@ -296,7 +306,7 @@ function ConfirmModal(props) {
296
306
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(DialogHeading, { children: content == null ? void 0 : content.heading }),
297
307
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(DialogDescription, { children: content == null ? void 0 : content.description })
298
308
  ] }),
299
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx.HStack, { gap: "4", w: "full", children: [
309
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx2.HStack, { gap: "4", w: "full", children: [
300
310
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
301
311
  Button,
302
312
  {
@@ -329,7 +339,7 @@ function ConfirmModal(props) {
329
339
  ] });
330
340
  }
331
341
  function useConfirmModal() {
332
- const context = (0, import_react5.useContext)(ConfirmModalContext);
342
+ const context = (0, import_react6.useContext)(ConfirmModalContext);
333
343
  if (context === null) {
334
344
  throw new Error(
335
345
  "useConfirmModal must be used within a ConfirmModal Provider"
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/context/confirm-modal.tsx","../../../src/components/Button.tsx","../../../src/components/Show.tsx","../../../src/components/Avatar.tsx","../../../src/context/cerberus.tsx","../../../src/components/Dialog.tsx","../../../src/components/Portal.tsx"],"sourcesContent":["'use client'\n\nimport {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useRef,\n useState,\n type MouseEvent,\n type PropsWithChildren,\n type ReactNode,\n} from 'react'\nimport { Button } from '../components/Button'\nimport { css } from '@cerberus/styled-system/css'\nimport { Show } from '../components/Show'\nimport { Avatar } from '../components/Avatar'\nimport { HStack, VStack } from '@cerberus/styled-system/jsx'\nimport { useCerberusContext } from './cerberus'\nimport {\n Dialog,\n DialogCloseTrigger,\n DialogDescription,\n DialogHeading,\n DialogProvider,\n} from '../components/Dialog'\n\n/**\n * This module provides a context and hook for the confirm modal.\n * @module\n */\n\nexport interface BaseConfirmOptions {\n /**\n * The heading of the confirm modal.\n */\n heading: string\n /**\n * The text for the action button.\n */\n actionText: string\n /**\n * The text for the cancel button.\n */\n cancelText: string\n}\n\nexport interface DestructiveConfirmOptions extends BaseConfirmOptions {\n /**\n * The kind of confirm modal to show.\n */\n kind?: 'destructive'\n /**\n * The description of the confirm modal. Can only be a string for destructive confirm modals.\n */\n description?: string\n}\n\nexport interface NonDestructiveConfirmModalOptions extends BaseConfirmOptions {\n /**\n * The kind of confirm modal to show.\n * @default 'non-destructive'\n */\n kind?: 'non-destructive'\n /**\n * The description of the confirm modal. Can be a ReactNode for non-destructive kind if you need to display text links.\n * @example\n * ```tsx\n * description: <>Use a Fragment because we put the content within a Paragraph tag.</>\n */\n description?: ReactNode\n}\n\nexport type ShowConfirmModalOptions =\n | NonDestructiveConfirmModalOptions\n | DestructiveConfirmOptions\n\nexport type ShowResult =\n | ((value: boolean | PromiseLike<boolean>) => void)\n | null\n\nexport interface ConfirmModalValue {\n show: (options: ShowConfirmModalOptions) => Promise<boolean>\n}\n\nconst ConfirmModalContext = createContext<ConfirmModalValue | null>(null)\n\nexport type ConfirmModalProviderProps = PropsWithChildren<unknown>\n\n/**\n * Provides a confirm modal to the app.\n * @see https://cerberus.digitalu.design/react/confirm-modal\n * @example\n * ```tsx\n * // Wrap the Provider around the root of the feature.\n * <ConfirmModal>\n * <SomeFeatureSection />\n * </ConfirmModal>\n *\n * // Use the hook to show the confirm modal.\n * const confirm = useConfirmModal()\n *\n * const handleClick = useCallback(async () => {\n * const userConsent = await confirm.show({\n * heading: 'Add new payment method?',\n * description:\n * 'This will add a new payment method to your account to be billed for future purchases.',\n * actionText: 'Yes, add payment method',\n * cancelText: 'No, cancel',\n * })\n * setConsent(userConsent)\n * }, [confirm])\n * ```\n */\nexport function ConfirmModal(\n props: PropsWithChildren<ConfirmModalProviderProps>,\n) {\n const [open, setOpen] = useState<boolean>(false)\n const [content, setContent] = useState<ShowConfirmModalOptions | null>(null)\n const resolveRef = useRef<ShowResult>(null)\n const kind = content?.kind ?? 'non-destructive'\n\n const { icons } = useCerberusContext()\n const { confirmModal: ConfirmIcon } = icons\n\n const palette = useMemo(\n () => (kind === 'destructive' ? 'danger' : 'action'),\n [kind],\n )\n\n const handleChoice = useCallback(\n (e: MouseEvent<HTMLButtonElement>) => {\n const target = e.currentTarget as HTMLButtonElement\n if (target.value === 'true') {\n resolveRef.current?.(true)\n }\n resolveRef.current?.(false)\n setOpen(false)\n },\n [setOpen],\n )\n\n const handleShow = useCallback(\n (options: ShowConfirmModalOptions) => {\n return new Promise<boolean>((resolve) => {\n setContent({ ...options })\n setOpen(true)\n resolveRef.current = resolve\n })\n },\n [setOpen, setContent],\n )\n\n const value = useMemo(\n () => ({\n show: handleShow,\n }),\n [handleShow],\n )\n\n return (\n <ConfirmModalContext.Provider value={value}>\n {props.children}\n\n <DialogProvider open={open} onOpenChange={(e) => setOpen(e.open)}>\n <Dialog size=\"sm\">\n <VStack gap=\"xl\" w=\"full\">\n <VStack alignItems=\"flex-start\" gap=\"md\" w=\"full\">\n <HStack\n alignSelf=\"center\"\n justify=\"center\"\n paddingBlockEnd=\"md\"\n w=\"full\"\n >\n <Show\n when={palette === 'danger'}\n fallback={\n <Avatar\n ariaLabel=\"\"\n gradient=\"charon-light\"\n icon={<ConfirmIcon size={24} />}\n src=\"\"\n />\n }\n >\n <Avatar\n ariaLabel=\"\"\n gradient=\"hades-dark\"\n icon={<ConfirmIcon size={24} />}\n src=\"\"\n />\n </Show>\n </HStack>\n <DialogHeading>{content?.heading}</DialogHeading>\n <DialogDescription>{content?.description}</DialogDescription>\n </VStack>\n\n <HStack gap=\"4\" w=\"full\">\n <Button\n autoFocus\n className={css({\n w: '1/2',\n })}\n name=\"confirm\"\n onClick={handleChoice}\n palette={palette}\n value=\"true\"\n >\n {content?.actionText}\n </Button>\n <DialogCloseTrigger asChild>\n <Button\n className={css({\n w: '1/2',\n })}\n name=\"cancel\"\n onClick={handleChoice}\n usage=\"outlined\"\n value=\"false\"\n >\n {content?.cancelText}\n </Button>\n </DialogCloseTrigger>\n </HStack>\n </VStack>\n </Dialog>\n </DialogProvider>\n </ConfirmModalContext.Provider>\n )\n}\n\nexport function useConfirmModal(): ConfirmModalValue {\n const context = useContext(ConfirmModalContext)\n if (context === null) {\n throw new Error(\n 'useConfirmModal must be used within a ConfirmModal Provider',\n )\n }\n return context\n}\n","import type { ButtonHTMLAttributes } from 'react'\nimport { cx } from '@cerberus/styled-system/css'\nimport {\n button,\n type ButtonVariantProps,\n} from '@cerberus/styled-system/recipes'\n\n/**\n * This module contains the Button component.\n * @module\n */\n\nexport type ButtonProps = ButtonHTMLAttributes<HTMLButtonElement> &\n ButtonVariantProps\n\n/**\n * A component that allows the user to perform actions\n * @see https://cerberus.digitalu.design/react/button\n */\nexport function Button(props: ButtonProps): JSX.Element {\n const { palette, usage, shape, ...nativeProps } = props\n return (\n <button\n {...nativeProps}\n className={cx(\n nativeProps.className,\n button({\n palette,\n usage,\n shape,\n }),\n )}\n />\n )\n}\n","'use client'\n\nimport { useMemo, type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: boolean | null | undefined\n /**\n * The children to render when the condition is false.\n */\n fallback?: ReactNode\n}\n\n/**\n * Conditionally render a memoized version of the children or optional fallback\n * content.\n * @see https://cerberus.digitalu.design/react/show\n * @example\n * ```tsx\n * <Show when={isLoggedIn} fallback={<Navigate to=\"/login\" />}>\n * <Dashboard />\n * </Show>\n */\nexport function Show(props: PropsWithChildren<ShowProps>): ReactNode {\n const { when, children, fallback } = props\n const condition = useMemo(() => when ?? false, [when])\n\n return useMemo(() => {\n if (condition) return children\n return fallback ?? null\n }, [condition, children, fallback])\n}\n","'use client'\n\nimport { css, cx } from '@cerberus/styled-system/css'\nimport { circle } from '@cerberus/styled-system/patterns'\nimport {\n avatar,\n type AvatarVariantProps,\n} from '@cerberus/styled-system/recipes'\nimport type { HtmlHTMLAttributes, ReactNode } from 'react'\nimport { Show } from './Show'\nimport { useCerberusContext } from '../context/cerberus'\n\n/**\n * This module contains the Avatar component.\n * @module\n */\n\nexport type SharedAvatarProps = {\n /**\n * An optional icon to show when no src or ariaLabel is provided.\n */\n icon?: ReactNode\n /**\n * The size of the avatar.\n */\n width?: number\n /**\n * The size of the avatar.\n */\n height?: number\n}\nexport type AvatarImageProps = HtmlHTMLAttributes<HTMLImageElement> &\n SharedAvatarProps & {\n /**\n * The aria-label for the avatar needed for accessibility.\n */\n ariaLabel: string\n /**\n * An optional element to replace the image. Recommended for Next.js Image component.\n */\n as?: never\n /**\n * The source of the image.\n */\n src: string\n }\nexport type AvatarAsProps = SharedAvatarProps & {\n /**\n * An optional element to replace the image. Recommended for Next.js Image component.\n */\n as: ReactNode\n /**\n * The aria-label for the avatar needed for accessibility.\n */\n ariaLabel?: never\n /**\n * The source of the image.\n */\n src?: never\n}\n\nexport type AvatarProps = (HtmlHTMLAttributes<HTMLDivElement> &\n AvatarVariantProps) &\n (AvatarImageProps | AvatarAsProps)\n\n/**\n * The Avatar component is used to represent a user or entity. It will show an image if src provided, otherwise it will show the ariaLabel of the ariaLabel. If the ariaLabel is empty, it will show a `defineIcons().avatar` icon.\n * @see https://cerberus.digitalu.design/react/avatar\n * @example\n * ```tsx\n * <Avatar\n * ariaLabel=\"Protector Cerberus\"\n * src=\"https://cerberus.digitalu.design/logo.svg\"\n * />\n * ```\n */\nexport function Avatar(props: AvatarProps) {\n const {\n ariaLabel,\n as,\n gradient,\n size,\n src,\n width,\n height,\n icon,\n ...nativeProps\n } = props\n const { icons } = useCerberusContext()\n const { avatar: AvatarIcon } = icons\n const initials = (ariaLabel || '')\n .split(' ')\n .map((word) => word[0])\n .join('')\n .slice(0, 2)\n\n return (\n <div\n {...nativeProps}\n className={cx(\n nativeProps.className,\n avatar({ gradient, size }),\n circle(),\n )}\n >\n <Show\n when={Boolean(src) || Boolean(as)}\n fallback={\n <Show\n when={Boolean(initials)}\n fallback={\n <Show\n when={Boolean(icon)}\n fallback={\n <AvatarIcon\n size={iconSizeMap[size as keyof typeof iconSizeMap]}\n />\n }\n >\n {icon}\n </Show>\n }\n >\n {initials}\n </Show>\n }\n >\n <Show\n when={Boolean(as)}\n fallback={\n <img\n alt={props.ariaLabel}\n className={css({\n h: 'full',\n objectFit: 'cover',\n w: 'full',\n })}\n decoding=\"async\"\n loading=\"lazy\"\n src={src}\n height={height}\n width={width}\n />\n }\n >\n {as}\n </Show>\n </Show>\n </div>\n )\n}\n\nconst iconSizeMap = {\n xs: 16,\n sm: 16,\n md: 20,\n lg: 34,\n xl: 32,\n '2xl': 32,\n '3xl': 32,\n '4xl': 32,\n}\n","'use client'\n\nimport { createContext, useContext, type PropsWithChildren } from 'react'\nimport type { SystemConfig } from '../config'\n\n/**\n * This module contains the Cerberus configuration context and helpers.\n * @module context/cerberus\n */\n\ntype CerberusContextValue = SystemConfig\n\nconst CerberusContext = createContext<CerberusContextValue | null>(null)\n\ninterface CerberusProviderProps {\n config: SystemConfig\n}\n\n/**\n * Cerberus configuration provider.\n * @param props.config The Cerberus configuration created with\n * `makeSystemConfig` helper.\n */\nexport function CerberusProvider(\n props: PropsWithChildren<CerberusProviderProps>,\n) {\n return (\n <CerberusContext.Provider value={props.config}>\n {props.children}\n </CerberusContext.Provider>\n )\n}\n\n/**\n * Returns the Cerberus configuration context.\n * @returns The Cerberus configuration context.\n */\nexport function useCerberusContext() {\n const context = useContext(CerberusContext)\n if (!context) {\n throw new Error('useCerberus must be used within a CerberusProvider')\n }\n return context\n}\n","import {\n Dialog as ArkDialog,\n type DialogContentProps as ArkDialogContentProps,\n type DialogRootProps,\n type DialogTitleProps,\n} from '@ark-ui/react'\nimport {\n dialog,\n type DialogVariantProps,\n} from '@cerberus/styled-system/recipes'\nimport { Portal } from './Portal'\nimport { cx } from '@cerberus/styled-system/css'\n\nexport type DialogProviderProps = DialogRootProps\n\n/**\n * The provider that controls the dialog components.\n * @definition [Dialog docs](https://cerberus.digitalu.design/react/dialog)\n * @example\n * ```tsx\n * <DialogProvider>\n * <DialogTrigger asChild>\n * <Button>Open Dialog</Button>\n * </DialogTrigger>\n * <Dialog>\n * <Text>Dialog Content</Text>\n * <DialogCloseTrigger>Close</DialogCloseTrigger>\n * </Dialog>\n * </DialogProvider>\n * ```\n */\nexport function DialogProvider(props: DialogProviderProps) {\n return <ArkDialog.Root {...props} />\n}\n\nexport interface DialogProps\n extends Omit<ArkDialogContentProps, 'size'>,\n DialogVariantProps {}\n\n/**\n * The content of the dialog. Must be used within the `DialogProvider` component.\n * @definition [Dialog docs](https://cerberus.digitalu.design/react/dialog)\n * @example\n * ```tsx\n * <DialogProvider>\n * <DialogTrigger asChild>\n * <Button>Open Dialog</Button>\n * </DialogTrigger>\n * <Dialog>\n * <Text>Dialog Content</Text>\n * </Dialog>\n * </DialogProvider>\n * ```\n */\nexport function Dialog(props: DialogProps) {\n const { size, ...contentProps } = props\n const styles = dialog({ size })\n return (\n <Portal>\n <DialogBackdrop className={styles.backdrop} />\n <DialogPositioner className={styles.positioner}>\n <DialogContent className={styles.content} {...contentProps} />\n </DialogPositioner>\n </Portal>\n )\n}\n\n/**\n * The heading of the dialog. Must be used within the `DialogContent` component.\n * @definition [Dialog docs](https://cerberus.digitalu.design/react/dialog)\n * @example\n * ```tsx\n * <DialogProvider>\n * <DialogTrigger asChild>\n * <Button>Open Dialog</Button>\n * </DialogTrigger>\n * <Dialog>\n * <DialogHeading>Dialog Title</DialogHeading>\n * <Text>Dialog Content</Text>\n * </Dialog>\n * </DialogProvider>\n * ```\n */\nexport function DialogHeading(props: DialogTitleProps) {\n const styles = dialog()\n return (\n <ArkDialog.Title {...props} className={cx(props.className, styles.title)} />\n )\n}\n\n/**\n * The description of the dialog. Must be used within the `DialogContent` component.\n * @definition [Dialog docs](https://cerberus.digitalu.design/react/dialog)\n * @example\n * ```tsx\n * <DialogProvider>\n * <DialogTrigger asChild>\n * <Button>Open Dialog</Button>\n * </DialogTrigger>\n * <Dialog>\n * <DialogHeading>Dialog Title</DialogHeading>\n * <DialogDescription>Dialog Description</DialogDescription>\n * </Dialog>\n * </DialogProvider>\n * ```\n */\nexport function DialogDescription(props: DialogTitleProps) {\n const styles = dialog()\n return (\n <ArkDialog.Description\n {...props}\n className={cx(props.className, styles.description)}\n />\n )\n}\n\n/**\n * The trigger that opens the dialog. Must be used within the `DialogProvider`\n * component.\n * @definition [Dialog docs](https://cerberus.digitalu.design/react/dialog)\n * @example\n * ```tsx\n * <DialogTrigger asChild>\n * <Button>Open Dialog</Button>\n * </DialogTrigger>\n * ```\n */\nexport const DialogTrigger = ArkDialog.Trigger\n\n/**\n * The trigger that closes the dialog. Must be used within the `DialogProvider`\n * component.\n * @definition [Dialog docs](https://cerberus.digitalu.design/react/dialog)\n * @example\n * ```tsx\n * <DialogProvider>\n * <DialogTrigger asChild>\n * <Button>Open Dialog</Button>\n * </DialogTrigger>\n * <Dialog>\n * <Text>Dialog Content</Text>\n * <DialogCloseTrigger>Close</DialogCloseTrigger>\n * </Dialog>\n * </DialogProvider>\n * ```\n */\nexport const DialogCloseTrigger = ArkDialog.CloseTrigger\n\n/**\n * The backdrop of the dialog. Must be used within the `DialogProvider`\n * component.\n */\nexport const DialogBackdrop = ArkDialog.Backdrop\n\n/**\n * The positioner of the dialog. Must be used within the `DialogProvider`\n * component.\n */\nexport const DialogPositioner = ArkDialog.Positioner\n\n/**\n * The content of the dialog. Must be used within the `DialogProvider`\n * component.\n */\nexport const DialogContent = ArkDialog.Content\n","import {\n Portal as ArkPortal,\n type PortalProps as ArkPortalProps,\n} from '@ark-ui/react'\n\n/**\n * This module is the Portal component.\n * @module\n */\n\nexport type PortalProps = ArkPortalProps\n\n/**\n * The Portal component is used to render children into a DOM node that exists outside the DOM hierarchy of the parent component.\n * @see https://cerberus.digitalu.design/react/portal\n * @definition [React Portal Docs](https://react.dev/reference/react-dom/createPortal)\n * @example\n * ```tsx\n * 'use client'\n *\n * import { Portal } from '@cerberus/react'\n *\n * function SomeFeatureWithinSSRPage() {\n * return (\n * <Portal>\n * <div>Portal Content outside of the React VDom tree</div>\n * </Portal>\n * )\n * }\n */\nexport const Portal = ArkPortal\n"],"mappings":"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","names":["import_react","import_css","import_css","import_recipes","import_react","import_jsx_runtime","import_jsx_runtime","import_react","import_recipes","import_react","ArkPortal","import_css","import_jsx_runtime","ArkDialog","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../../../src/context/confirm-modal.tsx","../../../src/components/button/button.tsx","../../../src/components/Show.tsx","../../../src/components/Avatar.tsx","../../../src/context/cerberus.tsx","../../../src/components/Dialog.tsx","../../../src/components/Portal.tsx"],"sourcesContent":["'use client'\n\nimport {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useRef,\n useState,\n type MouseEvent,\n type PropsWithChildren,\n type ReactNode,\n} from 'react'\nimport { Button } from '../components/button/button'\nimport { css } from '@cerberus/styled-system/css'\nimport { Show } from '../components/Show'\nimport { Avatar } from '../components/Avatar'\nimport { HStack, VStack } from '@cerberus/styled-system/jsx'\nimport { useCerberusContext } from './cerberus'\nimport {\n Dialog,\n DialogCloseTrigger,\n DialogDescription,\n DialogHeading,\n DialogProvider,\n} from '../components/Dialog'\n\n/**\n * This module provides a context and hook for the confirm modal.\n * @module\n */\n\nexport interface BaseConfirmOptions {\n /**\n * The heading of the confirm modal.\n */\n heading: string\n /**\n * The text for the action button.\n */\n actionText: string\n /**\n * The text for the cancel button.\n */\n cancelText: string\n}\n\nexport interface DestructiveConfirmOptions extends BaseConfirmOptions {\n /**\n * The kind of confirm modal to show.\n */\n kind?: 'destructive'\n /**\n * The description of the confirm modal. Can only be a string for destructive confirm modals.\n */\n description?: string\n}\n\nexport interface NonDestructiveConfirmModalOptions extends BaseConfirmOptions {\n /**\n * The kind of confirm modal to show.\n * @default 'non-destructive'\n */\n kind?: 'non-destructive'\n /**\n * The description of the confirm modal. Can be a ReactNode for non-destructive kind if you need to display text links.\n * @example\n * ```tsx\n * description: <>Use a Fragment because we put the content within a Paragraph tag.</>\n */\n description?: ReactNode\n}\n\nexport type ShowConfirmModalOptions =\n | NonDestructiveConfirmModalOptions\n | DestructiveConfirmOptions\n\nexport type ShowResult =\n | ((value: boolean | PromiseLike<boolean>) => void)\n | null\n\nexport interface ConfirmModalValue {\n show: (options: ShowConfirmModalOptions) => Promise<boolean>\n}\n\nconst ConfirmModalContext = createContext<ConfirmModalValue | null>(null)\n\nexport type ConfirmModalProviderProps = PropsWithChildren<unknown>\n\n/**\n * Provides a confirm modal to the app.\n * @see https://cerberus.digitalu.design/react/confirm-modal\n * @example\n * ```tsx\n * // Wrap the Provider around the root of the feature.\n * <ConfirmModal>\n * <SomeFeatureSection />\n * </ConfirmModal>\n *\n * // Use the hook to show the confirm modal.\n * const confirm = useConfirmModal()\n *\n * const handleClick = useCallback(async () => {\n * const userConsent = await confirm.show({\n * heading: 'Add new payment method?',\n * description:\n * 'This will add a new payment method to your account to be billed for future purchases.',\n * actionText: 'Yes, add payment method',\n * cancelText: 'No, cancel',\n * })\n * setConsent(userConsent)\n * }, [confirm])\n * ```\n */\nexport function ConfirmModal(\n props: PropsWithChildren<ConfirmModalProviderProps>,\n) {\n const [open, setOpen] = useState<boolean>(false)\n const [content, setContent] = useState<ShowConfirmModalOptions | null>(null)\n const resolveRef = useRef<ShowResult>(null)\n const kind = content?.kind ?? 'non-destructive'\n\n const { icons } = useCerberusContext()\n const { confirmModal: ConfirmIcon } = icons\n\n const palette = useMemo(\n () => (kind === 'destructive' ? 'danger' : 'action'),\n [kind],\n )\n\n const handleChoice = useCallback(\n (e: MouseEvent<HTMLButtonElement>) => {\n const target = e.currentTarget as HTMLButtonElement\n if (target.value === 'true') {\n resolveRef.current?.(true)\n }\n resolveRef.current?.(false)\n setOpen(false)\n },\n [setOpen],\n )\n\n const handleShow = useCallback(\n (options: ShowConfirmModalOptions) => {\n return new Promise<boolean>((resolve) => {\n setContent({ ...options })\n setOpen(true)\n resolveRef.current = resolve\n })\n },\n [setOpen, setContent],\n )\n\n const value = useMemo(\n () => ({\n show: handleShow,\n }),\n [handleShow],\n )\n\n return (\n <ConfirmModalContext.Provider value={value}>\n {props.children}\n\n <DialogProvider open={open} onOpenChange={(e) => setOpen(e.open)}>\n <Dialog size=\"sm\">\n <VStack gap=\"xl\" w=\"full\">\n <VStack alignItems=\"flex-start\" gap=\"md\" w=\"full\">\n <HStack\n alignSelf=\"center\"\n justify=\"center\"\n paddingBlockEnd=\"md\"\n w=\"full\"\n >\n <Show\n when={palette === 'danger'}\n fallback={\n <Avatar\n ariaLabel=\"\"\n gradient=\"charon-light\"\n icon={<ConfirmIcon size={24} />}\n src=\"\"\n />\n }\n >\n <Avatar\n ariaLabel=\"\"\n gradient=\"hades-dark\"\n icon={<ConfirmIcon size={24} />}\n src=\"\"\n />\n </Show>\n </HStack>\n <DialogHeading>{content?.heading}</DialogHeading>\n <DialogDescription>{content?.description}</DialogDescription>\n </VStack>\n\n <HStack gap=\"4\" w=\"full\">\n <Button\n autoFocus\n className={css({\n w: '1/2',\n })}\n name=\"confirm\"\n onClick={handleChoice}\n palette={palette}\n value=\"true\"\n >\n {content?.actionText}\n </Button>\n <DialogCloseTrigger asChild>\n <Button\n className={css({\n w: '1/2',\n })}\n name=\"cancel\"\n onClick={handleChoice}\n usage=\"outlined\"\n value=\"false\"\n >\n {content?.cancelText}\n </Button>\n </DialogCloseTrigger>\n </HStack>\n </VStack>\n </Dialog>\n </DialogProvider>\n </ConfirmModalContext.Provider>\n )\n}\n\nexport function useConfirmModal(): ConfirmModalValue {\n const context = useContext(ConfirmModalContext)\n if (context === null) {\n throw new Error(\n 'useConfirmModal must be used within a ConfirmModal Provider',\n )\n }\n return context\n}\n","'use client'\n\nimport {\n type ButtonHTMLAttributes,\n type PropsWithChildren,\n createContext,\n useContext,\n useMemo,\n} from 'react'\nimport { cx } from '@cerberus/styled-system/css'\nimport {\n button,\n type ButtonVariantProps,\n} from '@cerberus/styled-system/recipes'\nimport { Box } from '@cerberus/styled-system/jsx'\nimport { Show } from '../Show'\nimport { Spinner } from '../Spinner'\n\n/**\n * This module contains the Button component.\n * @module\n */\n\ninterface ButtonContextValue {\n pending: boolean\n}\n\nconst ButtonContext = createContext<ButtonContextValue>({\n pending: false,\n})\n\nexport type ButtonProps = ButtonHTMLAttributes<HTMLButtonElement> &\n ButtonVariantProps & {\n pending?: boolean\n }\n\n/**\n * A component that allows the user to perform actions\n * @see https://cerberus.digitalu.design/react/button\n */\nexport function Button(props: ButtonProps): JSX.Element {\n const { palette, usage, shape, size, pending = false, ...nativeProps } = props\n const value = useMemo(() => ({ pending }), [pending])\n\n return (\n <ButtonContext.Provider value={value}>\n <button\n {...nativeProps}\n disabled={pending || nativeProps.disabled}\n className={cx(\n nativeProps.className,\n button({\n palette,\n usage,\n shape,\n size,\n }),\n )}\n />\n </ButtonContext.Provider>\n )\n}\n\n/**\n * An icon to display in a button that utilizes the pending state to display\n * a loading spinner.\n */\nexport function ButtonIcon(props: PropsWithChildren<object>) {\n const { pending } = useContext(ButtonContext)\n return (\n <Show when={pending} fallback={<>{props.children}</>}>\n <Box w=\"4\">\n <Spinner />\n </Box>\n </Show>\n )\n}\n","'use client'\n\nimport { useMemo, type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: boolean | null | undefined\n /**\n * The children to render when the condition is false.\n */\n fallback?: ReactNode\n}\n\n/**\n * Conditionally render a memoized version of the children or optional fallback\n * content.\n * @see https://cerberus.digitalu.design/react/show\n * @example\n * ```tsx\n * <Show when={isLoggedIn} fallback={<Navigate to=\"/login\" />}>\n * <Dashboard />\n * </Show>\n */\nexport function Show(props: PropsWithChildren<ShowProps>): ReactNode {\n const { when, children, fallback } = props\n const condition = useMemo(() => when ?? false, [when])\n\n return useMemo(() => {\n if (condition) return children\n return fallback ?? null\n }, [condition, children, fallback])\n}\n","'use client'\n\nimport { css, cx } from '@cerberus/styled-system/css'\nimport { circle } from '@cerberus/styled-system/patterns'\nimport {\n avatar,\n type AvatarVariantProps,\n} from '@cerberus/styled-system/recipes'\nimport type { HtmlHTMLAttributes, ReactNode } from 'react'\nimport { Show } from './Show'\nimport { useCerberusContext } from '../context/cerberus'\n\n/**\n * This module contains the Avatar component.\n * @module\n */\n\nexport type SharedAvatarProps = {\n /**\n * An optional icon to show when no src or ariaLabel is provided.\n */\n icon?: ReactNode\n /**\n * The size of the avatar.\n */\n width?: number\n /**\n * The size of the avatar.\n */\n height?: number\n}\nexport type AvatarImageProps = HtmlHTMLAttributes<HTMLImageElement> &\n SharedAvatarProps & {\n /**\n * The aria-label for the avatar needed for accessibility.\n */\n ariaLabel: string\n /**\n * An optional element to replace the image. Recommended for Next.js Image component.\n */\n as?: never\n /**\n * The source of the image.\n */\n src: string\n }\nexport type AvatarAsProps = SharedAvatarProps & {\n /**\n * An optional element to replace the image. Recommended for Next.js Image component.\n */\n as: ReactNode\n /**\n * The aria-label for the avatar needed for accessibility.\n */\n ariaLabel?: never\n /**\n * The source of the image.\n */\n src?: never\n}\n\nexport type AvatarProps = (HtmlHTMLAttributes<HTMLDivElement> &\n AvatarVariantProps) &\n (AvatarImageProps | AvatarAsProps)\n\n/**\n * The Avatar component is used to represent a user or entity. It will show an image if src provided, otherwise it will show the ariaLabel of the ariaLabel. If the ariaLabel is empty, it will show a `defineIcons().avatar` icon.\n * @see https://cerberus.digitalu.design/react/avatar\n * @example\n * ```tsx\n * <Avatar\n * ariaLabel=\"Protector Cerberus\"\n * src=\"https://cerberus.digitalu.design/logo.svg\"\n * />\n * ```\n */\nexport function Avatar(props: AvatarProps) {\n const {\n ariaLabel,\n as,\n gradient,\n size,\n src,\n width,\n height,\n icon,\n ...nativeProps\n } = props\n const { icons } = useCerberusContext()\n const { avatar: AvatarIcon } = icons\n const initials = (ariaLabel || '')\n .split(' ')\n .map((word) => word[0])\n .join('')\n .slice(0, 2)\n\n return (\n <div\n {...nativeProps}\n className={cx(\n nativeProps.className,\n avatar({ gradient, size }),\n circle(),\n )}\n >\n <Show\n when={Boolean(src) || Boolean(as)}\n fallback={\n <Show\n when={Boolean(initials)}\n fallback={\n <Show\n when={Boolean(icon)}\n fallback={\n <AvatarIcon\n size={iconSizeMap[size as keyof typeof iconSizeMap]}\n />\n }\n >\n {icon}\n </Show>\n }\n >\n {initials}\n </Show>\n }\n >\n <Show\n when={Boolean(as)}\n fallback={\n <img\n alt={props.ariaLabel}\n className={css({\n h: 'full',\n objectFit: 'cover',\n w: 'full',\n })}\n decoding=\"async\"\n loading=\"lazy\"\n src={src}\n height={height}\n width={width}\n />\n }\n >\n {as}\n </Show>\n </Show>\n </div>\n )\n}\n\nconst iconSizeMap = {\n xs: 16,\n sm: 16,\n md: 20,\n lg: 34,\n xl: 32,\n '2xl': 32,\n '3xl': 32,\n '4xl': 32,\n}\n","'use client'\n\nimport { createContext, useContext, type PropsWithChildren } from 'react'\nimport type { SystemConfig } from '../config'\n\n/**\n * This module contains the Cerberus configuration context and helpers.\n * @module context/cerberus\n */\n\ntype CerberusContextValue = SystemConfig\n\nconst CerberusContext = createContext<CerberusContextValue | null>(null)\n\ninterface CerberusProviderProps {\n config: SystemConfig\n}\n\n/**\n * Cerberus configuration provider.\n * @param props.config The Cerberus configuration created with\n * `makeSystemConfig` helper.\n */\nexport function CerberusProvider(\n props: PropsWithChildren<CerberusProviderProps>,\n) {\n return (\n <CerberusContext.Provider value={props.config}>\n {props.children}\n </CerberusContext.Provider>\n )\n}\n\n/**\n * Returns the Cerberus configuration context.\n * @returns The Cerberus configuration context.\n */\nexport function useCerberusContext() {\n const context = useContext(CerberusContext)\n if (!context) {\n throw new Error('useCerberus must be used within a CerberusProvider')\n }\n return context\n}\n","import {\n Dialog as ArkDialog,\n type DialogContentProps as ArkDialogContentProps,\n type DialogRootProps,\n type DialogTitleProps,\n} from '@ark-ui/react'\nimport {\n dialog,\n type DialogVariantProps,\n} from '@cerberus/styled-system/recipes'\nimport { Portal } from './Portal'\nimport { cx } from '@cerberus/styled-system/css'\n\nexport type DialogProviderProps = DialogRootProps\n\n/**\n * The provider that controls the dialog components.\n * @definition [Dialog docs](https://cerberus.digitalu.design/react/dialog)\n * @example\n * ```tsx\n * <DialogProvider>\n * <DialogTrigger asChild>\n * <Button>Open Dialog</Button>\n * </DialogTrigger>\n * <Dialog>\n * <Text>Dialog Content</Text>\n * <DialogCloseTrigger>Close</DialogCloseTrigger>\n * </Dialog>\n * </DialogProvider>\n * ```\n */\nexport function DialogProvider(props: DialogProviderProps) {\n return <ArkDialog.Root {...props} />\n}\n\nexport interface DialogProps\n extends Omit<ArkDialogContentProps, 'size'>,\n DialogVariantProps {}\n\n/**\n * The content of the dialog. Must be used within the `DialogProvider` component.\n * @definition [Dialog docs](https://cerberus.digitalu.design/react/dialog)\n * @example\n * ```tsx\n * <DialogProvider>\n * <DialogTrigger asChild>\n * <Button>Open Dialog</Button>\n * </DialogTrigger>\n * <Dialog>\n * <Text>Dialog Content</Text>\n * </Dialog>\n * </DialogProvider>\n * ```\n */\nexport function Dialog(props: DialogProps) {\n const { size, ...contentProps } = props\n const styles = dialog({ size })\n return (\n <Portal>\n <DialogBackdrop className={styles.backdrop} />\n <DialogPositioner className={styles.positioner}>\n <DialogContent className={styles.content} {...contentProps} />\n </DialogPositioner>\n </Portal>\n )\n}\n\n/**\n * The heading of the dialog. Must be used within the `DialogContent` component.\n * @definition [Dialog docs](https://cerberus.digitalu.design/react/dialog)\n * @example\n * ```tsx\n * <DialogProvider>\n * <DialogTrigger asChild>\n * <Button>Open Dialog</Button>\n * </DialogTrigger>\n * <Dialog>\n * <DialogHeading>Dialog Title</DialogHeading>\n * <Text>Dialog Content</Text>\n * </Dialog>\n * </DialogProvider>\n * ```\n */\nexport function DialogHeading(props: DialogTitleProps) {\n const styles = dialog()\n return (\n <ArkDialog.Title {...props} className={cx(props.className, styles.title)} />\n )\n}\n\n/**\n * The description of the dialog. Must be used within the `DialogContent` component.\n * @definition [Dialog docs](https://cerberus.digitalu.design/react/dialog)\n * @example\n * ```tsx\n * <DialogProvider>\n * <DialogTrigger asChild>\n * <Button>Open Dialog</Button>\n * </DialogTrigger>\n * <Dialog>\n * <DialogHeading>Dialog Title</DialogHeading>\n * <DialogDescription>Dialog Description</DialogDescription>\n * </Dialog>\n * </DialogProvider>\n * ```\n */\nexport function DialogDescription(props: DialogTitleProps) {\n const styles = dialog()\n return (\n <ArkDialog.Description\n {...props}\n className={cx(props.className, styles.description)}\n />\n )\n}\n\n/**\n * The trigger that opens the dialog. Must be used within the `DialogProvider`\n * component.\n * @definition [Dialog docs](https://cerberus.digitalu.design/react/dialog)\n * @example\n * ```tsx\n * <DialogTrigger asChild>\n * <Button>Open Dialog</Button>\n * </DialogTrigger>\n * ```\n */\nexport const DialogTrigger = ArkDialog.Trigger\n\n/**\n * The trigger that closes the dialog. Must be used within the `DialogProvider`\n * component.\n * @definition [Dialog docs](https://cerberus.digitalu.design/react/dialog)\n * @example\n * ```tsx\n * <DialogProvider>\n * <DialogTrigger asChild>\n * <Button>Open Dialog</Button>\n * </DialogTrigger>\n * <Dialog>\n * <Text>Dialog Content</Text>\n * <DialogCloseTrigger>Close</DialogCloseTrigger>\n * </Dialog>\n * </DialogProvider>\n * ```\n */\nexport const DialogCloseTrigger = ArkDialog.CloseTrigger\n\n/**\n * The backdrop of the dialog. Must be used within the `DialogProvider`\n * component.\n */\nexport const DialogBackdrop = ArkDialog.Backdrop\n\n/**\n * The positioner of the dialog. Must be used within the `DialogProvider`\n * component.\n */\nexport const DialogPositioner = ArkDialog.Positioner\n\n/**\n * The content of the dialog. Must be used within the `DialogProvider`\n * component.\n */\nexport const DialogContent = ArkDialog.Content\n","import {\n Portal as ArkPortal,\n type PortalProps as ArkPortalProps,\n} from '@ark-ui/react'\n\n/**\n * This module is the Portal component.\n * @module\n */\n\nexport type PortalProps = ArkPortalProps\n\n/**\n * The Portal component is used to render children into a DOM node that exists outside the DOM hierarchy of the parent component.\n * @see https://cerberus.digitalu.design/react/portal\n * @definition [React Portal Docs](https://react.dev/reference/react-dom/createPortal)\n * @example\n * ```tsx\n * 'use client'\n *\n * import { Portal } from '@cerberus/react'\n *\n * function SomeFeatureWithinSSRPage() {\n * return (\n * <Portal>\n * <div>Portal Content outside of the React VDom tree</div>\n * </Portal>\n * )\n * }\n */\nexport const Portal = ArkPortal\n"],"mappings":"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","names":["import_react","import_react","import_css","import_css","import_recipes","import_react","import_jsx_runtime","import_jsx_runtime","import_jsx","import_react","import_recipes","import_react","ArkPortal","import_css","import_jsx_runtime","ArkDialog","import_jsx_runtime"]}
@@ -21,14 +21,33 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
21
21
  // src/context/field.tsx
22
22
  var field_exports = {};
23
23
  __export(field_exports, {
24
- Field: () => Field,
24
+ FieldProvider: () => FieldProvider,
25
25
  useFieldContext: () => useFieldContext
26
26
  });
27
27
  module.exports = __toCommonJS(field_exports);
28
28
  var import_react = require("react");
29
+
30
+ // src/components/field/primitives.tsx
31
+ var import_field = require("@ark-ui/react/field");
32
+ var import_css = require("@cerberus/styled-system/css");
33
+ var import_recipes = require("@cerberus/styled-system/recipes");
29
34
  var import_jsx_runtime = require("react/jsx-runtime");
35
+ function FieldRoot(props) {
36
+ const { size, ...fieldProps } = props;
37
+ const styles = (0, import_recipes.field)({ size });
38
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
39
+ import_field.Field.Root,
40
+ {
41
+ ...fieldProps,
42
+ className: (0, import_css.cx)(styles.root, fieldProps.className)
43
+ }
44
+ );
45
+ }
46
+
47
+ // src/context/field.tsx
48
+ var import_jsx_runtime2 = require("react/jsx-runtime");
30
49
  var FieldContext = (0, import_react.createContext)(null);
31
- function Field(props) {
50
+ function FieldProvider(props) {
32
51
  const value = (0, import_react.useMemo)(
33
52
  () => ({
34
53
  disabled: props.disabled,
@@ -38,7 +57,7 @@ function Field(props) {
38
57
  }),
39
58
  [props.disabled, props.readOnly, props.required, props.invalid]
40
59
  );
41
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FieldContext.Provider, { value, children: props.children });
60
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(FieldContext.Provider, { value, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(FieldRoot, { ...props }) });
42
61
  }
43
62
  function useFieldContext() {
44
63
  const context = (0, import_react.useContext)(FieldContext);
@@ -49,7 +68,7 @@ function useFieldContext() {
49
68
  }
50
69
  // Annotate the CommonJS export names for ESM import in node:
51
70
  0 && (module.exports = {
52
- Field,
71
+ FieldProvider,
53
72
  useFieldContext
54
73
  });
55
74
  //# sourceMappingURL=field.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/context/field.tsx"],"sourcesContent":["'use client'\n\nimport {\n createContext,\n useContext,\n useMemo,\n type PropsWithChildren,\n} from 'react'\n\n/**\n * This module provides a context and hook for the field.\n * @module Field\n */\n\nexport interface FieldContextValue {\n /**\n * Whether the field is disabled.\n * @description [Moz Input Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attributes)\n */\n disabled?: boolean\n /**\n * Whether the field is read-only.\n */\n readOnly?: boolean\n /**\n * Whether the field is required.\n */\n required?: boolean\n /**\n * Whether the field is invalid.\n */\n invalid?: boolean\n}\n\nconst FieldContext = createContext<FieldContextValue | null>(null)\n\n/**\n * Provides the field state for a all related components used within a group.\n * @see https://cerberus.digitalu.design/react/input\n */\nexport function Field(\n props: PropsWithChildren<FieldContextValue>,\n): JSX.Element {\n const value = useMemo(\n () => ({\n disabled: props.disabled,\n readOnly: props.readOnly,\n required: props.required,\n invalid: props.invalid,\n }),\n [props.disabled, props.readOnly, props.required, props.invalid],\n )\n\n return (\n <FieldContext.Provider value={value}>\n {props.children}\n </FieldContext.Provider>\n )\n}\n\n/**\n * Used to access the field context.\n * @returns The field context.\n */\nexport function useFieldContext(): FieldContextValue {\n const context = useContext(FieldContext)\n if (!context) {\n throw new Error('useFieldContext must be used within a Field Provider.')\n }\n return context\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAKO;AA+CH;AApBJ,IAAM,mBAAe,4BAAwC,IAAI;AAM1D,SAAS,MACd,OACa;AACb,QAAM,YAAQ;AAAA,IACZ,OAAO;AAAA,MACL,UAAU,MAAM;AAAA,MAChB,UAAU,MAAM;AAAA,MAChB,UAAU,MAAM;AAAA,MAChB,SAAS,MAAM;AAAA,IACjB;AAAA,IACA,CAAC,MAAM,UAAU,MAAM,UAAU,MAAM,UAAU,MAAM,OAAO;AAAA,EAChE;AAEA,SACE,4CAAC,aAAa,UAAb,EAAsB,OACpB,gBAAM,UACT;AAEJ;AAMO,SAAS,kBAAqC;AACnD,QAAM,cAAU,yBAAW,YAAY;AACvC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,uDAAuD;AAAA,EACzE;AACA,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../src/context/field.tsx","../../../src/components/field/primitives.tsx"],"sourcesContent":["'use client'\n\nimport type { FieldRootProps } from '@ark-ui/react'\nimport {\n createContext,\n useContext,\n useMemo,\n type PropsWithChildren,\n} from 'react'\nimport { FieldRoot } from '../components/field/primitives'\n\n/**\n * This module provides a context and hook for the field.\n * @module Field\n */\n\nexport interface FieldContextValue {\n /**\n * Whether the field is disabled.\n * @description [Moz Input Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attributes)\n */\n disabled?: boolean\n /**\n * Whether the field is read-only.\n */\n readOnly?: boolean\n /**\n * Whether the field is required.\n */\n required?: boolean\n /**\n * Whether the field is invalid.\n */\n invalid?: boolean\n}\n\nconst FieldContext = createContext<FieldContextValue | null>(null)\n\n/**\n * @deprecated use FieldRoot or FieldParts instead\n */\nexport function FieldProvider(\n props: PropsWithChildren<FieldRootProps>,\n): JSX.Element {\n const value = useMemo(\n () => ({\n disabled: props.disabled,\n readOnly: props.readOnly,\n required: props.required,\n invalid: props.invalid,\n }),\n [props.disabled, props.readOnly, props.required, props.invalid],\n )\n\n return (\n <FieldContext.Provider value={value}>\n <FieldRoot {...props} />\n </FieldContext.Provider>\n )\n}\n\n/**\n * Used to access the field context.\n * @returns The field context.\n */\nexport function useFieldContext(): FieldContextValue {\n const context = useContext(FieldContext)\n if (!context) {\n throw new Error('useFieldContext must be used within a Field Provider.')\n }\n return context\n}\n","import {\n Field,\n type FieldHelperTextProps,\n type FieldInputProps as ArkFieldInputProps,\n type FieldLabelProps,\n type FieldRootProps as ArkFieldRootProps,\n type FieldTextareaProps,\n} from '@ark-ui/react/field'\nimport type { ReactNode } from 'react'\nimport { cx } from '@cerberus/styled-system/css'\nimport { field, type FieldVariantProps } from '@cerberus/styled-system/recipes'\nimport { FieldStatusIndicator } from './status-indicator'\nimport { FieldStartIndicator } from './start-indicator'\n\n/**\n * This module contains all the primitives of the Field component.\n * @module 'field'\n */\n\nexport type FieldRootProps = ArkFieldRootProps & FieldVariantProps\n\n/**\n * The context & container for the Field components.\n * @description [Field Docs](https://cerberus.digitalu.design/react/field)\n * @example\n * ```tsx\n * <FieldRoot required ids={{ input: 'exampleId' }}>\n * <FieldLabel>Label</FieldLabel>\n * <FieldInput />\n * </FieldRoot>\n * ```\n */\nexport function FieldRoot(props: FieldRootProps) {\n const { size, ...fieldProps } = props\n const styles = field({ size })\n return (\n <Field.Root\n {...fieldProps}\n className={cx(styles.root, fieldProps.className)}\n />\n )\n}\n\n/**\n * The label for the Field component.\n * @description [Field Docs](https://cerberus.digitalu.design/react/field)\n * @example\n * ```tsx\n * <FieldRoot>\n * <FieldLabel>Label</FieldLabel>\n * </FieldRoot>\n * ```\n */\nexport function FieldLabel(props: FieldLabelProps) {\n const { children, ...nativeProps } = props\n const styles = field()\n return (\n <Field.Label {...nativeProps} className={cx(styles.label, props.className)}>\n {children}\n <Field.RequiredIndicator>(required)</Field.RequiredIndicator>\n </Field.Label>\n )\n}\n\n/**\n * The required indicator for the Field component.\n */\nexport function FieldRequiredIndicator() {\n return <Field.RequiredIndicator>(required)</Field.RequiredIndicator>\n}\n\nexport interface FieldInputProps\n extends Omit<ArkFieldInputProps, 'size'>,\n FieldVariantProps {\n /**\n * An optional icon to display at the start of the input.\n */\n startIcon?: ReactNode\n /**\n * An optional icon to display at the end of the input.\n */\n endIcon?: ReactNode\n}\n\n/**\n * The input for the Field component.\n * @description [Field Docs](https://cerberus.digitalu.design/react/field)\n * @example\n * ```tsx\n * <FieldRoot>\n * <FieldInput />\n * </FieldRoot>\n * ```\n */\nexport function FieldInput(props: FieldInputProps) {\n const { size, startIcon, endIcon, ...fieldProps } = props\n const styles = field({ size })\n const hasStartIcon = Boolean(startIcon)\n\n return (\n <div className={styles.inputRoot}>\n <FieldStartIndicator>{startIcon}</FieldStartIndicator>\n <Field.Input\n {...fieldProps}\n {...(hasStartIcon && { 'data-has': 'start-indicator' })}\n className={cx(styles.input, fieldProps.className)}\n />\n <FieldStatusIndicator fallback={endIcon} />\n </div>\n )\n}\n\n/**\n * The helper text for the Field component that is shown when the field is\n * valid.\n * @description [Field Docs](https://cerberus.digitalu.design/react/field)\n * @example\n * ```tsx\n * <FieldRoot>\n * <FieldInput />\n * <FieldHelperText>Helper text</FieldHelperText>\n * </FieldRoot>\n * ```\n */\nexport function FieldHelperText(props: FieldHelperTextProps) {\n const styles = field()\n\n if (!props.children) return null\n\n return (\n <Field.HelperText\n {...props}\n className={cx(styles.helperText, props.className)}\n />\n )\n}\n\n/**\n * The error text for the Field component that is shown when the field is\n * invalid.\n * @description [Field Docs](https://cerberus.digitalu.design/react/field)\n * @example\n * ```tsx\n * <FieldRoot>\n * <FieldInput />\n * <FieldErrorText>Error text</FieldErrorText>\n * </FieldRoot>\n * ```\n */\nexport function FieldErrorText(props: FieldHelperTextProps) {\n const styles = field()\n\n if (!props.children) return null\n\n return (\n <Field.ErrorText\n {...props}\n className={cx(styles.errorText, props.className)}\n />\n )\n}\n\n/**\n * The textarea for the Field component.\n * @description [Field Docs](https://cerberus.digitalu.design/react/field)\n * @example\n * ```tsx\n * <FieldRoot>\n * <FieldTextarea />\n * </FieldRoot>\n * ```\n */\nexport function FieldTextarea(props: FieldTextareaProps) {\n const styles = field()\n return (\n <Field.Textarea\n {...props}\n className={cx(styles.textarea, props.className)}\n />\n )\n}\n\n/**\n * A named export for the FieldInput component.\n * @description [Field Docs](https://cerberus.digitalu.design/react/field)\n * @example\n * ```tsx\n * import { Input } from '@cerberus/react'\n *\n * <Field\n * ids={{\n * control: 'email',\n * }}\n * label=\"Enter your email\"\n * helperText=\"We'll never share your email with anyone else.\"\n * errorText=\"Email is required.\"\n * required\n * >\n * <Input type=\"email\" />\n * </Field>\n * ```\n */\nexport const Input = FieldInput\nexport const Textarea = FieldTextarea\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,mBAKO;;;ACRP,mBAOO;AAEP,iBAAmB;AACnB,qBAA8C;AA0B1C;AAJG,SAAS,UAAU,OAAuB;AAC/C,QAAM,EAAE,MAAM,GAAG,WAAW,IAAI;AAChC,QAAM,aAAS,sBAAM,EAAE,KAAK,CAAC;AAC7B,SACE;AAAA,IAAC,mBAAM;AAAA,IAAN;AAAA,MACE,GAAG;AAAA,MACJ,eAAW,eAAG,OAAO,MAAM,WAAW,SAAS;AAAA;AAAA,EACjD;AAEJ;;;ADeM,IAAAA,sBAAA;AApBN,IAAM,mBAAe,4BAAwC,IAAI;AAK1D,SAAS,cACd,OACa;AACb,QAAM,YAAQ;AAAA,IACZ,OAAO;AAAA,MACL,UAAU,MAAM;AAAA,MAChB,UAAU,MAAM;AAAA,MAChB,UAAU,MAAM;AAAA,MAChB,SAAS,MAAM;AAAA,IACjB;AAAA,IACA,CAAC,MAAM,UAAU,MAAM,UAAU,MAAM,UAAU,MAAM,OAAO;AAAA,EAChE;AAEA,SACE,6CAAC,aAAa,UAAb,EAAsB,OACrB,uDAAC,aAAW,GAAG,OAAO,GACxB;AAEJ;AAMO,SAAS,kBAAqC;AACnD,QAAM,cAAU,yBAAW,YAAY;AACvC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,uDAAuD;AAAA,EACzE;AACA,SAAO;AACT;","names":["import_jsx_runtime"]}
@@ -25,7 +25,7 @@ __export(notification_center_exports, {
25
25
  useNotificationCenter: () => useNotificationCenter
26
26
  });
27
27
  module.exports = __toCommonJS(notification_center_exports);
28
- var import_react5 = require("react");
28
+ var import_react6 = require("react");
29
29
 
30
30
  // src/components/Show.tsx
31
31
  var import_react = require("react");
@@ -177,26 +177,34 @@ var Portal = import_react4.Portal;
177
177
  // src/context/notification-center.tsx
178
178
  var import_recipes5 = require("@cerberus/styled-system/recipes");
179
179
 
180
- // src/components/Button.tsx
180
+ // src/components/button/button.tsx
181
+ var import_react5 = require("react");
181
182
  var import_css4 = require("@cerberus/styled-system/css");
182
183
  var import_recipes4 = require("@cerberus/styled-system/recipes");
184
+ var import_jsx = require("@cerberus/styled-system/jsx");
183
185
  var import_jsx_runtime5 = require("react/jsx-runtime");
186
+ var ButtonContext = (0, import_react5.createContext)({
187
+ pending: false
188
+ });
184
189
  function Button(props) {
185
- const { palette, usage, shape, ...nativeProps } = props;
186
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
190
+ const { palette, usage, shape, size, pending = false, ...nativeProps } = props;
191
+ const value = (0, import_react5.useMemo)(() => ({ pending }), [pending]);
192
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ButtonContext.Provider, { value, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
187
193
  "button",
188
194
  {
189
195
  ...nativeProps,
196
+ disabled: pending || nativeProps.disabled,
190
197
  className: (0, import_css4.cx)(
191
198
  nativeProps.className,
192
199
  (0, import_recipes4.button)({
193
200
  palette,
194
201
  usage,
195
- shape
202
+ shape,
203
+ size
196
204
  })
197
205
  )
198
206
  }
199
- );
207
+ ) });
200
208
  }
201
209
 
202
210
  // src/context/notification-center.tsx
@@ -234,15 +242,15 @@ function clearNotificationState(dispatch) {
234
242
 
235
243
  // src/context/notification-center.tsx
236
244
  var import_jsx_runtime6 = require("react/jsx-runtime");
237
- var NotificationsContext = (0, import_react5.createContext)(null);
245
+ var NotificationsContext = (0, import_react6.createContext)(null);
238
246
  function NotificationCenter(props) {
239
- const [state, dispatch] = (0, import_react5.useReducer)(notificationCenterReducer, []);
247
+ const [state, dispatch] = (0, import_react6.useReducer)(notificationCenterReducer, []);
240
248
  const styles = (0, import_recipes5.notification)();
241
- const timeout = (0, import_react5.useMemo)(
249
+ const timeout = (0, import_react6.useMemo)(
242
250
  () => props.duration || 6e3,
243
251
  [props.duration]
244
252
  );
245
- const closeNotification = (0, import_react5.useCallback)(
253
+ const closeNotification = (0, import_react6.useCallback)(
246
254
  (id) => {
247
255
  updateNotificationState(dispatch, {
248
256
  id,
@@ -254,7 +262,7 @@ function NotificationCenter(props) {
254
262
  },
255
263
  [dispatch]
256
264
  );
257
- const handleNotify = (0, import_react5.useCallback)(
265
+ const handleNotify = (0, import_react6.useCallback)(
258
266
  (options) => {
259
267
  const id = `${options.palette}:${state.length + 1}`;
260
268
  addNotification(dispatch, {
@@ -268,20 +276,20 @@ function NotificationCenter(props) {
268
276
  },
269
277
  [dispatch, state, timeout, closeNotification]
270
278
  );
271
- const handleClose = (0, import_react5.useCallback)(
279
+ const handleClose = (0, import_react6.useCallback)(
272
280
  (e) => {
273
281
  const target = e.currentTarget;
274
282
  closeNotification(target.value);
275
283
  },
276
284
  [closeNotification]
277
285
  );
278
- const handleCloseAll = (0, import_react5.useCallback)(() => {
286
+ const handleCloseAll = (0, import_react6.useCallback)(() => {
279
287
  state.forEach((item) => {
280
288
  if (item.onClose) item.onClose();
281
289
  });
282
290
  clearNotificationState(dispatch);
283
291
  }, [state, dispatch]);
284
- const value = (0, import_react5.useMemo)(
292
+ const value = (0, import_react6.useMemo)(
285
293
  () => ({
286
294
  notify: handleNotify
287
295
  }),
@@ -328,7 +336,7 @@ function NotificationCenter(props) {
328
336
  }
329
337
  function MatchNotification(props) {
330
338
  const { palette, id, onClose, heading, description, open } = props;
331
- const sharedProps = (0, import_react5.useMemo)(
339
+ const sharedProps = (0, import_react6.useMemo)(
332
340
  () => ({
333
341
  id,
334
342
  open: true,
@@ -362,7 +370,7 @@ function MatchNotification(props) {
362
370
  }
363
371
  }
364
372
  function useNotificationCenter() {
365
- const context = (0, import_react5.useContext)(NotificationsContext);
373
+ const context = (0, import_react6.useContext)(NotificationsContext);
366
374
  if (!context) {
367
375
  throw new Error(
368
376
  "useNotificationCenter must be used within a NotificationsProvider"