@cerberus-design/react 0.19.1 → 0.19.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (584) hide show
  1. package/build/legacy/_tsup-dts-rollup.d.cts +20 -8
  2. package/build/legacy/components/accordion/index.cjs +35 -15
  3. package/build/legacy/components/accordion/index.cjs.map +1 -1
  4. package/build/legacy/components/accordion/item-group.cjs +35 -15
  5. package/build/legacy/components/accordion/item-group.cjs.map +1 -1
  6. package/build/legacy/components/accordion/item-indicator.cjs +35 -15
  7. package/build/legacy/components/accordion/item-indicator.cjs.map +1 -1
  8. package/build/legacy/components/accordion/parts.cjs +35 -15
  9. package/build/legacy/components/accordion/parts.cjs.map +1 -1
  10. package/build/legacy/components/accordion/primitives.cjs +35 -15
  11. package/build/legacy/components/accordion/primitives.cjs.map +1 -1
  12. package/build/legacy/components/admonition/admonition.cjs +35 -15
  13. package/build/legacy/components/admonition/admonition.cjs.map +1 -1
  14. package/build/legacy/components/admonition/index.cjs +35 -15
  15. package/build/legacy/components/admonition/index.cjs.map +1 -1
  16. package/build/legacy/components/admonition/match-avatar.cjs +35 -15
  17. package/build/legacy/components/admonition/match-avatar.cjs.map +1 -1
  18. package/build/legacy/components/admonition/parts.cjs +35 -15
  19. package/build/legacy/components/admonition/parts.cjs.map +1 -1
  20. package/build/legacy/components/admonition/primitives.cjs +35 -15
  21. package/build/legacy/components/admonition/primitives.cjs.map +1 -1
  22. package/build/legacy/components/avatar/avatar.cjs +35 -15
  23. package/build/legacy/components/avatar/avatar.cjs.map +1 -1
  24. package/build/legacy/components/avatar/index.cjs +35 -15
  25. package/build/legacy/components/avatar/index.cjs.map +1 -1
  26. package/build/legacy/components/avatar/parts.cjs +35 -15
  27. package/build/legacy/components/avatar/parts.cjs.map +1 -1
  28. package/build/legacy/components/avatar/primitives.cjs +35 -15
  29. package/build/legacy/components/avatar/primitives.cjs.map +1 -1
  30. package/build/legacy/components/button/button.cjs +35 -15
  31. package/build/legacy/components/button/button.cjs.map +1 -1
  32. package/build/legacy/components/button/index.cjs +35 -15
  33. package/build/legacy/components/button/index.cjs.map +1 -1
  34. package/build/legacy/components/button/parts.cjs +35 -15
  35. package/build/legacy/components/button/parts.cjs.map +1 -1
  36. package/build/legacy/components/button/primitives.cjs +35 -15
  37. package/build/legacy/components/button/primitives.cjs.map +1 -1
  38. package/build/legacy/components/checkbox/checkbox-icon.cjs +35 -15
  39. package/build/legacy/components/checkbox/checkbox-icon.cjs.map +1 -1
  40. package/build/legacy/components/checkbox/checkbox.cjs +35 -15
  41. package/build/legacy/components/checkbox/checkbox.cjs.map +1 -1
  42. package/build/legacy/components/checkbox/index.cjs +35 -15
  43. package/build/legacy/components/checkbox/index.cjs.map +1 -1
  44. package/build/legacy/components/checkbox/parts.cjs +35 -15
  45. package/build/legacy/components/checkbox/parts.cjs.map +1 -1
  46. package/build/legacy/components/checkbox/primitives.cjs +35 -15
  47. package/build/legacy/components/checkbox/primitives.cjs.map +1 -1
  48. package/build/legacy/components/circular-progress/circular-progress.cjs +35 -15
  49. package/build/legacy/components/circular-progress/circular-progress.cjs.map +1 -1
  50. package/build/legacy/components/circular-progress/index.cjs +35 -15
  51. package/build/legacy/components/circular-progress/index.cjs.map +1 -1
  52. package/build/legacy/components/circular-progress/primitives.cjs +35 -15
  53. package/build/legacy/components/circular-progress/primitives.cjs.map +1 -1
  54. package/build/legacy/components/combobox/combobox.cjs +35 -15
  55. package/build/legacy/components/combobox/combobox.cjs.map +1 -1
  56. package/build/legacy/components/combobox/index.cjs +35 -15
  57. package/build/legacy/components/combobox/index.cjs.map +1 -1
  58. package/build/legacy/components/combobox/item-group.cjs +35 -15
  59. package/build/legacy/components/combobox/item-group.cjs.map +1 -1
  60. package/build/legacy/components/combobox/item.cjs +35 -15
  61. package/build/legacy/components/combobox/item.cjs.map +1 -1
  62. package/build/legacy/components/combobox/parts.cjs +35 -15
  63. package/build/legacy/components/combobox/parts.cjs.map +1 -1
  64. package/build/legacy/components/combobox/primitives.cjs +35 -15
  65. package/build/legacy/components/combobox/primitives.cjs.map +1 -1
  66. package/build/legacy/components/combobox/use-stateful-collection.cjs +35 -15
  67. package/build/legacy/components/combobox/use-stateful-collection.cjs.map +1 -1
  68. package/build/legacy/components/cta-dialog/index.cjs +35 -15
  69. package/build/legacy/components/cta-dialog/index.cjs.map +1 -1
  70. package/build/legacy/components/cta-dialog/provider.cjs +35 -15
  71. package/build/legacy/components/cta-dialog/provider.cjs.map +1 -1
  72. package/build/legacy/components/cta-dialog/trigger-item.cjs +35 -15
  73. package/build/legacy/components/cta-dialog/trigger-item.cjs.map +1 -1
  74. package/build/legacy/components/date-picker/calendar.cjs +35 -15
  75. package/build/legacy/components/date-picker/calendar.cjs.map +1 -1
  76. package/build/legacy/components/date-picker/content.cjs +35 -15
  77. package/build/legacy/components/date-picker/content.cjs.map +1 -1
  78. package/build/legacy/components/date-picker/date-picker.cjs +35 -15
  79. package/build/legacy/components/date-picker/date-picker.cjs.map +1 -1
  80. package/build/legacy/components/date-picker/day-view.cjs +35 -15
  81. package/build/legacy/components/date-picker/day-view.cjs.map +1 -1
  82. package/build/legacy/components/date-picker/index.cjs +35 -15
  83. package/build/legacy/components/date-picker/index.cjs.map +1 -1
  84. package/build/legacy/components/date-picker/input.cjs +35 -15
  85. package/build/legacy/components/date-picker/input.cjs.map +1 -1
  86. package/build/legacy/components/date-picker/month-view.cjs +35 -15
  87. package/build/legacy/components/date-picker/month-view.cjs.map +1 -1
  88. package/build/legacy/components/date-picker/parts.cjs +35 -15
  89. package/build/legacy/components/date-picker/parts.cjs.map +1 -1
  90. package/build/legacy/components/date-picker/primitives.cjs +35 -15
  91. package/build/legacy/components/date-picker/primitives.cjs.map +1 -1
  92. package/build/legacy/components/date-picker/range-input.cjs +35 -15
  93. package/build/legacy/components/date-picker/range-input.cjs.map +1 -1
  94. package/build/legacy/components/date-picker/trigger.cjs +35 -15
  95. package/build/legacy/components/date-picker/trigger.cjs.map +1 -1
  96. package/build/legacy/components/date-picker/view-control-group.cjs +35 -15
  97. package/build/legacy/components/date-picker/view-control-group.cjs.map +1 -1
  98. package/build/legacy/components/date-picker/year-view.cjs +35 -15
  99. package/build/legacy/components/date-picker/year-view.cjs.map +1 -1
  100. package/build/legacy/components/deprecated/Label.cjs +35 -15
  101. package/build/legacy/components/deprecated/Label.cjs.map +1 -1
  102. package/build/legacy/components/dialog/close-icon-trigger.cjs +35 -15
  103. package/build/legacy/components/dialog/close-icon-trigger.cjs.map +1 -1
  104. package/build/legacy/components/dialog/dialog.cjs +35 -15
  105. package/build/legacy/components/dialog/dialog.cjs.map +1 -1
  106. package/build/legacy/components/dialog/index.cjs +35 -15
  107. package/build/legacy/components/dialog/index.cjs.map +1 -1
  108. package/build/legacy/components/dialog/parts.cjs +35 -15
  109. package/build/legacy/components/dialog/parts.cjs.map +1 -1
  110. package/build/legacy/components/dialog/primitives.cjs +35 -15
  111. package/build/legacy/components/dialog/primitives.cjs.map +1 -1
  112. package/build/legacy/components/field/field.cjs +35 -15
  113. package/build/legacy/components/field/field.cjs.map +1 -1
  114. package/build/legacy/components/field/helper-text.cjs +35 -15
  115. package/build/legacy/components/field/helper-text.cjs.map +1 -1
  116. package/build/legacy/components/field/index.cjs +37 -16
  117. package/build/legacy/components/field/index.cjs.map +1 -1
  118. package/build/legacy/components/field/input.cjs +37 -16
  119. package/build/legacy/components/field/input.cjs.map +1 -1
  120. package/build/legacy/components/field/parts.cjs +37 -16
  121. package/build/legacy/components/field/parts.cjs.map +1 -1
  122. package/build/legacy/components/field/primitives.cjs +37 -16
  123. package/build/legacy/components/field/primitives.cjs.map +1 -1
  124. package/build/legacy/components/field/status-indicator.cjs +2 -1
  125. package/build/legacy/components/field/status-indicator.cjs.map +1 -1
  126. package/build/legacy/components/fieldset/fieldset.cjs +35 -15
  127. package/build/legacy/components/fieldset/fieldset.cjs.map +1 -1
  128. package/build/legacy/components/fieldset/index.cjs +35 -15
  129. package/build/legacy/components/fieldset/index.cjs.map +1 -1
  130. package/build/legacy/components/fieldset/parts.cjs +35 -15
  131. package/build/legacy/components/fieldset/parts.cjs.map +1 -1
  132. package/build/legacy/components/fieldset/primitives.cjs +35 -15
  133. package/build/legacy/components/fieldset/primitives.cjs.map +1 -1
  134. package/build/legacy/components/file-upload/file-status.cjs +36 -16
  135. package/build/legacy/components/file-upload/file-status.cjs.map +1 -1
  136. package/build/legacy/components/file-upload/file-uploader.cjs +35 -15
  137. package/build/legacy/components/file-upload/file-uploader.cjs.map +1 -1
  138. package/build/legacy/components/file-upload/index.cjs +36 -16
  139. package/build/legacy/components/file-upload/index.cjs.map +1 -1
  140. package/build/legacy/components/icon-button/button.cjs +35 -15
  141. package/build/legacy/components/icon-button/button.cjs.map +1 -1
  142. package/build/legacy/components/icon-button/index.cjs +35 -15
  143. package/build/legacy/components/icon-button/index.cjs.map +1 -1
  144. package/build/legacy/components/icon-button/primitives.cjs +35 -15
  145. package/build/legacy/components/icon-button/primitives.cjs.map +1 -1
  146. package/build/legacy/components/menu/index.cjs +35 -15
  147. package/build/legacy/components/menu/index.cjs.map +1 -1
  148. package/build/legacy/components/menu/menu.cjs +35 -15
  149. package/build/legacy/components/menu/menu.cjs.map +1 -1
  150. package/build/legacy/components/menu/primitives.cjs +35 -15
  151. package/build/legacy/components/menu/primitives.cjs.map +1 -1
  152. package/build/legacy/components/notifications/center.cjs +35 -15
  153. package/build/legacy/components/notifications/center.cjs.map +1 -1
  154. package/build/legacy/components/notifications/close-trigger.cjs +35 -15
  155. package/build/legacy/components/notifications/close-trigger.cjs.map +1 -1
  156. package/build/legacy/components/notifications/index.cjs +35 -15
  157. package/build/legacy/components/notifications/index.cjs.map +1 -1
  158. package/build/legacy/components/notifications/parts.cjs +35 -15
  159. package/build/legacy/components/notifications/parts.cjs.map +1 -1
  160. package/build/legacy/components/notifications/primitives.cjs +35 -15
  161. package/build/legacy/components/notifications/primitives.cjs.map +1 -1
  162. package/build/legacy/components/progress/index.cjs +35 -15
  163. package/build/legacy/components/progress/index.cjs.map +1 -1
  164. package/build/legacy/components/progress/primitives.cjs +35 -15
  165. package/build/legacy/components/progress/primitives.cjs.map +1 -1
  166. package/build/legacy/components/progress/progress-bar.cjs +35 -15
  167. package/build/legacy/components/progress/progress-bar.cjs.map +1 -1
  168. package/build/legacy/components/radio/index.cjs +35 -15
  169. package/build/legacy/components/radio/index.cjs.map +1 -1
  170. package/build/legacy/components/radio/parts.cjs +35 -15
  171. package/build/legacy/components/radio/parts.cjs.map +1 -1
  172. package/build/legacy/components/radio/primitives.cjs +35 -15
  173. package/build/legacy/components/radio/primitives.cjs.map +1 -1
  174. package/build/legacy/components/radio/radio.cjs +35 -15
  175. package/build/legacy/components/radio/radio.cjs.map +1 -1
  176. package/build/legacy/components/rating/index.cjs +35 -15
  177. package/build/legacy/components/rating/index.cjs.map +1 -1
  178. package/build/legacy/components/rating/parts.cjs +35 -15
  179. package/build/legacy/components/rating/parts.cjs.map +1 -1
  180. package/build/legacy/components/rating/primitives.cjs +35 -15
  181. package/build/legacy/components/rating/primitives.cjs.map +1 -1
  182. package/build/legacy/components/rating/rating.cjs +35 -15
  183. package/build/legacy/components/rating/rating.cjs.map +1 -1
  184. package/build/legacy/components/select/index.cjs +35 -15
  185. package/build/legacy/components/select/index.cjs.map +1 -1
  186. package/build/legacy/components/select/option-group.cjs +35 -15
  187. package/build/legacy/components/select/option-group.cjs.map +1 -1
  188. package/build/legacy/components/select/option.cjs +35 -15
  189. package/build/legacy/components/select/option.cjs.map +1 -1
  190. package/build/legacy/components/select/parts.cjs +35 -15
  191. package/build/legacy/components/select/parts.cjs.map +1 -1
  192. package/build/legacy/components/select/primitives.cjs +35 -15
  193. package/build/legacy/components/select/primitives.cjs.map +1 -1
  194. package/build/legacy/components/select/select.cjs +35 -15
  195. package/build/legacy/components/select/select.cjs.map +1 -1
  196. package/build/legacy/components/switch/index.cjs +35 -15
  197. package/build/legacy/components/switch/index.cjs.map +1 -1
  198. package/build/legacy/components/switch/parts.cjs +35 -15
  199. package/build/legacy/components/switch/parts.cjs.map +1 -1
  200. package/build/legacy/components/switch/primitives.cjs +35 -15
  201. package/build/legacy/components/switch/primitives.cjs.map +1 -1
  202. package/build/legacy/components/switch/switch.cjs +35 -15
  203. package/build/legacy/components/switch/switch.cjs.map +1 -1
  204. package/build/legacy/components/table/index.cjs +35 -15
  205. package/build/legacy/components/table/index.cjs.map +1 -1
  206. package/build/legacy/components/table/parts.cjs +35 -15
  207. package/build/legacy/components/table/parts.cjs.map +1 -1
  208. package/build/legacy/components/table/primitives.cjs +35 -15
  209. package/build/legacy/components/table/primitives.cjs.map +1 -1
  210. package/build/legacy/components/table/table.cjs +35 -15
  211. package/build/legacy/components/table/table.cjs.map +1 -1
  212. package/build/legacy/components/tabs/index.cjs +35 -15
  213. package/build/legacy/components/tabs/index.cjs.map +1 -1
  214. package/build/legacy/components/tabs/parts.cjs +35 -15
  215. package/build/legacy/components/tabs/parts.cjs.map +1 -1
  216. package/build/legacy/components/tabs/primitives.cjs +35 -15
  217. package/build/legacy/components/tabs/primitives.cjs.map +1 -1
  218. package/build/legacy/components/tabs/tabs.cjs +35 -15
  219. package/build/legacy/components/tabs/tabs.cjs.map +1 -1
  220. package/build/legacy/components/tag/index.cjs +35 -15
  221. package/build/legacy/components/tag/index.cjs.map +1 -1
  222. package/build/legacy/components/tag/tag.cjs +35 -15
  223. package/build/legacy/components/tag/tag.cjs.map +1 -1
  224. package/build/legacy/components/theme/index.cjs +35 -15
  225. package/build/legacy/components/theme/index.cjs.map +1 -1
  226. package/build/legacy/components/theme/theme.cjs +35 -15
  227. package/build/legacy/components/theme/theme.cjs.map +1 -1
  228. package/build/legacy/components/toggle/index.cjs +35 -15
  229. package/build/legacy/components/toggle/index.cjs.map +1 -1
  230. package/build/legacy/components/toggle/parts.cjs +35 -15
  231. package/build/legacy/components/toggle/parts.cjs.map +1 -1
  232. package/build/legacy/components/toggle/primitives.cjs +35 -15
  233. package/build/legacy/components/toggle/primitives.cjs.map +1 -1
  234. package/build/legacy/components/tooltip/index.cjs +35 -15
  235. package/build/legacy/components/tooltip/index.cjs.map +1 -1
  236. package/build/legacy/components/tooltip/parts.cjs +35 -15
  237. package/build/legacy/components/tooltip/parts.cjs.map +1 -1
  238. package/build/legacy/components/tooltip/primitives.cjs +35 -15
  239. package/build/legacy/components/tooltip/primitives.cjs.map +1 -1
  240. package/build/legacy/components/tooltip/tooltip.cjs +35 -15
  241. package/build/legacy/components/tooltip/tooltip.cjs.map +1 -1
  242. package/build/legacy/context/confirm-modal.cjs +35 -15
  243. package/build/legacy/context/confirm-modal.cjs.map +1 -1
  244. package/build/legacy/context/field.cjs +35 -15
  245. package/build/legacy/context/field.cjs.map +1 -1
  246. package/build/legacy/context/prompt-modal.cjs +37 -16
  247. package/build/legacy/context/prompt-modal.cjs.map +1 -1
  248. package/build/legacy/index.cjs +38 -17
  249. package/build/legacy/index.cjs.map +1 -1
  250. package/build/legacy/system/factory.cjs +35 -15
  251. package/build/legacy/system/factory.cjs.map +1 -1
  252. package/build/legacy/system/index.cjs +35 -15
  253. package/build/legacy/system/index.cjs.map +1 -1
  254. package/build/legacy/system/primitive-factory.cjs +35 -15
  255. package/build/legacy/system/primitive-factory.cjs.map +1 -1
  256. package/build/legacy/types.cjs.map +1 -1
  257. package/build/modern/_tsup-dts-rollup.d.ts +20 -8
  258. package/build/modern/{chunk-M4NNRVTU.js → chunk-236F7MCH.js} +2 -2
  259. package/build/modern/{chunk-UKAVYSJ5.js → chunk-2D6BHWPB.js} +3 -3
  260. package/build/modern/{chunk-LRIYLZSL.js → chunk-2KVC3OJ3.js} +3 -3
  261. package/build/modern/{chunk-SQIB5EOA.js → chunk-2UQWJSA6.js} +2 -2
  262. package/build/modern/{chunk-KM3G4YFF.js → chunk-3NPWHL5X.js} +2 -2
  263. package/build/modern/{chunk-3Z4TSR6V.js → chunk-3UIV3HMB.js} +2 -2
  264. package/build/modern/{chunk-CIIFJ2SA.js → chunk-3X6VM5FS.js} +2 -2
  265. package/build/modern/{chunk-BK5BIPCG.js → chunk-3Z6W4ZFA.js} +2 -2
  266. package/build/modern/{chunk-7WX2RQT6.js → chunk-45ZTZUCD.js} +3 -3
  267. package/build/modern/{chunk-ALJYABJX.js → chunk-4O26WCRC.js} +2 -2
  268. package/build/modern/{chunk-WO6MF3XM.js → chunk-4O64W4BA.js} +2 -2
  269. package/build/modern/{chunk-UXU2CVPI.js → chunk-4SOUI4NF.js} +2 -2
  270. package/build/modern/{chunk-S7ALRSVU.js → chunk-5B6LMHY2.js} +2 -2
  271. package/build/modern/{chunk-JG5V3AK4.js → chunk-5L5PT37R.js} +3 -3
  272. package/build/modern/{chunk-ZZSHEW4N.js → chunk-5RLQNM73.js} +2 -2
  273. package/build/modern/{chunk-4WSCG2CM.js → chunk-6LU43Z4K.js} +3 -3
  274. package/build/modern/{chunk-4Q62OI72.js → chunk-76VTLS7X.js} +2 -2
  275. package/build/modern/{chunk-5XU3LUPC.js → chunk-7B2ZHSH3.js} +2 -2
  276. package/build/modern/{chunk-JSK6OD6J.js → chunk-7JNOY5MW.js} +2 -2
  277. package/build/modern/{chunk-WKAI4OK3.js → chunk-7UKNQ4RD.js} +2 -2
  278. package/build/modern/{chunk-OMM4CPZU.js → chunk-AOLWIMWV.js} +2 -2
  279. package/build/modern/{chunk-MXW63O5N.js → chunk-AQNXQVXP.js} +2 -2
  280. package/build/modern/{chunk-KYYKBLP2.js → chunk-BHZN6P2K.js} +2 -2
  281. package/build/modern/{chunk-GZ6T3352.js → chunk-BKPIKVU2.js} +36 -16
  282. package/build/modern/chunk-BKPIKVU2.js.map +1 -0
  283. package/build/modern/{chunk-LW62VSVZ.js → chunk-BSJM5VYB.js} +2 -2
  284. package/build/modern/{chunk-ZO3GSLWZ.js → chunk-BSZVMBX7.js} +2 -2
  285. package/build/modern/{chunk-BWZXR2WZ.js → chunk-BXDQ5AXV.js} +2 -2
  286. package/build/modern/{chunk-Y67NIX2N.js → chunk-C7XAB665.js} +3 -3
  287. package/build/modern/{chunk-YCVNE3CA.js → chunk-CHEYITRR.js} +2 -2
  288. package/build/modern/{chunk-HJ67FKQ6.js → chunk-D7BCQ2CQ.js} +2 -2
  289. package/build/modern/{chunk-VXG4AEMZ.js → chunk-DH7SFE2R.js} +2 -2
  290. package/build/modern/{chunk-BDXVYV32.js → chunk-EQ3X7KQ3.js} +2 -2
  291. package/build/modern/{chunk-L2G4XKLT.js → chunk-ET3UY6GV.js} +2 -2
  292. package/build/modern/{chunk-N2DZNGUS.js → chunk-EZJMTWXK.js} +2 -2
  293. package/build/modern/{chunk-2MU6WE52.js → chunk-FSX64HPK.js} +3 -3
  294. package/build/modern/{chunk-UHXKG2ZP.js → chunk-FVADFCAE.js} +2 -2
  295. package/build/modern/{chunk-J3XTP6VP.js → chunk-GFFIJGQC.js} +2 -2
  296. package/build/modern/{chunk-AZ5LB6IS.js → chunk-GTAIWUFQ.js} +2 -2
  297. package/build/modern/{chunk-VIUQS3VG.js → chunk-GZYLYTAG.js} +2 -2
  298. package/build/modern/{chunk-THMNM4CZ.js → chunk-HCH5I26B.js} +2 -2
  299. package/build/modern/{chunk-YI3P5QG4.js → chunk-HMUQEMV2.js} +2 -2
  300. package/build/modern/{chunk-GIIPOOSM.js → chunk-HYEFRC5Z.js} +2 -2
  301. package/build/modern/{chunk-QOTRCNC7.js → chunk-INQZQMLL.js} +2 -2
  302. package/build/modern/{chunk-2T2S226G.js → chunk-IOX43IGB.js} +2 -2
  303. package/build/modern/{chunk-HPWLIE64.js → chunk-IRJITAGE.js} +2 -2
  304. package/build/modern/{chunk-OVDJPTML.js → chunk-IVQCMXV6.js} +3 -3
  305. package/build/modern/{chunk-QM4DC6QF.js → chunk-IYF5FS6N.js} +2 -2
  306. package/build/modern/{chunk-IOK2RQK6.js → chunk-JBYWQERR.js} +4 -4
  307. package/build/modern/{chunk-TF2DXEUF.js → chunk-JIEN2PM7.js} +2 -2
  308. package/build/modern/{chunk-KLZPY4YX.js → chunk-JUSH26RO.js} +2 -2
  309. package/build/modern/{chunk-OFACU2SY.js → chunk-JVAGLLOA.js} +2 -2
  310. package/build/modern/{chunk-NH2RSI7N.js → chunk-K3NML67W.js} +2 -2
  311. package/build/modern/{chunk-YTKY3AHF.js → chunk-K3YEOS6O.js} +2 -2
  312. package/build/modern/{chunk-YZFXHGMG.js → chunk-KITDXURN.js} +2 -2
  313. package/build/modern/{chunk-2Q4KTP6D.js → chunk-KJYNKQX4.js} +7 -7
  314. package/build/modern/{chunk-2Q4KTP6D.js.map → chunk-KJYNKQX4.js.map} +1 -1
  315. package/build/modern/{chunk-GHM4I5BN.js → chunk-KZVCQNZI.js} +3 -3
  316. package/build/modern/{chunk-OVYHM5DH.js → chunk-L4KBNOWP.js} +2 -2
  317. package/build/modern/{chunk-VIKVLJGG.js → chunk-LCURHO24.js} +3 -2
  318. package/build/modern/{chunk-VIKVLJGG.js.map → chunk-LCURHO24.js.map} +1 -1
  319. package/build/modern/{chunk-E4DXMJ3C.js → chunk-LO6YTNOP.js} +2 -2
  320. package/build/modern/{chunk-MG2YW4IP.js → chunk-LOJBIVY4.js} +2 -2
  321. package/build/modern/{chunk-CMQZN2GZ.js → chunk-MMNUVODK.js} +2 -2
  322. package/build/modern/{chunk-6TIG456O.js → chunk-MVHFBVDA.js} +2 -2
  323. package/build/modern/{chunk-IU5YJTKN.js → chunk-N5D6HNGL.js} +2 -2
  324. package/build/modern/{chunk-YUEVV2DE.js → chunk-NHM5IWBE.js} +2 -2
  325. package/build/modern/{chunk-6BNGJMNL.js → chunk-O4W2BVE7.js} +3 -3
  326. package/build/modern/{chunk-KSYZMMXN.js → chunk-OG644D7M.js} +3 -3
  327. package/build/modern/{chunk-P6WEDKIB.js → chunk-OX3NA6DQ.js} +2 -2
  328. package/build/modern/{chunk-2UFNNWLA.js → chunk-OYTEXDS6.js} +5 -5
  329. package/build/modern/{chunk-YQNOAJM7.js → chunk-OZTYYWIX.js} +2 -2
  330. package/build/modern/{chunk-SGFITMUF.js → chunk-P6JC32U3.js} +2 -2
  331. package/build/modern/{chunk-A57LVJJF.js → chunk-PZELEMIY.js} +2 -2
  332. package/build/modern/{chunk-2OWVBM5W.js → chunk-RI3WN6XL.js} +2 -2
  333. package/build/modern/{chunk-RDFAC3XX.js → chunk-RS6DS6RS.js} +2 -2
  334. package/build/modern/{chunk-SFAJKI45.js → chunk-RT4W6GBB.js} +2 -2
  335. package/build/modern/{chunk-CLGDJ4GM.js → chunk-SFS5ILWG.js} +3 -3
  336. package/build/modern/{chunk-RXAHVNN2.js → chunk-SITE2UML.js} +2 -2
  337. package/build/modern/{chunk-AJ5TWPXM.js → chunk-SKOX5PJI.js} +3 -3
  338. package/build/modern/{chunk-COIQJKC3.js → chunk-SP7TSFMZ.js} +2 -2
  339. package/build/modern/{chunk-NPZJTTTS.js → chunk-TBCTCQXG.js} +5 -5
  340. package/build/modern/{chunk-PQ5DEKSH.js → chunk-TIQO4VNE.js} +2 -2
  341. package/build/modern/{chunk-ZPMGW4U7.js → chunk-TJSHJF6G.js} +2 -2
  342. package/build/modern/{chunk-FMNYWD5T.js → chunk-TKHDOZWN.js} +2 -2
  343. package/build/modern/{chunk-ACK44GEO.js → chunk-UAVGKLHV.js} +6 -6
  344. package/build/modern/{chunk-4DJ6KC4K.js → chunk-UZZ26IWW.js} +6 -6
  345. package/build/modern/{chunk-BOATN5PB.js → chunk-V5TUC5AS.js} +2 -2
  346. package/build/modern/{chunk-U6ECBUYN.js → chunk-VQUJGCZW.js} +2 -2
  347. package/build/modern/{chunk-D47GTCQZ.js → chunk-VYJAPLLO.js} +2 -2
  348. package/build/modern/{chunk-RFANIL5H.js → chunk-WGWEAB2Q.js} +2 -2
  349. package/build/modern/{chunk-A655GBYQ.js → chunk-X24O5DTP.js} +4 -4
  350. package/build/modern/{chunk-ZGPHSKEB.js → chunk-YJRAJNYI.js} +3 -3
  351. package/build/modern/{chunk-RGLJDMIO.js → chunk-YR6G66UT.js} +3 -3
  352. package/build/modern/{chunk-VZXYGBU6.js → chunk-YWPXLHUO.js} +2 -2
  353. package/build/modern/{chunk-DC3NTCCW.js → chunk-YZG7BNVB.js} +2 -2
  354. package/build/modern/{chunk-BW64QBCK.js → chunk-Z5DHBMQF.js} +2 -2
  355. package/build/modern/{chunk-UCP3GQOJ.js → chunk-ZFONE65Q.js} +2 -2
  356. package/build/modern/{chunk-YVYOOJ3X.js → chunk-ZFVQQJIQ.js} +2 -2
  357. package/build/modern/{chunk-WGSUBJNI.js → chunk-ZZ4JETME.js} +2 -2
  358. package/build/modern/components/accordion/index.js +7 -7
  359. package/build/modern/components/accordion/item-group.js +7 -7
  360. package/build/modern/components/accordion/item-indicator.js +6 -6
  361. package/build/modern/components/accordion/parts.js +5 -5
  362. package/build/modern/components/accordion/primitives.js +4 -4
  363. package/build/modern/components/admonition/admonition.js +10 -10
  364. package/build/modern/components/admonition/index.js +10 -10
  365. package/build/modern/components/admonition/match-avatar.js +7 -7
  366. package/build/modern/components/admonition/parts.js +5 -5
  367. package/build/modern/components/admonition/primitives.js +4 -4
  368. package/build/modern/components/avatar/avatar.js +6 -6
  369. package/build/modern/components/avatar/index.js +6 -6
  370. package/build/modern/components/avatar/parts.js +5 -5
  371. package/build/modern/components/avatar/primitives.js +4 -4
  372. package/build/modern/components/button/button.js +5 -5
  373. package/build/modern/components/button/index.js +6 -6
  374. package/build/modern/components/button/parts.js +6 -6
  375. package/build/modern/components/button/primitives.js +4 -4
  376. package/build/modern/components/checkbox/checkbox-icon.js +6 -6
  377. package/build/modern/components/checkbox/checkbox.js +7 -7
  378. package/build/modern/components/checkbox/index.js +7 -7
  379. package/build/modern/components/checkbox/parts.js +5 -5
  380. package/build/modern/components/checkbox/primitives.js +4 -4
  381. package/build/modern/components/circular-progress/circular-progress.js +5 -5
  382. package/build/modern/components/circular-progress/index.js +5 -5
  383. package/build/modern/components/circular-progress/primitives.js +4 -4
  384. package/build/modern/components/combobox/combobox.js +6 -6
  385. package/build/modern/components/combobox/index.js +10 -10
  386. package/build/modern/components/combobox/item-group.js +6 -6
  387. package/build/modern/components/combobox/item.js +6 -6
  388. package/build/modern/components/combobox/parts.js +5 -5
  389. package/build/modern/components/combobox/primitives.js +4 -4
  390. package/build/modern/components/combobox/use-stateful-collection.js +5 -5
  391. package/build/modern/components/cta-dialog/index.js +16 -16
  392. package/build/modern/components/cta-dialog/provider.js +16 -16
  393. package/build/modern/components/cta-dialog/trigger-item.js +6 -6
  394. package/build/modern/components/date-picker/calendar.js +15 -15
  395. package/build/modern/components/date-picker/content.js +6 -6
  396. package/build/modern/components/date-picker/date-picker.js +6 -6
  397. package/build/modern/components/date-picker/day-view.js +11 -11
  398. package/build/modern/components/date-picker/index.js +19 -19
  399. package/build/modern/components/date-picker/input.js +9 -9
  400. package/build/modern/components/date-picker/month-view.js +11 -11
  401. package/build/modern/components/date-picker/parts.js +5 -5
  402. package/build/modern/components/date-picker/primitives.js +4 -4
  403. package/build/modern/components/date-picker/range-input.js +9 -9
  404. package/build/modern/components/date-picker/trigger.js +8 -8
  405. package/build/modern/components/date-picker/view-control-group.js +10 -10
  406. package/build/modern/components/date-picker/year-view.js +11 -11
  407. package/build/modern/components/deprecated/Label.js +9 -9
  408. package/build/modern/components/dialog/close-icon-trigger.js +7 -7
  409. package/build/modern/components/dialog/dialog.js +5 -5
  410. package/build/modern/components/dialog/index.js +9 -9
  411. package/build/modern/components/dialog/parts.js +5 -5
  412. package/build/modern/components/dialog/primitives.js +4 -4
  413. package/build/modern/components/field/field.js +7 -7
  414. package/build/modern/components/field/helper-text.js +6 -6
  415. package/build/modern/components/field/index.js +8 -8
  416. package/build/modern/components/field/input.js +5 -5
  417. package/build/modern/components/field/parts.js +6 -6
  418. package/build/modern/components/field/primitives.js +5 -5
  419. package/build/modern/components/field/status-indicator.js +1 -1
  420. package/build/modern/components/fieldset/fieldset.js +6 -6
  421. package/build/modern/components/fieldset/index.js +6 -6
  422. package/build/modern/components/fieldset/parts.js +5 -5
  423. package/build/modern/components/fieldset/primitives.js +4 -4
  424. package/build/modern/components/file-upload/file-status.js +16 -16
  425. package/build/modern/components/file-upload/file-uploader.js +7 -7
  426. package/build/modern/components/file-upload/index.js +17 -17
  427. package/build/modern/components/icon-button/button.js +5 -5
  428. package/build/modern/components/icon-button/index.js +5 -5
  429. package/build/modern/components/icon-button/primitives.js +4 -4
  430. package/build/modern/components/menu/index.js +5 -5
  431. package/build/modern/components/menu/menu.js +5 -5
  432. package/build/modern/components/menu/primitives.js +4 -4
  433. package/build/modern/components/notifications/center.js +9 -9
  434. package/build/modern/components/notifications/close-trigger.js +6 -6
  435. package/build/modern/components/notifications/index.js +9 -9
  436. package/build/modern/components/notifications/parts.js +5 -5
  437. package/build/modern/components/notifications/primitives.js +4 -4
  438. package/build/modern/components/progress/index.js +5 -5
  439. package/build/modern/components/progress/primitives.js +4 -4
  440. package/build/modern/components/progress/progress-bar.js +5 -5
  441. package/build/modern/components/radio/index.js +6 -6
  442. package/build/modern/components/radio/parts.js +5 -5
  443. package/build/modern/components/radio/primitives.js +4 -4
  444. package/build/modern/components/radio/radio.js +5 -5
  445. package/build/modern/components/rating/index.js +6 -6
  446. package/build/modern/components/rating/parts.js +5 -5
  447. package/build/modern/components/rating/primitives.js +4 -4
  448. package/build/modern/components/rating/rating.js +6 -6
  449. package/build/modern/components/select/index.js +8 -8
  450. package/build/modern/components/select/option-group.js +5 -5
  451. package/build/modern/components/select/option.js +6 -6
  452. package/build/modern/components/select/parts.js +5 -5
  453. package/build/modern/components/select/primitives.js +4 -4
  454. package/build/modern/components/select/select.js +6 -6
  455. package/build/modern/components/switch/index.js +6 -6
  456. package/build/modern/components/switch/parts.js +5 -5
  457. package/build/modern/components/switch/primitives.js +4 -4
  458. package/build/modern/components/switch/switch.js +6 -6
  459. package/build/modern/components/table/index.js +6 -6
  460. package/build/modern/components/table/parts.js +5 -5
  461. package/build/modern/components/table/primitives.js +4 -4
  462. package/build/modern/components/table/table.js +5 -5
  463. package/build/modern/components/tabs/index.js +6 -6
  464. package/build/modern/components/tabs/parts.js +5 -5
  465. package/build/modern/components/tabs/primitives.js +4 -4
  466. package/build/modern/components/tabs/tabs.js +6 -6
  467. package/build/modern/components/tag/index.js +6 -6
  468. package/build/modern/components/tag/tag.js +6 -6
  469. package/build/modern/components/theme/index.js +4 -4
  470. package/build/modern/components/theme/theme.js +4 -4
  471. package/build/modern/components/toggle/index.js +5 -5
  472. package/build/modern/components/toggle/parts.js +5 -5
  473. package/build/modern/components/toggle/primitives.js +4 -4
  474. package/build/modern/components/tooltip/index.js +6 -6
  475. package/build/modern/components/tooltip/parts.js +5 -5
  476. package/build/modern/components/tooltip/primitives.js +4 -4
  477. package/build/modern/components/tooltip/tooltip.js +6 -6
  478. package/build/modern/context/confirm-modal.js +15 -15
  479. package/build/modern/context/field.js +5 -5
  480. package/build/modern/context/prompt-modal.js +20 -20
  481. package/build/modern/index.js +97 -97
  482. package/build/modern/system/factory.js +2 -2
  483. package/build/modern/system/index.js +3 -3
  484. package/build/modern/system/primitive-factory.js +1 -1
  485. package/package.json +6 -6
  486. package/src/components/field/status-indicator.tsx +4 -1
  487. package/src/components/file-upload/file-status.tsx +1 -1
  488. package/src/system/primitive-factory.tsx +49 -24
  489. package/src/types.ts +10 -0
  490. package/build/modern/chunk-GZ6T3352.js.map +0 -1
  491. /package/build/modern/{chunk-M4NNRVTU.js.map → chunk-236F7MCH.js.map} +0 -0
  492. /package/build/modern/{chunk-UKAVYSJ5.js.map → chunk-2D6BHWPB.js.map} +0 -0
  493. /package/build/modern/{chunk-LRIYLZSL.js.map → chunk-2KVC3OJ3.js.map} +0 -0
  494. /package/build/modern/{chunk-SQIB5EOA.js.map → chunk-2UQWJSA6.js.map} +0 -0
  495. /package/build/modern/{chunk-KM3G4YFF.js.map → chunk-3NPWHL5X.js.map} +0 -0
  496. /package/build/modern/{chunk-3Z4TSR6V.js.map → chunk-3UIV3HMB.js.map} +0 -0
  497. /package/build/modern/{chunk-CIIFJ2SA.js.map → chunk-3X6VM5FS.js.map} +0 -0
  498. /package/build/modern/{chunk-BK5BIPCG.js.map → chunk-3Z6W4ZFA.js.map} +0 -0
  499. /package/build/modern/{chunk-7WX2RQT6.js.map → chunk-45ZTZUCD.js.map} +0 -0
  500. /package/build/modern/{chunk-ALJYABJX.js.map → chunk-4O26WCRC.js.map} +0 -0
  501. /package/build/modern/{chunk-WO6MF3XM.js.map → chunk-4O64W4BA.js.map} +0 -0
  502. /package/build/modern/{chunk-UXU2CVPI.js.map → chunk-4SOUI4NF.js.map} +0 -0
  503. /package/build/modern/{chunk-S7ALRSVU.js.map → chunk-5B6LMHY2.js.map} +0 -0
  504. /package/build/modern/{chunk-JG5V3AK4.js.map → chunk-5L5PT37R.js.map} +0 -0
  505. /package/build/modern/{chunk-ZZSHEW4N.js.map → chunk-5RLQNM73.js.map} +0 -0
  506. /package/build/modern/{chunk-4WSCG2CM.js.map → chunk-6LU43Z4K.js.map} +0 -0
  507. /package/build/modern/{chunk-4Q62OI72.js.map → chunk-76VTLS7X.js.map} +0 -0
  508. /package/build/modern/{chunk-5XU3LUPC.js.map → chunk-7B2ZHSH3.js.map} +0 -0
  509. /package/build/modern/{chunk-JSK6OD6J.js.map → chunk-7JNOY5MW.js.map} +0 -0
  510. /package/build/modern/{chunk-WKAI4OK3.js.map → chunk-7UKNQ4RD.js.map} +0 -0
  511. /package/build/modern/{chunk-OMM4CPZU.js.map → chunk-AOLWIMWV.js.map} +0 -0
  512. /package/build/modern/{chunk-MXW63O5N.js.map → chunk-AQNXQVXP.js.map} +0 -0
  513. /package/build/modern/{chunk-KYYKBLP2.js.map → chunk-BHZN6P2K.js.map} +0 -0
  514. /package/build/modern/{chunk-LW62VSVZ.js.map → chunk-BSJM5VYB.js.map} +0 -0
  515. /package/build/modern/{chunk-ZO3GSLWZ.js.map → chunk-BSZVMBX7.js.map} +0 -0
  516. /package/build/modern/{chunk-BWZXR2WZ.js.map → chunk-BXDQ5AXV.js.map} +0 -0
  517. /package/build/modern/{chunk-Y67NIX2N.js.map → chunk-C7XAB665.js.map} +0 -0
  518. /package/build/modern/{chunk-YCVNE3CA.js.map → chunk-CHEYITRR.js.map} +0 -0
  519. /package/build/modern/{chunk-HJ67FKQ6.js.map → chunk-D7BCQ2CQ.js.map} +0 -0
  520. /package/build/modern/{chunk-VXG4AEMZ.js.map → chunk-DH7SFE2R.js.map} +0 -0
  521. /package/build/modern/{chunk-BDXVYV32.js.map → chunk-EQ3X7KQ3.js.map} +0 -0
  522. /package/build/modern/{chunk-L2G4XKLT.js.map → chunk-ET3UY6GV.js.map} +0 -0
  523. /package/build/modern/{chunk-N2DZNGUS.js.map → chunk-EZJMTWXK.js.map} +0 -0
  524. /package/build/modern/{chunk-2MU6WE52.js.map → chunk-FSX64HPK.js.map} +0 -0
  525. /package/build/modern/{chunk-UHXKG2ZP.js.map → chunk-FVADFCAE.js.map} +0 -0
  526. /package/build/modern/{chunk-J3XTP6VP.js.map → chunk-GFFIJGQC.js.map} +0 -0
  527. /package/build/modern/{chunk-AZ5LB6IS.js.map → chunk-GTAIWUFQ.js.map} +0 -0
  528. /package/build/modern/{chunk-VIUQS3VG.js.map → chunk-GZYLYTAG.js.map} +0 -0
  529. /package/build/modern/{chunk-THMNM4CZ.js.map → chunk-HCH5I26B.js.map} +0 -0
  530. /package/build/modern/{chunk-YI3P5QG4.js.map → chunk-HMUQEMV2.js.map} +0 -0
  531. /package/build/modern/{chunk-GIIPOOSM.js.map → chunk-HYEFRC5Z.js.map} +0 -0
  532. /package/build/modern/{chunk-QOTRCNC7.js.map → chunk-INQZQMLL.js.map} +0 -0
  533. /package/build/modern/{chunk-2T2S226G.js.map → chunk-IOX43IGB.js.map} +0 -0
  534. /package/build/modern/{chunk-HPWLIE64.js.map → chunk-IRJITAGE.js.map} +0 -0
  535. /package/build/modern/{chunk-OVDJPTML.js.map → chunk-IVQCMXV6.js.map} +0 -0
  536. /package/build/modern/{chunk-QM4DC6QF.js.map → chunk-IYF5FS6N.js.map} +0 -0
  537. /package/build/modern/{chunk-IOK2RQK6.js.map → chunk-JBYWQERR.js.map} +0 -0
  538. /package/build/modern/{chunk-TF2DXEUF.js.map → chunk-JIEN2PM7.js.map} +0 -0
  539. /package/build/modern/{chunk-KLZPY4YX.js.map → chunk-JUSH26RO.js.map} +0 -0
  540. /package/build/modern/{chunk-OFACU2SY.js.map → chunk-JVAGLLOA.js.map} +0 -0
  541. /package/build/modern/{chunk-NH2RSI7N.js.map → chunk-K3NML67W.js.map} +0 -0
  542. /package/build/modern/{chunk-YTKY3AHF.js.map → chunk-K3YEOS6O.js.map} +0 -0
  543. /package/build/modern/{chunk-YZFXHGMG.js.map → chunk-KITDXURN.js.map} +0 -0
  544. /package/build/modern/{chunk-GHM4I5BN.js.map → chunk-KZVCQNZI.js.map} +0 -0
  545. /package/build/modern/{chunk-OVYHM5DH.js.map → chunk-L4KBNOWP.js.map} +0 -0
  546. /package/build/modern/{chunk-E4DXMJ3C.js.map → chunk-LO6YTNOP.js.map} +0 -0
  547. /package/build/modern/{chunk-MG2YW4IP.js.map → chunk-LOJBIVY4.js.map} +0 -0
  548. /package/build/modern/{chunk-CMQZN2GZ.js.map → chunk-MMNUVODK.js.map} +0 -0
  549. /package/build/modern/{chunk-6TIG456O.js.map → chunk-MVHFBVDA.js.map} +0 -0
  550. /package/build/modern/{chunk-IU5YJTKN.js.map → chunk-N5D6HNGL.js.map} +0 -0
  551. /package/build/modern/{chunk-YUEVV2DE.js.map → chunk-NHM5IWBE.js.map} +0 -0
  552. /package/build/modern/{chunk-6BNGJMNL.js.map → chunk-O4W2BVE7.js.map} +0 -0
  553. /package/build/modern/{chunk-KSYZMMXN.js.map → chunk-OG644D7M.js.map} +0 -0
  554. /package/build/modern/{chunk-P6WEDKIB.js.map → chunk-OX3NA6DQ.js.map} +0 -0
  555. /package/build/modern/{chunk-2UFNNWLA.js.map → chunk-OYTEXDS6.js.map} +0 -0
  556. /package/build/modern/{chunk-YQNOAJM7.js.map → chunk-OZTYYWIX.js.map} +0 -0
  557. /package/build/modern/{chunk-SGFITMUF.js.map → chunk-P6JC32U3.js.map} +0 -0
  558. /package/build/modern/{chunk-A57LVJJF.js.map → chunk-PZELEMIY.js.map} +0 -0
  559. /package/build/modern/{chunk-2OWVBM5W.js.map → chunk-RI3WN6XL.js.map} +0 -0
  560. /package/build/modern/{chunk-RDFAC3XX.js.map → chunk-RS6DS6RS.js.map} +0 -0
  561. /package/build/modern/{chunk-SFAJKI45.js.map → chunk-RT4W6GBB.js.map} +0 -0
  562. /package/build/modern/{chunk-CLGDJ4GM.js.map → chunk-SFS5ILWG.js.map} +0 -0
  563. /package/build/modern/{chunk-RXAHVNN2.js.map → chunk-SITE2UML.js.map} +0 -0
  564. /package/build/modern/{chunk-AJ5TWPXM.js.map → chunk-SKOX5PJI.js.map} +0 -0
  565. /package/build/modern/{chunk-COIQJKC3.js.map → chunk-SP7TSFMZ.js.map} +0 -0
  566. /package/build/modern/{chunk-NPZJTTTS.js.map → chunk-TBCTCQXG.js.map} +0 -0
  567. /package/build/modern/{chunk-PQ5DEKSH.js.map → chunk-TIQO4VNE.js.map} +0 -0
  568. /package/build/modern/{chunk-ZPMGW4U7.js.map → chunk-TJSHJF6G.js.map} +0 -0
  569. /package/build/modern/{chunk-FMNYWD5T.js.map → chunk-TKHDOZWN.js.map} +0 -0
  570. /package/build/modern/{chunk-ACK44GEO.js.map → chunk-UAVGKLHV.js.map} +0 -0
  571. /package/build/modern/{chunk-4DJ6KC4K.js.map → chunk-UZZ26IWW.js.map} +0 -0
  572. /package/build/modern/{chunk-BOATN5PB.js.map → chunk-V5TUC5AS.js.map} +0 -0
  573. /package/build/modern/{chunk-U6ECBUYN.js.map → chunk-VQUJGCZW.js.map} +0 -0
  574. /package/build/modern/{chunk-D47GTCQZ.js.map → chunk-VYJAPLLO.js.map} +0 -0
  575. /package/build/modern/{chunk-RFANIL5H.js.map → chunk-WGWEAB2Q.js.map} +0 -0
  576. /package/build/modern/{chunk-A655GBYQ.js.map → chunk-X24O5DTP.js.map} +0 -0
  577. /package/build/modern/{chunk-ZGPHSKEB.js.map → chunk-YJRAJNYI.js.map} +0 -0
  578. /package/build/modern/{chunk-RGLJDMIO.js.map → chunk-YR6G66UT.js.map} +0 -0
  579. /package/build/modern/{chunk-VZXYGBU6.js.map → chunk-YWPXLHUO.js.map} +0 -0
  580. /package/build/modern/{chunk-DC3NTCCW.js.map → chunk-YZG7BNVB.js.map} +0 -0
  581. /package/build/modern/{chunk-BW64QBCK.js.map → chunk-Z5DHBMQF.js.map} +0 -0
  582. /package/build/modern/{chunk-UCP3GQOJ.js.map → chunk-ZFONE65Q.js.map} +0 -0
  583. /package/build/modern/{chunk-YVYOOJ3X.js.map → chunk-ZFVQQJIQ.js.map} +0 -0
  584. /package/build/modern/{chunk-WGSUBJNI.js.map → chunk-ZZ4JETME.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/tabs/tabs.tsx","../../../../src/components/tabs/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/tabs/parts.ts"],"sourcesContent":["import type { ElementType } from 'react'\nimport { TabsParts, type TabsPartsValue } from './parts'\nimport type { TabsListProps } from './primitives'\n\n/**\n * This module contains an abstraction of the Tabs family.\n * @module 'tabs'\n */\n\ninterface TabsValueProps\n extends Omit<TabsPartsValue, 'Trigger' | 'Content' | 'Indicator'> {\n /**\n * A named component for the TabsTrigger.\n */\n Tab: ElementType\n /**\n * A named component for the TabsContent.\n */\n Panel: ElementType\n}\n\n/**\n * An abstraction of the TabsList component that includes the TabIndicator.\n */\nfunction TabsList(props: TabsListProps) {\n const { children, ...listProps } = props\n return (\n <TabsParts.List {...listProps}>\n {children}\n <TabsParts.Indicator />\n </TabsParts.List>\n )\n}\n\n/**\n * An Object containing the abstracted parts of the Tabs component.\n *\n * @remarks\n *\n * When using object component syntax, you import the TabsParts object and\n * the entire family of components vs. only what you use.\n */\nexport const Tabs: TabsValueProps = {\n Root: TabsParts.Root,\n List: TabsList,\n Tab: TabsParts.Trigger,\n Panel: TabsParts.Content,\n}\n","import {\n Tabs,\n type TabContentProps as ArkTabContentProps,\n type TabIndicatorProps as ArkTabIndicatorProps,\n type TabListProps as ArkTabListProps,\n type TabsRootProps as ArkTabsRootProps,\n type TabTriggerProps as ArkTabTriggerProps,\n} from '@ark-ui/react/tabs'\nimport { tabs, type TabsVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module provides the primitives for the Tabs component.\n * @module 'tabs/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(tabs)\n\n// Root\n\nexport type TabsRootProps = CerberusPrimitiveProps<\n ArkTabsRootProps & TabsVariantProps\n>\n// @ts-expect-error this is a workaround for the type issue WIP\nexport const TabsRoot = withSlotRecipe<TabsRootProps>(Tabs.Root, 'root')\n\n// TabsList\n\nexport type TabsListProps = CerberusPrimitiveProps<ArkTabListProps>\nexport const TabsList = withSlotRecipe<TabsListProps>(Tabs.List, 'list')\n\n// TabsTrigger\n\nexport type TabsTriggerProps = CerberusPrimitiveProps<ArkTabTriggerProps>\nexport const TabsTrigger = withSlotRecipe<TabsTriggerProps>(\n Tabs.Trigger,\n 'trigger',\n)\n\n// TabsContent\n\nexport type TabContentProps = CerberusPrimitiveProps<ArkTabContentProps>\nexport const TabsContent = withSlotRecipe<TabContentProps>(\n Tabs.Content,\n 'content',\n)\n\n// TabsIndicator\n\nexport type TabIndicatorProps = CerberusPrimitiveProps<ArkTabIndicatorProps>\nexport const TabsIndicator = withSlotRecipe<TabIndicatorProps>(\n Tabs.Indicator,\n 'indicator',\n)\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n","import type { ElementType } from 'react'\nimport {\n TabsContent,\n TabsIndicator,\n TabsList,\n TabsRoot,\n TabsTrigger,\n} from './primitives'\n\n/**\n * This module contains the parts of the Tabs parts.\n * @module 'tabs/parts'\n */\n\nexport interface TabsPartsValue {\n /**\n * The container of the tabs.\n */\n Root: ElementType\n /**\n * The tab list element.\n */\n List: ElementType\n /**\n * The tab element.\n */\n Trigger: ElementType\n /**\n * The tab content element.\n */\n Content: ElementType\n /**\n * The tab indicator element.\n */\n Indicator: ElementType\n}\n\n/**\n * An Object containing the parts of the Switch component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the TabsParts object and\n * the entire family of components vs. only what you use.\n */\nexport const TabsParts: TabsPartsValue = {\n Root: TabsRoot,\n List: TabsList,\n Trigger: TabsTrigger,\n Content: TabsContent,\n Indicator: TabsIndicator,\n}\n"],"mappings":"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","names":["Tabs","import_jsx_runtime","TabsList","Tabs"]}
1
+ {"version":3,"sources":["../../../../src/components/tabs/tabs.tsx","../../../../src/components/tabs/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/tabs/parts.ts"],"sourcesContent":["import type { ElementType } from 'react'\nimport { TabsParts, type TabsPartsValue } from './parts'\nimport type { TabsListProps } from './primitives'\n\n/**\n * This module contains an abstraction of the Tabs family.\n * @module 'tabs'\n */\n\ninterface TabsValueProps\n extends Omit<TabsPartsValue, 'Trigger' | 'Content' | 'Indicator'> {\n /**\n * A named component for the TabsTrigger.\n */\n Tab: ElementType\n /**\n * A named component for the TabsContent.\n */\n Panel: ElementType\n}\n\n/**\n * An abstraction of the TabsList component that includes the TabIndicator.\n */\nfunction TabsList(props: TabsListProps) {\n const { children, ...listProps } = props\n return (\n <TabsParts.List {...listProps}>\n {children}\n <TabsParts.Indicator />\n </TabsParts.List>\n )\n}\n\n/**\n * An Object containing the abstracted parts of the Tabs component.\n *\n * @remarks\n *\n * When using object component syntax, you import the TabsParts object and\n * the entire family of components vs. only what you use.\n */\nexport const Tabs: TabsValueProps = {\n Root: TabsParts.Root,\n List: TabsList,\n Tab: TabsParts.Trigger,\n Panel: TabsParts.Content,\n}\n","import {\n Tabs,\n type TabContentProps as ArkTabContentProps,\n type TabIndicatorProps as ArkTabIndicatorProps,\n type TabListProps as ArkTabListProps,\n type TabsRootProps as ArkTabsRootProps,\n type TabTriggerProps as ArkTabTriggerProps,\n} from '@ark-ui/react/tabs'\nimport { tabs, type TabsVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module provides the primitives for the Tabs component.\n * @module 'tabs/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(tabs)\n\n// Root\n\nexport type TabsRootProps = CerberusPrimitiveProps<\n ArkTabsRootProps & TabsVariantProps\n>\n// @ts-expect-error this is a workaround for the type issue WIP\nexport const TabsRoot = withSlotRecipe<TabsRootProps>(Tabs.Root, 'root')\n\n// TabsList\n\nexport type TabsListProps = CerberusPrimitiveProps<ArkTabListProps>\nexport const TabsList = withSlotRecipe<TabsListProps>(Tabs.List, 'list')\n\n// TabsTrigger\n\nexport type TabsTriggerProps = CerberusPrimitiveProps<ArkTabTriggerProps>\nexport const TabsTrigger = withSlotRecipe<TabsTriggerProps>(\n Tabs.Trigger,\n 'trigger',\n)\n\n// TabsContent\n\nexport type TabContentProps = CerberusPrimitiveProps<ArkTabContentProps>\nexport const TabsContent = withSlotRecipe<TabContentProps>(\n Tabs.Content,\n 'content',\n)\n\n// TabsIndicator\n\nexport type TabIndicatorProps = CerberusPrimitiveProps<ArkTabIndicatorProps>\nexport const TabsIndicator = withSlotRecipe<TabIndicatorProps>(\n Tabs.Indicator,\n 'indicator',\n)\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type ElementType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P> | string,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n return false\n }\n return true\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * Can be a string or a component reference.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n *\n * @example\n * ```ts\n * const { withNoRecipe } = createCerberusPrimitive(buttonRecipe)\n * const Button = withNoRecipe('button')\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P> | string,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n const El = Component as ComponentType<P> | ElementType\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <El {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n if (this.validateComponent(El)) {\n const ElName = typeof El === 'string' ? El : El.displayName || El.name\n CerbComponent.displayName = ElName\n }\n\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P> | string,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const El = Component as ComponentType<P> | ElementType\n\n const recipe = this.recipe as CerberusRecipe\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n if (this.validateComponent(El)) {\n const ElName = typeof El === 'string' ? El : El.displayName || El.name\n CerbComponent.displayName = ElName\n }\n\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P> | string,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const El = Component as ComponentType<P> | ElementType\n\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n if (this.validateComponent(El)) {\n const ElName = typeof El === 'string' ? El : El.displayName || El.name\n CerbComponent.displayName = ElName\n }\n\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n","import type { ElementType } from 'react'\nimport {\n TabsContent,\n TabsIndicator,\n TabsList,\n TabsRoot,\n TabsTrigger,\n} from './primitives'\n\n/**\n * This module contains the parts of the Tabs parts.\n * @module 'tabs/parts'\n */\n\nexport interface TabsPartsValue {\n /**\n * The container of the tabs.\n */\n Root: ElementType\n /**\n * The tab list element.\n */\n List: ElementType\n /**\n * The tab element.\n */\n Trigger: ElementType\n /**\n * The tab content element.\n */\n Content: ElementType\n /**\n * The tab indicator element.\n */\n Indicator: ElementType\n}\n\n/**\n * An Object containing the parts of the Switch component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the TabsParts object and\n * the entire family of components vs. only what you use.\n */\nexport const TabsParts: TabsPartsValue = {\n Root: TabsRoot,\n List: TabsList,\n Trigger: TabsTrigger,\n Content: TabsContent,\n Indicator: TabsIndicator,\n}\n"],"mappings":"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","names":["Tabs","import_jsx_runtime","TabsList","Tabs"]}
@@ -56,23 +56,28 @@ var CerberusPrimitive = class {
56
56
  /**
57
57
  * Creates a Cerberus component with bare features and no recipe.
58
58
  * @param Component - The React component to enhance with Cerberus features.
59
+ * Can be a string or a component reference.
59
60
  * @returns A new React component that applies Cerberus features to the
60
61
  * original component.
62
+ *
61
63
  * @example
62
- * ```typescript
63
- * const { withNoRecipe } = createCerberusPrimitive(button)
64
- * const Button = withNoRecipe(RawButton)
64
+ * ```ts
65
+ * const { withNoRecipe } = createCerberusPrimitive(buttonRecipe)
66
+ * const Button = withNoRecipe('button')
65
67
  * ```
66
68
  */
67
69
  __publicField(this, "withNoRecipe", (Component, options) => {
68
70
  const { defaultProps } = options || {};
69
- this.validateComponent(Component);
71
+ const El = Component;
70
72
  const CerbComponent = (props) => {
71
73
  const { css: customCss, className, ...nativeProps } = props;
72
74
  const styles = this.hasStyles((0, import_css.cx)(className, (0, import_css.css)(customCss)));
73
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Component, { ...defaultProps, ...styles, ...nativeProps });
75
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(El, { ...defaultProps, ...styles, ...nativeProps });
74
76
  };
75
- CerbComponent.displayName = Component.displayName || Component.name;
77
+ if (this.validateComponent(El)) {
78
+ const ElName = typeof El === "string" ? El : El.displayName || El.name;
79
+ CerbComponent.displayName = ElName;
80
+ }
76
81
  return CerbComponent;
77
82
  });
78
83
  /**
@@ -84,11 +89,15 @@ var CerberusPrimitive = class {
84
89
  */
85
90
  __publicField(this, "withRecipe", (Component, options) => {
86
91
  const { defaultProps } = options || {};
92
+ const El = Component;
87
93
  const recipe = this.recipe;
88
- this.validateComponent(Component);
89
94
  const CerbComponent = (internalProps) => {
90
- const { css: customCss, className, ...nativeProps } = internalProps;
91
- const [variantOptions] = recipe.splitVariantProps(nativeProps);
95
+ const {
96
+ css: customCss,
97
+ className,
98
+ ...restOfInternalProps
99
+ } = internalProps;
100
+ const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
92
101
  const recipeStyles = recipe(variantOptions);
93
102
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
94
103
  Component,
@@ -99,7 +108,10 @@ var CerberusPrimitive = class {
99
108
  }
100
109
  );
101
110
  };
102
- 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
+ }
103
115
  return CerbComponent;
104
116
  });
