@cerberus-design/react 0.19.2 → 0.20.0

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 (615) hide show
  1. package/build/legacy/_tsup-dts-rollup.d.cts +242 -11
  2. package/build/legacy/components/accordion/index.cjs +23 -11
  3. package/build/legacy/components/accordion/index.cjs.map +1 -1
  4. package/build/legacy/components/accordion/item-group.cjs +23 -11
  5. package/build/legacy/components/accordion/item-group.cjs.map +1 -1
  6. package/build/legacy/components/accordion/item-indicator.cjs +23 -11
  7. package/build/legacy/components/accordion/item-indicator.cjs.map +1 -1
  8. package/build/legacy/components/accordion/parts.cjs +23 -11
  9. package/build/legacy/components/accordion/parts.cjs.map +1 -1
  10. package/build/legacy/components/accordion/primitives.cjs +23 -11
  11. package/build/legacy/components/accordion/primitives.cjs.map +1 -1
  12. package/build/legacy/components/admonition/admonition.cjs +23 -11
  13. package/build/legacy/components/admonition/admonition.cjs.map +1 -1
  14. package/build/legacy/components/admonition/index.cjs +23 -11
  15. package/build/legacy/components/admonition/index.cjs.map +1 -1
  16. package/build/legacy/components/admonition/match-avatar.cjs +23 -11
  17. package/build/legacy/components/admonition/match-avatar.cjs.map +1 -1
  18. package/build/legacy/components/admonition/parts.cjs +23 -11
  19. package/build/legacy/components/admonition/parts.cjs.map +1 -1
  20. package/build/legacy/components/admonition/primitives.cjs +23 -11
  21. package/build/legacy/components/admonition/primitives.cjs.map +1 -1
  22. package/build/legacy/components/avatar/avatar.cjs +23 -11
  23. package/build/legacy/components/avatar/avatar.cjs.map +1 -1
  24. package/build/legacy/components/avatar/index.cjs +23 -11
  25. package/build/legacy/components/avatar/index.cjs.map +1 -1
  26. package/build/legacy/components/avatar/parts.cjs +23 -11
  27. package/build/legacy/components/avatar/parts.cjs.map +1 -1
  28. package/build/legacy/components/avatar/primitives.cjs +23 -11
  29. package/build/legacy/components/avatar/primitives.cjs.map +1 -1
  30. package/build/legacy/components/button/button.cjs +23 -11
  31. package/build/legacy/components/button/button.cjs.map +1 -1
  32. package/build/legacy/components/button/index.cjs +23 -11
  33. package/build/legacy/components/button/index.cjs.map +1 -1
  34. package/build/legacy/components/button/parts.cjs +23 -11
  35. package/build/legacy/components/button/parts.cjs.map +1 -1
  36. package/build/legacy/components/button/primitives.cjs +23 -11
  37. package/build/legacy/components/button/primitives.cjs.map +1 -1
  38. package/build/legacy/components/carousel/carousel.cjs +239 -0
  39. package/build/legacy/components/carousel/carousel.cjs.map +1 -0
  40. package/build/legacy/components/carousel/carousel.d.cts +2 -0
  41. package/build/legacy/components/carousel/index.cjs +257 -0
  42. package/build/legacy/components/carousel/index.cjs.map +1 -0
  43. package/build/legacy/components/carousel/index.d.cts +19 -0
  44. package/build/legacy/components/carousel/parts.cjs +198 -0
  45. package/build/legacy/components/carousel/parts.cjs.map +1 -0
  46. package/build/legacy/components/carousel/parts.d.cts +1 -0
  47. package/build/legacy/components/carousel/primitives.cjs +198 -0
  48. package/build/legacy/components/carousel/primitives.cjs.map +1 -0
  49. package/build/legacy/components/carousel/primitives.d.cts +16 -0
  50. package/build/legacy/components/checkbox/checkbox-icon.cjs +23 -11
  51. package/build/legacy/components/checkbox/checkbox-icon.cjs.map +1 -1
  52. package/build/legacy/components/checkbox/checkbox.cjs +23 -11
  53. package/build/legacy/components/checkbox/checkbox.cjs.map +1 -1
  54. package/build/legacy/components/checkbox/index.cjs +23 -11
  55. package/build/legacy/components/checkbox/index.cjs.map +1 -1
  56. package/build/legacy/components/checkbox/parts.cjs +23 -11
  57. package/build/legacy/components/checkbox/parts.cjs.map +1 -1
  58. package/build/legacy/components/checkbox/primitives.cjs +23 -11
  59. package/build/legacy/components/checkbox/primitives.cjs.map +1 -1
  60. package/build/legacy/components/circular-progress/circular-progress.cjs +23 -11
  61. package/build/legacy/components/circular-progress/circular-progress.cjs.map +1 -1
  62. package/build/legacy/components/circular-progress/index.cjs +23 -11
  63. package/build/legacy/components/circular-progress/index.cjs.map +1 -1
  64. package/build/legacy/components/circular-progress/primitives.cjs +23 -11
  65. package/build/legacy/components/circular-progress/primitives.cjs.map +1 -1
  66. package/build/legacy/components/combobox/combobox.cjs +23 -11
  67. package/build/legacy/components/combobox/combobox.cjs.map +1 -1
  68. package/build/legacy/components/combobox/index.cjs +23 -11
  69. package/build/legacy/components/combobox/index.cjs.map +1 -1
  70. package/build/legacy/components/combobox/item-group.cjs +23 -11
  71. package/build/legacy/components/combobox/item-group.cjs.map +1 -1
  72. package/build/legacy/components/combobox/item.cjs +23 -11
  73. package/build/legacy/components/combobox/item.cjs.map +1 -1
  74. package/build/legacy/components/combobox/parts.cjs +23 -11
  75. package/build/legacy/components/combobox/parts.cjs.map +1 -1
  76. package/build/legacy/components/combobox/primitives.cjs +23 -11
  77. package/build/legacy/components/combobox/primitives.cjs.map +1 -1
  78. package/build/legacy/components/combobox/use-stateful-collection.cjs +23 -11
  79. package/build/legacy/components/combobox/use-stateful-collection.cjs.map +1 -1
  80. package/build/legacy/components/cta-dialog/index.cjs +23 -11
  81. package/build/legacy/components/cta-dialog/index.cjs.map +1 -1
  82. package/build/legacy/components/cta-dialog/provider.cjs +23 -11
  83. package/build/legacy/components/cta-dialog/provider.cjs.map +1 -1
  84. package/build/legacy/components/cta-dialog/trigger-item.cjs +23 -11
  85. package/build/legacy/components/cta-dialog/trigger-item.cjs.map +1 -1
  86. package/build/legacy/components/date-picker/calendar.cjs +23 -11
  87. package/build/legacy/components/date-picker/calendar.cjs.map +1 -1
  88. package/build/legacy/components/date-picker/content.cjs +23 -11
  89. package/build/legacy/components/date-picker/content.cjs.map +1 -1
  90. package/build/legacy/components/date-picker/date-picker.cjs +23 -11
  91. package/build/legacy/components/date-picker/date-picker.cjs.map +1 -1
  92. package/build/legacy/components/date-picker/day-view.cjs +23 -11
  93. package/build/legacy/components/date-picker/day-view.cjs.map +1 -1
  94. package/build/legacy/components/date-picker/index.cjs +23 -11
  95. package/build/legacy/components/date-picker/index.cjs.map +1 -1
  96. package/build/legacy/components/date-picker/input.cjs +23 -11
  97. package/build/legacy/components/date-picker/input.cjs.map +1 -1
  98. package/build/legacy/components/date-picker/month-view.cjs +23 -11
  99. package/build/legacy/components/date-picker/month-view.cjs.map +1 -1
  100. package/build/legacy/components/date-picker/parts.cjs +23 -11
  101. package/build/legacy/components/date-picker/parts.cjs.map +1 -1
  102. package/build/legacy/components/date-picker/primitives.cjs +23 -11
  103. package/build/legacy/components/date-picker/primitives.cjs.map +1 -1
  104. package/build/legacy/components/date-picker/range-input.cjs +23 -11
  105. package/build/legacy/components/date-picker/range-input.cjs.map +1 -1
  106. package/build/legacy/components/date-picker/trigger.cjs +23 -11
  107. package/build/legacy/components/date-picker/trigger.cjs.map +1 -1
  108. package/build/legacy/components/date-picker/view-control-group.cjs +23 -11
  109. package/build/legacy/components/date-picker/view-control-group.cjs.map +1 -1
  110. package/build/legacy/components/date-picker/year-view.cjs +23 -11
  111. package/build/legacy/components/date-picker/year-view.cjs.map +1 -1
  112. package/build/legacy/components/deprecated/Label.cjs +23 -11
  113. package/build/legacy/components/deprecated/Label.cjs.map +1 -1
  114. package/build/legacy/components/dialog/close-icon-trigger.cjs +23 -11
  115. package/build/legacy/components/dialog/close-icon-trigger.cjs.map +1 -1
  116. package/build/legacy/components/dialog/dialog.cjs +23 -11
  117. package/build/legacy/components/dialog/dialog.cjs.map +1 -1
  118. package/build/legacy/components/dialog/index.cjs +23 -11
  119. package/build/legacy/components/dialog/index.cjs.map +1 -1
  120. package/build/legacy/components/dialog/parts.cjs +23 -11
  121. package/build/legacy/components/dialog/parts.cjs.map +1 -1
  122. package/build/legacy/components/dialog/primitives.cjs +23 -11
  123. package/build/legacy/components/dialog/primitives.cjs.map +1 -1
  124. package/build/legacy/components/field/field.cjs +23 -11
  125. package/build/legacy/components/field/field.cjs.map +1 -1
  126. package/build/legacy/components/field/helper-text.cjs +23 -11
  127. package/build/legacy/components/field/helper-text.cjs.map +1 -1
  128. package/build/legacy/components/field/index.cjs +23 -11
  129. package/build/legacy/components/field/index.cjs.map +1 -1
  130. package/build/legacy/components/field/input.cjs +23 -11
  131. package/build/legacy/components/field/input.cjs.map +1 -1
  132. package/build/legacy/components/field/parts.cjs +23 -11
  133. package/build/legacy/components/field/parts.cjs.map +1 -1
  134. package/build/legacy/components/field/primitives.cjs +23 -11
  135. package/build/legacy/components/field/primitives.cjs.map +1 -1
  136. package/build/legacy/components/fieldset/fieldset.cjs +23 -11
  137. package/build/legacy/components/fieldset/fieldset.cjs.map +1 -1
  138. package/build/legacy/components/fieldset/index.cjs +23 -11
  139. package/build/legacy/components/fieldset/index.cjs.map +1 -1
  140. package/build/legacy/components/fieldset/parts.cjs +23 -11
  141. package/build/legacy/components/fieldset/parts.cjs.map +1 -1
  142. package/build/legacy/components/fieldset/primitives.cjs +23 -11
  143. package/build/legacy/components/fieldset/primitives.cjs.map +1 -1
  144. package/build/legacy/components/file-upload/file-status.cjs +23 -11
  145. package/build/legacy/components/file-upload/file-status.cjs.map +1 -1
  146. package/build/legacy/components/file-upload/file-uploader.cjs +23 -11
  147. package/build/legacy/components/file-upload/file-uploader.cjs.map +1 -1
  148. package/build/legacy/components/file-upload/index.cjs +23 -11
  149. package/build/legacy/components/file-upload/index.cjs.map +1 -1
  150. package/build/legacy/components/icon-button/button.cjs +23 -11
  151. package/build/legacy/components/icon-button/button.cjs.map +1 -1
  152. package/build/legacy/components/icon-button/index.cjs +23 -11
  153. package/build/legacy/components/icon-button/index.cjs.map +1 -1
  154. package/build/legacy/components/icon-button/primitives.cjs +23 -11
  155. package/build/legacy/components/icon-button/primitives.cjs.map +1 -1
  156. package/build/legacy/components/menu/index.cjs +23 -11
  157. package/build/legacy/components/menu/index.cjs.map +1 -1
  158. package/build/legacy/components/menu/menu.cjs +23 -11
  159. package/build/legacy/components/menu/menu.cjs.map +1 -1
  160. package/build/legacy/components/menu/primitives.cjs +23 -11
  161. package/build/legacy/components/menu/primitives.cjs.map +1 -1
  162. package/build/legacy/components/notifications/center.cjs +23 -11
  163. package/build/legacy/components/notifications/center.cjs.map +1 -1
  164. package/build/legacy/components/notifications/close-trigger.cjs +23 -11
  165. package/build/legacy/components/notifications/close-trigger.cjs.map +1 -1
  166. package/build/legacy/components/notifications/index.cjs +23 -11
  167. package/build/legacy/components/notifications/index.cjs.map +1 -1
  168. package/build/legacy/components/notifications/parts.cjs +23 -11
  169. package/build/legacy/components/notifications/parts.cjs.map +1 -1
  170. package/build/legacy/components/notifications/primitives.cjs +23 -11
  171. package/build/legacy/components/notifications/primitives.cjs.map +1 -1
  172. package/build/legacy/components/progress/index.cjs +23 -11
  173. package/build/legacy/components/progress/index.cjs.map +1 -1
  174. package/build/legacy/components/progress/primitives.cjs +23 -11
  175. package/build/legacy/components/progress/primitives.cjs.map +1 -1
  176. package/build/legacy/components/progress/progress-bar.cjs +23 -11
  177. package/build/legacy/components/progress/progress-bar.cjs.map +1 -1
  178. package/build/legacy/components/radio/index.cjs +23 -11
  179. package/build/legacy/components/radio/index.cjs.map +1 -1
  180. package/build/legacy/components/radio/parts.cjs +23 -11
  181. package/build/legacy/components/radio/parts.cjs.map +1 -1
  182. package/build/legacy/components/radio/primitives.cjs +23 -11
  183. package/build/legacy/components/radio/primitives.cjs.map +1 -1
  184. package/build/legacy/components/radio/radio.cjs +23 -11
  185. package/build/legacy/components/radio/radio.cjs.map +1 -1
  186. package/build/legacy/components/rating/index.cjs +23 -11
  187. package/build/legacy/components/rating/index.cjs.map +1 -1
  188. package/build/legacy/components/rating/parts.cjs +23 -11
  189. package/build/legacy/components/rating/parts.cjs.map +1 -1
  190. package/build/legacy/components/rating/primitives.cjs +23 -11
  191. package/build/legacy/components/rating/primitives.cjs.map +1 -1
  192. package/build/legacy/components/rating/rating.cjs +23 -11
  193. package/build/legacy/components/rating/rating.cjs.map +1 -1
  194. package/build/legacy/components/select/index.cjs +23 -11
  195. package/build/legacy/components/select/index.cjs.map +1 -1
  196. package/build/legacy/components/select/option-group.cjs +23 -11
  197. package/build/legacy/components/select/option-group.cjs.map +1 -1
  198. package/build/legacy/components/select/option.cjs +23 -11
  199. package/build/legacy/components/select/option.cjs.map +1 -1
  200. package/build/legacy/components/select/parts.cjs +23 -11
  201. package/build/legacy/components/select/parts.cjs.map +1 -1
  202. package/build/legacy/components/select/primitives.cjs +23 -11
  203. package/build/legacy/components/select/primitives.cjs.map +1 -1
  204. package/build/legacy/components/select/select.cjs +23 -11
  205. package/build/legacy/components/select/select.cjs.map +1 -1
  206. package/build/legacy/components/switch/index.cjs +23 -11
  207. package/build/legacy/components/switch/index.cjs.map +1 -1
  208. package/build/legacy/components/switch/parts.cjs +23 -11
  209. package/build/legacy/components/switch/parts.cjs.map +1 -1
  210. package/build/legacy/components/switch/primitives.cjs +23 -11
  211. package/build/legacy/components/switch/primitives.cjs.map +1 -1
  212. package/build/legacy/components/switch/switch.cjs +23 -11
  213. package/build/legacy/components/switch/switch.cjs.map +1 -1
  214. package/build/legacy/components/table/index.cjs +23 -11
  215. package/build/legacy/components/table/index.cjs.map +1 -1
  216. package/build/legacy/components/table/parts.cjs +23 -11
  217. package/build/legacy/components/table/parts.cjs.map +1 -1
  218. package/build/legacy/components/table/primitives.cjs +23 -11
  219. package/build/legacy/components/table/primitives.cjs.map +1 -1
  220. package/build/legacy/components/table/table.cjs +23 -11
  221. package/build/legacy/components/table/table.cjs.map +1 -1
  222. package/build/legacy/components/tabs/index.cjs +23 -11
  223. package/build/legacy/components/tabs/index.cjs.map +1 -1
  224. package/build/legacy/components/tabs/parts.cjs +23 -11
  225. package/build/legacy/components/tabs/parts.cjs.map +1 -1
  226. package/build/legacy/components/tabs/primitives.cjs +23 -11
  227. package/build/legacy/components/tabs/primitives.cjs.map +1 -1
  228. package/build/legacy/components/tabs/tabs.cjs +23 -11
  229. package/build/legacy/components/tabs/tabs.cjs.map +1 -1
  230. package/build/legacy/components/tag/index.cjs +23 -11
  231. package/build/legacy/components/tag/index.cjs.map +1 -1
  232. package/build/legacy/components/tag/tag.cjs +23 -11
  233. package/build/legacy/components/tag/tag.cjs.map +1 -1
  234. package/build/legacy/components/theme/index.cjs +23 -11
  235. package/build/legacy/components/theme/index.cjs.map +1 -1
  236. package/build/legacy/components/theme/theme.cjs +23 -11
  237. package/build/legacy/components/theme/theme.cjs.map +1 -1
  238. package/build/legacy/components/toggle/index.cjs +23 -11
  239. package/build/legacy/components/toggle/index.cjs.map +1 -1
  240. package/build/legacy/components/toggle/parts.cjs +23 -11
  241. package/build/legacy/components/toggle/parts.cjs.map +1 -1
  242. package/build/legacy/components/toggle/primitives.cjs +23 -11
  243. package/build/legacy/components/toggle/primitives.cjs.map +1 -1
  244. package/build/legacy/components/tooltip/index.cjs +23 -11
  245. package/build/legacy/components/tooltip/index.cjs.map +1 -1
  246. package/build/legacy/components/tooltip/parts.cjs +23 -11
  247. package/build/legacy/components/tooltip/parts.cjs.map +1 -1
  248. package/build/legacy/components/tooltip/primitives.cjs +23 -11
  249. package/build/legacy/components/tooltip/primitives.cjs.map +1 -1
  250. package/build/legacy/components/tooltip/tooltip.cjs +23 -11
  251. package/build/legacy/components/tooltip/tooltip.cjs.map +1 -1
  252. package/build/legacy/context/confirm-modal.cjs +23 -11
  253. package/build/legacy/context/confirm-modal.cjs.map +1 -1
  254. package/build/legacy/context/field.cjs +23 -11
  255. package/build/legacy/context/field.cjs.map +1 -1
  256. package/build/legacy/context/prompt-modal.cjs +23 -11
  257. package/build/legacy/context/prompt-modal.cjs.map +1 -1
  258. package/build/legacy/index.cjs +513 -429
  259. package/build/legacy/index.cjs.map +1 -1
  260. package/build/legacy/index.d.cts +19 -0
  261. package/build/legacy/system/factory.cjs +23 -11
  262. package/build/legacy/system/factory.cjs.map +1 -1
  263. package/build/legacy/system/index.cjs +23 -11
  264. package/build/legacy/system/index.cjs.map +1 -1
  265. package/build/legacy/system/primitive-factory.cjs +23 -11
  266. package/build/legacy/system/primitive-factory.cjs.map +1 -1
  267. package/build/modern/_tsup-dts-rollup.d.ts +242 -11
  268. package/build/modern/{chunk-KHU3YTLM.js → chunk-236F7MCH.js} +2 -2
  269. package/build/modern/{chunk-BS4V2YJV.js → chunk-2D6BHWPB.js} +3 -3
  270. package/build/modern/{chunk-IWJCQ4BM.js → chunk-2KVC3OJ3.js} +3 -3
  271. package/build/modern/{chunk-UHS2TNFC.js → chunk-2UQWJSA6.js} +2 -2
  272. package/build/modern/{chunk-2VVJATIW.js → chunk-2Z7IKMZC.js} +7 -7
  273. package/build/modern/{chunk-YAZIBTA2.js → chunk-3NPWHL5X.js} +2 -2
  274. package/build/modern/{chunk-S7HDNFJJ.js → chunk-3UIV3HMB.js} +2 -2
  275. package/build/modern/{chunk-WK7TUQIS.js → chunk-3X6VM5FS.js} +2 -2
  276. package/build/modern/{chunk-Y7UXAFII.js → chunk-3Z6W4ZFA.js} +2 -2
  277. package/build/modern/{chunk-YMFUEQ2A.js → chunk-45ZTZUCD.js} +3 -3
  278. package/build/modern/{chunk-7MWSOSOY.js → chunk-4O26WCRC.js} +2 -2
  279. package/build/modern/{chunk-ZGJDFQN2.js → chunk-4O64W4BA.js} +2 -2
  280. package/build/modern/{chunk-X6KB5LWU.js → chunk-4SOUI4NF.js} +2 -2
  281. package/build/modern/{chunk-77QDH2Q5.js → chunk-5B6LMHY2.js} +2 -2
  282. package/build/modern/{chunk-GLH23RDO.js → chunk-5L5PT37R.js} +2 -2
  283. package/build/modern/{chunk-ZFEGJR5E.js → chunk-5RLQNM73.js} +2 -2
  284. package/build/modern/{chunk-262PENBL.js → chunk-6LU43Z4K.js} +3 -3
  285. package/build/modern/{chunk-AHYFFHUW.js → chunk-76VTLS7X.js} +2 -2
  286. package/build/modern/{chunk-H6ZGH4VM.js → chunk-7B2ZHSH3.js} +2 -2
  287. package/build/modern/{chunk-X34MYQKI.js → chunk-7JNOY5MW.js} +2 -2
  288. package/build/modern/{chunk-FIVEPZ5F.js → chunk-7UKNQ4RD.js} +2 -2
  289. package/build/modern/{chunk-ABMK5P66.js → chunk-AOLWIMWV.js} +2 -2
  290. package/build/modern/{chunk-OG74JDYL.js → chunk-AQNXQVXP.js} +2 -2
  291. package/build/modern/{chunk-4ZQUC4DA.js → chunk-BHZN6P2K.js} +2 -2
  292. package/build/modern/{chunk-33OXE7IJ.js → chunk-BKPIKVU2.js} +24 -12
  293. package/build/modern/chunk-BKPIKVU2.js.map +1 -0
  294. package/build/modern/{chunk-ROWT3E5K.js → chunk-BSJM5VYB.js} +2 -2
  295. package/build/modern/{chunk-PI7MKQ62.js → chunk-BSZVMBX7.js} +2 -2
  296. package/build/modern/{chunk-HUKQPIDV.js → chunk-BXDQ5AXV.js} +2 -2
  297. package/build/modern/{chunk-W7WPVM34.js → chunk-C7XAB665.js} +3 -3
  298. package/build/modern/{chunk-H7N6M7VO.js → chunk-CHEYITRR.js} +2 -2
  299. package/build/modern/{chunk-CKCGLHLS.js → chunk-CONG7TGJ.js} +9 -9
  300. package/build/modern/{chunk-6KGRHE3J.js → chunk-D7BCQ2CQ.js} +2 -2
  301. package/build/modern/{chunk-7GT7UUCB.js → chunk-DH7SFE2R.js} +2 -2
  302. package/build/modern/{chunk-6KIXF4ES.js → chunk-EQ3X7KQ3.js} +2 -2
  303. package/build/modern/{chunk-BGJIAA5F.js → chunk-ET3UY6GV.js} +2 -2
  304. package/build/modern/{chunk-27RTYRM7.js → chunk-EZJMTWXK.js} +2 -2
  305. package/build/modern/{chunk-VB7T2YYD.js → chunk-FSX64HPK.js} +3 -3
  306. package/build/modern/{chunk-JBAE2B2H.js → chunk-FVADFCAE.js} +2 -2
  307. package/build/modern/{chunk-5W6HMI2G.js → chunk-GFFIJGQC.js} +2 -2
  308. package/build/modern/{chunk-LVA6QLLM.js → chunk-GTAIWUFQ.js} +2 -2
  309. package/build/modern/{chunk-7LNGA4BX.js → chunk-GZYLYTAG.js} +2 -2
  310. package/build/modern/{chunk-UZHBWTSE.js → chunk-HCH5I26B.js} +2 -2
  311. package/build/modern/{chunk-6XO2RTIJ.js → chunk-HMUQEMV2.js} +2 -2
  312. package/build/modern/{chunk-TJXWSSHO.js → chunk-HYEFRC5Z.js} +2 -2
  313. package/build/modern/{chunk-FL3J7LTC.js → chunk-INQZQMLL.js} +2 -2
  314. package/build/modern/{chunk-PGINYK2P.js → chunk-IOX43IGB.js} +2 -2
  315. package/build/modern/{chunk-KDIDKP2L.js → chunk-IRJITAGE.js} +2 -2
  316. package/build/modern/{chunk-RMLBOGDE.js → chunk-IVQCMXV6.js} +3 -3
  317. package/build/modern/{chunk-ZUC3X6GQ.js → chunk-IYF5FS6N.js} +2 -2
  318. package/build/modern/{chunk-TIKG6U4Y.js → chunk-JIEN2PM7.js} +2 -2
  319. package/build/modern/{chunk-T3U6K34Y.js → chunk-JUSH26RO.js} +2 -2
  320. package/build/modern/{chunk-VQIBX475.js → chunk-JVAGLLOA.js} +2 -2
  321. package/build/modern/{chunk-5UZUXCMO.js → chunk-K3NML67W.js} +2 -2
  322. package/build/modern/{chunk-MPVUVQCJ.js → chunk-K3YEOS6O.js} +2 -2
  323. package/build/modern/{chunk-KELIM5A3.js → chunk-KITDXURN.js} +2 -2
  324. package/build/modern/{chunk-NC7AHNAS.js → chunk-KJYNKQX4.js} +6 -6
  325. package/build/modern/{chunk-BFE2SHZO.js → chunk-KZVCQNZI.js} +3 -3
  326. package/build/modern/{chunk-KUF4UUC7.js → chunk-L4KBNOWP.js} +2 -2
  327. package/build/modern/{chunk-KF3WIC2Y.js → chunk-LO6YTNOP.js} +2 -2
  328. package/build/modern/{chunk-Q6FTLT7K.js → chunk-LOJBIVY4.js} +2 -2
  329. package/build/modern/{chunk-CBJ5A5BD.js → chunk-LY6ULD43.js} +6 -6
  330. package/build/modern/{chunk-Q3NDU44T.js → chunk-MMNUVODK.js} +2 -2
  331. package/build/modern/{chunk-NLZGGXMB.js → chunk-MVHFBVDA.js} +2 -2
  332. package/build/modern/{chunk-6P2JY52I.js → chunk-N5D6HNGL.js} +2 -2
  333. package/build/modern/{chunk-L4CKWLXL.js → chunk-NHM5IWBE.js} +2 -2
  334. package/build/modern/{chunk-EMLKVTGD.js → chunk-O4W2BVE7.js} +3 -3
  335. package/build/modern/{chunk-CI7JYXUR.js → chunk-OG644D7M.js} +3 -3
  336. package/build/modern/{chunk-P3J5P524.js → chunk-OX3NA6DQ.js} +2 -2
  337. package/build/modern/{chunk-HJYVIRNA.js → chunk-OYTEXDS6.js} +5 -5
  338. package/build/modern/{chunk-XZ2FNMMC.js → chunk-OZTYYWIX.js} +2 -2
  339. package/build/modern/{chunk-IX5QZCM4.js → chunk-P6JC32U3.js} +2 -2
  340. package/build/modern/chunk-PH3GZIQE.js +39 -0
  341. package/build/modern/chunk-PH3GZIQE.js.map +1 -0
  342. package/build/modern/{chunk-CYK3ZJIX.js → chunk-PZELEMIY.js} +2 -2
  343. package/build/modern/{chunk-BGZTC53N.js → chunk-RI3WN6XL.js} +2 -2
  344. package/build/modern/chunk-RJTFRZAL.js +32 -0
  345. package/build/modern/chunk-RJTFRZAL.js.map +1 -0
  346. package/build/modern/{chunk-ETYXG2J2.js → chunk-RS6DS6RS.js} +2 -2
  347. package/build/modern/{chunk-OSUFAZAK.js → chunk-RT4W6GBB.js} +2 -2
  348. package/build/modern/{chunk-XMFTL6KG.js → chunk-SFS5ILWG.js} +2 -2
  349. package/build/modern/{chunk-7GVDVLCR.js → chunk-SITE2UML.js} +2 -2
  350. package/build/modern/{chunk-XB4HMXOQ.js → chunk-SKOX5PJI.js} +3 -3
  351. package/build/modern/{chunk-A6NEZNGY.js → chunk-SP7TSFMZ.js} +2 -2
  352. package/build/modern/{chunk-J37VR33H.js → chunk-TIQO4VNE.js} +2 -2
  353. package/build/modern/{chunk-2UD72VLC.js → chunk-TJSHJF6G.js} +2 -2
  354. package/build/modern/{chunk-RKKI3J6R.js → chunk-TKHDOZWN.js} +2 -2
  355. package/build/modern/{chunk-46QXBKGK.js → chunk-UZZ26IWW.js} +6 -6
  356. package/build/modern/{chunk-U2ZT7UDW.js → chunk-V5TUC5AS.js} +2 -2
  357. package/build/modern/{chunk-QV5JHBHO.js → chunk-VQUJGCZW.js} +2 -2
  358. package/build/modern/chunk-VVZOWCNQ.js +27 -0
  359. package/build/modern/chunk-VVZOWCNQ.js.map +1 -0
  360. package/build/modern/{chunk-WC6SOU2F.js → chunk-VYJAPLLO.js} +2 -2
  361. package/build/modern/{chunk-RCXKKQQA.js → chunk-WGWEAB2Q.js} +2 -2
  362. package/build/modern/{chunk-GBV7MIBU.js → chunk-X24O5DTP.js} +4 -4
  363. package/build/modern/{chunk-5WT5BM3V.js → chunk-YJRAJNYI.js} +3 -3
  364. package/build/modern/{chunk-X6WOC4RF.js → chunk-YR6G66UT.js} +3 -3
  365. package/build/modern/chunk-YUAUGU3G.js +1 -0
  366. package/build/modern/chunk-YUAUGU3G.js.map +1 -0
  367. package/build/modern/{chunk-BT6FMOKM.js → chunk-YWPXLHUO.js} +2 -2
  368. package/build/modern/{chunk-QHPJ2C76.js → chunk-YZG7BNVB.js} +2 -2
  369. package/build/modern/{chunk-LMEGBPKK.js → chunk-Z5DHBMQF.js} +2 -2
  370. package/build/modern/{chunk-2SBNSYYC.js → chunk-ZFONE65Q.js} +2 -2
  371. package/build/modern/{chunk-ADOFKGU3.js → chunk-ZFVQQJIQ.js} +2 -2
  372. package/build/modern/{chunk-LNDQW46A.js → chunk-ZZ4JETME.js} +2 -2
  373. package/build/modern/components/accordion/index.js +7 -7
  374. package/build/modern/components/accordion/item-group.js +7 -7
  375. package/build/modern/components/accordion/item-indicator.js +6 -6
  376. package/build/modern/components/accordion/parts.js +5 -5
  377. package/build/modern/components/accordion/primitives.js +4 -4
  378. package/build/modern/components/admonition/admonition.js +10 -10
  379. package/build/modern/components/admonition/index.js +10 -10
  380. package/build/modern/components/admonition/match-avatar.js +7 -7
  381. package/build/modern/components/admonition/parts.js +5 -5
  382. package/build/modern/components/admonition/primitives.js +4 -4
  383. package/build/modern/components/avatar/avatar.js +6 -6
  384. package/build/modern/components/avatar/index.js +6 -6
  385. package/build/modern/components/avatar/parts.js +5 -5
  386. package/build/modern/components/avatar/primitives.js +4 -4
  387. package/build/modern/components/button/button.js +5 -5
  388. package/build/modern/components/button/index.js +6 -6
  389. package/build/modern/components/button/parts.js +6 -6
  390. package/build/modern/components/button/primitives.js +4 -4
  391. package/build/modern/components/carousel/carousel.d.ts +2 -0
  392. package/build/modern/components/carousel/carousel.js +15 -0
  393. package/build/modern/components/carousel/carousel.js.map +1 -0
  394. package/build/modern/components/carousel/index.d.ts +19 -0
  395. package/build/modern/components/carousel/index.js +36 -0
  396. package/build/modern/components/carousel/index.js.map +1 -0
  397. package/build/modern/components/carousel/parts.d.ts +1 -0
  398. package/build/modern/components/carousel/parts.js +12 -0
  399. package/build/modern/components/carousel/parts.js.map +1 -0
  400. package/build/modern/components/carousel/primitives.d.ts +16 -0
  401. package/build/modern/components/carousel/primitives.js +25 -0
  402. package/build/modern/components/carousel/primitives.js.map +1 -0
  403. package/build/modern/components/checkbox/checkbox-icon.js +6 -6
  404. package/build/modern/components/checkbox/checkbox.js +7 -7
  405. package/build/modern/components/checkbox/index.js +7 -7
  406. package/build/modern/components/checkbox/parts.js +5 -5
  407. package/build/modern/components/checkbox/primitives.js +4 -4
  408. package/build/modern/components/circular-progress/circular-progress.js +5 -5
  409. package/build/modern/components/circular-progress/index.js +5 -5
  410. package/build/modern/components/circular-progress/primitives.js +4 -4
  411. package/build/modern/components/combobox/combobox.js +6 -6
  412. package/build/modern/components/combobox/index.js +14 -14
  413. package/build/modern/components/combobox/item-group.js +6 -6
  414. package/build/modern/components/combobox/item.js +6 -6
  415. package/build/modern/components/combobox/parts.js +5 -5
  416. package/build/modern/components/combobox/primitives.js +4 -4
  417. package/build/modern/components/combobox/use-stateful-collection.js +5 -5
  418. package/build/modern/components/cta-dialog/index.js +18 -18
  419. package/build/modern/components/cta-dialog/provider.js +17 -17
  420. package/build/modern/components/cta-dialog/trigger-item.js +6 -6
  421. package/build/modern/components/date-picker/calendar.js +15 -15
  422. package/build/modern/components/date-picker/content.js +6 -6
  423. package/build/modern/components/date-picker/date-picker.js +6 -6
  424. package/build/modern/components/date-picker/day-view.js +11 -11
  425. package/build/modern/components/date-picker/index.js +23 -23
  426. package/build/modern/components/date-picker/input.js +9 -9
  427. package/build/modern/components/date-picker/month-view.js +11 -11
  428. package/build/modern/components/date-picker/parts.js +5 -5
  429. package/build/modern/components/date-picker/primitives.js +4 -4
  430. package/build/modern/components/date-picker/range-input.js +9 -9
  431. package/build/modern/components/date-picker/trigger.js +8 -8
  432. package/build/modern/components/date-picker/view-control-group.js +10 -10
  433. package/build/modern/components/date-picker/year-view.js +11 -11
  434. package/build/modern/components/deprecated/Label.js +8 -8
  435. package/build/modern/components/dialog/close-icon-trigger.js +7 -7
  436. package/build/modern/components/dialog/dialog.js +5 -5
  437. package/build/modern/components/dialog/index.js +11 -11
  438. package/build/modern/components/dialog/parts.js +5 -5
  439. package/build/modern/components/dialog/primitives.js +4 -4
  440. package/build/modern/components/field/field.js +6 -6
  441. package/build/modern/components/field/helper-text.js +5 -5
  442. package/build/modern/components/field/index.js +9 -9
  443. package/build/modern/components/field/input.js +4 -4
  444. package/build/modern/components/field/parts.js +5 -5
  445. package/build/modern/components/field/primitives.js +4 -4
  446. package/build/modern/components/fieldset/fieldset.js +6 -6
  447. package/build/modern/components/fieldset/index.js +6 -6
  448. package/build/modern/components/fieldset/parts.js +5 -5
  449. package/build/modern/components/fieldset/primitives.js +4 -4
  450. package/build/modern/components/file-upload/file-status.js +15 -15
  451. package/build/modern/components/file-upload/file-uploader.js +7 -7
  452. package/build/modern/components/file-upload/index.js +16 -16
  453. package/build/modern/components/icon-button/button.js +5 -5
  454. package/build/modern/components/icon-button/index.js +5 -5
  455. package/build/modern/components/icon-button/primitives.js +4 -4
  456. package/build/modern/components/menu/index.js +5 -5
  457. package/build/modern/components/menu/menu.js +5 -5
  458. package/build/modern/components/menu/primitives.js +4 -4
  459. package/build/modern/components/notifications/center.js +9 -9
  460. package/build/modern/components/notifications/close-trigger.js +6 -6
  461. package/build/modern/components/notifications/index.js +10 -10
  462. package/build/modern/components/notifications/parts.js +5 -5
  463. package/build/modern/components/notifications/primitives.js +4 -4
  464. package/build/modern/components/progress/index.js +5 -5
  465. package/build/modern/components/progress/primitives.js +4 -4
  466. package/build/modern/components/progress/progress-bar.js +5 -5
  467. package/build/modern/components/radio/index.js +8 -8
  468. package/build/modern/components/radio/parts.js +5 -5
  469. package/build/modern/components/radio/primitives.js +4 -4
  470. package/build/modern/components/radio/radio.js +5 -5
  471. package/build/modern/components/rating/index.js +6 -6
  472. package/build/modern/components/rating/parts.js +5 -5
  473. package/build/modern/components/rating/primitives.js +4 -4
  474. package/build/modern/components/rating/rating.js +6 -6
  475. package/build/modern/components/select/index.js +10 -10
  476. package/build/modern/components/select/option-group.js +5 -5
  477. package/build/modern/components/select/option.js +6 -6
  478. package/build/modern/components/select/parts.js +5 -5
  479. package/build/modern/components/select/primitives.js +4 -4
  480. package/build/modern/components/select/select.js +6 -6
  481. package/build/modern/components/switch/index.js +6 -6
  482. package/build/modern/components/switch/parts.js +5 -5
  483. package/build/modern/components/switch/primitives.js +4 -4
  484. package/build/modern/components/switch/switch.js +6 -6
  485. package/build/modern/components/table/index.js +6 -6
  486. package/build/modern/components/table/parts.js +5 -5
  487. package/build/modern/components/table/primitives.js +4 -4
  488. package/build/modern/components/table/table.js +5 -5
  489. package/build/modern/components/tabs/index.js +6 -6
  490. package/build/modern/components/tabs/parts.js +5 -5
  491. package/build/modern/components/tabs/primitives.js +4 -4
  492. package/build/modern/components/tabs/tabs.js +6 -6
  493. package/build/modern/components/tag/index.js +6 -6
  494. package/build/modern/components/tag/tag.js +6 -6
  495. package/build/modern/components/theme/index.js +4 -4
  496. package/build/modern/components/theme/theme.js +4 -4
  497. package/build/modern/components/toggle/index.js +5 -5
  498. package/build/modern/components/toggle/parts.js +5 -5
  499. package/build/modern/components/toggle/primitives.js +4 -4
  500. package/build/modern/components/tooltip/index.js +6 -6
  501. package/build/modern/components/tooltip/parts.js +5 -5
  502. package/build/modern/components/tooltip/primitives.js +4 -4
  503. package/build/modern/components/tooltip/tooltip.js +6 -6
  504. package/build/modern/context/confirm-modal.js +15 -15
  505. package/build/modern/context/field.js +4 -4
  506. package/build/modern/context/prompt-modal.js +19 -19
  507. package/build/modern/index.d.ts +19 -0
  508. package/build/modern/index.js +214 -187
  509. package/build/modern/index.js.map +1 -1
  510. package/build/modern/system/factory.js +2 -2
  511. package/build/modern/system/index.js +3 -3
  512. package/build/modern/system/primitive-factory.js +1 -1
  513. package/package.json +6 -6
  514. package/src/components/carousel/carousel.tsx +55 -0
  515. package/src/components/carousel/index.ts +3 -0
  516. package/src/components/carousel/parts.ts +71 -0
  517. package/src/components/carousel/primitives.ts +58 -0
  518. package/src/index.ts +1 -0
  519. package/src/system/primitive-factory.tsx +33 -18
  520. package/build/modern/chunk-33OXE7IJ.js.map +0 -1
  521. /package/build/modern/{chunk-KHU3YTLM.js.map → chunk-236F7MCH.js.map} +0 -0
  522. /package/build/modern/{chunk-BS4V2YJV.js.map → chunk-2D6BHWPB.js.map} +0 -0
  523. /package/build/modern/{chunk-IWJCQ4BM.js.map → chunk-2KVC3OJ3.js.map} +0 -0
  524. /package/build/modern/{chunk-UHS2TNFC.js.map → chunk-2UQWJSA6.js.map} +0 -0
  525. /package/build/modern/{chunk-2VVJATIW.js.map → chunk-2Z7IKMZC.js.map} +0 -0
  526. /package/build/modern/{chunk-YAZIBTA2.js.map → chunk-3NPWHL5X.js.map} +0 -0
  527. /package/build/modern/{chunk-S7HDNFJJ.js.map → chunk-3UIV3HMB.js.map} +0 -0
  528. /package/build/modern/{chunk-WK7TUQIS.js.map → chunk-3X6VM5FS.js.map} +0 -0
  529. /package/build/modern/{chunk-Y7UXAFII.js.map → chunk-3Z6W4ZFA.js.map} +0 -0
  530. /package/build/modern/{chunk-YMFUEQ2A.js.map → chunk-45ZTZUCD.js.map} +0 -0
  531. /package/build/modern/{chunk-7MWSOSOY.js.map → chunk-4O26WCRC.js.map} +0 -0
  532. /package/build/modern/{chunk-ZGJDFQN2.js.map → chunk-4O64W4BA.js.map} +0 -0
  533. /package/build/modern/{chunk-X6KB5LWU.js.map → chunk-4SOUI4NF.js.map} +0 -0
  534. /package/build/modern/{chunk-77QDH2Q5.js.map → chunk-5B6LMHY2.js.map} +0 -0
  535. /package/build/modern/{chunk-GLH23RDO.js.map → chunk-5L5PT37R.js.map} +0 -0
  536. /package/build/modern/{chunk-ZFEGJR5E.js.map → chunk-5RLQNM73.js.map} +0 -0
  537. /package/build/modern/{chunk-262PENBL.js.map → chunk-6LU43Z4K.js.map} +0 -0
  538. /package/build/modern/{chunk-AHYFFHUW.js.map → chunk-76VTLS7X.js.map} +0 -0
  539. /package/build/modern/{chunk-H6ZGH4VM.js.map → chunk-7B2ZHSH3.js.map} +0 -0
  540. /package/build/modern/{chunk-X34MYQKI.js.map → chunk-7JNOY5MW.js.map} +0 -0
  541. /package/build/modern/{chunk-FIVEPZ5F.js.map → chunk-7UKNQ4RD.js.map} +0 -0
  542. /package/build/modern/{chunk-ABMK5P66.js.map → chunk-AOLWIMWV.js.map} +0 -0
  543. /package/build/modern/{chunk-OG74JDYL.js.map → chunk-AQNXQVXP.js.map} +0 -0
  544. /package/build/modern/{chunk-4ZQUC4DA.js.map → chunk-BHZN6P2K.js.map} +0 -0
  545. /package/build/modern/{chunk-ROWT3E5K.js.map → chunk-BSJM5VYB.js.map} +0 -0
  546. /package/build/modern/{chunk-PI7MKQ62.js.map → chunk-BSZVMBX7.js.map} +0 -0
  547. /package/build/modern/{chunk-HUKQPIDV.js.map → chunk-BXDQ5AXV.js.map} +0 -0
  548. /package/build/modern/{chunk-W7WPVM34.js.map → chunk-C7XAB665.js.map} +0 -0
  549. /package/build/modern/{chunk-H7N6M7VO.js.map → chunk-CHEYITRR.js.map} +0 -0
  550. /package/build/modern/{chunk-CKCGLHLS.js.map → chunk-CONG7TGJ.js.map} +0 -0
  551. /package/build/modern/{chunk-6KGRHE3J.js.map → chunk-D7BCQ2CQ.js.map} +0 -0
  552. /package/build/modern/{chunk-7GT7UUCB.js.map → chunk-DH7SFE2R.js.map} +0 -0
  553. /package/build/modern/{chunk-6KIXF4ES.js.map → chunk-EQ3X7KQ3.js.map} +0 -0
  554. /package/build/modern/{chunk-BGJIAA5F.js.map → chunk-ET3UY6GV.js.map} +0 -0
  555. /package/build/modern/{chunk-27RTYRM7.js.map → chunk-EZJMTWXK.js.map} +0 -0
  556. /package/build/modern/{chunk-VB7T2YYD.js.map → chunk-FSX64HPK.js.map} +0 -0
  557. /package/build/modern/{chunk-JBAE2B2H.js.map → chunk-FVADFCAE.js.map} +0 -0
  558. /package/build/modern/{chunk-5W6HMI2G.js.map → chunk-GFFIJGQC.js.map} +0 -0
  559. /package/build/modern/{chunk-LVA6QLLM.js.map → chunk-GTAIWUFQ.js.map} +0 -0
  560. /package/build/modern/{chunk-7LNGA4BX.js.map → chunk-GZYLYTAG.js.map} +0 -0
  561. /package/build/modern/{chunk-UZHBWTSE.js.map → chunk-HCH5I26B.js.map} +0 -0
  562. /package/build/modern/{chunk-6XO2RTIJ.js.map → chunk-HMUQEMV2.js.map} +0 -0
  563. /package/build/modern/{chunk-TJXWSSHO.js.map → chunk-HYEFRC5Z.js.map} +0 -0
  564. /package/build/modern/{chunk-FL3J7LTC.js.map → chunk-INQZQMLL.js.map} +0 -0
  565. /package/build/modern/{chunk-PGINYK2P.js.map → chunk-IOX43IGB.js.map} +0 -0
  566. /package/build/modern/{chunk-KDIDKP2L.js.map → chunk-IRJITAGE.js.map} +0 -0
  567. /package/build/modern/{chunk-RMLBOGDE.js.map → chunk-IVQCMXV6.js.map} +0 -0
  568. /package/build/modern/{chunk-ZUC3X6GQ.js.map → chunk-IYF5FS6N.js.map} +0 -0
  569. /package/build/modern/{chunk-TIKG6U4Y.js.map → chunk-JIEN2PM7.js.map} +0 -0
  570. /package/build/modern/{chunk-T3U6K34Y.js.map → chunk-JUSH26RO.js.map} +0 -0
  571. /package/build/modern/{chunk-VQIBX475.js.map → chunk-JVAGLLOA.js.map} +0 -0
  572. /package/build/modern/{chunk-5UZUXCMO.js.map → chunk-K3NML67W.js.map} +0 -0
  573. /package/build/modern/{chunk-MPVUVQCJ.js.map → chunk-K3YEOS6O.js.map} +0 -0
  574. /package/build/modern/{chunk-KELIM5A3.js.map → chunk-KITDXURN.js.map} +0 -0
  575. /package/build/modern/{chunk-NC7AHNAS.js.map → chunk-KJYNKQX4.js.map} +0 -0
  576. /package/build/modern/{chunk-BFE2SHZO.js.map → chunk-KZVCQNZI.js.map} +0 -0
  577. /package/build/modern/{chunk-KUF4UUC7.js.map → chunk-L4KBNOWP.js.map} +0 -0
  578. /package/build/modern/{chunk-KF3WIC2Y.js.map → chunk-LO6YTNOP.js.map} +0 -0
  579. /package/build/modern/{chunk-Q6FTLT7K.js.map → chunk-LOJBIVY4.js.map} +0 -0
  580. /package/build/modern/{chunk-CBJ5A5BD.js.map → chunk-LY6ULD43.js.map} +0 -0
  581. /package/build/modern/{chunk-Q3NDU44T.js.map → chunk-MMNUVODK.js.map} +0 -0
  582. /package/build/modern/{chunk-NLZGGXMB.js.map → chunk-MVHFBVDA.js.map} +0 -0
  583. /package/build/modern/{chunk-6P2JY52I.js.map → chunk-N5D6HNGL.js.map} +0 -0
  584. /package/build/modern/{chunk-L4CKWLXL.js.map → chunk-NHM5IWBE.js.map} +0 -0
  585. /package/build/modern/{chunk-EMLKVTGD.js.map → chunk-O4W2BVE7.js.map} +0 -0
  586. /package/build/modern/{chunk-CI7JYXUR.js.map → chunk-OG644D7M.js.map} +0 -0
  587. /package/build/modern/{chunk-P3J5P524.js.map → chunk-OX3NA6DQ.js.map} +0 -0
  588. /package/build/modern/{chunk-HJYVIRNA.js.map → chunk-OYTEXDS6.js.map} +0 -0
  589. /package/build/modern/{chunk-XZ2FNMMC.js.map → chunk-OZTYYWIX.js.map} +0 -0
  590. /package/build/modern/{chunk-IX5QZCM4.js.map → chunk-P6JC32U3.js.map} +0 -0
  591. /package/build/modern/{chunk-CYK3ZJIX.js.map → chunk-PZELEMIY.js.map} +0 -0
  592. /package/build/modern/{chunk-BGZTC53N.js.map → chunk-RI3WN6XL.js.map} +0 -0
  593. /package/build/modern/{chunk-ETYXG2J2.js.map → chunk-RS6DS6RS.js.map} +0 -0
  594. /package/build/modern/{chunk-OSUFAZAK.js.map → chunk-RT4W6GBB.js.map} +0 -0
  595. /package/build/modern/{chunk-XMFTL6KG.js.map → chunk-SFS5ILWG.js.map} +0 -0
  596. /package/build/modern/{chunk-7GVDVLCR.js.map → chunk-SITE2UML.js.map} +0 -0
  597. /package/build/modern/{chunk-XB4HMXOQ.js.map → chunk-SKOX5PJI.js.map} +0 -0
  598. /package/build/modern/{chunk-A6NEZNGY.js.map → chunk-SP7TSFMZ.js.map} +0 -0
  599. /package/build/modern/{chunk-J37VR33H.js.map → chunk-TIQO4VNE.js.map} +0 -0
  600. /package/build/modern/{chunk-2UD72VLC.js.map → chunk-TJSHJF6G.js.map} +0 -0
  601. /package/build/modern/{chunk-RKKI3J6R.js.map → chunk-TKHDOZWN.js.map} +0 -0
  602. /package/build/modern/{chunk-46QXBKGK.js.map → chunk-UZZ26IWW.js.map} +0 -0
  603. /package/build/modern/{chunk-U2ZT7UDW.js.map → chunk-V5TUC5AS.js.map} +0 -0
  604. /package/build/modern/{chunk-QV5JHBHO.js.map → chunk-VQUJGCZW.js.map} +0 -0
  605. /package/build/modern/{chunk-WC6SOU2F.js.map → chunk-VYJAPLLO.js.map} +0 -0
  606. /package/build/modern/{chunk-RCXKKQQA.js.map → chunk-WGWEAB2Q.js.map} +0 -0
  607. /package/build/modern/{chunk-GBV7MIBU.js.map → chunk-X24O5DTP.js.map} +0 -0
  608. /package/build/modern/{chunk-5WT5BM3V.js.map → chunk-YJRAJNYI.js.map} +0 -0
  609. /package/build/modern/{chunk-X6WOC4RF.js.map → chunk-YR6G66UT.js.map} +0 -0
  610. /package/build/modern/{chunk-BT6FMOKM.js.map → chunk-YWPXLHUO.js.map} +0 -0
  611. /package/build/modern/{chunk-QHPJ2C76.js.map → chunk-YZG7BNVB.js.map} +0 -0
  612. /package/build/modern/{chunk-LMEGBPKK.js.map → chunk-Z5DHBMQF.js.map} +0 -0
  613. /package/build/modern/{chunk-2SBNSYYC.js.map → chunk-ZFONE65Q.js.map} +0 -0
  614. /package/build/modern/{chunk-ADOFKGU3.js.map → chunk-ZFVQQJIQ.js.map} +0 -0
  615. /package/build/modern/{chunk-LNDQW46A.js.map → chunk-ZZ4JETME.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/table/table.tsx","../../../../src/components/table/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/show/show.tsx"],"sourcesContent":["import type { TablePartsValue } from './parts'\nimport {\n Caption,\n TableEl,\n TableRoot,\n TableTrigger,\n Tbody,\n Td,\n Tfoot,\n Th,\n Thead,\n Tr,\n type TableRootProps,\n} from './primitives'\nimport { Show } from '../show/index'\n\nexport interface TableRootElProps extends TableRootProps {\n /**\n * An easy to understand description of the table. Required for accessibility.\n */\n caption: string\n /**\n * If true, the table header will be sticky.\n *\n * @default false\n */\n sticky?: boolean\n}\n\n/**\n * An abstraction over the TableRoot component that adds a sticky attribute.\n * @description [Cerberus Docs](https://cerberus.digitalu.design/react/table)\n *\n * @remarks\n *\n * This component is used to create a table with an optional sticky header.\n * It is a wrapper around the TableRoot component and the TableEl primitive.\n */\nfunction TableRootEl(props: TableRootElProps) {\n const { sticky, caption, ...rootProps } = props\n return (\n <TableRoot {...rootProps} data-sticky={sticky ?? false}>\n <TableEl>\n <Show when={caption}>\n <Caption>{caption}</Caption>\n </Show>\n\n {rootProps.children}\n </TableEl>\n </TableRoot>\n )\n}\n\n/**\n * An Object containing the parts of the Table component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the TableParts object and\n * the entire family of components vs. only what you use.\n */\nexport const Table: Omit<TablePartsValue, 'Table'> = {\n Root: TableRootEl,\n Caption: Caption,\n Header: Thead,\n HeaderCol: Th,\n Body: Tbody,\n Row: Tr,\n Cell: Td,\n Footer: Tfoot,\n Trigger: TableTrigger,\n}\n","import { ark, type HTMLArkProps } from '@ark-ui/react/factory'\nimport { table, type TableVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Table component.\n * @module 'table/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(table)\n\n// Root\n\nexport type TableRootProps = CerberusPrimitiveProps<\n HTMLArkProps<'div'> & TableVariantProps\n>\nexport const TableRoot = withSlotRecipe<TableRootProps>(ark.div, 'root', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'root',\n },\n})\n\n// TableEl\n\nexport type TableElProps = CerberusPrimitiveProps<HTMLArkProps<'table'>>\nexport const TableEl = withSlotRecipe<TableElProps>(ark.table, 'table', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'table',\n },\n})\n\n// Caption\n\nexport type CaptionProps = CerberusPrimitiveProps<HTMLArkProps<'caption'>>\nexport const Caption = withSlotRecipe<CaptionProps>(ark.caption, 'caption', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'caption',\n },\n})\n\n// Thead\n\nexport type TheadProps = CerberusPrimitiveProps<HTMLArkProps<'thead'>>\nexport const Thead = withSlotRecipe<TheadProps>(ark.thead, 'thead', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'header',\n },\n})\n\n// Th\n\nexport type ThProps = CerberusPrimitiveProps<HTMLArkProps<'th'>>\nexport const Th = withSlotRecipe<ThProps>(ark.th, 'th', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'header-col',\n },\n})\n\n// Tbody\n\nexport type TbodyProps = CerberusPrimitiveProps<HTMLArkProps<'tbody'>>\nexport const Tbody = withSlotRecipe<TbodyProps>(ark.tbody, 'tbody', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'body',\n },\n})\n\n// Tr\nexport type TrProps = CerberusPrimitiveProps<HTMLArkProps<'tr'>>\nexport const Tr = withSlotRecipe<TrProps>(ark.tr, 'tr', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'row',\n },\n})\n\n// Td\n\nexport type TdProps = CerberusPrimitiveProps<HTMLArkProps<'td'>>\nexport const Td = withSlotRecipe<TdProps>(ark.td, 'td', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'cell',\n },\n})\n\n// Tfoot\n\nexport type TfootProps = CerberusPrimitiveProps<HTMLArkProps<'tfoot'>>\nexport const Tfoot = withSlotRecipe<TfootProps>(ark.tfoot, 'tfoot', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'footer',\n },\n})\n\n// TableTrigger\n\nexport type TableTriggerProps = CerberusPrimitiveProps<HTMLArkProps<'button'>>\nexport const TableTrigger = withSlotRecipe<TableTriggerProps>(\n ark.button,\n 'trigger',\n {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'trigger',\n },\n },\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 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"],"mappings":"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","names":["import_jsx_runtime","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../../../../src/components/table/table.tsx","../../../../src/components/table/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/show/show.tsx"],"sourcesContent":["import type { TablePartsValue } from './parts'\nimport {\n Caption,\n TableEl,\n TableRoot,\n TableTrigger,\n Tbody,\n Td,\n Tfoot,\n Th,\n Thead,\n Tr,\n type TableRootProps,\n} from './primitives'\nimport { Show } from '../show/index'\n\nexport interface TableRootElProps extends TableRootProps {\n /**\n * An easy to understand description of the table. Required for accessibility.\n */\n caption: string\n /**\n * If true, the table header will be sticky.\n *\n * @default false\n */\n sticky?: boolean\n}\n\n/**\n * An abstraction over the TableRoot component that adds a sticky attribute.\n * @description [Cerberus Docs](https://cerberus.digitalu.design/react/table)\n *\n * @remarks\n *\n * This component is used to create a table with an optional sticky header.\n * It is a wrapper around the TableRoot component and the TableEl primitive.\n */\nfunction TableRootEl(props: TableRootElProps) {\n const { sticky, caption, ...rootProps } = props\n return (\n <TableRoot {...rootProps} data-sticky={sticky ?? false}>\n <TableEl>\n <Show when={caption}>\n <Caption>{caption}</Caption>\n </Show>\n\n {rootProps.children}\n </TableEl>\n </TableRoot>\n )\n}\n\n/**\n * An Object containing the parts of the Table component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the TableParts object and\n * the entire family of components vs. only what you use.\n */\nexport const Table: Omit<TablePartsValue, 'Table'> = {\n Root: TableRootEl,\n Caption: Caption,\n Header: Thead,\n HeaderCol: Th,\n Body: Tbody,\n Row: Tr,\n Cell: Td,\n Footer: Tfoot,\n Trigger: TableTrigger,\n}\n","import { ark, type HTMLArkProps } from '@ark-ui/react/factory'\nimport { table, type TableVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Table component.\n * @module 'table/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(table)\n\n// Root\n\nexport type TableRootProps = CerberusPrimitiveProps<\n HTMLArkProps<'div'> & TableVariantProps\n>\nexport const TableRoot = withSlotRecipe<TableRootProps>(ark.div, 'root', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'root',\n },\n})\n\n// TableEl\n\nexport type TableElProps = CerberusPrimitiveProps<HTMLArkProps<'table'>>\nexport const TableEl = withSlotRecipe<TableElProps>(ark.table, 'table', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'table',\n },\n})\n\n// Caption\n\nexport type CaptionProps = CerberusPrimitiveProps<HTMLArkProps<'caption'>>\nexport const Caption = withSlotRecipe<CaptionProps>(ark.caption, 'caption', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'caption',\n },\n})\n\n// Thead\n\nexport type TheadProps = CerberusPrimitiveProps<HTMLArkProps<'thead'>>\nexport const Thead = withSlotRecipe<TheadProps>(ark.thead, 'thead', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'header',\n },\n})\n\n// Th\n\nexport type ThProps = CerberusPrimitiveProps<HTMLArkProps<'th'>>\nexport const Th = withSlotRecipe<ThProps>(ark.th, 'th', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'header-col',\n },\n})\n\n// Tbody\n\nexport type TbodyProps = CerberusPrimitiveProps<HTMLArkProps<'tbody'>>\nexport const Tbody = withSlotRecipe<TbodyProps>(ark.tbody, 'tbody', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'body',\n },\n})\n\n// Tr\nexport type TrProps = CerberusPrimitiveProps<HTMLArkProps<'tr'>>\nexport const Tr = withSlotRecipe<TrProps>(ark.tr, 'tr', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'row',\n },\n})\n\n// Td\n\nexport type TdProps = CerberusPrimitiveProps<HTMLArkProps<'td'>>\nexport const Td = withSlotRecipe<TdProps>(ark.td, 'td', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'cell',\n },\n})\n\n// Tfoot\n\nexport type TfootProps = CerberusPrimitiveProps<HTMLArkProps<'tfoot'>>\nexport const Tfoot = withSlotRecipe<TfootProps>(ark.tfoot, 'tfoot', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'footer',\n },\n})\n\n// TableTrigger\n\nexport type TableTriggerProps = CerberusPrimitiveProps<HTMLArkProps<'button'>>\nexport const TableTrigger = withSlotRecipe<TableTriggerProps>(\n ark.button,\n 'trigger',\n {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'trigger',\n },\n },\n)\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type ElementType,\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> | string,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n return false\n }\n return true\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 * Can be a string or a component reference.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n *\n * @example\n * ```ts\n * const { withNoRecipe } = createCerberusPrimitive(buttonRecipe)\n * const Button = withNoRecipe('button')\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P> | string,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n const El = Component as ComponentType<P> | ElementType\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 <El {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n if (this.validateComponent(El)) {\n const ElName = typeof El === 'string' ? El : El.displayName || El.name\n CerbComponent.displayName = ElName\n }\n\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> | string,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const El = Component as ComponentType<P> | ElementType\n\n const recipe = this.recipe as CerberusRecipe\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 if (this.validateComponent(El)) {\n const ElName = typeof El === 'string' ? El : El.displayName || El.name\n CerbComponent.displayName = ElName\n }\n\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> | string,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const El = Component as ComponentType<P> | ElementType\n\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\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 if (this.validateComponent(El)) {\n const ElName = typeof El === 'string' ? El : El.displayName || El.name\n CerbComponent.displayName = ElName\n }\n\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 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"],"mappings":"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","names":["import_jsx_runtime","import_jsx_runtime"]}
@@ -45,23 +45,28 @@ var CerberusPrimitive = class {
45
45
  /**
46
46
  * Creates a Cerberus component with bare features and no recipe.
47
47
  * @param Component - The React component to enhance with Cerberus features.
48
+ * Can be a string or a component reference.
48
49
  * @returns A new React component that applies Cerberus features to the
49
50
  * original component.
51
+ *
50
52
  * @example
51
- * ```typescript
52
- * const { withNoRecipe } = createCerberusPrimitive(button)
53
- * const Button = withNoRecipe(RawButton)
53
+ * ```ts
54
+ * const { withNoRecipe } = createCerberusPrimitive(buttonRecipe)
55
+ * const Button = withNoRecipe('button')
54
56
  * ```
55
57
  */
56
58
  __publicField(this, "withNoRecipe", (Component, options) => {
57
59
  const { defaultProps } = options || {};
58
- this.validateComponent(Component);
60
+ const El = Component;
59
61
  const CerbComponent = (props) => {
60
62
  const { css: customCss, className, ...nativeProps } = props;
61
63
  const styles = this.hasStyles((0, import_css.cx)(className, (0, import_css.css)(customCss)));
62
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, { ...defaultProps, ...styles, ...nativeProps });
64
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(El, { ...defaultProps, ...styles, ...nativeProps });
63
65
  };
64
- CerbComponent.displayName = Component.displayName || Component.name;
66
+ if (this.validateComponent(El)) {
67
+ const ElName = typeof El === "string" ? El : El.displayName || El.name;
68
+ CerbComponent.displayName = ElName;
69
+ }
65
70
  return CerbComponent;
66
71
  });
67
72
  /**
@@ -73,8 +78,8 @@ var CerberusPrimitive = class {
73
78
  */
74
79
  __publicField(this, "withRecipe", (Component, options) => {
75
80
  const { defaultProps } = options || {};
81
+ const El = Component;
76
82
  const recipe = this.recipe;
77
- this.validateComponent(Component);
78
83
  const CerbComponent = (internalProps) => {
79
84
  const {
80
85
  css: customCss,
@@ -92,7 +97,10 @@ var CerberusPrimitive = class {
92
97
  }
93
98
  );
94
99
  };
95
- CerbComponent.displayName = Component.displayName || Component.name;
100
+ if (this.validateComponent(El)) {
101
+ const ElName = typeof El === "string" ? El : El.displayName || El.name;
102
+ CerbComponent.displayName = ElName;
103
+ }
96
104
  return CerbComponent;
97
105
  });
98
106
  /**
@@ -109,8 +117,8 @@ var CerberusPrimitive = class {
109
117
  */
110
118
  __publicField(this, "withSlotRecipe", (Component, slot, options) => {
111
119
  const { defaultProps } = options || {};
120
+ const El = Component;
112
121
  const recipe = this.recipe;
113
- this.validateComponent(Component);
114
122
  const CerbComponent = (internalProps) => {
115
123
  const {
116
124
  css: customCss,
@@ -129,7 +137,10 @@ var CerberusPrimitive = class {
129
137
  }
130
138
  );
131
139
  };
132
- CerbComponent.displayName = Component.displayName || Component.name;
140
+ if (this.validateComponent(El)) {
141
+ const ElName = typeof El === "string" ? El : El.displayName || El.name;
142
+ CerbComponent.displayName = ElName;
143
+ }
133
144
  return CerbComponent;
134
145
  });
135
146
  this.recipe = recipe ?? null;
@@ -144,8 +155,9 @@ var CerberusPrimitive = class {
144
155
  }
145
156
  validateComponent(Component) {
146
157
  if (typeof Component !== "function" && typeof Component !== "object") {
147
- throw new Error("Expected a React component as the first argument.");
158
+ return false;
148
159
  }
160
+ return true;
149
161
  }
150
162
  };
151
163
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/tabs/index.ts","../../../../src/components/tabs/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/tabs/parts.ts","../../../../src/components/tabs/tabs.tsx"],"sourcesContent":["export * from './parts'\nexport * from './primitives'\nexport * from './tabs'\n","import {\n Tabs,\n type TabContentProps as ArkTabContentProps,\n type TabIndicatorProps as ArkTabIndicatorProps,\n type TabListProps as ArkTabListProps,\n type TabsRootProps as ArkTabsRootProps,\n type TabTriggerProps as ArkTabTriggerProps,\n} from '@ark-ui/react/tabs'\nimport { tabs, type TabsVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module provides the primitives for the Tabs component.\n * @module 'tabs/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(tabs)\n\n// Root\n\nexport type TabsRootProps = CerberusPrimitiveProps<\n ArkTabsRootProps & TabsVariantProps\n>\n// @ts-expect-error this is a workaround for the type issue WIP\nexport const TabsRoot = withSlotRecipe<TabsRootProps>(Tabs.Root, 'root')\n\n// TabsList\n\nexport type TabsListProps = CerberusPrimitiveProps<ArkTabListProps>\nexport const TabsList = withSlotRecipe<TabsListProps>(Tabs.List, 'list')\n\n// TabsTrigger\n\nexport type TabsTriggerProps = CerberusPrimitiveProps<ArkTabTriggerProps>\nexport const TabsTrigger = withSlotRecipe<TabsTriggerProps>(\n Tabs.Trigger,\n 'trigger',\n)\n\n// TabsContent\n\nexport type TabContentProps = CerberusPrimitiveProps<ArkTabContentProps>\nexport const TabsContent = withSlotRecipe<TabContentProps>(\n Tabs.Content,\n 'content',\n)\n\n// TabsIndicator\n\nexport type TabIndicatorProps = CerberusPrimitiveProps<ArkTabIndicatorProps>\nexport const TabsIndicator = withSlotRecipe<TabIndicatorProps>(\n Tabs.Indicator,\n 'indicator',\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 TabsContent,\n TabsIndicator,\n TabsList,\n TabsRoot,\n TabsTrigger,\n} from './primitives'\n\n/**\n * This module contains the parts of the Tabs parts.\n * @module 'tabs/parts'\n */\n\nexport interface TabsPartsValue {\n /**\n * The container of the tabs.\n */\n Root: ElementType\n /**\n * The tab list element.\n */\n List: ElementType\n /**\n * The tab element.\n */\n Trigger: ElementType\n /**\n * The tab content element.\n */\n Content: ElementType\n /**\n * The tab indicator element.\n */\n Indicator: ElementType\n}\n\n/**\n * An Object containing the parts of the Switch component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the TabsParts object and\n * the entire family of components vs. only what you use.\n */\nexport const TabsParts: TabsPartsValue = {\n Root: TabsRoot,\n List: TabsList,\n Trigger: TabsTrigger,\n Content: TabsContent,\n Indicator: TabsIndicator,\n}\n","import type { ElementType } from 'react'\nimport { TabsParts, type TabsPartsValue } from './parts'\nimport type { TabsListProps } from './primitives'\n\n/**\n * This module contains an abstraction of the Tabs family.\n * @module 'tabs'\n */\n\ninterface TabsValueProps\n extends Omit<TabsPartsValue, 'Trigger' | 'Content' | 'Indicator'> {\n /**\n * A named component for the TabsTrigger.\n */\n Tab: ElementType\n /**\n * A named component for the TabsContent.\n */\n Panel: ElementType\n}\n\n/**\n * An abstraction of the TabsList component that includes the TabIndicator.\n */\nfunction TabsList(props: TabsListProps) {\n const { children, ...listProps } = props\n return (\n <TabsParts.List {...listProps}>\n {children}\n <TabsParts.Indicator />\n </TabsParts.List>\n )\n}\n\n/**\n * An Object containing the abstracted parts of the Tabs component.\n *\n * @remarks\n *\n * When using object component syntax, you import the TabsParts object and\n * the entire family of components vs. only what you use.\n */\nexport const Tabs: TabsValueProps = {\n Root: TabsParts.Root,\n List: TabsList,\n Tab: TabsParts.Trigger,\n Panel: TabsParts.Content,\n}\n"],"mappings":"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","names":["Tabs","import_jsx_runtime","TabsList","Tabs"]}
1
+ {"version":3,"sources":["../../../../src/components/tabs/index.ts","../../../../src/components/tabs/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/tabs/parts.ts","../../../../src/components/tabs/tabs.tsx"],"sourcesContent":["export * from './parts'\nexport * from './primitives'\nexport * from './tabs'\n","import {\n Tabs,\n type TabContentProps as ArkTabContentProps,\n type TabIndicatorProps as ArkTabIndicatorProps,\n type TabListProps as ArkTabListProps,\n type TabsRootProps as ArkTabsRootProps,\n type TabTriggerProps as ArkTabTriggerProps,\n} from '@ark-ui/react/tabs'\nimport { tabs, type TabsVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module provides the primitives for the Tabs component.\n * @module 'tabs/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(tabs)\n\n// Root\n\nexport type TabsRootProps = CerberusPrimitiveProps<\n ArkTabsRootProps & TabsVariantProps\n>\n// @ts-expect-error this is a workaround for the type issue WIP\nexport const TabsRoot = withSlotRecipe<TabsRootProps>(Tabs.Root, 'root')\n\n// TabsList\n\nexport type TabsListProps = CerberusPrimitiveProps<ArkTabListProps>\nexport const TabsList = withSlotRecipe<TabsListProps>(Tabs.List, 'list')\n\n// TabsTrigger\n\nexport type TabsTriggerProps = CerberusPrimitiveProps<ArkTabTriggerProps>\nexport const TabsTrigger = withSlotRecipe<TabsTriggerProps>(\n Tabs.Trigger,\n 'trigger',\n)\n\n// TabsContent\n\nexport type TabContentProps = CerberusPrimitiveProps<ArkTabContentProps>\nexport const TabsContent = withSlotRecipe<TabContentProps>(\n Tabs.Content,\n 'content',\n)\n\n// TabsIndicator\n\nexport type TabIndicatorProps = CerberusPrimitiveProps<ArkTabIndicatorProps>\nexport const TabsIndicator = withSlotRecipe<TabIndicatorProps>(\n Tabs.Indicator,\n 'indicator',\n)\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type ElementType,\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> | string,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n return false\n }\n return true\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 * Can be a string or a component reference.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n *\n * @example\n * ```ts\n * const { withNoRecipe } = createCerberusPrimitive(buttonRecipe)\n * const Button = withNoRecipe('button')\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P> | string,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n const El = Component as ComponentType<P> | ElementType\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 <El {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n if (this.validateComponent(El)) {\n const ElName = typeof El === 'string' ? El : El.displayName || El.name\n CerbComponent.displayName = ElName\n }\n\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> | string,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const El = Component as ComponentType<P> | ElementType\n\n const recipe = this.recipe as CerberusRecipe\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 if (this.validateComponent(El)) {\n const ElName = typeof El === 'string' ? El : El.displayName || El.name\n CerbComponent.displayName = ElName\n }\n\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> | string,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const El = Component as ComponentType<P> | ElementType\n\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\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 if (this.validateComponent(El)) {\n const ElName = typeof El === 'string' ? El : El.displayName || El.name\n CerbComponent.displayName = ElName\n }\n\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 TabsContent,\n TabsIndicator,\n TabsList,\n TabsRoot,\n TabsTrigger,\n} from './primitives'\n\n/**\n * This module contains the parts of the Tabs parts.\n * @module 'tabs/parts'\n */\n\nexport interface TabsPartsValue {\n /**\n * The container of the tabs.\n */\n Root: ElementType\n /**\n * The tab list element.\n */\n List: ElementType\n /**\n * The tab element.\n */\n Trigger: ElementType\n /**\n * The tab content element.\n */\n Content: ElementType\n /**\n * The tab indicator element.\n */\n Indicator: ElementType\n}\n\n/**\n * An Object containing the parts of the Switch component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the TabsParts object and\n * the entire family of components vs. only what you use.\n */\nexport const TabsParts: TabsPartsValue = {\n Root: TabsRoot,\n List: TabsList,\n Trigger: TabsTrigger,\n Content: TabsContent,\n Indicator: TabsIndicator,\n}\n","import type { ElementType } from 'react'\nimport { TabsParts, type TabsPartsValue } from './parts'\nimport type { TabsListProps } from './primitives'\n\n/**\n * This module contains an abstraction of the Tabs family.\n * @module 'tabs'\n */\n\ninterface TabsValueProps\n extends Omit<TabsPartsValue, 'Trigger' | 'Content' | 'Indicator'> {\n /**\n * A named component for the TabsTrigger.\n */\n Tab: ElementType\n /**\n * A named component for the TabsContent.\n */\n Panel: ElementType\n}\n\n/**\n * An abstraction of the TabsList component that includes the TabIndicator.\n */\nfunction TabsList(props: TabsListProps) {\n const { children, ...listProps } = props\n return (\n <TabsParts.List {...listProps}>\n {children}\n <TabsParts.Indicator />\n </TabsParts.List>\n )\n}\n\n/**\n * An Object containing the abstracted parts of the Tabs component.\n *\n * @remarks\n *\n * When using object component syntax, you import the TabsParts object and\n * the entire family of components vs. only what you use.\n */\nexport const Tabs: TabsValueProps = {\n Root: TabsParts.Root,\n List: TabsList,\n Tab: TabsParts.Trigger,\n Panel: TabsParts.Content,\n}\n"],"mappings":"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","names":["Tabs","import_jsx_runtime","TabsList","Tabs"]}
@@ -39,23 +39,28 @@ var CerberusPrimitive = class {
39
39
  /**
40
40
  * Creates a Cerberus component with bare features and no recipe.
41
41
  * @param Component - The React component to enhance with Cerberus features.
42
+ * Can be a string or a component reference.
42
43
  * @returns A new React component that applies Cerberus features to the
43
44
  * original component.
45
+ *
44
46
  * @example
45
- * ```typescript
46
- * const { withNoRecipe } = createCerberusPrimitive(button)
47
- * const Button = withNoRecipe(RawButton)
47
+ * ```ts
48
+ * const { withNoRecipe } = createCerberusPrimitive(buttonRecipe)
49
+ * const Button = withNoRecipe('button')
48
50
  * ```
49
51
  */
50
52
  __publicField(this, "withNoRecipe", (Component, options) => {
51
53
  const { defaultProps } = options || {};
52
- this.validateComponent(Component);
54
+ const El = Component;
53
55
  const CerbComponent = (props) => {
54
56
  const { css: customCss, className, ...nativeProps } = props;
55
57
  const styles = this.hasStyles((0, import_css.cx)(className, (0, import_css.css)(customCss)));
56
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, { ...defaultProps, ...styles, ...nativeProps });
58
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(El, { ...defaultProps, ...styles, ...nativeProps });
57
59
  };
58
- CerbComponent.displayName = Component.displayName || Component.name;
60
+ if (this.validateComponent(El)) {
61
+ const ElName = typeof El === "string" ? El : El.displayName || El.name;
62
+ CerbComponent.displayName = ElName;
63
+ }
59
64
  return CerbComponent;
60
65
  });
61
66
  /**
@@ -67,8 +72,8 @@ var CerberusPrimitive = class {
67
72
  */
68
73
  __publicField(this, "withRecipe", (Component, options) => {
69
74
  const { defaultProps } = options || {};
75
+ const El = Component;
70
76
  const recipe = this.recipe;
71
- this.validateComponent(Component);
72
77
  const CerbComponent = (internalProps) => {
73
78
  const {
74
79
  css: customCss,
@@ -86,7 +91,10 @@ var CerberusPrimitive = class {
86
91
  }
87
92
  );
88
93
  };
89
- CerbComponent.displayName = Component.displayName || Component.name;
94
+ if (this.validateComponent(El)) {
95
+ const ElName = typeof El === "string" ? El : El.displayName || El.name;
96
+ CerbComponent.displayName = ElName;
97
+ }
90
98
  return CerbComponent;
91
99
  });
92
100
  /**
@@ -103,8 +111,8 @@ var CerberusPrimitive = class {
103
111
  */
104
112
  __publicField(this, "withSlotRecipe", (Component, slot, options) => {
105
113
  const { defaultProps } = options || {};
114
+ const El = Component;
106
115
  const recipe = this.recipe;
107
- this.validateComponent(Component);
108
116
  const CerbComponent = (internalProps) => {
109
117
  const {
110
118
  css: customCss,
@@ -123,7 +131,10 @@ var CerberusPrimitive = class {
123
131
  }
124
132
  );
125
133
  };
126
- CerbComponent.displayName = Component.displayName || Component.name;
134
+ if (this.validateComponent(El)) {
135
+ const ElName = typeof El === "string" ? El : El.displayName || El.name;
136
+ CerbComponent.displayName = ElName;
137
+ }
127
138
  return CerbComponent;
128
139
  });
129
140
  this.recipe = recipe ?? null;
@@ -138,8 +149,9 @@ var CerberusPrimitive = class {
138
149
  }
139
150
  validateComponent(Component) {
140
151
  if (typeof Component !== "function" && typeof Component !== "object") {
141
- throw new Error("Expected a React component as the first argument.");
152
+ return false;
142
153
  }
154
+ return true;
143
155
  }
144
156
  };
145
157
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/tabs/parts.ts","../../../../src/components/tabs/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts"],"sourcesContent":["import type { ElementType } from 'react'\nimport {\n TabsContent,\n TabsIndicator,\n TabsList,\n TabsRoot,\n TabsTrigger,\n} from './primitives'\n\n/**\n * This module contains the parts of the Tabs parts.\n * @module 'tabs/parts'\n */\n\nexport interface TabsPartsValue {\n /**\n * The container of the tabs.\n */\n Root: ElementType\n /**\n * The tab list element.\n */\n List: ElementType\n /**\n * The tab element.\n */\n Trigger: ElementType\n /**\n * The tab content element.\n */\n Content: ElementType\n /**\n * The tab indicator element.\n */\n Indicator: ElementType\n}\n\n/**\n * An Object containing the parts of the Switch component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the TabsParts object and\n * the entire family of components vs. only what you use.\n */\nexport const TabsParts: TabsPartsValue = {\n Root: TabsRoot,\n List: TabsList,\n Trigger: TabsTrigger,\n Content: TabsContent,\n Indicator: TabsIndicator,\n}\n","import {\n Tabs,\n type TabContentProps as ArkTabContentProps,\n type TabIndicatorProps as ArkTabIndicatorProps,\n type TabListProps as ArkTabListProps,\n type TabsRootProps as ArkTabsRootProps,\n type TabTriggerProps as ArkTabTriggerProps,\n} from '@ark-ui/react/tabs'\nimport { tabs, type TabsVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module provides the primitives for the Tabs component.\n * @module 'tabs/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(tabs)\n\n// Root\n\nexport type TabsRootProps = CerberusPrimitiveProps<\n ArkTabsRootProps & TabsVariantProps\n>\n// @ts-expect-error this is a workaround for the type issue WIP\nexport const TabsRoot = withSlotRecipe<TabsRootProps>(Tabs.Root, 'root')\n\n// TabsList\n\nexport type TabsListProps = CerberusPrimitiveProps<ArkTabListProps>\nexport const TabsList = withSlotRecipe<TabsListProps>(Tabs.List, 'list')\n\n// TabsTrigger\n\nexport type TabsTriggerProps = CerberusPrimitiveProps<ArkTabTriggerProps>\nexport const TabsTrigger = withSlotRecipe<TabsTriggerProps>(\n Tabs.Trigger,\n 'trigger',\n)\n\n// TabsContent\n\nexport type TabContentProps = CerberusPrimitiveProps<ArkTabContentProps>\nexport const TabsContent = withSlotRecipe<TabContentProps>(\n Tabs.Content,\n 'content',\n)\n\n// TabsIndicator\n\nexport type TabIndicatorProps = CerberusPrimitiveProps<ArkTabIndicatorProps>\nexport const TabsIndicator = withSlotRecipe<TabIndicatorProps>(\n Tabs.Indicator,\n 'indicator',\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":[]}
1
+ {"version":3,"sources":["../../../../src/components/tabs/parts.ts","../../../../src/components/tabs/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts"],"sourcesContent":["import type { ElementType } from 'react'\nimport {\n TabsContent,\n TabsIndicator,\n TabsList,\n TabsRoot,\n TabsTrigger,\n} from './primitives'\n\n/**\n * This module contains the parts of the Tabs parts.\n * @module 'tabs/parts'\n */\n\nexport interface TabsPartsValue {\n /**\n * The container of the tabs.\n */\n Root: ElementType\n /**\n * The tab list element.\n */\n List: ElementType\n /**\n * The tab element.\n */\n Trigger: ElementType\n /**\n * The tab content element.\n */\n Content: ElementType\n /**\n * The tab indicator element.\n */\n Indicator: ElementType\n}\n\n/**\n * An Object containing the parts of the Switch component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the TabsParts object and\n * the entire family of components vs. only what you use.\n */\nexport const TabsParts: TabsPartsValue = {\n Root: TabsRoot,\n List: TabsList,\n Trigger: TabsTrigger,\n Content: TabsContent,\n Indicator: TabsIndicator,\n}\n","import {\n Tabs,\n type TabContentProps as ArkTabContentProps,\n type TabIndicatorProps as ArkTabIndicatorProps,\n type TabListProps as ArkTabListProps,\n type TabsRootProps as ArkTabsRootProps,\n type TabTriggerProps as ArkTabTriggerProps,\n} from '@ark-ui/react/tabs'\nimport { tabs, type TabsVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module provides the primitives for the Tabs component.\n * @module 'tabs/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(tabs)\n\n// Root\n\nexport type TabsRootProps = CerberusPrimitiveProps<\n ArkTabsRootProps & TabsVariantProps\n>\n// @ts-expect-error this is a workaround for the type issue WIP\nexport const TabsRoot = withSlotRecipe<TabsRootProps>(Tabs.Root, 'root')\n\n// TabsList\n\nexport type TabsListProps = CerberusPrimitiveProps<ArkTabListProps>\nexport const TabsList = withSlotRecipe<TabsListProps>(Tabs.List, 'list')\n\n// TabsTrigger\n\nexport type TabsTriggerProps = CerberusPrimitiveProps<ArkTabTriggerProps>\nexport const TabsTrigger = withSlotRecipe<TabsTriggerProps>(\n Tabs.Trigger,\n 'trigger',\n)\n\n// TabsContent\n\nexport type TabContentProps = CerberusPrimitiveProps<ArkTabContentProps>\nexport const TabsContent = withSlotRecipe<TabContentProps>(\n Tabs.Content,\n 'content',\n)\n\n// TabsIndicator\n\nexport type TabIndicatorProps = CerberusPrimitiveProps<ArkTabIndicatorProps>\nexport const TabsIndicator = withSlotRecipe<TabIndicatorProps>(\n Tabs.Indicator,\n 'indicator',\n)\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type ElementType,\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> | string,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n return false\n }\n return true\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 * Can be a string or a component reference.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n *\n * @example\n * ```ts\n * const { withNoRecipe } = createCerberusPrimitive(buttonRecipe)\n * const Button = withNoRecipe('button')\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P> | string,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n const El = Component as ComponentType<P> | ElementType\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 <El {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n if (this.validateComponent(El)) {\n const ElName = typeof El === 'string' ? El : El.displayName || El.name\n CerbComponent.displayName = ElName\n }\n\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> | string,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const El = Component as ComponentType<P> | ElementType\n\n const recipe = this.recipe as CerberusRecipe\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 if (this.validateComponent(El)) {\n const ElName = typeof El === 'string' ? El : El.displayName || El.name\n CerbComponent.displayName = ElName\n }\n\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> | string,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const El = Component as ComponentType<P> | ElementType\n\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\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 if (this.validateComponent(El)) {\n const ElName = typeof El === 'string' ? El : El.displayName || El.name\n CerbComponent.displayName = ElName\n }\n\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":[]}
@@ -41,23 +41,28 @@ var CerberusPrimitive = class {
41
41
  /**
42
42
  * Creates a Cerberus component with bare features and no recipe.
43
43
  * @param Component - The React component to enhance with Cerberus features.
44
+ * Can be a string or a component reference.
44
45
  * @returns A new React component that applies Cerberus features to the
45
46
  * original component.
47
+ *
46
48
  * @example
47
- * ```typescript
48
- * const { withNoRecipe } = createCerberusPrimitive(button)
49
- * const Button = withNoRecipe(RawButton)
49
+ * ```ts
50
+ * const { withNoRecipe } = createCerberusPrimitive(buttonRecipe)
51
+ * const Button = withNoRecipe('button')
50
52
  * ```
51
53
  */
52
54
  __publicField(this, "withNoRecipe", (Component, options) => {
53
55
  const { defaultProps } = options || {};
54
- this.validateComponent(Component);
56
+ const El = Component;
55
57
  const CerbComponent = (props) => {
56
58
  const { css: customCss, className, ...nativeProps } = props;
57
59
  const styles = this.hasStyles((0, import_css.cx)(className, (0, import_css.css)(customCss)));
58
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, { ...defaultProps, ...styles, ...nativeProps });
60
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(El, { ...defaultProps, ...styles, ...nativeProps });
59
61
  };
60
- CerbComponent.displayName = Component.displayName || Component.name;
62
+ if (this.validateComponent(El)) {
63
+ const ElName = typeof El === "string" ? El : El.displayName || El.name;
64
+ CerbComponent.displayName = ElName;
65
+ }
61
66
  return CerbComponent;
62
67
  });
63
68
  /**
@@ -69,8 +74,8 @@ var CerberusPrimitive = class {
69
74
  */
70
75
  __publicField(this, "withRecipe", (Component, options) => {
71
76
  const { defaultProps } = options || {};
77
+ const El = Component;
72
78
  const recipe = this.recipe;
73
- this.validateComponent(Component);
74
79
  const CerbComponent = (internalProps) => {
75
80
  const {
76
81
  css: customCss,
@@ -88,7 +93,10 @@ var CerberusPrimitive = class {
88
93
  }
89
94
  );
90
95
  };
91
- CerbComponent.displayName = Component.displayName || Component.name;
96
+ if (this.validateComponent(El)) {
97
+ const ElName = typeof El === "string" ? El : El.displayName || El.name;
98
+ CerbComponent.displayName = ElName;
99
+ }
92
100
  return CerbComponent;
93
101
  });
94
102
  /**
@@ -105,8 +113,8 @@ var CerberusPrimitive = class {
105
113
  */
106
114
  __publicField(this, "withSlotRecipe", (Component, slot, options) => {
107
115
  const { defaultProps } = options || {};
116
+ const El = Component;
108
117
  const recipe = this.recipe;
109
- this.validateComponent(Component);
110
118
  const CerbComponent = (internalProps) => {
111
119
  const {
112
120
  css: customCss,
@@ -125,7 +133,10 @@ var CerberusPrimitive = class {
125
133
  }
126
134
  );
127
135
  };
128
- CerbComponent.displayName = Component.displayName || Component.name;
136
+ if (this.validateComponent(El)) {
137
+ const ElName = typeof El === "string" ? El : El.displayName || El.name;
138
+ CerbComponent.displayName = ElName;
139
+ }
129
140
  return CerbComponent;
130
141
  });
131
142
  this.recipe = recipe ?? null;
@@ -140,8 +151,9 @@ var CerberusPrimitive = class {
140
151
  }
141
152
  validateComponent(Component) {
142
153
  if (typeof Component !== "function" && typeof Component !== "object") {
143
- throw new Error("Expected a React component as the first argument.");
154
+ return false;
144
155
  }
156
+ return true;
145
157
  }
146
158
  };
147
159
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/tabs/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts"],"sourcesContent":["import {\n Tabs,\n type TabContentProps as ArkTabContentProps,\n type TabIndicatorProps as ArkTabIndicatorProps,\n type TabListProps as ArkTabListProps,\n type TabsRootProps as ArkTabsRootProps,\n type TabTriggerProps as ArkTabTriggerProps,\n} from '@ark-ui/react/tabs'\nimport { tabs, type TabsVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module provides the primitives for the Tabs component.\n * @module 'tabs/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(tabs)\n\n// Root\n\nexport type TabsRootProps = CerberusPrimitiveProps<\n ArkTabsRootProps & TabsVariantProps\n>\n// @ts-expect-error this is a workaround for the type issue WIP\nexport const TabsRoot = withSlotRecipe<TabsRootProps>(Tabs.Root, 'root')\n\n// TabsList\n\nexport type TabsListProps = CerberusPrimitiveProps<ArkTabListProps>\nexport const TabsList = withSlotRecipe<TabsListProps>(Tabs.List, 'list')\n\n// TabsTrigger\n\nexport type TabsTriggerProps = CerberusPrimitiveProps<ArkTabTriggerProps>\nexport const TabsTrigger = withSlotRecipe<TabsTriggerProps>(\n Tabs.Trigger,\n 'trigger',\n)\n\n// TabsContent\n\nexport type TabContentProps = CerberusPrimitiveProps<ArkTabContentProps>\nexport const TabsContent = withSlotRecipe<TabContentProps>(\n Tabs.Content,\n 'content',\n)\n\n// TabsIndicator\n\nexport type TabIndicatorProps = CerberusPrimitiveProps<ArkTabIndicatorProps>\nexport const TabsIndicator = withSlotRecipe<TabIndicatorProps>(\n Tabs.Indicator,\n 'indicator',\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":[]}
1
+ {"version":3,"sources":["../../../../src/components/tabs/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts"],"sourcesContent":["import {\n Tabs,\n type TabContentProps as ArkTabContentProps,\n type TabIndicatorProps as ArkTabIndicatorProps,\n type TabListProps as ArkTabListProps,\n type TabsRootProps as ArkTabsRootProps,\n type TabTriggerProps as ArkTabTriggerProps,\n} from '@ark-ui/react/tabs'\nimport { tabs, type TabsVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module provides the primitives for the Tabs component.\n * @module 'tabs/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(tabs)\n\n// Root\n\nexport type TabsRootProps = CerberusPrimitiveProps<\n ArkTabsRootProps & TabsVariantProps\n>\n// @ts-expect-error this is a workaround for the type issue WIP\nexport const TabsRoot = withSlotRecipe<TabsRootProps>(Tabs.Root, 'root')\n\n// TabsList\n\nexport type TabsListProps = CerberusPrimitiveProps<ArkTabListProps>\nexport const TabsList = withSlotRecipe<TabsListProps>(Tabs.List, 'list')\n\n// TabsTrigger\n\nexport type TabsTriggerProps = CerberusPrimitiveProps<ArkTabTriggerProps>\nexport const TabsTrigger = withSlotRecipe<TabsTriggerProps>(\n Tabs.Trigger,\n 'trigger',\n)\n\n// TabsContent\n\nexport type TabContentProps = CerberusPrimitiveProps<ArkTabContentProps>\nexport const TabsContent = withSlotRecipe<TabContentProps>(\n Tabs.Content,\n 'content',\n)\n\n// TabsIndicator\n\nexport type TabIndicatorProps = CerberusPrimitiveProps<ArkTabIndicatorProps>\nexport const TabsIndicator = withSlotRecipe<TabIndicatorProps>(\n Tabs.Indicator,\n 'indicator',\n)\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type ElementType,\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> | string,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n return false\n }\n return true\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 * Can be a string or a component reference.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n *\n * @example\n * ```ts\n * const { withNoRecipe } = createCerberusPrimitive(buttonRecipe)\n * const Button = withNoRecipe('button')\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P> | string,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n const El = Component as ComponentType<P> | ElementType\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 <El {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n if (this.validateComponent(El)) {\n const ElName = typeof El === 'string' ? El : El.displayName || El.name\n CerbComponent.displayName = ElName\n }\n\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> | string,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const El = Component as ComponentType<P> | ElementType\n\n const recipe = this.recipe as CerberusRecipe\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 if (this.validateComponent(El)) {\n const ElName = typeof El === 'string' ? El : El.displayName || El.name\n CerbComponent.displayName = ElName\n }\n\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> | string,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const El = Component as ComponentType<P> | ElementType\n\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\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 if (this.validateComponent(El)) {\n const ElName = typeof El === 'string' ? El : El.displayName || El.name\n CerbComponent.displayName = ElName\n }\n\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":[]}
@@ -39,23 +39,28 @@ var CerberusPrimitive = class {
39
39
  /**
40
40
  * Creates a Cerberus component with bare features and no recipe.
41
41
  * @param Component - The React component to enhance with Cerberus features.
42
+ * Can be a string or a component reference.
42
43
  * @returns A new React component that applies Cerberus features to the
43
44
  * original component.
45
+ *
44
46
  * @example
45
- * ```typescript
46
- * const { withNoRecipe } = createCerberusPrimitive(button)
47
- * const Button = withNoRecipe(RawButton)
47
+ * ```ts
48
+ * const { withNoRecipe } = createCerberusPrimitive(buttonRecipe)
49
+ * const Button = withNoRecipe('button')
48
50
  * ```
49
51
  */
50
52
  __publicField(this, "withNoRecipe", (Component, options) => {
51
53
  const { defaultProps } = options || {};
52
- this.validateComponent(Component);
54
+ const El = Component;
53
55
  const CerbComponent = (props) => {
54
56
  const { css: customCss, className, ...nativeProps } = props;
55
57
  const styles = this.hasStyles((0, import_css.cx)(className, (0, import_css.css)(customCss)));
56
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, { ...defaultProps, ...styles, ...nativeProps });
58
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(El, { ...defaultProps, ...styles, ...nativeProps });
57
59
  };
58
- CerbComponent.displayName = Component.displayName || Component.name;
60
+ if (this.validateComponent(El)) {
61
+ const ElName = typeof El === "string" ? El : El.displayName || El.name;
62
+ CerbComponent.displayName = ElName;
63
+ }
59
64
  return CerbComponent;
60
65
  });
61
66
  /**
@@ -67,8 +72,8 @@ var CerberusPrimitive = class {
67
72
  */
68
73
  __publicField(this, "withRecipe", (Component, options) => {
69
74
  const { defaultProps } = options || {};
75
+ const El = Component;
70
76
  const recipe = this.recipe;
71
- this.validateComponent(Component);
72
77
  const CerbComponent = (internalProps) => {
73
78
  const {
74
79
  css: customCss,
@@ -86,7 +91,10 @@ var CerberusPrimitive = class {
86
91
  }
87
92
  );
88
93
  };
89
- CerbComponent.displayName = Component.displayName || Component.name;
94
+ if (this.validateComponent(El)) {
95
+ const ElName = typeof El === "string" ? El : El.displayName || El.name;
96
+ CerbComponent.displayName = ElName;
97
+ }
90
98
  return CerbComponent;
91
99
  });
92
100
  /**
@@ -103,8 +111,8 @@ var CerberusPrimitive = class {
103
111
  */
104
112
  __publicField(this, "withSlotRecipe", (Component, slot, options) => {
105
113
  const { defaultProps } = options || {};
114
+ const El = Component;
106
115
  const recipe = this.recipe;
107
- this.validateComponent(Component);
108
116
  const CerbComponent = (internalProps) => {
109
117
  const {
110
118
  css: customCss,
@@ -123,7 +131,10 @@ var CerberusPrimitive = class {
123
131
  }
124
132
  );
125
133
  };
126
- CerbComponent.displayName = Component.displayName || Component.name;
134
+ if (this.validateComponent(El)) {
135
+ const ElName = typeof El === "string" ? El : El.displayName || El.name;
136
+ CerbComponent.displayName = ElName;
137
+ }
127
138
  return CerbComponent;
128
139
  });
129
140
  this.recipe = recipe ?? null;
@@ -138,8 +149,9 @@ var CerberusPrimitive = class {
138
149
  }
139
150
  validateComponent(Component) {
140
151
  if (typeof Component !== "function" && typeof Component !== "object") {
141
- throw new Error("Expected a React component as the first argument.");
152
+ return false;
142
153
  }
154
+ return true;
143
155
  }
144
156
  };
145
157