@cerberus-design/react 0.19.1 → 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 (584) 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 +12 -4
  225. package/build/legacy/components/theme/index.cjs.map +1 -1
  226. package/build/legacy/components/theme/theme.cjs +12 -4
  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 +15 -6
  249. package/build/legacy/index.cjs.map +1 -1
  250. package/build/legacy/system/factory.cjs +12 -4
  251. package/build/legacy/system/factory.cjs.map +1 -1
  252. package/build/legacy/system/index.cjs +12 -4
  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-4WSCG2CM.js → chunk-262PENBL.js} +3 -3
  259. package/build/modern/{chunk-N2DZNGUS.js → chunk-27RTYRM7.js} +2 -2
  260. package/build/modern/{chunk-UCP3GQOJ.js → chunk-2SBNSYYC.js} +2 -2
  261. package/build/modern/{chunk-ZPMGW4U7.js → chunk-2UD72VLC.js} +2 -2
  262. package/build/modern/{chunk-NPZJTTTS.js → chunk-2VVJATIW.js} +5 -5
  263. package/build/modern/{chunk-GZ6T3352.js → chunk-33OXE7IJ.js} +13 -5
  264. package/build/modern/chunk-33OXE7IJ.js.map +1 -0
  265. package/build/modern/{chunk-4DJ6KC4K.js → chunk-46QXBKGK.js} +6 -6
  266. package/build/modern/{chunk-KYYKBLP2.js → chunk-4ZQUC4DA.js} +2 -2
  267. package/build/modern/{chunk-NH2RSI7N.js → chunk-5UZUXCMO.js} +2 -2
  268. package/build/modern/{chunk-J3XTP6VP.js → chunk-5W6HMI2G.js} +2 -2
  269. package/build/modern/{chunk-ZGPHSKEB.js → chunk-5WT5BM3V.js} +3 -3
  270. package/build/modern/{chunk-HJ67FKQ6.js → chunk-6KGRHE3J.js} +2 -2
  271. package/build/modern/{chunk-BDXVYV32.js → chunk-6KIXF4ES.js} +2 -2
  272. package/build/modern/{chunk-IU5YJTKN.js → chunk-6P2JY52I.js} +2 -2
  273. package/build/modern/{chunk-YI3P5QG4.js → chunk-6XO2RTIJ.js} +2 -2
  274. package/build/modern/{chunk-S7ALRSVU.js → chunk-77QDH2Q5.js} +2 -2
  275. package/build/modern/{chunk-VXG4AEMZ.js → chunk-7GT7UUCB.js} +2 -2
  276. package/build/modern/{chunk-RXAHVNN2.js → chunk-7GVDVLCR.js} +2 -2
  277. package/build/modern/{chunk-VIUQS3VG.js → chunk-7LNGA4BX.js} +2 -2
  278. package/build/modern/{chunk-ALJYABJX.js → chunk-7MWSOSOY.js} +2 -2
  279. package/build/modern/{chunk-COIQJKC3.js → chunk-A6NEZNGY.js} +2 -2
  280. package/build/modern/{chunk-OMM4CPZU.js → chunk-ABMK5P66.js} +2 -2
  281. package/build/modern/{chunk-YVYOOJ3X.js → chunk-ADOFKGU3.js} +2 -2
  282. package/build/modern/{chunk-4Q62OI72.js → chunk-AHYFFHUW.js} +2 -2
  283. package/build/modern/{chunk-GHM4I5BN.js → chunk-BFE2SHZO.js} +3 -3
  284. package/build/modern/{chunk-L2G4XKLT.js → chunk-BGJIAA5F.js} +2 -2
  285. package/build/modern/{chunk-2OWVBM5W.js → chunk-BGZTC53N.js} +2 -2
  286. package/build/modern/{chunk-UKAVYSJ5.js → chunk-BS4V2YJV.js} +3 -3
  287. package/build/modern/{chunk-VZXYGBU6.js → chunk-BT6FMOKM.js} +2 -2
  288. package/build/modern/{chunk-IOK2RQK6.js → chunk-CBJ5A5BD.js} +4 -4
  289. package/build/modern/{chunk-KSYZMMXN.js → chunk-CI7JYXUR.js} +3 -3
  290. package/build/modern/{chunk-ACK44GEO.js → chunk-CKCGLHLS.js} +6 -6
  291. package/build/modern/{chunk-A57LVJJF.js → chunk-CYK3ZJIX.js} +2 -2
  292. package/build/modern/{chunk-6BNGJMNL.js → chunk-EMLKVTGD.js} +3 -3
  293. package/build/modern/{chunk-RDFAC3XX.js → chunk-ETYXG2J2.js} +2 -2
  294. package/build/modern/{chunk-WKAI4OK3.js → chunk-FIVEPZ5F.js} +2 -2
  295. package/build/modern/{chunk-QOTRCNC7.js → chunk-FL3J7LTC.js} +2 -2
  296. package/build/modern/{chunk-A655GBYQ.js → chunk-GBV7MIBU.js} +4 -4
  297. package/build/modern/{chunk-JG5V3AK4.js → chunk-GLH23RDO.js} +3 -3
  298. package/build/modern/{chunk-5XU3LUPC.js → chunk-H6ZGH4VM.js} +2 -2
  299. package/build/modern/{chunk-YCVNE3CA.js → chunk-H7N6M7VO.js} +2 -2
  300. package/build/modern/{chunk-2UFNNWLA.js → chunk-HJYVIRNA.js} +5 -5
  301. package/build/modern/{chunk-BWZXR2WZ.js → chunk-HUKQPIDV.js} +2 -2
  302. package/build/modern/{chunk-LRIYLZSL.js → chunk-IWJCQ4BM.js} +3 -3
  303. package/build/modern/{chunk-SGFITMUF.js → chunk-IX5QZCM4.js} +2 -2
  304. package/build/modern/{chunk-PQ5DEKSH.js → chunk-J37VR33H.js} +2 -2
  305. package/build/modern/{chunk-UHXKG2ZP.js → chunk-JBAE2B2H.js} +2 -2
  306. package/build/modern/{chunk-HPWLIE64.js → chunk-KDIDKP2L.js} +2 -2
  307. package/build/modern/{chunk-YZFXHGMG.js → chunk-KELIM5A3.js} +2 -2
  308. package/build/modern/{chunk-E4DXMJ3C.js → chunk-KF3WIC2Y.js} +2 -2
  309. package/build/modern/{chunk-M4NNRVTU.js → chunk-KHU3YTLM.js} +2 -2
  310. package/build/modern/{chunk-OVYHM5DH.js → chunk-KUF4UUC7.js} +2 -2
  311. package/build/modern/{chunk-YUEVV2DE.js → chunk-L4CKWLXL.js} +2 -2
  312. package/build/modern/{chunk-VIKVLJGG.js → chunk-LCURHO24.js} +3 -2
  313. package/build/modern/{chunk-VIKVLJGG.js.map → chunk-LCURHO24.js.map} +1 -1
  314. package/build/modern/{chunk-BW64QBCK.js → chunk-LMEGBPKK.js} +2 -2
  315. package/build/modern/{chunk-WGSUBJNI.js → chunk-LNDQW46A.js} +2 -2
  316. package/build/modern/{chunk-AZ5LB6IS.js → chunk-LVA6QLLM.js} +2 -2
  317. package/build/modern/{chunk-YTKY3AHF.js → chunk-MPVUVQCJ.js} +2 -2
  318. package/build/modern/{chunk-2Q4KTP6D.js → chunk-NC7AHNAS.js} +7 -7
  319. package/build/modern/{chunk-2Q4KTP6D.js.map → chunk-NC7AHNAS.js.map} +1 -1
  320. package/build/modern/{chunk-6TIG456O.js → chunk-NLZGGXMB.js} +2 -2
  321. package/build/modern/{chunk-MXW63O5N.js → chunk-OG74JDYL.js} +2 -2
  322. package/build/modern/{chunk-SFAJKI45.js → chunk-OSUFAZAK.js} +2 -2
  323. package/build/modern/{chunk-P6WEDKIB.js → chunk-P3J5P524.js} +2 -2
  324. package/build/modern/{chunk-2T2S226G.js → chunk-PGINYK2P.js} +2 -2
  325. package/build/modern/{chunk-ZO3GSLWZ.js → chunk-PI7MKQ62.js} +2 -2
  326. package/build/modern/{chunk-CMQZN2GZ.js → chunk-Q3NDU44T.js} +2 -2
  327. package/build/modern/{chunk-MG2YW4IP.js → chunk-Q6FTLT7K.js} +2 -2
  328. package/build/modern/{chunk-DC3NTCCW.js → chunk-QHPJ2C76.js} +2 -2
  329. package/build/modern/{chunk-U6ECBUYN.js → chunk-QV5JHBHO.js} +2 -2
  330. package/build/modern/{chunk-RFANIL5H.js → chunk-RCXKKQQA.js} +2 -2
  331. package/build/modern/{chunk-FMNYWD5T.js → chunk-RKKI3J6R.js} +2 -2
  332. package/build/modern/{chunk-OVDJPTML.js → chunk-RMLBOGDE.js} +3 -3
  333. package/build/modern/{chunk-LW62VSVZ.js → chunk-ROWT3E5K.js} +2 -2
  334. package/build/modern/{chunk-3Z4TSR6V.js → chunk-S7HDNFJJ.js} +2 -2
  335. package/build/modern/{chunk-KLZPY4YX.js → chunk-T3U6K34Y.js} +2 -2
  336. package/build/modern/{chunk-TF2DXEUF.js → chunk-TIKG6U4Y.js} +2 -2
  337. package/build/modern/{chunk-GIIPOOSM.js → chunk-TJXWSSHO.js} +2 -2
  338. package/build/modern/{chunk-BOATN5PB.js → chunk-U2ZT7UDW.js} +2 -2
  339. package/build/modern/{chunk-SQIB5EOA.js → chunk-UHS2TNFC.js} +2 -2
  340. package/build/modern/{chunk-THMNM4CZ.js → chunk-UZHBWTSE.js} +2 -2
  341. package/build/modern/{chunk-2MU6WE52.js → chunk-VB7T2YYD.js} +3 -3
  342. package/build/modern/{chunk-OFACU2SY.js → chunk-VQIBX475.js} +2 -2
  343. package/build/modern/{chunk-Y67NIX2N.js → chunk-W7WPVM34.js} +3 -3
  344. package/build/modern/{chunk-D47GTCQZ.js → chunk-WC6SOU2F.js} +2 -2
  345. package/build/modern/{chunk-CIIFJ2SA.js → chunk-WK7TUQIS.js} +2 -2
  346. package/build/modern/{chunk-JSK6OD6J.js → chunk-X34MYQKI.js} +2 -2
  347. package/build/modern/{chunk-UXU2CVPI.js → chunk-X6KB5LWU.js} +2 -2
  348. package/build/modern/{chunk-RGLJDMIO.js → chunk-X6WOC4RF.js} +3 -3
  349. package/build/modern/{chunk-AJ5TWPXM.js → chunk-XB4HMXOQ.js} +3 -3
  350. package/build/modern/{chunk-CLGDJ4GM.js → chunk-XMFTL6KG.js} +3 -3
  351. package/build/modern/{chunk-YQNOAJM7.js → chunk-XZ2FNMMC.js} +2 -2
  352. package/build/modern/{chunk-BK5BIPCG.js → chunk-Y7UXAFII.js} +2 -2
  353. package/build/modern/{chunk-KM3G4YFF.js → chunk-YAZIBTA2.js} +2 -2
  354. package/build/modern/{chunk-7WX2RQT6.js → chunk-YMFUEQ2A.js} +3 -3
  355. package/build/modern/{chunk-ZZSHEW4N.js → chunk-ZFEGJR5E.js} +2 -2
  356. package/build/modern/{chunk-WO6MF3XM.js → chunk-ZGJDFQN2.js} +2 -2
  357. package/build/modern/{chunk-QM4DC6QF.js → chunk-ZUC3X6GQ.js} +2 -2
  358. package/build/modern/components/accordion/index.js +7 -7
  359. package/build/modern/components/accordion/item-group.js +7 -7
  360. package/build/modern/components/accordion/item-indicator.js +6 -6
  361. package/build/modern/components/accordion/parts.js +5 -5
  362. package/build/modern/components/accordion/primitives.js +4 -4
  363. package/build/modern/components/admonition/admonition.js +10 -10
  364. package/build/modern/components/admonition/index.js +10 -10
  365. package/build/modern/components/admonition/match-avatar.js +7 -7
  366. package/build/modern/components/admonition/parts.js +5 -5
  367. package/build/modern/components/admonition/primitives.js +4 -4
  368. package/build/modern/components/avatar/avatar.js +6 -6
  369. package/build/modern/components/avatar/index.js +6 -6
  370. package/build/modern/components/avatar/parts.js +5 -5
  371. package/build/modern/components/avatar/primitives.js +4 -4
  372. package/build/modern/components/button/button.js +5 -5
  373. package/build/modern/components/button/index.js +6 -6
  374. package/build/modern/components/button/parts.js +6 -6
  375. package/build/modern/components/button/primitives.js +4 -4
  376. package/build/modern/components/checkbox/checkbox-icon.js +6 -6
  377. package/build/modern/components/checkbox/checkbox.js +7 -7
  378. package/build/modern/components/checkbox/index.js +7 -7
  379. package/build/modern/components/checkbox/parts.js +5 -5
  380. package/build/modern/components/checkbox/primitives.js +4 -4
  381. package/build/modern/components/circular-progress/circular-progress.js +5 -5
  382. package/build/modern/components/circular-progress/index.js +5 -5
  383. package/build/modern/components/circular-progress/primitives.js +4 -4
  384. package/build/modern/components/combobox/combobox.js +6 -6
  385. package/build/modern/components/combobox/index.js +10 -10
  386. package/build/modern/components/combobox/item-group.js +6 -6
  387. package/build/modern/components/combobox/item.js +6 -6
  388. package/build/modern/components/combobox/parts.js +5 -5
  389. package/build/modern/components/combobox/primitives.js +4 -4
  390. package/build/modern/components/combobox/use-stateful-collection.js +5 -5
  391. package/build/modern/components/cta-dialog/index.js +16 -16
  392. package/build/modern/components/cta-dialog/provider.js +16 -16
  393. package/build/modern/components/cta-dialog/trigger-item.js +6 -6
  394. package/build/modern/components/date-picker/calendar.js +15 -15
  395. package/build/modern/components/date-picker/content.js +6 -6
  396. package/build/modern/components/date-picker/date-picker.js +6 -6
  397. package/build/modern/components/date-picker/day-view.js +11 -11
  398. package/build/modern/components/date-picker/index.js +19 -19
  399. package/build/modern/components/date-picker/input.js +9 -9
  400. package/build/modern/components/date-picker/month-view.js +11 -11
  401. package/build/modern/components/date-picker/parts.js +5 -5
  402. package/build/modern/components/date-picker/primitives.js +4 -4
  403. package/build/modern/components/date-picker/range-input.js +9 -9
  404. package/build/modern/components/date-picker/trigger.js +8 -8
  405. package/build/modern/components/date-picker/view-control-group.js +10 -10
  406. package/build/modern/components/date-picker/year-view.js +11 -11
  407. package/build/modern/components/deprecated/Label.js +9 -9
  408. package/build/modern/components/dialog/close-icon-trigger.js +7 -7
  409. package/build/modern/components/dialog/dialog.js +5 -5
  410. package/build/modern/components/dialog/index.js +9 -9
  411. package/build/modern/components/dialog/parts.js +5 -5
  412. package/build/modern/components/dialog/primitives.js +4 -4
  413. package/build/modern/components/field/field.js +7 -7
  414. package/build/modern/components/field/helper-text.js +6 -6
  415. package/build/modern/components/field/index.js +8 -8
  416. package/build/modern/components/field/input.js +5 -5
  417. package/build/modern/components/field/parts.js +6 -6
  418. package/build/modern/components/field/primitives.js +5 -5
  419. package/build/modern/components/field/status-indicator.js +1 -1
  420. package/build/modern/components/fieldset/fieldset.js +6 -6
  421. package/build/modern/components/fieldset/index.js +6 -6
  422. package/build/modern/components/fieldset/parts.js +5 -5
  423. package/build/modern/components/fieldset/primitives.js +4 -4
  424. package/build/modern/components/file-upload/file-status.js +16 -16
  425. package/build/modern/components/file-upload/file-uploader.js +7 -7
  426. package/build/modern/components/file-upload/index.js +17 -17
  427. package/build/modern/components/icon-button/button.js +5 -5
  428. package/build/modern/components/icon-button/index.js +5 -5
  429. package/build/modern/components/icon-button/primitives.js +4 -4
  430. package/build/modern/components/menu/index.js +5 -5
  431. package/build/modern/components/menu/menu.js +5 -5
  432. package/build/modern/components/menu/primitives.js +4 -4
  433. package/build/modern/components/notifications/center.js +9 -9
  434. package/build/modern/components/notifications/close-trigger.js +6 -6
  435. package/build/modern/components/notifications/index.js +9 -9
  436. package/build/modern/components/notifications/parts.js +5 -5
  437. package/build/modern/components/notifications/primitives.js +4 -4
  438. package/build/modern/components/progress/index.js +5 -5
  439. package/build/modern/components/progress/primitives.js +4 -4
  440. package/build/modern/components/progress/progress-bar.js +5 -5
  441. package/build/modern/components/radio/index.js +6 -6
  442. package/build/modern/components/radio/parts.js +5 -5
  443. package/build/modern/components/radio/primitives.js +4 -4
  444. package/build/modern/components/radio/radio.js +5 -5
  445. package/build/modern/components/rating/index.js +6 -6
  446. package/build/modern/components/rating/parts.js +5 -5
  447. package/build/modern/components/rating/primitives.js +4 -4
  448. package/build/modern/components/rating/rating.js +6 -6
  449. package/build/modern/components/select/index.js +8 -8
  450. package/build/modern/components/select/option-group.js +5 -5
  451. package/build/modern/components/select/option.js +6 -6
  452. package/build/modern/components/select/parts.js +5 -5
  453. package/build/modern/components/select/primitives.js +4 -4
  454. package/build/modern/components/select/select.js +6 -6
  455. package/build/modern/components/switch/index.js +6 -6
  456. package/build/modern/components/switch/parts.js +5 -5
  457. package/build/modern/components/switch/primitives.js +4 -4
  458. package/build/modern/components/switch/switch.js +6 -6
  459. package/build/modern/components/table/index.js +6 -6
  460. package/build/modern/components/table/parts.js +5 -5
  461. package/build/modern/components/table/primitives.js +4 -4
  462. package/build/modern/components/table/table.js +5 -5
  463. package/build/modern/components/tabs/index.js +6 -6
  464. package/build/modern/components/tabs/parts.js +5 -5
  465. package/build/modern/components/tabs/primitives.js +4 -4
  466. package/build/modern/components/tabs/tabs.js +6 -6
  467. package/build/modern/components/tag/index.js +6 -6
  468. package/build/modern/components/tag/tag.js +6 -6
  469. package/build/modern/components/theme/index.js +4 -4
  470. package/build/modern/components/theme/theme.js +4 -4
  471. package/build/modern/components/toggle/index.js +5 -5
  472. package/build/modern/components/toggle/parts.js +5 -5
  473. package/build/modern/components/toggle/primitives.js +4 -4
  474. package/build/modern/components/tooltip/index.js +6 -6
  475. package/build/modern/components/tooltip/parts.js +5 -5
  476. package/build/modern/components/tooltip/primitives.js +4 -4
  477. package/build/modern/components/tooltip/tooltip.js +6 -6
  478. package/build/modern/context/confirm-modal.js +15 -15
  479. package/build/modern/context/field.js +5 -5
  480. package/build/modern/context/prompt-modal.js +20 -20
  481. package/build/modern/index.js +97 -97
  482. package/build/modern/system/factory.js +2 -2
  483. package/build/modern/system/index.js +3 -3
  484. package/build/modern/system/primitive-factory.js +1 -1
  485. package/package.json +3 -3
  486. package/src/components/field/status-indicator.tsx +4 -1
  487. package/src/components/file-upload/file-status.tsx +1 -1
  488. package/src/system/primitive-factory.tsx +16 -6
  489. package/src/types.ts +10 -0
  490. package/build/modern/chunk-GZ6T3352.js.map +0 -1
  491. /package/build/modern/{chunk-4WSCG2CM.js.map → chunk-262PENBL.js.map} +0 -0
  492. /package/build/modern/{chunk-N2DZNGUS.js.map → chunk-27RTYRM7.js.map} +0 -0
  493. /package/build/modern/{chunk-UCP3GQOJ.js.map → chunk-2SBNSYYC.js.map} +0 -0
  494. /package/build/modern/{chunk-ZPMGW4U7.js.map → chunk-2UD72VLC.js.map} +0 -0
  495. /package/build/modern/{chunk-NPZJTTTS.js.map → chunk-2VVJATIW.js.map} +0 -0
  496. /package/build/modern/{chunk-4DJ6KC4K.js.map → chunk-46QXBKGK.js.map} +0 -0
  497. /package/build/modern/{chunk-KYYKBLP2.js.map → chunk-4ZQUC4DA.js.map} +0 -0
  498. /package/build/modern/{chunk-NH2RSI7N.js.map → chunk-5UZUXCMO.js.map} +0 -0
  499. /package/build/modern/{chunk-J3XTP6VP.js.map → chunk-5W6HMI2G.js.map} +0 -0
  500. /package/build/modern/{chunk-ZGPHSKEB.js.map → chunk-5WT5BM3V.js.map} +0 -0
  501. /package/build/modern/{chunk-HJ67FKQ6.js.map → chunk-6KGRHE3J.js.map} +0 -0
  502. /package/build/modern/{chunk-BDXVYV32.js.map → chunk-6KIXF4ES.js.map} +0 -0
  503. /package/build/modern/{chunk-IU5YJTKN.js.map → chunk-6P2JY52I.js.map} +0 -0
  504. /package/build/modern/{chunk-YI3P5QG4.js.map → chunk-6XO2RTIJ.js.map} +0 -0
  505. /package/build/modern/{chunk-S7ALRSVU.js.map → chunk-77QDH2Q5.js.map} +0 -0
  506. /package/build/modern/{chunk-VXG4AEMZ.js.map → chunk-7GT7UUCB.js.map} +0 -0
  507. /package/build/modern/{chunk-RXAHVNN2.js.map → chunk-7GVDVLCR.js.map} +0 -0
  508. /package/build/modern/{chunk-VIUQS3VG.js.map → chunk-7LNGA4BX.js.map} +0 -0
  509. /package/build/modern/{chunk-ALJYABJX.js.map → chunk-7MWSOSOY.js.map} +0 -0
  510. /package/build/modern/{chunk-COIQJKC3.js.map → chunk-A6NEZNGY.js.map} +0 -0
  511. /package/build/modern/{chunk-OMM4CPZU.js.map → chunk-ABMK5P66.js.map} +0 -0
  512. /package/build/modern/{chunk-YVYOOJ3X.js.map → chunk-ADOFKGU3.js.map} +0 -0
  513. /package/build/modern/{chunk-4Q62OI72.js.map → chunk-AHYFFHUW.js.map} +0 -0
  514. /package/build/modern/{chunk-GHM4I5BN.js.map → chunk-BFE2SHZO.js.map} +0 -0
  515. /package/build/modern/{chunk-L2G4XKLT.js.map → chunk-BGJIAA5F.js.map} +0 -0
  516. /package/build/modern/{chunk-2OWVBM5W.js.map → chunk-BGZTC53N.js.map} +0 -0
  517. /package/build/modern/{chunk-UKAVYSJ5.js.map → chunk-BS4V2YJV.js.map} +0 -0
  518. /package/build/modern/{chunk-VZXYGBU6.js.map → chunk-BT6FMOKM.js.map} +0 -0
  519. /package/build/modern/{chunk-IOK2RQK6.js.map → chunk-CBJ5A5BD.js.map} +0 -0
  520. /package/build/modern/{chunk-KSYZMMXN.js.map → chunk-CI7JYXUR.js.map} +0 -0
  521. /package/build/modern/{chunk-ACK44GEO.js.map → chunk-CKCGLHLS.js.map} +0 -0
  522. /package/build/modern/{chunk-A57LVJJF.js.map → chunk-CYK3ZJIX.js.map} +0 -0
  523. /package/build/modern/{chunk-6BNGJMNL.js.map → chunk-EMLKVTGD.js.map} +0 -0
  524. /package/build/modern/{chunk-RDFAC3XX.js.map → chunk-ETYXG2J2.js.map} +0 -0
  525. /package/build/modern/{chunk-WKAI4OK3.js.map → chunk-FIVEPZ5F.js.map} +0 -0
  526. /package/build/modern/{chunk-QOTRCNC7.js.map → chunk-FL3J7LTC.js.map} +0 -0
  527. /package/build/modern/{chunk-A655GBYQ.js.map → chunk-GBV7MIBU.js.map} +0 -0
  528. /package/build/modern/{chunk-JG5V3AK4.js.map → chunk-GLH23RDO.js.map} +0 -0
  529. /package/build/modern/{chunk-5XU3LUPC.js.map → chunk-H6ZGH4VM.js.map} +0 -0
  530. /package/build/modern/{chunk-YCVNE3CA.js.map → chunk-H7N6M7VO.js.map} +0 -0
  531. /package/build/modern/{chunk-2UFNNWLA.js.map → chunk-HJYVIRNA.js.map} +0 -0
  532. /package/build/modern/{chunk-BWZXR2WZ.js.map → chunk-HUKQPIDV.js.map} +0 -0
  533. /package/build/modern/{chunk-LRIYLZSL.js.map → chunk-IWJCQ4BM.js.map} +0 -0
  534. /package/build/modern/{chunk-SGFITMUF.js.map → chunk-IX5QZCM4.js.map} +0 -0
  535. /package/build/modern/{chunk-PQ5DEKSH.js.map → chunk-J37VR33H.js.map} +0 -0
  536. /package/build/modern/{chunk-UHXKG2ZP.js.map → chunk-JBAE2B2H.js.map} +0 -0
  537. /package/build/modern/{chunk-HPWLIE64.js.map → chunk-KDIDKP2L.js.map} +0 -0
  538. /package/build/modern/{chunk-YZFXHGMG.js.map → chunk-KELIM5A3.js.map} +0 -0
  539. /package/build/modern/{chunk-E4DXMJ3C.js.map → chunk-KF3WIC2Y.js.map} +0 -0
  540. /package/build/modern/{chunk-M4NNRVTU.js.map → chunk-KHU3YTLM.js.map} +0 -0
  541. /package/build/modern/{chunk-OVYHM5DH.js.map → chunk-KUF4UUC7.js.map} +0 -0
  542. /package/build/modern/{chunk-YUEVV2DE.js.map → chunk-L4CKWLXL.js.map} +0 -0
  543. /package/build/modern/{chunk-BW64QBCK.js.map → chunk-LMEGBPKK.js.map} +0 -0
  544. /package/build/modern/{chunk-WGSUBJNI.js.map → chunk-LNDQW46A.js.map} +0 -0
  545. /package/build/modern/{chunk-AZ5LB6IS.js.map → chunk-LVA6QLLM.js.map} +0 -0
  546. /package/build/modern/{chunk-YTKY3AHF.js.map → chunk-MPVUVQCJ.js.map} +0 -0
  547. /package/build/modern/{chunk-6TIG456O.js.map → chunk-NLZGGXMB.js.map} +0 -0
  548. /package/build/modern/{chunk-MXW63O5N.js.map → chunk-OG74JDYL.js.map} +0 -0
  549. /package/build/modern/{chunk-SFAJKI45.js.map → chunk-OSUFAZAK.js.map} +0 -0
  550. /package/build/modern/{chunk-P6WEDKIB.js.map → chunk-P3J5P524.js.map} +0 -0
  551. /package/build/modern/{chunk-2T2S226G.js.map → chunk-PGINYK2P.js.map} +0 -0
  552. /package/build/modern/{chunk-ZO3GSLWZ.js.map → chunk-PI7MKQ62.js.map} +0 -0
  553. /package/build/modern/{chunk-CMQZN2GZ.js.map → chunk-Q3NDU44T.js.map} +0 -0
  554. /package/build/modern/{chunk-MG2YW4IP.js.map → chunk-Q6FTLT7K.js.map} +0 -0
  555. /package/build/modern/{chunk-DC3NTCCW.js.map → chunk-QHPJ2C76.js.map} +0 -0
  556. /package/build/modern/{chunk-U6ECBUYN.js.map → chunk-QV5JHBHO.js.map} +0 -0
  557. /package/build/modern/{chunk-RFANIL5H.js.map → chunk-RCXKKQQA.js.map} +0 -0
  558. /package/build/modern/{chunk-FMNYWD5T.js.map → chunk-RKKI3J6R.js.map} +0 -0
  559. /package/build/modern/{chunk-OVDJPTML.js.map → chunk-RMLBOGDE.js.map} +0 -0
  560. /package/build/modern/{chunk-LW62VSVZ.js.map → chunk-ROWT3E5K.js.map} +0 -0
  561. /package/build/modern/{chunk-3Z4TSR6V.js.map → chunk-S7HDNFJJ.js.map} +0 -0
  562. /package/build/modern/{chunk-KLZPY4YX.js.map → chunk-T3U6K34Y.js.map} +0 -0
  563. /package/build/modern/{chunk-TF2DXEUF.js.map → chunk-TIKG6U4Y.js.map} +0 -0
  564. /package/build/modern/{chunk-GIIPOOSM.js.map → chunk-TJXWSSHO.js.map} +0 -0
  565. /package/build/modern/{chunk-BOATN5PB.js.map → chunk-U2ZT7UDW.js.map} +0 -0
  566. /package/build/modern/{chunk-SQIB5EOA.js.map → chunk-UHS2TNFC.js.map} +0 -0
  567. /package/build/modern/{chunk-THMNM4CZ.js.map → chunk-UZHBWTSE.js.map} +0 -0
  568. /package/build/modern/{chunk-2MU6WE52.js.map → chunk-VB7T2YYD.js.map} +0 -0
  569. /package/build/modern/{chunk-OFACU2SY.js.map → chunk-VQIBX475.js.map} +0 -0
  570. /package/build/modern/{chunk-Y67NIX2N.js.map → chunk-W7WPVM34.js.map} +0 -0
  571. /package/build/modern/{chunk-D47GTCQZ.js.map → chunk-WC6SOU2F.js.map} +0 -0
  572. /package/build/modern/{chunk-CIIFJ2SA.js.map → chunk-WK7TUQIS.js.map} +0 -0
  573. /package/build/modern/{chunk-JSK6OD6J.js.map → chunk-X34MYQKI.js.map} +0 -0
  574. /package/build/modern/{chunk-UXU2CVPI.js.map → chunk-X6KB5LWU.js.map} +0 -0
  575. /package/build/modern/{chunk-RGLJDMIO.js.map → chunk-X6WOC4RF.js.map} +0 -0
  576. /package/build/modern/{chunk-AJ5TWPXM.js.map → chunk-XB4HMXOQ.js.map} +0 -0
  577. /package/build/modern/{chunk-CLGDJ4GM.js.map → chunk-XMFTL6KG.js.map} +0 -0
  578. /package/build/modern/{chunk-YQNOAJM7.js.map → chunk-XZ2FNMMC.js.map} +0 -0
  579. /package/build/modern/{chunk-BK5BIPCG.js.map → chunk-Y7UXAFII.js.map} +0 -0
  580. /package/build/modern/{chunk-KM3G4YFF.js.map → chunk-YAZIBTA2.js.map} +0 -0
  581. /package/build/modern/{chunk-7WX2RQT6.js.map → chunk-YMFUEQ2A.js.map} +0 -0
  582. /package/build/modern/{chunk-ZZSHEW4N.js.map → chunk-ZFEGJR5E.js.map} +0 -0
  583. /package/build/modern/{chunk-WO6MF3XM.js.map → chunk-ZGJDFQN2.js.map} +0 -0
  584. /package/build/modern/{chunk-QM4DC6QF.js.map → chunk-ZUC3X6GQ.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/menu/index.ts","../../../../src/components/menu/primitives.ts","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/menu/menu.tsx"],"sourcesContent":["export * from './primitives'\nexport * from './menu'\n","import {\n Menu as ArkMenu,\n type MenuRootProps as ArkMenuRootProps,\n type MenuTriggerProps as ArkMenuTriggerProps,\n type MenuTriggerItemProps as ArkMenuTriggerItemProps,\n type MenuIndicatorProps as ArkMenuIndicatorProps,\n type MenuPositionerProps as ArkMenuPositionerProps,\n type MenuContentProps as ArkMenuContentProps,\n type MenuItemProps as ArkMenuItemProps,\n type MenuItemGroupProps as ArkMenuItemGroupProps,\n type MenuItemGroupLabelProps as ArkMenuItemGroupLabelProps,\n type MenuSeparatorProps as ArkMenuSeparatorProps,\n} from '@ark-ui/react'\nimport { menu } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the Menu component primitives.\n * @module @cerberus-design/react/components/menu/primitives\n */\n\nconst { withSlotRecipe, withNoRecipe } = createCerberusPrimitive(menu)\n\n// Root\n\nexport type MenuRootProps = CerberusPrimitiveProps<ArkMenuRootProps>\n// @ts-expect-error this is a workaround for the type mismatch\nexport const MenuRoot = withSlotRecipe<MenuRootProps>(ArkMenu.Root, 'root')\n\n// Trigger\n\nexport type MenuTriggerProps = CerberusPrimitiveProps<ArkMenuTriggerProps>\nexport const MenuTriggerEl = withNoRecipe<MenuTriggerProps>(ArkMenu.Trigger)\n\n// TriggerItem\n\nexport type MenuTriggerItemProps =\n CerberusPrimitiveProps<ArkMenuTriggerItemProps>\nexport const MenuTriggerItem = withNoRecipe<MenuTriggerItemProps>(\n ArkMenu.TriggerItem,\n)\n\n// Indicator\n\nexport type MenuIndicatorProps = CerberusPrimitiveProps<ArkMenuIndicatorProps>\nexport const MenuIndicator = withNoRecipe<MenuIndicatorProps>(ArkMenu.Indicator)\n\n// Positioner\n\nexport type MenuPositionerProps = CerberusPrimitiveProps<ArkMenuPositionerProps>\nexport const MenuPositioner = withNoRecipe<MenuPositionerProps>(\n ArkMenu.Positioner,\n)\n\n// Content\n\nexport type MenuContentProps = CerberusPrimitiveProps<ArkMenuContentProps>\nexport const MenuContentEl = withSlotRecipe<MenuContentProps>(\n ArkMenu.Content,\n 'content',\n)\n\n// Item\n\nexport type MenuItemProps = CerberusPrimitiveProps<ArkMenuItemProps>\nexport const MenuItemEl = withSlotRecipe<MenuItemProps>(ArkMenu.Item, 'item')\n\n// ItemGroup\n\nexport type MenuItemGroupProps = CerberusPrimitiveProps<ArkMenuItemGroupProps>\nexport const MenuItemGroupEl = withNoRecipe<MenuItemGroupProps>(\n ArkMenu.ItemGroup,\n)\n\n// ItemGroupLabel\n\nexport type MenuItemGroupLabelProps =\n CerberusPrimitiveProps<ArkMenuItemGroupLabelProps>\nexport const MenuItemGroupLabelEl = withSlotRecipe<MenuItemGroupLabelProps>(\n ArkMenu.ItemGroupLabel,\n 'itemGroupLabel',\n)\n\n// Separator\n\nexport type MenuSeparatorProps = CerberusPrimitiveProps<ArkMenuSeparatorProps>\nexport const MenuSeparatorEl = withSlotRecipe<MenuSeparatorProps>(\n ArkMenu.Separator,\n 'separator',\n)\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 {\n MenuContentEl,\n MenuItemEl,\n MenuItemGroupEl,\n MenuItemGroupLabelEl,\n MenuPositioner,\n MenuRoot,\n MenuSeparatorEl,\n MenuTriggerEl,\n type MenuContentProps,\n type MenuTriggerProps,\n} from './primitives'\n\n/**\n * This module contains the Menu named abstractions component.\n * @module @cerberus-design/react/components/menu\n */\n\n/**\n * The root Menu component which controls the menu.\n * @definition [Cerberus docs](https://cerberus.digitalu.design/react/menu/dev)\n *\n * @example\n * ```tsx\n * <Menu>\n * <MenuTrigger>Trigger</MenuTrigger>\n * </Menu>\n */\nexport const Menu = MenuRoot\n\n/**\n * The MenuTrigger component opens/closes the Menu.\n * @definition [Cerberus docs](https://cerberus.digitalu.design/react/menu/dev)\n * @example\n * ```tsx\n * <Menu>\n * <MenuTrigger>\n * <Button>Trigger</Button>\n * </MenuTrigger>\n * </Menu>\n */\nexport function MenuTrigger(props: MenuTriggerProps) {\n return <MenuTriggerEl {...props} asChild />\n}\n\n/**\n * The MenuContent component is the container for the menu items.\n * @definition [Cerberus docs](https://cerberus.digitalu.design/react/menu/dev)\n * @example\n * ```tsx\n * <Menu>\n * <MenuTrigger>\n * <Button>Trigger</Button>\n * </MenuTrigger>\n * <MenuContent>\n * <MenuItem value=\"item_1\">Item 1</MenuItem>\n * <MenuItem value=\"item_2\">Item 2</MenuItem>\n * </MenuContent>\n * </Menu>\n */\nexport function MenuContent(props: MenuContentProps) {\n return (\n <MenuPositioner>\n <MenuContentEl {...props} />\n </MenuPositioner>\n )\n}\n\n/**\n * The MenuItem component is a single item in the menu.\n * @definition [Cerberus docs](https://cerberus.digitalu.design/react/menu/dev)\n * @example\n * ```tsx\n * <Menu>\n * <MenuTrigger>\n * <Button>Trigger</Button>\n * </MenuTrigger>\n * <MenuContent>\n * <MenuItem value=\"item_1\">Item 1</MenuItem>\n * <MenuItem value=\"item_2\">Item 2</MenuItem>\n * </MenuContent>\n * </Menu>\n */\nexport const MenuItem = MenuItemEl\n\n/**\n * The MenuItemGroup component is a group of menu items.\n * @definition [Cerberus docs](https://cerberus.digitalu.design/react/menu/dev)\n * @example\n * ```tsx\n * <Menu>\n * <MenuTrigger>\n * <Button>Trigger</Button>\n * </MenuTrigger>\n * <MenuContent>\n * <MenuItemGroup>\n * <MenuItem value=\"item_1\">Item 1</MenuItem>\n * <MenuItem value=\"item_2\">Item 2</MenuItem>\n * </MenuItemGroup>\n * </MenuContent>\n * </Menu>\n */\nexport const MenuItemGroup = MenuItemGroupEl\n\n/**\n * The MenuItemGroupLabel component is the label for a group of menu items.\n * @definition [Cerberus docs](https://cerberus.digitalu.design/react/menu/dev)\n * @example\n * ```tsx\n * <Menu>\n * <MenuTrigger>\n * <Button>Trigger</Button>\n * </MenuTrigger>\n * <MenuContent>\n * <MenuItemGroup>\n * <MenuItemGroupLabel>Group Label</MenuItemGroupLabel>\n * <MenuItem value=\"item_1\">Item 1</MenuItem>\n * <MenuItem value=\"item_2\">Item 2</MenuItem>\n * </MenuItemGroup>\n * </MenuContent>\n * </Menu>\n */\nexport const MenuGroupLabel = MenuItemGroupLabelEl\n\n/**\n * The MenuSeparator component is a visual divider between menu items.\n * @definition [Cerberus docs](https://cerberus.digitalu.design/react/menu/dev)\n * @example\n * ```tsx\n * <Menu>\n * <MenuTrigger>\n * <Button>Trigger</Button>\n * </MenuTrigger>\n * <MenuContent>\n * <MenuItemGroup>\n * <MenuGroupLabel>Group Label</MenuGroupLabel>\n * <MenuSeparator />\n * <MenuItem value=\"item_1\">Item 1</MenuItem>\n * <MenuItem value=\"item_2\">Item 2</MenuItem>\n * </MenuItemGroup>\n * </MenuContent>\n * </Menu>\n */\nexport const MenuSeparator = MenuSeparatorEl\n"],"mappings":"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","names":["ArkMenu","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../../../../src/components/menu/index.ts","../../../../src/components/menu/primitives.ts","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/menu/menu.tsx"],"sourcesContent":["export * from './primitives'\nexport * from './menu'\n","import {\n Menu as ArkMenu,\n type MenuRootProps as ArkMenuRootProps,\n type MenuTriggerProps as ArkMenuTriggerProps,\n type MenuTriggerItemProps as ArkMenuTriggerItemProps,\n type MenuIndicatorProps as ArkMenuIndicatorProps,\n type MenuPositionerProps as ArkMenuPositionerProps,\n type MenuContentProps as ArkMenuContentProps,\n type MenuItemProps as ArkMenuItemProps,\n type MenuItemGroupProps as ArkMenuItemGroupProps,\n type MenuItemGroupLabelProps as ArkMenuItemGroupLabelProps,\n type MenuSeparatorProps as ArkMenuSeparatorProps,\n} from '@ark-ui/react'\nimport { menu } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the Menu component primitives.\n * @module @cerberus-design/react/components/menu/primitives\n */\n\nconst { withSlotRecipe, withNoRecipe } = createCerberusPrimitive(menu)\n\n// Root\n\nexport type MenuRootProps = CerberusPrimitiveProps<ArkMenuRootProps>\n// @ts-expect-error this is a workaround for the type mismatch\nexport const MenuRoot = withSlotRecipe<MenuRootProps>(ArkMenu.Root, 'root')\n\n// Trigger\n\nexport type MenuTriggerProps = CerberusPrimitiveProps<ArkMenuTriggerProps>\nexport const MenuTriggerEl = withNoRecipe<MenuTriggerProps>(ArkMenu.Trigger)\n\n// TriggerItem\n\nexport type MenuTriggerItemProps =\n CerberusPrimitiveProps<ArkMenuTriggerItemProps>\nexport const MenuTriggerItem = withNoRecipe<MenuTriggerItemProps>(\n ArkMenu.TriggerItem,\n)\n\n// Indicator\n\nexport type MenuIndicatorProps = CerberusPrimitiveProps<ArkMenuIndicatorProps>\nexport const MenuIndicator = withNoRecipe<MenuIndicatorProps>(ArkMenu.Indicator)\n\n// Positioner\n\nexport type MenuPositionerProps = CerberusPrimitiveProps<ArkMenuPositionerProps>\nexport const MenuPositioner = withNoRecipe<MenuPositionerProps>(\n ArkMenu.Positioner,\n)\n\n// Content\n\nexport type MenuContentProps = CerberusPrimitiveProps<ArkMenuContentProps>\nexport const MenuContentEl = withSlotRecipe<MenuContentProps>(\n ArkMenu.Content,\n 'content',\n)\n\n// Item\n\nexport type MenuItemProps = CerberusPrimitiveProps<ArkMenuItemProps>\nexport const MenuItemEl = withSlotRecipe<MenuItemProps>(ArkMenu.Item, 'item')\n\n// ItemGroup\n\nexport type MenuItemGroupProps = CerberusPrimitiveProps<ArkMenuItemGroupProps>\nexport const MenuItemGroupEl = withNoRecipe<MenuItemGroupProps>(\n ArkMenu.ItemGroup,\n)\n\n// ItemGroupLabel\n\nexport type MenuItemGroupLabelProps =\n CerberusPrimitiveProps<ArkMenuItemGroupLabelProps>\nexport const MenuItemGroupLabelEl = withSlotRecipe<MenuItemGroupLabelProps>(\n ArkMenu.ItemGroupLabel,\n 'itemGroupLabel',\n)\n\n// Separator\n\nexport type MenuSeparatorProps = CerberusPrimitiveProps<ArkMenuSeparatorProps>\nexport const MenuSeparatorEl = withSlotRecipe<MenuSeparatorProps>(\n ArkMenu.Separator,\n 'separator',\n)\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 {\n MenuContentEl,\n MenuItemEl,\n MenuItemGroupEl,\n MenuItemGroupLabelEl,\n MenuPositioner,\n MenuRoot,\n MenuSeparatorEl,\n MenuTriggerEl,\n type MenuContentProps,\n type MenuTriggerProps,\n} from './primitives'\n\n/**\n * This module contains the Menu named abstractions component.\n * @module @cerberus-design/react/components/menu\n */\n\n/**\n * The root Menu component which controls the menu.\n * @definition [Cerberus docs](https://cerberus.digitalu.design/react/menu/dev)\n *\n * @example\n * ```tsx\n * <Menu>\n * <MenuTrigger>Trigger</MenuTrigger>\n * </Menu>\n */\nexport const Menu = MenuRoot\n\n/**\n * The MenuTrigger component opens/closes the Menu.\n * @definition [Cerberus docs](https://cerberus.digitalu.design/react/menu/dev)\n * @example\n * ```tsx\n * <Menu>\n * <MenuTrigger>\n * <Button>Trigger</Button>\n * </MenuTrigger>\n * </Menu>\n */\nexport function MenuTrigger(props: MenuTriggerProps) {\n return <MenuTriggerEl {...props} asChild />\n}\n\n/**\n * The MenuContent component is the container for the menu items.\n * @definition [Cerberus docs](https://cerberus.digitalu.design/react/menu/dev)\n * @example\n * ```tsx\n * <Menu>\n * <MenuTrigger>\n * <Button>Trigger</Button>\n * </MenuTrigger>\n * <MenuContent>\n * <MenuItem value=\"item_1\">Item 1</MenuItem>\n * <MenuItem value=\"item_2\">Item 2</MenuItem>\n * </MenuContent>\n * </Menu>\n */\nexport function MenuContent(props: MenuContentProps) {\n return (\n <MenuPositioner>\n <MenuContentEl {...props} />\n </MenuPositioner>\n )\n}\n\n/**\n * The MenuItem component is a single item in the menu.\n * @definition [Cerberus docs](https://cerberus.digitalu.design/react/menu/dev)\n * @example\n * ```tsx\n * <Menu>\n * <MenuTrigger>\n * <Button>Trigger</Button>\n * </MenuTrigger>\n * <MenuContent>\n * <MenuItem value=\"item_1\">Item 1</MenuItem>\n * <MenuItem value=\"item_2\">Item 2</MenuItem>\n * </MenuContent>\n * </Menu>\n */\nexport const MenuItem = MenuItemEl\n\n/**\n * The MenuItemGroup component is a group of menu items.\n * @definition [Cerberus docs](https://cerberus.digitalu.design/react/menu/dev)\n * @example\n * ```tsx\n * <Menu>\n * <MenuTrigger>\n * <Button>Trigger</Button>\n * </MenuTrigger>\n * <MenuContent>\n * <MenuItemGroup>\n * <MenuItem value=\"item_1\">Item 1</MenuItem>\n * <MenuItem value=\"item_2\">Item 2</MenuItem>\n * </MenuItemGroup>\n * </MenuContent>\n * </Menu>\n */\nexport const MenuItemGroup = MenuItemGroupEl\n\n/**\n * The MenuItemGroupLabel component is the label for a group of menu items.\n * @definition [Cerberus docs](https://cerberus.digitalu.design/react/menu/dev)\n * @example\n * ```tsx\n * <Menu>\n * <MenuTrigger>\n * <Button>Trigger</Button>\n * </MenuTrigger>\n * <MenuContent>\n * <MenuItemGroup>\n * <MenuItemGroupLabel>Group Label</MenuItemGroupLabel>\n * <MenuItem value=\"item_1\">Item 1</MenuItem>\n * <MenuItem value=\"item_2\">Item 2</MenuItem>\n * </MenuItemGroup>\n * </MenuContent>\n * </Menu>\n */\nexport const MenuGroupLabel = MenuItemGroupLabelEl\n\n/**\n * The MenuSeparator component is a visual divider between menu items.\n * @definition [Cerberus docs](https://cerberus.digitalu.design/react/menu/dev)\n * @example\n * ```tsx\n * <Menu>\n * <MenuTrigger>\n * <Button>Trigger</Button>\n * </MenuTrigger>\n * <MenuContent>\n * <MenuItemGroup>\n * <MenuGroupLabel>Group Label</MenuGroupLabel>\n * <MenuSeparator />\n * <MenuItem value=\"item_1\">Item 1</MenuItem>\n * <MenuItem value=\"item_2\">Item 2</MenuItem>\n * </MenuItemGroup>\n * </MenuContent>\n * </Menu>\n */\nexport const MenuSeparator = MenuSeparatorEl\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,mBAYO;AACP,qBAAqB;;;ACbrB,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;;;AFFA,IAAM,EAAE,gBAAgB,aAAa,IAAI,wBAAwB,mBAAI;AAM9D,IAAM,WAAW,eAA8B,aAAAA,KAAQ,MAAM,MAAM;AAKnE,IAAM,gBAAgB,aAA+B,aAAAA,KAAQ,OAAO;AAMpE,IAAM,kBAAkB;AAAA,EAC7B,aAAAA,KAAQ;AACV;AAKO,IAAM,gBAAgB,aAAiC,aAAAA,KAAQ,SAAS;AAKxE,IAAM,iBAAiB;AAAA,EAC5B,aAAAA,KAAQ;AACV;AAKO,IAAM,gBAAgB;AAAA,EAC3B,aAAAA,KAAQ;AAAA,EACR;AACF;AAKO,IAAM,aAAa,eAA8B,aAAAA,KAAQ,MAAM,MAAM;AAKrE,IAAM,kBAAkB;AAAA,EAC7B,aAAAA,KAAQ;AACV;AAMO,IAAM,uBAAuB;AAAA,EAClC,aAAAA,KAAQ;AAAA,EACR;AACF;AAKO,IAAM,kBAAkB;AAAA,EAC7B,aAAAA,KAAQ;AAAA,EACR;AACF;;;AGlDS,IAAAC,sBAAA;AAdF,IAAM,OAAO;AAab,SAAS,YAAY,OAAyB;AACnD,SAAO,6CAAC,iBAAe,GAAG,OAAO,SAAO,MAAC;AAC3C;AAiBO,SAAS,YAAY,OAAyB;AACnD,SACE,6CAAC,kBACC,uDAAC,iBAAe,GAAG,OAAO,GAC5B;AAEJ;AAiBO,IAAM,WAAW;AAmBjB,IAAM,gBAAgB;AAoBtB,IAAM,iBAAiB;AAqBvB,IAAM,gBAAgB;","names":["ArkMenu","import_jsx_runtime"]}
@@ -76,8 +76,12 @@ var CerberusPrimitive = class {
76
76
  const recipe = this.recipe;
77
77
  this.validateComponent(Component);
78
78
  const CerbComponent = (internalProps) => {
79
- const { css: customCss, className, ...nativeProps } = internalProps;
80
- const [variantOptions] = recipe.splitVariantProps(nativeProps);
79
+ const {
80
+ css: customCss,
81
+ className,
82
+ ...restOfInternalProps
83
+ } = internalProps;
84
+ const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
81
85
  const recipeStyles = recipe(variantOptions);
82
86
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
83
87
  Component,
@@ -108,8 +112,12 @@ var CerberusPrimitive = class {
108
112
  const recipe = this.recipe;
109
113
  this.validateComponent(Component);
110
114
  const CerbComponent = (internalProps) => {
111
- const { css: customCss, className, ...nativeProps } = internalProps;
112
- const [variantOptions] = recipe.splitVariantProps(nativeProps);
115
+ const {
116
+ css: customCss,
117
+ className,
118
+ ...restOfInternalProps
119
+ } = internalProps;
120
+ const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
113
121
  const styles = recipe(variantOptions);
114
122
  const slotStyles = styles[slot];
115
123
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/menu/menu.tsx","../../../../src/components/menu/primitives.ts","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts"],"sourcesContent":["import {\n MenuContentEl,\n MenuItemEl,\n MenuItemGroupEl,\n MenuItemGroupLabelEl,\n MenuPositioner,\n MenuRoot,\n MenuSeparatorEl,\n MenuTriggerEl,\n type MenuContentProps,\n type MenuTriggerProps,\n} from './primitives'\n\n/**\n * This module contains the Menu named abstractions component.\n * @module @cerberus-design/react/components/menu\n */\n\n/**\n * The root Menu component which controls the menu.\n * @definition [Cerberus docs](https://cerberus.digitalu.design/react/menu/dev)\n *\n * @example\n * ```tsx\n * <Menu>\n * <MenuTrigger>Trigger</MenuTrigger>\n * </Menu>\n */\nexport const Menu = MenuRoot\n\n/**\n * The MenuTrigger component opens/closes the Menu.\n * @definition [Cerberus docs](https://cerberus.digitalu.design/react/menu/dev)\n * @example\n * ```tsx\n * <Menu>\n * <MenuTrigger>\n * <Button>Trigger</Button>\n * </MenuTrigger>\n * </Menu>\n */\nexport function MenuTrigger(props: MenuTriggerProps) {\n return <MenuTriggerEl {...props} asChild />\n}\n\n/**\n * The MenuContent component is the container for the menu items.\n * @definition [Cerberus docs](https://cerberus.digitalu.design/react/menu/dev)\n * @example\n * ```tsx\n * <Menu>\n * <MenuTrigger>\n * <Button>Trigger</Button>\n * </MenuTrigger>\n * <MenuContent>\n * <MenuItem value=\"item_1\">Item 1</MenuItem>\n * <MenuItem value=\"item_2\">Item 2</MenuItem>\n * </MenuContent>\n * </Menu>\n */\nexport function MenuContent(props: MenuContentProps) {\n return (\n <MenuPositioner>\n <MenuContentEl {...props} />\n </MenuPositioner>\n )\n}\n\n/**\n * The MenuItem component is a single item in the menu.\n * @definition [Cerberus docs](https://cerberus.digitalu.design/react/menu/dev)\n * @example\n * ```tsx\n * <Menu>\n * <MenuTrigger>\n * <Button>Trigger</Button>\n * </MenuTrigger>\n * <MenuContent>\n * <MenuItem value=\"item_1\">Item 1</MenuItem>\n * <MenuItem value=\"item_2\">Item 2</MenuItem>\n * </MenuContent>\n * </Menu>\n */\nexport const MenuItem = MenuItemEl\n\n/**\n * The MenuItemGroup component is a group of menu items.\n * @definition [Cerberus docs](https://cerberus.digitalu.design/react/menu/dev)\n * @example\n * ```tsx\n * <Menu>\n * <MenuTrigger>\n * <Button>Trigger</Button>\n * </MenuTrigger>\n * <MenuContent>\n * <MenuItemGroup>\n * <MenuItem value=\"item_1\">Item 1</MenuItem>\n * <MenuItem value=\"item_2\">Item 2</MenuItem>\n * </MenuItemGroup>\n * </MenuContent>\n * </Menu>\n */\nexport const MenuItemGroup = MenuItemGroupEl\n\n/**\n * The MenuItemGroupLabel component is the label for a group of menu items.\n * @definition [Cerberus docs](https://cerberus.digitalu.design/react/menu/dev)\n * @example\n * ```tsx\n * <Menu>\n * <MenuTrigger>\n * <Button>Trigger</Button>\n * </MenuTrigger>\n * <MenuContent>\n * <MenuItemGroup>\n * <MenuItemGroupLabel>Group Label</MenuItemGroupLabel>\n * <MenuItem value=\"item_1\">Item 1</MenuItem>\n * <MenuItem value=\"item_2\">Item 2</MenuItem>\n * </MenuItemGroup>\n * </MenuContent>\n * </Menu>\n */\nexport const MenuGroupLabel = MenuItemGroupLabelEl\n\n/**\n * The MenuSeparator component is a visual divider between menu items.\n * @definition [Cerberus docs](https://cerberus.digitalu.design/react/menu/dev)\n * @example\n * ```tsx\n * <Menu>\n * <MenuTrigger>\n * <Button>Trigger</Button>\n * </MenuTrigger>\n * <MenuContent>\n * <MenuItemGroup>\n * <MenuGroupLabel>Group Label</MenuGroupLabel>\n * <MenuSeparator />\n * <MenuItem value=\"item_1\">Item 1</MenuItem>\n * <MenuItem value=\"item_2\">Item 2</MenuItem>\n * </MenuItemGroup>\n * </MenuContent>\n * </Menu>\n */\nexport const MenuSeparator = MenuSeparatorEl\n","import {\n Menu as ArkMenu,\n type MenuRootProps as ArkMenuRootProps,\n type MenuTriggerProps as ArkMenuTriggerProps,\n type MenuTriggerItemProps as ArkMenuTriggerItemProps,\n type MenuIndicatorProps as ArkMenuIndicatorProps,\n type MenuPositionerProps as ArkMenuPositionerProps,\n type MenuContentProps as ArkMenuContentProps,\n type MenuItemProps as ArkMenuItemProps,\n type MenuItemGroupProps as ArkMenuItemGroupProps,\n type MenuItemGroupLabelProps as ArkMenuItemGroupLabelProps,\n type MenuSeparatorProps as ArkMenuSeparatorProps,\n} from '@ark-ui/react'\nimport { menu } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the Menu component primitives.\n * @module @cerberus-design/react/components/menu/primitives\n */\n\nconst { withSlotRecipe, withNoRecipe } = createCerberusPrimitive(menu)\n\n// Root\n\nexport type MenuRootProps = CerberusPrimitiveProps<ArkMenuRootProps>\n// @ts-expect-error this is a workaround for the type mismatch\nexport const MenuRoot = withSlotRecipe<MenuRootProps>(ArkMenu.Root, 'root')\n\n// Trigger\n\nexport type MenuTriggerProps = CerberusPrimitiveProps<ArkMenuTriggerProps>\nexport const MenuTriggerEl = withNoRecipe<MenuTriggerProps>(ArkMenu.Trigger)\n\n// TriggerItem\n\nexport type MenuTriggerItemProps =\n CerberusPrimitiveProps<ArkMenuTriggerItemProps>\nexport const MenuTriggerItem = withNoRecipe<MenuTriggerItemProps>(\n ArkMenu.TriggerItem,\n)\n\n// Indicator\n\nexport type MenuIndicatorProps = CerberusPrimitiveProps<ArkMenuIndicatorProps>\nexport const MenuIndicator = withNoRecipe<MenuIndicatorProps>(ArkMenu.Indicator)\n\n// Positioner\n\nexport type MenuPositionerProps = CerberusPrimitiveProps<ArkMenuPositionerProps>\nexport const MenuPositioner = withNoRecipe<MenuPositionerProps>(\n ArkMenu.Positioner,\n)\n\n// Content\n\nexport type MenuContentProps = CerberusPrimitiveProps<ArkMenuContentProps>\nexport const MenuContentEl = withSlotRecipe<MenuContentProps>(\n ArkMenu.Content,\n 'content',\n)\n\n// Item\n\nexport type MenuItemProps = CerberusPrimitiveProps<ArkMenuItemProps>\nexport const MenuItemEl = withSlotRecipe<MenuItemProps>(ArkMenu.Item, 'item')\n\n// ItemGroup\n\nexport type MenuItemGroupProps = CerberusPrimitiveProps<ArkMenuItemGroupProps>\nexport const MenuItemGroupEl = withNoRecipe<MenuItemGroupProps>(\n ArkMenu.ItemGroup,\n)\n\n// ItemGroupLabel\n\nexport type MenuItemGroupLabelProps =\n CerberusPrimitiveProps<ArkMenuItemGroupLabelProps>\nexport const MenuItemGroupLabelEl = withSlotRecipe<MenuItemGroupLabelProps>(\n ArkMenu.ItemGroupLabel,\n 'itemGroupLabel',\n)\n\n// Separator\n\nexport type MenuSeparatorProps = CerberusPrimitiveProps<ArkMenuSeparatorProps>\nexport const MenuSeparatorEl = withSlotRecipe<MenuSeparatorProps>(\n ArkMenu.Separator,\n 'separator',\n)\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":["ArkMenu","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../../../../src/components/menu/menu.tsx","../../../../src/components/menu/primitives.ts","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts"],"sourcesContent":["import {\n MenuContentEl,\n MenuItemEl,\n MenuItemGroupEl,\n MenuItemGroupLabelEl,\n MenuPositioner,\n MenuRoot,\n MenuSeparatorEl,\n MenuTriggerEl,\n type MenuContentProps,\n type MenuTriggerProps,\n} from './primitives'\n\n/**\n * This module contains the Menu named abstractions component.\n * @module @cerberus-design/react/components/menu\n */\n\n/**\n * The root Menu component which controls the menu.\n * @definition [Cerberus docs](https://cerberus.digitalu.design/react/menu/dev)\n *\n * @example\n * ```tsx\n * <Menu>\n * <MenuTrigger>Trigger</MenuTrigger>\n * </Menu>\n */\nexport const Menu = MenuRoot\n\n/**\n * The MenuTrigger component opens/closes the Menu.\n * @definition [Cerberus docs](https://cerberus.digitalu.design/react/menu/dev)\n * @example\n * ```tsx\n * <Menu>\n * <MenuTrigger>\n * <Button>Trigger</Button>\n * </MenuTrigger>\n * </Menu>\n */\nexport function MenuTrigger(props: MenuTriggerProps) {\n return <MenuTriggerEl {...props} asChild />\n}\n\n/**\n * The MenuContent component is the container for the menu items.\n * @definition [Cerberus docs](https://cerberus.digitalu.design/react/menu/dev)\n * @example\n * ```tsx\n * <Menu>\n * <MenuTrigger>\n * <Button>Trigger</Button>\n * </MenuTrigger>\n * <MenuContent>\n * <MenuItem value=\"item_1\">Item 1</MenuItem>\n * <MenuItem value=\"item_2\">Item 2</MenuItem>\n * </MenuContent>\n * </Menu>\n */\nexport function MenuContent(props: MenuContentProps) {\n return (\n <MenuPositioner>\n <MenuContentEl {...props} />\n </MenuPositioner>\n )\n}\n\n/**\n * The MenuItem component is a single item in the menu.\n * @definition [Cerberus docs](https://cerberus.digitalu.design/react/menu/dev)\n * @example\n * ```tsx\n * <Menu>\n * <MenuTrigger>\n * <Button>Trigger</Button>\n * </MenuTrigger>\n * <MenuContent>\n * <MenuItem value=\"item_1\">Item 1</MenuItem>\n * <MenuItem value=\"item_2\">Item 2</MenuItem>\n * </MenuContent>\n * </Menu>\n */\nexport const MenuItem = MenuItemEl\n\n/**\n * The MenuItemGroup component is a group of menu items.\n * @definition [Cerberus docs](https://cerberus.digitalu.design/react/menu/dev)\n * @example\n * ```tsx\n * <Menu>\n * <MenuTrigger>\n * <Button>Trigger</Button>\n * </MenuTrigger>\n * <MenuContent>\n * <MenuItemGroup>\n * <MenuItem value=\"item_1\">Item 1</MenuItem>\n * <MenuItem value=\"item_2\">Item 2</MenuItem>\n * </MenuItemGroup>\n * </MenuContent>\n * </Menu>\n */\nexport const MenuItemGroup = MenuItemGroupEl\n\n/**\n * The MenuItemGroupLabel component is the label for a group of menu items.\n * @definition [Cerberus docs](https://cerberus.digitalu.design/react/menu/dev)\n * @example\n * ```tsx\n * <Menu>\n * <MenuTrigger>\n * <Button>Trigger</Button>\n * </MenuTrigger>\n * <MenuContent>\n * <MenuItemGroup>\n * <MenuItemGroupLabel>Group Label</MenuItemGroupLabel>\n * <MenuItem value=\"item_1\">Item 1</MenuItem>\n * <MenuItem value=\"item_2\">Item 2</MenuItem>\n * </MenuItemGroup>\n * </MenuContent>\n * </Menu>\n */\nexport const MenuGroupLabel = MenuItemGroupLabelEl\n\n/**\n * The MenuSeparator component is a visual divider between menu items.\n * @definition [Cerberus docs](https://cerberus.digitalu.design/react/menu/dev)\n * @example\n * ```tsx\n * <Menu>\n * <MenuTrigger>\n * <Button>Trigger</Button>\n * </MenuTrigger>\n * <MenuContent>\n * <MenuItemGroup>\n * <MenuGroupLabel>Group Label</MenuGroupLabel>\n * <MenuSeparator />\n * <MenuItem value=\"item_1\">Item 1</MenuItem>\n * <MenuItem value=\"item_2\">Item 2</MenuItem>\n * </MenuItemGroup>\n * </MenuContent>\n * </Menu>\n */\nexport const MenuSeparator = MenuSeparatorEl\n","import {\n Menu as ArkMenu,\n type MenuRootProps as ArkMenuRootProps,\n type MenuTriggerProps as ArkMenuTriggerProps,\n type MenuTriggerItemProps as ArkMenuTriggerItemProps,\n type MenuIndicatorProps as ArkMenuIndicatorProps,\n type MenuPositionerProps as ArkMenuPositionerProps,\n type MenuContentProps as ArkMenuContentProps,\n type MenuItemProps as ArkMenuItemProps,\n type MenuItemGroupProps as ArkMenuItemGroupProps,\n type MenuItemGroupLabelProps as ArkMenuItemGroupLabelProps,\n type MenuSeparatorProps as ArkMenuSeparatorProps,\n} from '@ark-ui/react'\nimport { menu } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the Menu component primitives.\n * @module @cerberus-design/react/components/menu/primitives\n */\n\nconst { withSlotRecipe, withNoRecipe } = createCerberusPrimitive(menu)\n\n// Root\n\nexport type MenuRootProps = CerberusPrimitiveProps<ArkMenuRootProps>\n// @ts-expect-error this is a workaround for the type mismatch\nexport const MenuRoot = withSlotRecipe<MenuRootProps>(ArkMenu.Root, 'root')\n\n// Trigger\n\nexport type MenuTriggerProps = CerberusPrimitiveProps<ArkMenuTriggerProps>\nexport const MenuTriggerEl = withNoRecipe<MenuTriggerProps>(ArkMenu.Trigger)\n\n// TriggerItem\n\nexport type MenuTriggerItemProps =\n CerberusPrimitiveProps<ArkMenuTriggerItemProps>\nexport const MenuTriggerItem = withNoRecipe<MenuTriggerItemProps>(\n ArkMenu.TriggerItem,\n)\n\n// Indicator\n\nexport type MenuIndicatorProps = CerberusPrimitiveProps<ArkMenuIndicatorProps>\nexport const MenuIndicator = withNoRecipe<MenuIndicatorProps>(ArkMenu.Indicator)\n\n// Positioner\n\nexport type MenuPositionerProps = CerberusPrimitiveProps<ArkMenuPositionerProps>\nexport const MenuPositioner = withNoRecipe<MenuPositionerProps>(\n ArkMenu.Positioner,\n)\n\n// Content\n\nexport type MenuContentProps = CerberusPrimitiveProps<ArkMenuContentProps>\nexport const MenuContentEl = withSlotRecipe<MenuContentProps>(\n ArkMenu.Content,\n 'content',\n)\n\n// Item\n\nexport type MenuItemProps = CerberusPrimitiveProps<ArkMenuItemProps>\nexport const MenuItemEl = withSlotRecipe<MenuItemProps>(ArkMenu.Item, 'item')\n\n// ItemGroup\n\nexport type MenuItemGroupProps = CerberusPrimitiveProps<ArkMenuItemGroupProps>\nexport const MenuItemGroupEl = withNoRecipe<MenuItemGroupProps>(\n ArkMenu.ItemGroup,\n)\n\n// ItemGroupLabel\n\nexport type MenuItemGroupLabelProps =\n CerberusPrimitiveProps<ArkMenuItemGroupLabelProps>\nexport const MenuItemGroupLabelEl = withSlotRecipe<MenuItemGroupLabelProps>(\n ArkMenu.ItemGroupLabel,\n 'itemGroupLabel',\n)\n\n// Separator\n\nexport type MenuSeparatorProps = CerberusPrimitiveProps<ArkMenuSeparatorProps>\nexport const MenuSeparatorEl = withSlotRecipe<MenuSeparatorProps>(\n ArkMenu.Separator,\n 'separator',\n)\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":"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","names":["ArkMenu","import_jsx_runtime"]}
@@ -77,8 +77,12 @@ var CerberusPrimitive = class {
77
77
  const recipe = this.recipe;
78
78
  this.validateComponent(Component);
79
79
  const CerbComponent = (internalProps) => {
80
- const { css: customCss, className, ...nativeProps } = internalProps;
81
- const [variantOptions] = recipe.splitVariantProps(nativeProps);
80
+ const {
81
+ css: customCss,
82
+ className,
83
+ ...restOfInternalProps
84
+ } = internalProps;
85
+ const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
82
86
  const recipeStyles = recipe(variantOptions);
83
87
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
84
88
  Component,
@@ -109,8 +113,12 @@ var CerberusPrimitive = class {
109
113
  const recipe = this.recipe;
110
114
  this.validateComponent(Component);
111
115
  const CerbComponent = (internalProps) => {
112
- const { css: customCss, className, ...nativeProps } = internalProps;
113
- const [variantOptions] = recipe.splitVariantProps(nativeProps);
116
+ const {
117
+ css: customCss,
118
+ className,
119
+ ...restOfInternalProps
120
+ } = internalProps;
121
+ const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
114
122
  const styles = recipe(variantOptions);
115
123
  const slotStyles = styles[slot];
116
124
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/menu/primitives.ts","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts"],"sourcesContent":["import {\n Menu as ArkMenu,\n type MenuRootProps as ArkMenuRootProps,\n type MenuTriggerProps as ArkMenuTriggerProps,\n type MenuTriggerItemProps as ArkMenuTriggerItemProps,\n type MenuIndicatorProps as ArkMenuIndicatorProps,\n type MenuPositionerProps as ArkMenuPositionerProps,\n type MenuContentProps as ArkMenuContentProps,\n type MenuItemProps as ArkMenuItemProps,\n type MenuItemGroupProps as ArkMenuItemGroupProps,\n type MenuItemGroupLabelProps as ArkMenuItemGroupLabelProps,\n type MenuSeparatorProps as ArkMenuSeparatorProps,\n} from '@ark-ui/react'\nimport { menu } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the Menu component primitives.\n * @module @cerberus-design/react/components/menu/primitives\n */\n\nconst { withSlotRecipe, withNoRecipe } = createCerberusPrimitive(menu)\n\n// Root\n\nexport type MenuRootProps = CerberusPrimitiveProps<ArkMenuRootProps>\n// @ts-expect-error this is a workaround for the type mismatch\nexport const MenuRoot = withSlotRecipe<MenuRootProps>(ArkMenu.Root, 'root')\n\n// Trigger\n\nexport type MenuTriggerProps = CerberusPrimitiveProps<ArkMenuTriggerProps>\nexport const MenuTriggerEl = withNoRecipe<MenuTriggerProps>(ArkMenu.Trigger)\n\n// TriggerItem\n\nexport type MenuTriggerItemProps =\n CerberusPrimitiveProps<ArkMenuTriggerItemProps>\nexport const MenuTriggerItem = withNoRecipe<MenuTriggerItemProps>(\n ArkMenu.TriggerItem,\n)\n\n// Indicator\n\nexport type MenuIndicatorProps = CerberusPrimitiveProps<ArkMenuIndicatorProps>\nexport const MenuIndicator = withNoRecipe<MenuIndicatorProps>(ArkMenu.Indicator)\n\n// Positioner\n\nexport type MenuPositionerProps = CerberusPrimitiveProps<ArkMenuPositionerProps>\nexport const MenuPositioner = withNoRecipe<MenuPositionerProps>(\n ArkMenu.Positioner,\n)\n\n// Content\n\nexport type MenuContentProps = CerberusPrimitiveProps<ArkMenuContentProps>\nexport const MenuContentEl = withSlotRecipe<MenuContentProps>(\n ArkMenu.Content,\n 'content',\n)\n\n// Item\n\nexport type MenuItemProps = CerberusPrimitiveProps<ArkMenuItemProps>\nexport const MenuItemEl = withSlotRecipe<MenuItemProps>(ArkMenu.Item, 'item')\n\n// ItemGroup\n\nexport type MenuItemGroupProps = CerberusPrimitiveProps<ArkMenuItemGroupProps>\nexport const MenuItemGroupEl = withNoRecipe<MenuItemGroupProps>(\n ArkMenu.ItemGroup,\n)\n\n// ItemGroupLabel\n\nexport type MenuItemGroupLabelProps =\n CerberusPrimitiveProps<ArkMenuItemGroupLabelProps>\nexport const MenuItemGroupLabelEl = withSlotRecipe<MenuItemGroupLabelProps>(\n ArkMenu.ItemGroupLabel,\n 'itemGroupLabel',\n)\n\n// Separator\n\nexport type MenuSeparatorProps = CerberusPrimitiveProps<ArkMenuSeparatorProps>\nexport const MenuSeparatorEl = withSlotRecipe<MenuSeparatorProps>(\n ArkMenu.Separator,\n 'separator',\n)\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":["ArkMenu"]}
1
+ {"version":3,"sources":["../../../../src/components/menu/primitives.ts","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts"],"sourcesContent":["import {\n Menu as ArkMenu,\n type MenuRootProps as ArkMenuRootProps,\n type MenuTriggerProps as ArkMenuTriggerProps,\n type MenuTriggerItemProps as ArkMenuTriggerItemProps,\n type MenuIndicatorProps as ArkMenuIndicatorProps,\n type MenuPositionerProps as ArkMenuPositionerProps,\n type MenuContentProps as ArkMenuContentProps,\n type MenuItemProps as ArkMenuItemProps,\n type MenuItemGroupProps as ArkMenuItemGroupProps,\n type MenuItemGroupLabelProps as ArkMenuItemGroupLabelProps,\n type MenuSeparatorProps as ArkMenuSeparatorProps,\n} from '@ark-ui/react'\nimport { menu } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the Menu component primitives.\n * @module @cerberus-design/react/components/menu/primitives\n */\n\nconst { withSlotRecipe, withNoRecipe } = createCerberusPrimitive(menu)\n\n// Root\n\nexport type MenuRootProps = CerberusPrimitiveProps<ArkMenuRootProps>\n// @ts-expect-error this is a workaround for the type mismatch\nexport const MenuRoot = withSlotRecipe<MenuRootProps>(ArkMenu.Root, 'root')\n\n// Trigger\n\nexport type MenuTriggerProps = CerberusPrimitiveProps<ArkMenuTriggerProps>\nexport const MenuTriggerEl = withNoRecipe<MenuTriggerProps>(ArkMenu.Trigger)\n\n// TriggerItem\n\nexport type MenuTriggerItemProps =\n CerberusPrimitiveProps<ArkMenuTriggerItemProps>\nexport const MenuTriggerItem = withNoRecipe<MenuTriggerItemProps>(\n ArkMenu.TriggerItem,\n)\n\n// Indicator\n\nexport type MenuIndicatorProps = CerberusPrimitiveProps<ArkMenuIndicatorProps>\nexport const MenuIndicator = withNoRecipe<MenuIndicatorProps>(ArkMenu.Indicator)\n\n// Positioner\n\nexport type MenuPositionerProps = CerberusPrimitiveProps<ArkMenuPositionerProps>\nexport const MenuPositioner = withNoRecipe<MenuPositionerProps>(\n ArkMenu.Positioner,\n)\n\n// Content\n\nexport type MenuContentProps = CerberusPrimitiveProps<ArkMenuContentProps>\nexport const MenuContentEl = withSlotRecipe<MenuContentProps>(\n ArkMenu.Content,\n 'content',\n)\n\n// Item\n\nexport type MenuItemProps = CerberusPrimitiveProps<ArkMenuItemProps>\nexport const MenuItemEl = withSlotRecipe<MenuItemProps>(ArkMenu.Item, 'item')\n\n// ItemGroup\n\nexport type MenuItemGroupProps = CerberusPrimitiveProps<ArkMenuItemGroupProps>\nexport const MenuItemGroupEl = withNoRecipe<MenuItemGroupProps>(\n ArkMenu.ItemGroup,\n)\n\n// ItemGroupLabel\n\nexport type MenuItemGroupLabelProps =\n CerberusPrimitiveProps<ArkMenuItemGroupLabelProps>\nexport const MenuItemGroupLabelEl = withSlotRecipe<MenuItemGroupLabelProps>(\n ArkMenu.ItemGroupLabel,\n 'itemGroupLabel',\n)\n\n// Separator\n\nexport type MenuSeparatorProps = CerberusPrimitiveProps<ArkMenuSeparatorProps>\nexport const MenuSeparatorEl = withSlotRecipe<MenuSeparatorProps>(\n ArkMenu.Separator,\n 'separator',\n)\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":"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","names":["ArkMenu"]}
@@ -169,8 +169,12 @@ var CerberusPrimitive = class {
169
169
  const recipe = this.recipe;
170
170
  this.validateComponent(Component);
171
171
  const CerbComponent = (internalProps) => {
172
- const { css: customCss, className, ...nativeProps } = internalProps;
173
- const [variantOptions] = recipe.splitVariantProps(nativeProps);
172
+ const {
173
+ css: customCss,
174
+ className,
175
+ ...restOfInternalProps
176
+ } = internalProps;
177
+ const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
174
178
  const recipeStyles = recipe(variantOptions);
175
179
  return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
176
180
  Component,
@@ -201,8 +205,12 @@ var CerberusPrimitive = class {
201
205
  const recipe = this.recipe;
202
206
  this.validateComponent(Component);
203
207
  const CerbComponent = (internalProps) => {
204
- const { css: customCss, className, ...nativeProps } = internalProps;
205
- const [variantOptions] = recipe.splitVariantProps(nativeProps);
208
+ const {
209
+ css: customCss,
210
+ className,
211
+ ...restOfInternalProps
212
+ } = internalProps;
213
+ const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
206
214
  const styles = recipe(variantOptions);
207
215
  const slotStyles = styles[slot];
208
216
  return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/notifications/center.tsx","../../../../src/components/button/button.tsx","../../../../src/components/show/show.tsx","../../../../src/components/spinner/spinner.tsx","../../../../src/components/button/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/notifications/primitives.tsx","../../../../src/components/notifications/parts.ts","../../../../src/components/notifications/match-icon.tsx","../../../../src/context/cerberus.tsx","../../../../src/components/notifications/close-trigger.tsx"],"sourcesContent":["'use client'\n\nimport {\n createToaster,\n Toaster,\n type CreateToasterReturn,\n} from '@ark-ui/react/toast'\nimport { Box } from 'styled-system/jsx'\nimport { Button, type ButtonProps } from '../button/button'\nimport { Show } from '../show/index'\nimport { NotificationParts } from './parts'\nimport type { NotifyOptions, UseNotificationCenterReturn } from './types'\nimport { MatchNotificationIcon } from './match-icon'\nimport { ToastCloseTrigger } from './close-trigger'\n\n/**\n * This module contains an abstraction of the Notification parts.\n * @module 'notification/center'\n */\n\nexport const toaster: CreateToasterReturn = createToaster({\n gap: 16,\n overlap: true,\n placement: 'top-end',\n})\n\n/**\n * The NotificationCenter component is an abstraction for the Notification\n * component. It manages displaying all the toasts in the center.\n */\nexport function NotificationCenter() {\n return (\n <Toaster toaster={toaster}>\n {(toast) => (\n <NotificationParts.Root key={toast.id}>\n <MatchNotificationIcon\n type={toast.type as NotifyOptions['palette']}\n />\n\n <Box flex=\"1\" paddingBlock=\"sm\">\n <NotificationParts.Heading>{toast.title}</NotificationParts.Heading>\n <NotificationParts.Description>\n {toast.description}\n </NotificationParts.Description>\n <Show when={toast.action}>\n <NotificationParts.ActionTrigger asChild>\n <Button\n palette={toast.type as ButtonProps['palette']}\n usage=\"ghost\"\n size=\"sm\"\n >\n {toast.action?.label}\n </Button>\n </NotificationParts.ActionTrigger>\n </Show>\n </Box>\n\n <ToastCloseTrigger />\n </NotificationParts.Root>\n )}\n </Toaster>\n )\n}\n\n/**\n * @deprecated use `toaster` instead\n */\nexport function useNotificationCenter(): UseNotificationCenterReturn {\n function notify(options: NotifyOptions) {\n toaster.create({\n title: options.heading,\n description: options.description,\n type: options.palette,\n action: options.action,\n })\n }\n return { ...toaster, notify }\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 { 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","/**\n * This module contains the Spinner component.\n * @module\n */\n\nexport interface SpinnerProps {\n /**\n * The size of the spinner\n */\n size?: number | string\n}\n\n/**\n * The Spinner component is used to display a loading indicator. Typically used\n * in buttons, modals, and other components that require a loading state.\n * @see https://cerberus.digitalu.design/react/loading-states/\n * @example\n * ```tsx\n * <Button>\n * <Show when={loading} fallback={<>Save</>}>\n * Saving\n * <Spinner size={24} />\n * </Show>\n * </Button>\n * ```\n */\nexport function Spinner(props: SpinnerProps) {\n return (\n <svg\n aria-busy=\"true\"\n data-scope=\"spinner\"\n data-part=\"root\"\n role=\"status\"\n xmlns=\"http://www.w3.org/2000/svg\"\n height={props.size}\n width={props.size}\n viewBox=\"0 0 24 24\"\n >\n <g\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n >\n <path\n strokeDasharray={16}\n strokeDashoffset={16}\n d=\"M12 3c4.97 0 9 4.03 9 9\"\n >\n <animate\n fill=\"freeze\"\n attributeName=\"stroke-dashoffset\"\n dur=\"0.15s\"\n values=\"16;0\"\n ></animate>\n <animateTransform\n attributeName=\"transform\"\n dur=\"0.75s\"\n repeatCount=\"indefinite\"\n type=\"rotate\"\n values=\"0 12 12;360 12 12\"\n ></animateTransform>\n </path>\n <path\n strokeDasharray={64}\n strokeDashoffset={64}\n strokeOpacity={0.3}\n d=\"M12 3c4.97 0 9 4.03 9 9c0 4.97 -4.03 9 -9 9c-4.97 0 -9 -4.03 -9 -9c0 -4.97 4.03 -9 9 -9Z\"\n >\n <animate\n fill=\"freeze\"\n attributeName=\"stroke-dashoffset\"\n dur=\"0.6s\"\n values=\"64;0\"\n ></animate>\n </path>\n </g>\n </svg>\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","import {\n Toast,\n Toaster,\n type ToastActionTriggerProps,\n type ToastCloseTriggerProps,\n type ToastDescriptionProps,\n type ToasterProps,\n type ToastRootProps,\n type ToastTitleProps,\n} from '@ark-ui/react/toast'\nimport { toast } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Notification component.\n * @module 'notification/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(toast)\n\n// Toaster\n\nexport type NotificationProviderProps = ToasterProps\nexport const NotificationProvider = Toaster\n\n// Root\n\nexport type NotificationRootProps = CerberusPrimitiveProps<ToastRootProps>\nexport const NotificationRoot = withSlotRecipe<NotificationRootProps>(\n Toast.Root,\n 'root',\n)\n\n// Heading\n\nexport type NotificationHeadingProps = CerberusPrimitiveProps<ToastTitleProps>\nexport const NotificationHeading = withSlotRecipe<NotificationHeadingProps>(\n Toast.Title,\n 'title',\n)\n\n// Description\n\nexport type NotificationDescriptionProps =\n CerberusPrimitiveProps<ToastDescriptionProps>\nexport const NotificationDescription =\n withSlotRecipe<NotificationDescriptionProps>(Toast.Description, 'description')\n\n// Close Trigger\n\nexport type NotificationCloseTriggerProps =\n CerberusPrimitiveProps<ToastCloseTriggerProps>\nexport const NotificationCloseTrigger =\n withSlotRecipe<NotificationCloseTriggerProps>(\n Toast.CloseTrigger,\n 'closeTrigger',\n )\n\n// Action Trigger\n\nexport type NotificationActionTriggerProps =\n CerberusPrimitiveProps<ToastActionTriggerProps>\nexport const NotificationActionTrigger =\n withSlotRecipe<NotificationActionTriggerProps>(\n Toast.ActionTrigger,\n 'actionTrigger',\n )\n","import type { ElementType } from 'react'\nimport {\n NotificationActionTrigger,\n NotificationCloseTrigger,\n NotificationDescription,\n NotificationHeading,\n NotificationRoot,\n} from './primitives'\n\n/**\n * This module contains the parts of the Notification parts.\n * @module 'notification/parts'\n */\n\ninterface NotificationPartsValue {\n /**\n * The context provider of the notification.\n */\n Root: ElementType\n /**\n * The title heading of the notification.\n */\n Heading: ElementType\n /**\n * The description of the notification.\n */\n Description: ElementType\n /**\n * The close button of the notification.\n */\n CloseTrigger: ElementType\n /**\n * The action trigger of the notification.\n */\n ActionTrigger: ElementType\n}\n\n/**\n * An Object containing the parts of the Notification components. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the NotificationParts object and\n * the entire family of components vs. only what you use.\n */\nexport const NotificationParts: NotificationPartsValue = {\n Root: NotificationRoot,\n Heading: NotificationHeading,\n Description: NotificationDescription,\n CloseTrigger: NotificationCloseTrigger,\n ActionTrigger: NotificationActionTrigger,\n}\n","'use client'\n\nimport { ark } from '@ark-ui/react/factory'\nimport { toast } from 'styled-system/recipes'\nimport { useCerberusContext } from '../../context/cerberus'\nimport { Spinner } from '../spinner/index'\nimport type { NotifyOptions } from './types'\n\n/**\n * This private module contains a component that returns the correct icon for a\n * notification based on the palette. If there is no result, it is assumed to\n * be a 'loading' type.\n * @module 'notification/match-icon'\n */\n\ninterface MatchNotificationIconProps {\n type?: NotifyOptions['palette']\n}\n\nexport function MatchNotificationIcon(props: MatchNotificationIconProps) {\n const { icons } = useCerberusContext()\n const type = props.type || 'info'\n const styles = toast()\n\n const key = `${type}Notification` as keyof typeof icons\n const Icon = icons[key] || ToastLoadingIcon\n\n return (\n <ark.div className={styles.icon}>\n <Icon />\n </ark.div>\n )\n}\n\nfunction ToastLoadingIcon() {\n return <Spinner size=\"1rem\" />\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","'use client'\n\nimport { useCerberusContext } from '../../context/cerberus'\nimport { NotificationParts } from './parts'\nimport type { NotificationCloseTriggerProps } from './primitives'\n\n/**\n * This private module contains a abstraction of the close trigger primitive.\n * @module 'notification/close-trigger'\n */\n\nexport function ToastCloseTrigger(props: NotificationCloseTriggerProps) {\n const { icons } = useCerberusContext()\n const { close: CloseIcon } = icons\n\n return (\n <NotificationParts.CloseTrigger {...props}>\n <CloseIcon />\n </NotificationParts.CloseTrigger>\n )\n}\n"],"mappings":"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","names":["import_toast","import_jsx","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_recipes","import_factory","import_recipes","import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","toast"]}
1
+ {"version":3,"sources":["../../../../src/components/notifications/center.tsx","../../../../src/components/button/button.tsx","../../../../src/components/show/show.tsx","../../../../src/components/spinner/spinner.tsx","../../../../src/components/button/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/notifications/primitives.tsx","../../../../src/components/notifications/parts.ts","../../../../src/components/notifications/match-icon.tsx","../../../../src/context/cerberus.tsx","../../../../src/components/notifications/close-trigger.tsx"],"sourcesContent":["'use client'\n\nimport {\n createToaster,\n Toaster,\n type CreateToasterReturn,\n} from '@ark-ui/react/toast'\nimport { Box } from 'styled-system/jsx'\nimport { Button, type ButtonProps } from '../button/button'\nimport { Show } from '../show/index'\nimport { NotificationParts } from './parts'\nimport type { NotifyOptions, UseNotificationCenterReturn } from './types'\nimport { MatchNotificationIcon } from './match-icon'\nimport { ToastCloseTrigger } from './close-trigger'\n\n/**\n * This module contains an abstraction of the Notification parts.\n * @module 'notification/center'\n */\n\nexport const toaster: CreateToasterReturn = createToaster({\n gap: 16,\n overlap: true,\n placement: 'top-end',\n})\n\n/**\n * The NotificationCenter component is an abstraction for the Notification\n * component. It manages displaying all the toasts in the center.\n */\nexport function NotificationCenter() {\n return (\n <Toaster toaster={toaster}>\n {(toast) => (\n <NotificationParts.Root key={toast.id}>\n <MatchNotificationIcon\n type={toast.type as NotifyOptions['palette']}\n />\n\n <Box flex=\"1\" paddingBlock=\"sm\">\n <NotificationParts.Heading>{toast.title}</NotificationParts.Heading>\n <NotificationParts.Description>\n {toast.description}\n </NotificationParts.Description>\n <Show when={toast.action}>\n <NotificationParts.ActionTrigger asChild>\n <Button\n palette={toast.type as ButtonProps['palette']}\n usage=\"ghost\"\n size=\"sm\"\n >\n {toast.action?.label}\n </Button>\n </NotificationParts.ActionTrigger>\n </Show>\n </Box>\n\n <ToastCloseTrigger />\n </NotificationParts.Root>\n )}\n </Toaster>\n )\n}\n\n/**\n * @deprecated use `toaster` instead\n */\nexport function useNotificationCenter(): UseNotificationCenterReturn {\n function notify(options: NotifyOptions) {\n toaster.create({\n title: options.heading,\n description: options.description,\n type: options.palette,\n action: options.action,\n })\n }\n return { ...toaster, notify }\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 { 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","/**\n * This module contains the Spinner component.\n * @module\n */\n\nexport interface SpinnerProps {\n /**\n * The size of the spinner\n */\n size?: number | string\n}\n\n/**\n * The Spinner component is used to display a loading indicator. Typically used\n * in buttons, modals, and other components that require a loading state.\n * @see https://cerberus.digitalu.design/react/loading-states/\n * @example\n * ```tsx\n * <Button>\n * <Show when={loading} fallback={<>Save</>}>\n * Saving\n * <Spinner size={24} />\n * </Show>\n * </Button>\n * ```\n */\nexport function Spinner(props: SpinnerProps) {\n return (\n <svg\n aria-busy=\"true\"\n data-scope=\"spinner\"\n data-part=\"root\"\n role=\"status\"\n xmlns=\"http://www.w3.org/2000/svg\"\n height={props.size}\n width={props.size}\n viewBox=\"0 0 24 24\"\n >\n <g\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n >\n <path\n strokeDasharray={16}\n strokeDashoffset={16}\n d=\"M12 3c4.97 0 9 4.03 9 9\"\n >\n <animate\n fill=\"freeze\"\n attributeName=\"stroke-dashoffset\"\n dur=\"0.15s\"\n values=\"16;0\"\n ></animate>\n <animateTransform\n attributeName=\"transform\"\n dur=\"0.75s\"\n repeatCount=\"indefinite\"\n type=\"rotate\"\n values=\"0 12 12;360 12 12\"\n ></animateTransform>\n </path>\n <path\n strokeDasharray={64}\n strokeDashoffset={64}\n strokeOpacity={0.3}\n d=\"M12 3c4.97 0 9 4.03 9 9c0 4.97 -4.03 9 -9 9c-4.97 0 -9 -4.03 -9 -9c0 -4.97 4.03 -9 9 -9Z\"\n >\n <animate\n fill=\"freeze\"\n attributeName=\"stroke-dashoffset\"\n dur=\"0.6s\"\n values=\"64;0\"\n ></animate>\n </path>\n </g>\n </svg>\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","import {\n Toast,\n Toaster,\n type ToastActionTriggerProps,\n type ToastCloseTriggerProps,\n type ToastDescriptionProps,\n type ToasterProps,\n type ToastRootProps,\n type ToastTitleProps,\n} from '@ark-ui/react/toast'\nimport { toast } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Notification component.\n * @module 'notification/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(toast)\n\n// Toaster\n\nexport type NotificationProviderProps = ToasterProps\nexport const NotificationProvider = Toaster\n\n// Root\n\nexport type NotificationRootProps = CerberusPrimitiveProps<ToastRootProps>\nexport const NotificationRoot = withSlotRecipe<NotificationRootProps>(\n Toast.Root,\n 'root',\n)\n\n// Heading\n\nexport type NotificationHeadingProps = CerberusPrimitiveProps<ToastTitleProps>\nexport const NotificationHeading = withSlotRecipe<NotificationHeadingProps>(\n Toast.Title,\n 'title',\n)\n\n// Description\n\nexport type NotificationDescriptionProps =\n CerberusPrimitiveProps<ToastDescriptionProps>\nexport const NotificationDescription =\n withSlotRecipe<NotificationDescriptionProps>(Toast.Description, 'description')\n\n// Close Trigger\n\nexport type NotificationCloseTriggerProps =\n CerberusPrimitiveProps<ToastCloseTriggerProps>\nexport const NotificationCloseTrigger =\n withSlotRecipe<NotificationCloseTriggerProps>(\n Toast.CloseTrigger,\n 'closeTrigger',\n )\n\n// Action Trigger\n\nexport type NotificationActionTriggerProps =\n CerberusPrimitiveProps<ToastActionTriggerProps>\nexport const NotificationActionTrigger =\n withSlotRecipe<NotificationActionTriggerProps>(\n Toast.ActionTrigger,\n 'actionTrigger',\n )\n","import type { ElementType } from 'react'\nimport {\n NotificationActionTrigger,\n NotificationCloseTrigger,\n NotificationDescription,\n NotificationHeading,\n NotificationRoot,\n} from './primitives'\n\n/**\n * This module contains the parts of the Notification parts.\n * @module 'notification/parts'\n */\n\ninterface NotificationPartsValue {\n /**\n * The context provider of the notification.\n */\n Root: ElementType\n /**\n * The title heading of the notification.\n */\n Heading: ElementType\n /**\n * The description of the notification.\n */\n Description: ElementType\n /**\n * The close button of the notification.\n */\n CloseTrigger: ElementType\n /**\n * The action trigger of the notification.\n */\n ActionTrigger: ElementType\n}\n\n/**\n * An Object containing the parts of the Notification components. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the NotificationParts object and\n * the entire family of components vs. only what you use.\n */\nexport const NotificationParts: NotificationPartsValue = {\n Root: NotificationRoot,\n Heading: NotificationHeading,\n Description: NotificationDescription,\n CloseTrigger: NotificationCloseTrigger,\n ActionTrigger: NotificationActionTrigger,\n}\n","'use client'\n\nimport { ark } from '@ark-ui/react/factory'\nimport { toast } from 'styled-system/recipes'\nimport { useCerberusContext } from '../../context/cerberus'\nimport { Spinner } from '../spinner/index'\nimport type { NotifyOptions } from './types'\n\n/**\n * This private module contains a component that returns the correct icon for a\n * notification based on the palette. If there is no result, it is assumed to\n * be a 'loading' type.\n * @module 'notification/match-icon'\n */\n\ninterface MatchNotificationIconProps {\n type?: NotifyOptions['palette']\n}\n\nexport function MatchNotificationIcon(props: MatchNotificationIconProps) {\n const { icons } = useCerberusContext()\n const type = props.type || 'info'\n const styles = toast()\n\n const key = `${type}Notification` as keyof typeof icons\n const Icon = icons[key] || ToastLoadingIcon\n\n return (\n <ark.div className={styles.icon}>\n <Icon />\n </ark.div>\n )\n}\n\nfunction ToastLoadingIcon() {\n return <Spinner size=\"1rem\" />\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","'use client'\n\nimport { useCerberusContext } from '../../context/cerberus'\nimport { NotificationParts } from './parts'\nimport type { NotificationCloseTriggerProps } from './primitives'\n\n/**\n * This private module contains a abstraction of the close trigger primitive.\n * @module 'notification/close-trigger'\n */\n\nexport function ToastCloseTrigger(props: NotificationCloseTriggerProps) {\n const { icons } = useCerberusContext()\n const { close: CloseIcon } = icons\n\n return (\n <NotificationParts.CloseTrigger {...props}>\n <CloseIcon />\n </NotificationParts.CloseTrigger>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,IAAAA,gBAIO;AACP,IAAAC,cAAoB;;;ACJpB,mBAKO;AAEP,iBAAoB;;;ACsBT;AAJJ,SAAS,KAAQ,OAAwC;AAC9D,QAAM,EAAE,MAAM,UAAU,SAAS,IAAI;AAErC,MAAI,MAAM;AACR,WAAO,2EAAG,UAAS;AAAA,EACrB;AAEA,MAAI,UAAU;AACZ,WAAO,2EAAG,oBAAS;AAAA,EACrB;AAEA,SAAO;AACT;;;ACKQ,IAAAC,sBAAA;AAnBD,SAAS,QAAQ,OAAqB;AAC3C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,cAAW;AAAA,MACX,aAAU;AAAA,MACV,MAAK;AAAA,MACL,OAAM;AAAA,MACN,QAAQ,MAAM;AAAA,MACd,OAAO,MAAM;AAAA,MACb,SAAQ;AAAA,MAER;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAa;AAAA,UAEb;AAAA;AAAA,cAAC;AAAA;AAAA,gBACC,iBAAiB;AAAA,gBACjB,kBAAkB;AAAA,gBAClB,GAAE;AAAA,gBAEF;AAAA;AAAA,oBAAC;AAAA;AAAA,sBACC,MAAK;AAAA,sBACL,eAAc;AAAA,sBACd,KAAI;AAAA,sBACJ,QAAO;AAAA;AAAA,kBACR;AAAA,kBACD;AAAA,oBAAC;AAAA;AAAA,sBACC,eAAc;AAAA,sBACd,KAAI;AAAA,sBACJ,aAAY;AAAA,sBACZ,MAAK;AAAA,sBACL,QAAO;AAAA;AAAA,kBACR;AAAA;AAAA;AAAA,YACH;AAAA,YACA;AAAA,cAAC;AAAA;AAAA,gBACC,iBAAiB;AAAA,gBACjB,kBAAkB;AAAA,gBAClB,eAAe;AAAA,gBACf,GAAE;AAAA,gBAEF;AAAA,kBAAC;AAAA;AAAA,oBACC,MAAK;AAAA,oBACL,eAAc;AAAA,oBACd,KAAI;AAAA,oBACJ,QAAO;AAAA;AAAA,gBACR;AAAA;AAAA,YACH;AAAA;AAAA;AAAA,MACF;AAAA;AAAA,EACF;AAEJ;;;AChFA,qBAAoB;AACpB,qBAAuB;;;ACDvB,iBAAwB;AAmEX,IAAAC,sBAAA;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,6CAAC,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;;;AH+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;;;AMhDA,mBASO;AACP,IAAAC,kBAAsB;AAWtB,IAAM,EAAE,eAAe,IAAI,wBAAwB,qBAAK;AAUjD,IAAM,mBAAmB;AAAA,EAC9B,mBAAM;AAAA,EACN;AACF;AAKO,IAAM,sBAAsB;AAAA,EACjC,mBAAM;AAAA,EACN;AACF;AAMO,IAAM,0BACX,eAA6C,mBAAM,aAAa,aAAa;AAMxE,IAAM,2BACX;AAAA,EACE,mBAAM;AAAA,EACN;AACF;AAMK,IAAM,4BACX;AAAA,EACE,mBAAM;AAAA,EACN;AACF;;;ACvBK,IAAM,oBAA4C;AAAA,EACvD,MAAM;AAAA,EACN,SAAS;AAAA,EACT,aAAa;AAAA,EACb,cAAc;AAAA,EACd,eAAe;AACjB;;;AClDA,IAAAC,kBAAoB;AACpB,IAAAC,kBAAsB;;;ACDtB,IAAAC,gBAAkE;AAyB9D,IAAAC,sBAAA;AAfJ,IAAM,sBAAkB,6BAA2C,IAAI;AAyBhE,SAAS,qBAAqB;AACnC,QAAM,cAAU,0BAAW,eAAe;AAC1C,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,oDAAoD;AAAA,EACtE;AACA,SAAO;AACT;;;ADdM,IAAAC,sBAAA;AAVC,SAAS,sBAAsB,OAAmC;AACvE,QAAM,EAAE,MAAM,IAAI,mBAAmB;AACrC,QAAM,OAAO,MAAM,QAAQ;AAC3B,QAAM,aAAS,uBAAM;AAErB,QAAM,MAAM,GAAG,IAAI;AACnB,QAAM,OAAO,MAAM,GAAG,KAAK;AAE3B,SACE,6CAAC,oBAAI,KAAJ,EAAQ,WAAW,OAAO,MACzB,uDAAC,QAAK,GACR;AAEJ;AAEA,SAAS,mBAAmB;AAC1B,SAAO,6CAAC,WAAQ,MAAK,QAAO;AAC9B;;;AEnBM,IAAAC,sBAAA;AANC,SAAS,kBAAkB,OAAsC;AACtE,QAAM,EAAE,MAAM,IAAI,mBAAmB;AACrC,QAAM,EAAE,OAAO,UAAU,IAAI;AAE7B,SACE,6CAAC,kBAAkB,cAAlB,EAAgC,GAAG,OAClC,uDAAC,aAAU,GACb;AAEJ;;;AXeU,IAAAC,sBAAA;AAfH,IAAM,cAA+B,6BAAc;AAAA,EACxD,KAAK;AAAA,EACL,SAAS;AAAA,EACT,WAAW;AACb,CAAC;AAMM,SAAS,qBAAqB;AACnC,SACE,6CAAC,yBAAQ,SACN,WAACC,WAAO;AAjCf;AAkCQ,yDAAC,kBAAkB,MAAlB,EACC;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,MAAMA,OAAM;AAAA;AAAA,MACd;AAAA,MAEA,8CAAC,mBAAI,MAAK,KAAI,cAAa,MACzB;AAAA,qDAAC,kBAAkB,SAAlB,EAA2B,UAAAA,OAAM,OAAM;AAAA,QACxC,6CAAC,kBAAkB,aAAlB,EACE,UAAAA,OAAM,aACT;AAAA,QACA,6CAAC,QAAK,MAAMA,OAAM,QAChB,uDAAC,kBAAkB,eAAlB,EAAgC,SAAO,MACtC;AAAA,UAAC;AAAA;AAAA,YACC,SAASA,OAAM;AAAA,YACf,OAAM;AAAA,YACN,MAAK;AAAA,YAEJ,gBAAAA,OAAM,WAAN,mBAAc;AAAA;AAAA,QACjB,GACF,GACF;AAAA,SACF;AAAA,MAEA,6CAAC,qBAAkB;AAAA,SAvBQA,OAAM,EAwBnC;AAAA,KAEJ;AAEJ;AAKO,SAAS,wBAAqD;AACnE,WAAS,OAAO,SAAwB;AACtC,YAAQ,OAAO;AAAA,MACb,OAAO,QAAQ;AAAA,MACf,aAAa,QAAQ;AAAA,MACrB,MAAM,QAAQ;AAAA,MACd,QAAQ,QAAQ;AAAA,IAClB,CAAC;AAAA,EACH;AACA,SAAO,EAAE,GAAG,SAAS,OAAO;AAC9B;","names":["import_toast","import_jsx","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_recipes","import_factory","import_recipes","import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","toast"]}
@@ -83,8 +83,12 @@ var CerberusPrimitive = class {
83
83
  const recipe = this.recipe;
84
84
  this.validateComponent(Component);
85
85
  const CerbComponent = (internalProps) => {
86
- const { css: customCss, className, ...nativeProps } = internalProps;
87
- const [variantOptions] = recipe.splitVariantProps(nativeProps);
86
+ const {
87
+ css: customCss,
88
+ className,
89
+ ...restOfInternalProps
90
+ } = internalProps;
91
+ const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
88
92
  const recipeStyles = recipe(variantOptions);
89
93
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
90
94
  Component,
@@ -115,8 +119,12 @@ var CerberusPrimitive = class {
115
119
  const recipe = this.recipe;
116
120
  this.validateComponent(Component);
117
121
  const CerbComponent = (internalProps) => {
118
- const { css: customCss, className, ...nativeProps } = internalProps;
119
- const [variantOptions] = recipe.splitVariantProps(nativeProps);
122
+ const {
123
+ css: customCss,
124
+ className,
125
+ ...restOfInternalProps
126
+ } = internalProps;
127
+ const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
120
128
  const styles = recipe(variantOptions);
121
129
  const slotStyles = styles[slot];
122
130
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/notifications/close-trigger.tsx","../../../../src/context/cerberus.tsx","../../../../src/components/notifications/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/notifications/parts.ts"],"sourcesContent":["'use client'\n\nimport { useCerberusContext } from '../../context/cerberus'\nimport { NotificationParts } from './parts'\nimport type { NotificationCloseTriggerProps } from './primitives'\n\n/**\n * This private module contains a abstraction of the close trigger primitive.\n * @module 'notification/close-trigger'\n */\n\nexport function ToastCloseTrigger(props: NotificationCloseTriggerProps) {\n const { icons } = useCerberusContext()\n const { close: CloseIcon } = icons\n\n return (\n <NotificationParts.CloseTrigger {...props}>\n <CloseIcon />\n </NotificationParts.CloseTrigger>\n )\n}\n","'use client'\n\nimport { createContext, useContext, type PropsWithChildren } from 'react'\nimport type { SystemConfig } from '../config'\n\n/**\n * This module contains the Cerberus configuration context and helpers.\n * @module context/cerberus\n */\n\ntype CerberusContextValue = SystemConfig\n\nconst CerberusContext = createContext<CerberusContextValue | null>(null)\n\ninterface CerberusProviderProps {\n config: SystemConfig\n}\n\n/**\n * Cerberus configuration provider.\n * @param props.config The Cerberus configuration created with\n * `makeSystemConfig` helper.\n */\nexport function CerberusProvider(\n props: PropsWithChildren<CerberusProviderProps>,\n) {\n return (\n <CerberusContext.Provider value={props.config}>\n {props.children}\n </CerberusContext.Provider>\n )\n}\n\n/**\n * Returns the Cerberus configuration context.\n * @returns The Cerberus configuration context.\n */\nexport function useCerberusContext() {\n const context = useContext(CerberusContext)\n if (!context) {\n throw new Error('useCerberus must be used within a CerberusProvider')\n }\n return context\n}\n","import {\n Toast,\n Toaster,\n type ToastActionTriggerProps,\n type ToastCloseTriggerProps,\n type ToastDescriptionProps,\n type ToasterProps,\n type ToastRootProps,\n type ToastTitleProps,\n} from '@ark-ui/react/toast'\nimport { toast } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Notification component.\n * @module 'notification/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(toast)\n\n// Toaster\n\nexport type NotificationProviderProps = ToasterProps\nexport const NotificationProvider = Toaster\n\n// Root\n\nexport type NotificationRootProps = CerberusPrimitiveProps<ToastRootProps>\nexport const NotificationRoot = withSlotRecipe<NotificationRootProps>(\n Toast.Root,\n 'root',\n)\n\n// Heading\n\nexport type NotificationHeadingProps = CerberusPrimitiveProps<ToastTitleProps>\nexport const NotificationHeading = withSlotRecipe<NotificationHeadingProps>(\n Toast.Title,\n 'title',\n)\n\n// Description\n\nexport type NotificationDescriptionProps =\n CerberusPrimitiveProps<ToastDescriptionProps>\nexport const NotificationDescription =\n withSlotRecipe<NotificationDescriptionProps>(Toast.Description, 'description')\n\n// Close Trigger\n\nexport type NotificationCloseTriggerProps =\n CerberusPrimitiveProps<ToastCloseTriggerProps>\nexport const NotificationCloseTrigger =\n withSlotRecipe<NotificationCloseTriggerProps>(\n Toast.CloseTrigger,\n 'closeTrigger',\n )\n\n// Action Trigger\n\nexport type NotificationActionTriggerProps =\n CerberusPrimitiveProps<ToastActionTriggerProps>\nexport const NotificationActionTrigger =\n withSlotRecipe<NotificationActionTriggerProps>(\n Toast.ActionTrigger,\n 'actionTrigger',\n )\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 {\n NotificationActionTrigger,\n NotificationCloseTrigger,\n NotificationDescription,\n NotificationHeading,\n NotificationRoot,\n} from './primitives'\n\n/**\n * This module contains the parts of the Notification parts.\n * @module 'notification/parts'\n */\n\ninterface NotificationPartsValue {\n /**\n * The context provider of the notification.\n */\n Root: ElementType\n /**\n * The title heading of the notification.\n */\n Heading: ElementType\n /**\n * The description of the notification.\n */\n Description: ElementType\n /**\n * The close button of the notification.\n */\n CloseTrigger: ElementType\n /**\n * The action trigger of the notification.\n */\n ActionTrigger: ElementType\n}\n\n/**\n * An Object containing the parts of the Notification components. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the NotificationParts object and\n * the entire family of components vs. only what you use.\n */\nexport const NotificationParts: NotificationPartsValue = {\n Root: NotificationRoot,\n Heading: NotificationHeading,\n Description: NotificationDescription,\n CloseTrigger: NotificationCloseTrigger,\n ActionTrigger: NotificationActionTrigger,\n}\n"],"mappings":"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","names":["import_jsx_runtime","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../../../../src/components/notifications/close-trigger.tsx","../../../../src/context/cerberus.tsx","../../../../src/components/notifications/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/notifications/parts.ts"],"sourcesContent":["'use client'\n\nimport { useCerberusContext } from '../../context/cerberus'\nimport { NotificationParts } from './parts'\nimport type { NotificationCloseTriggerProps } from './primitives'\n\n/**\n * This private module contains a abstraction of the close trigger primitive.\n * @module 'notification/close-trigger'\n */\n\nexport function ToastCloseTrigger(props: NotificationCloseTriggerProps) {\n const { icons } = useCerberusContext()\n const { close: CloseIcon } = icons\n\n return (\n <NotificationParts.CloseTrigger {...props}>\n <CloseIcon />\n </NotificationParts.CloseTrigger>\n )\n}\n","'use client'\n\nimport { createContext, useContext, type PropsWithChildren } from 'react'\nimport type { SystemConfig } from '../config'\n\n/**\n * This module contains the Cerberus configuration context and helpers.\n * @module context/cerberus\n */\n\ntype CerberusContextValue = SystemConfig\n\nconst CerberusContext = createContext<CerberusContextValue | null>(null)\n\ninterface CerberusProviderProps {\n config: SystemConfig\n}\n\n/**\n * Cerberus configuration provider.\n * @param props.config The Cerberus configuration created with\n * `makeSystemConfig` helper.\n */\nexport function CerberusProvider(\n props: PropsWithChildren<CerberusProviderProps>,\n) {\n return (\n <CerberusContext.Provider value={props.config}>\n {props.children}\n </CerberusContext.Provider>\n )\n}\n\n/**\n * Returns the Cerberus configuration context.\n * @returns The Cerberus configuration context.\n */\nexport function useCerberusContext() {\n const context = useContext(CerberusContext)\n if (!context) {\n throw new Error('useCerberus must be used within a CerberusProvider')\n }\n return context\n}\n","import {\n Toast,\n Toaster,\n type ToastActionTriggerProps,\n type ToastCloseTriggerProps,\n type ToastDescriptionProps,\n type ToasterProps,\n type ToastRootProps,\n type ToastTitleProps,\n} from '@ark-ui/react/toast'\nimport { toast } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Notification component.\n * @module 'notification/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(toast)\n\n// Toaster\n\nexport type NotificationProviderProps = ToasterProps\nexport const NotificationProvider = Toaster\n\n// Root\n\nexport type NotificationRootProps = CerberusPrimitiveProps<ToastRootProps>\nexport const NotificationRoot = withSlotRecipe<NotificationRootProps>(\n Toast.Root,\n 'root',\n)\n\n// Heading\n\nexport type NotificationHeadingProps = CerberusPrimitiveProps<ToastTitleProps>\nexport const NotificationHeading = withSlotRecipe<NotificationHeadingProps>(\n Toast.Title,\n 'title',\n)\n\n// Description\n\nexport type NotificationDescriptionProps =\n CerberusPrimitiveProps<ToastDescriptionProps>\nexport const NotificationDescription =\n withSlotRecipe<NotificationDescriptionProps>(Toast.Description, 'description')\n\n// Close Trigger\n\nexport type NotificationCloseTriggerProps =\n CerberusPrimitiveProps<ToastCloseTriggerProps>\nexport const NotificationCloseTrigger =\n withSlotRecipe<NotificationCloseTriggerProps>(\n Toast.CloseTrigger,\n 'closeTrigger',\n )\n\n// Action Trigger\n\nexport type NotificationActionTriggerProps =\n CerberusPrimitiveProps<ToastActionTriggerProps>\nexport const NotificationActionTrigger =\n withSlotRecipe<NotificationActionTriggerProps>(\n Toast.ActionTrigger,\n 'actionTrigger',\n )\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 {\n NotificationActionTrigger,\n NotificationCloseTrigger,\n NotificationDescription,\n NotificationHeading,\n NotificationRoot,\n} from './primitives'\n\n/**\n * This module contains the parts of the Notification parts.\n * @module 'notification/parts'\n */\n\ninterface NotificationPartsValue {\n /**\n * The context provider of the notification.\n */\n Root: ElementType\n /**\n * The title heading of the notification.\n */\n Heading: ElementType\n /**\n * The description of the notification.\n */\n Description: ElementType\n /**\n * The close button of the notification.\n */\n CloseTrigger: ElementType\n /**\n * The action trigger of the notification.\n */\n ActionTrigger: ElementType\n}\n\n/**\n * An Object containing the parts of the Notification components. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the NotificationParts object and\n * the entire family of components vs. only what you use.\n */\nexport const NotificationParts: NotificationPartsValue = {\n Root: NotificationRoot,\n Heading: NotificationHeading,\n Description: NotificationDescription,\n CloseTrigger: NotificationCloseTrigger,\n ActionTrigger: NotificationActionTrigger,\n}\n"],"mappings":"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","names":["import_jsx_runtime","import_jsx_runtime"]}