105
117
  /**
@@ -116,11 +128,15 @@ var CerberusPrimitive = class {
116
128
  */
117
129
  __publicField(this, "withSlotRecipe", (Component, slot, options) => {
118
130
  const { defaultProps } = options || {};
131
+ const El = Component;
119
132
  const recipe = this.recipe;
120
- this.validateComponent(Component);
121
133
  const CerbComponent = (internalProps) => {
122
- const { css: customCss, className, ...nativeProps } = internalProps;
123
- const [variantOptions] = recipe.splitVariantProps(nativeProps);
134
+ const {
135
+ css: customCss,
136
+ className,
137
+ ...restOfInternalProps
138
+ } = internalProps;
139
+ const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
124
140
  const styles = recipe(variantOptions);
125
141
  const slotStyles = styles[slot];
126
142
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
@@ -132,7 +148,10 @@ var CerberusPrimitive = class {
132
148
  }
133
149
  );
134
150
  };
135
- CerbComponent.displayName = Component.displayName || Component.name;
151
+ if (this.validateComponent(El)) {
152
+ const ElName = typeof El === "string" ? El : El.displayName || El.name;
153
+ CerbComponent.displayName = ElName;
154
+ }
136
155
  return CerbComponent;
137
156
  });
138
157
  this.recipe = recipe ?? null;
