@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
@@ -44,23 +44,28 @@ var CerberusPrimitive = class {
44
44
  /**
45
45
  * Creates a Cerberus component with bare features and no recipe.
46
46
  * @param Component - The React component to enhance with Cerberus features.
47
+ * Can be a string or a component reference.
47
48
  * @returns A new React component that applies Cerberus features to the
48
49
  * original component.
50
+ *
49
51
  * @example
50
- * ```typescript
51
- * const { withNoRecipe } = createCerberusPrimitive(button)
52
- * const Button = withNoRecipe(RawButton)
52
+ * ```ts
53
+ * const { withNoRecipe } = createCerberusPrimitive(buttonRecipe)
54
+ * const Button = withNoRecipe('button')
53
55
  * ```
54
56
  */
55
57
  __publicField(this, "withNoRecipe", (Component, options) => {
56
58
  const { defaultProps } = options || {};
57
- this.validateComponent(Component);
59
+ const El = Component;
58
60
  const CerbComponent = (props) => {
59
61
  const { css: customCss, className, ...nativeProps } = props;
60
62
  const styles = this.hasStyles((0, import_css.cx)(className, (0, import_css.css)(customCss)));
61
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, { ...defaultProps, ...styles, ...nativeProps });
63
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(El, { ...defaultProps, ...styles, ...nativeProps });
62
64
  };
63
- CerbComponent.displayName = Component.displayName || Component.name;
65
+ if (this.validateComponent(El)) {
66
+ const ElName = typeof El === "string" ? El : El.displayName || El.name;
67
+ CerbComponent.displayName = ElName;
68
+ }
64
69
  return CerbComponent;
65
70
  });
66
71
  /**
@@ -72,8 +77,8 @@ var CerberusPrimitive = class {
72
77
  */
73
78
  __publicField(this, "withRecipe", (Component, options) => {
74
79
  const { defaultProps } = options || {};
80
+ const El = Component;
75
81
  const recipe = this.recipe;
76
- this.validateComponent(Component);
77
82
  const CerbComponent = (internalProps) => {
78
83
  const {
79
84
  css: customCss,
@@ -91,7 +96,10 @@ var CerberusPrimitive = class {
91
96
  }
92
97
  );
93
98
  };
94
- CerbComponent.displayName = Component.displayName || Component.name;
99
+ if (this.validateComponent(El)) {
100
+ const ElName = typeof El === "string" ? El : El.displayName || El.name;
101
+ CerbComponent.displayName = ElName;
102
+ }
95
103
  return CerbComponent;
96
104
  });
97
105
  /**
@@ -108,8 +116,8 @@ var CerberusPrimitive = class {
108
116
  */
109
117
  __publicField(this, "withSlotRecipe", (Component, slot, options) => {
110
118
  const { defaultProps } = options || {};
119
+ const El = Component;
111
120
  const recipe = this.recipe;
112
- this.validateComponent(Component);
113
121
  const CerbComponent = (internalProps) => {
114
122
  const {
115
123
  css: customCss,
@@ -128,7 +136,10 @@ var CerberusPrimitive = class {
128
136
  }
129
137
  );
130
138
  };
131
- CerbComponent.displayName = Component.displayName || Component.name;
139
+ if (this.validateComponent(El)) {
140
+ const ElName = typeof El === "string" ? El : El.displayName || El.name;
141
+ CerbComponent.displayName = ElName;
142
+ }
132
143
  return CerbComponent;
133
144
  });
134
145
  this.recipe = recipe ?? null;
@@ -143,8 +154,9 @@ var CerberusPrimitive = class {
143
154
  }
144
155
  validateComponent(Component) {
145
156
  if (typeof Component !== "function" && typeof Component !== "object") {
146
- throw new Error("Expected a React component as the first argument.");
157
+ return false;
147
158
  }
159
+ return true;
148
160
  }
149
161
  };
