@cerberus-design/react 0.19.2 → 0.20.0
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 +242 -11
- package/build/legacy/components/accordion/index.cjs +23 -11
- package/build/legacy/components/accordion/index.cjs.map +1 -1
- package/build/legacy/components/accordion/item-group.cjs +23 -11
- package/build/legacy/components/accordion/item-group.cjs.map +1 -1
- package/build/legacy/components/accordion/item-indicator.cjs +23 -11
- package/build/legacy/components/accordion/item-indicator.cjs.map +1 -1
- package/build/legacy/components/accordion/parts.cjs +23 -11
- package/build/legacy/components/accordion/parts.cjs.map +1 -1
- package/build/legacy/components/accordion/primitives.cjs +23 -11
- package/build/legacy/components/accordion/primitives.cjs.map +1 -1
- package/build/legacy/components/admonition/admonition.cjs +23 -11
- package/build/legacy/components/admonition/admonition.cjs.map +1 -1
- package/build/legacy/components/admonition/index.cjs +23 -11
- package/build/legacy/components/admonition/index.cjs.map +1 -1
- package/build/legacy/components/admonition/match-avatar.cjs +23 -11
- package/build/legacy/components/admonition/match-avatar.cjs.map +1 -1
- package/build/legacy/components/admonition/parts.cjs +23 -11
- package/build/legacy/components/admonition/parts.cjs.map +1 -1
- package/build/legacy/components/admonition/primitives.cjs +23 -11
- package/build/legacy/components/admonition/primitives.cjs.map +1 -1
- package/build/legacy/components/avatar/avatar.cjs +23 -11
- package/build/legacy/components/avatar/avatar.cjs.map +1 -1
- package/build/legacy/components/avatar/index.cjs +23 -11
- package/build/legacy/components/avatar/index.cjs.map +1 -1
- package/build/legacy/components/avatar/parts.cjs +23 -11
- package/build/legacy/components/avatar/parts.cjs.map +1 -1
- package/build/legacy/components/avatar/primitives.cjs +23 -11
- package/build/legacy/components/avatar/primitives.cjs.map +1 -1
- package/build/legacy/components/button/button.cjs +23 -11
- package/build/legacy/components/button/button.cjs.map +1 -1
- package/build/legacy/components/button/index.cjs +23 -11
- package/build/legacy/components/button/index.cjs.map +1 -1
- package/build/legacy/components/button/parts.cjs +23 -11
- package/build/legacy/components/button/parts.cjs.map +1 -1
- package/build/legacy/components/button/primitives.cjs +23 -11
- package/build/legacy/components/button/primitives.cjs.map +1 -1
- package/build/legacy/components/carousel/carousel.cjs +239 -0
- package/build/legacy/components/carousel/carousel.cjs.map +1 -0
- package/build/legacy/components/carousel/carousel.d.cts +2 -0
- package/build/legacy/components/carousel/index.cjs +257 -0
- package/build/legacy/components/carousel/index.cjs.map +1 -0
- package/build/legacy/components/carousel/index.d.cts +19 -0
- package/build/legacy/components/carousel/parts.cjs +198 -0
- package/build/legacy/components/carousel/parts.cjs.map +1 -0
- package/build/legacy/components/carousel/parts.d.cts +1 -0
- package/build/legacy/components/carousel/primitives.cjs +198 -0
- package/build/legacy/components/carousel/primitives.cjs.map +1 -0
- package/build/legacy/components/carousel/primitives.d.cts +16 -0
- package/build/legacy/components/checkbox/checkbox-icon.cjs +23 -11
- package/build/legacy/components/checkbox/checkbox-icon.cjs.map +1 -1
- package/build/legacy/components/checkbox/checkbox.cjs +23 -11
- package/build/legacy/components/checkbox/checkbox.cjs.map +1 -1
- package/build/legacy/components/checkbox/index.cjs +23 -11
- package/build/legacy/components/checkbox/index.cjs.map +1 -1
- package/build/legacy/components/checkbox/parts.cjs +23 -11
- package/build/legacy/components/checkbox/parts.cjs.map +1 -1
- package/build/legacy/components/checkbox/primitives.cjs +23 -11
- package/build/legacy/components/checkbox/primitives.cjs.map +1 -1
- package/build/legacy/components/circular-progress/circular-progress.cjs +23 -11
- package/build/legacy/components/circular-progress/circular-progress.cjs.map +1 -1
- package/build/legacy/components/circular-progress/index.cjs +23 -11
- package/build/legacy/components/circular-progress/index.cjs.map +1 -1
- package/build/legacy/components/circular-progress/primitives.cjs +23 -11
- package/build/legacy/components/circular-progress/primitives.cjs.map +1 -1
- package/build/legacy/components/combobox/combobox.cjs +23 -11
- package/build/legacy/components/combobox/combobox.cjs.map +1 -1
- package/build/legacy/components/combobox/index.cjs +23 -11
- package/build/legacy/components/combobox/index.cjs.map +1 -1
- package/build/legacy/components/combobox/item-group.cjs +23 -11
- package/build/legacy/components/combobox/item-group.cjs.map +1 -1
- package/build/legacy/components/combobox/item.cjs +23 -11
- package/build/legacy/components/combobox/item.cjs.map +1 -1
- package/build/legacy/components/combobox/parts.cjs +23 -11
- package/build/legacy/components/combobox/parts.cjs.map +1 -1
- package/build/legacy/components/combobox/primitives.cjs +23 -11
- package/build/legacy/components/combobox/primitives.cjs.map +1 -1
- package/build/legacy/components/combobox/use-stateful-collection.cjs +23 -11
- package/build/legacy/components/combobox/use-stateful-collection.cjs.map +1 -1
- package/build/legacy/components/cta-dialog/index.cjs +23 -11
- package/build/legacy/components/cta-dialog/index.cjs.map +1 -1
- package/build/legacy/components/cta-dialog/provider.cjs +23 -11
- package/build/legacy/components/cta-dialog/provider.cjs.map +1 -1
- package/build/legacy/components/cta-dialog/trigger-item.cjs +23 -11
- package/build/legacy/components/cta-dialog/trigger-item.cjs.map +1 -1
- package/build/legacy/components/date-picker/calendar.cjs +23 -11
- package/build/legacy/components/date-picker/calendar.cjs.map +1 -1
- package/build/legacy/components/date-picker/content.cjs +23 -11
- package/build/legacy/components/date-picker/content.cjs.map +1 -1
- package/build/legacy/components/date-picker/date-picker.cjs +23 -11
- package/build/legacy/components/date-picker/date-picker.cjs.map +1 -1
- package/build/legacy/components/date-picker/day-view.cjs +23 -11
- package/build/legacy/components/date-picker/day-view.cjs.map +1 -1
- package/build/legacy/components/date-picker/index.cjs +23 -11
- package/build/legacy/components/date-picker/index.cjs.map +1 -1
- package/build/legacy/components/date-picker/input.cjs +23 -11
- package/build/legacy/components/date-picker/input.cjs.map +1 -1
- package/build/legacy/components/date-picker/month-view.cjs +23 -11
- package/build/legacy/components/date-picker/month-view.cjs.map +1 -1
- package/build/legacy/components/date-picker/parts.cjs +23 -11
- package/build/legacy/components/date-picker/parts.cjs.map +1 -1
- package/build/legacy/components/date-picker/primitives.cjs +23 -11
- package/build/legacy/components/date-picker/primitives.cjs.map +1 -1
- package/build/legacy/components/date-picker/range-input.cjs +23 -11
- package/build/legacy/components/date-picker/range-input.cjs.map +1 -1
- package/build/legacy/components/date-picker/trigger.cjs +23 -11
- package/build/legacy/components/date-picker/trigger.cjs.map +1 -1
- package/build/legacy/components/date-picker/view-control-group.cjs +23 -11
- package/build/legacy/components/date-picker/view-control-group.cjs.map +1 -1
- package/build/legacy/components/date-picker/year-view.cjs +23 -11
- package/build/legacy/components/date-picker/year-view.cjs.map +1 -1
- package/build/legacy/components/deprecated/Label.cjs +23 -11
- package/build/legacy/components/deprecated/Label.cjs.map +1 -1
- package/build/legacy/components/dialog/close-icon-trigger.cjs +23 -11
- package/build/legacy/components/dialog/close-icon-trigger.cjs.map +1 -1
- package/build/legacy/components/dialog/dialog.cjs +23 -11
- package/build/legacy/components/dialog/dialog.cjs.map +1 -1
- package/build/legacy/components/dialog/index.cjs +23 -11
- package/build/legacy/components/dialog/index.cjs.map +1 -1
- package/build/legacy/components/dialog/parts.cjs +23 -11
- package/build/legacy/components/dialog/parts.cjs.map +1 -1
- package/build/legacy/components/dialog/primitives.cjs +23 -11
- package/build/legacy/components/dialog/primitives.cjs.map +1 -1
- package/build/legacy/components/field/field.cjs +23 -11
- package/build/legacy/components/field/field.cjs.map +1 -1
- package/build/legacy/components/field/helper-text.cjs +23 -11
- package/build/legacy/components/field/helper-text.cjs.map +1 -1
- package/build/legacy/components/field/index.cjs +23 -11
- package/build/legacy/components/field/index.cjs.map +1 -1
- package/build/legacy/components/field/input.cjs +23 -11
- package/build/legacy/components/field/input.cjs.map +1 -1
- package/build/legacy/components/field/parts.cjs +23 -11
- package/build/legacy/components/field/parts.cjs.map +1 -1
- package/build/legacy/components/field/primitives.cjs +23 -11
- package/build/legacy/components/field/primitives.cjs.map +1 -1
- package/build/legacy/components/fieldset/fieldset.cjs +23 -11
- package/build/legacy/components/fieldset/fieldset.cjs.map +1 -1
- package/build/legacy/components/fieldset/index.cjs +23 -11
- package/build/legacy/components/fieldset/index.cjs.map +1 -1
- package/build/legacy/components/fieldset/parts.cjs +23 -11
- package/build/legacy/components/fieldset/parts.cjs.map +1 -1
- package/build/legacy/components/fieldset/primitives.cjs +23 -11
- package/build/legacy/components/fieldset/primitives.cjs.map +1 -1
- package/build/legacy/components/file-upload/file-status.cjs +23 -11
- package/build/legacy/components/file-upload/file-status.cjs.map +1 -1
- package/build/legacy/components/file-upload/file-uploader.cjs +23 -11
- package/build/legacy/components/file-upload/file-uploader.cjs.map +1 -1
- package/build/legacy/components/file-upload/index.cjs +23 -11
- package/build/legacy/components/file-upload/index.cjs.map +1 -1
- package/build/legacy/components/icon-button/button.cjs +23 -11
- package/build/legacy/components/icon-button/button.cjs.map +1 -1
- package/build/legacy/components/icon-button/index.cjs +23 -11
- package/build/legacy/components/icon-button/index.cjs.map +1 -1
- package/build/legacy/components/icon-button/primitives.cjs +23 -11
- package/build/legacy/components/icon-button/primitives.cjs.map +1 -1
- package/build/legacy/components/menu/index.cjs +23 -11
- package/build/legacy/components/menu/index.cjs.map +1 -1
- package/build/legacy/components/menu/menu.cjs +23 -11
- package/build/legacy/components/menu/menu.cjs.map +1 -1
- package/build/legacy/components/menu/primitives.cjs +23 -11
- package/build/legacy/components/menu/primitives.cjs.map +1 -1
- package/build/legacy/components/notifications/center.cjs +23 -11
- package/build/legacy/components/notifications/center.cjs.map +1 -1
- package/build/legacy/components/notifications/close-trigger.cjs +23 -11
- package/build/legacy/components/notifications/close-trigger.cjs.map +1 -1
- package/build/legacy/components/notifications/index.cjs +23 -11
- package/build/legacy/components/notifications/index.cjs.map +1 -1
- package/build/legacy/components/notifications/parts.cjs +23 -11
- package/build/legacy/components/notifications/parts.cjs.map +1 -1
- package/build/legacy/components/notifications/primitives.cjs +23 -11
- package/build/legacy/components/notifications/primitives.cjs.map +1 -1
- package/build/legacy/components/progress/index.cjs +23 -11
- package/build/legacy/components/progress/index.cjs.map +1 -1
- package/build/legacy/components/progress/primitives.cjs +23 -11
- package/build/legacy/components/progress/primitives.cjs.map +1 -1
- package/build/legacy/components/progress/progress-bar.cjs +23 -11
- package/build/legacy/components/progress/progress-bar.cjs.map +1 -1
- package/build/legacy/components/radio/index.cjs +23 -11
- package/build/legacy/components/radio/index.cjs.map +1 -1
- package/build/legacy/components/radio/parts.cjs +23 -11
- package/build/legacy/components/radio/parts.cjs.map +1 -1
- package/build/legacy/components/radio/primitives.cjs +23 -11
- package/build/legacy/components/radio/primitives.cjs.map +1 -1
- package/build/legacy/components/radio/radio.cjs +23 -11
- package/build/legacy/components/radio/radio.cjs.map +1 -1
- package/build/legacy/components/rating/index.cjs +23 -11
- package/build/legacy/components/rating/index.cjs.map +1 -1
- package/build/legacy/components/rating/parts.cjs +23 -11
- package/build/legacy/components/rating/parts.cjs.map +1 -1
- package/build/legacy/components/rating/primitives.cjs +23 -11
- package/build/legacy/components/rating/primitives.cjs.map +1 -1
- package/build/legacy/components/rating/rating.cjs +23 -11
- package/build/legacy/components/rating/rating.cjs.map +1 -1
- package/build/legacy/components/select/index.cjs +23 -11
- package/build/legacy/components/select/index.cjs.map +1 -1
- package/build/legacy/components/select/option-group.cjs +23 -11
- package/build/legacy/components/select/option-group.cjs.map +1 -1
- package/build/legacy/components/select/option.cjs +23 -11
- package/build/legacy/components/select/option.cjs.map +1 -1
- package/build/legacy/components/select/parts.cjs +23 -11
- package/build/legacy/components/select/parts.cjs.map +1 -1
- package/build/legacy/components/select/primitives.cjs +23 -11
- package/build/legacy/components/select/primitives.cjs.map +1 -1
- package/build/legacy/components/select/select.cjs +23 -11
- package/build/legacy/components/select/select.cjs.map +1 -1
- package/build/legacy/components/switch/index.cjs +23 -11
- package/build/legacy/components/switch/index.cjs.map +1 -1
- package/build/legacy/components/switch/parts.cjs +23 -11
- package/build/legacy/components/switch/parts.cjs.map +1 -1
- package/build/legacy/components/switch/primitives.cjs +23 -11
- package/build/legacy/components/switch/primitives.cjs.map +1 -1
- package/build/legacy/components/switch/switch.cjs +23 -11
- package/build/legacy/components/switch/switch.cjs.map +1 -1
- package/build/legacy/components/table/index.cjs +23 -11
- package/build/legacy/components/table/index.cjs.map +1 -1
- package/build/legacy/components/table/parts.cjs +23 -11
- package/build/legacy/components/table/parts.cjs.map +1 -1
- package/build/legacy/components/table/primitives.cjs +23 -11
- package/build/legacy/components/table/primitives.cjs.map +1 -1
- package/build/legacy/components/table/table.cjs +23 -11
- package/build/legacy/components/table/table.cjs.map +1 -1
- package/build/legacy/components/tabs/index.cjs +23 -11
- package/build/legacy/components/tabs/index.cjs.map +1 -1
- package/build/legacy/components/tabs/parts.cjs +23 -11
- package/build/legacy/components/tabs/parts.cjs.map +1 -1
- package/build/legacy/components/tabs/primitives.cjs +23 -11
- package/build/legacy/components/tabs/primitives.cjs.map +1 -1
- package/build/legacy/components/tabs/tabs.cjs +23 -11
- package/build/legacy/components/tabs/tabs.cjs.map +1 -1
- package/build/legacy/components/tag/index.cjs +23 -11
- package/build/legacy/components/tag/index.cjs.map +1 -1
- package/build/legacy/components/tag/tag.cjs +23 -11
- package/build/legacy/components/tag/tag.cjs.map +1 -1
- package/build/legacy/components/theme/index.cjs +23 -11
- package/build/legacy/components/theme/index.cjs.map +1 -1
- package/build/legacy/components/theme/theme.cjs +23 -11
- package/build/legacy/components/theme/theme.cjs.map +1 -1
- package/build/legacy/components/toggle/index.cjs +23 -11
- package/build/legacy/components/toggle/index.cjs.map +1 -1
- package/build/legacy/components/toggle/parts.cjs +23 -11
- package/build/legacy/components/toggle/parts.cjs.map +1 -1
- package/build/legacy/components/toggle/primitives.cjs +23 -11
- package/build/legacy/components/toggle/primitives.cjs.map +1 -1
- package/build/legacy/components/tooltip/index.cjs +23 -11
- package/build/legacy/components/tooltip/index.cjs.map +1 -1
- package/build/legacy/components/tooltip/parts.cjs +23 -11
- package/build/legacy/components/tooltip/parts.cjs.map +1 -1
- package/build/legacy/components/tooltip/primitives.cjs +23 -11
- package/build/legacy/components/tooltip/primitives.cjs.map +1 -1
- package/build/legacy/components/tooltip/tooltip.cjs +23 -11
- package/build/legacy/components/tooltip/tooltip.cjs.map +1 -1
- package/build/legacy/context/confirm-modal.cjs +23 -11
- package/build/legacy/context/confirm-modal.cjs.map +1 -1
- package/build/legacy/context/field.cjs +23 -11
- package/build/legacy/context/field.cjs.map +1 -1
- package/build/legacy/context/prompt-modal.cjs +23 -11
- package/build/legacy/context/prompt-modal.cjs.map +1 -1
- package/build/legacy/index.cjs +513 -429
- package/build/legacy/index.cjs.map +1 -1
- package/build/legacy/index.d.cts +19 -0
- package/build/legacy/system/factory.cjs +23 -11
- package/build/legacy/system/factory.cjs.map +1 -1
- package/build/legacy/system/index.cjs +23 -11
- package/build/legacy/system/index.cjs.map +1 -1
- package/build/legacy/system/primitive-factory.cjs +23 -11
- package/build/legacy/system/primitive-factory.cjs.map +1 -1
- package/build/modern/_tsup-dts-rollup.d.ts +242 -11
- package/build/modern/{chunk-KHU3YTLM.js → chunk-236F7MCH.js} +2 -2
- package/build/modern/{chunk-BS4V2YJV.js → chunk-2D6BHWPB.js} +3 -3
- package/build/modern/{chunk-IWJCQ4BM.js → chunk-2KVC3OJ3.js} +3 -3
- package/build/modern/{chunk-UHS2TNFC.js → chunk-2UQWJSA6.js} +2 -2
- package/build/modern/{chunk-2VVJATIW.js → chunk-2Z7IKMZC.js} +7 -7
- package/build/modern/{chunk-YAZIBTA2.js → chunk-3NPWHL5X.js} +2 -2
- package/build/modern/{chunk-S7HDNFJJ.js → chunk-3UIV3HMB.js} +2 -2
- package/build/modern/{chunk-WK7TUQIS.js → chunk-3X6VM5FS.js} +2 -2
- package/build/modern/{chunk-Y7UXAFII.js → chunk-3Z6W4ZFA.js} +2 -2
- package/build/modern/{chunk-YMFUEQ2A.js → chunk-45ZTZUCD.js} +3 -3
- package/build/modern/{chunk-7MWSOSOY.js → chunk-4O26WCRC.js} +2 -2
- package/build/modern/{chunk-ZGJDFQN2.js → chunk-4O64W4BA.js} +2 -2
- package/build/modern/{chunk-X6KB5LWU.js → chunk-4SOUI4NF.js} +2 -2
- package/build/modern/{chunk-77QDH2Q5.js → chunk-5B6LMHY2.js} +2 -2
- package/build/modern/{chunk-GLH23RDO.js → chunk-5L5PT37R.js} +2 -2
- package/build/modern/{chunk-ZFEGJR5E.js → chunk-5RLQNM73.js} +2 -2
- package/build/modern/{chunk-262PENBL.js → chunk-6LU43Z4K.js} +3 -3
- package/build/modern/{chunk-AHYFFHUW.js → chunk-76VTLS7X.js} +2 -2
- package/build/modern/{chunk-H6ZGH4VM.js → chunk-7B2ZHSH3.js} +2 -2
- package/build/modern/{chunk-X34MYQKI.js → chunk-7JNOY5MW.js} +2 -2
- package/build/modern/{chunk-FIVEPZ5F.js → chunk-7UKNQ4RD.js} +2 -2
- package/build/modern/{chunk-ABMK5P66.js → chunk-AOLWIMWV.js} +2 -2
- package/build/modern/{chunk-OG74JDYL.js → chunk-AQNXQVXP.js} +2 -2
- package/build/modern/{chunk-4ZQUC4DA.js → chunk-BHZN6P2K.js} +2 -2
- package/build/modern/{chunk-33OXE7IJ.js → chunk-BKPIKVU2.js} +24 -12
- package/build/modern/chunk-BKPIKVU2.js.map +1 -0
- package/build/modern/{chunk-ROWT3E5K.js → chunk-BSJM5VYB.js} +2 -2
- package/build/modern/{chunk-PI7MKQ62.js → chunk-BSZVMBX7.js} +2 -2
- package/build/modern/{chunk-HUKQPIDV.js → chunk-BXDQ5AXV.js} +2 -2
- package/build/modern/{chunk-W7WPVM34.js → chunk-C7XAB665.js} +3 -3
- package/build/modern/{chunk-H7N6M7VO.js → chunk-CHEYITRR.js} +2 -2
- package/build/modern/{chunk-CKCGLHLS.js → chunk-CONG7TGJ.js} +9 -9
- package/build/modern/{chunk-6KGRHE3J.js → chunk-D7BCQ2CQ.js} +2 -2
- package/build/modern/{chunk-7GT7UUCB.js → chunk-DH7SFE2R.js} +2 -2
- package/build/modern/{chunk-6KIXF4ES.js → chunk-EQ3X7KQ3.js} +2 -2
- package/build/modern/{chunk-BGJIAA5F.js → chunk-ET3UY6GV.js} +2 -2
- package/build/modern/{chunk-27RTYRM7.js → chunk-EZJMTWXK.js} +2 -2
- package/build/modern/{chunk-VB7T2YYD.js → chunk-FSX64HPK.js} +3 -3
- package/build/modern/{chunk-JBAE2B2H.js → chunk-FVADFCAE.js} +2 -2
- package/build/modern/{chunk-5W6HMI2G.js → chunk-GFFIJGQC.js} +2 -2
- package/build/modern/{chunk-LVA6QLLM.js → chunk-GTAIWUFQ.js} +2 -2
- package/build/modern/{chunk-7LNGA4BX.js → chunk-GZYLYTAG.js} +2 -2
- package/build/modern/{chunk-UZHBWTSE.js → chunk-HCH5I26B.js} +2 -2
- package/build/modern/{chunk-6XO2RTIJ.js → chunk-HMUQEMV2.js} +2 -2
- package/build/modern/{chunk-TJXWSSHO.js → chunk-HYEFRC5Z.js} +2 -2
- package/build/modern/{chunk-FL3J7LTC.js → chunk-INQZQMLL.js} +2 -2
- package/build/modern/{chunk-PGINYK2P.js → chunk-IOX43IGB.js} +2 -2
- package/build/modern/{chunk-KDIDKP2L.js → chunk-IRJITAGE.js} +2 -2
- package/build/modern/{chunk-RMLBOGDE.js → chunk-IVQCMXV6.js} +3 -3
- package/build/modern/{chunk-ZUC3X6GQ.js → chunk-IYF5FS6N.js} +2 -2
- package/build/modern/{chunk-TIKG6U4Y.js → chunk-JIEN2PM7.js} +2 -2
- package/build/modern/{chunk-T3U6K34Y.js → chunk-JUSH26RO.js} +2 -2
- package/build/modern/{chunk-VQIBX475.js → chunk-JVAGLLOA.js} +2 -2
- package/build/modern/{chunk-5UZUXCMO.js → chunk-K3NML67W.js} +2 -2
- package/build/modern/{chunk-MPVUVQCJ.js → chunk-K3YEOS6O.js} +2 -2
- package/build/modern/{chunk-KELIM5A3.js → chunk-KITDXURN.js} +2 -2
- package/build/modern/{chunk-NC7AHNAS.js → chunk-KJYNKQX4.js} +6 -6
- package/build/modern/{chunk-BFE2SHZO.js → chunk-KZVCQNZI.js} +3 -3
- package/build/modern/{chunk-KUF4UUC7.js → chunk-L4KBNOWP.js} +2 -2
- package/build/modern/{chunk-KF3WIC2Y.js → chunk-LO6YTNOP.js} +2 -2
- package/build/modern/{chunk-Q6FTLT7K.js → chunk-LOJBIVY4.js} +2 -2
- package/build/modern/{chunk-CBJ5A5BD.js → chunk-LY6ULD43.js} +6 -6
- package/build/modern/{chunk-Q3NDU44T.js → chunk-MMNUVODK.js} +2 -2
- package/build/modern/{chunk-NLZGGXMB.js → chunk-MVHFBVDA.js} +2 -2
- package/build/modern/{chunk-6P2JY52I.js → chunk-N5D6HNGL.js} +2 -2
- package/build/modern/{chunk-L4CKWLXL.js → chunk-NHM5IWBE.js} +2 -2
- package/build/modern/{chunk-EMLKVTGD.js → chunk-O4W2BVE7.js} +3 -3
- package/build/modern/{chunk-CI7JYXUR.js → chunk-OG644D7M.js} +3 -3
- package/build/modern/{chunk-P3J5P524.js → chunk-OX3NA6DQ.js} +2 -2
- package/build/modern/{chunk-HJYVIRNA.js → chunk-OYTEXDS6.js} +5 -5
- package/build/modern/{chunk-XZ2FNMMC.js → chunk-OZTYYWIX.js} +2 -2
- package/build/modern/{chunk-IX5QZCM4.js → chunk-P6JC32U3.js} +2 -2
- package/build/modern/chunk-PH3GZIQE.js +39 -0
- package/build/modern/chunk-PH3GZIQE.js.map +1 -0
- package/build/modern/{chunk-CYK3ZJIX.js → chunk-PZELEMIY.js} +2 -2
- package/build/modern/{chunk-BGZTC53N.js → chunk-RI3WN6XL.js} +2 -2
- package/build/modern/chunk-RJTFRZAL.js +32 -0
- package/build/modern/chunk-RJTFRZAL.js.map +1 -0
- package/build/modern/{chunk-ETYXG2J2.js → chunk-RS6DS6RS.js} +2 -2
- package/build/modern/{chunk-OSUFAZAK.js → chunk-RT4W6GBB.js} +2 -2
- package/build/modern/{chunk-XMFTL6KG.js → chunk-SFS5ILWG.js} +2 -2
- package/build/modern/{chunk-7GVDVLCR.js → chunk-SITE2UML.js} +2 -2
- package/build/modern/{chunk-XB4HMXOQ.js → chunk-SKOX5PJI.js} +3 -3
- package/build/modern/{chunk-A6NEZNGY.js → chunk-SP7TSFMZ.js} +2 -2
- package/build/modern/{chunk-J37VR33H.js → chunk-TIQO4VNE.js} +2 -2
- package/build/modern/{chunk-2UD72VLC.js → chunk-TJSHJF6G.js} +2 -2
- package/build/modern/{chunk-RKKI3J6R.js → chunk-TKHDOZWN.js} +2 -2
- package/build/modern/{chunk-46QXBKGK.js → chunk-UZZ26IWW.js} +6 -6
- package/build/modern/{chunk-U2ZT7UDW.js → chunk-V5TUC5AS.js} +2 -2
- package/build/modern/{chunk-QV5JHBHO.js → chunk-VQUJGCZW.js} +2 -2
- package/build/modern/chunk-VVZOWCNQ.js +27 -0
- package/build/modern/chunk-VVZOWCNQ.js.map +1 -0
- package/build/modern/{chunk-WC6SOU2F.js → chunk-VYJAPLLO.js} +2 -2
- package/build/modern/{chunk-RCXKKQQA.js → chunk-WGWEAB2Q.js} +2 -2
- package/build/modern/{chunk-GBV7MIBU.js → chunk-X24O5DTP.js} +4 -4
- package/build/modern/{chunk-5WT5BM3V.js → chunk-YJRAJNYI.js} +3 -3
- package/build/modern/{chunk-X6WOC4RF.js → chunk-YR6G66UT.js} +3 -3
- package/build/modern/chunk-YUAUGU3G.js +1 -0
- package/build/modern/chunk-YUAUGU3G.js.map +1 -0
- package/build/modern/{chunk-BT6FMOKM.js → chunk-YWPXLHUO.js} +2 -2
- package/build/modern/{chunk-QHPJ2C76.js → chunk-YZG7BNVB.js} +2 -2
- package/build/modern/{chunk-LMEGBPKK.js → chunk-Z5DHBMQF.js} +2 -2
- package/build/modern/{chunk-2SBNSYYC.js → chunk-ZFONE65Q.js} +2 -2
- package/build/modern/{chunk-ADOFKGU3.js → chunk-ZFVQQJIQ.js} +2 -2
- package/build/modern/{chunk-LNDQW46A.js → chunk-ZZ4JETME.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/carousel/carousel.d.ts +2 -0
- package/build/modern/components/carousel/carousel.js +15 -0
- package/build/modern/components/carousel/carousel.js.map +1 -0
- package/build/modern/components/carousel/index.d.ts +19 -0
- package/build/modern/components/carousel/index.js +36 -0
- package/build/modern/components/carousel/index.js.map +1 -0
- package/build/modern/components/carousel/parts.d.ts +1 -0
- package/build/modern/components/carousel/parts.js +12 -0
- package/build/modern/components/carousel/parts.js.map +1 -0
- package/build/modern/components/carousel/primitives.d.ts +16 -0
- package/build/modern/components/carousel/primitives.js +25 -0
- package/build/modern/components/carousel/primitives.js.map +1 -0
- 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 +14 -14
- 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 +18 -18
- package/build/modern/components/cta-dialog/provider.js +17 -17
- 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 +23 -23
- 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 +8 -8
- 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 +11 -11
- 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 +6 -6
- package/build/modern/components/field/helper-text.js +5 -5
- package/build/modern/components/field/index.js +9 -9
- package/build/modern/components/field/input.js +4 -4
- package/build/modern/components/field/parts.js +5 -5
- package/build/modern/components/field/primitives.js +4 -4
- 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 +15 -15
- package/build/modern/components/file-upload/file-uploader.js +7 -7
- package/build/modern/components/file-upload/index.js +16 -16
- 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 +10 -10
- 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 +8 -8
- 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 +10 -10
- 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 +4 -4
- package/build/modern/context/prompt-modal.js +19 -19
- package/build/modern/index.d.ts +19 -0
- package/build/modern/index.js +214 -187
- package/build/modern/index.js.map +1 -1
- 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 +6 -6
- package/src/components/carousel/carousel.tsx +55 -0
- package/src/components/carousel/index.ts +3 -0
- package/src/components/carousel/parts.ts +71 -0
- package/src/components/carousel/primitives.ts +58 -0
- package/src/index.ts +1 -0
- package/src/system/primitive-factory.tsx +33 -18
- package/build/modern/chunk-33OXE7IJ.js.map +0 -1
- /package/build/modern/{chunk-KHU3YTLM.js.map → chunk-236F7MCH.js.map} +0 -0
- /package/build/modern/{chunk-BS4V2YJV.js.map → chunk-2D6BHWPB.js.map} +0 -0
- /package/build/modern/{chunk-IWJCQ4BM.js.map → chunk-2KVC3OJ3.js.map} +0 -0
- /package/build/modern/{chunk-UHS2TNFC.js.map → chunk-2UQWJSA6.js.map} +0 -0
- /package/build/modern/{chunk-2VVJATIW.js.map → chunk-2Z7IKMZC.js.map} +0 -0
- /package/build/modern/{chunk-YAZIBTA2.js.map → chunk-3NPWHL5X.js.map} +0 -0
- /package/build/modern/{chunk-S7HDNFJJ.js.map → chunk-3UIV3HMB.js.map} +0 -0
- /package/build/modern/{chunk-WK7TUQIS.js.map → chunk-3X6VM5FS.js.map} +0 -0
- /package/build/modern/{chunk-Y7UXAFII.js.map → chunk-3Z6W4ZFA.js.map} +0 -0
- /package/build/modern/{chunk-YMFUEQ2A.js.map → chunk-45ZTZUCD.js.map} +0 -0
- /package/build/modern/{chunk-7MWSOSOY.js.map → chunk-4O26WCRC.js.map} +0 -0
- /package/build/modern/{chunk-ZGJDFQN2.js.map → chunk-4O64W4BA.js.map} +0 -0
- /package/build/modern/{chunk-X6KB5LWU.js.map → chunk-4SOUI4NF.js.map} +0 -0
- /package/build/modern/{chunk-77QDH2Q5.js.map → chunk-5B6LMHY2.js.map} +0 -0
- /package/build/modern/{chunk-GLH23RDO.js.map → chunk-5L5PT37R.js.map} +0 -0
- /package/build/modern/{chunk-ZFEGJR5E.js.map → chunk-5RLQNM73.js.map} +0 -0
- /package/build/modern/{chunk-262PENBL.js.map → chunk-6LU43Z4K.js.map} +0 -0
- /package/build/modern/{chunk-AHYFFHUW.js.map → chunk-76VTLS7X.js.map} +0 -0
- /package/build/modern/{chunk-H6ZGH4VM.js.map → chunk-7B2ZHSH3.js.map} +0 -0
- /package/build/modern/{chunk-X34MYQKI.js.map → chunk-7JNOY5MW.js.map} +0 -0
- /package/build/modern/{chunk-FIVEPZ5F.js.map → chunk-7UKNQ4RD.js.map} +0 -0
- /package/build/modern/{chunk-ABMK5P66.js.map → chunk-AOLWIMWV.js.map} +0 -0
- /package/build/modern/{chunk-OG74JDYL.js.map → chunk-AQNXQVXP.js.map} +0 -0
- /package/build/modern/{chunk-4ZQUC4DA.js.map → chunk-BHZN6P2K.js.map} +0 -0
- /package/build/modern/{chunk-ROWT3E5K.js.map → chunk-BSJM5VYB.js.map} +0 -0
- /package/build/modern/{chunk-PI7MKQ62.js.map → chunk-BSZVMBX7.js.map} +0 -0
- /package/build/modern/{chunk-HUKQPIDV.js.map → chunk-BXDQ5AXV.js.map} +0 -0
- /package/build/modern/{chunk-W7WPVM34.js.map → chunk-C7XAB665.js.map} +0 -0
- /package/build/modern/{chunk-H7N6M7VO.js.map → chunk-CHEYITRR.js.map} +0 -0
- /package/build/modern/{chunk-CKCGLHLS.js.map → chunk-CONG7TGJ.js.map} +0 -0
- /package/build/modern/{chunk-6KGRHE3J.js.map → chunk-D7BCQ2CQ.js.map} +0 -0
- /package/build/modern/{chunk-7GT7UUCB.js.map → chunk-DH7SFE2R.js.map} +0 -0
- /package/build/modern/{chunk-6KIXF4ES.js.map → chunk-EQ3X7KQ3.js.map} +0 -0
- /package/build/modern/{chunk-BGJIAA5F.js.map → chunk-ET3UY6GV.js.map} +0 -0
- /package/build/modern/{chunk-27RTYRM7.js.map → chunk-EZJMTWXK.js.map} +0 -0
- /package/build/modern/{chunk-VB7T2YYD.js.map → chunk-FSX64HPK.js.map} +0 -0
- /package/build/modern/{chunk-JBAE2B2H.js.map → chunk-FVADFCAE.js.map} +0 -0
- /package/build/modern/{chunk-5W6HMI2G.js.map → chunk-GFFIJGQC.js.map} +0 -0
- /package/build/modern/{chunk-LVA6QLLM.js.map → chunk-GTAIWUFQ.js.map} +0 -0
- /package/build/modern/{chunk-7LNGA4BX.js.map → chunk-GZYLYTAG.js.map} +0 -0
- /package/build/modern/{chunk-UZHBWTSE.js.map → chunk-HCH5I26B.js.map} +0 -0
- /package/build/modern/{chunk-6XO2RTIJ.js.map → chunk-HMUQEMV2.js.map} +0 -0
- /package/build/modern/{chunk-TJXWSSHO.js.map → chunk-HYEFRC5Z.js.map} +0 -0
- /package/build/modern/{chunk-FL3J7LTC.js.map → chunk-INQZQMLL.js.map} +0 -0
- /package/build/modern/{chunk-PGINYK2P.js.map → chunk-IOX43IGB.js.map} +0 -0
- /package/build/modern/{chunk-KDIDKP2L.js.map → chunk-IRJITAGE.js.map} +0 -0
- /package/build/modern/{chunk-RMLBOGDE.js.map → chunk-IVQCMXV6.js.map} +0 -0
- /package/build/modern/{chunk-ZUC3X6GQ.js.map → chunk-IYF5FS6N.js.map} +0 -0
- /package/build/modern/{chunk-TIKG6U4Y.js.map → chunk-JIEN2PM7.js.map} +0 -0
- /package/build/modern/{chunk-T3U6K34Y.js.map → chunk-JUSH26RO.js.map} +0 -0
- /package/build/modern/{chunk-VQIBX475.js.map → chunk-JVAGLLOA.js.map} +0 -0
- /package/build/modern/{chunk-5UZUXCMO.js.map → chunk-K3NML67W.js.map} +0 -0
- /package/build/modern/{chunk-MPVUVQCJ.js.map → chunk-K3YEOS6O.js.map} +0 -0
- /package/build/modern/{chunk-KELIM5A3.js.map → chunk-KITDXURN.js.map} +0 -0
- /package/build/modern/{chunk-NC7AHNAS.js.map → chunk-KJYNKQX4.js.map} +0 -0
- /package/build/modern/{chunk-BFE2SHZO.js.map → chunk-KZVCQNZI.js.map} +0 -0
- /package/build/modern/{chunk-KUF4UUC7.js.map → chunk-L4KBNOWP.js.map} +0 -0
- /package/build/modern/{chunk-KF3WIC2Y.js.map → chunk-LO6YTNOP.js.map} +0 -0
- /package/build/modern/{chunk-Q6FTLT7K.js.map → chunk-LOJBIVY4.js.map} +0 -0
- /package/build/modern/{chunk-CBJ5A5BD.js.map → chunk-LY6ULD43.js.map} +0 -0
- /package/build/modern/{chunk-Q3NDU44T.js.map → chunk-MMNUVODK.js.map} +0 -0
- /package/build/modern/{chunk-NLZGGXMB.js.map → chunk-MVHFBVDA.js.map} +0 -0
- /package/build/modern/{chunk-6P2JY52I.js.map → chunk-N5D6HNGL.js.map} +0 -0
- /package/build/modern/{chunk-L4CKWLXL.js.map → chunk-NHM5IWBE.js.map} +0 -0
- /package/build/modern/{chunk-EMLKVTGD.js.map → chunk-O4W2BVE7.js.map} +0 -0
- /package/build/modern/{chunk-CI7JYXUR.js.map → chunk-OG644D7M.js.map} +0 -0
- /package/build/modern/{chunk-P3J5P524.js.map → chunk-OX3NA6DQ.js.map} +0 -0
- /package/build/modern/{chunk-HJYVIRNA.js.map → chunk-OYTEXDS6.js.map} +0 -0
- /package/build/modern/{chunk-XZ2FNMMC.js.map → chunk-OZTYYWIX.js.map} +0 -0
- /package/build/modern/{chunk-IX5QZCM4.js.map → chunk-P6JC32U3.js.map} +0 -0
- /package/build/modern/{chunk-CYK3ZJIX.js.map → chunk-PZELEMIY.js.map} +0 -0
- /package/build/modern/{chunk-BGZTC53N.js.map → chunk-RI3WN6XL.js.map} +0 -0
- /package/build/modern/{chunk-ETYXG2J2.js.map → chunk-RS6DS6RS.js.map} +0 -0
- /package/build/modern/{chunk-OSUFAZAK.js.map → chunk-RT4W6GBB.js.map} +0 -0
- /package/build/modern/{chunk-XMFTL6KG.js.map → chunk-SFS5ILWG.js.map} +0 -0
- /package/build/modern/{chunk-7GVDVLCR.js.map → chunk-SITE2UML.js.map} +0 -0
- /package/build/modern/{chunk-XB4HMXOQ.js.map → chunk-SKOX5PJI.js.map} +0 -0
- /package/build/modern/{chunk-A6NEZNGY.js.map → chunk-SP7TSFMZ.js.map} +0 -0
- /package/build/modern/{chunk-J37VR33H.js.map → chunk-TIQO4VNE.js.map} +0 -0
- /package/build/modern/{chunk-2UD72VLC.js.map → chunk-TJSHJF6G.js.map} +0 -0
- /package/build/modern/{chunk-RKKI3J6R.js.map → chunk-TKHDOZWN.js.map} +0 -0
- /package/build/modern/{chunk-46QXBKGK.js.map → chunk-UZZ26IWW.js.map} +0 -0
- /package/build/modern/{chunk-U2ZT7UDW.js.map → chunk-V5TUC5AS.js.map} +0 -0
- /package/build/modern/{chunk-QV5JHBHO.js.map → chunk-VQUJGCZW.js.map} +0 -0
- /package/build/modern/{chunk-WC6SOU2F.js.map → chunk-VYJAPLLO.js.map} +0 -0
- /package/build/modern/{chunk-RCXKKQQA.js.map → chunk-WGWEAB2Q.js.map} +0 -0
- /package/build/modern/{chunk-GBV7MIBU.js.map → chunk-X24O5DTP.js.map} +0 -0
- /package/build/modern/{chunk-5WT5BM3V.js.map → chunk-YJRAJNYI.js.map} +0 -0
- /package/build/modern/{chunk-X6WOC4RF.js.map → chunk-YR6G66UT.js.map} +0 -0
- /package/build/modern/{chunk-BT6FMOKM.js.map → chunk-YWPXLHUO.js.map} +0 -0
- /package/build/modern/{chunk-QHPJ2C76.js.map → chunk-YZG7BNVB.js.map} +0 -0
- /package/build/modern/{chunk-LMEGBPKK.js.map → chunk-Z5DHBMQF.js.map} +0 -0
- /package/build/modern/{chunk-2SBNSYYC.js.map → chunk-ZFONE65Q.js.map} +0 -0
- /package/build/modern/{chunk-ADOFKGU3.js.map → chunk-ZFVQQJIQ.js.map} +0 -0
- /package/build/modern/{chunk-LNDQW46A.js.map → chunk-ZZ4JETME.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/checkbox/checkbox-icon.tsx","../../../../src/context/cerberus.tsx","../../../../src/components/show/show.tsx","../../../../src/components/checkbox/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/checkbox/parts.ts"],"sourcesContent":["'use client'\n\nimport { useCerberusContext } from '../../context/cerberus'\nimport { Show } from '../show/index'\nimport { CheckboxParts } from './parts'\n\n/**\n * This module contains the Checkbox Icon component.\n * @module\n */\n\ninterface CheckboxIconProps {\n indeterminate?: boolean\n}\n\n/**\n * Checkbox component\n * @definition [ARIA Target Size](https://www.w3.org/WAI/WCAG21/Understanding/target-size.html#:~:text=Understanding%20SC%202.5.,%3ATarget%20Size%20(Level%20AAA)&text=The%20size%20of%20the%20target,Equivalent)\n * @definition [ARIA Forms](https://www.a11yproject.com/checklist/#forms)\n * @see https://cerberus.digitalu.design/react/checkbox\n * @example\n * ```tsx\n * <Field>\n * <Checkbox id=\"legal\" checked={checked.legal} onChange={handleChange} />\n * </Field>\n * ```\n */\nexport function CheckboxIcon(props: CheckboxIconProps) {\n const { icons } = useCerberusContext()\n const { checkbox: CheckIcon, indeterminate: IndeterminateIcon } = icons\n\n return (\n <CheckboxParts.Indicator indeterminate={props.indeterminate}>\n <Show when={props.indeterminate} fallback={<CheckIcon />}>\n <IndeterminateIcon />\n </Show>\n </CheckboxParts.Indicator>\n )\n}\n","'use client'\n\nimport { createContext, useContext, type PropsWithChildren } from 'react'\nimport type { SystemConfig } from '../config'\n\n/**\n * This module contains the Cerberus configuration context and helpers.\n * @module context/cerberus\n */\n\ntype CerberusContextValue = SystemConfig\n\nconst CerberusContext = createContext<CerberusContextValue | null>(null)\n\ninterface CerberusProviderProps {\n config: SystemConfig\n}\n\n/**\n * Cerberus configuration provider.\n * @param props.config The Cerberus configuration created with\n * `makeSystemConfig` helper.\n */\nexport function CerberusProvider(\n props: PropsWithChildren<CerberusProviderProps>,\n) {\n return (\n <CerberusContext.Provider value={props.config}>\n {props.children}\n </CerberusContext.Provider>\n )\n}\n\n/**\n * Returns the Cerberus configuration context.\n * @returns The Cerberus configuration context.\n */\nexport function useCerberusContext() {\n const context = useContext(CerberusContext)\n if (!context) {\n throw new Error('useCerberus must be used within a CerberusProvider')\n }\n return context\n}\n","import { type 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 Checkbox,\n type CheckboxControlProps as ArkCheckboxControlProps,\n type CheckboxGroupProps as ArkCheckboxGroupProps,\n type CheckboxIndicatorProps as ArkCheckboxIndicatorProps,\n type CheckboxLabelProps as ArkCheckboxLabelProps,\n type CheckboxRootProps as ArkCheckboxRootProps,\n type CheckboxHiddenInputProps as ArkCheckboxHiddenInputProps,\n} from '@ark-ui/react'\nimport { checkbox, type CheckboxVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the Checkbox primitives.\n * @module 'react/checkbox'\n */\n\nconst { withSlotRecipe, withNoRecipe } = createCerberusPrimitive(checkbox)\n\n/**\n * Checkbox Root component used to provide the context to all other checkbox\n * primitives.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\n\n// @ts-expect-error there is a type mismatch here, but it works in practice\nexport const CheckboxRoot = withSlotRecipe<CheckboxRootProps>(\n Checkbox.Root,\n 'root',\n)\nexport type CheckboxRootProps = CerberusPrimitiveProps<ArkCheckboxRootProps>\n\n/**\n * Checkbox Label component used to display the label of the checkbox.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport const CheckboxLabel = withSlotRecipe<CheckboxLabelProps>(\n Checkbox.Label,\n 'label',\n)\nexport type CheckboxLabelProps = CerberusPrimitiveProps<\n ArkCheckboxLabelProps & CheckboxVariantProps\n>\n\n/**\n * Checkbox Control component used to display the control of the checkbox.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport const CheckboxControl = withSlotRecipe<CheckboxControlProps>(\n Checkbox.Control,\n 'control',\n)\nexport type CheckboxControlProps = CerberusPrimitiveProps<\n ArkCheckboxControlProps & CheckboxVariantProps\n>\n\n/**\n * Checkbox Indicator component used to display the indicator of the checkbox.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport const CheckboxIndicator = withSlotRecipe<CheckboxIndicatorProps>(\n Checkbox.Indicator,\n 'indicator',\n)\nexport type CheckboxIndicatorProps =\n CerberusPrimitiveProps<ArkCheckboxIndicatorProps>\n\n// export function CheckboxIndicator(props: CheckboxIndicatorProps) {\n// const styles = checkbox()\n// return (\n// <Checkbox.Indicator\n// {...props}\n// className={cx(styles.indicator, props.className)}\n// />\n// )\n// }\n\n/**\n * Checkbox HiddenInput component used to provide the native checkbox input.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport const CheckboxHiddenInput = withNoRecipe<CheckboxHiddenInputProps>(\n Checkbox.HiddenInput,\n)\nexport type CheckboxHiddenInputProps =\n CerberusPrimitiveProps<ArkCheckboxHiddenInputProps>\n\n/**\n * Checkbox Group is used to group checkboxes together in a consistently styled\n * way.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport const CheckboxGroup = withSlotRecipe<CheckboxGroupProps>(\n Checkbox.Group,\n 'group',\n)\nexport type CheckboxGroupProps = CerberusPrimitiveProps<ArkCheckboxGroupProps>\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 CheckboxRoot,\n CheckboxLabel,\n CheckboxControl,\n CheckboxIndicator,\n CheckboxHiddenInput,\n CheckboxGroup,\n} from './primitives'\n\n/**\n * This module contains the parts of the Field component.\n * @module 'field/parts'\n */\n\ninterface CheckboxPartsValue {\n /**\n * The container of the field.\n */\n Root: ElementType\n /**\n * The label of the field.\n */\n Label: ElementType\n /**\n * The control of the field.\n */\n Control: ElementType\n /**\n * The indicator of the field.\n */\n Indicator: ElementType\n /**\n * The hidden input of the field.\n */\n HiddenInput: ElementType\n /**\n * The checkbox group component.\n */\n Group: ElementType\n}\n\n/**\n * An Object containing the parts of the Checkbox component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the CheckboxParts object and\n * the entire family of components vs. only what you use.\n */\nexport const CheckboxParts: CheckboxPartsValue = {\n Root: CheckboxRoot,\n Label: CheckboxLabel,\n Control: CheckboxControl,\n Indicator: CheckboxIndicator,\n HiddenInput: CheckboxHiddenInput,\n Group: CheckboxGroup,\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;;;ACXW,IAAAA,sBAAA;AAJJ,SAAS,KAAQ,OAAwC;AAC9D,QAAM,EAAE,MAAM,UAAU,SAAS,IAAI;AAErC,MAAI,MAAM;AACR,WAAO,6EAAG,UAAS;AAAA,EACrB;AAEA,MAAI,UAAU;AACZ,WAAO,6EAAG,oBAAS;AAAA,EACrB;AAEA,SAAO;AACT;;;ACxCA,IAAAC,gBAQO;AACP,qBAAoD;;;ACTpD,iBAAwB;AAmEX,IAAAC,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;;;AFNA,IAAM,EAAE,gBAAgB,aAAa,IAAI,wBAAwB,uBAAQ;AAUlE,IAAM,eAAe;AAAA,EAC1B,uBAAS;AAAA,EACT;AACF;AAQO,IAAM,gBAAgB;AAAA,EAC3B,uBAAS;AAAA,EACT;AACF;AAUO,IAAM,kBAAkB;AAAA,EAC7B,uBAAS;AAAA,EACT;AACF;AAUO,IAAM,oBAAoB;AAAA,EAC/B,uBAAS;AAAA,EACT;AACF;AAmBO,IAAM,sBAAsB;AAAA,EACjC,uBAAS;AACX;AAUO,IAAM,gBAAgB;AAAA,EAC3B,uBAAS;AAAA,EACT;AACF;;;AGrDO,IAAM,gBAAoC;AAAA,EAC/C,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AAAA,EACT,WAAW;AAAA,EACX,aAAa;AAAA,EACb,OAAO;AACT;;;ANzBiD,IAAAC,sBAAA;AAN1C,SAAS,aAAa,OAA0B;AACrD,QAAM,EAAE,MAAM,IAAI,mBAAmB;AACrC,QAAM,EAAE,UAAU,WAAW,eAAe,kBAAkB,IAAI;AAElE,SACE,6CAAC,cAAc,WAAd,EAAwB,eAAe,MAAM,eAC5C,uDAAC,QAAK,MAAM,MAAM,eAAe,UAAU,6CAAC,aAAU,GACpD,uDAAC,qBAAkB,GACrB,GACF;AAEJ;","names":["import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/checkbox/checkbox-icon.tsx","../../../../src/context/cerberus.tsx","../../../../src/components/show/show.tsx","../../../../src/components/checkbox/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/checkbox/parts.ts"],"sourcesContent":["'use client'\n\nimport { useCerberusContext } from '../../context/cerberus'\nimport { Show } from '../show/index'\nimport { CheckboxParts } from './parts'\n\n/**\n * This module contains the Checkbox Icon component.\n * @module\n */\n\ninterface CheckboxIconProps {\n indeterminate?: boolean\n}\n\n/**\n * Checkbox component\n * @definition [ARIA Target Size](https://www.w3.org/WAI/WCAG21/Understanding/target-size.html#:~:text=Understanding%20SC%202.5.,%3ATarget%20Size%20(Level%20AAA)&text=The%20size%20of%20the%20target,Equivalent)\n * @definition [ARIA Forms](https://www.a11yproject.com/checklist/#forms)\n * @see https://cerberus.digitalu.design/react/checkbox\n * @example\n * ```tsx\n * <Field>\n * <Checkbox id=\"legal\" checked={checked.legal} onChange={handleChange} />\n * </Field>\n * ```\n */\nexport function CheckboxIcon(props: CheckboxIconProps) {\n const { icons } = useCerberusContext()\n const { checkbox: CheckIcon, indeterminate: IndeterminateIcon } = icons\n\n return (\n <CheckboxParts.Indicator indeterminate={props.indeterminate}>\n <Show when={props.indeterminate} fallback={<CheckIcon />}>\n <IndeterminateIcon />\n </Show>\n </CheckboxParts.Indicator>\n )\n}\n","'use client'\n\nimport { createContext, useContext, type PropsWithChildren } from 'react'\nimport type { SystemConfig } from '../config'\n\n/**\n * This module contains the Cerberus configuration context and helpers.\n * @module context/cerberus\n */\n\ntype CerberusContextValue = SystemConfig\n\nconst CerberusContext = createContext<CerberusContextValue | null>(null)\n\ninterface CerberusProviderProps {\n config: SystemConfig\n}\n\n/**\n * Cerberus configuration provider.\n * @param props.config The Cerberus configuration created with\n * `makeSystemConfig` helper.\n */\nexport function CerberusProvider(\n props: PropsWithChildren<CerberusProviderProps>,\n) {\n return (\n <CerberusContext.Provider value={props.config}>\n {props.children}\n </CerberusContext.Provider>\n )\n}\n\n/**\n * Returns the Cerberus configuration context.\n * @returns The Cerberus configuration context.\n */\nexport function useCerberusContext() {\n const context = useContext(CerberusContext)\n if (!context) {\n throw new Error('useCerberus must be used within a CerberusProvider')\n }\n return context\n}\n","import { type 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 Checkbox,\n type CheckboxControlProps as ArkCheckboxControlProps,\n type CheckboxGroupProps as ArkCheckboxGroupProps,\n type CheckboxIndicatorProps as ArkCheckboxIndicatorProps,\n type CheckboxLabelProps as ArkCheckboxLabelProps,\n type CheckboxRootProps as ArkCheckboxRootProps,\n type CheckboxHiddenInputProps as ArkCheckboxHiddenInputProps,\n} from '@ark-ui/react'\nimport { checkbox, type CheckboxVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the Checkbox primitives.\n * @module 'react/checkbox'\n */\n\nconst { withSlotRecipe, withNoRecipe } = createCerberusPrimitive(checkbox)\n\n/**\n * Checkbox Root component used to provide the context to all other checkbox\n * primitives.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\n\n// @ts-expect-error there is a type mismatch here, but it works in practice\nexport const CheckboxRoot = withSlotRecipe<CheckboxRootProps>(\n Checkbox.Root,\n 'root',\n)\nexport type CheckboxRootProps = CerberusPrimitiveProps<ArkCheckboxRootProps>\n\n/**\n * Checkbox Label component used to display the label of the checkbox.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport const CheckboxLabel = withSlotRecipe<CheckboxLabelProps>(\n Checkbox.Label,\n 'label',\n)\nexport type CheckboxLabelProps = CerberusPrimitiveProps<\n ArkCheckboxLabelProps & CheckboxVariantProps\n>\n\n/**\n * Checkbox Control component used to display the control of the checkbox.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport const CheckboxControl = withSlotRecipe<CheckboxControlProps>(\n Checkbox.Control,\n 'control',\n)\nexport type CheckboxControlProps = CerberusPrimitiveProps<\n ArkCheckboxControlProps & CheckboxVariantProps\n>\n\n/**\n * Checkbox Indicator component used to display the indicator of the checkbox.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport const CheckboxIndicator = withSlotRecipe<CheckboxIndicatorProps>(\n Checkbox.Indicator,\n 'indicator',\n)\nexport type CheckboxIndicatorProps =\n CerberusPrimitiveProps<ArkCheckboxIndicatorProps>\n\n// export function CheckboxIndicator(props: CheckboxIndicatorProps) {\n// const styles = checkbox()\n// return (\n// <Checkbox.Indicator\n// {...props}\n// className={cx(styles.indicator, props.className)}\n// />\n// )\n// }\n\n/**\n * Checkbox HiddenInput component used to provide the native checkbox input.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport const CheckboxHiddenInput = withNoRecipe<CheckboxHiddenInputProps>(\n Checkbox.HiddenInput,\n)\nexport type CheckboxHiddenInputProps =\n CerberusPrimitiveProps<ArkCheckboxHiddenInputProps>\n\n/**\n * Checkbox Group is used to group checkboxes together in a consistently styled\n * way.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport const CheckboxGroup = withSlotRecipe<CheckboxGroupProps>(\n Checkbox.Group,\n 'group',\n)\nexport type CheckboxGroupProps = CerberusPrimitiveProps<ArkCheckboxGroupProps>\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type ElementType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P> | string,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n return false\n }\n return true\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * Can be a string or a component reference.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n *\n * @example\n * ```ts\n * const { withNoRecipe } = createCerberusPrimitive(buttonRecipe)\n * const Button = withNoRecipe('button')\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P> | string,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n const El = Component as ComponentType<P> | ElementType\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <El {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n if (this.validateComponent(El)) {\n const ElName = typeof El === 'string' ? El : El.displayName || El.name\n CerbComponent.displayName = ElName\n }\n\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P> | string,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const El = Component as ComponentType<P> | ElementType\n\n const recipe = this.recipe as CerberusRecipe\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n if (this.validateComponent(El)) {\n const ElName = typeof El === 'string' ? El : El.displayName || El.name\n CerbComponent.displayName = ElName\n }\n\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P> | string,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const El = Component as ComponentType<P> | ElementType\n\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n if (this.validateComponent(El)) {\n const ElName = typeof El === 'string' ? El : El.displayName || El.name\n CerbComponent.displayName = ElName\n }\n\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n","import type { ElementType } from 'react'\nimport {\n CheckboxRoot,\n CheckboxLabel,\n CheckboxControl,\n CheckboxIndicator,\n CheckboxHiddenInput,\n CheckboxGroup,\n} from './primitives'\n\n/**\n * This module contains the parts of the Field component.\n * @module 'field/parts'\n */\n\ninterface CheckboxPartsValue {\n /**\n * The container of the field.\n */\n Root: ElementType\n /**\n * The label of the field.\n */\n Label: ElementType\n /**\n * The control of the field.\n */\n Control: ElementType\n /**\n * The indicator of the field.\n */\n Indicator: ElementType\n /**\n * The hidden input of the field.\n */\n HiddenInput: ElementType\n /**\n * The checkbox group component.\n */\n Group: ElementType\n}\n\n/**\n * An Object containing the parts of the Checkbox component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the CheckboxParts object and\n * the entire family of components vs. only what you use.\n */\nexport const CheckboxParts: CheckboxPartsValue = {\n Root: CheckboxRoot,\n Label: CheckboxLabel,\n Control: CheckboxControl,\n Indicator: CheckboxIndicator,\n HiddenInput: CheckboxHiddenInput,\n Group: CheckboxGroup,\n}\n"],"mappings":"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","names":["import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime"]}
|
|
@@ -77,23 +77,28 @@ var CerberusPrimitive = class {
|
|
|
77
77
|
/**
|
|
78
78
|
* Creates a Cerberus component with bare features and no recipe.
|
|
79
79
|
* @param Component - The React component to enhance with Cerberus features.
|
|
80
|
+
* Can be a string or a component reference.
|
|
80
81
|
* @returns A new React component that applies Cerberus features to the
|
|
81
82
|
* original component.
|
|
83
|
+
*
|
|
82
84
|
* @example
|
|
83
|
-
* ```
|
|
84
|
-
* const { withNoRecipe } = createCerberusPrimitive(
|
|
85
|
-
* const Button = withNoRecipe(
|
|
85
|
+
* ```ts
|
|
86
|
+
* const { withNoRecipe } = createCerberusPrimitive(buttonRecipe)
|
|
87
|
+
* const Button = withNoRecipe('button')
|
|
86
88
|
* ```
|
|
87
89
|
*/
|
|
88
90
|
__publicField(this, "withNoRecipe", (Component, options) => {
|
|
89
91
|
const { defaultProps } = options || {};
|
|
90
|
-
|
|
92
|
+
const El = Component;
|
|
91
93
|
const CerbComponent = (props) => {
|
|
92
94
|
const { css: customCss, className, ...nativeProps } = props;
|
|
93
95
|
const styles = this.hasStyles((0, import_css.cx)(className, (0, import_css.css)(customCss)));
|
|
94
|
-
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
96
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(El, { ...defaultProps, ...styles, ...nativeProps });
|
|
95
97
|
};
|
|
96
|
-
|
|
98
|
+
if (this.validateComponent(El)) {
|
|
99
|
+
const ElName = typeof El === "string" ? El : El.displayName || El.name;
|
|
100
|
+
CerbComponent.displayName = ElName;
|
|
101
|
+
}
|
|
97
102
|
return CerbComponent;
|
|
98
103
|
});
|
|
99
104
|
/**
|
|
@@ -105,8 +110,8 @@ var CerberusPrimitive = class {
|
|
|
105
110
|
*/
|
|
106
111
|
__publicField(this, "withRecipe", (Component, options) => {
|
|
107
112
|
const { defaultProps } = options || {};
|
|
113
|
+
const El = Component;
|
|
108
114
|
const recipe = this.recipe;
|
|
109
|
-
this.validateComponent(Component);
|
|
110
115
|
const CerbComponent = (internalProps) => {
|
|
111
116
|
const {
|
|
112
117
|
css: customCss,
|
|
@@ -124,7 +129,10 @@ var CerberusPrimitive = class {
|
|
|
124
129
|
}
|
|
125
130
|
);
|
|
126
131
|
};
|
|
127
|
-
|
|
132
|
+
if (this.validateComponent(El)) {
|
|
133
|
+
const ElName = typeof El === "string" ? El : El.displayName || El.name;
|
|
134
|
+
CerbComponent.displayName = ElName;
|
|
135
|
+
}
|
|
128
136
|
return CerbComponent;
|
|
129
137
|
});
|
|
130
138
|
/**
|
|
@@ -141,8 +149,8 @@ var CerberusPrimitive = class {
|
|
|
141
149
|
*/
|
|
142
150
|
__publicField(this, "withSlotRecipe", (Component, slot, options) => {
|
|
143
151
|
const { defaultProps } = options || {};
|
|
152
|
+
const El = Component;
|
|
144
153
|
const recipe = this.recipe;
|
|
145
|
-
this.validateComponent(Component);
|
|
146
154
|
const CerbComponent = (internalProps) => {
|
|
147
155
|
const {
|
|
148
156
|
css: customCss,
|
|
@@ -161,7 +169,10 @@ var CerberusPrimitive = class {
|
|
|
161
169
|
}
|
|
162
170
|
);
|
|
163
171
|
};
|
|
164
|
-
|
|
172
|
+
if (this.validateComponent(El)) {
|
|
173
|
+
const ElName = typeof El === "string" ? El : El.displayName || El.name;
|
|
174
|
+
CerbComponent.displayName = ElName;
|
|
175
|
+
}
|
|
165
176
|
return CerbComponent;
|
|
166
177
|
});
|
|
167
178
|
this.recipe = recipe ?? null;
|
|
@@ -176,8 +187,9 @@ var CerberusPrimitive = class {
|
|
|
176
187
|
}
|
|
177
188
|
validateComponent(Component) {
|
|
178
189
|
if (typeof Component !== "function" && typeof Component !== "object") {
|
|
179
|
-
|
|
190
|
+
return false;
|
|
180
191
|
}
|
|
192
|
+
return true;
|
|
181
193
|
}
|
|
182
194
|
};
|
|
183
195
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/checkbox/checkbox.tsx","../../../../src/components/show/show.tsx","../../../../src/components/text/text.tsx","../../../../src/components/checkbox/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/checkbox/parts.ts","../../../../src/context/cerberus.tsx","../../../../src/components/checkbox/checkbox-icon.tsx"],"sourcesContent":["import type { CheckboxRootProps } from '@ark-ui/react'\nimport { type CheckboxVariantProps } from 'styled-system/recipes'\nimport { Show } from '../show/index'\nimport { Text } from '../text/index'\nimport { CheckboxParts } from './parts'\nimport { CheckboxIcon } from './checkbox-icon'\n\n/**\n * This module contains the Checkbox component.\n * @module\n */\n\nexport type CheckboxProps = CheckboxVariantProps & CheckboxRootProps\n\n/**\n * Checkbox component is an abstraction of the primitives that displays a\n * controlled checkbox with a label.\n * @description [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @description [Ark Docs](https://ark-ui.com/docs/components/checkbox)\n */\nexport function Checkbox(props: CheckboxProps) {\n const { size, children, ...rootProps } = props\n\n return (\n <CheckboxParts.Root {...rootProps}>\n <CheckboxParts.Control size={size}>\n <CheckboxIcon indeterminate={rootProps.checked === 'indeterminate'} />\n </CheckboxParts.Control>\n\n <CheckboxParts.Label size={size}>\n {children}\n <Show when={props.required}>\n <Text as=\"span\" data-part=\"required-indicator\">\n (required)\n </Text>\n </Show>\n </CheckboxParts.Label>\n\n <CheckboxParts.HiddenInput />\n </CheckboxParts.Root>\n )\n}\n","import { type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps<T> {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: T | boolean | null | undefined\n /**\n * The children to render when the condition is false.\n */\n fallback?: ReactNode\n}\n\n/**\n * Conditionally render a memoized version of the children or optional fallback\n * content.\n * @see https://cerberus.digitalu.design/react/show\n * @example\n * ```tsx\n * <Show when={isLoggedIn} fallback={<Navigate to=\"/login\" />}>\n * <Dashboard />\n * </Show>\n */\nexport function Show<T>(props: PropsWithChildren<ShowProps<T>>) {\n const { when, children, fallback } = props\n\n if (when) {\n return <>{children}</>\n }\n\n if (fallback) {\n return <>{fallback}</>\n }\n\n return null\n}\n","import {\n Em,\n H1,\n H2,\n H3,\n H4,\n H5,\n H6,\n P,\n Small,\n Span,\n Strong,\n type PProps,\n} from 'styled-system/jsx'\n\n/**\n * This module exports a component for rendering text utilizing the styled-system JSX utility.\n * @module @cerberus/react/Text\n */\n\nexport type Headings = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'\nexport type TextElements = 'p' | 'strong' | 'em' | 'small' | 'span'\n\n// For some reason we have to use the HTMLParagraphElement type here\n// or else TS will fail for non-style props like 'id' or 'className'\nexport interface TextProps extends PProps {\n /**\n * The element to render as. Defaults to 'p'.\n */\n as?: TextElements | Headings\n}\n\n/**\n * A component for rendering text utilizing the styled-system JSX utility.\n * @definition [Text docs](https://cerberus.digitalu.design/react/text)\n * @example\n * ```tsx\n * <Text as=\"h1\" color=\"page.text.100\" textStyle={{\n * base: 'heading-md',\n * md: 'heading-lg',\n * }}>\n * Hello, world!\n * </Text>\n */\nexport function Text(props: TextProps) {\n const { as = 'p', ...pandaJSXProps } = props\n\n const cache = {\n h1: H1,\n h2: H2,\n h3: H3,\n h4: H4,\n h5: H5,\n h6: H6,\n strong: Strong,\n em: Em,\n small: Small,\n span: Span,\n p: P,\n }\n\n if (as in cache) {\n const Component = cache[as as keyof typeof cache]\n return <Component {...pandaJSXProps} />\n }\n\n return <P {...pandaJSXProps} />\n}\n","import {\n Checkbox,\n type CheckboxControlProps as ArkCheckboxControlProps,\n type CheckboxGroupProps as ArkCheckboxGroupProps,\n type CheckboxIndicatorProps as ArkCheckboxIndicatorProps,\n type CheckboxLabelProps as ArkCheckboxLabelProps,\n type CheckboxRootProps as ArkCheckboxRootProps,\n type CheckboxHiddenInputProps as ArkCheckboxHiddenInputProps,\n} from '@ark-ui/react'\nimport { checkbox, type CheckboxVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the Checkbox primitives.\n * @module 'react/checkbox'\n */\n\nconst { withSlotRecipe, withNoRecipe } = createCerberusPrimitive(checkbox)\n\n/**\n * Checkbox Root component used to provide the context to all other checkbox\n * primitives.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\n\n// @ts-expect-error there is a type mismatch here, but it works in practice\nexport const CheckboxRoot = withSlotRecipe<CheckboxRootProps>(\n Checkbox.Root,\n 'root',\n)\nexport type CheckboxRootProps = CerberusPrimitiveProps<ArkCheckboxRootProps>\n\n/**\n * Checkbox Label component used to display the label of the checkbox.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport const CheckboxLabel = withSlotRecipe<CheckboxLabelProps>(\n Checkbox.Label,\n 'label',\n)\nexport type CheckboxLabelProps = CerberusPrimitiveProps<\n ArkCheckboxLabelProps & CheckboxVariantProps\n>\n\n/**\n * Checkbox Control component used to display the control of the checkbox.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport const CheckboxControl = withSlotRecipe<CheckboxControlProps>(\n Checkbox.Control,\n 'control',\n)\nexport type CheckboxControlProps = CerberusPrimitiveProps<\n ArkCheckboxControlProps & CheckboxVariantProps\n>\n\n/**\n * Checkbox Indicator component used to display the indicator of the checkbox.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport const CheckboxIndicator = withSlotRecipe<CheckboxIndicatorProps>(\n Checkbox.Indicator,\n 'indicator',\n)\nexport type CheckboxIndicatorProps =\n CerberusPrimitiveProps<ArkCheckboxIndicatorProps>\n\n// export function CheckboxIndicator(props: CheckboxIndicatorProps) {\n// const styles = checkbox()\n// return (\n// <Checkbox.Indicator\n// {...props}\n// className={cx(styles.indicator, props.className)}\n// />\n// )\n// }\n\n/**\n * Checkbox HiddenInput component used to provide the native checkbox input.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport const CheckboxHiddenInput = withNoRecipe<CheckboxHiddenInputProps>(\n Checkbox.HiddenInput,\n)\nexport type CheckboxHiddenInputProps =\n CerberusPrimitiveProps<ArkCheckboxHiddenInputProps>\n\n/**\n * Checkbox Group is used to group checkboxes together in a consistently styled\n * way.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport const CheckboxGroup = withSlotRecipe<CheckboxGroupProps>(\n Checkbox.Group,\n 'group',\n)\nexport type CheckboxGroupProps = CerberusPrimitiveProps<ArkCheckboxGroupProps>\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 CheckboxRoot,\n CheckboxLabel,\n CheckboxControl,\n CheckboxIndicator,\n CheckboxHiddenInput,\n CheckboxGroup,\n} from './primitives'\n\n/**\n * This module contains the parts of the Field component.\n * @module 'field/parts'\n */\n\ninterface CheckboxPartsValue {\n /**\n * The container of the field.\n */\n Root: ElementType\n /**\n * The label of the field.\n */\n Label: ElementType\n /**\n * The control of the field.\n */\n Control: ElementType\n /**\n * The indicator of the field.\n */\n Indicator: ElementType\n /**\n * The hidden input of the field.\n */\n HiddenInput: ElementType\n /**\n * The checkbox group component.\n */\n Group: ElementType\n}\n\n/**\n * An Object containing the parts of the Checkbox component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the CheckboxParts object and\n * the entire family of components vs. only what you use.\n */\nexport const CheckboxParts: CheckboxPartsValue = {\n Root: CheckboxRoot,\n Label: CheckboxLabel,\n Control: CheckboxControl,\n Indicator: CheckboxIndicator,\n HiddenInput: CheckboxHiddenInput,\n Group: CheckboxGroup,\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 { useCerberusContext } from '../../context/cerberus'\nimport { Show } from '../show/index'\nimport { CheckboxParts } from './parts'\n\n/**\n * This module contains the Checkbox Icon component.\n * @module\n */\n\ninterface CheckboxIconProps {\n indeterminate?: boolean\n}\n\n/**\n * Checkbox component\n * @definition [ARIA Target Size](https://www.w3.org/WAI/WCAG21/Understanding/target-size.html#:~:text=Understanding%20SC%202.5.,%3ATarget%20Size%20(Level%20AAA)&text=The%20size%20of%20the%20target,Equivalent)\n * @definition [ARIA Forms](https://www.a11yproject.com/checklist/#forms)\n * @see https://cerberus.digitalu.design/react/checkbox\n * @example\n * ```tsx\n * <Field>\n * <Checkbox id=\"legal\" checked={checked.legal} onChange={handleChange} />\n * </Field>\n * ```\n */\nexport function CheckboxIcon(props: CheckboxIconProps) {\n const { icons } = useCerberusContext()\n const { checkbox: CheckIcon, indeterminate: IndeterminateIcon } = icons\n\n return (\n <CheckboxParts.Indicator indeterminate={props.indeterminate}>\n <Show when={props.indeterminate} fallback={<CheckIcon />}>\n <IndeterminateIcon />\n </Show>\n </CheckboxParts.Indicator>\n )\n}\n"],"mappings":"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","names":["Checkbox","import_jsx_runtime","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","Checkbox"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/checkbox/checkbox.tsx","../../../../src/components/show/show.tsx","../../../../src/components/text/text.tsx","../../../../src/components/checkbox/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/checkbox/parts.ts","../../../../src/context/cerberus.tsx","../../../../src/components/checkbox/checkbox-icon.tsx"],"sourcesContent":["import type { CheckboxRootProps } from '@ark-ui/react'\nimport { type CheckboxVariantProps } from 'styled-system/recipes'\nimport { Show } from '../show/index'\nimport { Text } from '../text/index'\nimport { CheckboxParts } from './parts'\nimport { CheckboxIcon } from './checkbox-icon'\n\n/**\n * This module contains the Checkbox component.\n * @module\n */\n\nexport type CheckboxProps = CheckboxVariantProps & CheckboxRootProps\n\n/**\n * Checkbox component is an abstraction of the primitives that displays a\n * controlled checkbox with a label.\n * @description [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @description [Ark Docs](https://ark-ui.com/docs/components/checkbox)\n */\nexport function Checkbox(props: CheckboxProps) {\n const { size, children, ...rootProps } = props\n\n return (\n <CheckboxParts.Root {...rootProps}>\n <CheckboxParts.Control size={size}>\n <CheckboxIcon indeterminate={rootProps.checked === 'indeterminate'} />\n </CheckboxParts.Control>\n\n <CheckboxParts.Label size={size}>\n {children}\n <Show when={props.required}>\n <Text as=\"span\" data-part=\"required-indicator\">\n (required)\n </Text>\n </Show>\n </CheckboxParts.Label>\n\n <CheckboxParts.HiddenInput />\n </CheckboxParts.Root>\n )\n}\n","import { type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps<T> {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: T | boolean | null | undefined\n /**\n * The children to render when the condition is false.\n */\n fallback?: ReactNode\n}\n\n/**\n * Conditionally render a memoized version of the children or optional fallback\n * content.\n * @see https://cerberus.digitalu.design/react/show\n * @example\n * ```tsx\n * <Show when={isLoggedIn} fallback={<Navigate to=\"/login\" />}>\n * <Dashboard />\n * </Show>\n */\nexport function Show<T>(props: PropsWithChildren<ShowProps<T>>) {\n const { when, children, fallback } = props\n\n if (when) {\n return <>{children}</>\n }\n\n if (fallback) {\n return <>{fallback}</>\n }\n\n return null\n}\n","import {\n Em,\n H1,\n H2,\n H3,\n H4,\n H5,\n H6,\n P,\n Small,\n Span,\n Strong,\n type PProps,\n} from 'styled-system/jsx'\n\n/**\n * This module exports a component for rendering text utilizing the styled-system JSX utility.\n * @module @cerberus/react/Text\n */\n\nexport type Headings = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'\nexport type TextElements = 'p' | 'strong' | 'em' | 'small' | 'span'\n\n// For some reason we have to use the HTMLParagraphElement type here\n// or else TS will fail for non-style props like 'id' or 'className'\nexport interface TextProps extends PProps {\n /**\n * The element to render as. Defaults to 'p'.\n */\n as?: TextElements | Headings\n}\n\n/**\n * A component for rendering text utilizing the styled-system JSX utility.\n * @definition [Text docs](https://cerberus.digitalu.design/react/text)\n * @example\n * ```tsx\n * <Text as=\"h1\" color=\"page.text.100\" textStyle={{\n * base: 'heading-md',\n * md: 'heading-lg',\n * }}>\n * Hello, world!\n * </Text>\n */\nexport function Text(props: TextProps) {\n const { as = 'p', ...pandaJSXProps } = props\n\n const cache = {\n h1: H1,\n h2: H2,\n h3: H3,\n h4: H4,\n h5: H5,\n h6: H6,\n strong: Strong,\n em: Em,\n small: Small,\n span: Span,\n p: P,\n }\n\n if (as in cache) {\n const Component = cache[as as keyof typeof cache]\n return <Component {...pandaJSXProps} />\n }\n\n return <P {...pandaJSXProps} />\n}\n","import {\n Checkbox,\n type CheckboxControlProps as ArkCheckboxControlProps,\n type CheckboxGroupProps as ArkCheckboxGroupProps,\n type CheckboxIndicatorProps as ArkCheckboxIndicatorProps,\n type CheckboxLabelProps as ArkCheckboxLabelProps,\n type CheckboxRootProps as ArkCheckboxRootProps,\n type CheckboxHiddenInputProps as ArkCheckboxHiddenInputProps,\n} from '@ark-ui/react'\nimport { checkbox, type CheckboxVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the Checkbox primitives.\n * @module 'react/checkbox'\n */\n\nconst { withSlotRecipe, withNoRecipe } = createCerberusPrimitive(checkbox)\n\n/**\n * Checkbox Root component used to provide the context to all other checkbox\n * primitives.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\n\n// @ts-expect-error there is a type mismatch here, but it works in practice\nexport const CheckboxRoot = withSlotRecipe<CheckboxRootProps>(\n Checkbox.Root,\n 'root',\n)\nexport type CheckboxRootProps = CerberusPrimitiveProps<ArkCheckboxRootProps>\n\n/**\n * Checkbox Label component used to display the label of the checkbox.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport const CheckboxLabel = withSlotRecipe<CheckboxLabelProps>(\n Checkbox.Label,\n 'label',\n)\nexport type CheckboxLabelProps = CerberusPrimitiveProps<\n ArkCheckboxLabelProps & CheckboxVariantProps\n>\n\n/**\n * Checkbox Control component used to display the control of the checkbox.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport const CheckboxControl = withSlotRecipe<CheckboxControlProps>(\n Checkbox.Control,\n 'control',\n)\nexport type CheckboxControlProps = CerberusPrimitiveProps<\n ArkCheckboxControlProps & CheckboxVariantProps\n>\n\n/**\n * Checkbox Indicator component used to display the indicator of the checkbox.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport const CheckboxIndicator = withSlotRecipe<CheckboxIndicatorProps>(\n Checkbox.Indicator,\n 'indicator',\n)\nexport type CheckboxIndicatorProps =\n CerberusPrimitiveProps<ArkCheckboxIndicatorProps>\n\n// export function CheckboxIndicator(props: CheckboxIndicatorProps) {\n// const styles = checkbox()\n// return (\n// <Checkbox.Indicator\n// {...props}\n// className={cx(styles.indicator, props.className)}\n// />\n// )\n// }\n\n/**\n * Checkbox HiddenInput component used to provide the native checkbox input.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport const CheckboxHiddenInput = withNoRecipe<CheckboxHiddenInputProps>(\n Checkbox.HiddenInput,\n)\nexport type CheckboxHiddenInputProps =\n CerberusPrimitiveProps<ArkCheckboxHiddenInputProps>\n\n/**\n * Checkbox Group is used to group checkboxes together in a consistently styled\n * way.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport const CheckboxGroup = withSlotRecipe<CheckboxGroupProps>(\n Checkbox.Group,\n 'group',\n)\nexport type CheckboxGroupProps = CerberusPrimitiveProps<ArkCheckboxGroupProps>\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type ElementType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P> | string,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n return false\n }\n return true\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * Can be a string or a component reference.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n *\n * @example\n * ```ts\n * const { withNoRecipe } = createCerberusPrimitive(buttonRecipe)\n * const Button = withNoRecipe('button')\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P> | string,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n const El = Component as ComponentType<P> | ElementType\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <El {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n if (this.validateComponent(El)) {\n const ElName = typeof El === 'string' ? El : El.displayName || El.name\n CerbComponent.displayName = ElName\n }\n\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P> | string,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const El = Component as ComponentType<P> | ElementType\n\n const recipe = this.recipe as CerberusRecipe\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n if (this.validateComponent(El)) {\n const ElName = typeof El === 'string' ? El : El.displayName || El.name\n CerbComponent.displayName = ElName\n }\n\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P> | string,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const El = Component as ComponentType<P> | ElementType\n\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n if (this.validateComponent(El)) {\n const ElName = typeof El === 'string' ? El : El.displayName || El.name\n CerbComponent.displayName = ElName\n }\n\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n","import type { ElementType } from 'react'\nimport {\n CheckboxRoot,\n CheckboxLabel,\n CheckboxControl,\n CheckboxIndicator,\n CheckboxHiddenInput,\n CheckboxGroup,\n} from './primitives'\n\n/**\n * This module contains the parts of the Field component.\n * @module 'field/parts'\n */\n\ninterface CheckboxPartsValue {\n /**\n * The container of the field.\n */\n Root: ElementType\n /**\n * The label of the field.\n */\n Label: ElementType\n /**\n * The control of the field.\n */\n Control: ElementType\n /**\n * The indicator of the field.\n */\n Indicator: ElementType\n /**\n * The hidden input of the field.\n */\n HiddenInput: ElementType\n /**\n * The checkbox group component.\n */\n Group: ElementType\n}\n\n/**\n * An Object containing the parts of the Checkbox component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the CheckboxParts object and\n * the entire family of components vs. only what you use.\n */\nexport const CheckboxParts: CheckboxPartsValue = {\n Root: CheckboxRoot,\n Label: CheckboxLabel,\n Control: CheckboxControl,\n Indicator: CheckboxIndicator,\n HiddenInput: CheckboxHiddenInput,\n Group: CheckboxGroup,\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 { useCerberusContext } from '../../context/cerberus'\nimport { Show } from '../show/index'\nimport { CheckboxParts } from './parts'\n\n/**\n * This module contains the Checkbox Icon component.\n * @module\n */\n\ninterface CheckboxIconProps {\n indeterminate?: boolean\n}\n\n/**\n * Checkbox component\n * @definition [ARIA Target Size](https://www.w3.org/WAI/WCAG21/Understanding/target-size.html#:~:text=Understanding%20SC%202.5.,%3ATarget%20Size%20(Level%20AAA)&text=The%20size%20of%20the%20target,Equivalent)\n * @definition [ARIA Forms](https://www.a11yproject.com/checklist/#forms)\n * @see https://cerberus.digitalu.design/react/checkbox\n * @example\n * ```tsx\n * <Field>\n * <Checkbox id=\"legal\" checked={checked.legal} onChange={handleChange} />\n * </Field>\n * ```\n */\nexport function CheckboxIcon(props: CheckboxIconProps) {\n const { icons } = useCerberusContext()\n const { checkbox: CheckIcon, indeterminate: IndeterminateIcon } = icons\n\n return (\n <CheckboxParts.Indicator indeterminate={props.indeterminate}>\n <Show when={props.indeterminate} fallback={<CheckIcon />}>\n <IndeterminateIcon />\n </Show>\n </CheckboxParts.Indicator>\n )\n}\n"],"mappings":"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","names":["Checkbox","import_jsx_runtime","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","Checkbox"]}
|
|
@@ -84,23 +84,28 @@ var CerberusPrimitive = class {
|
|
|
84
84
|
/**
|
|
85
85
|
* Creates a Cerberus component with bare features and no recipe.
|
|
86
86
|
* @param Component - The React component to enhance with Cerberus features.
|
|
87
|
+
* Can be a string or a component reference.
|
|
87
88
|
* @returns A new React component that applies Cerberus features to the
|
|
88
89
|
* original component.
|
|
90
|
+
*
|
|
89
91
|
* @example
|
|
90
|
-
* ```
|
|
91
|
-
* const { withNoRecipe } = createCerberusPrimitive(
|
|
92
|
-
* const Button = withNoRecipe(
|
|
92
|
+
* ```ts
|
|
93
|
+
* const { withNoRecipe } = createCerberusPrimitive(buttonRecipe)
|
|
94
|
+
* const Button = withNoRecipe('button')
|
|
93
95
|
* ```
|
|
94
96
|
*/
|
|
95
97
|
__publicField(this, "withNoRecipe", (Component, options) => {
|
|
96
98
|
const { defaultProps } = options || {};
|
|
97
|
-
|
|
99
|
+
const El = Component;
|
|
98
100
|
const CerbComponent = (props) => {
|
|
99
101
|
const { css: customCss, className, ...nativeProps } = props;
|
|
100
102
|
const styles = this.hasStyles((0, import_css.cx)(className, (0, import_css.css)(customCss)));
|
|
101
|
-
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
103
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(El, { ...defaultProps, ...styles, ...nativeProps });
|
|
102
104
|
};
|
|
103
|
-
|
|
105
|
+
if (this.validateComponent(El)) {
|
|
106
|
+
const ElName = typeof El === "string" ? El : El.displayName || El.name;
|
|
107
|
+
CerbComponent.displayName = ElName;
|
|
108
|
+
}
|
|
104
109
|
return CerbComponent;
|
|
105
110
|
});
|
|
106
111
|
/**
|
|
@@ -112,8 +117,8 @@ var CerberusPrimitive = class {
|
|
|
112
117
|
*/
|
|
113
118
|
__publicField(this, "withRecipe", (Component, options) => {
|
|
114
119
|
const { defaultProps } = options || {};
|
|
120
|
+
const El = Component;
|
|
115
121
|
const recipe = this.recipe;
|
|
116
|
-
this.validateComponent(Component);
|
|
117
122
|
const CerbComponent = (internalProps) => {
|
|
118
123
|
const {
|
|
119
124
|
css: customCss,
|
|
@@ -131,7 +136,10 @@ var CerberusPrimitive = class {
|
|
|
131
136
|
}
|
|
132
137
|
);
|
|
133
138
|
};
|
|
134
|
-
|
|
139
|
+
if (this.validateComponent(El)) {
|
|
140
|
+
const ElName = typeof El === "string" ? El : El.displayName || El.name;
|
|
141
|
+
CerbComponent.displayName = ElName;
|
|
142
|
+
}
|
|
135
143
|
return CerbComponent;
|
|
136
144
|
});
|
|
137
145
|
/**
|
|
@@ -148,8 +156,8 @@ var CerberusPrimitive = class {
|
|
|
148
156
|
*/
|
|
149
157
|
__publicField(this, "withSlotRecipe", (Component, slot, options) => {
|
|
150
158
|
const { defaultProps } = options || {};
|
|
159
|
+
const El = Component;
|
|
151
160
|
const recipe = this.recipe;
|
|
152
|
-
this.validateComponent(Component);
|
|
153
161
|
const CerbComponent = (internalProps) => {
|
|
154
162
|
const {
|
|
155
163
|
css: customCss,
|
|
@@ -168,7 +176,10 @@ var CerberusPrimitive = class {
|
|
|
168
176
|
}
|
|
169
177
|
);
|
|
170
178
|
};
|
|
171
|
-
|
|
179
|
+
if (this.validateComponent(El)) {
|
|
180
|
+
const ElName = typeof El === "string" ? El : El.displayName || El.name;
|
|
181
|
+
CerbComponent.displayName = ElName;
|
|
182
|
+
}
|
|
172
183
|
return CerbComponent;
|
|
173
184
|
});
|
|
174
185
|
this.recipe = recipe ?? null;
|
|
@@ -183,8 +194,9 @@ var CerberusPrimitive = class {
|
|
|
183
194
|
}
|
|
184
195
|
validateComponent(Component) {
|
|
185
196
|
if (typeof Component !== "function" && typeof Component !== "object") {
|
|
186
|
-
|
|
197
|
+
return false;
|
|
187
198
|
}
|
|
199
|
+
return true;
|
|
188
200
|
}
|
|
189
201
|
};
|
|
190
202
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/checkbox/index.ts","../../../../src/components/show/show.tsx","../../../../src/components/text/text.tsx","../../../../src/components/checkbox/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/checkbox/parts.ts","../../../../src/context/cerberus.tsx","../../../../src/components/checkbox/checkbox-icon.tsx","../../../../src/components/checkbox/checkbox.tsx"],"sourcesContent":["export * from './checkbox'\nexport * from './parts'\nexport * from './primitives'\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 Em,\n H1,\n H2,\n H3,\n H4,\n H5,\n H6,\n P,\n Small,\n Span,\n Strong,\n type PProps,\n} from 'styled-system/jsx'\n\n/**\n * This module exports a component for rendering text utilizing the styled-system JSX utility.\n * @module @cerberus/react/Text\n */\n\nexport type Headings = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'\nexport type TextElements = 'p' | 'strong' | 'em' | 'small' | 'span'\n\n// For some reason we have to use the HTMLParagraphElement type here\n// or else TS will fail for non-style props like 'id' or 'className'\nexport interface TextProps extends PProps {\n /**\n * The element to render as. Defaults to 'p'.\n */\n as?: TextElements | Headings\n}\n\n/**\n * A component for rendering text utilizing the styled-system JSX utility.\n * @definition [Text docs](https://cerberus.digitalu.design/react/text)\n * @example\n * ```tsx\n * <Text as=\"h1\" color=\"page.text.100\" textStyle={{\n * base: 'heading-md',\n * md: 'heading-lg',\n * }}>\n * Hello, world!\n * </Text>\n */\nexport function Text(props: TextProps) {\n const { as = 'p', ...pandaJSXProps } = props\n\n const cache = {\n h1: H1,\n h2: H2,\n h3: H3,\n h4: H4,\n h5: H5,\n h6: H6,\n strong: Strong,\n em: Em,\n small: Small,\n span: Span,\n p: P,\n }\n\n if (as in cache) {\n const Component = cache[as as keyof typeof cache]\n return <Component {...pandaJSXProps} />\n }\n\n return <P {...pandaJSXProps} />\n}\n","import {\n Checkbox,\n type CheckboxControlProps as ArkCheckboxControlProps,\n type CheckboxGroupProps as ArkCheckboxGroupProps,\n type CheckboxIndicatorProps as ArkCheckboxIndicatorProps,\n type CheckboxLabelProps as ArkCheckboxLabelProps,\n type CheckboxRootProps as ArkCheckboxRootProps,\n type CheckboxHiddenInputProps as ArkCheckboxHiddenInputProps,\n} from '@ark-ui/react'\nimport { checkbox, type CheckboxVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the Checkbox primitives.\n * @module 'react/checkbox'\n */\n\nconst { withSlotRecipe, withNoRecipe } = createCerberusPrimitive(checkbox)\n\n/**\n * Checkbox Root component used to provide the context to all other checkbox\n * primitives.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\n\n// @ts-expect-error there is a type mismatch here, but it works in practice\nexport const CheckboxRoot = withSlotRecipe<CheckboxRootProps>(\n Checkbox.Root,\n 'root',\n)\nexport type CheckboxRootProps = CerberusPrimitiveProps<ArkCheckboxRootProps>\n\n/**\n * Checkbox Label component used to display the label of the checkbox.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport const CheckboxLabel = withSlotRecipe<CheckboxLabelProps>(\n Checkbox.Label,\n 'label',\n)\nexport type CheckboxLabelProps = CerberusPrimitiveProps<\n ArkCheckboxLabelProps & CheckboxVariantProps\n>\n\n/**\n * Checkbox Control component used to display the control of the checkbox.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport const CheckboxControl = withSlotRecipe<CheckboxControlProps>(\n Checkbox.Control,\n 'control',\n)\nexport type CheckboxControlProps = CerberusPrimitiveProps<\n ArkCheckboxControlProps & CheckboxVariantProps\n>\n\n/**\n * Checkbox Indicator component used to display the indicator of the checkbox.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport const CheckboxIndicator = withSlotRecipe<CheckboxIndicatorProps>(\n Checkbox.Indicator,\n 'indicator',\n)\nexport type CheckboxIndicatorProps =\n CerberusPrimitiveProps<ArkCheckboxIndicatorProps>\n\n// export function CheckboxIndicator(props: CheckboxIndicatorProps) {\n// const styles = checkbox()\n// return (\n// <Checkbox.Indicator\n// {...props}\n// className={cx(styles.indicator, props.className)}\n// />\n// )\n// }\n\n/**\n * Checkbox HiddenInput component used to provide the native checkbox input.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport const CheckboxHiddenInput = withNoRecipe<CheckboxHiddenInputProps>(\n Checkbox.HiddenInput,\n)\nexport type CheckboxHiddenInputProps =\n CerberusPrimitiveProps<ArkCheckboxHiddenInputProps>\n\n/**\n * Checkbox Group is used to group checkboxes together in a consistently styled\n * way.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport const CheckboxGroup = withSlotRecipe<CheckboxGroupProps>(\n Checkbox.Group,\n 'group',\n)\nexport type CheckboxGroupProps = CerberusPrimitiveProps<ArkCheckboxGroupProps>\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 CheckboxRoot,\n CheckboxLabel,\n CheckboxControl,\n CheckboxIndicator,\n CheckboxHiddenInput,\n CheckboxGroup,\n} from './primitives'\n\n/**\n * This module contains the parts of the Field component.\n * @module 'field/parts'\n */\n\ninterface CheckboxPartsValue {\n /**\n * The container of the field.\n */\n Root: ElementType\n /**\n * The label of the field.\n */\n Label: ElementType\n /**\n * The control of the field.\n */\n Control: ElementType\n /**\n * The indicator of the field.\n */\n Indicator: ElementType\n /**\n * The hidden input of the field.\n */\n HiddenInput: ElementType\n /**\n * The checkbox group component.\n */\n Group: ElementType\n}\n\n/**\n * An Object containing the parts of the Checkbox component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the CheckboxParts object and\n * the entire family of components vs. only what you use.\n */\nexport const CheckboxParts: CheckboxPartsValue = {\n Root: CheckboxRoot,\n Label: CheckboxLabel,\n Control: CheckboxControl,\n Indicator: CheckboxIndicator,\n HiddenInput: CheckboxHiddenInput,\n Group: CheckboxGroup,\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 { useCerberusContext } from '../../context/cerberus'\nimport { Show } from '../show/index'\nimport { CheckboxParts } from './parts'\n\n/**\n * This module contains the Checkbox Icon component.\n * @module\n */\n\ninterface CheckboxIconProps {\n indeterminate?: boolean\n}\n\n/**\n * Checkbox component\n * @definition [ARIA Target Size](https://www.w3.org/WAI/WCAG21/Understanding/target-size.html#:~:text=Understanding%20SC%202.5.,%3ATarget%20Size%20(Level%20AAA)&text=The%20size%20of%20the%20target,Equivalent)\n * @definition [ARIA Forms](https://www.a11yproject.com/checklist/#forms)\n * @see https://cerberus.digitalu.design/react/checkbox\n * @example\n * ```tsx\n * <Field>\n * <Checkbox id=\"legal\" checked={checked.legal} onChange={handleChange} />\n * </Field>\n * ```\n */\nexport function CheckboxIcon(props: CheckboxIconProps) {\n const { icons } = useCerberusContext()\n const { checkbox: CheckIcon, indeterminate: IndeterminateIcon } = icons\n\n return (\n <CheckboxParts.Indicator indeterminate={props.indeterminate}>\n <Show when={props.indeterminate} fallback={<CheckIcon />}>\n <IndeterminateIcon />\n </Show>\n </CheckboxParts.Indicator>\n )\n}\n","import type { CheckboxRootProps } from '@ark-ui/react'\nimport { type CheckboxVariantProps } from 'styled-system/recipes'\nimport { Show } from '../show/index'\nimport { Text } from '../text/index'\nimport { CheckboxParts } from './parts'\nimport { CheckboxIcon } from './checkbox-icon'\n\n/**\n * This module contains the Checkbox component.\n * @module\n */\n\nexport type CheckboxProps = CheckboxVariantProps & CheckboxRootProps\n\n/**\n * Checkbox component is an abstraction of the primitives that displays a\n * controlled checkbox with a label.\n * @description [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @description [Ark Docs](https://ark-ui.com/docs/components/checkbox)\n */\nexport function Checkbox(props: CheckboxProps) {\n const { size, children, ...rootProps } = props\n\n return (\n <CheckboxParts.Root {...rootProps}>\n <CheckboxParts.Control size={size}>\n <CheckboxIcon indeterminate={rootProps.checked === 'indeterminate'} />\n </CheckboxParts.Control>\n\n <CheckboxParts.Label size={size}>\n {children}\n <Show when={props.required}>\n <Text as=\"span\" data-part=\"required-indicator\">\n (required)\n </Text>\n </Show>\n </CheckboxParts.Label>\n\n <CheckboxParts.HiddenInput />\n </CheckboxParts.Root>\n )\n}\n"],"mappings":"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","names":["Checkbox","import_jsx_runtime","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","Checkbox"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/checkbox/index.ts","../../../../src/components/show/show.tsx","../../../../src/components/text/text.tsx","../../../../src/components/checkbox/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/checkbox/parts.ts","../../../../src/context/cerberus.tsx","../../../../src/components/checkbox/checkbox-icon.tsx","../../../../src/components/checkbox/checkbox.tsx"],"sourcesContent":["export * from './checkbox'\nexport * from './parts'\nexport * from './primitives'\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 Em,\n H1,\n H2,\n H3,\n H4,\n H5,\n H6,\n P,\n Small,\n Span,\n Strong,\n type PProps,\n} from 'styled-system/jsx'\n\n/**\n * This module exports a component for rendering text utilizing the styled-system JSX utility.\n * @module @cerberus/react/Text\n */\n\nexport type Headings = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'\nexport type TextElements = 'p' | 'strong' | 'em' | 'small' | 'span'\n\n// For some reason we have to use the HTMLParagraphElement type here\n// or else TS will fail for non-style props like 'id' or 'className'\nexport interface TextProps extends PProps {\n /**\n * The element to render as. Defaults to 'p'.\n */\n as?: TextElements | Headings\n}\n\n/**\n * A component for rendering text utilizing the styled-system JSX utility.\n * @definition [Text docs](https://cerberus.digitalu.design/react/text)\n * @example\n * ```tsx\n * <Text as=\"h1\" color=\"page.text.100\" textStyle={{\n * base: 'heading-md',\n * md: 'heading-lg',\n * }}>\n * Hello, world!\n * </Text>\n */\nexport function Text(props: TextProps) {\n const { as = 'p', ...pandaJSXProps } = props\n\n const cache = {\n h1: H1,\n h2: H2,\n h3: H3,\n h4: H4,\n h5: H5,\n h6: H6,\n strong: Strong,\n em: Em,\n small: Small,\n span: Span,\n p: P,\n }\n\n if (as in cache) {\n const Component = cache[as as keyof typeof cache]\n return <Component {...pandaJSXProps} />\n }\n\n return <P {...pandaJSXProps} />\n}\n","import {\n Checkbox,\n type CheckboxControlProps as ArkCheckboxControlProps,\n type CheckboxGroupProps as ArkCheckboxGroupProps,\n type CheckboxIndicatorProps as ArkCheckboxIndicatorProps,\n type CheckboxLabelProps as ArkCheckboxLabelProps,\n type CheckboxRootProps as ArkCheckboxRootProps,\n type CheckboxHiddenInputProps as ArkCheckboxHiddenInputProps,\n} from '@ark-ui/react'\nimport { checkbox, type CheckboxVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the Checkbox primitives.\n * @module 'react/checkbox'\n */\n\nconst { withSlotRecipe, withNoRecipe } = createCerberusPrimitive(checkbox)\n\n/**\n * Checkbox Root component used to provide the context to all other checkbox\n * primitives.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\n\n// @ts-expect-error there is a type mismatch here, but it works in practice\nexport const CheckboxRoot = withSlotRecipe<CheckboxRootProps>(\n Checkbox.Root,\n 'root',\n)\nexport type CheckboxRootProps = CerberusPrimitiveProps<ArkCheckboxRootProps>\n\n/**\n * Checkbox Label component used to display the label of the checkbox.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport const CheckboxLabel = withSlotRecipe<CheckboxLabelProps>(\n Checkbox.Label,\n 'label',\n)\nexport type CheckboxLabelProps = CerberusPrimitiveProps<\n ArkCheckboxLabelProps & CheckboxVariantProps\n>\n\n/**\n * Checkbox Control component used to display the control of the checkbox.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport const CheckboxControl = withSlotRecipe<CheckboxControlProps>(\n Checkbox.Control,\n 'control',\n)\nexport type CheckboxControlProps = CerberusPrimitiveProps<\n ArkCheckboxControlProps & CheckboxVariantProps\n>\n\n/**\n * Checkbox Indicator component used to display the indicator of the checkbox.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport const CheckboxIndicator = withSlotRecipe<CheckboxIndicatorProps>(\n Checkbox.Indicator,\n 'indicator',\n)\nexport type CheckboxIndicatorProps =\n CerberusPrimitiveProps<ArkCheckboxIndicatorProps>\n\n// export function CheckboxIndicator(props: CheckboxIndicatorProps) {\n// const styles = checkbox()\n// return (\n// <Checkbox.Indicator\n// {...props}\n// className={cx(styles.indicator, props.className)}\n// />\n// )\n// }\n\n/**\n * Checkbox HiddenInput component used to provide the native checkbox input.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport const CheckboxHiddenInput = withNoRecipe<CheckboxHiddenInputProps>(\n Checkbox.HiddenInput,\n)\nexport type CheckboxHiddenInputProps =\n CerberusPrimitiveProps<ArkCheckboxHiddenInputProps>\n\n/**\n * Checkbox Group is used to group checkboxes together in a consistently styled\n * way.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport const CheckboxGroup = withSlotRecipe<CheckboxGroupProps>(\n Checkbox.Group,\n 'group',\n)\nexport type CheckboxGroupProps = CerberusPrimitiveProps<ArkCheckboxGroupProps>\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type ElementType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P> | string,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n return false\n }\n return true\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * Can be a string or a component reference.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n *\n * @example\n * ```ts\n * const { withNoRecipe } = createCerberusPrimitive(buttonRecipe)\n * const Button = withNoRecipe('button')\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P> | string,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n const El = Component as ComponentType<P> | ElementType\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <El {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n if (this.validateComponent(El)) {\n const ElName = typeof El === 'string' ? El : El.displayName || El.name\n CerbComponent.displayName = ElName\n }\n\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P> | string,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const El = Component as ComponentType<P> | ElementType\n\n const recipe = this.recipe as CerberusRecipe\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n if (this.validateComponent(El)) {\n const ElName = typeof El === 'string' ? El : El.displayName || El.name\n CerbComponent.displayName = ElName\n }\n\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P> | string,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const El = Component as ComponentType<P> | ElementType\n\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n if (this.validateComponent(El)) {\n const ElName = typeof El === 'string' ? El : El.displayName || El.name\n CerbComponent.displayName = ElName\n }\n\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n","import type { ElementType } from 'react'\nimport {\n CheckboxRoot,\n CheckboxLabel,\n CheckboxControl,\n CheckboxIndicator,\n CheckboxHiddenInput,\n CheckboxGroup,\n} from './primitives'\n\n/**\n * This module contains the parts of the Field component.\n * @module 'field/parts'\n */\n\ninterface CheckboxPartsValue {\n /**\n * The container of the field.\n */\n Root: ElementType\n /**\n * The label of the field.\n */\n Label: ElementType\n /**\n * The control of the field.\n */\n Control: ElementType\n /**\n * The indicator of the field.\n */\n Indicator: ElementType\n /**\n * The hidden input of the field.\n */\n HiddenInput: ElementType\n /**\n * The checkbox group component.\n */\n Group: ElementType\n}\n\n/**\n * An Object containing the parts of the Checkbox component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the CheckboxParts object and\n * the entire family of components vs. only what you use.\n */\nexport const CheckboxParts: CheckboxPartsValue = {\n Root: CheckboxRoot,\n Label: CheckboxLabel,\n Control: CheckboxControl,\n Indicator: CheckboxIndicator,\n HiddenInput: CheckboxHiddenInput,\n Group: CheckboxGroup,\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 { useCerberusContext } from '../../context/cerberus'\nimport { Show } from '../show/index'\nimport { CheckboxParts } from './parts'\n\n/**\n * This module contains the Checkbox Icon component.\n * @module\n */\n\ninterface CheckboxIconProps {\n indeterminate?: boolean\n}\n\n/**\n * Checkbox component\n * @definition [ARIA Target Size](https://www.w3.org/WAI/WCAG21/Understanding/target-size.html#:~:text=Understanding%20SC%202.5.,%3ATarget%20Size%20(Level%20AAA)&text=The%20size%20of%20the%20target,Equivalent)\n * @definition [ARIA Forms](https://www.a11yproject.com/checklist/#forms)\n * @see https://cerberus.digitalu.design/react/checkbox\n * @example\n * ```tsx\n * <Field>\n * <Checkbox id=\"legal\" checked={checked.legal} onChange={handleChange} />\n * </Field>\n * ```\n */\nexport function CheckboxIcon(props: CheckboxIconProps) {\n const { icons } = useCerberusContext()\n const { checkbox: CheckIcon, indeterminate: IndeterminateIcon } = icons\n\n return (\n <CheckboxParts.Indicator indeterminate={props.indeterminate}>\n <Show when={props.indeterminate} fallback={<CheckIcon />}>\n <IndeterminateIcon />\n </Show>\n </CheckboxParts.Indicator>\n )\n}\n","import type { CheckboxRootProps } from '@ark-ui/react'\nimport { type CheckboxVariantProps } from 'styled-system/recipes'\nimport { Show } from '../show/index'\nimport { Text } from '../text/index'\nimport { CheckboxParts } from './parts'\nimport { CheckboxIcon } from './checkbox-icon'\n\n/**\n * This module contains the Checkbox component.\n * @module\n */\n\nexport type CheckboxProps = CheckboxVariantProps & CheckboxRootProps\n\n/**\n * Checkbox component is an abstraction of the primitives that displays a\n * controlled checkbox with a label.\n * @description [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @description [Ark Docs](https://ark-ui.com/docs/components/checkbox)\n */\nexport function Checkbox(props: CheckboxProps) {\n const { size, children, ...rootProps } = props\n\n return (\n <CheckboxParts.Root {...rootProps}>\n <CheckboxParts.Control size={size}>\n <CheckboxIcon indeterminate={rootProps.checked === 'indeterminate'} />\n </CheckboxParts.Control>\n\n <CheckboxParts.Label size={size}>\n {children}\n <Show when={props.required}>\n <Text as=\"span\" data-part=\"required-indicator\">\n (required)\n </Text>\n </Show>\n </CheckboxParts.Label>\n\n <CheckboxParts.HiddenInput />\n </CheckboxParts.Root>\n )\n}\n"],"mappings":"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","names":["Checkbox","import_jsx_runtime","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","Checkbox"]}
|
|
@@ -39,23 +39,28 @@ var CerberusPrimitive = class {
|
|
|
39
39
|
/**
|
|
40
40
|
* Creates a Cerberus component with bare features and no recipe.
|
|
41
41
|
* @param Component - The React component to enhance with Cerberus features.
|
|
42
|
+
* Can be a string or a component reference.
|
|
42
43
|
* @returns A new React component that applies Cerberus features to the
|
|
43
44
|
* original component.
|
|
45
|
+
*
|
|
44
46
|
* @example
|
|
45
|
-
* ```
|
|
46
|
-
* const { withNoRecipe } = createCerberusPrimitive(
|
|
47
|
-
* const Button = withNoRecipe(
|
|
47
|
+
* ```ts
|
|
48
|
+
* const { withNoRecipe } = createCerberusPrimitive(buttonRecipe)
|
|
49
|
+
* const Button = withNoRecipe('button')
|
|
48
50
|
* ```
|
|
49
51
|
*/
|
|
50
52
|
__publicField(this, "withNoRecipe", (Component, options) => {
|
|
51
53
|
const { defaultProps } = options || {};
|
|
52
|
-
|
|
54
|
+
const El = Component;
|
|
53
55
|
const CerbComponent = (props) => {
|
|
54
56
|
const { css: customCss, className, ...nativeProps } = props;
|
|
55
57
|
const styles = this.hasStyles((0, import_css.cx)(className, (0, import_css.css)(customCss)));
|
|
56
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
58
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(El, { ...defaultProps, ...styles, ...nativeProps });
|
|
57
59
|
};
|
|
58
|
-
|
|
60
|
+
if (this.validateComponent(El)) {
|
|
61
|
+
const ElName = typeof El === "string" ? El : El.displayName || El.name;
|
|
62
|
+
CerbComponent.displayName = ElName;
|
|
63
|
+
}
|
|
59
64
|
return CerbComponent;
|
|
60
65
|
});
|
|
61
66
|
/**
|
|
@@ -67,8 +72,8 @@ var CerberusPrimitive = class {
|
|
|
67
72
|
*/
|
|
68
73
|
__publicField(this, "withRecipe", (Component, options) => {
|
|
69
74
|
const { defaultProps } = options || {};
|
|
75
|
+
const El = Component;
|
|
70
76
|
const recipe = this.recipe;
|
|
71
|
-
this.validateComponent(Component);
|
|
72
77
|
const CerbComponent = (internalProps) => {
|
|
73
78
|
const {
|
|
74
79
|
css: customCss,
|
|
@@ -86,7 +91,10 @@ var CerberusPrimitive = class {
|
|
|
86
91
|
}
|
|
87
92
|
);
|
|
88
93
|
};
|
|
89
|
-
|
|
94
|
+
if (this.validateComponent(El)) {
|
|
95
|
+
const ElName = typeof El === "string" ? El : El.displayName || El.name;
|
|
96
|
+
CerbComponent.displayName = ElName;
|
|
97
|
+
}
|
|
90
98
|
return CerbComponent;
|
|
91
99
|
});
|
|
92
100
|
/**
|
|
@@ -103,8 +111,8 @@ var CerberusPrimitive = class {
|
|
|
103
111
|
*/
|
|
104
112
|
__publicField(this, "withSlotRecipe", (Component, slot, options) => {
|
|
105
113
|
const { defaultProps } = options || {};
|
|
114
|
+
const El = Component;
|
|
106
115
|
const recipe = this.recipe;
|
|
107
|
-
this.validateComponent(Component);
|
|
108
116
|
const CerbComponent = (internalProps) => {
|
|
109
117
|
const {
|
|
110
118
|
css: customCss,
|
|
@@ -123,7 +131,10 @@ var CerberusPrimitive = class {
|
|
|
123
131
|
}
|
|
124
132
|
);
|
|
125
133
|
};
|
|
126
|
-
|
|
134
|
+
if (this.validateComponent(El)) {
|
|
135
|
+
const ElName = typeof El === "string" ? El : El.displayName || El.name;
|
|
136
|
+
CerbComponent.displayName = ElName;
|
|
137
|
+
}
|
|
127
138
|
return CerbComponent;
|
|
128
139
|
});
|
|
129
140
|
this.recipe = recipe ?? null;
|
|
@@ -138,8 +149,9 @@ var CerberusPrimitive = class {
|
|
|
138
149
|
}
|
|
139
150
|
validateComponent(Component) {
|
|
140
151
|
if (typeof Component !== "function" && typeof Component !== "object") {
|
|
141
|
-
|
|
152
|
+
return false;
|
|
142
153
|
}
|
|
154
|
+
return true;
|
|
143
155
|
}
|
|
144
156
|
};
|
|
145
157
|
|