@@ -147,8 +166,9 @@ var CerberusPrimitive = class {
147
166
  }
148
167
  validateComponent(Component) {
149
168
  if (typeof Component !== "function" && typeof Component !== "object") {
150
- throw new Error("Expected a React component as the first argument.");
169
+ return false;
151
170
  }
171
+ return true;
152
172
  }
153
173
  };
154
174
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/tag/index.ts","../../../../src/components/tag/tag.tsx","../../../../src/context/cerberus.tsx","../../../../src/components/icon-button/primitives.ts","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/icon-button/button.tsx","../../../../src/components/show/show.tsx"],"sourcesContent":["export * from './tag'\n","'use client'\n\nimport { ark, type HTMLArkProps } from '@ark-ui/react/factory'\nimport type { MouseEventHandler, PropsWithChildren } from 'react'\nimport { css, cx } from 'styled-system/css'\nimport { tag, type TagVariantProps } from 'styled-system/recipes'\nimport { useCerberusContext } from '../../context/cerberus'\nimport { IconButton } from '../icon-button/index'\nimport { Show } from '../show/index'\n\n/**\n * This module contains the tag component.\n * @module\n */\n\nexport type StaticTagProps = HTMLArkProps<'span'> &\n TagVariantProps & {\n /**\n * The action to be performed when the tag is clicked. Not available when\n * the palette or gradient props are provided.\n */\n onClick?: never\n }\n\nexport type ClickableTagProps = HTMLArkProps<'span'> & {\n /**\n * The gradient to apply to the tag. Not available when the onClick prop is\n * provided.\n */\n gradient?: never\n /**\n * The palette to use for the tag. Not available when the onClick prop is\n * provided.\n */\n palette?: never\n /**\n * The action to be performed when the tag is clicked.\n */\n onClick: MouseEventHandler<HTMLSpanElement>\n /**\n * The shape of the tag. Not available when the onClick prop is provided.\n * @type 'pill' | 'rounded'\n * @default 'pill'\n */\n shape?: never\n /**\n * The usage of the tag. Not available when the onClick prop is provided.\n * @type 'filled' | 'outlined'\n * @default 'filled'\n */\n usage?: never\n}\n\nexport type TagProps = StaticTagProps | ClickableTagProps\n\n/**\n * The Tag component is used to display a meta descriptions.\n * @see https://cerberus.digitalu.design/react/tag\n * @example\n * ```tsx\n * <Tag>Tag</Tag>\n * ```\n */\nexport function Tag(props: PropsWithChildren<TagProps>) {\n const { shape: initShape, gradient, onClick, usage, ...nativeProps } = props\n const palette = props?.palette ?? 'page'\n const isClosable = Boolean(onClick)\n const shape = isClosable ? 'pill' : initShape\n const closableStyles = isClosable ? closableCss : ''\n const { icons } = useCerberusContext()\n const { close: Close } = icons\n\n return (\n <ark.span\n {...nativeProps}\n className={cx(\n nativeProps.className,\n tag({\n gradient,\n palette,\n shape,\n usage,\n }),\n closableStyles,\n )}\n >\n {props.children}\n\n <Show when={isClosable}>\n <IconButton\n ariaLabel=\"Close\"\n onClick={onClick}\n palette=\"action\"\n usage=\"filled\"\n size=\"sm\"\n >\n <Close />\n </IconButton>\n </Show>\n </ark.span>\n )\n}\n\nconst closableCss = css({\n bgColor: 'action.bg.active',\n color: 'action.text.initial',\n paddingInlineEnd: '0',\n})\n","'use client'\n\nimport { createContext, useContext, type PropsWithChildren } from 'react'\nimport type { SystemConfig } from '../config'\n\n/**\n * This module contains the Cerberus configuration context and helpers.\n * @module context/cerberus\n */\n\ntype CerberusContextValue = SystemConfig\n\nconst CerberusContext = createContext<CerberusContextValue | null>(null)\n\ninterface CerberusProviderProps {\n config: SystemConfig\n}\n\n/**\n * Cerberus configuration provider.\n * @param props.config The Cerberus configuration created with\n * `makeSystemConfig` helper.\n */\nexport function CerberusProvider(\n props: PropsWithChildren<CerberusProviderProps>,\n) {\n return (\n <CerberusContext.Provider value={props.config}>\n {props.children}\n </CerberusContext.Provider>\n )\n}\n\n/**\n * Returns the Cerberus configuration context.\n * @returns The Cerberus configuration context.\n */\nexport function useCerberusContext() {\n const context = useContext(CerberusContext)\n if (!context) {\n throw new Error('useCerberus must be used within a CerberusProvider')\n }\n return context\n}\n","import { ark, type HTMLArkProps } from '@ark-ui/react/factory'\nimport { iconButton, type IconButtonVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the IconButton component primitives.\n * @module @cerberus-design/react/components/icon-button/primitives\n */\n\nconst { withRecipe } = createCerberusPrimitive(iconButton)\n\n/**\n * The root element of the Button component.\n */\nexport type IconButtonRootProps = CerberusPrimitiveProps<\n HTMLArkProps<'button'> & IconButtonVariantProps\n>\nexport const IconButtonRoot = withRecipe(ark.button)\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n","import { IconButtonRoot, type IconButtonRootProps } from './primitives'\n\n/**\n * This module contains the Icon Button component.\n * @module\n */\n\nexport interface IconButtonProps extends IconButtonRootProps {\n /**\n * The aria-label attribute for the icon button.\n */\n ariaLabel: string\n}\n\n/**\n * A component that allows the user to perform actions using an icon\n * @see https://cerberus.digitalu.design/react/icon-button\n */\nexport function IconButton(props: IconButtonProps) {\n const { ariaLabel, ...rootProps } = props\n return (\n <IconButtonRoot {...rootProps} aria-label={ariaLabel ?? 'Icon Button'} />\n )\n}\n","import { type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps<T> {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: T | boolean | null | undefined\n /**\n * The children to render when the condition is false.\n */\n fallback?: ReactNode\n}\n\n/**\n * Conditionally render a memoized version of the children or optional fallback\n * content.\n * @see https://cerberus.digitalu.design/react/show\n * @example\n * ```tsx\n * <Show when={isLoggedIn} fallback={<Navigate to=\"/login\" />}>\n * <Dashboard />\n * </Show>\n */\nexport function Show<T>(props: PropsWithChildren<ShowProps<T>>) {\n const { when, children, fallback } = props\n\n if (when) {\n return <>{children}</>\n }\n\n if (fallback) {\n return <>{fallback}</>\n }\n\n return null\n}\n"],"mappings":"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","names":["import_factory","import_css","import_recipes","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../../../../src/components/tag/index.ts","../../../../src/components/tag/tag.tsx","../../../../src/context/cerberus.tsx","../../../../src/components/icon-button/primitives.ts","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/icon-button/button.tsx","../../../../src/components/show/show.tsx"],"sourcesContent":["export * from './tag'\n","'use client'\n\nimport { ark, type HTMLArkProps } from '@ark-ui/react/factory'\nimport type { MouseEventHandler, PropsWithChildren } from 'react'\nimport { css, cx } from 'styled-system/css'\nimport { tag, type TagVariantProps } from 'styled-system/recipes'\nimport { useCerberusContext } from '../../context/cerberus'\nimport { IconButton } from '../icon-button/index'\nimport { Show } from '../show/index'\n\n/**\n * This module contains the tag component.\n * @module\n */\n\nexport type StaticTagProps = HTMLArkProps<'span'> &\n TagVariantProps & {\n /**\n * The action to be performed when the tag is clicked. Not available when\n * the palette or gradient props are provided.\n */\n onClick?: never\n }\n\nexport type ClickableTagProps = HTMLArkProps<'span'> & {\n /**\n * The gradient to apply to the tag. Not available when the onClick prop is\n * provided.\n */\n gradient?: never\n /**\n * The palette to use for the tag. Not available when the onClick prop is\n * provided.\n */\n palette?: never\n /**\n * The action to be performed when the tag is clicked.\n */\n onClick: MouseEventHandler<HTMLSpanElement>\n /**\n * The shape of the tag. Not available when the onClick prop is provided.\n * @type 'pill' | 'rounded'\n * @default 'pill'\n */\n shape?: never\n /**\n * The usage of the tag. Not available when the onClick prop is provided.\n * @type 'filled' | 'outlined'\n * @default 'filled'\n */\n usage?: never\n}\n\nexport type TagProps = StaticTagProps | ClickableTagProps\n\n/**\n * The Tag component is used to display a meta descriptions.\n * @see https://cerberus.digitalu.design/react/tag\n * @example\n * ```tsx\n * <Tag>Tag</Tag>\n * ```\n */\nexport function Tag(props: PropsWithChildren<TagProps>) {\n const { shape: initShape, gradient, onClick, usage, ...nativeProps } = props\n const palette = props?.palette ?? 'page'\n const isClosable = Boolean(onClick)\n const shape = isClosable ? 'pill' : initShape\n const closableStyles = isClosable ? closableCss : ''\n const { icons } = useCerberusContext()\n const { close: Close } = icons\n\n return (\n <ark.span\n {...nativeProps}\n className={cx(\n nativeProps.className,\n tag({\n gradient,\n palette,\n shape,\n usage,\n }),\n closableStyles,\n )}\n >\n {props.children}\n\n <Show when={isClosable}>\n <IconButton\n ariaLabel=\"Close\"\n onClick={onClick}\n palette=\"action\"\n usage=\"filled\"\n size=\"sm\"\n >\n <Close />\n </IconButton>\n </Show>\n </ark.span>\n )\n}\n\nconst closableCss = css({\n bgColor: 'action.bg.active',\n color: 'action.text.initial',\n paddingInlineEnd: '0',\n})\n","'use client'\n\nimport { createContext, useContext, type PropsWithChildren } from 'react'\nimport type { SystemConfig } from '../config'\n\n/**\n * This module contains the Cerberus configuration context and helpers.\n * @module context/cerberus\n */\n\ntype CerberusContextValue = SystemConfig\n\nconst CerberusContext = createContext<CerberusContextValue | null>(null)\n\ninterface CerberusProviderProps {\n config: SystemConfig\n}\n\n/**\n * Cerberus configuration provider.\n * @param props.config The Cerberus configuration created with\n * `makeSystemConfig` helper.\n */\nexport function CerberusProvider(\n props: PropsWithChildren<CerberusProviderProps>,\n) {\n return (\n <CerberusContext.Provider value={props.config}>\n {props.children}\n </CerberusContext.Provider>\n )\n}\n\n/**\n * Returns the Cerberus configuration context.\n * @returns The Cerberus configuration context.\n */\nexport function useCerberusContext() {\n const context = useContext(CerberusContext)\n if (!context) {\n throw new Error('useCerberus must be used within a CerberusProvider')\n }\n return context\n}\n","import { ark, type HTMLArkProps } from '@ark-ui/react/factory'\nimport { iconButton, type IconButtonVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the IconButton component primitives.\n * @module @cerberus-design/react/components/icon-button/primitives\n */\n\nconst { withRecipe } = createCerberusPrimitive(iconButton)\n\n/**\n * The root element of the Button component.\n */\nexport type IconButtonRootProps = CerberusPrimitiveProps<\n HTMLArkProps<'button'> & IconButtonVariantProps\n>\nexport const IconButtonRoot = withRecipe(ark.button)\n","import { 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 { IconButtonRoot, type IconButtonRootProps } from './primitives'\n\n/**\n * This module contains the Icon Button component.\n * @module\n */\n\nexport interface IconButtonProps extends IconButtonRootProps {\n /**\n * The aria-label attribute for the icon button.\n */\n ariaLabel: string\n}\n\n/**\n * A component that allows the user to perform actions using an icon\n * @see https://cerberus.digitalu.design/react/icon-button\n */\nexport function IconButton(props: IconButtonProps) {\n const { ariaLabel, ...rootProps } = props\n return (\n <IconButtonRoot {...rootProps} aria-label={ariaLabel ?? 'Icon Button'} />\n )\n}\n","import { type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps<T> {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: T | boolean | null | undefined\n /**\n * The children to render when the condition is false.\n */\n fallback?: ReactNode\n}\n\n/**\n * Conditionally render a memoized version of the children or optional fallback\n * content.\n * @see https://cerberus.digitalu.design/react/show\n * @example\n * ```tsx\n * <Show when={isLoggedIn} fallback={<Navigate to=\"/login\" />}>\n * <Dashboard />\n * </Show>\n */\nexport function Show<T>(props: PropsWithChildren<ShowProps<T>>) {\n const { when, children, fallback } = props\n\n if (when) {\n return <>{children}</>\n }\n\n if (fallback) {\n return <>{fallback}</>\n }\n\n return null\n}\n"],"mappings":"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","names":["import_factory","import_css","import_recipes","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime"]}
@@ -55,23 +55,28 @@ var CerberusPrimitive = class {
55
55
  /**
56
56
  * Creates a Cerberus component with bare features and no recipe.
57
57
  * @param Component - The React component to enhance with Cerberus features.
58
+ * Can be a string or a component reference.
58
59
  * @returns A new React component that applies Cerberus features to the
59
60
  * original component.
61
+ *
60
62
  * @example
61
- * ```typescript
62
- * const { withNoRecipe } = createCerberusPrimitive(button)
63
- * const Button = withNoRecipe(RawButton)
63
+ * ```ts
64
+ * const { withNoRecipe } = createCerberusPrimitive(buttonRecipe)
65
+ * const Button = withNoRecipe('button')
64
66
  * ```
65
67
  */
66
68
  __publicField(this, "withNoRecipe", (Component, options) => {
67
69
  const { defaultProps } = options || {};
68
- this.validateComponent(Component);
70
+ const El = Component;
69
71
  const CerbComponent = (props) => {
70
72
  const { css: customCss, className, ...nativeProps } = props;
71
73
  const styles = this.hasStyles((0, import_css.cx)(className, (0, import_css.css)(customCss)));
72
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Component, { ...defaultProps, ...styles, ...nativeProps });
74
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(El, { ...defaultProps, ...styles, ...nativeProps });
73
75
  };
74
- CerbComponent.displayName = Component.displayName || Component.name;
76
+ if (this.validateComponent(El)) {
77
+ const ElName = typeof El === "string" ? El : El.displayName || El.name;
78
+ CerbComponent.displayName = ElName;
79
+ }
75
80
  return CerbComponent;
76
81
  });
