@cerberus-design/react
Version:
The Cerberus Design React component library.
1 lines • 27.5 kB
Source Map (JSON)
{"version":3,"sources":["../../../../src/components/admonition/admonition.tsx","../../../../src/utils/index.ts","../../../../src/components/show/show.tsx","../../../../src/components/admonition/primitives.tsx","../../../../src/system/primitive-factory.tsx","../../../../src/system/index.ts","../../../../src/components/admonition/parts.ts","../../../../src/components/admonition/match-avatar.tsx","../../../../src/context/cerberus.tsx","../../../../src/components/avatar/primitives.tsx","../../../../src/components/avatar/parts.ts","../../../../src/components/avatar/avatar.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\nimport { splitProps } from '../../utils/index'\nimport { Show } from '../show/index'\nimport { AdmonitionParts } from './parts'\nimport type { AdmonitionRootProps } from './primitives'\nimport { MatchAvatar } from './match-avatar'\n\n/**\n * This module provides an abstraction for the Admonition component.\n * @module 'admonition/admonition'\n */\n\nexport interface AdmonitionProps extends AdmonitionRootProps {\n /**\n * The heading title for the Admonition.\n */\n heading?: string\n /**\n * One off replacement for the icon.\n */\n icon?: ReactNode\n}\n\n/**\n * The Admonition component is an abstraction of the primitives which\n * displays a Admonition with a label.\n *\n * @description [Cerberus Docs](https://cerberus.digitalu.design/react/admonition)\n *\n * @remarks\n *\n * For a customizable Admonition, use the `AdmonitionParts` object to access the\n * individual primitives of the Admonition component.\n */\nexport function Admonition(props: AdmonitionProps) {\n const [elProps, styleProps, rootProps] = splitProps(\n props,\n ['heading', 'icon', 'children'],\n ['palette', 'usage'],\n )\n\n return (\n <AdmonitionParts.Root {...styleProps} {...rootProps}>\n <Show\n when={elProps.icon}\n fallback={<MatchAvatar palette={styleProps.palette} />}\n >\n <AdmonitionParts.Indicator>{elProps.icon}</AdmonitionParts.Indicator>\n </Show>\n\n <AdmonitionParts.Content>\n <Show when={elProps.heading}>\n <AdmonitionParts.Heading>{elProps.heading}</AdmonitionParts.Heading>\n </Show>\n\n <AdmonitionParts.Description>\n {elProps.children}\n </AdmonitionParts.Description>\n </AdmonitionParts.Content>\n </AdmonitionParts.Root>\n )\n}\n","/**\n * This module contains utility functions that are used across your app.\n * @module Utils\n */\n\n/**\n * Formats the count of notifications to be displayed in the notification badge.\n * @param count - The number of notifications.\n * @returns The formatted count of notifications.\n * @example\n * ```tsx\n * const count = formatNotifyCount(100)\n * console.log(count) // '99+'\n * ```\n */\nexport function formatNotifyCount(count: number): string {\n if (count > 99) return '99+'\n return count.toString()\n}\n\n/**\n * Splits the properties of an object into multiple groups based on lists of keys.\n * @param props - The object to split.\n * @param keyGroups - The lists of keys to include in each group.\n * @returns An array of objects: each containing the properties specified in the corresponding key group, and the last object containing the remaining keys.\n */\nexport function splitProps<T extends object>(\n props: T,\n ...keyGroups: (keyof T)[][]\n): { [K in keyof T]?: T[K] }[] {\n const result = keyGroups.map(() => ({}) as { [K in keyof T]?: T[K] })\n const rest = {} as { [K in keyof T]?: T[K] }\n\n for (const key in props) {\n let assigned = false\n for (let i = 0; i < keyGroups.length; i++) {\n if (keyGroups[i].includes(key as keyof T)) {\n result[i][key as keyof T] = props[key]\n assigned = true\n break\n }\n }\n if (!assigned) {\n rest[key as keyof T] = props[key]\n }\n }\n\n return [...result, rest]\n}\n\nexport * from './localStorage'\n","import { type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps<T> {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: T | boolean | null | undefined\n /**\n * The children to render when the condition is false.\n */\n fallback?: ReactNode\n}\n\n/**\n * Conditionally render a memoized version of the children or optional fallback\n * content.\n * @see https://cerberus.digitalu.design/react/show\n * @example\n * ```tsx\n * <Show when={isLoggedIn} fallback={<Navigate to=\"/login\" />}>\n * <Dashboard />\n * </Show>\n */\nexport function Show<T>(props: PropsWithChildren<ShowProps<T>>) {\n const { when, children, fallback } = props\n\n if (when) {\n return <>{children}</>\n }\n\n if (fallback) {\n return <>{fallback}</>\n }\n\n return null\n}\n","import { ark, type HTMLArkProps } from '@ark-ui/react/factory'\nimport { admonition, type AdmonitionVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module contains the primitives of the Admonition components.\n * @module 'admonition/primitives'\n */\n\nconst { withSlotRecipe, withNoRecipe } = createCerberusPrimitive(admonition)\n\n/**\n * The `AdmonitionRoot` component is the container for the Admonition.\n */\nexport const AdmonitionRoot = withSlotRecipe<AdmonitionRootProps>(\n ark.aside,\n 'root',\n {\n defaultProps: {\n 'data-scope': 'admonition',\n 'data-part': 'root',\n },\n },\n)\nexport type AdmonitionRootProps = CerberusPrimitiveProps<\n HTMLArkProps<'aside'> & AdmonitionVariantProps\n>\n\n/**\n * The `AdmonitionIndicator` component is the indicator for the Admonition.\n */\nexport const AdmonitionIndicator = withNoRecipe<AdmonitionIndicatorProps>(\n ark.span,\n {\n defaultProps: {\n 'data-scope': 'admonition',\n 'data-part': 'indicator',\n },\n },\n)\nexport type AdmonitionIndicatorProps = CerberusPrimitiveProps<\n HTMLArkProps<'span'>\n>\n\n/**\n * The `AdmonitionContent` component is the content for the Admonition.\n */\nexport const AdmonitionContent = withNoRecipe<AdmonitionContentProps>(ark.div, {\n defaultProps: {\n 'data-scope': 'admonition',\n 'data-part': 'content',\n },\n})\nexport type AdmonitionContentProps = CerberusPrimitiveProps<HTMLArkProps<'div'>>\n\n/**\n * The `AdmonitionHeading` component is the heading title for the Admonition.\n */\nexport const AdmonitionHeading = withSlotRecipe<AdmonitionHeadingProps>(\n ark.p,\n 'heading',\n {\n defaultProps: {\n 'data-scope': 'admonition',\n 'data-part': 'heading',\n },\n },\n)\nexport type AdmonitionHeadingProps = CerberusPrimitiveProps<\n HTMLArkProps<'p'> & AdmonitionVariantProps\n>\n\n/**\n * The `AdmonitionDescription` component is the description for the Admonition.\n */\nexport const AdmonitionDescription = withSlotRecipe<AdmonitionDescriptionProps>(\n ark.p,\n 'description',\n {\n defaultProps: {\n 'data-scope': 'admonition',\n 'data-part': 'description',\n },\n },\n)\nexport type AdmonitionDescriptionProps = CerberusPrimitiveProps<\n HTMLArkProps<'p'> & AdmonitionVariantProps\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 AdmonitionContent,\n AdmonitionDescription,\n AdmonitionHeading,\n AdmonitionIndicator,\n AdmonitionRoot,\n} from './primitives'\n\n/**\n * This module contains the parts of the Admonition component.\n * @module 'admonition/parts'\n */\n\ninterface AdmonitionPartsValue {\n /**\n * The context provider of the Admonition.\n */\n Root: ElementType\n /**\n * The indicator of the Admonition.\n */\n Indicator: ElementType\n /**\n * The content of the Admonition.\n */\n Content: ElementType\n /**\n * The heading of the Admonition.\n */\n Heading: ElementType\n /**\n * The description of the Admonition.\n */\n Description: ElementType\n}\n\n/**\n * An Object containing the parts of the Accordion component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the AdmonitionParts object and\n * the entire family of components vs. only what you use.\n */\nexport const AdmonitionParts: AdmonitionPartsValue = {\n Root: AdmonitionRoot,\n Indicator: AdmonitionIndicator,\n Content: AdmonitionContent,\n Heading: AdmonitionHeading,\n Description: AdmonitionDescription,\n}\n","'use client'\n\nimport type { AdmonitionVariantProps } from 'styled-system/recipes'\nimport { useRef, type ReactNode } from 'react'\nimport { useCerberusContext } from '../../context/cerberus'\nimport { Avatar } from '../avatar/avatar'\n\n/**\n * This module provides a component for creating the admonition indicator.\n * @module 'admonition/match-avatar'\n */\n\ninterface AvatarRefProps {\n page: ReactNode\n info: ReactNode\n success: ReactNode\n warning: ReactNode\n danger: ReactNode\n}\n\ntype MatchAvatarProps = AdmonitionVariantProps\n\nexport function MatchAvatar(props: MatchAvatarProps) {\n const { palette = 'page' } = props\n\n const { icons } = useCerberusContext()\n const {\n infoNotification: InfoIcon,\n successNotification: SuccessIcon,\n warningNotification: WarningIcon,\n dangerNotification: DangerIcon,\n } = icons\n\n // cache the el since the result is static and the component is client side\n const elRef = useRef<AvatarRefProps>({\n page: <Avatar gradient=\"charon-light\" fallback={<InfoIcon />} size=\"sm\" />,\n info: (\n <Avatar gradient=\"amphiaraus-dark\" fallback={<InfoIcon />} size=\"sm\" />\n ),\n success: (\n <Avatar gradient=\"thanatos-dark\" fallback={<SuccessIcon />} size=\"sm\" />\n ),\n warning: (\n <Avatar gradient=\"asphodel-light\" fallback={<WarningIcon />} size=\"sm\" />\n ),\n danger: (\n <Avatar gradient=\"hades-light\" fallback={<DangerIcon />} size=\"sm\" />\n ),\n })\n\n return <>{elRef.current[palette]}</>\n}\n","'use client'\n\nimport { createContext, useContext, type PropsWithChildren } from 'react'\nimport type { SystemConfig } from '../config'\n\n/**\n * This module contains the Cerberus configuration context and helpers.\n * @module context/cerberus\n */\n\ntype CerberusContextValue = SystemConfig\n\nconst CerberusContext = createContext<CerberusContextValue | null>(null)\n\ninterface CerberusProviderProps {\n config: SystemConfig\n}\n\n/**\n * Cerberus configuration provider.\n * @param props.config The Cerberus configuration created with\n * `makeSystemConfig` helper.\n */\nexport function CerberusProvider(\n props: PropsWithChildren<CerberusProviderProps>,\n) {\n return (\n <CerberusContext.Provider value={props.config}>\n {props.children}\n </CerberusContext.Provider>\n )\n}\n\n/**\n * Returns the Cerberus configuration context.\n * @returns The Cerberus configuration context.\n */\nexport function useCerberusContext() {\n const context = useContext(CerberusContext)\n if (!context) {\n throw new Error('useCerberus must be used within a CerberusProvider')\n }\n return context\n}\n","import {\n Avatar,\n type AvatarFallbackProps as ArkAvatarFallbackProps,\n type AvatarImageProps as ArkAvatarImageProps,\n type AvatarRootProps as ArkAvatarRootProps,\n} from '@ark-ui/react/avatar'\nimport { avatar, type AvatarVariantProps } from 'styled-system/recipes'\nimport {\n createCerberusPrimitive,\n type CerberusPrimitiveProps,\n} from '../../system/index'\n\n/**\n * This module provides the primitive components for the Avatar component.\n * @module 'avatar/primitives'\n */\n\nconst { withSlotRecipe } = createCerberusPrimitive(avatar)\n\n/**\n * The root component of the Avatar.\n */\nexport const AvatarRoot = withSlotRecipe<AvatarRootProps>(Avatar.Root, 'root')\nexport type AvatarRootProps = CerberusPrimitiveProps<\n ArkAvatarRootProps & AvatarVariantProps\n>\n\n/**\n * The image component of the Avatar.\n */\nexport const AvatarImage = withSlotRecipe<ArkAvatarImageProps>(\n Avatar.Image,\n 'image',\n)\nexport type AvatarImageProps = CerberusPrimitiveProps<ArkAvatarImageProps>\n\n/**\n * The fallback component of the Avatar.\n */\nexport const AvatarFallback = withSlotRecipe<ArkAvatarFallbackProps>(\n Avatar.Fallback,\n 'fallback',\n)\nexport type AvatarFallbackProps = CerberusPrimitiveProps<ArkAvatarFallbackProps>\n","import type { ElementType } from 'react'\nimport { AvatarFallback, AvatarImage, AvatarRoot } from './primitives'\n\n/**\n * This module contains the parts of the Avatar component.\n * @module 'avatar/parts'\n */\n\ninterface AvatarPartsValue {\n /**\n * The context provider of the Avatar.\n */\n Root: ElementType\n /**\n * The image of the Avatar.\n */\n Image: ElementType\n /**\n * The fallback content to display when the image fails to load.\n */\n Fallback: ElementType\n}\n\n/**\n * An Object containing the parts of the Accordion component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the AvatarParts object and\n * the entire family of components vs. only what you use.\n */\nexport const AvatarParts: AvatarPartsValue = {\n Root: AvatarRoot,\n Image: AvatarImage,\n Fallback: AvatarFallback,\n}\n","import type { AvatarVariantProps } from 'styled-system/recipes'\nimport type { ReactNode } from 'react'\nimport { splitProps } from '../../utils'\nimport { Show } from '../show/index'\nimport { AvatarParts } from './parts'\nimport type { AvatarRootProps } from './primitives'\n\n/**\n * This module provides an abstraction of the Avatar primitives.\n * @module 'avatar'\n */\n\nexport interface AvatarWithoutImage extends AvatarRootProps {\n alt?: never\n src?: never\n fallback?: ReactNode\n}\n\nexport interface AvatarWithImage extends AvatarRootProps, AvatarVariantProps {\n alt: string\n src: string\n fallback?: ReactNode\n}\n\n/**\n * Avatar component is an abstraction of the primitives that displays a\n * avatar or it's fallback when the image fails to load.\n * @description [Cerberus Docs](https://cerberus.digitalu.design/react/avatar/overview)\n * @description [Ark Docs](https://ark-ui.com/react/docs/components/avatar#api-reference)\n */\nexport function Avatar(props: AvatarWithoutImage | AvatarWithImage) {\n const [imgProps, { fallback, children }, rootProps] = splitProps(\n props,\n ['alt', 'src'],\n ['fallback', 'children'],\n )\n\n return (\n <AvatarParts.Root {...rootProps}>\n <Show\n when={children}\n fallback={\n <>\n <AvatarParts.Fallback>{fallback}</AvatarParts.Fallback>\n <AvatarParts.Image {...imgProps} />\n </>\n }\n >\n {children}\n </Show>\n </AvatarParts.Root>\n )\n}\n"],"mappings":"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","names":["import_jsx_runtime","import_react","import_jsx_runtime","import_recipes","withSlotRecipe","import_jsx_runtime","Avatar","import_jsx_runtime","Avatar","import_jsx_runtime"]}