@cerberus-design/react 0.19.1 → 0.19.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/legacy/_tsup-dts-rollup.d.cts +11 -1
- package/build/legacy/components/accordion/index.cjs +12 -4
- package/build/legacy/components/accordion/index.cjs.map +1 -1
- package/build/legacy/components/accordion/item-group.cjs +12 -4
- package/build/legacy/components/accordion/item-group.cjs.map +1 -1
- package/build/legacy/components/accordion/item-indicator.cjs +12 -4
- package/build/legacy/components/accordion/item-indicator.cjs.map +1 -1
- package/build/legacy/components/accordion/parts.cjs +12 -4
- package/build/legacy/components/accordion/parts.cjs.map +1 -1
- package/build/legacy/components/accordion/primitives.cjs +12 -4
- package/build/legacy/components/accordion/primitives.cjs.map +1 -1
- package/build/legacy/components/admonition/admonition.cjs +12 -4
- package/build/legacy/components/admonition/admonition.cjs.map +1 -1
- package/build/legacy/components/admonition/index.cjs +12 -4
- package/build/legacy/components/admonition/index.cjs.map +1 -1
- package/build/legacy/components/admonition/match-avatar.cjs +12 -4
- package/build/legacy/components/admonition/match-avatar.cjs.map +1 -1
- package/build/legacy/components/admonition/parts.cjs +12 -4
- package/build/legacy/components/admonition/parts.cjs.map +1 -1
- package/build/legacy/components/admonition/primitives.cjs +12 -4
- package/build/legacy/components/admonition/primitives.cjs.map +1 -1
- package/build/legacy/components/avatar/avatar.cjs +12 -4
- package/build/legacy/components/avatar/avatar.cjs.map +1 -1
- package/build/legacy/components/avatar/index.cjs +12 -4
- package/build/legacy/components/avatar/index.cjs.map +1 -1
- package/build/legacy/components/avatar/parts.cjs +12 -4
- package/build/legacy/components/avatar/parts.cjs.map +1 -1
- package/build/legacy/components/avatar/primitives.cjs +12 -4
- package/build/legacy/components/avatar/primitives.cjs.map +1 -1
- package/build/legacy/components/button/button.cjs +12 -4
- package/build/legacy/components/button/button.cjs.map +1 -1
- package/build/legacy/components/button/index.cjs +12 -4
- package/build/legacy/components/button/index.cjs.map +1 -1
- package/build/legacy/components/button/parts.cjs +12 -4
- package/build/legacy/components/button/parts.cjs.map +1 -1
- package/build/legacy/components/button/primitives.cjs +12 -4
- package/build/legacy/components/button/primitives.cjs.map +1 -1
- package/build/legacy/components/checkbox/checkbox-icon.cjs +12 -4
- package/build/legacy/components/checkbox/checkbox-icon.cjs.map +1 -1
- package/build/legacy/components/checkbox/checkbox.cjs +12 -4
- package/build/legacy/components/checkbox/checkbox.cjs.map +1 -1
- package/build/legacy/components/checkbox/index.cjs +12 -4
- package/build/legacy/components/checkbox/index.cjs.map +1 -1
- package/build/legacy/components/checkbox/parts.cjs +12 -4
- package/build/legacy/components/checkbox/parts.cjs.map +1 -1
- package/build/legacy/components/checkbox/primitives.cjs +12 -4
- package/build/legacy/components/checkbox/primitives.cjs.map +1 -1
- package/build/legacy/components/circular-progress/circular-progress.cjs +12 -4
- package/build/legacy/components/circular-progress/circular-progress.cjs.map +1 -1
- package/build/legacy/components/circular-progress/index.cjs +12 -4
- package/build/legacy/components/circular-progress/index.cjs.map +1 -1
- package/build/legacy/components/circular-progress/primitives.cjs +12 -4
- package/build/legacy/components/circular-progress/primitives.cjs.map +1 -1
- package/build/legacy/components/combobox/combobox.cjs +12 -4
- package/build/legacy/components/combobox/combobox.cjs.map +1 -1
- package/build/legacy/components/combobox/index.cjs +12 -4
- package/build/legacy/components/combobox/index.cjs.map +1 -1
- package/build/legacy/components/combobox/item-group.cjs +12 -4
- package/build/legacy/components/combobox/item-group.cjs.map +1 -1
- package/build/legacy/components/combobox/item.cjs +12 -4
- package/build/legacy/components/combobox/item.cjs.map +1 -1
- package/build/legacy/components/combobox/parts.cjs +12 -4
- package/build/legacy/components/combobox/parts.cjs.map +1 -1
- package/build/legacy/components/combobox/primitives.cjs +12 -4
- package/build/legacy/components/combobox/primitives.cjs.map +1 -1
- package/build/legacy/components/combobox/use-stateful-collection.cjs +12 -4
- package/build/legacy/components/combobox/use-stateful-collection.cjs.map +1 -1
- package/build/legacy/components/cta-dialog/index.cjs +12 -4
- package/build/legacy/components/cta-dialog/index.cjs.map +1 -1
- package/build/legacy/components/cta-dialog/provider.cjs +12 -4
- package/build/legacy/components/cta-dialog/provider.cjs.map +1 -1
- package/build/legacy/components/cta-dialog/trigger-item.cjs +12 -4
- package/build/legacy/components/cta-dialog/trigger-item.cjs.map +1 -1
- package/build/legacy/components/date-picker/calendar.cjs +12 -4
- package/build/legacy/components/date-picker/calendar.cjs.map +1 -1
- package/build/legacy/components/date-picker/content.cjs +12 -4
- package/build/legacy/components/date-picker/content.cjs.map +1 -1
- package/build/legacy/components/date-picker/date-picker.cjs +12 -4
- package/build/legacy/components/date-picker/date-picker.cjs.map +1 -1
- package/build/legacy/components/date-picker/day-view.cjs +12 -4
- package/build/legacy/components/date-picker/day-view.cjs.map +1 -1
- package/build/legacy/components/date-picker/index.cjs +12 -4
- package/build/legacy/components/date-picker/index.cjs.map +1 -1
- package/build/legacy/components/date-picker/input.cjs +12 -4
- package/build/legacy/components/date-picker/input.cjs.map +1 -1
- package/build/legacy/components/date-picker/month-view.cjs +12 -4
- package/build/legacy/components/date-picker/month-view.cjs.map +1 -1
- package/build/legacy/components/date-picker/parts.cjs +12 -4
- package/build/legacy/components/date-picker/parts.cjs.map +1 -1
- package/build/legacy/components/date-picker/primitives.cjs +12 -4
- package/build/legacy/components/date-picker/primitives.cjs.map +1 -1
- package/build/legacy/components/date-picker/range-input.cjs +12 -4
- package/build/legacy/components/date-picker/range-input.cjs.map +1 -1
- package/build/legacy/components/date-picker/trigger.cjs +12 -4
- package/build/legacy/components/date-picker/trigger.cjs.map +1 -1
- package/build/legacy/components/date-picker/view-control-group.cjs +12 -4
- package/build/legacy/components/date-picker/view-control-group.cjs.map +1 -1
- package/build/legacy/components/date-picker/year-view.cjs +12 -4
- package/build/legacy/components/date-picker/year-view.cjs.map +1 -1
- package/build/legacy/components/deprecated/Label.cjs +12 -4
- package/build/legacy/components/deprecated/Label.cjs.map +1 -1
- package/build/legacy/components/dialog/close-icon-trigger.cjs +12 -4
- package/build/legacy/components/dialog/close-icon-trigger.cjs.map +1 -1
- package/build/legacy/components/dialog/dialog.cjs +12 -4
- package/build/legacy/components/dialog/dialog.cjs.map +1 -1
- package/build/legacy/components/dialog/index.cjs +12 -4
- package/build/legacy/components/dialog/index.cjs.map +1 -1
- package/build/legacy/components/dialog/parts.cjs +12 -4
- package/build/legacy/components/dialog/parts.cjs.map +1 -1
- package/build/legacy/components/dialog/primitives.cjs +12 -4
- package/build/legacy/components/dialog/primitives.cjs.map +1 -1
- package/build/legacy/components/field/field.cjs +12 -4
- package/build/legacy/components/field/field.cjs.map +1 -1
- package/build/legacy/components/field/helper-text.cjs +12 -4
- package/build/legacy/components/field/helper-text.cjs.map +1 -1
- package/build/legacy/components/field/index.cjs +14 -5
- package/build/legacy/components/field/index.cjs.map +1 -1
- package/build/legacy/components/field/input.cjs +14 -5
- package/build/legacy/components/field/input.cjs.map +1 -1
- package/build/legacy/components/field/parts.cjs +14 -5
- package/build/legacy/components/field/parts.cjs.map +1 -1
- package/build/legacy/components/field/primitives.cjs +14 -5
- package/build/legacy/components/field/primitives.cjs.map +1 -1
- package/build/legacy/components/field/status-indicator.cjs +2 -1
- package/build/legacy/components/field/status-indicator.cjs.map +1 -1
- package/build/legacy/components/fieldset/fieldset.cjs +12 -4
- package/build/legacy/components/fieldset/fieldset.cjs.map +1 -1
- package/build/legacy/components/fieldset/index.cjs +12 -4
- package/build/legacy/components/fieldset/index.cjs.map +1 -1
- package/build/legacy/components/fieldset/parts.cjs +12 -4
- package/build/legacy/components/fieldset/parts.cjs.map +1 -1
- package/build/legacy/components/fieldset/primitives.cjs +12 -4
- package/build/legacy/components/fieldset/primitives.cjs.map +1 -1
- package/build/legacy/components/file-upload/file-status.cjs +13 -5
- package/build/legacy/components/file-upload/file-status.cjs.map +1 -1
- package/build/legacy/components/file-upload/file-uploader.cjs +12 -4
- package/build/legacy/components/file-upload/file-uploader.cjs.map +1 -1
- package/build/legacy/components/file-upload/index.cjs +13 -5
- package/build/legacy/components/file-upload/index.cjs.map +1 -1
- package/build/legacy/components/icon-button/button.cjs +12 -4
- package/build/legacy/components/icon-button/button.cjs.map +1 -1
- package/build/legacy/components/icon-button/index.cjs +12 -4
- package/build/legacy/components/icon-button/index.cjs.map +1 -1
- package/build/legacy/components/icon-button/primitives.cjs +12 -4
- package/build/legacy/components/icon-button/primitives.cjs.map +1 -1
- package/build/legacy/components/menu/index.cjs +12 -4
- package/build/legacy/components/menu/index.cjs.map +1 -1
- package/build/legacy/components/menu/menu.cjs +12 -4
- package/build/legacy/components/menu/menu.cjs.map +1 -1
- package/build/legacy/components/menu/primitives.cjs +12 -4
- package/build/legacy/components/menu/primitives.cjs.map +1 -1
- package/build/legacy/components/notifications/center.cjs +12 -4
- package/build/legacy/components/notifications/center.cjs.map +1 -1
- package/build/legacy/components/notifications/close-trigger.cjs +12 -4
- package/build/legacy/components/notifications/close-trigger.cjs.map +1 -1
- package/build/legacy/components/notifications/index.cjs +12 -4
- package/build/legacy/components/notifications/index.cjs.map +1 -1
- package/build/legacy/components/notifications/parts.cjs +12 -4
- package/build/legacy/components/notifications/parts.cjs.map +1 -1
- package/build/legacy/components/notifications/primitives.cjs +12 -4
- package/build/legacy/components/notifications/primitives.cjs.map +1 -1
- package/build/legacy/components/progress/index.cjs +12 -4
- package/build/legacy/components/progress/index.cjs.map +1 -1
- package/build/legacy/components/progress/primitives.cjs +12 -4
- package/build/legacy/components/progress/primitives.cjs.map +1 -1
- package/build/legacy/components/progress/progress-bar.cjs +12 -4
- package/build/legacy/components/progress/progress-bar.cjs.map +1 -1
- package/build/legacy/components/radio/index.cjs +12 -4
- package/build/legacy/components/radio/index.cjs.map +1 -1
- package/build/legacy/components/radio/parts.cjs +12 -4
- package/build/legacy/components/radio/parts.cjs.map +1 -1
- package/build/legacy/components/radio/primitives.cjs +12 -4
- package/build/legacy/components/radio/primitives.cjs.map +1 -1
- package/build/legacy/components/radio/radio.cjs +12 -4
- package/build/legacy/components/radio/radio.cjs.map +1 -1
- package/build/legacy/components/rating/index.cjs +12 -4
- package/build/legacy/components/rating/index.cjs.map +1 -1
- package/build/legacy/components/rating/parts.cjs +12 -4
- package/build/legacy/components/rating/parts.cjs.map +1 -1
- package/build/legacy/components/rating/primitives.cjs +12 -4
- package/build/legacy/components/rating/primitives.cjs.map +1 -1
- package/build/legacy/components/rating/rating.cjs +12 -4
- package/build/legacy/components/rating/rating.cjs.map +1 -1
- package/build/legacy/components/select/index.cjs +12 -4
- package/build/legacy/components/select/index.cjs.map +1 -1
- package/build/legacy/components/select/option-group.cjs +12 -4
- package/build/legacy/components/select/option-group.cjs.map +1 -1
- package/build/legacy/components/select/option.cjs +12 -4
- package/build/legacy/components/select/option.cjs.map +1 -1
- package/build/legacy/components/select/parts.cjs +12 -4
- package/build/legacy/components/select/parts.cjs.map +1 -1
- package/build/legacy/components/select/primitives.cjs +12 -4
- package/build/legacy/components/select/primitives.cjs.map +1 -1
- package/build/legacy/components/select/select.cjs +12 -4
- package/build/legacy/components/select/select.cjs.map +1 -1
- package/build/legacy/components/switch/index.cjs +12 -4
- package/build/legacy/components/switch/index.cjs.map +1 -1
- package/build/legacy/components/switch/parts.cjs +12 -4
- package/build/legacy/components/switch/parts.cjs.map +1 -1
- package/build/legacy/components/switch/primitives.cjs +12 -4
- package/build/legacy/components/switch/primitives.cjs.map +1 -1
- package/build/legacy/components/switch/switch.cjs +12 -4
- package/build/legacy/components/switch/switch.cjs.map +1 -1
- package/build/legacy/components/table/index.cjs +12 -4
- package/build/legacy/components/table/index.cjs.map +1 -1
- package/build/legacy/components/table/parts.cjs +12 -4
- package/build/legacy/components/table/parts.cjs.map +1 -1
- package/build/legacy/components/table/primitives.cjs +12 -4
- package/build/legacy/components/table/primitives.cjs.map +1 -1
- package/build/legacy/components/table/table.cjs +12 -4
- package/build/legacy/components/table/table.cjs.map +1 -1
- package/build/legacy/components/tabs/index.cjs +12 -4
- package/build/legacy/components/tabs/index.cjs.map +1 -1
- package/build/legacy/components/tabs/parts.cjs +12 -4
- package/build/legacy/components/tabs/parts.cjs.map +1 -1
- package/build/legacy/components/tabs/primitives.cjs +12 -4
- package/build/legacy/components/tabs/primitives.cjs.map +1 -1
- package/build/legacy/components/tabs/tabs.cjs +12 -4
- package/build/legacy/components/tabs/tabs.cjs.map +1 -1
- package/build/legacy/components/tag/index.cjs +12 -4
- package/build/legacy/components/tag/index.cjs.map +1 -1
- package/build/legacy/components/tag/tag.cjs +12 -4
- package/build/legacy/components/tag/tag.cjs.map +1 -1
- package/build/legacy/components/theme/index.cjs +12 -4
- package/build/legacy/components/theme/index.cjs.map +1 -1
- package/build/legacy/components/theme/theme.cjs +12 -4
- package/build/legacy/components/theme/theme.cjs.map +1 -1
- package/build/legacy/components/toggle/index.cjs +12 -4
- package/build/legacy/components/toggle/index.cjs.map +1 -1
- package/build/legacy/components/toggle/parts.cjs +12 -4
- package/build/legacy/components/toggle/parts.cjs.map +1 -1
- package/build/legacy/components/toggle/primitives.cjs +12 -4
- package/build/legacy/components/toggle/primitives.cjs.map +1 -1
- package/build/legacy/components/tooltip/index.cjs +12 -4
- package/build/legacy/components/tooltip/index.cjs.map +1 -1
- package/build/legacy/components/tooltip/parts.cjs +12 -4
- package/build/legacy/components/tooltip/parts.cjs.map +1 -1
- package/build/legacy/components/tooltip/primitives.cjs +12 -4
- package/build/legacy/components/tooltip/primitives.cjs.map +1 -1
- package/build/legacy/components/tooltip/tooltip.cjs +12 -4
- package/build/legacy/components/tooltip/tooltip.cjs.map +1 -1
- package/build/legacy/context/confirm-modal.cjs +12 -4
- package/build/legacy/context/confirm-modal.cjs.map +1 -1
- package/build/legacy/context/field.cjs +12 -4
- package/build/legacy/context/field.cjs.map +1 -1
- package/build/legacy/context/prompt-modal.cjs +14 -5
- package/build/legacy/context/prompt-modal.cjs.map +1 -1
- package/build/legacy/index.cjs +15 -6
- package/build/legacy/index.cjs.map +1 -1
- package/build/legacy/system/factory.cjs +12 -4
- package/build/legacy/system/factory.cjs.map +1 -1
- package/build/legacy/system/index.cjs +12 -4
- package/build/legacy/system/index.cjs.map +1 -1
- package/build/legacy/system/primitive-factory.cjs +12 -4
- package/build/legacy/system/primitive-factory.cjs.map +1 -1
- package/build/legacy/types.cjs.map +1 -1
- package/build/modern/_tsup-dts-rollup.d.ts +11 -1
- package/build/modern/{chunk-4WSCG2CM.js → chunk-262PENBL.js} +3 -3
- package/build/modern/{chunk-N2DZNGUS.js → chunk-27RTYRM7.js} +2 -2
- package/build/modern/{chunk-UCP3GQOJ.js → chunk-2SBNSYYC.js} +2 -2
- package/build/modern/{chunk-ZPMGW4U7.js → chunk-2UD72VLC.js} +2 -2
- package/build/modern/{chunk-NPZJTTTS.js → chunk-2VVJATIW.js} +5 -5
- package/build/modern/{chunk-GZ6T3352.js → chunk-33OXE7IJ.js} +13 -5
- package/build/modern/chunk-33OXE7IJ.js.map +1 -0
- package/build/modern/{chunk-4DJ6KC4K.js → chunk-46QXBKGK.js} +6 -6
- package/build/modern/{chunk-KYYKBLP2.js → chunk-4ZQUC4DA.js} +2 -2
- package/build/modern/{chunk-NH2RSI7N.js → chunk-5UZUXCMO.js} +2 -2
- package/build/modern/{chunk-J3XTP6VP.js → chunk-5W6HMI2G.js} +2 -2
- package/build/modern/{chunk-ZGPHSKEB.js → chunk-5WT5BM3V.js} +3 -3
- package/build/modern/{chunk-HJ67FKQ6.js → chunk-6KGRHE3J.js} +2 -2
- package/build/modern/{chunk-BDXVYV32.js → chunk-6KIXF4ES.js} +2 -2
- package/build/modern/{chunk-IU5YJTKN.js → chunk-6P2JY52I.js} +2 -2
- package/build/modern/{chunk-YI3P5QG4.js → chunk-6XO2RTIJ.js} +2 -2
- package/build/modern/{chunk-S7ALRSVU.js → chunk-77QDH2Q5.js} +2 -2
- package/build/modern/{chunk-VXG4AEMZ.js → chunk-7GT7UUCB.js} +2 -2
- package/build/modern/{chunk-RXAHVNN2.js → chunk-7GVDVLCR.js} +2 -2
- package/build/modern/{chunk-VIUQS3VG.js → chunk-7LNGA4BX.js} +2 -2
- package/build/modern/{chunk-ALJYABJX.js → chunk-7MWSOSOY.js} +2 -2
- package/build/modern/{chunk-COIQJKC3.js → chunk-A6NEZNGY.js} +2 -2
- package/build/modern/{chunk-OMM4CPZU.js → chunk-ABMK5P66.js} +2 -2
- package/build/modern/{chunk-YVYOOJ3X.js → chunk-ADOFKGU3.js} +2 -2
- package/build/modern/{chunk-4Q62OI72.js → chunk-AHYFFHUW.js} +2 -2
- package/build/modern/{chunk-GHM4I5BN.js → chunk-BFE2SHZO.js} +3 -3
- package/build/modern/{chunk-L2G4XKLT.js → chunk-BGJIAA5F.js} +2 -2
- package/build/modern/{chunk-2OWVBM5W.js → chunk-BGZTC53N.js} +2 -2
- package/build/modern/{chunk-UKAVYSJ5.js → chunk-BS4V2YJV.js} +3 -3
- package/build/modern/{chunk-VZXYGBU6.js → chunk-BT6FMOKM.js} +2 -2
- package/build/modern/{chunk-IOK2RQK6.js → chunk-CBJ5A5BD.js} +4 -4
- package/build/modern/{chunk-KSYZMMXN.js → chunk-CI7JYXUR.js} +3 -3
- package/build/modern/{chunk-ACK44GEO.js → chunk-CKCGLHLS.js} +6 -6
- package/build/modern/{chunk-A57LVJJF.js → chunk-CYK3ZJIX.js} +2 -2
- package/build/modern/{chunk-6BNGJMNL.js → chunk-EMLKVTGD.js} +3 -3
- package/build/modern/{chunk-RDFAC3XX.js → chunk-ETYXG2J2.js} +2 -2
- package/build/modern/{chunk-WKAI4OK3.js → chunk-FIVEPZ5F.js} +2 -2
- package/build/modern/{chunk-QOTRCNC7.js → chunk-FL3J7LTC.js} +2 -2
- package/build/modern/{chunk-A655GBYQ.js → chunk-GBV7MIBU.js} +4 -4
- package/build/modern/{chunk-JG5V3AK4.js → chunk-GLH23RDO.js} +3 -3
- package/build/modern/{chunk-5XU3LUPC.js → chunk-H6ZGH4VM.js} +2 -2
- package/build/modern/{chunk-YCVNE3CA.js → chunk-H7N6M7VO.js} +2 -2
- package/build/modern/{chunk-2UFNNWLA.js → chunk-HJYVIRNA.js} +5 -5
- package/build/modern/{chunk-BWZXR2WZ.js → chunk-HUKQPIDV.js} +2 -2
- package/build/modern/{chunk-LRIYLZSL.js → chunk-IWJCQ4BM.js} +3 -3
- package/build/modern/{chunk-SGFITMUF.js → chunk-IX5QZCM4.js} +2 -2
- package/build/modern/{chunk-PQ5DEKSH.js → chunk-J37VR33H.js} +2 -2
- package/build/modern/{chunk-UHXKG2ZP.js → chunk-JBAE2B2H.js} +2 -2
- package/build/modern/{chunk-HPWLIE64.js → chunk-KDIDKP2L.js} +2 -2
- package/build/modern/{chunk-YZFXHGMG.js → chunk-KELIM5A3.js} +2 -2
- package/build/modern/{chunk-E4DXMJ3C.js → chunk-KF3WIC2Y.js} +2 -2
- package/build/modern/{chunk-M4NNRVTU.js → chunk-KHU3YTLM.js} +2 -2
- package/build/modern/{chunk-OVYHM5DH.js → chunk-KUF4UUC7.js} +2 -2
- package/build/modern/{chunk-YUEVV2DE.js → chunk-L4CKWLXL.js} +2 -2
- package/build/modern/{chunk-VIKVLJGG.js → chunk-LCURHO24.js} +3 -2
- package/build/modern/{chunk-VIKVLJGG.js.map → chunk-LCURHO24.js.map} +1 -1
- package/build/modern/{chunk-BW64QBCK.js → chunk-LMEGBPKK.js} +2 -2
- package/build/modern/{chunk-WGSUBJNI.js → chunk-LNDQW46A.js} +2 -2
- package/build/modern/{chunk-AZ5LB6IS.js → chunk-LVA6QLLM.js} +2 -2
- package/build/modern/{chunk-YTKY3AHF.js → chunk-MPVUVQCJ.js} +2 -2
- package/build/modern/{chunk-2Q4KTP6D.js → chunk-NC7AHNAS.js} +7 -7
- package/build/modern/{chunk-2Q4KTP6D.js.map → chunk-NC7AHNAS.js.map} +1 -1
- package/build/modern/{chunk-6TIG456O.js → chunk-NLZGGXMB.js} +2 -2
- package/build/modern/{chunk-MXW63O5N.js → chunk-OG74JDYL.js} +2 -2
- package/build/modern/{chunk-SFAJKI45.js → chunk-OSUFAZAK.js} +2 -2
- package/build/modern/{chunk-P6WEDKIB.js → chunk-P3J5P524.js} +2 -2
- package/build/modern/{chunk-2T2S226G.js → chunk-PGINYK2P.js} +2 -2
- package/build/modern/{chunk-ZO3GSLWZ.js → chunk-PI7MKQ62.js} +2 -2
- package/build/modern/{chunk-CMQZN2GZ.js → chunk-Q3NDU44T.js} +2 -2
- package/build/modern/{chunk-MG2YW4IP.js → chunk-Q6FTLT7K.js} +2 -2
- package/build/modern/{chunk-DC3NTCCW.js → chunk-QHPJ2C76.js} +2 -2
- package/build/modern/{chunk-U6ECBUYN.js → chunk-QV5JHBHO.js} +2 -2
- package/build/modern/{chunk-RFANIL5H.js → chunk-RCXKKQQA.js} +2 -2
- package/build/modern/{chunk-FMNYWD5T.js → chunk-RKKI3J6R.js} +2 -2
- package/build/modern/{chunk-OVDJPTML.js → chunk-RMLBOGDE.js} +3 -3
- package/build/modern/{chunk-LW62VSVZ.js → chunk-ROWT3E5K.js} +2 -2
- package/build/modern/{chunk-3Z4TSR6V.js → chunk-S7HDNFJJ.js} +2 -2
- package/build/modern/{chunk-KLZPY4YX.js → chunk-T3U6K34Y.js} +2 -2
- package/build/modern/{chunk-TF2DXEUF.js → chunk-TIKG6U4Y.js} +2 -2
- package/build/modern/{chunk-GIIPOOSM.js → chunk-TJXWSSHO.js} +2 -2
- package/build/modern/{chunk-BOATN5PB.js → chunk-U2ZT7UDW.js} +2 -2
- package/build/modern/{chunk-SQIB5EOA.js → chunk-UHS2TNFC.js} +2 -2
- package/build/modern/{chunk-THMNM4CZ.js → chunk-UZHBWTSE.js} +2 -2
- package/build/modern/{chunk-2MU6WE52.js → chunk-VB7T2YYD.js} +3 -3
- package/build/modern/{chunk-OFACU2SY.js → chunk-VQIBX475.js} +2 -2
- package/build/modern/{chunk-Y67NIX2N.js → chunk-W7WPVM34.js} +3 -3
- package/build/modern/{chunk-D47GTCQZ.js → chunk-WC6SOU2F.js} +2 -2
- package/build/modern/{chunk-CIIFJ2SA.js → chunk-WK7TUQIS.js} +2 -2
- package/build/modern/{chunk-JSK6OD6J.js → chunk-X34MYQKI.js} +2 -2
- package/build/modern/{chunk-UXU2CVPI.js → chunk-X6KB5LWU.js} +2 -2
- package/build/modern/{chunk-RGLJDMIO.js → chunk-X6WOC4RF.js} +3 -3
- package/build/modern/{chunk-AJ5TWPXM.js → chunk-XB4HMXOQ.js} +3 -3
- package/build/modern/{chunk-CLGDJ4GM.js → chunk-XMFTL6KG.js} +3 -3
- package/build/modern/{chunk-YQNOAJM7.js → chunk-XZ2FNMMC.js} +2 -2
- package/build/modern/{chunk-BK5BIPCG.js → chunk-Y7UXAFII.js} +2 -2
- package/build/modern/{chunk-KM3G4YFF.js → chunk-YAZIBTA2.js} +2 -2
- package/build/modern/{chunk-7WX2RQT6.js → chunk-YMFUEQ2A.js} +3 -3
- package/build/modern/{chunk-ZZSHEW4N.js → chunk-ZFEGJR5E.js} +2 -2
- package/build/modern/{chunk-WO6MF3XM.js → chunk-ZGJDFQN2.js} +2 -2
- package/build/modern/{chunk-QM4DC6QF.js → chunk-ZUC3X6GQ.js} +2 -2
- package/build/modern/components/accordion/index.js +7 -7
- package/build/modern/components/accordion/item-group.js +7 -7
- package/build/modern/components/accordion/item-indicator.js +6 -6
- package/build/modern/components/accordion/parts.js +5 -5
- package/build/modern/components/accordion/primitives.js +4 -4
- package/build/modern/components/admonition/admonition.js +10 -10
- package/build/modern/components/admonition/index.js +10 -10
- package/build/modern/components/admonition/match-avatar.js +7 -7
- package/build/modern/components/admonition/parts.js +5 -5
- package/build/modern/components/admonition/primitives.js +4 -4
- package/build/modern/components/avatar/avatar.js +6 -6
- package/build/modern/components/avatar/index.js +6 -6
- package/build/modern/components/avatar/parts.js +5 -5
- package/build/modern/components/avatar/primitives.js +4 -4
- package/build/modern/components/button/button.js +5 -5
- package/build/modern/components/button/index.js +6 -6
- package/build/modern/components/button/parts.js +6 -6
- package/build/modern/components/button/primitives.js +4 -4
- package/build/modern/components/checkbox/checkbox-icon.js +6 -6
- package/build/modern/components/checkbox/checkbox.js +7 -7
- package/build/modern/components/checkbox/index.js +7 -7
- package/build/modern/components/checkbox/parts.js +5 -5
- package/build/modern/components/checkbox/primitives.js +4 -4
- package/build/modern/components/circular-progress/circular-progress.js +5 -5
- package/build/modern/components/circular-progress/index.js +5 -5
- package/build/modern/components/circular-progress/primitives.js +4 -4
- package/build/modern/components/combobox/combobox.js +6 -6
- package/build/modern/components/combobox/index.js +10 -10
- package/build/modern/components/combobox/item-group.js +6 -6
- package/build/modern/components/combobox/item.js +6 -6
- package/build/modern/components/combobox/parts.js +5 -5
- package/build/modern/components/combobox/primitives.js +4 -4
- package/build/modern/components/combobox/use-stateful-collection.js +5 -5
- package/build/modern/components/cta-dialog/index.js +16 -16
- package/build/modern/components/cta-dialog/provider.js +16 -16
- package/build/modern/components/cta-dialog/trigger-item.js +6 -6
- package/build/modern/components/date-picker/calendar.js +15 -15
- package/build/modern/components/date-picker/content.js +6 -6
- package/build/modern/components/date-picker/date-picker.js +6 -6
- package/build/modern/components/date-picker/day-view.js +11 -11
- package/build/modern/components/date-picker/index.js +19 -19
- package/build/modern/components/date-picker/input.js +9 -9
- package/build/modern/components/date-picker/month-view.js +11 -11
- package/build/modern/components/date-picker/parts.js +5 -5
- package/build/modern/components/date-picker/primitives.js +4 -4
- package/build/modern/components/date-picker/range-input.js +9 -9
- package/build/modern/components/date-picker/trigger.js +8 -8
- package/build/modern/components/date-picker/view-control-group.js +10 -10
- package/build/modern/components/date-picker/year-view.js +11 -11
- package/build/modern/components/deprecated/Label.js +9 -9
- package/build/modern/components/dialog/close-icon-trigger.js +7 -7
- package/build/modern/components/dialog/dialog.js +5 -5
- package/build/modern/components/dialog/index.js +9 -9
- package/build/modern/components/dialog/parts.js +5 -5
- package/build/modern/components/dialog/primitives.js +4 -4
- package/build/modern/components/field/field.js +7 -7
- package/build/modern/components/field/helper-text.js +6 -6
- package/build/modern/components/field/index.js +8 -8
- package/build/modern/components/field/input.js +5 -5
- package/build/modern/components/field/parts.js +6 -6
- package/build/modern/components/field/primitives.js +5 -5
- package/build/modern/components/field/status-indicator.js +1 -1
- package/build/modern/components/fieldset/fieldset.js +6 -6
- package/build/modern/components/fieldset/index.js +6 -6
- package/build/modern/components/fieldset/parts.js +5 -5
- package/build/modern/components/fieldset/primitives.js +4 -4
- package/build/modern/components/file-upload/file-status.js +16 -16
- package/build/modern/components/file-upload/file-uploader.js +7 -7
- package/build/modern/components/file-upload/index.js +17 -17
- package/build/modern/components/icon-button/button.js +5 -5
- package/build/modern/components/icon-button/index.js +5 -5
- package/build/modern/components/icon-button/primitives.js +4 -4
- package/build/modern/components/menu/index.js +5 -5
- package/build/modern/components/menu/menu.js +5 -5
- package/build/modern/components/menu/primitives.js +4 -4
- package/build/modern/components/notifications/center.js +9 -9
- package/build/modern/components/notifications/close-trigger.js +6 -6
- package/build/modern/components/notifications/index.js +9 -9
- package/build/modern/components/notifications/parts.js +5 -5
- package/build/modern/components/notifications/primitives.js +4 -4
- package/build/modern/components/progress/index.js +5 -5
- package/build/modern/components/progress/primitives.js +4 -4
- package/build/modern/components/progress/progress-bar.js +5 -5
- package/build/modern/components/radio/index.js +6 -6
- package/build/modern/components/radio/parts.js +5 -5
- package/build/modern/components/radio/primitives.js +4 -4
- package/build/modern/components/radio/radio.js +5 -5
- package/build/modern/components/rating/index.js +6 -6
- package/build/modern/components/rating/parts.js +5 -5
- package/build/modern/components/rating/primitives.js +4 -4
- package/build/modern/components/rating/rating.js +6 -6
- package/build/modern/components/select/index.js +8 -8
- package/build/modern/components/select/option-group.js +5 -5
- package/build/modern/components/select/option.js +6 -6
- package/build/modern/components/select/parts.js +5 -5
- package/build/modern/components/select/primitives.js +4 -4
- package/build/modern/components/select/select.js +6 -6
- package/build/modern/components/switch/index.js +6 -6
- package/build/modern/components/switch/parts.js +5 -5
- package/build/modern/components/switch/primitives.js +4 -4
- package/build/modern/components/switch/switch.js +6 -6
- package/build/modern/components/table/index.js +6 -6
- package/build/modern/components/table/parts.js +5 -5
- package/build/modern/components/table/primitives.js +4 -4
- package/build/modern/components/table/table.js +5 -5
- package/build/modern/components/tabs/index.js +6 -6
- package/build/modern/components/tabs/parts.js +5 -5
- package/build/modern/components/tabs/primitives.js +4 -4
- package/build/modern/components/tabs/tabs.js +6 -6
- package/build/modern/components/tag/index.js +6 -6
- package/build/modern/components/tag/tag.js +6 -6
- package/build/modern/components/theme/index.js +4 -4
- package/build/modern/components/theme/theme.js +4 -4
- package/build/modern/components/toggle/index.js +5 -5
- package/build/modern/components/toggle/parts.js +5 -5
- package/build/modern/components/toggle/primitives.js +4 -4
- package/build/modern/components/tooltip/index.js +6 -6
- package/build/modern/components/tooltip/parts.js +5 -5
- package/build/modern/components/tooltip/primitives.js +4 -4
- package/build/modern/components/tooltip/tooltip.js +6 -6
- package/build/modern/context/confirm-modal.js +15 -15
- package/build/modern/context/field.js +5 -5
- package/build/modern/context/prompt-modal.js +20 -20
- package/build/modern/index.js +97 -97
- package/build/modern/system/factory.js +2 -2
- package/build/modern/system/index.js +3 -3
- package/build/modern/system/primitive-factory.js +1 -1
- package/package.json +3 -3
- package/src/components/field/status-indicator.tsx +4 -1
- package/src/components/file-upload/file-status.tsx +1 -1
- package/src/system/primitive-factory.tsx +16 -6
- package/src/types.ts +10 -0
- package/build/modern/chunk-GZ6T3352.js.map +0 -1
- /package/build/modern/{chunk-4WSCG2CM.js.map → chunk-262PENBL.js.map} +0 -0
- /package/build/modern/{chunk-N2DZNGUS.js.map → chunk-27RTYRM7.js.map} +0 -0
- /package/build/modern/{chunk-UCP3GQOJ.js.map → chunk-2SBNSYYC.js.map} +0 -0
- /package/build/modern/{chunk-ZPMGW4U7.js.map → chunk-2UD72VLC.js.map} +0 -0
- /package/build/modern/{chunk-NPZJTTTS.js.map → chunk-2VVJATIW.js.map} +0 -0
- /package/build/modern/{chunk-4DJ6KC4K.js.map → chunk-46QXBKGK.js.map} +0 -0
- /package/build/modern/{chunk-KYYKBLP2.js.map → chunk-4ZQUC4DA.js.map} +0 -0
- /package/build/modern/{chunk-NH2RSI7N.js.map → chunk-5UZUXCMO.js.map} +0 -0
- /package/build/modern/{chunk-J3XTP6VP.js.map → chunk-5W6HMI2G.js.map} +0 -0
- /package/build/modern/{chunk-ZGPHSKEB.js.map → chunk-5WT5BM3V.js.map} +0 -0
- /package/build/modern/{chunk-HJ67FKQ6.js.map → chunk-6KGRHE3J.js.map} +0 -0
- /package/build/modern/{chunk-BDXVYV32.js.map → chunk-6KIXF4ES.js.map} +0 -0
- /package/build/modern/{chunk-IU5YJTKN.js.map → chunk-6P2JY52I.js.map} +0 -0
- /package/build/modern/{chunk-YI3P5QG4.js.map → chunk-6XO2RTIJ.js.map} +0 -0
- /package/build/modern/{chunk-S7ALRSVU.js.map → chunk-77QDH2Q5.js.map} +0 -0
- /package/build/modern/{chunk-VXG4AEMZ.js.map → chunk-7GT7UUCB.js.map} +0 -0
- /package/build/modern/{chunk-RXAHVNN2.js.map → chunk-7GVDVLCR.js.map} +0 -0
- /package/build/modern/{chunk-VIUQS3VG.js.map → chunk-7LNGA4BX.js.map} +0 -0
- /package/build/modern/{chunk-ALJYABJX.js.map → chunk-7MWSOSOY.js.map} +0 -0
- /package/build/modern/{chunk-COIQJKC3.js.map → chunk-A6NEZNGY.js.map} +0 -0
- /package/build/modern/{chunk-OMM4CPZU.js.map → chunk-ABMK5P66.js.map} +0 -0
- /package/build/modern/{chunk-YVYOOJ3X.js.map → chunk-ADOFKGU3.js.map} +0 -0
- /package/build/modern/{chunk-4Q62OI72.js.map → chunk-AHYFFHUW.js.map} +0 -0
- /package/build/modern/{chunk-GHM4I5BN.js.map → chunk-BFE2SHZO.js.map} +0 -0
- /package/build/modern/{chunk-L2G4XKLT.js.map → chunk-BGJIAA5F.js.map} +0 -0
- /package/build/modern/{chunk-2OWVBM5W.js.map → chunk-BGZTC53N.js.map} +0 -0
- /package/build/modern/{chunk-UKAVYSJ5.js.map → chunk-BS4V2YJV.js.map} +0 -0
- /package/build/modern/{chunk-VZXYGBU6.js.map → chunk-BT6FMOKM.js.map} +0 -0
- /package/build/modern/{chunk-IOK2RQK6.js.map → chunk-CBJ5A5BD.js.map} +0 -0
- /package/build/modern/{chunk-KSYZMMXN.js.map → chunk-CI7JYXUR.js.map} +0 -0
- /package/build/modern/{chunk-ACK44GEO.js.map → chunk-CKCGLHLS.js.map} +0 -0
- /package/build/modern/{chunk-A57LVJJF.js.map → chunk-CYK3ZJIX.js.map} +0 -0
- /package/build/modern/{chunk-6BNGJMNL.js.map → chunk-EMLKVTGD.js.map} +0 -0
- /package/build/modern/{chunk-RDFAC3XX.js.map → chunk-ETYXG2J2.js.map} +0 -0
- /package/build/modern/{chunk-WKAI4OK3.js.map → chunk-FIVEPZ5F.js.map} +0 -0
- /package/build/modern/{chunk-QOTRCNC7.js.map → chunk-FL3J7LTC.js.map} +0 -0
- /package/build/modern/{chunk-A655GBYQ.js.map → chunk-GBV7MIBU.js.map} +0 -0
- /package/build/modern/{chunk-JG5V3AK4.js.map → chunk-GLH23RDO.js.map} +0 -0
- /package/build/modern/{chunk-5XU3LUPC.js.map → chunk-H6ZGH4VM.js.map} +0 -0
- /package/build/modern/{chunk-YCVNE3CA.js.map → chunk-H7N6M7VO.js.map} +0 -0
- /package/build/modern/{chunk-2UFNNWLA.js.map → chunk-HJYVIRNA.js.map} +0 -0
- /package/build/modern/{chunk-BWZXR2WZ.js.map → chunk-HUKQPIDV.js.map} +0 -0
- /package/build/modern/{chunk-LRIYLZSL.js.map → chunk-IWJCQ4BM.js.map} +0 -0
- /package/build/modern/{chunk-SGFITMUF.js.map → chunk-IX5QZCM4.js.map} +0 -0
- /package/build/modern/{chunk-PQ5DEKSH.js.map → chunk-J37VR33H.js.map} +0 -0
- /package/build/modern/{chunk-UHXKG2ZP.js.map → chunk-JBAE2B2H.js.map} +0 -0
- /package/build/modern/{chunk-HPWLIE64.js.map → chunk-KDIDKP2L.js.map} +0 -0
- /package/build/modern/{chunk-YZFXHGMG.js.map → chunk-KELIM5A3.js.map} +0 -0
- /package/build/modern/{chunk-E4DXMJ3C.js.map → chunk-KF3WIC2Y.js.map} +0 -0
- /package/build/modern/{chunk-M4NNRVTU.js.map → chunk-KHU3YTLM.js.map} +0 -0
- /package/build/modern/{chunk-OVYHM5DH.js.map → chunk-KUF4UUC7.js.map} +0 -0
- /package/build/modern/{chunk-YUEVV2DE.js.map → chunk-L4CKWLXL.js.map} +0 -0
- /package/build/modern/{chunk-BW64QBCK.js.map → chunk-LMEGBPKK.js.map} +0 -0
- /package/build/modern/{chunk-WGSUBJNI.js.map → chunk-LNDQW46A.js.map} +0 -0
- /package/build/modern/{chunk-AZ5LB6IS.js.map → chunk-LVA6QLLM.js.map} +0 -0
- /package/build/modern/{chunk-YTKY3AHF.js.map → chunk-MPVUVQCJ.js.map} +0 -0
- /package/build/modern/{chunk-6TIG456O.js.map → chunk-NLZGGXMB.js.map} +0 -0
- /package/build/modern/{chunk-MXW63O5N.js.map → chunk-OG74JDYL.js.map} +0 -0
- /package/build/modern/{chunk-SFAJKI45.js.map → chunk-OSUFAZAK.js.map} +0 -0
- /package/build/modern/{chunk-P6WEDKIB.js.map → chunk-P3J5P524.js.map} +0 -0
- /package/build/modern/{chunk-2T2S226G.js.map → chunk-PGINYK2P.js.map} +0 -0
- /package/build/modern/{chunk-ZO3GSLWZ.js.map → chunk-PI7MKQ62.js.map} +0 -0
- /package/build/modern/{chunk-CMQZN2GZ.js.map → chunk-Q3NDU44T.js.map} +0 -0
- /package/build/modern/{chunk-MG2YW4IP.js.map → chunk-Q6FTLT7K.js.map} +0 -0
- /package/build/modern/{chunk-DC3NTCCW.js.map → chunk-QHPJ2C76.js.map} +0 -0
- /package/build/modern/{chunk-U6ECBUYN.js.map → chunk-QV5JHBHO.js.map} +0 -0
- /package/build/modern/{chunk-RFANIL5H.js.map → chunk-RCXKKQQA.js.map} +0 -0
- /package/build/modern/{chunk-FMNYWD5T.js.map → chunk-RKKI3J6R.js.map} +0 -0
- /package/build/modern/{chunk-OVDJPTML.js.map → chunk-RMLBOGDE.js.map} +0 -0
- /package/build/modern/{chunk-LW62VSVZ.js.map → chunk-ROWT3E5K.js.map} +0 -0
- /package/build/modern/{chunk-3Z4TSR6V.js.map → chunk-S7HDNFJJ.js.map} +0 -0
- /package/build/modern/{chunk-KLZPY4YX.js.map → chunk-T3U6K34Y.js.map} +0 -0
- /package/build/modern/{chunk-TF2DXEUF.js.map → chunk-TIKG6U4Y.js.map} +0 -0
- /package/build/modern/{chunk-GIIPOOSM.js.map → chunk-TJXWSSHO.js.map} +0 -0
- /package/build/modern/{chunk-BOATN5PB.js.map → chunk-U2ZT7UDW.js.map} +0 -0
- /package/build/modern/{chunk-SQIB5EOA.js.map → chunk-UHS2TNFC.js.map} +0 -0
- /package/build/modern/{chunk-THMNM4CZ.js.map → chunk-UZHBWTSE.js.map} +0 -0
- /package/build/modern/{chunk-2MU6WE52.js.map → chunk-VB7T2YYD.js.map} +0 -0
- /package/build/modern/{chunk-OFACU2SY.js.map → chunk-VQIBX475.js.map} +0 -0
- /package/build/modern/{chunk-Y67NIX2N.js.map → chunk-W7WPVM34.js.map} +0 -0
- /package/build/modern/{chunk-D47GTCQZ.js.map → chunk-WC6SOU2F.js.map} +0 -0
- /package/build/modern/{chunk-CIIFJ2SA.js.map → chunk-WK7TUQIS.js.map} +0 -0
- /package/build/modern/{chunk-JSK6OD6J.js.map → chunk-X34MYQKI.js.map} +0 -0
- /package/build/modern/{chunk-UXU2CVPI.js.map → chunk-X6KB5LWU.js.map} +0 -0
- /package/build/modern/{chunk-RGLJDMIO.js.map → chunk-X6WOC4RF.js.map} +0 -0
- /package/build/modern/{chunk-AJ5TWPXM.js.map → chunk-XB4HMXOQ.js.map} +0 -0
- /package/build/modern/{chunk-CLGDJ4GM.js.map → chunk-XMFTL6KG.js.map} +0 -0
- /package/build/modern/{chunk-YQNOAJM7.js.map → chunk-XZ2FNMMC.js.map} +0 -0
- /package/build/modern/{chunk-BK5BIPCG.js.map → chunk-Y7UXAFII.js.map} +0 -0
- /package/build/modern/{chunk-KM3G4YFF.js.map → chunk-YAZIBTA2.js.map} +0 -0
- /package/build/modern/{chunk-7WX2RQT6.js.map → chunk-YMFUEQ2A.js.map} +0 -0
- /package/build/modern/{chunk-ZZSHEW4N.js.map → chunk-ZFEGJR5E.js.map} +0 -0
- /package/build/modern/{chunk-WO6MF3XM.js.map → chunk-ZGJDFQN2.js.map} +0 -0
- /package/build/modern/{chunk-QM4DC6QF.js.map → chunk-ZUC3X6GQ.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/field/helper-text.tsx","../../../../src/components/field/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/field/error-text.tsx"],"sourcesContent":["import type { PropsWithChildren } from 'react'\nimport { FieldHelperText } from './primitives'\n\ninterface HelperTextProps {\n invalid?: boolean\n}\n\n/**\n * The HelperText component is an abstraction for hiding the helper text\n * when the field is invalid. Ark UI assumes people want the helper text\n * to always be visible, so this is a workaround for that.\n */\nexport function HelperText(props: PropsWithChildren<HelperTextProps>) {\n if (props.invalid) return null\n return (\n <FieldHelperText data-has-content={Boolean(props.children)}>\n {props.children}\n </FieldHelperText>\n )\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"],"mappings":"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","names":["import_field","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/field/helper-text.tsx","../../../../src/components/field/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/field/error-text.tsx"],"sourcesContent":["import type { PropsWithChildren } from 'react'\nimport { FieldHelperText } from './primitives'\n\ninterface HelperTextProps {\n invalid?: boolean\n}\n\n/**\n * The HelperText component is an abstraction for hiding the helper text\n * when the field is invalid. Ark UI assumes people want the helper text\n * to always be visible, so this is a workaround for that.\n */\nexport function HelperText(props: PropsWithChildren<HelperTextProps>) {\n if (props.invalid) return null\n return (\n <FieldHelperText data-has-content={Boolean(props.children)}>\n {props.children}\n </FieldHelperText>\n )\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 {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n","import { 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_jsx_runtime","import_jsx_runtime","import_jsx_runtime"]}
|
|
@@ -120,8 +120,12 @@ var CerberusPrimitive = class {
|
|
|
120
120
|
const recipe = this.recipe;
|
|
121
121
|
this.validateComponent(Component);
|
|
122
122
|
const CerbComponent = (internalProps) => {
|
|
123
|
-
const {
|
|
124
|
-
|
|
123
|
+
const {
|
|
124
|
+
css: customCss,
|
|
125
|
+
className,
|
|
126
|
+
...restOfInternalProps
|
|
127
|
+
} = internalProps;
|
|
128
|
+
const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
|
|
125
129
|
const recipeStyles = recipe(variantOptions);
|
|
126
130
|
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
127
131
|
Component,
|
|
@@ -152,8 +156,12 @@ var CerberusPrimitive = class {
|
|
|
152
156
|
const recipe = this.recipe;
|
|
153
157
|
this.validateComponent(Component);
|
|
154
158
|
const CerbComponent = (internalProps) => {
|
|
155
|
-
const {
|
|
156
|
-
|
|
159
|
+
const {
|
|
160
|
+
css: customCss,
|
|
161
|
+
className,
|
|
162
|
+
...restOfInternalProps
|
|
163
|
+
} = internalProps;
|
|
164
|
+
const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
|
|
157
165
|
const styles = recipe(variantOptions);
|
|
158
166
|
const slotStyles = styles[slot];
|
|
159
167
|
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
@@ -228,10 +236,11 @@ function useCerberusContext() {
|
|
|
228
236
|
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
229
237
|
function FieldStatusIndicator(props) {
|
|
230
238
|
const { fallback, ...nativeProps } = props;
|
|
231
|
-
const styles = (0, import_recipes2.field)();
|
|
232
239
|
const fieldContext = (0, import_react2.useFieldContext)();
|
|
240
|
+
const styles = (0, import_recipes2.field)();
|
|
233
241
|
const { icons } = useCerberusContext();
|
|
234
242
|
const { invalid: InvalidIcon } = icons;
|
|
243
|
+
if (!fieldContext) return null;
|
|
235
244
|
if (fieldContext.invalid) {
|
|
236
245
|
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
237
246
|
"span",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/field/index.ts","../../../../src/components/field/field.tsx","../../../../src/utils/index.ts","../../../../src/components/show/show.tsx","../../../../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/input.tsx","../../../../src/components/field/error-text.tsx","../../../../src/components/field/helper-text.tsx","../../../../src/components/field/parts.ts"],"sourcesContent":["export * from './field'\nexport * from './primitives'\nexport * from './parts'\nexport * from './start-indicator'\nexport * from './status-indicator'\n\nexport type { FieldInputElProps } from './input'\n","import { type FieldRootProps } from '@ark-ui/react/field'\nimport { HStack } from 'styled-system/jsx'\nimport { splitProps } from '../../utils/index'\nimport { Show } from '../show/index'\nimport {\n FieldErrorText,\n FieldHelperText,\n FieldLabel,\n FieldRoot,\n} from './primitives'\nimport { HelperText } from './helper-text'\n\nexport interface FieldProps extends FieldRootProps {\n /**\n * The label of the field.\n */\n label?: string\n /**\n * The helper text of the field.\n */\n helperText?: string\n /**\n * A helper text positioned at the end of the field. Good for Textarea fields.\n */\n secondaryHelperText?: string\n /**\n * The error text of the field. Shown when the field is invalid.\n */\n errorText?: string\n}\n\n/**\n * The Field component is the context provider for all FieldParts and displays\n * the label, helperText, and ErrorText.\n * @description [Field Docs](https://cerberus.digitalu.design/react/field)\n * @example\n * ```tsx\n * <Field\n * ids={{\n * control: 'firstName',\n * }}\n * label=\"Label\"\n * helperText=\"This is what people will see on your profile.\"\n * errorText=\"A first name is required to create an account.\"\n * required\n * >\n * <Input name=\"firstName\" type=\"text\" />\n * </Field>\n * ```\n */\nexport function Field(props: FieldProps) {\n const [statusProps, fieldProps, rootProps] = splitProps(\n props,\n ['disabled', 'required', 'readOnly', 'invalid'],\n ['label', 'helperText', 'secondaryHelperText', 'errorText', 'children'],\n )\n\n return (\n <FieldRoot {...statusProps} {...rootProps}>\n <Show when={fieldProps.label}>\n <FieldLabel>{fieldProps.label}</FieldLabel>\n </Show>\n\n {fieldProps.children}\n\n <HStack justifyContent=\"space-between\" w=\"full\">\n <HelperText invalid={statusProps.invalid}>\n {fieldProps.helperText}\n </HelperText>\n\n <FieldErrorText>{fieldProps.errorText}</FieldErrorText>\n\n <Show when={fieldProps.secondaryHelperText}>\n <FieldHelperText>{fieldProps.secondaryHelperText}</FieldHelperText>\n </Show>\n </HStack>\n </FieldRoot>\n )\n}\n","/**\n * This module contains utility functions that are used across your app.\n * @module Utils\n */\n\n/**\n * Formats the count of notifications to be displayed in the notification badge.\n * @param count - The number of notifications.\n * @returns The formatted count of notifications.\n * @example\n * ```tsx\n * const count = formatNotifyCount(100)\n * console.log(count) // '99+'\n * ```\n */\nexport function formatNotifyCount(count: number): string {\n if (count > 99) return '99+'\n return count.toString()\n}\n\n/**\n * Splits the properties of an object into multiple groups based on lists of keys.\n * @param props - The object to split.\n * @param keyGroups - The lists of keys to include in each group.\n * @returns An array of objects: each containing the properties specified in the corresponding key group, and the last object containing the remaining keys.\n */\nexport function splitProps<T extends object>(\n props: T,\n ...keyGroups: (keyof T)[][]\n): { [K in keyof T]?: T[K] }[] {\n const result = keyGroups.map(() => ({}) as { [K in keyof T]?: T[K] })\n const rest = {} as { [K in keyof T]?: T[K] }\n\n for (const key in props) {\n let assigned = false\n for (let i = 0; i < keyGroups.length; i++) {\n if (keyGroups[i].includes(key as keyof T)) {\n result[i][key as keyof T] = props[key]\n assigned = true\n break\n }\n }\n if (!assigned) {\n rest[key as keyof T] = props[key]\n }\n }\n\n return [...result, rest]\n}\n\nexport * from './localStorage'\n","import { type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps<T> {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: T | boolean | null | undefined\n /**\n * The children to render when the condition is false.\n */\n fallback?: ReactNode\n}\n\n/**\n * Conditionally render a memoized version of the children or optional fallback\n * content.\n * @see https://cerberus.digitalu.design/react/show\n * @example\n * ```tsx\n * <Show when={isLoggedIn} fallback={<Navigate to=\"/login\" />}>\n * <Dashboard />\n * </Show>\n */\nexport function Show<T>(props: PropsWithChildren<ShowProps<T>>) {\n const { when, children, fallback } = props\n\n if (when) {\n return <>{children}</>\n }\n\n if (fallback) {\n return <>{fallback}</>\n }\n\n return null\n}\n","import {\n 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 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 { 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","import type { PropsWithChildren } from 'react'\nimport { FieldHelperText } from './primitives'\n\ninterface HelperTextProps {\n invalid?: boolean\n}\n\n/**\n * The HelperText component is an abstraction for hiding the helper text\n * when the field is invalid. Ark UI assumes people want the helper text\n * to always be visible, so this is a workaround for that.\n */\nexport function HelperText(props: PropsWithChildren<HelperTextProps>) {\n if (props.invalid) return null\n return (\n <FieldHelperText data-has-content={Boolean(props.children)}>\n {props.children}\n </FieldHelperText>\n )\n}\n","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"],"mappings":"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","names":["Field","import_field","import_react","import_recipes","import_jsx_runtime","import_css","import_jsx_runtime","import_react","import_css","import_recipes","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","Field"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/field/index.ts","../../../../src/components/field/field.tsx","../../../../src/utils/index.ts","../../../../src/components/show/show.tsx","../../../../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/input.tsx","../../../../src/components/field/error-text.tsx","../../../../src/components/field/helper-text.tsx","../../../../src/components/field/parts.ts"],"sourcesContent":["export * from './field'\nexport * from './primitives'\nexport * from './parts'\nexport * from './start-indicator'\nexport * from './status-indicator'\n\nexport type { FieldInputElProps } from './input'\n","import { type FieldRootProps } from '@ark-ui/react/field'\nimport { HStack } from 'styled-system/jsx'\nimport { splitProps } from '../../utils/index'\nimport { Show } from '../show/index'\nimport {\n FieldErrorText,\n FieldHelperText,\n FieldLabel,\n FieldRoot,\n} from './primitives'\nimport { HelperText } from './helper-text'\n\nexport interface FieldProps extends FieldRootProps {\n /**\n * The label of the field.\n */\n label?: string\n /**\n * The helper text of the field.\n */\n helperText?: string\n /**\n * A helper text positioned at the end of the field. Good for Textarea fields.\n */\n secondaryHelperText?: string\n /**\n * The error text of the field. Shown when the field is invalid.\n */\n errorText?: string\n}\n\n/**\n * The Field component is the context provider for all FieldParts and displays\n * the label, helperText, and ErrorText.\n * @description [Field Docs](https://cerberus.digitalu.design/react/field)\n * @example\n * ```tsx\n * <Field\n * ids={{\n * control: 'firstName',\n * }}\n * label=\"Label\"\n * helperText=\"This is what people will see on your profile.\"\n * errorText=\"A first name is required to create an account.\"\n * required\n * >\n * <Input name=\"firstName\" type=\"text\" />\n * </Field>\n * ```\n */\nexport function Field(props: FieldProps) {\n const [statusProps, fieldProps, rootProps] = splitProps(\n props,\n ['disabled', 'required', 'readOnly', 'invalid'],\n ['label', 'helperText', 'secondaryHelperText', 'errorText', 'children'],\n )\n\n return (\n <FieldRoot {...statusProps} {...rootProps}>\n <Show when={fieldProps.label}>\n <FieldLabel>{fieldProps.label}</FieldLabel>\n </Show>\n\n {fieldProps.children}\n\n <HStack justifyContent=\"space-between\" w=\"full\">\n <HelperText invalid={statusProps.invalid}>\n {fieldProps.helperText}\n </HelperText>\n\n <FieldErrorText>{fieldProps.errorText}</FieldErrorText>\n\n <Show when={fieldProps.secondaryHelperText}>\n <FieldHelperText>{fieldProps.secondaryHelperText}</FieldHelperText>\n </Show>\n </HStack>\n </FieldRoot>\n )\n}\n","/**\n * This module contains utility functions that are used across your app.\n * @module Utils\n */\n\n/**\n * Formats the count of notifications to be displayed in the notification badge.\n * @param count - The number of notifications.\n * @returns The formatted count of notifications.\n * @example\n * ```tsx\n * const count = formatNotifyCount(100)\n * console.log(count) // '99+'\n * ```\n */\nexport function formatNotifyCount(count: number): string {\n if (count > 99) return '99+'\n return count.toString()\n}\n\n/**\n * Splits the properties of an object into multiple groups based on lists of keys.\n * @param props - The object to split.\n * @param keyGroups - The lists of keys to include in each group.\n * @returns An array of objects: each containing the properties specified in the corresponding key group, and the last object containing the remaining keys.\n */\nexport function splitProps<T extends object>(\n props: T,\n ...keyGroups: (keyof T)[][]\n): { [K in keyof T]?: T[K] }[] {\n const result = keyGroups.map(() => ({}) as { [K in keyof T]?: T[K] })\n const rest = {} as { [K in keyof T]?: T[K] }\n\n for (const key in props) {\n let assigned = false\n for (let i = 0; i < keyGroups.length; i++) {\n if (keyGroups[i].includes(key as keyof T)) {\n result[i][key as keyof T] = props[key]\n assigned = true\n break\n }\n }\n if (!assigned) {\n rest[key as keyof T] = props[key]\n }\n }\n\n return [...result, rest]\n}\n\nexport * from './localStorage'\n","import { type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps<T> {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: T | boolean | null | undefined\n /**\n * The children to render when the condition is false.\n */\n fallback?: ReactNode\n}\n\n/**\n * Conditionally render a memoized version of the children or optional fallback\n * content.\n * @see https://cerberus.digitalu.design/react/show\n * @example\n * ```tsx\n * <Show when={isLoggedIn} fallback={<Navigate to=\"/login\" />}>\n * <Dashboard />\n * </Show>\n */\nexport function Show<T>(props: PropsWithChildren<ShowProps<T>>) {\n const { when, children, fallback } = props\n\n if (when) {\n return <>{children}</>\n }\n\n if (fallback) {\n return <>{fallback}</>\n }\n\n return null\n}\n","import {\n 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 {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n","import { 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 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 { 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","import type { PropsWithChildren } from 'react'\nimport { FieldHelperText } from './primitives'\n\ninterface HelperTextProps {\n invalid?: boolean\n}\n\n/**\n * The HelperText component is an abstraction for hiding the helper text\n * when the field is invalid. Ark UI assumes people want the helper text\n * to always be visible, so this is a workaround for that.\n */\nexport function HelperText(props: PropsWithChildren<HelperTextProps>) {\n if (props.invalid) return null\n return (\n <FieldHelperText data-has-content={Boolean(props.children)}>\n {props.children}\n </FieldHelperText>\n )\n}\n","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"],"mappings":"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","names":["Field","import_field","import_react","import_recipes","import_jsx_runtime","import_css","import_jsx_runtime","import_react","import_css","import_recipes","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","Field"]}
|
|
@@ -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",
|
|
@@ -137,8 +138,12 @@ var CerberusPrimitive = class {
|
|
|
137
138
|
const recipe = this.recipe;
|
|
138
139
|
this.validateComponent(Component);
|
|
139
140
|
const CerbComponent = (internalProps) => {
|
|
140
|
-
const {
|
|
141
|
-
|
|
141
|
+
const {
|
|
142
|
+
css: customCss,
|
|
143
|
+
className,
|
|
144
|
+
...restOfInternalProps
|
|
145
|
+
} = internalProps;
|
|
146
|
+
const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
|
|
142
147
|
const recipeStyles = recipe(variantOptions);
|
|
143
148
|
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
144
149
|
Component,
|
|
@@ -169,8 +174,12 @@ var CerberusPrimitive = class {
|
|
|
169
174
|
const recipe = this.recipe;
|
|
170
175
|
this.validateComponent(Component);
|
|
171
176
|
const CerbComponent = (internalProps) => {
|
|
172
|
-
const {
|
|
173
|
-
|
|
177
|
+
const {
|
|
178
|
+
css: customCss,
|
|
179
|
+
className,
|
|
180
|
+
...restOfInternalProps
|
|
181
|
+
} = internalProps;
|
|
182
|
+
const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
|
|
174
183
|
const styles = recipe(variantOptions);
|
|
175
184
|
const slotStyles = styles[slot];
|
|
176
185
|
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
@@ -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 HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n","import { 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"]}
|
|
@@ -71,8 +71,12 @@ var CerberusPrimitive = class {
|
|
|
71
71
|
const recipe = this.recipe;
|
|
72
72
|
this.validateComponent(Component);
|
|
73
73
|
const CerbComponent = (internalProps) => {
|
|
74
|
-
const {
|
|
75
|
-
|
|
74
|
+
const {
|
|
75
|
+
css: customCss,
|
|
76
|
+
className,
|
|
77
|
+
...restOfInternalProps
|
|
78
|
+
} = internalProps;
|
|
79
|
+
const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
|
|
76
80
|
const recipeStyles = recipe(variantOptions);
|
|
77
81
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
78
82
|
Component,
|
|
@@ -103,8 +107,12 @@ var CerberusPrimitive = class {
|
|
|
103
107
|
const recipe = this.recipe;
|
|
104
108
|
this.validateComponent(Component);
|
|
105
109
|
const CerbComponent = (internalProps) => {
|
|
106
|
-
const {
|
|
107
|
-
|
|
110
|
+
const {
|
|
111
|
+
css: customCss,
|
|
112
|
+
className,
|
|
113
|
+
...restOfInternalProps
|
|
114
|
+
} = internalProps;
|
|
115
|
+
const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
|
|
108
116
|
const styles = recipe(variantOptions);
|
|
109
117
|
const slotStyles = styles[slot];
|
|
110
118
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
@@ -179,10 +187,11 @@ function useCerberusContext() {
|
|
|
179
187
|
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
180
188
|
function FieldStatusIndicator(props) {
|
|
181
189
|
const { fallback, ...nativeProps } = props;
|
|
182
|
-
const styles = (0, import_recipes2.field)();
|
|
183
190
|
const fieldContext = (0, import_react2.useFieldContext)();
|
|
191
|
+
const styles = (0, import_recipes2.field)();
|
|
184
192
|
const { icons } = useCerberusContext();
|
|
185
193
|
const { invalid: InvalidIcon } = icons;
|
|
194
|
+
if (!fieldContext) return null;
|
|
186
195
|
if (fieldContext.invalid) {
|
|
187
196
|
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
188
197
|
"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 HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n","import { 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"]}
|