77
82
  /**
@@ -83,11 +88,15 @@ var CerberusPrimitive = class {
83
88
  */
84
89
  __publicField(this, "withRecipe", (Component, options) => {
85
90
  const { defaultProps } = options || {};
91
+ const El = Component;
86
92
  const recipe = this.recipe;
87
- this.validateComponent(Component);
88
93
  const CerbComponent = (internalProps) => {
89
- const { css: customCss, className, ...nativeProps } = internalProps;
90
- const [variantOptions] = recipe.splitVariantProps(nativeProps);
94
+ const {
95
+ css: customCss,
96
+ className,
97
+ ...restOfInternalProps
98
+ } = internalProps;
99
+ const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
91
100
  const recipeStyles = recipe(variantOptions);
92
101
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
93
102
  Component,
@@ -98,7 +107,10 @@ var CerberusPrimitive = class {
98
107
  }
99
108
  );
100
109
  };
101
- CerbComponent.displayName = Component.displayName || Component.name;
110
+ if (this.validateComponent(El)) {
111
+ const ElName = typeof El === "string" ? El : El.displayName || El.name;
112
+ CerbComponent.displayName = ElName;
113
+ }
102
114
  return CerbComponent;
103
115
  });
104
116
  /**
@@ -115,11 +127,15 @@ var CerberusPrimitive = class {
115
127
  */
