infinity-ui-elements 1.4.0 → 1.4.1-beta.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.
Files changed (47) hide show
  1. package/dist/components/Badge/Badge.d.ts +28 -0
  2. package/dist/components/Badge/Badge.d.ts.map +1 -0
  3. package/dist/components/Badge/Badge.stories.d.ts +16 -0
  4. package/dist/components/Badge/Badge.stories.d.ts.map +1 -0
  5. package/dist/components/Badge/index.d.ts +3 -0
  6. package/dist/components/Badge/index.d.ts.map +1 -0
  7. package/dist/components/Button/Button.d.ts +1 -1
  8. package/dist/components/Checkbox/Checkbox.d.ts.map +1 -1
  9. package/dist/components/Counter/Counter.d.ts +24 -0
  10. package/dist/components/Counter/Counter.d.ts.map +1 -0
  11. package/dist/components/Counter/Counter.stories.d.ts +14 -0
  12. package/dist/components/Counter/Counter.stories.d.ts.map +1 -0
  13. package/dist/components/Counter/index.d.ts +3 -0
  14. package/dist/components/Counter/index.d.ts.map +1 -0
  15. package/dist/components/Divider/Divider.d.ts +37 -0
  16. package/dist/components/Divider/Divider.d.ts.map +1 -0
  17. package/dist/components/Divider/Divider.stories.d.ts +12 -0
  18. package/dist/components/Divider/Divider.stories.d.ts.map +1 -0
  19. package/dist/components/Divider/index.d.ts +2 -0
  20. package/dist/components/Divider/index.d.ts.map +1 -0
  21. package/dist/components/ListItem/ListItem.d.ts +63 -0
  22. package/dist/components/ListItem/ListItem.d.ts.map +1 -0
  23. package/dist/components/ListItem/ListItem.stories.d.ts +66 -0
  24. package/dist/components/ListItem/ListItem.stories.d.ts.map +1 -0
  25. package/dist/components/ListItem/index.d.ts +3 -0
  26. package/dist/components/ListItem/index.d.ts.map +1 -0
  27. package/dist/components/Radio/Radio.d.ts +45 -0
  28. package/dist/components/Radio/Radio.d.ts.map +1 -0
  29. package/dist/components/Radio/Radio.stories.d.ts +23 -0
  30. package/dist/components/Radio/Radio.stories.d.ts.map +1 -0
  31. package/dist/components/Radio/index.d.ts +3 -0
  32. package/dist/components/Radio/index.d.ts.map +1 -0
  33. package/dist/components/Switch/Switch.d.ts +39 -0
  34. package/dist/components/Switch/Switch.d.ts.map +1 -0
  35. package/dist/components/Switch/Switch.stories.d.ts +37 -0
  36. package/dist/components/Switch/Switch.stories.d.ts.map +1 -0
  37. package/dist/components/Switch/index.d.ts +3 -0
  38. package/dist/components/Switch/index.d.ts.map +1 -0
  39. package/dist/components/TextArea/TextArea.d.ts.map +1 -1
  40. package/dist/index.css +1 -1
  41. package/dist/index.d.ts +6 -0
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.esm.js +756 -23
  44. package/dist/index.esm.js.map +1 -1
  45. package/dist/index.js +765 -21
  46. package/dist/index.js.map +1 -1
  47. package/package.json +6 -2
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/lib/utils.ts","../src/components/Button/Button.tsx","../src/components/Text/Text.tsx","../src/components/FormFooter/FormFooter.tsx","../src/lib/icons.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/Tooltip/Tooltip.tsx","../src/components/FormHeader/FormHeader.tsx","../src/components/TextArea/TextArea.tsx","../src/components/TextField/TextField.tsx"],"sourcesContent":["import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n// Define patterns for custom classes that should be preserved\n// This approach is more scalable than hardcoding individual class names\nconst CUSTOM_CLASS_PATTERNS = [\n // Custom font classes\n /^font-(functional|display)$/,\n // Custom font-size classes\n /^font-size-/,\n // Custom leading (line-height) classes\n /^leading-(00|25|50|75|100|200|300|400|500|600|700|800|900|1000|1100)$/,\n // Custom text utility classes (text-display, text-heading, text-body, text-caption variants)\n /^text-(display|heading|body|caption)(-\\w+)?(-\\w+)?$/,\n // Text weight classes\n /^text-weight-/,\n // Text color classes\n /^text-color-/,\n /^outline-width-/,\n /^border-width-/,\n // Custom spacing classes (example)\n // /^spacing-(xs|sm|md|lg|xl)$/,\n // Custom color classes (example)\n // /^color-(primary|secondary|accent)$/,\n // Any class that starts with 'custom-'\n /^custom-/,\n];\n\nfunction isCustomClass(className: string): boolean {\n return CUSTOM_CLASS_PATTERNS.some((pattern) => pattern.test(className));\n}\n\nexport function cn(...inputs: ClassValue[]) {\n // Use clsx first to combine classes, then use twMerge for standard Tailwind classes\n const combined = clsx(inputs);\n\n // Split classes and filter out our custom classes before merging\n const classes = combined.split(\" \");\n const customClasses = classes.filter((cls) => isCustomClass(cls));\n const standardClasses = classes.filter((cls) => !isCustomClass(cls));\n\n // Merge standard classes and add back custom classes\n const mergedStandard = twMerge(standardClasses.join(\" \"));\n return clsx(mergedStandard, customClasses);\n}\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva } from \"class-variance-authority\";\nimport { PulseLoader, ClipLoader } from \"react-spinners\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst buttonVariants = cva(\n \"items-center gap-3 justify-center whitespace-nowrap ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none\",\n {\n variants: {\n variant: {\n primary:\n \"bg-action-fill-primary-default text-action-ink-on-primary-normal hover:bg-action-fill-primary-hover\",\n secondary:\n \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n tertiary: \"hover:bg-accent hover:text-accent-foreground\",\n },\n color: {\n primary: \"\",\n positive: \"\",\n negative: \"\",\n notice: \"\",\n info: \"\",\n neutral: \"\",\n },\n size: {\n xsmall: \"md:h-[28px] px-3 rounded-medium text-body-small-medium\",\n small: \"md:h-[32px] px-4 rounded-medium text-body-small-medium\",\n medium: \"md:h-[36px] px-6 py-2 rounded-medium text-body-medium-medium\",\n large: \"md:h-[44px] px-6 rounded-xlarge text-body-large-medium\",\n },\n isIconOnly: {\n true: \"aspect-square p-0\",\n false: \"\",\n },\n isLoading: {\n true: \"cursor-not-allowed\",\n false: \"\",\n },\n isDisabled: {\n true: \"cursor-not-allowed\",\n false: \"cursor-pointer\",\n },\n isFullWidth: {\n true: \"flex w-full\",\n false: \"flex w-fit\",\n },\n },\n compoundVariants: [\n // Primary variant colors\n {\n variant: \"primary\",\n color: \"primary\",\n class: `bg-action-fill-primary-default text-action-ink-on-primary-normal \n hover:bg-action-fill-primary-hover \n disabled:bg-action-fill-primary-disabled\n disabled:text-action-ink-primary-disabled,\n active:bg-action-fill-primary-activated\n `,\n },\n {\n variant: \"primary\",\n color: \"positive\",\n class: `bg-action-fill-positive-default text-action-ink-on-primary-normal \n hover:bg-action-fill-positive-hover \n disabled:bg-action-fill-primary-disabled\n disabled:text-action-ink-primary-disabled\n active:bg-action-fill-positive-activated\n `,\n },\n {\n variant: \"primary\",\n color: \"negative\",\n class: `bg-action-fill-negative-default text-action-ink-on-primary-normal \n hover:bg-action-fill-negative-hover \n disabled:bg-action-fill-negative-disabled\n disabled:text-action-ink-negative-disabled\n active:bg-action-fill-negative-activated\n `,\n },\n {\n variant: \"primary\",\n color: \"notice\",\n class: `bg-action-fill-notice-default text-action-ink-on-primary-normal \n hover:bg-action-fill-notice-hover \n disabled:bg-action-fill-notice-disabled\n disabled:text-action-ink-notice-disabled\n active:bg-action-fill-notice-activated\n `,\n },\n {\n variant: \"primary\",\n color: \"info\",\n class: `bg-action-fill-info-default text-action-ink-on-primary-normal \n hover:bg-action-fill-info-hover \n disabled:bg-action-fill-info-disabled\n disabled:text-action-ink-info-disabled\n active:bg-action-fill-info-activated\n `,\n },\n {\n variant: \"primary\",\n color: \"neutral\",\n class: `bg-action-fill-neutral-default text-action-ink-on-primary-normal \n hover:bg-action-fill-neutral-hover \n disabled:bg-action-fill-neutral-disabled\n disabled:text-action-ink-neutral-disabled\n active:bg-action-fill-neutral-activated\n `,\n },\n // Secondary variant colors\n {\n variant: \"secondary\",\n color: \"primary\",\n class: `\n border-action-outline-info-faded \n text-action-ink-primary-normal \n hover:border-action-outline-primary-faded-hover \n hover:bg-action-fill-primary-faded-hover\n disabled:bg-action-outline-info-disabled\n disabled:text-action-ink-primary-disabled\n disabled:border-action-outline-primary-disabled\n active:border-action-outline-primary-faded-activated\n active:bg-action-fill-primary-faded-activated\n `,\n },\n {\n variant: \"secondary\",\n color: \"positive\",\n class: `\n border-action-outline-positive-faded \n text-action-ink-positive-normal \n hover:border-action-outline-positive-faded-hover \n hover:bg-action-fill-positive-faded-hover \n disabled:bg-action-outline-positive-disabled\n disabled:text-action-ink-positive-disabled\n disabled:border-action-outline-positive-disabled\n active:border-action-outline-positive-faded-activated\n active:bg-action-fill-positive-faded-activated\n `,\n },\n {\n variant: \"secondary\",\n color: \"negative\",\n class: `\n border-action-outline-negative-faded \n text-action-ink-negative-normal \n hover:border-action-outline-negative-faded-hover \n hover:bg-action-fill-negative-faded-hover \n disabled:bg-action-outline-negative-disabled\n disabled:text-action-ink-negative-disabled\n disabled:border-action-outline-negative-disabled\n active:border-action-outline-negative-faded-activated\n active:bg-action-fill-negative-faded-activated\n `,\n },\n {\n variant: \"secondary\",\n color: \"notice\",\n class: `\n border-action-outline-notice-faded \n text-action-ink-notice-normal \n hover:border-action-outline-notice-faded-hover \n hover:bg-action-fill-notice-faded-hover \n disabled:bg-action-outline-notice-disabled\n disabled:text-action-ink-notice-disabled\n disabled:border-action-outline-notice-disabled\n active:border-action-outline-notice-faded-activated\n active:bg-action-fill-notice-faded-activated\n `,\n },\n {\n variant: \"secondary\",\n color: \"info\",\n class: `border-action-outline-info-faded \n text-action-ink-info-normal \n hover:border-action-outline-info-faded-hover \n hover:bg-action-fill-info-faded-hover \n disabled:bg-action-outline-info-disabled\n disabled:text-action-ink-info-disabled\n disabled:border-action-outline-info-disabled\n active:border-action-outline-info-faded-activated\n active:bg-action-fill-info-faded-activated\n `,\n },\n {\n variant: \"secondary\",\n color: \"neutral\",\n class: `border-action-outline-neutral-faded \n text-action-ink-neutral-normal \n hover:bg-action-outline-neutral-faded-hover \n hover:bg-action-fill-neutral-faded-hover \n disabled:text-action-ink-neutral-disabled\n disabled:border-action-outline-neutral-disabled\n active:border-action-outline-neutral-faded-activated\n active:bg-action-fill-neutral-faded-activated\n `,\n },\n // Tertiary variant colors\n {\n variant: \"tertiary\",\n color: \"primary\",\n class: `text-action-ink-primary-normal \n hover:bg-action-fill-primary-faded \n disabled:text-action-ink-on-primary-muted\n active:bg-action-fill-primary-faded-activated\n `,\n },\n {\n variant: \"tertiary\",\n color: \"positive\",\n class: `text-action-ink-positive-normal \n hover:bg-action-fill-positive-faded \n disabled:text-action-ink-on-positive-muted\n active:bg-action-fill-positive-faded-activated\n `,\n },\n {\n variant: \"tertiary\",\n color: \"negative\",\n class: `text-action-ink-negative-normal \n hover:bg-action-fill-negative-faded \n disabled:text-action-ink-on-negative-muted\n active:bg-action-fill-negative-faded-activated\n `,\n },\n {\n variant: \"tertiary\",\n color: \"notice\",\n class: `text-action-ink-notice-normal \n hover:bg-action-fill-notice-faded \n disabled:text-action-ink-on-notice-muted\n active:bg-action-fill-notice-faded-activated\n `,\n },\n {\n variant: \"tertiary\",\n color: \"info\",\n class: `text-action-ink-info-normal \n hover:bg-action-fill-info-faded \n disabled:text-action-ink-on-notice-muted\n active:bg-action-fill-info-faded-activated\n `,\n },\n {\n variant: \"tertiary\",\n color: \"neutral\",\n class: `text-action-ink-neutral-normal \n hover:bg-action-fill-neutral-faded \n disabled:text-action-ink-on-notice-muted\n active:bg-action-fill-neutral-faded-activated\n `,\n },\n // Icon only sizing\n {\n isIconOnly: true,\n size: \"xsmall\",\n class: \"h-7 w-7\",\n },\n {\n isIconOnly: true,\n size: \"small\",\n class: \"h-8 w-8\",\n },\n {\n isIconOnly: true,\n size: \"medium\",\n class: \"h-9 w-9\",\n },\n {\n isIconOnly: true,\n size: \"large\",\n class: \"h-10 w-10\",\n },\n ],\n defaultVariants: {\n variant: \"primary\",\n color: \"primary\",\n size: \"medium\",\n isIconOnly: false,\n isLoading: false,\n isFullWidth: false,\n },\n }\n);\n\nexport interface ButtonProps\n extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"color\"> {\n variant?: \"primary\" | \"secondary\" | \"tertiary\";\n color?: \"primary\" | \"positive\" | \"negative\" | \"notice\" | \"info\" | \"neutral\";\n size?: \"xsmall\" | \"small\" | \"medium\" | \"large\";\n isIconOnly?: boolean;\n isLoading?: boolean;\n isDisabled?: boolean;\n isFullWidth?: boolean;\n asChild?: boolean;\n leadingIcon?: React.ReactNode;\n trailingIcon?: React.ReactNode;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n variant = \"primary\",\n color = \"primary\",\n size,\n isIconOnly,\n isLoading,\n asChild = false,\n leadingIcon,\n trailingIcon,\n isFullWidth = false,\n children,\n disabled,\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot : \"button\";\n\n const isDisabled = disabled || isLoading || false;\n\n const buttonContent = (\n <>\n {isLoading && !isIconOnly && (\n <PulseLoader\n color={`var(--color-action-ink-${color}-normal)`}\n size={10}\n />\n )}\n {isLoading && isIconOnly && (\n <ClipLoader\n color={`var(--color-action-ink-${color}-normal)`}\n size={20}\n />\n )}\n {!isLoading && leadingIcon && (\n <span className=\"mr-2\">{leadingIcon}</span>\n )}\n {!isIconOnly && !isLoading && children}\n {isIconOnly && !isLoading && children}\n {!isLoading && trailingIcon && <span>{trailingIcon}</span>}\n </>\n );\n\n return (\n <Comp\n className={cn(\n buttonVariants({\n variant,\n color,\n size,\n isIconOnly,\n isLoading,\n isDisabled,\n isFullWidth,\n }),\n className\n )}\n ref={ref}\n disabled={isDisabled}\n {...props}\n >\n {buttonContent}\n </Comp>\n );\n }\n);\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n","import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\n// Helper function to get the text utility class name\nfunction getTextClassName(\n variant: \"display\" | \"heading\" | \"body\" | \"caption\" = \"body\",\n size:\n | \"2xlarge\"\n | \"xlarge\"\n | \"large\"\n | \"medium\"\n | \"small\"\n | \"xsmall\" = \"medium\",\n weight: \"regular\" | \"medium\" | \"semibold\" = \"regular\",\n color:\n | \"default\"\n | \"subtle\"\n | \"muted\"\n | \"disabled\"\n | \"primary\"\n | \"onPrimary\"\n | \"positive\"\n | \"negative\"\n | \"notice\"\n | \"info\"\n | \"neutral\" = \"default\"\n): string {\n // Build the base class name\n let baseClass = `text-${variant}`;\n\n // Add size\n if (size) {\n baseClass += `-${size}`;\n }\n\n // Add weight\n if (weight) {\n baseClass += `-${weight}`;\n }\n\n // Add color class separately\n const colorClass = `text-color-${color}`;\n\n return `${baseClass} ${colorClass}`;\n}\n\nexport interface TextProps\n extends Omit<React.HTMLAttributes<HTMLElement>, \"color\"> {\n children: React.ReactNode;\n variant?: \"display\" | \"heading\" | \"body\" | \"caption\";\n size?: \"2xlarge\" | \"xlarge\" | \"large\" | \"medium\" | \"small\" | \"xsmall\";\n weight?: \"regular\" | \"medium\" | \"semibold\";\n color?:\n | \"default\"\n | \"subtle\"\n | \"muted\"\n | \"disabled\"\n | \"primary\"\n | \"onPrimary\"\n | \"positive\"\n | \"negative\"\n | \"notice\"\n | \"info\"\n | \"neutral\";\n as?: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"span\" | \"div\" | \"label\";\n className?: string;\n}\n\nconst Text = React.forwardRef<HTMLElement, TextProps>(\n (\n {\n className,\n variant = \"body\",\n size = \"medium\",\n weight = \"regular\",\n color = \"default\",\n as = \"p\",\n children,\n ...props\n },\n ref\n ) => {\n const Component = as;\n\n const textClass = getTextClassName(variant, size, weight, color);\n\n return React.createElement(\n Component,\n {\n className: cn(textClass, className),\n ref,\n ...props,\n },\n children\n );\n }\n);\n\nText.displayName = \"Text\";\n\nexport { Text };\n","import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\nimport { Text } from \"../Text\";\n\nexport interface FormFooterProps {\n /**\n * Helper text to display on the left side\n */\n helperText?: string;\n /**\n * Trailing text to display on the right side (e.g., character count)\n */\n trailingText?: string;\n /**\n * Validation state that affects styling and icon display\n */\n validationState?: \"default\" | \"positive\" | \"negative\";\n /**\n * Size variant that affects text size, icon size, and spacing\n */\n size?: \"small\" | \"medium\" | \"large\";\n /**\n * Whether the footer is in a disabled state\n */\n isDisabled?: boolean;\n /**\n * Custom class name for the container\n */\n className?: string;\n /**\n * Custom class name for the helper text\n */\n helperTextClassName?: string;\n /**\n * Custom class name for the trailing text\n */\n trailingTextClassName?: string;\n}\n\nconst FormFooter = React.forwardRef<HTMLDivElement, FormFooterProps>(\n (\n {\n helperText,\n trailingText,\n validationState = \"default\",\n size = \"medium\",\n isDisabled = false,\n className,\n helperTextClassName,\n trailingTextClassName,\n },\n ref\n ) => {\n // Size-based configurations\n const sizeConfig = {\n small: {\n textSize: \"xsmall\" as const,\n iconSize: 12,\n gap: \"gap-1\",\n },\n medium: {\n textSize: \"small\" as const,\n iconSize: 14,\n gap: \"gap-1\",\n },\n large: {\n textSize: \"medium\" as const,\n iconSize: 16,\n gap: \"gap-1.5\",\n },\n };\n\n const config = sizeConfig[size];\n\n // Determine text color based on validation state and disabled state\n const getTextColor = () => {\n if (isDisabled) return \"disabled\";\n if (validationState === \"positive\") return \"positive\";\n if (validationState === \"negative\") return \"negative\";\n if (validationState === \"default\") return \"default\";\n return \"default\";\n };\n\n // Don't render anything if there's no content\n if (!helperText && !trailingText) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n className={cn(\n \"flex items-center justify-between px-1\",\n config.gap,\n className\n )}\n >\n {helperText && (\n <div className={cn(\"flex items-center\", config.gap)}>\n {validationState === \"positive\" && (\n <svg\n width={config.iconSize}\n height={config.iconSize}\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"text-feedback-ink-positive-intense shrink-0\"\n >\n <path\n d=\"M3 7L6 10L11 4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n {validationState === \"negative\" && (\n <svg\n width={config.iconSize}\n height={config.iconSize}\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"text-feedback-ink-negative-subtle shrink-0\"\n >\n <circle\n cx=\"7\"\n cy=\"7\"\n r=\"6\"\n stroke=\"currentColor\"\n strokeWidth=\"1\"\n />\n <path\n d=\"M7 4V7.5M7 10V9.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1\"\n strokeLinecap=\"round\"\n />\n </svg>\n )}\n <Text\n as=\"span\"\n variant=\"body\"\n size={config.textSize}\n weight=\"regular\"\n color={getTextColor()}\n className={cn(\n \"italic font-size-100 leading-100\",\n helperTextClassName\n )}\n >\n {helperText}\n </Text>\n </div>\n )}\n\n {trailingText && (\n <Text\n as=\"span\"\n variant=\"body\"\n size={config.textSize}\n weight=\"regular\"\n color={isDisabled ? \"disabled\" : \"muted\"}\n className={cn(\n \"font-size-100 leading-100 shrink-0\",\n trailingTextClassName\n )}\n >\n {trailingText}\n </Text>\n )}\n </div>\n );\n }\n);\n\nFormFooter.displayName = \"FormFooter\";\n\nexport { FormFooter };\n","import * as React from \"react\";\n\n/**\n * Icon component props\n */\nexport interface IconProps extends React.SVGProps<SVGSVGElement> {\n size?: number | string;\n}\n\n/**\n * ==============================================\n * HOW TO ADD A NEW ICON:\n * ==============================================\n *\n * 1. Add your SVG file to: src/assets/icons/{iconName}.svg\n *\n * 2. Copy the SVG content from the file\n *\n * 3. Add it to the iconRegistry below:\n * iconName: `<svg>...</svg>`,\n *\n * 4. Use it anywhere in your app:\n * <Icon name=\"iconName\" size={24} />\n *\n * The Icon component will automatically:\n * - Replace hardcoded colors with currentColor\n * - Allow you to control color via className or style\n * - Resize based on the size prop\n * ==============================================\n */\n\n/**\n * Icon registry - maps icon names to their SVG content\n * Add your icons here by copying the SVG content from your icon files\n */\nconst iconRegistry: Record<string, string> = {\n // Tick/Check icon\n tick: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M10.364 15.1924L19.5564 6L20.9706 7.41421L10.364 18.0208L4 11.6569L5.41422 10.2427L10.364 15.1924Z\" fill=\"#081416\"/>\n</svg>`,\n\n // Alias: check points to the same icon as tick\n check: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M10.364 15.1924L19.5564 6L20.9706 7.41421L10.364 18.0208L4 11.6569L5.41422 10.2427L10.364 15.1924Z\" fill=\"#081416\"/>\n</svg>`,\n};\n\n/**\n * Type for available icon names (with autocomplete support)\n */\nexport type IconName = keyof typeof iconRegistry;\n\n/**\n * Icon component that renders an SVG icon by name\n *\n * Features:\n * - ✓ Automatically converts hardcoded colors to currentColor\n * - ✓ Control color via className (e.g., \"text-blue-500\")\n * - ✓ Control color via style prop\n * - ✓ Customizable size\n * - ✓ TypeScript autocomplete for icon names\n * - ✓ All standard SVG props supported\n *\n * @example\n * ```tsx\n * // Basic usage\n * <Icon name=\"tick\" size={24} />\n *\n * // With Tailwind color class\n * <Icon name=\"tick\" size={16} className=\"text-blue-500\" />\n *\n * // With inline styles\n * <Icon name=\"check\" size={20} style={{ color: 'red' }} />\n *\n * // With custom props\n * <Icon name=\"tick\" size={32} className=\"hover:text-green-600 transition-colors\" />\n * ```\n */\nexport interface DynamicIconProps\n extends Omit<\n React.SVGProps<SVGSVGElement>,\n \"ref\" | \"dangerouslySetInnerHTML\"\n > {\n /** Name of the icon to render */\n name: IconName;\n /** Size of the icon (width and height) */\n size?: number | string;\n}\n\nexport const Icon: React.FC<DynamicIconProps> = ({\n name,\n size = 24,\n className = \"\",\n style = {},\n ...props\n}) => {\n const svgContent = iconRegistry[name];\n\n if (!svgContent) {\n console.warn(\n `Icon \"${String(name)}\" not found in registry.\\n` +\n `Available icons: ${Object.keys(iconRegistry).join(\", \")}`\n );\n return null;\n }\n\n // Parse the SVG content\n const parser = new DOMParser();\n const svgDoc = parser.parseFromString(svgContent, \"image/svg+xml\");\n const svgElement = svgDoc.querySelector(\"svg\");\n\n if (!svgElement) {\n console.error(`Invalid SVG content for icon \"${String(name)}\"`);\n return null;\n }\n\n // Extract viewBox attribute\n const viewBox = svgElement.getAttribute(\"viewBox\") || \"0 0 24 24\";\n let innerHTML = svgElement.innerHTML;\n\n // Replace hardcoded fill and stroke colors with currentColor\n // This allows the icon color to be controlled via CSS color property\n innerHTML = innerHTML\n .replace(/fill=\"[^\"]*\"/g, 'fill=\"currentColor\"')\n .replace(/stroke=\"[^\"]*\"/g, 'stroke=\"currentColor\"');\n\n return (\n <svg\n width={size}\n height={size}\n viewBox={viewBox}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n style={style}\n {...props}\n dangerouslySetInnerHTML={{ __html: innerHTML }}\n />\n );\n};\n\nIcon.displayName = \"Icon\";\n\n/**\n * Get all available icon names from the registry\n * @returns Array of registered icon names\n *\n * @example\n * ```tsx\n * const icons = getAvailableIcons();\n * console.log(icons); // ['tick', 'check', ...]\n * ```\n */\nexport function getAvailableIcons(): IconName[] {\n return Object.keys(iconRegistry) as IconName[];\n}\n\n/**\n * Check if an icon exists in the registry\n * @param name - Icon name to check\n * @returns true if the icon exists\n *\n * @example\n * ```tsx\n * if (hasIcon('tick')) {\n * // Icon exists\n * }\n * ```\n */\nexport function hasIcon(name: string): name is IconName {\n return name in iconRegistry;\n}\n\n// Export the registry for advanced use cases\nexport { iconRegistry };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\nimport { FormFooter } from \"../FormFooter\";\nimport { Icon } from \"../../lib/icons\";\n\nconst checkboxVariants = cva(\n \"relative inline-flex items-center justify-center shrink-0 border transition-all cursor-pointer\",\n {\n variants: {\n size: {\n small: \"w-[14px] h-[14px] rounded-small border-[1.5px]\",\n medium: \"w-[16px] h-[16px] rounded-small border-[1.5px]\",\n large: \"w-[20px] h-[20px] rounded-medium border-[2px]\",\n },\n validationState: {\n none: \"\",\n error:\n \"border-action-outline-negative-default hover:border-action-outline-negative-hover focus:ring-2 ring-action-outline-negative-faded-hover\",\n },\n isChecked: {\n true: \"\",\n false: \"\",\n },\n isIndeterminate: {\n true: \"\",\n false: \"\",\n },\n isDisabled: {\n true: \"cursor-not-allowed opacity-60 border-action-outline-neutral-disabled bg-surface-fill-neutral-subtle\",\n false: \"\",\n },\n },\n compoundVariants: [\n // Unchecked state - none validation\n {\n isChecked: false,\n validationState: \"none\",\n isDisabled: false,\n class:\n \"border-action-outline-neutral-faded hover:bg-action-fill-neutral-faded hover:border-action-outline-neutral-faded\",\n },\n // Checked state - none validation\n {\n isChecked: true,\n validationState: \"none\",\n isDisabled: false,\n class:\n \"bg-action-fill-primary-hover border-surface-outline-neutral-muted\",\n },\n // Checked or Indeterminate state - error validation\n {\n isChecked: true,\n validationState: \"error\",\n isDisabled: false,\n class:\n \"bg-action-fill-negative-default border-action-fill-negative-default hover:bg-action-fill-negative-hover hover:border-action-fill-negative-hover\",\n },\n // Indeterminate state - none validation\n {\n isIndeterminate: true,\n validationState: \"none\",\n isDisabled: false,\n class:\n \"bg-action-fill-primary-default border-action-fill-primary-default hover:bg-action-fill-primary-hover hover:border-action-fill-primary-hover\",\n },\n // Indeterminate state - error validation (same as checked error)\n {\n isIndeterminate: true,\n validationState: \"error\",\n isDisabled: false,\n class:\n \"bg-action-fill-negative-default border-action-fill-negative-default hover:bg-action-fill-negative-hover hover:border-action-fill-negative-hover\",\n },\n ],\n defaultVariants: {\n size: \"medium\",\n validationState: \"none\",\n isChecked: false,\n isIndeterminate: false,\n isDisabled: false,\n },\n }\n);\n\nexport interface CheckboxProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\"> {\n /**\n * Label text to display next to the checkbox\n */\n label?: string;\n /**\n * Error text to display below the checkbox\n */\n errorText?: string;\n /**\n * Size of the checkbox\n */\n size?: \"small\" | \"medium\" | \"large\";\n /**\n * Validation state of the checkbox\n */\n validationState?: \"none\" | \"error\";\n /**\n * Whether the checkbox is disabled\n */\n isDisabled?: boolean;\n /**\n * Whether the checkbox is in an indeterminate state\n */\n isIndeterminate?: boolean;\n /**\n * Whether to show error text (defaults to true if errorText is provided)\n */\n showErrorText?: boolean;\n /**\n * Custom class name for the container\n */\n containerClassName?: string;\n /**\n * Custom class name for the label\n */\n labelClassName?: string;\n}\n\nconst Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n label,\n errorText,\n size = \"medium\",\n validationState = \"none\",\n isDisabled = false,\n isIndeterminate = false,\n showErrorText = true,\n containerClassName,\n labelClassName,\n className,\n checked,\n onChange,\n ...props\n },\n ref\n ) => {\n const [internalChecked, setInternalChecked] = React.useState(false);\n const [showRipple, setShowRipple] = React.useState(false);\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n // Use forwarded ref or internal ref\n React.useImperativeHandle(ref, () => inputRef.current!);\n\n const isChecked = checked !== undefined ? checked : internalChecked;\n\n // Set indeterminate property on the input element\n React.useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = isIndeterminate;\n }\n }, [isIndeterminate]);\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (onChange) {\n onChange(e);\n } else {\n setInternalChecked(e.target.checked);\n }\n };\n\n const triggerRipple = () => {\n if (!isDisabled) {\n setShowRipple(true);\n setTimeout(() => {\n setShowRipple(false);\n }, 360); // Match animation duration (0.36s)\n }\n };\n\n const handleContainerClick = () => {\n if (!isDisabled && inputRef.current) {\n // Only show ripple when checking (not unchecking)\n const willBeChecked = !isChecked && !isIndeterminate;\n if (willBeChecked) {\n triggerRipple();\n }\n inputRef.current.click();\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if ((e.key === \" \" || e.key === \"Enter\") && !isDisabled) {\n e.preventDefault();\n // Only show ripple when checking (not unchecking)\n const willBeChecked = !isChecked && !isIndeterminate;\n if (willBeChecked) {\n triggerRipple();\n }\n inputRef.current?.click();\n }\n };\n\n // Size-based configurations\n const sizeConfig = {\n small: {\n gap: \"gap-2\",\n labelSize: \"text-body-small-regular\",\n iconSize: 10,\n },\n medium: {\n gap: \"gap-2.5\",\n labelSize: \"text-body-medium-regular\",\n iconSize: 12,\n },\n large: {\n gap: \"gap-3\",\n labelSize: \"text-body-large-regular\",\n iconSize: 14,\n },\n };\n\n const config = sizeConfig[size];\n\n // Determine if we should show the error text\n const shouldShowError = errorText && showErrorText;\n\n return (\n <div className={cn(\"inline-flex flex-col\", containerClassName)}>\n <div\n className={cn(\n \"inline-flex items-center\",\n config.gap,\n isDisabled ? \"cursor-not-allowed\" : \"cursor-pointer\"\n )}\n onClick={handleContainerClick}\n onKeyDown={handleKeyDown}\n role=\"checkbox\"\n aria-checked={isIndeterminate ? \"mixed\" : isChecked}\n aria-disabled={isDisabled}\n tabIndex={isDisabled ? -1 : 0}\n >\n <input\n ref={inputRef}\n type=\"checkbox\"\n className=\"sr-only\"\n checked={isChecked}\n onChange={handleChange}\n disabled={isDisabled}\n {...props}\n />\n\n <div className=\"relative inline-flex shrink-0\">\n {/* Ripple Effect */}\n {showRipple && (\n <div\n className={cn(\n \"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 rounded-full pointer-events-none w-full h-full\",\n validationState === \"error\"\n ? \"bg-action-outline-negative-faded\"\n : \"bg-action-outline-primary-faded\"\n )}\n style={{\n animation: \"var(--animate-checkbox-ripple)\",\n }}\n />\n )}\n\n <div\n className={cn(\n checkboxVariants({\n size,\n validationState,\n isChecked: isChecked && !isIndeterminate,\n isIndeterminate,\n isDisabled,\n }),\n className\n )}\n >\n {/* Checkmark Icon */}\n {isChecked && !isIndeterminate && (\n <Icon\n name=\"tick\"\n size={config.iconSize}\n className=\"text-action-ink-on-primary-normal\"\n />\n )}\n\n {/* Indeterminate Icon */}\n {isIndeterminate && (\n <svg\n width={config.iconSize}\n height={config.iconSize}\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"text-action-ink-on-primary-normal\"\n >\n <path\n d=\"M3 6H9\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n )}\n </div>\n </div>\n\n {label && (\n <label\n className={cn(\n config.labelSize,\n \"select-none inline-flex items-center\",\n isDisabled\n ? \"text-surface-ink-neutral-disabled\"\n : \"text-surface-ink-neutral-normal\",\n labelClassName\n )}\n >\n {label}\n </label>\n )}\n </div>\n\n {/* Error text */}\n {shouldShowError && (\n <FormFooter\n helperText={errorText}\n validationState=\"negative\"\n size={size}\n isDisabled={isDisabled}\n />\n )}\n </div>\n );\n }\n);\n\nCheckbox.displayName = \"Checkbox\";\n\nexport { Checkbox, checkboxVariants };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\nimport { Text } from \"../Text\";\n\nconst tooltipVariants = cva(\n \"fixed z-50 bg-popup-fill-intense text-action-ink-on-primary-normal rounded-medium border border-popup-outline-subtle flex flex-col p-4 rounded-xlarge min-w-[200px] max-w-[300px] transition-opacity duration-200\",\n {\n variants: {\n isVisible: {\n true: \"opacity-100 pointer-events-auto shadow-[0_4px_20px_rgba(0,0,0,0.15)]\",\n false: \"opacity-0 pointer-events-none\",\n },\n },\n defaultVariants: {\n isVisible: false,\n },\n }\n);\n\nconst tooltipArrowVariants = cva(\n \"absolute w-0 h-0 border-solid border-[6px] -translate-x-1/2\",\n {\n variants: {\n placement: {\n \"top-start\":\n \"top-full border-t-popup-fill-intense border-x-transparent border-b-transparent\",\n top: \"top-full border-t-popup-fill-intense border-x-transparent border-b-transparent\",\n \"top-end\":\n \"top-full border-t-popup-fill-intense border-x-transparent border-b-transparent\",\n \"bottom-start\":\n \"bottom-full border-b-popup-fill-intense border-x-transparent border-t-transparent\",\n bottom:\n \"bottom-full border-b-popup-fill-intense border-x-transparent border-t-transparent\",\n \"bottom-end\":\n \"bottom-full border-b-popup-fill-intense border-x-transparent border-t-transparent\",\n },\n },\n defaultVariants: {\n placement: \"top\",\n },\n }\n);\n\nexport interface TooltipProps {\n /**\n * The trigger element that the tooltip will attach to\n */\n children: React.ReactElement;\n /**\n * Heading text for the tooltip\n */\n heading?: string;\n /**\n * Description text for the tooltip\n */\n description: string;\n /**\n * Placement of the tooltip relative to the trigger\n */\n placement?:\n | \"top-start\"\n | \"top\"\n | \"top-end\"\n | \"bottom-start\"\n | \"bottom\"\n | \"bottom-end\";\n /**\n * Whether to show the arrow/anchor\n */\n showArrow?: boolean;\n /**\n * Custom class name for the tooltip container\n */\n className?: string;\n /**\n * Delay before showing tooltip (in milliseconds)\n */\n delay?: number;\n /**\n * Whether the tooltip is disabled\n */\n disabled?: boolean;\n}\n\nconst Tooltip = React.forwardRef<HTMLDivElement, TooltipProps>(\n (\n {\n children,\n heading,\n description,\n placement = \"top\",\n showArrow = true,\n className,\n delay = 200,\n disabled = false,\n },\n ref\n ) => {\n const [isVisible, setIsVisible] = React.useState(false);\n const [position, setPosition] = React.useState({ top: 0, left: 0 });\n const [arrowPosition, setArrowPosition] = React.useState({ left: 0 });\n const [actualPlacement, setActualPlacement] = React.useState<\n \"top-start\" | \"top\" | \"top-end\" | \"bottom-start\" | \"bottom\" | \"bottom-end\"\n >(placement);\n const timeoutRef = React.useRef<ReturnType<typeof setTimeout> | null>(null);\n const triggerRef = React.useRef<HTMLElement>(null);\n const tooltipRef = React.useRef<HTMLDivElement>(null);\n\n const calculatePosition = React.useCallback(() => {\n if (!triggerRef.current || !tooltipRef.current) return;\n\n const triggerRect = triggerRef.current.getBoundingClientRect();\n const tooltipRect = tooltipRef.current.getBoundingClientRect();\n const gap = 8; // 8px gap between trigger and tooltip\n const arrowSize = 6; // Size of the arrow\n const viewportPadding = 8; // Minimum padding from viewport edges\n\n let top = 0;\n let left = 0;\n let currentPlacement = placement;\n\n // Calculate initial position based on placement\n switch (placement) {\n case \"top-start\":\n top = triggerRect.top - tooltipRect.height - gap - arrowSize;\n left = triggerRect.left;\n break;\n case \"top\":\n top = triggerRect.top - tooltipRect.height - gap - arrowSize;\n left =\n triggerRect.left + triggerRect.width / 2 - tooltipRect.width / 2;\n break;\n case \"top-end\":\n top = triggerRect.top - tooltipRect.height - gap - arrowSize;\n left = triggerRect.right - tooltipRect.width;\n break;\n case \"bottom-start\":\n top = triggerRect.bottom + gap + arrowSize;\n left = triggerRect.left;\n break;\n case \"bottom\":\n top = triggerRect.bottom + gap + arrowSize;\n left =\n triggerRect.left + triggerRect.width / 2 - tooltipRect.width / 2;\n break;\n case \"bottom-end\":\n top = triggerRect.bottom + gap + arrowSize;\n left = triggerRect.right - tooltipRect.width;\n break;\n }\n\n // Get viewport dimensions\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n\n // Adjust horizontal position to keep tooltip within viewport\n if (left < viewportPadding) {\n // Tooltip would overflow on the left\n left = viewportPadding;\n } else if (left + tooltipRect.width > viewportWidth - viewportPadding) {\n // Tooltip would overflow on the right\n left = viewportWidth - tooltipRect.width - viewportPadding;\n }\n\n // Adjust vertical position to keep tooltip within viewport\n if (top < viewportPadding) {\n // Tooltip would overflow at the top\n // Try to flip to bottom if there's more space there\n const spaceBelow = viewportHeight - triggerRect.bottom;\n const spaceAbove = triggerRect.top;\n\n if (spaceBelow > spaceAbove) {\n // Flip to bottom\n top = triggerRect.bottom + gap + arrowSize;\n // Update placement to reflect the flip\n if (placement === \"top-start\") currentPlacement = \"bottom-start\";\n else if (placement === \"top\") currentPlacement = \"bottom\";\n else if (placement === \"top-end\") currentPlacement = \"bottom-end\";\n } else {\n // Keep at top but adjust to stay in viewport\n top = viewportPadding;\n }\n } else if (top + tooltipRect.height > viewportHeight - viewportPadding) {\n // Tooltip would overflow at the bottom\n // Try to flip to top if there's more space there\n const spaceAbove = triggerRect.top;\n const spaceBelow = viewportHeight - triggerRect.bottom;\n\n if (spaceAbove > spaceBelow) {\n // Flip to top\n top = triggerRect.top - tooltipRect.height - gap - arrowSize;\n // Update placement to reflect the flip\n if (placement === \"bottom-start\") currentPlacement = \"top-start\";\n else if (placement === \"bottom\") currentPlacement = \"top\";\n else if (placement === \"bottom-end\") currentPlacement = \"top-end\";\n } else {\n // Keep at bottom but adjust to stay in viewport\n top = viewportHeight - tooltipRect.height - viewportPadding;\n }\n }\n\n // Calculate arrow position relative to trigger\n // The arrow should point to the center of the trigger element\n const triggerCenterX = triggerRect.left + triggerRect.width / 2;\n const tooltipLeft = left;\n const arrowLeft = triggerCenterX - tooltipLeft;\n\n // Clamp arrow position to stay within tooltip bounds (with padding)\n const arrowPadding = 16; // Minimum distance from tooltip edges\n const clampedArrowLeft = Math.max(\n arrowPadding,\n Math.min(arrowLeft, tooltipRect.width - arrowPadding)\n );\n\n setPosition({ top, left });\n setArrowPosition({ left: clampedArrowLeft });\n setActualPlacement(currentPlacement);\n }, [placement]);\n\n const handleMouseEnter = () => {\n if (disabled) return;\n\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n\n timeoutRef.current = setTimeout(() => {\n setIsVisible(true);\n }, delay);\n };\n\n const handleMouseLeave = () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n setIsVisible(false);\n };\n\n const handleFocus = () => {\n if (disabled) return;\n setIsVisible(true);\n };\n\n const handleBlur = () => {\n setIsVisible(false);\n };\n\n React.useEffect(() => {\n if (isVisible) {\n calculatePosition();\n window.addEventListener(\"scroll\", calculatePosition, true);\n window.addEventListener(\"resize\", calculatePosition);\n }\n\n return () => {\n window.removeEventListener(\"scroll\", calculatePosition, true);\n window.removeEventListener(\"resize\", calculatePosition);\n };\n }, [isVisible, calculatePosition]);\n\n React.useEffect(() => {\n // Reset actualPlacement when placement prop changes\n setActualPlacement(placement);\n }, [placement]);\n\n React.useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n };\n }, []);\n\n // Merge refs function\n const mergeRefs = (...refs: any[]) => {\n return (node: any) => {\n refs.forEach((ref) => {\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref && typeof ref === \"object\" && \"current\" in ref) {\n (ref as any).current = node;\n }\n });\n };\n };\n\n // Clone the child element and add event handlers\n const trigger = React.cloneElement(children, {\n ref: mergeRefs(triggerRef, (children as any).ref),\n onMouseEnter: (e: React.MouseEvent) => {\n handleMouseEnter();\n children.props.onMouseEnter?.(e);\n },\n onMouseLeave: (e: React.MouseEvent) => {\n handleMouseLeave();\n children.props.onMouseLeave?.(e);\n },\n onFocus: (e: React.FocusEvent) => {\n handleFocus();\n children.props.onFocus?.(e);\n },\n onBlur: (e: React.FocusEvent) => {\n handleBlur();\n children.props.onBlur?.(e);\n },\n \"aria-describedby\": isVisible ? \"tooltip-content\" : undefined,\n });\n\n return (\n <>\n {trigger}\n\n <div\n ref={mergeRefs(tooltipRef, ref)}\n id=\"tooltip-content\"\n role=\"tooltip\"\n className={cn(tooltipVariants({ isVisible }), className)}\n style={{\n top: `${position.top}px`,\n left: `${position.left}px`,\n }}\n aria-hidden={!isVisible}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n {showArrow && (\n <div\n className={cn(\n tooltipArrowVariants({ placement: actualPlacement })\n )}\n style={{\n left: `${arrowPosition.left}px`,\n }}\n />\n )}\n\n <div className=\"relative flex flex-col gap-2\">\n {heading && (\n <Text\n variant=\"body\"\n size=\"medium\"\n weight=\"semibold\"\n color=\"onPrimary\"\n >\n {heading}\n </Text>\n )}\n <Text\n variant=\"body\"\n size=\"small\"\n weight=\"regular\"\n color=\"onPrimary\"\n // className=\"flex gap-3\"\n >\n {description}\n </Text>\n </div>\n </div>\n </>\n );\n }\n);\n\nTooltip.displayName = \"Tooltip\";\n\nexport { Tooltip, tooltipVariants };\n","import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\nimport { Text } from \"../Text\";\nimport { Tooltip } from \"../Tooltip\";\n\nexport interface FormHeaderProps {\n /**\n * The label text to display\n */\n label: string;\n /**\n * Size variant that affects text size, icon size, and spacing\n */\n size?: \"small\" | \"medium\" | \"large\";\n /**\n * Whether to show \"(optional)\" text after the label\n */\n isOptional?: boolean;\n /**\n * Whether to show \"*\" (required indicator) after the label\n */\n isRequired?: boolean;\n /**\n * Tooltip heading text\n */\n infoHeading?: string;\n /**\n * Tooltip description text - if provided, shows the info icon\n */\n infoDescription?: string;\n /**\n * Link text to display on the right side\n */\n linkText?: string;\n /**\n * Link href or onClick handler\n */\n linkHref?: string;\n /**\n * Link click handler\n */\n onLinkClick?: (e: React.MouseEvent<HTMLAnchorElement>) => void;\n /**\n * HTML for attribute to associate with form input\n */\n htmlFor?: string;\n /**\n * Custom class name for the container\n */\n className?: string;\n /**\n * Custom class name for the label\n */\n labelClassName?: string;\n /**\n * Custom class name for the link\n */\n linkClassName?: string;\n}\n\nconst FormHeader = React.forwardRef<HTMLDivElement, FormHeaderProps>(\n (\n {\n label,\n size = \"medium\",\n isOptional = false,\n isRequired = false,\n infoHeading,\n infoDescription,\n linkText,\n linkHref,\n onLinkClick,\n htmlFor,\n className,\n labelClassName,\n linkClassName,\n },\n ref\n ) => {\n // Size-based configurations\n const sizeConfig = {\n small: {\n textSize: \"xsmall\" as const,\n iconSize: 12,\n gap: \"gap-1.5\",\n },\n medium: {\n textSize: \"small\" as const,\n iconSize: 14,\n gap: \"gap-2\",\n },\n large: {\n textSize: \"medium\" as const,\n iconSize: 16,\n gap: \"gap-2.5\",\n },\n };\n\n const config = sizeConfig[size];\n\n return (\n <div\n ref={ref}\n className={cn(\n \"flex items-center justify-between px-1\",\n config.gap,\n className\n )}\n >\n <div className={cn(\"flex items-center\", config.gap)}>\n <label\n htmlFor={htmlFor}\n className={cn(\"flex items-center\", labelClassName)}\n >\n <Text\n as=\"span\"\n variant=\"body\"\n size={config.textSize}\n weight=\"semibold\"\n color=\"subtle\"\n >\n {label}\n </Text>\n {isRequired && (\n <Text\n as=\"span\"\n variant=\"body\"\n size={config.textSize}\n weight=\"semibold\"\n className=\"text-feedback-ink-negative-subtle ml-0.5\"\n >\n *\n </Text>\n )}\n {isOptional && (\n <Text\n as=\"span\"\n variant=\"body\"\n size={config.textSize}\n weight=\"regular\"\n className=\"text-surface-ink-neutral-muted ml-1\"\n >\n (optional)\n </Text>\n )}\n </label>\n {infoDescription && (\n <Tooltip description={infoDescription} heading={infoHeading}>\n <svg\n width={config.iconSize}\n height={config.iconSize}\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"text-surface-ink-neutral-muted cursor-help\"\n >\n <circle\n cx=\"7\"\n cy=\"7\"\n r=\"6\"\n stroke=\"currentColor\"\n strokeWidth=\"1\"\n />\n <path\n d=\"M7 6V10M7 4.5V4\"\n stroke=\"currentColor\"\n strokeWidth=\"1\"\n strokeLinecap=\"round\"\n />\n </svg>\n </Tooltip>\n )}\n </div>\n\n {linkText && (\n <a\n href={linkHref}\n onClick={onLinkClick}\n className={cn(\n \"text-surface-ink-primary-normal hover:text-surface-ink-primary-hover transition-colors cursor-pointer font-display font-semibold leading-tight shrink-0\",\n size === \"small\" && \"text-xs\",\n size === \"medium\" && \"text-xs\",\n size === \"large\" && \"text-sm\",\n linkClassName\n )}\n >\n {linkText}\n </a>\n )}\n </div>\n );\n }\n);\n\nFormHeader.displayName = \"FormHeader\";\n\nexport { FormHeader };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\nimport { FormHeader } from \"../FormHeader\";\nimport { FormFooter } from \"../FormFooter\";\n\nconst textAreaVariants = cva(\n \"relative flex flex-col border rounded-medium transition-all font-display font-size-100 leading-100\",\n {\n variants: {\n size: {\n small: \"p-3 min-h-[56px] text-xs gap-2\",\n medium: \"p-4 min-h-[56px] text-sm gap-2\",\n large: \"p-5 min-h-[64px]text-base gap-3\",\n },\n validationState: {\n none: `\n border-action-outline-neutral-default \n hover:border-action-outline-primary-hover \n focus-within:border-action-outline-primary-hover \n focus-within:ring-2 \n ring-action-outline-primary-faded-hover`,\n positive: `\n border-action-outline-positive-default \n hover:border-action-outline-positive-hover\n focus-within:border-action-outline-positive-hover\n focus-within:ring-2\n ring-action-outline-positive-faded-hover`,\n negative: `border-action-outline-negative-default \n hover:border-action-outline-negative-hover \n focus-within:border-action-outline-negative-hover\n focus-within:ring-2 \n ring-action-outline-negative-faded-hover`,\n },\n isDisabled: {\n true: `\n border-[var(--border-width-thinner)]\n hover:border-action-outline-neutral-disabled\n border-action-outline-neutral-disabled\n bg-surface-fill-neutral-intense cursor-not-allowed opacity-60`,\n false: \"bg-surface-fill-neutral-intense\",\n },\n },\n defaultVariants: {\n size: \"medium\",\n validationState: \"none\",\n isDisabled: false,\n },\n }\n);\n\nexport interface TextAreaProps\n extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, \"size\"> {\n label?: string;\n helperText?: string;\n errorText?: string;\n successText?: string;\n size?: \"small\" | \"medium\" | \"large\";\n validationState?: \"none\" | \"positive\" | \"negative\";\n isDisabled?: boolean;\n isRequired?: boolean;\n isOptional?: boolean;\n maxChar?: number;\n showCharCount?: boolean;\n containerClassName?: string;\n labelClassName?: string;\n textAreaClassName?: string;\n infoHeading?: string;\n infoDescription?: string;\n linkText?: string;\n linkHref?: string;\n onLinkClick?: (e: React.MouseEvent<HTMLAnchorElement>) => void;\n rows?: number;\n}\n\nconst TextArea = React.forwardRef<HTMLTextAreaElement, TextAreaProps>(\n (\n {\n label,\n helperText,\n errorText,\n successText,\n size = \"medium\",\n validationState = \"none\",\n isDisabled = false,\n isRequired = false,\n isOptional = false,\n maxChar,\n showCharCount = true,\n infoDescription,\n infoHeading,\n linkText,\n linkHref,\n onLinkClick,\n containerClassName,\n labelClassName,\n textAreaClassName,\n className,\n value,\n onChange,\n rows = 4,\n ...props\n },\n ref\n ) => {\n const [internalValue, setInternalValue] = React.useState(\"\");\n const textAreaValue = value !== undefined ? value : internalValue;\n const currentLength = String(textAreaValue).length;\n\n const handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const newValue = e.target.value;\n\n // Prevent exceeding maxChar if specified\n if (maxChar && newValue.length > maxChar) {\n return;\n }\n\n if (onChange) {\n onChange(e);\n } else {\n setInternalValue(newValue);\n }\n };\n\n // Determine which helper text to show\n const displayHelperText = errorText || successText || helperText;\n const currentValidationState = errorText\n ? \"negative\"\n : successText\n ? \"positive\"\n : validationState;\n\n // Check if we're approaching or at the limit\n const isNearLimit = maxChar && currentLength >= maxChar * 0.9;\n const isAtLimit = maxChar && currentLength >= maxChar;\n\n return (\n <div className={cn(\"w-full flex flex-col gap-3\", containerClassName)}>\n {label && (\n <FormHeader\n label={label}\n size={size}\n isRequired={isRequired}\n isOptional={isOptional}\n infoHeading={infoHeading}\n infoDescription={infoDescription}\n linkText={linkText}\n linkHref={linkHref}\n onLinkClick={onLinkClick}\n htmlFor={props.id}\n className=\"mb-2\"\n labelClassName={labelClassName}\n />\n )}\n\n <div\n className={cn(\n textAreaVariants({\n size,\n validationState: currentValidationState,\n isDisabled,\n }),\n className\n )}\n >\n <textarea\n ref={ref}\n value={textAreaValue}\n onChange={handleChange}\n disabled={isDisabled}\n required={isRequired}\n rows={rows}\n className={cn(\n \"flex-1 bg-transparent border-none outline-none text-surface-ink-neutral-normal placeholder:text-surface-ink-neutral-muted disabled:cursor-not-allowed disabled:text-surface-ink-neutral-disabled font-display resize-none\",\n size === \"small\" && \"text-xs\",\n size === \"medium\" && \"text-sm\",\n size === \"large\" && \"text-base\",\n textAreaClassName\n )}\n {...props}\n />\n </div>\n <FormFooter\n helperText={displayHelperText}\n trailingText={\n maxChar && showCharCount ? `${currentLength}/${maxChar}` : undefined\n }\n validationState={\n currentValidationState === \"none\"\n ? \"default\"\n : currentValidationState\n }\n size={size}\n isDisabled={isDisabled}\n className=\"mt-1\"\n trailingTextClassName={cn(\n \"transition-colors\",\n isAtLimit\n ? \"text-feedback-ink-negative-subtle\"\n : isNearLimit\n ? \"text-feedback-ink-warning-subtle\"\n : \"\"\n )}\n />\n </div>\n );\n }\n);\n\nTextArea.displayName = \"TextArea\";\n\nexport { TextArea, textAreaVariants };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\nimport { FormHeader } from \"../FormHeader\";\nimport { FormFooter } from \"../FormFooter\";\n\nconst textFieldVariants = cva(\n \"relative flex items-center gap-2 border rounded-medium transition-all font-display font-size-100 leading-100\",\n {\n variants: {\n size: {\n small: \"h-[28px] px-3 text-xs gap-2\",\n medium: \"h-[36px] px-4 text-sm gap-2\",\n large: \"h-[44px] px-5 text-base gap-3\",\n },\n validationState: {\n none: `\n border-action-outline-neutral-faded \n hover:border-action-outline-primary-hover \n focus-within:border-action-outline-primary-hover \n focus-within:ring-2 \n ring-action-outline-primary-faded-hover`,\n positive: `\n border-action-outline-positive-default \n focus-within:border-action-outline-positive-hover\n focus-within:ring-2\n ring-action-outline-positive-faded-hover`,\n negative: `border-action-outline-negative-default \n focus-within:border-action-outline-negative-hover\n focus-within:ring-2 \n ring-action-outline-negative-faded-hover`,\n },\n isDisabled: {\n true: `\n border-[var(--border-width-thinner)]\n hover:border-action-outline-neutral-disabled\n border-action-outline-neutral-disabled\n bg-surface-fill-neutral-intense cursor-not-allowed opacity-60`,\n false: \"bg-surface-fill-neutral-intense\",\n },\n },\n defaultVariants: {\n size: \"medium\",\n validationState: \"none\",\n isDisabled: false,\n },\n }\n);\n\nexport interface TextFieldProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\" | \"prefix\"> {\n label?: string;\n helperText?: string;\n errorText?: string;\n successText?: string;\n size?: \"small\" | \"medium\" | \"large\";\n validationState?: \"none\" | \"positive\" | \"negative\";\n isDisabled?: boolean;\n isRequired?: boolean;\n isOptional?: boolean;\n prefix?: React.ReactNode;\n suffix?: React.ReactNode;\n showClearButton?: boolean;\n onClear?: () => void;\n containerClassName?: string;\n labelClassName?: string;\n inputClassName?: string;\n infoHeading?: string;\n infoDescription?: string;\n linkText?: string;\n linkHref?: string;\n onLinkClick?: (e: React.MouseEvent<HTMLAnchorElement>) => void;\n}\n\nconst TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(\n (\n {\n label,\n helperText,\n errorText,\n successText,\n size = \"medium\",\n validationState = \"none\",\n isDisabled = false,\n isRequired = false,\n isOptional = false,\n prefix,\n suffix,\n showClearButton = false,\n infoDescription,\n infoHeading,\n linkText,\n linkHref,\n onLinkClick,\n onClear,\n containerClassName,\n labelClassName,\n inputClassName,\n className,\n value,\n onChange,\n ...props\n },\n ref\n ) => {\n const [internalValue, setInternalValue] = React.useState(\"\");\n const inputValue = value !== undefined ? value : internalValue;\n const hasValue = inputValue && String(inputValue).length > 0;\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (onChange) {\n onChange(e);\n } else {\n setInternalValue(e.target.value);\n }\n };\n\n const handleClear = () => {\n if (onClear) {\n onClear();\n } else {\n setInternalValue(\"\");\n }\n // Focus the input after clearing\n const input = document.getElementById(props.id || \"\");\n if (input) {\n input.focus();\n }\n };\n\n // Determine which helper text to show\n const displayHelperText = errorText || successText || helperText;\n const currentValidationState = errorText\n ? \"negative\"\n : successText\n ? \"positive\"\n : validationState;\n\n const sizeConfig = {\n small: {\n gap: \"gap-2\",\n },\n medium: {\n gap: \"gap-2\",\n },\n large: {\n gap: \"gap-3\",\n },\n };\n\n return (\n <div\n className={cn(\n \"w-full flex flex-col\",\n sizeConfig[size].gap,\n containerClassName\n )}\n >\n {label && (\n <FormHeader\n label={label}\n size={size}\n isRequired={isRequired}\n isOptional={isOptional}\n infoHeading={infoHeading}\n infoDescription={infoDescription}\n linkText={linkText}\n linkHref={linkHref}\n onLinkClick={onLinkClick}\n htmlFor={props.id}\n className=\"mb-2\"\n labelClassName={labelClassName}\n />\n )}\n\n <div\n className={cn(\n textFieldVariants({\n size,\n validationState: currentValidationState,\n isDisabled,\n }),\n className\n )}\n >\n {prefix && (\n <span\n className={cn(\n \"shrink-0 flex items-center\",\n isDisabled\n ? \"text-surface-ink-neutral-disabled\"\n : currentValidationState === \"positive\"\n ? \"text-feedback-ink-positive-intense\"\n : currentValidationState === \"negative\"\n ? \"text-feedback-ink-negative-subtle\"\n : \"text-surface-ink-neutral-muted\"\n )}\n >\n {prefix}\n </span>\n )}\n\n <input\n ref={ref}\n value={inputValue}\n onChange={handleChange}\n disabled={isDisabled}\n required={isRequired}\n className={cn(\n \"flex-1 bg-transparent border-none outline-none text-surface-ink-neutral-normal placeholder:text-surface-ink-neutral-muted disabled:cursor-not-allowed disabled:text-surface-ink-neutral-disabled font-display\",\n inputClassName\n )}\n {...props}\n />\n\n {showClearButton && hasValue && !isDisabled && (\n <button\n type=\"button\"\n onClick={handleClear}\n className=\"shrink-0 flex items-center justify-center text-surface-ink-neutral-muted hover:text-surface-ink-neutral-normal transition-colors\"\n tabIndex={-1}\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12 4L4 12M4 4L12 12\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n </button>\n )}\n\n {suffix && (\n <span\n className={cn(\n \"shrink-0 flex items-center\",\n isDisabled\n ? \"text-surface-ink-neutral-disabled\"\n : currentValidationState === \"positive\"\n ? \"text-feedback-ink-positive-intense\"\n : currentValidationState === \"negative\"\n ? \"text-feedback-ink-negative-subtle\"\n : \"text-surface-ink-neutral-muted\"\n )}\n >\n {suffix}\n </span>\n )}\n </div>\n\n <FormFooter\n helperText={displayHelperText}\n validationState={\n currentValidationState === \"none\"\n ? \"default\"\n : currentValidationState\n }\n size={size}\n isDisabled={isDisabled}\n className=\"mt-1\"\n />\n </div>\n );\n }\n);\n\nTextField.displayName = \"TextField\";\n\nexport { TextField, textFieldVariants };\n"],"names":["_jsxs","_jsx","_Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/lib/utils.ts","../src/components/Badge/Badge.tsx","../src/components/Button/Button.tsx","../src/components/Text/Text.tsx","../src/components/FormFooter/FormFooter.tsx","../src/lib/icons.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/Counter/Counter.tsx","../src/components/Divider/Divider.tsx","../src/components/Tooltip/Tooltip.tsx","../src/components/FormHeader/FormHeader.tsx","../src/components/ListItem/ListItem.tsx","../src/components/Radio/Radio.tsx","../src/components/Switch/Switch.tsx","../src/components/TextArea/TextArea.tsx","../src/components/TextField/TextField.tsx"],"sourcesContent":["import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n// Define patterns for custom classes that should be preserved\n// This approach is more scalable than hardcoding individual class names\nconst CUSTOM_CLASS_PATTERNS = [\n // Custom font classes\n /^font-(functional|display)$/,\n // Custom font-size classes\n /^font-size-/,\n // Custom leading (line-height) classes\n /^leading-(00|25|50|75|100|200|300|400|500|600|700|800|900|1000|1100)$/,\n // Custom text utility classes (text-display, text-heading, text-body, text-caption variants)\n /^text-(display|heading|body|caption)(-\\w+)?(-\\w+)?$/,\n // Text weight classes\n /^text-weight-/,\n // Text color classes\n /^text-color-/,\n /^outline-width-/,\n /^border-width-/,\n // Custom spacing classes (example)\n // /^spacing-(xs|sm|md|lg|xl)$/,\n // Custom color classes (example)\n // /^color-(primary|secondary|accent)$/,\n // Any class that starts with 'custom-'\n /^custom-/,\n];\n\nfunction isCustomClass(className: string): boolean {\n return CUSTOM_CLASS_PATTERNS.some((pattern) => pattern.test(className));\n}\n\nexport function cn(...inputs: ClassValue[]) {\n // Use clsx first to combine classes, then use twMerge for standard Tailwind classes\n const combined = clsx(inputs);\n\n // Split classes and filter out our custom classes before merging\n const classes = combined.split(\" \");\n const customClasses = classes.filter((cls) => isCustomClass(cls));\n const standardClasses = classes.filter((cls) => !isCustomClass(cls));\n\n // Merge standard classes and add back custom classes\n const mergedStandard = twMerge(standardClasses.join(\" \"));\n return clsx(mergedStandard, customClasses);\n}\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center whitespace-nowrap transition-colors\",\n {\n variants: {\n variant: {\n light: \"\",\n filled: \"\",\n },\n color: {\n primary: \"\",\n positive: \"\",\n negative: \"\",\n notice: \"\",\n info: \"\",\n neutral: \"\",\n },\n size: {\n small:\n \"px-2 h-[var(--size-20)] gap-2 rounded-large text-body-small-medium\",\n medium:\n \"px-3 h-[var(--size-24)] gap-3 rounded-large text-body-medium-medium\",\n large:\n \"px-4 h-[var(--size-28)] gap-3 rounded-xlarge text-body-large-medium\",\n },\n },\n compoundVariants: [\n // Light variant colors\n {\n variant: \"light\",\n color: \"primary\",\n class: \"bg-action-fill-primary-faded text-action-ink-primary-normal\",\n },\n {\n variant: \"light\",\n color: \"positive\",\n class: \"bg-action-fill-positive-faded text-action-ink-positive-normal\",\n },\n {\n variant: \"light\",\n color: \"negative\",\n class: \"bg-action-fill-negative-faded text-action-ink-negative-normal\",\n },\n {\n variant: \"light\",\n color: \"notice\",\n class: \"bg-action-fill-notice-faded text-action-ink-notice-normal\",\n },\n {\n variant: \"light\",\n color: \"info\",\n class: \"bg-action-fill-info-faded text-action-ink-info-normal\",\n },\n {\n variant: \"light\",\n color: \"neutral\",\n class: \"bg-action-fill-neutral-faded text-action-ink-neutral-normal\",\n },\n // Filled variant colors\n {\n variant: \"filled\",\n color: \"primary\",\n class:\n \"bg-action-fill-primary-default text-action-ink-on-primary-normal\",\n },\n {\n variant: \"filled\",\n color: \"positive\",\n class:\n \"bg-action-fill-positive-default text-action-ink-on-primary-normal\",\n },\n {\n variant: \"filled\",\n color: \"negative\",\n class:\n \"bg-action-fill-negative-default text-action-ink-on-primary-normal\",\n },\n {\n variant: \"filled\",\n color: \"notice\",\n class:\n \"bg-action-fill-notice-default text-action-ink-on-primary-normal\",\n },\n {\n variant: \"filled\",\n color: \"info\",\n class: \"bg-action-fill-info-default text-action-ink-on-primary-normal\",\n },\n {\n variant: \"filled\",\n color: \"neutral\",\n class:\n \"bg-action-fill-neutral-default text-action-ink-on-primary-normal\",\n },\n ],\n defaultVariants: {\n variant: \"light\",\n color: \"info\",\n size: \"medium\",\n },\n }\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {\n /**\n * Whether to show a dot indicator on the left side\n */\n showDot?: boolean;\n /**\n * Custom class name for the badge\n */\n className?: string;\n /**\n * Badge label/content\n */\n children: React.ReactNode;\n /**\n * The color variant of the badge\n */\n color?: \"primary\" | \"positive\" | \"negative\" | \"notice\" | \"info\" | \"neutral\";\n}\n\nconst Badge = React.forwardRef<HTMLDivElement, BadgeProps>(\n (\n { className, variant, size, color, showDot = false, children, ...props },\n ref\n ) => {\n const getDotColor = () => {\n if (variant === \"filled\") {\n return \"bg-action-ink-on-primary-normal\";\n }\n // Light variant - use the corresponding action color\n switch (color) {\n case \"primary\":\n return \"bg-action-fill-primary-default\";\n case \"positive\":\n return \"bg-action-fill-positive-default\";\n case \"negative\":\n return \"bg-action-fill-negative-default\";\n case \"notice\":\n return \"bg-action-fill-notice-default\";\n case \"info\":\n return \"bg-action-fill-info-default\";\n case \"neutral\":\n return \"bg-action-fill-neutral-default\";\n default:\n return \"bg-action-fill-info-default\";\n }\n };\n\n const getDotSize = () => {\n if (size === \"small\") {\n return \"h-2 w-2\";\n }\n if (size === \"medium\") {\n return \"h-[6px] w-[6px]\";\n }\n return \"h-3 w-3\";\n };\n\n return (\n <div\n ref={ref}\n className={cn(badgeVariants({ variant, size, color }), className)}\n {...props}\n >\n {showDot && (\n <span\n className={cn(\"rounded-full\", getDotColor(), getDotSize())}\n aria-hidden=\"true\"\n />\n )}\n {children}\n </div>\n );\n }\n);\n\nBadge.displayName = \"Badge\";\n\nexport { Badge, badgeVariants };\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva } from \"class-variance-authority\";\nimport { PulseLoader, ClipLoader } from \"react-spinners\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst buttonVariants = cva(\n \"items-center gap-3 justify-center whitespace-nowrap ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none\",\n {\n variants: {\n variant: {\n primary:\n \"bg-action-fill-primary-default text-action-ink-on-primary-normal hover:bg-action-fill-primary-hover\",\n secondary:\n \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n tertiary: \"hover:bg-accent hover:text-accent-foreground\",\n },\n color: {\n primary: \"\",\n positive: \"\",\n negative: \"\",\n notice: \"\",\n info: \"\",\n neutral: \"\",\n },\n size: {\n xsmall: \"md:h-[28px] px-3 rounded-medium text-body-small-medium\",\n small: \"md:h-[32px] px-4 rounded-medium text-body-small-medium\",\n medium: \"md:h-[36px] px-6 py-2 rounded-medium text-body-medium-medium\",\n large: \"md:h-[44px] px-6 rounded-xlarge text-body-large-medium\",\n },\n isIconOnly: {\n true: \"aspect-square p-0\",\n false: \"\",\n },\n isLoading: {\n true: \"cursor-not-allowed\",\n false: \"\",\n },\n isDisabled: {\n true: \"cursor-not-allowed\",\n false: \"cursor-pointer\",\n },\n isFullWidth: {\n true: \"flex w-full\",\n false: \"flex w-fit\",\n },\n },\n compoundVariants: [\n // Primary variant colors\n {\n variant: \"primary\",\n color: \"primary\",\n class: `bg-action-fill-primary-default text-action-ink-on-primary-normal \n hover:bg-action-fill-primary-hover \n disabled:bg-action-fill-primary-disabled\n disabled:text-action-ink-primary-disabled,\n active:bg-action-fill-primary-activated\n `,\n },\n {\n variant: \"primary\",\n color: \"positive\",\n class: `bg-action-fill-positive-default text-action-ink-on-primary-normal \n hover:bg-action-fill-positive-hover \n disabled:bg-action-fill-primary-disabled\n disabled:text-action-ink-primary-disabled\n active:bg-action-fill-positive-activated\n `,\n },\n {\n variant: \"primary\",\n color: \"negative\",\n class: `bg-action-fill-negative-default text-action-ink-on-primary-normal \n hover:bg-action-fill-negative-hover \n disabled:bg-action-fill-negative-disabled\n disabled:text-action-ink-negative-disabled\n active:bg-action-fill-negative-activated\n `,\n },\n {\n variant: \"primary\",\n color: \"notice\",\n class: `bg-action-fill-notice-default text-action-ink-on-primary-normal \n hover:bg-action-fill-notice-hover \n disabled:bg-action-fill-notice-disabled\n disabled:text-action-ink-notice-disabled\n active:bg-action-fill-notice-activated\n `,\n },\n {\n variant: \"primary\",\n color: \"info\",\n class: `bg-action-fill-info-default text-action-ink-on-primary-normal \n hover:bg-action-fill-info-hover \n disabled:bg-action-fill-info-disabled\n disabled:text-action-ink-info-disabled\n active:bg-action-fill-info-activated\n `,\n },\n {\n variant: \"primary\",\n color: \"neutral\",\n class: `bg-action-fill-neutral-default text-action-ink-on-primary-normal \n hover:bg-action-fill-neutral-hover \n disabled:bg-action-fill-neutral-disabled\n disabled:text-action-ink-neutral-disabled\n active:bg-action-fill-neutral-activated\n `,\n },\n // Secondary variant colors\n {\n variant: \"secondary\",\n color: \"primary\",\n class: `\n border-action-outline-info-faded \n text-action-ink-primary-normal \n hover:border-action-outline-primary-faded-hover \n hover:bg-action-fill-primary-faded-hover\n disabled:bg-action-outline-info-disabled\n disabled:text-action-ink-primary-disabled\n disabled:border-action-outline-primary-disabled\n active:border-action-outline-primary-faded-activated\n active:bg-action-fill-primary-faded-activated\n `,\n },\n {\n variant: \"secondary\",\n color: \"positive\",\n class: `\n border-action-outline-positive-faded \n text-action-ink-positive-normal \n hover:border-action-outline-positive-faded-hover \n hover:bg-action-fill-positive-faded-hover \n disabled:bg-action-outline-positive-disabled\n disabled:text-action-ink-positive-disabled\n disabled:border-action-outline-positive-disabled\n active:border-action-outline-positive-faded-activated\n active:bg-action-fill-positive-faded-activated\n `,\n },\n {\n variant: \"secondary\",\n color: \"negative\",\n class: `\n border-action-outline-negative-faded \n text-action-ink-negative-normal \n hover:border-action-outline-negative-faded-hover \n hover:bg-action-fill-negative-faded-hover \n disabled:bg-action-outline-negative-disabled\n disabled:text-action-ink-negative-disabled\n disabled:border-action-outline-negative-disabled\n active:border-action-outline-negative-faded-activated\n active:bg-action-fill-negative-faded-activated\n `,\n },\n {\n variant: \"secondary\",\n color: \"notice\",\n class: `\n border-action-outline-notice-faded \n text-action-ink-notice-normal \n hover:border-action-outline-notice-faded-hover \n hover:bg-action-fill-notice-faded-hover \n disabled:bg-action-outline-notice-disabled\n disabled:text-action-ink-notice-disabled\n disabled:border-action-outline-notice-disabled\n active:border-action-outline-notice-faded-activated\n active:bg-action-fill-notice-faded-activated\n `,\n },\n {\n variant: \"secondary\",\n color: \"info\",\n class: `border-action-outline-info-faded \n text-action-ink-info-normal \n hover:border-action-outline-info-faded-hover \n hover:bg-action-fill-info-faded-hover \n disabled:bg-action-outline-info-disabled\n disabled:text-action-ink-info-disabled\n disabled:border-action-outline-info-disabled\n active:border-action-outline-info-faded-activated\n active:bg-action-fill-info-faded-activated\n `,\n },\n {\n variant: \"secondary\",\n color: \"neutral\",\n class: `border-action-outline-neutral-faded \n text-action-ink-neutral-normal \n hover:bg-action-outline-neutral-faded-hover \n hover:bg-action-fill-neutral-faded-hover \n disabled:text-action-ink-neutral-disabled\n disabled:border-action-outline-neutral-disabled\n active:border-action-outline-neutral-faded-activated\n active:bg-action-fill-neutral-faded-activated\n `,\n },\n // Tertiary variant colors\n {\n variant: \"tertiary\",\n color: \"primary\",\n class: `text-action-ink-primary-normal \n hover:bg-action-fill-primary-faded \n disabled:text-action-ink-on-primary-muted\n active:bg-action-fill-primary-faded-activated\n `,\n },\n {\n variant: \"tertiary\",\n color: \"positive\",\n class: `text-action-ink-positive-normal \n hover:bg-action-fill-positive-faded \n disabled:text-action-ink-on-positive-muted\n active:bg-action-fill-positive-faded-activated\n `,\n },\n {\n variant: \"tertiary\",\n color: \"negative\",\n class: `text-action-ink-negative-normal \n hover:bg-action-fill-negative-faded \n disabled:text-action-ink-on-negative-muted\n active:bg-action-fill-negative-faded-activated\n `,\n },\n {\n variant: \"tertiary\",\n color: \"notice\",\n class: `text-action-ink-notice-normal \n hover:bg-action-fill-notice-faded \n disabled:text-action-ink-on-notice-muted\n active:bg-action-fill-notice-faded-activated\n `,\n },\n {\n variant: \"tertiary\",\n color: \"info\",\n class: `text-action-ink-info-normal \n hover:bg-action-fill-info-faded \n disabled:text-action-ink-on-notice-muted\n active:bg-action-fill-info-faded-activated\n `,\n },\n {\n variant: \"tertiary\",\n color: \"neutral\",\n class: `text-action-ink-neutral-normal \n hover:bg-action-fill-neutral-faded \n disabled:text-action-ink-on-notice-muted\n active:bg-action-fill-neutral-faded-activated\n `,\n },\n // Icon only sizing\n {\n isIconOnly: true,\n size: \"xsmall\",\n class: \"h-7 w-7\",\n },\n {\n isIconOnly: true,\n size: \"small\",\n class: \"h-8 w-8\",\n },\n {\n isIconOnly: true,\n size: \"medium\",\n class: \"h-9 w-9\",\n },\n {\n isIconOnly: true,\n size: \"large\",\n class: \"h-10 w-10\",\n },\n ],\n defaultVariants: {\n variant: \"primary\",\n color: \"primary\",\n size: \"medium\",\n isIconOnly: false,\n isLoading: false,\n isFullWidth: false,\n },\n }\n);\n\nexport interface ButtonProps\n extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"color\"> {\n variant?: \"primary\" | \"secondary\" | \"tertiary\";\n color?: \"primary\" | \"positive\" | \"negative\" | \"notice\" | \"info\" | \"neutral\";\n size?: \"xsmall\" | \"small\" | \"medium\" | \"large\";\n isIconOnly?: boolean;\n isLoading?: boolean;\n isDisabled?: boolean;\n isFullWidth?: boolean;\n asChild?: boolean;\n leadingIcon?: React.ReactNode;\n trailingIcon?: React.ReactNode;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n variant = \"primary\",\n color = \"primary\",\n size,\n isIconOnly,\n isLoading,\n asChild = false,\n leadingIcon,\n trailingIcon,\n isFullWidth = false,\n children,\n disabled,\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot : \"button\";\n\n const isDisabled = disabled || isLoading || false;\n\n const buttonContent = (\n <>\n {isLoading && !isIconOnly && (\n <PulseLoader\n color={`var(--color-action-ink-${color}-normal)`}\n size={10}\n />\n )}\n {isLoading && isIconOnly && (\n <ClipLoader\n color={`var(--color-action-ink-${color}-normal)`}\n size={20}\n />\n )}\n {!isLoading && leadingIcon && (\n <span className=\"mr-2\">{leadingIcon}</span>\n )}\n {!isIconOnly && !isLoading && children}\n {isIconOnly && !isLoading && children}\n {!isLoading && trailingIcon && <span>{trailingIcon}</span>}\n </>\n );\n\n return (\n <Comp\n className={cn(\n buttonVariants({\n variant,\n color,\n size,\n isIconOnly,\n isLoading,\n isDisabled,\n isFullWidth,\n }),\n className\n )}\n ref={ref}\n disabled={isDisabled}\n {...props}\n >\n {buttonContent}\n </Comp>\n );\n }\n);\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n","import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\n// Helper function to get the text utility class name\nfunction getTextClassName(\n variant: \"display\" | \"heading\" | \"body\" | \"caption\" = \"body\",\n size:\n | \"2xlarge\"\n | \"xlarge\"\n | \"large\"\n | \"medium\"\n | \"small\"\n | \"xsmall\" = \"medium\",\n weight: \"regular\" | \"medium\" | \"semibold\" = \"regular\",\n color:\n | \"default\"\n | \"subtle\"\n | \"muted\"\n | \"disabled\"\n | \"primary\"\n | \"onPrimary\"\n | \"positive\"\n | \"negative\"\n | \"notice\"\n | \"info\"\n | \"neutral\" = \"default\"\n): string {\n // Build the base class name\n let baseClass = `text-${variant}`;\n\n // Add size\n if (size) {\n baseClass += `-${size}`;\n }\n\n // Add weight\n if (weight) {\n baseClass += `-${weight}`;\n }\n\n // Add color class separately\n const colorClass = `text-color-${color}`;\n\n return `${baseClass} ${colorClass}`;\n}\n\nexport interface TextProps\n extends Omit<React.HTMLAttributes<HTMLElement>, \"color\"> {\n children: React.ReactNode;\n variant?: \"display\" | \"heading\" | \"body\" | \"caption\";\n size?: \"2xlarge\" | \"xlarge\" | \"large\" | \"medium\" | \"small\" | \"xsmall\";\n weight?: \"regular\" | \"medium\" | \"semibold\";\n color?:\n | \"default\"\n | \"subtle\"\n | \"muted\"\n | \"disabled\"\n | \"primary\"\n | \"onPrimary\"\n | \"positive\"\n | \"negative\"\n | \"notice\"\n | \"info\"\n | \"neutral\";\n as?: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"span\" | \"div\" | \"label\";\n className?: string;\n}\n\nconst Text = React.forwardRef<HTMLElement, TextProps>(\n (\n {\n className,\n variant = \"body\",\n size = \"medium\",\n weight = \"regular\",\n color = \"default\",\n as = \"p\",\n children,\n ...props\n },\n ref\n ) => {\n const Component = as;\n\n const textClass = getTextClassName(variant, size, weight, color);\n\n return React.createElement(\n Component,\n {\n className: cn(textClass, className),\n ref,\n ...props,\n },\n children\n );\n }\n);\n\nText.displayName = \"Text\";\n\nexport { Text };\n","import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\nimport { Text } from \"../Text\";\n\nexport interface FormFooterProps {\n /**\n * Helper text to display on the left side\n */\n helperText?: string;\n /**\n * Trailing text to display on the right side (e.g., character count)\n */\n trailingText?: string;\n /**\n * Validation state that affects styling and icon display\n */\n validationState?: \"default\" | \"positive\" | \"negative\";\n /**\n * Size variant that affects text size, icon size, and spacing\n */\n size?: \"small\" | \"medium\" | \"large\";\n /**\n * Whether the footer is in a disabled state\n */\n isDisabled?: boolean;\n /**\n * Custom class name for the container\n */\n className?: string;\n /**\n * Custom class name for the helper text\n */\n helperTextClassName?: string;\n /**\n * Custom class name for the trailing text\n */\n trailingTextClassName?: string;\n}\n\nconst FormFooter = React.forwardRef<HTMLDivElement, FormFooterProps>(\n (\n {\n helperText,\n trailingText,\n validationState = \"default\",\n size = \"medium\",\n isDisabled = false,\n className,\n helperTextClassName,\n trailingTextClassName,\n },\n ref\n ) => {\n // Size-based configurations\n const sizeConfig = {\n small: {\n textSize: \"xsmall\" as const,\n iconSize: 12,\n gap: \"gap-1\",\n },\n medium: {\n textSize: \"small\" as const,\n iconSize: 14,\n gap: \"gap-1\",\n },\n large: {\n textSize: \"medium\" as const,\n iconSize: 16,\n gap: \"gap-1.5\",\n },\n };\n\n const config = sizeConfig[size];\n\n // Determine text color based on validation state and disabled state\n const getTextColor = () => {\n if (isDisabled) return \"disabled\";\n if (validationState === \"positive\") return \"positive\";\n if (validationState === \"negative\") return \"negative\";\n if (validationState === \"default\") return \"default\";\n return \"default\";\n };\n\n // Don't render anything if there's no content\n if (!helperText && !trailingText) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n className={cn(\n \"flex items-center justify-between px-1\",\n config.gap,\n className\n )}\n >\n {helperText && (\n <div className={cn(\"flex items-center\", config.gap)}>\n {validationState === \"positive\" && (\n <svg\n width={config.iconSize}\n height={config.iconSize}\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"text-feedback-ink-positive-intense shrink-0\"\n >\n <path\n d=\"M3 7L6 10L11 4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n {validationState === \"negative\" && (\n <svg\n width={config.iconSize}\n height={config.iconSize}\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"text-feedback-ink-negative-subtle shrink-0\"\n >\n <circle\n cx=\"7\"\n cy=\"7\"\n r=\"6\"\n stroke=\"currentColor\"\n strokeWidth=\"1\"\n />\n <path\n d=\"M7 4V7.5M7 10V9.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1\"\n strokeLinecap=\"round\"\n />\n </svg>\n )}\n <Text\n as=\"span\"\n variant=\"body\"\n size={config.textSize}\n weight=\"regular\"\n color={getTextColor()}\n className={cn(\n \"italic font-size-100 leading-100\",\n helperTextClassName\n )}\n >\n {helperText}\n </Text>\n </div>\n )}\n\n {trailingText && (\n <Text\n as=\"span\"\n variant=\"body\"\n size={config.textSize}\n weight=\"regular\"\n color={isDisabled ? \"disabled\" : \"muted\"}\n className={cn(\n \"font-size-100 leading-100 shrink-0\",\n trailingTextClassName\n )}\n >\n {trailingText}\n </Text>\n )}\n </div>\n );\n }\n);\n\nFormFooter.displayName = \"FormFooter\";\n\nexport { FormFooter };\n","import * as React from \"react\";\n\n/**\n * Icon component props\n */\nexport interface IconProps extends React.SVGProps<SVGSVGElement> {\n size?: number | string;\n}\n\n/**\n * ==============================================\n * HOW TO ADD A NEW ICON:\n * ==============================================\n *\n * 1. Add your SVG file to: src/assets/icons/{iconName}.svg\n *\n * 2. Copy the SVG content from the file\n *\n * 3. Add it to the iconRegistry below:\n * iconName: `<svg>...</svg>`,\n *\n * 4. Use it anywhere in your app:\n * <Icon name=\"iconName\" size={24} />\n *\n * The Icon component will automatically:\n * - Replace hardcoded colors with currentColor\n * - Allow you to control color via className or style\n * - Resize based on the size prop\n * ==============================================\n */\n\n/**\n * Icon registry - maps icon names to their SVG content\n * Add your icons here by copying the SVG content from your icon files\n */\nconst iconRegistry: Record<string, string> = {\n // Tick/Check icon\n tick: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M10.364 15.1924L19.5564 6L20.9706 7.41421L10.364 18.0208L4 11.6569L5.41422 10.2427L10.364 15.1924Z\" fill=\"#081416\"/>\n</svg>`,\n\n // Alias: check points to the same icon as tick\n check: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M10.364 15.1924L19.5564 6L20.9706 7.41421L10.364 18.0208L4 11.6569L5.41422 10.2427L10.364 15.1924Z\" fill=\"#081416\"/>\n</svg>`,\n};\n\n/**\n * Type for available icon names (with autocomplete support)\n */\nexport type IconName = keyof typeof iconRegistry;\n\n/**\n * Icon component that renders an SVG icon by name\n *\n * Features:\n * - ✓ Automatically converts hardcoded colors to currentColor\n * - ✓ Control color via className (e.g., \"text-blue-500\")\n * - ✓ Control color via style prop\n * - ✓ Customizable size\n * - ✓ TypeScript autocomplete for icon names\n * - ✓ All standard SVG props supported\n *\n * @example\n * ```tsx\n * // Basic usage\n * <Icon name=\"tick\" size={24} />\n *\n * // With Tailwind color class\n * <Icon name=\"tick\" size={16} className=\"text-blue-500\" />\n *\n * // With inline styles\n * <Icon name=\"check\" size={20} style={{ color: 'red' }} />\n *\n * // With custom props\n * <Icon name=\"tick\" size={32} className=\"hover:text-green-600 transition-colors\" />\n * ```\n */\nexport interface DynamicIconProps\n extends Omit<\n React.SVGProps<SVGSVGElement>,\n \"ref\" | \"dangerouslySetInnerHTML\"\n > {\n /** Name of the icon to render */\n name: IconName;\n /** Size of the icon (width and height) */\n size?: number | string;\n}\n\nexport const Icon: React.FC<DynamicIconProps> = ({\n name,\n size = 24,\n className = \"\",\n style = {},\n ...props\n}) => {\n const svgContent = iconRegistry[name];\n\n if (!svgContent) {\n console.warn(\n `Icon \"${String(name)}\" not found in registry.\\n` +\n `Available icons: ${Object.keys(iconRegistry).join(\", \")}`\n );\n return null;\n }\n\n // Parse the SVG content\n const parser = new DOMParser();\n const svgDoc = parser.parseFromString(svgContent, \"image/svg+xml\");\n const svgElement = svgDoc.querySelector(\"svg\");\n\n if (!svgElement) {\n console.error(`Invalid SVG content for icon \"${String(name)}\"`);\n return null;\n }\n\n // Extract viewBox attribute\n const viewBox = svgElement.getAttribute(\"viewBox\") || \"0 0 24 24\";\n let innerHTML = svgElement.innerHTML;\n\n // Replace hardcoded fill and stroke colors with currentColor\n // This allows the icon color to be controlled via CSS color property\n innerHTML = innerHTML\n .replace(/fill=\"[^\"]*\"/g, 'fill=\"currentColor\"')\n .replace(/stroke=\"[^\"]*\"/g, 'stroke=\"currentColor\"');\n\n return (\n <svg\n width={size}\n height={size}\n viewBox={viewBox}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n style={style}\n {...props}\n dangerouslySetInnerHTML={{ __html: innerHTML }}\n />\n );\n};\n\nIcon.displayName = \"Icon\";\n\n/**\n * Get all available icon names from the registry\n * @returns Array of registered icon names\n *\n * @example\n * ```tsx\n * const icons = getAvailableIcons();\n * console.log(icons); // ['tick', 'check', ...]\n * ```\n */\nexport function getAvailableIcons(): IconName[] {\n return Object.keys(iconRegistry) as IconName[];\n}\n\n/**\n * Check if an icon exists in the registry\n * @param name - Icon name to check\n * @returns true if the icon exists\n *\n * @example\n * ```tsx\n * if (hasIcon('tick')) {\n * // Icon exists\n * }\n * ```\n */\nexport function hasIcon(name: string): name is IconName {\n return name in iconRegistry;\n}\n\n// Export the registry for advanced use cases\nexport { iconRegistry };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\nimport { FormFooter } from \"../FormFooter\";\nimport { Icon } from \"../../lib/icons\";\n\nconst checkboxVariants = cva(\n \"relative inline-flex items-center justify-center shrink-0 transition-all cursor-pointer\",\n {\n variants: {\n size: {\n small: \"w-[14px] h-[14px] rounded-small border-[1.5px]\",\n medium: \"w-[16px] h-[16px] rounded-small border-[1.5px]\",\n large: \"w-[20px] h-[20px] rounded-medium border-[2px]\",\n },\n validationState: {\n none: \"\",\n error:\n \"border-action-outline-negative-default hover:border-action-outline-negative-hover focus:ring-2 ring-action-outline-negative-faded-hover\",\n },\n isChecked: {\n true: \"\",\n false: \"\",\n },\n isIndeterminate: {\n true: \"\",\n false: \"\",\n },\n isDisabled: {\n true: \"cursor-not-allowed opacity-60 border-action-outline-neutral-disabled bg-surface-fill-neutral-subtle\",\n false: \"\",\n },\n },\n compoundVariants: [\n // Unchecked state - none validation\n {\n isChecked: false,\n validationState: \"none\",\n isDisabled: false,\n class:\n \"border-action-outline-neutral-faded hover:bg-action-fill-neutral-faded hover:border-action-outline-neutral-faded\",\n },\n // Checked state - none validation\n {\n isChecked: true,\n validationState: \"none\",\n isDisabled: false,\n class:\n \"bg-action-fill-primary-default hover:bg-action-fill-primary-hover hover:border-action-fill-primary-hover border-action-fill-primary-default\",\n },\n // Checked or Indeterminate state - error validation\n {\n isChecked: true,\n validationState: \"error\",\n isDisabled: false,\n class:\n \"bg-action-fill-negative-default border-action-fill-negative-default hover:bg-action-fill-negative-hover hover:border-action-fill-negative-hover\",\n },\n // Indeterminate state - none validation\n {\n isIndeterminate: true,\n validationState: \"none\",\n isDisabled: false,\n class:\n \"bg-action-fill-primary-default border-action-fill-primary-default hover:bg-action-fill-primary-hover hover:border-action-fill-primary-hover\",\n },\n // Indeterminate state - error validation (same as checked error)\n {\n isIndeterminate: true,\n validationState: \"error\",\n isDisabled: false,\n class:\n \"bg-action-fill-negative-default border-action-fill-negative-default hover:bg-action-fill-negative-hover hover:border-action-fill-negative-hover\",\n },\n ],\n defaultVariants: {\n size: \"medium\",\n validationState: \"none\",\n isChecked: false,\n isIndeterminate: false,\n isDisabled: false,\n },\n }\n);\n\nexport interface CheckboxProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\"> {\n /**\n * Label text to display next to the checkbox\n */\n label?: string;\n /**\n * Error text to display below the checkbox\n */\n errorText?: string;\n /**\n * Size of the checkbox\n */\n size?: \"small\" | \"medium\" | \"large\";\n /**\n * Validation state of the checkbox\n */\n validationState?: \"none\" | \"error\";\n /**\n * Whether the checkbox is disabled\n */\n isDisabled?: boolean;\n /**\n * Whether the checkbox is in an indeterminate state\n */\n isIndeterminate?: boolean;\n /**\n * Whether to show error text (defaults to true if errorText is provided)\n */\n showErrorText?: boolean;\n /**\n * Custom class name for the container\n */\n containerClassName?: string;\n /**\n * Custom class name for the label\n */\n labelClassName?: string;\n}\n\nconst Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n label,\n errorText,\n size = \"medium\",\n validationState = \"none\",\n isDisabled = false,\n isIndeterminate = false,\n showErrorText = true,\n containerClassName,\n labelClassName,\n className,\n checked,\n onChange,\n ...props\n },\n ref\n ) => {\n const [internalChecked, setInternalChecked] = React.useState(false);\n const [showRipple, setShowRipple] = React.useState(false);\n const inputRef = React.useRef<HTMLInputElement>(null);\n const rippleTimeoutRef = React.useRef<number | null>(null);\n\n // Use forwarded ref or internal ref\n React.useImperativeHandle(ref, () => inputRef.current!);\n\n const isChecked = checked !== undefined ? checked : internalChecked;\n\n // Set indeterminate property on the input element\n React.useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = isIndeterminate;\n }\n }, [isIndeterminate]);\n\n // Cleanup timeout on unmount\n React.useEffect(() => {\n return () => {\n if (rippleTimeoutRef.current) {\n clearTimeout(rippleTimeoutRef.current);\n }\n };\n }, []);\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (onChange) {\n onChange(e);\n } else {\n setInternalChecked(e.target.checked);\n }\n };\n\n const triggerRipple = () => {\n if (!isDisabled && !showRipple) {\n // Clear any existing timeout\n if (rippleTimeoutRef.current) {\n clearTimeout(rippleTimeoutRef.current);\n }\n\n setShowRipple(true);\n rippleTimeoutRef.current = setTimeout(() => {\n setShowRipple(false);\n rippleTimeoutRef.current = null;\n }, 400); // Match animation duration (0.4s)\n }\n };\n\n const handleContainerClick = () => {\n if (!isDisabled && inputRef.current) {\n triggerRipple();\n inputRef.current.click();\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if ((e.key === \" \" || e.key === \"Enter\") && !isDisabled) {\n e.preventDefault();\n triggerRipple();\n inputRef.current?.click();\n }\n };\n\n // Size-based configurations\n const sizeConfig = {\n small: {\n gap: \"gap-2\",\n labelSize: \"text-body-small-regular\",\n iconSize: 10,\n },\n medium: {\n gap: \"gap-2.5\",\n labelSize: \"text-body-medium-regular\",\n iconSize: 12,\n },\n large: {\n gap: \"gap-3\",\n labelSize: \"text-body-large-regular\",\n iconSize: 14,\n },\n };\n\n const config = sizeConfig[size];\n\n // Determine if we should show the error text\n const shouldShowError = errorText && showErrorText;\n\n return (\n <div className={cn(\"inline-flex flex-col\", containerClassName)}>\n <div\n className={cn(\n \"inline-flex items-center\",\n config.gap,\n isDisabled ? \"cursor-not-allowed\" : \"cursor-pointer\"\n )}\n onClick={handleContainerClick}\n onKeyDown={handleKeyDown}\n role=\"checkbox\"\n aria-checked={isIndeterminate ? \"mixed\" : isChecked}\n aria-disabled={isDisabled}\n tabIndex={isDisabled ? -1 : 0}\n >\n <input\n ref={inputRef}\n type=\"checkbox\"\n className=\"sr-only\"\n checked={isChecked}\n onChange={handleChange}\n disabled={isDisabled}\n {...props}\n />\n\n <div className=\"relative inline-flex shrink-0\">\n {/* Ripple Effect */}\n {showRipple && (\n <div\n className={cn(\n \"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 rounded-full pointer-events-none w-full h-full\",\n validationState === \"error\"\n ? \"bg-action-outline-negative-faded\"\n : \"bg-action-outline-primary-faded\"\n )}\n style={{\n animation: \"var(--animate-checkbox-ripple)\",\n }}\n />\n )}\n\n <div\n className={cn(\n checkboxVariants({\n size,\n validationState,\n isChecked: isChecked && !isIndeterminate,\n isIndeterminate,\n isDisabled,\n }),\n className\n )}\n >\n {/* Checkmark Icon */}\n {isChecked && !isIndeterminate && (\n <Icon\n name=\"tick\"\n size={config.iconSize}\n className=\"text-action-ink-on-primary-normal\"\n />\n )}\n\n {/* Indeterminate Icon */}\n {isIndeterminate && (\n <svg\n width={config.iconSize}\n height={config.iconSize}\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"text-action-ink-on-primary-normal\"\n >\n <path\n d=\"M3 6H9\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n )}\n </div>\n </div>\n\n {label && (\n <label\n className={cn(\n config.labelSize,\n \"select-none inline-flex items-center\",\n isDisabled\n ? \"text-surface-ink-neutral-disabled\"\n : \"text-surface-ink-neutral-normal\",\n labelClassName\n )}\n >\n {label}\n </label>\n )}\n </div>\n\n {/* Error text */}\n {shouldShowError && (\n <FormFooter\n helperText={errorText}\n validationState=\"negative\"\n size={size}\n isDisabled={isDisabled}\n />\n )}\n </div>\n );\n }\n);\n\nCheckbox.displayName = \"Checkbox\";\n\nexport { Checkbox, checkboxVariants };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\n\nconst counterVariants = cva(\n \"inline-flex items-center justify-center transition-colors\",\n {\n variants: {\n size: {\n small:\n \"text-body-xsmall-medium rounded-small px-1 py-0.5 min-w-[20px] h-[16px]\",\n medium:\n \"text-body-small-medium rounded-medium px-2 py-1 min-w-[24px] h-[20px]\",\n large:\n \"text-body-medium-medium rounded-medium px-2 py-1 min-w-[28px] h-[24px]\",\n },\n color: {\n positive: \"\",\n negative: \"\",\n notice: \"\",\n information: \"\",\n neutral: \"\",\n primary: \"\",\n },\n emphasis: {\n subtle: \"\",\n intense: \"\",\n },\n },\n compoundVariants: [\n // Positive - Subtle\n {\n color: \"positive\",\n emphasis: \"subtle\",\n class:\n \"bg-feedback-fill-positive-subtle text-feedback-ink-positive-intense\",\n },\n // Positive - Intense\n {\n color: \"positive\",\n emphasis: \"intense\",\n class:\n \"bg-feedback-fill-positive-intense text-action-ink-on-primary-normal\",\n },\n // Negative - Subtle\n {\n color: \"negative\",\n emphasis: \"subtle\",\n class:\n \"bg-feedback-fill-negative-subtle text-feedback-ink-negative-subtle\",\n },\n // Negative - Intense\n {\n color: \"negative\",\n emphasis: \"intense\",\n class:\n \"bg-feedback-fill-negative-intense text-action-ink-on-primary-normal\",\n },\n // Notice - Subtle\n {\n color: \"notice\",\n emphasis: \"subtle\",\n class: \"bg-feedback-fill-notice-subtle text-feedback-ink-notice-subtle\",\n },\n // Notice - Intense\n {\n color: \"notice\",\n emphasis: \"intense\",\n class:\n \"bg-feedback-fill-notice-intense text-action-ink-on-primary-normal\",\n },\n // Information - Subtle\n {\n color: \"information\",\n emphasis: \"subtle\",\n class: \"bg-feedback-fill-info-subtle text-feedback-ink-info-subtle\",\n },\n // Information - Intense\n {\n color: \"information\",\n emphasis: \"intense\",\n class:\n \"bg-feedback-fill-info-intense text-action-ink-on-primary-normal\",\n },\n // Neutral - Subtle\n {\n color: \"neutral\",\n emphasis: \"subtle\",\n class: \"bg-surface-fill-neutral-subtle text-surface-ink-neutral-normal\",\n },\n // Neutral - Intense\n {\n color: \"neutral\",\n emphasis: \"intense\",\n class:\n \"bg-feedback-fill-neutral-intense text-action-ink-on-primary-normal\",\n },\n // Primary - Subtle\n {\n color: \"primary\",\n emphasis: \"subtle\",\n class:\n \"bg-surface-fill-primary-moderate text-surface-ink-primary-normal\",\n },\n // Primary - Intense\n {\n color: \"primary\",\n emphasis: \"intense\",\n class:\n \"bg-surface-fill-primary-intense text-action-ink-on-primary-normal\",\n },\n ],\n defaultVariants: {\n size: \"medium\",\n color: \"neutral\",\n emphasis: \"subtle\",\n },\n }\n);\n\nexport interface CounterProps\n extends Omit<React.HTMLAttributes<HTMLSpanElement>, \"color\">,\n VariantProps<typeof counterVariants> {\n /**\n * The numerical value to display\n */\n value: number | string;\n /**\n * Maximum value to display before showing overflow indicator (e.g., \"99+\")\n */\n max?: number;\n /**\n * Custom class name for the counter\n */\n className?: string;\n}\n\nconst Counter = React.forwardRef<HTMLSpanElement, CounterProps>(\n (\n {\n value,\n max,\n size = \"medium\",\n color = \"neutral\",\n emphasis = \"subtle\",\n className,\n ...props\n },\n ref\n ) => {\n // Handle max value logic\n const displayValue = React.useMemo(() => {\n if (max !== undefined && typeof value === \"number\" && value > max) {\n return `${max}+`;\n }\n return value;\n }, [value, max]);\n\n return (\n <span\n ref={ref}\n className={cn(\n counterVariants({\n size,\n color,\n emphasis,\n }),\n className\n )}\n {...props}\n >\n {displayValue}\n </span>\n );\n }\n);\n\nCounter.displayName = \"Counter\";\n\nexport { Counter, counterVariants };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst dividerVariants = cva(\"\", {\n variants: {\n orientation: {\n horizontal: \"w-full\",\n vertical: \"h-full\",\n },\n thickness: {\n thinner: \"\",\n thin: \"\",\n thick: \"\",\n thicker: \"\",\n },\n lineStyle: {\n solid: \"border-solid\",\n dashed: \"border-dashed\",\n },\n variant: {\n normal: \"\",\n subtle: \"\",\n muted: \"\",\n },\n },\n compoundVariants: [\n // Horizontal orientation with thickness\n {\n orientation: \"horizontal\",\n thickness: \"thinner\",\n class: \"border-t-[0.5px]\",\n },\n {\n orientation: \"horizontal\",\n thickness: \"thin\",\n class: \"border-t-[1px]\",\n },\n {\n orientation: \"horizontal\",\n thickness: \"thick\",\n class: \"border-t-[2px]\",\n },\n {\n orientation: \"horizontal\",\n thickness: \"thicker\",\n class: \"border-t-[3px]\",\n },\n // Vertical orientation with thickness\n {\n orientation: \"vertical\",\n thickness: \"thinner\",\n class: \"border-l-[0.5px]\",\n },\n {\n orientation: \"vertical\",\n thickness: \"thin\",\n class: \"border-l-[1px]\",\n },\n {\n orientation: \"vertical\",\n thickness: \"thick\",\n class: \"border-l-[2px]\",\n },\n {\n orientation: \"vertical\",\n thickness: \"thicker\",\n class: \"border-l-[3px]\",\n },\n // Normal variant colors\n {\n variant: \"normal\",\n class: \"border-surface-outline-neutral-normal\",\n },\n // Subtle variant colors\n {\n variant: \"subtle\",\n class: \"border-surface-outline-neutral-subtle\",\n },\n // Muted variant colors\n {\n variant: \"muted\",\n class: \"border-surface-outline-neutral-muted\",\n },\n ],\n defaultVariants: {\n orientation: \"horizontal\",\n thickness: \"thin\",\n lineStyle: \"solid\",\n variant: \"normal\",\n },\n});\n\nexport interface DividerProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof dividerVariants> {\n /**\n * The orientation of the divider\n * @default \"horizontal\"\n */\n orientation?: \"horizontal\" | \"vertical\";\n /**\n * The thickness of the divider\n * @default \"thin\"\n */\n thickness?: \"thinner\" | \"thin\" | \"thick\" | \"thicker\";\n /**\n * The style of the divider line\n * @default \"solid\"\n */\n lineStyle?: \"solid\" | \"dashed\";\n /**\n * The color variant of the divider\n * @default \"normal\"\n */\n variant?: \"normal\" | \"subtle\" | \"muted\";\n /**\n * Custom class name for the divider\n */\n className?: string;\n}\n\nconst Divider = React.forwardRef<HTMLDivElement, DividerProps>(\n (\n {\n className,\n orientation = \"horizontal\",\n thickness = \"thin\",\n lineStyle = \"solid\",\n variant = \"normal\",\n ...props\n },\n ref\n ) => {\n return (\n <div\n ref={ref}\n role=\"separator\"\n aria-orientation={orientation}\n className={cn(\n dividerVariants({ orientation, thickness, lineStyle, variant }),\n className\n )}\n {...props}\n />\n );\n }\n);\n\nDivider.displayName = \"Divider\";\n\nexport { Divider, dividerVariants };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\nimport { Text } from \"../Text\";\n\nconst tooltipVariants = cva(\n \"fixed z-50 bg-popup-fill-intense text-action-ink-on-primary-normal rounded-medium border border-popup-outline-subtle flex flex-col p-4 rounded-xlarge min-w-[200px] max-w-[300px] transition-opacity duration-200\",\n {\n variants: {\n isVisible: {\n true: \"opacity-100 pointer-events-auto shadow-[0_4px_20px_rgba(0,0,0,0.15)]\",\n false: \"opacity-0 pointer-events-none\",\n },\n },\n defaultVariants: {\n isVisible: false,\n },\n }\n);\n\nconst tooltipArrowVariants = cva(\n \"absolute w-0 h-0 border-solid border-[6px] -translate-x-1/2\",\n {\n variants: {\n placement: {\n \"top-start\":\n \"top-full border-t-popup-fill-intense border-x-transparent border-b-transparent\",\n top: \"top-full border-t-popup-fill-intense border-x-transparent border-b-transparent\",\n \"top-end\":\n \"top-full border-t-popup-fill-intense border-x-transparent border-b-transparent\",\n \"bottom-start\":\n \"bottom-full border-b-popup-fill-intense border-x-transparent border-t-transparent\",\n bottom:\n \"bottom-full border-b-popup-fill-intense border-x-transparent border-t-transparent\",\n \"bottom-end\":\n \"bottom-full border-b-popup-fill-intense border-x-transparent border-t-transparent\",\n },\n },\n defaultVariants: {\n placement: \"top\",\n },\n }\n);\n\nexport interface TooltipProps {\n /**\n * The trigger element that the tooltip will attach to\n */\n children: React.ReactElement;\n /**\n * Heading text for the tooltip\n */\n heading?: string;\n /**\n * Description text for the tooltip\n */\n description: string;\n /**\n * Placement of the tooltip relative to the trigger\n */\n placement?:\n | \"top-start\"\n | \"top\"\n | \"top-end\"\n | \"bottom-start\"\n | \"bottom\"\n | \"bottom-end\";\n /**\n * Whether to show the arrow/anchor\n */\n showArrow?: boolean;\n /**\n * Custom class name for the tooltip container\n */\n className?: string;\n /**\n * Delay before showing tooltip (in milliseconds)\n */\n delay?: number;\n /**\n * Whether the tooltip is disabled\n */\n disabled?: boolean;\n}\n\nconst Tooltip = React.forwardRef<HTMLDivElement, TooltipProps>(\n (\n {\n children,\n heading,\n description,\n placement = \"top\",\n showArrow = true,\n className,\n delay = 200,\n disabled = false,\n },\n ref\n ) => {\n const [isVisible, setIsVisible] = React.useState(false);\n const [position, setPosition] = React.useState({ top: 0, left: 0 });\n const [arrowPosition, setArrowPosition] = React.useState({ left: 0 });\n const [actualPlacement, setActualPlacement] = React.useState<\n \"top-start\" | \"top\" | \"top-end\" | \"bottom-start\" | \"bottom\" | \"bottom-end\"\n >(placement);\n const timeoutRef = React.useRef<ReturnType<typeof setTimeout> | null>(null);\n const triggerRef = React.useRef<HTMLElement>(null);\n const tooltipRef = React.useRef<HTMLDivElement>(null);\n\n const calculatePosition = React.useCallback(() => {\n if (!triggerRef.current || !tooltipRef.current) return;\n\n const triggerRect = triggerRef.current.getBoundingClientRect();\n const tooltipRect = tooltipRef.current.getBoundingClientRect();\n const gap = 8; // 8px gap between trigger and tooltip\n const arrowSize = 6; // Size of the arrow\n const viewportPadding = 8; // Minimum padding from viewport edges\n\n let top = 0;\n let left = 0;\n let currentPlacement = placement;\n\n // Calculate initial position based on placement\n switch (placement) {\n case \"top-start\":\n top = triggerRect.top - tooltipRect.height - gap - arrowSize;\n left = triggerRect.left;\n break;\n case \"top\":\n top = triggerRect.top - tooltipRect.height - gap - arrowSize;\n left =\n triggerRect.left + triggerRect.width / 2 - tooltipRect.width / 2;\n break;\n case \"top-end\":\n top = triggerRect.top - tooltipRect.height - gap - arrowSize;\n left = triggerRect.right - tooltipRect.width;\n break;\n case \"bottom-start\":\n top = triggerRect.bottom + gap + arrowSize;\n left = triggerRect.left;\n break;\n case \"bottom\":\n top = triggerRect.bottom + gap + arrowSize;\n left =\n triggerRect.left + triggerRect.width / 2 - tooltipRect.width / 2;\n break;\n case \"bottom-end\":\n top = triggerRect.bottom + gap + arrowSize;\n left = triggerRect.right - tooltipRect.width;\n break;\n }\n\n // Get viewport dimensions\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n\n // Adjust horizontal position to keep tooltip within viewport\n if (left < viewportPadding) {\n // Tooltip would overflow on the left\n left = viewportPadding;\n } else if (left + tooltipRect.width > viewportWidth - viewportPadding) {\n // Tooltip would overflow on the right\n left = viewportWidth - tooltipRect.width - viewportPadding;\n }\n\n // Adjust vertical position to keep tooltip within viewport\n if (top < viewportPadding) {\n // Tooltip would overflow at the top\n // Try to flip to bottom if there's more space there\n const spaceBelow = viewportHeight - triggerRect.bottom;\n const spaceAbove = triggerRect.top;\n\n if (spaceBelow > spaceAbove) {\n // Flip to bottom\n top = triggerRect.bottom + gap + arrowSize;\n // Update placement to reflect the flip\n if (placement === \"top-start\") currentPlacement = \"bottom-start\";\n else if (placement === \"top\") currentPlacement = \"bottom\";\n else if (placement === \"top-end\") currentPlacement = \"bottom-end\";\n } else {\n // Keep at top but adjust to stay in viewport\n top = viewportPadding;\n }\n } else if (top + tooltipRect.height > viewportHeight - viewportPadding) {\n // Tooltip would overflow at the bottom\n // Try to flip to top if there's more space there\n const spaceAbove = triggerRect.top;\n const spaceBelow = viewportHeight - triggerRect.bottom;\n\n if (spaceAbove > spaceBelow) {\n // Flip to top\n top = triggerRect.top - tooltipRect.height - gap - arrowSize;\n // Update placement to reflect the flip\n if (placement === \"bottom-start\") currentPlacement = \"top-start\";\n else if (placement === \"bottom\") currentPlacement = \"top\";\n else if (placement === \"bottom-end\") currentPlacement = \"top-end\";\n } else {\n // Keep at bottom but adjust to stay in viewport\n top = viewportHeight - tooltipRect.height - viewportPadding;\n }\n }\n\n // Calculate arrow position relative to trigger\n // The arrow should point to the center of the trigger element\n const triggerCenterX = triggerRect.left + triggerRect.width / 2;\n const tooltipLeft = left;\n const arrowLeft = triggerCenterX - tooltipLeft;\n\n // Clamp arrow position to stay within tooltip bounds (with padding)\n const arrowPadding = 16; // Minimum distance from tooltip edges\n const clampedArrowLeft = Math.max(\n arrowPadding,\n Math.min(arrowLeft, tooltipRect.width - arrowPadding)\n );\n\n setPosition({ top, left });\n setArrowPosition({ left: clampedArrowLeft });\n setActualPlacement(currentPlacement);\n }, [placement]);\n\n const handleMouseEnter = () => {\n if (disabled) return;\n\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n\n timeoutRef.current = setTimeout(() => {\n setIsVisible(true);\n }, delay);\n };\n\n const handleMouseLeave = () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n setIsVisible(false);\n };\n\n const handleFocus = () => {\n if (disabled) return;\n setIsVisible(true);\n };\n\n const handleBlur = () => {\n setIsVisible(false);\n };\n\n React.useEffect(() => {\n if (isVisible) {\n calculatePosition();\n window.addEventListener(\"scroll\", calculatePosition, true);\n window.addEventListener(\"resize\", calculatePosition);\n }\n\n return () => {\n window.removeEventListener(\"scroll\", calculatePosition, true);\n window.removeEventListener(\"resize\", calculatePosition);\n };\n }, [isVisible, calculatePosition]);\n\n React.useEffect(() => {\n // Reset actualPlacement when placement prop changes\n setActualPlacement(placement);\n }, [placement]);\n\n React.useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n };\n }, []);\n\n // Merge refs function\n const mergeRefs = (...refs: any[]) => {\n return (node: any) => {\n refs.forEach((ref) => {\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref && typeof ref === \"object\" && \"current\" in ref) {\n (ref as any).current = node;\n }\n });\n };\n };\n\n // Clone the child element and add event handlers\n const trigger = React.cloneElement(children, {\n ref: mergeRefs(triggerRef, (children as any).ref),\n onMouseEnter: (e: React.MouseEvent) => {\n handleMouseEnter();\n children.props.onMouseEnter?.(e);\n },\n onMouseLeave: (e: React.MouseEvent) => {\n handleMouseLeave();\n children.props.onMouseLeave?.(e);\n },\n onFocus: (e: React.FocusEvent) => {\n handleFocus();\n children.props.onFocus?.(e);\n },\n onBlur: (e: React.FocusEvent) => {\n handleBlur();\n children.props.onBlur?.(e);\n },\n \"aria-describedby\": isVisible ? \"tooltip-content\" : undefined,\n });\n\n return (\n <>\n {trigger}\n\n <div\n ref={mergeRefs(tooltipRef, ref)}\n id=\"tooltip-content\"\n role=\"tooltip\"\n className={cn(tooltipVariants({ isVisible }), className)}\n style={{\n top: `${position.top}px`,\n left: `${position.left}px`,\n }}\n aria-hidden={!isVisible}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n {showArrow && (\n <div\n className={cn(\n tooltipArrowVariants({ placement: actualPlacement })\n )}\n style={{\n left: `${arrowPosition.left}px`,\n }}\n />\n )}\n\n <div className=\"relative flex flex-col gap-2\">\n {heading && (\n <Text\n variant=\"body\"\n size=\"medium\"\n weight=\"semibold\"\n color=\"onPrimary\"\n >\n {heading}\n </Text>\n )}\n <Text\n variant=\"body\"\n size=\"small\"\n weight=\"regular\"\n color=\"onPrimary\"\n // className=\"flex gap-3\"\n >\n {description}\n </Text>\n </div>\n </div>\n </>\n );\n }\n);\n\nTooltip.displayName = \"Tooltip\";\n\nexport { Tooltip, tooltipVariants };\n","import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\nimport { Text } from \"../Text\";\nimport { Tooltip } from \"../Tooltip\";\n\nexport interface FormHeaderProps {\n /**\n * The label text to display\n */\n label: string;\n /**\n * Size variant that affects text size, icon size, and spacing\n */\n size?: \"small\" | \"medium\" | \"large\";\n /**\n * Whether to show \"(optional)\" text after the label\n */\n isOptional?: boolean;\n /**\n * Whether to show \"*\" (required indicator) after the label\n */\n isRequired?: boolean;\n /**\n * Tooltip heading text\n */\n infoHeading?: string;\n /**\n * Tooltip description text - if provided, shows the info icon\n */\n infoDescription?: string;\n /**\n * Link text to display on the right side\n */\n linkText?: string;\n /**\n * Link href or onClick handler\n */\n linkHref?: string;\n /**\n * Link click handler\n */\n onLinkClick?: (e: React.MouseEvent<HTMLAnchorElement>) => void;\n /**\n * HTML for attribute to associate with form input\n */\n htmlFor?: string;\n /**\n * Custom class name for the container\n */\n className?: string;\n /**\n * Custom class name for the label\n */\n labelClassName?: string;\n /**\n * Custom class name for the link\n */\n linkClassName?: string;\n}\n\nconst FormHeader = React.forwardRef<HTMLDivElement, FormHeaderProps>(\n (\n {\n label,\n size = \"medium\",\n isOptional = false,\n isRequired = false,\n infoHeading,\n infoDescription,\n linkText,\n linkHref,\n onLinkClick,\n htmlFor,\n className,\n labelClassName,\n linkClassName,\n },\n ref\n ) => {\n // Size-based configurations\n const sizeConfig = {\n small: {\n textSize: \"xsmall\" as const,\n iconSize: 12,\n gap: \"gap-1.5\",\n },\n medium: {\n textSize: \"small\" as const,\n iconSize: 14,\n gap: \"gap-2\",\n },\n large: {\n textSize: \"medium\" as const,\n iconSize: 16,\n gap: \"gap-2.5\",\n },\n };\n\n const config = sizeConfig[size];\n\n return (\n <div\n ref={ref}\n className={cn(\n \"flex items-center justify-between px-1\",\n config.gap,\n className\n )}\n >\n <div className={cn(\"flex items-center\", config.gap)}>\n <label\n htmlFor={htmlFor}\n className={cn(\"flex items-center\", labelClassName)}\n >\n <Text\n as=\"span\"\n variant=\"body\"\n size={config.textSize}\n weight=\"semibold\"\n color=\"subtle\"\n >\n {label}\n </Text>\n {isRequired && (\n <Text\n as=\"span\"\n variant=\"body\"\n size={config.textSize}\n weight=\"semibold\"\n className=\"text-feedback-ink-negative-subtle ml-0.5\"\n >\n *\n </Text>\n )}\n {isOptional && (\n <Text\n as=\"span\"\n variant=\"body\"\n size={config.textSize}\n weight=\"regular\"\n className=\"text-surface-ink-neutral-muted ml-1\"\n >\n (optional)\n </Text>\n )}\n </label>\n {infoDescription && (\n <Tooltip description={infoDescription} heading={infoHeading}>\n <svg\n width={config.iconSize}\n height={config.iconSize}\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"text-surface-ink-neutral-muted cursor-help\"\n >\n <circle\n cx=\"7\"\n cy=\"7\"\n r=\"6\"\n stroke=\"currentColor\"\n strokeWidth=\"1\"\n />\n <path\n d=\"M7 6V10M7 4.5V4\"\n stroke=\"currentColor\"\n strokeWidth=\"1\"\n strokeLinecap=\"round\"\n />\n </svg>\n </Tooltip>\n )}\n </div>\n\n {linkText && (\n <a\n href={linkHref}\n onClick={onLinkClick}\n className={cn(\n \"text-surface-ink-primary-normal hover:text-surface-ink-primary-hover transition-colors cursor-pointer font-display font-semibold leading-tight shrink-0\",\n size === \"small\" && \"text-xs\",\n size === \"medium\" && \"text-xs\",\n size === \"large\" && \"text-sm\",\n linkClassName\n )}\n >\n {linkText}\n </a>\n )}\n </div>\n );\n }\n);\n\nFormHeader.displayName = \"FormHeader\";\n\nexport { FormHeader };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\nimport { Checkbox } from \"../Checkbox\";\n\nconst listItemVariants = cva(\n \"flex items-start gap-3 p-3 rounded-medium transition-colors cursor-pointer\",\n {\n variants: {\n variant: {\n default: `hover:bg-action-fill-neutral-faded\n focus:bg-action-fill-neutral-faded\n focus:ring-2\n ring-action-outline-primary-faded-hover\n border border-transparent\n `,\n bordered:\n \"border border-action-outline-primary-faded hover:bg-surface-fill-primary-subtle\",\n primary: `hover:bg-action-fill-neutral-faded\n focus:bg-action-fill-neutral-faded \n focus:ring-2 \n ring-action-outline-primary-faded-hover\n border border-transparent\n `,\n negative: `hover:bg-action-fill-negative-faded \n focus:bg-action-fill-negative-faded \n focus:ring-2 ring-action-outline-negative-faded-hover\n border border-transparent\n `,\n },\n isDisabled: {\n true: \"cursor-not-allowed opacity-60\",\n false: \"\",\n },\n isSelected: {\n true: \"bg-action-fill-primary-faded border-action-outline-primary-faded\",\n false: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n isDisabled: false,\n isSelected: false,\n },\n }\n);\n\nexport interface ListItemProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"color\"> {\n /**\n * Type of list item - determines if checkbox is shown\n */\n type?: \"single\" | \"multiple\";\n /**\n * Leading icon to display on the left\n */\n leadingIcon?: React.ReactNode;\n /**\n * Title text (required)\n */\n title: string;\n /**\n * Description text (optional)\n */\n description?: string;\n /**\n * Trailing icon to display on the right\n */\n trailingIcon?: React.ReactNode;\n /**\n * Whether to show the default chevron trailing icon\n */\n showChevron?: boolean;\n /**\n * Visual variant of the list item\n */\n variant?: \"default\" | \"bordered\" | \"primary\" | \"negative\";\n /**\n * Whether the list item is disabled\n */\n isDisabled?: boolean;\n /**\n * Whether the list item is selected (for multiple type)\n */\n isSelected?: boolean;\n /**\n * Callback when the list item selection changes\n */\n onSelectionChange?: (selected: boolean) => void;\n /**\n * Size of the checkbox (when type is multiple)\n */\n checkboxSize?: \"small\" | \"medium\" | \"large\";\n /**\n * Custom class name for the container\n */\n containerClassName?: string;\n /**\n * Custom class name for the content area\n */\n contentClassName?: string;\n}\n\nconst ChevronRightIcon: React.FC<{ className?: string }> = ({ className }) => (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n d=\"M7.5 15L12.5 10L7.5 5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\nconst ListItem = React.forwardRef<HTMLDivElement, ListItemProps>(\n (\n {\n className,\n type = \"single\",\n leadingIcon,\n title,\n description,\n trailingIcon,\n showChevron = true,\n variant = \"default\",\n isDisabled = false,\n isSelected = false,\n onSelectionChange,\n checkboxSize = \"small\",\n containerClassName,\n contentClassName,\n onClick,\n ...props\n },\n ref\n ) => {\n const [internalSelected, setInternalSelected] = React.useState(isSelected);\n\n // Sync internal state with prop\n React.useEffect(() => {\n setInternalSelected(isSelected);\n }, [isSelected]);\n\n const handleClick = (e: React.MouseEvent<HTMLDivElement>) => {\n if (isDisabled) return;\n\n if (type === \"multiple\") {\n const newSelected = !internalSelected;\n setInternalSelected(newSelected);\n onSelectionChange?.(newSelected);\n }\n\n onClick?.(e);\n };\n\n const handleCheckboxChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n e.stopPropagation();\n if (isDisabled) return;\n\n const newSelected = e.target.checked;\n setInternalSelected(newSelected);\n onSelectionChange?.(newSelected);\n };\n\n return (\n <div\n ref={ref}\n className={cn(\n listItemVariants({\n variant,\n isDisabled,\n isSelected: type === \"multiple\" ? internalSelected : false,\n }),\n containerClassName\n )}\n onClick={handleClick}\n role={type === \"multiple\" ? \"checkbox\" : \"button\"}\n aria-checked={type === \"multiple\" ? internalSelected : undefined}\n aria-disabled={isDisabled}\n tabIndex={isDisabled ? -1 : 0}\n {...props}\n >\n {/* Checkbox for multiple type */}\n {type === \"multiple\" && (\n <Checkbox\n checked={internalSelected}\n onChange={handleCheckboxChange}\n isDisabled={isDisabled}\n size={checkboxSize}\n className=\"shrink-0 mt-0.5\"\n />\n )}\n\n {/* Leading Icon */}\n {leadingIcon && (\n <div\n className={cn(\n `shrink-0 flex items-center justify-center mt-0.5`,\n variant === \"primary\"\n ? \"text-action-ink-primary-normal\"\n : variant === \"negative\"\n ? \"text-action-ink-negative-normal\"\n : \"text-action-ink-neutral-subtle\",\n isDisabled && \"text-surface-ink-neutral-disabled\"\n )}\n >\n {leadingIcon}\n </div>\n )}\n\n {/* Content */}\n <div\n className={cn(\n \"flex-1 min-w-0 flex flex-col justify-center\",\n contentClassName\n )}\n >\n <div\n className={cn(\n \"text-body-medium-regular truncate\",\n variant === \"primary\"\n ? \"text-action-ink-primary-normal\"\n : variant === \"negative\"\n ? \"text-action-ink-negative-normal\"\n : \"text-action-ink-neutral-normal\",\n isDisabled && \"text-surface-ink-neutral-disabled\"\n )}\n >\n {title}\n </div>\n {description && (\n <div\n className={cn(\n \"text-body-small-regular text-surface-ink-neutral-muted mt-0.5 line-clamp-2\",\n isDisabled && \"text-surface-ink-neutral-disabled\"\n )}\n >\n {description}\n </div>\n )}\n </div>\n\n {/* Trailing Icon */}\n {(trailingIcon || showChevron) && (\n <div className=\"shrink-0 self-center text-action-ink-neutral-subtle\">\n {trailingIcon || <ChevronRightIcon />}\n </div>\n )}\n </div>\n );\n }\n);\n\nListItem.displayName = \"ListItem\";\n\nexport { ListItem, listItemVariants };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\nimport { FormFooter } from \"../FormFooter\";\n\nconst radioVariants = cva(\n \"relative inline-flex items-center justify-center shrink-0 border transition-all cursor-pointer rounded-full\",\n {\n variants: {\n size: {\n small: \"w-[14px] h-[14px] border-[1.5px]\",\n medium: \"w-[16px] h-[16px] border-[1.5px]\",\n large: \"w-[20px] h-[20px] border-[2px]\",\n },\n validationState: {\n none: \"\",\n error:\n \"border-action-outline-negative-default hover:border-action-outline-negative-hover\",\n },\n isChecked: {\n true: \"\",\n false: \"\",\n },\n isDisabled: {\n true: \"cursor-not-allowed opacity-60 border-action-outline-neutral-disabled bg-surface-fill-neutral-subtle\",\n false: \"\",\n },\n isFocused: {\n true: \"\",\n false: \"\",\n },\n },\n compoundVariants: [\n // Unchecked state - none validation\n {\n isChecked: false,\n validationState: \"none\",\n isDisabled: false,\n class: `border-action-outline-neutral-faded \n hover:bg-action-fill-neutral-faded \n hover:border-action-outline-neutral-faded\n `,\n },\n // Checked state - none validation\n {\n isChecked: true,\n validationState: \"none\",\n isDisabled: false,\n class:\n \"bg-action-fill-primary-default hover:bg-action-fill-primary-hover border-action-fill-primary-default hover:border-action-fill-primary-hover\",\n },\n // Checked state - error validation\n {\n isChecked: true,\n validationState: \"error\",\n isDisabled: false,\n class:\n \"bg-action-fill-negative-default hover:bg-action-fill-negative-hover border-action-fill-negative-default hover:border-action-fill-negative-hover\",\n },\n // Focused state - none validation\n {\n isFocused: true,\n validationState: \"none\",\n isDisabled: false,\n class: \"ring-2 ring-action-outline-primary-faded\",\n },\n // Focused state - error validation\n {\n isFocused: true,\n validationState: \"error\",\n isDisabled: false,\n class: \"ring-2 ring-action-outline-negative-faded\",\n },\n ],\n defaultVariants: {\n size: \"medium\",\n validationState: \"none\",\n isChecked: false,\n isDisabled: false,\n isFocused: false,\n },\n }\n);\n\nexport interface RadioProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\"> {\n /**\n * Label text to display next to the radio button\n */\n label?: string;\n /**\n * Error text to display below the radio button\n */\n errorText?: string;\n /**\n * Size of the radio button\n */\n size?: \"small\" | \"medium\" | \"large\";\n /**\n * Validation state of the radio button\n */\n validationState?: \"none\" | \"error\";\n /**\n * Whether the radio button is disabled\n */\n isDisabled?: boolean;\n /**\n * Whether to show error text (defaults to true if errorText is provided)\n */\n showErrorText?: boolean;\n /**\n * Custom class name for the container\n */\n containerClassName?: string;\n /**\n * Custom class name for the label\n */\n labelClassName?: string;\n}\n\nconst Radio = React.forwardRef<HTMLInputElement, RadioProps>(\n (\n {\n label,\n errorText,\n size = \"medium\",\n validationState = \"none\",\n isDisabled = false,\n showErrorText = true,\n containerClassName,\n labelClassName,\n className,\n checked,\n onChange,\n ...props\n },\n ref\n ) => {\n const [internalChecked, setInternalChecked] = React.useState(false);\n const [showRipple, setShowRipple] = React.useState(false);\n const [isFocused, setIsFocused] = React.useState(false);\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n // Use forwarded ref or internal ref\n React.useImperativeHandle(ref, () => inputRef.current!);\n\n const isChecked = checked !== undefined ? checked : internalChecked;\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (onChange) {\n onChange(e);\n } else {\n setInternalChecked(e.target.checked);\n }\n };\n\n const triggerRipple = () => {\n if (!isDisabled) {\n setShowRipple(true);\n setTimeout(() => {\n setShowRipple(false);\n }, 360); // Match animation duration (0.36s)\n }\n };\n\n const handleContainerClick = () => {\n if (!isDisabled && inputRef.current) {\n // Only show ripple when checking (not unchecking)\n const willBeChecked = !isChecked;\n if (willBeChecked) {\n triggerRipple();\n }\n inputRef.current.click();\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if ((e.key === \" \" || e.key === \"Enter\") && !isDisabled) {\n e.preventDefault();\n // Only show ripple when checking (not unchecking)\n const willBeChecked = !isChecked;\n if (willBeChecked) {\n triggerRipple();\n }\n inputRef.current?.click();\n }\n };\n\n const handleFocus = () => {\n if (!isDisabled) {\n setIsFocused(true);\n }\n };\n\n const handleBlur = () => {\n setIsFocused(false);\n };\n\n // Size-based configurations\n const sizeConfig = {\n small: {\n gap: \"gap-2\",\n labelSize: \"text-body-small-regular\",\n innerCircleSize: 6,\n },\n medium: {\n gap: \"gap-2.5\",\n labelSize: \"text-body-medium-regular\",\n innerCircleSize: 7,\n },\n large: {\n gap: \"gap-3\",\n labelSize: \"text-body-large-regular\",\n innerCircleSize: 8,\n },\n };\n\n const config = sizeConfig[size];\n\n // Determine if we should show the error text\n const shouldShowError = errorText && showErrorText;\n\n return (\n <div className={cn(\"inline-flex flex-col\", containerClassName)}>\n <div\n className={cn(\n \"inline-flex items-center\",\n config.gap,\n isDisabled ? \"cursor-not-allowed\" : \"cursor-pointer\"\n )}\n onClick={handleContainerClick}\n onKeyDown={handleKeyDown}\n onFocus={handleFocus}\n onBlur={handleBlur}\n role=\"radio\"\n aria-checked={isChecked}\n aria-disabled={isDisabled}\n tabIndex={isDisabled ? -1 : 0}\n >\n <input\n ref={inputRef}\n type=\"radio\"\n className=\"sr-only\"\n checked={isChecked}\n onChange={handleChange}\n disabled={isDisabled}\n {...props}\n />\n\n <div className=\"relative inline-flex shrink-0\">\n {/* Ripple Effect */}\n {showRipple && (\n <div\n className={cn(\n \"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 rounded-full pointer-events-none w-full h-full\",\n validationState === \"error\"\n ? \"bg-action-outline-negative-faded\"\n : \"bg-action-outline-primary-faded\"\n )}\n style={{\n animation: \"var(--animate-checkbox-ripple)\",\n }}\n />\n )}\n\n <div\n className={cn(\n radioVariants({\n size,\n validationState,\n isChecked,\n isDisabled,\n isFocused,\n }),\n className\n )}\n >\n {/* Inner White Circle (creates ring effect) */}\n {isChecked && (\n <div\n className=\"rounded-full bg-white transition-all\"\n style={{\n width: `${config.innerCircleSize}px`,\n height: `${config.innerCircleSize}px`,\n }}\n />\n )}\n </div>\n </div>\n\n {label && (\n <label\n className={cn(\n config.labelSize,\n \"select-none inline-flex items-center\",\n isDisabled\n ? \"text-surface-ink-neutral-disabled\"\n : \"text-surface-ink-neutral-normal\",\n labelClassName\n )}\n >\n {label}\n </label>\n )}\n </div>\n\n {/* Error text */}\n {shouldShowError && (\n <FormFooter\n helperText={errorText}\n validationState=\"negative\"\n size={size}\n isDisabled={isDisabled}\n />\n )}\n </div>\n );\n }\n);\n\nRadio.displayName = \"Radio\";\n\nexport { Radio, radioVariants };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\n\nconst switchVariants = cva(\n \"relative inline-flex items-center shrink-0 cursor-pointer rounded-full transition-all duration-200\",\n {\n variants: {\n size: {\n small: \"w-[20px] h-[12px]\",\n medium: \"w-[28px] h-[16px]\",\n large: \"w-[36px] h-[20px]\",\n },\n isChecked: {\n true: \"bg-action-fill-primary-default \",\n false: \"bg-surface-fill-neutral-subtle\",\n },\n isDisabled: {\n true: \"cursor-not-allowed opacity-60\",\n false: \"\",\n },\n },\n compoundVariants: [\n {\n isChecked: true,\n isDisabled: false,\n class: \"hover:bg-action-fill-primary-hover \",\n },\n {\n isChecked: false,\n isDisabled: false,\n class: \"hover:bg-action-fill-neutral-faded\",\n },\n ],\n defaultVariants: {\n size: \"medium\",\n isChecked: false,\n isDisabled: false,\n },\n }\n);\n\nconst switchThumbVariants = cva(\n \"inline-block rounded-full bg-neutral-00 shadow-sm transition-transform duration-200\",\n {\n variants: {\n size: {\n small: \"h-[8px] w-[8px]\",\n medium: \"h-[12px] w-[12px]\",\n large: \"h-[16px] w-[16px]\",\n },\n isChecked: {\n true: \"\",\n false: \"\",\n },\n },\n compoundVariants: [\n // Small size translations\n {\n size: \"small\",\n isChecked: false,\n class: \"translate-x-[2px]\",\n },\n {\n size: \"small\",\n isChecked: true,\n class: \"translate-x-[10px]\",\n },\n // Medium size translations\n {\n size: \"medium\",\n isChecked: false,\n class: \"translate-x-[2px]\",\n },\n {\n size: \"medium\",\n isChecked: true,\n class: \"translate-x-[14px]\",\n },\n // Large size translations\n {\n size: \"large\",\n isChecked: false,\n class: \"translate-x-[2px]\",\n },\n {\n size: \"large\",\n isChecked: true,\n class: \"translate-x-[18px]\",\n },\n ],\n defaultVariants: {\n size: \"medium\",\n isChecked: false,\n },\n }\n);\n\nexport interface SwitchProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\"> {\n /**\n * Label text to display next to the switch\n */\n label?: string;\n /**\n * Size of the switch\n */\n size?: \"small\" | \"medium\" | \"large\";\n /**\n * Whether the switch is disabled\n */\n isDisabled?: boolean;\n /**\n * Custom class name for the container\n */\n containerClassName?: string;\n /**\n * Custom class name for the label\n */\n labelClassName?: string;\n /**\n * Custom class name for the switch track\n */\n trackClassName?: string;\n /**\n * Custom class name for the switch thumb\n */\n thumbClassName?: string;\n}\n\nconst Switch = React.forwardRef<HTMLInputElement, SwitchProps>(\n (\n {\n label,\n size = \"medium\",\n isDisabled = false,\n containerClassName,\n labelClassName,\n trackClassName,\n thumbClassName,\n className,\n checked,\n onChange,\n ...props\n },\n ref\n ) => {\n const [internalChecked, setInternalChecked] = React.useState(false);\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n // Use forwarded ref or internal ref\n React.useImperativeHandle(ref, () => inputRef.current!);\n\n const isChecked = checked !== undefined ? checked : internalChecked;\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (onChange) {\n onChange(e);\n } else {\n setInternalChecked(e.target.checked);\n }\n };\n\n const handleContainerClick = () => {\n if (!isDisabled && inputRef.current) {\n inputRef.current.click();\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if ((e.key === \" \" || e.key === \"Enter\") && !isDisabled) {\n e.preventDefault();\n inputRef.current?.click();\n }\n };\n\n // Size-based configurations\n const sizeConfig = {\n small: {\n gap: \"gap-2\",\n labelSize: \"text-body-small-regular\",\n },\n medium: {\n gap: \"gap-2.5\",\n labelSize: \"text-body-medium-regular\",\n },\n large: {\n gap: \"gap-3\",\n labelSize: \"text-body-large-regular\",\n },\n };\n\n const config = sizeConfig[size];\n\n return (\n <div className={cn(\"inline-flex flex-col\", containerClassName)}>\n <div\n className={cn(\n \"inline-flex items-center\",\n config.gap,\n isDisabled ? \"cursor-not-allowed\" : \"cursor-pointer\"\n )}\n onClick={handleContainerClick}\n onKeyDown={handleKeyDown}\n role=\"switch\"\n aria-checked={isChecked}\n aria-disabled={isDisabled}\n tabIndex={isDisabled ? -1 : 0}\n >\n <input\n ref={inputRef}\n type=\"checkbox\"\n role=\"switch\"\n className=\"sr-only\"\n checked={isChecked}\n onChange={handleChange}\n disabled={isDisabled}\n {...props}\n />\n\n <div className=\"relative inline-flex shrink-0\">\n <div\n className={cn(\n switchVariants({\n size,\n isChecked,\n isDisabled,\n }),\n trackClassName,\n className,\n \"focus-visible:ring-2 focus-visible:ring-action-outline-primary-faded focus-visible:ring-offset-2\"\n )}\n >\n <span\n className={cn(\n switchThumbVariants({\n size,\n isChecked,\n }),\n thumbClassName\n )}\n />\n </div>\n </div>\n\n {label && (\n <label\n className={cn(\n config.labelSize,\n \"select-none inline-flex items-center\",\n isDisabled\n ? \"text-surface-ink-neutral-disabled\"\n : \"text-surface-ink-neutral-normal\",\n labelClassName\n )}\n >\n {label}\n </label>\n )}\n </div>\n </div>\n );\n }\n);\n\nSwitch.displayName = \"Switch\";\n\nexport { Switch, switchVariants };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\nimport { FormHeader } from \"../FormHeader\";\nimport { FormFooter } from \"../FormFooter\";\n\nconst textAreaVariants = cva(\n \"relative flex flex-col border rounded-medium transition-all font-display font-size-100 leading-100\",\n {\n variants: {\n size: {\n small: \"p-3 min-h-[56px] text-xs gap-2\",\n medium: \"p-4 min-h-[56px] text-sm gap-2\",\n large: \"p-5 min-h-[64px]text-base gap-3\",\n },\n validationState: {\n none: `\n border-action-outline-neutral-faded \n hover:border-action-outline-primary-hover \n focus-within:border-action-outline-primary-hover \n focus-within:ring-2 \n ring-action-outline-primary-faded-hover`,\n positive: `\n border-action-outline-positive-default \n focus-within:border-action-outline-positive-hover\n focus-within:ring-2\n ring-action-outline-positive-faded-hover`,\n negative: `border-action-outline-negative-default \n focus-within:border-action-outline-negative-hover\n focus-within:ring-2 \n ring-action-outline-negative-faded-hover`,\n },\n isDisabled: {\n true: `\n border-[var(--border-width-thinner)]\n hover:border-action-outline-neutral-disabled\n border-action-outline-neutral-disabled\n bg-surface-fill-neutral-intense cursor-not-allowed opacity-60`,\n false: \"bg-surface-fill-neutral-intense\",\n },\n },\n defaultVariants: {\n size: \"medium\",\n validationState: \"none\",\n isDisabled: false,\n },\n }\n);\n\nexport interface TextAreaProps\n extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, \"size\"> {\n label?: string;\n helperText?: string;\n errorText?: string;\n successText?: string;\n size?: \"small\" | \"medium\" | \"large\";\n validationState?: \"none\" | \"positive\" | \"negative\";\n isDisabled?: boolean;\n isRequired?: boolean;\n isOptional?: boolean;\n maxChar?: number;\n showCharCount?: boolean;\n containerClassName?: string;\n labelClassName?: string;\n textAreaClassName?: string;\n infoHeading?: string;\n infoDescription?: string;\n linkText?: string;\n linkHref?: string;\n onLinkClick?: (e: React.MouseEvent<HTMLAnchorElement>) => void;\n rows?: number;\n}\n\nconst TextArea = React.forwardRef<HTMLTextAreaElement, TextAreaProps>(\n (\n {\n label,\n helperText,\n errorText,\n successText,\n size = \"medium\",\n validationState = \"none\",\n isDisabled = false,\n isRequired = false,\n isOptional = false,\n maxChar,\n showCharCount = true,\n infoDescription,\n infoHeading,\n linkText,\n linkHref,\n onLinkClick,\n containerClassName,\n labelClassName,\n textAreaClassName,\n className,\n value,\n onChange,\n rows = 4,\n ...props\n },\n ref\n ) => {\n const [internalValue, setInternalValue] = React.useState(\"\");\n const textAreaValue = value !== undefined ? value : internalValue;\n const currentLength = String(textAreaValue).length;\n\n const handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const newValue = e.target.value;\n\n // Prevent exceeding maxChar if specified\n if (maxChar && newValue.length > maxChar) {\n return;\n }\n\n if (onChange) {\n onChange(e);\n } else {\n setInternalValue(newValue);\n }\n };\n\n // Determine which helper text to show\n const displayHelperText = errorText || successText || helperText;\n const currentValidationState = errorText\n ? \"negative\"\n : successText\n ? \"positive\"\n : validationState;\n\n // Check if we're approaching or at the limit\n const isNearLimit = maxChar && currentLength >= maxChar * 0.9;\n const isAtLimit = maxChar && currentLength >= maxChar;\n\n const sizeConfig = {\n small: {\n gap: \"gap-2\",\n },\n medium: {\n gap: \"gap-2\",\n },\n large: {\n gap: \"gap-3\",\n },\n };\n\n return (\n <div\n className={cn(\n \"w-full flex flex-col\",\n sizeConfig[size].gap,\n containerClassName\n )}\n >\n {label && (\n <FormHeader\n label={label}\n size={size}\n isRequired={isRequired}\n isOptional={isOptional}\n infoHeading={infoHeading}\n infoDescription={infoDescription}\n linkText={linkText}\n linkHref={linkHref}\n onLinkClick={onLinkClick}\n htmlFor={props.id}\n className=\"mb-2\"\n labelClassName={labelClassName}\n />\n )}\n\n <div\n className={cn(\n textAreaVariants({\n size,\n validationState: currentValidationState,\n isDisabled,\n }),\n className\n )}\n >\n <textarea\n ref={ref}\n value={textAreaValue}\n onChange={handleChange}\n disabled={isDisabled}\n required={isRequired}\n rows={rows}\n className={cn(\n \"flex-1 bg-transparent border-none outline-none text-surface-ink-neutral-normal placeholder:text-surface-ink-neutral-muted disabled:cursor-not-allowed disabled:text-surface-ink-neutral-disabled font-display resize-none\",\n size === \"small\" && \"text-xs\",\n size === \"medium\" && \"text-sm\",\n size === \"large\" && \"text-base\",\n textAreaClassName\n )}\n {...props}\n />\n </div>\n <FormFooter\n helperText={displayHelperText}\n trailingText={\n maxChar && showCharCount ? `${currentLength}/${maxChar}` : undefined\n }\n validationState={\n currentValidationState === \"none\"\n ? \"default\"\n : currentValidationState\n }\n size={size}\n isDisabled={isDisabled}\n className=\"mt-1\"\n trailingTextClassName={cn(\n \"transition-colors\",\n isAtLimit\n ? \"text-feedback-ink-negative-subtle\"\n : isNearLimit\n ? \"text-feedback-ink-warning-subtle\"\n : \"\"\n )}\n />\n </div>\n );\n }\n);\n\nTextArea.displayName = \"TextArea\";\n\nexport { TextArea, textAreaVariants };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\nimport { FormHeader } from \"../FormHeader\";\nimport { FormFooter } from \"../FormFooter\";\n\nconst textFieldVariants = cva(\n \"relative flex items-center gap-2 border rounded-medium transition-all font-display font-size-100 leading-100\",\n {\n variants: {\n size: {\n small: \"h-[28px] px-3 text-xs gap-2\",\n medium: \"h-[36px] px-4 text-sm gap-2\",\n large: \"h-[44px] px-5 text-base gap-3\",\n },\n validationState: {\n none: `\n border-action-outline-neutral-faded \n hover:border-action-outline-primary-hover \n focus-within:border-action-outline-primary-hover \n focus-within:ring-2 \n ring-action-outline-primary-faded-hover`,\n positive: `\n border-action-outline-positive-default \n focus-within:border-action-outline-positive-hover\n focus-within:ring-2\n ring-action-outline-positive-faded-hover`,\n negative: `border-action-outline-negative-default \n focus-within:border-action-outline-negative-hover\n focus-within:ring-2 \n ring-action-outline-negative-faded-hover`,\n },\n isDisabled: {\n true: `\n border-[var(--border-width-thinner)]\n hover:border-action-outline-neutral-disabled\n border-action-outline-neutral-disabled\n bg-surface-fill-neutral-intense cursor-not-allowed opacity-60`,\n false: \"bg-surface-fill-neutral-intense\",\n },\n },\n defaultVariants: {\n size: \"medium\",\n validationState: \"none\",\n isDisabled: false,\n },\n }\n);\n\nexport interface TextFieldProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\" | \"prefix\"> {\n label?: string;\n helperText?: string;\n errorText?: string;\n successText?: string;\n size?: \"small\" | \"medium\" | \"large\";\n validationState?: \"none\" | \"positive\" | \"negative\";\n isDisabled?: boolean;\n isRequired?: boolean;\n isOptional?: boolean;\n prefix?: React.ReactNode;\n suffix?: React.ReactNode;\n showClearButton?: boolean;\n onClear?: () => void;\n containerClassName?: string;\n labelClassName?: string;\n inputClassName?: string;\n infoHeading?: string;\n infoDescription?: string;\n linkText?: string;\n linkHref?: string;\n onLinkClick?: (e: React.MouseEvent<HTMLAnchorElement>) => void;\n}\n\nconst TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(\n (\n {\n label,\n helperText,\n errorText,\n successText,\n size = \"medium\",\n validationState = \"none\",\n isDisabled = false,\n isRequired = false,\n isOptional = false,\n prefix,\n suffix,\n showClearButton = false,\n infoDescription,\n infoHeading,\n linkText,\n linkHref,\n onLinkClick,\n onClear,\n containerClassName,\n labelClassName,\n inputClassName,\n className,\n value,\n onChange,\n ...props\n },\n ref\n ) => {\n const [internalValue, setInternalValue] = React.useState(\"\");\n const inputValue = value !== undefined ? value : internalValue;\n const hasValue = inputValue && String(inputValue).length > 0;\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (onChange) {\n onChange(e);\n } else {\n setInternalValue(e.target.value);\n }\n };\n\n const handleClear = () => {\n if (onClear) {\n onClear();\n } else {\n setInternalValue(\"\");\n }\n // Focus the input after clearing\n const input = document.getElementById(props.id || \"\");\n if (input) {\n input.focus();\n }\n };\n\n // Determine which helper text to show\n const displayHelperText = errorText || successText || helperText;\n const currentValidationState = errorText\n ? \"negative\"\n : successText\n ? \"positive\"\n : validationState;\n\n const sizeConfig = {\n small: {\n gap: \"gap-2\",\n },\n medium: {\n gap: \"gap-2\",\n },\n large: {\n gap: \"gap-3\",\n },\n };\n\n return (\n <div\n className={cn(\n \"w-full flex flex-col\",\n sizeConfig[size].gap,\n containerClassName\n )}\n >\n {label && (\n <FormHeader\n label={label}\n size={size}\n isRequired={isRequired}\n isOptional={isOptional}\n infoHeading={infoHeading}\n infoDescription={infoDescription}\n linkText={linkText}\n linkHref={linkHref}\n onLinkClick={onLinkClick}\n htmlFor={props.id}\n className=\"mb-2\"\n labelClassName={labelClassName}\n />\n )}\n\n <div\n className={cn(\n textFieldVariants({\n size,\n validationState: currentValidationState,\n isDisabled,\n }),\n className\n )}\n >\n {prefix && (\n <span\n className={cn(\n \"shrink-0 flex items-center\",\n isDisabled\n ? \"text-surface-ink-neutral-disabled\"\n : currentValidationState === \"positive\"\n ? \"text-feedback-ink-positive-intense\"\n : currentValidationState === \"negative\"\n ? \"text-feedback-ink-negative-subtle\"\n : \"text-surface-ink-neutral-muted\"\n )}\n >\n {prefix}\n </span>\n )}\n\n <input\n ref={ref}\n value={inputValue}\n onChange={handleChange}\n disabled={isDisabled}\n required={isRequired}\n className={cn(\n \"flex-1 bg-transparent border-none outline-none text-surface-ink-neutral-normal placeholder:text-surface-ink-neutral-muted disabled:cursor-not-allowed disabled:text-surface-ink-neutral-disabled font-display\",\n inputClassName\n )}\n {...props}\n />\n\n {showClearButton && hasValue && !isDisabled && (\n <button\n type=\"button\"\n onClick={handleClear}\n className=\"shrink-0 flex items-center justify-center text-surface-ink-neutral-muted hover:text-surface-ink-neutral-normal transition-colors\"\n tabIndex={-1}\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12 4L4 12M4 4L12 12\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n </button>\n )}\n\n {suffix && (\n <span\n className={cn(\n \"shrink-0 flex items-center\",\n isDisabled\n ? \"text-surface-ink-neutral-disabled\"\n : currentValidationState === \"positive\"\n ? \"text-feedback-ink-positive-intense\"\n : currentValidationState === \"negative\"\n ? \"text-feedback-ink-negative-subtle\"\n : \"text-surface-ink-neutral-muted\"\n )}\n >\n {suffix}\n </span>\n )}\n </div>\n\n <FormFooter\n helperText={displayHelperText}\n validationState={\n currentValidationState === \"none\"\n ? \"default\"\n : currentValidationState\n }\n size={size}\n isDisabled={isDisabled}\n className=\"mt-1\"\n />\n </div>\n );\n }\n);\n\nTextField.displayName = \"TextField\";\n\nexport { TextField, textFieldVariants };\n"],"names":["_jsxs","_jsx","_Fragment"],"mappings":"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"}