@cerberus-design/react 0.19.0 → 0.19.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (588) hide show
  1. package/build/legacy/_tsup-dts-rollup.d.cts +11 -1
  2. package/build/legacy/components/accordion/index.cjs +12 -4
  3. package/build/legacy/components/accordion/index.cjs.map +1 -1
  4. package/build/legacy/components/accordion/item-group.cjs +12 -4
  5. package/build/legacy/components/accordion/item-group.cjs.map +1 -1
  6. package/build/legacy/components/accordion/item-indicator.cjs +12 -4
  7. package/build/legacy/components/accordion/item-indicator.cjs.map +1 -1
  8. package/build/legacy/components/accordion/parts.cjs +12 -4
  9. package/build/legacy/components/accordion/parts.cjs.map +1 -1
  10. package/build/legacy/components/accordion/primitives.cjs +12 -4
  11. package/build/legacy/components/accordion/primitives.cjs.map +1 -1
  12. package/build/legacy/components/admonition/admonition.cjs +12 -4
  13. package/build/legacy/components/admonition/admonition.cjs.map +1 -1
  14. package/build/legacy/components/admonition/index.cjs +12 -4
  15. package/build/legacy/components/admonition/index.cjs.map +1 -1
  16. package/build/legacy/components/admonition/match-avatar.cjs +12 -4
  17. package/build/legacy/components/admonition/match-avatar.cjs.map +1 -1
  18. package/build/legacy/components/admonition/parts.cjs +12 -4
  19. package/build/legacy/components/admonition/parts.cjs.map +1 -1
  20. package/build/legacy/components/admonition/primitives.cjs +12 -4
  21. package/build/legacy/components/admonition/primitives.cjs.map +1 -1
  22. package/build/legacy/components/avatar/avatar.cjs +12 -4
  23. package/build/legacy/components/avatar/avatar.cjs.map +1 -1
  24. package/build/legacy/components/avatar/index.cjs +12 -4
  25. package/build/legacy/components/avatar/index.cjs.map +1 -1
  26. package/build/legacy/components/avatar/parts.cjs +12 -4
  27. package/build/legacy/components/avatar/parts.cjs.map +1 -1
  28. package/build/legacy/components/avatar/primitives.cjs +12 -4
  29. package/build/legacy/components/avatar/primitives.cjs.map +1 -1
  30. package/build/legacy/components/button/button.cjs +12 -4
  31. package/build/legacy/components/button/button.cjs.map +1 -1
  32. package/build/legacy/components/button/index.cjs +12 -4
  33. package/build/legacy/components/button/index.cjs.map +1 -1
  34. package/build/legacy/components/button/parts.cjs +12 -4
  35. package/build/legacy/components/button/parts.cjs.map +1 -1
  36. package/build/legacy/components/button/primitives.cjs +12 -4
  37. package/build/legacy/components/button/primitives.cjs.map +1 -1
  38. package/build/legacy/components/checkbox/checkbox-icon.cjs +12 -4
  39. package/build/legacy/components/checkbox/checkbox-icon.cjs.map +1 -1
  40. package/build/legacy/components/checkbox/checkbox.cjs +12 -4
  41. package/build/legacy/components/checkbox/checkbox.cjs.map +1 -1
  42. package/build/legacy/components/checkbox/index.cjs +12 -4
  43. package/build/legacy/components/checkbox/index.cjs.map +1 -1
  44. package/build/legacy/components/checkbox/parts.cjs +12 -4
  45. package/build/legacy/components/checkbox/parts.cjs.map +1 -1
  46. package/build/legacy/components/checkbox/primitives.cjs +12 -4
  47. package/build/legacy/components/checkbox/primitives.cjs.map +1 -1
  48. package/build/legacy/components/circular-progress/circular-progress.cjs +12 -4
  49. package/build/legacy/components/circular-progress/circular-progress.cjs.map +1 -1
  50. package/build/legacy/components/circular-progress/index.cjs +12 -4
  51. package/build/legacy/components/circular-progress/index.cjs.map +1 -1
  52. package/build/legacy/components/circular-progress/primitives.cjs +12 -4
  53. package/build/legacy/components/circular-progress/primitives.cjs.map +1 -1
  54. package/build/legacy/components/combobox/combobox.cjs +12 -4
  55. package/build/legacy/components/combobox/combobox.cjs.map +1 -1
  56. package/build/legacy/components/combobox/index.cjs +12 -4
  57. package/build/legacy/components/combobox/index.cjs.map +1 -1
  58. package/build/legacy/components/combobox/item-group.cjs +12 -4
  59. package/build/legacy/components/combobox/item-group.cjs.map +1 -1
  60. package/build/legacy/components/combobox/item.cjs +12 -4
  61. package/build/legacy/components/combobox/item.cjs.map +1 -1
  62. package/build/legacy/components/combobox/parts.cjs +12 -4
  63. package/build/legacy/components/combobox/parts.cjs.map +1 -1
  64. package/build/legacy/components/combobox/primitives.cjs +12 -4
  65. package/build/legacy/components/combobox/primitives.cjs.map +1 -1
  66. package/build/legacy/components/combobox/use-stateful-collection.cjs +12 -4
  67. package/build/legacy/components/combobox/use-stateful-collection.cjs.map +1 -1
  68. package/build/legacy/components/cta-dialog/index.cjs +12 -4
  69. package/build/legacy/components/cta-dialog/index.cjs.map +1 -1
  70. package/build/legacy/components/cta-dialog/provider.cjs +12 -4
  71. package/build/legacy/components/cta-dialog/provider.cjs.map +1 -1
  72. package/build/legacy/components/cta-dialog/trigger-item.cjs +12 -4
  73. package/build/legacy/components/cta-dialog/trigger-item.cjs.map +1 -1
  74. package/build/legacy/components/date-picker/calendar.cjs +12 -4
  75. package/build/legacy/components/date-picker/calendar.cjs.map +1 -1
  76. package/build/legacy/components/date-picker/content.cjs +12 -4
  77. package/build/legacy/components/date-picker/content.cjs.map +1 -1
  78. package/build/legacy/components/date-picker/date-picker.cjs +12 -4
  79. package/build/legacy/components/date-picker/date-picker.cjs.map +1 -1
  80. package/build/legacy/components/date-picker/day-view.cjs +12 -4
  81. package/build/legacy/components/date-picker/day-view.cjs.map +1 -1
  82. package/build/legacy/components/date-picker/index.cjs +12 -4
  83. package/build/legacy/components/date-picker/index.cjs.map +1 -1
  84. package/build/legacy/components/date-picker/input.cjs +12 -4
  85. package/build/legacy/components/date-picker/input.cjs.map +1 -1
  86. package/build/legacy/components/date-picker/month-view.cjs +12 -4
  87. package/build/legacy/components/date-picker/month-view.cjs.map +1 -1
  88. package/build/legacy/components/date-picker/parts.cjs +12 -4
  89. package/build/legacy/components/date-picker/parts.cjs.map +1 -1
  90. package/build/legacy/components/date-picker/primitives.cjs +12 -4
  91. package/build/legacy/components/date-picker/primitives.cjs.map +1 -1
  92. package/build/legacy/components/date-picker/range-input.cjs +12 -4
  93. package/build/legacy/components/date-picker/range-input.cjs.map +1 -1
  94. package/build/legacy/components/date-picker/trigger.cjs +12 -4
  95. package/build/legacy/components/date-picker/trigger.cjs.map +1 -1
  96. package/build/legacy/components/date-picker/view-control-group.cjs +12 -4
  97. package/build/legacy/components/date-picker/view-control-group.cjs.map +1 -1
  98. package/build/legacy/components/date-picker/year-view.cjs +12 -4
  99. package/build/legacy/components/date-picker/year-view.cjs.map +1 -1
  100. package/build/legacy/components/deprecated/Label.cjs +12 -4
  101. package/build/legacy/components/deprecated/Label.cjs.map +1 -1
  102. package/build/legacy/components/dialog/close-icon-trigger.cjs +12 -4
  103. package/build/legacy/components/dialog/close-icon-trigger.cjs.map +1 -1
  104. package/build/legacy/components/dialog/dialog.cjs +12 -4
  105. package/build/legacy/components/dialog/dialog.cjs.map +1 -1
  106. package/build/legacy/components/dialog/index.cjs +12 -4
  107. package/build/legacy/components/dialog/index.cjs.map +1 -1
  108. package/build/legacy/components/dialog/parts.cjs +12 -4
  109. package/build/legacy/components/dialog/parts.cjs.map +1 -1
  110. package/build/legacy/components/dialog/primitives.cjs +12 -4
  111. package/build/legacy/components/dialog/primitives.cjs.map +1 -1
  112. package/build/legacy/components/field/field.cjs +12 -4
  113. package/build/legacy/components/field/field.cjs.map +1 -1
  114. package/build/legacy/components/field/helper-text.cjs +12 -4
  115. package/build/legacy/components/field/helper-text.cjs.map +1 -1
  116. package/build/legacy/components/field/index.cjs +14 -5
  117. package/build/legacy/components/field/index.cjs.map +1 -1
  118. package/build/legacy/components/field/input.cjs +14 -5
  119. package/build/legacy/components/field/input.cjs.map +1 -1
  120. package/build/legacy/components/field/parts.cjs +14 -5
  121. package/build/legacy/components/field/parts.cjs.map +1 -1
  122. package/build/legacy/components/field/primitives.cjs +14 -5
  123. package/build/legacy/components/field/primitives.cjs.map +1 -1
  124. package/build/legacy/components/field/status-indicator.cjs +2 -1
  125. package/build/legacy/components/field/status-indicator.cjs.map +1 -1
  126. package/build/legacy/components/fieldset/fieldset.cjs +12 -4
  127. package/build/legacy/components/fieldset/fieldset.cjs.map +1 -1
  128. package/build/legacy/components/fieldset/index.cjs +12 -4
  129. package/build/legacy/components/fieldset/index.cjs.map +1 -1
  130. package/build/legacy/components/fieldset/parts.cjs +12 -4
  131. package/build/legacy/components/fieldset/parts.cjs.map +1 -1
  132. package/build/legacy/components/fieldset/primitives.cjs +12 -4
  133. package/build/legacy/components/fieldset/primitives.cjs.map +1 -1
  134. package/build/legacy/components/file-upload/file-status.cjs +13 -5
  135. package/build/legacy/components/file-upload/file-status.cjs.map +1 -1
  136. package/build/legacy/components/file-upload/file-uploader.cjs +12 -4
  137. package/build/legacy/components/file-upload/file-uploader.cjs.map +1 -1
  138. package/build/legacy/components/file-upload/index.cjs +13 -5
  139. package/build/legacy/components/file-upload/index.cjs.map +1 -1
  140. package/build/legacy/components/icon-button/button.cjs +12 -4
  141. package/build/legacy/components/icon-button/button.cjs.map +1 -1
  142. package/build/legacy/components/icon-button/index.cjs +12 -4
  143. package/build/legacy/components/icon-button/index.cjs.map +1 -1
  144. package/build/legacy/components/icon-button/primitives.cjs +12 -4
  145. package/build/legacy/components/icon-button/primitives.cjs.map +1 -1
  146. package/build/legacy/components/menu/index.cjs +12 -4
  147. package/build/legacy/components/menu/index.cjs.map +1 -1
  148. package/build/legacy/components/menu/menu.cjs +12 -4
  149. package/build/legacy/components/menu/menu.cjs.map +1 -1
  150. package/build/legacy/components/menu/primitives.cjs +12 -4
  151. package/build/legacy/components/menu/primitives.cjs.map +1 -1
  152. package/build/legacy/components/notifications/center.cjs +12 -4
  153. package/build/legacy/components/notifications/center.cjs.map +1 -1
  154. package/build/legacy/components/notifications/close-trigger.cjs +12 -4
  155. package/build/legacy/components/notifications/close-trigger.cjs.map +1 -1
  156. package/build/legacy/components/notifications/index.cjs +12 -4
  157. package/build/legacy/components/notifications/index.cjs.map +1 -1
  158. package/build/legacy/components/notifications/parts.cjs +12 -4
  159. package/build/legacy/components/notifications/parts.cjs.map +1 -1
  160. package/build/legacy/components/notifications/primitives.cjs +12 -4
  161. package/build/legacy/components/notifications/primitives.cjs.map +1 -1
  162. package/build/legacy/components/progress/index.cjs +12 -4
  163. package/build/legacy/components/progress/index.cjs.map +1 -1
  164. package/build/legacy/components/progress/primitives.cjs +12 -4
  165. package/build/legacy/components/progress/primitives.cjs.map +1 -1
  166. package/build/legacy/components/progress/progress-bar.cjs +12 -4
  167. package/build/legacy/components/progress/progress-bar.cjs.map +1 -1
  168. package/build/legacy/components/radio/index.cjs +12 -4
  169. package/build/legacy/components/radio/index.cjs.map +1 -1
  170. package/build/legacy/components/radio/parts.cjs +12 -4
  171. package/build/legacy/components/radio/parts.cjs.map +1 -1
  172. package/build/legacy/components/radio/primitives.cjs +12 -4
  173. package/build/legacy/components/radio/primitives.cjs.map +1 -1
  174. package/build/legacy/components/radio/radio.cjs +12 -4
  175. package/build/legacy/components/radio/radio.cjs.map +1 -1
  176. package/build/legacy/components/rating/index.cjs +12 -4
  177. package/build/legacy/components/rating/index.cjs.map +1 -1
  178. package/build/legacy/components/rating/parts.cjs +12 -4
  179. package/build/legacy/components/rating/parts.cjs.map +1 -1
  180. package/build/legacy/components/rating/primitives.cjs +12 -4
  181. package/build/legacy/components/rating/primitives.cjs.map +1 -1
  182. package/build/legacy/components/rating/rating.cjs +12 -4
  183. package/build/legacy/components/rating/rating.cjs.map +1 -1
  184. package/build/legacy/components/select/index.cjs +12 -4
  185. package/build/legacy/components/select/index.cjs.map +1 -1
  186. package/build/legacy/components/select/option-group.cjs +12 -4
  187. package/build/legacy/components/select/option-group.cjs.map +1 -1
  188. package/build/legacy/components/select/option.cjs +12 -4
  189. package/build/legacy/components/select/option.cjs.map +1 -1
  190. package/build/legacy/components/select/parts.cjs +12 -4
  191. package/build/legacy/components/select/parts.cjs.map +1 -1
  192. package/build/legacy/components/select/primitives.cjs +12 -4
  193. package/build/legacy/components/select/primitives.cjs.map +1 -1
  194. package/build/legacy/components/select/select.cjs +12 -4
  195. package/build/legacy/components/select/select.cjs.map +1 -1
  196. package/build/legacy/components/switch/index.cjs +12 -4
  197. package/build/legacy/components/switch/index.cjs.map +1 -1
  198. package/build/legacy/components/switch/parts.cjs +12 -4
  199. package/build/legacy/components/switch/parts.cjs.map +1 -1
  200. package/build/legacy/components/switch/primitives.cjs +12 -4
  201. package/build/legacy/components/switch/primitives.cjs.map +1 -1
  202. package/build/legacy/components/switch/switch.cjs +12 -4
  203. package/build/legacy/components/switch/switch.cjs.map +1 -1
  204. package/build/legacy/components/table/index.cjs +12 -4
  205. package/build/legacy/components/table/index.cjs.map +1 -1
  206. package/build/legacy/components/table/parts.cjs +12 -4
  207. package/build/legacy/components/table/parts.cjs.map +1 -1
  208. package/build/legacy/components/table/primitives.cjs +12 -4
  209. package/build/legacy/components/table/primitives.cjs.map +1 -1
  210. package/build/legacy/components/table/table.cjs +12 -4
  211. package/build/legacy/components/table/table.cjs.map +1 -1
  212. package/build/legacy/components/tabs/index.cjs +12 -4
  213. package/build/legacy/components/tabs/index.cjs.map +1 -1
  214. package/build/legacy/components/tabs/parts.cjs +12 -4
  215. package/build/legacy/components/tabs/parts.cjs.map +1 -1
  216. package/build/legacy/components/tabs/primitives.cjs +12 -4
  217. package/build/legacy/components/tabs/primitives.cjs.map +1 -1
  218. package/build/legacy/components/tabs/tabs.cjs +12 -4
  219. package/build/legacy/components/tabs/tabs.cjs.map +1 -1
  220. package/build/legacy/components/tag/index.cjs +12 -4
  221. package/build/legacy/components/tag/index.cjs.map +1 -1
  222. package/build/legacy/components/tag/tag.cjs +12 -4
  223. package/build/legacy/components/tag/tag.cjs.map +1 -1
  224. package/build/legacy/components/theme/index.cjs +13 -8
  225. package/build/legacy/components/theme/index.cjs.map +1 -1
  226. package/build/legacy/components/theme/theme.cjs +13 -8
  227. package/build/legacy/components/theme/theme.cjs.map +1 -1
  228. package/build/legacy/components/toggle/index.cjs +12 -4
  229. package/build/legacy/components/toggle/index.cjs.map +1 -1
  230. package/build/legacy/components/toggle/parts.cjs +12 -4
  231. package/build/legacy/components/toggle/parts.cjs.map +1 -1
  232. package/build/legacy/components/toggle/primitives.cjs +12 -4
  233. package/build/legacy/components/toggle/primitives.cjs.map +1 -1
  234. package/build/legacy/components/tooltip/index.cjs +12 -4
  235. package/build/legacy/components/tooltip/index.cjs.map +1 -1
  236. package/build/legacy/components/tooltip/parts.cjs +12 -4
  237. package/build/legacy/components/tooltip/parts.cjs.map +1 -1
  238. package/build/legacy/components/tooltip/primitives.cjs +12 -4
  239. package/build/legacy/components/tooltip/primitives.cjs.map +1 -1
  240. package/build/legacy/components/tooltip/tooltip.cjs +12 -4
  241. package/build/legacy/components/tooltip/tooltip.cjs.map +1 -1
  242. package/build/legacy/context/confirm-modal.cjs +12 -4
  243. package/build/legacy/context/confirm-modal.cjs.map +1 -1
  244. package/build/legacy/context/field.cjs +12 -4
  245. package/build/legacy/context/field.cjs.map +1 -1
  246. package/build/legacy/context/prompt-modal.cjs +14 -5
  247. package/build/legacy/context/prompt-modal.cjs.map +1 -1
  248. package/build/legacy/index.cjs +16 -7
  249. package/build/legacy/index.cjs.map +1 -1
  250. package/build/legacy/system/factory.cjs +13 -10
  251. package/build/legacy/system/factory.cjs.map +1 -1
  252. package/build/legacy/system/index.cjs +13 -5
  253. package/build/legacy/system/index.cjs.map +1 -1
  254. package/build/legacy/system/primitive-factory.cjs +12 -4
  255. package/build/legacy/system/primitive-factory.cjs.map +1 -1
  256. package/build/legacy/types.cjs.map +1 -1
  257. package/build/modern/_tsup-dts-rollup.d.ts +11 -1
  258. package/build/modern/{chunk-SFQIENJB.js → chunk-262PENBL.js} +3 -3
  259. package/build/modern/{chunk-DUFKXBQT.js → chunk-27RTYRM7.js} +2 -2
  260. package/build/modern/{chunk-WC5DERNW.js → chunk-2SBNSYYC.js} +4 -14
  261. package/build/modern/chunk-2SBNSYYC.js.map +1 -0
  262. package/build/modern/{chunk-DJCPF4JA.js → chunk-2UD72VLC.js} +2 -2
  263. package/build/modern/{chunk-QHV4IK52.js → chunk-2VVJATIW.js} +5 -5
  264. package/build/modern/{chunk-GZ6T3352.js → chunk-33OXE7IJ.js} +13 -5
  265. package/build/modern/chunk-33OXE7IJ.js.map +1 -0
  266. package/build/modern/{chunk-F45WBSRP.js → chunk-46QXBKGK.js} +6 -6
  267. package/build/modern/{chunk-KTTGGO72.js → chunk-4ZQUC4DA.js} +2 -2
  268. package/build/modern/{chunk-24FZWSGV.js → chunk-5UZUXCMO.js} +2 -2
  269. package/build/modern/{chunk-DUCW5X4Y.js → chunk-5W6HMI2G.js} +2 -2
  270. package/build/modern/chunk-5WT5BM3V.js +18 -0
  271. package/build/modern/chunk-5WT5BM3V.js.map +1 -0
  272. package/build/modern/{chunk-P3EIOH5D.js → chunk-6KGRHE3J.js} +2 -2
  273. package/build/modern/{chunk-NAPG6OWJ.js → chunk-6KIXF4ES.js} +2 -2
  274. package/build/modern/{chunk-AAWEAXIA.js → chunk-6P2JY52I.js} +2 -2
  275. package/build/modern/{chunk-X7JS25IL.js → chunk-6XO2RTIJ.js} +2 -2
  276. package/build/modern/{chunk-26VVDQAY.js → chunk-77QDH2Q5.js} +2 -2
  277. package/build/modern/{chunk-KUR42DQQ.js → chunk-7GT7UUCB.js} +2 -2
  278. package/build/modern/{chunk-MS7LB3BL.js → chunk-7GVDVLCR.js} +2 -2
  279. package/build/modern/{chunk-VB5XZZKE.js → chunk-7LNGA4BX.js} +2 -2
  280. package/build/modern/{chunk-4TQO7LCB.js → chunk-7MWSOSOY.js} +2 -2
  281. package/build/modern/{chunk-GZXW3JIW.js → chunk-A6NEZNGY.js} +2 -2
  282. package/build/modern/{chunk-WJHG3ZFR.js → chunk-ABMK5P66.js} +2 -2
  283. package/build/modern/{chunk-G4CDF7LY.js → chunk-ADOFKGU3.js} +2 -2
  284. package/build/modern/{chunk-WC75SKFH.js → chunk-AHYFFHUW.js} +2 -2
  285. package/build/modern/{chunk-TCACYLCL.js → chunk-BFE2SHZO.js} +3 -3
  286. package/build/modern/{chunk-OQN4HVLQ.js → chunk-BGJIAA5F.js} +2 -2
  287. package/build/modern/{chunk-V3LIZS3V.js → chunk-BGZTC53N.js} +2 -2
  288. package/build/modern/{chunk-TGCKJHEE.js → chunk-BS4V2YJV.js} +3 -3
  289. package/build/modern/{chunk-6LH6MOXD.js → chunk-BT6FMOKM.js} +2 -2
  290. package/build/modern/{chunk-JVWOAPWY.js → chunk-CBJ5A5BD.js} +4 -4
  291. package/build/modern/{chunk-CIKCQHPC.js → chunk-CI7JYXUR.js} +3 -3
  292. package/build/modern/{chunk-EALORWDQ.js → chunk-CKCGLHLS.js} +6 -6
  293. package/build/modern/{chunk-X627G6B3.js → chunk-CYK3ZJIX.js} +2 -2
  294. package/build/modern/{chunk-HHY26N7O.js → chunk-EMLKVTGD.js} +3 -3
  295. package/build/modern/{chunk-56YCKMC2.js → chunk-ETYXG2J2.js} +2 -2
  296. package/build/modern/{chunk-TVSVKDWV.js → chunk-FIVEPZ5F.js} +2 -2
  297. package/build/modern/{chunk-6W6QY3XG.js → chunk-FL3J7LTC.js} +2 -2
  298. package/build/modern/{chunk-JQNVN6R6.js → chunk-GBV7MIBU.js} +4 -4
  299. package/build/modern/{chunk-MBZHMWPR.js → chunk-GLH23RDO.js} +3 -3
  300. package/build/modern/{chunk-EPIO6H3A.js → chunk-H6ZGH4VM.js} +2 -2
  301. package/build/modern/{chunk-NE6TEVH2.js → chunk-H7N6M7VO.js} +2 -2
  302. package/build/modern/{chunk-WRKDPEIM.js → chunk-HJYVIRNA.js} +5 -5
  303. package/build/modern/{chunk-RJGEKVHZ.js → chunk-HUKQPIDV.js} +2 -2
  304. package/build/modern/{chunk-NZBKI6AF.js → chunk-IWJCQ4BM.js} +3 -3
  305. package/build/modern/{chunk-TXV55LWL.js → chunk-IX5QZCM4.js} +2 -2
  306. package/build/modern/{chunk-DWKGFNTK.js → chunk-J37VR33H.js} +2 -2
  307. package/build/modern/{chunk-GPGFQNJ6.js → chunk-JBAE2B2H.js} +2 -2
  308. package/build/modern/{chunk-L3V6I7YH.js → chunk-KDIDKP2L.js} +2 -2
  309. package/build/modern/{chunk-Q2MJ7JRM.js → chunk-KELIM5A3.js} +2 -2
  310. package/build/modern/{chunk-3WTLKTIL.js → chunk-KF3WIC2Y.js} +2 -2
  311. package/build/modern/{chunk-APDQJ7MW.js → chunk-KHU3YTLM.js} +2 -2
  312. package/build/modern/{chunk-P4GJKPNL.js → chunk-KUF4UUC7.js} +2 -2
  313. package/build/modern/{chunk-4LBGIGNJ.js → chunk-L4CKWLXL.js} +2 -2
  314. package/build/modern/{chunk-VIKVLJGG.js → chunk-LCURHO24.js} +3 -2
  315. package/build/modern/{chunk-VIKVLJGG.js.map → chunk-LCURHO24.js.map} +1 -1
  316. package/build/modern/{chunk-WN2WTSWG.js → chunk-LMEGBPKK.js} +2 -2
  317. package/build/modern/{chunk-OKU736EK.js → chunk-LNDQW46A.js} +2 -2
  318. package/build/modern/{chunk-L654KDXH.js → chunk-LVA6QLLM.js} +2 -2
  319. package/build/modern/{chunk-T5TX5YHC.js → chunk-MPVUVQCJ.js} +2 -2
  320. package/build/modern/{chunk-QZ5BIUMH.js → chunk-NC7AHNAS.js} +7 -7
  321. package/build/modern/{chunk-QZ5BIUMH.js.map → chunk-NC7AHNAS.js.map} +1 -1
  322. package/build/modern/{chunk-7F4AOCTU.js → chunk-NLZGGXMB.js} +2 -2
  323. package/build/modern/{chunk-NZZS2A53.js → chunk-OG74JDYL.js} +2 -2
  324. package/build/modern/{chunk-7PTAPZOO.js → chunk-OSUFAZAK.js} +2 -2
  325. package/build/modern/{chunk-VQ3NO6IC.js → chunk-P3J5P524.js} +2 -2
  326. package/build/modern/{chunk-YJR4NLDB.js → chunk-PGINYK2P.js} +2 -2
  327. package/build/modern/{chunk-XNER5INS.js → chunk-PI7MKQ62.js} +2 -2
  328. package/build/modern/{chunk-KRTXDJ4S.js → chunk-Q3NDU44T.js} +2 -2
  329. package/build/modern/{chunk-JPWFSCTC.js → chunk-Q6FTLT7K.js} +2 -2
  330. package/build/modern/{chunk-4FRIJ5VV.js → chunk-QHPJ2C76.js} +2 -2
  331. package/build/modern/{chunk-JLMHKTPI.js → chunk-QV5JHBHO.js} +2 -2
  332. package/build/modern/{chunk-3XA6Y4S4.js → chunk-RCXKKQQA.js} +2 -2
  333. package/build/modern/{chunk-BFV463NP.js → chunk-RKKI3J6R.js} +2 -2
  334. package/build/modern/{chunk-QULAH262.js → chunk-RMLBOGDE.js} +3 -3
  335. package/build/modern/{chunk-TQB6U3JH.js → chunk-ROWT3E5K.js} +2 -2
  336. package/build/modern/{chunk-4NW7Q2VS.js → chunk-S7HDNFJJ.js} +2 -2
  337. package/build/modern/{chunk-KJYL3RJ2.js → chunk-T3U6K34Y.js} +2 -2
  338. package/build/modern/{chunk-RIBBTTT4.js → chunk-TIKG6U4Y.js} +2 -2
  339. package/build/modern/{chunk-UWNLOY27.js → chunk-TJXWSSHO.js} +2 -2
  340. package/build/modern/{chunk-OCK4XVNE.js → chunk-U2ZT7UDW.js} +2 -2
  341. package/build/modern/{chunk-JFWPJXFF.js → chunk-UHS2TNFC.js} +2 -2
  342. package/build/modern/{chunk-BF2IDJMZ.js → chunk-UZHBWTSE.js} +2 -2
  343. package/build/modern/{chunk-ZLHQYCL3.js → chunk-VB7T2YYD.js} +3 -3
  344. package/build/modern/{chunk-5CG7URT6.js → chunk-VQIBX475.js} +2 -2
  345. package/build/modern/{chunk-BCN2E47W.js → chunk-W7WPVM34.js} +3 -3
  346. package/build/modern/{chunk-VKL3CMI3.js → chunk-WC6SOU2F.js} +2 -2
  347. package/build/modern/{chunk-6QWS7HII.js → chunk-WK7TUQIS.js} +2 -2
  348. package/build/modern/{chunk-CKLLERV7.js → chunk-X34MYQKI.js} +2 -2
  349. package/build/modern/{chunk-VOVGPV7G.js → chunk-X6KB5LWU.js} +2 -2
  350. package/build/modern/{chunk-ULKVI2EH.js → chunk-X6WOC4RF.js} +3 -3
  351. package/build/modern/{chunk-FRT3VY4M.js → chunk-XB4HMXOQ.js} +3 -3
  352. package/build/modern/{chunk-E2AW2N7Q.js → chunk-XMFTL6KG.js} +3 -3
  353. package/build/modern/{chunk-KUTKPR3G.js → chunk-XZ2FNMMC.js} +2 -2
  354. package/build/modern/{chunk-MW2BVQ5A.js → chunk-Y7UXAFII.js} +2 -2
  355. package/build/modern/{chunk-HBS3B3SE.js → chunk-YAZIBTA2.js} +2 -2
  356. package/build/modern/{chunk-LWOV3N62.js → chunk-YMFUEQ2A.js} +3 -3
  357. package/build/modern/{chunk-KOVD3FG7.js → chunk-ZFEGJR5E.js} +2 -2
  358. package/build/modern/{chunk-SQRFRBDB.js → chunk-ZGJDFQN2.js} +2 -2
  359. package/build/modern/{chunk-B4X5H2QZ.js → chunk-ZUC3X6GQ.js} +2 -2
  360. package/build/modern/components/accordion/index.js +7 -6
  361. package/build/modern/components/accordion/item-group.js +7 -6
  362. package/build/modern/components/accordion/item-indicator.js +6 -5
  363. package/build/modern/components/accordion/parts.js +5 -4
  364. package/build/modern/components/accordion/primitives.js +4 -3
  365. package/build/modern/components/admonition/admonition.js +10 -9
  366. package/build/modern/components/admonition/index.js +10 -9
  367. package/build/modern/components/admonition/match-avatar.js +7 -6
  368. package/build/modern/components/admonition/parts.js +5 -4
  369. package/build/modern/components/admonition/primitives.js +4 -3
  370. package/build/modern/components/avatar/avatar.js +6 -5
  371. package/build/modern/components/avatar/index.js +6 -5
  372. package/build/modern/components/avatar/parts.js +5 -4
  373. package/build/modern/components/avatar/primitives.js +4 -3
  374. package/build/modern/components/button/button.js +5 -4
  375. package/build/modern/components/button/index.js +6 -5
  376. package/build/modern/components/button/parts.js +6 -5
  377. package/build/modern/components/button/primitives.js +4 -3
  378. package/build/modern/components/checkbox/checkbox-icon.js +6 -5
  379. package/build/modern/components/checkbox/checkbox.js +7 -6
  380. package/build/modern/components/checkbox/index.js +7 -6
  381. package/build/modern/components/checkbox/parts.js +5 -4
  382. package/build/modern/components/checkbox/primitives.js +4 -3
  383. package/build/modern/components/circular-progress/circular-progress.js +5 -4
  384. package/build/modern/components/circular-progress/index.js +5 -4
  385. package/build/modern/components/circular-progress/primitives.js +4 -3
  386. package/build/modern/components/combobox/combobox.js +6 -5
  387. package/build/modern/components/combobox/index.js +10 -9
  388. package/build/modern/components/combobox/item-group.js +6 -5
  389. package/build/modern/components/combobox/item.js +6 -5
  390. package/build/modern/components/combobox/parts.js +5 -4
  391. package/build/modern/components/combobox/primitives.js +4 -3
  392. package/build/modern/components/combobox/use-stateful-collection.js +5 -4
  393. package/build/modern/components/cta-dialog/index.js +16 -15
  394. package/build/modern/components/cta-dialog/provider.js +16 -15
  395. package/build/modern/components/cta-dialog/trigger-item.js +6 -5
  396. package/build/modern/components/date-picker/calendar.js +15 -14
  397. package/build/modern/components/date-picker/content.js +6 -5
  398. package/build/modern/components/date-picker/date-picker.js +6 -5
  399. package/build/modern/components/date-picker/day-view.js +11 -10
  400. package/build/modern/components/date-picker/index.js +19 -18
  401. package/build/modern/components/date-picker/input.js +9 -8
  402. package/build/modern/components/date-picker/month-view.js +11 -10
  403. package/build/modern/components/date-picker/parts.js +5 -4
  404. package/build/modern/components/date-picker/primitives.js +4 -3
  405. package/build/modern/components/date-picker/range-input.js +9 -8
  406. package/build/modern/components/date-picker/trigger.js +8 -7
  407. package/build/modern/components/date-picker/view-control-group.js +10 -9
  408. package/build/modern/components/date-picker/year-view.js +11 -10
  409. package/build/modern/components/deprecated/Label.js +9 -8
  410. package/build/modern/components/dialog/close-icon-trigger.js +7 -6
  411. package/build/modern/components/dialog/dialog.js +5 -4
  412. package/build/modern/components/dialog/index.js +9 -8
  413. package/build/modern/components/dialog/parts.js +5 -4
  414. package/build/modern/components/dialog/primitives.js +4 -3
  415. package/build/modern/components/field/field.js +7 -6
  416. package/build/modern/components/field/helper-text.js +6 -5
  417. package/build/modern/components/field/index.js +8 -7
  418. package/build/modern/components/field/input.js +5 -4
  419. package/build/modern/components/field/parts.js +6 -5
  420. package/build/modern/components/field/primitives.js +5 -4
  421. package/build/modern/components/field/status-indicator.js +1 -1
  422. package/build/modern/components/fieldset/fieldset.js +6 -5
  423. package/build/modern/components/fieldset/index.js +6 -5
  424. package/build/modern/components/fieldset/parts.js +5 -4
  425. package/build/modern/components/fieldset/primitives.js +4 -3
  426. package/build/modern/components/file-upload/file-status.js +16 -15
  427. package/build/modern/components/file-upload/file-uploader.js +7 -6
  428. package/build/modern/components/file-upload/index.js +17 -16
  429. package/build/modern/components/icon-button/button.js +5 -4
  430. package/build/modern/components/icon-button/index.js +5 -4
  431. package/build/modern/components/icon-button/primitives.js +4 -3
  432. package/build/modern/components/menu/index.js +5 -4
  433. package/build/modern/components/menu/menu.js +5 -4
  434. package/build/modern/components/menu/primitives.js +4 -3
  435. package/build/modern/components/notifications/center.js +9 -8
  436. package/build/modern/components/notifications/close-trigger.js +6 -5
  437. package/build/modern/components/notifications/index.js +9 -8
  438. package/build/modern/components/notifications/parts.js +5 -4
  439. package/build/modern/components/notifications/primitives.js +4 -3
  440. package/build/modern/components/progress/index.js +5 -4
  441. package/build/modern/components/progress/primitives.js +4 -3
  442. package/build/modern/components/progress/progress-bar.js +5 -4
  443. package/build/modern/components/radio/index.js +8 -7
  444. package/build/modern/components/radio/parts.js +5 -4
  445. package/build/modern/components/radio/primitives.js +4 -3
  446. package/build/modern/components/radio/radio.js +5 -4
  447. package/build/modern/components/rating/index.js +6 -5
  448. package/build/modern/components/rating/parts.js +5 -4
  449. package/build/modern/components/rating/primitives.js +4 -3
  450. package/build/modern/components/rating/rating.js +6 -5
  451. package/build/modern/components/select/index.js +8 -7
  452. package/build/modern/components/select/option-group.js +5 -4
  453. package/build/modern/components/select/option.js +6 -5
  454. package/build/modern/components/select/parts.js +5 -4
  455. package/build/modern/components/select/primitives.js +4 -3
  456. package/build/modern/components/select/select.js +6 -5
  457. package/build/modern/components/switch/index.js +6 -5
  458. package/build/modern/components/switch/parts.js +5 -4
  459. package/build/modern/components/switch/primitives.js +4 -3
  460. package/build/modern/components/switch/switch.js +6 -5
  461. package/build/modern/components/table/index.js +6 -5
  462. package/build/modern/components/table/parts.js +5 -4
  463. package/build/modern/components/table/primitives.js +4 -3
  464. package/build/modern/components/table/table.js +5 -4
  465. package/build/modern/components/tabs/index.js +6 -5
  466. package/build/modern/components/tabs/parts.js +5 -4
  467. package/build/modern/components/tabs/primitives.js +4 -3
  468. package/build/modern/components/tabs/tabs.js +6 -5
  469. package/build/modern/components/tag/index.js +6 -5
  470. package/build/modern/components/tag/tag.js +6 -5
  471. package/build/modern/components/theme/index.js +4 -3
  472. package/build/modern/components/theme/theme.js +4 -3
  473. package/build/modern/components/toggle/index.js +5 -4
  474. package/build/modern/components/toggle/parts.js +5 -4
  475. package/build/modern/components/toggle/primitives.js +4 -3
  476. package/build/modern/components/tooltip/index.js +6 -5
  477. package/build/modern/components/tooltip/parts.js +5 -4
  478. package/build/modern/components/tooltip/primitives.js +4 -3
  479. package/build/modern/components/tooltip/tooltip.js +6 -5
  480. package/build/modern/context/confirm-modal.js +15 -14
  481. package/build/modern/context/field.js +5 -4
  482. package/build/modern/context/field.js.map +1 -1
  483. package/build/modern/context/prompt-modal.js +20 -19
  484. package/build/modern/index.js +129 -128
  485. package/build/modern/index.js.map +1 -1
  486. package/build/modern/system/factory.js +2 -3
  487. package/build/modern/system/index.js +3 -2
  488. package/build/modern/system/primitive-factory.js +1 -1
  489. package/package.json +3 -3
  490. package/src/components/field/status-indicator.tsx +4 -1
  491. package/src/components/file-upload/file-status.tsx +1 -1
  492. package/src/system/factory.ts +2 -2
  493. package/src/system/primitive-factory.tsx +16 -6
  494. package/src/types.ts +10 -0
  495. package/build/modern/chunk-GZ6T3352.js.map +0 -1
  496. package/build/modern/chunk-WC5DERNW.js.map +0 -1
  497. /package/build/modern/{chunk-SFQIENJB.js.map → chunk-262PENBL.js.map} +0 -0
  498. /package/build/modern/{chunk-DUFKXBQT.js.map → chunk-27RTYRM7.js.map} +0 -0
  499. /package/build/modern/{chunk-DJCPF4JA.js.map → chunk-2UD72VLC.js.map} +0 -0
  500. /package/build/modern/{chunk-QHV4IK52.js.map → chunk-2VVJATIW.js.map} +0 -0
  501. /package/build/modern/{chunk-F45WBSRP.js.map → chunk-46QXBKGK.js.map} +0 -0
  502. /package/build/modern/{chunk-KTTGGO72.js.map → chunk-4ZQUC4DA.js.map} +0 -0
  503. /package/build/modern/{chunk-24FZWSGV.js.map → chunk-5UZUXCMO.js.map} +0 -0
  504. /package/build/modern/{chunk-DUCW5X4Y.js.map → chunk-5W6HMI2G.js.map} +0 -0
  505. /package/build/modern/{chunk-P3EIOH5D.js.map → chunk-6KGRHE3J.js.map} +0 -0
  506. /package/build/modern/{chunk-NAPG6OWJ.js.map → chunk-6KIXF4ES.js.map} +0 -0
  507. /package/build/modern/{chunk-AAWEAXIA.js.map → chunk-6P2JY52I.js.map} +0 -0
  508. /package/build/modern/{chunk-X7JS25IL.js.map → chunk-6XO2RTIJ.js.map} +0 -0
  509. /package/build/modern/{chunk-26VVDQAY.js.map → chunk-77QDH2Q5.js.map} +0 -0
  510. /package/build/modern/{chunk-KUR42DQQ.js.map → chunk-7GT7UUCB.js.map} +0 -0
  511. /package/build/modern/{chunk-MS7LB3BL.js.map → chunk-7GVDVLCR.js.map} +0 -0
  512. /package/build/modern/{chunk-VB5XZZKE.js.map → chunk-7LNGA4BX.js.map} +0 -0
  513. /package/build/modern/{chunk-4TQO7LCB.js.map → chunk-7MWSOSOY.js.map} +0 -0
  514. /package/build/modern/{chunk-GZXW3JIW.js.map → chunk-A6NEZNGY.js.map} +0 -0
  515. /package/build/modern/{chunk-WJHG3ZFR.js.map → chunk-ABMK5P66.js.map} +0 -0
  516. /package/build/modern/{chunk-G4CDF7LY.js.map → chunk-ADOFKGU3.js.map} +0 -0
  517. /package/build/modern/{chunk-WC75SKFH.js.map → chunk-AHYFFHUW.js.map} +0 -0
  518. /package/build/modern/{chunk-TCACYLCL.js.map → chunk-BFE2SHZO.js.map} +0 -0
  519. /package/build/modern/{chunk-OQN4HVLQ.js.map → chunk-BGJIAA5F.js.map} +0 -0
  520. /package/build/modern/{chunk-V3LIZS3V.js.map → chunk-BGZTC53N.js.map} +0 -0
  521. /package/build/modern/{chunk-TGCKJHEE.js.map → chunk-BS4V2YJV.js.map} +0 -0
  522. /package/build/modern/{chunk-6LH6MOXD.js.map → chunk-BT6FMOKM.js.map} +0 -0
  523. /package/build/modern/{chunk-JVWOAPWY.js.map → chunk-CBJ5A5BD.js.map} +0 -0
  524. /package/build/modern/{chunk-CIKCQHPC.js.map → chunk-CI7JYXUR.js.map} +0 -0
  525. /package/build/modern/{chunk-EALORWDQ.js.map → chunk-CKCGLHLS.js.map} +0 -0
  526. /package/build/modern/{chunk-X627G6B3.js.map → chunk-CYK3ZJIX.js.map} +0 -0
  527. /package/build/modern/{chunk-HHY26N7O.js.map → chunk-EMLKVTGD.js.map} +0 -0
  528. /package/build/modern/{chunk-56YCKMC2.js.map → chunk-ETYXG2J2.js.map} +0 -0
  529. /package/build/modern/{chunk-TVSVKDWV.js.map → chunk-FIVEPZ5F.js.map} +0 -0
  530. /package/build/modern/{chunk-6W6QY3XG.js.map → chunk-FL3J7LTC.js.map} +0 -0
  531. /package/build/modern/{chunk-JQNVN6R6.js.map → chunk-GBV7MIBU.js.map} +0 -0
  532. /package/build/modern/{chunk-MBZHMWPR.js.map → chunk-GLH23RDO.js.map} +0 -0
  533. /package/build/modern/{chunk-EPIO6H3A.js.map → chunk-H6ZGH4VM.js.map} +0 -0
  534. /package/build/modern/{chunk-NE6TEVH2.js.map → chunk-H7N6M7VO.js.map} +0 -0
  535. /package/build/modern/{chunk-WRKDPEIM.js.map → chunk-HJYVIRNA.js.map} +0 -0
  536. /package/build/modern/{chunk-RJGEKVHZ.js.map → chunk-HUKQPIDV.js.map} +0 -0
  537. /package/build/modern/{chunk-NZBKI6AF.js.map → chunk-IWJCQ4BM.js.map} +0 -0
  538. /package/build/modern/{chunk-TXV55LWL.js.map → chunk-IX5QZCM4.js.map} +0 -0
  539. /package/build/modern/{chunk-DWKGFNTK.js.map → chunk-J37VR33H.js.map} +0 -0
  540. /package/build/modern/{chunk-GPGFQNJ6.js.map → chunk-JBAE2B2H.js.map} +0 -0
  541. /package/build/modern/{chunk-L3V6I7YH.js.map → chunk-KDIDKP2L.js.map} +0 -0
  542. /package/build/modern/{chunk-Q2MJ7JRM.js.map → chunk-KELIM5A3.js.map} +0 -0
  543. /package/build/modern/{chunk-3WTLKTIL.js.map → chunk-KF3WIC2Y.js.map} +0 -0
  544. /package/build/modern/{chunk-APDQJ7MW.js.map → chunk-KHU3YTLM.js.map} +0 -0
  545. /package/build/modern/{chunk-P4GJKPNL.js.map → chunk-KUF4UUC7.js.map} +0 -0
  546. /package/build/modern/{chunk-4LBGIGNJ.js.map → chunk-L4CKWLXL.js.map} +0 -0
  547. /package/build/modern/{chunk-WN2WTSWG.js.map → chunk-LMEGBPKK.js.map} +0 -0
  548. /package/build/modern/{chunk-OKU736EK.js.map → chunk-LNDQW46A.js.map} +0 -0
  549. /package/build/modern/{chunk-L654KDXH.js.map → chunk-LVA6QLLM.js.map} +0 -0
  550. /package/build/modern/{chunk-T5TX5YHC.js.map → chunk-MPVUVQCJ.js.map} +0 -0
  551. /package/build/modern/{chunk-7F4AOCTU.js.map → chunk-NLZGGXMB.js.map} +0 -0
  552. /package/build/modern/{chunk-NZZS2A53.js.map → chunk-OG74JDYL.js.map} +0 -0
  553. /package/build/modern/{chunk-7PTAPZOO.js.map → chunk-OSUFAZAK.js.map} +0 -0
  554. /package/build/modern/{chunk-VQ3NO6IC.js.map → chunk-P3J5P524.js.map} +0 -0
  555. /package/build/modern/{chunk-YJR4NLDB.js.map → chunk-PGINYK2P.js.map} +0 -0
  556. /package/build/modern/{chunk-XNER5INS.js.map → chunk-PI7MKQ62.js.map} +0 -0
  557. /package/build/modern/{chunk-KRTXDJ4S.js.map → chunk-Q3NDU44T.js.map} +0 -0
  558. /package/build/modern/{chunk-JPWFSCTC.js.map → chunk-Q6FTLT7K.js.map} +0 -0
  559. /package/build/modern/{chunk-4FRIJ5VV.js.map → chunk-QHPJ2C76.js.map} +0 -0
  560. /package/build/modern/{chunk-JLMHKTPI.js.map → chunk-QV5JHBHO.js.map} +0 -0
  561. /package/build/modern/{chunk-3XA6Y4S4.js.map → chunk-RCXKKQQA.js.map} +0 -0
  562. /package/build/modern/{chunk-BFV463NP.js.map → chunk-RKKI3J6R.js.map} +0 -0
  563. /package/build/modern/{chunk-QULAH262.js.map → chunk-RMLBOGDE.js.map} +0 -0
  564. /package/build/modern/{chunk-TQB6U3JH.js.map → chunk-ROWT3E5K.js.map} +0 -0
  565. /package/build/modern/{chunk-4NW7Q2VS.js.map → chunk-S7HDNFJJ.js.map} +0 -0
  566. /package/build/modern/{chunk-KJYL3RJ2.js.map → chunk-T3U6K34Y.js.map} +0 -0
  567. /package/build/modern/{chunk-RIBBTTT4.js.map → chunk-TIKG6U4Y.js.map} +0 -0
  568. /package/build/modern/{chunk-UWNLOY27.js.map → chunk-TJXWSSHO.js.map} +0 -0
  569. /package/build/modern/{chunk-OCK4XVNE.js.map → chunk-U2ZT7UDW.js.map} +0 -0
  570. /package/build/modern/{chunk-JFWPJXFF.js.map → chunk-UHS2TNFC.js.map} +0 -0
  571. /package/build/modern/{chunk-BF2IDJMZ.js.map → chunk-UZHBWTSE.js.map} +0 -0
  572. /package/build/modern/{chunk-ZLHQYCL3.js.map → chunk-VB7T2YYD.js.map} +0 -0
  573. /package/build/modern/{chunk-5CG7URT6.js.map → chunk-VQIBX475.js.map} +0 -0
  574. /package/build/modern/{chunk-BCN2E47W.js.map → chunk-W7WPVM34.js.map} +0 -0
  575. /package/build/modern/{chunk-VKL3CMI3.js.map → chunk-WC6SOU2F.js.map} +0 -0
  576. /package/build/modern/{chunk-6QWS7HII.js.map → chunk-WK7TUQIS.js.map} +0 -0
  577. /package/build/modern/{chunk-CKLLERV7.js.map → chunk-X34MYQKI.js.map} +0 -0
  578. /package/build/modern/{chunk-VOVGPV7G.js.map → chunk-X6KB5LWU.js.map} +0 -0
  579. /package/build/modern/{chunk-ULKVI2EH.js.map → chunk-X6WOC4RF.js.map} +0 -0
  580. /package/build/modern/{chunk-FRT3VY4M.js.map → chunk-XB4HMXOQ.js.map} +0 -0
  581. /package/build/modern/{chunk-E2AW2N7Q.js.map → chunk-XMFTL6KG.js.map} +0 -0
  582. /package/build/modern/{chunk-KUTKPR3G.js.map → chunk-XZ2FNMMC.js.map} +0 -0
  583. /package/build/modern/{chunk-MW2BVQ5A.js.map → chunk-Y7UXAFII.js.map} +0 -0
  584. /package/build/modern/{chunk-HBS3B3SE.js.map → chunk-YAZIBTA2.js.map} +0 -0
  585. /package/build/modern/{chunk-LWOV3N62.js.map → chunk-YMFUEQ2A.js.map} +0 -0
  586. /package/build/modern/{chunk-KOVD3FG7.js.map → chunk-ZFEGJR5E.js.map} +0 -0
  587. /package/build/modern/{chunk-SQRFRBDB.js.map → chunk-ZGJDFQN2.js.map} +0 -0
  588. /package/build/modern/{chunk-B4X5H2QZ.js.map → chunk-ZUC3X6GQ.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/cta-dialog/index.ts","../../../../src/components/cta-dialog/provider.tsx","../../../../src/context/cerberus.tsx","../../../../src/components/show/show.tsx","../../../../src/components/for/for.tsx","../../../../src/utils/index.ts","../../../../src/components/avatar/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/avatar/parts.ts","../../../../src/components/avatar/avatar.tsx","../../../../src/components/dialog/primitives.tsx","../../../../src/components/icon-button/primitives.ts","../../../../src/components/icon-button/button.tsx","../../../../src/components/dialog/close-icon-trigger.tsx","../../../../src/components/portal/portal.tsx","../../../../src/components/dialog/dialog.tsx","../../../../src/components/cta-dialog/context.tsx","../../../../src/components/cta-dialog/trigger-item.tsx","../../../../src/components/button/button.tsx","../../../../src/components/button/primitives.tsx","../../../../src/components/cta-dialog/utils.ts"],"sourcesContent":["export * from './provider'\nexport * from './utils'\n","'use client'\n\nimport {\n useCallback,\n useContext,\n useMemo,\n useState,\n type MouseEvent,\n type PropsWithChildren,\n type ReactNode,\n} from 'react'\nimport { HStack, VStack } from 'styled-system/jsx'\nimport { useCerberusContext } from '../../context/cerberus'\nimport { Show } from '../show/index'\nimport { For } from '../for/index'\nimport { Avatar } from '../avatar/avatar'\nimport {\n Dialog,\n DialogDescription,\n DialogHeading,\n DialogProvider,\n} from '../dialog'\nimport { DialogCloseIconTrigger } from '../dialog/close-icon-trigger'\nimport type { CTAButtonAction, CTAModalActionReturn } from './utils'\nimport {\n CTAModalContext,\n type CTAModalValue,\n type ShowCTAModalOptions,\n} from './context'\nimport { TriggerItem } from './trigger-item'\n\n/**\n * This module provides the provider and hook for the cta modal.\n * @module 'react/cta-modal/provider'\n */\n\n/**\n * Provides a CTA modal to the app.\n * @see https://cerberus.digitalu.design/react/cta-modal\n * @example\n * ```tsx\n * // Wrap the Provider around the root of the feature.\n * <CTAModal>\n * <SomeFeatureSection />\n * </CTAModal>\n *\n * // Use the hook to show the cta modal.\n * const cta = useCTAModal()\n *\n * const handleClick = useCallback(async () => {\n * const userConsent = await cta.show({\n * heading: 'Create or copy a Cohort',\n * description:\n * 'Create a new cohort or copy and existing one.',\n * icon: <Copy size={24} />,\n * actions: [\n * {\n * text: 'Create Cohort',\n * onClick: () => {},\n * {\n * text: 'Copy Cohort',\n * onClick: () => {}\n * }\n * })\n * setConsent(userConsent)\n * }, [cta])\n * ```\n */\nexport function CTAModal(props: PropsWithChildren<object>) {\n const [open, setOpen] = useState<boolean>(false)\n const [content, setContent] = useState<ShowCTAModalOptions | null>(null)\n const confirmIcon = content?.icon\n\n const { icons } = useCerberusContext()\n const { confirmModal: FallbackIcon } = icons\n\n const handleShow = useCallback(\n (options: ShowCTAModalOptions) => {\n setContent({ ...options })\n setOpen(true)\n },\n [setOpen],\n )\n\n const handleActionClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n const index = Number(event.currentTarget.getAttribute('data-index'))\n const contentActions = content?.actions as CTAModalActionReturn\n const action = contentActions._actions[index] as CTAButtonAction\n action?.handleClick?.(event)\n setOpen(false)\n },\n [content, setOpen],\n )\n\n const value = useMemo(\n () => ({\n show: handleShow,\n }),\n [handleShow],\n )\n\n return (\n <CTAModalContext.Provider value={value}>\n {props.children}\n\n <DialogProvider open={open} onOpenChange={(e) => setOpen(e.open)}>\n <Dialog\n size=\"sm\"\n style={{\n '--dialog-content-min-h': 'auto',\n }}\n >\n <DialogCloseIconTrigger />\n\n <VStack gap=\"xl\" w=\"full\">\n <VStack alignItems=\"flex-start\" gap=\"md\" w=\"full\">\n <VStack gap=\"lg\" w=\"full\">\n <Avatar\n gradient=\"charon-light\"\n fallback={\n <Show\n when={confirmIcon}\n fallback={<FallbackIcon size={24} />}\n >\n {confirmIcon}\n </Show>\n }\n />\n <DialogHeading>{content?.heading}</DialogHeading>\n <DialogDescription>{content?.description}</DialogDescription>\n </VStack>\n </VStack>\n\n <HStack gap=\"md\" w=\"full\">\n <For each={content?.actions._actions}>\n {(action, index) => (\n <Show\n key={index}\n when={content?.actions?.type === 'btnAction'}\n fallback={\n <TriggerItem asChild>{action as ReactNode}</TriggerItem>\n }\n >\n <TriggerItem data-index={index} onClick={handleActionClick}>\n {(action as CTAButtonAction)?.text}\n </TriggerItem>\n </Show>\n )}\n </For>\n </HStack>\n </VStack>\n </Dialog>\n </DialogProvider>\n </CTAModalContext.Provider>\n )\n}\n\nexport function useCTAModal(): CTAModalValue {\n const context = useContext(CTAModalContext)\n if (context === null) {\n throw new Error('useCTAModal must be used within a CTAModal Provider')\n }\n return context\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 { type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps<T> {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: T | 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<T>(props: PropsWithChildren<ShowProps<T>>) {\n const { when, children, fallback } = props\n\n if (when) {\n return <>{children}</>\n }\n\n if (fallback) {\n return <>{fallback}</>\n }\n\n return null\n}\n","import type { ReactNode, JSX } from 'react'\n\nexport interface ForProps<T extends readonly unknown[], U extends JSX.Element> {\n /**\n * The array to iterate over.\n */\n each: T | undefined | null | false\n /**\n * The fallback to render when the array is empty.\n */\n fallback?: JSX.Element\n /**\n * The children to render for each item in the array.\n */\n children: (item: T[number], index: number) => U\n}\n\n/**\n * The For component is used to iterate over an array and render a list of\n * components or display a fallback when the array is empty.\n * Inspired by the `<For>` component from SolidJS.\n *\n * @example\n * ```tsx\n * <For each={['a', 'b', 'c']}>\n * {(item, index) => <div key={index}>{item}</div>}\n * </For>\n * ```\n */\nexport function For<T extends readonly unknown[], U extends JSX.Element>(\n props: ForProps<T, U>,\n) {\n if (!props.each || !props.each.length) {\n return props.fallback || null\n }\n\n return <>{props.each?.map(props.children) as ReactNode}</>\n}\n","/**\n * This module contains utility functions that are used across your app.\n * @module Utils\n */\n\n/**\n * Formats the count of notifications to be displayed in the notification badge.\n * @param count - The number of notifications.\n * @returns The formatted count of notifications.\n * @example\n * ```tsx\n * const count = formatNotifyCount(100)\n * console.log(count) // '99+'\n * ```\n */\nexport function formatNotifyCount(count: number): string {\n if (count > 99) return '99+'\n return count.toString()\n}\n\n/**\n * Splits the properties of an object into multiple groups based on lists of keys.\n * @param props - The object to split.\n * @param keyGroups - The lists of keys to include in each group.\n * @returns An array of objects: each containing the properties specified in the corresponding key group, and the last object containing the remaining keys.\n */\nexport function splitProps<T extends object>(\n props: T,\n ...keyGroups: (keyof T)[][]\n): { [K in keyof T]?: T[K] }[] {\n const result = keyGroups.map(() => ({}) as { [K in keyof T]?: T[K] })\n const rest = {} as { [K in keyof T]?: T[K] }\n\n for (const key in props) {\n let assigned = false\n for (let i = 0; i < keyGroups.length; i++) {\n if (keyGroups[i].includes(key as keyof T)) {\n result[i][key as keyof T] = props[key]\n assigned = true\n break\n }\n }\n if (!assigned) {\n rest[key as keyof T] = props[key]\n }\n }\n\n return [...result, rest]\n}\n\nexport * from './localStorage'\n","import {\n Avatar,\n type AvatarFallbackProps as ArkAvatarFallbackProps,\n type AvatarImageProps as ArkAvatarImageProps,\n type AvatarRootProps as ArkAvatarRootProps,\n} from '@ark-ui/react/avatar'\nimport { avatar, type AvatarVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module provides the primitive components for the Avatar component.\n * @module 'avatar/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(avatar)\n\n/**\n * The root component of the Avatar.\n */\nexport const AvatarRoot = withSlotRecipe<AvatarRootProps>(Avatar.Root, 'root')\nexport type AvatarRootProps = CerberusPrimitiveProps<\n ArkAvatarRootProps & AvatarVariantProps\n>\n\n/**\n * The image component of the Avatar.\n */\nexport const AvatarImage = withSlotRecipe<ArkAvatarImageProps>(\n Avatar.Image,\n 'image',\n)\nexport type AvatarImageProps = CerberusPrimitiveProps<ArkAvatarImageProps>\n\n/**\n * The fallback component of the Avatar.\n */\nexport const AvatarFallback = withSlotRecipe<ArkAvatarFallbackProps>(\n Avatar.Fallback,\n 'fallback',\n)\nexport type AvatarFallbackProps = CerberusPrimitiveProps<ArkAvatarFallbackProps>\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n","import type { ElementType } from 'react'\nimport { AvatarFallback, AvatarImage, AvatarRoot } from './primitives'\n\n/**\n * This module contains the parts of the Avatar component.\n * @module 'avatar/parts'\n */\n\ninterface AvatarPartsValue {\n /**\n * The context provider of the Avatar.\n */\n Root: ElementType\n /**\n * The image of the Avatar.\n */\n Image: ElementType\n /**\n * The fallback content to display when the image fails to load.\n */\n Fallback: ElementType\n}\n\n/**\n * An Object containing the parts of the Accordion component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the AvatarParts object and\n * the entire family of components vs. only what you use.\n */\nexport const AvatarParts: AvatarPartsValue = {\n Root: AvatarRoot,\n Image: AvatarImage,\n Fallback: AvatarFallback,\n}\n","import type { AvatarVariantProps } from 'styled-system/recipes'\nimport type { ReactNode } from 'react'\nimport { splitProps } from '../../utils'\nimport { Show } from '../show/index'\nimport { AvatarParts } from './parts'\nimport type { AvatarRootProps } from './primitives'\n\n/**\n * This module provides an abstraction of the Avatar primitives.\n * @module 'avatar'\n */\n\nexport interface AvatarWithoutImage extends AvatarRootProps {\n alt?: never\n src?: never\n fallback?: ReactNode\n}\n\nexport interface AvatarWithImage extends AvatarRootProps, AvatarVariantProps {\n alt: string\n src: string\n fallback?: ReactNode\n}\n\n/**\n * Avatar component is an abstraction of the primitives that displays a\n * avatar or it's fallback when the image fails to load.\n * @description [Cerberus Docs](https://cerberus.digitalu.design/react/avatar/overview)\n * @description [Ark Docs](https://ark-ui.com/react/docs/components/avatar#api-reference)\n */\nexport function Avatar(props: AvatarWithoutImage | AvatarWithImage) {\n const [imgProps, { fallback, children }, rootProps] = splitProps(\n props,\n ['alt', 'src'],\n ['fallback', 'children'],\n )\n\n return (\n <AvatarParts.Root {...rootProps}>\n <Show\n when={children}\n fallback={\n <>\n <AvatarParts.Fallback>{fallback}</AvatarParts.Fallback>\n <AvatarParts.Image {...imgProps} />\n </>\n }\n >\n {children}\n </Show>\n </AvatarParts.Root>\n )\n}\n","import {\n Dialog,\n type DialogBackdropProps as ArkDialogBackdropProps,\n type DialogContentProps as ArkDialogContentProps,\n type DialogDescriptionProps as ArkDialogDescriptionProps,\n type DialogPositionerProps as ArkDialogPositionerProps,\n type DialogRootProps as ArkDialogRootProps,\n type DialogTitleProps as ArkDialogTitleProps,\n type DialogTriggerProps as ArkDialogTriggerProps,\n} from '@ark-ui/react/dialog'\nimport { dialog, type DialogVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Dialog component.\n * @module 'dialog/primitives'\n */\n\nconst { withSlotRecipe, withNoRecipe } = createCerberusPrimitive(dialog)\n\n/**\n * The provider that controls the dialog components.\n */\nexport type DialogRootProps = CerberusPrimitiveProps<ArkDialogRootProps>\nexport const DialogRoot = withNoRecipe(Dialog.Root)\n\n/**\n * An abstraction of the DialogRoot component for naming consistency.\n */\nexport const DialogProvider = DialogRoot\n\n/**\n * The trigger that opens the dialog.\n */\nexport type DialogTriggerProps = CerberusPrimitiveProps<ArkDialogTriggerProps>\nexport const DialogTrigger = withSlotRecipe(Dialog.Trigger, 'trigger')\n\n/**\n * The overlay of the dialog.\n */\nexport type DialogBackdropProps = CerberusPrimitiveProps<ArkDialogBackdropProps>\nexport const DialogBackdrop = withSlotRecipe(Dialog.Backdrop, 'backdrop')\n\n/**\n * The container that positions the dialog.\n */\nexport type DialogPositionerProps =\n CerberusPrimitiveProps<ArkDialogPositionerProps>\nexport const DialogPositioner = withSlotRecipe(Dialog.Positioner, 'positioner')\n\n/**\n * The visible content of the dialog.\n */\nexport type DialogContentProps = CerberusPrimitiveProps<\n ArkDialogContentProps & DialogVariantProps\n>\nexport const DialogContent = withSlotRecipe(Dialog.Content, 'content')\n\n/**\n * The heading of the dialog.\n */\nexport type DialogHeadingProps = CerberusPrimitiveProps<ArkDialogTitleProps>\nexport const DialogHeading = withSlotRecipe(Dialog.Title, 'title')\n\n/**\n * The description of the dialog.\n */\nexport type DialogDescriptionProps =\n CerberusPrimitiveProps<ArkDialogDescriptionProps>\nexport const DialogDescription = withSlotRecipe(\n Dialog.Description,\n 'description',\n)\n\n/**\n * The trigger that closes the dialog.\n */\nexport type DialogCloseTriggerProps =\n CerberusPrimitiveProps<ArkDialogTriggerProps>\nexport const DialogCloseTrigger = withNoRecipe(Dialog.CloseTrigger)\n","import { ark, type HTMLArkProps } from '@ark-ui/react/factory'\nimport { iconButton, type IconButtonVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the IconButton component primitives.\n * @module @cerberus-design/react/components/icon-button/primitives\n */\n\nconst { withRecipe } = createCerberusPrimitive(iconButton)\n\n/**\n * The root element of the Button component.\n */\nexport type IconButtonRootProps = CerberusPrimitiveProps<\n HTMLArkProps<'button'> & IconButtonVariantProps\n>\nexport const IconButtonRoot = withRecipe(ark.button)\n","import { IconButtonRoot, type IconButtonRootProps } from './primitives'\n\n/**\n * This module contains the Icon Button component.\n * @module\n */\n\nexport interface IconButtonProps extends IconButtonRootProps {\n /**\n * The aria-label attribute for the icon button.\n */\n ariaLabel: string\n}\n\n/**\n * A component that allows the user to perform actions using an icon\n * @see https://cerberus.digitalu.design/react/icon-button\n */\nexport function IconButton(props: IconButtonProps) {\n const { ariaLabel, ...rootProps } = props\n return (\n <IconButtonRoot {...rootProps} aria-label={ariaLabel ?? 'Icon Button'} />\n )\n}\n","'use client'\n\nimport { useCerberusContext } from '../../context/cerberus'\nimport { IconButton } from '../icon-button/index'\nimport { DialogCloseTrigger, type DialogCloseTriggerProps } from './primitives'\nimport { dialog } from 'styled-system/recipes'\nimport { cx } from 'styled-system/css'\n\n/**\n * This module contains the close trigger for the dialog.\n * @module react/dialog\n */\n\nexport function DialogCloseIconTrigger(props: DialogCloseTriggerProps) {\n const styles = dialog()\n\n const { icons } = useCerberusContext()\n const { close: CloseIcon } = icons\n\n return (\n <DialogCloseTrigger\n {...props}\n className={cx(styles.closeTrigger, props.className)}\n asChild\n >\n <IconButton\n ariaLabel=\"Close dialog\"\n palette=\"action\"\n size=\"lg\"\n usage=\"ghost\"\n >\n <CloseIcon />\n </IconButton>\n </DialogCloseTrigger>\n )\n}\n","import { Portal as ArkPortal, type PortalProps } from '@ark-ui/react'\n\n/**\n * This module is the Portal component.\n * @module\n */\n\nexport type { PortalProps }\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","import type { DialogVariantProps } from 'styled-system/recipes'\nimport type { WithCss } from '../../types'\nimport { Portal } from '../portal/index'\nimport {\n DialogBackdrop,\n DialogContent,\n DialogPositioner,\n type DialogContentProps,\n} from './primitives'\n\n/**\n * This module contains and abstraction of the Dialog primitives.\n * @module 'dialog'\n */\n\nexport interface DialogProps\n extends Omit<DialogContentProps, 'size' | 'style'>,\n DialogVariantProps,\n WithCss {}\n\n/**\n * An abstraction of the Dialog primitives that controls the content of the\n * dialog. Must be used within the `DialogProvider` component.\n * @definition [Dialog docs](https://cerberus.digitalu.design/react/dialog)\n * @definition [Ark Dialog docs](https://ark-ui.com/react/docs/components/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 return (\n <Portal>\n <DialogBackdrop />\n <DialogPositioner>\n <DialogContent {...props} />\n </DialogPositioner>\n </Portal>\n )\n}\n","'use client'\n\nimport { createContext, type ReactNode } from 'react'\nimport type { CTAModalActionReturn } from './utils'\n\n/**\n * This module provides the context for the cta modal.\n * @module\n */\n\nexport interface ShowCTAModalOptions {\n /**\n * The heading of the cta modal.\n */\n heading: string\n /**\n * The description of the cta modal.\n */\n description?: string\n /**\n * The icon used for the modal Avatar.\n */\n icon?: ReactNode\n /**\n * The actions for the cta modal. Requires 2 actions.\n */\n actions: CTAModalActionReturn\n}\n\nexport interface CTAModalValue {\n show: (options: ShowCTAModalOptions) => void\n}\n\nexport const CTAModalContext = createContext<CTAModalValue | null>(null)\n","import { css, cx } from 'styled-system/css'\nimport { Button, type ButtonProps } from '../button/button'\nimport { ark } from '@ark-ui/react/factory'\nimport { button } from 'styled-system/recipes'\n\n/**\n * This module provides the trigger item for the cta modal.\n * @module 'react/cta-modal/trigger-item'\n */\n\nexport interface TriggerItemProps extends ButtonProps {\n asChild?: boolean\n}\n\n/**\n * Trigger item for the cta modal which renders content based on the actions.\n * type.\n */\nexport function TriggerItem(props: TriggerItemProps) {\n const { asChild, children, ...buttonProps } = props\n\n if (asChild) {\n return (\n <ark.div\n className={cx(\n button({\n shape: 'rounded',\n usage: 'ghost',\n }),\n css({\n w: '1/2',\n }),\n )}\n asChild\n >\n {children}\n </ark.div>\n )\n }\n\n return (\n <Button\n {...buttonProps}\n className={css({\n w: '1/2',\n })}\n shape=\"rounded\"\n usage=\"outlined\"\n >\n {children}\n </Button>\n )\n}\n","'use client'\n\nimport { type HTMLArkProps } from '@ark-ui/react/factory'\nimport {\n type PropsWithChildren,\n createContext,\n useContext,\n useMemo,\n} from 'react'\nimport { type ButtonVariantProps } from 'styled-system/recipes'\nimport { Box } from 'styled-system/jsx'\nimport type { CerberusPrimitiveProps } from '../../system/types'\nimport { Show } from '../show/index'\nimport { Spinner } from '../spinner/index'\nimport { ButtonRoot } from './primitives'\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 = CerberusPrimitiveProps<\n HTMLArkProps<'button'> &\n ButtonVariantProps & {\n pending?: boolean\n }\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) {\n const { pending = false, ...nativeProps } = props\n const value = useMemo(() => ({ pending }), [pending])\n return (\n <ButtonContext.Provider value={value}>\n <ButtonRoot {...nativeProps} disabled={pending || nativeProps.disabled} />\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","import { ark } from '@ark-ui/react/factory'\nimport { button } from 'styled-system/recipes'\nimport { createCerberusPrimitive } from '../../system/index'\n\n/**\n * This module contains the Button component primitives.\n * @module @cerberus-design/react/components/button/primitives\n */\n\nconst { withRecipe } = createCerberusPrimitive(button)\n\n/**\n * The root element of the Button component.\n */\nexport const ButtonRoot = withRecipe(ark.button)\n","import type { MouseEventHandler, ReactNode } from 'react'\n\n/**\n * This module provide utility functions for the cta modal.\n * @module 'react/cta-modal/utils'\n */\n\nexport type CTAButtonAction = {\n /**\n * The text of the button.\n */\n text: string\n /**\n * The onClick handler for the button.\n */\n handleClick: MouseEventHandler<HTMLButtonElement>\n}\n\nexport type CTAModalAction = (CTAButtonAction | ReactNode)[]\n\nexport interface CTAModalActionReturn {\n /**\n * The type of the action content.\n */\n type: 'reactNode' | 'btnAction'\n /**\n * The actions for the cta modal. Max of 2 actions.\n */\n _actions: CTAModalAction\n}\n\n/**\n * Creates the action data to pass to the cta modal `show` method.\n */\nexport function createCTAModalActions(\n providedActions: CTAModalAction,\n): CTAModalActionReturn {\n if (providedActions.length !== 2) {\n throw new Error('CTAModal must include 2 actions')\n }\n\n if (\n providedActions.every(\n (action) => (action as unknown as CTAButtonAction)?.handleClick,\n )\n ) {\n return {\n type: 'btnAction',\n _actions: providedActions as CTAButtonAction[],\n }\n }\n\n return {\n type: 'reactNode',\n _actions: providedActions as ReactNode[],\n }\n}\n"],"mappings":"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","names":["import_react","import_jsx","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","Avatar","import_recipes","withSlotRecipe","import_recipes","import_jsx_runtime","import_recipes","import_css","import_jsx_runtime","import_react","ArkPortal","import_jsx_runtime","Dialog","import_react","import_css","import_react","import_factory","import_recipes","withRecipe","import_jsx_runtime","import_factory","import_recipes","import_jsx_runtime","import_jsx_runtime","Dialog","Avatar"]}