116
128
  __publicField(this, "withSlotRecipe", (Component, slot, options) => {
117
129
  const { defaultProps } = options || {};
130
+ const El = Component;
118
131
  const recipe = this.recipe;
119
- this.validateComponent(Component);
120
132
  const CerbComponent = (internalProps) => {
121
- const { css: customCss, className, ...nativeProps } = internalProps;
122
- const [variantOptions] = recipe.splitVariantProps(nativeProps);
133
+ const {
134
+ css: customCss,
135
+ className,
136
+ ...restOfInternalProps
137
+ } = internalProps;
138
+ const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
123
139
  const styles = recipe(variantOptions);
124
140
  const slotStyles = styles[slot];
125
141
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
@@ -131,7 +147,10 @@ var CerberusPrimitive = class {
131
147
  }
132
148
  );
133
149
  };
134
- CerbComponent.displayName = Component.displayName || Component.name;
150
+ if (this.validateComponent(El)) {
151
+ const ElName = typeof El === "string" ? El : El.displayName || El.name;
152
+ CerbComponent.displayName = ElName;
153
+ }
135
154
  return CerbComponent;
136
155
  });
137
156
  this.recipe = recipe ?? null;
@@ -146,8 +165,9 @@ var CerberusPrimitive = class {
146
165
  }
