@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/rating/parts.tsx","../../../../src/components/rating/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts"],"sourcesContent":["import type { ElementType } from 'react'\nimport {\n RatingContext,\n RatingControl,\n RatingHiddenInput,\n RatingItem,\n RatingItemContext,\n RatingLabel,\n RatingRoot,\n} from './primitives'\n\n/**\n * This module contains the parts of the Rating component.\n * @module 'rating/parts'\n */\n\ninterface RatingPartsValue {\n /**\n * The container of the rating.\n */\n Root: ElementType\n /**\n * The label of the rating.\n */\n Label: ElementType\n /**\n * The visual representation of the rating.\n */\n Control: ElementType\n /**\n * The context of the rating.\n */\n Context: ElementType\n /**\n * The item to display for the rating.\n */\n Item: ElementType\n /**\n * The context provider for the rating items.\n */\n ItemContext: ElementType\n /**\n * The native input of the rating.\n */\n HiddenInput: ElementType\n}\n\n/**\n * An Object containing the parts of the Rating component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the RatingParts object and\n * the entire family of components vs. only what you use.\n */\nexport const RatingParts: RatingPartsValue = {\n Root: RatingRoot,\n Label: RatingLabel,\n Control: RatingControl,\n Context: RatingContext,\n Item: RatingItem,\n ItemContext: RatingItemContext,\n HiddenInput: RatingHiddenInput,\n}\n","import {\n RatingGroup,\n type RatingGroupContextProps as ArkRatingGroupContextProps,\n type RatingGroupControlProps as ArkRatingGroupControlProps,\n type RatingGroupHiddenInputProps as ArkRatingGroupHiddenInputProps,\n type RatingGroupItemContextProps as ArkRatingGroupItemContextProps,\n type RatingGroupItemProps as ArkRatingGroupItemProps,\n type RatingGroupLabelProps as ArkRatingGroupLabelProps,\n type RatingGroupRootProps as ArkRatingGroupRootProps,\n} from '@ark-ui/react/rating-group'\nimport {\n ratingGroup,\n type RatingGroupVariantProps,\n} from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Rating component.\n * @module 'rating/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(ratingGroup)\n\n// Root\n\nexport type RatingRootProps = CerberusPrimitiveProps<\n ArkRatingGroupRootProps & RatingGroupVariantProps\n>\nexport const RatingRoot = withSlotRecipe<RatingRootProps>(\n RatingGroup.Root,\n 'root',\n)\n\n// Label\n\nexport type RatingLabelProps = CerberusPrimitiveProps<ArkRatingGroupLabelProps>\nexport const RatingLabel = withSlotRecipe<RatingLabelProps>(\n RatingGroup.Label,\n 'label',\n)\n\n// Control\n\nexport type RatingGroupControlProps =\n CerberusPrimitiveProps<ArkRatingGroupControlProps>\nexport const RatingControl = withSlotRecipe<RatingGroupControlProps>(\n RatingGroup.Control,\n 'control',\n)\n\n// Context\n\nexport type RatingGroupContextProps = ArkRatingGroupContextProps\nexport const RatingContext = RatingGroup.Context\n\n// Item\n\nexport type RatingGroupItemProps = CerberusPrimitiveProps<\n ArkRatingGroupItemProps & RatingGroupVariantProps\n>\nexport const RatingItem = withSlotRecipe<RatingGroupItemProps>(\n RatingGroup.Item,\n 'item',\n)\n\n// Item Context\nexport type RatingGroupItemContextProps = ArkRatingGroupItemContextProps\nexport const RatingItemContext = RatingGroup.ItemContext\n\n// Hidden Input\n\nexport type RatingGroupHiddenInputProps = ArkRatingGroupHiddenInputProps\nexport const RatingHiddenInput = RatingGroup.HiddenInput\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/rating/parts.tsx","../../../../src/components/rating/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts"],"sourcesContent":["import type { ElementType } from 'react'\nimport {\n RatingContext,\n RatingControl,\n RatingHiddenInput,\n RatingItem,\n RatingItemContext,\n RatingLabel,\n RatingRoot,\n} from './primitives'\n\n/**\n * This module contains the parts of the Rating component.\n * @module 'rating/parts'\n */\n\ninterface RatingPartsValue {\n /**\n * The container of the rating.\n */\n Root: ElementType\n /**\n * The label of the rating.\n */\n Label: ElementType\n /**\n * The visual representation of the rating.\n */\n Control: ElementType\n /**\n * The context of the rating.\n */\n Context: ElementType\n /**\n * The item to display for the rating.\n */\n Item: ElementType\n /**\n * The context provider for the rating items.\n */\n ItemContext: ElementType\n /**\n * The native input of the rating.\n */\n HiddenInput: ElementType\n}\n\n/**\n * An Object containing the parts of the Rating component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the RatingParts object and\n * the entire family of components vs. only what you use.\n */\nexport const RatingParts: RatingPartsValue = {\n Root: RatingRoot,\n Label: RatingLabel,\n Control: RatingControl,\n Context: RatingContext,\n Item: RatingItem,\n ItemContext: RatingItemContext,\n HiddenInput: RatingHiddenInput,\n}\n","import {\n RatingGroup,\n type RatingGroupContextProps as ArkRatingGroupContextProps,\n type RatingGroupControlProps as ArkRatingGroupControlProps,\n type RatingGroupHiddenInputProps as ArkRatingGroupHiddenInputProps,\n type RatingGroupItemContextProps as ArkRatingGroupItemContextProps,\n type RatingGroupItemProps as ArkRatingGroupItemProps,\n type RatingGroupLabelProps as ArkRatingGroupLabelProps,\n type RatingGroupRootProps as ArkRatingGroupRootProps,\n} from '@ark-ui/react/rating-group'\nimport {\n ratingGroup,\n type RatingGroupVariantProps,\n} from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Rating component.\n * @module 'rating/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(ratingGroup)\n\n// Root\n\nexport type RatingRootProps = CerberusPrimitiveProps<\n ArkRatingGroupRootProps & RatingGroupVariantProps\n>\nexport const RatingRoot = withSlotRecipe<RatingRootProps>(\n RatingGroup.Root,\n 'root',\n)\n\n// Label\n\nexport type RatingLabelProps = CerberusPrimitiveProps<ArkRatingGroupLabelProps>\nexport const RatingLabel = withSlotRecipe<RatingLabelProps>(\n RatingGroup.Label,\n 'label',\n)\n\n// Control\n\nexport type RatingGroupControlProps =\n CerberusPrimitiveProps<ArkRatingGroupControlProps>\nexport const RatingControl = withSlotRecipe<RatingGroupControlProps>(\n RatingGroup.Control,\n 'control',\n)\n\n// Context\n\nexport type RatingGroupContextProps = ArkRatingGroupContextProps\nexport const RatingContext = RatingGroup.Context\n\n// Item\n\nexport type RatingGroupItemProps = CerberusPrimitiveProps<\n ArkRatingGroupItemProps & RatingGroupVariantProps\n>\nexport const RatingItem = withSlotRecipe<RatingGroupItemProps>(\n RatingGroup.Item,\n 'item',\n)\n\n// Item Context\nexport type RatingGroupItemContextProps = ArkRatingGroupItemContextProps\nexport const RatingItemContext = RatingGroup.ItemContext\n\n// Hidden Input\n\nexport type RatingGroupHiddenInputProps = ArkRatingGroupHiddenInputProps\nexport const RatingHiddenInput = RatingGroup.HiddenInput\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type 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"],"mappings":"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","names":[]}
|
|
@@ -43,23 +43,28 @@ var CerberusPrimitive = class {
|
|
|
43
43
|
/**
|
|
44
44
|
* Creates a Cerberus component with bare features and no recipe.
|
|
45
45
|
* @param Component - The React component to enhance with Cerberus features.
|
|
46
|
+
* Can be a string or a component reference.
|
|
46
47
|
* @returns A new React component that applies Cerberus features to the
|
|
47
48
|
* original component.
|
|
49
|
+
*
|
|
48
50
|
* @example
|
|
49
|
-
* ```
|
|
50
|
-
* const { withNoRecipe } = createCerberusPrimitive(
|
|
51
|
-
* const Button = withNoRecipe(
|
|
51
|
+
* ```ts
|
|
52
|
+
* const { withNoRecipe } = createCerberusPrimitive(buttonRecipe)
|
|
53
|
+
* const Button = withNoRecipe('button')
|
|
52
54
|
* ```
|
|
53
55
|
*/
|
|
54
56
|
__publicField(this, "withNoRecipe", (Component, options) => {
|
|
55
57
|
const { defaultProps } = options || {};
|
|
56
|
-
|
|
58
|
+
const El = Component;
|
|
57
59
|
const CerbComponent = (props) => {
|
|
58
60
|
const { css: customCss, className, ...nativeProps } = props;
|
|
59
61
|
const styles = this.hasStyles((0, import_css.cx)(className, (0, import_css.css)(customCss)));
|
|
60
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
62
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(El, { ...defaultProps, ...styles, ...nativeProps });
|
|
61
63
|
};
|
|
62
|
-
|
|
64
|
+
if (this.validateComponent(El)) {
|
|
65
|
+
const ElName = typeof El === "string" ? El : El.displayName || El.name;
|
|
66
|
+
CerbComponent.displayName = ElName;
|
|
67
|
+
}
|
|
63
68
|
return CerbComponent;
|
|
64
69
|
});
|
|
65
70
|
/**
|
|
@@ -71,8 +76,8 @@ var CerberusPrimitive = class {
|
|
|
71
76
|
*/
|
|
72
77
|
__publicField(this, "withRecipe", (Component, options) => {
|
|
73
78
|
const { defaultProps } = options || {};
|
|
79
|
+
const El = Component;
|
|
74
80
|
const recipe = this.recipe;
|
|
75
|
-
this.validateComponent(Component);
|
|
76
81
|
const CerbComponent = (internalProps) => {
|
|
77
82
|
const {
|
|
78
83
|
css: customCss,
|
|
@@ -90,7 +95,10 @@ var CerberusPrimitive = class {
|
|
|
90
95
|
}
|
|
91
96
|
);
|
|
92
97
|
};
|
|
93
|
-
|
|
98
|
+
if (this.validateComponent(El)) {
|
|
99
|
+
const ElName = typeof El === "string" ? El : El.displayName || El.name;
|
|
100
|
+
CerbComponent.displayName = ElName;
|
|
101
|
+
}
|
|
94
102
|
return CerbComponent;
|
|
95
103
|
});
|
|
96
104
|
/**
|
|
@@ -107,8 +115,8 @@ var CerberusPrimitive = class {
|
|
|
107
115
|
*/
|
|
108
116
|
__publicField(this, "withSlotRecipe", (Component, slot, options) => {
|
|
109
117
|
const { defaultProps } = options || {};
|
|
118
|
+
const El = Component;
|
|
110
119
|
const recipe = this.recipe;
|
|
111
|
-
this.validateComponent(Component);
|
|
112
120
|
const CerbComponent = (internalProps) => {
|
|
113
121
|
const {
|
|
114
122
|
css: customCss,
|
|
@@ -127,7 +135,10 @@ var CerberusPrimitive = class {
|
|
|
127
135
|
}
|
|
128
136
|
);
|
|
129
137
|
};
|
|
130
|
-
|
|
138
|
+
if (this.validateComponent(El)) {
|
|
139
|
+
const ElName = typeof El === "string" ? El : El.displayName || El.name;
|
|
140
|
+
CerbComponent.displayName = ElName;
|
|
141
|
+
}
|
|
131
142
|
return CerbComponent;
|
|
132
143
|
});
|
|
133
144
|
this.recipe = recipe ?? null;
|
|
@@ -142,8 +153,9 @@ var CerberusPrimitive = class {
|
|
|
142
153
|
}
|
|
143
154
|
validateComponent(Component) {
|
|
144
155
|
if (typeof Component !== "function" && typeof Component !== "object") {
|
|
145
|
-
|
|
156
|
+
return false;
|
|
146
157
|
}
|
|
158
|
+
return true;
|
|
147
159
|
}
|
|
148
160
|
};
|
|
149
161
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/rating/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts"],"sourcesContent":["import {\n RatingGroup,\n type RatingGroupContextProps as ArkRatingGroupContextProps,\n type RatingGroupControlProps as ArkRatingGroupControlProps,\n type RatingGroupHiddenInputProps as ArkRatingGroupHiddenInputProps,\n type RatingGroupItemContextProps as ArkRatingGroupItemContextProps,\n type RatingGroupItemProps as ArkRatingGroupItemProps,\n type RatingGroupLabelProps as ArkRatingGroupLabelProps,\n type RatingGroupRootProps as ArkRatingGroupRootProps,\n} from '@ark-ui/react/rating-group'\nimport {\n ratingGroup,\n type RatingGroupVariantProps,\n} from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Rating component.\n * @module 'rating/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(ratingGroup)\n\n// Root\n\nexport type RatingRootProps = CerberusPrimitiveProps<\n ArkRatingGroupRootProps & RatingGroupVariantProps\n>\nexport const RatingRoot = withSlotRecipe<RatingRootProps>(\n RatingGroup.Root,\n 'root',\n)\n\n// Label\n\nexport type RatingLabelProps = CerberusPrimitiveProps<ArkRatingGroupLabelProps>\nexport const RatingLabel = withSlotRecipe<RatingLabelProps>(\n RatingGroup.Label,\n 'label',\n)\n\n// Control\n\nexport type RatingGroupControlProps =\n CerberusPrimitiveProps<ArkRatingGroupControlProps>\nexport const RatingControl = withSlotRecipe<RatingGroupControlProps>(\n RatingGroup.Control,\n 'control',\n)\n\n// Context\n\nexport type RatingGroupContextProps = ArkRatingGroupContextProps\nexport const RatingContext = RatingGroup.Context\n\n// Item\n\nexport type RatingGroupItemProps = CerberusPrimitiveProps<\n ArkRatingGroupItemProps & RatingGroupVariantProps\n>\nexport const RatingItem = withSlotRecipe<RatingGroupItemProps>(\n RatingGroup.Item,\n 'item',\n)\n\n// Item Context\nexport type RatingGroupItemContextProps = ArkRatingGroupItemContextProps\nexport const RatingItemContext = RatingGroup.ItemContext\n\n// Hidden Input\n\nexport type RatingGroupHiddenInputProps = ArkRatingGroupHiddenInputProps\nexport const RatingHiddenInput = RatingGroup.HiddenInput\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/rating/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts"],"sourcesContent":["import {\n RatingGroup,\n type RatingGroupContextProps as ArkRatingGroupContextProps,\n type RatingGroupControlProps as ArkRatingGroupControlProps,\n type RatingGroupHiddenInputProps as ArkRatingGroupHiddenInputProps,\n type RatingGroupItemContextProps as ArkRatingGroupItemContextProps,\n type RatingGroupItemProps as ArkRatingGroupItemProps,\n type RatingGroupLabelProps as ArkRatingGroupLabelProps,\n type RatingGroupRootProps as ArkRatingGroupRootProps,\n} from '@ark-ui/react/rating-group'\nimport {\n ratingGroup,\n type RatingGroupVariantProps,\n} from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Rating component.\n * @module 'rating/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(ratingGroup)\n\n// Root\n\nexport type RatingRootProps = CerberusPrimitiveProps<\n ArkRatingGroupRootProps & RatingGroupVariantProps\n>\nexport const RatingRoot = withSlotRecipe<RatingRootProps>(\n RatingGroup.Root,\n 'root',\n)\n\n// Label\n\nexport type RatingLabelProps = CerberusPrimitiveProps<ArkRatingGroupLabelProps>\nexport const RatingLabel = withSlotRecipe<RatingLabelProps>(\n RatingGroup.Label,\n 'label',\n)\n\n// Control\n\nexport type RatingGroupControlProps =\n CerberusPrimitiveProps<ArkRatingGroupControlProps>\nexport const RatingControl = withSlotRecipe<RatingGroupControlProps>(\n RatingGroup.Control,\n 'control',\n)\n\n// Context\n\nexport type RatingGroupContextProps = ArkRatingGroupContextProps\nexport const RatingContext = RatingGroup.Context\n\n// Item\n\nexport type RatingGroupItemProps = CerberusPrimitiveProps<\n ArkRatingGroupItemProps & RatingGroupVariantProps\n>\nexport const RatingItem = withSlotRecipe<RatingGroupItemProps>(\n RatingGroup.Item,\n 'item',\n)\n\n// Item Context\nexport type RatingGroupItemContextProps = ArkRatingGroupItemContextProps\nexport const RatingItemContext = RatingGroup.ItemContext\n\n// Hidden Input\n\nexport type RatingGroupHiddenInputProps = ArkRatingGroupHiddenInputProps\nexport const RatingHiddenInput = RatingGroup.HiddenInput\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type 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"],"mappings":"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","names":[]}
|
|
@@ -72,23 +72,28 @@ var CerberusPrimitive = class {
|
|
|
72
72
|
/**
|
|
73
73
|
* Creates a Cerberus component with bare features and no recipe.
|
|
74
74
|
* @param Component - The React component to enhance with Cerberus features.
|
|
75
|
+
* Can be a string or a component reference.
|
|
75
76
|
* @returns A new React component that applies Cerberus features to the
|
|
76
77
|
* original component.
|
|
78
|
+
*
|
|
77
79
|
* @example
|
|
78
|
-
* ```
|
|
79
|
-
* const { withNoRecipe } = createCerberusPrimitive(
|
|
80
|
-
* const Button = withNoRecipe(
|
|
80
|
+
* ```ts
|
|
81
|
+
* const { withNoRecipe } = createCerberusPrimitive(buttonRecipe)
|
|
82
|
+
* const Button = withNoRecipe('button')
|
|
81
83
|
* ```
|
|
82
84
|
*/
|
|
83
85
|
__publicField(this, "withNoRecipe", (Component, options) => {
|
|
84
86
|
const { defaultProps } = options || {};
|
|
85
|
-
|
|
87
|
+
const El = Component;
|
|
86
88
|
const CerbComponent = (props) => {
|
|
87
89
|
const { css: customCss, className, ...nativeProps } = props;
|
|
88
90
|
const styles = this.hasStyles((0, import_css.cx)(className, (0, import_css.css)(customCss)));
|
|
89
|
-
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
91
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(El, { ...defaultProps, ...styles, ...nativeProps });
|
|
90
92
|
};
|
|
91
|
-
|
|
93
|
+
if (this.validateComponent(El)) {
|
|
94
|
+
const ElName = typeof El === "string" ? El : El.displayName || El.name;
|
|
95
|
+
CerbComponent.displayName = ElName;
|
|
96
|
+
}
|
|
92
97
|
return CerbComponent;
|
|
93
98
|
});
|
|
94
99
|
/**
|
|
@@ -100,8 +105,8 @@ var CerberusPrimitive = class {
|
|
|
100
105
|
*/
|
|
101
106
|
__publicField(this, "withRecipe", (Component, options) => {
|
|
102
107
|
const { defaultProps } = options || {};
|
|
108
|
+
const El = Component;
|
|
103
109
|
const recipe = this.recipe;
|
|
104
|
-
this.validateComponent(Component);
|
|
105
110
|
const CerbComponent = (internalProps) => {
|
|
106
111
|
const {
|
|
107
112
|
css: customCss,
|
|
@@ -119,7 +124,10 @@ var CerberusPrimitive = class {
|
|
|
119
124
|
}
|
|
120
125
|
);
|
|
121
126
|
};
|
|
122
|
-
|
|
127
|
+
if (this.validateComponent(El)) {
|
|
128
|
+
const ElName = typeof El === "string" ? El : El.displayName || El.name;
|
|
129
|
+
CerbComponent.displayName = ElName;
|
|
130
|
+
}
|
|
123
131
|
return CerbComponent;
|
|
124
132
|
});
|
|
125
133
|
/**
|
|
@@ -136,8 +144,8 @@ var CerberusPrimitive = class {
|
|
|
136
144
|
*/
|
|
137
145
|
__publicField(this, "withSlotRecipe", (Component, slot, options) => {
|
|
138
146
|
const { defaultProps } = options || {};
|
|
147
|
+
const El = Component;
|
|
139
148
|
const recipe = this.recipe;
|
|
140
|
-
this.validateComponent(Component);
|
|
141
149
|
const CerbComponent = (internalProps) => {
|
|
142
150
|
const {
|
|
143
151
|
css: customCss,
|
|
@@ -156,7 +164,10 @@ var CerberusPrimitive = class {
|
|
|
156
164
|
}
|
|
157
165
|
);
|
|
158
166
|
};
|
|
159
|
-
|
|
167
|
+
if (this.validateComponent(El)) {
|
|
168
|
+
const ElName = typeof El === "string" ? El : El.displayName || El.name;
|
|
169
|
+
CerbComponent.displayName = ElName;
|
|
170
|
+
}
|
|
160
171
|
return CerbComponent;
|
|
161
172
|
});
|
|
162
173
|
this.recipe = recipe ?? null;
|
|
@@ -171,8 +182,9 @@ var CerberusPrimitive = class {
|
|
|
171
182
|
}
|
|
172
183
|
validateComponent(Component) {
|
|
173
184
|
if (typeof Component !== "function" && typeof Component !== "object") {
|
|
174
|
-
|
|
185
|
+
return false;
|
|
175
186
|
}
|
|
187
|
+
return true;
|
|
176
188
|
}
|
|
177
189
|
};
|
|
178
190
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/rating/rating.tsx","../../../../src/utils/index.ts","../../../../src/components/show/show.tsx","../../../../src/components/rating/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/rating/parts.tsx"],"sourcesContent":["import type {\n UseRatingGroupContext,\n UseRatingGroupItemContext,\n} from '@ark-ui/react/rating-group'\nimport type { ReactNode } from 'react'\nimport { splitProps } from '../../utils/index'\nimport { Show } from '../show/index'\nimport { RatingParts } from './parts'\nimport type { RatingRootProps } from './primitives'\n\n/**\n * This module contains the abstracted Rating component.\n * @module 'react/rating'\n */\n\nexport interface RatingProps extends Omit<RatingRootProps, 'children'> {\n /**\n * The label of the rating component.\n */\n label?: string\n /**\n * The children of the rating component.\n */\n children: (context: UseRatingGroupItemContext) => ReactNode\n}\n\n/**\n * The Rating component is an abstraction of the primitives which provides a\n * visual rating system for a user to select a value.\n * @description [Cerberus Docs](https://cerberus.digitalu.design/react/rating)\n * @description [Ark Docs](https://ark-ui.com/react/docs/components/rating-group#api-reference)\n * @example\n * ```tsx\n * <Rating count={5} defaultValue={3} allowHalf>\n * {({ half, highlighted }) => {\n * if (half) return <StarHalfIcon fill=\"current\" />\n * if (highlighted) return <StarIcon fill=\"current\" />\n * return <StarIcon />\n * }}\n * </Rating>\n * ```\n */\nexport function Rating(props: RatingProps) {\n const [{ label }, styleProps, rootProps] = splitProps(\n props,\n ['label'],\n ['orientation', 'palette', 'size'],\n )\n\n return (\n <RatingParts.Root {...styleProps} {...rootProps}>\n <Show when={label}>\n <RatingParts.Label>{label}</RatingParts.Label>\n </Show>\n\n <RatingParts.Control>\n <RatingParts.Context>\n {(context: UseRatingGroupContext) =>\n context.items.map((item) => (\n <RatingParts.Item\n key={item}\n index={item}\n palette={styleProps.palette}\n >\n <RatingParts.ItemContext>\n {rootProps.children}\n </RatingParts.ItemContext>\n </RatingParts.Item>\n ))\n }\n </RatingParts.Context>\n </RatingParts.Control>\n </RatingParts.Root>\n )\n}\n","/**\n * This module contains utility functions that are used across your app.\n * @module Utils\n */\n\n/**\n * Formats the count of notifications to be displayed in the notification badge.\n * @param count - The number of notifications.\n * @returns The formatted count of notifications.\n * @example\n * ```tsx\n * const count = formatNotifyCount(100)\n * console.log(count) // '99+'\n * ```\n */\nexport function formatNotifyCount(count: number): string {\n if (count > 99) return '99+'\n return count.toString()\n}\n\n/**\n * Splits the properties of an object into multiple groups based on lists of keys.\n * @param props - The object to split.\n * @param keyGroups - The lists of keys to include in each group.\n * @returns An array of objects: each containing the properties specified in the corresponding key group, and the last object containing the remaining keys.\n */\nexport function splitProps<T extends object>(\n props: T,\n ...keyGroups: (keyof T)[][]\n): { [K in keyof T]?: T[K] }[] {\n const result = keyGroups.map(() => ({}) as { [K in keyof T]?: T[K] })\n const rest = {} as { [K in keyof T]?: T[K] }\n\n for (const key in props) {\n let assigned = false\n for (let i = 0; i < keyGroups.length; i++) {\n if (keyGroups[i].includes(key as keyof T)) {\n result[i][key as keyof T] = props[key]\n assigned = true\n break\n }\n }\n if (!assigned) {\n rest[key as keyof T] = props[key]\n }\n }\n\n return [...result, rest]\n}\n\nexport * from './localStorage'\n","import { type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps<T> {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: T | boolean | null | undefined\n /**\n * The children to render when the condition is false.\n */\n fallback?: ReactNode\n}\n\n/**\n * Conditionally render a memoized version of the children or optional fallback\n * content.\n * @see https://cerberus.digitalu.design/react/show\n * @example\n * ```tsx\n * <Show when={isLoggedIn} fallback={<Navigate to=\"/login\" />}>\n * <Dashboard />\n * </Show>\n */\nexport function Show<T>(props: PropsWithChildren<ShowProps<T>>) {\n const { when, children, fallback } = props\n\n if (when) {\n return <>{children}</>\n }\n\n if (fallback) {\n return <>{fallback}</>\n }\n\n return null\n}\n","import {\n RatingGroup,\n type RatingGroupContextProps as ArkRatingGroupContextProps,\n type RatingGroupControlProps as ArkRatingGroupControlProps,\n type RatingGroupHiddenInputProps as ArkRatingGroupHiddenInputProps,\n type RatingGroupItemContextProps as ArkRatingGroupItemContextProps,\n type RatingGroupItemProps as ArkRatingGroupItemProps,\n type RatingGroupLabelProps as ArkRatingGroupLabelProps,\n type RatingGroupRootProps as ArkRatingGroupRootProps,\n} from '@ark-ui/react/rating-group'\nimport {\n ratingGroup,\n type RatingGroupVariantProps,\n} from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Rating component.\n * @module 'rating/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(ratingGroup)\n\n// Root\n\nexport type RatingRootProps = CerberusPrimitiveProps<\n ArkRatingGroupRootProps & RatingGroupVariantProps\n>\nexport const RatingRoot = withSlotRecipe<RatingRootProps>(\n RatingGroup.Root,\n 'root',\n)\n\n// Label\n\nexport type RatingLabelProps = CerberusPrimitiveProps<ArkRatingGroupLabelProps>\nexport const RatingLabel = withSlotRecipe<RatingLabelProps>(\n RatingGroup.Label,\n 'label',\n)\n\n// Control\n\nexport type RatingGroupControlProps =\n CerberusPrimitiveProps<ArkRatingGroupControlProps>\nexport const RatingControl = withSlotRecipe<RatingGroupControlProps>(\n RatingGroup.Control,\n 'control',\n)\n\n// Context\n\nexport type RatingGroupContextProps = ArkRatingGroupContextProps\nexport const RatingContext = RatingGroup.Context\n\n// Item\n\nexport type RatingGroupItemProps = CerberusPrimitiveProps<\n ArkRatingGroupItemProps & RatingGroupVariantProps\n>\nexport const RatingItem = withSlotRecipe<RatingGroupItemProps>(\n RatingGroup.Item,\n 'item',\n)\n\n// Item Context\nexport type RatingGroupItemContextProps = ArkRatingGroupItemContextProps\nexport const RatingItemContext = RatingGroup.ItemContext\n\n// Hidden Input\n\nexport type RatingGroupHiddenInputProps = ArkRatingGroupHiddenInputProps\nexport const RatingHiddenInput = RatingGroup.HiddenInput\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const {\n css: customCss,\n className,\n ...restOfInternalProps\n } = internalProps\n\n const [variantOptions, nativeProps] =\n recipe.splitVariantProps(restOfInternalProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n","import type { ElementType } from 'react'\nimport {\n RatingContext,\n RatingControl,\n RatingHiddenInput,\n RatingItem,\n RatingItemContext,\n RatingLabel,\n RatingRoot,\n} from './primitives'\n\n/**\n * This module contains the parts of the Rating component.\n * @module 'rating/parts'\n */\n\ninterface RatingPartsValue {\n /**\n * The container of the rating.\n */\n Root: ElementType\n /**\n * The label of the rating.\n */\n Label: ElementType\n /**\n * The visual representation of the rating.\n */\n Control: ElementType\n /**\n * The context of the rating.\n */\n Context: ElementType\n /**\n * The item to display for the rating.\n */\n Item: ElementType\n /**\n * The context provider for the rating items.\n */\n ItemContext: ElementType\n /**\n * The native input of the rating.\n */\n HiddenInput: ElementType\n}\n\n/**\n * An Object containing the parts of the Rating component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the RatingParts object and\n * the entire family of components vs. only what you use.\n */\nexport const RatingParts: RatingPartsValue = {\n Root: RatingRoot,\n Label: RatingLabel,\n Control: RatingControl,\n Context: RatingContext,\n Item: RatingItem,\n ItemContext: RatingItemContext,\n HiddenInput: RatingHiddenInput,\n}\n"],"mappings":"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","names":["import_jsx_runtime","import_jsx_runtime"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/rating/rating.tsx","../../../../src/utils/index.ts","../../../../src/components/show/show.tsx","../../../../src/components/rating/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/rating/parts.tsx"],"sourcesContent":["import type {\n UseRatingGroupContext,\n UseRatingGroupItemContext,\n} from '@ark-ui/react/rating-group'\nimport type { ReactNode } from 'react'\nimport { splitProps } from '../../utils/index'\nimport { Show } from '../show/index'\nimport { RatingParts } from './parts'\nimport type { RatingRootProps } from './primitives'\n\n/**\n * This module contains the abstracted Rating component.\n * @module 'react/rating'\n */\n\nexport interface RatingProps extends Omit<RatingRootProps, 'children'> {\n /**\n * The label of the rating component.\n */\n label?: string\n /**\n * The children of the rating component.\n */\n children: (context: UseRatingGroupItemContext) => ReactNode\n}\n\n/**\n * The Rating component is an abstraction of the primitives which provides a\n * visual rating system for a user to select a value.\n * @description [Cerberus Docs](https://cerberus.digitalu.design/react/rating)\n * @description [Ark Docs](https://ark-ui.com/react/docs/components/rating-group#api-reference)\n * @example\n * ```tsx\n * <Rating count={5} defaultValue={3} allowHalf>\n * {({ half, highlighted }) => {\n * if (half) return <StarHalfIcon fill=\"current\" />\n * if (highlighted) return <StarIcon fill=\"current\" />\n * return <StarIcon />\n * }}\n * </Rating>\n * ```\n */\nexport function Rating(props: RatingProps) {\n const [{ label }, styleProps, rootProps] = splitProps(\n props,\n ['label'],\n ['orientation', 'palette', 'size'],\n )\n\n return (\n <RatingParts.Root {...styleProps} {...rootProps}>\n <Show when={label}>\n <RatingParts.Label>{label}</RatingParts.Label>\n </Show>\n\n <RatingParts.Control>\n <RatingParts.Context>\n {(context: UseRatingGroupContext) =>\n context.items.map((item) => (\n <RatingParts.Item\n key={item}\n index={item}\n palette={styleProps.palette}\n >\n <RatingParts.ItemContext>\n {rootProps.children}\n </RatingParts.ItemContext>\n </RatingParts.Item>\n ))\n }\n </RatingParts.Context>\n </RatingParts.Control>\n </RatingParts.Root>\n )\n}\n","/**\n * This module contains utility functions that are used across your app.\n * @module Utils\n */\n\n/**\n * Formats the count of notifications to be displayed in the notification badge.\n * @param count - The number of notifications.\n * @returns The formatted count of notifications.\n * @example\n * ```tsx\n * const count = formatNotifyCount(100)\n * console.log(count) // '99+'\n * ```\n */\nexport function formatNotifyCount(count: number): string {\n if (count > 99) return '99+'\n return count.toString()\n}\n\n/**\n * Splits the properties of an object into multiple groups based on lists of keys.\n * @param props - The object to split.\n * @param keyGroups - The lists of keys to include in each group.\n * @returns An array of objects: each containing the properties specified in the corresponding key group, and the last object containing the remaining keys.\n */\nexport function splitProps<T extends object>(\n props: T,\n ...keyGroups: (keyof T)[][]\n): { [K in keyof T]?: T[K] }[] {\n const result = keyGroups.map(() => ({}) as { [K in keyof T]?: T[K] })\n const rest = {} as { [K in keyof T]?: T[K] }\n\n for (const key in props) {\n let assigned = false\n for (let i = 0; i < keyGroups.length; i++) {\n if (keyGroups[i].includes(key as keyof T)) {\n result[i][key as keyof T] = props[key]\n assigned = true\n break\n }\n }\n if (!assigned) {\n rest[key as keyof T] = props[key]\n }\n }\n\n return [...result, rest]\n}\n\nexport * from './localStorage'\n","import { type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps<T> {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: T | boolean | null | undefined\n /**\n * The children to render when the condition is false.\n */\n fallback?: ReactNode\n}\n\n/**\n * Conditionally render a memoized version of the children or optional fallback\n * content.\n * @see https://cerberus.digitalu.design/react/show\n * @example\n * ```tsx\n * <Show when={isLoggedIn} fallback={<Navigate to=\"/login\" />}>\n * <Dashboard />\n * </Show>\n */\nexport function Show<T>(props: PropsWithChildren<ShowProps<T>>) {\n const { when, children, fallback } = props\n\n if (when) {\n return <>{children}</>\n }\n\n if (fallback) {\n return <>{fallback}</>\n }\n\n return null\n}\n","import {\n RatingGroup,\n type RatingGroupContextProps as ArkRatingGroupContextProps,\n type RatingGroupControlProps as ArkRatingGroupControlProps,\n type RatingGroupHiddenInputProps as ArkRatingGroupHiddenInputProps,\n type RatingGroupItemContextProps as ArkRatingGroupItemContextProps,\n type RatingGroupItemProps as ArkRatingGroupItemProps,\n type RatingGroupLabelProps as ArkRatingGroupLabelProps,\n type RatingGroupRootProps as ArkRatingGroupRootProps,\n} from '@ark-ui/react/rating-group'\nimport {\n ratingGroup,\n type RatingGroupVariantProps,\n} from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Rating component.\n * @module 'rating/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(ratingGroup)\n\n// Root\n\nexport type RatingRootProps = CerberusPrimitiveProps<\n ArkRatingGroupRootProps & RatingGroupVariantProps\n>\nexport const RatingRoot = withSlotRecipe<RatingRootProps>(\n RatingGroup.Root,\n 'root',\n)\n\n// Label\n\nexport type RatingLabelProps = CerberusPrimitiveProps<ArkRatingGroupLabelProps>\nexport const RatingLabel = withSlotRecipe<RatingLabelProps>(\n RatingGroup.Label,\n 'label',\n)\n\n// Control\n\nexport type RatingGroupControlProps =\n CerberusPrimitiveProps<ArkRatingGroupControlProps>\nexport const RatingControl = withSlotRecipe<RatingGroupControlProps>(\n RatingGroup.Control,\n 'control',\n)\n\n// Context\n\nexport type RatingGroupContextProps = ArkRatingGroupContextProps\nexport const RatingContext = RatingGroup.Context\n\n// Item\n\nexport type RatingGroupItemProps = CerberusPrimitiveProps<\n ArkRatingGroupItemProps & RatingGroupVariantProps\n>\nexport const RatingItem = withSlotRecipe<RatingGroupItemProps>(\n RatingGroup.Item,\n 'item',\n)\n\n// Item Context\nexport type RatingGroupItemContextProps = ArkRatingGroupItemContextProps\nexport const RatingItemContext = RatingGroup.ItemContext\n\n// Hidden Input\n\nexport type RatingGroupHiddenInputProps = ArkRatingGroupHiddenInputProps\nexport const RatingHiddenInput = RatingGroup.HiddenInput\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type 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 RatingContext,\n RatingControl,\n RatingHiddenInput,\n RatingItem,\n RatingItemContext,\n RatingLabel,\n RatingRoot,\n} from './primitives'\n\n/**\n * This module contains the parts of the Rating component.\n * @module 'rating/parts'\n */\n\ninterface RatingPartsValue {\n /**\n * The container of the rating.\n */\n Root: ElementType\n /**\n * The label of the rating.\n */\n Label: ElementType\n /**\n * The visual representation of the rating.\n */\n Control: ElementType\n /**\n * The context of the rating.\n */\n Context: ElementType\n /**\n * The item to display for the rating.\n */\n Item: ElementType\n /**\n * The context provider for the rating items.\n */\n ItemContext: ElementType\n /**\n * The native input of the rating.\n */\n HiddenInput: ElementType\n}\n\n/**\n * An Object containing the parts of the Rating component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the RatingParts object and\n * the entire family of components vs. only what you use.\n */\nexport const RatingParts: RatingPartsValue = {\n Root: RatingRoot,\n Label: RatingLabel,\n Control: RatingControl,\n Context: RatingContext,\n Item: RatingItem,\n ItemContext: RatingItemContext,\n HiddenInput: RatingHiddenInput,\n}\n"],"mappings":"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","names":["import_jsx_runtime","import_jsx_runtime"]}
|
|
@@ -59,23 +59,28 @@ var CerberusPrimitive = class {
|
|
|
59
59
|
/**
|
|
60
60
|
* Creates a Cerberus component with bare features and no recipe.
|
|
61
61
|
* @param Component - The React component to enhance with Cerberus features.
|
|
62
|
+
* Can be a string or a component reference.
|
|
62
63
|
* @returns A new React component that applies Cerberus features to the
|
|
63
64
|
* original component.
|
|
65
|
+
*
|
|
64
66
|
* @example
|
|
65
|
-
* ```
|
|
66
|
-
* const { withNoRecipe } = createCerberusPrimitive(
|
|
67
|
-
* const Button = withNoRecipe(
|
|
67
|
+
* ```ts
|
|
68
|
+
* const { withNoRecipe } = createCerberusPrimitive(buttonRecipe)
|
|
69
|
+
* const Button = withNoRecipe('button')
|
|
68
70
|
* ```
|
|
69
71
|
*/
|
|
70
72
|
__publicField(this, "withNoRecipe", (Component, options) => {
|
|
71
73
|
const { defaultProps } = options || {};
|
|
72
|
-
|
|
74
|
+
const El = Component;
|
|
73
75
|
const CerbComponent = (props) => {
|
|
74
76
|
const { css: customCss, className, ...nativeProps } = props;
|
|
75
77
|
const styles = this.hasStyles((0, import_css.cx)(className, (0, import_css.css)(customCss)));
|
|
76
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
78
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(El, { ...defaultProps, ...styles, ...nativeProps });
|
|
77
79
|
};
|
|
78
|
-
|
|
80
|
+
if (this.validateComponent(El)) {
|
|
81
|
+
const ElName = typeof El === "string" ? El : El.displayName || El.name;
|
|
82
|
+
CerbComponent.displayName = ElName;
|
|
83
|
+
}
|
|
79
84
|
return CerbComponent;
|
|
80
85
|
});
|
|
81
86
|
/**
|
|
@@ -87,8 +92,8 @@ var CerberusPrimitive = class {
|
|
|
87
92
|
*/
|
|
88
93
|
__publicField(this, "withRecipe", (Component, options) => {
|
|
89
94
|
const { defaultProps } = options || {};
|
|
95
|
+
const El = Component;
|
|
90
96
|
const recipe = this.recipe;
|
|
91
|
-
this.validateComponent(Component);
|
|
92
97
|
const CerbComponent = (internalProps) => {
|
|
93
98
|
const {
|
|
94
99
|
css: customCss,
|
|
@@ -106,7 +111,10 @@ var CerberusPrimitive = class {
|
|
|
106
111
|
}
|
|
107
112
|
);
|
|
108
113
|
};
|
|
109
|
-
|
|
114
|
+
if (this.validateComponent(El)) {
|
|
115
|
+
const ElName = typeof El === "string" ? El : El.displayName || El.name;
|
|
116
|
+
CerbComponent.displayName = ElName;
|
|
117
|
+
}
|
|
110
118
|
return CerbComponent;
|
|
111
119
|
});
|
|
112
120
|
/**
|
|
@@ -123,8 +131,8 @@ var CerberusPrimitive = class {
|
|
|
123
131
|
*/
|
|
124
132
|
__publicField(this, "withSlotRecipe", (Component, slot, options) => {
|
|
125
133
|
const { defaultProps } = options || {};
|
|
134
|
+
const El = Component;
|
|
126
135
|
const recipe = this.recipe;
|
|
127
|
-
this.validateComponent(Component);
|
|
128
136
|
const CerbComponent = (internalProps) => {
|
|
129
137
|
const {
|
|
130
138
|
css: customCss,
|
|
@@ -143,7 +151,10 @@ var CerberusPrimitive = class {
|
|
|
143
151
|
}
|
|
144
152
|
);
|
|
145
153
|
};
|
|
146
|
-
|
|
154
|
+
if (this.validateComponent(El)) {
|
|
155
|
+
const ElName = typeof El === "string" ? El : El.displayName || El.name;
|
|
156
|
+
CerbComponent.displayName = ElName;
|
|
157
|
+
}
|
|
147
158
|
return CerbComponent;
|
|
148
159
|
});
|
|
149
160
|
this.recipe = recipe ?? null;
|
|
@@ -158,8 +169,9 @@ var CerberusPrimitive = class {
|
|
|
158
169
|
}
|
|
159
170
|
validateComponent(Component) {
|
|
160
171
|
if (typeof Component !== "function" && typeof Component !== "object") {
|
|
161
|
-
|
|
172
|
+
return false;
|
|
162
173
|
}
|
|
174
|
+
return true;
|
|
163
175
|
}
|
|
164
176
|
};
|
|
165
177
|
|