150
162
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/circular-progress/primitives.ts","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts"],"sourcesContent":["import {\n Progress,\n type ProgressRootProps,\n type ProgressLabelProps,\n type ProgressValueTextProps,\n type ProgressCircleProps,\n type ProgressCircleTrackProps,\n type ProgressCircleRangeProps,\n} from '@ark-ui/react/progress'\nimport { ark, type HTMLArkProps } from '@ark-ui/react/factory'\nimport {\n circularProgress,\n type CircularProgressVariantProps,\n} from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the CircularProgress component primitives.\n * @module @cerberus-design/react/components/circular-progress/primitives\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(circularProgress)\n\n// Root\n\nexport type CircularProgressRootProps = CerberusPrimitiveProps<\n ProgressRootProps & CircularProgressVariantProps\n>\n// @ts-expect-error this is a workaround for the type\nexport const CircularProgressRoot = withSlotRecipe<CircularProgressRootProps>(\n Progress.Root,\n 'root',\n)\n\n// Label\n\nexport type CircularProgressLabelProps =\n CerberusPrimitiveProps<ProgressLabelProps>\nexport const CircularProgressLabel = withSlotRecipe<CircularProgressLabelProps>(\n Progress.Label,\n 'label',\n)\n\n// ValueText\n\nexport type CircularProgressValueTextProps =\n CerberusPrimitiveProps<ProgressValueTextProps>\nexport const CircularProgressValueText =\n withSlotRecipe<CircularProgressValueTextProps>(\n Progress.ValueText,\n 'valueText',\n )\n\n// Circle\n\nexport type CircularProgressCircleProps =\n CerberusPrimitiveProps<ProgressCircleProps>\nexport const CircularProgressCircle =\n withSlotRecipe<CircularProgressCircleProps>(Progress.Circle, 'circle')\n\n// CircleTrack\n\nexport type CircularProgressCircleTrackProps =\n CerberusPrimitiveProps<ProgressCircleTrackProps>\nexport const CircularProgressCircleTrack =\n withSlotRecipe<CircularProgressCircleTrackProps>(\n Progress.CircleTrack,\n 'circleTrack',\n )\n\n// CircleRange\n\nexport type CircularProgressCircleRangeProps =\n CerberusPrimitiveProps<ProgressCircleRangeProps>\nexport const CircularProgressCircleRange =\n withSlotRecipe<CircularProgressCircleRangeProps>(\n Progress.CircleRange,\n 'circleRange',\n )\n\n// InfoGroup\n\nexport type CircularProgressInfoGroupProps = HTMLArkProps<'div'>\nexport const CircularProgressInfoGroup =\n withSlotRecipe<CircularProgressInfoGroupProps>(ark.div, 'infoGroup')\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/circular-progress/primitives.ts","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts"],"sourcesContent":["import {\n Progress,\n type ProgressRootProps,\n type ProgressLabelProps,\n type ProgressValueTextProps,\n type ProgressCircleProps,\n type ProgressCircleTrackProps,\n type ProgressCircleRangeProps,\n} from '@ark-ui/react/progress'\nimport { ark, type HTMLArkProps } from '@ark-ui/react/factory'\nimport {\n circularProgress,\n type CircularProgressVariantProps,\n} from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the CircularProgress component primitives.\n * @module @cerberus-design/react/components/circular-progress/primitives\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(circularProgress)\n\n// Root\n\nexport type CircularProgressRootProps = CerberusPrimitiveProps<\n ProgressRootProps & CircularProgressVariantProps\n>\n// @ts-expect-error this is a workaround for the type\nexport const CircularProgressRoot = withSlotRecipe<CircularProgressRootProps>(\n Progress.Root,\n 'root',\n)\n\n// Label\n\nexport type CircularProgressLabelProps =\n CerberusPrimitiveProps<ProgressLabelProps>\nexport const CircularProgressLabel = withSlotRecipe<CircularProgressLabelProps>(\n Progress.Label,\n 'label',\n)\n\n// ValueText\n\nexport type CircularProgressValueTextProps =\n CerberusPrimitiveProps<ProgressValueTextProps>\nexport const CircularProgressValueText =\n withSlotRecipe<CircularProgressValueTextProps>(\n Progress.ValueText,\n 'valueText',\n )\n\n// Circle\n\nexport type CircularProgressCircleProps =\n CerberusPrimitiveProps<ProgressCircleProps>\nexport const CircularProgressCircle =\n withSlotRecipe<CircularProgressCircleProps>(Progress.Circle, 'circle')\n\n// CircleTrack\n\nexport type CircularProgressCircleTrackProps =\n CerberusPrimitiveProps<ProgressCircleTrackProps>\nexport const CircularProgressCircleTrack =\n withSlotRecipe<CircularProgressCircleTrackProps>(\n Progress.CircleTrack,\n 'circleTrack',\n )\n\n// CircleRange\n\nexport type CircularProgressCircleRangeProps =\n CerberusPrimitiveProps<ProgressCircleRangeProps>\nexport const CircularProgressCircleRange =\n withSlotRecipe<CircularProgressCircleRangeProps>(\n Progress.CircleRange,\n 'circleRange',\n )\n\n// InfoGroup\n\nexport type CircularProgressInfoGroupProps = HTMLArkProps<'div'>\nexport const CircularProgressInfoGroup =\n withSlotRecipe<CircularProgressInfoGroupProps>(ark.div, 'infoGroup')\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":";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAQO;AACP,qBAAuC;AACvC,qBAGO;;;ACbP,iBAAwB;AAsEX;AAhDN,IAAM,oBAAN,MAAwB;AAAA,EAG7B,YAAY,QAAkC;AAF9C;AAqCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wCAAe,CACb,WACA,YAC2B;AAC3B,YAAM,EAAE,aAAa,IAAI,WAAW,CAAC;AACrC,YAAM,KAAK;AAEX,YAAM,gBAAgB,CAAC,UAA0C;AAC/D,cAAM,EAAE,KAAK,WAAW,WAAW,GAAG,YAAY,IAAI;AACtD,cAAM,SAAS,KAAK,cAAU,eAAG,eAAW,gBAAI,SAAS,CAAC,CAAC;AAC3D,eAAO,4CAAC,MAAI,GAAG,cAAe,GAAG,QAAS,GAAI,aAAmB;AAAA,MACnE;AAEA,UAAI,KAAK,kBAAkB,EAAE,GAAG;AAC9B,cAAM,SAAS,OAAO,OAAO,WAAW,KAAK,GAAG,eAAe,GAAG;AAClE,sBAAc,cAAc;AAAA,MAC9B;AAEA,aAAO;AAAA,IACT;AASA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sCAAa,CACX,WACA,YAC+D;AAC/D,YAAM,EAAE,aAAa,IAAI,WAAW,CAAC;AACrC,YAAM,KAAK;AAEX,YAAM,SAAS,KAAK;AAEpB,YAAM,gBAAgB,CAAC,kBAAkD;AACvE,cAAM;AAAA,UACJ,KAAK;AAAA,UACL;AAAA,UACA,GAAG;AAAA,QACL,IAAI;AAEJ,cAAM,CAAC,gBAAgB,WAAW,IAChC,OAAO,kBAAkB,mBAAmB;AAC9C,cAAM,eAAe,OAAO,cAAc;AAE1C,eACE;AAAA,UAAC;AAAA;AAAA,YACE,GAAG;AAAA,YACH,GAAI;AAAA,YACL,eAAW,eAAG,WAAW,kBAAc,gBAAI,SAAS,CAAC;AAAA;AAAA,QACvD;AAAA,MAEJ;AAEA,UAAI,KAAK,kBAAkB,EAAE,GAAG;AAC9B,cAAM,SAAS,OAAO,OAAO,WAAW,KAAK,GAAG,eAAe,GAAG;AAClE,sBAAc,cAAc;AAAA,MAC9B;AAEA,aAAO;AAAA,IACT;AAcA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0CAAiB,CACf,WACA,MACA,YACG;AACH,YAAM,EAAE,aAAa,IAAI,WAAW,CAAC;AACrC,YAAM,KAAK;AAEX,YAAM,SAAS,KAAK;AAEpB,YAAM,gBAAgB,CAAC,kBAAkD;AACvE,cAAM;AAAA,UACJ,KAAK;AAAA,UACL;AAAA,UACA,GAAG;AAAA,QACL,IAAI;AAEJ,cAAM,CAAC,gBAAgB,WAAW,IAChC,OAAO,kBAAkB,mBAAmB;AAC9C,cAAM,SAAS,OAAO,cAAc;AACpC,cAAM,aAAa,OAAO,IAA2B;AAErD,eACE;AAAA,UAAC;AAAA;AAAA,YACE,GAAG;AAAA,YACH,GAAI;AAAA,YACL,eAAW,eAAG,WAAW,gBAAY,gBAAI,SAAS,CAAC;AAAA;AAAA,QACrD;AAAA,MAEJ;AAEA,UAAI,KAAK,kBAAkB,EAAE,GAAG;AAC9B,cAAM,SAAS,OAAO,OAAO,WAAW,KAAK,GAAG,eAAe,GAAG;AAClE,sBAAc,cAAc;AAAA,MAC9B;AAEA,aAAO;AAAA,IACT;AApJE,SAAK,SAAS,UAAU;AAAA,EAC1B;AAAA,EAEQ,UAAU,QAAqD;AACrE,QAAI,QAAQ;AACV,aAAO;AAAA,QACL,WAAW;AAAA,MACb;AAAA,IACF;AACA,WAAO,CAAC;AAAA,EACV;AAAA,EAEQ,kBACN,WACA;AACA,QAAI,OAAO,cAAc,cAAc,OAAO,cAAc,UAAU;AACpE,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AAkIF;;;ACzJO,SAAS,wBACd,QACA;AACA,SAAO,IAAI,kBAAkB,MAAM;AACrC;;;AFFA,IAAM,EAAE,eAAe,IAAI,wBAAwB,+BAAgB;AAQ5D,IAAM,uBAAuB;AAAA,EAClC,yBAAS;AAAA,EACT;AACF;AAMO,IAAM,wBAAwB;AAAA,EACnC,yBAAS;AAAA,EACT;AACF;AAMO,IAAM,4BACX;AAAA,EACE,yBAAS;AAAA,EACT;AACF;AAMK,IAAM,yBACX,eAA4C,yBAAS,QAAQ,QAAQ;AAMhE,IAAM,8BACX;AAAA,EACE,yBAAS;AAAA,EACT;AACF;AAMK,IAAM,8BACX;AAAA,EACE,yBAAS;AAAA,EACT;AACF;AAKK,IAAM,4BACX,eAA+C,mBAAI,KAAK,WAAW;","names":[]}
@@ -90,23 +90,28 @@ var CerberusPrimitive = class {
90
90
  /**
91
91
  * Creates a Cerberus component with bare features and no recipe.
92
92
  * @param Component - The React component to enhance with Cerberus features.
93
+ * Can be a string or a component reference.
93
94
  * @returns A new React component that applies Cerberus features to the
94
95
  * original component.
96
+ *
95
97
  * @example
96
- * ```typescript
97
- * const { withNoRecipe } = createCerberusPrimitive(button)
98
- * const Button = withNoRecipe(RawButton)
98
+ * ```ts
99
+ * const { withNoRecipe } = createCerberusPrimitive(buttonRecipe)
100
+ * const Button = withNoRecipe('button')
99
101
  * ```
100
102
  */
101
103
  __publicField(this, "withNoRecipe", (Component, options) => {
102
104
  const { defaultProps } = options || {};
103
- this.validateComponent(Component);
105
+ const El = Component;
104
106
  const CerbComponent = (props) => {
105
107
  const { css: customCss, className, ...nativeProps } = props;
106
108
  const styles = this.hasStyles((0, import_css.cx)(className, (0, import_css.css)(customCss)));
107
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Component, { ...defaultProps, ...styles, ...nativeProps });
109
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(El, { ...defaultProps, ...styles, ...nativeProps });
108
110
  };
109
- CerbComponent.displayName = Component.displayName || Component.name;
111
+ if (this.validateComponent(El)) {
112
+ const ElName = typeof El === "string" ? El : El.displayName || El.name;
113
+ CerbComponent.displayName = ElName;
114
+ }
110
115
  return CerbComponent;
111
116
  });
