Files
web/packages/design-system/lib/components/Button/variants.ts
Rasmus Langvad d0546926a9 Merged in fix/3697-prettier-configs (pull request #3396)
fix(SW-3691): Setup one prettier config for whole repo

* Setup prettierrc in root and remove other configs


Approved-by: Joakim Jäderberg
Approved-by: Linus Flood
2026-01-07 12:45:50 +00:00

54 lines
1.1 KiB
TypeScript

import { cva } from "class-variance-authority"
import { deepmerge } from "deepmerge-ts"
import styles from "./button.module.css"
export const config = {
variants: {
variant: {
Primary: styles["variant-primary"],
Secondary: styles["variant-secondary"],
Tertiary: styles["variant-tertiary"],
Text: styles["variant-text"],
},
color: {
Primary: styles["color-primary"],
Inverted: styles["color-inverted"],
},
size: {
sm: styles["size-sm"],
md: styles["size-md"],
lg: styles["size-lg"],
},
wrapping: {
true: undefined,
false: styles["no-wrapping"],
},
fullWidth: {
true: styles["full-width"],
false: undefined,
},
},
defaultVariants: {
variant: "Primary",
color: "Primary",
size: "lg",
wrapping: true,
},
} as const
const buttonConfig = {
variants: {
...config.variants,
},
defaultVariants: {
...config.defaultVariants,
},
} as const
export const variants = cva(styles.button, buttonConfig)
export function withButton<T>(config: T) {
return deepmerge(buttonConfig, config)
}