@cerberus-design/react 0.16.0-next-feeb186 → 0.16.0-next-22894bb
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 +166 -2
- package/build/legacy/components/checkbox/checkbox.cjs.map +1 -1
- package/build/legacy/components/checkbox/index.cjs.map +1 -1
- package/build/legacy/components/rating/index.cjs +167 -0
- package/build/legacy/components/rating/index.cjs.map +1 -0
- package/build/legacy/components/rating/parts.cjs +98 -0
- package/build/legacy/components/rating/parts.cjs.map +1 -0
- package/build/legacy/components/rating/primitives.cjs +97 -0
- package/build/legacy/components/rating/primitives.cjs.map +1 -0
- package/build/legacy/components/rating/rating.cjs +151 -0
- package/build/legacy/components/rating/rating.cjs.map +1 -0
- package/build/legacy/index.cjs +325 -217
- package/build/legacy/index.cjs.map +1 -1
- package/build/modern/_tsup-dts-rollup.d.ts +166 -2
- package/build/modern/{chunk-Z4342DRO.js → chunk-H5WNUPGH.js} +4 -4
- package/build/modern/chunk-OS73F4SR.js +25 -0
- package/build/modern/chunk-OS73F4SR.js.map +1 -0
- package/build/modern/chunk-QQCB6JXW.js +36 -0
- package/build/modern/chunk-QQCB6JXW.js.map +1 -0
- package/build/modern/{chunk-Y4ZEJ2EF.js → chunk-UNRQAXLJ.js} +1 -1
- package/build/modern/chunk-UNRQAXLJ.js.map +1 -0
- package/build/modern/chunk-W47QEZD5.js +71 -0
- package/build/modern/chunk-W47QEZD5.js.map +1 -0
- package/build/modern/chunk-ZOSGUATV.js +1 -0
- package/build/modern/chunk-ZOSGUATV.js.map +1 -0
- package/build/modern/components/checkbox/checkbox.js +1 -1
- package/build/modern/components/checkbox/index.js +1 -1
- package/build/modern/components/rating/index.js +31 -0
- package/build/modern/components/rating/index.js.map +1 -0
- package/build/modern/components/rating/parts.js +8 -0
- package/build/modern/components/rating/parts.js.map +1 -0
- package/build/modern/components/rating/primitives.js +19 -0
- package/build/modern/components/rating/primitives.js.map +1 -0
- package/build/modern/components/rating/rating.js +12 -0
- package/build/modern/components/rating/rating.js.map +1 -0
- package/build/modern/context/notification-center.js +2 -2
- package/build/modern/index.js +47 -22
- package/build/modern/index.js.map +1 -1
- package/package.json +2 -2
- package/src/components/checkbox/checkbox.tsx +2 -2
- package/src/components/rating/index.ts +8 -0
- package/src/components/rating/parts.tsx +65 -0
- package/src/components/rating/primitives.tsx +99 -0
- package/src/components/rating/rating.tsx +78 -0
- package/src/index.ts +1 -0
- package/build/modern/chunk-Y4ZEJ2EF.js.map +0 -1
- /package/build/modern/{chunk-Z4342DRO.js.map → chunk-H5WNUPGH.js.map} +0 -0
|
@@ -145,6 +145,14 @@ import { RadioGroupItemTextProps } from '@ark-ui/react/radio-group';
|
|
|
145
145
|
import { RadioGroupLabelProps } from '@ark-ui/react/radio-group';
|
|
146
146
|
import { RadioGroupRootProps } from '@ark-ui/react/radio-group';
|
|
147
147
|
import { RadioGroupVariantProps } from '@cerberus/styled-system/recipes';
|
|
148
|
+
import { RatingGroupContextProps } from '@ark-ui/react/rating-group';
|
|
149
|
+
import { RatingGroupControlProps } from '@ark-ui/react/rating-group';
|
|
150
|
+
import { RatingGroupHiddenInputProps } from '@ark-ui/react/rating-group';
|
|
151
|
+
import { RatingGroupItemContextProps } from '@ark-ui/react/rating-group';
|
|
152
|
+
import { RatingGroupItemProps } from '@ark-ui/react/rating-group';
|
|
153
|
+
import { RatingGroupLabelProps } from '@ark-ui/react/rating-group';
|
|
154
|
+
import { RatingGroupRootProps } from '@ark-ui/react/rating-group';
|
|
155
|
+
import { RatingGroupVariantProps } from '@cerberus/styled-system/recipes';
|
|
148
156
|
import { ReactNode } from 'react';
|
|
149
157
|
import { rectIntersection } from '@dnd-kit/core';
|
|
150
158
|
import { RefAttributes } from 'react';
|
|
@@ -204,6 +212,8 @@ import { useDraggable } from '@dnd-kit/core';
|
|
|
204
212
|
import { UseDraggableArguments } from '@dnd-kit/core';
|
|
205
213
|
import { useDroppable } from '@dnd-kit/core';
|
|
206
214
|
import { UseDroppableArguments } from '@dnd-kit/core';
|
|
215
|
+
import { UseRatingGroupContext } from '@ark-ui/react/rating-group';
|
|
216
|
+
import { UseRatingGroupItemContext } from '@ark-ui/react/rating-group';
|
|
207
217
|
import { useSensor } from '@dnd-kit/core';
|
|
208
218
|
import { useSensors } from '@dnd-kit/core';
|
|
209
219
|
|
|
@@ -645,8 +655,8 @@ declare interface CerberusProviderProps {
|
|
|
645
655
|
/**
|
|
646
656
|
* Checkbox component is an abstraction of the primitives that displays a
|
|
647
657
|
* controlled checkbox with a label.
|
|
648
|
-
* @description [Cerberus Docs]
|
|
649
|
-
* @description [Ark Docs]
|
|
658
|
+
* @description [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)
|
|
659
|
+
* @description [Ark Docs](https://ark-ui.com/docs/components/checkbox)
|
|
650
660
|
*/
|
|
651
661
|
declare function Checkbox(props: CheckboxProps): JSX_2.Element;
|
|
652
662
|
export { Checkbox }
|
|
@@ -3488,6 +3498,154 @@ declare interface RangePickerInputProps extends Omit<DatePickerInputProps, 'defa
|
|
|
3488
3498
|
export { RangePickerInputProps }
|
|
3489
3499
|
export { RangePickerInputProps as RangePickerInputProps_alias_1 }
|
|
3490
3500
|
|
|
3501
|
+
/**
|
|
3502
|
+
* The Rating component is an abstraction of the primitives which provides a
|
|
3503
|
+
* visual rating system for a user to select a value.
|
|
3504
|
+
* @description [Cerberus Docs](https://cerberus.digitalu.design/react/rating)
|
|
3505
|
+
* @description [Ark Docs](https://ark-ui.com/react/docs/components/rating-group#api-reference)
|
|
3506
|
+
* @example
|
|
3507
|
+
* ```tsx
|
|
3508
|
+
* <Rating count={5} defaultValue={3} allowHalf>
|
|
3509
|
+
* {({ half, highlighted }) => {
|
|
3510
|
+
* if (half) return <StarHalfIcon fill="current" />
|
|
3511
|
+
* if (highlighted) return <StarIcon fill="current" />
|
|
3512
|
+
* return <StarIcon />
|
|
3513
|
+
* }}
|
|
3514
|
+
* </Rating>
|
|
3515
|
+
* ```
|
|
3516
|
+
*/
|
|
3517
|
+
declare function Rating(props: RatingProps): JSX_2.Element;
|
|
3518
|
+
export { Rating }
|
|
3519
|
+
export { Rating as Rating_alias_1 }
|
|
3520
|
+
export { Rating as Rating_alias_2 }
|
|
3521
|
+
|
|
3522
|
+
/**
|
|
3523
|
+
* The context primitive of the Rating component.
|
|
3524
|
+
*/
|
|
3525
|
+
declare function RatingContext(props: RatingGroupContextProps): JSX_2.Element;
|
|
3526
|
+
export { RatingContext }
|
|
3527
|
+
export { RatingContext as RatingContext_alias_1 }
|
|
3528
|
+
export { RatingContext as RatingContext_alias_2 }
|
|
3529
|
+
|
|
3530
|
+
/**
|
|
3531
|
+
* The control primitive of the Rating component.
|
|
3532
|
+
*/
|
|
3533
|
+
declare function RatingControl(props: RatingGroupControlProps): JSX_2.Element;
|
|
3534
|
+
export { RatingControl }
|
|
3535
|
+
export { RatingControl as RatingControl_alias_1 }
|
|
3536
|
+
export { RatingControl as RatingControl_alias_2 }
|
|
3537
|
+
|
|
3538
|
+
/**
|
|
3539
|
+
* The hidden input primitive of the Rating component.
|
|
3540
|
+
*/
|
|
3541
|
+
declare function RatingHiddenInput(props: RatingGroupHiddenInputProps): JSX_2.Element;
|
|
3542
|
+
export { RatingHiddenInput }
|
|
3543
|
+
export { RatingHiddenInput as RatingHiddenInput_alias_1 }
|
|
3544
|
+
export { RatingHiddenInput as RatingHiddenInput_alias_2 }
|
|
3545
|
+
|
|
3546
|
+
/**
|
|
3547
|
+
* The item primitive of the Rating component.
|
|
3548
|
+
*/
|
|
3549
|
+
declare function RatingItem(props: RatingGroupItemProps & RatingGroupVariantProps): JSX_2.Element;
|
|
3550
|
+
export { RatingItem }
|
|
3551
|
+
export { RatingItem as RatingItem_alias_1 }
|
|
3552
|
+
export { RatingItem as RatingItem_alias_2 }
|
|
3553
|
+
|
|
3554
|
+
/**
|
|
3555
|
+
* The item context primitive of the Rating component.
|
|
3556
|
+
*/
|
|
3557
|
+
declare function RatingItemContext(props: RatingGroupItemContextProps): JSX_2.Element;
|
|
3558
|
+
export { RatingItemContext }
|
|
3559
|
+
export { RatingItemContext as RatingItemContext_alias_1 }
|
|
3560
|
+
export { RatingItemContext as RatingItemContext_alias_2 }
|
|
3561
|
+
|
|
3562
|
+
/**
|
|
3563
|
+
* The label primitive of the Rating component.
|
|
3564
|
+
*/
|
|
3565
|
+
declare function RatingLabel(props: RatingGroupLabelProps): JSX_2.Element;
|
|
3566
|
+
export { RatingLabel }
|
|
3567
|
+
export { RatingLabel as RatingLabel_alias_1 }
|
|
3568
|
+
export { RatingLabel as RatingLabel_alias_2 }
|
|
3569
|
+
|
|
3570
|
+
/**
|
|
3571
|
+
* An Object containing the parts of the Rating component. For users that
|
|
3572
|
+
* prefer Object component syntax.
|
|
3573
|
+
*
|
|
3574
|
+
* @remarks
|
|
3575
|
+
*
|
|
3576
|
+
* When using object component syntax, you import the RatingParts object and
|
|
3577
|
+
* the entire family of components vs. only what you use.
|
|
3578
|
+
*/
|
|
3579
|
+
declare const RatingParts: RatingPartsValue;
|
|
3580
|
+
export { RatingParts }
|
|
3581
|
+
export { RatingParts as RatingParts_alias_1 }
|
|
3582
|
+
export { RatingParts as RatingParts_alias_2 }
|
|
3583
|
+
|
|
3584
|
+
/**
|
|
3585
|
+
* This module contains the parts of the Rating component.
|
|
3586
|
+
* @module 'rating/parts'
|
|
3587
|
+
*/
|
|
3588
|
+
declare interface RatingPartsValue {
|
|
3589
|
+
/**
|
|
3590
|
+
* The container of the rating.
|
|
3591
|
+
*/
|
|
3592
|
+
Root: ElementType;
|
|
3593
|
+
/**
|
|
3594
|
+
* The label of the rating.
|
|
3595
|
+
*/
|
|
3596
|
+
Label: ElementType;
|
|
3597
|
+
/**
|
|
3598
|
+
* The visual representation of the rating.
|
|
3599
|
+
*/
|
|
3600
|
+
Control: ElementType;
|
|
3601
|
+
/**
|
|
3602
|
+
* The context of the rating.
|
|
3603
|
+
*/
|
|
3604
|
+
Context: ElementType;
|
|
3605
|
+
/**
|
|
3606
|
+
* The item to display for the rating.
|
|
3607
|
+
*/
|
|
3608
|
+
Item: ElementType;
|
|
3609
|
+
/**
|
|
3610
|
+
* The context provider for the rating items.
|
|
3611
|
+
*/
|
|
3612
|
+
ItemContext: ElementType;
|
|
3613
|
+
/**
|
|
3614
|
+
* The native input of the rating.
|
|
3615
|
+
*/
|
|
3616
|
+
HiddenInput: ElementType;
|
|
3617
|
+
}
|
|
3618
|
+
|
|
3619
|
+
/**
|
|
3620
|
+
* This module contains the abstracted Rating component.
|
|
3621
|
+
* @module 'react/rating'
|
|
3622
|
+
*/
|
|
3623
|
+
declare interface RatingProps extends Omit<RatingGroupRootProps, 'children'>, RatingGroupVariantProps {
|
|
3624
|
+
/**
|
|
3625
|
+
* The label of the rating component.
|
|
3626
|
+
*/
|
|
3627
|
+
label?: string;
|
|
3628
|
+
/**
|
|
3629
|
+
* The children of the rating component.
|
|
3630
|
+
*/
|
|
3631
|
+
children: (context: UseRatingGroupItemContext) => ReactNode;
|
|
3632
|
+
}
|
|
3633
|
+
export { RatingProps }
|
|
3634
|
+
export { RatingProps as RatingProps_alias_1 }
|
|
3635
|
+
export { RatingProps as RatingProps_alias_2 }
|
|
3636
|
+
|
|
3637
|
+
/**
|
|
3638
|
+
* This module contains the primitives of the Rating component.
|
|
3639
|
+
* @module 'rating/primitives'
|
|
3640
|
+
*/
|
|
3641
|
+
/**
|
|
3642
|
+
* The root primitive of the Rating component.
|
|
3643
|
+
*/
|
|
3644
|
+
declare function RatingRoot(props: RatingGroupRootProps & RatingGroupVariantProps): JSX_2.Element;
|
|
3645
|
+
export { RatingRoot }
|
|
3646
|
+
export { RatingRoot as RatingRoot_alias_1 }
|
|
3647
|
+
export { RatingRoot as RatingRoot_alias_2 }
|
|
3648
|
+
|
|
3491
3649
|
export { rectIntersection }
|
|
3492
3650
|
|
|
3493
3651
|
/**
|
|
@@ -4824,6 +4982,12 @@ declare function usePromptModal(): PromptModalValue;
|
|
|
4824
4982
|
export { usePromptModal }
|
|
4825
4983
|
export { usePromptModal as usePromptModal_alias_1 }
|
|
4826
4984
|
|
|
4985
|
+
export { UseRatingGroupContext }
|
|
4986
|
+
export { UseRatingGroupContext as UseRatingGroupContext_alias_1 }
|
|
4987
|
+
|
|
4988
|
+
export { UseRatingGroupItemContext }
|
|
4989
|
+
export { UseRatingGroupItemContext as UseRatingGroupItemContext_alias_1 }
|
|
4990
|
+
|
|
4827
4991
|
/**
|
|
4828
4992
|
* This hook returns a record of Cerberus colors from the document root.
|
|
4829
4993
|
* This is useful when you are working with a component that uses the `<canvas>`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/checkbox/checkbox.tsx","../../../../src/components/Show.tsx","../../../../src/components/Text.tsx","../../../../src/components/checkbox/primitives.tsx","../../../../src/components/checkbox/parts.ts","../../../../src/context/cerberus.tsx","../../../../src/components/checkbox/checkbox-icon.tsx"],"sourcesContent":["import type { CheckboxRootProps } from '@ark-ui/react'\nimport { type CheckboxVariantProps } from '@cerberus/styled-system/recipes'\nimport { Show } from '../Show'\nimport { Text } from '../Text'\nimport { CheckboxParts } from './parts'\nimport { CheckboxIcon } from './checkbox-icon'\n\n/**\n * This module contains the Checkbox component.\n * @module\n */\n\nexport type CheckboxProps = CheckboxVariantProps & CheckboxRootProps\n\n/**\n * Checkbox component is an abstraction of the primitives that displays a\n * controlled checkbox with a label.\n * @description [Cerberus Docs] https://cerberus.digitalu.design/react/checkbox\n * @description [Ark Docs] https://ark-ui.com/docs/components/checkbox\n */\nexport function Checkbox(props: CheckboxProps) {\n const { size, children, ...rootProps } = props\n\n return (\n <CheckboxParts.Root {...rootProps}>\n <CheckboxParts.Control size={size}>\n <CheckboxIcon indeterminate={rootProps.checked === 'indeterminate'} />\n </CheckboxParts.Control>\n\n <CheckboxParts.Label size={size}>\n {children}\n <Show when={props.required}>\n <Text as=\"span\" data-part=\"required-indicator\">\n (required)\n </Text>\n </Show>\n </CheckboxParts.Label>\n\n <CheckboxParts.HiddenInput />\n </CheckboxParts.Root>\n )\n}\n","'use client'\n\nimport { useMemo, type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: 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(props: PropsWithChildren<ShowProps>): ReactNode {\n const { when, children, fallback } = props\n const condition = useMemo(() => when ?? false, [when])\n\n return useMemo(() => {\n if (condition) return children\n return fallback ?? null\n }, [condition, children, fallback])\n}\n","import {\n Em,\n H1,\n H2,\n H3,\n H4,\n H5,\n H6,\n P,\n Small,\n Span,\n Strong,\n type PProps,\n} from '@cerberus/styled-system/jsx'\nimport { type HTMLAttributes, type PropsWithChildren } from 'react'\n\n/**\n * This module exports a component for rendering text utilizing the styled-system JSX utility.\n * @module @cerberus/react/Text\n */\n\nexport type Headings = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'\nexport type TextElements = 'p' | 'strong' | 'em' | 'small' | 'span'\n\n// For some reason we have to use the HTMLParagraphElement type here\n// or else TS will fail for non-style props like 'id' or 'className'\nexport interface TextProps\n extends PProps,\n HTMLAttributes<HTMLParagraphElement> {\n /**\n * The element to render as. Defaults to 'p'.\n */\n as?: TextElements | Headings\n}\n\n/**\n * A component for rendering text utilizing the styled-system JSX utility.\n * @definition [Text docs](https://cerberus.digitalu.design/react/text)\n * @example\n * ```tsx\n * <Text as=\"h1\" color=\"page.text.100\" textStyle={{\n * base: 'heading-md',\n * md: 'heading-lg',\n * }}>\n * Hello, world!\n * </Text>\n */\nexport function Text(props: PropsWithChildren<TextProps>) {\n const { as = 'p', ...pandaJSXProps } = props\n switch (as) {\n case 'h1':\n return <H1 {...pandaJSXProps} />\n case 'h2':\n return <H2 {...pandaJSXProps} />\n case 'h3':\n return <H3 {...pandaJSXProps} />\n case 'h4':\n return <H4 {...pandaJSXProps} />\n case 'h5':\n return <H5 {...pandaJSXProps} />\n case 'h6':\n return <H6 {...pandaJSXProps} />\n case 'strong':\n return <Strong {...pandaJSXProps} />\n case 'em':\n return <Em {...pandaJSXProps} />\n case 'small':\n return <Small {...pandaJSXProps} />\n case 'span':\n return <Span {...pandaJSXProps} />\n default:\n return <P {...pandaJSXProps} />\n }\n}\n","import {\n Checkbox,\n type CheckboxControlProps,\n type CheckboxGroupProps,\n type CheckboxIndicatorProps,\n type CheckboxLabelProps,\n type CheckboxRootProps,\n} from '@ark-ui/react'\nimport { cx } from '@cerberus/styled-system/css'\nimport {\n checkbox,\n type CheckboxVariantProps,\n} from '@cerberus/styled-system/recipes'\n\n/**\n * This module contains the Checkbox primitives.\n * @module 'react/checkbox'\n */\n\n/**\n * Checkbox Root component used to provide the context to all other checkbox\n * primitives.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport function CheckboxRoot(props: CheckboxRootProps) {\n const styles = checkbox()\n return (\n <Checkbox.Root {...props} className={cx(styles.root, props.className)} />\n )\n}\n\n/**\n * Checkbox Label component used to display the label of the checkbox.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport function CheckboxLabel(\n props: CheckboxLabelProps & CheckboxVariantProps,\n) {\n const { size, ...labelProps } = props\n const styles = checkbox({ size })\n return (\n <Checkbox.Label\n {...labelProps}\n className={cx(styles.label, labelProps.className)}\n />\n )\n}\n\n/**\n * Checkbox Control component used to display the control of the checkbox.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport function CheckboxControl(\n props: CheckboxControlProps & CheckboxVariantProps,\n) {\n const { size, ...controlProps } = props\n const styles = checkbox({ size })\n return (\n <Checkbox.Control\n {...controlProps}\n className={cx(styles.control, controlProps.className)}\n />\n )\n}\n\n/**\n * Checkbox Indicator component used to display the indicator of the checkbox.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport function CheckboxIndicator(props: CheckboxIndicatorProps) {\n const styles = checkbox()\n return (\n <Checkbox.Indicator\n {...props}\n className={cx(styles.indicator, props.className)}\n />\n )\n}\n\n/**\n * Checkbox HiddenInput component used to provide the native checkbox input.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport function CheckboxHiddenInput(props: CheckboxControlProps) {\n return <Checkbox.HiddenInput {...props} />\n}\n\n/**\n * Checkbox Group is used to group checkboxes together in a consistently styled\n * way.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport function CheckboxGroup(props: CheckboxGroupProps) {\n const styles = checkbox()\n return (\n <Checkbox.Group {...props} className={cx(styles.group, props.className)} />\n )\n}\n","import type { ElementType } from 'react'\nimport {\n CheckboxRoot,\n CheckboxLabel,\n CheckboxControl,\n CheckboxIndicator,\n CheckboxHiddenInput,\n CheckboxGroup,\n} from './primitives'\n\n/**\n * This module contains the parts of the Field component.\n * @module 'field/parts'\n */\n\ninterface CheckboxPartsValue {\n /**\n * The container of the field.\n */\n Root: ElementType\n /**\n * The label of the field.\n */\n Label: ElementType\n /**\n * The control of the field.\n */\n Control: ElementType\n /**\n * The indicator of the field.\n */\n Indicator: ElementType\n /**\n * The hidden input of the field.\n */\n HiddenInput: ElementType\n /**\n * The checkbox group component.\n */\n Group: ElementType\n}\n\n/**\n * An Object containing the parts of the Checkbox component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the CheckboxParts object and\n * the entire family of components vs. only what you use.\n */\nexport const CheckboxParts: CheckboxPartsValue = {\n Root: CheckboxRoot,\n Label: CheckboxLabel,\n Control: CheckboxControl,\n Indicator: CheckboxIndicator,\n HiddenInput: CheckboxHiddenInput,\n Group: CheckboxGroup,\n}\n","'use client'\n\nimport { createContext, useContext, type PropsWithChildren } from 'react'\nimport type { SystemConfig } from '../config'\n\n/**\n * This module contains the Cerberus configuration context and helpers.\n * @module context/cerberus\n */\n\ntype CerberusContextValue = SystemConfig\n\nconst CerberusContext = createContext<CerberusContextValue | null>(null)\n\ninterface CerberusProviderProps {\n config: SystemConfig\n}\n\n/**\n * Cerberus configuration provider.\n * @param props.config The Cerberus configuration created with\n * `makeSystemConfig` helper.\n */\nexport function CerberusProvider(\n props: PropsWithChildren<CerberusProviderProps>,\n) {\n return (\n <CerberusContext.Provider value={props.config}>\n {props.children}\n </CerberusContext.Provider>\n )\n}\n\n/**\n * Returns the Cerberus configuration context.\n * @returns The Cerberus configuration context.\n */\nexport function useCerberusContext() {\n const context = useContext(CerberusContext)\n if (!context) {\n throw new Error('useCerberus must be used within a CerberusProvider')\n }\n return context\n}\n","'use client'\n\nimport { useCerberusContext } from '../../context/cerberus'\nimport { CheckboxParts } from './parts'\nimport { Show } from '../Show'\n\n/**\n * This module contains the Checkbox Icon component.\n * @module\n */\n\ninterface CheckboxIconProps {\n indeterminate?: boolean\n}\n\n/**\n * Checkbox component\n * @definition [ARIA Target Size](https://www.w3.org/WAI/WCAG21/Understanding/target-size.html#:~:text=Understanding%20SC%202.5.,%3ATarget%20Size%20(Level%20AAA)&text=The%20size%20of%20the%20target,Equivalent)\n * @definition [ARIA Forms](https://www.a11yproject.com/checklist/#forms)\n * @see https://cerberus.digitalu.design/react/checkbox\n * @example\n * ```tsx\n * <Field>\n * <Checkbox id=\"legal\" checked={checked.legal} onChange={handleChange} />\n * </Field>\n * ```\n */\nexport function CheckboxIcon(props: CheckboxIconProps) {\n const { icons } = useCerberusContext()\n const { checkbox: CheckIcon, indeterminate: IndeterminateIcon } = icons\n\n return (\n <CheckboxParts.Indicator indeterminate={props.indeterminate}>\n <Show when={props.indeterminate} fallback={<CheckIcon />}>\n <IndeterminateIcon />\n </Show>\n </CheckboxParts.Indicator>\n )\n}\n"],"mappings":"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","names":["Checkbox","import_react","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","Checkbox"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/checkbox/checkbox.tsx","../../../../src/components/Show.tsx","../../../../src/components/Text.tsx","../../../../src/components/checkbox/primitives.tsx","../../../../src/components/checkbox/parts.ts","../../../../src/context/cerberus.tsx","../../../../src/components/checkbox/checkbox-icon.tsx"],"sourcesContent":["import type { CheckboxRootProps } from '@ark-ui/react'\nimport { type CheckboxVariantProps } from '@cerberus/styled-system/recipes'\nimport { Show } from '../Show'\nimport { Text } from '../Text'\nimport { CheckboxParts } from './parts'\nimport { CheckboxIcon } from './checkbox-icon'\n\n/**\n * This module contains the Checkbox component.\n * @module\n */\n\nexport type CheckboxProps = CheckboxVariantProps & CheckboxRootProps\n\n/**\n * Checkbox component is an abstraction of the primitives that displays a\n * controlled checkbox with a label.\n * @description [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @description [Ark Docs](https://ark-ui.com/docs/components/checkbox)\n */\nexport function Checkbox(props: CheckboxProps) {\n const { size, children, ...rootProps } = props\n\n return (\n <CheckboxParts.Root {...rootProps}>\n <CheckboxParts.Control size={size}>\n <CheckboxIcon indeterminate={rootProps.checked === 'indeterminate'} />\n </CheckboxParts.Control>\n\n <CheckboxParts.Label size={size}>\n {children}\n <Show when={props.required}>\n <Text as=\"span\" data-part=\"required-indicator\">\n (required)\n </Text>\n </Show>\n </CheckboxParts.Label>\n\n <CheckboxParts.HiddenInput />\n </CheckboxParts.Root>\n )\n}\n","'use client'\n\nimport { useMemo, type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: 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(props: PropsWithChildren<ShowProps>): ReactNode {\n const { when, children, fallback } = props\n const condition = useMemo(() => when ?? false, [when])\n\n return useMemo(() => {\n if (condition) return children\n return fallback ?? null\n }, [condition, children, fallback])\n}\n","import {\n Em,\n H1,\n H2,\n H3,\n H4,\n H5,\n H6,\n P,\n Small,\n Span,\n Strong,\n type PProps,\n} from '@cerberus/styled-system/jsx'\nimport { type HTMLAttributes, type PropsWithChildren } from 'react'\n\n/**\n * This module exports a component for rendering text utilizing the styled-system JSX utility.\n * @module @cerberus/react/Text\n */\n\nexport type Headings = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'\nexport type TextElements = 'p' | 'strong' | 'em' | 'small' | 'span'\n\n// For some reason we have to use the HTMLParagraphElement type here\n// or else TS will fail for non-style props like 'id' or 'className'\nexport interface TextProps\n extends PProps,\n HTMLAttributes<HTMLParagraphElement> {\n /**\n * The element to render as. Defaults to 'p'.\n */\n as?: TextElements | Headings\n}\n\n/**\n * A component for rendering text utilizing the styled-system JSX utility.\n * @definition [Text docs](https://cerberus.digitalu.design/react/text)\n * @example\n * ```tsx\n * <Text as=\"h1\" color=\"page.text.100\" textStyle={{\n * base: 'heading-md',\n * md: 'heading-lg',\n * }}>\n * Hello, world!\n * </Text>\n */\nexport function Text(props: PropsWithChildren<TextProps>) {\n const { as = 'p', ...pandaJSXProps } = props\n switch (as) {\n case 'h1':\n return <H1 {...pandaJSXProps} />\n case 'h2':\n return <H2 {...pandaJSXProps} />\n case 'h3':\n return <H3 {...pandaJSXProps} />\n case 'h4':\n return <H4 {...pandaJSXProps} />\n case 'h5':\n return <H5 {...pandaJSXProps} />\n case 'h6':\n return <H6 {...pandaJSXProps} />\n case 'strong':\n return <Strong {...pandaJSXProps} />\n case 'em':\n return <Em {...pandaJSXProps} />\n case 'small':\n return <Small {...pandaJSXProps} />\n case 'span':\n return <Span {...pandaJSXProps} />\n default:\n return <P {...pandaJSXProps} />\n }\n}\n","import {\n Checkbox,\n type CheckboxControlProps,\n type CheckboxGroupProps,\n type CheckboxIndicatorProps,\n type CheckboxLabelProps,\n type CheckboxRootProps,\n} from '@ark-ui/react'\nimport { cx } from '@cerberus/styled-system/css'\nimport {\n checkbox,\n type CheckboxVariantProps,\n} from '@cerberus/styled-system/recipes'\n\n/**\n * This module contains the Checkbox primitives.\n * @module 'react/checkbox'\n */\n\n/**\n * Checkbox Root component used to provide the context to all other checkbox\n * primitives.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport function CheckboxRoot(props: CheckboxRootProps) {\n const styles = checkbox()\n return (\n <Checkbox.Root {...props} className={cx(styles.root, props.className)} />\n )\n}\n\n/**\n * Checkbox Label component used to display the label of the checkbox.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport function CheckboxLabel(\n props: CheckboxLabelProps & CheckboxVariantProps,\n) {\n const { size, ...labelProps } = props\n const styles = checkbox({ size })\n return (\n <Checkbox.Label\n {...labelProps}\n className={cx(styles.label, labelProps.className)}\n />\n )\n}\n\n/**\n * Checkbox Control component used to display the control of the checkbox.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport function CheckboxControl(\n props: CheckboxControlProps & CheckboxVariantProps,\n) {\n const { size, ...controlProps } = props\n const styles = checkbox({ size })\n return (\n <Checkbox.Control\n {...controlProps}\n className={cx(styles.control, controlProps.className)}\n />\n )\n}\n\n/**\n * Checkbox Indicator component used to display the indicator of the checkbox.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport function CheckboxIndicator(props: CheckboxIndicatorProps) {\n const styles = checkbox()\n return (\n <Checkbox.Indicator\n {...props}\n className={cx(styles.indicator, props.className)}\n />\n )\n}\n\n/**\n * Checkbox HiddenInput component used to provide the native checkbox input.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport function CheckboxHiddenInput(props: CheckboxControlProps) {\n return <Checkbox.HiddenInput {...props} />\n}\n\n/**\n * Checkbox Group is used to group checkboxes together in a consistently styled\n * way.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport function CheckboxGroup(props: CheckboxGroupProps) {\n const styles = checkbox()\n return (\n <Checkbox.Group {...props} className={cx(styles.group, props.className)} />\n )\n}\n","import type { ElementType } from 'react'\nimport {\n CheckboxRoot,\n CheckboxLabel,\n CheckboxControl,\n CheckboxIndicator,\n CheckboxHiddenInput,\n CheckboxGroup,\n} from './primitives'\n\n/**\n * This module contains the parts of the Field component.\n * @module 'field/parts'\n */\n\ninterface CheckboxPartsValue {\n /**\n * The container of the field.\n */\n Root: ElementType\n /**\n * The label of the field.\n */\n Label: ElementType\n /**\n * The control of the field.\n */\n Control: ElementType\n /**\n * The indicator of the field.\n */\n Indicator: ElementType\n /**\n * The hidden input of the field.\n */\n HiddenInput: ElementType\n /**\n * The checkbox group component.\n */\n Group: ElementType\n}\n\n/**\n * An Object containing the parts of the Checkbox component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the CheckboxParts object and\n * the entire family of components vs. only what you use.\n */\nexport const CheckboxParts: CheckboxPartsValue = {\n Root: CheckboxRoot,\n Label: CheckboxLabel,\n Control: CheckboxControl,\n Indicator: CheckboxIndicator,\n HiddenInput: CheckboxHiddenInput,\n Group: CheckboxGroup,\n}\n","'use client'\n\nimport { createContext, useContext, type PropsWithChildren } from 'react'\nimport type { SystemConfig } from '../config'\n\n/**\n * This module contains the Cerberus configuration context and helpers.\n * @module context/cerberus\n */\n\ntype CerberusContextValue = SystemConfig\n\nconst CerberusContext = createContext<CerberusContextValue | null>(null)\n\ninterface CerberusProviderProps {\n config: SystemConfig\n}\n\n/**\n * Cerberus configuration provider.\n * @param props.config The Cerberus configuration created with\n * `makeSystemConfig` helper.\n */\nexport function CerberusProvider(\n props: PropsWithChildren<CerberusProviderProps>,\n) {\n return (\n <CerberusContext.Provider value={props.config}>\n {props.children}\n </CerberusContext.Provider>\n )\n}\n\n/**\n * Returns the Cerberus configuration context.\n * @returns The Cerberus configuration context.\n */\nexport function useCerberusContext() {\n const context = useContext(CerberusContext)\n if (!context) {\n throw new Error('useCerberus must be used within a CerberusProvider')\n }\n return context\n}\n","'use client'\n\nimport { useCerberusContext } from '../../context/cerberus'\nimport { CheckboxParts } from './parts'\nimport { Show } from '../Show'\n\n/**\n * This module contains the Checkbox Icon component.\n * @module\n */\n\ninterface CheckboxIconProps {\n indeterminate?: boolean\n}\n\n/**\n * Checkbox component\n * @definition [ARIA Target Size](https://www.w3.org/WAI/WCAG21/Understanding/target-size.html#:~:text=Understanding%20SC%202.5.,%3ATarget%20Size%20(Level%20AAA)&text=The%20size%20of%20the%20target,Equivalent)\n * @definition [ARIA Forms](https://www.a11yproject.com/checklist/#forms)\n * @see https://cerberus.digitalu.design/react/checkbox\n * @example\n * ```tsx\n * <Field>\n * <Checkbox id=\"legal\" checked={checked.legal} onChange={handleChange} />\n * </Field>\n * ```\n */\nexport function CheckboxIcon(props: CheckboxIconProps) {\n const { icons } = useCerberusContext()\n const { checkbox: CheckIcon, indeterminate: IndeterminateIcon } = icons\n\n return (\n <CheckboxParts.Indicator indeterminate={props.indeterminate}>\n <Show when={props.indeterminate} fallback={<CheckIcon />}>\n <IndeterminateIcon />\n </Show>\n </CheckboxParts.Indicator>\n )\n}\n"],"mappings":"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","names":["Checkbox","import_react","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","Checkbox"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/checkbox/index.ts","../../../../src/components/Show.tsx","../../../../src/components/Text.tsx","../../../../src/components/checkbox/primitives.tsx","../../../../src/components/checkbox/parts.ts","../../../../src/context/cerberus.tsx","../../../../src/components/checkbox/checkbox-icon.tsx","../../../../src/components/checkbox/checkbox.tsx"],"sourcesContent":["export * from './checkbox'\nexport * from './parts'\nexport * from './primitives'\n","'use client'\n\nimport { useMemo, type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: 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(props: PropsWithChildren<ShowProps>): ReactNode {\n const { when, children, fallback } = props\n const condition = useMemo(() => when ?? false, [when])\n\n return useMemo(() => {\n if (condition) return children\n return fallback ?? null\n }, [condition, children, fallback])\n}\n","import {\n Em,\n H1,\n H2,\n H3,\n H4,\n H5,\n H6,\n P,\n Small,\n Span,\n Strong,\n type PProps,\n} from '@cerberus/styled-system/jsx'\nimport { type HTMLAttributes, type PropsWithChildren } from 'react'\n\n/**\n * This module exports a component for rendering text utilizing the styled-system JSX utility.\n * @module @cerberus/react/Text\n */\n\nexport type Headings = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'\nexport type TextElements = 'p' | 'strong' | 'em' | 'small' | 'span'\n\n// For some reason we have to use the HTMLParagraphElement type here\n// or else TS will fail for non-style props like 'id' or 'className'\nexport interface TextProps\n extends PProps,\n HTMLAttributes<HTMLParagraphElement> {\n /**\n * The element to render as. Defaults to 'p'.\n */\n as?: TextElements | Headings\n}\n\n/**\n * A component for rendering text utilizing the styled-system JSX utility.\n * @definition [Text docs](https://cerberus.digitalu.design/react/text)\n * @example\n * ```tsx\n * <Text as=\"h1\" color=\"page.text.100\" textStyle={{\n * base: 'heading-md',\n * md: 'heading-lg',\n * }}>\n * Hello, world!\n * </Text>\n */\nexport function Text(props: PropsWithChildren<TextProps>) {\n const { as = 'p', ...pandaJSXProps } = props\n switch (as) {\n case 'h1':\n return <H1 {...pandaJSXProps} />\n case 'h2':\n return <H2 {...pandaJSXProps} />\n case 'h3':\n return <H3 {...pandaJSXProps} />\n case 'h4':\n return <H4 {...pandaJSXProps} />\n case 'h5':\n return <H5 {...pandaJSXProps} />\n case 'h6':\n return <H6 {...pandaJSXProps} />\n case 'strong':\n return <Strong {...pandaJSXProps} />\n case 'em':\n return <Em {...pandaJSXProps} />\n case 'small':\n return <Small {...pandaJSXProps} />\n case 'span':\n return <Span {...pandaJSXProps} />\n default:\n return <P {...pandaJSXProps} />\n }\n}\n","import {\n Checkbox,\n type CheckboxControlProps,\n type CheckboxGroupProps,\n type CheckboxIndicatorProps,\n type CheckboxLabelProps,\n type CheckboxRootProps,\n} from '@ark-ui/react'\nimport { cx } from '@cerberus/styled-system/css'\nimport {\n checkbox,\n type CheckboxVariantProps,\n} from '@cerberus/styled-system/recipes'\n\n/**\n * This module contains the Checkbox primitives.\n * @module 'react/checkbox'\n */\n\n/**\n * Checkbox Root component used to provide the context to all other checkbox\n * primitives.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport function CheckboxRoot(props: CheckboxRootProps) {\n const styles = checkbox()\n return (\n <Checkbox.Root {...props} className={cx(styles.root, props.className)} />\n )\n}\n\n/**\n * Checkbox Label component used to display the label of the checkbox.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport function CheckboxLabel(\n props: CheckboxLabelProps & CheckboxVariantProps,\n) {\n const { size, ...labelProps } = props\n const styles = checkbox({ size })\n return (\n <Checkbox.Label\n {...labelProps}\n className={cx(styles.label, labelProps.className)}\n />\n )\n}\n\n/**\n * Checkbox Control component used to display the control of the checkbox.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport function CheckboxControl(\n props: CheckboxControlProps & CheckboxVariantProps,\n) {\n const { size, ...controlProps } = props\n const styles = checkbox({ size })\n return (\n <Checkbox.Control\n {...controlProps}\n className={cx(styles.control, controlProps.className)}\n />\n )\n}\n\n/**\n * Checkbox Indicator component used to display the indicator of the checkbox.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport function CheckboxIndicator(props: CheckboxIndicatorProps) {\n const styles = checkbox()\n return (\n <Checkbox.Indicator\n {...props}\n className={cx(styles.indicator, props.className)}\n />\n )\n}\n\n/**\n * Checkbox HiddenInput component used to provide the native checkbox input.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport function CheckboxHiddenInput(props: CheckboxControlProps) {\n return <Checkbox.HiddenInput {...props} />\n}\n\n/**\n * Checkbox Group is used to group checkboxes together in a consistently styled\n * way.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport function CheckboxGroup(props: CheckboxGroupProps) {\n const styles = checkbox()\n return (\n <Checkbox.Group {...props} className={cx(styles.group, props.className)} />\n )\n}\n","import type { ElementType } from 'react'\nimport {\n CheckboxRoot,\n CheckboxLabel,\n CheckboxControl,\n CheckboxIndicator,\n CheckboxHiddenInput,\n CheckboxGroup,\n} from './primitives'\n\n/**\n * This module contains the parts of the Field component.\n * @module 'field/parts'\n */\n\ninterface CheckboxPartsValue {\n /**\n * The container of the field.\n */\n Root: ElementType\n /**\n * The label of the field.\n */\n Label: ElementType\n /**\n * The control of the field.\n */\n Control: ElementType\n /**\n * The indicator of the field.\n */\n Indicator: ElementType\n /**\n * The hidden input of the field.\n */\n HiddenInput: ElementType\n /**\n * The checkbox group component.\n */\n Group: ElementType\n}\n\n/**\n * An Object containing the parts of the Checkbox component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the CheckboxParts object and\n * the entire family of components vs. only what you use.\n */\nexport const CheckboxParts: CheckboxPartsValue = {\n Root: CheckboxRoot,\n Label: CheckboxLabel,\n Control: CheckboxControl,\n Indicator: CheckboxIndicator,\n HiddenInput: CheckboxHiddenInput,\n Group: CheckboxGroup,\n}\n","'use client'\n\nimport { createContext, useContext, type PropsWithChildren } from 'react'\nimport type { SystemConfig } from '../config'\n\n/**\n * This module contains the Cerberus configuration context and helpers.\n * @module context/cerberus\n */\n\ntype CerberusContextValue = SystemConfig\n\nconst CerberusContext = createContext<CerberusContextValue | null>(null)\n\ninterface CerberusProviderProps {\n config: SystemConfig\n}\n\n/**\n * Cerberus configuration provider.\n * @param props.config The Cerberus configuration created with\n * `makeSystemConfig` helper.\n */\nexport function CerberusProvider(\n props: PropsWithChildren<CerberusProviderProps>,\n) {\n return (\n <CerberusContext.Provider value={props.config}>\n {props.children}\n </CerberusContext.Provider>\n )\n}\n\n/**\n * Returns the Cerberus configuration context.\n * @returns The Cerberus configuration context.\n */\nexport function useCerberusContext() {\n const context = useContext(CerberusContext)\n if (!context) {\n throw new Error('useCerberus must be used within a CerberusProvider')\n }\n return context\n}\n","'use client'\n\nimport { useCerberusContext } from '../../context/cerberus'\nimport { CheckboxParts } from './parts'\nimport { Show } from '../Show'\n\n/**\n * This module contains the Checkbox Icon component.\n * @module\n */\n\ninterface CheckboxIconProps {\n indeterminate?: boolean\n}\n\n/**\n * Checkbox component\n * @definition [ARIA Target Size](https://www.w3.org/WAI/WCAG21/Understanding/target-size.html#:~:text=Understanding%20SC%202.5.,%3ATarget%20Size%20(Level%20AAA)&text=The%20size%20of%20the%20target,Equivalent)\n * @definition [ARIA Forms](https://www.a11yproject.com/checklist/#forms)\n * @see https://cerberus.digitalu.design/react/checkbox\n * @example\n * ```tsx\n * <Field>\n * <Checkbox id=\"legal\" checked={checked.legal} onChange={handleChange} />\n * </Field>\n * ```\n */\nexport function CheckboxIcon(props: CheckboxIconProps) {\n const { icons } = useCerberusContext()\n const { checkbox: CheckIcon, indeterminate: IndeterminateIcon } = icons\n\n return (\n <CheckboxParts.Indicator indeterminate={props.indeterminate}>\n <Show when={props.indeterminate} fallback={<CheckIcon />}>\n <IndeterminateIcon />\n </Show>\n </CheckboxParts.Indicator>\n )\n}\n","import type { CheckboxRootProps } from '@ark-ui/react'\nimport { type CheckboxVariantProps } from '@cerberus/styled-system/recipes'\nimport { Show } from '../Show'\nimport { Text } from '../Text'\nimport { CheckboxParts } from './parts'\nimport { CheckboxIcon } from './checkbox-icon'\n\n/**\n * This module contains the Checkbox component.\n * @module\n */\n\nexport type CheckboxProps = CheckboxVariantProps & CheckboxRootProps\n\n/**\n * Checkbox component is an abstraction of the primitives that displays a\n * controlled checkbox with a label.\n * @description [Cerberus Docs] https://cerberus.digitalu.design/react/checkbox\n * @description [Ark Docs] https://ark-ui.com/docs/components/checkbox\n */\nexport function Checkbox(props: CheckboxProps) {\n const { size, children, ...rootProps } = props\n\n return (\n <CheckboxParts.Root {...rootProps}>\n <CheckboxParts.Control size={size}>\n <CheckboxIcon indeterminate={rootProps.checked === 'indeterminate'} />\n </CheckboxParts.Control>\n\n <CheckboxParts.Label size={size}>\n {children}\n <Show when={props.required}>\n <Text as=\"span\" data-part=\"required-indicator\">\n (required)\n </Text>\n </Show>\n </CheckboxParts.Label>\n\n <CheckboxParts.HiddenInput />\n </CheckboxParts.Root>\n )\n}\n"],"mappings":"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","names":["Checkbox","import_react","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","Checkbox"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/checkbox/index.ts","../../../../src/components/Show.tsx","../../../../src/components/Text.tsx","../../../../src/components/checkbox/primitives.tsx","../../../../src/components/checkbox/parts.ts","../../../../src/context/cerberus.tsx","../../../../src/components/checkbox/checkbox-icon.tsx","../../../../src/components/checkbox/checkbox.tsx"],"sourcesContent":["export * from './checkbox'\nexport * from './parts'\nexport * from './primitives'\n","'use client'\n\nimport { useMemo, type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: 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(props: PropsWithChildren<ShowProps>): ReactNode {\n const { when, children, fallback } = props\n const condition = useMemo(() => when ?? false, [when])\n\n return useMemo(() => {\n if (condition) return children\n return fallback ?? null\n }, [condition, children, fallback])\n}\n","import {\n Em,\n H1,\n H2,\n H3,\n H4,\n H5,\n H6,\n P,\n Small,\n Span,\n Strong,\n type PProps,\n} from '@cerberus/styled-system/jsx'\nimport { type HTMLAttributes, type PropsWithChildren } from 'react'\n\n/**\n * This module exports a component for rendering text utilizing the styled-system JSX utility.\n * @module @cerberus/react/Text\n */\n\nexport type Headings = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'\nexport type TextElements = 'p' | 'strong' | 'em' | 'small' | 'span'\n\n// For some reason we have to use the HTMLParagraphElement type here\n// or else TS will fail for non-style props like 'id' or 'className'\nexport interface TextProps\n extends PProps,\n HTMLAttributes<HTMLParagraphElement> {\n /**\n * The element to render as. Defaults to 'p'.\n */\n as?: TextElements | Headings\n}\n\n/**\n * A component for rendering text utilizing the styled-system JSX utility.\n * @definition [Text docs](https://cerberus.digitalu.design/react/text)\n * @example\n * ```tsx\n * <Text as=\"h1\" color=\"page.text.100\" textStyle={{\n * base: 'heading-md',\n * md: 'heading-lg',\n * }}>\n * Hello, world!\n * </Text>\n */\nexport function Text(props: PropsWithChildren<TextProps>) {\n const { as = 'p', ...pandaJSXProps } = props\n switch (as) {\n case 'h1':\n return <H1 {...pandaJSXProps} />\n case 'h2':\n return <H2 {...pandaJSXProps} />\n case 'h3':\n return <H3 {...pandaJSXProps} />\n case 'h4':\n return <H4 {...pandaJSXProps} />\n case 'h5':\n return <H5 {...pandaJSXProps} />\n case 'h6':\n return <H6 {...pandaJSXProps} />\n case 'strong':\n return <Strong {...pandaJSXProps} />\n case 'em':\n return <Em {...pandaJSXProps} />\n case 'small':\n return <Small {...pandaJSXProps} />\n case 'span':\n return <Span {...pandaJSXProps} />\n default:\n return <P {...pandaJSXProps} />\n }\n}\n","import {\n Checkbox,\n type CheckboxControlProps,\n type CheckboxGroupProps,\n type CheckboxIndicatorProps,\n type CheckboxLabelProps,\n type CheckboxRootProps,\n} from '@ark-ui/react'\nimport { cx } from '@cerberus/styled-system/css'\nimport {\n checkbox,\n type CheckboxVariantProps,\n} from '@cerberus/styled-system/recipes'\n\n/**\n * This module contains the Checkbox primitives.\n * @module 'react/checkbox'\n */\n\n/**\n * Checkbox Root component used to provide the context to all other checkbox\n * primitives.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport function CheckboxRoot(props: CheckboxRootProps) {\n const styles = checkbox()\n return (\n <Checkbox.Root {...props} className={cx(styles.root, props.className)} />\n )\n}\n\n/**\n * Checkbox Label component used to display the label of the checkbox.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport function CheckboxLabel(\n props: CheckboxLabelProps & CheckboxVariantProps,\n) {\n const { size, ...labelProps } = props\n const styles = checkbox({ size })\n return (\n <Checkbox.Label\n {...labelProps}\n className={cx(styles.label, labelProps.className)}\n />\n )\n}\n\n/**\n * Checkbox Control component used to display the control of the checkbox.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport function CheckboxControl(\n props: CheckboxControlProps & CheckboxVariantProps,\n) {\n const { size, ...controlProps } = props\n const styles = checkbox({ size })\n return (\n <Checkbox.Control\n {...controlProps}\n className={cx(styles.control, controlProps.className)}\n />\n )\n}\n\n/**\n * Checkbox Indicator component used to display the indicator of the checkbox.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport function CheckboxIndicator(props: CheckboxIndicatorProps) {\n const styles = checkbox()\n return (\n <Checkbox.Indicator\n {...props}\n className={cx(styles.indicator, props.className)}\n />\n )\n}\n\n/**\n * Checkbox HiddenInput component used to provide the native checkbox input.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport function CheckboxHiddenInput(props: CheckboxControlProps) {\n return <Checkbox.HiddenInput {...props} />\n}\n\n/**\n * Checkbox Group is used to group checkboxes together in a consistently styled\n * way.\n * @definition [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @definition [Primitive Docs](https://ark-ui.com/react/docs/components/checkbox)\n */\nexport function CheckboxGroup(props: CheckboxGroupProps) {\n const styles = checkbox()\n return (\n <Checkbox.Group {...props} className={cx(styles.group, props.className)} />\n )\n}\n","import type { ElementType } from 'react'\nimport {\n CheckboxRoot,\n CheckboxLabel,\n CheckboxControl,\n CheckboxIndicator,\n CheckboxHiddenInput,\n CheckboxGroup,\n} from './primitives'\n\n/**\n * This module contains the parts of the Field component.\n * @module 'field/parts'\n */\n\ninterface CheckboxPartsValue {\n /**\n * The container of the field.\n */\n Root: ElementType\n /**\n * The label of the field.\n */\n Label: ElementType\n /**\n * The control of the field.\n */\n Control: ElementType\n /**\n * The indicator of the field.\n */\n Indicator: ElementType\n /**\n * The hidden input of the field.\n */\n HiddenInput: ElementType\n /**\n * The checkbox group component.\n */\n Group: ElementType\n}\n\n/**\n * An Object containing the parts of the Checkbox component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the CheckboxParts object and\n * the entire family of components vs. only what you use.\n */\nexport const CheckboxParts: CheckboxPartsValue = {\n Root: CheckboxRoot,\n Label: CheckboxLabel,\n Control: CheckboxControl,\n Indicator: CheckboxIndicator,\n HiddenInput: CheckboxHiddenInput,\n Group: CheckboxGroup,\n}\n","'use client'\n\nimport { createContext, useContext, type PropsWithChildren } from 'react'\nimport type { SystemConfig } from '../config'\n\n/**\n * This module contains the Cerberus configuration context and helpers.\n * @module context/cerberus\n */\n\ntype CerberusContextValue = SystemConfig\n\nconst CerberusContext = createContext<CerberusContextValue | null>(null)\n\ninterface CerberusProviderProps {\n config: SystemConfig\n}\n\n/**\n * Cerberus configuration provider.\n * @param props.config The Cerberus configuration created with\n * `makeSystemConfig` helper.\n */\nexport function CerberusProvider(\n props: PropsWithChildren<CerberusProviderProps>,\n) {\n return (\n <CerberusContext.Provider value={props.config}>\n {props.children}\n </CerberusContext.Provider>\n )\n}\n\n/**\n * Returns the Cerberus configuration context.\n * @returns The Cerberus configuration context.\n */\nexport function useCerberusContext() {\n const context = useContext(CerberusContext)\n if (!context) {\n throw new Error('useCerberus must be used within a CerberusProvider')\n }\n return context\n}\n","'use client'\n\nimport { useCerberusContext } from '../../context/cerberus'\nimport { CheckboxParts } from './parts'\nimport { Show } from '../Show'\n\n/**\n * This module contains the Checkbox Icon component.\n * @module\n */\n\ninterface CheckboxIconProps {\n indeterminate?: boolean\n}\n\n/**\n * Checkbox component\n * @definition [ARIA Target Size](https://www.w3.org/WAI/WCAG21/Understanding/target-size.html#:~:text=Understanding%20SC%202.5.,%3ATarget%20Size%20(Level%20AAA)&text=The%20size%20of%20the%20target,Equivalent)\n * @definition [ARIA Forms](https://www.a11yproject.com/checklist/#forms)\n * @see https://cerberus.digitalu.design/react/checkbox\n * @example\n * ```tsx\n * <Field>\n * <Checkbox id=\"legal\" checked={checked.legal} onChange={handleChange} />\n * </Field>\n * ```\n */\nexport function CheckboxIcon(props: CheckboxIconProps) {\n const { icons } = useCerberusContext()\n const { checkbox: CheckIcon, indeterminate: IndeterminateIcon } = icons\n\n return (\n <CheckboxParts.Indicator indeterminate={props.indeterminate}>\n <Show when={props.indeterminate} fallback={<CheckIcon />}>\n <IndeterminateIcon />\n </Show>\n </CheckboxParts.Indicator>\n )\n}\n","import type { CheckboxRootProps } from '@ark-ui/react'\nimport { type CheckboxVariantProps } from '@cerberus/styled-system/recipes'\nimport { Show } from '../Show'\nimport { Text } from '../Text'\nimport { CheckboxParts } from './parts'\nimport { CheckboxIcon } from './checkbox-icon'\n\n/**\n * This module contains the Checkbox component.\n * @module\n */\n\nexport type CheckboxProps = CheckboxVariantProps & CheckboxRootProps\n\n/**\n * Checkbox component is an abstraction of the primitives that displays a\n * controlled checkbox with a label.\n * @description [Cerberus Docs](https://cerberus.digitalu.design/react/checkbox)\n * @description [Ark Docs](https://ark-ui.com/docs/components/checkbox)\n */\nexport function Checkbox(props: CheckboxProps) {\n const { size, children, ...rootProps } = props\n\n return (\n <CheckboxParts.Root {...rootProps}>\n <CheckboxParts.Control size={size}>\n <CheckboxIcon indeterminate={rootProps.checked === 'indeterminate'} />\n </CheckboxParts.Control>\n\n <CheckboxParts.Label size={size}>\n {children}\n <Show when={props.required}>\n <Text as=\"span\" data-part=\"required-indicator\">\n (required)\n </Text>\n </Show>\n </CheckboxParts.Label>\n\n <CheckboxParts.HiddenInput />\n </CheckboxParts.Root>\n )\n}\n"],"mappings":"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","names":["Checkbox","import_react","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","Checkbox"]}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/components/rating/index.ts
|
|
21
|
+
var rating_exports = {};
|
|
22
|
+
__export(rating_exports, {
|
|
23
|
+
Rating: () => Rating,
|
|
24
|
+
RatingContext: () => RatingContext,
|
|
25
|
+
RatingControl: () => RatingControl,
|
|
26
|
+
RatingHiddenInput: () => RatingHiddenInput,
|
|
27
|
+
RatingItem: () => RatingItem,
|
|
28
|
+
RatingItemContext: () => RatingItemContext,
|
|
29
|
+
RatingLabel: () => RatingLabel,
|
|
30
|
+
RatingParts: () => RatingParts,
|
|
31
|
+
RatingRoot: () => RatingRoot
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(rating_exports);
|
|
34
|
+
|
|
35
|
+
// src/components/rating/primitives.tsx
|
|
36
|
+
var import_rating_group = require("@ark-ui/react/rating-group");
|
|
37
|
+
var import_css = require("@cerberus/styled-system/css");
|
|
38
|
+
var import_recipes = require("@cerberus/styled-system/recipes");
|
|
39
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
40
|
+
function RatingRoot(props) {
|
|
41
|
+
const { orientation, size, ...rootProps } = props;
|
|
42
|
+
const styles = (0, import_recipes.ratingGroup)({ orientation, size });
|
|
43
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
44
|
+
import_rating_group.RatingGroup.Root,
|
|
45
|
+
{
|
|
46
|
+
...rootProps,
|
|
47
|
+
className: (0, import_css.cx)(styles.root, rootProps.className)
|
|
48
|
+
}
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
function RatingLabel(props) {
|
|
52
|
+
const styles = (0, import_recipes.ratingGroup)();
|
|
53
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
54
|
+
import_rating_group.RatingGroup.Label,
|
|
55
|
+
{
|
|
56
|
+
...props,
|
|
57
|
+
className: (0, import_css.cx)(styles.label, props.className)
|
|
58
|
+
}
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
function RatingControl(props) {
|
|
62
|
+
const styles = (0, import_recipes.ratingGroup)();
|
|
63
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
64
|
+
import_rating_group.RatingGroup.Control,
|
|
65
|
+
{
|
|
66
|
+
...props,
|
|
67
|
+
className: (0, import_css.cx)(styles.control, props.className)
|
|
68
|
+
}
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
function RatingContext(props) {
|
|
72
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_rating_group.RatingGroup.Context, { ...props });
|
|
73
|
+
}
|
|
74
|
+
function RatingItem(props) {
|
|
75
|
+
const { palette, ...itemProps } = props;
|
|
76
|
+
const styles = (0, import_recipes.ratingGroup)({ palette });
|
|
77
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
78
|
+
import_rating_group.RatingGroup.Item,
|
|
79
|
+
{
|
|
80
|
+
...itemProps,
|
|
81
|
+
className: (0, import_css.cx)(styles.item, itemProps.className)
|
|
82
|
+
}
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
function RatingItemContext(props) {
|
|
86
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_rating_group.RatingGroup.ItemContext, { ...props });
|
|
87
|
+
}
|
|
88
|
+
function RatingHiddenInput(props) {
|
|
89
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_rating_group.RatingGroup.HiddenInput, { ...props });
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// src/components/rating/parts.tsx
|
|
93
|
+
var RatingParts = {
|
|
94
|
+
Root: RatingRoot,
|
|
95
|
+
Label: RatingLabel,
|
|
96
|
+
Control: RatingControl,
|
|
97
|
+
Context: RatingContext,
|
|
98
|
+
Item: RatingItem,
|
|
99
|
+
ItemContext: RatingItemContext,
|
|
100
|
+
HiddenInput: RatingHiddenInput
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
// src/utils/index.ts
|
|
104
|
+
function splitProps(props, ...keyGroups) {
|
|
105
|
+
const result = keyGroups.map(() => ({}));
|
|
106
|
+
const rest = {};
|
|
107
|
+
for (const key in props) {
|
|
108
|
+
let assigned = false;
|
|
109
|
+
for (let i = 0; i < keyGroups.length; i++) {
|
|
110
|
+
if (keyGroups[i].includes(key)) {
|
|
111
|
+
result[i][key] = props[key];
|
|
112
|
+
assigned = true;
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
if (!assigned) {
|
|
117
|
+
rest[key] = props[key];
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return [...result, rest];
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// src/components/Show.tsx
|
|
124
|
+
var import_react = require("react");
|
|
125
|
+
function Show(props) {
|
|
126
|
+
const { when, children, fallback } = props;
|
|
127
|
+
const condition = (0, import_react.useMemo)(() => when ?? false, [when]);
|
|
128
|
+
return (0, import_react.useMemo)(() => {
|
|
129
|
+
if (condition) return children;
|
|
130
|
+
return fallback ?? null;
|
|
131
|
+
}, [condition, children, fallback]);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// src/components/rating/rating.tsx
|
|
135
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
136
|
+
function Rating(props) {
|
|
137
|
+
const [{ label }, styleProps, rootProps] = splitProps(
|
|
138
|
+
props,
|
|
139
|
+
["label"],
|
|
140
|
+
["orientation", "palette", "size"]
|
|
141
|
+
);
|
|
142
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(RatingParts.Root, { ...styleProps, ...rootProps, children: [
|
|
143
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Show, { when: Boolean(label), children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(RatingParts.Label, { children: label }) }),
|
|
144
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(RatingParts.Control, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(RatingParts.Context, { children: (context) => context.items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
145
|
+
RatingParts.Item,
|
|
146
|
+
{
|
|
147
|
+
index: item,
|
|
148
|
+
palette: styleProps.palette,
|
|
149
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(RatingParts.ItemContext, { children: rootProps.children })
|
|
150
|
+
},
|
|
151
|
+
item
|
|
152
|
+
)) }) })
|
|
153
|
+
] });
|
|
154
|
+
}
|
|
155
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
156
|
+
0 && (module.exports = {
|
|
157
|
+
Rating,
|
|
158
|
+
RatingContext,
|
|
159
|
+
RatingControl,
|
|
160
|
+
RatingHiddenInput,
|
|
161
|
+
RatingItem,
|
|
162
|
+
RatingItemContext,
|
|
163
|
+
RatingLabel,
|
|
164
|
+
RatingParts,
|
|
165
|
+
RatingRoot
|
|
166
|
+
});
|
|
167
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/rating/index.ts","../../../../src/components/rating/primitives.tsx","../../../../src/components/rating/parts.tsx","../../../../src/utils/index.ts","../../../../src/components/Show.tsx","../../../../src/components/rating/rating.tsx"],"sourcesContent":["export * from './parts'\nexport * from './primitives'\nexport * from './rating'\n\nexport type {\n UseRatingGroupContext,\n UseRatingGroupItemContext,\n} from '@ark-ui/react/rating-group'\n","import {\n RatingGroup,\n type RatingGroupContextProps,\n type RatingGroupControlProps,\n type RatingGroupHiddenInputProps,\n type RatingGroupItemContextProps,\n type RatingGroupItemProps,\n type RatingGroupLabelProps,\n type RatingGroupRootProps,\n} from '@ark-ui/react/rating-group'\nimport { cx } from '@cerberus/styled-system/css'\nimport {\n ratingGroup,\n type RatingGroupVariantProps,\n} from '@cerberus/styled-system/recipes'\n\n/**\n * This module contains the primitives of the Rating component.\n * @module 'rating/primitives'\n */\n\n/**\n * The root primitive of the Rating component.\n */\nexport function RatingRoot(\n props: RatingGroupRootProps & RatingGroupVariantProps,\n) {\n const { orientation, size, ...rootProps } = props\n const styles = ratingGroup({ orientation, size })\n return (\n <RatingGroup.Root\n {...rootProps}\n className={cx(styles.root, rootProps.className)}\n />\n )\n}\n\n/**\n * The label primitive of the Rating component.\n */\nexport function RatingLabel(props: RatingGroupLabelProps) {\n const styles = ratingGroup()\n return (\n <RatingGroup.Label\n {...props}\n className={cx(styles.label, props.className)}\n />\n )\n}\n\n/**\n * The control primitive of the Rating component.\n */\nexport function RatingControl(props: RatingGroupControlProps) {\n const styles = ratingGroup()\n return (\n <RatingGroup.Control\n {...props}\n className={cx(styles.control, props.className)}\n />\n )\n}\n\n/**\n * The context primitive of the Rating component.\n */\nexport function RatingContext(props: RatingGroupContextProps) {\n return <RatingGroup.Context {...props} />\n}\n\n/**\n * The item primitive of the Rating component.\n */\nexport function RatingItem(\n props: RatingGroupItemProps & RatingGroupVariantProps,\n) {\n const { palette, ...itemProps } = props\n const styles = ratingGroup({ palette })\n return (\n <RatingGroup.Item\n {...itemProps}\n className={cx(styles.item, itemProps.className)}\n />\n )\n}\n\n/**\n * The item context primitive of the Rating component.\n */\nexport function RatingItemContext(props: RatingGroupItemContextProps) {\n return <RatingGroup.ItemContext {...props} />\n}\n\n/**\n * The hidden input primitive of the Rating component.\n */\nexport function RatingHiddenInput(props: RatingGroupHiddenInputProps) {\n return <RatingGroup.HiddenInput {...props} />\n}\n","import type { ElementType } from 'react'\nimport {\n RatingContext,\n RatingControl,\n RatingHiddenInput,\n RatingItem,\n RatingItemContext,\n RatingLabel,\n RatingRoot,\n} from './primitives'\n\n/**\n * This module contains the parts of the Rating component.\n * @module 'rating/parts'\n */\n\ninterface RatingPartsValue {\n /**\n * The container of the rating.\n */\n Root: ElementType\n /**\n * The label of the rating.\n */\n Label: ElementType\n /**\n * The visual representation of the rating.\n */\n Control: ElementType\n /**\n * The context of the rating.\n */\n Context: ElementType\n /**\n * The item to display for the rating.\n */\n Item: ElementType\n /**\n * The context provider for the rating items.\n */\n ItemContext: ElementType\n /**\n * The native input of the rating.\n */\n HiddenInput: ElementType\n}\n\n/**\n * An Object containing the parts of the Rating component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the RatingParts object and\n * the entire family of components vs. only what you use.\n */\nexport const RatingParts: RatingPartsValue = {\n Root: RatingRoot,\n Label: RatingLabel,\n Control: RatingControl,\n Context: RatingContext,\n Item: RatingItem,\n ItemContext: RatingItemContext,\n HiddenInput: RatingHiddenInput,\n}\n","/**\n * This module contains utility functions that are used across your app.\n * @module Utils\n */\n\n/**\n * Formats the count of notifications to be displayed in the notification badge.\n * @param count - The number of notifications.\n * @returns The formatted count of notifications.\n * @example\n * ```tsx\n * const count = formatNotifyCount(100)\n * console.log(count) // '99+'\n * ```\n */\nexport function formatNotifyCount(count: number): string {\n if (count > 99) return '99+'\n return count.toString()\n}\n\n/**\n * Splits the properties of an object into multiple groups based on lists of keys.\n * @param props - The object to split.\n * @param keyGroups - The lists of keys to include in each group.\n * @returns An array of objects: each containing the properties specified in the corresponding key group, and the last object containing the remaining keys.\n */\nexport function splitProps<T extends object>(\n props: T,\n ...keyGroups: (keyof T)[][]\n): { [K in keyof T]?: T[K] }[] {\n const result = keyGroups.map(() => ({}) as { [K in keyof T]?: T[K] })\n const rest = {} as { [K in keyof T]?: T[K] }\n\n for (const key in props) {\n let assigned = false\n for (let i = 0; i < keyGroups.length; i++) {\n if (keyGroups[i].includes(key as keyof T)) {\n result[i][key as keyof T] = props[key]\n assigned = true\n break\n }\n }\n if (!assigned) {\n rest[key as keyof T] = props[key]\n }\n }\n\n return [...result, rest]\n}\n\nexport * from './localStorage'\n","'use client'\n\nimport { useMemo, type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: 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(props: PropsWithChildren<ShowProps>): ReactNode {\n const { when, children, fallback } = props\n const condition = useMemo(() => when ?? false, [when])\n\n return useMemo(() => {\n if (condition) return children\n return fallback ?? null\n }, [condition, children, fallback])\n}\n","import type {\n RatingGroupRootProps,\n UseRatingGroupContext,\n UseRatingGroupItemContext,\n} from '@ark-ui/react/rating-group'\nimport type { RatingGroupVariantProps } from '@cerberus/styled-system/recipes'\nimport type { ReactNode } from 'react'\nimport { splitProps } from '../../utils/index'\nimport { Show } from '../Show'\nimport { RatingParts } from './parts'\n\n/**\n * This module contains the abstracted Rating component.\n * @module 'react/rating'\n */\n\nexport interface RatingProps\n extends Omit<RatingGroupRootProps, 'children'>,\n RatingGroupVariantProps {\n /**\n * The label of the rating component.\n */\n label?: string\n /**\n * The children of the rating component.\n */\n children: (context: UseRatingGroupItemContext) => ReactNode\n}\n\n/**\n * The Rating component is an abstraction of the primitives which provides a\n * visual rating system for a user to select a value.\n * @description [Cerberus Docs](https://cerberus.digitalu.design/react/rating)\n * @description [Ark Docs](https://ark-ui.com/react/docs/components/rating-group#api-reference)\n * @example\n * ```tsx\n * <Rating count={5} defaultValue={3} allowHalf>\n * {({ half, highlighted }) => {\n * if (half) return <StarHalfIcon fill=\"current\" />\n * if (highlighted) return <StarIcon fill=\"current\" />\n * return <StarIcon />\n * }}\n * </Rating>\n * ```\n */\nexport function Rating(props: RatingProps) {\n const [{ label }, styleProps, rootProps] = splitProps(\n props,\n ['label'],\n ['orientation', 'palette', 'size'],\n )\n\n return (\n <RatingParts.Root {...styleProps} {...rootProps}>\n <Show when={Boolean(label)}>\n <RatingParts.Label>{label}</RatingParts.Label>\n </Show>\n\n <RatingParts.Control>\n <RatingParts.Context>\n {(context: UseRatingGroupContext) =>\n context.items.map((item) => (\n <RatingParts.Item\n key={item}\n index={item}\n palette={styleProps.palette}\n >\n <RatingParts.ItemContext>\n {rootProps.children}\n </RatingParts.ItemContext>\n </RatingParts.Item>\n ))\n }\n </RatingParts.Context>\n </RatingParts.Control>\n </RatingParts.Root>\n )\n}\n"],"mappings":"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","names":["import_jsx_runtime"]}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/components/rating/parts.tsx
|
|
21
|
+
var parts_exports = {};
|
|
22
|
+
__export(parts_exports, {
|
|
23
|
+
RatingParts: () => RatingParts
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(parts_exports);
|
|
26
|
+
|
|
27
|
+
// src/components/rating/primitives.tsx
|
|
28
|
+
var import_rating_group = require("@ark-ui/react/rating-group");
|
|
29
|
+
var import_css = require("@cerberus/styled-system/css");
|
|
30
|
+
var import_recipes = require("@cerberus/styled-system/recipes");
|
|
31
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
32
|
+
function RatingRoot(props) {
|
|
33
|
+
const { orientation, size, ...rootProps } = props;
|
|
34
|
+
const styles = (0, import_recipes.ratingGroup)({ orientation, size });
|
|
35
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
36
|
+
import_rating_group.RatingGroup.Root,
|
|
37
|
+
{
|
|
38
|
+
...rootProps,
|
|
39
|
+
className: (0, import_css.cx)(styles.root, rootProps.className)
|
|
40
|
+
}
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
function RatingLabel(props) {
|
|
44
|
+
const styles = (0, import_recipes.ratingGroup)();
|
|
45
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
46
|
+
import_rating_group.RatingGroup.Label,
|
|
47
|
+
{
|
|
48
|
+
...props,
|
|
49
|
+
className: (0, import_css.cx)(styles.label, props.className)
|
|
50
|
+
}
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
function RatingControl(props) {
|
|
54
|
+
const styles = (0, import_recipes.ratingGroup)();
|
|
55
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
56
|
+
import_rating_group.RatingGroup.Control,
|
|
57
|
+
{
|
|
58
|
+
...props,
|
|
59
|
+
className: (0, import_css.cx)(styles.control, props.className)
|
|
60
|
+
}
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
function RatingContext(props) {
|
|
64
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_rating_group.RatingGroup.Context, { ...props });
|
|
65
|
+
}
|
|
66
|
+
function RatingItem(props) {
|
|
67
|
+
const { palette, ...itemProps } = props;
|
|
68
|
+
const styles = (0, import_recipes.ratingGroup)({ palette });
|
|
69
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
70
|
+
import_rating_group.RatingGroup.Item,
|
|
71
|
+
{
|
|
72
|
+
...itemProps,
|
|
73
|
+
className: (0, import_css.cx)(styles.item, itemProps.className)
|
|
74
|
+
}
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
function RatingItemContext(props) {
|
|
78
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_rating_group.RatingGroup.ItemContext, { ...props });
|
|
79
|
+
}
|
|
80
|
+
function RatingHiddenInput(props) {
|
|
81
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_rating_group.RatingGroup.HiddenInput, { ...props });
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// src/components/rating/parts.tsx
|
|
85
|
+
var RatingParts = {
|
|
86
|
+
Root: RatingRoot,
|
|
87
|
+
Label: RatingLabel,
|
|
88
|
+
Control: RatingControl,
|
|
89
|
+
Context: RatingContext,
|
|
90
|
+
Item: RatingItem,
|
|
91
|
+
ItemContext: RatingItemContext,
|
|
92
|
+
HiddenInput: RatingHiddenInput
|
|
93
|
+
};
|
|
94
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
95
|
+
0 && (module.exports = {
|
|
96
|
+
RatingParts
|
|
97
|
+
});
|
|
98
|
+
//# sourceMappingURL=parts.cjs.map
|