112
117
  /**
@@ -118,8 +123,8 @@ var CerberusPrimitive = class {
118
123
  */
119
124
  __publicField(this, "withRecipe", (Component, options) => {
120
125
  const { defaultProps } = options || {};
126
+ const El = Component;
121
127
  const recipe = this.recipe;
122
- this.validateComponent(Component);
123
128
  const CerbComponent = (internalProps) => {
124
129
  const {
125
130
  css: customCss,
@@ -137,7 +142,10 @@ var CerberusPrimitive = class {
137
142
  }
138
143
  );
139
144
  };
140
- CerbComponent.displayName = Component.displayName || Component.name;
145
+ if (this.validateComponent(El)) {
146
+ const ElName = typeof El === "string" ? El : El.displayName || El.name;
147
+ CerbComponent.displayName = ElName;
148
+ }
141
149
  return CerbComponent;
142
150
  });
143
151
  /**
@@ -154,8 +162,8 @@ var CerberusPrimitive = class {
154
162
  */
155
163
  __publicField(this, "withSlotRecipe", (Component, slot, options) => {
156
164
  const { defaultProps } = options || {};
165
+ const El = Component;
157
166
  const recipe = this.recipe;
158
- this.validateComponent(Component);
159
167
  const CerbComponent = (internalProps) => {
160
168
  const {
161
169
  css: customCss,
@@ -174,7 +182,10 @@ var CerberusPrimitive = class {
174
182
  }
175
183
  );
176
184
  };
177
- CerbComponent.displayName = Component.displayName || Component.name;
185
+ if (this.validateComponent(El)) {
186
+ const ElName = typeof El === "string" ? El : El.displayName || El.name;
187
+ CerbComponent.displayName = ElName;
188
+ }
178
189
  return CerbComponent;
179
190
  });
180
191
  this.recipe = recipe ?? null;
@@ -189,8 +200,9 @@ var CerberusPrimitive = class {
189
200
  }
190
201
  validateComponent(Component) {
191
202
  if (typeof Component !== "function" && typeof Component !== "object") {
192
- throw new Error("Expected a React component as the first argument.");
203
+ return false;
193
204
  }
205
+ return true;
194
206
  }
195
207
  };
