@discourser/design-system 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +213 -0
- package/dist/index.cjs +1250 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +456 -0
- package/dist/index.d.ts +456 -0
- package/dist/index.js +1234 -0
- package/dist/index.js.map +1 -0
- package/package.json +123 -0
- package/styled-system/css/conditions.mjs +36 -0
- package/styled-system/css/css.d.ts +22 -0
- package/styled-system/css/css.mjs +45 -0
- package/styled-system/css/cva.d.ts +6 -0
- package/styled-system/css/cva.mjs +87 -0
- package/styled-system/css/cx.d.ts +5 -0
- package/styled-system/css/cx.mjs +15 -0
- package/styled-system/css/index.d.ts +5 -0
- package/styled-system/css/index.mjs +4 -0
- package/styled-system/css/sva.d.ts +4 -0
- package/styled-system/css/sva.mjs +41 -0
- package/styled-system/helpers.mjs +336 -0
- package/styled-system/jsx/aspect-ratio.d.ts +10 -0
- package/styled-system/jsx/aspect-ratio.mjs +14 -0
- package/styled-system/jsx/bleed.d.ts +10 -0
- package/styled-system/jsx/bleed.mjs +14 -0
- package/styled-system/jsx/box.d.ts +10 -0
- package/styled-system/jsx/box.mjs +14 -0
- package/styled-system/jsx/center.d.ts +10 -0
- package/styled-system/jsx/center.mjs +14 -0
- package/styled-system/jsx/circle.d.ts +10 -0
- package/styled-system/jsx/circle.mjs +14 -0
- package/styled-system/jsx/container.d.ts +10 -0
- package/styled-system/jsx/container.mjs +14 -0
- package/styled-system/jsx/cq.d.ts +10 -0
- package/styled-system/jsx/cq.mjs +14 -0
- package/styled-system/jsx/divider.d.ts +10 -0
- package/styled-system/jsx/divider.mjs +14 -0
- package/styled-system/jsx/factory-helper.mjs +22 -0
- package/styled-system/jsx/factory.d.ts +3 -0
- package/styled-system/jsx/factory.mjs +80 -0
- package/styled-system/jsx/flex.d.ts +10 -0
- package/styled-system/jsx/flex.mjs +14 -0
- package/styled-system/jsx/float.d.ts +10 -0
- package/styled-system/jsx/float.mjs +14 -0
- package/styled-system/jsx/grid-item.d.ts +10 -0
- package/styled-system/jsx/grid-item.mjs +14 -0
- package/styled-system/jsx/grid.d.ts +10 -0
- package/styled-system/jsx/grid.mjs +14 -0
- package/styled-system/jsx/hstack.d.ts +10 -0
- package/styled-system/jsx/hstack.mjs +14 -0
- package/styled-system/jsx/index.d.ts +24 -0
- package/styled-system/jsx/index.mjs +22 -0
- package/styled-system/jsx/is-valid-prop.d.ts +11 -0
- package/styled-system/jsx/is-valid-prop.mjs +17 -0
- package/styled-system/jsx/link-overlay.d.ts +10 -0
- package/styled-system/jsx/link-overlay.mjs +14 -0
- package/styled-system/jsx/spacer.d.ts +10 -0
- package/styled-system/jsx/spacer.mjs +14 -0
- package/styled-system/jsx/square.d.ts +10 -0
- package/styled-system/jsx/square.mjs +14 -0
- package/styled-system/jsx/stack.d.ts +10 -0
- package/styled-system/jsx/stack.mjs +14 -0
- package/styled-system/jsx/visually-hidden.d.ts +10 -0
- package/styled-system/jsx/visually-hidden.mjs +14 -0
- package/styled-system/jsx/vstack.d.ts +10 -0
- package/styled-system/jsx/vstack.mjs +14 -0
- package/styled-system/jsx/wrap.d.ts +10 -0
- package/styled-system/jsx/wrap.mjs +14 -0
- package/styled-system/patterns/aspect-ratio.d.ts +21 -0
- package/styled-system/patterns/aspect-ratio.mjs +38 -0
- package/styled-system/patterns/bleed.d.ts +22 -0
- package/styled-system/patterns/bleed.mjs +24 -0
- package/styled-system/patterns/box.d.ts +21 -0
- package/styled-system/patterns/box.mjs +15 -0
- package/styled-system/patterns/center.d.ts +21 -0
- package/styled-system/patterns/center.mjs +21 -0
- package/styled-system/patterns/circle.d.ts +21 -0
- package/styled-system/patterns/circle.mjs +25 -0
- package/styled-system/patterns/container.d.ts +21 -0
- package/styled-system/patterns/container.mjs +21 -0
- package/styled-system/patterns/cq.d.ts +22 -0
- package/styled-system/patterns/cq.mjs +21 -0
- package/styled-system/patterns/divider.d.ts +23 -0
- package/styled-system/patterns/divider.mjs +25 -0
- package/styled-system/patterns/flex.d.ts +27 -0
- package/styled-system/patterns/flex.mjs +26 -0
- package/styled-system/patterns/float.d.ts +24 -0
- package/styled-system/patterns/float.mjs +52 -0
- package/styled-system/patterns/grid-item.d.ts +26 -0
- package/styled-system/patterns/grid-item.mjs +25 -0
- package/styled-system/patterns/grid.d.ts +25 -0
- package/styled-system/patterns/grid.mjs +27 -0
- package/styled-system/patterns/hstack.d.ts +22 -0
- package/styled-system/patterns/hstack.mjs +24 -0
- package/styled-system/patterns/index.d.ts +21 -0
- package/styled-system/patterns/index.mjs +20 -0
- package/styled-system/patterns/link-overlay.d.ts +21 -0
- package/styled-system/patterns/link-overlay.mjs +24 -0
- package/styled-system/patterns/spacer.d.ts +21 -0
- package/styled-system/patterns/spacer.mjs +21 -0
- package/styled-system/patterns/square.d.ts +21 -0
- package/styled-system/patterns/square.mjs +24 -0
- package/styled-system/patterns/stack.d.ts +24 -0
- package/styled-system/patterns/stack.mjs +24 -0
- package/styled-system/patterns/visually-hidden.d.ts +21 -0
- package/styled-system/patterns/visually-hidden.mjs +18 -0
- package/styled-system/patterns/vstack.d.ts +22 -0
- package/styled-system/patterns/vstack.mjs +24 -0
- package/styled-system/patterns/wrap.d.ts +25 -0
- package/styled-system/patterns/wrap.mjs +25 -0
- package/styled-system/recipes/button.d.ts +39 -0
- package/styled-system/recipes/button.mjs +40 -0
- package/styled-system/recipes/card.d.ts +39 -0
- package/styled-system/recipes/card.mjs +36 -0
- package/styled-system/recipes/create-recipe.mjs +82 -0
- package/styled-system/recipes/dialog.d.ts +35 -0
- package/styled-system/recipes/dialog.mjs +63 -0
- package/styled-system/recipes/icon-button.d.ts +39 -0
- package/styled-system/recipes/icon-button.mjs +39 -0
- package/styled-system/recipes/index.d.ts +7 -0
- package/styled-system/recipes/index.mjs +6 -0
- package/styled-system/recipes/input.d.ts +40 -0
- package/styled-system/recipes/input.mjs +40 -0
- package/styled-system/recipes/switch-control.d.ts +35 -0
- package/styled-system/recipes/switch-control.mjs +53 -0
- package/styled-system/recipes/switch.d.ts +35 -0
- package/styled-system/recipes/switch.mjs +53 -0
- package/styled-system/tokens/index.d.ts +9 -0
- package/styled-system/tokens/index.mjs +924 -0
- package/styled-system/tokens/tokens.d.ts +48 -0
- package/styled-system/types/composition.d.ts +164 -0
- package/styled-system/types/conditions.d.ts +306 -0
- package/styled-system/types/csstype.d.ts +21298 -0
- package/styled-system/types/global.d.ts +20 -0
- package/styled-system/types/index.d.ts +8 -0
- package/styled-system/types/jsx.d.ts +52 -0
- package/styled-system/types/parts.d.ts +8 -0
- package/styled-system/types/pattern.d.ts +78 -0
- package/styled-system/types/prop-type.d.ts +224 -0
- package/styled-system/types/recipe.d.ts +181 -0
- package/styled-system/types/selectors.d.ts +59 -0
- package/styled-system/types/static-css.d.ts +56 -0
- package/styled-system/types/style-props.d.ts +7468 -0
- package/styled-system/types/system-types.d.ts +109 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/cn.ts","../src/components/Button/Button.tsx","../src/components/Card/Card.tsx","../src/components/IconButton/IconButton.tsx","../src/components/Input/Input.tsx","../src/components/Dialog/Dialog.tsx","../src/components/Switch/Switch.tsx","../node_modules/.pnpm/@pandacss+dev@0.52.0_jsdom@27.4.0_typescript@5.9.3/node_modules/@pandacss/dev/dist/index.mjs","../src/recipes/button.recipe.ts","../src/recipes/card.recipe.ts","../src/recipes/icon-button.recipe.ts","../src/recipes/input.recipe.ts","../src/recipes/dialog.recipe.ts","../src/recipes/switch.recipe.ts","../src/languages/material3.language.ts","../src/languages/transform.ts"],"names":["forwardRef","jsx","jsxs","ArkDialog","ArkSwitch"],"mappings":"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","file":"index.js","sourcesContent":["import { clsx, type ClassValue } from 'clsx';\n\n/**\n * Utility function to merge class names\n */\nexport function cn(...inputs: ClassValue[]) {\n return clsx(inputs);\n}\n","import { forwardRef, type ButtonHTMLAttributes, type ReactNode } from 'react';\nimport { button } from 'styled-system/recipes';\nimport { cn } from '../../utils/cn';\n\nexport interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n children: ReactNode;\n leftIcon?: ReactNode;\n rightIcon?: ReactNode;\n /**\n * Visual style variant\n * @default \"filled\"\n */\n variant?: 'filled' | 'outlined' | 'text' | 'elevated' | 'tonal';\n /**\n * Size variant\n * @default \"md\"\n */\n size?: 'sm' | 'md' | 'lg';\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n { children, variant, size, leftIcon, rightIcon, className, ...props },\n ref\n ) => {\n return (\n <button\n ref={ref}\n className={cn(button({ variant, size }), className)}\n {...props}\n >\n {leftIcon}\n {children}\n {rightIcon}\n </button>\n );\n }\n);\n\nButton.displayName = 'Button';\n","import { forwardRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { card } from 'styled-system/recipes';\nimport { cn } from '../../utils/cn';\n\nexport interface CardProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n /**\n * Visual style variant\n * @default \"filled\"\n */\n variant?: 'filled' | 'outlined' | 'elevated';\n /**\n * When true, the card becomes clickable with hover/active states\n */\n interactive?: boolean;\n}\n\nexport const Card = forwardRef<HTMLDivElement, CardProps>(\n ({ children, variant, interactive, className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(card({ variant, interactive }), className)}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\n\nCard.displayName = 'Card';\n","import { forwardRef, type ButtonHTMLAttributes, type ReactNode } from 'react';\nimport { iconButton } from 'styled-system/recipes';\nimport { cn } from '../../utils/cn';\n\nexport interface IconButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /**\n * Icon to display in the button\n */\n children: ReactNode;\n /**\n * Accessible label for the button (required for screen readers)\n */\n 'aria-label': string;\n /**\n * Visual style variant\n * @default \"standard\"\n */\n variant?: 'standard' | 'filled' | 'outlined' | 'tonal';\n /**\n * Size variant\n * @default \"md\"\n */\n size?: 'sm' | 'md' | 'lg';\n}\n\nexport const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>(\n ({ children, variant, size, className, ...props }, ref) => {\n return (\n <button\n ref={ref}\n className={cn(iconButton({ variant, size }), className)}\n {...props}\n >\n {children}\n </button>\n );\n }\n);\n\nIconButton.displayName = 'IconButton';\n","import { forwardRef, type InputHTMLAttributes } from 'react';\nimport { Field } from '@ark-ui/react/field';\nimport { input } from 'styled-system/recipes';\nimport { cn } from '../../utils/cn';\n\nexport interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {\n /**\n * Label text for the input\n */\n label?: string;\n /**\n * Helper text to display below the input\n */\n helperText?: string;\n /**\n * Error message to display (also sets error state)\n */\n errorText?: string;\n /**\n * Visual style variant\n * @default \"outlined\"\n */\n variant?: 'outlined' | 'filled';\n /**\n * Size variant\n * @default \"md\"\n */\n size?: 'sm' | 'md';\n /**\n * Visual state\n */\n state?: 'error';\n}\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n (\n { label, helperText, errorText, variant, size, state, className, ...props },\n ref\n ) => {\n const hasError = !!errorText || state === 'error';\n\n return (\n <Field.Root invalid={hasError}>\n {label && <Field.Label>{label}</Field.Label>}\n <Field.Input\n ref={ref}\n className={cn(\n input({ variant, size, state: hasError ? 'error' : state }),\n className\n )}\n {...props}\n />\n {helperText && !hasError && (\n <Field.HelperText>{helperText}</Field.HelperText>\n )}\n {errorText && <Field.ErrorText>{errorText}</Field.ErrorText>}\n </Field.Root>\n );\n }\n);\n\nInput.displayName = 'Input';\n","import { forwardRef, type ReactNode } from 'react';\nimport { Dialog as ArkDialog } from '@ark-ui/react/dialog';\nimport { Portal } from '@ark-ui/react/portal';\nimport { dialog } from 'styled-system/recipes';\n\nexport interface DialogProps {\n /**\n * Whether the dialog is open\n */\n open?: boolean;\n /**\n * Callback when the dialog open state changes\n */\n onOpenChange?: (details: { open: boolean }) => void;\n /**\n * Dialog title\n */\n title?: string;\n /**\n * Dialog description/content\n */\n description?: string;\n /**\n * Dialog content (alternative to description for custom content)\n */\n children?: ReactNode;\n /**\n * Whether to show the close button\n * @default true\n */\n showCloseButton?: boolean;\n /**\n * Custom close button label for accessibility\n * @default 'Close'\n */\n closeLabel?: string;\n /**\n * Size variant\n * @default \"md\"\n */\n size?: 'sm' | 'md' | 'lg';\n}\n\nexport const Dialog = forwardRef<HTMLDivElement, DialogProps>(\n (\n {\n open,\n onOpenChange,\n title,\n description,\n children,\n size,\n showCloseButton = true,\n closeLabel = 'Close',\n },\n ref\n ) => {\n const classes = dialog({ size });\n\n return (\n <ArkDialog.Root open={open} onOpenChange={onOpenChange}>\n <Portal>\n <ArkDialog.Backdrop className={classes.backdrop} />\n <ArkDialog.Positioner className={classes.positioner}>\n <ArkDialog.Content ref={ref} className={classes.content}>\n {title && (\n <ArkDialog.Title className={classes.title}>{title}</ArkDialog.Title>\n )}\n {description && (\n <ArkDialog.Description className={classes.description}>\n {description}\n </ArkDialog.Description>\n )}\n {children && (\n <div className={classes.description}>{children}</div>\n )}\n {showCloseButton && (\n <ArkDialog.CloseTrigger\n className={classes.closeTrigger}\n aria-label={closeLabel}\n >\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n </ArkDialog.CloseTrigger>\n )}\n </ArkDialog.Content>\n </ArkDialog.Positioner>\n </Portal>\n </ArkDialog.Root>\n );\n }\n);\n\nDialog.displayName = 'Dialog';\n","import { forwardRef } from 'react';\nimport { Switch as ArkSwitch } from '@ark-ui/react/switch';\nimport { switchControl } from 'styled-system/recipes';\n\nexport interface SwitchProps {\n /**\n * Label text for the switch\n */\n label?: string;\n /**\n * Whether the switch is checked\n */\n checked?: boolean;\n /**\n * Default checked state (uncontrolled)\n */\n defaultChecked?: boolean;\n /**\n * Callback when checked state changes\n */\n onCheckedChange?: (details: { checked: boolean }) => void;\n /**\n * Whether the switch is disabled\n */\n disabled?: boolean;\n /**\n * Name attribute for form submission\n */\n name?: string;\n /**\n * Value attribute for form submission\n */\n value?: string;\n /**\n * Whether the switch is required\n */\n required?: boolean;\n /**\n * Size variant\n * @default \"md\"\n */\n size?: 'sm' | 'md';\n}\n\nexport const Switch = forwardRef<HTMLInputElement, SwitchProps>(\n (\n {\n label,\n checked,\n defaultChecked,\n onCheckedChange,\n disabled,\n name,\n value,\n required,\n size,\n },\n ref\n ) => {\n const classes = switchControl({ size });\n\n return (\n <ArkSwitch.Root\n checked={checked}\n defaultChecked={defaultChecked}\n onCheckedChange={onCheckedChange}\n disabled={disabled}\n name={name}\n value={value}\n required={required}\n className={classes.root}\n >\n <ArkSwitch.Control className={classes.control}>\n <ArkSwitch.Thumb className={classes.thumb} />\n </ArkSwitch.Control>\n <ArkSwitch.HiddenInput ref={ref} />\n {label && <ArkSwitch.Label className={classes.label}>{label}</ArkSwitch.Label>}\n </ArkSwitch.Root>\n );\n }\n);\n\nSwitch.displayName = 'Switch';\n","// src/index.ts\nfunction defineConfig(config) {\n return Object.assign(config, { name: \"__panda.config__\" });\n}\nfunction defineRecipe(config) {\n return config;\n}\nfunction defineSlotRecipe(config) {\n return config;\n}\nfunction defineParts(parts) {\n return function(config) {\n return Object.fromEntries(\n Object.entries(config).map(([key, value]) => {\n const part = parts[key];\n if (part == null) {\n throw new Error(\n `Part \"${key}\" does not exist in the anatomy. Available parts: ${Object.keys(parts).join(\", \")}`\n );\n }\n return [part.selector, value];\n })\n );\n };\n}\nfunction definePattern(config) {\n return config;\n}\nfunction definePreset(preset) {\n return preset;\n}\nfunction defineKeyframes(keyframes) {\n return keyframes;\n}\nfunction defineGlobalStyles(definition) {\n return definition;\n}\nfunction defineGlobalFontface(definition) {\n return definition;\n}\nfunction defineUtility(utility) {\n return utility;\n}\nfunction definePlugin(plugin) {\n return plugin;\n}\nfunction defineThemeVariant(theme) {\n return theme;\n}\nfunction defineThemeContract(_contract) {\n return (theme) => defineThemeVariant(theme);\n}\nfunction createProxy() {\n const identity = (v) => v;\n return new Proxy(identity, {\n get() {\n return identity;\n }\n });\n}\nvar defineTokens = /* @__PURE__ */ createProxy();\nvar defineSemanticTokens = /* @__PURE__ */ createProxy();\nfunction defineTextStyles(definition) {\n return definition;\n}\nfunction defineLayerStyles(definition) {\n return definition;\n}\nfunction defineStyles(definition) {\n return definition;\n}\nfunction defineAnimationStyles(definition) {\n return definition;\n}\nexport {\n defineAnimationStyles,\n defineConfig,\n defineGlobalFontface,\n defineGlobalStyles,\n defineKeyframes,\n defineLayerStyles,\n defineParts,\n definePattern,\n definePlugin,\n definePreset,\n defineRecipe,\n defineSemanticTokens,\n defineSlotRecipe,\n defineStyles,\n defineTextStyles,\n defineThemeContract,\n defineThemeVariant,\n defineTokens,\n defineUtility\n};\n","import { defineRecipe } from '@pandacss/dev';\n\nexport const buttonRecipe = defineRecipe({\n className: 'button',\n description: 'Material Design 3 button component',\n base: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 'sm',\n fontFamily: 'body',\n fontWeight: '500',\n borderRadius: 'full',\n cursor: 'pointer',\n transition: 'all',\n transitionDuration: 'fast',\n transitionTimingFunction: 'standard',\n outline: 'none',\n border: 'none',\n textDecoration: 'none',\n _disabled: {\n opacity: 0.38,\n cursor: 'not-allowed',\n pointerEvents: 'none'\n },\n _focusVisible: {\n outline: '2px solid',\n outlineColor: 'primary',\n outlineOffset: '2px'\n }\n },\n variants: {\n variant: {\n filled: {\n bg: 'primary',\n color: 'onPrimary',\n _hover: {\n opacity: 0.92,\n shadow: 'level1'\n },\n _active: {\n opacity: 0.88\n }\n },\n outlined: {\n bg: 'transparent',\n color: 'primary',\n borderWidth: '1px',\n borderStyle: 'solid',\n borderColor: 'outline',\n _hover: {\n bg: 'primary',\n bgOpacity: 0.08\n },\n _active: {\n bg: 'primary',\n bgOpacity: 0.12\n }\n },\n text: {\n bg: 'transparent',\n color: 'primary',\n _hover: {\n bg: 'primary',\n bgOpacity: 0.08\n },\n _active: {\n bg: 'primary',\n bgOpacity: 0.12\n }\n },\n elevated: {\n bg: 'surfaceContainerLow',\n color: 'primary',\n shadow: 'level1',\n _hover: {\n shadow: 'level2',\n bg: 'surfaceContainerLow'\n },\n _active: {\n shadow: 'level1'\n }\n },\n tonal: {\n bg: 'secondaryContainer',\n color: 'onSecondaryContainer',\n _hover: {\n shadow: 'level1'\n },\n _active: {\n shadow: 'none'\n }\n }\n },\n size: {\n sm: {\n height: '32px',\n px: 'md',\n fontSize: 'labelMedium',\n lineHeight: 'labelMedium'\n },\n md: {\n height: '40px',\n px: 'lg',\n fontSize: 'labelLarge',\n lineHeight: 'labelLarge'\n },\n lg: {\n height: '48px',\n px: 'xl',\n fontSize: 'labelLarge',\n lineHeight: 'labelLarge'\n }\n }\n },\n defaultVariants: {\n variant: 'filled',\n size: 'md'\n }\n});","import { defineRecipe } from '@pandacss/dev';\n\nexport const cardRecipe = defineRecipe({\n className: 'card',\n description: 'Material Design 3 card component',\n base: {\n display: 'flex',\n flexDirection: 'column',\n borderRadius: 'medium',\n overflow: 'hidden',\n transition: 'all',\n transitionDuration: 'fast',\n transitionTimingFunction: 'standard'\n },\n variants: {\n variant: {\n elevated: {\n bg: 'surfaceContainerLow',\n shadow: 'level1',\n _hover: {\n shadow: 'level2'\n }\n },\n filled: {\n bg: 'surfaceContainerHighest'\n },\n outlined: {\n bg: 'surface',\n borderWidth: '1px',\n borderStyle: 'solid',\n borderColor: 'outlineVariant'\n }\n },\n interactive: {\n true: {\n cursor: 'pointer',\n _hover: {\n opacity: 0.96\n },\n _active: {\n opacity: 0.92\n }\n }\n }\n },\n defaultVariants: {\n variant: 'elevated',\n interactive: false\n }\n});","import { defineRecipe } from '@pandacss/dev';\n\nexport const iconButtonRecipe = defineRecipe({\n className: 'icon-button',\n description: 'Material Design 3 icon button component',\n base: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 'full',\n cursor: 'pointer',\n transition: 'all',\n transitionDuration: 'fast',\n transitionTimingFunction: 'standard',\n outline: 'none',\n border: 'none',\n p: '0',\n _disabled: {\n opacity: 0.38,\n cursor: 'not-allowed',\n pointerEvents: 'none'\n },\n _focusVisible: {\n outline: '2px solid',\n outlineColor: 'primary',\n outlineOffset: '2px'\n }\n },\n variants: {\n variant: {\n standard: {\n bg: 'transparent',\n color: 'onSurfaceVariant',\n _hover: {\n bg: 'onSurfaceVariant',\n bgOpacity: 0.08\n }\n },\n filled: {\n bg: 'primary',\n color: 'onPrimary',\n _hover: {\n opacity: 0.92\n }\n },\n tonal: {\n bg: 'secondaryContainer',\n color: 'onSecondaryContainer',\n _hover: {\n opacity: 0.92\n }\n },\n outlined: {\n bg: 'transparent',\n color: 'onSurfaceVariant',\n borderWidth: '1px',\n borderStyle: 'solid',\n borderColor: 'outline',\n _hover: {\n bg: 'onSurfaceVariant',\n bgOpacity: 0.08\n }\n }\n },\n size: {\n sm: {\n width: '32px',\n height: '32px',\n '& svg': {\n width: '18px',\n height: '18px'\n }\n },\n md: {\n width: '40px',\n height: '40px',\n '& svg': {\n width: '24px',\n height: '24px'\n }\n },\n lg: {\n width: '48px',\n height: '48px',\n '& svg': {\n width: '24px',\n height: '24px'\n }\n }\n }\n },\n defaultVariants: {\n variant: 'standard',\n size: 'md'\n }\n});","import { defineRecipe } from '@pandacss/dev';\n\nexport const inputRecipe = defineRecipe({\n className: 'input',\n description: 'Material Design 3 text field component',\n base: {\n width: '100%',\n fontFamily: 'body',\n fontSize: 'bodyLarge',\n lineHeight: 'bodyLarge',\n color: 'onSurface',\n bg: 'transparent',\n borderRadius: 'extraSmall',\n px: 'md',\n transition: 'all',\n transitionDuration: 'fast',\n outline: 'none',\n _placeholder: {\n color: 'onSurfaceVariant',\n opacity: 0.6,\n },\n _focus: {\n outline: 'none',\n },\n _disabled: {\n opacity: 0.38,\n cursor: 'not-allowed',\n },\n },\n variants: {\n variant: {\n filled: {\n bg: 'surfaceContainerHighest',\n borderBottomWidth: '1px',\n borderBottomStyle: 'solid',\n borderBottomColor: 'onSurfaceVariant',\n borderTopLeftRadius: 'extraSmall',\n borderTopRightRadius: 'extraSmall',\n borderBottomLeftRadius: '0',\n borderBottomRightRadius: '0',\n _hover: {\n bg: 'surfaceContainerHigh',\n },\n _focus: {\n borderBottomWidth: '2px',\n borderBottomColor: 'primary',\n },\n },\n outlined: {\n bg: 'transparent',\n borderWidth: '1px',\n borderStyle: 'solid',\n borderColor: 'outline',\n _hover: {\n borderColor: 'onSurface',\n },\n _focus: {\n borderWidth: '2px',\n borderColor: 'primary',\n },\n },\n },\n size: {\n sm: {\n height: '40px',\n fontSize: 'bodySmall',\n lineHeight: 'bodySmall',\n },\n md: {\n height: '56px',\n fontSize: 'bodyLarge',\n lineHeight: 'bodyLarge',\n },\n },\n state: {\n error: {\n borderColor: 'error',\n _focus: {\n borderColor: 'error',\n },\n },\n disabled: {\n opacity: 0.38,\n cursor: 'not-allowed',\n pointerEvents: 'none',\n },\n },\n },\n defaultVariants: {\n variant: 'outlined',\n size: 'md',\n },\n});\n","import { defineSlotRecipe } from '@pandacss/dev';\n\nexport const dialogRecipe = defineSlotRecipe({\n className: 'dialog',\n description: 'Material Design 3 dialog component',\n slots: ['backdrop', 'positioner', 'content', 'title', 'description', 'closeTrigger'],\n base: {\n backdrop: {\n position: 'fixed',\n inset: '0',\n bg: 'scrim',\n opacity: 0.4,\n zIndex: 'modal',\n animation: 'fadeIn',\n _open: {\n animation: 'fadeIn',\n },\n _closed: {\n animation: 'fadeOut',\n },\n },\n positioner: {\n position: 'fixed',\n inset: '0',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 'modal',\n p: 'lg',\n },\n content: {\n position: 'relative',\n bg: 'surfaceContainerHigh',\n color: 'onSurface',\n borderRadius: 'extraLarge',\n boxShadow: 'level3',\n display: 'flex',\n flexDirection: 'column',\n maxWidth: '90vw',\n maxHeight: '90vh',\n overflow: 'hidden',\n animation: 'scaleIn',\n _open: {\n animation: 'scaleIn',\n },\n _closed: {\n animation: 'scaleOut',\n },\n },\n title: {\n fontFamily: 'headline',\n fontSize: 'headlineSmall',\n fontWeight: 'regular',\n color: 'onSurface',\n px: 'xl',\n pt: 'xl',\n pb: 'md',\n },\n description: {\n fontFamily: 'body',\n fontSize: 'bodyMedium',\n color: 'onSurfaceVariant',\n px: 'xl',\n pb: 'xl',\n flex: '1',\n overflow: 'auto',\n },\n closeTrigger: {\n position: 'absolute',\n top: 'md',\n right: 'md',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '40px',\n height: '40px',\n borderRadius: 'full',\n cursor: 'pointer',\n color: 'onSurfaceVariant',\n bg: 'transparent',\n border: 'none',\n transition: 'all',\n transitionDuration: 'fast',\n _hover: {\n bg: 'surfaceContainerHighest',\n },\n _focus: {\n outline: 'none',\n bg: 'surfaceContainerHighest',\n },\n },\n },\n variants: {\n size: {\n sm: {\n content: {\n width: '280px',\n minHeight: '140px',\n },\n },\n md: {\n content: {\n width: '560px',\n minHeight: '200px',\n },\n },\n lg: {\n content: {\n width: '800px',\n minHeight: '300px',\n },\n },\n fullscreen: {\n content: {\n width: '100vw',\n height: '100vh',\n maxWidth: '100vw',\n maxHeight: '100vh',\n borderRadius: 'none',\n },\n positioner: {\n p: '0',\n },\n },\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n","import { defineSlotRecipe } from '@pandacss/dev';\n\nexport const switchRecipe = defineSlotRecipe({\n className: 'switchControl',\n description: 'Material Design 3 switch component',\n slots: ['root', 'control', 'thumb', 'label'],\n base: {\n root: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: 'sm',\n cursor: 'pointer',\n userSelect: 'none',\n _disabled: {\n cursor: 'not-allowed',\n opacity: 0.38,\n },\n },\n control: {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n width: '52px',\n height: '32px',\n borderRadius: 'full',\n bg: 'surfaceContainerHighest',\n border: '2px solid',\n borderColor: 'outline',\n transition: 'all',\n transitionDuration: 'fast',\n flexShrink: 0,\n _checked: {\n bg: 'primary',\n borderColor: 'primary',\n },\n _disabled: {\n bg: 'surfaceVariant',\n borderColor: 'onSurface',\n opacity: 0.12,\n },\n },\n thumb: {\n position: 'absolute',\n left: '4px',\n width: '16px',\n height: '16px',\n borderRadius: 'full',\n bg: 'outline',\n transition: 'all',\n transitionDuration: 'fast',\n _checked: {\n left: '28px',\n width: '24px',\n height: '24px',\n bg: 'onPrimary',\n },\n _disabled: {\n bg: 'onSurface',\n opacity: 0.38,\n },\n },\n label: {\n fontFamily: 'body',\n fontSize: 'bodyMedium',\n color: 'onSurface',\n userSelect: 'none',\n _disabled: {\n opacity: 0.38,\n },\n },\n },\n variants: {\n size: {\n sm: {\n control: {\n width: '44px',\n height: '24px',\n },\n thumb: {\n width: '12px',\n height: '12px',\n left: '4px',\n _checked: {\n left: '24px',\n width: '16px',\n height: '16px',\n },\n },\n label: {\n fontSize: 'bodySmall',\n },\n },\n md: {\n control: {\n width: '52px',\n height: '32px',\n },\n thumb: {\n width: '16px',\n height: '16px',\n left: '4px',\n _checked: {\n left: '28px',\n width: '24px',\n height: '24px',\n },\n },\n label: {\n fontSize: 'bodyMedium',\n },\n },\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n","import type { DesignLanguageContract } from '../contracts/design-language.contract';\n\n/**\n * Material Design 3 Language Implementation\n *\n * Source color: #63A002 (TastyMakers green)\n * Generated via Material Theme Builder plugin 2024-12-24\n */\nexport const material3Language: DesignLanguageContract = {\n name: 'material3',\n version: '1.0.0',\n\n colors: {\n // From Material Theme Builder export\n primary: {\n 0: '#000000',\n 10: '#102000',\n 20: '#1F3700',\n 30: '#2F4F00',\n 40: '#3F6900',\n 50: '#518500',\n 60: '#64A104',\n 70: '#7DBD2A',\n 80: '#97D945',\n 90: '#B2F65F',\n 95: '#D2FF9B',\n 99: '#F9FFE9',\n 100: '#FFFFFF'\n },\n secondary: {\n 0: '#000000',\n 10: '#121F04',\n 20: '#263515',\n 30: '#3C4C2A',\n 40: '#54643F',\n 50: '#6C7D56',\n 60: '#85976E',\n 70: '#A0B187',\n 80: '#BBCDA1',\n 90: '#D7E9BB',\n 95: '#E5F7C9',\n 99: '#F9FFE9',\n 100: '#FFFFFF'\n },\n tertiary: {\n 0: '#000000',\n 10: '#00201E',\n 20: '#003735',\n 30: '#00504C',\n 40: '#046A66',\n 50: '#30837F',\n 60: '#4D9D98',\n 70: '#69B8B3',\n 80: '#85D4CF',\n 90: '#A1F1EB',\n 95: '#B0FFF9',\n 99: '#F2FFFD',\n 100: '#FFFFFF'\n },\n neutral: {\n 0: '#000000',\n 10: '#1B1C18',\n 20: '#30312C',\n 30: '#464742',\n 40: '#5E5F59',\n 50: '#777771',\n 60: '#91918B',\n 70: '#ABACA5',\n 80: '#C7C7C0',\n 90: '#E3E3DB',\n 95: '#F2F1E9',\n 99: '#FDFCF5',\n 100: '#FFFFFF'\n },\n neutralVariant: {\n 0: '#000000',\n 10: '#191D14',\n 20: '#2E3228',\n 30: '#44483D',\n 40: '#5C6054',\n 50: '#75796C',\n 60: '#8F9285',\n 70: '#A9AD9F',\n 80: '#C5C8BA',\n 90: '#E1E4D5',\n 95: '#EFF2E3',\n 99: '#FBFEEE',\n 100: '#FFFFFF'\n },\n error: {\n 0: '#000000',\n 10: '#410E0B',\n 20: '#601410',\n 30: '#8C1D18',\n 40: '#B3261E',\n 50: '#DC362E',\n 60: '#E46962',\n 70: '#EC928E',\n 80: '#F2B8B5',\n 90: '#F9DEDC',\n 95: '#FCEEEE',\n 99: '#FFFBF9',\n 100: '#FFFFFF'\n }\n },\n\n semantic: {\n // Light theme from Material Theme Builder\n primary: '#4C662B',\n onPrimary: '#FFFFFF',\n primaryContainer: '#CDEDA3',\n onPrimaryContainer: '#354E16',\n\n secondary: '#586249',\n onSecondary: '#FFFFFF',\n secondaryContainer: '#DCE7C8',\n onSecondaryContainer: '#404A33',\n\n tertiary: '#386663',\n onTertiary: '#FFFFFF',\n tertiaryContainer: '#BCECE7',\n onTertiaryContainer: '#1F4E4B',\n\n error: '#BA1A1A',\n onError: '#FFFFFF',\n errorContainer: '#FFDAD6',\n onErrorContainer: '#93000A',\n\n surface: '#F9FAEF',\n onSurface: '#1A1C16',\n surfaceVariant: '#E1E4D5',\n onSurfaceVariant: '#44483D',\n\n surfaceContainerLowest: '#FFFFFF',\n surfaceContainerLow: '#F3F4E9',\n surfaceContainer: '#EEEFE3',\n surfaceContainerHigh: '#E8E9DE',\n surfaceContainerHighest: '#E2E3D8',\n\n outline: '#75796C',\n outlineVariant: '#C5C8BA',\n\n inverseSurface: '#2F312A',\n inverseOnSurface: '#F1F2E6',\n inversePrimary: '#B1D18A',\n\n background: '#F9FAEF',\n onBackground: '#1A1C16',\n\n scrim: '#000000',\n shadow: '#000000'\n },\n\n // Dark theme semantic colors (for reference/dark mode implementation)\n semanticDark: {\n primary: '#B1D18A',\n onPrimary: '#1F3701',\n primaryContainer: '#354E16',\n onPrimaryContainer: '#CDEDA3',\n\n secondary: '#BFCBAD',\n onSecondary: '#2A331E',\n secondaryContainer: '#404A33',\n onSecondaryContainer: '#DCE7C8',\n\n tertiary: '#A0D0CB',\n onTertiary: '#003735',\n tertiaryContainer: '#1F4E4B',\n onTertiaryContainer: '#BCECE7',\n\n error: '#FFB4AB',\n onError: '#690005',\n errorContainer: '#93000A',\n onErrorContainer: '#FFDAD6',\n\n surface: '#12140E',\n onSurface: '#E2E3D8',\n surfaceVariant: '#44483D',\n onSurfaceVariant: '#C5C8BA',\n\n surfaceContainerLowest: '#0C0F09',\n surfaceContainerLow: '#1A1C16',\n surfaceContainer: '#1E201A',\n surfaceContainerHigh: '#282B24',\n surfaceContainerHighest: '#33362E',\n\n outline: '#8F9285',\n outlineVariant: '#44483D',\n\n inverseSurface: '#E2E3D8',\n inverseOnSurface: '#2F312A',\n inversePrimary: '#4C662B',\n\n background: '#12140E',\n onBackground: '#E2E3D8',\n\n scrim: '#000000',\n shadow: '#000000'\n },\n\n typography: {\n fonts: {\n display: 'Georgia, \"Times New Roman\", serif',\n body: 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n mono: '\"JetBrains Mono\", \"Fira Code\", Consolas, monospace'\n },\n scale: {\n displayLarge: {\n fontSize: '57px',\n lineHeight: '64px',\n fontWeight: '400',\n letterSpacing: '-0.25px',\n fontFamily: 'display'\n },\n displayMedium: {\n fontSize: '45px',\n lineHeight: '52px',\n fontWeight: '400',\n letterSpacing: '0px',\n fontFamily: 'display'\n },\n displaySmall: {\n fontSize: '36px',\n lineHeight: '44px',\n fontWeight: '400',\n letterSpacing: '0px',\n fontFamily: 'display'\n },\n headlineLarge: {\n fontSize: '32px',\n lineHeight: '40px',\n fontWeight: '400',\n letterSpacing: '0px',\n fontFamily: 'display'\n },\n headlineMedium: {\n fontSize: '28px',\n lineHeight: '36px',\n fontWeight: '400',\n letterSpacing: '0px',\n fontFamily: 'display'\n },\n headlineSmall: {\n fontSize: '24px',\n lineHeight: '32px',\n fontWeight: '400',\n letterSpacing: '0px',\n fontFamily: 'display'\n },\n titleLarge: {\n fontSize: '22px',\n lineHeight: '28px',\n fontWeight: '500',\n letterSpacing: '0px',\n fontFamily: 'body'\n },\n titleMedium: {\n fontSize: '16px',\n lineHeight: '24px',\n fontWeight: '500',\n letterSpacing: '0.15px',\n fontFamily: 'body'\n },\n titleSmall: {\n fontSize: '14px',\n lineHeight: '20px',\n fontWeight: '500',\n letterSpacing: '0.1px',\n fontFamily: 'body'\n },\n bodyLarge: {\n fontSize: '16px',\n lineHeight: '24px',\n fontWeight: '400',\n letterSpacing: '0.5px',\n fontFamily: 'body'\n },\n bodyMedium: {\n fontSize: '14px',\n lineHeight: '20px',\n fontWeight: '400',\n letterSpacing: '0.25px',\n fontFamily: 'body'\n },\n bodySmall: {\n fontSize: '12px',\n lineHeight: '16px',\n fontWeight: '400',\n letterSpacing: '0.4px',\n fontFamily: 'body'\n },\n labelLarge: {\n fontSize: '14px',\n lineHeight: '20px',\n fontWeight: '500',\n letterSpacing: '0.1px',\n fontFamily: 'body'\n },\n labelMedium: {\n fontSize: '12px',\n lineHeight: '16px',\n fontWeight: '500',\n letterSpacing: '0.5px',\n fontFamily: 'body'\n },\n labelSmall: {\n fontSize: '11px',\n lineHeight: '16px',\n fontWeight: '500',\n letterSpacing: '0.5px',\n fontFamily: 'body'\n }\n }\n },\n\n spacing: {\n none: '0px',\n xxs: '2px',\n xs: '4px',\n sm: '8px',\n md: '16px',\n lg: '24px',\n xl: '32px',\n xxl: '48px',\n xxxl: '64px'\n },\n\n shape: {\n radii: {\n none: '0px',\n extraSmall: '4px',\n small: '8px',\n medium: '12px',\n large: '16px',\n extraLarge: '28px',\n full: '9999px'\n },\n style: 'rounded'\n },\n\n elevation: {\n levels: {\n level0: 'none',\n level1: '0px 1px 2px rgba(0, 0, 0, 0.3), 0px 1px 3px 1px rgba(0, 0, 0, 0.15)',\n level2: '0px 1px 2px rgba(0, 0, 0, 0.3), 0px 2px 6px 2px rgba(0, 0, 0, 0.15)',\n level3: '0px 4px 8px 3px rgba(0, 0, 0, 0.15), 0px 1px 3px rgba(0, 0, 0, 0.3)',\n level4: '0px 6px 10px 4px rgba(0, 0, 0, 0.15), 0px 2px 3px rgba(0, 0, 0, 0.3)',\n level5: '0px 8px 12px 6px rgba(0, 0, 0, 0.15), 0px 4px 4px rgba(0, 0, 0, 0.3)'\n },\n style: 'shadow'\n },\n\n motion: {\n durations: {\n instant: '0ms',\n fast: '100ms',\n normal: '200ms',\n slow: '300ms',\n slower: '500ms'\n },\n easings: {\n standard: 'cubic-bezier(0.2, 0, 0, 1)',\n standardDecelerate: 'cubic-bezier(0, 0, 0, 1)',\n standardAccelerate: 'cubic-bezier(0.3, 0, 1, 1)',\n emphasized: 'cubic-bezier(0.2, 0, 0, 1)',\n emphasizedDecelerate: 'cubic-bezier(0.05, 0.7, 0.1, 1)',\n emphasizedAccelerate: 'cubic-bezier(0.3, 0, 0.8, 0.15)'\n },\n style: 'expressive'\n }\n};","import type { DesignLanguageContract, TonalPalette, SemanticColors } from '../contracts/design-language.contract';\n\n/**\n * Transforms a DesignLanguageContract into Panda CSS theme configuration\n */\nexport function transformToPandaTheme(language: DesignLanguageContract) {\n return {\n tokens: transformTokens(language),\n semanticTokens: transformSemanticTokens(language),\n textStyles: transformTextStyles(language)\n };\n}\n\nfunction transformTokens(language: DesignLanguageContract) {\n return {\n colors: transformColorPalettes(language.colors as unknown as Record<string, TonalPalette>),\n fonts: {\n display: { value: language.typography.fonts.display },\n body: { value: language.typography.fonts.body },\n mono: { value: language.typography.fonts.mono }\n },\n fontSizes: extractFontSizes(language.typography.scale as unknown as Record<string, { fontSize: string }>),\n lineHeights: extractLineHeights(language.typography.scale as unknown as Record<string, { lineHeight: string }>),\n fontWeights: extractFontWeights(language.typography.scale as unknown as Record<string, { fontWeight: string }>),\n letterSpacings: extractLetterSpacings(language.typography.scale as unknown as Record<string, { letterSpacing: string }>),\n spacing: objectToTokens(language.spacing as unknown as Record<string, string>),\n radii: objectToTokens(language.shape.radii as unknown as Record<string, string>),\n shadows: objectToTokens(language.elevation.levels as unknown as Record<string, string>),\n durations: objectToTokens(language.motion.durations as unknown as Record<string, string>),\n easings: objectToTokens(language.motion.easings as unknown as Record<string, string>)\n };\n}\n\nfunction transformSemanticTokens(language: DesignLanguageContract) {\n const light = language.semantic;\n const dark = language.semanticDark || light; // Fallback to light if no dark\n\n return {\n colors: Object.fromEntries(\n Object.entries(light).map(([key, lightValue]) => [\n key,\n {\n value: {\n base: lightValue,\n _dark: dark[key as keyof SemanticColors] || lightValue\n }\n }\n ])\n )\n };\n}\n\nfunction transformTextStyles(language: DesignLanguageContract) {\n const scale = language.typography.scale;\n\n return Object.fromEntries(\n Object.entries(scale).map(([name, style]) => [\n name,\n {\n value: {\n fontFamily: style.fontFamily || 'body',\n fontSize: style.fontSize,\n lineHeight: style.lineHeight,\n fontWeight: style.fontWeight,\n letterSpacing: style.letterSpacing\n }\n }\n ])\n );\n}\n\nfunction transformColorPalettes(palettes: Record<string, TonalPalette>) {\n return Object.fromEntries(\n Object.entries(palettes).map(([name, palette]) => [\n name,\n Object.fromEntries(\n Object.entries(palette).map(([tone, value]) => [\n tone,\n { value }\n ])\n )\n ])\n );\n}\n\nfunction objectToTokens<T extends Record<string, string>>(obj: T) {\n return Object.fromEntries(\n Object.entries(obj).map(([key, value]) => [key, { value }])\n );\n}\n\nfunction extractFontSizes(scale: Record<string, { fontSize: string }>) {\n return Object.fromEntries(\n Object.entries(scale).map(([name, style]) => [\n name,\n { value: style.fontSize }\n ])\n );\n}\n\nfunction extractLineHeights(scale: Record<string, { lineHeight: string }>) {\n return Object.fromEntries(\n Object.entries(scale).map(([name, style]) => [\n name,\n { value: style.lineHeight }\n ])\n );\n}\n\nfunction extractFontWeights(scale: Record<string, { fontWeight: string }>) {\n const weights = new Map<string, string>();\n Object.values(scale).forEach(style => {\n weights.set(style.fontWeight, style.fontWeight);\n });\n return Object.fromEntries(\n Array.from(weights.entries()).map(([key, value]) => [\n key,\n { value }\n ])\n );\n}\n\nfunction extractLetterSpacings(scale: Record<string, { letterSpacing: string }>) {\n return Object.fromEntries(\n Object.entries(scale).map(([name, style]) => [\n name,\n { value: style.letterSpacing }\n ])\n );\n}"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@discourser/design-system",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Aesthetic-agnostic design system with Panda CSS and Ark UI",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"publishConfig": {
|
|
7
|
+
"access": "public"
|
|
8
|
+
},
|
|
9
|
+
"main": "./dist/index.cjs",
|
|
10
|
+
"module": "./dist/index.js",
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"typesVersions": {
|
|
13
|
+
"*": {
|
|
14
|
+
"styled-system": [
|
|
15
|
+
"./styled-system/types/index.d.ts"
|
|
16
|
+
],
|
|
17
|
+
"styled-system/*": [
|
|
18
|
+
"./styled-system/*/index.d.ts"
|
|
19
|
+
]
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"exports": {
|
|
23
|
+
".": {
|
|
24
|
+
"types": "./dist/index.d.ts",
|
|
25
|
+
"import": "./dist/index.js",
|
|
26
|
+
"require": "./dist/index.cjs"
|
|
27
|
+
},
|
|
28
|
+
"./styled-system": {
|
|
29
|
+
"types": "./styled-system/types/index.d.ts",
|
|
30
|
+
"import": "./styled-system/index.mjs",
|
|
31
|
+
"require": "./styled-system/index.js"
|
|
32
|
+
},
|
|
33
|
+
"./styled-system/css": {
|
|
34
|
+
"types": "./styled-system/css/index.d.ts",
|
|
35
|
+
"import": "./styled-system/css/index.mjs",
|
|
36
|
+
"require": "./styled-system/css/index.js"
|
|
37
|
+
},
|
|
38
|
+
"./styled-system/tokens": {
|
|
39
|
+
"types": "./styled-system/tokens/index.d.ts",
|
|
40
|
+
"import": "./styled-system/tokens/index.mjs",
|
|
41
|
+
"require": "./styled-system/tokens/index.js"
|
|
42
|
+
},
|
|
43
|
+
"./styled-system/recipes": {
|
|
44
|
+
"types": "./styled-system/recipes/index.d.ts",
|
|
45
|
+
"import": "./styled-system/recipes/index.mjs",
|
|
46
|
+
"require": "./styled-system/recipes/index.js"
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"files": [
|
|
50
|
+
"dist",
|
|
51
|
+
"styled-system"
|
|
52
|
+
],
|
|
53
|
+
"scripts": {
|
|
54
|
+
"dev": "storybook dev -p 6006",
|
|
55
|
+
"build": "pnpm build:panda && pnpm build:lib",
|
|
56
|
+
"build:panda": "panda codegen",
|
|
57
|
+
"build:lib": "tsup",
|
|
58
|
+
"build:storybook": "storybook build",
|
|
59
|
+
"prepare": "panda codegen",
|
|
60
|
+
"lint": "eslint src --ext .ts,.tsx",
|
|
61
|
+
"test": "vitest",
|
|
62
|
+
"test:ui": "vitest --ui",
|
|
63
|
+
"tokens:generate": "tsx scripts/generate-palette.ts",
|
|
64
|
+
"tokens:sync": "tsx scripts/sync-tokens.ts",
|
|
65
|
+
"tokens:full": "pnpm tokens:generate && pnpm build:panda",
|
|
66
|
+
"typecheck": "tsc --noEmit",
|
|
67
|
+
"changeset": "changeset",
|
|
68
|
+
"version": "changeset version",
|
|
69
|
+
"release": "pnpm build && changeset publish"
|
|
70
|
+
},
|
|
71
|
+
"peerDependencies": {
|
|
72
|
+
"react": ">=19.0.0",
|
|
73
|
+
"react-dom": ">=19.0.0"
|
|
74
|
+
},
|
|
75
|
+
"dependencies": {
|
|
76
|
+
"@ark-ui/react": "^4.4.0",
|
|
77
|
+
"clsx": "^2.1.1"
|
|
78
|
+
},
|
|
79
|
+
"devDependencies": {
|
|
80
|
+
"@changesets/changelog-github": "^0.5.2",
|
|
81
|
+
"@changesets/cli": "^2.29.8",
|
|
82
|
+
"@material/material-color-utilities": "^0.3.0",
|
|
83
|
+
"@pandacss/dev": "^0.52.0",
|
|
84
|
+
"@storybook/addon-a11y": "^8.5.0",
|
|
85
|
+
"@storybook/addon-essentials": "^8.5.0",
|
|
86
|
+
"@storybook/react": "^8.5.0",
|
|
87
|
+
"@storybook/react-vite": "^8.5.0",
|
|
88
|
+
"@testing-library/jest-dom": "^6.9.1",
|
|
89
|
+
"@testing-library/react": "^16.3.1",
|
|
90
|
+
"@testing-library/user-event": "^14.6.1",
|
|
91
|
+
"@types/node": "^22.0.0",
|
|
92
|
+
"@types/react": "^19.0.0",
|
|
93
|
+
"@types/react-dom": "^19.0.0",
|
|
94
|
+
"@vitejs/plugin-react": "^4.3.0",
|
|
95
|
+
"@vitest/ui": "^2.1.9",
|
|
96
|
+
"axe-core": "^4.11.0",
|
|
97
|
+
"eslint": "^9.0.0",
|
|
98
|
+
"jest-axe": "^10.0.0",
|
|
99
|
+
"jsdom": "^27.4.0",
|
|
100
|
+
"prettier": "^3.3.1",
|
|
101
|
+
"react": "^19.0.0",
|
|
102
|
+
"react-dom": "^19.0.0",
|
|
103
|
+
"storybook": "^8.5.0",
|
|
104
|
+
"tsup": "^8.3.0",
|
|
105
|
+
"tsx": "^4.19.0",
|
|
106
|
+
"typescript": "^5.7.0",
|
|
107
|
+
"vite": "^6.0.0",
|
|
108
|
+
"vitest": "^2.1.0"
|
|
109
|
+
},
|
|
110
|
+
"keywords": [
|
|
111
|
+
"design-system",
|
|
112
|
+
"panda-css",
|
|
113
|
+
"ark-ui",
|
|
114
|
+
"material-design-3",
|
|
115
|
+
"react",
|
|
116
|
+
"components"
|
|
117
|
+
],
|
|
118
|
+
"license": "MIT",
|
|
119
|
+
"repository": {
|
|
120
|
+
"type": "git",
|
|
121
|
+
"url": "https://github.com/tastymakers/Discourser-Design-System.git"
|
|
122
|
+
}
|
|
123
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { withoutSpace } from '../helpers.mjs';
|
|
2
|
+
|
|
3
|
+
const conditionsStr = "_light,_dark,_hover,_focus,_focusWithin,_focusVisible,_disabled,_active,_visited,_target,_readOnly,_readWrite,_empty,_checked,_enabled,_expanded,_highlighted,_complete,_incomplete,_dragging,_before,_after,_firstLetter,_firstLine,_marker,_selection,_file,_backdrop,_first,_last,_only,_even,_odd,_firstOfType,_lastOfType,_onlyOfType,_peerFocus,_peerHover,_peerActive,_peerFocusWithin,_peerFocusVisible,_peerDisabled,_peerChecked,_peerInvalid,_peerExpanded,_peerPlaceholderShown,_groupFocus,_groupHover,_groupActive,_groupFocusWithin,_groupFocusVisible,_groupDisabled,_groupChecked,_groupExpanded,_groupInvalid,_indeterminate,_required,_valid,_invalid,_autofill,_inRange,_outOfRange,_placeholder,_placeholderShown,_pressed,_selected,_grabbed,_underValue,_overValue,_atValue,_default,_optional,_open,_closed,_fullscreen,_loading,_hidden,_current,_currentPage,_currentStep,_today,_unavailable,_rangeStart,_rangeEnd,_now,_topmost,_motionReduce,_motionSafe,_print,_landscape,_portrait,_osDark,_osLight,_highContrast,_lessContrast,_moreContrast,_ltr,_rtl,_scrollbar,_scrollbarThumb,_scrollbarTrack,_horizontal,_vertical,_icon,_starting,sm,smOnly,smDown,md,mdOnly,mdDown,lg,lgOnly,lgDown,xl,xlOnly,xlDown,2xl,2xlOnly,2xlDown,smToMd,smToLg,smToXl,smTo2xl,mdToLg,mdToXl,mdTo2xl,lgToXl,lgTo2xl,xlTo2xl,@/xs,@/sm,@/md,@/lg,@/xl,@/2xl,@/3xl,@/4xl,@/5xl,@/6xl,@/7xl,@/8xl,base"
|
|
4
|
+
const conditions = new Set(conditionsStr.split(','))
|
|
5
|
+
|
|
6
|
+
const conditionRegex = /^@|&|&$/
|
|
7
|
+
|
|
8
|
+
export function isCondition(value){
|
|
9
|
+
return conditions.has(value) || conditionRegex.test(value)
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const underscoreRegex = /^_/
|
|
13
|
+
const conditionsSelectorRegex = /&|@/
|
|
14
|
+
|
|
15
|
+
export function finalizeConditions(paths){
|
|
16
|
+
return paths.map((path) => {
|
|
17
|
+
if (conditions.has(path)){
|
|
18
|
+
return path.replace(underscoreRegex, '')
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if (conditionsSelectorRegex.test(path)){
|
|
22
|
+
return `[${withoutSpace(path.trim())}]`
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return path
|
|
26
|
+
})}
|
|
27
|
+
|
|
28
|
+
export function sortConditions(paths){
|
|
29
|
+
return paths.sort((a, b) => {
|
|
30
|
+
const aa = isCondition(a)
|
|
31
|
+
const bb = isCondition(b)
|
|
32
|
+
if (aa && !bb) return 1
|
|
33
|
+
if (!aa && bb) return -1
|
|
34
|
+
return 0
|
|
35
|
+
})
|
|
36
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
import type { SystemStyleObject } from '../types/index';
|
|
3
|
+
|
|
4
|
+
type Styles = SystemStyleObject | undefined | null | false
|
|
5
|
+
|
|
6
|
+
interface CssRawFunction {
|
|
7
|
+
(styles: Styles): SystemStyleObject
|
|
8
|
+
(styles: Styles[]): SystemStyleObject
|
|
9
|
+
(...styles: Array<Styles | Styles[]>): SystemStyleObject
|
|
10
|
+
(styles: Styles): SystemStyleObject
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
interface CssFunction {
|
|
14
|
+
(styles: Styles): string
|
|
15
|
+
(styles: Styles[]): string
|
|
16
|
+
(...styles: Array<Styles | Styles[]>): string
|
|
17
|
+
(styles: Styles): string
|
|
18
|
+
|
|
19
|
+
raw: CssRawFunction
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export declare const css: CssFunction;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { createCss, createMergeCss, hypenateProperty, withoutSpace } from '../helpers.mjs';
|
|
2
|
+
import { sortConditions, finalizeConditions } from './conditions.mjs';
|
|
3
|
+
|
|
4
|
+
const utilities = "aspectRatio:asp,boxDecorationBreak:bx-db,zIndex:z,boxSizing:bx-s,objectPosition:obj-p,objectFit:obj-f,overscrollBehavior:ovs-b,overscrollBehaviorX:ovs-bx,overscrollBehaviorY:ovs-by,position:pos/1,top:top,left:left,inset:inset,insetInline:inset-x/insetX,insetBlock:inset-y/insetY,insetBlockEnd:inset-be,insetBlockStart:inset-bs,insetInlineEnd:inset-e/insetEnd/end,insetInlineStart:inset-s/insetStart/start,right:right,bottom:bottom,float:float,visibility:vis,display:d,hideFrom:hide,hideBelow:show,flexBasis:flex-b,flex:flex,flexDirection:flex-d/flexDir,flexGrow:flex-g,flexShrink:flex-sh,gridTemplateColumns:grid-tc,gridTemplateRows:grid-tr,gridColumn:grid-c,gridRow:grid-r,gridColumnStart:grid-cs,gridColumnEnd:grid-ce,gridAutoFlow:grid-af,gridAutoColumns:grid-ac,gridAutoRows:grid-ar,gap:gap,gridGap:grid-g,gridRowGap:grid-rg,gridColumnGap:grid-cg,rowGap:rg,columnGap:cg,justifyContent:jc,alignContent:ac,alignItems:ai,alignSelf:as,padding:p/1,paddingLeft:pl/1,paddingRight:pr/1,paddingTop:pt/1,paddingBottom:pb/1,paddingBlock:py/1/paddingY,paddingBlockEnd:pbe,paddingBlockStart:pbs,paddingInline:px/paddingX/1,paddingInlineEnd:pe/1/paddingEnd,paddingInlineStart:ps/1/paddingStart,marginLeft:ml/1,marginRight:mr/1,marginTop:mt/1,marginBottom:mb/1,margin:m/1,marginBlock:my/1/marginY,marginBlockEnd:mbe,marginBlockStart:mbs,marginInline:mx/1/marginX,marginInlineEnd:me/1/marginEnd,marginInlineStart:ms/1/marginStart,spaceX:sx,spaceY:sy,outlineWidth:ring-w/ringWidth,outlineColor:ring-c/ringColor,outline:ring/1,outlineOffset:ring-o/ringOffset,divideX:dvd-x,divideY:dvd-y,divideColor:dvd-c,divideStyle:dvd-s,width:w/1,inlineSize:w-is,minWidth:min-w/minW,minInlineSize:min-w-is,maxWidth:max-w/maxW,maxInlineSize:max-w-is,height:h/1,blockSize:h-bs,minHeight:min-h/minH,minBlockSize:min-h-bs,maxHeight:max-h/maxH,maxBlockSize:max-b,color:c,fontFamily:ff,fontSize:fs,fontSizeAdjust:fs-a,fontPalette:fp,fontKerning:fk,fontFeatureSettings:ff-s,fontWeight:fw,fontSmoothing:fsmt,fontVariant:fv,fontVariantAlternates:fv-alt,fontVariantCaps:fv-caps,fontVariationSettings:fv-s,fontVariantNumeric:fv-num,letterSpacing:ls,lineHeight:lh,textAlign:ta,textDecoration:td,textDecorationColor:td-c,textEmphasisColor:te-c,textDecorationStyle:td-s,textDecorationThickness:td-t,textUnderlineOffset:tu-o,textTransform:tt,textIndent:ti,textShadow:tsh,textShadowColor:tsh-c/textShadowColor,textOverflow:tov,verticalAlign:va,wordBreak:wb,textWrap:tw,truncate:trunc,lineClamp:lc,listStyleType:li-t,listStylePosition:li-pos,listStyleImage:li-img,listStyle:li-s,backgroundPosition:bg-p/bgPosition,backgroundPositionX:bg-p-x/bgPositionX,backgroundPositionY:bg-p-y/bgPositionY,backgroundAttachment:bg-a/bgAttachment,backgroundClip:bg-cp/bgClip,background:bg/1,backgroundColor:bg-c/bgColor,backgroundOrigin:bg-o/bgOrigin,backgroundImage:bg-i/bgImage,backgroundRepeat:bg-r/bgRepeat,backgroundBlendMode:bg-bm/bgBlendMode,backgroundSize:bg-s/bgSize,backgroundGradient:bg-grad/bgGradient,textGradient:txt-grad,gradientFromPosition:grad-from-pos,gradientToPosition:grad-to-pos,gradientFrom:grad-from,gradientTo:grad-to,gradientVia:grad-via,gradientViaPosition:grad-via-pos,borderRadius:bdr/rounded,borderTopLeftRadius:bdr-tl/roundedTopLeft,borderTopRightRadius:bdr-tr/roundedTopRight,borderBottomRightRadius:bdr-br/roundedBottomRight,borderBottomLeftRadius:bdr-bl/roundedBottomLeft,borderTopRadius:bdr-t/roundedTop,borderRightRadius:bdr-r/roundedRight,borderBottomRadius:bdr-b/roundedBottom,borderLeftRadius:bdr-l/roundedLeft,borderStartStartRadius:bdr-ss/roundedStartStart,borderStartEndRadius:bdr-se/roundedStartEnd,borderStartRadius:bdr-s/roundedStart,borderEndStartRadius:bdr-es/roundedEndStart,borderEndEndRadius:bdr-ee/roundedEndEnd,borderEndRadius:bdr-e/roundedEnd,border:bd,borderWidth:bd-w,borderTopWidth:bd-t-w,borderLeftWidth:bd-l-w,borderRightWidth:bd-r-w,borderBottomWidth:bd-b-w,borderColor:bd-c,borderInline:bd-x/borderX,borderInlineWidth:bd-x-w/borderXWidth,borderInlineColor:bd-x-c/borderXColor,borderBlock:bd-y/borderY,borderBlockWidth:bd-y-w/borderYWidth,borderBlockColor:bd-y-c/borderYColor,borderLeft:bd-l,borderLeftColor:bd-l-c,borderInlineStart:bd-s/borderStart,borderInlineStartWidth:bd-s-w/borderStartWidth,borderInlineStartColor:bd-s-c/borderStartColor,borderRight:bd-r,borderRightColor:bd-r-c,borderInlineEnd:bd-e/borderEnd,borderInlineEndWidth:bd-e-w/borderEndWidth,borderInlineEndColor:bd-e-c/borderEndColor,borderTop:bd-t,borderTopColor:bd-t-c,borderBottom:bd-b,borderBottomColor:bd-b-c,borderBlockEnd:bd-be,borderBlockEndColor:bd-be-c,borderBlockStart:bd-bs,borderBlockStartColor:bd-bs-c,opacity:op,boxShadow:bx-sh/shadow,boxShadowColor:bx-sh-c/shadowColor,mixBlendMode:mix-bm,filter:filter,brightness:brightness,contrast:contrast,grayscale:grayscale,hueRotate:hue-rotate,invert:invert,saturate:saturate,sepia:sepia,dropShadow:drop-shadow,blur:blur,backdropFilter:bkdp,backdropBlur:bkdp-blur,backdropBrightness:bkdp-brightness,backdropContrast:bkdp-contrast,backdropGrayscale:bkdp-grayscale,backdropHueRotate:bkdp-hue-rotate,backdropInvert:bkdp-invert,backdropOpacity:bkdp-opacity,backdropSaturate:bkdp-saturate,backdropSepia:bkdp-sepia,borderCollapse:bd-cl,borderSpacing:bd-sp,borderSpacingX:bd-sx,borderSpacingY:bd-sy,tableLayout:tbl,transitionTimingFunction:trs-tmf,transitionDelay:trs-dly,transitionDuration:trs-dur,transitionProperty:trs-prop,transition:trs,animation:anim,animationName:anim-n,animationTimingFunction:anim-tmf,animationDuration:anim-dur,animationDelay:anim-dly,animationPlayState:anim-ps,animationComposition:anim-comp,animationFillMode:anim-fm,animationDirection:anim-dir,animationIterationCount:anim-ic,animationRange:anim-r,animationState:anim-s,animationRangeStart:anim-rs,animationRangeEnd:anim-re,animationTimeline:anim-tl,transformOrigin:trf-o,transformBox:trf-b,transformStyle:trf-s,transform:trf,rotate:rotate,rotateX:rotate-x,rotateY:rotate-y,rotateZ:rotate-z,scale:scale,scaleX:scale-x,scaleY:scale-y,translate:translate,translateX:translate-x/x,translateY:translate-y/y,translateZ:translate-z/z,accentColor:ac-c,caretColor:ca-c,scrollBehavior:scr-bhv,scrollbar:scr-bar,scrollbarColor:scr-bar-c,scrollbarGutter:scr-bar-g,scrollbarWidth:scr-bar-w,scrollMargin:scr-m,scrollMarginLeft:scr-ml,scrollMarginRight:scr-mr,scrollMarginTop:scr-mt,scrollMarginBottom:scr-mb,scrollMarginBlock:scr-my/scrollMarginY,scrollMarginBlockEnd:scr-mbe,scrollMarginBlockStart:scr-mbt,scrollMarginInline:scr-mx/scrollMarginX,scrollMarginInlineEnd:scr-me,scrollMarginInlineStart:scr-ms,scrollPadding:scr-p,scrollPaddingBlock:scr-py/scrollPaddingY,scrollPaddingBlockStart:scr-pbs,scrollPaddingBlockEnd:scr-pbe,scrollPaddingInline:scr-px/scrollPaddingX,scrollPaddingInlineEnd:scr-pe,scrollPaddingInlineStart:scr-ps,scrollPaddingLeft:scr-pl,scrollPaddingRight:scr-pr,scrollPaddingTop:scr-pt,scrollPaddingBottom:scr-pb,scrollSnapAlign:scr-sa,scrollSnapStop:scrs-s,scrollSnapType:scrs-t,scrollSnapStrictness:scrs-strt,scrollSnapMargin:scrs-m,scrollSnapMarginTop:scrs-mt,scrollSnapMarginBottom:scrs-mb,scrollSnapMarginLeft:scrs-ml,scrollSnapMarginRight:scrs-mr,scrollSnapCoordinate:scrs-c,scrollSnapDestination:scrs-d,scrollSnapPointsX:scrs-px,scrollSnapPointsY:scrs-py,scrollSnapTypeX:scrs-tx,scrollSnapTypeY:scrs-ty,scrollTimeline:scrtl,scrollTimelineAxis:scrtl-a,scrollTimelineName:scrtl-n,touchAction:tch-a,userSelect:us,overflow:ov,overflowWrap:ov-wrap,overflowX:ov-x,overflowY:ov-y,overflowAnchor:ov-a,overflowBlock:ov-b,overflowInline:ov-i,overflowClipBox:ovcp-bx,overflowClipMargin:ovcp-m,overscrollBehaviorBlock:ovs-bb,overscrollBehaviorInline:ovs-bi,fill:fill,stroke:stk,strokeWidth:stk-w,strokeDasharray:stk-dsh,strokeDashoffset:stk-do,strokeLinecap:stk-lc,strokeLinejoin:stk-lj,strokeMiterlimit:stk-ml,strokeOpacity:stk-op,srOnly:sr,debug:debug,appearance:ap,backfaceVisibility:bfv,clipPath:cp-path,hyphens:hy,mask:msk,maskImage:msk-i,maskSize:msk-s,textSizeAdjust:txt-adj,container:cq,containerName:cq-n,containerType:cq-t,textStyle:textStyle"
|
|
5
|
+
|
|
6
|
+
const classNameByProp = new Map()
|
|
7
|
+
const shorthands = new Map()
|
|
8
|
+
utilities.split(',').forEach((utility) => {
|
|
9
|
+
const [prop, meta] = utility.split(':')
|
|
10
|
+
const [className, ...shorthandList] = meta.split('/')
|
|
11
|
+
classNameByProp.set(prop, className)
|
|
12
|
+
if (shorthandList.length) {
|
|
13
|
+
shorthandList.forEach((shorthand) => {
|
|
14
|
+
shorthands.set(shorthand === '1' ? className : shorthand, prop)
|
|
15
|
+
})
|
|
16
|
+
}
|
|
17
|
+
})
|
|
18
|
+
|
|
19
|
+
const resolveShorthand = (prop) => shorthands.get(prop) || prop
|
|
20
|
+
|
|
21
|
+
const context = {
|
|
22
|
+
|
|
23
|
+
conditions: {
|
|
24
|
+
shift: sortConditions,
|
|
25
|
+
finalize: finalizeConditions,
|
|
26
|
+
breakpoints: { keys: ["base","sm","md","lg","xl","2xl"] }
|
|
27
|
+
},
|
|
28
|
+
utility: {
|
|
29
|
+
|
|
30
|
+
transform: (prop, value) => {
|
|
31
|
+
const key = resolveShorthand(prop)
|
|
32
|
+
const propKey = classNameByProp.get(key) || hypenateProperty(key)
|
|
33
|
+
return { className: `${propKey}_${withoutSpace(value)}` }
|
|
34
|
+
},
|
|
35
|
+
hasShorthand: true,
|
|
36
|
+
toHash: (path, hashFn) => hashFn(path.join(":")),
|
|
37
|
+
resolveShorthand: resolveShorthand,
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
const cssFn = createCss(context)
|
|
42
|
+
export const css = (...styles) => cssFn(mergeCss(...styles))
|
|
43
|
+
css.raw = (...styles) => mergeCss(...styles)
|
|
44
|
+
|
|
45
|
+
export const { mergeCss, assignCss } = createMergeCss(context)
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { compact, mergeProps, memo, splitProps, uniq } from '../helpers.mjs';
|
|
2
|
+
import { css, mergeCss } from './css.mjs';
|
|
3
|
+
|
|
4
|
+
const defaults = (conf) => ({
|
|
5
|
+
base: {},
|
|
6
|
+
variants: {},
|
|
7
|
+
defaultVariants: {},
|
|
8
|
+
compoundVariants: [],
|
|
9
|
+
...conf,
|
|
10
|
+
})
|
|
11
|
+
|
|
12
|
+
export function cva(config) {
|
|
13
|
+
const { base, variants, defaultVariants, compoundVariants } = defaults(config)
|
|
14
|
+
const getVariantProps = (variants) => ({ ...defaultVariants, ...compact(variants) })
|
|
15
|
+
|
|
16
|
+
function resolve(props = {}) {
|
|
17
|
+
const computedVariants = getVariantProps(props)
|
|
18
|
+
let variantCss = { ...base }
|
|
19
|
+
for (const [key, value] of Object.entries(computedVariants)) {
|
|
20
|
+
if (variants[key]?.[value]) {
|
|
21
|
+
variantCss = mergeCss(variantCss, variants[key][value])
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
const compoundVariantCss = getCompoundVariantCss(compoundVariants, computedVariants)
|
|
25
|
+
return mergeCss(variantCss, compoundVariantCss)
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function merge(__cva) {
|
|
29
|
+
const override = defaults(__cva.config)
|
|
30
|
+
const variantKeys = uniq(__cva.variantKeys, Object.keys(variants))
|
|
31
|
+
return cva({
|
|
32
|
+
base: mergeCss(base, override.base),
|
|
33
|
+
variants: Object.fromEntries(
|
|
34
|
+
variantKeys.map((key) => [key, mergeCss(variants[key], override.variants[key])]),
|
|
35
|
+
),
|
|
36
|
+
defaultVariants: mergeProps(defaultVariants, override.defaultVariants),
|
|
37
|
+
compoundVariants: [...compoundVariants, ...override.compoundVariants],
|
|
38
|
+
})
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function cvaFn(props) {
|
|
42
|
+
return css(resolve(props))
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const variantKeys = Object.keys(variants)
|
|
46
|
+
|
|
47
|
+
function splitVariantProps(props) {
|
|
48
|
+
return splitProps(props, variantKeys)
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
const variantMap = Object.fromEntries(Object.entries(variants).map(([key, value]) => [key, Object.keys(value)]))
|
|
52
|
+
|
|
53
|
+
return Object.assign(memo(cvaFn), {
|
|
54
|
+
__cva__: true,
|
|
55
|
+
variantMap,
|
|
56
|
+
variantKeys,
|
|
57
|
+
raw: resolve,
|
|
58
|
+
config,
|
|
59
|
+
merge,
|
|
60
|
+
splitVariantProps,
|
|
61
|
+
getVariantProps
|
|
62
|
+
})
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export function getCompoundVariantCss(compoundVariants, variantMap) {
|
|
66
|
+
let result = {}
|
|
67
|
+
compoundVariants.forEach((compoundVariant) => {
|
|
68
|
+
const isMatching = Object.entries(compoundVariant).every(([key, value]) => {
|
|
69
|
+
if (key === 'css') return true
|
|
70
|
+
|
|
71
|
+
const values = Array.isArray(value) ? value : [value]
|
|
72
|
+
return values.some((value) => variantMap[key] === value)
|
|
73
|
+
})
|
|
74
|
+
|
|
75
|
+
if (isMatching) {
|
|
76
|
+
result = mergeCss(result, compoundVariant.css)
|
|
77
|
+
}
|
|
78
|
+
})
|
|
79
|
+
|
|
80
|
+
return result
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export function assertCompoundVariant(name, compoundVariants, variants, prop) {
|
|
84
|
+
if (compoundVariants.length > 0 && typeof variants?.[prop] === 'object') {
|
|
85
|
+
throw new Error(`[recipe:${name}:${prop}] Conditions are not supported when using compound variants.`)
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { compact, getSlotRecipes, memo, splitProps } from '../helpers.mjs';
|
|
2
|
+
import { cva } from './cva.mjs';
|
|
3
|
+
import { cx } from './cx.mjs';
|
|
4
|
+
|
|
5
|
+
const slotClass = (className, slot) => className + '__' + slot
|
|
6
|
+
|
|
7
|
+
export function sva(config) {
|
|
8
|
+
const slots = Object.entries(getSlotRecipes(config)).map(([slot, slotCva]) => [slot, cva(slotCva)])
|
|
9
|
+
const defaultVariants = config.defaultVariants ?? {}
|
|
10
|
+
|
|
11
|
+
function svaFn(props) {
|
|
12
|
+
const result = slots.map(([slot, cvaFn]) => [slot, cx(cvaFn(props), config.className && slotClass(config.className, slot))])
|
|
13
|
+
return Object.fromEntries(result)
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function raw(props) {
|
|
17
|
+
const result = slots.map(([slot, cvaFn]) => [slot, cvaFn.raw(props)])
|
|
18
|
+
return Object.fromEntries(result)
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const variants = config.variants ?? {};
|
|
22
|
+
const variantKeys = Object.keys(variants);
|
|
23
|
+
|
|
24
|
+
function splitVariantProps(props) {
|
|
25
|
+
return splitProps(props, variantKeys);
|
|
26
|
+
}
|
|
27
|
+
const getVariantProps = (variants) => ({ ...(defaultVariants || {}), ...compact(variants) })
|
|
28
|
+
|
|
29
|
+
const variantMap = Object.fromEntries(
|
|
30
|
+
Object.entries(variants).map(([key, value]) => [key, Object.keys(value)])
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
return Object.assign(memo(svaFn), {
|
|
34
|
+
__cva__: false,
|
|
35
|
+
raw,
|
|
36
|
+
variantMap,
|
|
37
|
+
variantKeys,
|
|
38
|
+
splitVariantProps,
|
|
39
|
+
getVariantProps,
|
|
40
|
+
})
|
|
41
|
+
}
|