@cerberus-design/react 0.19.1 → 0.19.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/legacy/_tsup-dts-rollup.d.cts +20 -8
- package/build/legacy/components/accordion/index.cjs +35 -15
- package/build/legacy/components/accordion/index.cjs.map +1 -1
- package/build/legacy/components/accordion/item-group.cjs +35 -15
- package/build/legacy/components/accordion/item-group.cjs.map +1 -1
- package/build/legacy/components/accordion/item-indicator.cjs +35 -15
- package/build/legacy/components/accordion/item-indicator.cjs.map +1 -1
- package/build/legacy/components/accordion/parts.cjs +35 -15
- package/build/legacy/components/accordion/parts.cjs.map +1 -1
- package/build/legacy/components/accordion/primitives.cjs +35 -15
- package/build/legacy/components/accordion/primitives.cjs.map +1 -1
- package/build/legacy/components/admonition/admonition.cjs +35 -15
- package/build/legacy/components/admonition/admonition.cjs.map +1 -1
- package/build/legacy/components/admonition/index.cjs +35 -15
- package/build/legacy/components/admonition/index.cjs.map +1 -1
- package/build/legacy/components/admonition/match-avatar.cjs +35 -15
- package/build/legacy/components/admonition/match-avatar.cjs.map +1 -1
- package/build/legacy/components/admonition/parts.cjs +35 -15
- package/build/legacy/components/admonition/parts.cjs.map +1 -1
- package/build/legacy/components/admonition/primitives.cjs +35 -15
- package/build/legacy/components/admonition/primitives.cjs.map +1 -1
- package/build/legacy/components/avatar/avatar.cjs +35 -15
- package/build/legacy/components/avatar/avatar.cjs.map +1 -1
- package/build/legacy/components/avatar/index.cjs +35 -15
- package/build/legacy/components/avatar/index.cjs.map +1 -1
- package/build/legacy/components/avatar/parts.cjs +35 -15
- package/build/legacy/components/avatar/parts.cjs.map +1 -1
- package/build/legacy/components/avatar/primitives.cjs +35 -15
- package/build/legacy/components/avatar/primitives.cjs.map +1 -1
- package/build/legacy/components/button/button.cjs +35 -15
- package/build/legacy/components/button/button.cjs.map +1 -1
- package/build/legacy/components/button/index.cjs +35 -15
- package/build/legacy/components/button/index.cjs.map +1 -1
- package/build/legacy/components/button/parts.cjs +35 -15
- package/build/legacy/components/button/parts.cjs.map +1 -1
- package/build/legacy/components/button/primitives.cjs +35 -15
- package/build/legacy/components/button/primitives.cjs.map +1 -1
- package/build/legacy/components/checkbox/checkbox-icon.cjs +35 -15
- package/build/legacy/components/checkbox/checkbox-icon.cjs.map +1 -1
- package/build/legacy/components/checkbox/checkbox.cjs +35 -15
- package/build/legacy/components/checkbox/checkbox.cjs.map +1 -1
- package/build/legacy/components/checkbox/index.cjs +35 -15
- package/build/legacy/components/checkbox/index.cjs.map +1 -1
- package/build/legacy/components/checkbox/parts.cjs +35 -15
- package/build/legacy/components/checkbox/parts.cjs.map +1 -1
- package/build/legacy/components/checkbox/primitives.cjs +35 -15
- package/build/legacy/components/checkbox/primitives.cjs.map +1 -1
- package/build/legacy/components/circular-progress/circular-progress.cjs +35 -15
- package/build/legacy/components/circular-progress/circular-progress.cjs.map +1 -1
- package/build/legacy/components/circular-progress/index.cjs +35 -15
- package/build/legacy/components/circular-progress/index.cjs.map +1 -1
- package/build/legacy/components/circular-progress/primitives.cjs +35 -15
- package/build/legacy/components/circular-progress/primitives.cjs.map +1 -1
- package/build/legacy/components/combobox/combobox.cjs +35 -15
- package/build/legacy/components/combobox/combobox.cjs.map +1 -1
- package/build/legacy/components/combobox/index.cjs +35 -15
- package/build/legacy/components/combobox/index.cjs.map +1 -1
- package/build/legacy/components/combobox/item-group.cjs +35 -15
- package/build/legacy/components/combobox/item-group.cjs.map +1 -1
- package/build/legacy/components/combobox/item.cjs +35 -15
- package/build/legacy/components/combobox/item.cjs.map +1 -1
- package/build/legacy/components/combobox/parts.cjs +35 -15
- package/build/legacy/components/combobox/parts.cjs.map +1 -1
- package/build/legacy/components/combobox/primitives.cjs +35 -15
- package/build/legacy/components/combobox/primitives.cjs.map +1 -1
- package/build/legacy/components/combobox/use-stateful-collection.cjs +35 -15
- package/build/legacy/components/combobox/use-stateful-collection.cjs.map +1 -1
- package/build/legacy/components/cta-dialog/index.cjs +35 -15
- package/build/legacy/components/cta-dialog/index.cjs.map +1 -1
- package/build/legacy/components/cta-dialog/provider.cjs +35 -15
- package/build/legacy/components/cta-dialog/provider.cjs.map +1 -1
- package/build/legacy/components/cta-dialog/trigger-item.cjs +35 -15
- package/build/legacy/components/cta-dialog/trigger-item.cjs.map +1 -1
- package/build/legacy/components/date-picker/calendar.cjs +35 -15
- package/build/legacy/components/date-picker/calendar.cjs.map +1 -1
- package/build/legacy/components/date-picker/content.cjs +35 -15
- package/build/legacy/components/date-picker/content.cjs.map +1 -1
- package/build/legacy/components/date-picker/date-picker.cjs +35 -15
- package/build/legacy/components/date-picker/date-picker.cjs.map +1 -1
- package/build/legacy/components/date-picker/day-view.cjs +35 -15
- package/build/legacy/components/date-picker/day-view.cjs.map +1 -1
- package/build/legacy/components/date-picker/index.cjs +35 -15
- package/build/legacy/components/date-picker/index.cjs.map +1 -1
- package/build/legacy/components/date-picker/input.cjs +35 -15
- package/build/legacy/components/date-picker/input.cjs.map +1 -1
- package/build/legacy/components/date-picker/month-view.cjs +35 -15
- package/build/legacy/components/date-picker/month-view.cjs.map +1 -1
- package/build/legacy/components/date-picker/parts.cjs +35 -15
- package/build/legacy/components/date-picker/parts.cjs.map +1 -1
- package/build/legacy/components/date-picker/primitives.cjs +35 -15
- package/build/legacy/components/date-picker/primitives.cjs.map +1 -1
- package/build/legacy/components/date-picker/range-input.cjs +35 -15
- package/build/legacy/components/date-picker/range-input.cjs.map +1 -1
- package/build/legacy/components/date-picker/trigger.cjs +35 -15
- package/build/legacy/components/date-picker/trigger.cjs.map +1 -1
- package/build/legacy/components/date-picker/view-control-group.cjs +35 -15
- package/build/legacy/components/date-picker/view-control-group.cjs.map +1 -1
- package/build/legacy/components/date-picker/year-view.cjs +35 -15
- package/build/legacy/components/date-picker/year-view.cjs.map +1 -1
- package/build/legacy/components/deprecated/Label.cjs +35 -15
- package/build/legacy/components/deprecated/Label.cjs.map +1 -1
- package/build/legacy/components/dialog/close-icon-trigger.cjs +35 -15
- package/build/legacy/components/dialog/close-icon-trigger.cjs.map +1 -1
- package/build/legacy/components/dialog/dialog.cjs +35 -15
- package/build/legacy/components/dialog/dialog.cjs.map +1 -1
- package/build/legacy/components/dialog/index.cjs +35 -15
- package/build/legacy/components/dialog/index.cjs.map +1 -1
- package/build/legacy/components/dialog/parts.cjs +35 -15
- package/build/legacy/components/dialog/parts.cjs.map +1 -1
- package/build/legacy/components/dialog/primitives.cjs +35 -15
- package/build/legacy/components/dialog/primitives.cjs.map +1 -1
- package/build/legacy/components/field/field.cjs +35 -15
- package/build/legacy/components/field/field.cjs.map +1 -1
- package/build/legacy/components/field/helper-text.cjs +35 -15
- package/build/legacy/components/field/helper-text.cjs.map +1 -1
- package/build/legacy/components/field/index.cjs +37 -16
- package/build/legacy/components/field/index.cjs.map +1 -1
- package/build/legacy/components/field/input.cjs +37 -16
- package/build/legacy/components/field/input.cjs.map +1 -1
- package/build/legacy/components/field/parts.cjs +37 -16
- package/build/legacy/components/field/parts.cjs.map +1 -1
- package/build/legacy/components/field/primitives.cjs +37 -16
- package/build/legacy/components/field/primitives.cjs.map +1 -1
- package/build/legacy/components/field/status-indicator.cjs +2 -1
- package/build/legacy/components/field/status-indicator.cjs.map +1 -1
- package/build/legacy/components/fieldset/fieldset.cjs +35 -15
- package/build/legacy/components/fieldset/fieldset.cjs.map +1 -1
- package/build/legacy/components/fieldset/index.cjs +35 -15
- package/build/legacy/components/fieldset/index.cjs.map +1 -1
- package/build/legacy/components/fieldset/parts.cjs +35 -15
- package/build/legacy/components/fieldset/parts.cjs.map +1 -1
- package/build/legacy/components/fieldset/primitives.cjs +35 -15
- package/build/legacy/components/fieldset/primitives.cjs.map +1 -1
- package/build/legacy/components/file-upload/file-status.cjs +36 -16
- package/build/legacy/components/file-upload/file-status.cjs.map +1 -1
- package/build/legacy/components/file-upload/file-uploader.cjs +35 -15
- package/build/legacy/components/file-upload/file-uploader.cjs.map +1 -1
- package/build/legacy/components/file-upload/index.cjs +36 -16
- package/build/legacy/components/file-upload/index.cjs.map +1 -1
- package/build/legacy/components/icon-button/button.cjs +35 -15
- package/build/legacy/components/icon-button/button.cjs.map +1 -1
- package/build/legacy/components/icon-button/index.cjs +35 -15
- package/build/legacy/components/icon-button/index.cjs.map +1 -1
- package/build/legacy/components/icon-button/primitives.cjs +35 -15
- package/build/legacy/components/icon-button/primitives.cjs.map +1 -1
- package/build/legacy/components/menu/index.cjs +35 -15
- package/build/legacy/components/menu/index.cjs.map +1 -1
- package/build/legacy/components/menu/menu.cjs +35 -15
- package/build/legacy/components/menu/menu.cjs.map +1 -1
- package/build/legacy/components/menu/primitives.cjs +35 -15
- package/build/legacy/components/menu/primitives.cjs.map +1 -1
- package/build/legacy/components/notifications/center.cjs +35 -15
- package/build/legacy/components/notifications/center.cjs.map +1 -1
- package/build/legacy/components/notifications/close-trigger.cjs +35 -15
- package/build/legacy/components/notifications/close-trigger.cjs.map +1 -1
- package/build/legacy/components/notifications/index.cjs +35 -15
- package/build/legacy/components/notifications/index.cjs.map +1 -1
- package/build/legacy/components/notifications/parts.cjs +35 -15
- package/build/legacy/components/notifications/parts.cjs.map +1 -1
- package/build/legacy/components/notifications/primitives.cjs +35 -15
- package/build/legacy/components/notifications/primitives.cjs.map +1 -1
- package/build/legacy/components/progress/index.cjs +35 -15
- package/build/legacy/components/progress/index.cjs.map +1 -1
- package/build/legacy/components/progress/primitives.cjs +35 -15
- package/build/legacy/components/progress/primitives.cjs.map +1 -1
- package/build/legacy/components/progress/progress-bar.cjs +35 -15
- package/build/legacy/components/progress/progress-bar.cjs.map +1 -1
- package/build/legacy/components/radio/index.cjs +35 -15
- package/build/legacy/components/radio/index.cjs.map +1 -1
- package/build/legacy/components/radio/parts.cjs +35 -15
- package/build/legacy/components/radio/parts.cjs.map +1 -1
- package/build/legacy/components/radio/primitives.cjs +35 -15
- package/build/legacy/components/radio/primitives.cjs.map +1 -1
- package/build/legacy/components/radio/radio.cjs +35 -15
- package/build/legacy/components/radio/radio.cjs.map +1 -1
- package/build/legacy/components/rating/index.cjs +35 -15
- package/build/legacy/components/rating/index.cjs.map +1 -1
- package/build/legacy/components/rating/parts.cjs +35 -15
- package/build/legacy/components/rating/parts.cjs.map +1 -1
- package/build/legacy/components/rating/primitives.cjs +35 -15
- package/build/legacy/components/rating/primitives.cjs.map +1 -1
- package/build/legacy/components/rating/rating.cjs +35 -15
- package/build/legacy/components/rating/rating.cjs.map +1 -1
- package/build/legacy/components/select/index.cjs +35 -15
- package/build/legacy/components/select/index.cjs.map +1 -1
- package/build/legacy/components/select/option-group.cjs +35 -15
- package/build/legacy/components/select/option-group.cjs.map +1 -1
- package/build/legacy/components/select/option.cjs +35 -15
- package/build/legacy/components/select/option.cjs.map +1 -1
- package/build/legacy/components/select/parts.cjs +35 -15
- package/build/legacy/components/select/parts.cjs.map +1 -1
- package/build/legacy/components/select/primitives.cjs +35 -15
- package/build/legacy/components/select/primitives.cjs.map +1 -1
- package/build/legacy/components/select/select.cjs +35 -15
- package/build/legacy/components/select/select.cjs.map +1 -1
- package/build/legacy/components/switch/index.cjs +35 -15
- package/build/legacy/components/switch/index.cjs.map +1 -1
- package/build/legacy/components/switch/parts.cjs +35 -15
- package/build/legacy/components/switch/parts.cjs.map +1 -1
- package/build/legacy/components/switch/primitives.cjs +35 -15
- package/build/legacy/components/switch/primitives.cjs.map +1 -1
- package/build/legacy/components/switch/switch.cjs +35 -15
- package/build/legacy/components/switch/switch.cjs.map +1 -1
- package/build/legacy/components/table/index.cjs +35 -15
- package/build/legacy/components/table/index.cjs.map +1 -1
- package/build/legacy/components/table/parts.cjs +35 -15
- package/build/legacy/components/table/parts.cjs.map +1 -1
- package/build/legacy/components/table/primitives.cjs +35 -15
- package/build/legacy/components/table/primitives.cjs.map +1 -1
- package/build/legacy/components/table/table.cjs +35 -15
- package/build/legacy/components/table/table.cjs.map +1 -1
- package/build/legacy/components/tabs/index.cjs +35 -15
- package/build/legacy/components/tabs/index.cjs.map +1 -1
- package/build/legacy/components/tabs/parts.cjs +35 -15
- package/build/legacy/components/tabs/parts.cjs.map +1 -1
- package/build/legacy/components/tabs/primitives.cjs +35 -15
- package/build/legacy/components/tabs/primitives.cjs.map +1 -1
- package/build/legacy/components/tabs/tabs.cjs +35 -15
- package/build/legacy/components/tabs/tabs.cjs.map +1 -1
- package/build/legacy/components/tag/index.cjs +35 -15
- package/build/legacy/components/tag/index.cjs.map +1 -1
- package/build/legacy/components/tag/tag.cjs +35 -15
- package/build/legacy/components/tag/tag.cjs.map +1 -1
- package/build/legacy/components/theme/index.cjs +35 -15
- package/build/legacy/components/theme/index.cjs.map +1 -1
- package/build/legacy/components/theme/theme.cjs +35 -15
- package/build/legacy/components/theme/theme.cjs.map +1 -1
- package/build/legacy/components/toggle/index.cjs +35 -15
- package/build/legacy/components/toggle/index.cjs.map +1 -1
- package/build/legacy/components/toggle/parts.cjs +35 -15
- package/build/legacy/components/toggle/parts.cjs.map +1 -1
- package/build/legacy/components/toggle/primitives.cjs +35 -15
- package/build/legacy/components/toggle/primitives.cjs.map +1 -1
- package/build/legacy/components/tooltip/index.cjs +35 -15
- package/build/legacy/components/tooltip/index.cjs.map +1 -1
- package/build/legacy/components/tooltip/parts.cjs +35 -15
- package/build/legacy/components/tooltip/parts.cjs.map +1 -1
- package/build/legacy/components/tooltip/primitives.cjs +35 -15
- package/build/legacy/components/tooltip/primitives.cjs.map +1 -1
- package/build/legacy/components/tooltip/tooltip.cjs +35 -15
- package/build/legacy/components/tooltip/tooltip.cjs.map +1 -1
- package/build/legacy/context/confirm-modal.cjs +35 -15
- package/build/legacy/context/confirm-modal.cjs.map +1 -1
- package/build/legacy/context/field.cjs +35 -15
- package/build/legacy/context/field.cjs.map +1 -1
- package/build/legacy/context/prompt-modal.cjs +37 -16
- package/build/legacy/context/prompt-modal.cjs.map +1 -1
- package/build/legacy/index.cjs +38 -17
- package/build/legacy/index.cjs.map +1 -1
- package/build/legacy/system/factory.cjs +35 -15
- package/build/legacy/system/factory.cjs.map +1 -1
- package/build/legacy/system/index.cjs +35 -15
- package/build/legacy/system/index.cjs.map +1 -1
- package/build/legacy/system/primitive-factory.cjs +35 -15
- package/build/legacy/system/primitive-factory.cjs.map +1 -1
- package/build/legacy/types.cjs.map +1 -1
- package/build/modern/_tsup-dts-rollup.d.ts +20 -8
- package/build/modern/{chunk-M4NNRVTU.js → chunk-236F7MCH.js} +2 -2
- package/build/modern/{chunk-UKAVYSJ5.js → chunk-2D6BHWPB.js} +3 -3
- package/build/modern/{chunk-LRIYLZSL.js → chunk-2KVC3OJ3.js} +3 -3
- package/build/modern/{chunk-SQIB5EOA.js → chunk-2UQWJSA6.js} +2 -2
- package/build/modern/{chunk-KM3G4YFF.js → chunk-3NPWHL5X.js} +2 -2
- package/build/modern/{chunk-3Z4TSR6V.js → chunk-3UIV3HMB.js} +2 -2
- package/build/modern/{chunk-CIIFJ2SA.js → chunk-3X6VM5FS.js} +2 -2
- package/build/modern/{chunk-BK5BIPCG.js → chunk-3Z6W4ZFA.js} +2 -2
- package/build/modern/{chunk-7WX2RQT6.js → chunk-45ZTZUCD.js} +3 -3
- package/build/modern/{chunk-ALJYABJX.js → chunk-4O26WCRC.js} +2 -2
- package/build/modern/{chunk-WO6MF3XM.js → chunk-4O64W4BA.js} +2 -2
- package/build/modern/{chunk-UXU2CVPI.js → chunk-4SOUI4NF.js} +2 -2
- package/build/modern/{chunk-S7ALRSVU.js → chunk-5B6LMHY2.js} +2 -2
- package/build/modern/{chunk-JG5V3AK4.js → chunk-5L5PT37R.js} +3 -3
- package/build/modern/{chunk-ZZSHEW4N.js → chunk-5RLQNM73.js} +2 -2
- package/build/modern/{chunk-4WSCG2CM.js → chunk-6LU43Z4K.js} +3 -3
- package/build/modern/{chunk-4Q62OI72.js → chunk-76VTLS7X.js} +2 -2
- package/build/modern/{chunk-5XU3LUPC.js → chunk-7B2ZHSH3.js} +2 -2
- package/build/modern/{chunk-JSK6OD6J.js → chunk-7JNOY5MW.js} +2 -2
- package/build/modern/{chunk-WKAI4OK3.js → chunk-7UKNQ4RD.js} +2 -2
- package/build/modern/{chunk-OMM4CPZU.js → chunk-AOLWIMWV.js} +2 -2
- package/build/modern/{chunk-MXW63O5N.js → chunk-AQNXQVXP.js} +2 -2
- package/build/modern/{chunk-KYYKBLP2.js → chunk-BHZN6P2K.js} +2 -2
- package/build/modern/{chunk-GZ6T3352.js → chunk-BKPIKVU2.js} +36 -16
- package/build/modern/chunk-BKPIKVU2.js.map +1 -0
- package/build/modern/{chunk-LW62VSVZ.js → chunk-BSJM5VYB.js} +2 -2
- package/build/modern/{chunk-ZO3GSLWZ.js → chunk-BSZVMBX7.js} +2 -2
- package/build/modern/{chunk-BWZXR2WZ.js → chunk-BXDQ5AXV.js} +2 -2
- package/build/modern/{chunk-Y67NIX2N.js → chunk-C7XAB665.js} +3 -3
- package/build/modern/{chunk-YCVNE3CA.js → chunk-CHEYITRR.js} +2 -2
- package/build/modern/{chunk-HJ67FKQ6.js → chunk-D7BCQ2CQ.js} +2 -2
- package/build/modern/{chunk-VXG4AEMZ.js → chunk-DH7SFE2R.js} +2 -2
- package/build/modern/{chunk-BDXVYV32.js → chunk-EQ3X7KQ3.js} +2 -2
- package/build/modern/{chunk-L2G4XKLT.js → chunk-ET3UY6GV.js} +2 -2
- package/build/modern/{chunk-N2DZNGUS.js → chunk-EZJMTWXK.js} +2 -2
- package/build/modern/{chunk-2MU6WE52.js → chunk-FSX64HPK.js} +3 -3
- package/build/modern/{chunk-UHXKG2ZP.js → chunk-FVADFCAE.js} +2 -2
- package/build/modern/{chunk-J3XTP6VP.js → chunk-GFFIJGQC.js} +2 -2
- package/build/modern/{chunk-AZ5LB6IS.js → chunk-GTAIWUFQ.js} +2 -2
- package/build/modern/{chunk-VIUQS3VG.js → chunk-GZYLYTAG.js} +2 -2
- package/build/modern/{chunk-THMNM4CZ.js → chunk-HCH5I26B.js} +2 -2
- package/build/modern/{chunk-YI3P5QG4.js → chunk-HMUQEMV2.js} +2 -2
- package/build/modern/{chunk-GIIPOOSM.js → chunk-HYEFRC5Z.js} +2 -2
- package/build/modern/{chunk-QOTRCNC7.js → chunk-INQZQMLL.js} +2 -2
- package/build/modern/{chunk-2T2S226G.js → chunk-IOX43IGB.js} +2 -2
- package/build/modern/{chunk-HPWLIE64.js → chunk-IRJITAGE.js} +2 -2
- package/build/modern/{chunk-OVDJPTML.js → chunk-IVQCMXV6.js} +3 -3
- package/build/modern/{chunk-QM4DC6QF.js → chunk-IYF5FS6N.js} +2 -2
- package/build/modern/{chunk-IOK2RQK6.js → chunk-JBYWQERR.js} +4 -4
- package/build/modern/{chunk-TF2DXEUF.js → chunk-JIEN2PM7.js} +2 -2
- package/build/modern/{chunk-KLZPY4YX.js → chunk-JUSH26RO.js} +2 -2
- package/build/modern/{chunk-OFACU2SY.js → chunk-JVAGLLOA.js} +2 -2
- package/build/modern/{chunk-NH2RSI7N.js → chunk-K3NML67W.js} +2 -2
- package/build/modern/{chunk-YTKY3AHF.js → chunk-K3YEOS6O.js} +2 -2
- package/build/modern/{chunk-YZFXHGMG.js → chunk-KITDXURN.js} +2 -2
- package/build/modern/{chunk-2Q4KTP6D.js → chunk-KJYNKQX4.js} +7 -7
- package/build/modern/{chunk-2Q4KTP6D.js.map → chunk-KJYNKQX4.js.map} +1 -1
- package/build/modern/{chunk-GHM4I5BN.js → chunk-KZVCQNZI.js} +3 -3
- package/build/modern/{chunk-OVYHM5DH.js → chunk-L4KBNOWP.js} +2 -2
- package/build/modern/{chunk-VIKVLJGG.js → chunk-LCURHO24.js} +3 -2
- package/build/modern/{chunk-VIKVLJGG.js.map → chunk-LCURHO24.js.map} +1 -1
- package/build/modern/{chunk-E4DXMJ3C.js → chunk-LO6YTNOP.js} +2 -2
- package/build/modern/{chunk-MG2YW4IP.js → chunk-LOJBIVY4.js} +2 -2
- package/build/modern/{chunk-CMQZN2GZ.js → chunk-MMNUVODK.js} +2 -2
- package/build/modern/{chunk-6TIG456O.js → chunk-MVHFBVDA.js} +2 -2
- package/build/modern/{chunk-IU5YJTKN.js → chunk-N5D6HNGL.js} +2 -2
- package/build/modern/{chunk-YUEVV2DE.js → chunk-NHM5IWBE.js} +2 -2
- package/build/modern/{chunk-6BNGJMNL.js → chunk-O4W2BVE7.js} +3 -3
- package/build/modern/{chunk-KSYZMMXN.js → chunk-OG644D7M.js} +3 -3
- package/build/modern/{chunk-P6WEDKIB.js → chunk-OX3NA6DQ.js} +2 -2
- package/build/modern/{chunk-2UFNNWLA.js → chunk-OYTEXDS6.js} +5 -5
- package/build/modern/{chunk-YQNOAJM7.js → chunk-OZTYYWIX.js} +2 -2
- package/build/modern/{chunk-SGFITMUF.js → chunk-P6JC32U3.js} +2 -2
- package/build/modern/{chunk-A57LVJJF.js → chunk-PZELEMIY.js} +2 -2
- package/build/modern/{chunk-2OWVBM5W.js → chunk-RI3WN6XL.js} +2 -2
- package/build/modern/{chunk-RDFAC3XX.js → chunk-RS6DS6RS.js} +2 -2
- package/build/modern/{chunk-SFAJKI45.js → chunk-RT4W6GBB.js} +2 -2
- package/build/modern/{chunk-CLGDJ4GM.js → chunk-SFS5ILWG.js} +3 -3
- package/build/modern/{chunk-RXAHVNN2.js → chunk-SITE2UML.js} +2 -2
- package/build/modern/{chunk-AJ5TWPXM.js → chunk-SKOX5PJI.js} +3 -3
- package/build/modern/{chunk-COIQJKC3.js → chunk-SP7TSFMZ.js} +2 -2
- package/build/modern/{chunk-NPZJTTTS.js → chunk-TBCTCQXG.js} +5 -5
- package/build/modern/{chunk-PQ5DEKSH.js → chunk-TIQO4VNE.js} +2 -2
- package/build/modern/{chunk-ZPMGW4U7.js → chunk-TJSHJF6G.js} +2 -2
- package/build/modern/{chunk-FMNYWD5T.js → chunk-TKHDOZWN.js} +2 -2
- package/build/modern/{chunk-ACK44GEO.js → chunk-UAVGKLHV.js} +6 -6
- package/build/modern/{chunk-4DJ6KC4K.js → chunk-UZZ26IWW.js} +6 -6
- package/build/modern/{chunk-BOATN5PB.js → chunk-V5TUC5AS.js} +2 -2
- package/build/modern/{chunk-U6ECBUYN.js → chunk-VQUJGCZW.js} +2 -2
- package/build/modern/{chunk-D47GTCQZ.js → chunk-VYJAPLLO.js} +2 -2
- package/build/modern/{chunk-RFANIL5H.js → chunk-WGWEAB2Q.js} +2 -2
- package/build/modern/{chunk-A655GBYQ.js → chunk-X24O5DTP.js} +4 -4
- package/build/modern/{chunk-ZGPHSKEB.js → chunk-YJRAJNYI.js} +3 -3
- package/build/modern/{chunk-RGLJDMIO.js → chunk-YR6G66UT.js} +3 -3
- package/build/modern/{chunk-VZXYGBU6.js → chunk-YWPXLHUO.js} +2 -2
- package/build/modern/{chunk-DC3NTCCW.js → chunk-YZG7BNVB.js} +2 -2
- package/build/modern/{chunk-BW64QBCK.js → chunk-Z5DHBMQF.js} +2 -2
- package/build/modern/{chunk-UCP3GQOJ.js → chunk-ZFONE65Q.js} +2 -2
- package/build/modern/{chunk-YVYOOJ3X.js → chunk-ZFVQQJIQ.js} +2 -2
- package/build/modern/{chunk-WGSUBJNI.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/checkbox/checkbox-icon.js +6 -6
- package/build/modern/components/checkbox/checkbox.js +7 -7
- package/build/modern/components/checkbox/index.js +7 -7
- package/build/modern/components/checkbox/parts.js +5 -5
- package/build/modern/components/checkbox/primitives.js +4 -4
- package/build/modern/components/circular-progress/circular-progress.js +5 -5
- package/build/modern/components/circular-progress/index.js +5 -5
- package/build/modern/components/circular-progress/primitives.js +4 -4
- package/build/modern/components/combobox/combobox.js +6 -6
- package/build/modern/components/combobox/index.js +10 -10
- package/build/modern/components/combobox/item-group.js +6 -6
- package/build/modern/components/combobox/item.js +6 -6
- package/build/modern/components/combobox/parts.js +5 -5
- package/build/modern/components/combobox/primitives.js +4 -4
- package/build/modern/components/combobox/use-stateful-collection.js +5 -5
- package/build/modern/components/cta-dialog/index.js +16 -16
- package/build/modern/components/cta-dialog/provider.js +16 -16
- package/build/modern/components/cta-dialog/trigger-item.js +6 -6
- package/build/modern/components/date-picker/calendar.js +15 -15
- package/build/modern/components/date-picker/content.js +6 -6
- package/build/modern/components/date-picker/date-picker.js +6 -6
- package/build/modern/components/date-picker/day-view.js +11 -11
- package/build/modern/components/date-picker/index.js +19 -19
- package/build/modern/components/date-picker/input.js +9 -9
- package/build/modern/components/date-picker/month-view.js +11 -11
- package/build/modern/components/date-picker/parts.js +5 -5
- package/build/modern/components/date-picker/primitives.js +4 -4
- package/build/modern/components/date-picker/range-input.js +9 -9
- package/build/modern/components/date-picker/trigger.js +8 -8
- package/build/modern/components/date-picker/view-control-group.js +10 -10
- package/build/modern/components/date-picker/year-view.js +11 -11
- package/build/modern/components/deprecated/Label.js +9 -9
- package/build/modern/components/dialog/close-icon-trigger.js +7 -7
- package/build/modern/components/dialog/dialog.js +5 -5
- package/build/modern/components/dialog/index.js +9 -9
- package/build/modern/components/dialog/parts.js +5 -5
- package/build/modern/components/dialog/primitives.js +4 -4
- package/build/modern/components/field/field.js +7 -7
- package/build/modern/components/field/helper-text.js +6 -6
- package/build/modern/components/field/index.js +8 -8
- package/build/modern/components/field/input.js +5 -5
- package/build/modern/components/field/parts.js +6 -6
- package/build/modern/components/field/primitives.js +5 -5
- package/build/modern/components/field/status-indicator.js +1 -1
- package/build/modern/components/fieldset/fieldset.js +6 -6
- package/build/modern/components/fieldset/index.js +6 -6
- package/build/modern/components/fieldset/parts.js +5 -5
- package/build/modern/components/fieldset/primitives.js +4 -4
- package/build/modern/components/file-upload/file-status.js +16 -16
- package/build/modern/components/file-upload/file-uploader.js +7 -7
- package/build/modern/components/file-upload/index.js +17 -17
- package/build/modern/components/icon-button/button.js +5 -5
- package/build/modern/components/icon-button/index.js +5 -5
- package/build/modern/components/icon-button/primitives.js +4 -4
- package/build/modern/components/menu/index.js +5 -5
- package/build/modern/components/menu/menu.js +5 -5
- package/build/modern/components/menu/primitives.js +4 -4
- package/build/modern/components/notifications/center.js +9 -9
- package/build/modern/components/notifications/close-trigger.js +6 -6
- package/build/modern/components/notifications/index.js +9 -9
- package/build/modern/components/notifications/parts.js +5 -5
- package/build/modern/components/notifications/primitives.js +4 -4
- package/build/modern/components/progress/index.js +5 -5
- package/build/modern/components/progress/primitives.js +4 -4
- package/build/modern/components/progress/progress-bar.js +5 -5
- package/build/modern/components/radio/index.js +6 -6
- package/build/modern/components/radio/parts.js +5 -5
- package/build/modern/components/radio/primitives.js +4 -4
- package/build/modern/components/radio/radio.js +5 -5
- package/build/modern/components/rating/index.js +6 -6
- package/build/modern/components/rating/parts.js +5 -5
- package/build/modern/components/rating/primitives.js +4 -4
- package/build/modern/components/rating/rating.js +6 -6
- package/build/modern/components/select/index.js +8 -8
- package/build/modern/components/select/option-group.js +5 -5
- package/build/modern/components/select/option.js +6 -6
- package/build/modern/components/select/parts.js +5 -5
- package/build/modern/components/select/primitives.js +4 -4
- package/build/modern/components/select/select.js +6 -6
- package/build/modern/components/switch/index.js +6 -6
- package/build/modern/components/switch/parts.js +5 -5
- package/build/modern/components/switch/primitives.js +4 -4
- package/build/modern/components/switch/switch.js +6 -6
- package/build/modern/components/table/index.js +6 -6
- package/build/modern/components/table/parts.js +5 -5
- package/build/modern/components/table/primitives.js +4 -4
- package/build/modern/components/table/table.js +5 -5
- package/build/modern/components/tabs/index.js +6 -6
- package/build/modern/components/tabs/parts.js +5 -5
- package/build/modern/components/tabs/primitives.js +4 -4
- package/build/modern/components/tabs/tabs.js +6 -6
- package/build/modern/components/tag/index.js +6 -6
- package/build/modern/components/tag/tag.js +6 -6
- package/build/modern/components/theme/index.js +4 -4
- package/build/modern/components/theme/theme.js +4 -4
- package/build/modern/components/toggle/index.js +5 -5
- package/build/modern/components/toggle/parts.js +5 -5
- package/build/modern/components/toggle/primitives.js +4 -4
- package/build/modern/components/tooltip/index.js +6 -6
- package/build/modern/components/tooltip/parts.js +5 -5
- package/build/modern/components/tooltip/primitives.js +4 -4
- package/build/modern/components/tooltip/tooltip.js +6 -6
- package/build/modern/context/confirm-modal.js +15 -15
- package/build/modern/context/field.js +5 -5
- package/build/modern/context/prompt-modal.js +20 -20
- package/build/modern/index.js +97 -97
- package/build/modern/system/factory.js +2 -2
- package/build/modern/system/index.js +3 -3
- package/build/modern/system/primitive-factory.js +1 -1
- package/package.json +6 -6
- package/src/components/field/status-indicator.tsx +4 -1
- package/src/components/file-upload/file-status.tsx +1 -1
- package/src/system/primitive-factory.tsx +49 -24
- package/src/types.ts +10 -0
- package/build/modern/chunk-GZ6T3352.js.map +0 -1
- /package/build/modern/{chunk-M4NNRVTU.js.map → chunk-236F7MCH.js.map} +0 -0
- /package/build/modern/{chunk-UKAVYSJ5.js.map → chunk-2D6BHWPB.js.map} +0 -0
- /package/build/modern/{chunk-LRIYLZSL.js.map → chunk-2KVC3OJ3.js.map} +0 -0
- /package/build/modern/{chunk-SQIB5EOA.js.map → chunk-2UQWJSA6.js.map} +0 -0
- /package/build/modern/{chunk-KM3G4YFF.js.map → chunk-3NPWHL5X.js.map} +0 -0
- /package/build/modern/{chunk-3Z4TSR6V.js.map → chunk-3UIV3HMB.js.map} +0 -0
- /package/build/modern/{chunk-CIIFJ2SA.js.map → chunk-3X6VM5FS.js.map} +0 -0
- /package/build/modern/{chunk-BK5BIPCG.js.map → chunk-3Z6W4ZFA.js.map} +0 -0
- /package/build/modern/{chunk-7WX2RQT6.js.map → chunk-45ZTZUCD.js.map} +0 -0
- /package/build/modern/{chunk-ALJYABJX.js.map → chunk-4O26WCRC.js.map} +0 -0
- /package/build/modern/{chunk-WO6MF3XM.js.map → chunk-4O64W4BA.js.map} +0 -0
- /package/build/modern/{chunk-UXU2CVPI.js.map → chunk-4SOUI4NF.js.map} +0 -0
- /package/build/modern/{chunk-S7ALRSVU.js.map → chunk-5B6LMHY2.js.map} +0 -0
- /package/build/modern/{chunk-JG5V3AK4.js.map → chunk-5L5PT37R.js.map} +0 -0
- /package/build/modern/{chunk-ZZSHEW4N.js.map → chunk-5RLQNM73.js.map} +0 -0
- /package/build/modern/{chunk-4WSCG2CM.js.map → chunk-6LU43Z4K.js.map} +0 -0
- /package/build/modern/{chunk-4Q62OI72.js.map → chunk-76VTLS7X.js.map} +0 -0
- /package/build/modern/{chunk-5XU3LUPC.js.map → chunk-7B2ZHSH3.js.map} +0 -0
- /package/build/modern/{chunk-JSK6OD6J.js.map → chunk-7JNOY5MW.js.map} +0 -0
- /package/build/modern/{chunk-WKAI4OK3.js.map → chunk-7UKNQ4RD.js.map} +0 -0
- /package/build/modern/{chunk-OMM4CPZU.js.map → chunk-AOLWIMWV.js.map} +0 -0
- /package/build/modern/{chunk-MXW63O5N.js.map → chunk-AQNXQVXP.js.map} +0 -0
- /package/build/modern/{chunk-KYYKBLP2.js.map → chunk-BHZN6P2K.js.map} +0 -0
- /package/build/modern/{chunk-LW62VSVZ.js.map → chunk-BSJM5VYB.js.map} +0 -0
- /package/build/modern/{chunk-ZO3GSLWZ.js.map → chunk-BSZVMBX7.js.map} +0 -0
- /package/build/modern/{chunk-BWZXR2WZ.js.map → chunk-BXDQ5AXV.js.map} +0 -0
- /package/build/modern/{chunk-Y67NIX2N.js.map → chunk-C7XAB665.js.map} +0 -0
- /package/build/modern/{chunk-YCVNE3CA.js.map → chunk-CHEYITRR.js.map} +0 -0
- /package/build/modern/{chunk-HJ67FKQ6.js.map → chunk-D7BCQ2CQ.js.map} +0 -0
- /package/build/modern/{chunk-VXG4AEMZ.js.map → chunk-DH7SFE2R.js.map} +0 -0
- /package/build/modern/{chunk-BDXVYV32.js.map → chunk-EQ3X7KQ3.js.map} +0 -0
- /package/build/modern/{chunk-L2G4XKLT.js.map → chunk-ET3UY6GV.js.map} +0 -0
- /package/build/modern/{chunk-N2DZNGUS.js.map → chunk-EZJMTWXK.js.map} +0 -0
- /package/build/modern/{chunk-2MU6WE52.js.map → chunk-FSX64HPK.js.map} +0 -0
- /package/build/modern/{chunk-UHXKG2ZP.js.map → chunk-FVADFCAE.js.map} +0 -0
- /package/build/modern/{chunk-J3XTP6VP.js.map → chunk-GFFIJGQC.js.map} +0 -0
- /package/build/modern/{chunk-AZ5LB6IS.js.map → chunk-GTAIWUFQ.js.map} +0 -0
- /package/build/modern/{chunk-VIUQS3VG.js.map → chunk-GZYLYTAG.js.map} +0 -0
- /package/build/modern/{chunk-THMNM4CZ.js.map → chunk-HCH5I26B.js.map} +0 -0
- /package/build/modern/{chunk-YI3P5QG4.js.map → chunk-HMUQEMV2.js.map} +0 -0
- /package/build/modern/{chunk-GIIPOOSM.js.map → chunk-HYEFRC5Z.js.map} +0 -0
- /package/build/modern/{chunk-QOTRCNC7.js.map → chunk-INQZQMLL.js.map} +0 -0
- /package/build/modern/{chunk-2T2S226G.js.map → chunk-IOX43IGB.js.map} +0 -0
- /package/build/modern/{chunk-HPWLIE64.js.map → chunk-IRJITAGE.js.map} +0 -0
- /package/build/modern/{chunk-OVDJPTML.js.map → chunk-IVQCMXV6.js.map} +0 -0
- /package/build/modern/{chunk-QM4DC6QF.js.map → chunk-IYF5FS6N.js.map} +0 -0
- /package/build/modern/{chunk-IOK2RQK6.js.map → chunk-JBYWQERR.js.map} +0 -0
- /package/build/modern/{chunk-TF2DXEUF.js.map → chunk-JIEN2PM7.js.map} +0 -0
- /package/build/modern/{chunk-KLZPY4YX.js.map → chunk-JUSH26RO.js.map} +0 -0
- /package/build/modern/{chunk-OFACU2SY.js.map → chunk-JVAGLLOA.js.map} +0 -0
- /package/build/modern/{chunk-NH2RSI7N.js.map → chunk-K3NML67W.js.map} +0 -0
- /package/build/modern/{chunk-YTKY3AHF.js.map → chunk-K3YEOS6O.js.map} +0 -0
- /package/build/modern/{chunk-YZFXHGMG.js.map → chunk-KITDXURN.js.map} +0 -0
- /package/build/modern/{chunk-GHM4I5BN.js.map → chunk-KZVCQNZI.js.map} +0 -0
- /package/build/modern/{chunk-OVYHM5DH.js.map → chunk-L4KBNOWP.js.map} +0 -0
- /package/build/modern/{chunk-E4DXMJ3C.js.map → chunk-LO6YTNOP.js.map} +0 -0
- /package/build/modern/{chunk-MG2YW4IP.js.map → chunk-LOJBIVY4.js.map} +0 -0
- /package/build/modern/{chunk-CMQZN2GZ.js.map → chunk-MMNUVODK.js.map} +0 -0
- /package/build/modern/{chunk-6TIG456O.js.map → chunk-MVHFBVDA.js.map} +0 -0
- /package/build/modern/{chunk-IU5YJTKN.js.map → chunk-N5D6HNGL.js.map} +0 -0
- /package/build/modern/{chunk-YUEVV2DE.js.map → chunk-NHM5IWBE.js.map} +0 -0
- /package/build/modern/{chunk-6BNGJMNL.js.map → chunk-O4W2BVE7.js.map} +0 -0
- /package/build/modern/{chunk-KSYZMMXN.js.map → chunk-OG644D7M.js.map} +0 -0
- /package/build/modern/{chunk-P6WEDKIB.js.map → chunk-OX3NA6DQ.js.map} +0 -0
- /package/build/modern/{chunk-2UFNNWLA.js.map → chunk-OYTEXDS6.js.map} +0 -0
- /package/build/modern/{chunk-YQNOAJM7.js.map → chunk-OZTYYWIX.js.map} +0 -0
- /package/build/modern/{chunk-SGFITMUF.js.map → chunk-P6JC32U3.js.map} +0 -0
- /package/build/modern/{chunk-A57LVJJF.js.map → chunk-PZELEMIY.js.map} +0 -0
- /package/build/modern/{chunk-2OWVBM5W.js.map → chunk-RI3WN6XL.js.map} +0 -0
- /package/build/modern/{chunk-RDFAC3XX.js.map → chunk-RS6DS6RS.js.map} +0 -0
- /package/build/modern/{chunk-SFAJKI45.js.map → chunk-RT4W6GBB.js.map} +0 -0
- /package/build/modern/{chunk-CLGDJ4GM.js.map → chunk-SFS5ILWG.js.map} +0 -0
- /package/build/modern/{chunk-RXAHVNN2.js.map → chunk-SITE2UML.js.map} +0 -0
- /package/build/modern/{chunk-AJ5TWPXM.js.map → chunk-SKOX5PJI.js.map} +0 -0
- /package/build/modern/{chunk-COIQJKC3.js.map → chunk-SP7TSFMZ.js.map} +0 -0
- /package/build/modern/{chunk-NPZJTTTS.js.map → chunk-TBCTCQXG.js.map} +0 -0
- /package/build/modern/{chunk-PQ5DEKSH.js.map → chunk-TIQO4VNE.js.map} +0 -0
- /package/build/modern/{chunk-ZPMGW4U7.js.map → chunk-TJSHJF6G.js.map} +0 -0
- /package/build/modern/{chunk-FMNYWD5T.js.map → chunk-TKHDOZWN.js.map} +0 -0
- /package/build/modern/{chunk-ACK44GEO.js.map → chunk-UAVGKLHV.js.map} +0 -0
- /package/build/modern/{chunk-4DJ6KC4K.js.map → chunk-UZZ26IWW.js.map} +0 -0
- /package/build/modern/{chunk-BOATN5PB.js.map → chunk-V5TUC5AS.js.map} +0 -0
- /package/build/modern/{chunk-U6ECBUYN.js.map → chunk-VQUJGCZW.js.map} +0 -0
- /package/build/modern/{chunk-D47GTCQZ.js.map → chunk-VYJAPLLO.js.map} +0 -0
- /package/build/modern/{chunk-RFANIL5H.js.map → chunk-WGWEAB2Q.js.map} +0 -0
- /package/build/modern/{chunk-A655GBYQ.js.map → chunk-X24O5DTP.js.map} +0 -0
- /package/build/modern/{chunk-ZGPHSKEB.js.map → chunk-YJRAJNYI.js.map} +0 -0
- /package/build/modern/{chunk-RGLJDMIO.js.map → chunk-YR6G66UT.js.map} +0 -0
- /package/build/modern/{chunk-VZXYGBU6.js.map → chunk-YWPXLHUO.js.map} +0 -0
- /package/build/modern/{chunk-DC3NTCCW.js.map → chunk-YZG7BNVB.js.map} +0 -0
- /package/build/modern/{chunk-BW64QBCK.js.map → chunk-Z5DHBMQF.js.map} +0 -0
- /package/build/modern/{chunk-UCP3GQOJ.js.map → chunk-ZFONE65Q.js.map} +0 -0
- /package/build/modern/{chunk-YVYOOJ3X.js.map → chunk-ZFVQQJIQ.js.map} +0 -0
- /package/build/modern/{chunk-WGSUBJNI.js.map → chunk-ZZ4JETME.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/switch/parts.ts","../../../../src/components/switch/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts"],"sourcesContent":["import type { ElementType } from 'react'\nimport {\n SwitchControl,\n SwitchLabel,\n SwitchRoot,\n SwitchThumb,\n SwitchHiddenInput,\n} from './primitives'\n\n/**\n * This module contains the parts of the Switch parts.\n * @module 'switch/parts'\n */\n\ninterface SwitchPartsValue {\n /**\n * The container of the field.\n */\n Root: ElementType\n /**\n * The label of the field.\n */\n Label: ElementType\n /**\n * The visual input of the switch.\n */\n Control: ElementType\n /**\n * The thumb item of the switch.\n */\n Thumb: ElementType\n /**\n * The native input for the switch.\n */\n HiddenInput: ElementType\n}\n\n/**\n * An Object containing the parts of the Switch component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the SwitchParts object and\n * the entire family of components vs. only what you use.\n */\nexport const SwitchParts: SwitchPartsValue = {\n Root: SwitchRoot,\n Label: SwitchLabel,\n Control: SwitchControl,\n Thumb: SwitchThumb,\n HiddenInput: SwitchHiddenInput,\n}\n","import {\n Switch,\n type SwitchControlProps as ArkSwitchControlProps,\n type SwitchHiddenInputProps as ArkSwitchHiddenInputProps,\n type SwitchLabelProps as ArkSwitchLabelProps,\n type SwitchRootProps as ArkSwitchRootProps,\n type SwitchThumbProps as ArkSwitchThumbProps,\n} from '@ark-ui/react/switch'\nimport {\n switchRecipe,\n type SwitchRecipeVariantProps,\n} from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the Switch primitives\n * @module 'react/switch'\n */\n\nconst { withSlotRecipe, withNoRecipe } = createCerberusPrimitive(switchRecipe)\n\n// Root\n\nexport type SwitchRootProps = CerberusPrimitiveProps<\n ArkSwitchRootProps & SwitchRecipeVariantProps\n>\nexport const SwitchRoot = withSlotRecipe<SwitchRootProps>(Switch.Root, 'root')\n\n// Label\n\nexport type SwitchLabelProps = CerberusPrimitiveProps<ArkSwitchLabelProps>\nexport const SwitchLabel = withSlotRecipe<SwitchLabelProps>(\n Switch.Label,\n 'label',\n)\n\n// Control\n\nexport type SwitchControlProps = CerberusPrimitiveProps<ArkSwitchControlProps>\nexport const SwitchControl = withSlotRecipe<SwitchControlProps>(\n Switch.Control,\n 'control',\n)\n\n// Thumb\n\nexport type SwitchThumbProps = CerberusPrimitiveProps<ArkSwitchThumbProps>\nexport const SwitchThumb = withSlotRecipe<SwitchThumbProps>(\n Switch.Thumb,\n 'thumb',\n)\n\n// HiddenInput\n\nexport type SwitchHiddenInputProps =\n CerberusPrimitiveProps<ArkSwitchHiddenInputProps>\nexport const SwitchHiddenInput = withNoRecipe<SwitchHiddenInputProps>(\n Switch.HiddenInput,\n)\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/switch/parts.ts","../../../../src/components/switch/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts"],"sourcesContent":["import type { ElementType } from 'react'\nimport {\n SwitchControl,\n SwitchLabel,\n SwitchRoot,\n SwitchThumb,\n SwitchHiddenInput,\n} from './primitives'\n\n/**\n * This module contains the parts of the Switch parts.\n * @module 'switch/parts'\n */\n\ninterface SwitchPartsValue {\n /**\n * The container of the field.\n */\n Root: ElementType\n /**\n * The label of the field.\n */\n Label: ElementType\n /**\n * The visual input of the switch.\n */\n Control: ElementType\n /**\n * The thumb item of the switch.\n */\n Thumb: ElementType\n /**\n * The native input for the switch.\n */\n HiddenInput: ElementType\n}\n\n/**\n * An Object containing the parts of the Switch component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the SwitchParts object and\n * the entire family of components vs. only what you use.\n */\nexport const SwitchParts: SwitchPartsValue = {\n Root: SwitchRoot,\n Label: SwitchLabel,\n Control: SwitchControl,\n Thumb: SwitchThumb,\n HiddenInput: SwitchHiddenInput,\n}\n","import {\n Switch,\n type SwitchControlProps as ArkSwitchControlProps,\n type SwitchHiddenInputProps as ArkSwitchHiddenInputProps,\n type SwitchLabelProps as ArkSwitchLabelProps,\n type SwitchRootProps as ArkSwitchRootProps,\n type SwitchThumbProps as ArkSwitchThumbProps,\n} from '@ark-ui/react/switch'\nimport {\n switchRecipe,\n type SwitchRecipeVariantProps,\n} from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the Switch primitives\n * @module 'react/switch'\n */\n\nconst { withSlotRecipe, withNoRecipe } = createCerberusPrimitive(switchRecipe)\n\n// Root\n\nexport type SwitchRootProps = CerberusPrimitiveProps<\n ArkSwitchRootProps & SwitchRecipeVariantProps\n>\nexport const SwitchRoot = withSlotRecipe<SwitchRootProps>(Switch.Root, 'root')\n\n// Label\n\nexport type SwitchLabelProps = CerberusPrimitiveProps<ArkSwitchLabelProps>\nexport const SwitchLabel = withSlotRecipe<SwitchLabelProps>(\n Switch.Label,\n 'label',\n)\n\n// Control\n\nexport type SwitchControlProps = CerberusPrimitiveProps<ArkSwitchControlProps>\nexport const SwitchControl = withSlotRecipe<SwitchControlProps>(\n Switch.Control,\n 'control',\n)\n\n// Thumb\n\nexport type SwitchThumbProps = CerberusPrimitiveProps<ArkSwitchThumbProps>\nexport const SwitchThumb = withSlotRecipe<SwitchThumbProps>(\n Switch.Thumb,\n 'thumb',\n)\n\n// HiddenInput\n\nexport type SwitchHiddenInputProps =\n CerberusPrimitiveProps<ArkSwitchHiddenInputProps>\nexport const SwitchHiddenInput = withNoRecipe<SwitchHiddenInputProps>(\n Switch.HiddenInput,\n)\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":[]}
|
|
@@ -41,23 +41,28 @@ var CerberusPrimitive = class {
|
|
|
41
41
|
/**
|
|
42
42
|
* Creates a Cerberus component with bare features and no recipe.
|
|
43
43
|
* @param Component - The React component to enhance with Cerberus features.
|
|
44
|
+
* Can be a string or a component reference.
|
|
44
45
|
* @returns A new React component that applies Cerberus features to the
|
|
45
46
|
* original component.
|
|
47
|
+
*
|
|
46
48
|
* @example
|
|
47
|
-
* ```
|
|
48
|
-
* const { withNoRecipe } = createCerberusPrimitive(
|
|
49
|
-
* const Button = withNoRecipe(
|
|
49
|
+
* ```ts
|
|
50
|
+
* const { withNoRecipe } = createCerberusPrimitive(buttonRecipe)
|
|
51
|
+
* const Button = withNoRecipe('button')
|
|
50
52
|
* ```
|
|
51
53
|
*/
|
|
52
54
|
__publicField(this, "withNoRecipe", (Component, options) => {
|
|
53
55
|
const { defaultProps } = options || {};
|
|
54
|
-
|
|
56
|
+
const El = Component;
|
|
55
57
|
const CerbComponent = (props) => {
|
|
56
58
|
const { css: customCss, className, ...nativeProps } = props;
|
|
57
59
|
const styles = this.hasStyles((0, import_css.cx)(className, (0, import_css.css)(customCss)));
|
|
58
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
60
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(El, { ...defaultProps, ...styles, ...nativeProps });
|
|
59
61
|
};
|
|
60
|
-
|
|
62
|
+
if (this.validateComponent(El)) {
|
|
63
|
+
const ElName = typeof El === "string" ? El : El.displayName || El.name;
|
|
64
|
+
CerbComponent.displayName = ElName;
|
|
65
|
+
}
|
|
61
66
|
return CerbComponent;
|
|
62
67
|
});
|
|
63
68
|
/**
|
|
@@ -69,11 +74,15 @@ var CerberusPrimitive = class {
|
|
|
69
74
|
*/
|
|
70
75
|
__publicField(this, "withRecipe", (Component, options) => {
|
|
71
76
|
const { defaultProps } = options || {};
|
|
77
|
+
const El = Component;
|
|
72
78
|
const recipe = this.recipe;
|
|
73
|
-
this.validateComponent(Component);
|
|
74
79
|
const CerbComponent = (internalProps) => {
|
|
75
|
-
const {
|
|
76
|
-
|
|
80
|
+
const {
|
|
81
|
+
css: customCss,
|
|
82
|
+
className,
|
|
83
|
+
...restOfInternalProps
|
|
84
|
+
} = internalProps;
|
|
85
|
+
const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
|
|
77
86
|
const recipeStyles = recipe(variantOptions);
|
|
78
87
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
79
88
|
Component,
|
|
@@ -84,7 +93,10 @@ var CerberusPrimitive = class {
|
|
|
84
93
|
}
|
|
85
94
|
);
|
|
86
95
|
};
|
|
87
|
-
|
|
96
|
+
if (this.validateComponent(El)) {
|
|
97
|
+
const ElName = typeof El === "string" ? El : El.displayName || El.name;
|
|
98
|
+
CerbComponent.displayName = ElName;
|
|
99
|
+
}
|
|
88
100
|
return CerbComponent;
|
|
89
101
|
});
|
|
90
102
|
/**
|
|
@@ -101,11 +113,15 @@ var CerberusPrimitive = class {
|
|
|
101
113
|
*/
|
|
102
114
|
__publicField(this, "withSlotRecipe", (Component, slot, options) => {
|
|
103
115
|
const { defaultProps } = options || {};
|
|
116
|
+
const El = Component;
|
|
104
117
|
const recipe = this.recipe;
|
|
105
|
-
this.validateComponent(Component);
|
|
106
118
|
const CerbComponent = (internalProps) => {
|
|
107
|
-
const {
|
|
108
|
-
|
|
119
|
+
const {
|
|
120
|
+
css: customCss,
|
|
121
|
+
className,
|
|
122
|
+
...restOfInternalProps
|
|
123
|
+
} = internalProps;
|
|
124
|
+
const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
|
|
109
125
|
const styles = recipe(variantOptions);
|
|
110
126
|
const slotStyles = styles[slot];
|
|
111
127
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
@@ -117,7 +133,10 @@ var CerberusPrimitive = class {
|
|
|
117
133
|
}
|
|
118
134
|
);
|
|
119
135
|
};
|
|
120
|
-
|
|
136
|
+
if (this.validateComponent(El)) {
|
|
137
|
+
const ElName = typeof El === "string" ? El : El.displayName || El.name;
|
|
138
|
+
CerbComponent.displayName = ElName;
|
|
139
|
+
}
|
|
121
140
|
return CerbComponent;
|
|
122
141
|
});
|
|
123
142
|
this.recipe = recipe ?? null;
|
|
@@ -132,8 +151,9 @@ var CerberusPrimitive = class {
|
|
|
132
151
|
}
|
|
133
152
|
validateComponent(Component) {
|
|
134
153
|
if (typeof Component !== "function" && typeof Component !== "object") {
|
|
135
|
-
|
|
154
|
+
return false;
|
|
136
155
|
}
|
|
156
|
+
return true;
|
|
137
157
|
}
|
|
138
158
|
};
|
|
139
159
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/switch/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts"],"sourcesContent":["import {\n Switch,\n type SwitchControlProps as ArkSwitchControlProps,\n type SwitchHiddenInputProps as ArkSwitchHiddenInputProps,\n type SwitchLabelProps as ArkSwitchLabelProps,\n type SwitchRootProps as ArkSwitchRootProps,\n type SwitchThumbProps as ArkSwitchThumbProps,\n} from '@ark-ui/react/switch'\nimport {\n switchRecipe,\n type SwitchRecipeVariantProps,\n} from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the Switch primitives\n * @module 'react/switch'\n */\n\nconst { withSlotRecipe, withNoRecipe } = createCerberusPrimitive(switchRecipe)\n\n// Root\n\nexport type SwitchRootProps = CerberusPrimitiveProps<\n ArkSwitchRootProps & SwitchRecipeVariantProps\n>\nexport const SwitchRoot = withSlotRecipe<SwitchRootProps>(Switch.Root, 'root')\n\n// Label\n\nexport type SwitchLabelProps = CerberusPrimitiveProps<ArkSwitchLabelProps>\nexport const SwitchLabel = withSlotRecipe<SwitchLabelProps>(\n Switch.Label,\n 'label',\n)\n\n// Control\n\nexport type SwitchControlProps = CerberusPrimitiveProps<ArkSwitchControlProps>\nexport const SwitchControl = withSlotRecipe<SwitchControlProps>(\n Switch.Control,\n 'control',\n)\n\n// Thumb\n\nexport type SwitchThumbProps = CerberusPrimitiveProps<ArkSwitchThumbProps>\nexport const SwitchThumb = withSlotRecipe<SwitchThumbProps>(\n Switch.Thumb,\n 'thumb',\n)\n\n// HiddenInput\n\nexport type SwitchHiddenInputProps =\n CerberusPrimitiveProps<ArkSwitchHiddenInputProps>\nexport const SwitchHiddenInput = withNoRecipe<SwitchHiddenInputProps>(\n Switch.HiddenInput,\n)\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/switch/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts"],"sourcesContent":["import {\n Switch,\n type SwitchControlProps as ArkSwitchControlProps,\n type SwitchHiddenInputProps as ArkSwitchHiddenInputProps,\n type SwitchLabelProps as ArkSwitchLabelProps,\n type SwitchRootProps as ArkSwitchRootProps,\n type SwitchThumbProps as ArkSwitchThumbProps,\n} from '@ark-ui/react/switch'\nimport {\n switchRecipe,\n type SwitchRecipeVariantProps,\n} from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the Switch primitives\n * @module 'react/switch'\n */\n\nconst { withSlotRecipe, withNoRecipe } = createCerberusPrimitive(switchRecipe)\n\n// Root\n\nexport type SwitchRootProps = CerberusPrimitiveProps<\n ArkSwitchRootProps & SwitchRecipeVariantProps\n>\nexport const SwitchRoot = withSlotRecipe<SwitchRootProps>(Switch.Root, 'root')\n\n// Label\n\nexport type SwitchLabelProps = CerberusPrimitiveProps<ArkSwitchLabelProps>\nexport const SwitchLabel = withSlotRecipe<SwitchLabelProps>(\n Switch.Label,\n 'label',\n)\n\n// Control\n\nexport type SwitchControlProps = CerberusPrimitiveProps<ArkSwitchControlProps>\nexport const SwitchControl = withSlotRecipe<SwitchControlProps>(\n Switch.Control,\n 'control',\n)\n\n// Thumb\n\nexport type SwitchThumbProps = CerberusPrimitiveProps<ArkSwitchThumbProps>\nexport const SwitchThumb = withSlotRecipe<SwitchThumbProps>(\n Switch.Thumb,\n 'thumb',\n)\n\n// HiddenInput\n\nexport type SwitchHiddenInputProps =\n CerberusPrimitiveProps<ArkSwitchHiddenInputProps>\nexport const SwitchHiddenInput = withNoRecipe<SwitchHiddenInputProps>(\n Switch.HiddenInput,\n)\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":[]}
|
|
@@ -39,23 +39,28 @@ var CerberusPrimitive = class {
|
|
|
39
39
|
/**
|
|
40
40
|
* Creates a Cerberus component with bare features and no recipe.
|
|
41
41
|
* @param Component - The React component to enhance with Cerberus features.
|
|
42
|
+
* Can be a string or a component reference.
|
|
42
43
|
* @returns A new React component that applies Cerberus features to the
|
|
43
44
|
* original component.
|
|
45
|
+
*
|
|
44
46
|
* @example
|
|
45
|
-
* ```
|
|
46
|
-
* const { withNoRecipe } = createCerberusPrimitive(
|
|
47
|
-
* const Button = withNoRecipe(
|
|
47
|
+
* ```ts
|
|
48
|
+
* const { withNoRecipe } = createCerberusPrimitive(buttonRecipe)
|
|
49
|
+
* const Button = withNoRecipe('button')
|
|
48
50
|
* ```
|
|
49
51
|
*/
|
|
50
52
|
__publicField(this, "withNoRecipe", (Component, options) => {
|
|
51
53
|
const { defaultProps } = options || {};
|
|
52
|
-
|
|
54
|
+
const El = Component;
|
|
53
55
|
const CerbComponent = (props) => {
|
|
54
56
|
const { css: customCss, className, ...nativeProps } = props;
|
|
55
57
|
const styles = this.hasStyles((0, import_css.cx)(className, (0, import_css.css)(customCss)));
|
|
56
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
58
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(El, { ...defaultProps, ...styles, ...nativeProps });
|
|
57
59
|
};
|
|
58
|
-
|
|
60
|
+
if (this.validateComponent(El)) {
|
|
61
|
+
const ElName = typeof El === "string" ? El : El.displayName || El.name;
|
|
62
|
+
CerbComponent.displayName = ElName;
|
|
63
|
+
}
|
|
59
64
|
return CerbComponent;
|
|
60
65
|
});
|
|
61
66
|
/**
|
|
@@ -67,11 +72,15 @@ var CerberusPrimitive = class {
|
|
|
67
72
|
*/
|
|
68
73
|
__publicField(this, "withRecipe", (Component, options) => {
|
|
69
74
|
const { defaultProps } = options || {};
|
|
75
|
+
const El = Component;
|
|
70
76
|
const recipe = this.recipe;
|
|
71
|
-
this.validateComponent(Component);
|
|
72
77
|
const CerbComponent = (internalProps) => {
|
|
73
|
-
const {
|
|
74
|
-
|
|
78
|
+
const {
|
|
79
|
+
css: customCss,
|
|
80
|
+
className,
|
|
81
|
+
...restOfInternalProps
|
|
82
|
+
} = internalProps;
|
|
83
|
+
const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
|
|
75
84
|
const recipeStyles = recipe(variantOptions);
|
|
76
85
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
77
86
|
Component,
|
|
@@ -82,7 +91,10 @@ var CerberusPrimitive = class {
|
|
|
82
91
|
}
|
|
83
92
|
);
|
|
84
93
|
};
|
|
85
|
-
|
|
94
|
+
if (this.validateComponent(El)) {
|
|
95
|
+
const ElName = typeof El === "string" ? El : El.displayName || El.name;
|
|
96
|
+
CerbComponent.displayName = ElName;
|
|
97
|
+
}
|
|
86
98
|
return CerbComponent;
|
|
87
99
|
});
|
|
88
100
|
/**
|
|
@@ -99,11 +111,15 @@ var CerberusPrimitive = class {
|
|
|
99
111
|
*/
|
|
100
112
|
__publicField(this, "withSlotRecipe", (Component, slot, options) => {
|
|
101
113
|
const { defaultProps } = options || {};
|
|
114
|
+
const El = Component;
|
|
102
115
|
const recipe = this.recipe;
|
|
103
|
-
this.validateComponent(Component);
|
|
104
116
|
const CerbComponent = (internalProps) => {
|
|
105
|
-
const {
|
|
106
|
-
|
|
117
|
+
const {
|
|
118
|
+
css: customCss,
|
|
119
|
+
className,
|
|
120
|
+
...restOfInternalProps
|
|
121
|
+
} = internalProps;
|
|
122
|
+
const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
|
|
107
123
|
const styles = recipe(variantOptions);
|
|
108
124
|
const slotStyles = styles[slot];
|
|
109
125
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
@@ -115,7 +131,10 @@ var CerberusPrimitive = class {
|
|
|
115
131
|
}
|
|
116
132
|
);
|
|
117
133
|
};
|
|
118
|
-
|
|
134
|
+
if (this.validateComponent(El)) {
|
|
135
|
+
const ElName = typeof El === "string" ? El : El.displayName || El.name;
|
|
136
|
+
CerbComponent.displayName = ElName;
|
|
137
|
+
}
|
|
119
138
|
return CerbComponent;
|
|
120
139
|
});
|
|
121
140
|
this.recipe = recipe ?? null;
|
|
@@ -130,8 +149,9 @@ var CerberusPrimitive = class {
|
|
|
130
149
|
}
|
|
131
150
|
validateComponent(Component) {
|
|
132
151
|
if (typeof Component !== "function" && typeof Component !== "object") {
|
|
133
|
-
|
|
152
|
+
return false;
|
|
134
153
|
}
|
|
154
|
+
return true;
|
|
135
155
|
}
|
|
136
156
|
};
|
|
137
157
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/switch/switch.tsx","../../../../src/components/switch/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/switch/parts.ts","../../../../src/context/cerberus.tsx","../../../../src/components/switch/switch-indicator.tsx"],"sourcesContent":["import { SwitchParts } from './parts'\nimport { SwitchIndicator } from './switch-indicator'\nimport type { SwitchRootProps } from './primitives'\n\n/**\n * The Switch component is a and abstraction of the primitives that displays a\n * controlled Switch with a label.\n * @description [Cerberus Docs] https://cerberus.digitalu.design/react/switch\n * @description [Ark Docs] https://ark-ui.com/docs/components/switch\n */\nexport function Switch(props: SwitchRootProps) {\n const { children, ...rootProps } = props\n\n return (\n <SwitchParts.Root {...rootProps}>\n <SwitchParts.Control>\n <SwitchParts.Thumb>\n <SwitchIndicator />\n </SwitchParts.Thumb>\n </SwitchParts.Control>\n\n <SwitchParts.Label>{children}</SwitchParts.Label>\n\n <SwitchParts.HiddenInput />\n </SwitchParts.Root>\n )\n}\n","import {\n Switch,\n type SwitchControlProps as ArkSwitchControlProps,\n type SwitchHiddenInputProps as ArkSwitchHiddenInputProps,\n type SwitchLabelProps as ArkSwitchLabelProps,\n type SwitchRootProps as ArkSwitchRootProps,\n type SwitchThumbProps as ArkSwitchThumbProps,\n} from '@ark-ui/react/switch'\nimport {\n switchRecipe,\n type SwitchRecipeVariantProps,\n} from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the Switch primitives\n * @module 'react/switch'\n */\n\nconst { withSlotRecipe, withNoRecipe } = createCerberusPrimitive(switchRecipe)\n\n// Root\n\nexport type SwitchRootProps = CerberusPrimitiveProps<\n ArkSwitchRootProps & SwitchRecipeVariantProps\n>\nexport const SwitchRoot = withSlotRecipe<SwitchRootProps>(Switch.Root, 'root')\n\n// Label\n\nexport type SwitchLabelProps = CerberusPrimitiveProps<ArkSwitchLabelProps>\nexport const SwitchLabel = withSlotRecipe<SwitchLabelProps>(\n Switch.Label,\n 'label',\n)\n\n// Control\n\nexport type SwitchControlProps = CerberusPrimitiveProps<ArkSwitchControlProps>\nexport const SwitchControl = withSlotRecipe<SwitchControlProps>(\n Switch.Control,\n 'control',\n)\n\n// Thumb\n\nexport type SwitchThumbProps = CerberusPrimitiveProps<ArkSwitchThumbProps>\nexport const SwitchThumb = withSlotRecipe<SwitchThumbProps>(\n Switch.Thumb,\n 'thumb',\n)\n\n// HiddenInput\n\nexport type SwitchHiddenInputProps =\n CerberusPrimitiveProps<ArkSwitchHiddenInputProps>\nexport const SwitchHiddenInput = withNoRecipe<SwitchHiddenInputProps>(\n Switch.HiddenInput,\n)\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n","import type { ElementType } from 'react'\nimport {\n SwitchControl,\n SwitchLabel,\n SwitchRoot,\n SwitchThumb,\n SwitchHiddenInput,\n} from './primitives'\n\n/**\n * This module contains the parts of the Switch parts.\n * @module 'switch/parts'\n */\n\ninterface SwitchPartsValue {\n /**\n * The container of the field.\n */\n Root: ElementType\n /**\n * The label of the field.\n */\n Label: ElementType\n /**\n * The visual input of the switch.\n */\n Control: ElementType\n /**\n * The thumb item of the switch.\n */\n Thumb: ElementType\n /**\n * The native input for the switch.\n */\n HiddenInput: ElementType\n}\n\n/**\n * An Object containing the parts of the Switch component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the SwitchParts object and\n * the entire family of components vs. only what you use.\n */\nexport const SwitchParts: SwitchPartsValue = {\n Root: SwitchRoot,\n Label: SwitchLabel,\n Control: SwitchControl,\n Thumb: SwitchThumb,\n HiddenInput: SwitchHiddenInput,\n}\n","'use client'\n\nimport { createContext, useContext, type PropsWithChildren } from 'react'\nimport type { SystemConfig } from '../config'\n\n/**\n * This module contains the Cerberus configuration context and helpers.\n * @module context/cerberus\n */\n\ntype CerberusContextValue = SystemConfig\n\nconst CerberusContext = createContext<CerberusContextValue | null>(null)\n\ninterface CerberusProviderProps {\n config: SystemConfig\n}\n\n/**\n * Cerberus configuration provider.\n * @param props.config The Cerberus configuration created with\n * `makeSystemConfig` helper.\n */\nexport function CerberusProvider(\n props: PropsWithChildren<CerberusProviderProps>,\n) {\n return (\n <CerberusContext.Provider value={props.config}>\n {props.children}\n </CerberusContext.Provider>\n )\n}\n\n/**\n * Returns the Cerberus configuration context.\n * @returns The Cerberus configuration context.\n */\nexport function useCerberusContext() {\n const context = useContext(CerberusContext)\n if (!context) {\n throw new Error('useCerberus must be used within a CerberusProvider')\n }\n return context\n}\n","'use client'\n\nimport { useCerberusContext } from '../../context/cerberus'\n\nexport function SwitchIndicator() {\n const { icons } = useCerberusContext()\n const { toggleChecked: CheckIcon } = icons\n return <CheckIcon />\n}\n"],"mappings":"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","names":["Switch","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","Switch"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/switch/switch.tsx","../../../../src/components/switch/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/switch/parts.ts","../../../../src/context/cerberus.tsx","../../../../src/components/switch/switch-indicator.tsx"],"sourcesContent":["import { SwitchParts } from './parts'\nimport { SwitchIndicator } from './switch-indicator'\nimport type { SwitchRootProps } from './primitives'\n\n/**\n * The Switch component is a and abstraction of the primitives that displays a\n * controlled Switch with a label.\n * @description [Cerberus Docs] https://cerberus.digitalu.design/react/switch\n * @description [Ark Docs] https://ark-ui.com/docs/components/switch\n */\nexport function Switch(props: SwitchRootProps) {\n const { children, ...rootProps } = props\n\n return (\n <SwitchParts.Root {...rootProps}>\n <SwitchParts.Control>\n <SwitchParts.Thumb>\n <SwitchIndicator />\n </SwitchParts.Thumb>\n </SwitchParts.Control>\n\n <SwitchParts.Label>{children}</SwitchParts.Label>\n\n <SwitchParts.HiddenInput />\n </SwitchParts.Root>\n )\n}\n","import {\n Switch,\n type SwitchControlProps as ArkSwitchControlProps,\n type SwitchHiddenInputProps as ArkSwitchHiddenInputProps,\n type SwitchLabelProps as ArkSwitchLabelProps,\n type SwitchRootProps as ArkSwitchRootProps,\n type SwitchThumbProps as ArkSwitchThumbProps,\n} from '@ark-ui/react/switch'\nimport {\n switchRecipe,\n type SwitchRecipeVariantProps,\n} from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the Switch primitives\n * @module 'react/switch'\n */\n\nconst { withSlotRecipe, withNoRecipe } = createCerberusPrimitive(switchRecipe)\n\n// Root\n\nexport type SwitchRootProps = CerberusPrimitiveProps<\n ArkSwitchRootProps & SwitchRecipeVariantProps\n>\nexport const SwitchRoot = withSlotRecipe<SwitchRootProps>(Switch.Root, 'root')\n\n// Label\n\nexport type SwitchLabelProps = CerberusPrimitiveProps<ArkSwitchLabelProps>\nexport const SwitchLabel = withSlotRecipe<SwitchLabelProps>(\n Switch.Label,\n 'label',\n)\n\n// Control\n\nexport type SwitchControlProps = CerberusPrimitiveProps<ArkSwitchControlProps>\nexport const SwitchControl = withSlotRecipe<SwitchControlProps>(\n Switch.Control,\n 'control',\n)\n\n// Thumb\n\nexport type SwitchThumbProps = CerberusPrimitiveProps<ArkSwitchThumbProps>\nexport const SwitchThumb = withSlotRecipe<SwitchThumbProps>(\n Switch.Thumb,\n 'thumb',\n)\n\n// HiddenInput\n\nexport type SwitchHiddenInputProps =\n CerberusPrimitiveProps<ArkSwitchHiddenInputProps>\nexport const SwitchHiddenInput = withNoRecipe<SwitchHiddenInputProps>(\n Switch.HiddenInput,\n)\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 SwitchControl,\n SwitchLabel,\n SwitchRoot,\n SwitchThumb,\n SwitchHiddenInput,\n} from './primitives'\n\n/**\n * This module contains the parts of the Switch parts.\n * @module 'switch/parts'\n */\n\ninterface SwitchPartsValue {\n /**\n * The container of the field.\n */\n Root: ElementType\n /**\n * The label of the field.\n */\n Label: ElementType\n /**\n * The visual input of the switch.\n */\n Control: ElementType\n /**\n * The thumb item of the switch.\n */\n Thumb: ElementType\n /**\n * The native input for the switch.\n */\n HiddenInput: ElementType\n}\n\n/**\n * An Object containing the parts of the Switch component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the SwitchParts object and\n * the entire family of components vs. only what you use.\n */\nexport const SwitchParts: SwitchPartsValue = {\n Root: SwitchRoot,\n Label: SwitchLabel,\n Control: SwitchControl,\n Thumb: SwitchThumb,\n HiddenInput: SwitchHiddenInput,\n}\n","'use client'\n\nimport { createContext, useContext, type PropsWithChildren } from 'react'\nimport type { SystemConfig } from '../config'\n\n/**\n * This module contains the Cerberus configuration context and helpers.\n * @module context/cerberus\n */\n\ntype CerberusContextValue = SystemConfig\n\nconst CerberusContext = createContext<CerberusContextValue | null>(null)\n\ninterface CerberusProviderProps {\n config: SystemConfig\n}\n\n/**\n * Cerberus configuration provider.\n * @param props.config The Cerberus configuration created with\n * `makeSystemConfig` helper.\n */\nexport function CerberusProvider(\n props: PropsWithChildren<CerberusProviderProps>,\n) {\n return (\n <CerberusContext.Provider value={props.config}>\n {props.children}\n </CerberusContext.Provider>\n )\n}\n\n/**\n * Returns the Cerberus configuration context.\n * @returns The Cerberus configuration context.\n */\nexport function useCerberusContext() {\n const context = useContext(CerberusContext)\n if (!context) {\n throw new Error('useCerberus must be used within a CerberusProvider')\n }\n return context\n}\n","'use client'\n\nimport { useCerberusContext } from '../../context/cerberus'\n\nexport function SwitchIndicator() {\n const { icons } = useCerberusContext()\n const { toggleChecked: CheckIcon } = icons\n return <CheckIcon />\n}\n"],"mappings":"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","names":["Switch","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","Switch"]}
|
|
@@ -50,23 +50,28 @@ var CerberusPrimitive = class {
|
|
|
50
50
|
/**
|
|
51
51
|
* Creates a Cerberus component with bare features and no recipe.
|
|
52
52
|
* @param Component - The React component to enhance with Cerberus features.
|
|
53
|
+
* Can be a string or a component reference.
|
|
53
54
|
* @returns A new React component that applies Cerberus features to the
|
|
54
55
|
* original component.
|
|
56
|
+
*
|
|
55
57
|
* @example
|
|
56
|
-
* ```
|
|
57
|
-
* const { withNoRecipe } = createCerberusPrimitive(
|
|
58
|
-
* const Button = withNoRecipe(
|
|
58
|
+
* ```ts
|
|
59
|
+
* const { withNoRecipe } = createCerberusPrimitive(buttonRecipe)
|
|
60
|
+
* const Button = withNoRecipe('button')
|
|
59
61
|
* ```
|
|
60
62
|
*/
|
|
61
63
|
__publicField(this, "withNoRecipe", (Component, options) => {
|
|
62
64
|
const { defaultProps } = options || {};
|
|
63
|
-
|
|
65
|
+
const El = Component;
|
|
64
66
|
const CerbComponent = (props) => {
|
|
65
67
|
const { css: customCss, className, ...nativeProps } = props;
|
|
66
68
|
const styles = this.hasStyles((0, import_css.cx)(className, (0, import_css.css)(customCss)));
|
|
67
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
69
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(El, { ...defaultProps, ...styles, ...nativeProps });
|
|
68
70
|
};
|
|
69
|
-
|
|
71
|
+
if (this.validateComponent(El)) {
|
|
72
|
+
const ElName = typeof El === "string" ? El : El.displayName || El.name;
|
|
73
|
+
CerbComponent.displayName = ElName;
|
|
74
|
+
}
|
|
70
75
|
return CerbComponent;
|
|
71
76
|
});
|
|
72
77
|
/**
|
|
@@ -78,11 +83,15 @@ var CerberusPrimitive = class {
|
|
|
78
83
|
*/
|
|
79
84
|
__publicField(this, "withRecipe", (Component, options) => {
|
|
80
85
|
const { defaultProps } = options || {};
|
|
86
|
+
const El = Component;
|
|
81
87
|
const recipe = this.recipe;
|
|
82
|
-
this.validateComponent(Component);
|
|
83
88
|
const CerbComponent = (internalProps) => {
|
|
84
|
-
const {
|
|
85
|
-
|
|
89
|
+
const {
|
|
90
|
+
css: customCss,
|
|
91
|
+
className,
|
|
92
|
+
...restOfInternalProps
|
|
93
|
+
} = internalProps;
|
|
94
|
+
const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
|
|
86
95
|
const recipeStyles = recipe(variantOptions);
|
|
87
96
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
88
97
|
Component,
|
|
@@ -93,7 +102,10 @@ var CerberusPrimitive = class {
|
|
|
93
102
|
}
|
|
94
103
|
);
|
|
95
104
|
};
|
|
96
|
-
|
|
105
|
+
if (this.validateComponent(El)) {
|
|
106
|
+
const ElName = typeof El === "string" ? El : El.displayName || El.name;
|
|
107
|
+
CerbComponent.displayName = ElName;
|
|
108
|
+
}
|
|
97
109
|
return CerbComponent;
|
|
98
110
|
});
|
|
99
111
|
/**
|
|
@@ -110,11 +122,15 @@ var CerberusPrimitive = class {
|
|
|
110
122
|
*/
|
|
111
123
|
__publicField(this, "withSlotRecipe", (Component, slot, options) => {
|
|
112
124
|
const { defaultProps } = options || {};
|
|
125
|
+
const El = Component;
|
|
113
126
|
const recipe = this.recipe;
|
|
114
|
-
this.validateComponent(Component);
|
|
115
127
|
const CerbComponent = (internalProps) => {
|
|
116
|
-
const {
|
|
117
|
-
|
|
128
|
+
const {
|
|
129
|
+
css: customCss,
|
|
130
|
+
className,
|
|
131
|
+
...restOfInternalProps
|
|
132
|
+
} = internalProps;
|
|
133
|
+
const [variantOptions, nativeProps] = recipe.splitVariantProps(restOfInternalProps);
|
|
118
134
|
const styles = recipe(variantOptions);
|
|
119
135
|
const slotStyles = styles[slot];
|
|
120
136
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
@@ -126,7 +142,10 @@ var CerberusPrimitive = class {
|
|
|
126
142
|
}
|
|
127
143
|
);
|
|
128
144
|
};
|
|
129
|
-
|
|
145
|
+
if (this.validateComponent(El)) {
|
|
146
|
+
const ElName = typeof El === "string" ? El : El.displayName || El.name;
|
|
147
|
+
CerbComponent.displayName = ElName;
|
|
148
|
+
}
|
|
130
149
|
return CerbComponent;
|
|
131
150
|
});
|
|
132
151
|
this.recipe = recipe ?? null;
|
|
@@ -141,8 +160,9 @@ var CerberusPrimitive = class {
|
|
|
141
160
|
}
|
|
142
161
|
validateComponent(Component) {
|
|
143
162
|
if (typeof Component !== "function" && typeof Component !== "object") {
|
|
144
|
-
|
|
163
|
+
return false;
|
|
145
164
|
}
|
|
165
|
+
return true;
|
|
146
166
|
}
|
|
147
167
|
};
|
|
148
168
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/table/index.ts","../../../../src/components/table/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/table/parts.ts","../../../../src/components/show/show.tsx","../../../../src/components/table/table.tsx"],"sourcesContent":["export * from './parts'\nexport * from './primitives'\nexport * from './table'\n","import { ark, type HTMLArkProps } from '@ark-ui/react/factory'\nimport { table, type TableVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Table component.\n * @module 'table/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(table)\n\n// Root\n\nexport type TableRootProps = CerberusPrimitiveProps<\n HTMLArkProps<'div'> & TableVariantProps\n>\nexport const TableRoot = withSlotRecipe<TableRootProps>(ark.div, 'root', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'root',\n },\n})\n\n// TableEl\n\nexport type TableElProps = CerberusPrimitiveProps<HTMLArkProps<'table'>>\nexport const TableEl = withSlotRecipe<TableElProps>(ark.table, 'table', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'table',\n },\n})\n\n// Caption\n\nexport type CaptionProps = CerberusPrimitiveProps<HTMLArkProps<'caption'>>\nexport const Caption = withSlotRecipe<CaptionProps>(ark.caption, 'caption', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'caption',\n },\n})\n\n// Thead\n\nexport type TheadProps = CerberusPrimitiveProps<HTMLArkProps<'thead'>>\nexport const Thead = withSlotRecipe<TheadProps>(ark.thead, 'thead', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'header',\n },\n})\n\n// Th\n\nexport type ThProps = CerberusPrimitiveProps<HTMLArkProps<'th'>>\nexport const Th = withSlotRecipe<ThProps>(ark.th, 'th', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'header-col',\n },\n})\n\n// Tbody\n\nexport type TbodyProps = CerberusPrimitiveProps<HTMLArkProps<'tbody'>>\nexport const Tbody = withSlotRecipe<TbodyProps>(ark.tbody, 'tbody', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'body',\n },\n})\n\n// Tr\nexport type TrProps = CerberusPrimitiveProps<HTMLArkProps<'tr'>>\nexport const Tr = withSlotRecipe<TrProps>(ark.tr, 'tr', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'row',\n },\n})\n\n// Td\n\nexport type TdProps = CerberusPrimitiveProps<HTMLArkProps<'td'>>\nexport const Td = withSlotRecipe<TdProps>(ark.td, 'td', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'cell',\n },\n})\n\n// Tfoot\n\nexport type TfootProps = CerberusPrimitiveProps<HTMLArkProps<'tfoot'>>\nexport const Tfoot = withSlotRecipe<TfootProps>(ark.tfoot, 'tfoot', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'footer',\n },\n})\n\n// TableTrigger\n\nexport type TableTriggerProps = CerberusPrimitiveProps<HTMLArkProps<'button'>>\nexport const TableTrigger = withSlotRecipe<TableTriggerProps>(\n ark.button,\n 'trigger',\n {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'trigger',\n },\n },\n)\n","import { css, cx } from 'styled-system/css'\nimport type { RecipeVariantRecord } from 'styled-system/types'\nimport {\n type ComponentType,\n type HTMLAttributes,\n type PropsWithChildren,\n} from 'react'\nimport type { WithCss } from '../types'\nimport type {\n CerberusPrimitiveEl,\n CerberusPrimitiveRecipe,\n CerberusRecipe,\n CerberusSlotRecipe,\n WithRecipeOptions,\n} from './types'\n\n/**\n * This module contains a factory for creating Cerberus primitives.\n * @module @cerberus/core/system/factory\n */\n\nexport class CerberusPrimitive {\n recipe: CerberusPrimitiveRecipe | null\n\n constructor(recipe?: CerberusPrimitiveRecipe) {\n this.recipe = recipe ?? null\n }\n\n private hasStyles(styles: string | undefined): Record<string, unknown> {\n if (styles) {\n return {\n className: styles,\n }\n }\n return {}\n }\n\n private validateComponent<P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n ) {\n if (typeof Component !== 'function' && typeof Component !== 'object') {\n throw new Error('Expected a React component as the first argument.')\n }\n }\n\n /**\n * Creates a Cerberus component with bare features and no recipe.\n * @param Component - The React component to enhance with Cerberus features.\n * @returns A new React component that applies Cerberus features to the\n * original component.\n * @example\n * ```typescript\n * const { withNoRecipe } = createCerberusPrimitive(button)\n * const Button = withNoRecipe(RawButton)\n * ```\n */\n withNoRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P> => {\n const { defaultProps } = options || {}\n\n this.validateComponent(Component)\n\n const CerbComponent = (props: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = props\n const styles = this.hasStyles(cx(className, css(customCss)))\n return <Component {...defaultProps} {...styles} {...(nativeProps as P)} />\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with the given recipe.\n * @param Component - The React component to enhance with the recipe.\n * @param options - Options for the recipe.\n * @returns A new React component that applies the recipe to the original\n * component.\n */\n withRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n options?: WithRecipeOptions,\n ): CerberusPrimitiveEl<P & WithRecipeOptions['defaultProps']> => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusRecipe\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const recipeStyles = recipe(variantOptions)\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, recipeStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n\n /**\n * Creates a Cerberus component with a slot recipe applied.\n * @param Component - The React component to enhance with Cerberus features.\n * @param recipe - The slot recipe to apply to the component.\n * @returns A new React component that applies Cerberus features and the\n * specified slot recipe to the original component.\n * @example\n * ```typescript\n * const { withSlotRecipe } = createCerberusPrimitive(field)\n * const Field = withSlotRecipe(RawField, field)\n * ```\n */\n withSlotRecipe = <P extends HTMLAttributes<unknown>>(\n Component: ComponentType<P>,\n slot: keyof RecipeVariantRecord,\n options?: WithRecipeOptions,\n ) => {\n const { defaultProps } = options || {}\n const recipe = this.recipe as CerberusSlotRecipe<typeof slot>\n\n this.validateComponent(Component)\n\n const CerbComponent = (internalProps: PropsWithChildren<P> & WithCss) => {\n const { css: customCss, className, ...nativeProps } = internalProps\n\n const [variantOptions] = recipe.splitVariantProps(nativeProps)\n const styles = recipe(variantOptions)\n const slotStyles = styles[slot as keyof typeof styles]\n\n return (\n <Component\n {...defaultProps}\n {...(nativeProps as P)}\n className={cx(className, slotStyles, css(customCss))}\n />\n )\n }\n\n CerbComponent.displayName = Component.displayName || Component.name\n return CerbComponent\n }\n}\n","import { CerberusPrimitive } from './primitive-factory'\nimport type { CerberusFactory, CerberusPrimitiveRecipe } from './types'\nimport { cerberusFactoryProxy } from './factory'\n\n/**\n * This module contains the user interface for creating Cerberus primitives.\n * @module @cerberus/core/system/create-cerb-primitive\n */\n\n/**\n * A factory function that creates a Cerberus primitive instance with the given\n * recipe.\n * @param recipe\n * @returns An object with three methods: `withNoRecipe`, `withRecipe`, and `withSlotRecipe` that\n * apply the recipes and special Cerberus helpers like `css`.\n *\n * @example\n * ```tsx\n * const { withRecipe } = createCerberusPrimitive(myCustomRecipe);\n * export const Button = withRecipe(MyCustomButton)\n * ```\n */\nexport function createCerberusPrimitive<T extends CerberusPrimitiveRecipe>(\n recipe?: T,\n) {\n return new CerberusPrimitive(recipe)\n}\n\n/**\n * A utility function to access Cerberus components by their name.\n * @param component - The name of the Cerberus component to access.\n * @returns The Cerberus component corresponding to the provided name.\n * @throws An error if the component name is not valid.\n *\n * @example\n * ```tsx\n * import { cerberus } from '@cerberus/react'\n * const Button = cerberus('button')\n *\n * <Button css={{ color: 'blue' }} asChild>\n * <Link href=\"/some-page\">Click me</Link>\n * </Button>\n * ```\n */\nexport const cerberus = cerberusFactoryProxy as CerberusFactory\n\nexport * from './types'\n","import type { ElementType } from 'react'\nimport {\n TableRoot,\n Thead,\n Th,\n Tbody,\n Tr,\n Td,\n Tfoot,\n TableEl,\n Caption,\n TableTrigger,\n} from './primitives'\n\n/**\n * This module contains the parts of the Table parts.\n * @module 'table/parts'\n */\n\nexport interface TablePartsValue {\n /**\n * The container of the table.\n */\n Root: ElementType\n /**\n * The table element.\n */\n Table: ElementType\n /**\n * The table caption element.\n */\n Caption: ElementType\n /**\n * The table head element.\n */\n Header: ElementType\n /**\n * The table header cell element.\n */\n HeaderCol: ElementType\n /**\n * The table body element.\n */\n Body: ElementType\n /**\n * The table row element.\n */\n Row: ElementType\n /**\n * The table cell element.\n */\n Cell: ElementType\n /**\n * The table footer element.\n */\n Footer: ElementType\n /**\n * The table trigger element.\n */\n Trigger: ElementType\n}\n\n/**\n * An Object containing the parts of the Table component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the TableParts object and\n * the entire family of components vs. only what you use.\n */\nexport const TableParts: TablePartsValue = {\n Root: TableRoot,\n Table: TableEl,\n Caption: Caption,\n Header: Thead,\n HeaderCol: Th,\n Body: Tbody,\n Row: Tr,\n Cell: Td,\n Footer: Tfoot,\n Trigger: TableTrigger,\n}\n","import { type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps<T> {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: T | boolean | null | undefined\n /**\n * The children to render when the condition is false.\n */\n fallback?: ReactNode\n}\n\n/**\n * Conditionally render a memoized version of the children or optional fallback\n * content.\n * @see https://cerberus.digitalu.design/react/show\n * @example\n * ```tsx\n * <Show when={isLoggedIn} fallback={<Navigate to=\"/login\" />}>\n * <Dashboard />\n * </Show>\n */\nexport function Show<T>(props: PropsWithChildren<ShowProps<T>>) {\n const { when, children, fallback } = props\n\n if (when) {\n return <>{children}</>\n }\n\n if (fallback) {\n return <>{fallback}</>\n }\n\n return null\n}\n","import type { TablePartsValue } from './parts'\nimport {\n Caption,\n TableEl,\n TableRoot,\n TableTrigger,\n Tbody,\n Td,\n Tfoot,\n Th,\n Thead,\n Tr,\n type TableRootProps,\n} from './primitives'\nimport { Show } from '../show/index'\n\nexport interface TableRootElProps extends TableRootProps {\n /**\n * An easy to understand description of the table. Required for accessibility.\n */\n caption: string\n /**\n * If true, the table header will be sticky.\n *\n * @default false\n */\n sticky?: boolean\n}\n\n/**\n * An abstraction over the TableRoot component that adds a sticky attribute.\n * @description [Cerberus Docs](https://cerberus.digitalu.design/react/table)\n *\n * @remarks\n *\n * This component is used to create a table with an optional sticky header.\n * It is a wrapper around the TableRoot component and the TableEl primitive.\n */\nfunction TableRootEl(props: TableRootElProps) {\n const { sticky, caption, ...rootProps } = props\n return (\n <TableRoot {...rootProps} data-sticky={sticky ?? false}>\n <TableEl>\n <Show when={caption}>\n <Caption>{caption}</Caption>\n </Show>\n\n {rootProps.children}\n </TableEl>\n </TableRoot>\n )\n}\n\n/**\n * An Object containing the parts of the Table component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the TableParts object and\n * the entire family of components vs. only what you use.\n */\nexport const Table: Omit<TablePartsValue, 'Table'> = {\n Root: TableRootEl,\n Caption: Caption,\n Header: Thead,\n HeaderCol: Th,\n Body: Tbody,\n Row: Tr,\n Cell: Td,\n Footer: Tfoot,\n Trigger: TableTrigger,\n}\n"],"mappings":"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","names":["import_jsx_runtime","import_jsx_runtime"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/table/index.ts","../../../../src/components/table/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/table/parts.ts","../../../../src/components/show/show.tsx","../../../../src/components/table/table.tsx"],"sourcesContent":["export * from './parts'\nexport * from './primitives'\nexport * from './table'\n","import { ark, type HTMLArkProps } from '@ark-ui/react/factory'\nimport { table, type TableVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Table component.\n * @module 'table/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(table)\n\n// Root\n\nexport type TableRootProps = CerberusPrimitiveProps<\n HTMLArkProps<'div'> & TableVariantProps\n>\nexport const TableRoot = withSlotRecipe<TableRootProps>(ark.div, 'root', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'root',\n },\n})\n\n// TableEl\n\nexport type TableElProps = CerberusPrimitiveProps<HTMLArkProps<'table'>>\nexport const TableEl = withSlotRecipe<TableElProps>(ark.table, 'table', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'table',\n },\n})\n\n// Caption\n\nexport type CaptionProps = CerberusPrimitiveProps<HTMLArkProps<'caption'>>\nexport const Caption = withSlotRecipe<CaptionProps>(ark.caption, 'caption', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'caption',\n },\n})\n\n// Thead\n\nexport type TheadProps = CerberusPrimitiveProps<HTMLArkProps<'thead'>>\nexport const Thead = withSlotRecipe<TheadProps>(ark.thead, 'thead', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'header',\n },\n})\n\n// Th\n\nexport type ThProps = CerberusPrimitiveProps<HTMLArkProps<'th'>>\nexport const Th = withSlotRecipe<ThProps>(ark.th, 'th', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'header-col',\n },\n})\n\n// Tbody\n\nexport type TbodyProps = CerberusPrimitiveProps<HTMLArkProps<'tbody'>>\nexport const Tbody = withSlotRecipe<TbodyProps>(ark.tbody, 'tbody', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'body',\n },\n})\n\n// Tr\nexport type TrProps = CerberusPrimitiveProps<HTMLArkProps<'tr'>>\nexport const Tr = withSlotRecipe<TrProps>(ark.tr, 'tr', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'row',\n },\n})\n\n// Td\n\nexport type TdProps = CerberusPrimitiveProps<HTMLArkProps<'td'>>\nexport const Td = withSlotRecipe<TdProps>(ark.td, 'td', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'cell',\n },\n})\n\n// Tfoot\n\nexport type TfootProps = CerberusPrimitiveProps<HTMLArkProps<'tfoot'>>\nexport const Tfoot = withSlotRecipe<TfootProps>(ark.tfoot, 'tfoot', {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'footer',\n },\n})\n\n// TableTrigger\n\nexport type TableTriggerProps = CerberusPrimitiveProps<HTMLArkProps<'button'>>\nexport const TableTrigger = withSlotRecipe<TableTriggerProps>(\n ark.button,\n 'trigger',\n {\n defaultProps: {\n 'data-scope': 'table',\n 'data-part': 'trigger',\n },\n },\n)\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 TableRoot,\n Thead,\n Th,\n Tbody,\n Tr,\n Td,\n Tfoot,\n TableEl,\n Caption,\n TableTrigger,\n} from './primitives'\n\n/**\n * This module contains the parts of the Table parts.\n * @module 'table/parts'\n */\n\nexport interface TablePartsValue {\n /**\n * The container of the table.\n */\n Root: ElementType\n /**\n * The table element.\n */\n Table: ElementType\n /**\n * The table caption element.\n */\n Caption: ElementType\n /**\n * The table head element.\n */\n Header: ElementType\n /**\n * The table header cell element.\n */\n HeaderCol: ElementType\n /**\n * The table body element.\n */\n Body: ElementType\n /**\n * The table row element.\n */\n Row: ElementType\n /**\n * The table cell element.\n */\n Cell: ElementType\n /**\n * The table footer element.\n */\n Footer: ElementType\n /**\n * The table trigger element.\n */\n Trigger: ElementType\n}\n\n/**\n * An Object containing the parts of the Table component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the TableParts object and\n * the entire family of components vs. only what you use.\n */\nexport const TableParts: TablePartsValue = {\n Root: TableRoot,\n Table: TableEl,\n Caption: Caption,\n Header: Thead,\n HeaderCol: Th,\n Body: Tbody,\n Row: Tr,\n Cell: Td,\n Footer: Tfoot,\n Trigger: TableTrigger,\n}\n","import { type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps<T> {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: T | boolean | null | undefined\n /**\n * The children to render when the condition is false.\n */\n fallback?: ReactNode\n}\n\n/**\n * Conditionally render a memoized version of the children or optional fallback\n * content.\n * @see https://cerberus.digitalu.design/react/show\n * @example\n * ```tsx\n * <Show when={isLoggedIn} fallback={<Navigate to=\"/login\" />}>\n * <Dashboard />\n * </Show>\n */\nexport function Show<T>(props: PropsWithChildren<ShowProps<T>>) {\n const { when, children, fallback } = props\n\n if (when) {\n return <>{children}</>\n }\n\n if (fallback) {\n return <>{fallback}</>\n }\n\n return null\n}\n","import type { TablePartsValue } from './parts'\nimport {\n Caption,\n TableEl,\n TableRoot,\n TableTrigger,\n Tbody,\n Td,\n Tfoot,\n Th,\n Thead,\n Tr,\n type TableRootProps,\n} from './primitives'\nimport { Show } from '../show/index'\n\nexport interface TableRootElProps extends TableRootProps {\n /**\n * An easy to understand description of the table. Required for accessibility.\n */\n caption: string\n /**\n * If true, the table header will be sticky.\n *\n * @default false\n */\n sticky?: boolean\n}\n\n/**\n * An abstraction over the TableRoot component that adds a sticky attribute.\n * @description [Cerberus Docs](https://cerberus.digitalu.design/react/table)\n *\n * @remarks\n *\n * This component is used to create a table with an optional sticky header.\n * It is a wrapper around the TableRoot component and the TableEl primitive.\n */\nfunction TableRootEl(props: TableRootElProps) {\n const { sticky, caption, ...rootProps } = props\n return (\n <TableRoot {...rootProps} data-sticky={sticky ?? false}>\n <TableEl>\n <Show when={caption}>\n <Caption>{caption}</Caption>\n </Show>\n\n {rootProps.children}\n </TableEl>\n </TableRoot>\n )\n}\n\n/**\n * An Object containing the parts of the Table component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the TableParts object and\n * the entire family of components vs. only what you use.\n */\nexport const Table: Omit<TablePartsValue, 'Table'> = {\n Root: TableRootEl,\n Caption: Caption,\n Header: Thead,\n HeaderCol: Th,\n Body: Tbody,\n Row: Tr,\n Cell: Td,\n Footer: Tfoot,\n Trigger: TableTrigger,\n}\n"],"mappings":"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","names":["import_jsx_runtime","import_jsx_runtime"]}
|