196
208
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/combobox/combobox.tsx","../../../../src/context/cerberus.tsx","../../../../src/utils/index.ts","../../../../src/components/portal/portal.tsx","../../../../src/components/show/show.tsx","../../../../src/components/combobox/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/combobox/parts.ts"],"sourcesContent":["'use client'\n\nimport type { ComboboxRootProps } from '@ark-ui/react/combobox'\nimport type { ComboboxVariantProps } from 'styled-system/recipes'\nimport type { RefObject } from 'react'\nimport { useCerberusContext } from '../../context/cerberus'\nimport { splitProps } from '../../utils/index'\nimport type { SelectCollectionItem } from '../select/select'\nimport { type FieldInputElProps } from '../field/index'\nimport { Portal } from '../portal/index'\nimport { Show } from '../show/index'\nimport { ComboboxParts } from './parts'\nimport { ComboboxStartIcon } from './primitives'\n\nexport interface ComboboxProps\n extends ComboboxRootProps<SelectCollectionItem>,\n ComboboxVariantProps {\n /**\n * The label that appears above the combobox input.\n */\n label?: string\n /**\n * The icon that appears at the start of the combobox input.\n */\n startIcon?: FieldInputElProps['startIcon']\n /**\n * The container element to render the Select dropdown in. This is used\n * to render the Select dropdown in a specific context, such as a modal.\n * @default document.body\n */\n container?: RefObject<HTMLElement | null>\n}\n\nexport function Combobox(props: ComboboxProps) {\n const [{ startIcon, label, ...elProps }, rootProps] = splitProps(props, [\n 'label',\n 'children',\n 'startIcon',\n 'container',\n ])\n\n const { icons } = useCerberusContext()\n const { selectArrow: SelectArrow, close: CloseIcon } = icons\n\n const hasStartIcon = Boolean(startIcon)\n\n return (\n <ComboboxParts.Root {...rootProps}>\n <Show when={label}>\n <ComboboxParts.Label>{label}</ComboboxParts.Label>\n </Show>\n\n <ComboboxParts.Control>\n <Show when={hasStartIcon}>\n <ComboboxStartIcon>{startIcon}</ComboboxStartIcon>\n </Show>\n\n <ComboboxParts.Input\n {...(hasStartIcon && { 'data-has': 'start-indicator' })}\n />\n\n <ComboboxParts.ClearTrigger>\n <CloseIcon />\n </ComboboxParts.ClearTrigger>\n <ComboboxParts.Trigger>\n <SelectArrow />\n </ComboboxParts.Trigger>\n </ComboboxParts.Control>\n\n <Portal container={elProps.container}>\n <ComboboxParts.Positioner>\n <ComboboxParts.Content size={rootProps.size}>\n {elProps.children}\n </ComboboxParts.Content>\n </ComboboxParts.Positioner>\n </Portal>\n </ComboboxParts.Root>\n )\n}\n","'use client'\n\nimport { createContext, useContext, type PropsWithChildren } from 'react'\nimport type { SystemConfig } from '../config'\n\n/**\n * This module contains the Cerberus configuration context and helpers.\n * @module context/cerberus\n */\n\ntype CerberusContextValue = SystemConfig\n\nconst CerberusContext = createContext<CerberusContextValue | null>(null)\n\ninterface CerberusProviderProps {\n config: SystemConfig\n}\n\n/**\n * Cerberus configuration provider.\n * @param props.config The Cerberus configuration created with\n * `makeSystemConfig` helper.\n */\nexport function CerberusProvider(\n props: PropsWithChildren<CerberusProviderProps>,\n) {\n return (\n <CerberusContext.Provider value={props.config}>\n {props.children}\n </CerberusContext.Provider>\n )\n}\n\n/**\n * Returns the Cerberus configuration context.\n * @returns The Cerberus configuration context.\n */\nexport function useCerberusContext() {\n const context = useContext(CerberusContext)\n if (!context) {\n throw new Error('useCerberus must be used within a CerberusProvider')\n }\n return context\n}\n","/**\n * This module contains utility functions that are used across your app.\n * @module Utils\n */\n\n/**\n * Formats the count of notifications to be displayed in the notification badge.\n * @param count - The number of notifications.\n * @returns The formatted count of notifications.\n * @example\n * ```tsx\n * const count = formatNotifyCount(100)\n * console.log(count) // '99+'\n * ```\n */\nexport function formatNotifyCount(count: number): string {\n if (count > 99) return '99+'\n return count.toString()\n}\n\n/**\n * Splits the properties of an object into multiple groups based on lists of keys.\n * @param props - The object to split.\n * @param keyGroups - The lists of keys to include in each group.\n * @returns An array of objects: each containing the properties specified in the corresponding key group, and the last object containing the remaining keys.\n */\nexport function splitProps<T extends object>(\n props: T,\n ...keyGroups: (keyof T)[][]\n): { [K in keyof T]?: T[K] }[] {\n const result = keyGroups.map(() => ({}) as { [K in keyof T]?: T[K] })\n const rest = {} as { [K in keyof T]?: T[K] }\n\n for (const key in props) {\n let assigned = false\n for (let i = 0; i < keyGroups.length; i++) {\n if (keyGroups[i].includes(key as keyof T)) {\n result[i][key as keyof T] = props[key]\n assigned = true\n break\n }\n }\n if (!assigned) {\n rest[key as keyof T] = props[key]\n }\n }\n\n return [...result, rest]\n}\n\nexport * from './localStorage'\n","import { Portal as ArkPortal, type PortalProps } from '@ark-ui/react'\n\n/**\n * This module is the Portal component.\n * @module\n */\n\nexport type { PortalProps }\n\n/**\n * The Portal component is used to render children into a DOM node that exists outside the DOM hierarchy of the parent component.\n * @see https://cerberus.digitalu.design/react/portal\n * @definition [React Portal Docs](https://react.dev/reference/react-dom/createPortal)\n * @example\n * ```tsx\n * 'use client'\n *\n * import { Portal } from '@cerberus/react'\n *\n * function SomeFeatureWithinSSRPage() {\n * return (\n * <Portal>\n * <div>Portal Content outside of the React VDom tree</div>\n * </Portal>\n * )\n * }\n */\nexport const Portal = ArkPortal\n","import { type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps<T> {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: T | boolean | null | undefined\n /**\n * The children to render when the condition is false.\n */\n fallback?: ReactNode\n}\n\n/**\n * Conditionally render a memoized version of the children or optional fallback\n * content.\n * @see https://cerberus.digitalu.design/react/show\n * @example\n * ```tsx\n * <Show when={isLoggedIn} fallback={<Navigate to=\"/login\" />}>\n * <Dashboard />\n * </Show>\n */\nexport function Show<T>(props: PropsWithChildren<ShowProps<T>>) {\n const { when, children, fallback } = props\n\n if (when) {\n return <>{children}</>\n }\n\n if (fallback) {\n return <>{fallback}</>\n }\n\n return null\n}\n","import {\n Combobox,\n type ComboboxClearTriggerProps as ArkComboboxClearTriggerProps,\n type ComboboxContentProps as ArkComboboxContentProps,\n type ComboboxControlProps as ArkComboboxControlProps,\n type ComboboxInputProps as ArkComboboxInputProps,\n type ComboboxItemGroupLabelProps as ArkComboboxItemGroupLabelProps,\n type ComboboxItemGroupProps as ArkComboboxItemGroupProps,\n type ComboboxItemIndicatorProps as ArkComboboxItemIndicatorProps,\n type ComboboxItemProps as ArkComboboxItemProps,\n type ComboboxItemTextProps as ArkComboboxItemTextProps,\n type ComboboxLabelProps as ArkComboboxLabelProps,\n type ComboboxPositionerProps as ArkComboboxPositionerProps,\n type ComboboxRootProps as ArkComboboxRootProps,\n type ComboboxTriggerProps as ArkComboboxTriggerProps,\n} from '@ark-ui/react/combobox'\nimport { ark, type HTMLArkProps } from '@ark-ui/react/factory'\nimport type { SelectCollectionItem } from '../select/select'\nimport { combobox, type ComboboxVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Combobox.\n * @module 'combobox/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(combobox)\n\n/**\n * The ComboboxRoot component is the context provider for the Combobox\n * component.\n */\n\n// @ts-expect-error there is a type mismatch here, but it works in practice\nexport const ComboboxRoot = withSlotRecipe<ComboboxRootProps>(\n Combobox.Root,\n 'root',\n)\nexport type ComboboxRootProps = CerberusPrimitiveProps<\n ArkComboboxRootProps<SelectCollectionItem> & ComboboxVariantProps\n>\n\n/**\n * The label that appears above the combobox input.\n */\nexport const ComboboxLabel = withSlotRecipe<ComboboxLabelProps>(\n Combobox.Label,\n 'label',\n)\nexport type ComboboxLabelProps = CerberusPrimitiveProps<ArkComboboxLabelProps>\n\n/**\n * The control that wraps the combobox input.\n */\nexport const ComboboxControl = withSlotRecipe<ComboboxControlProps>(\n Combobox.Control,\n 'control',\n)\nexport type ComboboxControlProps =\n CerberusPrimitiveProps<ArkComboboxControlProps>\n\n/**\n * The input of the combobox.\n */\nexport const ComboboxInput = withSlotRecipe<ComboboxInputProps>(\n Combobox.Input,\n 'input',\n)\nexport type ComboboxInputProps = CerberusPrimitiveProps<ArkComboboxInputProps>\n\n/**\n * The trigger that opens the dropdown.\n */\nexport const ComboboxTrigger = withSlotRecipe<ComboboxTriggerProps>(\n Combobox.Trigger,\n 'trigger',\n)\nexport type ComboboxTriggerProps =\n CerberusPrimitiveProps<ArkComboboxTriggerProps>\n\n/**\n * The trigger to clear the combobox input.\n */\nexport const ComboboxClearTrigger = withSlotRecipe<ComboboxClearTriggerProps>(\n Combobox.ClearTrigger,\n 'clearTrigger',\n)\nexport type ComboboxClearTriggerProps =\n CerberusPrimitiveProps<ArkComboboxClearTriggerProps>\n\n/**\n * The positioner that wraps the content.\n */\nexport const ComboboxPositioner = withSlotRecipe<ComboboxPositionerProps>(\n Combobox.Positioner,\n 'positioner',\n)\nexport type ComboboxPositionerProps =\n CerberusPrimitiveProps<ArkComboboxPositionerProps>\n\n/**\n * The content of the combobox component.\n */\nexport const ComboboxContent = withSlotRecipe<ComboboxContentProps>(\n Combobox.Content,\n 'content',\n)\nexport type ComboboxContentProps = CerberusPrimitiveProps<\n ArkComboboxContentProps & ComboboxVariantProps\n>\n\n/**\n * A group of items in the combobox component.\n */\nexport const ComboboxItemGroup = withSlotRecipe<ComboboxItemGroupProps>(\n Combobox.ItemGroup,\n 'itemGroup',\n)\nexport type ComboboxItemGroupProps =\n CerberusPrimitiveProps<ArkComboboxItemGroupProps>\n\n/**\n * The label for a group of items in the combobox component.\n */\nexport const ComboboxItemGroupLabel =\n withSlotRecipe<ComboboxItemGroupLabelProps>(\n Combobox.ItemGroupLabel,\n 'itemGroupLabel',\n )\nexport type ComboboxItemGroupLabelProps =\n CerberusPrimitiveProps<ArkComboboxItemGroupLabelProps>\n\n/**\n * An individual item in the combobox component.\n */\nexport const ComboboxItem = withSlotRecipe<ComboboxItemProps>(\n Combobox.Item,\n 'item',\n)\nexport type ComboboxItemProps = CerberusPrimitiveProps<ArkComboboxItemProps>\n\n/**\n * The text that labels a single item of the combobox.\n */\nexport const ComboboxItemText = withSlotRecipe<ComboboxItemTextProps>(\n Combobox.ItemText,\n 'itemText',\n)\nexport type ComboboxItemTextProps =\n CerberusPrimitiveProps<ArkComboboxItemTextProps>\n\n/**\n * The indicator that appears when the item has been selected.\n */\nexport const ComboboxItemIndicator = withSlotRecipe<ComboboxItemIndicatorProps>(\n Combobox.ItemIndicator,\n 'itemIndicator',\n)\nexport type ComboboxItemIndicatorProps =\n CerberusPrimitiveProps<ArkComboboxItemIndicatorProps>\n\n/**\n * The icon that appears at the start of the combobox input.\n */\nexport const ComboboxStartIcon = withSlotRecipe<ComboboxStartIconProps>(\n ark.span,\n 'startIcon',\n)\nexport type ComboboxStartIconProps = CerberusPrimitiveProps<\n HTMLArkProps<'span'>\n>\n\n// We are only doing this to make the API consistent\nexport const ComboItemText = ComboboxItemText\nexport type ComboboxInputValueChangeDetails = Combobox.InputValueChangeDetails\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 ComboboxClearTrigger,\n ComboboxContent,\n ComboboxControl,\n ComboboxInput,\n ComboboxItem,\n ComboboxItemGroup,\n ComboboxItemGroupLabel,\n ComboboxItemIndicator,\n ComboboxItemText,\n ComboboxLabel,\n ComboboxPositioner,\n ComboboxRoot,\n ComboboxTrigger,\n} from './primitives'\n\n/**\n * This module contains the parts of the Combobox parts.\n * @module 'combobox/parts'\n */\n\ninterface ComboboxPartsValue {\n /**\n * The context provider for the Select component.\n */\n Root: ElementType\n /**\n * The label that appears above the select input.\n */\n Label: ElementType\n /**\n * The control that wraps the select trigger.\n */\n Control: ElementType\n /**\n * The filterable input of the combobox.\n */\n Input: ElementType\n /**\n * The trigger that opens the dropdown.\n */\n Trigger: ElementType\n /**\n * The trigger to clear the select input.\n */\n ClearTrigger: ElementType\n /**\n * The positioner that wraps the content.\n */\n Positioner: ElementType\n /**\n * The content of the select component.\n */\n Content: ElementType\n /**\n * A group of items in the select component.\n */\n ItemGroup: ElementType\n /**\n * The label for a group of items in the select component.\n */\n ItemGroupLabel: ElementType\n /**\n * An individual item in the select component.\n */\n Item: ElementType\n /**\n * The text that labels a single radio of the field.\n */\n ItemText: ElementType\n /**\n * The indicator that appears when the item has been selected.\n */\n ItemIndicator: ElementType\n}\n\n/**\n * An Object containing the parts of the Radio component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the ComboboxParts object and\n * the entire family of components vs. only what you use.\n */\nexport const ComboboxParts: ComboboxPartsValue = {\n Root: ComboboxRoot,\n Label: ComboboxLabel,\n Control: ComboboxControl,\n Input: ComboboxInput,\n Trigger: ComboboxTrigger,\n ClearTrigger: ComboboxClearTrigger,\n Positioner: ComboboxPositioner,\n Content: ComboboxContent,\n ItemGroup: ComboboxItemGroup,\n ItemGroupLabel: ComboboxItemGroupLabel,\n Item: ComboboxItem,\n ItemText: ComboboxItemText,\n ItemIndicator: ComboboxItemIndicator,\n}\n"],"mappings":"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","names":["Combobox","import_react","ArkPortal","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","Combobox"]}
1
+ {"version":3,"sources":["../../../../src/components/combobox/combobox.tsx","../../../../src/context/cerberus.tsx","../../../../src/utils/index.ts","../../../../src/components/portal/portal.tsx","../../../../src/components/show/show.tsx","../../../../src/components/combobox/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/combobox/parts.ts"],"sourcesContent":["'use client'\n\nimport type { ComboboxRootProps } from '@ark-ui/react/combobox'\nimport type { ComboboxVariantProps } from 'styled-system/recipes'\nimport type { RefObject } from 'react'\nimport { useCerberusContext } from '../../context/cerberus'\nimport { splitProps } from '../../utils/index'\nimport type { SelectCollectionItem } from '../select/select'\nimport { type FieldInputElProps } from '../field/index'\nimport { Portal } from '../portal/index'\nimport { Show } from '../show/index'\nimport { ComboboxParts } from './parts'\nimport { ComboboxStartIcon } from './primitives'\n\nexport interface ComboboxProps\n extends ComboboxRootProps<SelectCollectionItem>,\n ComboboxVariantProps {\n /**\n * The label that appears above the combobox input.\n */\n label?: string\n /**\n * The icon that appears at the start of the combobox input.\n */\n startIcon?: FieldInputElProps['startIcon']\n /**\n * The container element to render the Select dropdown in. This is used\n * to render the Select dropdown in a specific context, such as a modal.\n * @default document.body\n */\n container?: RefObject<HTMLElement | null>\n}\n\nexport function Combobox(props: ComboboxProps) {\n const [{ startIcon, label, ...elProps }, rootProps] = splitProps(props, [\n 'label',\n 'children',\n 'startIcon',\n 'container',\n ])\n\n const { icons } = useCerberusContext()\n const { selectArrow: SelectArrow, close: CloseIcon } = icons\n\n const hasStartIcon = Boolean(startIcon)\n\n return (\n <ComboboxParts.Root {...rootProps}>\n <Show when={label}>\n <ComboboxParts.Label>{label}</ComboboxParts.Label>\n </Show>\n\n <ComboboxParts.Control>\n <Show when={hasStartIcon}>\n <ComboboxStartIcon>{startIcon}</ComboboxStartIcon>\n </Show>\n\n <ComboboxParts.Input\n {...(hasStartIcon && { 'data-has': 'start-indicator' })}\n />\n\n <ComboboxParts.ClearTrigger>\n <CloseIcon />\n </ComboboxParts.ClearTrigger>\n <ComboboxParts.Trigger>\n <SelectArrow />\n </ComboboxParts.Trigger>\n </ComboboxParts.Control>\n\n <Portal container={elProps.container}>\n <ComboboxParts.Positioner>\n <ComboboxParts.Content size={rootProps.size}>\n {elProps.children}\n </ComboboxParts.Content>\n </ComboboxParts.Positioner>\n </Portal>\n </ComboboxParts.Root>\n )\n}\n","'use client'\n\nimport { createContext, useContext, type PropsWithChildren } from 'react'\nimport type { SystemConfig } from '../config'\n\n/**\n * This module contains the Cerberus configuration context and helpers.\n * @module context/cerberus\n */\n\ntype CerberusContextValue = SystemConfig\n\nconst CerberusContext = createContext<CerberusContextValue | null>(null)\n\ninterface CerberusProviderProps {\n config: SystemConfig\n}\n\n/**\n * Cerberus configuration provider.\n * @param props.config The Cerberus configuration created with\n * `makeSystemConfig` helper.\n */\nexport function CerberusProvider(\n props: PropsWithChildren<CerberusProviderProps>,\n) {\n return (\n <CerberusContext.Provider value={props.config}>\n {props.children}\n </CerberusContext.Provider>\n )\n}\n\n/**\n * Returns the Cerberus configuration context.\n * @returns The Cerberus configuration context.\n */\nexport function useCerberusContext() {\n const context = useContext(CerberusContext)\n if (!context) {\n throw new Error('useCerberus must be used within a CerberusProvider')\n }\n return context\n}\n","/**\n * This module contains utility functions that are used across your app.\n * @module Utils\n */\n\n/**\n * Formats the count of notifications to be displayed in the notification badge.\n * @param count - The number of notifications.\n * @returns The formatted count of notifications.\n * @example\n * ```tsx\n * const count = formatNotifyCount(100)\n * console.log(count) // '99+'\n * ```\n */\nexport function formatNotifyCount(count: number): string {\n if (count > 99) return '99+'\n return count.toString()\n}\n\n/**\n * Splits the properties of an object into multiple groups based on lists of keys.\n * @param props - The object to split.\n * @param keyGroups - The lists of keys to include in each group.\n * @returns An array of objects: each containing the properties specified in the corresponding key group, and the last object containing the remaining keys.\n */\nexport function splitProps<T extends object>(\n props: T,\n ...keyGroups: (keyof T)[][]\n): { [K in keyof T]?: T[K] }[] {\n const result = keyGroups.map(() => ({}) as { [K in keyof T]?: T[K] })\n const rest = {} as { [K in keyof T]?: T[K] }\n\n for (const key in props) {\n let assigned = false\n for (let i = 0; i < keyGroups.length; i++) {\n if (keyGroups[i].includes(key as keyof T)) {\n result[i][key as keyof T] = props[key]\n assigned = true\n break\n }\n }\n if (!assigned) {\n rest[key as keyof T] = props[key]\n }\n }\n\n return [...result, rest]\n}\n\nexport * from './localStorage'\n","import { Portal as ArkPortal, type PortalProps } from '@ark-ui/react'\n\n/**\n * This module is the Portal component.\n * @module\n */\n\nexport type { PortalProps }\n\n/**\n * The Portal component is used to render children into a DOM node that exists outside the DOM hierarchy of the parent component.\n * @see https://cerberus.digitalu.design/react/portal\n * @definition [React Portal Docs](https://react.dev/reference/react-dom/createPortal)\n * @example\n * ```tsx\n * 'use client'\n *\n * import { Portal } from '@cerberus/react'\n *\n * function SomeFeatureWithinSSRPage() {\n * return (\n * <Portal>\n * <div>Portal Content outside of the React VDom tree</div>\n * </Portal>\n * )\n * }\n */\nexport const Portal = ArkPortal\n","import { type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps<T> {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: T | boolean | null | undefined\n /**\n * The children to render when the condition is false.\n */\n fallback?: ReactNode\n}\n\n/**\n * Conditionally render a memoized version of the children or optional fallback\n * content.\n * @see https://cerberus.digitalu.design/react/show\n * @example\n * ```tsx\n * <Show when={isLoggedIn} fallback={<Navigate to=\"/login\" />}>\n * <Dashboard />\n * </Show>\n */\nexport function Show<T>(props: PropsWithChildren<ShowProps<T>>) {\n const { when, children, fallback } = props\n\n if (when) {\n return <>{children}</>\n }\n\n if (fallback) {\n return <>{fallback}</>\n }\n\n return null\n}\n","import {\n Combobox,\n type ComboboxClearTriggerProps as ArkComboboxClearTriggerProps,\n type ComboboxContentProps as ArkComboboxContentProps,\n type ComboboxControlProps as ArkComboboxControlProps,\n type ComboboxInputProps as ArkComboboxInputProps,\n type ComboboxItemGroupLabelProps as ArkComboboxItemGroupLabelProps,\n type ComboboxItemGroupProps as ArkComboboxItemGroupProps,\n type ComboboxItemIndicatorProps as ArkComboboxItemIndicatorProps,\n type ComboboxItemProps as ArkComboboxItemProps,\n type ComboboxItemTextProps as ArkComboboxItemTextProps,\n type ComboboxLabelProps as ArkComboboxLabelProps,\n type ComboboxPositionerProps as ArkComboboxPositionerProps,\n type ComboboxRootProps as ArkComboboxRootProps,\n type ComboboxTriggerProps as ArkComboboxTriggerProps,\n} from '@ark-ui/react/combobox'\nimport { ark, type HTMLArkProps } from '@ark-ui/react/factory'\nimport type { SelectCollectionItem } from '../select/select'\nimport { combobox, type ComboboxVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Combobox.\n * @module 'combobox/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(combobox)\n\n/**\n * The ComboboxRoot component is the context provider for the Combobox\n * component.\n */\n\n// @ts-expect-error there is a type mismatch here, but it works in practice\nexport const ComboboxRoot = withSlotRecipe<ComboboxRootProps>(\n Combobox.Root,\n 'root',\n)\nexport type ComboboxRootProps = CerberusPrimitiveProps<\n ArkComboboxRootProps<SelectCollectionItem> & ComboboxVariantProps\n>\n\n/**\n * The label that appears above the combobox input.\n */\nexport const ComboboxLabel = withSlotRecipe<ComboboxLabelProps>(\n Combobox.Label,\n 'label',\n)\nexport type ComboboxLabelProps = CerberusPrimitiveProps<ArkComboboxLabelProps>\n\n/**\n * The control that wraps the combobox input.\n */\nexport const ComboboxControl = withSlotRecipe<ComboboxControlProps>(\n Combobox.Control,\n 'control',\n)\nexport type ComboboxControlProps =\n CerberusPrimitiveProps<ArkComboboxControlProps>\n\n/**\n * The input of the combobox.\n */\nexport const ComboboxInput = withSlotRecipe<ComboboxInputProps>(\n Combobox.Input,\n 'input',\n)\nexport type ComboboxInputProps = CerberusPrimitiveProps<ArkComboboxInputProps>\n\n/**\n * The trigger that opens the dropdown.\n */\nexport const ComboboxTrigger = withSlotRecipe<ComboboxTriggerProps>(\n Combobox.Trigger,\n 'trigger',\n)\nexport type ComboboxTriggerProps =\n CerberusPrimitiveProps<ArkComboboxTriggerProps>\n\n/**\n * The trigger to clear the combobox input.\n */\nexport const ComboboxClearTrigger = withSlotRecipe<ComboboxClearTriggerProps>(\n Combobox.ClearTrigger,\n 'clearTrigger',\n)\nexport type ComboboxClearTriggerProps =\n CerberusPrimitiveProps<ArkComboboxClearTriggerProps>\n\n/**\n * The positioner that wraps the content.\n */\nexport const ComboboxPositioner = withSlotRecipe<ComboboxPositionerProps>(\n Combobox.Positioner,\n 'positioner',\n)\nexport type ComboboxPositionerProps =\n CerberusPrimitiveProps<ArkComboboxPositionerProps>\n\n/**\n * The content of the combobox component.\n */\nexport const ComboboxContent = withSlotRecipe<ComboboxContentProps>(\n Combobox.Content,\n 'content',\n)\nexport type ComboboxContentProps = CerberusPrimitiveProps<\n ArkComboboxContentProps & ComboboxVariantProps\n>\n\n/**\n * A group of items in the combobox component.\n */\nexport const ComboboxItemGroup = withSlotRecipe<ComboboxItemGroupProps>(\n Combobox.ItemGroup,\n 'itemGroup',\n)\nexport type ComboboxItemGroupProps =\n CerberusPrimitiveProps<ArkComboboxItemGroupProps>\n\n/**\n * The label for a group of items in the combobox component.\n */\nexport const ComboboxItemGroupLabel =\n withSlotRecipe<ComboboxItemGroupLabelProps>(\n Combobox.ItemGroupLabel,\n 'itemGroupLabel',\n )\nexport type ComboboxItemGroupLabelProps =\n CerberusPrimitiveProps<ArkComboboxItemGroupLabelProps>\n\n/**\n * An individual item in the combobox component.\n */\nexport const ComboboxItem = withSlotRecipe<ComboboxItemProps>(\n Combobox.Item,\n 'item',\n)\nexport type ComboboxItemProps = CerberusPrimitiveProps<ArkComboboxItemProps>\n\n/**\n * The text that labels a single item of the combobox.\n */\nexport const ComboboxItemText = withSlotRecipe<ComboboxItemTextProps>(\n Combobox.ItemText,\n 'itemText',\n)\nexport type ComboboxItemTextProps =\n CerberusPrimitiveProps<ArkComboboxItemTextProps>\n\n/**\n * The indicator that appears when the item has been selected.\n */\nexport const ComboboxItemIndicator = withSlotRecipe<ComboboxItemIndicatorProps>(\n Combobox.ItemIndicator,\n 'itemIndicator',\n)\nexport type ComboboxItemIndicatorProps =\n CerberusPrimitiveProps<ArkComboboxItemIndicatorProps>\n\n/**\n * The icon that appears at the start of the combobox input.\n */\nexport const ComboboxStartIcon = withSlotRecipe<ComboboxStartIconProps>(\n ark.span,\n 'startIcon',\n)\nexport type ComboboxStartIconProps = CerberusPrimitiveProps<\n HTMLArkProps<'span'>\n>\n\n// We are only doing this to make the API consistent\nexport const ComboItemText = ComboboxItemText\nexport type ComboboxInputValueChangeDetails = Combobox.InputValueChangeDetails\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 ComboboxClearTrigger,\n ComboboxContent,\n ComboboxControl,\n ComboboxInput,\n ComboboxItem,\n ComboboxItemGroup,\n ComboboxItemGroupLabel,\n ComboboxItemIndicator,\n ComboboxItemText,\n ComboboxLabel,\n ComboboxPositioner,\n ComboboxRoot,\n ComboboxTrigger,\n} from './primitives'\n\n/**\n * This module contains the parts of the Combobox parts.\n * @module 'combobox/parts'\n */\n\ninterface ComboboxPartsValue {\n /**\n * The context provider for the Select component.\n */\n Root: ElementType\n /**\n * The label that appears above the select input.\n */\n Label: ElementType\n /**\n * The control that wraps the select trigger.\n */\n Control: ElementType\n /**\n * The filterable input of the combobox.\n */\n Input: ElementType\n /**\n * The trigger that opens the dropdown.\n */\n Trigger: ElementType\n /**\n * The trigger to clear the select input.\n */\n ClearTrigger: ElementType\n /**\n * The positioner that wraps the content.\n */\n Positioner: ElementType\n /**\n * The content of the select component.\n */\n Content: ElementType\n /**\n * A group of items in the select component.\n */\n ItemGroup: ElementType\n /**\n * The label for a group of items in the select component.\n */\n ItemGroupLabel: ElementType\n /**\n * An individual item in the select component.\n */\n Item: ElementType\n /**\n * The text that labels a single radio of the field.\n */\n ItemText: ElementType\n /**\n * The indicator that appears when the item has been selected.\n */\n ItemIndicator: ElementType\n}\n\n/**\n * An Object containing the parts of the Radio component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the ComboboxParts object and\n * the entire family of components vs. only what you use.\n */\nexport const ComboboxParts: ComboboxPartsValue = {\n Root: ComboboxRoot,\n Label: ComboboxLabel,\n Control: ComboboxControl,\n Input: ComboboxInput,\n Trigger: ComboboxTrigger,\n ClearTrigger: ComboboxClearTrigger,\n Positioner: ComboboxPositioner,\n Content: ComboboxContent,\n ItemGroup: ComboboxItemGroup,\n ItemGroupLabel: ComboboxItemGroupLabel,\n Item: ComboboxItem,\n ItemText: ComboboxItemText,\n ItemIndicator: ComboboxItemIndicator,\n}\n"],"mappings":"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","names":["Combobox","import_react","ArkPortal","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","Combobox"]}
@@ -59,23 +59,28 @@ var CerberusPrimitive = class {
59
59
  /**
60
60
  * Creates a Cerberus component with bare features and no recipe.
61
61
  * @param Component - The React component to enhance with Cerberus features.
62
+ * Can be a string or a component reference.
62
63
  * @returns A new React component that applies Cerberus features to the
63
64
  * original component.
65
+ *
64
66
  * @example
65
- * ```typescript
66
- * const { withNoRecipe } = createCerberusPrimitive(button)
67
- * const Button = withNoRecipe(RawButton)
67
+ * ```ts
68
+ * const { withNoRecipe } = createCerberusPrimitive(buttonRecipe)
69
+ * const Button = withNoRecipe('button')
68
70
  * ```
69
71
  */
70
72
  __publicField(this, "withNoRecipe", (Component, options) => {
71
73
  const { defaultProps } = options || {};
72
- this.validateComponent(Component);
74
+ const El = Component;
73
75
  const CerbComponent = (props) => {
74
76
  const { css: customCss, className, ...nativeProps } = props;
75
77
  const styles = this.hasStyles((0, import_css.cx)(className, (0, import_css.css)(customCss)));
76
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, { ...defaultProps, ...styles, ...nativeProps });
78
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(El, { ...defaultProps, ...styles, ...nativeProps });
77
79
  };
78
- CerbComponent.displayName = Component.displayName || Component.name;
80
+ if (this.validateComponent(El)) {
81
+ const ElName = typeof El === "string" ? El : El.displayName || El.name;
82
+ CerbComponent.displayName = ElName;
83
+ }
79
84
  return CerbComponent;
80
85
  });
81
86
  /**
@@ -87,8 +92,8 @@ var CerberusPrimitive = class {
87
92
  */
88
93
  __publicField(this, "withRecipe", (Component, options) => {
89
94
  const { defaultProps } = options || {};
95
+ const El = Component;
90
96
  const recipe = this.recipe;
91
- this.validateComponent(Component);
92
97
  const CerbComponent = (internalProps) => {
93
98
  const {
94
99
  css: customCss,
@@ -106,7 +111,10 @@ var CerberusPrimitive = class {
106
111
  }
107
112
  );
108
113
  };
109
- CerbComponent.displayName = Component.displayName || Component.name;
114
+ if (this.validateComponent(El)) {
115
+ const ElName = typeof El === "string" ? El : El.displayName || El.name;
116
+ CerbComponent.displayName = ElName;
117
+ }
110
118
  return CerbComponent;
111
119
  });
112
120
  /**
@@ -123,8 +131,8 @@ var CerberusPrimitive = class {
123
131
  */
124
132
  __publicField(this, "withSlotRecipe", (Component, slot, options) => {
125
133
  const { defaultProps } = options || {};
134
+ const El = Component;
126
135
  const recipe = this.recipe;
127
- this.validateComponent(Component);
128
136
  const CerbComponent = (internalProps) => {
129
137
  const {
130
138
  css: customCss,
@@ -143,7 +151,10 @@ var CerberusPrimitive = class {
143
151
  }
144
152
  );
145
153
  };
146
- CerbComponent.displayName = Component.displayName || Component.name;
154
+ if (this.validateComponent(El)) {
155
+ const ElName = typeof El === "string" ? El : El.displayName || El.name;
156
+ CerbComponent.displayName = ElName;
157
+ }
147
158
  return CerbComponent;
148
159
  });
149
160
  this.recipe = recipe ?? null;
@@ -158,8 +169,9 @@ var CerberusPrimitive = class {
158
169
  }
159
170
  validateComponent(Component) {
160
171
  if (typeof Component !== "function" && typeof Component !== "object") {
161
- throw new Error("Expected a React component as the first argument.");
172
+ return false;
162
173
  }
174
+ return true;
163
175
  }
164
176
  };
165
177