@cerberus-design/react 0.19.1 → 0.19.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (584) hide show
  1. package/build/legacy/_tsup-dts-rollup.d.cts +11 -1
  2. package/build/legacy/components/accordion/index.cjs +12 -4
  3. package/build/legacy/components/accordion/index.cjs.map +1 -1
  4. package/build/legacy/components/accordion/item-group.cjs +12 -4
  5. package/build/legacy/components/accordion/item-group.cjs.map +1 -1
  6. package/build/legacy/components/accordion/item-indicator.cjs +12 -4
  7. package/build/legacy/components/accordion/item-indicator.cjs.map +1 -1
  8. package/build/legacy/components/accordion/parts.cjs +12 -4
  9. package/build/legacy/components/accordion/parts.cjs.map +1 -1
  10. package/build/legacy/components/accordion/primitives.cjs +12 -4
  11. package/build/legacy/components/accordion/primitives.cjs.map +1 -1
  12. package/build/legacy/components/admonition/admonition.cjs +12 -4
  13. package/build/legacy/components/admonition/admonition.cjs.map +1 -1
  14. package/build/legacy/components/admonition/index.cjs +12 -4
  15. package/build/legacy/components/admonition/index.cjs.map +1 -1
  16. package/build/legacy/components/admonition/match-avatar.cjs +12 -4
  17. package/build/legacy/components/admonition/match-avatar.cjs.map +1 -1
  18. package/build/legacy/components/admonition/parts.cjs +12 -4
  19. package/build/legacy/components/admonition/parts.cjs.map +1 -1
  20. package/build/legacy/components/admonition/primitives.cjs +12 -4
  21. package/build/legacy/components/admonition/primitives.cjs.map +1 -1
  22. package/build/legacy/components/avatar/avatar.cjs +12 -4
  23. package/build/legacy/components/avatar/avatar.cjs.map +1 -1
  24. package/build/legacy/components/avatar/index.cjs +12 -4
  25. package/build/legacy/components/avatar/index.cjs.map +1 -1
  26. package/build/legacy/components/avatar/parts.cjs +12 -4
  27. package/build/legacy/components/avatar/parts.cjs.map +1 -1
  28. package/build/legacy/components/avatar/primitives.cjs +12 -4
  29. package/build/legacy/components/avatar/primitives.cjs.map +1 -1
  30. package/build/legacy/components/button/button.cjs +12 -4
  31. package/build/legacy/components/button/button.cjs.map +1 -1
  32. package/build/legacy/components/button/index.cjs +12 -4
  33. package/build/legacy/components/button/index.cjs.map +1 -1
  34. package/build/legacy/components/button/parts.cjs +12 -4
  35. package/build/legacy/components/button/parts.cjs.map +1 -1
  36. package/build/legacy/components/button/primitives.cjs +12 -4
  37. package/build/legacy/components/button/primitives.cjs.map +1 -1
  38. package/build/legacy/components/checkbox/checkbox-icon.cjs +12 -4
  39. package/build/legacy/components/checkbox/checkbox-icon.cjs.map +1 -1
  40. package/build/legacy/components/checkbox/checkbox.cjs +12 -4
  41. package/build/legacy/components/checkbox/checkbox.cjs.map +1 -1
  42. package/build/legacy/components/checkbox/index.cjs +12 -4
  43. package/build/legacy/components/checkbox/index.cjs.map +1 -1
  44. package/build/legacy/components/checkbox/parts.cjs +12 -4
  45. package/build/legacy/components/checkbox/parts.cjs.map +1 -1
  46. package/build/legacy/components/checkbox/primitives.cjs +12 -4
  47. package/build/legacy/components/checkbox/primitives.cjs.map +1 -1
  48. package/build/legacy/components/circular-progress/circular-progress.cjs +12 -4
  49. package/build/legacy/components/circular-progress/circular-progress.cjs.map +1 -1
  50. package/build/legacy/components/circular-progress/index.cjs +12 -4
  51. package/build/legacy/components/circular-progress/index.cjs.map +1 -1
  52. package/build/legacy/components/circular-progress/primitives.cjs +12 -4
  53. package/build/legacy/components/circular-progress/primitives.cjs.map +1 -1
  54. package/build/legacy/components/combobox/combobox.cjs +12 -4
  55. package/build/legacy/components/combobox/combobox.cjs.map +1 -1
  56. package/build/legacy/components/combobox/index.cjs +12 -4
  57. package/build/legacy/components/combobox/index.cjs.map +1 -1
  58. package/build/legacy/components/combobox/item-group.cjs +12 -4
  59. package/build/legacy/components/combobox/item-group.cjs.map +1 -1
  60. package/build/legacy/components/combobox/item.cjs +12 -4
  61. package/build/legacy/components/combobox/item.cjs.map +1 -1
  62. package/build/legacy/components/combobox/parts.cjs +12 -4
  63. package/build/legacy/components/combobox/parts.cjs.map +1 -1
  64. package/build/legacy/components/combobox/primitives.cjs +12 -4
  65. package/build/legacy/components/combobox/primitives.cjs.map +1 -1
  66. package/build/legacy/components/combobox/use-stateful-collection.cjs +12 -4
  67. package/build/legacy/components/combobox/use-stateful-collection.cjs.map +1 -1
  68. package/build/legacy/components/cta-dialog/index.cjs +12 -4
  69. package/build/legacy/components/cta-dialog/index.cjs.map +1 -1
  70. package/build/legacy/components/cta-dialog/provider.cjs +12 -4
  71. package/build/legacy/components/cta-dialog/provider.cjs.map +1 -1
  72. package/build/legacy/components/cta-dialog/trigger-item.cjs +12 -4
  73. package/build/legacy/components/cta-dialog/trigger-item.cjs.map +1 -1
  74. package/build/legacy/components/date-picker/calendar.cjs +12 -4
  75. package/build/legacy/components/date-picker/calendar.cjs.map +1 -1
  76. package/build/legacy/components/date-picker/content.cjs +12 -4
  77. package/build/legacy/components/date-picker/content.cjs.map +1 -1
  78. package/build/legacy/components/date-picker/date-picker.cjs +12 -4
  79. package/build/legacy/components/date-picker/date-picker.cjs.map +1 -1
  80. package/build/legacy/components/date-picker/day-view.cjs +12 -4
  81. package/build/legacy/components/date-picker/day-view.cjs.map +1 -1
  82. package/build/legacy/components/date-picker/index.cjs +12 -4
  83. package/build/legacy/components/date-picker/index.cjs.map +1 -1
  84. package/build/legacy/components/date-picker/input.cjs +12 -4
  85. package/build/legacy/components/date-picker/input.cjs.map +1 -1
  86. package/build/legacy/components/date-picker/month-view.cjs +12 -4
  87. package/build/legacy/components/date-picker/month-view.cjs.map +1 -1
  88. package/build/legacy/components/date-picker/parts.cjs +12 -4
  89. package/build/legacy/components/date-picker/parts.cjs.map +1 -1
  90. package/build/legacy/components/date-picker/primitives.cjs +12 -4
  91. package/build/legacy/components/date-picker/primitives.cjs.map +1 -1
  92. package/build/legacy/components/date-picker/range-input.cjs +12 -4
  93. package/build/legacy/components/date-picker/range-input.cjs.map +1 -1
  94. package/build/legacy/components/date-picker/trigger.cjs +12 -4
  95. package/build/legacy/components/date-picker/trigger.cjs.map +1 -1
  96. package/build/legacy/components/date-picker/view-control-group.cjs +12 -4
  97. package/build/legacy/components/date-picker/view-control-group.cjs.map +1 -1
  98. package/build/legacy/components/date-picker/year-view.cjs +12 -4
  99. package/build/legacy/components/date-picker/year-view.cjs.map +1 -1
  100. package/build/legacy/components/deprecated/Label.cjs +12 -4
  101. package/build/legacy/components/deprecated/Label.cjs.map +1 -1
  102. package/build/legacy/components/dialog/close-icon-trigger.cjs +12 -4
  103. package/build/legacy/components/dialog/close-icon-trigger.cjs.map +1 -1
  104. package/build/legacy/components/dialog/dialog.cjs +12 -4
  105. package/build/legacy/components/dialog/dialog.cjs.map +1 -1
  106. package/build/legacy/components/dialog/index.cjs +12 -4
  107. package/build/legacy/components/dialog/index.cjs.map +1 -1
  108. package/build/legacy/components/dialog/parts.cjs +12 -4
  109. package/build/legacy/components/dialog/parts.cjs.map +1 -1
  110. package/build/legacy/components/dialog/primitives.cjs +12 -4
  111. package/build/legacy/components/dialog/primitives.cjs.map +1 -1
  112. package/build/legacy/components/field/field.cjs +12 -4
  113. package/build/legacy/components/field/field.cjs.map +1 -1
  114. package/build/legacy/components/field/helper-text.cjs +12 -4
  115. package/build/legacy/components/field/helper-text.cjs.map +1 -1
  116. package/build/legacy/components/field/index.cjs +14 -5
  117. package/build/legacy/components/field/index.cjs.map +1 -1
  118. package/build/legacy/components/field/input.cjs +14 -5
  119. package/build/legacy/components/field/input.cjs.map +1 -1
  120. package/build/legacy/components/field/parts.cjs +14 -5
  121. package/build/legacy/components/field/parts.cjs.map +1 -1
  122. package/build/legacy/components/field/primitives.cjs +14 -5
  123. package/build/legacy/components/field/primitives.cjs.map +1 -1
  124. package/build/legacy/components/field/status-indicator.cjs +2 -1
  125. package/build/legacy/components/field/status-indicator.cjs.map +1 -1
  126. package/build/legacy/components/fieldset/fieldset.cjs +12 -4
  127. package/build/legacy/components/fieldset/fieldset.cjs.map +1 -1
  128. package/build/legacy/components/fieldset/index.cjs +12 -4
  129. package/build/legacy/components/fieldset/index.cjs.map +1 -1
  130. package/build/legacy/components/fieldset/parts.cjs +12 -4
  131. package/build/legacy/components/fieldset/parts.cjs.map +1 -1
  132. package/build/legacy/components/fieldset/primitives.cjs +12 -4
  133. package/build/legacy/components/fieldset/primitives.cjs.map +1 -1
  134. package/build/legacy/components/file-upload/file-status.cjs +13 -5
  135. package/build/legacy/components/file-upload/file-status.cjs.map +1 -1
  136. package/build/legacy/components/file-upload/file-uploader.cjs +12 -4
  137. package/build/legacy/components/file-upload/file-uploader.cjs.map +1 -1
  138. package/build/legacy/components/file-upload/index.cjs +13 -5
  139. package/build/legacy/components/file-upload/index.cjs.map +1 -1
  140. package/build/legacy/components/icon-button/button.cjs +12 -4
  141. package/build/legacy/components/icon-button/button.cjs.map +1 -1
  142. package/build/legacy/components/icon-button/index.cjs +12 -4
  143. package/build/legacy/components/icon-button/index.cjs.map +1 -1
  144. package/build/legacy/components/icon-button/primitives.cjs +12 -4
  145. package/build/legacy/components/icon-button/primitives.cjs.map +1 -1
  146. package/build/legacy/components/menu/index.cjs +12 -4
  147. package/build/legacy/components/menu/index.cjs.map +1 -1
  148. package/build/legacy/components/menu/menu.cjs +12 -4
  149. package/build/legacy/components/menu/menu.cjs.map +1 -1
  150. package/build/legacy/components/menu/primitives.cjs +12 -4
  151. package/build/legacy/components/menu/primitives.cjs.map +1 -1
  152. package/build/legacy/components/notifications/center.cjs +12 -4
  153. package/build/legacy/components/notifications/center.cjs.map +1 -1
  154. package/build/legacy/components/notifications/close-trigger.cjs +12 -4
  155. package/build/legacy/components/notifications/close-trigger.cjs.map +1 -1
  156. package/build/legacy/components/notifications/index.cjs +12 -4
  157. package/build/legacy/components/notifications/index.cjs.map +1 -1
  158. package/build/legacy/components/notifications/parts.cjs +12 -4
  159. package/build/legacy/components/notifications/parts.cjs.map +1 -1
  160. package/build/legacy/components/notifications/primitives.cjs +12 -4
  161. package/build/legacy/components/notifications/primitives.cjs.map +1 -1
  162. package/build/legacy/components/progress/index.cjs +12 -4
  163. package/build/legacy/components/progress/index.cjs.map +1 -1
  164. package/build/legacy/components/progress/primitives.cjs +12 -4
  165. package/build/legacy/components/progress/primitives.cjs.map +1 -1
  166. package/build/legacy/components/progress/progress-bar.cjs +12 -4
  167. package/build/legacy/components/progress/progress-bar.cjs.map +1 -1
  168. package/build/legacy/components/radio/index.cjs +12 -4
  169. package/build/legacy/components/radio/index.cjs.map +1 -1
  170. package/build/legacy/components/radio/parts.cjs +12 -4
  171. package/build/legacy/components/radio/parts.cjs.map +1 -1
  172. package/build/legacy/components/radio/primitives.cjs +12 -4
  173. package/build/legacy/components/radio/primitives.cjs.map +1 -1
  174. package/build/legacy/components/radio/radio.cjs +12 -4
  175. package/build/legacy/components/radio/radio.cjs.map +1 -1
  176. package/build/legacy/components/rating/index.cjs +12 -4
  177. package/build/legacy/components/rating/index.cjs.map +1 -1
  178. package/build/legacy/components/rating/parts.cjs +12 -4
  179. package/build/legacy/components/rating/parts.cjs.map +1 -1
  180. package/build/legacy/components/rating/primitives.cjs +12 -4
  181. package/build/legacy/components/rating/primitives.cjs.map +1 -1
  182. package/build/legacy/components/rating/rating.cjs +12 -4
  183. package/build/legacy/components/rating/rating.cjs.map +1 -1
  184. package/build/legacy/components/select/index.cjs +12 -4
  185. package/build/legacy/components/select/index.cjs.map +1 -1
  186. package/build/legacy/components/select/option-group.cjs +12 -4
  187. package/build/legacy/components/select/option-group.cjs.map +1 -1
  188. package/build/legacy/components/select/option.cjs +12 -4
  189. package/build/legacy/components/select/option.cjs.map +1 -1
  190. package/build/legacy/components/select/parts.cjs +12 -4
  191. package/build/legacy/components/select/parts.cjs.map +1 -1
  192. package/build/legacy/components/select/primitives.cjs +12 -4
  193. package/build/legacy/components/select/primitives.cjs.map +1 -1
  194. package/build/legacy/components/select/select.cjs +12 -4
  195. package/build/legacy/components/select/select.cjs.map +1 -1
  196. package/build/legacy/components/switch/index.cjs +12 -4
  197. package/build/legacy/components/switch/index.cjs.map +1 -1
  198. package/build/legacy/components/switch/parts.cjs +12 -4
  199. package/build/legacy/components/switch/parts.cjs.map +1 -1
  200. package/build/legacy/components/switch/primitives.cjs +12 -4
  201. package/build/legacy/components/switch/primitives.cjs.map +1 -1
  202. package/build/legacy/components/switch/switch.cjs +12 -4
  203. package/build/legacy/components/switch/switch.cjs.map +1 -1
  204. package/build/legacy/components/table/index.cjs +12 -4
  205. package/build/legacy/components/table/index.cjs.map +1 -1
  206. package/build/legacy/components/table/parts.cjs +12 -4
  207. package/build/legacy/components/table/parts.cjs.map +1 -1
  208. package/build/legacy/components/table/primitives.cjs +12 -4
  209. package/build/legacy/components/table/primitives.cjs.map +1 -1
  210. package/build/legacy/components/table/table.cjs +12 -4
  211. package/build/legacy/components/table/table.cjs.map +1 -1
  212. package/build/legacy/components/tabs/index.cjs +12 -4
  213. package/build/legacy/components/tabs/index.cjs.map +1 -1
  214. package/build/legacy/components/tabs/parts.cjs +12 -4
  215. package/build/legacy/components/tabs/parts.cjs.map +1 -1
  216. package/build/legacy/components/tabs/primitives.cjs +12 -4
  217. package/build/legacy/components/tabs/primitives.cjs.map +1 -1
  218. package/build/legacy/components/tabs/tabs.cjs +12 -4
  219. package/build/legacy/components/tabs/tabs.cjs.map +1 -1
  220. package/build/legacy/components/tag/index.cjs +12 -4
  221. package/build/legacy/components/tag/index.cjs.map +1 -1
  222. package/build/legacy/components/tag/tag.cjs +12 -4
  223. package/build/legacy/components/tag/tag.cjs.map +1 -1
  224. package/build/legacy/components/theme/index.cjs +12 -4
  225. package/build/legacy/components/theme/index.cjs.map +1 -1
  226. package/build/legacy/components/theme/theme.cjs +12 -4
  227. package/build/legacy/components/theme/theme.cjs.map +1 -1
  228. package/build/legacy/components/toggle/index.cjs +12 -4
  229. package/build/legacy/components/toggle/index.cjs.map +1 -1
  230. package/build/legacy/components/toggle/parts.cjs +12 -4
  231. package/build/legacy/components/toggle/parts.cjs.map +1 -1
  232. package/build/legacy/components/toggle/primitives.cjs +12 -4
  233. package/build/legacy/components/toggle/primitives.cjs.map +1 -1
  234. package/build/legacy/components/tooltip/index.cjs +12 -4
  235. package/build/legacy/components/tooltip/index.cjs.map +1 -1
  236. package/build/legacy/components/tooltip/parts.cjs +12 -4
  237. package/build/legacy/components/tooltip/parts.cjs.map +1 -1
  238. package/build/legacy/components/tooltip/primitives.cjs +12 -4
  239. package/build/legacy/components/tooltip/primitives.cjs.map +1 -1
  240. package/build/legacy/components/tooltip/tooltip.cjs +12 -4
  241. package/build/legacy/components/tooltip/tooltip.cjs.map +1 -1
  242. package/build/legacy/context/confirm-modal.cjs +12 -4
  243. package/build/legacy/context/confirm-modal.cjs.map +1 -1
  244. package/build/legacy/context/field.cjs +12 -4
  245. package/build/legacy/context/field.cjs.map +1 -1
  246. package/build/legacy/context/prompt-modal.cjs +14 -5
  247. package/build/legacy/context/prompt-modal.cjs.map +1 -1
  248. package/build/legacy/index.cjs +15 -6
  249. package/build/legacy/index.cjs.map +1 -1
  250. package/build/legacy/system/factory.cjs +12 -4
  251. package/build/legacy/system/factory.cjs.map +1 -1
  252. package/build/legacy/system/index.cjs +12 -4
  253. package/build/legacy/system/index.cjs.map +1 -1
  254. package/build/legacy/system/primitive-factory.cjs +12 -4
  255. package/build/legacy/system/primitive-factory.cjs.map +1 -1
  256. package/build/legacy/types.cjs.map +1 -1
  257. package/build/modern/_tsup-dts-rollup.d.ts +11 -1
  258. package/build/modern/{chunk-4WSCG2CM.js → chunk-262PENBL.js} +3 -3
  259. package/build/modern/{chunk-N2DZNGUS.js → chunk-27RTYRM7.js} +2 -2
  260. package/build/modern/{chunk-UCP3GQOJ.js → chunk-2SBNSYYC.js} +2 -2
  261. package/build/modern/{chunk-ZPMGW4U7.js → chunk-2UD72VLC.js} +2 -2
  262. package/build/modern/{chunk-NPZJTTTS.js → chunk-2VVJATIW.js} +5 -5
  263. package/build/modern/{chunk-GZ6T3352.js → chunk-33OXE7IJ.js} +13 -5
  264. package/build/modern/chunk-33OXE7IJ.js.map +1 -0
  265. package/build/modern/{chunk-4DJ6KC4K.js → chunk-46QXBKGK.js} +6 -6
  266. package/build/modern/{chunk-KYYKBLP2.js → chunk-4ZQUC4DA.js} +2 -2
  267. package/build/modern/{chunk-NH2RSI7N.js → chunk-5UZUXCMO.js} +2 -2
  268. package/build/modern/{chunk-J3XTP6VP.js → chunk-5W6HMI2G.js} +2 -2
  269. package/build/modern/{chunk-ZGPHSKEB.js → chunk-5WT5BM3V.js} +3 -3
  270. package/build/modern/{chunk-HJ67FKQ6.js → chunk-6KGRHE3J.js} +2 -2
  271. package/build/modern/{chunk-BDXVYV32.js → chunk-6KIXF4ES.js} +2 -2
  272. package/build/modern/{chunk-IU5YJTKN.js → chunk-6P2JY52I.js} +2 -2
  273. package/build/modern/{chunk-YI3P5QG4.js → chunk-6XO2RTIJ.js} +2 -2
  274. package/build/modern/{chunk-S7ALRSVU.js → chunk-77QDH2Q5.js} +2 -2
  275. package/build/modern/{chunk-VXG4AEMZ.js → chunk-7GT7UUCB.js} +2 -2
  276. package/build/modern/{chunk-RXAHVNN2.js → chunk-7GVDVLCR.js} +2 -2
  277. package/build/modern/{chunk-VIUQS3VG.js → chunk-7LNGA4BX.js} +2 -2
  278. package/build/modern/{chunk-ALJYABJX.js → chunk-7MWSOSOY.js} +2 -2
  279. package/build/modern/{chunk-COIQJKC3.js → chunk-A6NEZNGY.js} +2 -2
  280. package/build/modern/{chunk-OMM4CPZU.js → chunk-ABMK5P66.js} +2 -2
  281. package/build/modern/{chunk-YVYOOJ3X.js → chunk-ADOFKGU3.js} +2 -2
  282. package/build/modern/{chunk-4Q62OI72.js → chunk-AHYFFHUW.js} +2 -2
  283. package/build/modern/{chunk-GHM4I5BN.js → chunk-BFE2SHZO.js} +3 -3
  284. package/build/modern/{chunk-L2G4XKLT.js → chunk-BGJIAA5F.js} +2 -2
  285. package/build/modern/{chunk-2OWVBM5W.js → chunk-BGZTC53N.js} +2 -2
  286. package/build/modern/{chunk-UKAVYSJ5.js → chunk-BS4V2YJV.js} +3 -3
  287. package/build/modern/{chunk-VZXYGBU6.js → chunk-BT6FMOKM.js} +2 -2
  288. package/build/modern/{chunk-IOK2RQK6.js → chunk-CBJ5A5BD.js} +4 -4
  289. package/build/modern/{chunk-KSYZMMXN.js → chunk-CI7JYXUR.js} +3 -3
  290. package/build/modern/{chunk-ACK44GEO.js → chunk-CKCGLHLS.js} +6 -6
  291. package/build/modern/{chunk-A57LVJJF.js → chunk-CYK3ZJIX.js} +2 -2
  292. package/build/modern/{chunk-6BNGJMNL.js → chunk-EMLKVTGD.js} +3 -3
  293. package/build/modern/{chunk-RDFAC3XX.js → chunk-ETYXG2J2.js} +2 -2
  294. package/build/modern/{chunk-WKAI4OK3.js → chunk-FIVEPZ5F.js} +2 -2
  295. package/build/modern/{chunk-QOTRCNC7.js → chunk-FL3J7LTC.js} +2 -2
  296. package/build/modern/{chunk-A655GBYQ.js → chunk-GBV7MIBU.js} +4 -4
  297. package/build/modern/{chunk-JG5V3AK4.js → chunk-GLH23RDO.js} +3 -3
  298. package/build/modern/{chunk-5XU3LUPC.js → chunk-H6ZGH4VM.js} +2 -2
  299. package/build/modern/{chunk-YCVNE3CA.js → chunk-H7N6M7VO.js} +2 -2
  300. package/build/modern/{chunk-2UFNNWLA.js → chunk-HJYVIRNA.js} +5 -5
  301. package/build/modern/{chunk-BWZXR2WZ.js → chunk-HUKQPIDV.js} +2 -2
  302. package/build/modern/{chunk-LRIYLZSL.js → chunk-IWJCQ4BM.js} +3 -3
  303. package/build/modern/{chunk-SGFITMUF.js → chunk-IX5QZCM4.js} +2 -2
  304. package/build/modern/{chunk-PQ5DEKSH.js → chunk-J37VR33H.js} +2 -2
  305. package/build/modern/{chunk-UHXKG2ZP.js → chunk-JBAE2B2H.js} +2 -2
  306. package/build/modern/{chunk-HPWLIE64.js → chunk-KDIDKP2L.js} +2 -2
  307. package/build/modern/{chunk-YZFXHGMG.js → chunk-KELIM5A3.js} +2 -2
  308. package/build/modern/{chunk-E4DXMJ3C.js → chunk-KF3WIC2Y.js} +2 -2
  309. package/build/modern/{chunk-M4NNRVTU.js → chunk-KHU3YTLM.js} +2 -2
  310. package/build/modern/{chunk-OVYHM5DH.js → chunk-KUF4UUC7.js} +2 -2
  311. package/build/modern/{chunk-YUEVV2DE.js → chunk-L4CKWLXL.js} +2 -2
  312. package/build/modern/{chunk-VIKVLJGG.js → chunk-LCURHO24.js} +3 -2
  313. package/build/modern/{chunk-VIKVLJGG.js.map → chunk-LCURHO24.js.map} +1 -1
  314. package/build/modern/{chunk-BW64QBCK.js → chunk-LMEGBPKK.js} +2 -2
  315. package/build/modern/{chunk-WGSUBJNI.js → chunk-LNDQW46A.js} +2 -2
  316. package/build/modern/{chunk-AZ5LB6IS.js → chunk-LVA6QLLM.js} +2 -2
  317. package/build/modern/{chunk-YTKY3AHF.js → chunk-MPVUVQCJ.js} +2 -2
  318. package/build/modern/{chunk-2Q4KTP6D.js → chunk-NC7AHNAS.js} +7 -7
  319. package/build/modern/{chunk-2Q4KTP6D.js.map → chunk-NC7AHNAS.js.map} +1 -1
  320. package/build/modern/{chunk-6TIG456O.js → chunk-NLZGGXMB.js} +2 -2
  321. package/build/modern/{chunk-MXW63O5N.js → chunk-OG74JDYL.js} +2 -2
  322. package/build/modern/{chunk-SFAJKI45.js → chunk-OSUFAZAK.js} +2 -2
  323. package/build/modern/{chunk-P6WEDKIB.js → chunk-P3J5P524.js} +2 -2
  324. package/build/modern/{chunk-2T2S226G.js → chunk-PGINYK2P.js} +2 -2
  325. package/build/modern/{chunk-ZO3GSLWZ.js → chunk-PI7MKQ62.js} +2 -2
  326. package/build/modern/{chunk-CMQZN2GZ.js → chunk-Q3NDU44T.js} +2 -2
  327. package/build/modern/{chunk-MG2YW4IP.js → chunk-Q6FTLT7K.js} +2 -2
  328. package/build/modern/{chunk-DC3NTCCW.js → chunk-QHPJ2C76.js} +2 -2
  329. package/build/modern/{chunk-U6ECBUYN.js → chunk-QV5JHBHO.js} +2 -2
  330. package/build/modern/{chunk-RFANIL5H.js → chunk-RCXKKQQA.js} +2 -2
  331. package/build/modern/{chunk-FMNYWD5T.js → chunk-RKKI3J6R.js} +2 -2
  332. package/build/modern/{chunk-OVDJPTML.js → chunk-RMLBOGDE.js} +3 -3
  333. package/build/modern/{chunk-LW62VSVZ.js → chunk-ROWT3E5K.js} +2 -2
  334. package/build/modern/{chunk-3Z4TSR6V.js → chunk-S7HDNFJJ.js} +2 -2
  335. package/build/modern/{chunk-KLZPY4YX.js → chunk-T3U6K34Y.js} +2 -2
  336. package/build/modern/{chunk-TF2DXEUF.js → chunk-TIKG6U4Y.js} +2 -2
  337. package/build/modern/{chunk-GIIPOOSM.js → chunk-TJXWSSHO.js} +2 -2
  338. package/build/modern/{chunk-BOATN5PB.js → chunk-U2ZT7UDW.js} +2 -2
  339. package/build/modern/{chunk-SQIB5EOA.js → chunk-UHS2TNFC.js} +2 -2
  340. package/build/modern/{chunk-THMNM4CZ.js → chunk-UZHBWTSE.js} +2 -2
  341. package/build/modern/{chunk-2MU6WE52.js → chunk-VB7T2YYD.js} +3 -3
  342. package/build/modern/{chunk-OFACU2SY.js → chunk-VQIBX475.js} +2 -2
  343. package/build/modern/{chunk-Y67NIX2N.js → chunk-W7WPVM34.js} +3 -3
  344. package/build/modern/{chunk-D47GTCQZ.js → chunk-WC6SOU2F.js} +2 -2
  345. package/build/modern/{chunk-CIIFJ2SA.js → chunk-WK7TUQIS.js} +2 -2
  346. package/build/modern/{chunk-JSK6OD6J.js → chunk-X34MYQKI.js} +2 -2
  347. package/build/modern/{chunk-UXU2CVPI.js → chunk-X6KB5LWU.js} +2 -2
  348. package/build/modern/{chunk-RGLJDMIO.js → chunk-X6WOC4RF.js} +3 -3
  349. package/build/modern/{chunk-AJ5TWPXM.js → chunk-XB4HMXOQ.js} +3 -3
  350. package/build/modern/{chunk-CLGDJ4GM.js → chunk-XMFTL6KG.js} +3 -3
  351. package/build/modern/{chunk-YQNOAJM7.js → chunk-XZ2FNMMC.js} +2 -2
  352. package/build/modern/{chunk-BK5BIPCG.js → chunk-Y7UXAFII.js} +2 -2
  353. package/build/modern/{chunk-KM3G4YFF.js → chunk-YAZIBTA2.js} +2 -2
  354. package/build/modern/{chunk-7WX2RQT6.js → chunk-YMFUEQ2A.js} +3 -3
  355. package/build/modern/{chunk-ZZSHEW4N.js → chunk-ZFEGJR5E.js} +2 -2
  356. package/build/modern/{chunk-WO6MF3XM.js → chunk-ZGJDFQN2.js} +2 -2
  357. package/build/modern/{chunk-QM4DC6QF.js → chunk-ZUC3X6GQ.js} +2 -2
  358. package/build/modern/components/accordion/index.js +7 -7
  359. package/build/modern/components/accordion/item-group.js +7 -7
  360. package/build/modern/components/accordion/item-indicator.js +6 -6
  361. package/build/modern/components/accordion/parts.js +5 -5
  362. package/build/modern/components/accordion/primitives.js +4 -4
  363. package/build/modern/components/admonition/admonition.js +10 -10
  364. package/build/modern/components/admonition/index.js +10 -10
  365. package/build/modern/components/admonition/match-avatar.js +7 -7
  366. package/build/modern/components/admonition/parts.js +5 -5
  367. package/build/modern/components/admonition/primitives.js +4 -4
  368. package/build/modern/components/avatar/avatar.js +6 -6
  369. package/build/modern/components/avatar/index.js +6 -6
  370. package/build/modern/components/avatar/parts.js +5 -5
  371. package/build/modern/components/avatar/primitives.js +4 -4
  372. package/build/modern/components/button/button.js +5 -5
  373. package/build/modern/components/button/index.js +6 -6
  374. package/build/modern/components/button/parts.js +6 -6
  375. package/build/modern/components/button/primitives.js +4 -4
  376. package/build/modern/components/checkbox/checkbox-icon.js +6 -6
  377. package/build/modern/components/checkbox/checkbox.js +7 -7
  378. package/build/modern/components/checkbox/index.js +7 -7
  379. package/build/modern/components/checkbox/parts.js +5 -5
  380. package/build/modern/components/checkbox/primitives.js +4 -4
  381. package/build/modern/components/circular-progress/circular-progress.js +5 -5
  382. package/build/modern/components/circular-progress/index.js +5 -5
  383. package/build/modern/components/circular-progress/primitives.js +4 -4
  384. package/build/modern/components/combobox/combobox.js +6 -6
  385. package/build/modern/components/combobox/index.js +10 -10
  386. package/build/modern/components/combobox/item-group.js +6 -6
  387. package/build/modern/components/combobox/item.js +6 -6
  388. package/build/modern/components/combobox/parts.js +5 -5
  389. package/build/modern/components/combobox/primitives.js +4 -4
  390. package/build/modern/components/combobox/use-stateful-collection.js +5 -5
  391. package/build/modern/components/cta-dialog/index.js +16 -16
  392. package/build/modern/components/cta-dialog/provider.js +16 -16
  393. package/build/modern/components/cta-dialog/trigger-item.js +6 -6
  394. package/build/modern/components/date-picker/calendar.js +15 -15
  395. package/build/modern/components/date-picker/content.js +6 -6
  396. package/build/modern/components/date-picker/date-picker.js +6 -6
  397. package/build/modern/components/date-picker/day-view.js +11 -11
  398. package/build/modern/components/date-picker/index.js +19 -19
  399. package/build/modern/components/date-picker/input.js +9 -9
  400. package/build/modern/components/date-picker/month-view.js +11 -11
  401. package/build/modern/components/date-picker/parts.js +5 -5
  402. package/build/modern/components/date-picker/primitives.js +4 -4
  403. package/build/modern/components/date-picker/range-input.js +9 -9
  404. package/build/modern/components/date-picker/trigger.js +8 -8
  405. package/build/modern/components/date-picker/view-control-group.js +10 -10
  406. package/build/modern/components/date-picker/year-view.js +11 -11
  407. package/build/modern/components/deprecated/Label.js +9 -9
  408. package/build/modern/components/dialog/close-icon-trigger.js +7 -7
  409. package/build/modern/components/dialog/dialog.js +5 -5
  410. package/build/modern/components/dialog/index.js +9 -9
  411. package/build/modern/components/dialog/parts.js +5 -5
  412. package/build/modern/components/dialog/primitives.js +4 -4
  413. package/build/modern/components/field/field.js +7 -7
  414. package/build/modern/components/field/helper-text.js +6 -6
  415. package/build/modern/components/field/index.js +8 -8
  416. package/build/modern/components/field/input.js +5 -5
  417. package/build/modern/components/field/parts.js +6 -6
  418. package/build/modern/components/field/primitives.js +5 -5
  419. package/build/modern/components/field/status-indicator.js +1 -1
  420. package/build/modern/components/fieldset/fieldset.js +6 -6
  421. package/build/modern/components/fieldset/index.js +6 -6
  422. package/build/modern/components/fieldset/parts.js +5 -5
  423. package/build/modern/components/fieldset/primitives.js +4 -4
  424. package/build/modern/components/file-upload/file-status.js +16 -16
  425. package/build/modern/components/file-upload/file-uploader.js +7 -7
  426. package/build/modern/components/file-upload/index.js +17 -17
  427. package/build/modern/components/icon-button/button.js +5 -5
  428. package/build/modern/components/icon-button/index.js +5 -5
  429. package/build/modern/components/icon-button/primitives.js +4 -4
  430. package/build/modern/components/menu/index.js +5 -5
  431. package/build/modern/components/menu/menu.js +5 -5
  432. package/build/modern/components/menu/primitives.js +4 -4
  433. package/build/modern/components/notifications/center.js +9 -9
  434. package/build/modern/components/notifications/close-trigger.js +6 -6
  435. package/build/modern/components/notifications/index.js +9 -9
  436. package/build/modern/components/notifications/parts.js +5 -5
  437. package/build/modern/components/notifications/primitives.js +4 -4
  438. package/build/modern/components/progress/index.js +5 -5
  439. package/build/modern/components/progress/primitives.js +4 -4
  440. package/build/modern/components/progress/progress-bar.js +5 -5
  441. package/build/modern/components/radio/index.js +6 -6
  442. package/build/modern/components/radio/parts.js +5 -5
  443. package/build/modern/components/radio/primitives.js +4 -4
  444. package/build/modern/components/radio/radio.js +5 -5
  445. package/build/modern/components/rating/index.js +6 -6
  446. package/build/modern/components/rating/parts.js +5 -5
  447. package/build/modern/components/rating/primitives.js +4 -4
  448. package/build/modern/components/rating/rating.js +6 -6
  449. package/build/modern/components/select/index.js +8 -8
  450. package/build/modern/components/select/option-group.js +5 -5
  451. package/build/modern/components/select/option.js +6 -6
  452. package/build/modern/components/select/parts.js +5 -5
  453. package/build/modern/components/select/primitives.js +4 -4
  454. package/build/modern/components/select/select.js +6 -6
  455. package/build/modern/components/switch/index.js +6 -6
  456. package/build/modern/components/switch/parts.js +5 -5
  457. package/build/modern/components/switch/primitives.js +4 -4
  458. package/build/modern/components/switch/switch.js +6 -6
  459. package/build/modern/components/table/index.js +6 -6
  460. package/build/modern/components/table/parts.js +5 -5
  461. package/build/modern/components/table/primitives.js +4 -4
  462. package/build/modern/components/table/table.js +5 -5
  463. package/build/modern/components/tabs/index.js +6 -6
  464. package/build/modern/components/tabs/parts.js +5 -5
  465. package/build/modern/components/tabs/primitives.js +4 -4
  466. package/build/modern/components/tabs/tabs.js +6 -6
  467. package/build/modern/components/tag/index.js +6 -6
  468. package/build/modern/components/tag/tag.js +6 -6
  469. package/build/modern/components/theme/index.js +4 -4
  470. package/build/modern/components/theme/theme.js +4 -4
  471. package/build/modern/components/toggle/index.js +5 -5
  472. package/build/modern/components/toggle/parts.js +5 -5
  473. package/build/modern/components/toggle/primitives.js +4 -4
  474. package/build/modern/components/tooltip/index.js +6 -6
  475. package/build/modern/components/tooltip/parts.js +5 -5
  476. package/build/modern/components/tooltip/primitives.js +4 -4
  477. package/build/modern/components/tooltip/tooltip.js +6 -6
  478. package/build/modern/context/confirm-modal.js +15 -15
  479. package/build/modern/context/field.js +5 -5
  480. package/build/modern/context/prompt-modal.js +20 -20
  481. package/build/modern/index.js +97 -97
  482. package/build/modern/system/factory.js +2 -2
  483. package/build/modern/system/index.js +3 -3
  484. package/build/modern/system/primitive-factory.js +1 -1
  485. package/package.json +3 -3
  486. package/src/components/field/status-indicator.tsx +4 -1
  487. package/src/components/file-upload/file-status.tsx +1 -1
  488. package/src/system/primitive-factory.tsx +16 -6
  489. package/src/types.ts +10 -0
  490. package/build/modern/chunk-GZ6T3352.js.map +0 -1
  491. /package/build/modern/{chunk-4WSCG2CM.js.map → chunk-262PENBL.js.map} +0 -0
  492. /package/build/modern/{chunk-N2DZNGUS.js.map → chunk-27RTYRM7.js.map} +0 -0
  493. /package/build/modern/{chunk-UCP3GQOJ.js.map → chunk-2SBNSYYC.js.map} +0 -0
  494. /package/build/modern/{chunk-ZPMGW4U7.js.map → chunk-2UD72VLC.js.map} +0 -0
  495. /package/build/modern/{chunk-NPZJTTTS.js.map → chunk-2VVJATIW.js.map} +0 -0
  496. /package/build/modern/{chunk-4DJ6KC4K.js.map → chunk-46QXBKGK.js.map} +0 -0
  497. /package/build/modern/{chunk-KYYKBLP2.js.map → chunk-4ZQUC4DA.js.map} +0 -0
  498. /package/build/modern/{chunk-NH2RSI7N.js.map → chunk-5UZUXCMO.js.map} +0 -0
  499. /package/build/modern/{chunk-J3XTP6VP.js.map → chunk-5W6HMI2G.js.map} +0 -0
  500. /package/build/modern/{chunk-ZGPHSKEB.js.map → chunk-5WT5BM3V.js.map} +0 -0
  501. /package/build/modern/{chunk-HJ67FKQ6.js.map → chunk-6KGRHE3J.js.map} +0 -0
  502. /package/build/modern/{chunk-BDXVYV32.js.map → chunk-6KIXF4ES.js.map} +0 -0
  503. /package/build/modern/{chunk-IU5YJTKN.js.map → chunk-6P2JY52I.js.map} +0 -0
  504. /package/build/modern/{chunk-YI3P5QG4.js.map → chunk-6XO2RTIJ.js.map} +0 -0
  505. /package/build/modern/{chunk-S7ALRSVU.js.map → chunk-77QDH2Q5.js.map} +0 -0
  506. /package/build/modern/{chunk-VXG4AEMZ.js.map → chunk-7GT7UUCB.js.map} +0 -0
  507. /package/build/modern/{chunk-RXAHVNN2.js.map → chunk-7GVDVLCR.js.map} +0 -0
  508. /package/build/modern/{chunk-VIUQS3VG.js.map → chunk-7LNGA4BX.js.map} +0 -0
  509. /package/build/modern/{chunk-ALJYABJX.js.map → chunk-7MWSOSOY.js.map} +0 -0
  510. /package/build/modern/{chunk-COIQJKC3.js.map → chunk-A6NEZNGY.js.map} +0 -0
  511. /package/build/modern/{chunk-OMM4CPZU.js.map → chunk-ABMK5P66.js.map} +0 -0
  512. /package/build/modern/{chunk-YVYOOJ3X.js.map → chunk-ADOFKGU3.js.map} +0 -0
  513. /package/build/modern/{chunk-4Q62OI72.js.map → chunk-AHYFFHUW.js.map} +0 -0
  514. /package/build/modern/{chunk-GHM4I5BN.js.map → chunk-BFE2SHZO.js.map} +0 -0
  515. /package/build/modern/{chunk-L2G4XKLT.js.map → chunk-BGJIAA5F.js.map} +0 -0
  516. /package/build/modern/{chunk-2OWVBM5W.js.map → chunk-BGZTC53N.js.map} +0 -0
  517. /package/build/modern/{chunk-UKAVYSJ5.js.map → chunk-BS4V2YJV.js.map} +0 -0
  518. /package/build/modern/{chunk-VZXYGBU6.js.map → chunk-BT6FMOKM.js.map} +0 -0
  519. /package/build/modern/{chunk-IOK2RQK6.js.map → chunk-CBJ5A5BD.js.map} +0 -0
  520. /package/build/modern/{chunk-KSYZMMXN.js.map → chunk-CI7JYXUR.js.map} +0 -0
  521. /package/build/modern/{chunk-ACK44GEO.js.map → chunk-CKCGLHLS.js.map} +0 -0
  522. /package/build/modern/{chunk-A57LVJJF.js.map → chunk-CYK3ZJIX.js.map} +0 -0
  523. /package/build/modern/{chunk-6BNGJMNL.js.map → chunk-EMLKVTGD.js.map} +0 -0
  524. /package/build/modern/{chunk-RDFAC3XX.js.map → chunk-ETYXG2J2.js.map} +0 -0
  525. /package/build/modern/{chunk-WKAI4OK3.js.map → chunk-FIVEPZ5F.js.map} +0 -0
  526. /package/build/modern/{chunk-QOTRCNC7.js.map → chunk-FL3J7LTC.js.map} +0 -0
  527. /package/build/modern/{chunk-A655GBYQ.js.map → chunk-GBV7MIBU.js.map} +0 -0
  528. /package/build/modern/{chunk-JG5V3AK4.js.map → chunk-GLH23RDO.js.map} +0 -0
  529. /package/build/modern/{chunk-5XU3LUPC.js.map → chunk-H6ZGH4VM.js.map} +0 -0
  530. /package/build/modern/{chunk-YCVNE3CA.js.map → chunk-H7N6M7VO.js.map} +0 -0
  531. /package/build/modern/{chunk-2UFNNWLA.js.map → chunk-HJYVIRNA.js.map} +0 -0
  532. /package/build/modern/{chunk-BWZXR2WZ.js.map → chunk-HUKQPIDV.js.map} +0 -0
  533. /package/build/modern/{chunk-LRIYLZSL.js.map → chunk-IWJCQ4BM.js.map} +0 -0
  534. /package/build/modern/{chunk-SGFITMUF.js.map → chunk-IX5QZCM4.js.map} +0 -0
  535. /package/build/modern/{chunk-PQ5DEKSH.js.map → chunk-J37VR33H.js.map} +0 -0
  536. /package/build/modern/{chunk-UHXKG2ZP.js.map → chunk-JBAE2B2H.js.map} +0 -0
  537. /package/build/modern/{chunk-HPWLIE64.js.map → chunk-KDIDKP2L.js.map} +0 -0
  538. /package/build/modern/{chunk-YZFXHGMG.js.map → chunk-KELIM5A3.js.map} +0 -0
  539. /package/build/modern/{chunk-E4DXMJ3C.js.map → chunk-KF3WIC2Y.js.map} +0 -0
  540. /package/build/modern/{chunk-M4NNRVTU.js.map → chunk-KHU3YTLM.js.map} +0 -0
  541. /package/build/modern/{chunk-OVYHM5DH.js.map → chunk-KUF4UUC7.js.map} +0 -0
  542. /package/build/modern/{chunk-YUEVV2DE.js.map → chunk-L4CKWLXL.js.map} +0 -0
  543. /package/build/modern/{chunk-BW64QBCK.js.map → chunk-LMEGBPKK.js.map} +0 -0
  544. /package/build/modern/{chunk-WGSUBJNI.js.map → chunk-LNDQW46A.js.map} +0 -0
  545. /package/build/modern/{chunk-AZ5LB6IS.js.map → chunk-LVA6QLLM.js.map} +0 -0
  546. /package/build/modern/{chunk-YTKY3AHF.js.map → chunk-MPVUVQCJ.js.map} +0 -0
  547. /package/build/modern/{chunk-6TIG456O.js.map → chunk-NLZGGXMB.js.map} +0 -0
  548. /package/build/modern/{chunk-MXW63O5N.js.map → chunk-OG74JDYL.js.map} +0 -0
  549. /package/build/modern/{chunk-SFAJKI45.js.map → chunk-OSUFAZAK.js.map} +0 -0
  550. /package/build/modern/{chunk-P6WEDKIB.js.map → chunk-P3J5P524.js.map} +0 -0
  551. /package/build/modern/{chunk-2T2S226G.js.map → chunk-PGINYK2P.js.map} +0 -0
  552. /package/build/modern/{chunk-ZO3GSLWZ.js.map → chunk-PI7MKQ62.js.map} +0 -0
  553. /package/build/modern/{chunk-CMQZN2GZ.js.map → chunk-Q3NDU44T.js.map} +0 -0
  554. /package/build/modern/{chunk-MG2YW4IP.js.map → chunk-Q6FTLT7K.js.map} +0 -0
  555. /package/build/modern/{chunk-DC3NTCCW.js.map → chunk-QHPJ2C76.js.map} +0 -0
  556. /package/build/modern/{chunk-U6ECBUYN.js.map → chunk-QV5JHBHO.js.map} +0 -0
  557. /package/build/modern/{chunk-RFANIL5H.js.map → chunk-RCXKKQQA.js.map} +0 -0
  558. /package/build/modern/{chunk-FMNYWD5T.js.map → chunk-RKKI3J6R.js.map} +0 -0
  559. /package/build/modern/{chunk-OVDJPTML.js.map → chunk-RMLBOGDE.js.map} +0 -0
  560. /package/build/modern/{chunk-LW62VSVZ.js.map → chunk-ROWT3E5K.js.map} +0 -0
  561. /package/build/modern/{chunk-3Z4TSR6V.js.map → chunk-S7HDNFJJ.js.map} +0 -0
  562. /package/build/modern/{chunk-KLZPY4YX.js.map → chunk-T3U6K34Y.js.map} +0 -0
  563. /package/build/modern/{chunk-TF2DXEUF.js.map → chunk-TIKG6U4Y.js.map} +0 -0
  564. /package/build/modern/{chunk-GIIPOOSM.js.map → chunk-TJXWSSHO.js.map} +0 -0
  565. /package/build/modern/{chunk-BOATN5PB.js.map → chunk-U2ZT7UDW.js.map} +0 -0
  566. /package/build/modern/{chunk-SQIB5EOA.js.map → chunk-UHS2TNFC.js.map} +0 -0
  567. /package/build/modern/{chunk-THMNM4CZ.js.map → chunk-UZHBWTSE.js.map} +0 -0
  568. /package/build/modern/{chunk-2MU6WE52.js.map → chunk-VB7T2YYD.js.map} +0 -0
  569. /package/build/modern/{chunk-OFACU2SY.js.map → chunk-VQIBX475.js.map} +0 -0
  570. /package/build/modern/{chunk-Y67NIX2N.js.map → chunk-W7WPVM34.js.map} +0 -0
  571. /package/build/modern/{chunk-D47GTCQZ.js.map → chunk-WC6SOU2F.js.map} +0 -0
  572. /package/build/modern/{chunk-CIIFJ2SA.js.map → chunk-WK7TUQIS.js.map} +0 -0
  573. /package/build/modern/{chunk-JSK6OD6J.js.map → chunk-X34MYQKI.js.map} +0 -0
  574. /package/build/modern/{chunk-UXU2CVPI.js.map → chunk-X6KB5LWU.js.map} +0 -0
  575. /package/build/modern/{chunk-RGLJDMIO.js.map → chunk-X6WOC4RF.js.map} +0 -0
  576. /package/build/modern/{chunk-AJ5TWPXM.js.map → chunk-XB4HMXOQ.js.map} +0 -0
  577. /package/build/modern/{chunk-CLGDJ4GM.js.map → chunk-XMFTL6KG.js.map} +0 -0
  578. /package/build/modern/{chunk-YQNOAJM7.js.map → chunk-XZ2FNMMC.js.map} +0 -0
  579. /package/build/modern/{chunk-BK5BIPCG.js.map → chunk-Y7UXAFII.js.map} +0 -0
  580. /package/build/modern/{chunk-KM3G4YFF.js.map → chunk-YAZIBTA2.js.map} +0 -0
  581. /package/build/modern/{chunk-7WX2RQT6.js.map → chunk-YMFUEQ2A.js.map} +0 -0
  582. /package/build/modern/{chunk-ZZSHEW4N.js.map → chunk-ZFEGJR5E.js.map} +0 -0
  583. /package/build/modern/{chunk-WO6MF3XM.js.map → chunk-ZGJDFQN2.js.map} +0 -0
  584. /package/build/modern/{chunk-QM4DC6QF.js.map → chunk-ZUC3X6GQ.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/rating/index.ts","../../../../src/components/rating/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/rating/parts.tsx","../../../../src/utils/index.ts","../../../../src/components/show/show.tsx","../../../../src/components/rating/rating.tsx"],"sourcesContent":["export * from './parts'\nexport * from './primitives'\nexport * from './rating'\n\nexport type {\n UseRatingGroupContext,\n UseRatingGroupItemContext,\n} from '@ark-ui/react/rating-group'\n","import {\n RatingGroup,\n type RatingGroupContextProps as ArkRatingGroupContextProps,\n type RatingGroupControlProps as ArkRatingGroupControlProps,\n type RatingGroupHiddenInputProps as ArkRatingGroupHiddenInputProps,\n type RatingGroupItemContextProps as ArkRatingGroupItemContextProps,\n type RatingGroupItemProps as ArkRatingGroupItemProps,\n type RatingGroupLabelProps as ArkRatingGroupLabelProps,\n type RatingGroupRootProps as ArkRatingGroupRootProps,\n} from '@ark-ui/react/rating-group'\nimport {\n ratingGroup,\n type RatingGroupVariantProps,\n} from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Rating component.\n * @module 'rating/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(ratingGroup)\n\n// Root\n\nexport type RatingRootProps = CerberusPrimitiveProps<\n ArkRatingGroupRootProps & RatingGroupVariantProps\n>\nexport const RatingRoot = withSlotRecipe<RatingRootProps>(\n RatingGroup.Root,\n 'root',\n)\n\n// Label\n\nexport type RatingLabelProps = CerberusPrimitiveProps<ArkRatingGroupLabelProps>\nexport const RatingLabel = withSlotRecipe<RatingLabelProps>(\n RatingGroup.Label,\n 'label',\n)\n\n// Control\n\nexport type RatingGroupControlProps =\n CerberusPrimitiveProps<ArkRatingGroupControlProps>\nexport const RatingControl = withSlotRecipe<RatingGroupControlProps>(\n RatingGroup.Control,\n 'control',\n)\n\n// Context\n\nexport type RatingGroupContextProps = ArkRatingGroupContextProps\nexport const RatingContext = RatingGroup.Context\n\n// Item\n\nexport type RatingGroupItemProps = CerberusPrimitiveProps<\n ArkRatingGroupItemProps & RatingGroupVariantProps\n>\nexport const RatingItem = withSlotRecipe<RatingGroupItemProps>(\n RatingGroup.Item,\n 'item',\n)\n\n// Item Context\nexport type RatingGroupItemContextProps = ArkRatingGroupItemContextProps\nexport const RatingItemContext = RatingGroup.ItemContext\n\n// Hidden Input\n\nexport type RatingGroupHiddenInputProps = ArkRatingGroupHiddenInputProps\nexport const RatingHiddenInput = RatingGroup.HiddenInput\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 RatingContext,\n RatingControl,\n RatingHiddenInput,\n RatingItem,\n RatingItemContext,\n RatingLabel,\n RatingRoot,\n} from './primitives'\n\n/**\n * This module contains the parts of the Rating component.\n * @module 'rating/parts'\n */\n\ninterface RatingPartsValue {\n /**\n * The container of the rating.\n */\n Root: ElementType\n /**\n * The label of the rating.\n */\n Label: ElementType\n /**\n * The visual representation of the rating.\n */\n Control: ElementType\n /**\n * The context of the rating.\n */\n Context: ElementType\n /**\n * The item to display for the rating.\n */\n Item: ElementType\n /**\n * The context provider for the rating items.\n */\n ItemContext: ElementType\n /**\n * The native input of the rating.\n */\n HiddenInput: ElementType\n}\n\n/**\n * An Object containing the parts of the Rating component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the RatingParts object and\n * the entire family of components vs. only what you use.\n */\nexport const RatingParts: RatingPartsValue = {\n Root: RatingRoot,\n Label: RatingLabel,\n Control: RatingControl,\n Context: RatingContext,\n Item: RatingItem,\n ItemContext: RatingItemContext,\n HiddenInput: RatingHiddenInput,\n}\n","/**\n * This module contains utility functions that are used across your app.\n * @module Utils\n */\n\n/**\n * Formats the count of notifications to be displayed in the notification badge.\n * @param count - The number of notifications.\n * @returns The formatted count of notifications.\n * @example\n * ```tsx\n * const count = formatNotifyCount(100)\n * console.log(count) // '99+'\n * ```\n */\nexport function formatNotifyCount(count: number): string {\n if (count > 99) return '99+'\n return count.toString()\n}\n\n/**\n * Splits the properties of an object into multiple groups based on lists of keys.\n * @param props - The object to split.\n * @param keyGroups - The lists of keys to include in each group.\n * @returns An array of objects: each containing the properties specified in the corresponding key group, and the last object containing the remaining keys.\n */\nexport function splitProps<T extends object>(\n props: T,\n ...keyGroups: (keyof T)[][]\n): { [K in keyof T]?: T[K] }[] {\n const result = keyGroups.map(() => ({}) as { [K in keyof T]?: T[K] })\n const rest = {} as { [K in keyof T]?: T[K] }\n\n for (const key in props) {\n let assigned = false\n for (let i = 0; i < keyGroups.length; i++) {\n if (keyGroups[i].includes(key as keyof T)) {\n result[i][key as keyof T] = props[key]\n assigned = true\n break\n }\n }\n if (!assigned) {\n rest[key as keyof T] = props[key]\n }\n }\n\n return [...result, rest]\n}\n\nexport * from './localStorage'\n","import { type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps<T> {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: T | boolean | null | undefined\n /**\n * The children to render when the condition is false.\n */\n fallback?: ReactNode\n}\n\n/**\n * Conditionally render a memoized version of the children or optional fallback\n * content.\n * @see https://cerberus.digitalu.design/react/show\n * @example\n * ```tsx\n * <Show when={isLoggedIn} fallback={<Navigate to=\"/login\" />}>\n * <Dashboard />\n * </Show>\n */\nexport function Show<T>(props: PropsWithChildren<ShowProps<T>>) {\n const { when, children, fallback } = props\n\n if (when) {\n return <>{children}</>\n }\n\n if (fallback) {\n return <>{fallback}</>\n }\n\n return null\n}\n","import type {\n UseRatingGroupContext,\n UseRatingGroupItemContext,\n} from '@ark-ui/react/rating-group'\nimport type { ReactNode } from 'react'\nimport { splitProps } from '../../utils/index'\nimport { Show } from '../show/index'\nimport { RatingParts } from './parts'\nimport type { RatingRootProps } from './primitives'\n\n/**\n * This module contains the abstracted Rating component.\n * @module 'react/rating'\n */\n\nexport interface RatingProps extends Omit<RatingRootProps, 'children'> {\n /**\n * The label of the rating component.\n */\n label?: string\n /**\n * The children of the rating component.\n */\n children: (context: UseRatingGroupItemContext) => ReactNode\n}\n\n/**\n * The Rating component is an abstraction of the primitives which provides a\n * visual rating system for a user to select a value.\n * @description [Cerberus Docs](https://cerberus.digitalu.design/react/rating)\n * @description [Ark Docs](https://ark-ui.com/react/docs/components/rating-group#api-reference)\n * @example\n * ```tsx\n * <Rating count={5} defaultValue={3} allowHalf>\n * {({ half, highlighted }) => {\n * if (half) return <StarHalfIcon fill=\"current\" />\n * if (highlighted) return <StarIcon fill=\"current\" />\n * return <StarIcon />\n * }}\n * </Rating>\n * ```\n */\nexport function Rating(props: RatingProps) {\n const [{ label }, styleProps, rootProps] = splitProps(\n props,\n ['label'],\n ['orientation', 'palette', 'size'],\n )\n\n return (\n <RatingParts.Root {...styleProps} {...rootProps}>\n <Show when={label}>\n <RatingParts.Label>{label}</RatingParts.Label>\n </Show>\n\n <RatingParts.Control>\n <RatingParts.Context>\n {(context: UseRatingGroupContext) =>\n context.items.map((item) => (\n <RatingParts.Item\n key={item}\n index={item}\n palette={styleProps.palette}\n >\n <RatingParts.ItemContext>\n {rootProps.children}\n </RatingParts.ItemContext>\n </RatingParts.Item>\n ))\n }\n </RatingParts.Context>\n </RatingParts.Control>\n </RatingParts.Root>\n )\n}\n"],"mappings":"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","names":["import_jsx_runtime","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../../../../src/components/rating/index.ts","../../../../src/components/rating/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/rating/parts.tsx","../../../../src/utils/index.ts","../../../../src/components/show/show.tsx","../../../../src/components/rating/rating.tsx"],"sourcesContent":["export * from './parts'\nexport * from './primitives'\nexport * from './rating'\n\nexport type {\n UseRatingGroupContext,\n UseRatingGroupItemContext,\n} from '@ark-ui/react/rating-group'\n","import {\n RatingGroup,\n type RatingGroupContextProps as ArkRatingGroupContextProps,\n type RatingGroupControlProps as ArkRatingGroupControlProps,\n type RatingGroupHiddenInputProps as ArkRatingGroupHiddenInputProps,\n type RatingGroupItemContextProps as ArkRatingGroupItemContextProps,\n type RatingGroupItemProps as ArkRatingGroupItemProps,\n type RatingGroupLabelProps as ArkRatingGroupLabelProps,\n type RatingGroupRootProps as ArkRatingGroupRootProps,\n} from '@ark-ui/react/rating-group'\nimport {\n ratingGroup,\n type RatingGroupVariantProps,\n} from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Rating component.\n * @module 'rating/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(ratingGroup)\n\n// Root\n\nexport type RatingRootProps = CerberusPrimitiveProps<\n ArkRatingGroupRootProps & RatingGroupVariantProps\n>\nexport const RatingRoot = withSlotRecipe<RatingRootProps>(\n RatingGroup.Root,\n 'root',\n)\n\n// Label\n\nexport type RatingLabelProps = CerberusPrimitiveProps<ArkRatingGroupLabelProps>\nexport const RatingLabel = withSlotRecipe<RatingLabelProps>(\n RatingGroup.Label,\n 'label',\n)\n\n// Control\n\nexport type RatingGroupControlProps =\n CerberusPrimitiveProps<ArkRatingGroupControlProps>\nexport const RatingControl = withSlotRecipe<RatingGroupControlProps>(\n RatingGroup.Control,\n 'control',\n)\n\n// Context\n\nexport type RatingGroupContextProps = ArkRatingGroupContextProps\nexport const RatingContext = RatingGroup.Context\n\n// Item\n\nexport type RatingGroupItemProps = CerberusPrimitiveProps<\n ArkRatingGroupItemProps & RatingGroupVariantProps\n>\nexport const RatingItem = withSlotRecipe<RatingGroupItemProps>(\n RatingGroup.Item,\n 'item',\n)\n\n// Item Context\nexport type RatingGroupItemContextProps = ArkRatingGroupItemContextProps\nexport const RatingItemContext = RatingGroup.ItemContext\n\n// Hidden Input\n\nexport type RatingGroupHiddenInputProps = ArkRatingGroupHiddenInputProps\nexport const RatingHiddenInput = RatingGroup.HiddenInput\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n","import type { ElementType } from 'react'\nimport {\n RatingContext,\n RatingControl,\n RatingHiddenInput,\n RatingItem,\n RatingItemContext,\n RatingLabel,\n RatingRoot,\n} from './primitives'\n\n/**\n * This module contains the parts of the Rating component.\n * @module 'rating/parts'\n */\n\ninterface RatingPartsValue {\n /**\n * The container of the rating.\n */\n Root: ElementType\n /**\n * The label of the rating.\n */\n Label: ElementType\n /**\n * The visual representation of the rating.\n */\n Control: ElementType\n /**\n * The context of the rating.\n */\n Context: ElementType\n /**\n * The item to display for the rating.\n */\n Item: ElementType\n /**\n * The context provider for the rating items.\n */\n ItemContext: ElementType\n /**\n * The native input of the rating.\n */\n HiddenInput: ElementType\n}\n\n/**\n * An Object containing the parts of the Rating component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the RatingParts object and\n * the entire family of components vs. only what you use.\n */\nexport const RatingParts: RatingPartsValue = {\n Root: RatingRoot,\n Label: RatingLabel,\n Control: RatingControl,\n Context: RatingContext,\n Item: RatingItem,\n ItemContext: RatingItemContext,\n HiddenInput: RatingHiddenInput,\n}\n","/**\n * This module contains utility functions that are used across your app.\n * @module Utils\n */\n\n/**\n * Formats the count of notifications to be displayed in the notification badge.\n * @param count - The number of notifications.\n * @returns The formatted count of notifications.\n * @example\n * ```tsx\n * const count = formatNotifyCount(100)\n * console.log(count) // '99+'\n * ```\n */\nexport function formatNotifyCount(count: number): string {\n if (count > 99) return '99+'\n return count.toString()\n}\n\n/**\n * Splits the properties of an object into multiple groups based on lists of keys.\n * @param props - The object to split.\n * @param keyGroups - The lists of keys to include in each group.\n * @returns An array of objects: each containing the properties specified in the corresponding key group, and the last object containing the remaining keys.\n */\nexport function splitProps<T extends object>(\n props: T,\n ...keyGroups: (keyof T)[][]\n): { [K in keyof T]?: T[K] }[] {\n const result = keyGroups.map(() => ({}) as { [K in keyof T]?: T[K] })\n const rest = {} as { [K in keyof T]?: T[K] }\n\n for (const key in props) {\n let assigned = false\n for (let i = 0; i < keyGroups.length; i++) {\n if (keyGroups[i].includes(key as keyof T)) {\n result[i][key as keyof T] = props[key]\n assigned = true\n break\n }\n }\n if (!assigned) {\n rest[key as keyof T] = props[key]\n }\n }\n\n return [...result, rest]\n}\n\nexport * from './localStorage'\n","import { type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps<T> {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: T | boolean | null | undefined\n /**\n * The children to render when the condition is false.\n */\n fallback?: ReactNode\n}\n\n/**\n * Conditionally render a memoized version of the children or optional fallback\n * content.\n * @see https://cerberus.digitalu.design/react/show\n * @example\n * ```tsx\n * <Show when={isLoggedIn} fallback={<Navigate to=\"/login\" />}>\n * <Dashboard />\n * </Show>\n */\nexport function Show<T>(props: PropsWithChildren<ShowProps<T>>) {\n const { when, children, fallback } = props\n\n if (when) {\n return <>{children}</>\n }\n\n if (fallback) {\n return <>{fallback}</>\n }\n\n return null\n}\n","import type {\n UseRatingGroupContext,\n UseRatingGroupItemContext,\n} from '@ark-ui/react/rating-group'\nimport type { ReactNode } from 'react'\nimport { splitProps } from '../../utils/index'\nimport { Show } from '../show/index'\nimport { RatingParts } from './parts'\nimport type { RatingRootProps } from './primitives'\n\n/**\n * This module contains the abstracted Rating component.\n * @module 'react/rating'\n */\n\nexport interface RatingProps extends Omit<RatingRootProps, 'children'> {\n /**\n * The label of the rating component.\n */\n label?: string\n /**\n * The children of the rating component.\n */\n children: (context: UseRatingGroupItemContext) => ReactNode\n}\n\n/**\n * The Rating component is an abstraction of the primitives which provides a\n * visual rating system for a user to select a value.\n * @description [Cerberus Docs](https://cerberus.digitalu.design/react/rating)\n * @description [Ark Docs](https://ark-ui.com/react/docs/components/rating-group#api-reference)\n * @example\n * ```tsx\n * <Rating count={5} defaultValue={3} allowHalf>\n * {({ half, highlighted }) => {\n * if (half) return <StarHalfIcon fill=\"current\" />\n * if (highlighted) return <StarIcon fill=\"current\" />\n * return <StarIcon />\n * }}\n * </Rating>\n * ```\n */\nexport function Rating(props: RatingProps) {\n const [{ label }, styleProps, rootProps] = splitProps(\n props,\n ['label'],\n ['orientation', 'palette', 'size'],\n )\n\n return (\n <RatingParts.Root {...styleProps} {...rootProps}>\n <Show when={label}>\n <RatingParts.Label>{label}</RatingParts.Label>\n </Show>\n\n <RatingParts.Control>\n <RatingParts.Context>\n {(context: UseRatingGroupContext) =>\n context.items.map((item) => (\n <RatingParts.Item\n key={item}\n index={item}\n palette={styleProps.palette}\n >\n <RatingParts.ItemContext>\n {rootProps.children}\n </RatingParts.ItemContext>\n </RatingParts.Item>\n ))\n }\n </RatingParts.Context>\n </RatingParts.Control>\n </RatingParts.Root>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,0BASO;AACP,qBAGO;;;ACbP,iBAAwB;AAmEX;AA9CN,IAAM,oBAAN,MAAwB;AAAA,EAG7B,YAAY,QAAkC;AAF9C;AAkCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wCAAe,CACb,WACA,YAC2B;AAC3B,YAAM,EAAE,aAAa,IAAI,WAAW,CAAC;AAErC,WAAK,kBAAkB,SAAS;AAEhC,YAAM,gBAAgB,CAAC,UAA0C;AAC/D,cAAM,EAAE,KAAK,WAAW,WAAW,GAAG,YAAY,IAAI;AACtD,cAAM,SAAS,KAAK,cAAU,eAAG,eAAW,gBAAI,SAAS,CAAC,CAAC;AAC3D,eAAO,4CAAC,aAAW,GAAG,cAAe,GAAG,QAAS,GAAI,aAAmB;AAAA,MAC1E;AAEA,oBAAc,cAAc,UAAU,eAAe,UAAU;AAC/D,aAAO;AAAA,IACT;AASA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sCAAa,CACX,WACA,YAC+D;AAC/D,YAAM,EAAE,aAAa,IAAI,WAAW,CAAC;AACrC,YAAM,SAAS,KAAK;AAEpB,WAAK,kBAAkB,SAAS;AAEhC,YAAM,gBAAgB,CAAC,kBAAkD;AACvE,cAAM;AAAA,UACJ,KAAK;AAAA,UACL;AAAA,UACA,GAAG;AAAA,QACL,IAAI;AAEJ,cAAM,CAAC,gBAAgB,WAAW,IAChC,OAAO,kBAAkB,mBAAmB;AAC9C,cAAM,eAAe,OAAO,cAAc;AAE1C,eACE;AAAA,UAAC;AAAA;AAAA,YACE,GAAG;AAAA,YACH,GAAI;AAAA,YACL,eAAW,eAAG,WAAW,kBAAc,gBAAI,SAAS,CAAC;AAAA;AAAA,QACvD;AAAA,MAEJ;AAEA,oBAAc,cAAc,UAAU,eAAe,UAAU;AAC/D,aAAO;AAAA,IACT;AAcA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0CAAiB,CACf,WACA,MACA,YACG;AACH,YAAM,EAAE,aAAa,IAAI,WAAW,CAAC;AACrC,YAAM,SAAS,KAAK;AAEpB,WAAK,kBAAkB,SAAS;AAEhC,YAAM,gBAAgB,CAAC,kBAAkD;AACvE,cAAM;AAAA,UACJ,KAAK;AAAA,UACL;AAAA,UACA,GAAG;AAAA,QACL,IAAI;AAEJ,cAAM,CAAC,gBAAgB,WAAW,IAChC,OAAO,kBAAkB,mBAAmB;AAC9C,cAAM,SAAS,OAAO,cAAc;AACpC,cAAM,aAAa,OAAO,IAA2B;AAErD,eACE;AAAA,UAAC;AAAA;AAAA,YACE,GAAG;AAAA,YACH,GAAI;AAAA,YACL,eAAW,eAAG,WAAW,gBAAY,gBAAI,SAAS,CAAC;AAAA;AAAA,QACrD;AAAA,MAEJ;AAEA,oBAAc,cAAc,UAAU,eAAe,UAAU;AAC/D,aAAO;AAAA,IACT;AAtIE,SAAK,SAAS,UAAU;AAAA,EAC1B;AAAA,EAEQ,UAAU,QAAqD;AACrE,QAAI,QAAQ;AACV,aAAO;AAAA,QACL,WAAW;AAAA,MACb;AAAA,IACF;AACA,WAAO,CAAC;AAAA,EACV;AAAA,EAEQ,kBACN,WACA;AACA,QAAI,OAAO,cAAc,cAAc,OAAO,cAAc,UAAU;AACpE,YAAM,IAAI,MAAM,mDAAmD;AAAA,IACrE;AAAA,EACF;AAqHF;;;AC1IO,SAAS,wBACd,QACA;AACA,SAAO,IAAI,kBAAkB,MAAM;AACrC;;;AFFA,IAAM,EAAE,eAAe,IAAI,wBAAwB,0BAAW;AAOvD,IAAM,aAAa;AAAA,EACxB,gCAAY;AAAA,EACZ;AACF;AAKO,IAAM,cAAc;AAAA,EACzB,gCAAY;AAAA,EACZ;AACF;AAMO,IAAM,gBAAgB;AAAA,EAC3B,gCAAY;AAAA,EACZ;AACF;AAKO,IAAM,gBAAgB,gCAAY;AAOlC,IAAM,aAAa;AAAA,EACxB,gCAAY;AAAA,EACZ;AACF;AAIO,IAAM,oBAAoB,gCAAY;AAKtC,IAAM,oBAAoB,gCAAY;;;AGnBtC,IAAM,cAAgC;AAAA,EAC3C,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AAAA,EACT,SAAS;AAAA,EACT,MAAM;AAAA,EACN,aAAa;AAAA,EACb,aAAa;AACf;;;ACtCO,SAAS,WACd,UACG,WAC0B;AAC7B,QAAM,SAAS,UAAU,IAAI,OAAO,CAAC,EAA+B;AACpE,QAAM,OAAO,CAAC;AAEd,aAAW,OAAO,OAAO;AACvB,QAAI,WAAW;AACf,aAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACzC,UAAI,UAAU,CAAC,EAAE,SAAS,GAAc,GAAG;AACzC,eAAO,CAAC,EAAE,GAAc,IAAI,MAAM,GAAG;AACrC,mBAAW;AACX;AAAA,MACF;AAAA,IACF;AACA,QAAI,CAAC,UAAU;AACb,WAAK,GAAc,IAAI,MAAM,GAAG;AAAA,IAClC;AAAA,EACF;AAEA,SAAO,CAAC,GAAG,QAAQ,IAAI;AACzB;;;AChBW,IAAAA,sBAAA;AAJJ,SAAS,KAAQ,OAAwC;AAC9D,QAAM,EAAE,MAAM,UAAU,SAAS,IAAI;AAErC,MAAI,MAAM;AACR,WAAO,6EAAG,UAAS;AAAA,EACrB;AAEA,MAAI,UAAU;AACZ,WAAO,6EAAG,oBAAS;AAAA,EACrB;AAEA,SAAO;AACT;;;ACUI,IAAAC,sBAAA;AARG,SAAS,OAAO,OAAoB;AACzC,QAAM,CAAC,EAAE,MAAM,GAAG,YAAY,SAAS,IAAI;AAAA,IACzC;AAAA,IACA,CAAC,OAAO;AAAA,IACR,CAAC,eAAe,WAAW,MAAM;AAAA,EACnC;AAEA,SACE,8CAAC,YAAY,MAAZ,EAAkB,GAAG,YAAa,GAAG,WACpC;AAAA,iDAAC,QAAK,MAAM,OACV,uDAAC,YAAY,OAAZ,EAAmB,iBAAM,GAC5B;AAAA,IAEA,6CAAC,YAAY,SAAZ,EACC,uDAAC,YAAY,SAAZ,EACE,WAAC,YACA,QAAQ,MAAM,IAAI,CAAC,SACjB;AAAA,MAAC,YAAY;AAAA,MAAZ;AAAA,QAEC,OAAO;AAAA,QACP,SAAS,WAAW;AAAA,QAEpB,uDAAC,YAAY,aAAZ,EACE,oBAAU,UACb;AAAA;AAAA,MANK;AAAA,IAOP,CACD,GAEL,GACF;AAAA,KACF;AAEJ;","names":["import_jsx_runtime","import_jsx_runtime"]}
@@ -70,8 +70,12 @@ var CerberusPrimitive = class {
70
70
  const recipe = this.recipe;
71
71
  this.validateComponent(Component);
72
72
  const CerbComponent = (internalProps) => {
73
- const { css: customCss, className, ...nativeProps } = internalProps;
74
- const [variantOptions] = recipe.splitVariantProps(nativeProps);
73
+ const {
74
+ css: customCss,
75
+ className,
76
+ ...restOfInternalProps
77
+ } = internalProps;
78
+ const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
75
79
  const recipeStyles = recipe(variantOptions);
76
80
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
77
81
  Component,
@@ -102,8 +106,12 @@ var CerberusPrimitive = class {
102
106
  const recipe = this.recipe;
103
107
  this.validateComponent(Component);
104
108
  const CerbComponent = (internalProps) => {
105
- const { css: customCss, className, ...nativeProps } = internalProps;
106
- const [variantOptions] = recipe.splitVariantProps(nativeProps);
109
+ const {
110
+ css: customCss,
111
+ className,
112
+ ...restOfInternalProps
113
+ } = internalProps;
114
+ const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
107
115
  const styles = recipe(variantOptions);
108
116
  const slotStyles = styles[slot];
109
117
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/rating/parts.tsx","../../../../src/components/rating/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts"],"sourcesContent":["import type { ElementType } from 'react'\nimport {\n RatingContext,\n RatingControl,\n RatingHiddenInput,\n RatingItem,\n RatingItemContext,\n RatingLabel,\n RatingRoot,\n} from './primitives'\n\n/**\n * This module contains the parts of the Rating component.\n * @module 'rating/parts'\n */\n\ninterface RatingPartsValue {\n /**\n * The container of the rating.\n */\n Root: ElementType\n /**\n * The label of the rating.\n */\n Label: ElementType\n /**\n * The visual representation of the rating.\n */\n Control: ElementType\n /**\n * The context of the rating.\n */\n Context: ElementType\n /**\n * The item to display for the rating.\n */\n Item: ElementType\n /**\n * The context provider for the rating items.\n */\n ItemContext: ElementType\n /**\n * The native input of the rating.\n */\n HiddenInput: ElementType\n}\n\n/**\n * An Object containing the parts of the Rating component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the RatingParts object and\n * the entire family of components vs. only what you use.\n */\nexport const RatingParts: RatingPartsValue = {\n Root: RatingRoot,\n Label: RatingLabel,\n Control: RatingControl,\n Context: RatingContext,\n Item: RatingItem,\n ItemContext: RatingItemContext,\n HiddenInput: RatingHiddenInput,\n}\n","import {\n RatingGroup,\n type RatingGroupContextProps as ArkRatingGroupContextProps,\n type RatingGroupControlProps as ArkRatingGroupControlProps,\n type RatingGroupHiddenInputProps as ArkRatingGroupHiddenInputProps,\n type RatingGroupItemContextProps as ArkRatingGroupItemContextProps,\n type RatingGroupItemProps as ArkRatingGroupItemProps,\n type RatingGroupLabelProps as ArkRatingGroupLabelProps,\n type RatingGroupRootProps as ArkRatingGroupRootProps,\n} from '@ark-ui/react/rating-group'\nimport {\n ratingGroup,\n type RatingGroupVariantProps,\n} from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Rating component.\n * @module 'rating/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(ratingGroup)\n\n// Root\n\nexport type RatingRootProps = CerberusPrimitiveProps<\n ArkRatingGroupRootProps & RatingGroupVariantProps\n>\nexport const RatingRoot = withSlotRecipe<RatingRootProps>(\n RatingGroup.Root,\n 'root',\n)\n\n// Label\n\nexport type RatingLabelProps = CerberusPrimitiveProps<ArkRatingGroupLabelProps>\nexport const RatingLabel = withSlotRecipe<RatingLabelProps>(\n RatingGroup.Label,\n 'label',\n)\n\n// Control\n\nexport type RatingGroupControlProps =\n CerberusPrimitiveProps<ArkRatingGroupControlProps>\nexport const RatingControl = withSlotRecipe<RatingGroupControlProps>(\n RatingGroup.Control,\n 'control',\n)\n\n// Context\n\nexport type RatingGroupContextProps = ArkRatingGroupContextProps\nexport const RatingContext = RatingGroup.Context\n\n// Item\n\nexport type RatingGroupItemProps = CerberusPrimitiveProps<\n ArkRatingGroupItemProps & RatingGroupVariantProps\n>\nexport const RatingItem = withSlotRecipe<RatingGroupItemProps>(\n RatingGroup.Item,\n 'item',\n)\n\n// Item Context\nexport type RatingGroupItemContextProps = ArkRatingGroupItemContextProps\nexport const RatingItemContext = RatingGroup.ItemContext\n\n// Hidden Input\n\nexport type RatingGroupHiddenInputProps = ArkRatingGroupHiddenInputProps\nexport const RatingHiddenInput = RatingGroup.HiddenInput\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,0BASO;AACP,qBAGO;;;ACbP,iBAAwB;AAmEX;AA9CN,IAAM,oBAAN,MAAwB;AAAA,EAG7B,YAAY,QAAkC;AAF9C;AAkCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wCAAe,CACb,WACA,YAC2B;AAC3B,YAAM,EAAE,aAAa,IAAI,WAAW,CAAC;AAErC,WAAK,kBAAkB,SAAS;AAEhC,YAAM,gBAAgB,CAAC,UAA0C;AAC/D,cAAM,EAAE,KAAK,WAAW,WAAW,GAAG,YAAY,IAAI;AACtD,cAAM,SAAS,KAAK,cAAU,eAAG,eAAW,gBAAI,SAAS,CAAC,CAAC;AAC3D,eAAO,4CAAC,aAAW,GAAG,cAAe,GAAG,QAAS,GAAI,aAAmB;AAAA,MAC1E;AAEA,oBAAc,cAAc,UAAU,eAAe,UAAU;AAC/D,aAAO;AAAA,IACT;AASA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sCAAa,CACX,WACA,YAC+D;AAC/D,YAAM,EAAE,aAAa,IAAI,WAAW,CAAC;AACrC,YAAM,SAAS,KAAK;AAEpB,WAAK,kBAAkB,SAAS;AAEhC,YAAM,gBAAgB,CAAC,kBAAkD;AACvE,cAAM,EAAE,KAAK,WAAW,WAAW,GAAG,YAAY,IAAI;AAEtD,cAAM,CAAC,cAAc,IAAI,OAAO,kBAAkB,WAAW;AAC7D,cAAM,eAAe,OAAO,cAAc;AAE1C,eACE;AAAA,UAAC;AAAA;AAAA,YACE,GAAG;AAAA,YACH,GAAI;AAAA,YACL,eAAW,eAAG,WAAW,kBAAc,gBAAI,SAAS,CAAC;AAAA;AAAA,QACvD;AAAA,MAEJ;AAEA,oBAAc,cAAc,UAAU,eAAe,UAAU;AAC/D,aAAO;AAAA,IACT;AAcA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0CAAiB,CACf,WACA,MACA,YACG;AACH,YAAM,EAAE,aAAa,IAAI,WAAW,CAAC;AACrC,YAAM,SAAS,KAAK;AAEpB,WAAK,kBAAkB,SAAS;AAEhC,YAAM,gBAAgB,CAAC,kBAAkD;AACvE,cAAM,EAAE,KAAK,WAAW,WAAW,GAAG,YAAY,IAAI;AAEtD,cAAM,CAAC,cAAc,IAAI,OAAO,kBAAkB,WAAW;AAC7D,cAAM,SAAS,OAAO,cAAc;AACpC,cAAM,aAAa,OAAO,IAA2B;AAErD,eACE;AAAA,UAAC;AAAA;AAAA,YACE,GAAG;AAAA,YACH,GAAI;AAAA,YACL,eAAW,eAAG,WAAW,gBAAY,gBAAI,SAAS,CAAC;AAAA;AAAA,QACrD;AAAA,MAEJ;AAEA,oBAAc,cAAc,UAAU,eAAe,UAAU;AAC/D,aAAO;AAAA,IACT;AA5HE,SAAK,SAAS,UAAU;AAAA,EAC1B;AAAA,EAEQ,UAAU,QAAqD;AACrE,QAAI,QAAQ;AACV,aAAO;AAAA,QACL,WAAW;AAAA,MACb;AAAA,IACF;AACA,WAAO,CAAC;AAAA,EACV;AAAA,EAEQ,kBACN,WACA;AACA,QAAI,OAAO,cAAc,cAAc,OAAO,cAAc,UAAU;AACpE,YAAM,IAAI,MAAM,mDAAmD;AAAA,IACrE;AAAA,EACF;AA2GF;;;AChIO,SAAS,wBACd,QACA;AACA,SAAO,IAAI,kBAAkB,MAAM;AACrC;;;AFFA,IAAM,EAAE,eAAe,IAAI,wBAAwB,0BAAW;AAOvD,IAAM,aAAa;AAAA,EACxB,gCAAY;AAAA,EACZ;AACF;AAKO,IAAM,cAAc;AAAA,EACzB,gCAAY;AAAA,EACZ;AACF;AAMO,IAAM,gBAAgB;AAAA,EAC3B,gCAAY;AAAA,EACZ;AACF;AAKO,IAAM,gBAAgB,gCAAY;AAOlC,IAAM,aAAa;AAAA,EACxB,gCAAY;AAAA,EACZ;AACF;AAIO,IAAM,oBAAoB,gCAAY;AAKtC,IAAM,oBAAoB,gCAAY;;;ADnBtC,IAAM,cAAgC;AAAA,EAC3C,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AAAA,EACT,SAAS;AAAA,EACT,MAAM;AAAA,EACN,aAAa;AAAA,EACb,aAAa;AACf;","names":[]}
1
+ {"version":3,"sources":["../../../../src/components/rating/parts.tsx","../../../../src/components/rating/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts"],"sourcesContent":["import type { ElementType } from 'react'\nimport {\n RatingContext,\n RatingControl,\n RatingHiddenInput,\n RatingItem,\n RatingItemContext,\n RatingLabel,\n RatingRoot,\n} from './primitives'\n\n/**\n * This module contains the parts of the Rating component.\n * @module 'rating/parts'\n */\n\ninterface RatingPartsValue {\n /**\n * The container of the rating.\n */\n Root: ElementType\n /**\n * The label of the rating.\n */\n Label: ElementType\n /**\n * The visual representation of the rating.\n */\n Control: ElementType\n /**\n * The context of the rating.\n */\n Context: ElementType\n /**\n * The item to display for the rating.\n */\n Item: ElementType\n /**\n * The context provider for the rating items.\n */\n ItemContext: ElementType\n /**\n * The native input of the rating.\n */\n HiddenInput: ElementType\n}\n\n/**\n * An Object containing the parts of the Rating component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the RatingParts object and\n * the entire family of components vs. only what you use.\n */\nexport const RatingParts: RatingPartsValue = {\n Root: RatingRoot,\n Label: RatingLabel,\n Control: RatingControl,\n Context: RatingContext,\n Item: RatingItem,\n ItemContext: RatingItemContext,\n HiddenInput: RatingHiddenInput,\n}\n","import {\n RatingGroup,\n type RatingGroupContextProps as ArkRatingGroupContextProps,\n type RatingGroupControlProps as ArkRatingGroupControlProps,\n type RatingGroupHiddenInputProps as ArkRatingGroupHiddenInputProps,\n type RatingGroupItemContextProps as ArkRatingGroupItemContextProps,\n type RatingGroupItemProps as ArkRatingGroupItemProps,\n type RatingGroupLabelProps as ArkRatingGroupLabelProps,\n type RatingGroupRootProps as ArkRatingGroupRootProps,\n} from '@ark-ui/react/rating-group'\nimport {\n ratingGroup,\n type RatingGroupVariantProps,\n} from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Rating component.\n * @module 'rating/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(ratingGroup)\n\n// Root\n\nexport type RatingRootProps = CerberusPrimitiveProps<\n ArkRatingGroupRootProps & RatingGroupVariantProps\n>\nexport const RatingRoot = withSlotRecipe<RatingRootProps>(\n RatingGroup.Root,\n 'root',\n)\n\n// Label\n\nexport type RatingLabelProps = CerberusPrimitiveProps<ArkRatingGroupLabelProps>\nexport const RatingLabel = withSlotRecipe<RatingLabelProps>(\n RatingGroup.Label,\n 'label',\n)\n\n// Control\n\nexport type RatingGroupControlProps =\n CerberusPrimitiveProps<ArkRatingGroupControlProps>\nexport const RatingControl = withSlotRecipe<RatingGroupControlProps>(\n RatingGroup.Control,\n 'control',\n)\n\n// Context\n\nexport type RatingGroupContextProps = ArkRatingGroupContextProps\nexport const RatingContext = RatingGroup.Context\n\n// Item\n\nexport type RatingGroupItemProps = CerberusPrimitiveProps<\n ArkRatingGroupItemProps & RatingGroupVariantProps\n>\nexport const RatingItem = withSlotRecipe<RatingGroupItemProps>(\n RatingGroup.Item,\n 'item',\n)\n\n// Item Context\nexport type RatingGroupItemContextProps = ArkRatingGroupItemContextProps\nexport const RatingItemContext = RatingGroup.ItemContext\n\n// Hidden Input\n\nexport type RatingGroupHiddenInputProps = ArkRatingGroupHiddenInputProps\nexport const RatingHiddenInput = RatingGroup.HiddenInput\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n"],"mappings":"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","names":[]}
@@ -74,8 +74,12 @@ var CerberusPrimitive = class {
74
74
  const recipe = this.recipe;
75
75
  this.validateComponent(Component);
76
76
  const CerbComponent = (internalProps) => {
77
- const { css: customCss, className, ...nativeProps } = internalProps;
78
- const [variantOptions] = recipe.splitVariantProps(nativeProps);
77
+ const {
78
+ css: customCss,
79
+ className,
80
+ ...restOfInternalProps
81
+ } = internalProps;
82
+ const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
79
83
  const recipeStyles = recipe(variantOptions);
80
84
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
81
85
  Component,
@@ -106,8 +110,12 @@ var CerberusPrimitive = class {
106
110
  const recipe = this.recipe;
107
111
  this.validateComponent(Component);
108
112
  const CerbComponent = (internalProps) => {
109
- const { css: customCss, className, ...nativeProps } = internalProps;
110
- const [variantOptions] = recipe.splitVariantProps(nativeProps);
113
+ const {
114
+ css: customCss,
115
+ className,
116
+ ...restOfInternalProps
117
+ } = internalProps;
118
+ const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
111
119
  const styles = recipe(variantOptions);
112
120
  const slotStyles = styles[slot];
113
121
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/rating/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts"],"sourcesContent":["import {\n RatingGroup,\n type RatingGroupContextProps as ArkRatingGroupContextProps,\n type RatingGroupControlProps as ArkRatingGroupControlProps,\n type RatingGroupHiddenInputProps as ArkRatingGroupHiddenInputProps,\n type RatingGroupItemContextProps as ArkRatingGroupItemContextProps,\n type RatingGroupItemProps as ArkRatingGroupItemProps,\n type RatingGroupLabelProps as ArkRatingGroupLabelProps,\n type RatingGroupRootProps as ArkRatingGroupRootProps,\n} from '@ark-ui/react/rating-group'\nimport {\n ratingGroup,\n type RatingGroupVariantProps,\n} from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Rating component.\n * @module 'rating/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(ratingGroup)\n\n// Root\n\nexport type RatingRootProps = CerberusPrimitiveProps<\n ArkRatingGroupRootProps & RatingGroupVariantProps\n>\nexport const RatingRoot = withSlotRecipe<RatingRootProps>(\n RatingGroup.Root,\n 'root',\n)\n\n// Label\n\nexport type RatingLabelProps = CerberusPrimitiveProps<ArkRatingGroupLabelProps>\nexport const RatingLabel = withSlotRecipe<RatingLabelProps>(\n RatingGroup.Label,\n 'label',\n)\n\n// Control\n\nexport type RatingGroupControlProps =\n CerberusPrimitiveProps<ArkRatingGroupControlProps>\nexport const RatingControl = withSlotRecipe<RatingGroupControlProps>(\n RatingGroup.Control,\n 'control',\n)\n\n// Context\n\nexport type RatingGroupContextProps = ArkRatingGroupContextProps\nexport const RatingContext = RatingGroup.Context\n\n// Item\n\nexport type RatingGroupItemProps = CerberusPrimitiveProps<\n ArkRatingGroupItemProps & RatingGroupVariantProps\n>\nexport const RatingItem = withSlotRecipe<RatingGroupItemProps>(\n RatingGroup.Item,\n 'item',\n)\n\n// Item Context\nexport type RatingGroupItemContextProps = ArkRatingGroupItemContextProps\nexport const RatingItemContext = RatingGroup.ItemContext\n\n// Hidden Input\n\nexport type RatingGroupHiddenInputProps = ArkRatingGroupHiddenInputProps\nexport const RatingHiddenInput = RatingGroup.HiddenInput\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../src/components/rating/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts"],"sourcesContent":["import {\n RatingGroup,\n type RatingGroupContextProps as ArkRatingGroupContextProps,\n type RatingGroupControlProps as ArkRatingGroupControlProps,\n type RatingGroupHiddenInputProps as ArkRatingGroupHiddenInputProps,\n type RatingGroupItemContextProps as ArkRatingGroupItemContextProps,\n type RatingGroupItemProps as ArkRatingGroupItemProps,\n type RatingGroupLabelProps as ArkRatingGroupLabelProps,\n type RatingGroupRootProps as ArkRatingGroupRootProps,\n} from '@ark-ui/react/rating-group'\nimport {\n ratingGroup,\n type RatingGroupVariantProps,\n} from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Rating component.\n * @module 'rating/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(ratingGroup)\n\n// Root\n\nexport type RatingRootProps = CerberusPrimitiveProps<\n ArkRatingGroupRootProps & RatingGroupVariantProps\n>\nexport const RatingRoot = withSlotRecipe<RatingRootProps>(\n RatingGroup.Root,\n 'root',\n)\n\n// Label\n\nexport type RatingLabelProps = CerberusPrimitiveProps<ArkRatingGroupLabelProps>\nexport const RatingLabel = withSlotRecipe<RatingLabelProps>(\n RatingGroup.Label,\n 'label',\n)\n\n// Control\n\nexport type RatingGroupControlProps =\n CerberusPrimitiveProps<ArkRatingGroupControlProps>\nexport const RatingControl = withSlotRecipe<RatingGroupControlProps>(\n RatingGroup.Control,\n 'control',\n)\n\n// Context\n\nexport type RatingGroupContextProps = ArkRatingGroupContextProps\nexport const RatingContext = RatingGroup.Context\n\n// Item\n\nexport type RatingGroupItemProps = CerberusPrimitiveProps<\n ArkRatingGroupItemProps & RatingGroupVariantProps\n>\nexport const RatingItem = withSlotRecipe<RatingGroupItemProps>(\n RatingGroup.Item,\n 'item',\n)\n\n// Item Context\nexport type RatingGroupItemContextProps = ArkRatingGroupItemContextProps\nexport const RatingItemContext = RatingGroup.ItemContext\n\n// Hidden Input\n\nexport type RatingGroupHiddenInputProps = ArkRatingGroupHiddenInputProps\nexport const RatingHiddenInput = RatingGroup.HiddenInput\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n"],"mappings":"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","names":[]}
@@ -103,8 +103,12 @@ var CerberusPrimitive = class {
103
103
  const recipe = this.recipe;
104
104
  this.validateComponent(Component);
105
105
  const CerbComponent = (internalProps) => {
106
- const { css: customCss, className, ...nativeProps } = internalProps;
107
- const [variantOptions] = recipe.splitVariantProps(nativeProps);
106
+ const {
107
+ css: customCss,
108
+ className,
109
+ ...restOfInternalProps
110
+ } = internalProps;
111
+ const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
108
112
  const recipeStyles = recipe(variantOptions);
109
113
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
110
114
  Component,
@@ -135,8 +139,12 @@ var CerberusPrimitive = class {
135
139
  const recipe = this.recipe;
136
140
  this.validateComponent(Component);
137
141
  const CerbComponent = (internalProps) => {
138
- const { css: customCss, className, ...nativeProps } = internalProps;
139
- const [variantOptions] = recipe.splitVariantProps(nativeProps);
142
+ const {
143
+ css: customCss,
144
+ className,
145
+ ...restOfInternalProps
146
+ } = internalProps;
147
+ const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
140
148
  const styles = recipe(variantOptions);
141
149
  const slotStyles = styles[slot];
142
150
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/rating/rating.tsx","../../../../src/utils/index.ts","../../../../src/components/show/show.tsx","../../../../src/components/rating/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/rating/parts.tsx"],"sourcesContent":["import type {\n UseRatingGroupContext,\n UseRatingGroupItemContext,\n} from '@ark-ui/react/rating-group'\nimport type { ReactNode } from 'react'\nimport { splitProps } from '../../utils/index'\nimport { Show } from '../show/index'\nimport { RatingParts } from './parts'\nimport type { RatingRootProps } from './primitives'\n\n/**\n * This module contains the abstracted Rating component.\n * @module 'react/rating'\n */\n\nexport interface RatingProps extends Omit<RatingRootProps, 'children'> {\n /**\n * The label of the rating component.\n */\n label?: string\n /**\n * The children of the rating component.\n */\n children: (context: UseRatingGroupItemContext) => ReactNode\n}\n\n/**\n * The Rating component is an abstraction of the primitives which provides a\n * visual rating system for a user to select a value.\n * @description [Cerberus Docs](https://cerberus.digitalu.design/react/rating)\n * @description [Ark Docs](https://ark-ui.com/react/docs/components/rating-group#api-reference)\n * @example\n * ```tsx\n * <Rating count={5} defaultValue={3} allowHalf>\n * {({ half, highlighted }) => {\n * if (half) return <StarHalfIcon fill=\"current\" />\n * if (highlighted) return <StarIcon fill=\"current\" />\n * return <StarIcon />\n * }}\n * </Rating>\n * ```\n */\nexport function Rating(props: RatingProps) {\n const [{ label }, styleProps, rootProps] = splitProps(\n props,\n ['label'],\n ['orientation', 'palette', 'size'],\n )\n\n return (\n <RatingParts.Root {...styleProps} {...rootProps}>\n <Show when={label}>\n <RatingParts.Label>{label}</RatingParts.Label>\n </Show>\n\n <RatingParts.Control>\n <RatingParts.Context>\n {(context: UseRatingGroupContext) =>\n context.items.map((item) => (\n <RatingParts.Item\n key={item}\n index={item}\n palette={styleProps.palette}\n >\n <RatingParts.ItemContext>\n {rootProps.children}\n </RatingParts.ItemContext>\n </RatingParts.Item>\n ))\n }\n </RatingParts.Context>\n </RatingParts.Control>\n </RatingParts.Root>\n )\n}\n","/**\n * This module contains utility functions that are used across your app.\n * @module Utils\n */\n\n/**\n * Formats the count of notifications to be displayed in the notification badge.\n * @param count - The number of notifications.\n * @returns The formatted count of notifications.\n * @example\n * ```tsx\n * const count = formatNotifyCount(100)\n * console.log(count) // '99+'\n * ```\n */\nexport function formatNotifyCount(count: number): string {\n if (count > 99) return '99+'\n return count.toString()\n}\n\n/**\n * Splits the properties of an object into multiple groups based on lists of keys.\n * @param props - The object to split.\n * @param keyGroups - The lists of keys to include in each group.\n * @returns An array of objects: each containing the properties specified in the corresponding key group, and the last object containing the remaining keys.\n */\nexport function splitProps<T extends object>(\n props: T,\n ...keyGroups: (keyof T)[][]\n): { [K in keyof T]?: T[K] }[] {\n const result = keyGroups.map(() => ({}) as { [K in keyof T]?: T[K] })\n const rest = {} as { [K in keyof T]?: T[K] }\n\n for (const key in props) {\n let assigned = false\n for (let i = 0; i < keyGroups.length; i++) {\n if (keyGroups[i].includes(key as keyof T)) {\n result[i][key as keyof T] = props[key]\n assigned = true\n break\n }\n }\n if (!assigned) {\n rest[key as keyof T] = props[key]\n }\n }\n\n return [...result, rest]\n}\n\nexport * from './localStorage'\n","import { type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps<T> {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: T | boolean | null | undefined\n /**\n * The children to render when the condition is false.\n */\n fallback?: ReactNode\n}\n\n/**\n * Conditionally render a memoized version of the children or optional fallback\n * content.\n * @see https://cerberus.digitalu.design/react/show\n * @example\n * ```tsx\n * <Show when={isLoggedIn} fallback={<Navigate to=\"/login\" />}>\n * <Dashboard />\n * </Show>\n */\nexport function Show<T>(props: PropsWithChildren<ShowProps<T>>) {\n const { when, children, fallback } = props\n\n if (when) {\n return <>{children}</>\n }\n\n if (fallback) {\n return <>{fallback}</>\n }\n\n return null\n}\n","import {\n RatingGroup,\n type RatingGroupContextProps as ArkRatingGroupContextProps,\n type RatingGroupControlProps as ArkRatingGroupControlProps,\n type RatingGroupHiddenInputProps as ArkRatingGroupHiddenInputProps,\n type RatingGroupItemContextProps as ArkRatingGroupItemContextProps,\n type RatingGroupItemProps as ArkRatingGroupItemProps,\n type RatingGroupLabelProps as ArkRatingGroupLabelProps,\n type RatingGroupRootProps as ArkRatingGroupRootProps,\n} from '@ark-ui/react/rating-group'\nimport {\n ratingGroup,\n type RatingGroupVariantProps,\n} from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Rating component.\n * @module 'rating/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(ratingGroup)\n\n// Root\n\nexport type RatingRootProps = CerberusPrimitiveProps<\n ArkRatingGroupRootProps & RatingGroupVariantProps\n>\nexport const RatingRoot = withSlotRecipe<RatingRootProps>(\n RatingGroup.Root,\n 'root',\n)\n\n// Label\n\nexport type RatingLabelProps = CerberusPrimitiveProps<ArkRatingGroupLabelProps>\nexport const RatingLabel = withSlotRecipe<RatingLabelProps>(\n RatingGroup.Label,\n 'label',\n)\n\n// Control\n\nexport type RatingGroupControlProps =\n CerberusPrimitiveProps<ArkRatingGroupControlProps>\nexport const RatingControl = withSlotRecipe<RatingGroupControlProps>(\n RatingGroup.Control,\n 'control',\n)\n\n// Context\n\nexport type RatingGroupContextProps = ArkRatingGroupContextProps\nexport const RatingContext = RatingGroup.Context\n\n// Item\n\nexport type RatingGroupItemProps = CerberusPrimitiveProps<\n ArkRatingGroupItemProps & RatingGroupVariantProps\n>\nexport const RatingItem = withSlotRecipe<RatingGroupItemProps>(\n RatingGroup.Item,\n 'item',\n)\n\n// Item Context\nexport type RatingGroupItemContextProps = ArkRatingGroupItemContextProps\nexport const RatingItemContext = RatingGroup.ItemContext\n\n// Hidden Input\n\nexport type RatingGroupHiddenInputProps = ArkRatingGroupHiddenInputProps\nexport const RatingHiddenInput = RatingGroup.HiddenInput\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 RatingContext,\n RatingControl,\n RatingHiddenInput,\n RatingItem,\n RatingItemContext,\n RatingLabel,\n RatingRoot,\n} from './primitives'\n\n/**\n * This module contains the parts of the Rating component.\n * @module 'rating/parts'\n */\n\ninterface RatingPartsValue {\n /**\n * The container of the rating.\n */\n Root: ElementType\n /**\n * The label of the rating.\n */\n Label: ElementType\n /**\n * The visual representation of the rating.\n */\n Control: ElementType\n /**\n * The context of the rating.\n */\n Context: ElementType\n /**\n * The item to display for the rating.\n */\n Item: ElementType\n /**\n * The context provider for the rating items.\n */\n ItemContext: ElementType\n /**\n * The native input of the rating.\n */\n HiddenInput: ElementType\n}\n\n/**\n * An Object containing the parts of the Rating component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the RatingParts object and\n * the entire family of components vs. only what you use.\n */\nexport const RatingParts: RatingPartsValue = {\n Root: RatingRoot,\n Label: RatingLabel,\n Control: RatingControl,\n Context: RatingContext,\n Item: RatingItem,\n ItemContext: RatingItemContext,\n HiddenInput: RatingHiddenInput,\n}\n"],"mappings":"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","names":["import_jsx_runtime","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../../../../src/components/rating/rating.tsx","../../../../src/utils/index.ts","../../../../src/components/show/show.tsx","../../../../src/components/rating/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/rating/parts.tsx"],"sourcesContent":["import type {\n UseRatingGroupContext,\n UseRatingGroupItemContext,\n} from '@ark-ui/react/rating-group'\nimport type { ReactNode } from 'react'\nimport { splitProps } from '../../utils/index'\nimport { Show } from '../show/index'\nimport { RatingParts } from './parts'\nimport type { RatingRootProps } from './primitives'\n\n/**\n * This module contains the abstracted Rating component.\n * @module 'react/rating'\n */\n\nexport interface RatingProps extends Omit<RatingRootProps, 'children'> {\n /**\n * The label of the rating component.\n */\n label?: string\n /**\n * The children of the rating component.\n */\n children: (context: UseRatingGroupItemContext) => ReactNode\n}\n\n/**\n * The Rating component is an abstraction of the primitives which provides a\n * visual rating system for a user to select a value.\n * @description [Cerberus Docs](https://cerberus.digitalu.design/react/rating)\n * @description [Ark Docs](https://ark-ui.com/react/docs/components/rating-group#api-reference)\n * @example\n * ```tsx\n * <Rating count={5} defaultValue={3} allowHalf>\n * {({ half, highlighted }) => {\n * if (half) return <StarHalfIcon fill=\"current\" />\n * if (highlighted) return <StarIcon fill=\"current\" />\n * return <StarIcon />\n * }}\n * </Rating>\n * ```\n */\nexport function Rating(props: RatingProps) {\n const [{ label }, styleProps, rootProps] = splitProps(\n props,\n ['label'],\n ['orientation', 'palette', 'size'],\n )\n\n return (\n <RatingParts.Root {...styleProps} {...rootProps}>\n <Show when={label}>\n <RatingParts.Label>{label}</RatingParts.Label>\n </Show>\n\n <RatingParts.Control>\n <RatingParts.Context>\n {(context: UseRatingGroupContext) =>\n context.items.map((item) => (\n <RatingParts.Item\n key={item}\n index={item}\n palette={styleProps.palette}\n >\n <RatingParts.ItemContext>\n {rootProps.children}\n </RatingParts.ItemContext>\n </RatingParts.Item>\n ))\n }\n </RatingParts.Context>\n </RatingParts.Control>\n </RatingParts.Root>\n )\n}\n","/**\n * This module contains utility functions that are used across your app.\n * @module Utils\n */\n\n/**\n * Formats the count of notifications to be displayed in the notification badge.\n * @param count - The number of notifications.\n * @returns The formatted count of notifications.\n * @example\n * ```tsx\n * const count = formatNotifyCount(100)\n * console.log(count) // '99+'\n * ```\n */\nexport function formatNotifyCount(count: number): string {\n if (count > 99) return '99+'\n return count.toString()\n}\n\n/**\n * Splits the properties of an object into multiple groups based on lists of keys.\n * @param props - The object to split.\n * @param keyGroups - The lists of keys to include in each group.\n * @returns An array of objects: each containing the properties specified in the corresponding key group, and the last object containing the remaining keys.\n */\nexport function splitProps<T extends object>(\n props: T,\n ...keyGroups: (keyof T)[][]\n): { [K in keyof T]?: T[K] }[] {\n const result = keyGroups.map(() => ({}) as { [K in keyof T]?: T[K] })\n const rest = {} as { [K in keyof T]?: T[K] }\n\n for (const key in props) {\n let assigned = false\n for (let i = 0; i < keyGroups.length; i++) {\n if (keyGroups[i].includes(key as keyof T)) {\n result[i][key as keyof T] = props[key]\n assigned = true\n break\n }\n }\n if (!assigned) {\n rest[key as keyof T] = props[key]\n }\n }\n\n return [...result, rest]\n}\n\nexport * from './localStorage'\n","import { type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps<T> {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: T | boolean | null | undefined\n /**\n * The children to render when the condition is false.\n */\n fallback?: ReactNode\n}\n\n/**\n * Conditionally render a memoized version of the children or optional fallback\n * content.\n * @see https://cerberus.digitalu.design/react/show\n * @example\n * ```tsx\n * <Show when={isLoggedIn} fallback={<Navigate to=\"/login\" />}>\n * <Dashboard />\n * </Show>\n */\nexport function Show<T>(props: PropsWithChildren<ShowProps<T>>) {\n const { when, children, fallback } = props\n\n if (when) {\n return <>{children}</>\n }\n\n if (fallback) {\n return <>{fallback}</>\n }\n\n return null\n}\n","import {\n RatingGroup,\n type RatingGroupContextProps as ArkRatingGroupContextProps,\n type RatingGroupControlProps as ArkRatingGroupControlProps,\n type RatingGroupHiddenInputProps as ArkRatingGroupHiddenInputProps,\n type RatingGroupItemContextProps as ArkRatingGroupItemContextProps,\n type RatingGroupItemProps as ArkRatingGroupItemProps,\n type RatingGroupLabelProps as ArkRatingGroupLabelProps,\n type RatingGroupRootProps as ArkRatingGroupRootProps,\n} from '@ark-ui/react/rating-group'\nimport {\n ratingGroup,\n type RatingGroupVariantProps,\n} from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Rating component.\n * @module 'rating/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(ratingGroup)\n\n// Root\n\nexport type RatingRootProps = CerberusPrimitiveProps<\n ArkRatingGroupRootProps & RatingGroupVariantProps\n>\nexport const RatingRoot = withSlotRecipe<RatingRootProps>(\n RatingGroup.Root,\n 'root',\n)\n\n// Label\n\nexport type RatingLabelProps = CerberusPrimitiveProps<ArkRatingGroupLabelProps>\nexport const RatingLabel = withSlotRecipe<RatingLabelProps>(\n RatingGroup.Label,\n 'label',\n)\n\n// Control\n\nexport type RatingGroupControlProps =\n CerberusPrimitiveProps<ArkRatingGroupControlProps>\nexport const RatingControl = withSlotRecipe<RatingGroupControlProps>(\n RatingGroup.Control,\n 'control',\n)\n\n// Context\n\nexport type RatingGroupContextProps = ArkRatingGroupContextProps\nexport const RatingContext = RatingGroup.Context\n\n// Item\n\nexport type RatingGroupItemProps = CerberusPrimitiveProps<\n ArkRatingGroupItemProps & RatingGroupVariantProps\n>\nexport const RatingItem = withSlotRecipe<RatingGroupItemProps>(\n RatingGroup.Item,\n 'item',\n)\n\n// Item Context\nexport type RatingGroupItemContextProps = ArkRatingGroupItemContextProps\nexport const RatingItemContext = RatingGroup.ItemContext\n\n// Hidden Input\n\nexport type RatingGroupHiddenInputProps = ArkRatingGroupHiddenInputProps\nexport const RatingHiddenInput = RatingGroup.HiddenInput\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n","import type { ElementType } from 'react'\nimport {\n RatingContext,\n RatingControl,\n RatingHiddenInput,\n RatingItem,\n RatingItemContext,\n RatingLabel,\n RatingRoot,\n} from './primitives'\n\n/**\n * This module contains the parts of the Rating component.\n * @module 'rating/parts'\n */\n\ninterface RatingPartsValue {\n /**\n * The container of the rating.\n */\n Root: ElementType\n /**\n * The label of the rating.\n */\n Label: ElementType\n /**\n * The visual representation of the rating.\n */\n Control: ElementType\n /**\n * The context of the rating.\n */\n Context: ElementType\n /**\n * The item to display for the rating.\n */\n Item: ElementType\n /**\n * The context provider for the rating items.\n */\n ItemContext: ElementType\n /**\n * The native input of the rating.\n */\n HiddenInput: ElementType\n}\n\n/**\n * An Object containing the parts of the Rating component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the RatingParts object and\n * the entire family of components vs. only what you use.\n */\nexport const RatingParts: RatingPartsValue = {\n Root: RatingRoot,\n Label: RatingLabel,\n Control: RatingControl,\n Context: RatingContext,\n Item: RatingItem,\n ItemContext: RatingItemContext,\n HiddenInput: RatingHiddenInput,\n}\n"],"mappings":"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","names":["import_jsx_runtime","import_jsx_runtime"]}
@@ -90,8 +90,12 @@ var CerberusPrimitive = class {
90
90
  const recipe = this.recipe;
91
91
  this.validateComponent(Component);
92
92
  const CerbComponent = (internalProps) => {
93
- const { css: customCss, className, ...nativeProps } = internalProps;
94
- const [variantOptions] = recipe.splitVariantProps(nativeProps);
93
+ const {
94
+ css: customCss,
95
+ className,
96
+ ...restOfInternalProps
97
+ } = internalProps;
98
+ const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
95
99
  const recipeStyles = recipe(variantOptions);
96
100
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
97
101
  Component,
@@ -122,8 +126,12 @@ var CerberusPrimitive = class {
122
126
  const recipe = this.recipe;
123
127
  this.validateComponent(Component);
124
128
  const CerbComponent = (internalProps) => {
125
- const { css: customCss, className, ...nativeProps } = internalProps;
126
- const [variantOptions] = recipe.splitVariantProps(nativeProps);
129
+ const {
130
+ css: customCss,
131
+ className,
132
+ ...restOfInternalProps
133
+ } = internalProps;
134
+ const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
127
135
  const styles = recipe(variantOptions);
128
136
  const slotStyles = styles[slot];
129
137
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/select/index.ts","../../../../src/components/select/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/select/parts.ts","../../../../src/components/select/select.tsx","../../../../src/context/cerberus.tsx","../../../../src/components/portal/portal.tsx","../../../../src/components/show/show.tsx","../../../../src/components/select/option.tsx","../../../../src/components/select/option-group.tsx"],"sourcesContent":["export * from './parts'\nexport * from './primitives'\nexport * from './select'\nexport * from './option'\nexport * from './option-group'\n","import {\n createListCollection,\n Select,\n type ListCollection,\n type SelectClearTriggerProps as ArkSelectClearTrigger,\n type SelectContentProps as ArkSelectContentProps,\n type SelectControlProps as ArkSelectControlProps,\n type SelectHiddenSelectProps as ArkSelectHiddenSelectProps,\n type SelectIndicatorProps as ArkSelectIndicatorProps,\n type SelectItemGroupLabelProps as ArkSelectItemGroupLabelProps,\n type SelectItemGroupProps as ArkSelectItemGroupProps,\n type SelectItemIndicatorProps as ArkSelectItemIndicatorProps,\n type SelectItemProps as ArkSelectItemProps,\n type SelectItemTextProps as ArkSelectItemTextProps,\n type SelectLabelProps as ArkSelectLabelProps,\n type SelectPositionerProps as ArkSelectPositionerProps,\n type SelectRootProps as ArkSelectRootProps,\n type SelectTriggerProps as ArkSelectTriggerProps,\n type SelectValueChangeDetails,\n type SelectValueTextProps as ArkSelectValueTextProps,\n} from '@ark-ui/react/select'\nimport { select, type SelectVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\nimport type { SelectCollectionItem } from './select'\n\n/**\n * This module contains the Select primitives\n * @module 'react/select'\n */\n\nconst { withSlotRecipe, withNoRecipe } = createCerberusPrimitive(select)\n\n// Root\n\nexport type SelectRootProps = CerberusPrimitiveProps<\n ArkSelectRootProps<SelectCollectionItem> & SelectVariantProps\n>\n// @ts-expect-error this is a workaround for the type mismatch WIP\nexport const SelectRoot = withSlotRecipe<SelectRootProps>(Select.Root, 'root')\n\n// Label\n\nexport type SelectLabelProps = CerberusPrimitiveProps<ArkSelectLabelProps>\nexport const SelectLabel = withSlotRecipe<SelectLabelProps>(\n Select.Label,\n 'label',\n)\n\n// Control\n\nexport type SelectControlProps = CerberusPrimitiveProps<ArkSelectControlProps>\nexport const SelectControl = withNoRecipe<SelectControlProps>(Select.Control)\n\n// Trigger\n\nexport type SelectTriggerProps = CerberusPrimitiveProps<ArkSelectTriggerProps>\nexport const SelectTrigger = withSlotRecipe<SelectTriggerProps>(\n Select.Trigger,\n 'trigger',\n)\n\n// Value Text\n\nexport type SelectValueTextProps =\n CerberusPrimitiveProps<ArkSelectValueTextProps>\nexport const SelectValueText = withNoRecipe<SelectValueTextProps>(\n Select.ValueText,\n)\n\n// Indicator\n\nexport type SelectIndicatorProps =\n CerberusPrimitiveProps<ArkSelectIndicatorProps>\nexport const SelectIndicator = withSlotRecipe<SelectIndicatorProps>(\n Select.Indicator,\n 'indicator',\n)\n\n// Clear Trigger\n\nexport type SelectClearTriggerProps =\n CerberusPrimitiveProps<ArkSelectClearTrigger>\nexport const SelectClearTrigger = withNoRecipe<SelectClearTriggerProps>(\n Select.ClearTrigger,\n)\n\n// Positioner\n\nexport type SelectPositionerProps =\n CerberusPrimitiveProps<ArkSelectPositionerProps>\nexport const SelectPositioner = withSlotRecipe<SelectPositionerProps>(\n Select.Positioner,\n 'positioner',\n)\n\n// Content\n\nexport type SelectContentProps = CerberusPrimitiveProps<\n ArkSelectContentProps & SelectVariantProps\n>\nexport const SelectContent = withSlotRecipe<SelectContentProps>(\n Select.Content,\n 'content',\n)\n\n// Item Group\n\nexport type SelectItemGroupProps =\n CerberusPrimitiveProps<ArkSelectItemGroupProps>\nexport const SelectItemGroup = withNoRecipe<SelectItemGroupProps>(\n Select.ItemGroup,\n)\n\n// Item Group Label\n\nexport type SelectItemGroupLabelProps =\n CerberusPrimitiveProps<ArkSelectItemGroupLabelProps>\nexport const SelectItemGroupLabel = withSlotRecipe<SelectItemGroupLabelProps>(\n Select.ItemGroupLabel,\n 'itemGroupLabel',\n)\n\n// Item\n\nexport type SelectItemProps = CerberusPrimitiveProps<ArkSelectItemProps>\nexport const SelectItem = withSlotRecipe<SelectItemProps>(Select.Item, 'item')\n\n// Item Text\n\nexport type SelectItemTextProps = CerberusPrimitiveProps<ArkSelectItemTextProps>\nexport const SelectItemText = withNoRecipe<SelectItemTextProps>(Select.ItemText)\n\n// Item Indicator\n\nexport type SelectItemIndicatorProps =\n CerberusPrimitiveProps<ArkSelectItemIndicatorProps>\nexport const SelectItemIndicator = withSlotRecipe<SelectItemIndicatorProps>(\n Select.ItemIndicator,\n 'itemIndicator',\n)\n\n// Hidden Select\n\nexport type SelectHiddenSelectProps =\n CerberusPrimitiveProps<ArkSelectHiddenSelectProps>\nexport const SelectHiddenSelect = withNoRecipe<SelectHiddenSelectProps>(\n Select.HiddenSelect,\n)\n\n// Collection\n\n/**\n * A helper function to create a SelectCollection object.\n * @param collection - An array of SelectCollectionItem objects that matches\n * the following shape:\n * ```ts\n * [{ label: 'Hades', value: 'hades', disabled?: true }]\n * ```\n */\nexport function createSelectCollection(\n collection: SelectCollectionItem[],\n): ListCollection<SelectCollectionItem> {\n return createListCollection({\n items: collection,\n })\n}\n\nexport type { SelectValueChangeDetails, ListCollection }\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 SelectClearTrigger,\n SelectContent,\n SelectControl,\n SelectHiddenSelect,\n SelectIndicator,\n SelectItem,\n SelectItemGroup,\n SelectItemGroupLabel,\n SelectItemIndicator,\n SelectItemText,\n SelectLabel,\n SelectPositioner,\n SelectRoot,\n SelectTrigger,\n SelectValueText,\n} from './primitives'\n\n/**\n * This module contains the parts of the Select parts.\n * @module 'select/parts'\n */\n\ninterface SelectPartsValue {\n /**\n * The context provider for the Select component.\n */\n Root: ElementType\n /**\n * The label that appears above the select input.\n */\n Label: ElementType\n /**\n * The control that wraps the select trigger.\n */\n Control: ElementType\n /**\n * The trigger that opens the dropdown.\n */\n Trigger: ElementType\n /**\n * The trigger to clear the select input.\n */\n ClearTrigger: ElementType\n /**\n * The text that appears in the trigger.\n */\n ValueText: ElementType\n /**\n * The indicator that appears in the trigger.\n */\n Indicator: ElementType\n /**\n * The positioner that wraps the content.\n */\n Positioner: ElementType\n /**\n * The content of the select component.\n */\n Content: ElementType\n /**\n * A group of items in the select component.\n */\n ItemGroup: ElementType\n /**\n * The label for a group of items in the select component.\n */\n ItemGroupLabel: ElementType\n /**\n * An individual item in the select component.\n */\n Item: ElementType\n /**\n * The text that labels a single radio of the field.\n */\n ItemText: ElementType\n /**\n * The indicator that appears when the item has been selected.\n */\n ItemIndicator: ElementType\n /**\n * The native select for use within a field.\n */\n HiddenSelect: ElementType\n}\n\n/**\n * An Object containing the parts of the Radio component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the SelectParts object and\n * the entire family of components vs. only what you use.\n */\nexport const SelectParts: SelectPartsValue = {\n Root: SelectRoot,\n Label: SelectLabel,\n Control: SelectControl,\n Trigger: SelectTrigger,\n ClearTrigger: SelectClearTrigger,\n ValueText: SelectValueText,\n Indicator: SelectIndicator,\n Positioner: SelectPositioner,\n Content: SelectContent,\n ItemGroup: SelectItemGroup,\n ItemGroupLabel: SelectItemGroupLabel,\n Item: SelectItem,\n ItemText: SelectItemText,\n ItemIndicator: SelectItemIndicator,\n HiddenSelect: SelectHiddenSelect,\n}\n","'use client'\n\nimport { HStack } from 'styled-system/jsx'\nimport { useCerberusContext } from '../../context/cerberus'\nimport { Portal } from '../portal/index'\nimport { Show } from '../show/index'\nimport { SelectParts } from './parts'\nimport type { RefObject } from 'react'\nimport type { SelectRootProps } from './primitives'\n\n/**\n * This module contains the Select components.\n * @module 'react/select'\n */\n\nexport interface SelectCollectionItem {\n /**\n * What is displayed in the dropdown list.\n */\n label: string\n /**\n * The value of the selected item used in the form.\n */\n value: string\n /**\n * If the item is disabled.\n */\n disabled?: boolean\n}\n\nexport interface SelectCollection {\n /**\n * The items to be displayed in the dropdown list.\n */\n items: SelectCollectionItem[]\n}\n\nexport interface SelectProps extends SelectRootProps {\n /**\n * The placeholder text when no option is selected.\n */\n placeholder?: string\n /**\n * The container element to render the Select dropdown in. This is used\n * to render the Select dropdown in a specific context, such as a modal.\n * @default document.body\n */\n container?: RefObject<HTMLElement | null>\n}\n\n/**\n * The Select component is a dropdown list that allows users to select an\n * option from a list.\n * @definition [Select docs](https://cerberus.digitalu.design/react/select)\n * @definition [ARK docs](https://ark-ui.com/react/docs/components/select)\n * @example\n * ```tsx\n * import { Select, Option, createListCollection } from '@cerberus-design/react'\n *\n * export function SelectBasicPreview() {\n * const collection = createListCollection({\n * items: [\n * { label: 'Hades', value: 'hades' },\n * { label: 'Persephone', value: 'persephone' },\n * { label: 'Zeus', value: 'zeus', disabled: true },\n * ]\n * })\n *\n * return (\n * <Select\n * collection={collection}\n * label=\"Select Relative\"\n * placeholder=\"Choose option\"\n * >\n * {collection.items.map((item) => (\n * <Option key={item.value} item={item} />\n * ))}\n * </Select>\n * )\n * }\n */\nexport function Select(props: SelectProps) {\n const { collection, container, placeholder, ...rootProps } = props\n\n const { icons } = useCerberusContext()\n const { selectArrow: SelectArrow, invalid: InvalidIcon } = icons\n\n return (\n <SelectParts.Root collection={collection} {...rootProps}>\n <SelectParts.Control>\n <SelectParts.Trigger>\n <SelectParts.ValueText placeholder={placeholder} />\n\n <HStack>\n <Show when={props.invalid}>\n <InvalidIcon data-part=\"invalid-icon\" />\n </Show>\n <SelectParts.Indicator>\n <SelectArrow />\n </SelectParts.Indicator>\n </HStack>\n </SelectParts.Trigger>\n </SelectParts.Control>\n\n <Portal container={container}>\n <SelectParts.Positioner>\n <SelectParts.Content size={rootProps.size}>\n {props.children}\n </SelectParts.Content>\n </SelectParts.Positioner>\n </Portal>\n\n <SelectParts.HiddenSelect />\n </SelectParts.Root>\n )\n}\n","'use client'\n\nimport { createContext, useContext, type PropsWithChildren } from 'react'\nimport type { SystemConfig } from '../config'\n\n/**\n * This module contains the Cerberus configuration context and helpers.\n * @module context/cerberus\n */\n\ntype CerberusContextValue = SystemConfig\n\nconst CerberusContext = createContext<CerberusContextValue | null>(null)\n\ninterface CerberusProviderProps {\n config: SystemConfig\n}\n\n/**\n * Cerberus configuration provider.\n * @param props.config The Cerberus configuration created with\n * `makeSystemConfig` helper.\n */\nexport function CerberusProvider(\n props: PropsWithChildren<CerberusProviderProps>,\n) {\n return (\n <CerberusContext.Provider value={props.config}>\n {props.children}\n </CerberusContext.Provider>\n )\n}\n\n/**\n * Returns the Cerberus configuration context.\n * @returns The Cerberus configuration context.\n */\nexport function useCerberusContext() {\n const context = useContext(CerberusContext)\n if (!context) {\n throw new Error('useCerberus must be used within a CerberusProvider')\n }\n return context\n}\n","import { Portal as ArkPortal, type PortalProps } from '@ark-ui/react'\n\n/**\n * This module is the Portal component.\n * @module\n */\n\nexport type { PortalProps }\n\n/**\n * The Portal component is used to render children into a DOM node that exists outside the DOM hierarchy of the parent component.\n * @see https://cerberus.digitalu.design/react/portal\n * @definition [React Portal Docs](https://react.dev/reference/react-dom/createPortal)\n * @example\n * ```tsx\n * 'use client'\n *\n * import { Portal } from '@cerberus/react'\n *\n * function SomeFeatureWithinSSRPage() {\n * return (\n * <Portal>\n * <div>Portal Content outside of the React VDom tree</div>\n * </Portal>\n * )\n * }\n */\nexport const Portal = ArkPortal\n","import { type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps<T> {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: T | boolean | null | undefined\n /**\n * The children to render when the condition is false.\n */\n fallback?: ReactNode\n}\n\n/**\n * Conditionally render a memoized version of the children or optional fallback\n * content.\n * @see https://cerberus.digitalu.design/react/show\n * @example\n * ```tsx\n * <Show when={isLoggedIn} fallback={<Navigate to=\"/login\" />}>\n * <Dashboard />\n * </Show>\n */\nexport function Show<T>(props: PropsWithChildren<ShowProps<T>>) {\n const { when, children, fallback } = props\n\n if (when) {\n return <>{children}</>\n }\n\n if (fallback) {\n return <>{fallback}</>\n }\n\n return null\n}\n","'use client'\n\nimport { useCerberusContext } from '../../context/cerberus'\nimport { SelectParts } from './parts'\nimport type { SelectItemProps } from './primitives'\nimport type { SelectCollectionItem } from './select'\n\n/**\n * This module contains the Option component for the Select dropdown.\n * @module 'react/select/option'\n */\n\nexport interface OptionProps extends SelectItemProps {\n /**\n * The CollectionListItem to be displayed in the dropdown list.\n */\n item: SelectCollectionItem\n}\n\n/**\n * The Option component is used to render an individual item in the Select\n * dropdown. It is an abstraction of the Select Item, ItemText, and\n * ItemIndicator primitives that also displays a Checked icon when the item is\n * selected.\n *\n * @definition [Select docs](https://cerberus.digitalu.design/react/select/dev)\n * @definition [ARK docs](https://ark-ui.com/react/docs/components/select)\n */\nexport function Option(props: OptionProps) {\n const { item, ...itemProps } = props\n const { icons } = useCerberusContext()\n const { selectChecked: CheckedIcon } = icons\n\n return (\n <SelectParts.Item {...itemProps} item={item}>\n <SelectParts.ItemText>{item?.label}</SelectParts.ItemText>\n <SelectParts.ItemIndicator>\n <CheckedIcon />\n </SelectParts.ItemIndicator>\n </SelectParts.Item>\n )\n}\n","import { SelectItemGroup, SelectItemGroupLabel } from './primitives'\n\n/**\n * This module contains the named abstractions OptionGroup and OptionGroupLabel\n * components for API consistency with the Select component.\n * @module 'react/select/option-group'\n */\n\n/**\n * The OptionGroup component is a group of options in the dropdown list.\n * @definition [Select docs](https://cerberus.digitalu.design/react/select)\n * @definition [ARK docs](https://ark-ui.com/react/docs/components/select)\n * @example\n * ```tsx\n * <OptionGroup>\n * <OptionGroupLabel>Greek gods</OptionGroupLabel>\n * ...\n * </OptionGroup>\n * ```\n */\nexport const OptionGroup = SelectItemGroup\n\n/**\n * The OptionGroupLabel component is the label of the OptionGroup.\n * @definition [Select docs](https://cerberus.digitalu.design/react/select)\n * @definition [ARK docs](https://ark-ui.com/react/docs/components/select)\n * @example\n * ```tsx\n * <OptionGroupLabel>Greek gods</OptionGroupLabel>\n * ```\n */\nexport const OptionGroupLabel = SelectItemGroupLabel\n"],"mappings":"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","names":["Select","import_jsx_runtime","import_react","ArkPortal","import_jsx_runtime","import_jsx_runtime","Select","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../../../../src/components/select/index.ts","../../../../src/components/select/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/select/parts.ts","../../../../src/components/select/select.tsx","../../../../src/context/cerberus.tsx","../../../../src/components/portal/portal.tsx","../../../../src/components/show/show.tsx","../../../../src/components/select/option.tsx","../../../../src/components/select/option-group.tsx"],"sourcesContent":["export * from './parts'\nexport * from './primitives'\nexport * from './select'\nexport * from './option'\nexport * from './option-group'\n","import {\n createListCollection,\n Select,\n type ListCollection,\n type SelectClearTriggerProps as ArkSelectClearTrigger,\n type SelectContentProps as ArkSelectContentProps,\n type SelectControlProps as ArkSelectControlProps,\n type SelectHiddenSelectProps as ArkSelectHiddenSelectProps,\n type SelectIndicatorProps as ArkSelectIndicatorProps,\n type SelectItemGroupLabelProps as ArkSelectItemGroupLabelProps,\n type SelectItemGroupProps as ArkSelectItemGroupProps,\n type SelectItemIndicatorProps as ArkSelectItemIndicatorProps,\n type SelectItemProps as ArkSelectItemProps,\n type SelectItemTextProps as ArkSelectItemTextProps,\n type SelectLabelProps as ArkSelectLabelProps,\n type SelectPositionerProps as ArkSelectPositionerProps,\n type SelectRootProps as ArkSelectRootProps,\n type SelectTriggerProps as ArkSelectTriggerProps,\n type SelectValueChangeDetails,\n type SelectValueTextProps as ArkSelectValueTextProps,\n} from '@ark-ui/react/select'\nimport { select, type SelectVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\nimport type { SelectCollectionItem } from './select'\n\n/**\n * This module contains the Select primitives\n * @module 'react/select'\n */\n\nconst { withSlotRecipe, withNoRecipe } = createCerberusPrimitive(select)\n\n// Root\n\nexport type SelectRootProps = CerberusPrimitiveProps<\n ArkSelectRootProps<SelectCollectionItem> & SelectVariantProps\n>\n// @ts-expect-error this is a workaround for the type mismatch WIP\nexport const SelectRoot = withSlotRecipe<SelectRootProps>(Select.Root, 'root')\n\n// Label\n\nexport type SelectLabelProps = CerberusPrimitiveProps<ArkSelectLabelProps>\nexport const SelectLabel = withSlotRecipe<SelectLabelProps>(\n Select.Label,\n 'label',\n)\n\n// Control\n\nexport type SelectControlProps = CerberusPrimitiveProps<ArkSelectControlProps>\nexport const SelectControl = withNoRecipe<SelectControlProps>(Select.Control)\n\n// Trigger\n\nexport type SelectTriggerProps = CerberusPrimitiveProps<ArkSelectTriggerProps>\nexport const SelectTrigger = withSlotRecipe<SelectTriggerProps>(\n Select.Trigger,\n 'trigger',\n)\n\n// Value Text\n\nexport type SelectValueTextProps =\n CerberusPrimitiveProps<ArkSelectValueTextProps>\nexport const SelectValueText = withNoRecipe<SelectValueTextProps>(\n Select.ValueText,\n)\n\n// Indicator\n\nexport type SelectIndicatorProps =\n CerberusPrimitiveProps<ArkSelectIndicatorProps>\nexport const SelectIndicator = withSlotRecipe<SelectIndicatorProps>(\n Select.Indicator,\n 'indicator',\n)\n\n// Clear Trigger\n\nexport type SelectClearTriggerProps =\n CerberusPrimitiveProps<ArkSelectClearTrigger>\nexport const SelectClearTrigger = withNoRecipe<SelectClearTriggerProps>(\n Select.ClearTrigger,\n)\n\n// Positioner\n\nexport type SelectPositionerProps =\n CerberusPrimitiveProps<ArkSelectPositionerProps>\nexport const SelectPositioner = withSlotRecipe<SelectPositionerProps>(\n Select.Positioner,\n 'positioner',\n)\n\n// Content\n\nexport type SelectContentProps = CerberusPrimitiveProps<\n ArkSelectContentProps & SelectVariantProps\n>\nexport const SelectContent = withSlotRecipe<SelectContentProps>(\n Select.Content,\n 'content',\n)\n\n// Item Group\n\nexport type SelectItemGroupProps =\n CerberusPrimitiveProps<ArkSelectItemGroupProps>\nexport const SelectItemGroup = withNoRecipe<SelectItemGroupProps>(\n Select.ItemGroup,\n)\n\n// Item Group Label\n\nexport type SelectItemGroupLabelProps =\n CerberusPrimitiveProps<ArkSelectItemGroupLabelProps>\nexport const SelectItemGroupLabel = withSlotRecipe<SelectItemGroupLabelProps>(\n Select.ItemGroupLabel,\n 'itemGroupLabel',\n)\n\n// Item\n\nexport type SelectItemProps = CerberusPrimitiveProps<ArkSelectItemProps>\nexport const SelectItem = withSlotRecipe<SelectItemProps>(Select.Item, 'item')\n\n// Item Text\n\nexport type SelectItemTextProps = CerberusPrimitiveProps<ArkSelectItemTextProps>\nexport const SelectItemText = withNoRecipe<SelectItemTextProps>(Select.ItemText)\n\n// Item Indicator\n\nexport type SelectItemIndicatorProps =\n CerberusPrimitiveProps<ArkSelectItemIndicatorProps>\nexport const SelectItemIndicator = withSlotRecipe<SelectItemIndicatorProps>(\n Select.ItemIndicator,\n 'itemIndicator',\n)\n\n// Hidden Select\n\nexport type SelectHiddenSelectProps =\n CerberusPrimitiveProps<ArkSelectHiddenSelectProps>\nexport const SelectHiddenSelect = withNoRecipe<SelectHiddenSelectProps>(\n Select.HiddenSelect,\n)\n\n// Collection\n\n/**\n * A helper function to create a SelectCollection object.\n * @param collection - An array of SelectCollectionItem objects that matches\n * the following shape:\n * ```ts\n * [{ label: 'Hades', value: 'hades', disabled?: true }]\n * ```\n */\nexport function createSelectCollection(\n collection: SelectCollectionItem[],\n): ListCollection<SelectCollectionItem> {\n return createListCollection({\n items: collection,\n })\n}\n\nexport type { SelectValueChangeDetails, ListCollection }\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n","import type { ElementType } from 'react'\nimport {\n SelectClearTrigger,\n SelectContent,\n SelectControl,\n SelectHiddenSelect,\n SelectIndicator,\n SelectItem,\n SelectItemGroup,\n SelectItemGroupLabel,\n SelectItemIndicator,\n SelectItemText,\n SelectLabel,\n SelectPositioner,\n SelectRoot,\n SelectTrigger,\n SelectValueText,\n} from './primitives'\n\n/**\n * This module contains the parts of the Select parts.\n * @module 'select/parts'\n */\n\ninterface SelectPartsValue {\n /**\n * The context provider for the Select component.\n */\n Root: ElementType\n /**\n * The label that appears above the select input.\n */\n Label: ElementType\n /**\n * The control that wraps the select trigger.\n */\n Control: ElementType\n /**\n * The trigger that opens the dropdown.\n */\n Trigger: ElementType\n /**\n * The trigger to clear the select input.\n */\n ClearTrigger: ElementType\n /**\n * The text that appears in the trigger.\n */\n ValueText: ElementType\n /**\n * The indicator that appears in the trigger.\n */\n Indicator: ElementType\n /**\n * The positioner that wraps the content.\n */\n Positioner: ElementType\n /**\n * The content of the select component.\n */\n Content: ElementType\n /**\n * A group of items in the select component.\n */\n ItemGroup: ElementType\n /**\n * The label for a group of items in the select component.\n */\n ItemGroupLabel: ElementType\n /**\n * An individual item in the select component.\n */\n Item: ElementType\n /**\n * The text that labels a single radio of the field.\n */\n ItemText: ElementType\n /**\n * The indicator that appears when the item has been selected.\n */\n ItemIndicator: ElementType\n /**\n * The native select for use within a field.\n */\n HiddenSelect: ElementType\n}\n\n/**\n * An Object containing the parts of the Radio component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the SelectParts object and\n * the entire family of components vs. only what you use.\n */\nexport const SelectParts: SelectPartsValue = {\n Root: SelectRoot,\n Label: SelectLabel,\n Control: SelectControl,\n Trigger: SelectTrigger,\n ClearTrigger: SelectClearTrigger,\n ValueText: SelectValueText,\n Indicator: SelectIndicator,\n Positioner: SelectPositioner,\n Content: SelectContent,\n ItemGroup: SelectItemGroup,\n ItemGroupLabel: SelectItemGroupLabel,\n Item: SelectItem,\n ItemText: SelectItemText,\n ItemIndicator: SelectItemIndicator,\n HiddenSelect: SelectHiddenSelect,\n}\n","'use client'\n\nimport { HStack } from 'styled-system/jsx'\nimport { useCerberusContext } from '../../context/cerberus'\nimport { Portal } from '../portal/index'\nimport { Show } from '../show/index'\nimport { SelectParts } from './parts'\nimport type { RefObject } from 'react'\nimport type { SelectRootProps } from './primitives'\n\n/**\n * This module contains the Select components.\n * @module 'react/select'\n */\n\nexport interface SelectCollectionItem {\n /**\n * What is displayed in the dropdown list.\n */\n label: string\n /**\n * The value of the selected item used in the form.\n */\n value: string\n /**\n * If the item is disabled.\n */\n disabled?: boolean\n}\n\nexport interface SelectCollection {\n /**\n * The items to be displayed in the dropdown list.\n */\n items: SelectCollectionItem[]\n}\n\nexport interface SelectProps extends SelectRootProps {\n /**\n * The placeholder text when no option is selected.\n */\n placeholder?: string\n /**\n * The container element to render the Select dropdown in. This is used\n * to render the Select dropdown in a specific context, such as a modal.\n * @default document.body\n */\n container?: RefObject<HTMLElement | null>\n}\n\n/**\n * The Select component is a dropdown list that allows users to select an\n * option from a list.\n * @definition [Select docs](https://cerberus.digitalu.design/react/select)\n * @definition [ARK docs](https://ark-ui.com/react/docs/components/select)\n * @example\n * ```tsx\n * import { Select, Option, createListCollection } from '@cerberus-design/react'\n *\n * export function SelectBasicPreview() {\n * const collection = createListCollection({\n * items: [\n * { label: 'Hades', value: 'hades' },\n * { label: 'Persephone', value: 'persephone' },\n * { label: 'Zeus', value: 'zeus', disabled: true },\n * ]\n * })\n *\n * return (\n * <Select\n * collection={collection}\n * label=\"Select Relative\"\n * placeholder=\"Choose option\"\n * >\n * {collection.items.map((item) => (\n * <Option key={item.value} item={item} />\n * ))}\n * </Select>\n * )\n * }\n */\nexport function Select(props: SelectProps) {\n const { collection, container, placeholder, ...rootProps } = props\n\n const { icons } = useCerberusContext()\n const { selectArrow: SelectArrow, invalid: InvalidIcon } = icons\n\n return (\n <SelectParts.Root collection={collection} {...rootProps}>\n <SelectParts.Control>\n <SelectParts.Trigger>\n <SelectParts.ValueText placeholder={placeholder} />\n\n <HStack>\n <Show when={props.invalid}>\n <InvalidIcon data-part=\"invalid-icon\" />\n </Show>\n <SelectParts.Indicator>\n <SelectArrow />\n </SelectParts.Indicator>\n </HStack>\n </SelectParts.Trigger>\n </SelectParts.Control>\n\n <Portal container={container}>\n <SelectParts.Positioner>\n <SelectParts.Content size={rootProps.size}>\n {props.children}\n </SelectParts.Content>\n </SelectParts.Positioner>\n </Portal>\n\n <SelectParts.HiddenSelect />\n </SelectParts.Root>\n )\n}\n","'use client'\n\nimport { createContext, useContext, type PropsWithChildren } from 'react'\nimport type { SystemConfig } from '../config'\n\n/**\n * This module contains the Cerberus configuration context and helpers.\n * @module context/cerberus\n */\n\ntype CerberusContextValue = SystemConfig\n\nconst CerberusContext = createContext<CerberusContextValue | null>(null)\n\ninterface CerberusProviderProps {\n config: SystemConfig\n}\n\n/**\n * Cerberus configuration provider.\n * @param props.config The Cerberus configuration created with\n * `makeSystemConfig` helper.\n */\nexport function CerberusProvider(\n props: PropsWithChildren<CerberusProviderProps>,\n) {\n return (\n <CerberusContext.Provider value={props.config}>\n {props.children}\n </CerberusContext.Provider>\n )\n}\n\n/**\n * Returns the Cerberus configuration context.\n * @returns The Cerberus configuration context.\n */\nexport function useCerberusContext() {\n const context = useContext(CerberusContext)\n if (!context) {\n throw new Error('useCerberus must be used within a CerberusProvider')\n }\n return context\n}\n","import { Portal as ArkPortal, type PortalProps } from '@ark-ui/react'\n\n/**\n * This module is the Portal component.\n * @module\n */\n\nexport type { PortalProps }\n\n/**\n * The Portal component is used to render children into a DOM node that exists outside the DOM hierarchy of the parent component.\n * @see https://cerberus.digitalu.design/react/portal\n * @definition [React Portal Docs](https://react.dev/reference/react-dom/createPortal)\n * @example\n * ```tsx\n * 'use client'\n *\n * import { Portal } from '@cerberus/react'\n *\n * function SomeFeatureWithinSSRPage() {\n * return (\n * <Portal>\n * <div>Portal Content outside of the React VDom tree</div>\n * </Portal>\n * )\n * }\n */\nexport const Portal = ArkPortal\n","import { type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps<T> {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: T | boolean | null | undefined\n /**\n * The children to render when the condition is false.\n */\n fallback?: ReactNode\n}\n\n/**\n * Conditionally render a memoized version of the children or optional fallback\n * content.\n * @see https://cerberus.digitalu.design/react/show\n * @example\n * ```tsx\n * <Show when={isLoggedIn} fallback={<Navigate to=\"/login\" />}>\n * <Dashboard />\n * </Show>\n */\nexport function Show<T>(props: PropsWithChildren<ShowProps<T>>) {\n const { when, children, fallback } = props\n\n if (when) {\n return <>{children}</>\n }\n\n if (fallback) {\n return <>{fallback}</>\n }\n\n return null\n}\n","'use client'\n\nimport { useCerberusContext } from '../../context/cerberus'\nimport { SelectParts } from './parts'\nimport type { SelectItemProps } from './primitives'\nimport type { SelectCollectionItem } from './select'\n\n/**\n * This module contains the Option component for the Select dropdown.\n * @module 'react/select/option'\n */\n\nexport interface OptionProps extends SelectItemProps {\n /**\n * The CollectionListItem to be displayed in the dropdown list.\n */\n item: SelectCollectionItem\n}\n\n/**\n * The Option component is used to render an individual item in the Select\n * dropdown. It is an abstraction of the Select Item, ItemText, and\n * ItemIndicator primitives that also displays a Checked icon when the item is\n * selected.\n *\n * @definition [Select docs](https://cerberus.digitalu.design/react/select/dev)\n * @definition [ARK docs](https://ark-ui.com/react/docs/components/select)\n */\nexport function Option(props: OptionProps) {\n const { item, ...itemProps } = props\n const { icons } = useCerberusContext()\n const { selectChecked: CheckedIcon } = icons\n\n return (\n <SelectParts.Item {...itemProps} item={item}>\n <SelectParts.ItemText>{item?.label}</SelectParts.ItemText>\n <SelectParts.ItemIndicator>\n <CheckedIcon />\n </SelectParts.ItemIndicator>\n </SelectParts.Item>\n )\n}\n","import { SelectItemGroup, SelectItemGroupLabel } from './primitives'\n\n/**\n * This module contains the named abstractions OptionGroup and OptionGroupLabel\n * components for API consistency with the Select component.\n * @module 'react/select/option-group'\n */\n\n/**\n * The OptionGroup component is a group of options in the dropdown list.\n * @definition [Select docs](https://cerberus.digitalu.design/react/select)\n * @definition [ARK docs](https://ark-ui.com/react/docs/components/select)\n * @example\n * ```tsx\n * <OptionGroup>\n * <OptionGroupLabel>Greek gods</OptionGroupLabel>\n * ...\n * </OptionGroup>\n * ```\n */\nexport const OptionGroup = SelectItemGroup\n\n/**\n * The OptionGroupLabel component is the label of the OptionGroup.\n * @definition [Select docs](https://cerberus.digitalu.design/react/select)\n * @definition [ARK docs](https://ark-ui.com/react/docs/components/select)\n * @example\n * ```tsx\n * <OptionGroupLabel>Greek gods</OptionGroupLabel>\n * ```\n */\nexport const OptionGroupLabel = SelectItemGroupLabel\n"],"mappings":"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","names":["Select","import_jsx_runtime","import_react","ArkPortal","import_jsx_runtime","import_jsx_runtime","Select","import_jsx_runtime"]}