@cerberus-design/react 0.19.1 → 0.19.3

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