147
166
  validateComponent(Component) {
148
167
  if (typeof Component !== "function" && typeof Component !== "object") {
149
- throw new Error("Expected a React component as the first argument.");
168
+ return false;
150
169
  }
170
+ return true;
151
171
  }
152
172
  };
153
173
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/tag/tag.tsx","../../../../src/context/cerberus.tsx","../../../../src/components/icon-button/primitives.ts","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/icon-button/button.tsx","../../../../src/components/show/show.tsx"],"sourcesContent":["'use client'\n\nimport { ark, type HTMLArkProps } from '@ark-ui/react/factory'\nimport type { MouseEventHandler, PropsWithChildren } from 'react'\nimport { css, cx } from 'styled-system/css'\nimport { tag, type TagVariantProps } from 'styled-system/recipes'\nimport { useCerberusContext } from '../../context/cerberus'\nimport { IconButton } from '../icon-button/index'\nimport { Show } from '../show/index'\n\n/**\n * This module contains the tag component.\n * @module\n */\n\nexport type StaticTagProps = HTMLArkProps<'span'> &\n TagVariantProps & {\n /**\n * The action to be performed when the tag is clicked. Not available when\n * the palette or gradient props are provided.\n */\n onClick?: never\n }\n\nexport type ClickableTagProps = HTMLArkProps<'span'> & {\n /**\n * The gradient to apply to the tag. Not available when the onClick prop is\n * provided.\n */\n gradient?: never\n /**\n * The palette to use for the tag. Not available when the onClick prop is\n * provided.\n */\n palette?: never\n /**\n * The action to be performed when the tag is clicked.\n */\n onClick: MouseEventHandler<HTMLSpanElement>\n /**\n * The shape of the tag. Not available when the onClick prop is provided.\n * @type 'pill' | 'rounded'\n * @default 'pill'\n */\n shape?: never\n /**\n * The usage of the tag. Not available when the onClick prop is provided.\n * @type 'filled' | 'outlined'\n * @default 'filled'\n */\n usage?: never\n}\n\nexport type TagProps = StaticTagProps | ClickableTagProps\n\n/**\n * The Tag component is used to display a meta descriptions.\n * @see https://cerberus.digitalu.design/react/tag\n * @example\n * ```tsx\n * <Tag>Tag</Tag>\n * ```\n */\nexport function Tag(props: PropsWithChildren<TagProps>) {\n const { shape: initShape, gradient, onClick, usage, ...nativeProps } = props\n const palette = props?.palette ?? 'page'\n const isClosable = Boolean(onClick)\n const shape = isClosable ? 'pill' : initShape\n const closableStyles = isClosable ? closableCss : ''\n const { icons } = useCerberusContext()\n const { close: Close } = icons\n\n return (\n <ark.span\n {...nativeProps}\n className={cx(\n nativeProps.className,\n tag({\n gradient,\n palette,\n shape,\n usage,\n }),\n closableStyles,\n )}\n >\n {props.children}\n\n <Show when={isClosable}>\n <IconButton\n ariaLabel=\"Close\"\n onClick={onClick}\n palette=\"action\"\n usage=\"filled\"\n size=\"sm\"\n >\n <Close />\n </IconButton>\n </Show>\n </ark.span>\n )\n}\n\nconst closableCss = css({\n bgColor: 'action.bg.active',\n color: 'action.text.initial',\n paddingInlineEnd: '0',\n})\n","'use client'\n\nimport { createContext, useContext, type PropsWithChildren } from 'react'\nimport type { SystemConfig } from '../config'\n\n/**\n * This module contains the Cerberus configuration context and helpers.\n * @module context/cerberus\n */\n\ntype CerberusContextValue = SystemConfig\n\nconst CerberusContext = createContext<CerberusContextValue | null>(null)\n\ninterface CerberusProviderProps {\n config: SystemConfig\n}\n\n/**\n * Cerberus configuration provider.\n * @param props.config The Cerberus configuration created with\n * `makeSystemConfig` helper.\n */\nexport function CerberusProvider(\n props: PropsWithChildren<CerberusProviderProps>,\n) {\n return (\n <CerberusContext.Provider value={props.config}>\n {props.children}\n </CerberusContext.Provider>\n )\n}\n\n/**\n * Returns the Cerberus configuration context.\n * @returns The Cerberus configuration context.\n */\nexport function useCerberusContext() {\n const context = useContext(CerberusContext)\n if (!context) {\n throw new Error('useCerberus must be used within a CerberusProvider')\n }\n return context\n}\n","import { ark, type HTMLArkProps } from '@ark-ui/react/factory'\nimport { iconButton, type IconButtonVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the IconButton component primitives.\n * @module @cerberus-design/react/components/icon-button/primitives\n */\n\nconst { withRecipe } = createCerberusPrimitive(iconButton)\n\n/**\n * The root element of the Button component.\n */\nexport type IconButtonRootProps = CerberusPrimitiveProps<\n HTMLArkProps<'button'> & IconButtonVariantProps\n>\nexport const IconButtonRoot = withRecipe(ark.button)\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n","import { IconButtonRoot, type IconButtonRootProps } from './primitives'\n\n/**\n * This module contains the Icon Button component.\n * @module\n */\n\nexport interface IconButtonProps extends IconButtonRootProps {\n /**\n * The aria-label attribute for the icon button.\n */\n ariaLabel: string\n}\n\n/**\n * A component that allows the user to perform actions using an icon\n * @see https://cerberus.digitalu.design/react/icon-button\n */\nexport function IconButton(props: IconButtonProps) {\n const { ariaLabel, ...rootProps } = props\n return (\n <IconButtonRoot {...rootProps} aria-label={ariaLabel ?? 'Icon Button'} />\n )\n}\n","import { type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps<T> {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: T | boolean | null | undefined\n /**\n * The children to render when the condition is false.\n */\n fallback?: ReactNode\n}\n\n/**\n * Conditionally render a memoized version of the children or optional fallback\n * content.\n * @see https://cerberus.digitalu.design/react/show\n * @example\n * ```tsx\n * <Show when={isLoggedIn} fallback={<Navigate to=\"/login\" />}>\n * <Dashboard />\n * </Show>\n */\nexport function Show<T>(props: PropsWithChildren<ShowProps<T>>) {\n const { when, children, fallback } = props\n\n if (when) {\n return <>{children}</>\n }\n\n if (fallback) {\n return <>{fallback}</>\n }\n\n return null\n}\n"],"mappings":"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","names":["import_factory","import_css","import_recipes","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../../../../src/components/tag/tag.tsx","../../../../src/context/cerberus.tsx","../../../../src/components/icon-button/primitives.ts","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/icon-button/button.tsx","../../../../src/components/show/show.tsx"],"sourcesContent":["'use client'\n\nimport { ark, type HTMLArkProps } from '@ark-ui/react/factory'\nimport type { MouseEventHandler, PropsWithChildren } from 'react'\nimport { css, cx } from 'styled-system/css'\nimport { tag, type TagVariantProps } from 'styled-system/recipes'\nimport { useCerberusContext } from '../../context/cerberus'\nimport { IconButton } from '../icon-button/index'\nimport { Show } from '../show/index'\n\n/**\n * This module contains the tag component.\n * @module\n */\n\nexport type StaticTagProps = HTMLArkProps<'span'> &\n TagVariantProps & {\n /**\n * The action to be performed when the tag is clicked. Not available when\n * the palette or gradient props are provided.\n */\n onClick?: never\n }\n\nexport type ClickableTagProps = HTMLArkProps<'span'> & {\n /**\n * The gradient to apply to the tag. Not available when the onClick prop is\n * provided.\n */\n gradient?: never\n /**\n * The palette to use for the tag. Not available when the onClick prop is\n * provided.\n */\n palette?: never\n /**\n * The action to be performed when the tag is clicked.\n */\n onClick: MouseEventHandler<HTMLSpanElement>\n /**\n * The shape of the tag. Not available when the onClick prop is provided.\n * @type 'pill' | 'rounded'\n * @default 'pill'\n */\n shape?: never\n /**\n * The usage of the tag. Not available when the onClick prop is provided.\n * @type 'filled' | 'outlined'\n * @default 'filled'\n */\n usage?: never\n}\n\nexport type TagProps = StaticTagProps | ClickableTagProps\n\n/**\n * The Tag component is used to display a meta descriptions.\n * @see https://cerberus.digitalu.design/react/tag\n * @example\n * ```tsx\n * <Tag>Tag</Tag>\n * ```\n */\nexport function Tag(props: PropsWithChildren<TagProps>) {\n const { shape: initShape, gradient, onClick, usage, ...nativeProps } = props\n const palette = props?.palette ?? 'page'\n const isClosable = Boolean(onClick)\n const shape = isClosable ? 'pill' : initShape\n const closableStyles = isClosable ? closableCss : ''\n const { icons } = useCerberusContext()\n const { close: Close } = icons\n\n return (\n <ark.span\n {...nativeProps}\n className={cx(\n nativeProps.className,\n tag({\n gradient,\n palette,\n shape,\n usage,\n }),\n closableStyles,\n )}\n >\n {props.children}\n\n <Show when={isClosable}>\n <IconButton\n ariaLabel=\"Close\"\n onClick={onClick}\n palette=\"action\"\n usage=\"filled\"\n size=\"sm\"\n >\n <Close />\n </IconButton>\n </Show>\n </ark.span>\n )\n}\n\nconst closableCss = css({\n bgColor: 'action.bg.active',\n color: 'action.text.initial',\n paddingInlineEnd: '0',\n})\n","'use client'\n\nimport { createContext, useContext, type PropsWithChildren } from 'react'\nimport type { SystemConfig } from '../config'\n\n/**\n * This module contains the Cerberus configuration context and helpers.\n * @module context/cerberus\n */\n\ntype CerberusContextValue = SystemConfig\n\nconst CerberusContext = createContext<CerberusContextValue | null>(null)\n\ninterface CerberusProviderProps {\n config: SystemConfig\n}\n\n/**\n * Cerberus configuration provider.\n * @param props.config The Cerberus configuration created with\n * `makeSystemConfig` helper.\n */\nexport function CerberusProvider(\n props: PropsWithChildren<CerberusProviderProps>,\n) {\n return (\n <CerberusContext.Provider value={props.config}>\n {props.children}\n </CerberusContext.Provider>\n )\n}\n\n/**\n * Returns the Cerberus configuration context.\n * @returns The Cerberus configuration context.\n */\nexport function useCerberusContext() {\n const context = useContext(CerberusContext)\n if (!context) {\n throw new Error('useCerberus must be used within a CerberusProvider')\n }\n return context\n}\n","import { ark, type HTMLArkProps } from '@ark-ui/react/factory'\nimport { iconButton, type IconButtonVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the IconButton component primitives.\n * @module @cerberus-design/react/components/icon-button/primitives\n */\n\nconst { withRecipe } = createCerberusPrimitive(iconButton)\n\n/**\n * The root element of the Button component.\n */\nexport type IconButtonRootProps = CerberusPrimitiveProps<\n HTMLArkProps<'button'> & IconButtonVariantProps\n>\nexport const IconButtonRoot = withRecipe(ark.button)\n","import { 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 { IconButtonRoot, type IconButtonRootProps } from './primitives'\n\n/**\n * This module contains the Icon Button component.\n * @module\n */\n\nexport interface IconButtonProps extends IconButtonRootProps {\n /**\n * The aria-label attribute for the icon button.\n */\n ariaLabel: string\n}\n\n/**\n * A component that allows the user to perform actions using an icon\n * @see https://cerberus.digitalu.design/react/icon-button\n */\nexport function IconButton(props: IconButtonProps) {\n const { ariaLabel, ...rootProps } = props\n return (\n <IconButtonRoot {...rootProps} aria-label={ariaLabel ?? 'Icon Button'} />\n )\n}\n","import { type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps<T> {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: T | boolean | null | undefined\n /**\n * The children to render when the condition is false.\n */\n fallback?: ReactNode\n}\n\n/**\n * Conditionally render a memoized version of the children or optional fallback\n * content.\n * @see https://cerberus.digitalu.design/react/show\n * @example\n * ```tsx\n * <Show when={isLoggedIn} fallback={<Navigate to=\"/login\" />}>\n * <Dashboard />\n * </Show>\n */\nexport function Show<T>(props: PropsWithChildren<ShowProps<T>>) {\n const { when, children, fallback } = props\n\n if (when) {\n return <>{children}</>\n }\n\n if (fallback) {\n return <>{fallback}</>\n }\n\n return null\n}\n"],"mappings":"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","names":["import_factory","import_css","import_recipes","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime"]}
@@ -35,23 +35,28 @@ var CerberusPrimitive = class {
35
35
  /**
36
36
  * Creates a Cerberus component with bare features and no recipe.
37
37
  * @param Component - The React component to enhance with Cerberus features.
38
+ * Can be a string or a component reference.
38
39
  * @returns A new React component that applies Cerberus features to the
39
40
  * original component.
41
+ *
40
42
  * @example
41
- * ```typescript
42
- * const { withNoRecipe } = createCerberusPrimitive(button)
43
- * const Button = withNoRecipe(RawButton)
43
+ * ```ts
44
+ * const { withNoRecipe } = createCerberusPrimitive(buttonRecipe)
45
+ * const Button = withNoRecipe('button')
44
46
  * ```
45
47
  */
46
48
  __publicField(this, "withNoRecipe", (Component, options) => {
47
49
  const { defaultProps } = options || {};
48
- this.validateComponent(Component);
50
+ const El = Component;
49
51
  const CerbComponent = (props) => {
50
52
  const { css: customCss, className, ...nativeProps } = props;
51
53
  const styles = this.hasStyles((0, import_css.cx)(className, (0, import_css.css)(customCss)));
52
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, { ...defaultProps, ...styles, ...nativeProps });
54
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(El, { ...defaultProps, ...styles, ...nativeProps });
53
55
  };
54
- CerbComponent.displayName = Component.displayName || Component.name;
56
+ if (this.validateComponent(El)) {
57
+ const ElName = typeof El === "string" ? El : El.displayName || El.name;
58
+ CerbComponent.displayName = ElName;
59
+ }
55
60
  return CerbComponent;
56
61
  });
