@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
|
@@ -4589,7 +4589,7 @@ export { FieldStartIndicator as FieldStartIndicator_alias_2 }
|
|
|
4589
4589
|
* </FieldRoot>
|
|
4590
4590
|
* ```
|
|
4591
4591
|
*/
|
|
4592
|
-
declare function FieldStatusIndicator(props: FieldStatusIndicatorProps): JSX.Element;
|
|
4592
|
+
declare function FieldStatusIndicator(props: FieldStatusIndicatorProps): JSX.Element | null;
|
|
4593
4593
|
export { FieldStatusIndicator }
|
|
4594
4594
|
export { FieldStatusIndicator as FieldStatusIndicator_alias_1 }
|
|
4595
4595
|
export { FieldStatusIndicator as FieldStatusIndicator_alias_2 }
|
|
@@ -27279,6 +27279,16 @@ declare interface WithCss {
|
|
|
27279
27279
|
* In most cases, you should use the `css` prop instead.
|
|
27280
27280
|
*/
|
|
27281
27281
|
style?: CSSProperties | Record<string, number | string>;
|
|
27282
|
+
/**
|
|
27283
|
+
* If true, the component will render as a child as the provided element
|
|
27284
|
+
* passing all the given props to the child.
|
|
27285
|
+
*/
|
|
27286
|
+
asChild?: boolean;
|
|
27287
|
+
/**
|
|
27288
|
+
* The class name to apply to the component.
|
|
27289
|
+
* Can be a single class name or an array of class names.
|
|
27290
|
+
*/
|
|
27291
|
+
className?: string;
|
|
27282
27292
|
}
|
|
27283
27293
|
export { WithCss }
|
|
27284
27294
|
export { WithCss as WithCss_alias_1 }
|
|
@@ -77,8 +77,12 @@ var CerberusPrimitive = class {
|
|
|
77
77
|
const recipe = this.recipe;
|
|
78
78
|
this.validateComponent(Component);
|
|
79
79
|
const CerbComponent = (internalProps) => {
|
|
80
|
-
const {
|
|
81
|
-
|
|
80
|
+
const {
|
|
81
|
+
css: customCss,
|
|
82
|
+
className,
|
|
83
|
+
...restOfInternalProps
|
|
84
|
+
} = internalProps;
|
|
85
|
+
const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
|
|
82
86
|
const recipeStyles = recipe(variantOptions);
|
|
83
87
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
84
88
|
Component,
|
|
@@ -109,8 +113,12 @@ var CerberusPrimitive = class {
|
|
|
109
113
|
const recipe = this.recipe;
|
|
110
114
|
this.validateComponent(Component);
|
|
111
115
|
const CerbComponent = (internalProps) => {
|
|
112
|
-
const {
|
|
113
|
-
|
|
116
|
+
const {
|
|
117
|
+
css: customCss,
|
|
118
|
+
className,
|
|
119
|
+
...restOfInternalProps
|
|
120
|
+
} = internalProps;
|
|
121
|
+
const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
|
|
114
122
|
const styles = recipe(variantOptions);
|
|
115
123
|
const slotStyles = styles[slot];
|
|
116
124
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/accordion/index.ts","../../../../src/components/accordion/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/accordion/parts.ts","../../../../src/utils/index.ts","../../../../src/components/show/show.tsx","../../../../src/context/cerberus.tsx","../../../../src/components/accordion/item-indicator.tsx","../../../../src/components/accordion/item-group.tsx"],"sourcesContent":["export * from './parts'\nexport * from './primitives'\nexport * from './item-group'\n","import {\n Accordion,\n type AccordionItemContentProps as ArkAccordionItemContentProps,\n type AccordionItemIndicatorProps as ArkAccordionItemIndicatorProps,\n type AccordionItemProps as ArkAccordionItemProps,\n type AccordionItemTriggerProps as ArkAccordionItemTriggerProps,\n type AccordionRootProps as ArkAccordionRootProps,\n} from '@ark-ui/react/accordion'\nimport { accordion, type AccordionVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Accordion component.\n * @module 'accordion/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(accordion)\n\nfunction AccordionRootEl(props: AccordionRootProps) {\n const { size, ...rootProps } = props\n return <Accordion.Root {...rootProps} data-size={size} />\n}\n\n/**\n * The primitive root component of the Accordion component.\n *\n * This component returns the Ark `Accordion.Root` component which has a\n * base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionRoot = withSlotRecipe(AccordionRootEl, 'root')\nexport type AccordionRootProps = CerberusPrimitiveProps<\n ArkAccordionRootProps & AccordionVariantProps\n>\n\n/**\n * The primitive item component of the Accordion component.\n *\n * This component returns the Ark `Accordion.Item` component which has a\n * base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItem = withSlotRecipe<AccordionItemProps>(\n Accordion.Item,\n 'item',\n)\nexport type AccordionItemProps = CerberusPrimitiveProps<\n ArkAccordionItemProps & AccordionVariantProps\n>\n\n/**\n * The primitive trigger component of the Accordion component.\n *\n * This component returns the Ark `Accordion.ItemTrigger` component which has\n * a base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItemTrigger = withSlotRecipe<AccordionItemTriggerProps>(\n Accordion.ItemTrigger,\n 'itemTrigger',\n)\nexport type AccordionItemTriggerProps =\n CerberusPrimitiveProps<ArkAccordionItemTriggerProps>\n\n/**\n * The primitive item indicator component of the Accordion component.\n *\n * This component returns the Ark `Accordion.ItemIndicator` component which has\n * a base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItemIndicator =\n withSlotRecipe<AccordionItemIndicatorProps>(\n Accordion.ItemIndicator,\n 'itemIndicator',\n )\nexport type AccordionItemIndicatorProps =\n CerberusPrimitiveProps<ArkAccordionItemIndicatorProps>\n\n/**\n * The primitive content component of the Accordion component.\n *\n * This component returns the Ark `Accordion.Content` component which has a\n * base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItemContent = withSlotRecipe<AccordionItemContentProps>(\n Accordion.ItemContent,\n 'itemContent',\n)\nexport type AccordionItemContentProps =\n CerberusPrimitiveProps<ArkAccordionItemContentProps>\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n","import type { ElementType } from 'react'\nimport {\n AccordionItem,\n AccordionItemContent,\n AccordionItemIndicator,\n AccordionItemTrigger,\n AccordionRoot,\n} from './primitives'\n\n/**\n * This module contains the parts of the Accordion component.\n * @module 'accordion/parts'\n */\n\ninterface AccordionPartsValue {\n /**\n * The context provider of the accordion.\n */\n Root: ElementType\n /**\n * The item of the accordion.\n */\n Item: ElementType\n /**\n * The trigger of the accordion item.\n */\n ItemTrigger: ElementType\n /**\n * The content of the accordion item.\n */\n ItemContent: ElementType\n /**\n * The indicator of the accordion item.\n */\n ItemIndicator: ElementType\n}\n\n/**\n * An Object containing the parts of the Accordion component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the AccordionParts object and\n * the entire family of components vs. only what you use.\n */\nexport const AccordionParts: AccordionPartsValue = {\n Root: AccordionRoot,\n Item: AccordionItem,\n ItemTrigger: AccordionItemTrigger,\n ItemContent: AccordionItemContent,\n ItemIndicator: AccordionItemIndicator,\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","'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","'use client'\n\nimport { type AccordionItemIndicatorProps } from '@ark-ui/react/accordion'\nimport { type AccordionVariantProps } from 'styled-system/recipes'\nimport { useCerberusContext } from '../../context/cerberus'\nimport { AccordionParts } from './parts'\n\n/**\n * This module contains the internal AccordionItemIndicator component.\n * @module 'accordion/item-indicator'\n */\n\nexport function AccordionChevronItemIndicator(\n props: AccordionItemIndicatorProps & AccordionVariantProps,\n) {\n const { size, ...indicatorProps } = props\n const iconSize = size === 'sm' ? 16 : '24'\n\n const { icons } = useCerberusContext()\n const { accordionIndicator: ChevronDown } = icons\n\n return (\n <AccordionParts.ItemIndicator {...indicatorProps}>\n <ChevronDown size={iconSize} />\n </AccordionParts.ItemIndicator>\n )\n}\n","import type {\n AccordionItemProps,\n AccordionRootProps,\n} from '@ark-ui/react/accordion'\nimport { type AccordionVariantProps } from 'styled-system/recipes'\nimport { splitProps } from '../../utils/index'\nimport { Show } from '../show/index'\nimport { AccordionParts } from './parts'\nimport { AccordionChevronItemIndicator } from './item-indicator'\n\n/**\n * This module contains an abstraction of the AccordionItem components.\n * @module\n */\n\nexport function Accordion(props: AccordionRootProps & AccordionVariantProps) {\n return <AccordionParts.Root {...props} />\n}\n\nexport interface AccordionItemGroupProps\n extends AccordionItemProps,\n AccordionVariantProps {\n /**\n * The heading of the accordion item to open and close the content.\n */\n heading: string\n /**\n * The position of the arrow indicator.\n */\n indicatorPosition?: 'start' | 'end'\n}\n\n/**\n * The AccordionItemGroup component is an abstraction of the Accordion primitive\n * components which renders an accordion item with a heading and an indicator.\n *\n * It is a wrapper around the `AccordionParts.Item`, `AccordionParts.\n * ItemTrigger`, `AccordionParts.ItemIndicator`, and `AccordionParts.ItemContent` components.\n *\n * @description [Cerberus docs](https://cerberus.digitalu.design/react/accordion)\n * @description [Ark docs](https://ark-ui.com/react/docs/components/accordion)\n */\nexport function AccordionItemGroup(props: AccordionItemGroupProps) {\n const [groupProps, itemProps] = splitProps(props, [\n 'heading',\n 'children',\n 'indicatorPosition',\n ])\n const indicatorPosition = groupProps.indicatorPosition ?? 'end'\n\n return (\n <AccordionParts.Item {...itemProps}>\n <AccordionParts.ItemTrigger data-indicator-position={indicatorPosition}>\n <Show when={indicatorPosition === 'start'}>\n <AccordionChevronItemIndicator />\n </Show>\n\n {groupProps.heading}\n\n <Show when={indicatorPosition === 'end'}>\n <AccordionChevronItemIndicator />\n </Show>\n </AccordionParts.ItemTrigger>\n\n <AccordionParts.ItemContent>\n {groupProps.children}\n </AccordionParts.ItemContent>\n </AccordionParts.Item>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,mBAAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,uBAOO;AACP,qBAAsD;;;ACRtD,iBAAwB;AAmEX;AA9CN,IAAM,oBAAN,MAAwB;AAAA,EAG7B,YAAY,QAAkC;AAF9C;AAkCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wCAAe,CACb,WACA,YAC2B;AAC3B,YAAM,EAAE,aAAa,IAAI,WAAW,CAAC;AAErC,WAAK,kBAAkB,SAAS;AAEhC,YAAM,gBAAgB,CAAC,UAA0C;AAC/D,cAAM,EAAE,KAAK,WAAW,WAAW,GAAG,YAAY,IAAI;AACtD,cAAM,SAAS,KAAK,cAAU,eAAG,eAAW,gBAAI,SAAS,CAAC,CAAC;AAC3D,eAAO,4CAAC,aAAW,GAAG,cAAe,GAAG,QAAS,GAAI,aAAmB;AAAA,MAC1E;AAEA,oBAAc,cAAc,UAAU,eAAe,UAAU;AAC/D,aAAO;AAAA,IACT;AASA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sCAAa,CACX,WACA,YAC+D;AAC/D,YAAM,EAAE,aAAa,IAAI,WAAW,CAAC;AACrC,YAAM,SAAS,KAAK;AAEpB,WAAK,kBAAkB,SAAS;AAEhC,YAAM,gBAAgB,CAAC,kBAAkD;AACvE,cAAM,EAAE,KAAK,WAAW,WAAW,GAAG,YAAY,IAAI;AAEtD,cAAM,CAAC,cAAc,IAAI,OAAO,kBAAkB,WAAW;AAC7D,cAAM,eAAe,OAAO,cAAc;AAE1C,eACE;AAAA,UAAC;AAAA;AAAA,YACE,GAAG;AAAA,YACH,GAAI;AAAA,YACL,eAAW,eAAG,WAAW,kBAAc,gBAAI,SAAS,CAAC;AAAA;AAAA,QACvD;AAAA,MAEJ;AAEA,oBAAc,cAAc,UAAU,eAAe,UAAU;AAC/D,aAAO;AAAA,IACT;AAcA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0CAAiB,CACf,WACA,MACA,YACG;AACH,YAAM,EAAE,aAAa,IAAI,WAAW,CAAC;AACrC,YAAM,SAAS,KAAK;AAEpB,WAAK,kBAAkB,SAAS;AAEhC,YAAM,gBAAgB,CAAC,kBAAkD;AACvE,cAAM,EAAE,KAAK,WAAW,WAAW,GAAG,YAAY,IAAI;AAEtD,cAAM,CAAC,cAAc,IAAI,OAAO,kBAAkB,WAAW;AAC7D,cAAM,SAAS,OAAO,cAAc;AACpC,cAAM,aAAa,OAAO,IAA2B;AAErD,eACE;AAAA,UAAC;AAAA;AAAA,YACE,GAAG;AAAA,YACH,GAAI;AAAA,YACL,eAAW,eAAG,WAAW,gBAAY,gBAAI,SAAS,CAAC;AAAA;AAAA,QACrD;AAAA,MAEJ;AAEA,oBAAc,cAAc,UAAU,eAAe,UAAU;AAC/D,aAAO;AAAA,IACT;AA5HE,SAAK,SAAS,UAAU;AAAA,EAC1B;AAAA,EAEQ,UAAU,QAAqD;AACrE,QAAI,QAAQ;AACV,aAAO;AAAA,QACL,WAAW;AAAA,MACb;AAAA,IACF;AACA,WAAO,CAAC;AAAA,EACV;AAAA,EAEQ,kBACN,WACA;AACA,QAAI,OAAO,cAAc,cAAc,OAAO,cAAc,UAAU;AACpE,YAAM,IAAI,MAAM,mDAAmD;AAAA,IACrE;AAAA,EACF;AA2GF;;;AChIO,SAAS,wBACd,QACA;AACA,SAAO,IAAI,kBAAkB,MAAM;AACrC;;;AFHS,IAAAC,sBAAA;AAJT,IAAM,EAAE,eAAe,IAAI,wBAAwB,wBAAS;AAE5D,SAAS,gBAAgB,OAA2B;AAClD,QAAM,EAAE,MAAM,GAAG,UAAU,IAAI;AAC/B,SAAO,6CAAC,2BAAU,MAAV,EAAgB,GAAG,WAAW,aAAW,MAAM;AACzD;AAQO,IAAM,gBAAgB,eAAe,iBAAiB,MAAM;AAW5D,IAAM,gBAAgB;AAAA,EAC3B,2BAAU;AAAA,EACV;AACF;AAWO,IAAM,uBAAuB;AAAA,EAClC,2BAAU;AAAA,EACV;AACF;AAUO,IAAM,yBACX;AAAA,EACE,2BAAU;AAAA,EACV;AACF;AAUK,IAAM,uBAAuB;AAAA,EAClC,2BAAU;AAAA,EACV;AACF;;;AGzCO,IAAM,iBAAsC;AAAA,EACjD,MAAM;AAAA,EACN,MAAM;AAAA,EACN,aAAa;AAAA,EACb,aAAa;AAAA,EACb,eAAe;AACjB;;;AC1BO,SAAS,WACd,UACG,WAC0B;AAC7B,QAAM,SAAS,UAAU,IAAI,OAAO,CAAC,EAA+B;AACpE,QAAM,OAAO,CAAC;AAEd,aAAW,OAAO,OAAO;AACvB,QAAI,WAAW;AACf,aAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACzC,UAAI,UAAU,CAAC,EAAE,SAAS,GAAc,GAAG;AACzC,eAAO,CAAC,EAAE,GAAc,IAAI,MAAM,GAAG;AACrC,mBAAW;AACX;AAAA,MACF;AAAA,IACF;AACA,QAAI,CAAC,UAAU;AACb,WAAK,GAAc,IAAI,MAAM,GAAG;AAAA,IAClC;AAAA,EACF;AAEA,SAAO,CAAC,GAAG,QAAQ,IAAI;AACzB;;;AChBW,IAAAC,sBAAA;AAJJ,SAAS,KAAQ,OAAwC;AAC9D,QAAM,EAAE,MAAM,UAAU,SAAS,IAAI;AAErC,MAAI,MAAM;AACR,WAAO,6EAAG,UAAS;AAAA,EACrB;AAEA,MAAI,UAAU;AACZ,WAAO,6EAAG,oBAAS;AAAA,EACrB;AAEA,SAAO;AACT;;;ACtCA,mBAAkE;AAyB9D,IAAAC,sBAAA;AAfJ,IAAM,sBAAkB,4BAA2C,IAAI;AAyBhE,SAAS,qBAAqB;AACnC,QAAM,cAAU,yBAAW,eAAe;AAC1C,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,oDAAoD;AAAA,EACtE;AACA,SAAO;AACT;;;ACpBM,IAAAC,sBAAA;AAXC,SAAS,8BACd,OACA;AACA,QAAM,EAAE,MAAM,GAAG,eAAe,IAAI;AACpC,QAAM,WAAW,SAAS,OAAO,KAAK;AAEtC,QAAM,EAAE,MAAM,IAAI,mBAAmB;AACrC,QAAM,EAAE,oBAAoB,YAAY,IAAI;AAE5C,SACE,6CAAC,eAAe,eAAf,EAA8B,GAAG,gBAChC,uDAAC,eAAY,MAAM,UAAU,GAC/B;AAEJ;;;ACVS,IAAAC,sBAAA;AADF,SAASC,WAAU,OAAmD;AAC3E,SAAO,6CAAC,eAAe,MAAf,EAAqB,GAAG,OAAO;AACzC;AAyBO,SAAS,mBAAmB,OAAgC;AACjE,QAAM,CAAC,YAAY,SAAS,IAAI,WAAW,OAAO;AAAA,IAChD;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,oBAAoB,WAAW,qBAAqB;AAE1D,SACE,8CAAC,eAAe,MAAf,EAAqB,GAAG,WACvB;AAAA,kDAAC,eAAe,aAAf,EAA2B,2BAAyB,mBACnD;AAAA,mDAAC,QAAK,MAAM,sBAAsB,SAChC,uDAAC,iCAA8B,GACjC;AAAA,MAEC,WAAW;AAAA,MAEZ,6CAAC,QAAK,MAAM,sBAAsB,OAChC,uDAAC,iCAA8B,GACjC;AAAA,OACF;AAAA,IAEA,6CAAC,eAAe,aAAf,EACE,qBAAW,UACd;AAAA,KACF;AAEJ;","names":["Accordion","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","Accordion"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/accordion/index.ts","../../../../src/components/accordion/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/accordion/parts.ts","../../../../src/utils/index.ts","../../../../src/components/show/show.tsx","../../../../src/context/cerberus.tsx","../../../../src/components/accordion/item-indicator.tsx","../../../../src/components/accordion/item-group.tsx"],"sourcesContent":["export * from './parts'\nexport * from './primitives'\nexport * from './item-group'\n","import {\n Accordion,\n type AccordionItemContentProps as ArkAccordionItemContentProps,\n type AccordionItemIndicatorProps as ArkAccordionItemIndicatorProps,\n type AccordionItemProps as ArkAccordionItemProps,\n type AccordionItemTriggerProps as ArkAccordionItemTriggerProps,\n type AccordionRootProps as ArkAccordionRootProps,\n} from '@ark-ui/react/accordion'\nimport { accordion, type AccordionVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Accordion component.\n * @module 'accordion/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(accordion)\n\nfunction AccordionRootEl(props: AccordionRootProps) {\n const { size, ...rootProps } = props\n return <Accordion.Root {...rootProps} data-size={size} />\n}\n\n/**\n * The primitive root component of the Accordion component.\n *\n * This component returns the Ark `Accordion.Root` component which has a\n * base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionRoot = withSlotRecipe(AccordionRootEl, 'root')\nexport type AccordionRootProps = CerberusPrimitiveProps<\n ArkAccordionRootProps & AccordionVariantProps\n>\n\n/**\n * The primitive item component of the Accordion component.\n *\n * This component returns the Ark `Accordion.Item` component which has a\n * base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItem = withSlotRecipe<AccordionItemProps>(\n Accordion.Item,\n 'item',\n)\nexport type AccordionItemProps = CerberusPrimitiveProps<\n ArkAccordionItemProps & AccordionVariantProps\n>\n\n/**\n * The primitive trigger component of the Accordion component.\n *\n * This component returns the Ark `Accordion.ItemTrigger` component which has\n * a base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItemTrigger = withSlotRecipe<AccordionItemTriggerProps>(\n Accordion.ItemTrigger,\n 'itemTrigger',\n)\nexport type AccordionItemTriggerProps =\n CerberusPrimitiveProps<ArkAccordionItemTriggerProps>\n\n/**\n * The primitive item indicator component of the Accordion component.\n *\n * This component returns the Ark `Accordion.ItemIndicator` component which has\n * a base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItemIndicator =\n withSlotRecipe<AccordionItemIndicatorProps>(\n Accordion.ItemIndicator,\n 'itemIndicator',\n )\nexport type AccordionItemIndicatorProps =\n CerberusPrimitiveProps<ArkAccordionItemIndicatorProps>\n\n/**\n * The primitive content component of the Accordion component.\n *\n * This component returns the Ark `Accordion.Content` component which has a\n * base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItemContent = withSlotRecipe<AccordionItemContentProps>(\n Accordion.ItemContent,\n 'itemContent',\n)\nexport type AccordionItemContentProps =\n CerberusPrimitiveProps<ArkAccordionItemContentProps>\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n","import type { ElementType } from 'react'\nimport {\n AccordionItem,\n AccordionItemContent,\n AccordionItemIndicator,\n AccordionItemTrigger,\n AccordionRoot,\n} from './primitives'\n\n/**\n * This module contains the parts of the Accordion component.\n * @module 'accordion/parts'\n */\n\ninterface AccordionPartsValue {\n /**\n * The context provider of the accordion.\n */\n Root: ElementType\n /**\n * The item of the accordion.\n */\n Item: ElementType\n /**\n * The trigger of the accordion item.\n */\n ItemTrigger: ElementType\n /**\n * The content of the accordion item.\n */\n ItemContent: ElementType\n /**\n * The indicator of the accordion item.\n */\n ItemIndicator: ElementType\n}\n\n/**\n * An Object containing the parts of the Accordion component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the AccordionParts object and\n * the entire family of components vs. only what you use.\n */\nexport const AccordionParts: AccordionPartsValue = {\n Root: AccordionRoot,\n Item: AccordionItem,\n ItemTrigger: AccordionItemTrigger,\n ItemContent: AccordionItemContent,\n ItemIndicator: AccordionItemIndicator,\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","'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","'use client'\n\nimport { type AccordionItemIndicatorProps } from '@ark-ui/react/accordion'\nimport { type AccordionVariantProps } from 'styled-system/recipes'\nimport { useCerberusContext } from '../../context/cerberus'\nimport { AccordionParts } from './parts'\n\n/**\n * This module contains the internal AccordionItemIndicator component.\n * @module 'accordion/item-indicator'\n */\n\nexport function AccordionChevronItemIndicator(\n props: AccordionItemIndicatorProps & AccordionVariantProps,\n) {\n const { size, ...indicatorProps } = props\n const iconSize = size === 'sm' ? 16 : '24'\n\n const { icons } = useCerberusContext()\n const { accordionIndicator: ChevronDown } = icons\n\n return (\n <AccordionParts.ItemIndicator {...indicatorProps}>\n <ChevronDown size={iconSize} />\n </AccordionParts.ItemIndicator>\n )\n}\n","import type {\n AccordionItemProps,\n AccordionRootProps,\n} from '@ark-ui/react/accordion'\nimport { type AccordionVariantProps } from 'styled-system/recipes'\nimport { splitProps } from '../../utils/index'\nimport { Show } from '../show/index'\nimport { AccordionParts } from './parts'\nimport { AccordionChevronItemIndicator } from './item-indicator'\n\n/**\n * This module contains an abstraction of the AccordionItem components.\n * @module\n */\n\nexport function Accordion(props: AccordionRootProps & AccordionVariantProps) {\n return <AccordionParts.Root {...props} />\n}\n\nexport interface AccordionItemGroupProps\n extends AccordionItemProps,\n AccordionVariantProps {\n /**\n * The heading of the accordion item to open and close the content.\n */\n heading: string\n /**\n * The position of the arrow indicator.\n */\n indicatorPosition?: 'start' | 'end'\n}\n\n/**\n * The AccordionItemGroup component is an abstraction of the Accordion primitive\n * components which renders an accordion item with a heading and an indicator.\n *\n * It is a wrapper around the `AccordionParts.Item`, `AccordionParts.\n * ItemTrigger`, `AccordionParts.ItemIndicator`, and `AccordionParts.ItemContent` components.\n *\n * @description [Cerberus docs](https://cerberus.digitalu.design/react/accordion)\n * @description [Ark docs](https://ark-ui.com/react/docs/components/accordion)\n */\nexport function AccordionItemGroup(props: AccordionItemGroupProps) {\n const [groupProps, itemProps] = splitProps(props, [\n 'heading',\n 'children',\n 'indicatorPosition',\n ])\n const indicatorPosition = groupProps.indicatorPosition ?? 'end'\n\n return (\n <AccordionParts.Item {...itemProps}>\n <AccordionParts.ItemTrigger data-indicator-position={indicatorPosition}>\n <Show when={indicatorPosition === 'start'}>\n <AccordionChevronItemIndicator />\n </Show>\n\n {groupProps.heading}\n\n <Show when={indicatorPosition === 'end'}>\n <AccordionChevronItemIndicator />\n </Show>\n </AccordionParts.ItemTrigger>\n\n <AccordionParts.ItemContent>\n {groupProps.children}\n </AccordionParts.ItemContent>\n </AccordionParts.Item>\n )\n}\n"],"mappings":"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","names":["Accordion","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","Accordion"]}
|
|
@@ -104,8 +104,12 @@ var CerberusPrimitive = class {
|
|
|
104
104
|
const recipe = this.recipe;
|
|
105
105
|
this.validateComponent(Component);
|
|
106
106
|
const CerbComponent = (internalProps) => {
|
|
107
|
-
const {
|
|
108
|
-
|
|
107
|
+
const {
|
|
108
|
+
css: customCss,
|
|
109
|
+
className,
|
|
110
|
+
...restOfInternalProps
|
|
111
|
+
} = internalProps;
|
|
112
|
+
const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
|
|
109
113
|
const recipeStyles = recipe(variantOptions);
|
|
110
114
|
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
111
115
|
Component,
|
|
@@ -136,8 +140,12 @@ var CerberusPrimitive = class {
|
|
|
136
140
|
const recipe = this.recipe;
|
|
137
141
|
this.validateComponent(Component);
|
|
138
142
|
const CerbComponent = (internalProps) => {
|
|
139
|
-
const {
|
|
140
|
-
|
|
143
|
+
const {
|
|
144
|
+
css: customCss,
|
|
145
|
+
className,
|
|
146
|
+
...restOfInternalProps
|
|
147
|
+
} = internalProps;
|
|
148
|
+
const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
|
|
141
149
|
const styles = recipe(variantOptions);
|
|
142
150
|
const slotStyles = styles[slot];
|
|
143
151
|
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/accordion/item-group.tsx","../../../../src/utils/index.ts","../../../../src/components/show/show.tsx","../../../../src/components/accordion/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/accordion/parts.ts","../../../../src/context/cerberus.tsx","../../../../src/components/accordion/item-indicator.tsx"],"sourcesContent":["import type {\n AccordionItemProps,\n AccordionRootProps,\n} from '@ark-ui/react/accordion'\nimport { type AccordionVariantProps } from 'styled-system/recipes'\nimport { splitProps } from '../../utils/index'\nimport { Show } from '../show/index'\nimport { AccordionParts } from './parts'\nimport { AccordionChevronItemIndicator } from './item-indicator'\n\n/**\n * This module contains an abstraction of the AccordionItem components.\n * @module\n */\n\nexport function Accordion(props: AccordionRootProps & AccordionVariantProps) {\n return <AccordionParts.Root {...props} />\n}\n\nexport interface AccordionItemGroupProps\n extends AccordionItemProps,\n AccordionVariantProps {\n /**\n * The heading of the accordion item to open and close the content.\n */\n heading: string\n /**\n * The position of the arrow indicator.\n */\n indicatorPosition?: 'start' | 'end'\n}\n\n/**\n * The AccordionItemGroup component is an abstraction of the Accordion primitive\n * components which renders an accordion item with a heading and an indicator.\n *\n * It is a wrapper around the `AccordionParts.Item`, `AccordionParts.\n * ItemTrigger`, `AccordionParts.ItemIndicator`, and `AccordionParts.ItemContent` components.\n *\n * @description [Cerberus docs](https://cerberus.digitalu.design/react/accordion)\n * @description [Ark docs](https://ark-ui.com/react/docs/components/accordion)\n */\nexport function AccordionItemGroup(props: AccordionItemGroupProps) {\n const [groupProps, itemProps] = splitProps(props, [\n 'heading',\n 'children',\n 'indicatorPosition',\n ])\n const indicatorPosition = groupProps.indicatorPosition ?? 'end'\n\n return (\n <AccordionParts.Item {...itemProps}>\n <AccordionParts.ItemTrigger data-indicator-position={indicatorPosition}>\n <Show when={indicatorPosition === 'start'}>\n <AccordionChevronItemIndicator />\n </Show>\n\n {groupProps.heading}\n\n <Show when={indicatorPosition === 'end'}>\n <AccordionChevronItemIndicator />\n </Show>\n </AccordionParts.ItemTrigger>\n\n <AccordionParts.ItemContent>\n {groupProps.children}\n </AccordionParts.ItemContent>\n </AccordionParts.Item>\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 Accordion,\n type AccordionItemContentProps as ArkAccordionItemContentProps,\n type AccordionItemIndicatorProps as ArkAccordionItemIndicatorProps,\n type AccordionItemProps as ArkAccordionItemProps,\n type AccordionItemTriggerProps as ArkAccordionItemTriggerProps,\n type AccordionRootProps as ArkAccordionRootProps,\n} from '@ark-ui/react/accordion'\nimport { accordion, type AccordionVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Accordion component.\n * @module 'accordion/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(accordion)\n\nfunction AccordionRootEl(props: AccordionRootProps) {\n const { size, ...rootProps } = props\n return <Accordion.Root {...rootProps} data-size={size} />\n}\n\n/**\n * The primitive root component of the Accordion component.\n *\n * This component returns the Ark `Accordion.Root` component which has a\n * base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionRoot = withSlotRecipe(AccordionRootEl, 'root')\nexport type AccordionRootProps = CerberusPrimitiveProps<\n ArkAccordionRootProps & AccordionVariantProps\n>\n\n/**\n * The primitive item component of the Accordion component.\n *\n * This component returns the Ark `Accordion.Item` component which has a\n * base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItem = withSlotRecipe<AccordionItemProps>(\n Accordion.Item,\n 'item',\n)\nexport type AccordionItemProps = CerberusPrimitiveProps<\n ArkAccordionItemProps & AccordionVariantProps\n>\n\n/**\n * The primitive trigger component of the Accordion component.\n *\n * This component returns the Ark `Accordion.ItemTrigger` component which has\n * a base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItemTrigger = withSlotRecipe<AccordionItemTriggerProps>(\n Accordion.ItemTrigger,\n 'itemTrigger',\n)\nexport type AccordionItemTriggerProps =\n CerberusPrimitiveProps<ArkAccordionItemTriggerProps>\n\n/**\n * The primitive item indicator component of the Accordion component.\n *\n * This component returns the Ark `Accordion.ItemIndicator` component which has\n * a base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItemIndicator =\n withSlotRecipe<AccordionItemIndicatorProps>(\n Accordion.ItemIndicator,\n 'itemIndicator',\n )\nexport type AccordionItemIndicatorProps =\n CerberusPrimitiveProps<ArkAccordionItemIndicatorProps>\n\n/**\n * The primitive content component of the Accordion component.\n *\n * This component returns the Ark `Accordion.Content` component which has a\n * base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItemContent = withSlotRecipe<AccordionItemContentProps>(\n Accordion.ItemContent,\n 'itemContent',\n)\nexport type AccordionItemContentProps =\n CerberusPrimitiveProps<ArkAccordionItemContentProps>\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n","import type { ElementType } from 'react'\nimport {\n AccordionItem,\n AccordionItemContent,\n AccordionItemIndicator,\n AccordionItemTrigger,\n AccordionRoot,\n} from './primitives'\n\n/**\n * This module contains the parts of the Accordion component.\n * @module 'accordion/parts'\n */\n\ninterface AccordionPartsValue {\n /**\n * The context provider of the accordion.\n */\n Root: ElementType\n /**\n * The item of the accordion.\n */\n Item: ElementType\n /**\n * The trigger of the accordion item.\n */\n ItemTrigger: ElementType\n /**\n * The content of the accordion item.\n */\n ItemContent: ElementType\n /**\n * The indicator of the accordion item.\n */\n ItemIndicator: ElementType\n}\n\n/**\n * An Object containing the parts of the Accordion component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the AccordionParts object and\n * the entire family of components vs. only what you use.\n */\nexport const AccordionParts: AccordionPartsValue = {\n Root: AccordionRoot,\n Item: AccordionItem,\n ItemTrigger: AccordionItemTrigger,\n ItemContent: AccordionItemContent,\n ItemIndicator: AccordionItemIndicator,\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","'use client'\n\nimport { type AccordionItemIndicatorProps } from '@ark-ui/react/accordion'\nimport { type AccordionVariantProps } from 'styled-system/recipes'\nimport { useCerberusContext } from '../../context/cerberus'\nimport { AccordionParts } from './parts'\n\n/**\n * This module contains the internal AccordionItemIndicator component.\n * @module 'accordion/item-indicator'\n */\n\nexport function AccordionChevronItemIndicator(\n props: AccordionItemIndicatorProps & AccordionVariantProps,\n) {\n const { size, ...indicatorProps } = props\n const iconSize = size === 'sm' ? 16 : '24'\n\n const { icons } = useCerberusContext()\n const { accordionIndicator: ChevronDown } = icons\n\n return (\n <AccordionParts.ItemIndicator {...indicatorProps}>\n <ChevronDown size={iconSize} />\n </AccordionParts.ItemIndicator>\n )\n}\n"],"mappings":"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","names":["Accordion","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","Accordion"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/accordion/item-group.tsx","../../../../src/utils/index.ts","../../../../src/components/show/show.tsx","../../../../src/components/accordion/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/accordion/parts.ts","../../../../src/context/cerberus.tsx","../../../../src/components/accordion/item-indicator.tsx"],"sourcesContent":["import type {\n AccordionItemProps,\n AccordionRootProps,\n} from '@ark-ui/react/accordion'\nimport { type AccordionVariantProps } from 'styled-system/recipes'\nimport { splitProps } from '../../utils/index'\nimport { Show } from '../show/index'\nimport { AccordionParts } from './parts'\nimport { AccordionChevronItemIndicator } from './item-indicator'\n\n/**\n * This module contains an abstraction of the AccordionItem components.\n * @module\n */\n\nexport function Accordion(props: AccordionRootProps & AccordionVariantProps) {\n return <AccordionParts.Root {...props} />\n}\n\nexport interface AccordionItemGroupProps\n extends AccordionItemProps,\n AccordionVariantProps {\n /**\n * The heading of the accordion item to open and close the content.\n */\n heading: string\n /**\n * The position of the arrow indicator.\n */\n indicatorPosition?: 'start' | 'end'\n}\n\n/**\n * The AccordionItemGroup component is an abstraction of the Accordion primitive\n * components which renders an accordion item with a heading and an indicator.\n *\n * It is a wrapper around the `AccordionParts.Item`, `AccordionParts.\n * ItemTrigger`, `AccordionParts.ItemIndicator`, and `AccordionParts.ItemContent` components.\n *\n * @description [Cerberus docs](https://cerberus.digitalu.design/react/accordion)\n * @description [Ark docs](https://ark-ui.com/react/docs/components/accordion)\n */\nexport function AccordionItemGroup(props: AccordionItemGroupProps) {\n const [groupProps, itemProps] = splitProps(props, [\n 'heading',\n 'children',\n 'indicatorPosition',\n ])\n const indicatorPosition = groupProps.indicatorPosition ?? 'end'\n\n return (\n <AccordionParts.Item {...itemProps}>\n <AccordionParts.ItemTrigger data-indicator-position={indicatorPosition}>\n <Show when={indicatorPosition === 'start'}>\n <AccordionChevronItemIndicator />\n </Show>\n\n {groupProps.heading}\n\n <Show when={indicatorPosition === 'end'}>\n <AccordionChevronItemIndicator />\n </Show>\n </AccordionParts.ItemTrigger>\n\n <AccordionParts.ItemContent>\n {groupProps.children}\n </AccordionParts.ItemContent>\n </AccordionParts.Item>\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 Accordion,\n type AccordionItemContentProps as ArkAccordionItemContentProps,\n type AccordionItemIndicatorProps as ArkAccordionItemIndicatorProps,\n type AccordionItemProps as ArkAccordionItemProps,\n type AccordionItemTriggerProps as ArkAccordionItemTriggerProps,\n type AccordionRootProps as ArkAccordionRootProps,\n} from '@ark-ui/react/accordion'\nimport { accordion, type AccordionVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Accordion component.\n * @module 'accordion/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(accordion)\n\nfunction AccordionRootEl(props: AccordionRootProps) {\n const { size, ...rootProps } = props\n return <Accordion.Root {...rootProps} data-size={size} />\n}\n\n/**\n * The primitive root component of the Accordion component.\n *\n * This component returns the Ark `Accordion.Root` component which has a\n * base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionRoot = withSlotRecipe(AccordionRootEl, 'root')\nexport type AccordionRootProps = CerberusPrimitiveProps<\n ArkAccordionRootProps & AccordionVariantProps\n>\n\n/**\n * The primitive item component of the Accordion component.\n *\n * This component returns the Ark `Accordion.Item` component which has a\n * base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItem = withSlotRecipe<AccordionItemProps>(\n Accordion.Item,\n 'item',\n)\nexport type AccordionItemProps = CerberusPrimitiveProps<\n ArkAccordionItemProps & AccordionVariantProps\n>\n\n/**\n * The primitive trigger component of the Accordion component.\n *\n * This component returns the Ark `Accordion.ItemTrigger` component which has\n * a base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItemTrigger = withSlotRecipe<AccordionItemTriggerProps>(\n Accordion.ItemTrigger,\n 'itemTrigger',\n)\nexport type AccordionItemTriggerProps =\n CerberusPrimitiveProps<ArkAccordionItemTriggerProps>\n\n/**\n * The primitive item indicator component of the Accordion component.\n *\n * This component returns the Ark `Accordion.ItemIndicator` component which has\n * a base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItemIndicator =\n withSlotRecipe<AccordionItemIndicatorProps>(\n Accordion.ItemIndicator,\n 'itemIndicator',\n )\nexport type AccordionItemIndicatorProps =\n CerberusPrimitiveProps<ArkAccordionItemIndicatorProps>\n\n/**\n * The primitive content component of the Accordion component.\n *\n * This component returns the Ark `Accordion.Content` component which has a\n * base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItemContent = withSlotRecipe<AccordionItemContentProps>(\n Accordion.ItemContent,\n 'itemContent',\n)\nexport type AccordionItemContentProps =\n CerberusPrimitiveProps<ArkAccordionItemContentProps>\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n","import type { ElementType } from 'react'\nimport {\n AccordionItem,\n AccordionItemContent,\n AccordionItemIndicator,\n AccordionItemTrigger,\n AccordionRoot,\n} from './primitives'\n\n/**\n * This module contains the parts of the Accordion component.\n * @module 'accordion/parts'\n */\n\ninterface AccordionPartsValue {\n /**\n * The context provider of the accordion.\n */\n Root: ElementType\n /**\n * The item of the accordion.\n */\n Item: ElementType\n /**\n * The trigger of the accordion item.\n */\n ItemTrigger: ElementType\n /**\n * The content of the accordion item.\n */\n ItemContent: ElementType\n /**\n * The indicator of the accordion item.\n */\n ItemIndicator: ElementType\n}\n\n/**\n * An Object containing the parts of the Accordion component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the AccordionParts object and\n * the entire family of components vs. only what you use.\n */\nexport const AccordionParts: AccordionPartsValue = {\n Root: AccordionRoot,\n Item: AccordionItem,\n ItemTrigger: AccordionItemTrigger,\n ItemContent: AccordionItemContent,\n ItemIndicator: AccordionItemIndicator,\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","'use client'\n\nimport { type AccordionItemIndicatorProps } from '@ark-ui/react/accordion'\nimport { type AccordionVariantProps } from 'styled-system/recipes'\nimport { useCerberusContext } from '../../context/cerberus'\nimport { AccordionParts } from './parts'\n\n/**\n * This module contains the internal AccordionItemIndicator component.\n * @module 'accordion/item-indicator'\n */\n\nexport function AccordionChevronItemIndicator(\n props: AccordionItemIndicatorProps & AccordionVariantProps,\n) {\n const { size, ...indicatorProps } = props\n const iconSize = size === 'sm' ? 16 : '24'\n\n const { icons } = useCerberusContext()\n const { accordionIndicator: ChevronDown } = icons\n\n return (\n <AccordionParts.ItemIndicator {...indicatorProps}>\n <ChevronDown size={iconSize} />\n </AccordionParts.ItemIndicator>\n )\n}\n"],"mappings":"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","names":["Accordion","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","Accordion"]}
|
|
@@ -83,8 +83,12 @@ var CerberusPrimitive = class {
|
|
|
83
83
|
const recipe = this.recipe;
|
|
84
84
|
this.validateComponent(Component);
|
|
85
85
|
const CerbComponent = (internalProps) => {
|
|
86
|
-
const {
|
|
87
|
-
|
|
86
|
+
const {
|
|
87
|
+
css: customCss,
|
|
88
|
+
className,
|
|
89
|
+
...restOfInternalProps
|
|
90
|
+
} = internalProps;
|
|
91
|
+
const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
|
|
88
92
|
const recipeStyles = recipe(variantOptions);
|
|
89
93
|
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
90
94
|
Component,
|
|
@@ -115,8 +119,12 @@ var CerberusPrimitive = class {
|
|
|
115
119
|
const recipe = this.recipe;
|
|
116
120
|
this.validateComponent(Component);
|
|
117
121
|
const CerbComponent = (internalProps) => {
|
|
118
|
-
const {
|
|
119
|
-
|
|
122
|
+
const {
|
|
123
|
+
css: customCss,
|
|
124
|
+
className,
|
|
125
|
+
...restOfInternalProps
|
|
126
|
+
} = internalProps;
|
|
127
|
+
const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
|
|
120
128
|
const styles = recipe(variantOptions);
|
|
121
129
|
const slotStyles = styles[slot];
|
|
122
130
|
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/accordion/item-indicator.tsx","../../../../src/context/cerberus.tsx","../../../../src/components/accordion/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/accordion/parts.ts"],"sourcesContent":["'use client'\n\nimport { type AccordionItemIndicatorProps } from '@ark-ui/react/accordion'\nimport { type AccordionVariantProps } from 'styled-system/recipes'\nimport { useCerberusContext } from '../../context/cerberus'\nimport { AccordionParts } from './parts'\n\n/**\n * This module contains the internal AccordionItemIndicator component.\n * @module 'accordion/item-indicator'\n */\n\nexport function AccordionChevronItemIndicator(\n props: AccordionItemIndicatorProps & AccordionVariantProps,\n) {\n const { size, ...indicatorProps } = props\n const iconSize = size === 'sm' ? 16 : '24'\n\n const { icons } = useCerberusContext()\n const { accordionIndicator: ChevronDown } = icons\n\n return (\n <AccordionParts.ItemIndicator {...indicatorProps}>\n <ChevronDown size={iconSize} />\n </AccordionParts.ItemIndicator>\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 Accordion,\n type AccordionItemContentProps as ArkAccordionItemContentProps,\n type AccordionItemIndicatorProps as ArkAccordionItemIndicatorProps,\n type AccordionItemProps as ArkAccordionItemProps,\n type AccordionItemTriggerProps as ArkAccordionItemTriggerProps,\n type AccordionRootProps as ArkAccordionRootProps,\n} from '@ark-ui/react/accordion'\nimport { accordion, type AccordionVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Accordion component.\n * @module 'accordion/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(accordion)\n\nfunction AccordionRootEl(props: AccordionRootProps) {\n const { size, ...rootProps } = props\n return <Accordion.Root {...rootProps} data-size={size} />\n}\n\n/**\n * The primitive root component of the Accordion component.\n *\n * This component returns the Ark `Accordion.Root` component which has a\n * base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionRoot = withSlotRecipe(AccordionRootEl, 'root')\nexport type AccordionRootProps = CerberusPrimitiveProps<\n ArkAccordionRootProps & AccordionVariantProps\n>\n\n/**\n * The primitive item component of the Accordion component.\n *\n * This component returns the Ark `Accordion.Item` component which has a\n * base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItem = withSlotRecipe<AccordionItemProps>(\n Accordion.Item,\n 'item',\n)\nexport type AccordionItemProps = CerberusPrimitiveProps<\n ArkAccordionItemProps & AccordionVariantProps\n>\n\n/**\n * The primitive trigger component of the Accordion component.\n *\n * This component returns the Ark `Accordion.ItemTrigger` component which has\n * a base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItemTrigger = withSlotRecipe<AccordionItemTriggerProps>(\n Accordion.ItemTrigger,\n 'itemTrigger',\n)\nexport type AccordionItemTriggerProps =\n CerberusPrimitiveProps<ArkAccordionItemTriggerProps>\n\n/**\n * The primitive item indicator component of the Accordion component.\n *\n * This component returns the Ark `Accordion.ItemIndicator` component which has\n * a base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItemIndicator =\n withSlotRecipe<AccordionItemIndicatorProps>(\n Accordion.ItemIndicator,\n 'itemIndicator',\n )\nexport type AccordionItemIndicatorProps =\n CerberusPrimitiveProps<ArkAccordionItemIndicatorProps>\n\n/**\n * The primitive content component of the Accordion component.\n *\n * This component returns the Ark `Accordion.Content` component which has a\n * base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItemContent = withSlotRecipe<AccordionItemContentProps>(\n Accordion.ItemContent,\n 'itemContent',\n)\nexport type AccordionItemContentProps =\n CerberusPrimitiveProps<ArkAccordionItemContentProps>\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n","import type { ElementType } from 'react'\nimport {\n AccordionItem,\n AccordionItemContent,\n AccordionItemIndicator,\n AccordionItemTrigger,\n AccordionRoot,\n} from './primitives'\n\n/**\n * This module contains the parts of the Accordion component.\n * @module 'accordion/parts'\n */\n\ninterface AccordionPartsValue {\n /**\n * The context provider of the accordion.\n */\n Root: ElementType\n /**\n * The item of the accordion.\n */\n Item: ElementType\n /**\n * The trigger of the accordion item.\n */\n ItemTrigger: ElementType\n /**\n * The content of the accordion item.\n */\n ItemContent: ElementType\n /**\n * The indicator of the accordion item.\n */\n ItemIndicator: ElementType\n}\n\n/**\n * An Object containing the parts of the Accordion component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the AccordionParts object and\n * the entire family of components vs. only what you use.\n */\nexport const AccordionParts: AccordionPartsValue = {\n Root: AccordionRoot,\n Item: AccordionItem,\n ItemTrigger: AccordionItemTrigger,\n ItemContent: AccordionItemContent,\n ItemIndicator: AccordionItemIndicator,\n}\n"],"mappings":"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","names":["import_jsx_runtime","import_jsx_runtime","import_jsx_runtime"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/accordion/item-indicator.tsx","../../../../src/context/cerberus.tsx","../../../../src/components/accordion/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/accordion/parts.ts"],"sourcesContent":["'use client'\n\nimport { type AccordionItemIndicatorProps } from '@ark-ui/react/accordion'\nimport { type AccordionVariantProps } from 'styled-system/recipes'\nimport { useCerberusContext } from '../../context/cerberus'\nimport { AccordionParts } from './parts'\n\n/**\n * This module contains the internal AccordionItemIndicator component.\n * @module 'accordion/item-indicator'\n */\n\nexport function AccordionChevronItemIndicator(\n props: AccordionItemIndicatorProps & AccordionVariantProps,\n) {\n const { size, ...indicatorProps } = props\n const iconSize = size === 'sm' ? 16 : '24'\n\n const { icons } = useCerberusContext()\n const { accordionIndicator: ChevronDown } = icons\n\n return (\n <AccordionParts.ItemIndicator {...indicatorProps}>\n <ChevronDown size={iconSize} />\n </AccordionParts.ItemIndicator>\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 Accordion,\n type AccordionItemContentProps as ArkAccordionItemContentProps,\n type AccordionItemIndicatorProps as ArkAccordionItemIndicatorProps,\n type AccordionItemProps as ArkAccordionItemProps,\n type AccordionItemTriggerProps as ArkAccordionItemTriggerProps,\n type AccordionRootProps as ArkAccordionRootProps,\n} from '@ark-ui/react/accordion'\nimport { accordion, type AccordionVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Accordion component.\n * @module 'accordion/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(accordion)\n\nfunction AccordionRootEl(props: AccordionRootProps) {\n const { size, ...rootProps } = props\n return <Accordion.Root {...rootProps} data-size={size} />\n}\n\n/**\n * The primitive root component of the Accordion component.\n *\n * This component returns the Ark `Accordion.Root` component which has a\n * base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionRoot = withSlotRecipe(AccordionRootEl, 'root')\nexport type AccordionRootProps = CerberusPrimitiveProps<\n ArkAccordionRootProps & AccordionVariantProps\n>\n\n/**\n * The primitive item component of the Accordion component.\n *\n * This component returns the Ark `Accordion.Item` component which has a\n * base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItem = withSlotRecipe<AccordionItemProps>(\n Accordion.Item,\n 'item',\n)\nexport type AccordionItemProps = CerberusPrimitiveProps<\n ArkAccordionItemProps & AccordionVariantProps\n>\n\n/**\n * The primitive trigger component of the Accordion component.\n *\n * This component returns the Ark `Accordion.ItemTrigger` component which has\n * a base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItemTrigger = withSlotRecipe<AccordionItemTriggerProps>(\n Accordion.ItemTrigger,\n 'itemTrigger',\n)\nexport type AccordionItemTriggerProps =\n CerberusPrimitiveProps<ArkAccordionItemTriggerProps>\n\n/**\n * The primitive item indicator component of the Accordion component.\n *\n * This component returns the Ark `Accordion.ItemIndicator` component which has\n * a base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItemIndicator =\n withSlotRecipe<AccordionItemIndicatorProps>(\n Accordion.ItemIndicator,\n 'itemIndicator',\n )\nexport type AccordionItemIndicatorProps =\n CerberusPrimitiveProps<ArkAccordionItemIndicatorProps>\n\n/**\n * The primitive content component of the Accordion component.\n *\n * This component returns the Ark `Accordion.Content` component which has a\n * base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItemContent = withSlotRecipe<AccordionItemContentProps>(\n Accordion.ItemContent,\n 'itemContent',\n)\nexport type AccordionItemContentProps =\n CerberusPrimitiveProps<ArkAccordionItemContentProps>\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n","import type { ElementType } from 'react'\nimport {\n AccordionItem,\n AccordionItemContent,\n AccordionItemIndicator,\n AccordionItemTrigger,\n AccordionRoot,\n} from './primitives'\n\n/**\n * This module contains the parts of the Accordion component.\n * @module 'accordion/parts'\n */\n\ninterface AccordionPartsValue {\n /**\n * The context provider of the accordion.\n */\n Root: ElementType\n /**\n * The item of the accordion.\n */\n Item: ElementType\n /**\n * The trigger of the accordion item.\n */\n ItemTrigger: ElementType\n /**\n * The content of the accordion item.\n */\n ItemContent: ElementType\n /**\n * The indicator of the accordion item.\n */\n ItemIndicator: ElementType\n}\n\n/**\n * An Object containing the parts of the Accordion component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the AccordionParts object and\n * the entire family of components vs. only what you use.\n */\nexport const AccordionParts: AccordionPartsValue = {\n Root: AccordionRoot,\n Item: AccordionItem,\n ItemTrigger: AccordionItemTrigger,\n ItemContent: AccordionItemContent,\n ItemIndicator: AccordionItemIndicator,\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACEA,mBAAkE;AAyB9D;AAfJ,IAAM,sBAAkB,4BAA2C,IAAI;AAyBhE,SAAS,qBAAqB;AACnC,QAAM,cAAU,yBAAW,eAAe;AAC1C,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,oDAAoD;AAAA,EACtE;AACA,SAAO;AACT;;;AC3CA,uBAOO;AACP,qBAAsD;;;ACRtD,iBAAwB;AAmEX,IAAAA,sBAAA;AA9CN,IAAM,oBAAN,MAAwB;AAAA,EAG7B,YAAY,QAAkC;AAF9C;AAkCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wCAAe,CACb,WACA,YAC2B;AAC3B,YAAM,EAAE,aAAa,IAAI,WAAW,CAAC;AAErC,WAAK,kBAAkB,SAAS;AAEhC,YAAM,gBAAgB,CAAC,UAA0C;AAC/D,cAAM,EAAE,KAAK,WAAW,WAAW,GAAG,YAAY,IAAI;AACtD,cAAM,SAAS,KAAK,cAAU,eAAG,eAAW,gBAAI,SAAS,CAAC,CAAC;AAC3D,eAAO,6CAAC,aAAW,GAAG,cAAe,GAAG,QAAS,GAAI,aAAmB;AAAA,MAC1E;AAEA,oBAAc,cAAc,UAAU,eAAe,UAAU;AAC/D,aAAO;AAAA,IACT;AASA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sCAAa,CACX,WACA,YAC+D;AAC/D,YAAM,EAAE,aAAa,IAAI,WAAW,CAAC;AACrC,YAAM,SAAS,KAAK;AAEpB,WAAK,kBAAkB,SAAS;AAEhC,YAAM,gBAAgB,CAAC,kBAAkD;AACvE,cAAM;AAAA,UACJ,KAAK;AAAA,UACL;AAAA,UACA,GAAG;AAAA,QACL,IAAI;AAEJ,cAAM,CAAC,gBAAgB,WAAW,IAChC,OAAO,kBAAkB,mBAAmB;AAC9C,cAAM,eAAe,OAAO,cAAc;AAE1C,eACE;AAAA,UAAC;AAAA;AAAA,YACE,GAAG;AAAA,YACH,GAAI;AAAA,YACL,eAAW,eAAG,WAAW,kBAAc,gBAAI,SAAS,CAAC;AAAA;AAAA,QACvD;AAAA,MAEJ;AAEA,oBAAc,cAAc,UAAU,eAAe,UAAU;AAC/D,aAAO;AAAA,IACT;AAcA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0CAAiB,CACf,WACA,MACA,YACG;AACH,YAAM,EAAE,aAAa,IAAI,WAAW,CAAC;AACrC,YAAM,SAAS,KAAK;AAEpB,WAAK,kBAAkB,SAAS;AAEhC,YAAM,gBAAgB,CAAC,kBAAkD;AACvE,cAAM;AAAA,UACJ,KAAK;AAAA,UACL;AAAA,UACA,GAAG;AAAA,QACL,IAAI;AAEJ,cAAM,CAAC,gBAAgB,WAAW,IAChC,OAAO,kBAAkB,mBAAmB;AAC9C,cAAM,SAAS,OAAO,cAAc;AACpC,cAAM,aAAa,OAAO,IAA2B;AAErD,eACE;AAAA,UAAC;AAAA;AAAA,YACE,GAAG;AAAA,YACH,GAAI;AAAA,YACL,eAAW,eAAG,WAAW,gBAAY,gBAAI,SAAS,CAAC;AAAA;AAAA,QACrD;AAAA,MAEJ;AAEA,oBAAc,cAAc,UAAU,eAAe,UAAU;AAC/D,aAAO;AAAA,IACT;AAtIE,SAAK,SAAS,UAAU;AAAA,EAC1B;AAAA,EAEQ,UAAU,QAAqD;AACrE,QAAI,QAAQ;AACV,aAAO;AAAA,QACL,WAAW;AAAA,MACb;AAAA,IACF;AACA,WAAO,CAAC;AAAA,EACV;AAAA,EAEQ,kBACN,WACA;AACA,QAAI,OAAO,cAAc,cAAc,OAAO,cAAc,UAAU;AACpE,YAAM,IAAI,MAAM,mDAAmD;AAAA,IACrE;AAAA,EACF;AAqHF;;;AC1IO,SAAS,wBACd,QACA;AACA,SAAO,IAAI,kBAAkB,MAAM;AACrC;;;AFHS,IAAAC,sBAAA;AAJT,IAAM,EAAE,eAAe,IAAI,wBAAwB,wBAAS;AAE5D,SAAS,gBAAgB,OAA2B;AAClD,QAAM,EAAE,MAAM,GAAG,UAAU,IAAI;AAC/B,SAAO,6CAAC,2BAAU,MAAV,EAAgB,GAAG,WAAW,aAAW,MAAM;AACzD;AAQO,IAAM,gBAAgB,eAAe,iBAAiB,MAAM;AAW5D,IAAM,gBAAgB;AAAA,EAC3B,2BAAU;AAAA,EACV;AACF;AAWO,IAAM,uBAAuB;AAAA,EAClC,2BAAU;AAAA,EACV;AACF;AAUO,IAAM,yBACX;AAAA,EACE,2BAAU;AAAA,EACV;AACF;AAUK,IAAM,uBAAuB;AAAA,EAClC,2BAAU;AAAA,EACV;AACF;;;AGzCO,IAAM,iBAAsC;AAAA,EACjD,MAAM;AAAA,EACN,MAAM;AAAA,EACN,aAAa;AAAA,EACb,aAAa;AAAA,EACb,eAAe;AACjB;;;AL7BM,IAAAC,sBAAA;AAXC,SAAS,8BACd,OACA;AACA,QAAM,EAAE,MAAM,GAAG,eAAe,IAAI;AACpC,QAAM,WAAW,SAAS,OAAO,KAAK;AAEtC,QAAM,EAAE,MAAM,IAAI,mBAAmB;AACrC,QAAM,EAAE,oBAAoB,YAAY,IAAI;AAE5C,SACE,6CAAC,eAAe,eAAf,EAA8B,GAAG,gBAChC,uDAAC,eAAY,MAAM,UAAU,GAC/B;AAEJ;","names":["import_jsx_runtime","import_jsx_runtime","import_jsx_runtime"]}
|
|
@@ -70,8 +70,12 @@ var CerberusPrimitive = class {
|
|
|
70
70
|
const recipe = this.recipe;
|
|
71
71
|
this.validateComponent(Component);
|
|
72
72
|
const CerbComponent = (internalProps) => {
|
|
73
|
-
const {
|
|
74
|
-
|
|
73
|
+
const {
|
|
74
|
+
css: customCss,
|
|
75
|
+
className,
|
|
76
|
+
...restOfInternalProps
|
|
77
|
+
} = internalProps;
|
|
78
|
+
const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
|
|
75
79
|
const recipeStyles = recipe(variantOptions);
|
|
76
80
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
77
81
|
Component,
|
|
@@ -102,8 +106,12 @@ var CerberusPrimitive = class {
|
|
|
102
106
|
const recipe = this.recipe;
|
|
103
107
|
this.validateComponent(Component);
|
|
104
108
|
const CerbComponent = (internalProps) => {
|
|
105
|
-
const {
|
|
106
|
-
|
|
109
|
+
const {
|
|
110
|
+
css: customCss,
|
|
111
|
+
className,
|
|
112
|
+
...restOfInternalProps
|
|
113
|
+
} = internalProps;
|
|
114
|
+
const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
|
|
107
115
|
const styles = recipe(variantOptions);
|
|
108
116
|
const slotStyles = styles[slot];
|
|
109
117
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/accordion/parts.ts","../../../../src/components/accordion/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts"],"sourcesContent":["import type { ElementType } from 'react'\nimport {\n AccordionItem,\n AccordionItemContent,\n AccordionItemIndicator,\n AccordionItemTrigger,\n AccordionRoot,\n} from './primitives'\n\n/**\n * This module contains the parts of the Accordion component.\n * @module 'accordion/parts'\n */\n\ninterface AccordionPartsValue {\n /**\n * The context provider of the accordion.\n */\n Root: ElementType\n /**\n * The item of the accordion.\n */\n Item: ElementType\n /**\n * The trigger of the accordion item.\n */\n ItemTrigger: ElementType\n /**\n * The content of the accordion item.\n */\n ItemContent: ElementType\n /**\n * The indicator of the accordion item.\n */\n ItemIndicator: ElementType\n}\n\n/**\n * An Object containing the parts of the Accordion component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the AccordionParts object and\n * the entire family of components vs. only what you use.\n */\nexport const AccordionParts: AccordionPartsValue = {\n Root: AccordionRoot,\n Item: AccordionItem,\n ItemTrigger: AccordionItemTrigger,\n ItemContent: AccordionItemContent,\n ItemIndicator: AccordionItemIndicator,\n}\n","import {\n Accordion,\n type AccordionItemContentProps as ArkAccordionItemContentProps,\n type AccordionItemIndicatorProps as ArkAccordionItemIndicatorProps,\n type AccordionItemProps as ArkAccordionItemProps,\n type AccordionItemTriggerProps as ArkAccordionItemTriggerProps,\n type AccordionRootProps as ArkAccordionRootProps,\n} from '@ark-ui/react/accordion'\nimport { accordion, type AccordionVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Accordion component.\n * @module 'accordion/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(accordion)\n\nfunction AccordionRootEl(props: AccordionRootProps) {\n const { size, ...rootProps } = props\n return <Accordion.Root {...rootProps} data-size={size} />\n}\n\n/**\n * The primitive root component of the Accordion component.\n *\n * This component returns the Ark `Accordion.Root` component which has a\n * base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionRoot = withSlotRecipe(AccordionRootEl, 'root')\nexport type AccordionRootProps = CerberusPrimitiveProps<\n ArkAccordionRootProps & AccordionVariantProps\n>\n\n/**\n * The primitive item component of the Accordion component.\n *\n * This component returns the Ark `Accordion.Item` component which has a\n * base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItem = withSlotRecipe<AccordionItemProps>(\n Accordion.Item,\n 'item',\n)\nexport type AccordionItemProps = CerberusPrimitiveProps<\n ArkAccordionItemProps & AccordionVariantProps\n>\n\n/**\n * The primitive trigger component of the Accordion component.\n *\n * This component returns the Ark `Accordion.ItemTrigger` component which has\n * a base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItemTrigger = withSlotRecipe<AccordionItemTriggerProps>(\n Accordion.ItemTrigger,\n 'itemTrigger',\n)\nexport type AccordionItemTriggerProps =\n CerberusPrimitiveProps<ArkAccordionItemTriggerProps>\n\n/**\n * The primitive item indicator component of the Accordion component.\n *\n * This component returns the Ark `Accordion.ItemIndicator` component which has\n * a base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItemIndicator =\n withSlotRecipe<AccordionItemIndicatorProps>(\n Accordion.ItemIndicator,\n 'itemIndicator',\n )\nexport type AccordionItemIndicatorProps =\n CerberusPrimitiveProps<ArkAccordionItemIndicatorProps>\n\n/**\n * The primitive content component of the Accordion component.\n *\n * This component returns the Ark `Accordion.Content` component which has a\n * base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItemContent = withSlotRecipe<AccordionItemContentProps>(\n Accordion.ItemContent,\n 'itemContent',\n)\nexport type AccordionItemContentProps =\n CerberusPrimitiveProps<ArkAccordionItemContentProps>\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,uBAOO;AACP,qBAAsD;;;ACRtD,iBAAwB;AAmEX;AA9CN,IAAM,oBAAN,MAAwB;AAAA,EAG7B,YAAY,QAAkC;AAF9C;AAkCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wCAAe,CACb,WACA,YAC2B;AAC3B,YAAM,EAAE,aAAa,IAAI,WAAW,CAAC;AAErC,WAAK,kBAAkB,SAAS;AAEhC,YAAM,gBAAgB,CAAC,UAA0C;AAC/D,cAAM,EAAE,KAAK,WAAW,WAAW,GAAG,YAAY,IAAI;AACtD,cAAM,SAAS,KAAK,cAAU,eAAG,eAAW,gBAAI,SAAS,CAAC,CAAC;AAC3D,eAAO,4CAAC,aAAW,GAAG,cAAe,GAAG,QAAS,GAAI,aAAmB;AAAA,MAC1E;AAEA,oBAAc,cAAc,UAAU,eAAe,UAAU;AAC/D,aAAO;AAAA,IACT;AASA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sCAAa,CACX,WACA,YAC+D;AAC/D,YAAM,EAAE,aAAa,IAAI,WAAW,CAAC;AACrC,YAAM,SAAS,KAAK;AAEpB,WAAK,kBAAkB,SAAS;AAEhC,YAAM,gBAAgB,CAAC,kBAAkD;AACvE,cAAM,EAAE,KAAK,WAAW,WAAW,GAAG,YAAY,IAAI;AAEtD,cAAM,CAAC,cAAc,IAAI,OAAO,kBAAkB,WAAW;AAC7D,cAAM,eAAe,OAAO,cAAc;AAE1C,eACE;AAAA,UAAC;AAAA;AAAA,YACE,GAAG;AAAA,YACH,GAAI;AAAA,YACL,eAAW,eAAG,WAAW,kBAAc,gBAAI,SAAS,CAAC;AAAA;AAAA,QACvD;AAAA,MAEJ;AAEA,oBAAc,cAAc,UAAU,eAAe,UAAU;AAC/D,aAAO;AAAA,IACT;AAcA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0CAAiB,CACf,WACA,MACA,YACG;AACH,YAAM,EAAE,aAAa,IAAI,WAAW,CAAC;AACrC,YAAM,SAAS,KAAK;AAEpB,WAAK,kBAAkB,SAAS;AAEhC,YAAM,gBAAgB,CAAC,kBAAkD;AACvE,cAAM,EAAE,KAAK,WAAW,WAAW,GAAG,YAAY,IAAI;AAEtD,cAAM,CAAC,cAAc,IAAI,OAAO,kBAAkB,WAAW;AAC7D,cAAM,SAAS,OAAO,cAAc;AACpC,cAAM,aAAa,OAAO,IAA2B;AAErD,eACE;AAAA,UAAC;AAAA;AAAA,YACE,GAAG;AAAA,YACH,GAAI;AAAA,YACL,eAAW,eAAG,WAAW,gBAAY,gBAAI,SAAS,CAAC;AAAA;AAAA,QACrD;AAAA,MAEJ;AAEA,oBAAc,cAAc,UAAU,eAAe,UAAU;AAC/D,aAAO;AAAA,IACT;AA5HE,SAAK,SAAS,UAAU;AAAA,EAC1B;AAAA,EAEQ,UAAU,QAAqD;AACrE,QAAI,QAAQ;AACV,aAAO;AAAA,QACL,WAAW;AAAA,MACb;AAAA,IACF;AACA,WAAO,CAAC;AAAA,EACV;AAAA,EAEQ,kBACN,WACA;AACA,QAAI,OAAO,cAAc,cAAc,OAAO,cAAc,UAAU;AACpE,YAAM,IAAI,MAAM,mDAAmD;AAAA,IACrE;AAAA,EACF;AA2GF;;;AChIO,SAAS,wBACd,QACA;AACA,SAAO,IAAI,kBAAkB,MAAM;AACrC;;;AFHS,IAAAA,sBAAA;AAJT,IAAM,EAAE,eAAe,IAAI,wBAAwB,wBAAS;AAE5D,SAAS,gBAAgB,OAA2B;AAClD,QAAM,EAAE,MAAM,GAAG,UAAU,IAAI;AAC/B,SAAO,6CAAC,2BAAU,MAAV,EAAgB,GAAG,WAAW,aAAW,MAAM;AACzD;AAQO,IAAM,gBAAgB,eAAe,iBAAiB,MAAM;AAW5D,IAAM,gBAAgB;AAAA,EAC3B,2BAAU;AAAA,EACV;AACF;AAWO,IAAM,uBAAuB;AAAA,EAClC,2BAAU;AAAA,EACV;AACF;AAUO,IAAM,yBACX;AAAA,EACE,2BAAU;AAAA,EACV;AACF;AAUK,IAAM,uBAAuB;AAAA,EAClC,2BAAU;AAAA,EACV;AACF;;;ADzCO,IAAM,iBAAsC;AAAA,EACjD,MAAM;AAAA,EACN,MAAM;AAAA,EACN,aAAa;AAAA,EACb,aAAa;AAAA,EACb,eAAe;AACjB;","names":["import_jsx_runtime"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/accordion/parts.ts","../../../../src/components/accordion/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts"],"sourcesContent":["import type { ElementType } from 'react'\nimport {\n AccordionItem,\n AccordionItemContent,\n AccordionItemIndicator,\n AccordionItemTrigger,\n AccordionRoot,\n} from './primitives'\n\n/**\n * This module contains the parts of the Accordion component.\n * @module 'accordion/parts'\n */\n\ninterface AccordionPartsValue {\n /**\n * The context provider of the accordion.\n */\n Root: ElementType\n /**\n * The item of the accordion.\n */\n Item: ElementType\n /**\n * The trigger of the accordion item.\n */\n ItemTrigger: ElementType\n /**\n * The content of the accordion item.\n */\n ItemContent: ElementType\n /**\n * The indicator of the accordion item.\n */\n ItemIndicator: ElementType\n}\n\n/**\n * An Object containing the parts of the Accordion component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the AccordionParts object and\n * the entire family of components vs. only what you use.\n */\nexport const AccordionParts: AccordionPartsValue = {\n Root: AccordionRoot,\n Item: AccordionItem,\n ItemTrigger: AccordionItemTrigger,\n ItemContent: AccordionItemContent,\n ItemIndicator: AccordionItemIndicator,\n}\n","import {\n Accordion,\n type AccordionItemContentProps as ArkAccordionItemContentProps,\n type AccordionItemIndicatorProps as ArkAccordionItemIndicatorProps,\n type AccordionItemProps as ArkAccordionItemProps,\n type AccordionItemTriggerProps as ArkAccordionItemTriggerProps,\n type AccordionRootProps as ArkAccordionRootProps,\n} from '@ark-ui/react/accordion'\nimport { accordion, type AccordionVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Accordion component.\n * @module 'accordion/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(accordion)\n\nfunction AccordionRootEl(props: AccordionRootProps) {\n const { size, ...rootProps } = props\n return <Accordion.Root {...rootProps} data-size={size} />\n}\n\n/**\n * The primitive root component of the Accordion component.\n *\n * This component returns the Ark `Accordion.Root` component which has a\n * base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionRoot = withSlotRecipe(AccordionRootEl, 'root')\nexport type AccordionRootProps = CerberusPrimitiveProps<\n ArkAccordionRootProps & AccordionVariantProps\n>\n\n/**\n * The primitive item component of the Accordion component.\n *\n * This component returns the Ark `Accordion.Item` component which has a\n * base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItem = withSlotRecipe<AccordionItemProps>(\n Accordion.Item,\n 'item',\n)\nexport type AccordionItemProps = CerberusPrimitiveProps<\n ArkAccordionItemProps & AccordionVariantProps\n>\n\n/**\n * The primitive trigger component of the Accordion component.\n *\n * This component returns the Ark `Accordion.ItemTrigger` component which has\n * a base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItemTrigger = withSlotRecipe<AccordionItemTriggerProps>(\n Accordion.ItemTrigger,\n 'itemTrigger',\n)\nexport type AccordionItemTriggerProps =\n CerberusPrimitiveProps<ArkAccordionItemTriggerProps>\n\n/**\n * The primitive item indicator component of the Accordion component.\n *\n * This component returns the Ark `Accordion.ItemIndicator` component which has\n * a base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItemIndicator =\n withSlotRecipe<AccordionItemIndicatorProps>(\n Accordion.ItemIndicator,\n 'itemIndicator',\n )\nexport type AccordionItemIndicatorProps =\n CerberusPrimitiveProps<ArkAccordionItemIndicatorProps>\n\n/**\n * The primitive content component of the Accordion component.\n *\n * This component returns the Ark `Accordion.Content` component which has a\n * base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport const AccordionItemContent = withSlotRecipe<AccordionItemContentProps>(\n Accordion.ItemContent,\n 'itemContent',\n)\nexport type AccordionItemContentProps =\n CerberusPrimitiveProps<ArkAccordionItemContentProps>\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n"],"mappings":"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","names":["import_jsx_runtime"]}
|
|
@@ -72,8 +72,12 @@ var CerberusPrimitive = class {
|
|
|
72
72
|
const recipe = this.recipe;
|
|
73
73
|
this.validateComponent(Component);
|
|
74
74
|
const CerbComponent = (internalProps) => {
|
|
75
|
-
const {
|
|
76
|
-
|
|
75
|
+
const {
|
|
76
|
+
css: customCss,
|
|
77
|
+
className,
|
|
78
|
+
...restOfInternalProps
|
|
79
|
+
} = internalProps;
|
|
80
|
+
const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
|
|
77
81
|
const recipeStyles = recipe(variantOptions);
|
|
78
82
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
79
83
|
Component,
|
|
@@ -104,8 +108,12 @@ var CerberusPrimitive = class {
|
|
|
104
108
|
const recipe = this.recipe;
|
|
105
109
|
this.validateComponent(Component);
|
|
106
110
|
const CerbComponent = (internalProps) => {
|
|
107
|
-
const {
|
|
108
|
-
|
|
111
|
+
const {
|
|
112
|
+
css: customCss,
|
|
113
|
+
className,
|
|
114
|
+
...restOfInternalProps
|
|
115
|
+
} = internalProps;
|
|
116
|
+
const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
|
|
109
117
|
const styles = recipe(variantOptions);
|
|
110
118
|
const slotStyles = styles[slot];
|
|
111
119
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|