1
+ {"version":3,"sources":["../../../../src/components/cta-dialog/index.ts","../../../../src/components/cta-dialog/provider.tsx","../../../../src/context/cerberus.tsx","../../../../src/components/show/show.tsx","../../../../src/components/for/for.tsx","../../../../src/utils/index.ts","../../../../src/components/avatar/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/avatar/parts.ts","../../../../src/components/avatar/avatar.tsx","../../../../src/components/dialog/primitives.tsx","../../../../src/components/icon-button/primitives.ts","../../../../src/components/icon-button/button.tsx","../../../../src/components/dialog/close-icon-trigger.tsx","../../../../src/components/portal/portal.tsx","../../../../src/components/dialog/dialog.tsx","../../../../src/components/cta-dialog/context.tsx","../../../../src/components/cta-dialog/trigger-item.tsx","../../../../src/components/button/button.tsx","../../../../src/components/button/primitives.tsx","../../../../src/components/cta-dialog/utils.ts"],"sourcesContent":["export * from './provider'\nexport * from './utils'\n","'use client'\n\nimport {\n useCallback,\n useContext,\n useMemo,\n useState,\n type MouseEvent,\n type PropsWithChildren,\n type ReactNode,\n} from 'react'\nimport { HStack, VStack } from 'styled-system/jsx'\nimport { useCerberusContext } from '../../context/cerberus'\nimport { Show } from '../show/index'\nimport { For } from '../for/index'\nimport { Avatar } from '../avatar/avatar'\nimport {\n Dialog,\n DialogDescription,\n DialogHeading,\n DialogProvider,\n} from '../dialog'\nimport { DialogCloseIconTrigger } from '../dialog/close-icon-trigger'\nimport type { CTAButtonAction, CTAModalActionReturn } from './utils'\nimport {\n CTAModalContext,\n type CTAModalValue,\n type ShowCTAModalOptions,\n} from './context'\nimport { TriggerItem } from './trigger-item'\n\n/**\n * This module provides the provider and hook for the cta modal.\n * @module 'react/cta-modal/provider'\n */\n\n/**\n * Provides a CTA modal to the app.\n * @see https://cerberus.digitalu.design/react/cta-modal\n * @example\n * ```tsx\n * // Wrap the Provider around the root of the feature.\n * <CTAModal>\n * <SomeFeatureSection />\n * </CTAModal>\n *\n * // Use the hook to show the cta modal.\n * const cta = useCTAModal()\n *\n * const handleClick = useCallback(async () => {\n * const userConsent = await cta.show({\n * heading: 'Create or copy a Cohort',\n * description:\n * 'Create a new cohort or copy and existing one.',\n * icon: <Copy size={24} />,\n * actions: [\n * {\n * text: 'Create Cohort',\n * onClick: () => {},\n * {\n * text: 'Copy Cohort',\n * onClick: () => {}\n * }\n * })\n * setConsent(userConsent)\n * }, [cta])\n * ```\n */\nexport function CTAModal(props: PropsWithChildren<object>) {\n const [open, setOpen] = useState<boolean>(false)\n const [content, setContent] = useState<ShowCTAModalOptions | null>(null)\n const confirmIcon = content?.icon\n\n const { icons } = useCerberusContext()\n const { confirmModal: FallbackIcon } = icons\n\n const handleShow = useCallback(\n (options: ShowCTAModalOptions) => {\n setContent({ ...options })\n setOpen(true)\n },\n [setOpen],\n )\n\n const handleActionClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n const index = Number(event.currentTarget.getAttribute('data-index'))\n const contentActions = content?.actions as CTAModalActionReturn\n const action = contentActions._actions[index] as CTAButtonAction\n action?.handleClick?.(event)\n setOpen(false)\n },\n [content, setOpen],\n )\n\n const value = useMemo(\n () => ({\n show: handleShow,\n }),\n [handleShow],\n )\n\n return (\n <CTAModalContext.Provider value={value}>\n {props.children}\n\n <DialogProvider open={open} onOpenChange={(e) => setOpen(e.open)}>\n <Dialog\n size=\"sm\"\n style={{\n '--dialog-content-min-h': 'auto',\n }}\n >\n <DialogCloseIconTrigger />\n\n <VStack gap=\"xl\" w=\"full\">\n <VStack alignItems=\"flex-start\" gap=\"md\" w=\"full\">\n <VStack gap=\"lg\" w=\"full\">\n <Avatar\n gradient=\"charon-light\"\n fallback={\n <Show\n when={confirmIcon}\n fallback={<FallbackIcon size={24} />}\n >\n {confirmIcon}\n </Show>\n }\n />\n <DialogHeading>{content?.heading}</DialogHeading>\n <DialogDescription>{content?.description}</DialogDescription>\n </VStack>\n </VStack>\n\n <HStack gap=\"md\" w=\"full\">\n <For each={content?.actions._actions}>\n {(action, index) => (\n <Show\n key={index}\n when={content?.actions?.type === 'btnAction'}\n fallback={\n <TriggerItem asChild>{action as ReactNode}</TriggerItem>\n }\n >\n <TriggerItem data-index={index} onClick={handleActionClick}>\n {(action as CTAButtonAction)?.text}\n </TriggerItem>\n </Show>\n )}\n </For>\n </HStack>\n </VStack>\n </Dialog>\n </DialogProvider>\n </CTAModalContext.Provider>\n )\n}\n\nexport function useCTAModal(): CTAModalValue {\n const context = useContext(CTAModalContext)\n if (context === null) {\n throw new Error('useCTAModal must be used within a CTAModal Provider')\n }\n return context\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 { type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps<T> {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: T | 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<T>(props: PropsWithChildren<ShowProps<T>>) {\n const { when, children, fallback } = props\n\n if (when) {\n return <>{children}</>\n }\n\n if (fallback) {\n return <>{fallback}</>\n }\n\n return null\n}\n","import type { ReactNode, JSX } from 'react'\n\nexport interface ForProps<T extends readonly unknown[], U extends JSX.Element> {\n /**\n * The array to iterate over.\n */\n each: T | undefined | null | false\n /**\n * The fallback to render when the array is empty.\n */\n fallback?: JSX.Element\n /**\n * The children to render for each item in the array.\n */\n children: (item: T[number], index: number) => U\n}\n\n/**\n * The For component is used to iterate over an array and render a list of\n * components or display a fallback when the array is empty.\n * Inspired by the `<For>` component from SolidJS.\n *\n * @example\n * ```tsx\n * <For each={['a', 'b', 'c']}>\n * {(item, index) => <div key={index}>{item}</div>}\n * </For>\n * ```\n */\nexport function For<T extends readonly unknown[], U extends JSX.Element>(\n props: ForProps<T, U>,\n) {\n if (!props.each || !props.each.length) {\n return props.fallback || null\n }\n\n return <>{props.each?.map(props.children) as ReactNode}</>\n}\n","/**\n * This module contains utility functions that are used across your app.\n * @module Utils\n */\n\n/**\n * Formats the count of notifications to be displayed in the notification badge.\n * @param count - The number of notifications.\n * @returns The formatted count of notifications.\n * @example\n * ```tsx\n * const count = formatNotifyCount(100)\n * console.log(count) // '99+'\n * ```\n */\nexport function formatNotifyCount(count: number): string {\n if (count > 99) return '99+'\n return count.toString()\n}\n\n/**\n * Splits the properties of an object into multiple groups based on lists of keys.\n * @param props - The object to split.\n * @param keyGroups - The lists of keys to include in each group.\n * @returns An array of objects: each containing the properties specified in the corresponding key group, and the last object containing the remaining keys.\n */\nexport function splitProps<T extends object>(\n props: T,\n ...keyGroups: (keyof T)[][]\n): { [K in keyof T]?: T[K] }[] {\n const result = keyGroups.map(() => ({}) as { [K in keyof T]?: T[K] })\n const rest = {} as { [K in keyof T]?: T[K] }\n\n for (const key in props) {\n let assigned = false\n for (let i = 0; i < keyGroups.length; i++) {\n if (keyGroups[i].includes(key as keyof T)) {\n result[i][key as keyof T] = props[key]\n assigned = true\n break\n }\n }\n if (!assigned) {\n rest[key as keyof T] = props[key]\n }\n }\n\n return [...result, rest]\n}\n\nexport * from './localStorage'\n","import {\n Avatar,\n type AvatarFallbackProps as ArkAvatarFallbackProps,\n type AvatarImageProps as ArkAvatarImageProps,\n type AvatarRootProps as ArkAvatarRootProps,\n} from '@ark-ui/react/avatar'\nimport { avatar, type AvatarVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module provides the primitive components for the Avatar component.\n * @module 'avatar/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(avatar)\n\n/**\n * The root component of the Avatar.\n */\nexport const AvatarRoot = withSlotRecipe<AvatarRootProps>(Avatar.Root, 'root')\nexport type AvatarRootProps = CerberusPrimitiveProps<\n ArkAvatarRootProps & AvatarVariantProps\n>\n\n/**\n * The image component of the Avatar.\n */\nexport const AvatarImage = withSlotRecipe<ArkAvatarImageProps>(\n Avatar.Image,\n 'image',\n)\nexport type AvatarImageProps = CerberusPrimitiveProps<ArkAvatarImageProps>\n\n/**\n * The fallback component of the Avatar.\n */\nexport const AvatarFallback = withSlotRecipe<ArkAvatarFallbackProps>(\n Avatar.Fallback,\n 'fallback',\n)\nexport type AvatarFallbackProps = CerberusPrimitiveProps<ArkAvatarFallbackProps>\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n","import type { ElementType } from 'react'\nimport { AvatarFallback, AvatarImage, AvatarRoot } from './primitives'\n\n/**\n * This module contains the parts of the Avatar component.\n * @module 'avatar/parts'\n */\n\ninterface AvatarPartsValue {\n /**\n * The context provider of the Avatar.\n */\n Root: ElementType\n /**\n * The image of the Avatar.\n */\n Image: ElementType\n /**\n * The fallback content to display when the image fails to load.\n */\n Fallback: ElementType\n}\n\n/**\n * An Object containing the parts of the Accordion component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the AvatarParts object and\n * the entire family of components vs. only what you use.\n */\nexport const AvatarParts: AvatarPartsValue = {\n Root: AvatarRoot,\n Image: AvatarImage,\n Fallback: AvatarFallback,\n}\n","import type { AvatarVariantProps } from 'styled-system/recipes'\nimport type { ReactNode } from 'react'\nimport { splitProps } from '../../utils'\nimport { Show } from '../show/index'\nimport { AvatarParts } from './parts'\nimport type { AvatarRootProps } from './primitives'\n\n/**\n * This module provides an abstraction of the Avatar primitives.\n * @module 'avatar'\n */\n\nexport interface AvatarWithoutImage extends AvatarRootProps {\n alt?: never\n src?: never\n fallback?: ReactNode\n}\n\nexport interface AvatarWithImage extends AvatarRootProps, AvatarVariantProps {\n alt: string\n src: string\n fallback?: ReactNode\n}\n\n/**\n * Avatar component is an abstraction of the primitives that displays a\n * avatar or it's fallback when the image fails to load.\n * @description [Cerberus Docs](https://cerberus.digitalu.design/react/avatar/overview)\n * @description [Ark Docs](https://ark-ui.com/react/docs/components/avatar#api-reference)\n */\nexport function Avatar(props: AvatarWithoutImage | AvatarWithImage) {\n const [imgProps, { fallback, children }, rootProps] = splitProps(\n props,\n ['alt', 'src'],\n ['fallback', 'children'],\n )\n\n return (\n <AvatarParts.Root {...rootProps}>\n <Show\n when={children}\n fallback={\n <>\n <AvatarParts.Fallback>{fallback}</AvatarParts.Fallback>\n <AvatarParts.Image {...imgProps} />\n </>\n }\n >\n {children}\n </Show>\n </AvatarParts.Root>\n )\n}\n","import {\n Dialog,\n type DialogBackdropProps as ArkDialogBackdropProps,\n type DialogContentProps as ArkDialogContentProps,\n type DialogDescriptionProps as ArkDialogDescriptionProps,\n type DialogPositionerProps as ArkDialogPositionerProps,\n type DialogRootProps as ArkDialogRootProps,\n type DialogTitleProps as ArkDialogTitleProps,\n type DialogTriggerProps as ArkDialogTriggerProps,\n} from '@ark-ui/react/dialog'\nimport { dialog, type DialogVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Dialog component.\n * @module 'dialog/primitives'\n */\n\nconst { withSlotRecipe, withNoRecipe } = createCerberusPrimitive(dialog)\n\n/**\n * The provider that controls the dialog components.\n */\nexport type DialogRootProps = CerberusPrimitiveProps<ArkDialogRootProps>\nexport const DialogRoot = withNoRecipe(Dialog.Root)\n\n/**\n * An abstraction of the DialogRoot component for naming consistency.\n */\nexport const DialogProvider = DialogRoot\n\n/**\n * The trigger that opens the dialog.\n */\nexport type DialogTriggerProps = CerberusPrimitiveProps<ArkDialogTriggerProps>\nexport const DialogTrigger = withSlotRecipe(Dialog.Trigger, 'trigger')\n\n/**\n * The overlay of the dialog.\n */\nexport type DialogBackdropProps = CerberusPrimitiveProps<ArkDialogBackdropProps>\nexport const DialogBackdrop = withSlotRecipe(Dialog.Backdrop, 'backdrop')\n\n/**\n * The container that positions the dialog.\n */\nexport type DialogPositionerProps =\n CerberusPrimitiveProps<ArkDialogPositionerProps>\nexport const DialogPositioner = withSlotRecipe(Dialog.Positioner, 'positioner')\n\n/**\n * The visible content of the dialog.\n */\nexport type DialogContentProps = CerberusPrimitiveProps<\n ArkDialogContentProps & DialogVariantProps\n>\nexport const DialogContent = withSlotRecipe(Dialog.Content, 'content')\n\n/**\n * The heading of the dialog.\n */\nexport type DialogHeadingProps = CerberusPrimitiveProps<ArkDialogTitleProps>\nexport const DialogHeading = withSlotRecipe(Dialog.Title, 'title')\n\n/**\n * The description of the dialog.\n */\nexport type DialogDescriptionProps =\n CerberusPrimitiveProps<ArkDialogDescriptionProps>\nexport const DialogDescription = withSlotRecipe(\n Dialog.Description,\n 'description',\n)\n\n/**\n * The trigger that closes the dialog.\n */\nexport type DialogCloseTriggerProps =\n CerberusPrimitiveProps<ArkDialogTriggerProps>\nexport const DialogCloseTrigger = withNoRecipe(Dialog.CloseTrigger)\n","import { ark, type HTMLArkProps } from '@ark-ui/react/factory'\nimport { iconButton, type IconButtonVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the IconButton component primitives.\n * @module @cerberus-design/react/components/icon-button/primitives\n */\n\nconst { withRecipe } = createCerberusPrimitive(iconButton)\n\n/**\n * The root element of the Button component.\n */\nexport type IconButtonRootProps = CerberusPrimitiveProps<\n HTMLArkProps<'button'> & IconButtonVariantProps\n>\nexport const IconButtonRoot = withRecipe(ark.button)\n","import { IconButtonRoot, type IconButtonRootProps } from './primitives'\n\n/**\n * This module contains the Icon Button component.\n * @module\n */\n\nexport interface IconButtonProps extends IconButtonRootProps {\n /**\n * The aria-label attribute for the icon button.\n */\n ariaLabel: string\n}\n\n/**\n * A component that allows the user to perform actions using an icon\n * @see https://cerberus.digitalu.design/react/icon-button\n */\nexport function IconButton(props: IconButtonProps) {\n const { ariaLabel, ...rootProps } = props\n return (\n <IconButtonRoot {...rootProps} aria-label={ariaLabel ?? 'Icon Button'} />\n )\n}\n","'use client'\n\nimport { useCerberusContext } from '../../context/cerberus'\nimport { IconButton } from '../icon-button/index'\nimport { DialogCloseTrigger, type DialogCloseTriggerProps } from './primitives'\nimport { dialog } from 'styled-system/recipes'\nimport { cx } from 'styled-system/css'\n\n/**\n * This module contains the close trigger for the dialog.\n * @module react/dialog\n */\n\nexport function DialogCloseIconTrigger(props: DialogCloseTriggerProps) {\n const styles = dialog()\n\n const { icons } = useCerberusContext()\n const { close: CloseIcon } = icons\n\n return (\n <DialogCloseTrigger\n {...props}\n className={cx(styles.closeTrigger, props.className)}\n asChild\n >\n <IconButton\n ariaLabel=\"Close dialog\"\n palette=\"action\"\n size=\"lg\"\n usage=\"ghost\"\n >\n <CloseIcon />\n </IconButton>\n </DialogCloseTrigger>\n )\n}\n","import { Portal as ArkPortal, type PortalProps } from '@ark-ui/react'\n\n/**\n * This module is the Portal component.\n * @module\n */\n\nexport type { PortalProps }\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","import type { DialogVariantProps } from 'styled-system/recipes'\nimport type { WithCss } from '../../types'\nimport { Portal } from '../portal/index'\nimport {\n DialogBackdrop,\n DialogContent,\n DialogPositioner,\n type DialogContentProps,\n} from './primitives'\n\n/**\n * This module contains and abstraction of the Dialog primitives.\n * @module 'dialog'\n */\n\nexport interface DialogProps\n extends Omit<DialogContentProps, 'size' | 'style'>,\n DialogVariantProps,\n WithCss {}\n\n/**\n * An abstraction of the Dialog primitives that controls the content of the\n * dialog. Must be used within the `DialogProvider` component.\n * @definition [Dialog docs](https://cerberus.digitalu.design/react/dialog)\n * @definition [Ark Dialog docs](https://ark-ui.com/react/docs/components/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 return (\n <Portal>\n <DialogBackdrop />\n <DialogPositioner>\n <DialogContent {...props} />\n </DialogPositioner>\n </Portal>\n )\n}\n","'use client'\n\nimport { createContext, type ReactNode } from 'react'\nimport type { CTAModalActionReturn } from './utils'\n\n/**\n * This module provides the context for the cta modal.\n * @module\n */\n\nexport interface ShowCTAModalOptions {\n /**\n * The heading of the cta modal.\n */\n heading: string\n /**\n * The description of the cta modal.\n */\n description?: string\n /**\n * The icon used for the modal Avatar.\n */\n icon?: ReactNode\n /**\n * The actions for the cta modal. Requires 2 actions.\n */\n actions: CTAModalActionReturn\n}\n\nexport interface CTAModalValue {\n show: (options: ShowCTAModalOptions) => void\n}\n\nexport const CTAModalContext = createContext<CTAModalValue | null>(null)\n","import { css, cx } from 'styled-system/css'\nimport { Button, type ButtonProps } from '../button/button'\nimport { ark } from '@ark-ui/react/factory'\nimport { button } from 'styled-system/recipes'\n\n/**\n * This module provides the trigger item for the cta modal.\n * @module 'react/cta-modal/trigger-item'\n */\n\nexport interface TriggerItemProps extends ButtonProps {\n asChild?: boolean\n}\n\n/**\n * Trigger item for the cta modal which renders content based on the actions.\n * type.\n */\nexport function TriggerItem(props: TriggerItemProps) {\n const { asChild, children, ...buttonProps } = props\n\n if (asChild) {\n return (\n <ark.div\n className={cx(\n button({\n shape: 'rounded',\n usage: 'ghost',\n }),\n css({\n w: '1/2',\n }),\n )}\n asChild\n >\n {children}\n </ark.div>\n )\n }\n\n return (\n <Button\n {...buttonProps}\n className={css({\n w: '1/2',\n })}\n shape=\"rounded\"\n usage=\"outlined\"\n >\n {children}\n </Button>\n )\n}\n","'use client'\n\nimport { type HTMLArkProps } from '@ark-ui/react/factory'\nimport {\n type PropsWithChildren,\n createContext,\n useContext,\n useMemo,\n} from 'react'\nimport { type ButtonVariantProps } from 'styled-system/recipes'\nimport { Box } from 'styled-system/jsx'\nimport type { CerberusPrimitiveProps } from '../../system/types'\nimport { Show } from '../show/index'\nimport { Spinner } from '../spinner/index'\nimport { ButtonRoot } from './primitives'\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 = CerberusPrimitiveProps<\n HTMLArkProps<'button'> &\n ButtonVariantProps & {\n pending?: boolean\n }\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) {\n const { pending = false, ...nativeProps } = props\n const value = useMemo(() => ({ pending }), [pending])\n return (\n <ButtonContext.Provider value={value}>\n <ButtonRoot {...nativeProps} disabled={pending || nativeProps.disabled} />\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","import { ark } from '@ark-ui/react/factory'\nimport { button } from 'styled-system/recipes'\nimport { createCerberusPrimitive } from '../../system/index'\n\n/**\n * This module contains the Button component primitives.\n * @module @cerberus-design/react/components/button/primitives\n */\n\nconst { withRecipe } = createCerberusPrimitive(button)\n\n/**\n * The root element of the Button component.\n */\nexport const ButtonRoot = withRecipe(ark.button)\n","import type { MouseEventHandler, ReactNode } from 'react'\n\n/**\n * This module provide utility functions for the cta modal.\n * @module 'react/cta-modal/utils'\n */\n\nexport type CTAButtonAction = {\n /**\n * The text of the button.\n */\n text: string\n /**\n * The onClick handler for the button.\n */\n handleClick: MouseEventHandler<HTMLButtonElement>\n}\n\nexport type CTAModalAction = (CTAButtonAction | ReactNode)[]\n\nexport interface CTAModalActionReturn {\n /**\n * The type of the action content.\n */\n type: 'reactNode' | 'btnAction'\n /**\n * The actions for the cta modal. Max of 2 actions.\n */\n _actions: CTAModalAction\n}\n\n/**\n * Creates the action data to pass to the cta modal `show` method.\n */\nexport function createCTAModalActions(\n providedActions: CTAModalAction,\n): CTAModalActionReturn {\n if (providedActions.length !== 2) {\n throw new Error('CTAModal must include 2 actions')\n }\n\n if (\n providedActions.every(\n (action) => (action as unknown as CTAButtonAction)?.handleClick,\n )\n ) {\n return {\n type: 'btnAction',\n _actions: providedActions as CTAButtonAction[],\n }\n }\n\n return {\n type: 'reactNode',\n _actions: providedActions as ReactNode[],\n }\n}\n"],"mappings":"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","names":["import_react","import_jsx","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","Avatar","import_recipes","withSlotRecipe","import_recipes","import_jsx_runtime","import_recipes","import_css","import_jsx_runtime","import_react","ArkPortal","import_jsx_runtime","Dialog","import_react","import_css","import_react","import_factory","import_recipes","withRecipe","import_jsx_runtime","import_factory","import_recipes","import_jsx_runtime","import_jsx_runtime","Dialog","Avatar"]}
@@ -129,8 +129,12 @@ var CerberusPrimitive = class {
129
129
  const recipe = this.recipe;
130
130
  this.validateComponent(Component);
131
131
  const CerbComponent = (internalProps) => {
132
- const { css: customCss, className, ...nativeProps } = internalProps;
133
- const [variantOptions] = recipe.splitVariantProps(nativeProps);
132
+ const {
133
+ css: customCss,
134
+ className,
135
+ ...restOfInternalProps
136
+ } = internalProps;
137
+ const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
134
138
  const recipeStyles = recipe(variantOptions);
135
139
  return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
136
140
  Component,
@@ -161,8 +165,12 @@ var CerberusPrimitive = class {
161
165
  const recipe = this.recipe;
162
166
  this.validateComponent(Component);
163
167
  const CerbComponent = (internalProps) => {
164
- const { css: customCss, className, ...nativeProps } = internalProps;
165
- const [variantOptions] = recipe.splitVariantProps(nativeProps);
168
+ const {
169
+ css: customCss,
170
+ className,
171
+ ...restOfInternalProps
172
+ } = internalProps;
173
+ const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
166
174
  const styles = recipe(variantOptions);
167
175
  const slotStyles = styles[slot];
168
176
  return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/cta-dialog/provider.tsx","../../../../src/context/cerberus.tsx","../../../../src/components/show/show.tsx","../../../../src/components/for/for.tsx","../../../../src/utils/index.ts","../../../../src/components/avatar/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/avatar/parts.ts","../../../../src/components/avatar/avatar.tsx","../../../../src/components/dialog/primitives.tsx","../../../../src/components/icon-button/primitives.ts","../../../../src/components/icon-button/button.tsx","../../../../src/components/dialog/close-icon-trigger.tsx","../../../../src/components/portal/portal.tsx","../../../../src/components/dialog/dialog.tsx","../../../../src/components/cta-dialog/context.tsx","../../../../src/components/cta-dialog/trigger-item.tsx","../../../../src/components/button/button.tsx","../../../../src/components/button/primitives.tsx"],"sourcesContent":["'use client'\n\nimport {\n useCallback,\n useContext,\n useMemo,\n useState,\n type MouseEvent,\n type PropsWithChildren,\n type ReactNode,\n} from 'react'\nimport { HStack, VStack } from 'styled-system/jsx'\nimport { useCerberusContext } from '../../context/cerberus'\nimport { Show } from '../show/index'\nimport { For } from '../for/index'\nimport { Avatar } from '../avatar/avatar'\nimport {\n Dialog,\n DialogDescription,\n DialogHeading,\n DialogProvider,\n} from '../dialog'\nimport { DialogCloseIconTrigger } from '../dialog/close-icon-trigger'\nimport type { CTAButtonAction, CTAModalActionReturn } from './utils'\nimport {\n CTAModalContext,\n type CTAModalValue,\n type ShowCTAModalOptions,\n} from './context'\nimport { TriggerItem } from './trigger-item'\n\n/**\n * This module provides the provider and hook for the cta modal.\n * @module 'react/cta-modal/provider'\n */\n\n/**\n * Provides a CTA modal to the app.\n * @see https://cerberus.digitalu.design/react/cta-modal\n * @example\n * ```tsx\n * // Wrap the Provider around the root of the feature.\n * <CTAModal>\n * <SomeFeatureSection />\n * </CTAModal>\n *\n * // Use the hook to show the cta modal.\n * const cta = useCTAModal()\n *\n * const handleClick = useCallback(async () => {\n * const userConsent = await cta.show({\n * heading: 'Create or copy a Cohort',\n * description:\n * 'Create a new cohort or copy and existing one.',\n * icon: <Copy size={24} />,\n * actions: [\n * {\n * text: 'Create Cohort',\n * onClick: () => {},\n * {\n * text: 'Copy Cohort',\n * onClick: () => {}\n * }\n * })\n * setConsent(userConsent)\n * }, [cta])\n * ```\n */\nexport function CTAModal(props: PropsWithChildren<object>) {\n const [open, setOpen] = useState<boolean>(false)\n const [content, setContent] = useState<ShowCTAModalOptions | null>(null)\n const confirmIcon = content?.icon\n\n const { icons } = useCerberusContext()\n const { confirmModal: FallbackIcon } = icons\n\n const handleShow = useCallback(\n (options: ShowCTAModalOptions) => {\n setContent({ ...options })\n setOpen(true)\n },\n [setOpen],\n )\n\n const handleActionClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n const index = Number(event.currentTarget.getAttribute('data-index'))\n const contentActions = content?.actions as CTAModalActionReturn\n const action = contentActions._actions[index] as CTAButtonAction\n action?.handleClick?.(event)\n setOpen(false)\n },\n [content, setOpen],\n )\n\n const value = useMemo(\n () => ({\n show: handleShow,\n }),\n [handleShow],\n )\n\n return (\n <CTAModalContext.Provider value={value}>\n {props.children}\n\n <DialogProvider open={open} onOpenChange={(e) => setOpen(e.open)}>\n <Dialog\n size=\"sm\"\n style={{\n '--dialog-content-min-h': 'auto',\n }}\n >\n <DialogCloseIconTrigger />\n\n <VStack gap=\"xl\" w=\"full\">\n <VStack alignItems=\"flex-start\" gap=\"md\" w=\"full\">\n <VStack gap=\"lg\" w=\"full\">\n <Avatar\n gradient=\"charon-light\"\n fallback={\n <Show\n when={confirmIcon}\n fallback={<FallbackIcon size={24} />}\n >\n {confirmIcon}\n </Show>\n }\n />\n <DialogHeading>{content?.heading}</DialogHeading>\n <DialogDescription>{content?.description}</DialogDescription>\n </VStack>\n </VStack>\n\n <HStack gap=\"md\" w=\"full\">\n <For each={content?.actions._actions}>\n {(action, index) => (\n <Show\n key={index}\n when={content?.actions?.type === 'btnAction'}\n fallback={\n <TriggerItem asChild>{action as ReactNode}</TriggerItem>\n }\n >\n <TriggerItem data-index={index} onClick={handleActionClick}>\n {(action as CTAButtonAction)?.text}\n </TriggerItem>\n </Show>\n )}\n </For>\n </HStack>\n </VStack>\n </Dialog>\n </DialogProvider>\n </CTAModalContext.Provider>\n )\n}\n\nexport function useCTAModal(): CTAModalValue {\n const context = useContext(CTAModalContext)\n if (context === null) {\n throw new Error('useCTAModal must be used within a CTAModal Provider')\n }\n return context\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 { type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps<T> {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: T | 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<T>(props: PropsWithChildren<ShowProps<T>>) {\n const { when, children, fallback } = props\n\n if (when) {\n return <>{children}</>\n }\n\n if (fallback) {\n return <>{fallback}</>\n }\n\n return null\n}\n","import type { ReactNode, JSX } from 'react'\n\nexport interface ForProps<T extends readonly unknown[], U extends JSX.Element> {\n /**\n * The array to iterate over.\n */\n each: T | undefined | null | false\n /**\n * The fallback to render when the array is empty.\n */\n fallback?: JSX.Element\n /**\n * The children to render for each item in the array.\n */\n children: (item: T[number], index: number) => U\n}\n\n/**\n * The For component is used to iterate over an array and render a list of\n * components or display a fallback when the array is empty.\n * Inspired by the `<For>` component from SolidJS.\n *\n * @example\n * ```tsx\n * <For each={['a', 'b', 'c']}>\n * {(item, index) => <div key={index}>{item}</div>}\n * </For>\n * ```\n */\nexport function For<T extends readonly unknown[], U extends JSX.Element>(\n props: ForProps<T, U>,\n) {\n if (!props.each || !props.each.length) {\n return props.fallback || null\n }\n\n return <>{props.each?.map(props.children) as ReactNode}</>\n}\n","/**\n * This module contains utility functions that are used across your app.\n * @module Utils\n */\n\n/**\n * Formats the count of notifications to be displayed in the notification badge.\n * @param count - The number of notifications.\n * @returns The formatted count of notifications.\n * @example\n * ```tsx\n * const count = formatNotifyCount(100)\n * console.log(count) // '99+'\n * ```\n */\nexport function formatNotifyCount(count: number): string {\n if (count > 99) return '99+'\n return count.toString()\n}\n\n/**\n * Splits the properties of an object into multiple groups based on lists of keys.\n * @param props - The object to split.\n * @param keyGroups - The lists of keys to include in each group.\n * @returns An array of objects: each containing the properties specified in the corresponding key group, and the last object containing the remaining keys.\n */\nexport function splitProps<T extends object>(\n props: T,\n ...keyGroups: (keyof T)[][]\n): { [K in keyof T]?: T[K] }[] {\n const result = keyGroups.map(() => ({}) as { [K in keyof T]?: T[K] })\n const rest = {} as { [K in keyof T]?: T[K] }\n\n for (const key in props) {\n let assigned = false\n for (let i = 0; i < keyGroups.length; i++) {\n if (keyGroups[i].includes(key as keyof T)) {\n result[i][key as keyof T] = props[key]\n assigned = true\n break\n }\n }\n if (!assigned) {\n rest[key as keyof T] = props[key]\n }\n }\n\n return [...result, rest]\n}\n\nexport * from './localStorage'\n","import {\n Avatar,\n type AvatarFallbackProps as ArkAvatarFallbackProps,\n type AvatarImageProps as ArkAvatarImageProps,\n type AvatarRootProps as ArkAvatarRootProps,\n} from '@ark-ui/react/avatar'\nimport { avatar, type AvatarVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module provides the primitive components for the Avatar component.\n * @module 'avatar/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(avatar)\n\n/**\n * The root component of the Avatar.\n */\nexport const AvatarRoot = withSlotRecipe<AvatarRootProps>(Avatar.Root, 'root')\nexport type AvatarRootProps = CerberusPrimitiveProps<\n ArkAvatarRootProps & AvatarVariantProps\n>\n\n/**\n * The image component of the Avatar.\n */\nexport const AvatarImage = withSlotRecipe<ArkAvatarImageProps>(\n Avatar.Image,\n 'image',\n)\nexport type AvatarImageProps = CerberusPrimitiveProps<ArkAvatarImageProps>\n\n/**\n * The fallback component of the Avatar.\n */\nexport const AvatarFallback = withSlotRecipe<ArkAvatarFallbackProps>(\n Avatar.Fallback,\n 'fallback',\n)\nexport type AvatarFallbackProps = CerberusPrimitiveProps<ArkAvatarFallbackProps>\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n","import type { ElementType } from 'react'\nimport { AvatarFallback, AvatarImage, AvatarRoot } from './primitives'\n\n/**\n * This module contains the parts of the Avatar component.\n * @module 'avatar/parts'\n */\n\ninterface AvatarPartsValue {\n /**\n * The context provider of the Avatar.\n */\n Root: ElementType\n /**\n * The image of the Avatar.\n */\n Image: ElementType\n /**\n * The fallback content to display when the image fails to load.\n */\n Fallback: ElementType\n}\n\n/**\n * An Object containing the parts of the Accordion component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the AvatarParts object and\n * the entire family of components vs. only what you use.\n */\nexport const AvatarParts: AvatarPartsValue = {\n Root: AvatarRoot,\n Image: AvatarImage,\n Fallback: AvatarFallback,\n}\n","import type { AvatarVariantProps } from 'styled-system/recipes'\nimport type { ReactNode } from 'react'\nimport { splitProps } from '../../utils'\nimport { Show } from '../show/index'\nimport { AvatarParts } from './parts'\nimport type { AvatarRootProps } from './primitives'\n\n/**\n * This module provides an abstraction of the Avatar primitives.\n * @module 'avatar'\n */\n\nexport interface AvatarWithoutImage extends AvatarRootProps {\n alt?: never\n src?: never\n fallback?: ReactNode\n}\n\nexport interface AvatarWithImage extends AvatarRootProps, AvatarVariantProps {\n alt: string\n src: string\n fallback?: ReactNode\n}\n\n/**\n * Avatar component is an abstraction of the primitives that displays a\n * avatar or it's fallback when the image fails to load.\n * @description [Cerberus Docs](https://cerberus.digitalu.design/react/avatar/overview)\n * @description [Ark Docs](https://ark-ui.com/react/docs/components/avatar#api-reference)\n */\nexport function Avatar(props: AvatarWithoutImage | AvatarWithImage) {\n const [imgProps, { fallback, children }, rootProps] = splitProps(\n props,\n ['alt', 'src'],\n ['fallback', 'children'],\n )\n\n return (\n <AvatarParts.Root {...rootProps}>\n <Show\n when={children}\n fallback={\n <>\n <AvatarParts.Fallback>{fallback}</AvatarParts.Fallback>\n <AvatarParts.Image {...imgProps} />\n </>\n }\n >\n {children}\n </Show>\n </AvatarParts.Root>\n )\n}\n","import {\n Dialog,\n type DialogBackdropProps as ArkDialogBackdropProps,\n type DialogContentProps as ArkDialogContentProps,\n type DialogDescriptionProps as ArkDialogDescriptionProps,\n type DialogPositionerProps as ArkDialogPositionerProps,\n type DialogRootProps as ArkDialogRootProps,\n type DialogTitleProps as ArkDialogTitleProps,\n type DialogTriggerProps as ArkDialogTriggerProps,\n} from '@ark-ui/react/dialog'\nimport { dialog, type DialogVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Dialog component.\n * @module 'dialog/primitives'\n */\n\nconst { withSlotRecipe, withNoRecipe } = createCerberusPrimitive(dialog)\n\n/**\n * The provider that controls the dialog components.\n */\nexport type DialogRootProps = CerberusPrimitiveProps<ArkDialogRootProps>\nexport const DialogRoot = withNoRecipe(Dialog.Root)\n\n/**\n * An abstraction of the DialogRoot component for naming consistency.\n */\nexport const DialogProvider = DialogRoot\n\n/**\n * The trigger that opens the dialog.\n */\nexport type DialogTriggerProps = CerberusPrimitiveProps<ArkDialogTriggerProps>\nexport const DialogTrigger = withSlotRecipe(Dialog.Trigger, 'trigger')\n\n/**\n * The overlay of the dialog.\n */\nexport type DialogBackdropProps = CerberusPrimitiveProps<ArkDialogBackdropProps>\nexport const DialogBackdrop = withSlotRecipe(Dialog.Backdrop, 'backdrop')\n\n/**\n * The container that positions the dialog.\n */\nexport type DialogPositionerProps =\n CerberusPrimitiveProps<ArkDialogPositionerProps>\nexport const DialogPositioner = withSlotRecipe(Dialog.Positioner, 'positioner')\n\n/**\n * The visible content of the dialog.\n */\nexport type DialogContentProps = CerberusPrimitiveProps<\n ArkDialogContentProps & DialogVariantProps\n>\nexport const DialogContent = withSlotRecipe(Dialog.Content, 'content')\n\n/**\n * The heading of the dialog.\n */\nexport type DialogHeadingProps = CerberusPrimitiveProps<ArkDialogTitleProps>\nexport const DialogHeading = withSlotRecipe(Dialog.Title, 'title')\n\n/**\n * The description of the dialog.\n */\nexport type DialogDescriptionProps =\n CerberusPrimitiveProps<ArkDialogDescriptionProps>\nexport const DialogDescription = withSlotRecipe(\n Dialog.Description,\n 'description',\n)\n\n/**\n * The trigger that closes the dialog.\n */\nexport type DialogCloseTriggerProps =\n CerberusPrimitiveProps<ArkDialogTriggerProps>\nexport const DialogCloseTrigger = withNoRecipe(Dialog.CloseTrigger)\n","import { ark, type HTMLArkProps } from '@ark-ui/react/factory'\nimport { iconButton, type IconButtonVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the IconButton component primitives.\n * @module @cerberus-design/react/components/icon-button/primitives\n */\n\nconst { withRecipe } = createCerberusPrimitive(iconButton)\n\n/**\n * The root element of the Button component.\n */\nexport type IconButtonRootProps = CerberusPrimitiveProps<\n HTMLArkProps<'button'> & IconButtonVariantProps\n>\nexport const IconButtonRoot = withRecipe(ark.button)\n","import { IconButtonRoot, type IconButtonRootProps } from './primitives'\n\n/**\n * This module contains the Icon Button component.\n * @module\n */\n\nexport interface IconButtonProps extends IconButtonRootProps {\n /**\n * The aria-label attribute for the icon button.\n */\n ariaLabel: string\n}\n\n/**\n * A component that allows the user to perform actions using an icon\n * @see https://cerberus.digitalu.design/react/icon-button\n */\nexport function IconButton(props: IconButtonProps) {\n const { ariaLabel, ...rootProps } = props\n return (\n <IconButtonRoot {...rootProps} aria-label={ariaLabel ?? 'Icon Button'} />\n )\n}\n","'use client'\n\nimport { useCerberusContext } from '../../context/cerberus'\nimport { IconButton } from '../icon-button/index'\nimport { DialogCloseTrigger, type DialogCloseTriggerProps } from './primitives'\nimport { dialog } from 'styled-system/recipes'\nimport { cx } from 'styled-system/css'\n\n/**\n * This module contains the close trigger for the dialog.\n * @module react/dialog\n */\n\nexport function DialogCloseIconTrigger(props: DialogCloseTriggerProps) {\n const styles = dialog()\n\n const { icons } = useCerberusContext()\n const { close: CloseIcon } = icons\n\n return (\n <DialogCloseTrigger\n {...props}\n className={cx(styles.closeTrigger, props.className)}\n asChild\n >\n <IconButton\n ariaLabel=\"Close dialog\"\n palette=\"action\"\n size=\"lg\"\n usage=\"ghost\"\n >\n <CloseIcon />\n </IconButton>\n </DialogCloseTrigger>\n )\n}\n","import { Portal as ArkPortal, type PortalProps } from '@ark-ui/react'\n\n/**\n * This module is the Portal component.\n * @module\n */\n\nexport type { PortalProps }\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","import type { DialogVariantProps } from 'styled-system/recipes'\nimport type { WithCss } from '../../types'\nimport { Portal } from '../portal/index'\nimport {\n DialogBackdrop,\n DialogContent,\n DialogPositioner,\n type DialogContentProps,\n} from './primitives'\n\n/**\n * This module contains and abstraction of the Dialog primitives.\n * @module 'dialog'\n */\n\nexport interface DialogProps\n extends Omit<DialogContentProps, 'size' | 'style'>,\n DialogVariantProps,\n WithCss {}\n\n/**\n * An abstraction of the Dialog primitives that controls the content of the\n * dialog. Must be used within the `DialogProvider` component.\n * @definition [Dialog docs](https://cerberus.digitalu.design/react/dialog)\n * @definition [Ark Dialog docs](https://ark-ui.com/react/docs/components/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 return (\n <Portal>\n <DialogBackdrop />\n <DialogPositioner>\n <DialogContent {...props} />\n </DialogPositioner>\n </Portal>\n )\n}\n","'use client'\n\nimport { createContext, type ReactNode } from 'react'\nimport type { CTAModalActionReturn } from './utils'\n\n/**\n * This module provides the context for the cta modal.\n * @module\n */\n\nexport interface ShowCTAModalOptions {\n /**\n * The heading of the cta modal.\n */\n heading: string\n /**\n * The description of the cta modal.\n */\n description?: string\n /**\n * The icon used for the modal Avatar.\n */\n icon?: ReactNode\n /**\n * The actions for the cta modal. Requires 2 actions.\n */\n actions: CTAModalActionReturn\n}\n\nexport interface CTAModalValue {\n show: (options: ShowCTAModalOptions) => void\n}\n\nexport const CTAModalContext = createContext<CTAModalValue | null>(null)\n","import { css, cx } from 'styled-system/css'\nimport { Button, type ButtonProps } from '../button/button'\nimport { ark } from '@ark-ui/react/factory'\nimport { button } from 'styled-system/recipes'\n\n/**\n * This module provides the trigger item for the cta modal.\n * @module 'react/cta-modal/trigger-item'\n */\n\nexport interface TriggerItemProps extends ButtonProps {\n asChild?: boolean\n}\n\n/**\n * Trigger item for the cta modal which renders content based on the actions.\n * type.\n */\nexport function TriggerItem(props: TriggerItemProps) {\n const { asChild, children, ...buttonProps } = props\n\n if (asChild) {\n return (\n <ark.div\n className={cx(\n button({\n shape: 'rounded',\n usage: 'ghost',\n }),\n css({\n w: '1/2',\n }),\n )}\n asChild\n >\n {children}\n </ark.div>\n )\n }\n\n return (\n <Button\n {...buttonProps}\n className={css({\n w: '1/2',\n })}\n shape=\"rounded\"\n usage=\"outlined\"\n >\n {children}\n </Button>\n )\n}\n","'use client'\n\nimport { type HTMLArkProps } from '@ark-ui/react/factory'\nimport {\n type PropsWithChildren,\n createContext,\n useContext,\n useMemo,\n} from 'react'\nimport { type ButtonVariantProps } from 'styled-system/recipes'\nimport { Box } from 'styled-system/jsx'\nimport type { CerberusPrimitiveProps } from '../../system/types'\nimport { Show } from '../show/index'\nimport { Spinner } from '../spinner/index'\nimport { ButtonRoot } from './primitives'\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 = CerberusPrimitiveProps<\n HTMLArkProps<'button'> &\n ButtonVariantProps & {\n pending?: boolean\n }\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) {\n const { pending = false, ...nativeProps } = props\n const value = useMemo(() => ({ pending }), [pending])\n return (\n <ButtonContext.Provider value={value}>\n <ButtonRoot {...nativeProps} disabled={pending || nativeProps.disabled} />\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","import { ark } from '@ark-ui/react/factory'\nimport { button } from 'styled-system/recipes'\nimport { createCerberusPrimitive } from '../../system/index'\n\n/**\n * This module contains the Button component primitives.\n * @module @cerberus-design/react/components/button/primitives\n */\n\nconst { withRecipe } = createCerberusPrimitive(button)\n\n/**\n * The root element of the Button component.\n */\nexport const ButtonRoot = withRecipe(ark.button)\n"],"mappings":"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","names":["import_react","import_jsx","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","Avatar","import_recipes","withSlotRecipe","import_recipes","import_jsx_runtime","import_recipes","import_css","import_jsx_runtime","import_react","ArkPortal","import_jsx_runtime","Dialog","import_react","import_css","import_react","import_factory","import_recipes","withRecipe","import_jsx_runtime","import_factory","import_recipes","import_jsx_runtime","import_jsx_runtime","Dialog","Avatar"]}
1
+ {"version":3,"sources":["../../../../src/components/cta-dialog/provider.tsx","../../../../src/context/cerberus.tsx","../../../../src/components/show/show.tsx","../../../../src/components/for/for.tsx","../../../../src/utils/index.ts","../../../../src/components/avatar/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/avatar/parts.ts","../../../../src/components/avatar/avatar.tsx","../../../../src/components/dialog/primitives.tsx","../../../../src/components/icon-button/primitives.ts","../../../../src/components/icon-button/button.tsx","../../../../src/components/dialog/close-icon-trigger.tsx","../../../../src/components/portal/portal.tsx","../../../../src/components/dialog/dialog.tsx","../../../../src/components/cta-dialog/context.tsx","../../../../src/components/cta-dialog/trigger-item.tsx","../../../../src/components/button/button.tsx","../../../../src/components/button/primitives.tsx"],"sourcesContent":["'use client'\n\nimport {\n useCallback,\n useContext,\n useMemo,\n useState,\n type MouseEvent,\n type PropsWithChildren,\n type ReactNode,\n} from 'react'\nimport { HStack, VStack } from 'styled-system/jsx'\nimport { useCerberusContext } from '../../context/cerberus'\nimport { Show } from '../show/index'\nimport { For } from '../for/index'\nimport { Avatar } from '../avatar/avatar'\nimport {\n Dialog,\n DialogDescription,\n DialogHeading,\n DialogProvider,\n} from '../dialog'\nimport { DialogCloseIconTrigger } from '../dialog/close-icon-trigger'\nimport type { CTAButtonAction, CTAModalActionReturn } from './utils'\nimport {\n CTAModalContext,\n type CTAModalValue,\n type ShowCTAModalOptions,\n} from './context'\nimport { TriggerItem } from './trigger-item'\n\n/**\n * This module provides the provider and hook for the cta modal.\n * @module 'react/cta-modal/provider'\n */\n\n/**\n * Provides a CTA modal to the app.\n * @see https://cerberus.digitalu.design/react/cta-modal\n * @example\n * ```tsx\n * // Wrap the Provider around the root of the feature.\n * <CTAModal>\n * <SomeFeatureSection />\n * </CTAModal>\n *\n * // Use the hook to show the cta modal.\n * const cta = useCTAModal()\n *\n * const handleClick = useCallback(async () => {\n * const userConsent = await cta.show({\n * heading: 'Create or copy a Cohort',\n * description:\n * 'Create a new cohort or copy and existing one.',\n * icon: <Copy size={24} />,\n * actions: [\n * {\n * text: 'Create Cohort',\n * onClick: () => {},\n * {\n * text: 'Copy Cohort',\n * onClick: () => {}\n * }\n * })\n * setConsent(userConsent)\n * }, [cta])\n * ```\n */\nexport function CTAModal(props: PropsWithChildren<object>) {\n const [open, setOpen] = useState<boolean>(false)\n const [content, setContent] = useState<ShowCTAModalOptions | null>(null)\n const confirmIcon = content?.icon\n\n const { icons } = useCerberusContext()\n const { confirmModal: FallbackIcon } = icons\n\n const handleShow = useCallback(\n (options: ShowCTAModalOptions) => {\n setContent({ ...options })\n setOpen(true)\n },\n [setOpen],\n )\n\n const handleActionClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n const index = Number(event.currentTarget.getAttribute('data-index'))\n const contentActions = content?.actions as CTAModalActionReturn\n const action = contentActions._actions[index] as CTAButtonAction\n action?.handleClick?.(event)\n setOpen(false)\n },\n [content, setOpen],\n )\n\n const value = useMemo(\n () => ({\n show: handleShow,\n }),\n [handleShow],\n )\n\n return (\n <CTAModalContext.Provider value={value}>\n {props.children}\n\n <DialogProvider open={open} onOpenChange={(e) => setOpen(e.open)}>\n <Dialog\n size=\"sm\"\n style={{\n '--dialog-content-min-h': 'auto',\n }}\n >\n <DialogCloseIconTrigger />\n\n <VStack gap=\"xl\" w=\"full\">\n <VStack alignItems=\"flex-start\" gap=\"md\" w=\"full\">\n <VStack gap=\"lg\" w=\"full\">\n <Avatar\n gradient=\"charon-light\"\n fallback={\n <Show\n when={confirmIcon}\n fallback={<FallbackIcon size={24} />}\n >\n {confirmIcon}\n </Show>\n }\n />\n <DialogHeading>{content?.heading}</DialogHeading>\n <DialogDescription>{content?.description}</DialogDescription>\n </VStack>\n </VStack>\n\n <HStack gap=\"md\" w=\"full\">\n <For each={content?.actions._actions}>\n {(action, index) => (\n <Show\n key={index}\n when={content?.actions?.type === 'btnAction'}\n fallback={\n <TriggerItem asChild>{action as ReactNode}</TriggerItem>\n }\n >\n <TriggerItem data-index={index} onClick={handleActionClick}>\n {(action as CTAButtonAction)?.text}\n </TriggerItem>\n </Show>\n )}\n </For>\n </HStack>\n </VStack>\n </Dialog>\n </DialogProvider>\n </CTAModalContext.Provider>\n )\n}\n\nexport function useCTAModal(): CTAModalValue {\n const context = useContext(CTAModalContext)\n if (context === null) {\n throw new Error('useCTAModal must be used within a CTAModal Provider')\n }\n return context\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 { type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps<T> {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: T | 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<T>(props: PropsWithChildren<ShowProps<T>>) {\n const { when, children, fallback } = props\n\n if (when) {\n return <>{children}</>\n }\n\n if (fallback) {\n return <>{fallback}</>\n }\n\n return null\n}\n","import type { ReactNode, JSX } from 'react'\n\nexport interface ForProps<T extends readonly unknown[], U extends JSX.Element> {\n /**\n * The array to iterate over.\n */\n each: T | undefined | null | false\n /**\n * The fallback to render when the array is empty.\n */\n fallback?: JSX.Element\n /**\n * The children to render for each item in the array.\n */\n children: (item: T[number], index: number) => U\n}\n\n/**\n * The For component is used to iterate over an array and render a list of\n * components or display a fallback when the array is empty.\n * Inspired by the `<For>` component from SolidJS.\n *\n * @example\n * ```tsx\n * <For each={['a', 'b', 'c']}>\n * {(item, index) => <div key={index}>{item}</div>}\n * </For>\n * ```\n */\nexport function For<T extends readonly unknown[], U extends JSX.Element>(\n props: ForProps<T, U>,\n) {\n if (!props.each || !props.each.length) {\n return props.fallback || null\n }\n\n return <>{props.each?.map(props.children) as ReactNode}</>\n}\n","/**\n * This module contains utility functions that are used across your app.\n * @module Utils\n */\n\n/**\n * Formats the count of notifications to be displayed in the notification badge.\n * @param count - The number of notifications.\n * @returns The formatted count of notifications.\n * @example\n * ```tsx\n * const count = formatNotifyCount(100)\n * console.log(count) // '99+'\n * ```\n */\nexport function formatNotifyCount(count: number): string {\n if (count > 99) return '99+'\n return count.toString()\n}\n\n/**\n * Splits the properties of an object into multiple groups based on lists of keys.\n * @param props - The object to split.\n * @param keyGroups - The lists of keys to include in each group.\n * @returns An array of objects: each containing the properties specified in the corresponding key group, and the last object containing the remaining keys.\n */\nexport function splitProps<T extends object>(\n props: T,\n ...keyGroups: (keyof T)[][]\n): { [K in keyof T]?: T[K] }[] {\n const result = keyGroups.map(() => ({}) as { [K in keyof T]?: T[K] })\n const rest = {} as { [K in keyof T]?: T[K] }\n\n for (const key in props) {\n let assigned = false\n for (let i = 0; i < keyGroups.length; i++) {\n if (keyGroups[i].includes(key as keyof T)) {\n result[i][key as keyof T] = props[key]\n assigned = true\n break\n }\n }\n if (!assigned) {\n rest[key as keyof T] = props[key]\n }\n }\n\n return [...result, rest]\n}\n\nexport * from './localStorage'\n","import {\n Avatar,\n type AvatarFallbackProps as ArkAvatarFallbackProps,\n type AvatarImageProps as ArkAvatarImageProps,\n type AvatarRootProps as ArkAvatarRootProps,\n} from '@ark-ui/react/avatar'\nimport { avatar, type AvatarVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module provides the primitive components for the Avatar component.\n * @module 'avatar/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(avatar)\n\n/**\n * The root component of the Avatar.\n */\nexport const AvatarRoot = withSlotRecipe<AvatarRootProps>(Avatar.Root, 'root')\nexport type AvatarRootProps = CerberusPrimitiveProps<\n ArkAvatarRootProps & AvatarVariantProps\n>\n\n/**\n * The image component of the Avatar.\n */\nexport const AvatarImage = withSlotRecipe<ArkAvatarImageProps>(\n Avatar.Image,\n 'image',\n)\nexport type AvatarImageProps = CerberusPrimitiveProps<ArkAvatarImageProps>\n\n/**\n * The fallback component of the Avatar.\n */\nexport const AvatarFallback = withSlotRecipe<ArkAvatarFallbackProps>(\n Avatar.Fallback,\n 'fallback',\n)\nexport type AvatarFallbackProps = CerberusPrimitiveProps<ArkAvatarFallbackProps>\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n","import type { ElementType } from 'react'\nimport { AvatarFallback, AvatarImage, AvatarRoot } from './primitives'\n\n/**\n * This module contains the parts of the Avatar component.\n * @module 'avatar/parts'\n */\n\ninterface AvatarPartsValue {\n /**\n * The context provider of the Avatar.\n */\n Root: ElementType\n /**\n * The image of the Avatar.\n */\n Image: ElementType\n /**\n * The fallback content to display when the image fails to load.\n */\n Fallback: ElementType\n}\n\n/**\n * An Object containing the parts of the Accordion component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the AvatarParts object and\n * the entire family of components vs. only what you use.\n */\nexport const AvatarParts: AvatarPartsValue = {\n Root: AvatarRoot,\n Image: AvatarImage,\n Fallback: AvatarFallback,\n}\n","import type { AvatarVariantProps } from 'styled-system/recipes'\nimport type { ReactNode } from 'react'\nimport { splitProps } from '../../utils'\nimport { Show } from '../show/index'\nimport { AvatarParts } from './parts'\nimport type { AvatarRootProps } from './primitives'\n\n/**\n * This module provides an abstraction of the Avatar primitives.\n * @module 'avatar'\n */\n\nexport interface AvatarWithoutImage extends AvatarRootProps {\n alt?: never\n src?: never\n fallback?: ReactNode\n}\n\nexport interface AvatarWithImage extends AvatarRootProps, AvatarVariantProps {\n alt: string\n src: string\n fallback?: ReactNode\n}\n\n/**\n * Avatar component is an abstraction of the primitives that displays a\n * avatar or it's fallback when the image fails to load.\n * @description [Cerberus Docs](https://cerberus.digitalu.design/react/avatar/overview)\n * @description [Ark Docs](https://ark-ui.com/react/docs/components/avatar#api-reference)\n */\nexport function Avatar(props: AvatarWithoutImage | AvatarWithImage) {\n const [imgProps, { fallback, children }, rootProps] = splitProps(\n props,\n ['alt', 'src'],\n ['fallback', 'children'],\n )\n\n return (\n <AvatarParts.Root {...rootProps}>\n <Show\n when={children}\n fallback={\n <>\n <AvatarParts.Fallback>{fallback}</AvatarParts.Fallback>\n <AvatarParts.Image {...imgProps} />\n </>\n }\n >\n {children}\n </Show>\n </AvatarParts.Root>\n )\n}\n","import {\n Dialog,\n type DialogBackdropProps as ArkDialogBackdropProps,\n type DialogContentProps as ArkDialogContentProps,\n type DialogDescriptionProps as ArkDialogDescriptionProps,\n type DialogPositionerProps as ArkDialogPositionerProps,\n type DialogRootProps as ArkDialogRootProps,\n type DialogTitleProps as ArkDialogTitleProps,\n type DialogTriggerProps as ArkDialogTriggerProps,\n} from '@ark-ui/react/dialog'\nimport { dialog, type DialogVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Dialog component.\n * @module 'dialog/primitives'\n */\n\nconst { withSlotRecipe, withNoRecipe } = createCerberusPrimitive(dialog)\n\n/**\n * The provider that controls the dialog components.\n */\nexport type DialogRootProps = CerberusPrimitiveProps<ArkDialogRootProps>\nexport const DialogRoot = withNoRecipe(Dialog.Root)\n\n/**\n * An abstraction of the DialogRoot component for naming consistency.\n */\nexport const DialogProvider = DialogRoot\n\n/**\n * The trigger that opens the dialog.\n */\nexport type DialogTriggerProps = CerberusPrimitiveProps<ArkDialogTriggerProps>\nexport const DialogTrigger = withSlotRecipe(Dialog.Trigger, 'trigger')\n\n/**\n * The overlay of the dialog.\n */\nexport type DialogBackdropProps = CerberusPrimitiveProps<ArkDialogBackdropProps>\nexport const DialogBackdrop = withSlotRecipe(Dialog.Backdrop, 'backdrop')\n\n/**\n * The container that positions the dialog.\n */\nexport type DialogPositionerProps =\n CerberusPrimitiveProps<ArkDialogPositionerProps>\nexport const DialogPositioner = withSlotRecipe(Dialog.Positioner, 'positioner')\n\n/**\n * The visible content of the dialog.\n */\nexport type DialogContentProps = CerberusPrimitiveProps<\n ArkDialogContentProps & DialogVariantProps\n>\nexport const DialogContent = withSlotRecipe(Dialog.Content, 'content')\n\n/**\n * The heading of the dialog.\n */\nexport type DialogHeadingProps = CerberusPrimitiveProps<ArkDialogTitleProps>\nexport const DialogHeading = withSlotRecipe(Dialog.Title, 'title')\n\n/**\n * The description of the dialog.\n */\nexport type DialogDescriptionProps =\n CerberusPrimitiveProps<ArkDialogDescriptionProps>\nexport const DialogDescription = withSlotRecipe(\n Dialog.Description,\n 'description',\n)\n\n/**\n * The trigger that closes the dialog.\n */\nexport type DialogCloseTriggerProps =\n CerberusPrimitiveProps<ArkDialogTriggerProps>\nexport const DialogCloseTrigger = withNoRecipe(Dialog.CloseTrigger)\n","import { ark, type HTMLArkProps } from '@ark-ui/react/factory'\nimport { iconButton, type IconButtonVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the IconButton component primitives.\n * @module @cerberus-design/react/components/icon-button/primitives\n */\n\nconst { withRecipe } = createCerberusPrimitive(iconButton)\n\n/**\n * The root element of the Button component.\n */\nexport type IconButtonRootProps = CerberusPrimitiveProps<\n HTMLArkProps<'button'> & IconButtonVariantProps\n>\nexport const IconButtonRoot = withRecipe(ark.button)\n","import { IconButtonRoot, type IconButtonRootProps } from './primitives'\n\n/**\n * This module contains the Icon Button component.\n * @module\n */\n\nexport interface IconButtonProps extends IconButtonRootProps {\n /**\n * The aria-label attribute for the icon button.\n */\n ariaLabel: string\n}\n\n/**\n * A component that allows the user to perform actions using an icon\n * @see https://cerberus.digitalu.design/react/icon-button\n */\nexport function IconButton(props: IconButtonProps) {\n const { ariaLabel, ...rootProps } = props\n return (\n <IconButtonRoot {...rootProps} aria-label={ariaLabel ?? 'Icon Button'} />\n )\n}\n","'use client'\n\nimport { useCerberusContext } from '../../context/cerberus'\nimport { IconButton } from '../icon-button/index'\nimport { DialogCloseTrigger, type DialogCloseTriggerProps } from './primitives'\nimport { dialog } from 'styled-system/recipes'\nimport { cx } from 'styled-system/css'\n\n/**\n * This module contains the close trigger for the dialog.\n * @module react/dialog\n */\n\nexport function DialogCloseIconTrigger(props: DialogCloseTriggerProps) {\n const styles = dialog()\n\n const { icons } = useCerberusContext()\n const { close: CloseIcon } = icons\n\n return (\n <DialogCloseTrigger\n {...props}\n className={cx(styles.closeTrigger, props.className)}\n asChild\n >\n <IconButton\n ariaLabel=\"Close dialog\"\n palette=\"action\"\n size=\"lg\"\n usage=\"ghost\"\n >\n <CloseIcon />\n </IconButton>\n </DialogCloseTrigger>\n )\n}\n","import { Portal as ArkPortal, type PortalProps } from '@ark-ui/react'\n\n/**\n * This module is the Portal component.\n * @module\n */\n\nexport type { PortalProps }\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","import type { DialogVariantProps } from 'styled-system/recipes'\nimport type { WithCss } from '../../types'\nimport { Portal } from '../portal/index'\nimport {\n DialogBackdrop,\n DialogContent,\n DialogPositioner,\n type DialogContentProps,\n} from './primitives'\n\n/**\n * This module contains and abstraction of the Dialog primitives.\n * @module 'dialog'\n */\n\nexport interface DialogProps\n extends Omit<DialogContentProps, 'size' | 'style'>,\n DialogVariantProps,\n WithCss {}\n\n/**\n * An abstraction of the Dialog primitives that controls the content of the\n * dialog. Must be used within the `DialogProvider` component.\n * @definition [Dialog docs](https://cerberus.digitalu.design/react/dialog)\n * @definition [Ark Dialog docs](https://ark-ui.com/react/docs/components/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 return (\n <Portal>\n <DialogBackdrop />\n <DialogPositioner>\n <DialogContent {...props} />\n </DialogPositioner>\n </Portal>\n )\n}\n","'use client'\n\nimport { createContext, type ReactNode } from 'react'\nimport type { CTAModalActionReturn } from './utils'\n\n/**\n * This module provides the context for the cta modal.\n * @module\n */\n\nexport interface ShowCTAModalOptions {\n /**\n * The heading of the cta modal.\n */\n heading: string\n /**\n * The description of the cta modal.\n */\n description?: string\n /**\n * The icon used for the modal Avatar.\n */\n icon?: ReactNode\n /**\n * The actions for the cta modal. Requires 2 actions.\n */\n actions: CTAModalActionReturn\n}\n\nexport interface CTAModalValue {\n show: (options: ShowCTAModalOptions) => void\n}\n\nexport const CTAModalContext = createContext<CTAModalValue | null>(null)\n","import { css, cx } from 'styled-system/css'\nimport { Button, type ButtonProps } from '../button/button'\nimport { ark } from '@ark-ui/react/factory'\nimport { button } from 'styled-system/recipes'\n\n/**\n * This module provides the trigger item for the cta modal.\n * @module 'react/cta-modal/trigger-item'\n */\n\nexport interface TriggerItemProps extends ButtonProps {\n asChild?: boolean\n}\n\n/**\n * Trigger item for the cta modal which renders content based on the actions.\n * type.\n */\nexport function TriggerItem(props: TriggerItemProps) {\n const { asChild, children, ...buttonProps } = props\n\n if (asChild) {\n return (\n <ark.div\n className={cx(\n button({\n shape: 'rounded',\n usage: 'ghost',\n }),\n css({\n w: '1/2',\n }),\n )}\n asChild\n >\n {children}\n </ark.div>\n )\n }\n\n return (\n <Button\n {...buttonProps}\n className={css({\n w: '1/2',\n })}\n shape=\"rounded\"\n usage=\"outlined\"\n >\n {children}\n </Button>\n )\n}\n","'use client'\n\nimport { type HTMLArkProps } from '@ark-ui/react/factory'\nimport {\n type PropsWithChildren,\n createContext,\n useContext,\n useMemo,\n} from 'react'\nimport { type ButtonVariantProps } from 'styled-system/recipes'\nimport { Box } from 'styled-system/jsx'\nimport type { CerberusPrimitiveProps } from '../../system/types'\nimport { Show } from '../show/index'\nimport { Spinner } from '../spinner/index'\nimport { ButtonRoot } from './primitives'\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 = CerberusPrimitiveProps<\n HTMLArkProps<'button'> &\n ButtonVariantProps & {\n pending?: boolean\n }\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) {\n const { pending = false, ...nativeProps } = props\n const value = useMemo(() => ({ pending }), [pending])\n return (\n <ButtonContext.Provider value={value}>\n <ButtonRoot {...nativeProps} disabled={pending || nativeProps.disabled} />\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","import { ark } from '@ark-ui/react/factory'\nimport { button } from 'styled-system/recipes'\nimport { createCerberusPrimitive } from '../../system/index'\n\n/**\n * This module contains the Button component primitives.\n * @module @cerberus-design/react/components/button/primitives\n */\n\nconst { withRecipe } = createCerberusPrimitive(button)\n\n/**\n * The root element of the Button component.\n */\nexport const ButtonRoot = withRecipe(ark.button)\n"],"mappings":"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","names":["import_react","import_jsx","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","Avatar","import_recipes","withSlotRecipe","import_recipes","import_jsx_runtime","import_recipes","import_css","import_jsx_runtime","import_react","ArkPortal","import_jsx_runtime","Dialog","import_react","import_css","import_react","import_factory","import_recipes","withRecipe","import_jsx_runtime","import_factory","import_recipes","import_jsx_runtime","import_jsx_runtime","Dialog","Avatar"]}
@@ -75,8 +75,12 @@ var CerberusPrimitive = class {
75
75
  const recipe = this.recipe;
76
76
  this.validateComponent(Component);
77
77
  const CerbComponent = (internalProps) => {
78
- const { css: customCss, className, ...nativeProps } = internalProps;
79
- const [variantOptions] = recipe.splitVariantProps(nativeProps);
78
+ const {
79
+ css: customCss,
80
+ className,
81
+ ...restOfInternalProps
82
+ } = internalProps;
83
+ const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
80
84
  const recipeStyles = recipe(variantOptions);
81
85
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
82
86
  Component,
@@ -107,8 +111,12 @@ var CerberusPrimitive = class {
107
111
  const recipe = this.recipe;
108
112
  this.validateComponent(Component);
109
113
  const CerbComponent = (internalProps) => {
110
- const { css: customCss, className, ...nativeProps } = internalProps;
111
- const [variantOptions] = recipe.splitVariantProps(nativeProps);
114
+ const {
115
+ css: customCss,
116
+ className,
117
+ ...restOfInternalProps
118
+ } = internalProps;
119
+ const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
112
120
  const styles = recipe(variantOptions);
113
121
  const slotStyles = styles[slot];
114
122
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/cta-dialog/trigger-item.tsx","../../../../src/components/button/button.tsx","../../../../src/components/button/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts"],"sourcesContent":["import { css, cx } from 'styled-system/css'\nimport { Button, type ButtonProps } from '../button/button'\nimport { ark } from '@ark-ui/react/factory'\nimport { button } from 'styled-system/recipes'\n\n/**\n * This module provides the trigger item for the cta modal.\n * @module 'react/cta-modal/trigger-item'\n */\n\nexport interface TriggerItemProps extends ButtonProps {\n asChild?: boolean\n}\n\n/**\n * Trigger item for the cta modal which renders content based on the actions.\n * type.\n */\nexport function TriggerItem(props: TriggerItemProps) {\n const { asChild, children, ...buttonProps } = props\n\n if (asChild) {\n return (\n <ark.div\n className={cx(\n button({\n shape: 'rounded',\n usage: 'ghost',\n }),\n css({\n w: '1/2',\n }),\n )}\n asChild\n >\n {children}\n </ark.div>\n )\n }\n\n return (\n <Button\n {...buttonProps}\n className={css({\n w: '1/2',\n })}\n shape=\"rounded\"\n usage=\"outlined\"\n >\n {children}\n </Button>\n )\n}\n","'use client'\n\nimport { type HTMLArkProps } from '@ark-ui/react/factory'\nimport {\n type PropsWithChildren,\n createContext,\n useContext,\n useMemo,\n} from 'react'\nimport { type ButtonVariantProps } from 'styled-system/recipes'\nimport { Box } from 'styled-system/jsx'\nimport type { CerberusPrimitiveProps } from '../../system/types'\nimport { Show } from '../show/index'\nimport { Spinner } from '../spinner/index'\nimport { ButtonRoot } from './primitives'\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 = CerberusPrimitiveProps<\n HTMLArkProps<'button'> &\n ButtonVariantProps & {\n pending?: boolean\n }\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) {\n const { pending = false, ...nativeProps } = props\n const value = useMemo(() => ({ pending }), [pending])\n return (\n <ButtonContext.Provider value={value}>\n <ButtonRoot {...nativeProps} disabled={pending || nativeProps.disabled} />\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","import { ark } from '@ark-ui/react/factory'\nimport { button } from 'styled-system/recipes'\nimport { createCerberusPrimitive } from '../../system/index'\n\n/**\n * This module contains the Button component primitives.\n * @module @cerberus-design/react/components/button/primitives\n */\n\nconst { withRecipe } = createCerberusPrimitive(button)\n\n/**\n * The root element of the Button component.\n */\nexport const ButtonRoot = withRecipe(ark.button)\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n"],"mappings":"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","names":["import_css","import_jsx_runtime","import_factory","import_recipes","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../../../../src/components/cta-dialog/trigger-item.tsx","../../../../src/components/button/button.tsx","../../../../src/components/button/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts"],"sourcesContent":["import { css, cx } from 'styled-system/css'\nimport { Button, type ButtonProps } from '../button/button'\nimport { ark } from '@ark-ui/react/factory'\nimport { button } from 'styled-system/recipes'\n\n/**\n * This module provides the trigger item for the cta modal.\n * @module 'react/cta-modal/trigger-item'\n */\n\nexport interface TriggerItemProps extends ButtonProps {\n asChild?: boolean\n}\n\n/**\n * Trigger item for the cta modal which renders content based on the actions.\n * type.\n */\nexport function TriggerItem(props: TriggerItemProps) {\n const { asChild, children, ...buttonProps } = props\n\n if (asChild) {\n return (\n <ark.div\n className={cx(\n button({\n shape: 'rounded',\n usage: 'ghost',\n }),\n css({\n w: '1/2',\n }),\n )}\n asChild\n >\n {children}\n </ark.div>\n )\n }\n\n return (\n <Button\n {...buttonProps}\n className={css({\n w: '1/2',\n })}\n shape=\"rounded\"\n usage=\"outlined\"\n >\n {children}\n </Button>\n )\n}\n","'use client'\n\nimport { type HTMLArkProps } from '@ark-ui/react/factory'\nimport {\n type PropsWithChildren,\n createContext,\n useContext,\n useMemo,\n} from 'react'\nimport { type ButtonVariantProps } from 'styled-system/recipes'\nimport { Box } from 'styled-system/jsx'\nimport type { CerberusPrimitiveProps } from '../../system/types'\nimport { Show } from '../show/index'\nimport { Spinner } from '../spinner/index'\nimport { ButtonRoot } from './primitives'\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 = CerberusPrimitiveProps<\n HTMLArkProps<'button'> &\n ButtonVariantProps & {\n pending?: boolean\n }\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) {\n const { pending = false, ...nativeProps } = props\n const value = useMemo(() => ({ pending }), [pending])\n return (\n <ButtonContext.Provider value={value}>\n <ButtonRoot {...nativeProps} disabled={pending || nativeProps.disabled} />\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","import { ark } from '@ark-ui/react/factory'\nimport { button } from 'styled-system/recipes'\nimport { createCerberusPrimitive } from '../../system/index'\n\n/**\n * This module contains the Button component primitives.\n * @module @cerberus-design/react/components/button/primitives\n */\n\nconst { withRecipe } = createCerberusPrimitive(button)\n\n/**\n * The root element of the Button component.\n */\nexport const ButtonRoot = withRecipe(ark.button)\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAAA,cAAwB;;;ACGxB,mBAKO;AAEP,iBAAoB;;;ACVpB,qBAAoB;AACpB,qBAAuB;;;ACDvB,iBAAwB;AAmEX;AA9CN,IAAM,oBAAN,MAAwB;AAAA,EAG7B,YAAY,QAAkC;AAF9C;AAkCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wCAAe,CACb,WACA,YAC2B;AAC3B,YAAM,EAAE,aAAa,IAAI,WAAW,CAAC;AAErC,WAAK,kBAAkB,SAAS;AAEhC,YAAM,gBAAgB,CAAC,UAA0C;AAC/D,cAAM,EAAE,KAAK,WAAW,WAAW,GAAG,YAAY,IAAI;AACtD,cAAM,SAAS,KAAK,cAAU,eAAG,eAAW,gBAAI,SAAS,CAAC,CAAC;AAC3D,eAAO,4CAAC,aAAW,GAAG,cAAe,GAAG,QAAS,GAAI,aAAmB;AAAA,MAC1E;AAEA,oBAAc,cAAc,UAAU,eAAe,UAAU;AAC/D,aAAO;AAAA,IACT;AASA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sCAAa,CACX,WACA,YAC+D;AAC/D,YAAM,EAAE,aAAa,IAAI,WAAW,CAAC;AACrC,YAAM,SAAS,KAAK;AAEpB,WAAK,kBAAkB,SAAS;AAEhC,YAAM,gBAAgB,CAAC,kBAAkD;AACvE,cAAM;AAAA,UACJ,KAAK;AAAA,UACL;AAAA,UACA,GAAG;AAAA,QACL,IAAI;AAEJ,cAAM,CAAC,gBAAgB,WAAW,IAChC,OAAO,kBAAkB,mBAAmB;AAC9C,cAAM,eAAe,OAAO,cAAc;AAE1C,eACE;AAAA,UAAC;AAAA;AAAA,YACE,GAAG;AAAA,YACH,GAAI;AAAA,YACL,eAAW,eAAG,WAAW,kBAAc,gBAAI,SAAS,CAAC;AAAA;AAAA,QACvD;AAAA,MAEJ;AAEA,oBAAc,cAAc,UAAU,eAAe,UAAU;AAC/D,aAAO;AAAA,IACT;AAcA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0CAAiB,CACf,WACA,MACA,YACG;AACH,YAAM,EAAE,aAAa,IAAI,WAAW,CAAC;AACrC,YAAM,SAAS,KAAK;AAEpB,WAAK,kBAAkB,SAAS;AAEhC,YAAM,gBAAgB,CAAC,kBAAkD;AACvE,cAAM;AAAA,UACJ,KAAK;AAAA,UACL;AAAA,UACA,GAAG;AAAA,QACL,IAAI;AAEJ,cAAM,CAAC,gBAAgB,WAAW,IAChC,OAAO,kBAAkB,mBAAmB;AAC9C,cAAM,SAAS,OAAO,cAAc;AACpC,cAAM,aAAa,OAAO,IAA2B;AAErD,eACE;AAAA,UAAC;AAAA;AAAA,YACE,GAAG;AAAA,YACH,GAAI;AAAA,YACL,eAAW,eAAG,WAAW,gBAAY,gBAAI,SAAS,CAAC;AAAA;AAAA,QACrD;AAAA,MAEJ;AAEA,oBAAc,cAAc,UAAU,eAAe,UAAU;AAC/D,aAAO;AAAA,IACT;AAtIE,SAAK,SAAS,UAAU;AAAA,EAC1B;AAAA,EAEQ,UAAU,QAAqD;AACrE,QAAI,QAAQ;AACV,aAAO;AAAA,QACL,WAAW;AAAA,MACb;AAAA,IACF;AACA,WAAO,CAAC;AAAA,EACV;AAAA,EAEQ,kBACN,WACA;AACA,QAAI,OAAO,cAAc,cAAc,OAAO,cAAc,UAAU;AACpE,YAAM,IAAI,MAAM,mDAAmD;AAAA,IACrE;AAAA,EACF;AAqHF;;;AC1IO,SAAS,wBACd,QACA;AACA,SAAO,IAAI,kBAAkB,MAAM;AACrC;;;AFjBA,IAAM,EAAE,WAAW,IAAI,wBAAwB,qBAAM;AAK9C,IAAM,aAAa,WAAW,mBAAI,MAAM;;;AD+BzC,IAAAC,sBAAA;AApBN,IAAM,oBAAgB,4BAAkC;AAAA,EACtD,SAAS;AACX,CAAC;AAaM,SAAS,OAAO,OAAoB;AACzC,QAAM,EAAE,UAAU,OAAO,GAAG,YAAY,IAAI;AAC5C,QAAM,YAAQ,sBAAQ,OAAO,EAAE,QAAQ,IAAI,CAAC,OAAO,CAAC;AACpD,SACE,6CAAC,cAAc,UAAd,EAAuB,OACtB,uDAAC,cAAY,GAAG,aAAa,UAAU,WAAW,YAAY,UAAU,GAC1E;AAEJ;;;AD9CA,IAAAC,kBAAoB;AACpB,IAAAC,kBAAuB;AAoBjB,IAAAC,sBAAA;AALC,SAAS,YAAY,OAAyB;AACnD,QAAM,EAAE,SAAS,UAAU,GAAG,YAAY,IAAI;AAE9C,MAAI,SAAS;AACX,WACE;AAAA,MAAC,oBAAI;AAAA,MAAJ;AAAA,QACC,eAAW;AAAA,cACT,wBAAO;AAAA,YACL,OAAO;AAAA,YACP,OAAO;AAAA,UACT,CAAC;AAAA,cACD,iBAAI;AAAA,YACF,GAAG;AAAA,UACL,CAAC;AAAA,QACH;AAAA,QACA,SAAO;AAAA,QAEN;AAAA;AAAA,IACH;AAAA,EAEJ;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,eAAW,iBAAI;AAAA,QACb,GAAG;AAAA,MACL,CAAC;AAAA,MACD,OAAM;AAAA,MACN,OAAM;AAAA,MAEL;AAAA;AAAA,EACH;AAEJ;","names":["import_css","import_jsx_runtime","import_factory","import_recipes","import_jsx_runtime"]}
@@ -74,8 +74,12 @@ var CerberusPrimitive = class {
74
74
  const recipe = this.recipe;
75
75
  this.validateComponent(Component);
76
76
  const CerbComponent = (internalProps) => {
77
- const { css: customCss, className, ...nativeProps } = internalProps;
78
- const [variantOptions] = recipe.splitVariantProps(nativeProps);
77
+ const {
78
+ css: customCss,
79
+ className,
80
+ ...restOfInternalProps
81
+ } = internalProps;
82
+ const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
79
83
  const recipeStyles = recipe(variantOptions);
80
84
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
81
85
  Component,
@@ -106,8 +110,12 @@ var CerberusPrimitive = class {
106
110
  const recipe = this.recipe;
107
111
  this.validateComponent(Component);
108
112
  const CerbComponent = (internalProps) => {
109
- const { css: customCss, className, ...nativeProps } = internalProps;
110
- const [variantOptions] = recipe.splitVariantProps(nativeProps);
113
+ const {
114
+ css: customCss,
115
+ className,
116
+ ...restOfInternalProps
117
+ } = internalProps;
118
+ const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
111
119
  const styles = recipe(variantOptions);
112
120
  const slotStyles = styles[slot];
113
121
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(