57
62
  /**
@@ -63,11 +68,15 @@ var CerberusPrimitive = class {
63
68
  */
64
69
  __publicField(this, "withRecipe", (Component, options) => {
65
70
  const { defaultProps } = options || {};
71
+ const El = Component;
66
72
  const recipe = this.recipe;
67
- this.validateComponent(Component);
68
73
  const CerbComponent = (internalProps) => {
69
- const { css: customCss, className, ...nativeProps } = internalProps;
70
- const [variantOptions] = recipe.splitVariantProps(nativeProps);
74
+ const {
75
+ css: customCss,
76
+ className,
77
+ ...restOfInternalProps
78
+ } = internalProps;
79
+ const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
71
80
  const recipeStyles = recipe(variantOptions);
72
81
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
73
82
  Component,
@@ -78,7 +87,10 @@ var CerberusPrimitive = class {
78
87
  }
79
88
  );
80
89
  };
81
- CerbComponent.displayName = Component.displayName || Component.name;
90
+ if (this.validateComponent(El)) {
91
+ const ElName = typeof El === "string" ? El : El.displayName || El.name;
92
+ CerbComponent.displayName = ElName;
93
+ }
82
94
  return CerbComponent;
83
95
  });
84
96
  /**
@@ -95,11 +107,15 @@ var CerberusPrimitive = class {
95
107
  */
96
108
  __publicField(this, "withSlotRecipe", (Component, slot, options) => {
97
109
  const { defaultProps } = options || {};
110
+ const El = Component;
98
111
  const recipe = this.recipe;
99
- this.validateComponent(Component);
100
112
  const CerbComponent = (internalProps) => {
101
- const { css: customCss, className, ...nativeProps } = internalProps;
102
- const [variantOptions] = recipe.splitVariantProps(nativeProps);
113
+ const {
114
+ css: customCss,
115
+ className,
116
+ ...restOfInternalProps
117
+ } = internalProps;
118
+ const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
103
119
  const styles = recipe(variantOptions);
104
120
  const slotStyles = styles[slot];
105
121
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
@@ -111,7 +127,10 @@ var CerberusPrimitive = class {
111
127
  }
112
128
  );
113
129
  };
114
- CerbComponent.displayName = Component.displayName || Component.name;
130
+ if (this.validateComponent(El)) {
131
+ const ElName = typeof El === "string" ? El : El.displayName || El.name;
132
+ CerbComponent.displayName = ElName;
133
+ }
115
134
  return CerbComponent;
116
135
  });
117
136
  this.recipe = recipe ?? null;
@@ -126,8 +145,9 @@ var CerberusPrimitive = class {
126
145
  }
127
146
  validateComponent(Component) {
128
147
  if (typeof Component !== "function" && typeof Component !== "object") {
129
- throw new Error("Expected a React component as the first argument.");
148
+ return false;
130
149
  }
150
+ return true;
131
151
  }
132
152
  };
133
153