@umituz/atomic-next 2.0.2 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tokens/colors/atomic-colors.ts","../src/tokens/spacing/atomic-spacing.ts","../src/tokens/typography/atomic-typography.ts","../src/tokens/shadows/atomic-shadows.ts","../src/tokens/borders/atomic-borders.ts","../src/tokens/animations/atomic-animations.ts","../src/tokens/enums/atomic-enums.ts","../src/tokens/index.ts","../src/utils/cn.ts","../src/atoms/buttons/atomic-button.tsx","../src/atoms/display/atomic-text.tsx","../src/atoms/display/atomic-avatar.tsx","../src/atoms/display/atomic-image.tsx","../src/atoms/display/atomic-card.tsx","../src/atoms/display/atomic-icon.tsx","../src/atoms/inputs/atomic-input.tsx","../src/atoms/inputs/atomic-checkbox.tsx","../src/atoms/inputs/atomic-switch.tsx","../src/atoms/feedback/atomic-spinner.tsx","../src/atoms/feedback/atomic-badge.tsx","../src/atoms/feedback/atomic-tag.tsx","../src/atoms/navigation/atomic-link.tsx","../src/atoms/layout/atomic-div.tsx","../src/atoms/providers/atomic-theme-provider.tsx","../src/index.ts"],"names":["AtomicSize","AtomicColorVariant","AtomicButtonVariant","AtomicInputVariant","AtomicCardVariant","AtomicLoadingState","AtomicStatus","AtomicAlertType","AtomicModalSize","AtomicTextVariant","AtomicPosition","AtomicAlignment","AtomicOrientation","AtomicDirection","AtomicAnimationState","AtomicFormFieldState","AtomicBreakpoint","AtomicThemeMode","twMerge","clsx","cva","React","Slot","jsxs","jsx","Loader2","AvatarPrimitive","Image","spacing","X","EyeOff","Eye","getSpacingClass","Check","Minus","getSizeClasses","getColorClasses","Fragment","Link","createContext","useState","useEffect","useContext"],"mappings":"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","file":"index.js","sourcesContent":["\n// ⚠️ NOTICE: AtomicColors has been moved to React Native template system\n// This file now only contains CSS variables for web/Next.js usage\n// For React Native projects, use: generator/tech-stack/react-native/templates/atomics/tokens/AtomicDesignTokens.ts\n\n// Basic color definitions for CSS variable generation\nconst colors = {\n primary: '#9333EA',\n primaryLight: '#A855F7',\n primaryDark: '#7C3AED',\n secondary: '#EC4899',\n secondaryLight: '#F472B6',\n secondaryDark: '#DB2777',\n accent: '#F59E0B',\n accentLight: '#FBBF24',\n accentDark: '#D97706',\n gray50: '#FAFAFA',\n gray100: '#F4F4F5',\n gray200: '#E4E4E7',\n gray300: '#D4D4D8',\n gray400: '#A1A1AA',\n gray500: '#71717A',\n gray600: '#52525B',\n gray700: '#3F3F46',\n gray800: '#27272A',\n gray900: '#18181B',\n success: '#10B981',\n successLight: '#34D399',\n successDark: '#059669',\n warning: '#F59E0B',\n warningLight: '#FBBF24',\n warningDark: '#D97706',\n error: '#EF4444',\n errorLight: '#F87171',\n errorDark: '#DC2626',\n info: '#3B82F6',\n infoLight: '#60A5FA',\n infoDark: '#2563EB',\n background: '#FFFFFF',\n backgroundSecondary: '#F9FAFB',\n surface: '#FFFFFF',\n surfaceSecondary: '#F3F4F6',\n textPrimary: '#18181B',\n textSecondary: '#52525B',\n textTertiary: '#A1A1AA',\n textDisabled: '#D4D4D8',\n textInverse: '#FFFFFF',\n}\n\n// ⚠️ NOTICE: ColorUtils has been moved to React Native template system\n// For React Native projects, use: AtomicColorUtils in AtomicDesignTokens.ts\n\n/**\n * CSS Variables for Web/Next.js usage\n * These are the only color exports needed for atomic-next package\n */\nexport const AtomicColorsCss = {\n\n '--atomic-primary': colors.primary,\n '--atomic-primary-light': colors.primaryLight,\n '--atomic-primary-dark': colors.primaryDark,\n\n '--atomic-secondary': colors.secondary,\n '--atomic-secondary-light': colors.secondaryLight,\n '--atomic-secondary-dark': colors.secondaryDark,\n\n '--atomic-accent': colors.accent,\n '--atomic-accent-light': colors.accentLight,\n '--atomic-accent-dark': colors.accentDark,\n\n\n '--atomic-gray-50': colors.gray50,\n '--atomic-gray-100': colors.gray100,\n '--atomic-gray-200': colors.gray200,\n '--atomic-gray-300': colors.gray300,\n '--atomic-gray-400': colors.gray400,\n '--atomic-gray-500': colors.gray500,\n '--atomic-gray-600': colors.gray600,\n '--atomic-gray-700': colors.gray700,\n '--atomic-gray-800': colors.gray800,\n '--atomic-gray-900': colors.gray900,\n\n\n '--atomic-success': colors.success,\n '--atomic-success-light': colors.successLight,\n '--atomic-success-dark': colors.successDark,\n\n '--atomic-warning': colors.warning,\n '--atomic-warning-light': colors.warningLight,\n '--atomic-warning-dark': colors.warningDark,\n\n '--atomic-error': colors.error,\n '--atomic-error-light': colors.errorLight,\n '--atomic-error-dark': colors.errorDark,\n\n '--atomic-info': colors.info,\n '--atomic-info-light': colors.infoLight,\n '--atomic-info-dark': colors.infoDark,\n\n\n '--atomic-background': colors.background,\n '--atomic-background-secondary': colors.backgroundSecondary,\n '--atomic-surface': colors.surface,\n '--atomic-surface-secondary': colors.surfaceSecondary,\n\n\n '--atomic-text-primary': colors.textPrimary,\n '--atomic-text-secondary': colors.textSecondary,\n '--atomic-text-tertiary': colors.textTertiary,\n '--atomic-text-disabled': colors.textDisabled,\n '--atomic-text-inverse': colors.textInverse,\n} as const\n\n// ⚠️ NOTICE: Type definitions have been moved to React Native template system\n// For React Native projects, use types from AtomicDesignTokens.ts","\n// ⚠️ NOTICE: AtomicSpacing has been moved to React Native template system\n// This file now only contains CSS variables for web/Next.js usage\n// For React Native projects, use: generator/tech-stack/react-native/templates/atomics/tokens/AtomicDesignTokens.ts\n\n// Basic spacing definitions for CSS variable generation\nconst spacing = {\n unit: 8,\n xxs: 4,\n xs: 8,\n sm: 12,\n md: 16,\n lg: 24,\n xl: 32,\n xxl: 40,\n xxxl: 48,\n huge: 64,\n buttonPaddingX: 16,\n buttonPaddingY: 12,\n cardPadding: 24,\n cardMargin: 16,\n listItemPadding: 16,\n listItemSpacing: 8,\n inputPaddingX: 16,\n inputPaddingY: 12,\n modalPadding: 24,\n sectionPadding: 32,\n}\n\n// ⚠️ NOTICE: SpacingUtils has been moved to React Native template system\n// For React Native projects, use: AtomicSpacingUtils in AtomicDesignTokens.ts\n\n/**\n * CSS Variables for Web/Next.js usage\n * These are the only spacing exports needed for atomic-next package\n */\nexport const AtomicSpacingCss = {\n '--atomic-spacing-unit': `${spacing.unit}px`,\n '--atomic-spacing-xxs': `${spacing.xxs}px`,\n '--atomic-spacing-xs': `${spacing.xs}px`,\n '--atomic-spacing-sm': `${spacing.sm}px`,\n '--atomic-spacing-md': `${spacing.md}px`,\n '--atomic-spacing-lg': `${spacing.lg}px`,\n '--atomic-spacing-xl': `${spacing.xl}px`,\n '--atomic-spacing-xxl': `${spacing.xxl}px`,\n '--atomic-spacing-xxxl': `${spacing.xxxl}px`,\n '--atomic-spacing-huge': `${spacing.huge}px`,\n\n\n '--atomic-button-padding-x': `${spacing.buttonPaddingX}px`,\n '--atomic-button-padding-y': `${spacing.buttonPaddingY}px`,\n '--atomic-card-padding': `${spacing.cardPadding}px`,\n '--atomic-card-margin': `${spacing.cardMargin}px`,\n '--atomic-list-item-padding': `${spacing.listItemPadding}px`,\n '--atomic-list-item-spacing': `${spacing.listItemSpacing}px`,\n '--atomic-input-padding-x': `${spacing.inputPaddingX}px`,\n '--atomic-input-padding-y': `${spacing.inputPaddingY}px`,\n '--atomic-modal-padding': `${spacing.modalPadding}px`,\n '--atomic-section-padding': `${spacing.sectionPadding}px`,\n} as const\n\n// ⚠️ NOTICE: Type definitions have been moved to React Native template system\n// For React Native projects, use types from AtomicDesignTokens.ts","\n// ⚠️ NOTICE: AtomicTypography has been moved to React Native template system\n// This file now only contains CSS variables for web/Next.js usage\n// For React Native projects, use: generator/tech-stack/react-native/templates/atomics/tokens/AtomicDesignTokens.ts\n\n// Basic typography definitions for CSS variable generation\nconst typography = {\n fontFamily: {\n sans: ['Inter', 'system-ui', '-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', 'sans-serif'],\n serif: ['Charter', 'Georgia', 'Cambria', 'Times New Roman', 'Times', 'serif'],\n mono: ['JetBrains Mono', 'Fira Code', 'Consolas', 'Monaco', 'Courier New', 'monospace'],\n },\n fontWeight: {\n thin: 100,\n light: 300,\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n extrabold: 800,\n black: 900,\n },\n fontSize: {\n displayLarge: 57,\n displayMedium: 45,\n displaySmall: 36,\n headlineLarge: 32,\n headlineMedium: 28,\n headlineSmall: 24,\n titleLarge: 22,\n titleMedium: 16,\n titleSmall: 14,\n bodyLarge: 16,\n bodyMedium: 14,\n bodySmall: 12,\n labelLarge: 14,\n labelMedium: 12,\n labelSmall: 11,\n },\n lineHeight: {\n none: 1,\n tight: 1.25,\n snug: 1.375,\n normal: 1.5,\n relaxed: 1.625,\n loose: 2,\n },\n letterSpacing: {\n tighter: '-0.05em',\n tight: '-0.025em',\n normal: '0em',\n wide: '0.025em',\n wider: '0.05em',\n widest: '0.1em',\n },\n}\n\n// ⚠️ NOTICE: TypographyUtils has been moved to React Native template system\n// For React Native projects, use: AtomicTypographyUtils in AtomicDesignTokens.ts\n\n// ⚠️ NOTICE: AtomicTextStyles has been moved to React Native template system\n// For React Native projects, use: AtomicTextStyles in AtomicDesignTokens.ts\n\n/**\n * CSS Variables for Web/Next.js usage\n * These are the only typography exports needed for atomic-next package\n */\nexport const AtomicTypographyCss = {\n\n '--atomic-font-sans': typography.fontFamily.sans.join(', '),\n '--atomic-font-serif': typography.fontFamily.serif.join(', '),\n '--atomic-font-mono': typography.fontFamily.mono.join(', '),\n\n\n '--atomic-font-thin': typography.fontWeight.thin.toString(),\n '--atomic-font-light': typography.fontWeight.light.toString(),\n '--atomic-font-regular': typography.fontWeight.regular.toString(),\n '--atomic-font-medium': typography.fontWeight.medium.toString(),\n '--atomic-font-semibold': typography.fontWeight.semibold.toString(),\n '--atomic-font-bold': typography.fontWeight.bold.toString(),\n '--atomic-font-extrabold': typography.fontWeight.extrabold.toString(),\n '--atomic-font-black': typography.fontWeight.black.toString(),\n\n\n '--atomic-text-display-large': `${typography.fontSize.displayLarge}px`,\n '--atomic-text-display-medium': `${typography.fontSize.displayMedium}px`,\n '--atomic-text-display-small': `${typography.fontSize.displaySmall}px`,\n '--atomic-text-headline-large': `${typography.fontSize.headlineLarge}px`,\n '--atomic-text-headline-medium': `${typography.fontSize.headlineMedium}px`,\n '--atomic-text-headline-small': `${typography.fontSize.headlineSmall}px`,\n '--atomic-text-title-large': `${typography.fontSize.titleLarge}px`,\n '--atomic-text-title-medium': `${typography.fontSize.titleMedium}px`,\n '--atomic-text-title-small': `${typography.fontSize.titleSmall}px`,\n '--atomic-text-body-large': `${typography.fontSize.bodyLarge}px`,\n '--atomic-text-body-medium': `${typography.fontSize.bodyMedium}px`,\n '--atomic-text-body-small': `${typography.fontSize.bodySmall}px`,\n '--atomic-text-label-large': `${typography.fontSize.labelLarge}px`,\n '--atomic-text-label-medium': `${typography.fontSize.labelMedium}px`,\n '--atomic-text-label-small': `${typography.fontSize.labelSmall}px`,\n\n\n '--atomic-leading-none': typography.lineHeight.none.toString(),\n '--atomic-leading-tight': typography.lineHeight.tight.toString(),\n '--atomic-leading-snug': typography.lineHeight.snug.toString(),\n '--atomic-leading-normal': typography.lineHeight.normal.toString(),\n '--atomic-leading-relaxed': typography.lineHeight.relaxed.toString(),\n '--atomic-leading-loose': typography.lineHeight.loose.toString(),\n\n\n '--atomic-tracking-tighter': typography.letterSpacing.tighter,\n '--atomic-tracking-tight': typography.letterSpacing.tight,\n '--atomic-tracking-normal': typography.letterSpacing.normal,\n '--atomic-tracking-wide': typography.letterSpacing.wide,\n '--atomic-tracking-wider': typography.letterSpacing.wider,\n '--atomic-tracking-widest': typography.letterSpacing.widest,\n} as const\n\n// ⚠️ NOTICE: Type definitions have been moved to React Native template system\n// For React Native projects, use types from AtomicDesignTokens.ts","\nexport const AtomicShadows = {\n \n none: 'none',\n \n \n xs: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\n sm: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\n md: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\n lg: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\n xl: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n xxl: '0 25px 50px -12px rgb(0 0 0 / 0.25)',\n \n \n inner: 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)',\n \n \n focusPrimary: '0 0 0 3px rgb(139 92 246 / 0.2)',\n focusSecondary: '0 0 0 3px rgb(236 72 153 / 0.2)',\n focusSuccess: '0 0 0 3px rgb(16 185 129 / 0.2)',\n focusWarning: '0 0 0 3px rgb(245 158 11 / 0.2)',\n focusError: '0 0 0 3px rgb(239 68 68 / 0.2)',\n focusInfo: '0 0 0 3px rgb(59 130 246 / 0.2)',\n \n \n glowPrimary: '0 0 20px rgb(139 92 246 / 0.3)',\n glowSecondary: '0 0 20px rgb(236 72 153 / 0.3)',\n glowSuccess: '0 0 20px rgb(16 185 129 / 0.3)',\n glowWarning: '0 0 20px rgb(245 158 11 / 0.3)',\n glowError: '0 0 20px rgb(239 68 68 / 0.3)',\n \n \n card: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\n cardHover: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\n button: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\n buttonHover: '0 2px 4px 0 rgb(0 0 0 / 0.1)',\n modal: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n dropdown: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\n tooltip: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\n} as const\n\nexport const ShadowUtils = {\n \n get: (name: keyof typeof AtomicShadows): string => {\n return AtomicShadows[name]\n },\n\n \n custom: (\n x: number,\n y: number, \n blur: number,\n spread: number = 0,\n color: string = '0 0 0',\n opacity: number = 0.1\n ): string => {\n return `${x}px ${y}px ${blur}px ${spread}px rgb(${color} / ${opacity})`\n },\n\n \n combine: (...shadows: (keyof typeof AtomicShadows)[]): string => {\n return shadows.map(shadow => AtomicShadows[shadow]).join(', ')\n },\n\n \n focus: (color: string = '139 92 246', opacity: number = 0.2): string => {\n return `0 0 0 3px rgb(${color} / ${opacity})`\n },\n\n \n glow: (size: number = 20, color: string = '139 92 246', opacity: number = 0.3): string => {\n return `0 0 ${size}px rgb(${color} / ${opacity})`\n },\n}\n\nexport const AtomicShadowsCss = {\n '--atomic-shadow-none': AtomicShadows.none,\n '--atomic-shadow-xs': AtomicShadows.xs,\n '--atomic-shadow-sm': AtomicShadows.sm,\n '--atomic-shadow-md': AtomicShadows.md,\n '--atomic-shadow-lg': AtomicShadows.lg,\n '--atomic-shadow-xl': AtomicShadows.xl,\n '--atomic-shadow-xxl': AtomicShadows.xxl,\n '--atomic-shadow-inner': AtomicShadows.inner,\n \n \n '--atomic-shadow-focus-primary': AtomicShadows.focusPrimary,\n '--atomic-shadow-focus-secondary': AtomicShadows.focusSecondary,\n '--atomic-shadow-focus-success': AtomicShadows.focusSuccess,\n '--atomic-shadow-focus-warning': AtomicShadows.focusWarning,\n '--atomic-shadow-focus-error': AtomicShadows.focusError,\n '--atomic-shadow-focus-info': AtomicShadows.focusInfo,\n \n \n '--atomic-shadow-glow-primary': AtomicShadows.glowPrimary,\n '--atomic-shadow-glow-secondary': AtomicShadows.glowSecondary,\n '--atomic-shadow-glow-success': AtomicShadows.glowSuccess,\n '--atomic-shadow-glow-warning': AtomicShadows.glowWarning,\n '--atomic-shadow-glow-error': AtomicShadows.glowError,\n \n \n '--atomic-shadow-card': AtomicShadows.card,\n '--atomic-shadow-card-hover': AtomicShadows.cardHover,\n '--atomic-shadow-button': AtomicShadows.button,\n '--atomic-shadow-button-hover': AtomicShadows.buttonHover,\n '--atomic-shadow-modal': AtomicShadows.modal,\n '--atomic-shadow-dropdown': AtomicShadows.dropdown,\n '--atomic-shadow-tooltip': AtomicShadows.tooltip,\n} as const\n\nexport type AtomicShadowKey = keyof typeof AtomicShadows\nexport type AtomicShadowValue = typeof AtomicShadows[AtomicShadowKey]","\nexport const AtomicBorders = {\n \n radius: {\n none: '0px',\n xs: '2px',\n sm: '4px',\n md: '6px',\n lg: '8px',\n xl: '12px',\n xxl: '16px',\n xxxl: '24px',\n full: '9999px',\n },\n\n \n width: {\n none: '0px',\n thin: '1px',\n medium: '2px',\n thick: '4px',\n thicker: '8px',\n },\n\n \n style: {\n solid: 'solid',\n dashed: 'dashed',\n dotted: 'dotted',\n double: 'double',\n none: 'none',\n },\n} as const\n\nexport const BorderUtils = {\n \n radius: (name: keyof typeof AtomicBorders.radius): string => {\n return AtomicBorders.radius[name]\n },\n\n \n width: (name: keyof typeof AtomicBorders.width): string => {\n return AtomicBorders.width[name]\n },\n\n \n style: (name: keyof typeof AtomicBorders.style): string => {\n return AtomicBorders.style[name]\n },\n\n \n border: (config: {\n width?: keyof typeof AtomicBorders.width\n style?: keyof typeof AtomicBorders.style\n color?: string\n }) => {\n const width = config.width ? AtomicBorders.width[config.width] : AtomicBorders.width.thin\n const style = config.style ? AtomicBorders.style[config.style] : AtomicBorders.style.solid\n const color = config.color || 'currentColor'\n \n return `${width} ${style} ${color}`\n },\n\n \n radiusCorners: {\n all: (radius: keyof typeof AtomicBorders.radius) => ({\n borderRadius: AtomicBorders.radius[radius]\n }),\n top: (radius: keyof typeof AtomicBorders.radius) => ({\n borderTopLeftRadius: AtomicBorders.radius[radius],\n borderTopRightRadius: AtomicBorders.radius[radius]\n }),\n right: (radius: keyof typeof AtomicBorders.radius) => ({\n borderTopRightRadius: AtomicBorders.radius[radius],\n borderBottomRightRadius: AtomicBorders.radius[radius]\n }),\n bottom: (radius: keyof typeof AtomicBorders.radius) => ({\n borderBottomLeftRadius: AtomicBorders.radius[radius],\n borderBottomRightRadius: AtomicBorders.radius[radius]\n }),\n left: (radius: keyof typeof AtomicBorders.radius) => ({\n borderTopLeftRadius: AtomicBorders.radius[radius],\n borderBottomLeftRadius: AtomicBorders.radius[radius]\n }),\n topLeft: (radius: keyof typeof AtomicBorders.radius) => ({\n borderTopLeftRadius: AtomicBorders.radius[radius]\n }),\n topRight: (radius: keyof typeof AtomicBorders.radius) => ({\n borderTopRightRadius: AtomicBorders.radius[radius]\n }),\n bottomRight: (radius: keyof typeof AtomicBorders.radius) => ({\n borderBottomRightRadius: AtomicBorders.radius[radius]\n }),\n bottomLeft: (radius: keyof typeof AtomicBorders.radius) => ({\n borderBottomLeftRadius: AtomicBorders.radius[radius]\n }),\n },\n\n \n borderSides: {\n all: (config: {\n width?: keyof typeof AtomicBorders.width\n style?: keyof typeof AtomicBorders.style\n color?: string\n }) => ({\n border: BorderUtils.border(config)\n }),\n top: (config: {\n width?: keyof typeof AtomicBorders.width\n style?: keyof typeof AtomicBorders.style\n color?: string\n }) => ({\n borderTop: BorderUtils.border(config)\n }),\n right: (config: {\n width?: keyof typeof AtomicBorders.width\n style?: keyof typeof AtomicBorders.style\n color?: string\n }) => ({\n borderRight: BorderUtils.border(config)\n }),\n bottom: (config: {\n width?: keyof typeof AtomicBorders.width\n style?: keyof typeof AtomicBorders.style\n color?: string\n }) => ({\n borderBottom: BorderUtils.border(config)\n }),\n left: (config: {\n width?: keyof typeof AtomicBorders.width\n style?: keyof typeof AtomicBorders.style\n color?: string\n }) => ({\n borderLeft: BorderUtils.border(config)\n }),\n },\n}\n\nexport const AtomicBordersCss = {\n \n '--atomic-radius-none': AtomicBorders.radius.none,\n '--atomic-radius-xs': AtomicBorders.radius.xs,\n '--atomic-radius-sm': AtomicBorders.radius.sm,\n '--atomic-radius-md': AtomicBorders.radius.md,\n '--atomic-radius-lg': AtomicBorders.radius.lg,\n '--atomic-radius-xl': AtomicBorders.radius.xl,\n '--atomic-radius-xxl': AtomicBorders.radius.xxl,\n '--atomic-radius-xxxl': AtomicBorders.radius.xxxl,\n '--atomic-radius-full': AtomicBorders.radius.full,\n \n \n '--atomic-border-none': AtomicBorders.width.none,\n '--atomic-border-thin': AtomicBorders.width.thin,\n '--atomic-border-medium': AtomicBorders.width.medium,\n '--atomic-border-thick': AtomicBorders.width.thick,\n '--atomic-border-thicker': AtomicBorders.width.thicker,\n} as const\n\nexport type AtomicBorderRadius = keyof typeof AtomicBorders.radius\nexport type AtomicBorderWidth = keyof typeof AtomicBorders.width\nexport type AtomicBorderStyle = keyof typeof AtomicBorders.style","\nexport const AtomicAnimations = {\n \n duration: {\n instant: '0ms',\n fast: '150ms',\n normal: '200ms',\n slow: '300ms',\n slower: '500ms',\n slowest: '700ms',\n },\n\n \n easing: {\n linear: 'linear',\n ease: 'ease',\n easeIn: 'ease-in',\n easeOut: 'ease-out',\n easeInOut: 'ease-in-out',\n \n \n smooth: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)',\n snappy: 'cubic-bezier(0.68, -0.55, 0.265, 1.55)',\n bounce: 'cubic-bezier(0.68, -0.6, 0.32, 1.6)',\n elastic: 'cubic-bezier(0.175, 0.885, 0.32, 1.275)',\n \n \n standard: 'cubic-bezier(0.4, 0, 0.2, 1)',\n decelerate: 'cubic-bezier(0, 0, 0.2, 1)',\n accelerate: 'cubic-bezier(0.4, 0, 1, 1)',\n },\n\n \n scale: {\n none: '1',\n xs: '1.025',\n sm: '1.05',\n md: '1.1',\n lg: '1.15',\n xl: '1.25',\n },\n\n \n rotate: {\n none: '0deg',\n quarter: '90deg',\n half: '180deg',\n threeQuarter: '270deg',\n full: '360deg',\n },\n} as const\n\nexport const AnimationUtils = {\n \n transition: (config: {\n property?: string | string[]\n duration?: keyof typeof AtomicAnimations.duration\n easing?: keyof typeof AtomicAnimations.easing\n delay?: keyof typeof AtomicAnimations.duration\n }) => {\n const property = Array.isArray(config.property) \n ? config.property.join(', ')\n : config.property || 'all'\n const duration = config.duration ? AtomicAnimations.duration[config.duration] : AtomicAnimations.duration.normal\n const easing = config.easing ? AtomicAnimations.easing[config.easing] : AtomicAnimations.easing.easeInOut\n const delay = config.delay ? AtomicAnimations.duration[config.delay] : '0ms'\n \n return {\n transition: `${property} ${duration} ${easing} ${delay}`\n }\n },\n\n \n transform: (config: {\n scale?: keyof typeof AtomicAnimations.scale\n rotate?: keyof typeof AtomicAnimations.rotate\n translateX?: string\n translateY?: string\n translateZ?: string\n }) => {\n const transforms: string[] = []\n \n if (config.scale) {\n transforms.push(`scale(${AtomicAnimations.scale[config.scale]})`)\n }\n \n if (config.rotate) {\n transforms.push(`rotate(${AtomicAnimations.rotate[config.rotate]})`)\n }\n \n if (config.translateX) {\n transforms.push(`translateX(${config.translateX})`)\n }\n \n if (config.translateY) {\n transforms.push(`translateY(${config.translateY})`)\n }\n \n if (config.translateZ) {\n transforms.push(`translateZ(${config.translateZ})`)\n }\n \n return {\n transform: transforms.join(' ') || 'none'\n }\n },\n\n \n duration: (name: keyof typeof AtomicAnimations.duration): string => {\n return AtomicAnimations.duration[name]\n },\n\n \n easing: (name: keyof typeof AtomicAnimations.easing): string => {\n return AtomicAnimations.easing[name]\n },\n\n \n keyframes: (name: string, frames: Record<string, React.CSSProperties>): string => {\n const keyframeString = Object.entries(frames)\n .map(([key, styles]) => {\n const styleString = Object.entries(styles)\n .map(([prop, value]) => `${prop}: ${value};`)\n .join(' ')\n return `${key} { ${styleString} }`\n })\n .join(' ')\n \n return `@keyframes ${name} { ${keyframeString} }`\n },\n}\n\nexport const AtomicAnimationPresets = {\n \n fadeIn: AnimationUtils.transition({\n property: 'opacity',\n duration: 'normal',\n easing: 'easeOut'\n }),\n \n fadeOut: AnimationUtils.transition({\n property: 'opacity',\n duration: 'fast',\n easing: 'easeIn'\n }),\n\n \n scaleIn: {\n ...AnimationUtils.transition({\n property: 'transform',\n duration: 'normal',\n easing: 'smooth'\n }),\n transform: 'scale(1)'\n },\n \n scaleOut: {\n ...AnimationUtils.transition({\n property: 'transform',\n duration: 'fast',\n easing: 'easeIn'\n }),\n transform: 'scale(0.95)'\n },\n\n \n slideInUp: {\n ...AnimationUtils.transition({\n property: 'transform',\n duration: 'normal',\n easing: 'smooth'\n }),\n transform: 'translateY(0)'\n },\n \n slideInDown: {\n ...AnimationUtils.transition({\n property: 'transform',\n duration: 'normal',\n easing: 'smooth'\n }),\n transform: 'translateY(0)'\n },\n\n \n buttonHover: {\n ...AnimationUtils.transition({\n property: ['background-color', 'border-color', 'color', 'box-shadow', 'transform'],\n duration: 'fast',\n easing: 'easeOut'\n }),\n transform: 'translateY(-1px)'\n },\n \n buttonPress: {\n ...AnimationUtils.transition({\n property: 'transform',\n duration: 'fast',\n easing: 'easeIn'\n }),\n transform: 'translateY(0)'\n },\n\n \n spin: {\n animation: 'spin 1s linear infinite'\n },\n \n pulse: {\n animation: 'pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite'\n },\n \n bounce: {\n animation: 'bounce 1s infinite'\n },\n}\n\nexport const AtomicAnimationsCss = {\n \n '--atomic-duration-instant': AtomicAnimations.duration.instant,\n '--atomic-duration-fast': AtomicAnimations.duration.fast,\n '--atomic-duration-normal': AtomicAnimations.duration.normal,\n '--atomic-duration-slow': AtomicAnimations.duration.slow,\n '--atomic-duration-slower': AtomicAnimations.duration.slower,\n '--atomic-duration-slowest': AtomicAnimations.duration.slowest,\n \n \n '--atomic-ease-linear': AtomicAnimations.easing.linear,\n '--atomic-ease': AtomicAnimations.easing.ease,\n '--atomic-ease-in': AtomicAnimations.easing.easeIn,\n '--atomic-ease-out': AtomicAnimations.easing.easeOut,\n '--atomic-ease-in-out': AtomicAnimations.easing.easeInOut,\n '--atomic-ease-smooth': AtomicAnimations.easing.smooth,\n '--atomic-ease-snappy': AtomicAnimations.easing.snappy,\n '--atomic-ease-bounce': AtomicAnimations.easing.bounce,\n '--atomic-ease-elastic': AtomicAnimations.easing.elastic,\n '--atomic-ease-standard': AtomicAnimations.easing.standard,\n '--atomic-ease-decelerate': AtomicAnimations.easing.decelerate,\n '--atomic-ease-accelerate': AtomicAnimations.easing.accelerate,\n \n \n '--atomic-scale-none': AtomicAnimations.scale.none,\n '--atomic-scale-xs': AtomicAnimations.scale.xs,\n '--atomic-scale-sm': AtomicAnimations.scale.sm,\n '--atomic-scale-md': AtomicAnimations.scale.md,\n '--atomic-scale-lg': AtomicAnimations.scale.lg,\n '--atomic-scale-xl': AtomicAnimations.scale.xl,\n} as const\n\nexport type AtomicAnimationDuration = keyof typeof AtomicAnimations.duration\nexport type AtomicAnimationEasing = keyof typeof AtomicAnimations.easing\nexport type AtomicAnimationScale = keyof typeof AtomicAnimations.scale\nexport type AtomicAnimationRotate = keyof typeof AtomicAnimations.rotate","\nexport enum AtomicSize {\n XS = 'xs',\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n}\n\nexport enum AtomicColorVariant {\n PRIMARY = 'primary',\n SECONDARY = 'secondary',\n SUCCESS = 'success',\n WARNING = 'warning',\n ERROR = 'error',\n INFO = 'info',\n GRAY = 'gray',\n}\n\nexport enum AtomicButtonVariant {\n PRIMARY = 'primary',\n SECONDARY = 'secondary',\n OUTLINE = 'outline',\n GHOST = 'ghost',\n LINK = 'link',\n DESTRUCTIVE = 'destructive',\n}\n\nexport enum AtomicInputVariant {\n DEFAULT = 'default',\n FILLED = 'filled',\n OUTLINE = 'outline',\n UNDERLINED = 'underlined',\n}\n\nexport enum AtomicCardVariant {\n DEFAULT = 'default',\n ELEVATED = 'elevated',\n OUTLINED = 'outlined',\n FILLED = 'filled',\n}\n\nexport enum AtomicLoadingState {\n IDLE = 'idle',\n LOADING = 'loading',\n SUCCESS = 'success',\n ERROR = 'error',\n}\n\nexport enum AtomicStatus {\n ACTIVE = 'active',\n INACTIVE = 'inactive',\n PENDING = 'pending',\n DISABLED = 'disabled',\n ARCHIVED = 'archived',\n}\n\nexport enum AtomicAlertType {\n INFO = 'info',\n SUCCESS = 'success',\n WARNING = 'warning',\n ERROR = 'error',\n}\n\nexport enum AtomicModalSize {\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n FULL = 'full',\n}\n\nexport enum AtomicTextVariant {\n DISPLAY_LARGE = 'displayLarge',\n DISPLAY_MEDIUM = 'displayMedium',\n DISPLAY_SMALL = 'displaySmall',\n HEADLINE_LARGE = 'headlineLarge',\n HEADLINE_MEDIUM = 'headlineMedium',\n HEADLINE_SMALL = 'headlineSmall',\n TITLE_LARGE = 'titleLarge',\n TITLE_MEDIUM = 'titleMedium',\n TITLE_SMALL = 'titleSmall',\n BODY_LARGE = 'bodyLarge',\n BODY_MEDIUM = 'bodyMedium',\n BODY_SMALL = 'bodySmall',\n LABEL_LARGE = 'labelLarge',\n LABEL_MEDIUM = 'labelMedium',\n LABEL_SMALL = 'labelSmall',\n}\n\nexport enum AtomicPosition {\n TOP = 'top',\n TOP_LEFT = 'top-left',\n TOP_RIGHT = 'top-right',\n BOTTOM = 'bottom',\n BOTTOM_LEFT = 'bottom-left',\n BOTTOM_RIGHT = 'bottom-right',\n LEFT = 'left',\n RIGHT = 'right',\n CENTER = 'center',\n}\n\nexport enum AtomicAlignment {\n LEFT = 'left',\n CENTER = 'center',\n RIGHT = 'right',\n JUSTIFY = 'justify',\n}\n\nexport enum AtomicOrientation {\n HORIZONTAL = 'horizontal',\n VERTICAL = 'vertical',\n}\n\nexport enum AtomicDirection {\n UP = 'up',\n DOWN = 'down',\n LEFT = 'left',\n RIGHT = 'right',\n}\n\nexport enum AtomicAnimationState {\n ENTER = 'enter',\n EXIT = 'exit',\n IDLE = 'idle',\n}\n\nexport enum AtomicFormFieldState {\n DEFAULT = 'default',\n FOCUS = 'focus',\n ERROR = 'error',\n SUCCESS = 'success',\n DISABLED = 'disabled',\n}\n\nexport enum AtomicBreakpoint {\n XS = 'xs',\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n XXL = 'xxl',\n}\n\nexport enum AtomicThemeMode {\n LIGHT = 'light',\n DARK = 'dark',\n SYSTEM = 'system',\n}\n\n\nexport type AtomicSizeType = keyof typeof AtomicSize\nexport type AtomicColorVariantType = keyof typeof AtomicColorVariant\nexport type AtomicButtonVariantType = keyof typeof AtomicButtonVariant\nexport type AtomicInputVariantType = keyof typeof AtomicInputVariant\nexport type AtomicCardVariantType = keyof typeof AtomicCardVariant\nexport type AtomicLoadingStateType = keyof typeof AtomicLoadingState\nexport type AtomicStatusType = keyof typeof AtomicStatus\nexport type AtomicAlertTypeType = keyof typeof AtomicAlertType\nexport type AtomicModalSizeType = keyof typeof AtomicModalSize\nexport type AtomicTextVariantType = keyof typeof AtomicTextVariant\nexport type AtomicPositionType = keyof typeof AtomicPosition\nexport type AtomicAlignmentType = keyof typeof AtomicAlignment\nexport type AtomicOrientationType = keyof typeof AtomicOrientation\nexport type AtomicDirectionType = keyof typeof AtomicDirection\nexport type AtomicAnimationStateType = keyof typeof AtomicAnimationState\nexport type AtomicFormFieldStateType = keyof typeof AtomicFormFieldState\nexport type AtomicBreakpointType = keyof typeof AtomicBreakpoint\nexport type AtomicThemeModeType = keyof typeof AtomicThemeMode\n\nexport const AtomicEnumUtils = {\n \n getValues: <T extends Record<string, string>>(enumObj: T): string[] => {\n return Object.values(enumObj)\n },\n\n \n getKeys: <T extends Record<string, string>>(enumObj: T): string[] => {\n return Object.keys(enumObj)\n },\n\n \n hasValue: <T extends Record<string, string>>(enumObj: T, value: string): value is T[keyof T] => {\n return Object.values(enumObj).includes(value)\n },\n\n \n hasKey: <T extends Record<string, string>>(enumObj: T, key: string): key is string => {\n return Object.keys(enumObj).includes(key)\n },\n\n \n getEntries: <T extends Record<string, string>>(enumObj: T): [string, string][] => {\n return Object.entries(enumObj)\n },\n}","\n// ⚠️ NOTICE: Core design system components have been moved to React Native template system\n// This package now only exports CSS variables for web/Next.js usage\n// For React Native projects, use: generator/tech-stack/react-native/templates/atomics/tokens/AtomicDesignTokens.ts\n\nexport {\n AtomicColorsCss,\n} from './colors/atomic-colors'\n\nexport {\n AtomicSpacingCss,\n} from './spacing/atomic-spacing'\n\nexport {\n AtomicTypographyCss,\n} from './typography/atomic-typography'\n\nexport {\n AtomicShadows,\n ShadowUtils,\n AtomicShadowsCss,\n type AtomicShadowKey,\n type AtomicShadowValue,\n} from './shadows/atomic-shadows'\n\nexport {\n AtomicBorders,\n BorderUtils,\n AtomicBordersCss,\n type AtomicBorderRadius,\n type AtomicBorderWidth,\n type AtomicBorderStyle,\n} from './borders/atomic-borders'\n\nexport {\n AtomicAnimations,\n AnimationUtils,\n AtomicAnimationPresets,\n AtomicAnimationsCss,\n type AtomicAnimationDuration,\n type AtomicAnimationEasing,\n type AtomicAnimationScale,\n type AtomicAnimationRotate,\n} from './animations/atomic-animations'\n\nexport {\n AtomicSize,\n AtomicColorVariant,\n AtomicButtonVariant,\n AtomicInputVariant,\n AtomicCardVariant,\n AtomicLoadingState,\n AtomicStatus,\n AtomicAlertType,\n AtomicModalSize,\n AtomicTextVariant,\n AtomicPosition,\n AtomicAlignment,\n AtomicOrientation,\n AtomicDirection,\n AtomicAnimationState,\n AtomicFormFieldState,\n AtomicBreakpoint,\n AtomicThemeMode,\n AtomicEnumUtils,\n type AtomicSizeType,\n type AtomicColorVariantType,\n type AtomicButtonVariantType,\n type AtomicInputVariantType,\n type AtomicCardVariantType,\n type AtomicLoadingStateType,\n type AtomicStatusType,\n type AtomicAlertTypeType,\n type AtomicModalSizeType,\n type AtomicTextVariantType,\n type AtomicPositionType,\n type AtomicAlignmentType,\n type AtomicOrientationType,\n type AtomicDirectionType,\n type AtomicAnimationStateType,\n type AtomicFormFieldStateType,\n type AtomicBreakpointType,\n type AtomicThemeModeType,\n} from './enums/atomic-enums'\n\nimport { AtomicColorsCss } from './colors/atomic-colors'\nimport { AtomicSpacingCss } from './spacing/atomic-spacing' \nimport { AtomicTypographyCss } from './typography/atomic-typography'\nimport { AtomicShadowsCss } from './shadows/atomic-shadows'\nimport { AtomicBordersCss } from './borders/atomic-borders'\nimport { AtomicAnimationsCss } from './animations/atomic-animations'\n\nexport const AtomicDesignTokensCss = {\n ...AtomicColorsCss,\n ...AtomicSpacingCss,\n ...AtomicTypographyCss,\n ...AtomicShadowsCss,\n ...AtomicBordersCss,\n ...AtomicAnimationsCss,\n} as const","import { clsx, type ClassValue } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}","// ⚠️ NOTICE: Advanced button patterns have been moved to React Native template system\n// This file now only contains basic web/Next.js button implementation\n// For React Native projects, use: generator/tech-stack/react-native/templates/atomics/atoms/AtomicButton.tsx\n\nimport React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { Loader2 } from 'lucide-react'\nimport { cn } from '../../utils/cn'\n\n/**\n * Web/Next.js button variants using class-variance-authority\n * For React Native equivalent, see AtomicButton.tsx.template with StyleSheet-based variants\n */\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium 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 disabled:opacity-50',\n {\n variants: {\n variant: {\n default: 'bg-gray-900 text-white hover:bg-gray-800 dark:bg-white dark:text-gray-900 dark:hover:bg-gray-100',\n primary: 'bg-[--atomic-primary] text-white hover:bg-[--atomic-primary-dark] transition-all duration-200',\n brand: 'text-white hover:shadow-xl transition-all duration-200',\n destructive: 'bg-red-600 text-white hover:bg-red-700 dark:bg-red-500 dark:hover:bg-red-600',\n outline: 'border border-gray-300 bg-transparent hover:bg-gray-50 dark:border-gray-700 dark:hover:bg-gray-800',\n secondary: 'bg-gray-100 text-gray-900 hover:bg-gray-200 dark:bg-gray-800 dark:text-gray-100 dark:hover:bg-gray-700',\n ghost: 'bg-transparent hover:bg-gray-100 dark:hover:bg-gray-800',\n link: 'bg-transparent text-blue-600 underline-offset-4 hover:underline dark:text-blue-400',\n },\n size: {\n default: 'h-10 px-4 py-2',\n sm: 'h-9 rounded-md px-3',\n lg: 'h-11 rounded-md px-8',\n icon: 'h-10 w-10',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n)\n\nexport interface AtomicButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n /** Render as a different element */\n asChild?: boolean\n /** Show loading spinner */\n loading?: boolean\n /** Icon to display on the left */\n leftIcon?: React.ReactNode\n /** Icon to display on the right */\n rightIcon?: React.ReactNode\n /** Make button full width */\n fullWidth?: boolean\n}\n\nconst AtomicButton = React.forwardRef<HTMLButtonElement, AtomicButtonProps>(\n (\n {\n className,\n variant,\n size,\n asChild = false,\n loading = false,\n leftIcon,\n rightIcon,\n fullWidth = false,\n disabled,\n children,\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot : 'button'\n const isDisabled = disabled || loading\n\n return (\n <Comp\n className={cn(\n buttonVariants({ variant, size }),\n fullWidth && 'w-full',\n className\n )}\n style={{\n ...(variant === 'brand' && {\n background: 'linear-gradient(to right, var(--atomic-primary), var(--atomic-secondary))'\n }),\n ...props.style\n }}\n ref={ref}\n disabled={isDisabled}\n {...props}\n >\n {loading && (\n <Loader2 \n className={cn(\n 'animate-spin',\n size === 'sm' ? 'h-3 w-3' : size === 'lg' ? 'h-5 w-5' : 'h-4 w-4',\n (leftIcon || children) && 'mr-2'\n )} \n />\n )}\n {!loading && leftIcon && (\n <span className={cn(\n 'inline-flex items-center',\n size === 'sm' ? 'mr-1' : 'mr-2',\n size === 'sm' ? '[&>*]:h-3 [&>*]:w-3' : size === 'lg' ? '[&>*]:h-5 [&>*]:w-5' : '[&>*]:h-4 [&>*]:w-4'\n )}>\n {leftIcon}\n </span>\n )}\n {children}\n {!loading && rightIcon && (\n <span className={cn(\n 'inline-flex items-center',\n size === 'sm' ? 'ml-1' : 'ml-2',\n size === 'sm' ? '[&>*]:h-3 [&>*]:w-3' : size === 'lg' ? '[&>*]:h-5 [&>*]:w-5' : '[&>*]:h-4 [&>*]:w-4'\n )}>\n {rightIcon}\n </span>\n )}\n </Comp>\n )\n }\n)\nAtomicButton.displayName = 'AtomicButton'\n\nexport { AtomicButton, buttonVariants }","\nimport React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\nconst textVariants = cva('', {\n variants: {\n variant: {\n h1: 'scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl',\n h2: 'scroll-m-20 text-3xl font-semibold tracking-tight lg:text-4xl',\n h3: 'scroll-m-20 text-2xl font-semibold tracking-tight',\n h4: 'scroll-m-20 text-xl font-semibold tracking-tight',\n h5: 'scroll-m-20 text-lg font-semibold tracking-tight',\n h6: 'scroll-m-20 text-base font-semibold tracking-tight',\n \n body: 'text-base leading-7',\n base: 'text-base leading-7',\n large: 'text-lg leading-7',\n lg: 'text-lg leading-7',\n small: 'text-sm leading-6',\n sm: 'text-sm leading-6',\n xs: 'text-xs leading-5',\n xl: 'text-xl leading-7',\n '2xl': 'text-2xl leading-8',\n '3xl': 'text-3xl leading-9',\n\n lead: 'text-xl leading-7 text-muted-foreground',\n muted: 'text-sm text-muted-foreground',\n caption: 'text-xs text-muted-foreground',\n label: 'text-sm font-medium leading-none',\n },\n color: {\n default: 'text-foreground',\n primary: 'text-primary',\n secondary: 'text-secondary-foreground',\n muted: 'text-muted-foreground',\n success: 'text-green-600 dark:text-green-400',\n warning: 'text-amber-600 dark:text-amber-400',\n error: 'text-red-600 dark:text-red-400',\n info: 'text-blue-600 dark:text-blue-400',\n },\n align: {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n justify: 'text-justify',\n },\n weight: {\n thin: 'font-thin',\n light: 'font-light',\n normal: 'font-normal',\n medium: 'font-medium',\n semibold: 'font-semibold',\n bold: 'font-bold',\n extrabold: 'font-extrabold',\n black: 'font-black',\n },\n },\n defaultVariants: {\n variant: 'body',\n color: 'default',\n align: 'left',\n },\n})\n\nexport interface AtomicTextProps\n extends Omit<React.HTMLAttributes<HTMLElement>, 'color'>,\n VariantProps<typeof textVariants> {\n /** Render as a different element */\n asChild?: boolean\n /** HTML element to render */\n as?: 'p' | 'span' | 'div' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'label'\n /** Truncate text with ellipsis */\n truncate?: boolean\n /** Allow text selection */\n selectable?: boolean\n}\n\nconst AtomicText = React.forwardRef<HTMLElement, AtomicTextProps>(\n (\n {\n className,\n variant,\n color,\n align,\n weight,\n as = 'p',\n asChild = false,\n truncate = false,\n selectable = true,\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot : as\n\n \n let semanticElement = as\n if (!asChild && as === 'p') {\n if (variant === 'h1' || variant === 'h2' || variant === 'h3' || variant === 'h4' || variant === 'h5' || variant === 'h6') {\n semanticElement = variant\n } else if (variant === 'label') {\n semanticElement = 'label'\n }\n }\n\n const FinalComp = asChild ? Comp : semanticElement\n\n return (\n <FinalComp\n className={cn(\n textVariants({ variant, color: color || 'default', align, weight }),\n truncate && 'truncate',\n !selectable && 'select-none',\n className\n )}\n ref={ref as any}\n {...props}\n />\n )\n }\n)\nAtomicText.displayName = 'AtomicText'\n\nexport { AtomicText, textVariants }","\nimport React from 'react'\nimport * as AvatarPrimitive from '@radix-ui/react-avatar'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\nconst avatarVariants = cva(\n 'relative flex shrink-0 overflow-hidden rounded-full',\n {\n variants: {\n size: {\n xs: 'h-6 w-6',\n sm: 'h-8 w-8',\n default: 'h-10 w-10',\n lg: 'h-12 w-12',\n xl: 'h-16 w-16',\n xxl: 'h-20 w-20',\n xxxl: 'h-24 w-24',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n }\n)\n\nconst avatarImageVariants = cva('aspect-square h-full w-full object-cover')\n\nconst avatarFallbackVariants = cva(\n 'flex h-full w-full items-center justify-center rounded-full bg-muted font-medium text-muted-foreground',\n {\n variants: {\n size: {\n xs: 'text-xs',\n sm: 'text-xs',\n default: 'text-sm',\n lg: 'text-base',\n xl: 'text-lg',\n xxl: 'text-xl',\n xxxl: 'text-2xl',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n }\n)\n\nexport interface AtomicAvatarProps\n extends React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>,\n VariantProps<typeof avatarVariants> {\n src?: string\n alt?: string\n fallback?: string\n fallbackElement?: React.ReactNode\n showStatus?: boolean\n isOnline?: boolean\n statusColor?: string\n}\n\nconst AtomicAvatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n AtomicAvatarProps\n>(\n (\n {\n className,\n size,\n src,\n alt,\n fallback,\n fallbackElement,\n showStatus = false,\n isOnline = false,\n statusColor,\n ...props\n },\n ref\n ) => {\n const generateInitials = (name?: string) => {\n if (!name) return '?'\n \n return name\n .split(' ')\n .map(part => part.charAt(0))\n .join('')\n .slice(0, 2)\n .toUpperCase()\n }\n\n const initials = fallback || generateInitials(alt)\n \n \n const statusSize = {\n xs: 'h-1.5 w-1.5',\n sm: 'h-2 w-2',\n default: 'h-2.5 w-2.5',\n lg: 'h-3 w-3',\n xl: 'h-4 w-4',\n xxl: 'h-4 w-4',\n xxxl: 'h-5 w-5',\n }[size || 'default']\n\n return (\n <div className=\"relative\">\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(avatarVariants({ size }), className)}\n {...props}\n >\n <AvatarPrimitive.Image\n className={avatarImageVariants()}\n src={src}\n alt={alt}\n />\n <AvatarPrimitive.Fallback\n className={avatarFallbackVariants({ size })}\n >\n {fallbackElement || initials}\n </AvatarPrimitive.Fallback>\n </AvatarPrimitive.Root>\n \n {showStatus && (\n <div\n className={cn(\n 'absolute bottom-0 right-0 rounded-full border-2 border-background',\n statusSize,\n statusColor ? '' : isOnline ? 'bg-green-500' : 'bg-gray-400'\n )}\n style={statusColor ? { backgroundColor: statusColor } : undefined}\n />\n )}\n </div>\n )\n }\n)\nAtomicAvatar.displayName = 'AtomicAvatar'\n\nconst AtomicAvatarImage = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image\n ref={ref}\n className={cn(avatarImageVariants(), className)}\n {...props}\n />\n))\nAtomicAvatarImage.displayName = 'AtomicAvatarImage'\n\nconst AtomicAvatarFallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback> &\n VariantProps<typeof avatarFallbackVariants>\n>(({ className, size, ...props }, ref) => (\n <AvatarPrimitive.Fallback\n ref={ref}\n className={cn(avatarFallbackVariants({ size }), className)}\n {...props}\n />\n))\nAtomicAvatarFallback.displayName = 'AtomicAvatarFallback'\n\nexport {\n AtomicAvatar,\n AtomicAvatarImage,\n AtomicAvatarFallback,\n avatarVariants,\n avatarImageVariants,\n avatarFallbackVariants,\n}","\nimport Image from 'next/image'\nimport { cn } from '../../utils/cn'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport React from 'react'\n\nconst imageVariants = cva('transition-all duration-200', {\n variants: {\n rounded: {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n xl: 'rounded-xl',\n full: 'rounded-full',\n },\n aspectRatio: {\n square: 'aspect-square',\n video: 'aspect-video',\n portrait: 'aspect-[3/4]',\n landscape: 'aspect-[4/3]',\n auto: '',\n },\n objectFit: {\n cover: 'object-cover',\n contain: 'object-contain',\n fill: 'object-fill',\n 'scale-down': 'object-scale-down',\n none: 'object-none',\n },\n objectPosition: {\n center: 'object-center',\n top: 'object-top',\n bottom: 'object-bottom',\n left: 'object-left',\n right: 'object-right',\n 'top-left': 'object-left-top',\n 'top-right': 'object-right-top',\n 'bottom-left': 'object-left-bottom',\n 'bottom-right': 'object-right-bottom',\n },\n },\n defaultVariants: {\n rounded: 'none',\n aspectRatio: 'auto',\n objectFit: 'cover',\n objectPosition: 'center',\n },\n})\n\nexport interface AtomicImageProps\n extends Omit<React.ComponentProps<typeof Image>, 'className' | 'objectFit' | 'objectPosition' | 'placeholder'>,\n VariantProps<typeof imageVariants> {\n className?: string\n containerClassName?: string\n /** Enable blur placeholder while loading */\n enableBlur?: boolean\n /** Custom placeholder image source */\n placeholderSrc?: string\n}\n\nexport const AtomicImage = React.forwardRef<\n React.ElementRef<typeof Image>,\n AtomicImageProps\n>(({\n className,\n containerClassName,\n rounded,\n aspectRatio,\n objectFit,\n objectPosition,\n enableBlur = false,\n placeholderSrc,\n ...props\n}, ref) => {\n return (\n <div className={cn(\n 'relative overflow-hidden',\n aspectRatio && imageVariants({ aspectRatio }),\n containerClassName\n )}>\n <Image\n ref={ref}\n className={cn(\n imageVariants({ \n rounded, \n objectFit, \n objectPosition,\n aspectRatio: undefined\n }), \n className\n )}\n placeholder={enableBlur || placeholderSrc ? 'blur' : 'empty'}\n blurDataURL={placeholderSrc}\n {...props}\n />\n </div>\n )\n})\n\nAtomicImage.displayName = 'AtomicImage'\n\nexport { imageVariants }","'use client'\n\nimport React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\nconst cardVariants = cva(\n 'rounded-lg border text-card-foreground',\n {\n variants: {\n variant: {\n default: 'border-border bg-card shadow-sm',\n elevated: 'border-0 bg-card shadow-lg',\n outlined: 'border-2 border-border bg-card shadow-none',\n filled: 'border-0 bg-muted shadow-none',\n },\n size: {\n sm: 'p-4',\n md: 'p-6',\n lg: 'p-8',\n xl: 'p-10',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n }\n)\n\nconst cardHeaderVariants = cva(\n 'flex flex-col space-y-1.5',\n {\n variants: {\n size: {\n sm: 'pb-3',\n md: 'pb-4',\n lg: 'pb-6',\n xl: 'pb-8',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n)\n\nconst cardTitleVariants = cva(\n 'font-semibold leading-none tracking-tight',\n {\n variants: {\n size: {\n sm: 'text-lg',\n md: 'text-xl',\n lg: 'text-2xl',\n xl: 'text-3xl',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n)\n\nconst cardDescriptionVariants = cva(\n 'text-muted-foreground',\n {\n variants: {\n size: {\n sm: 'text-sm',\n md: 'text-sm',\n lg: 'text-base',\n xl: 'text-lg',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n)\n\nconst cardContentVariants = cva('', {\n variants: {\n size: {\n sm: 'pt-0',\n md: 'pt-0',\n lg: 'pt-0',\n xl: 'pt-0',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst cardFooterVariants = cva(\n 'flex items-center',\n {\n variants: {\n size: {\n sm: 'pt-3',\n md: 'pt-4',\n lg: 'pt-6',\n xl: 'pt-8',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n)\n\nexport interface AtomicCardProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof cardVariants> {\n /** Make card interactive with hover effects */\n interactive?: boolean\n /** Make card full width */\n fullWidth?: boolean\n}\n\nexport interface AtomicCardHeaderProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof cardHeaderVariants> {}\n\nexport interface AtomicCardTitleProps\n extends React.HTMLAttributes<HTMLHeadingElement>,\n VariantProps<typeof cardTitleVariants> {\n /** Render as a different heading element */\n as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'\n}\n\nexport interface AtomicCardDescriptionProps\n extends React.HTMLAttributes<HTMLParagraphElement>,\n VariantProps<typeof cardDescriptionVariants> {}\n\nexport interface AtomicCardContentProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof cardContentVariants> {}\n\nexport interface AtomicCardFooterProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof cardFooterVariants> {}\n\nconst AtomicCard = React.forwardRef<HTMLDivElement, AtomicCardProps>(\n ({ className, variant, size, interactive = false, fullWidth = false, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n cardVariants({ variant, size }),\n interactive && 'cursor-pointer transition-shadow hover:shadow-md',\n fullWidth && 'w-full',\n className\n )}\n {...props}\n />\n )\n)\nAtomicCard.displayName = 'AtomicCard'\n\nconst AtomicCardHeader = React.forwardRef<HTMLDivElement, AtomicCardHeaderProps>(\n ({ className, size, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(cardHeaderVariants({ size }), className)}\n {...props}\n />\n )\n)\nAtomicCardHeader.displayName = 'AtomicCardHeader'\n\nconst AtomicCardTitle = React.forwardRef<HTMLHeadingElement, AtomicCardTitleProps>(\n ({ className, size, as: Component = 'h3', ...props }, ref) => (\n <Component\n ref={ref}\n className={cn(cardTitleVariants({ size }), className)}\n {...props}\n />\n )\n)\nAtomicCardTitle.displayName = 'AtomicCardTitle'\n\nconst AtomicCardDescription = React.forwardRef<HTMLParagraphElement, AtomicCardDescriptionProps>(\n ({ className, size, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(cardDescriptionVariants({ size }), className)}\n {...props}\n />\n )\n)\nAtomicCardDescription.displayName = 'AtomicCardDescription'\n\nconst AtomicCardContent = React.forwardRef<HTMLDivElement, AtomicCardContentProps>(\n ({ className, size, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(cardContentVariants({ size }), className)}\n {...props}\n />\n )\n)\nAtomicCardContent.displayName = 'AtomicCardContent'\n\nconst AtomicCardFooter = React.forwardRef<HTMLDivElement, AtomicCardFooterProps>(\n ({ className, size, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(cardFooterVariants({ size }), className)}\n {...props}\n />\n )\n)\nAtomicCardFooter.displayName = 'AtomicCardFooter'\n\nexport {\n AtomicCard,\n AtomicCardHeader,\n AtomicCardTitle,\n AtomicCardDescription,\n AtomicCardContent,\n AtomicCardFooter,\n cardVariants,\n cardHeaderVariants,\n cardTitleVariants,\n cardDescriptionVariants,\n cardContentVariants,\n cardFooterVariants,\n}","import React from 'react';\nimport { LucideIcon, LucideProps } from 'lucide-react';\nimport { cn } from '../../utils';\n\ntype IconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | number | string;\n\ntype Color = \n | 'current' | 'black' | 'white'\n | 'slate-50' | 'slate-100' | 'slate-200' | 'slate-300' | 'slate-400' | 'slate-500' | 'slate-600' | 'slate-700' | 'slate-800' | 'slate-900'\n | 'gray-50' | 'gray-100' | 'gray-200' | 'gray-300' | 'gray-400' | 'gray-500' | 'gray-600' | 'gray-700' | 'gray-800' | 'gray-900'\n | 'zinc-50' | 'zinc-100' | 'zinc-200' | 'zinc-300' | 'zinc-400' | 'zinc-500' | 'zinc-600' | 'zinc-700' | 'zinc-800' | 'zinc-900'\n | 'red-50' | 'red-100' | 'red-200' | 'red-300' | 'red-400' | 'red-500' | 'red-600' | 'red-700' | 'red-800' | 'red-900'\n | 'orange-50' | 'orange-100' | 'orange-200' | 'orange-300' | 'orange-400' | 'orange-500' | 'orange-600' | 'orange-700' | 'orange-800' | 'orange-900'\n | 'yellow-50' | 'yellow-100' | 'yellow-200' | 'yellow-300' | 'yellow-400' | 'yellow-500' | 'yellow-600' | 'yellow-700' | 'yellow-800' | 'yellow-900'\n | 'green-50' | 'green-100' | 'green-200' | 'green-300' | 'green-400' | 'green-500' | 'green-600' | 'green-700' | 'green-800' | 'green-900'\n | 'blue-50' | 'blue-100' | 'blue-200' | 'blue-300' | 'blue-400' | 'blue-500' | 'blue-600' | 'blue-700' | 'blue-800' | 'blue-900'\n | 'indigo-50' | 'indigo-100' | 'indigo-200' | 'indigo-300' | 'indigo-400' | 'indigo-500' | 'indigo-600' | 'indigo-700' | 'indigo-800' | 'indigo-900'\n | 'purple-50' | 'purple-100' | 'purple-200' | 'purple-300' | 'purple-400' | 'purple-500' | 'purple-600' | 'purple-700' | 'purple-800' | 'purple-900'\n | 'pink-50' | 'pink-100' | 'pink-200' | 'pink-300' | 'pink-400' | 'pink-500' | 'pink-600' | 'pink-700' | 'pink-800' | 'pink-900';\n\ntype Spacing = \n | '0' | 'px' | '0.5' | '1' | '1.5' | '2' | '2.5' | '3' | '3.5' | '4' | '5' | '6' | '7' | '8'\n | '9' | '10' | '11' | '12' | '14' | '16' | '20' | '24' | '28' | '32' | '36' | '40' | '44' | '48';\n\ntype SpacingObject = {\n x?: Spacing;\n y?: Spacing;\n t?: Spacing;\n r?: Spacing;\n b?: Spacing;\n l?: Spacing;\n};\n\nexport interface AtomicIconProps extends Omit<LucideProps, 'size' | 'color'> {\n icon: LucideIcon;\n size?: IconSize;\n color?: Color;\n hoverColor?: Color;\n p?: Spacing | SpacingObject;\n m?: Spacing | SpacingObject;\n cursor?: 'auto' | 'default' | 'pointer' | 'wait' | 'help' | 'not-allowed';\n spin?: boolean;\n pulse?: boolean;\n bounce?: boolean;\n rotate?: '0' | '45' | '90' | '180' | '-45' | '-90' | '-180';\n 'aria-label'?: string;\n 'aria-hidden'?: boolean;\n}\n\nconst getSpacingClass = (spacing: Spacing | SpacingObject | undefined, prefix: string): string => {\n if (!spacing) return '';\n \n if (typeof spacing === 'string') {\n return `${prefix}-${spacing}`;\n }\n \n const classes: string[] = [];\n if (spacing.x !== undefined) classes.push(`${prefix}x-${spacing.x}`);\n if (spacing.y !== undefined) classes.push(`${prefix}y-${spacing.y}`);\n if (spacing.t !== undefined) classes.push(`${prefix}t-${spacing.t}`);\n if (spacing.r !== undefined) classes.push(`${prefix}r-${spacing.r}`);\n if (spacing.b !== undefined) classes.push(`${prefix}b-${spacing.b}`);\n if (spacing.l !== undefined) classes.push(`${prefix}l-${spacing.l}`);\n \n return classes.join(' ');\n};\n\nconst getSizeValue = (size: IconSize): number => {\n if (typeof size === 'number') return size;\n if (typeof size === 'string' && !isNaN(Number(size))) return Number(size);\n \n switch (size) {\n case 'xs': return 12;\n case 'sm': return 16;\n case 'md': return 20;\n case 'lg': return 24;\n case 'xl': return 28;\n case '2xl': return 32;\n default: return 20;\n }\n};\n\nexport const AtomicIcon = React.forwardRef<SVGSVGElement, AtomicIconProps>(\n ({\n icon: Icon,\n size = 'md',\n color,\n hoverColor,\n p,\n m,\n cursor,\n spin = false,\n pulse = false,\n bounce = false,\n rotate,\n className,\n 'aria-label': ariaLabel,\n 'aria-hidden': ariaHidden = false,\n ...rest\n }, ref) => {\n const sizeValue = getSizeValue(size);\n \n const classes = cn(\n 'inline-block flex-shrink-0',\n color && `text-${color}`,\n hoverColor && `hover:text-${hoverColor}`,\n getSpacingClass(p, 'p'),\n getSpacingClass(m, 'm'),\n cursor && `cursor-${cursor}`,\n spin && 'animate-spin',\n pulse && 'animate-pulse',\n bounce && 'animate-bounce',\n rotate && `rotate-${rotate}`,\n (hoverColor || cursor === 'pointer') && 'transition-colors duration-200',\n \n className\n );\n\n return (\n <Icon\n ref={ref}\n size={sizeValue}\n className={classes}\n aria-label={ariaLabel}\n aria-hidden={ariaHidden}\n {...rest}\n />\n );\n }\n);\n\nAtomicIcon.displayName = 'AtomicIcon';","'use client'\n\n\nimport React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { Eye, EyeOff, X } from 'lucide-react'\nimport { cn } from '../../utils/cn'\n\nconst inputVariants = cva(\n 'flex w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n {\n variants: {\n variant: {\n default: '',\n filled: 'bg-secondary border-transparent',\n outline: 'bg-transparent border-2',\n underlined: 'rounded-none border-0 border-b-2 px-0',\n },\n size: {\n sm: 'h-8 px-2 text-xs',\n default: 'h-10 px-3 text-sm',\n lg: 'h-12 px-4 text-base',\n },\n state: {\n default: '',\n error: 'border-destructive focus-visible:ring-destructive',\n success: 'border-green-500 focus-visible:ring-green-500',\n warning: 'border-amber-500 focus-visible:ring-amber-500',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n state: 'default',\n },\n }\n)\n\nexport interface AtomicInputProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>,\n VariantProps<typeof inputVariants> {\n /** Left icon or element */\n leftIcon?: React.ReactNode\n /** Right icon or element */\n rightIcon?: React.ReactNode\n /** Input label */\n label?: string\n /** Helper text */\n helperText?: string\n /** Error message */\n error?: string\n /** Success message */\n success?: string\n /** Warning message */\n warning?: string\n /** Show clear button when input has value */\n clearable?: boolean\n /** Callback when clear button is clicked */\n onClear?: () => void\n /** Show password toggle for password inputs */\n showPasswordToggle?: boolean\n /** Container class name */\n containerClassName?: string\n /** Label class name */\n labelClassName?: string\n /** Helper text class name */\n helperClassName?: string\n}\n\nconst AtomicInput = React.forwardRef<HTMLInputElement, AtomicInputProps>(\n (\n {\n className,\n variant,\n size,\n state,\n type = 'text',\n leftIcon,\n rightIcon,\n label,\n helperText,\n error,\n success,\n warning,\n clearable = false,\n onClear,\n showPasswordToggle = false,\n containerClassName,\n labelClassName,\n helperClassName,\n value,\n onChange,\n disabled,\n ...props\n },\n ref\n ) => {\n const [showPassword, setShowPassword] = React.useState(false)\n const [internalValue, setInternalValue] = React.useState(value || '')\n \n \n let currentState = state\n if (error) currentState = 'error'\n else if (success) currentState = 'success'\n else if (warning) currentState = 'warning'\n \n \n let inputType = type\n if (type === 'password' && showPasswordToggle) {\n inputType = showPassword ? 'text' : 'password'\n }\n \n const hasValue = (value || internalValue) && String(value || internalValue).length > 0\n const showClearButton = clearable && hasValue && !disabled\n const showPasswordToggleButton = showPasswordToggle && type === 'password' && !disabled\n \n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setInternalValue(e.target.value)\n onChange?.(e)\n }\n \n const handleClear = () => {\n setInternalValue('')\n onClear?.()\n \n const syntheticEvent = {\n target: { value: '' },\n currentTarget: { value: '' },\n } as React.ChangeEvent<HTMLInputElement>\n onChange?.(syntheticEvent)\n }\n \n const messageText = error || success || warning || helperText\n const messageColor = error \n ? 'text-destructive' \n : success \n ? 'text-green-600 dark:text-green-400'\n : warning\n ? 'text-amber-600 dark:text-amber-400'\n : 'text-muted-foreground'\n\n return (\n <div className={cn('space-y-2', containerClassName)}>\n {label && (\n <label className={cn(\n 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n disabled && 'opacity-50',\n labelClassName\n )}>\n {label}\n </label>\n )}\n \n <div className=\"relative\">\n {leftIcon && (\n <div className={cn(\n 'absolute left-0 top-0 h-full flex items-center justify-center',\n size === 'sm' ? 'w-8 pl-2' : size === 'lg' ? 'w-12 pl-4' : 'w-10 pl-3',\n 'text-muted-foreground pointer-events-none',\n '[&>*]:h-4 [&>*]:w-4'\n )}>\n {leftIcon}\n </div>\n )}\n \n <input\n type={inputType}\n className={cn(\n inputVariants({ variant, size, state: currentState }),\n leftIcon && (size === 'sm' ? 'pl-8' : size === 'lg' ? 'pl-12' : 'pl-10'),\n (rightIcon || showClearButton || showPasswordToggleButton) && \n (size === 'sm' ? 'pr-8' : size === 'lg' ? 'pr-12' : 'pr-10'),\n className\n )}\n ref={ref}\n value={value !== undefined ? value : internalValue}\n onChange={handleChange}\n disabled={disabled}\n {...props}\n />\n \n {(rightIcon || showClearButton || showPasswordToggleButton) && (\n <div className={cn(\n 'absolute right-0 top-0 h-full flex items-center justify-center gap-1',\n size === 'sm' ? 'w-8 pr-2' : size === 'lg' ? 'w-12 pr-4' : 'w-10 pr-3'\n )}>\n {rightIcon && !showClearButton && !showPasswordToggleButton && (\n <div className=\"text-muted-foreground [&>*]:h-4 [&>*]:w-4\">\n {rightIcon}\n </div>\n )}\n \n {showClearButton && (\n <button\n type=\"button\"\n onClick={handleClear}\n className=\"text-muted-foreground hover:text-foreground transition-colors [&>*]:h-4 [&>*]:w-4\"\n tabIndex={-1}\n >\n <X />\n </button>\n )}\n \n {showPasswordToggleButton && (\n <button\n type=\"button\"\n onClick={() => setShowPassword(!showPassword)}\n className=\"text-muted-foreground hover:text-foreground transition-colors [&>*]:h-4 [&>*]:w-4\"\n tabIndex={-1}\n >\n {showPassword ? <EyeOff /> : <Eye />}\n </button>\n )}\n </div>\n )}\n </div>\n \n {messageText && (\n <p className={cn(\n 'text-xs',\n messageColor,\n helperClassName\n )}>\n {messageText}\n </p>\n )}\n </div>\n )\n }\n)\nAtomicInput.displayName = 'AtomicInput'\n\nexport { AtomicInput, inputVariants }","import React from 'react';\nimport { Check, Minus } from 'lucide-react';\nimport { cn } from '../../utils';\n\ntype CheckboxSize = 'sm' | 'md' | 'lg';\n\ntype Color = \n | 'slate' | 'gray' | 'zinc' | 'red' | 'orange' | 'yellow' \n | 'green' | 'blue' | 'indigo' | 'purple' | 'pink';\n\ntype Spacing = \n | '0' | 'px' | '0.5' | '1' | '1.5' | '2' | '2.5' | '3' | '3.5' | '4' | '5' | '6' | '7' | '8';\n\ntype SpacingObject = {\n x?: Spacing;\n y?: Spacing;\n t?: Spacing;\n r?: Spacing;\n b?: Spacing;\n l?: Spacing;\n};\n\nexport interface AtomicCheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'color' | 'onChange'> {\n checked?: boolean;\n indeterminate?: boolean;\n disabled?: boolean;\n size?: CheckboxSize;\n color?: Color;\n p?: Spacing | SpacingObject;\n m?: Spacing | SpacingObject;\n label?: string;\n description?: string;\n error?: boolean;\n errorMessage?: string;\n onChange?: (checked: boolean, event: React.ChangeEvent<HTMLInputElement>) => void;\n onInputChange?: React.ChangeEventHandler<HTMLInputElement>;\n}\n\nconst getSpacingClass = (spacing: Spacing | SpacingObject | undefined, prefix: string): string => {\n if (!spacing) return '';\n \n if (typeof spacing === 'string') {\n return `${prefix}-${spacing}`;\n }\n \n const classes: string[] = [];\n if (spacing.x !== undefined) classes.push(`${prefix}x-${spacing.x}`);\n if (spacing.y !== undefined) classes.push(`${prefix}y-${spacing.y}`);\n if (spacing.t !== undefined) classes.push(`${prefix}t-${spacing.t}`);\n if (spacing.r !== undefined) classes.push(`${prefix}r-${spacing.r}`);\n if (spacing.b !== undefined) classes.push(`${prefix}b-${spacing.b}`);\n if (spacing.l !== undefined) classes.push(`${prefix}l-${spacing.l}`);\n \n return classes.join(' ');\n};\n\nconst getSizeClasses = (size: CheckboxSize): { container: string; checkbox: string; icon: number } => {\n switch (size) {\n case 'sm':\n return {\n container: 'text-sm',\n checkbox: 'w-4 h-4',\n icon: 12\n };\n case 'md':\n return {\n container: 'text-base',\n checkbox: 'w-5 h-5',\n icon: 14\n };\n case 'lg':\n return {\n container: 'text-lg',\n checkbox: 'w-6 h-6',\n icon: 16\n };\n default:\n return {\n container: 'text-base',\n checkbox: 'w-5 h-5',\n icon: 14\n };\n }\n};\n\nconst getColorClasses = (color: Color, error: boolean): string => {\n if (error) {\n return 'border-red-300 text-red-600 focus:border-red-500 focus:ring-red-500';\n }\n \n const colorMap = {\n slate: 'border-slate-300 text-slate-600 focus:border-slate-500 focus:ring-slate-500',\n gray: 'border-gray-300 text-gray-600 focus:border-gray-500 focus:ring-gray-500',\n zinc: 'border-zinc-300 text-zinc-600 focus:border-zinc-500 focus:ring-zinc-500',\n red: 'border-red-300 text-red-600 focus:border-red-500 focus:ring-red-500',\n orange: 'border-orange-300 text-orange-600 focus:border-orange-500 focus:ring-orange-500',\n yellow: 'border-yellow-300 text-yellow-600 focus:border-yellow-500 focus:ring-yellow-500',\n green: 'border-green-300 text-green-600 focus:border-green-500 focus:ring-green-500',\n blue: 'border-blue-300 text-blue-600 focus:border-blue-500 focus:ring-blue-500',\n indigo: 'border-indigo-300 text-indigo-600 focus:border-indigo-500 focus:ring-indigo-500',\n purple: 'border-purple-300 text-purple-600 focus:border-purple-500 focus:ring-purple-500',\n pink: 'border-pink-300 text-pink-600 focus:border-pink-500 focus:ring-pink-500'\n };\n \n return colorMap[color] || colorMap.blue;\n};\n\nexport const AtomicCheckbox = React.forwardRef<HTMLInputElement, AtomicCheckboxProps>(\n ({\n checked = false,\n indeterminate = false,\n disabled = false,\n size = 'md',\n color = 'blue',\n p,\n m,\n label,\n description,\n error = false,\n errorMessage,\n className,\n onChange,\n id,\n ...rest\n }, ref) => {\n const checkboxId = id || `checkbox-${React.useId()}`;\n const sizeClasses = getSizeClasses(size);\n const colorClasses = getColorClasses(color, error);\n \n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (!disabled) {\n onChange?.(event.target.checked, event);\n }\n };\n\n const containerClasses = cn(\n 'relative flex items-start',\n sizeClasses.container,\n getSpacingClass(p, 'p'),\n getSpacingClass(m, 'm'),\n disabled && 'opacity-50 cursor-not-allowed',\n \n className\n );\n\n const checkboxClasses = cn(\n 'flex-shrink-0 rounded border-2 bg-white transition-colors duration-200',\n sizeClasses.checkbox,\n colorClasses,\n 'focus:outline-none focus:ring-2 focus:ring-offset-2',\n disabled ? 'cursor-not-allowed' : 'cursor-pointer',\n (checked || indeterminate) && !disabled && `bg-${color}-600 border-${color}-600`,\n );\n\n return (\n <div className={containerClasses}>\n <div className=\"flex items-center h-5\">\n <div className=\"relative\">\n <input\n ref={ref}\n type=\"checkbox\"\n id={checkboxId}\n checked={checked}\n disabled={disabled}\n onChange={handleChange}\n className=\"sr-only\"\n {...rest}\n />\n \n <div \n className={checkboxClasses}\n onClick={() => {\n if (!disabled && ref && 'current' in ref && ref.current) {\n ref.current.click();\n }\n }}\n >\n {checked && !indeterminate && (\n <Check \n size={sizeClasses.icon} \n className=\"text-white absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2\"\n />\n )}\n \n {indeterminate && (\n <Minus \n size={sizeClasses.icon} \n className=\"text-white absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2\"\n />\n )}\n </div>\n </div>\n </div>\n \n {(label || description) && (\n <div className=\"ml-3 flex-1\">\n {label && (\n <label \n htmlFor={checkboxId}\n className={cn(\n 'block font-medium leading-5',\n error ? 'text-red-700' : 'text-gray-700',\n disabled ? 'cursor-not-allowed' : 'cursor-pointer'\n )}\n >\n {label}\n </label>\n )}\n \n {description && (\n <p className={cn(\n 'text-sm leading-5',\n error ? 'text-red-600' : 'text-gray-500'\n )}>\n {description}\n </p>\n )}\n \n {error && errorMessage && (\n <p className=\"mt-1 text-sm text-red-600\">\n {errorMessage}\n </p>\n )}\n </div>\n )}\n </div>\n );\n }\n);\n\nAtomicCheckbox.displayName = 'AtomicCheckbox';","import React from 'react';\nimport { cn } from '../../utils';\n\ntype SwitchSize = 'sm' | 'md' | 'lg';\n\ntype Color = \n | 'slate' | 'gray' | 'zinc' | 'red' | 'orange' | 'yellow' \n | 'green' | 'blue' | 'indigo' | 'purple' | 'pink';\n\ntype Spacing = \n | '0' | 'px' | '0.5' | '1' | '1.5' | '2' | '2.5' | '3' | '3.5' | '4' | '5' | '6' | '7' | '8';\n\ntype SpacingObject = {\n x?: Spacing;\n y?: Spacing;\n t?: Spacing;\n r?: Spacing;\n b?: Spacing;\n l?: Spacing;\n};\n\nexport interface AtomicSwitchProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'color' | 'onChange'> {\n checked?: boolean;\n disabled?: boolean;\n size?: SwitchSize;\n color?: Color;\n p?: Spacing | SpacingObject;\n m?: Spacing | SpacingObject;\n label?: string;\n description?: string;\n labelPosition?: 'left' | 'right';\n loading?: boolean;\n onChange?: (checked: boolean, event: React.ChangeEvent<HTMLInputElement>) => void;\n onInputChange?: React.ChangeEventHandler<HTMLInputElement>;\n}\n\nconst getSpacingClass = (spacing: Spacing | SpacingObject | undefined, prefix: string): string => {\n if (!spacing) return '';\n \n if (typeof spacing === 'string') {\n return `${prefix}-${spacing}`;\n }\n \n const classes: string[] = [];\n if (spacing.x !== undefined) classes.push(`${prefix}x-${spacing.x}`);\n if (spacing.y !== undefined) classes.push(`${prefix}y-${spacing.y}`);\n if (spacing.t !== undefined) classes.push(`${prefix}t-${spacing.t}`);\n if (spacing.r !== undefined) classes.push(`${prefix}r-${spacing.r}`);\n if (spacing.b !== undefined) classes.push(`${prefix}b-${spacing.b}`);\n if (spacing.l !== undefined) classes.push(`${prefix}l-${spacing.l}`);\n \n return classes.join(' ');\n};\n\nconst getSizeClasses = (size: SwitchSize): { \n track: string; \n thumb: string; \n thumbTranslate: string;\n container: string;\n} => {\n switch (size) {\n case 'sm':\n return {\n track: 'w-9 h-5',\n thumb: 'w-4 h-4',\n thumbTranslate: 'translate-x-4',\n container: 'text-sm'\n };\n case 'md':\n return {\n track: 'w-11 h-6',\n thumb: 'w-5 h-5',\n thumbTranslate: 'translate-x-5',\n container: 'text-base'\n };\n case 'lg':\n return {\n track: 'w-14 h-7',\n thumb: 'w-6 h-6',\n thumbTranslate: 'translate-x-7',\n container: 'text-lg'\n };\n default:\n return {\n track: 'w-11 h-6',\n thumb: 'w-5 h-5',\n thumbTranslate: 'translate-x-5',\n container: 'text-base'\n };\n }\n};\n\nconst getColorClasses = (color: Color, checked: boolean): string => {\n if (!checked) {\n return 'bg-gray-200';\n }\n \n const colorMap = {\n slate: 'bg-slate-500',\n gray: 'bg-gray-500',\n zinc: 'bg-zinc-500',\n red: 'bg-red-500',\n orange: 'bg-orange-500',\n yellow: 'bg-yellow-500',\n green: 'bg-green-500',\n blue: 'bg-blue-500',\n indigo: 'bg-indigo-500',\n purple: 'bg-purple-500',\n pink: 'bg-pink-500'\n };\n \n return colorMap[color] || colorMap.blue;\n};\n\nexport const AtomicSwitch = React.forwardRef<HTMLInputElement, AtomicSwitchProps>(\n ({\n checked = false,\n disabled = false,\n size = 'md',\n color = 'blue',\n p,\n m,\n label,\n description,\n labelPosition = 'right',\n loading = false,\n className,\n onChange,\n id,\n ...rest\n }, ref) => {\n const switchId = id || `switch-${React.useId()}`;\n const sizeClasses = getSizeClasses(size);\n const colorClasses = getColorClasses(color, checked);\n \n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (!disabled && !loading) {\n onChange?.(event.target.checked, event);\n }\n };\n\n const containerClasses = cn(\n 'relative flex items-center',\n sizeClasses.container,\n getSpacingClass(p, 'p'),\n getSpacingClass(m, 'm'),\n disabled && 'opacity-50 cursor-not-allowed',\n \n className\n );\n\n const trackClasses = cn(\n 'relative inline-flex flex-shrink-0 rounded-full border-2 border-transparent transition-colors ease-in-out duration-200',\n sizeClasses.track,\n colorClasses,\n 'focus-within:outline-none focus-within:ring-2 focus-within:ring-offset-2',\n `focus-within:ring-${color}-500`,\n disabled || loading ? 'cursor-not-allowed' : 'cursor-pointer'\n );\n\n const thumbClasses = cn(\n 'pointer-events-none inline-block rounded-full bg-white shadow transform ring-0 transition ease-in-out duration-200',\n sizeClasses.thumb,\n checked ? sizeClasses.thumbTranslate : 'translate-x-0'\n );\n\n const switchElement = (\n <div className={trackClasses}>\n <input\n ref={ref}\n type=\"checkbox\"\n id={switchId}\n checked={checked}\n disabled={disabled || loading}\n onChange={handleChange}\n className=\"sr-only\"\n {...rest}\n />\n \n <span className={thumbClasses}>\n {loading && (\n <svg\n className=\"animate-spin -ml-1 -mt-1 h-3 w-3 text-gray-400\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n />\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n />\n </svg>\n )}\n </span>\n </div>\n );\n\n const labelElement = (label || description) && (\n <div className={cn(\n 'flex-1',\n labelPosition === 'left' ? 'mr-3' : 'ml-3'\n )}>\n {label && (\n <label \n htmlFor={switchId}\n className={cn(\n 'block font-medium leading-5 text-gray-700',\n disabled || loading ? 'cursor-not-allowed' : 'cursor-pointer'\n )}\n >\n {label}\n </label>\n )}\n \n {description && (\n <p className=\"text-sm leading-5 text-gray-500\">\n {description}\n </p>\n )}\n </div>\n );\n\n return (\n <div className={containerClasses}>\n {labelPosition === 'left' && labelElement}\n {switchElement}\n {labelPosition === 'right' && labelElement}\n </div>\n );\n }\n);\n\nAtomicSwitch.displayName = 'AtomicSwitch';","'use client'\n\n\nimport React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { Loader2 } from 'lucide-react'\nimport { cn } from '../../utils/cn'\n\nconst spinnerVariants = cva('animate-spin', {\n variants: {\n size: {\n xs: 'h-3 w-3',\n sm: 'h-4 w-4',\n default: 'h-5 w-5',\n lg: 'h-6 w-6',\n xl: 'h-8 w-8',\n xxl: 'h-12 w-12',\n },\n color: {\n default: 'text-foreground',\n primary: 'text-primary',\n secondary: 'text-secondary-foreground',\n muted: 'text-muted-foreground',\n white: 'text-white',\n success: 'text-green-600',\n warning: 'text-amber-600',\n error: 'text-red-600',\n },\n },\n defaultVariants: {\n size: 'default',\n color: 'default',\n },\n})\n\nexport interface AtomicSpinnerProps\n extends Omit<React.SVGProps<SVGSVGElement>, 'color'>,\n VariantProps<typeof spinnerVariants> {\n /** Loading text to display alongside spinner */\n label?: string\n /** Show spinner inline with text */\n inline?: boolean\n /** Custom spinner icon */\n icon?: React.ComponentType<any>\n}\n\nconst AtomicSpinner = React.forwardRef<SVGSVGElement, AtomicSpinnerProps>(\n (\n {\n className,\n size,\n color,\n label,\n inline = false,\n icon: Icon = Loader2,\n ...props\n },\n ref\n ) => {\n const spinner = (\n <Icon\n ref={ref}\n className={cn(spinnerVariants({ size, color }), className)}\n {...props}\n />\n )\n\n if (!label) {\n return spinner\n }\n\n return (\n <div className={cn(\n 'flex items-center gap-2',\n inline ? 'inline-flex' : 'flex'\n )}>\n {spinner}\n <span className={cn(\n 'text-sm',\n color === 'muted' ? 'text-muted-foreground' : \n color === 'white' ? 'text-white' :\n color === 'primary' ? 'text-primary' :\n 'text-foreground'\n )}>\n {label}\n </span>\n </div>\n )\n }\n)\nAtomicSpinner.displayName = 'AtomicSpinner'\n\nexport const AtomicButtonSpinner = React.forwardRef<\n SVGSVGElement,\n Omit<AtomicSpinnerProps, 'size' | 'color'>\n>(({ className, ...props }, ref) => (\n <AtomicSpinner\n ref={ref}\n size=\"sm\"\n color=\"white\"\n className={cn('mr-2', className)}\n {...props}\n />\n))\nAtomicButtonSpinner.displayName = 'AtomicButtonSpinner'\n\nexport const AtomicPageSpinner = React.forwardRef<\n SVGSVGElement,\n Omit<AtomicSpinnerProps, 'size'>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center justify-center p-8\">\n <AtomicSpinner\n ref={ref}\n size=\"lg\"\n className={className}\n {...props}\n />\n </div>\n))\nAtomicPageSpinner.displayName = 'AtomicPageSpinner'\n\nexport const AtomicInlineSpinner = React.forwardRef<\n SVGSVGElement,\n Omit<AtomicSpinnerProps, 'inline'>\n>(({ className, ...props }, ref) => (\n <AtomicSpinner\n ref={ref}\n inline\n size=\"sm\"\n color=\"muted\"\n className={className}\n {...props}\n />\n))\nAtomicInlineSpinner.displayName = 'AtomicInlineSpinner'\n\nexport { AtomicSpinner, spinnerVariants }","\nimport React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\nconst badgeVariants = cva(\n 'inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\n {\n variants: {\n variant: {\n default: 'border-transparent bg-primary text-primary-foreground hover:bg-primary/80',\n secondary: 'border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80',\n destructive: 'border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80',\n outline: 'text-foreground border-current',\n success: 'border-transparent bg-green-100 text-green-800 dark:bg-green-900/20 dark:text-green-400',\n warning: 'border-transparent bg-amber-100 text-amber-800 dark:bg-amber-900/20 dark:text-amber-400',\n info: 'border-transparent bg-blue-100 text-blue-800 dark:bg-blue-900/20 dark:text-blue-400',\n gray: 'border-transparent bg-gray-100 text-gray-800 dark:bg-gray-900/20 dark:text-gray-400',\n },\n size: {\n sm: 'px-2 py-0.5 text-xs',\n default: 'px-2.5 py-0.5 text-xs',\n lg: 'px-3 py-1 text-sm',\n },\n shape: {\n default: 'rounded-full',\n rounded: 'rounded-md',\n square: 'rounded-none',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n shape: 'default',\n },\n }\n)\n\nexport interface AtomicBadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {\n /** Icon to display on the left */\n leftIcon?: React.ReactNode\n /** Icon to display on the right */\n rightIcon?: React.ReactNode\n /** Show a dot indicator */\n dot?: boolean\n /** Dot color (overrides variant color) */\n dotColor?: string\n /** Make badge removable */\n removable?: boolean\n /** Callback when remove button is clicked */\n onRemove?: () => void\n /** Custom remove icon */\n removeIcon?: React.ReactNode\n}\n\nconst AtomicBadge = React.forwardRef<HTMLDivElement, AtomicBadgeProps>(\n (\n {\n className,\n variant,\n size,\n shape,\n leftIcon,\n rightIcon,\n dot = false,\n dotColor,\n removable = false,\n onRemove,\n removeIcon,\n children,\n ...props\n },\n ref\n ) => {\n const iconSize = size === 'sm' ? 'h-3 w-3' : size === 'lg' ? 'h-4 w-4' : 'h-3.5 w-3.5'\n const dotSize = size === 'sm' ? 'h-1.5 w-1.5' : size === 'lg' ? 'h-2.5 w-2.5' : 'h-2 w-2'\n\n return (\n <div\n ref={ref}\n className={cn(badgeVariants({ variant, size, shape }), className)}\n {...props}\n >\n {dot && (\n <span\n className={cn(\n 'mr-1.5 rounded-full',\n dotSize,\n !dotColor && (\n variant === 'success' ? 'bg-green-600' :\n variant === 'warning' ? 'bg-amber-600' :\n variant === 'info' ? 'bg-blue-600' :\n variant === 'destructive' ? 'bg-red-600' :\n variant === 'gray' ? 'bg-gray-600' :\n 'bg-current'\n )\n )}\n style={dotColor ? { backgroundColor: dotColor } : undefined}\n />\n )}\n \n {leftIcon && (\n <span className={cn('mr-1 flex items-center', `[&>*]:${iconSize}`)}>\n {leftIcon}\n </span>\n )}\n \n {children}\n \n {rightIcon && !removable && (\n <span className={cn('ml-1 flex items-center', `[&>*]:${iconSize}`)}>\n {rightIcon}\n </span>\n )}\n \n {removable && (\n <button\n type=\"button\"\n onClick={onRemove}\n className={cn(\n 'ml-1 flex items-center rounded-full hover:bg-black/10 dark:hover:bg-white/10',\n 'transition-colors focus:outline-none focus:ring-1 focus:ring-current',\n size === 'sm' ? 'p-0.5' : 'p-1'\n )}\n >\n {removeIcon ? (\n <span className={cn('flex items-center', `[&>*]:${iconSize}`)}>\n {removeIcon}\n </span>\n ) : (\n <svg\n className={iconSize}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n )}\n </button>\n )}\n </div>\n )\n }\n)\nAtomicBadge.displayName = 'AtomicBadge'\n\nexport const AtomicStatusBadge = React.forwardRef<\n HTMLDivElement,\n Omit<AtomicBadgeProps, 'dot'> & { status: 'online' | 'offline' | 'busy' | 'away' }\n>(({ status, variant, ...props }, ref) => {\n const statusConfig = {\n online: { variant: 'success' as const, dot: true, children: 'Online' },\n offline: { variant: 'gray' as const, dot: true, children: 'Offline' },\n busy: { variant: 'destructive' as const, dot: true, children: 'Busy' },\n away: { variant: 'warning' as const, dot: true, children: 'Away' },\n }\n\n const config = statusConfig[status]\n\n return (\n <AtomicBadge\n ref={ref}\n variant={variant || config.variant}\n dot={config.dot}\n {...props}\n >\n {props.children || config.children}\n </AtomicBadge>\n )\n})\nAtomicStatusBadge.displayName = 'AtomicStatusBadge'\n\nexport const AtomicCountBadge = React.forwardRef<\n HTMLDivElement,\n Omit<AtomicBadgeProps, 'children'> & { count: number; max?: number }\n>(({ count, max = 99, ...props }, ref) => {\n const displayCount = count > max ? `${max}+` : count.toString()\n \n if (count <= 0) return null\n\n return (\n <AtomicBadge\n ref={ref}\n variant=\"destructive\"\n size=\"sm\"\n {...props}\n >\n {displayCount}\n </AtomicBadge>\n )\n})\nAtomicCountBadge.displayName = 'AtomicCountBadge'\n\nexport { AtomicBadge, badgeVariants }","import React from 'react';\nimport { LucideIcon } from 'lucide-react';\nimport { cn } from '../../utils';\n\ntype TagVariant = \n | 'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info'\n | 'outline' | 'ghost' | 'solid';\n\ntype TagSize = 'xs' | 'sm' | 'md' | 'lg';\n\ntype Color = \n | 'slate' | 'gray' | 'zinc' | 'red' | 'orange' | 'yellow' \n | 'green' | 'blue' | 'indigo' | 'purple' | 'pink';\n\ntype Spacing = \n | '0' | 'px' | '0.5' | '1' | '1.5' | '2' | '2.5' | '3' | '3.5' | '4' | '5' | '6' | '7' | '8';\n\ntype SpacingObject = {\n x?: Spacing;\n y?: Spacing;\n t?: Spacing;\n r?: Spacing;\n b?: Spacing;\n l?: Spacing;\n};\n\nexport interface AtomicTagProps extends React.HTMLAttributes<HTMLSpanElement> {\n children: React.ReactNode;\n variant?: TagVariant;\n size?: TagSize;\n color?: Color;\n leftIcon?: LucideIcon;\n rightIcon?: LucideIcon;\n p?: Spacing | SpacingObject;\n m?: Spacing | SpacingObject;\n clickable?: boolean;\n removable?: boolean;\n onRemove?: () => void;\n disabled?: boolean;\n as?: 'span' | 'div' | 'button';\n}\n\nconst getSpacingClass = (spacing: Spacing | SpacingObject | undefined, prefix: string): string => {\n if (!spacing) return '';\n \n if (typeof spacing === 'string') {\n return `${prefix}-${spacing}`;\n }\n \n const classes: string[] = [];\n if (spacing.x !== undefined) classes.push(`${prefix}x-${spacing.x}`);\n if (spacing.y !== undefined) classes.push(`${prefix}y-${spacing.y}`);\n if (spacing.t !== undefined) classes.push(`${prefix}t-${spacing.t}`);\n if (spacing.r !== undefined) classes.push(`${prefix}r-${spacing.r}`);\n if (spacing.b !== undefined) classes.push(`${prefix}b-${spacing.b}`);\n if (spacing.l !== undefined) classes.push(`${prefix}l-${spacing.l}`);\n \n return classes.join(' ');\n};\n\nconst getVariantClasses = (variant: TagVariant, color?: Color): string => {\n const baseColor = color || 'gray';\n \n switch (variant) {\n case 'primary':\n return `bg-blue-500 text-white border-blue-500`;\n case 'secondary':\n return `bg-gray-500 text-white border-gray-500`;\n case 'success':\n return `bg-green-500 text-white border-green-500`;\n case 'warning':\n return `bg-yellow-500 text-white border-yellow-500`;\n case 'danger':\n return `bg-red-500 text-white border-red-500`;\n case 'info':\n return `bg-blue-500 text-white border-blue-500`;\n case 'outline':\n return `bg-transparent text-${baseColor}-700 border-${baseColor}-300 border`;\n case 'ghost':\n return `bg-${baseColor}-100 text-${baseColor}-700 border-transparent`;\n case 'solid':\n return `bg-${baseColor}-500 text-white border-${baseColor}-500`;\n default:\n return `bg-gray-100 text-gray-800 border-gray-200 border`;\n }\n};\n\nconst getSizeClasses = (size: TagSize): string => {\n switch (size) {\n case 'xs':\n return 'px-1.5 py-0.5 text-xs';\n case 'sm':\n return 'px-2 py-1 text-xs';\n case 'md':\n return 'px-2.5 py-1.5 text-sm';\n case 'lg':\n return 'px-3 py-2 text-base';\n default:\n return 'px-2.5 py-1.5 text-sm';\n }\n};\n\nconst getIconSize = (size: TagSize): number => {\n switch (size) {\n case 'xs': return 10;\n case 'sm': return 12;\n case 'md': return 14;\n case 'lg': return 16;\n default: return 14;\n }\n};\n\nexport const AtomicTag = React.forwardRef<HTMLElement, AtomicTagProps>(\n ({\n children,\n variant = 'default',\n size = 'md',\n color,\n leftIcon: LeftIcon,\n rightIcon: RightIcon,\n p,\n m,\n clickable = false,\n removable = false,\n onRemove,\n disabled = false,\n as: Component = 'span',\n className,\n onClick,\n ...rest\n }, ref) => {\n const iconSize = getIconSize(size);\n \n const classes = cn(\n 'inline-flex items-center justify-center font-medium rounded-md transition-colors duration-200',\n getVariantClasses(variant, color),\n getSizeClasses(size),\n getSpacingClass(p, 'p'),\n getSpacingClass(m, 'm'),\n clickable && !disabled && [\n 'cursor-pointer',\n 'hover:opacity-80',\n 'focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500'\n ],\n \n removable && !disabled && 'pr-1',\n \n disabled && 'opacity-50 cursor-not-allowed',\n \n className\n );\n\n const content = (\n <>\n {LeftIcon && (\n <LeftIcon \n size={iconSize} \n className={cn(\n 'flex-shrink-0',\n children ? 'mr-1.5' : ''\n )}\n />\n )}\n \n {children && <span className=\"truncate\">{children}</span>}\n \n {RightIcon && (\n <RightIcon \n size={iconSize} \n className={cn(\n 'flex-shrink-0',\n children ? 'ml-1.5' : ''\n )}\n />\n )}\n \n {removable && (\n <button\n type=\"button\"\n className={cn(\n 'flex-shrink-0 ml-1.5 rounded-full p-0.5',\n 'hover:bg-black hover:bg-opacity-20',\n 'focus:outline-none focus:bg-black focus:bg-opacity-20',\n disabled && 'cursor-not-allowed'\n )}\n onClick={(e) => {\n e.stopPropagation();\n if (!disabled) onRemove?.();\n }}\n disabled={disabled}\n aria-label=\"Remove\"\n >\n <svg\n className=\"w-3 h-3\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n )}\n </>\n );\n\n const handleClick = (e: React.MouseEvent<HTMLElement>) => {\n if (!disabled) {\n onClick?.(e as any);\n }\n };\n\n return (\n <Component\n ref={ref as any}\n className={classes}\n onClick={clickable ? handleClick : undefined}\n {...rest}\n >\n {content}\n </Component>\n );\n }\n);\n\nAtomicTag.displayName = 'AtomicTag';","\nimport Link from 'next/link'\nimport { cn } from '../../utils/cn'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport React from 'react'\n\nconst linkVariants = cva('transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2', {\n variants: {\n variant: {\n default: 'text-foreground hover:text-foreground/80',\n primary: 'text-primary hover:text-primary/80',\n secondary: 'text-secondary-foreground hover:text-secondary-foreground/80',\n muted: 'text-muted-foreground hover:text-foreground',\n destructive: 'text-destructive hover:text-destructive/80',\n ghost: 'text-foreground hover:bg-accent hover:text-accent-foreground',\n underline: 'text-primary underline underline-offset-4 hover:text-primary/80',\n button: 'inline-flex items-center justify-center rounded-md text-sm font-medium h-10 px-4 py-2 bg-primary text-primary-foreground hover:bg-primary/90',\n },\n size: {\n default: '',\n sm: 'text-sm',\n lg: 'text-lg',\n xl: 'text-xl',\n },\n weight: {\n normal: 'font-normal',\n medium: 'font-medium',\n semibold: 'font-semibold',\n bold: 'font-bold',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n weight: 'normal',\n },\n})\n\nexport interface AtomicLinkProps\n extends Omit<React.ComponentProps<typeof Link>, 'className'>,\n VariantProps<typeof linkVariants> {\n className?: string\n external?: boolean\n showExternalIcon?: boolean\n prefetch?: boolean\n externalIcon?: React.ReactNode\n}\n\nexport const AtomicLink = React.forwardRef<\n React.ElementRef<typeof Link>,\n AtomicLinkProps\n>(({\n className,\n variant,\n size,\n weight,\n external = false,\n showExternalIcon = false,\n prefetch = true,\n externalIcon,\n children,\n href,\n ...props\n}, ref) => {\n \n const isExternalUrl = typeof href === 'string' && (href.startsWith('http') || href.startsWith('//'))\n const shouldBeExternal = external || isExternalUrl\n \n const linkProps = {\n className: cn(linkVariants({ variant, size, weight }), className),\n ref,\n ...props,\n }\n\n const content = (\n <>\n {children}\n {shouldBeExternal && showExternalIcon && (\n <span className=\"ml-1 inline-block\">\n {externalIcon || (\n <svg\n className=\"h-3 w-3\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14\"\n />\n </svg>\n )}\n </span>\n )}\n </>\n )\n\n if (shouldBeExternal) {\n return (\n <a\n href={href as string}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n {...linkProps}\n >\n {content}\n </a>\n )\n }\n\n return (\n <Link\n href={href}\n prefetch={prefetch}\n {...linkProps}\n >\n {content}\n </Link>\n )\n})\n\nAtomicLink.displayName = 'AtomicLink'\n\nexport { linkVariants }","import React from 'react';\nimport { cn } from '../../utils';\n\ntype Display = 'block' | 'inline' | 'inline-block' | 'flex' | 'inline-flex' | 'grid' | 'hidden';\ntype AlignItems = 'stretch' | 'start' | 'center' | 'end' | 'baseline';\ntype JustifyContent = 'start' | 'end' | 'center' | 'between' | 'around' | 'evenly';\ntype FlexDirection = 'row' | 'row-reverse' | 'col' | 'col-reverse';\ntype FlexWrap = 'wrap' | 'wrap-reverse' | 'nowrap';\n\ntype Spacing = \n | '0' | 'px' | '0.5' | '1' | '1.5' | '2' | '2.5' | '3' | '3.5' | '4' | '5' | '6' | '7' | '8'\n | '9' | '10' | '11' | '12' | '14' | '16' | '20' | '24' | '28' | '32' | '36' | '40' | '44' | '48'\n | '52' | '56' | '60' | '64' | '72' | '80' | '96';\n\ntype SpacingObject = {\n x?: Spacing;\n y?: Spacing;\n t?: Spacing;\n r?: Spacing;\n b?: Spacing;\n l?: Spacing;\n};\n\ntype Size = Spacing | 'auto' | 'full' | 'screen' | 'min' | 'max' | 'fit';\n\ntype Color = \n | 'transparent' | 'current' | 'black' | 'white'\n | 'slate-50' | 'slate-100' | 'slate-200' | 'slate-300' | 'slate-400' | 'slate-500' | 'slate-600' | 'slate-700' | 'slate-800' | 'slate-900'\n | 'gray-50' | 'gray-100' | 'gray-200' | 'gray-300' | 'gray-400' | 'gray-500' | 'gray-600' | 'gray-700' | 'gray-800' | 'gray-900'\n | 'zinc-50' | 'zinc-100' | 'zinc-200' | 'zinc-300' | 'zinc-400' | 'zinc-500' | 'zinc-600' | 'zinc-700' | 'zinc-800' | 'zinc-900'\n | 'red-50' | 'red-100' | 'red-200' | 'red-300' | 'red-400' | 'red-500' | 'red-600' | 'red-700' | 'red-800' | 'red-900'\n | 'orange-50' | 'orange-100' | 'orange-200' | 'orange-300' | 'orange-400' | 'orange-500' | 'orange-600' | 'orange-700' | 'orange-800' | 'orange-900'\n | 'yellow-50' | 'yellow-100' | 'yellow-200' | 'yellow-300' | 'yellow-400' | 'yellow-500' | 'yellow-600' | 'yellow-700' | 'yellow-800' | 'yellow-900'\n | 'green-50' | 'green-100' | 'green-200' | 'green-300' | 'green-400' | 'green-500' | 'green-600' | 'green-700' | 'green-800' | 'green-900'\n | 'blue-50' | 'blue-100' | 'blue-200' | 'blue-300' | 'blue-400' | 'blue-500' | 'blue-600' | 'blue-700' | 'blue-800' | 'blue-900'\n | 'indigo-50' | 'indigo-100' | 'indigo-200' | 'indigo-300' | 'indigo-400' | 'indigo-500' | 'indigo-600' | 'indigo-700' | 'indigo-800' | 'indigo-900'\n | 'purple-50' | 'purple-100' | 'purple-200' | 'purple-300' | 'purple-400' | 'purple-500' | 'purple-600' | 'purple-700' | 'purple-800' | 'purple-900'\n | 'pink-50' | 'pink-100' | 'pink-200' | 'pink-300' | 'pink-400' | 'pink-500' | 'pink-600' | 'pink-700' | 'pink-800' | 'pink-900';\n\ntype BorderRadius = 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full';\ntype Shadow = 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'inner';\ntype Position = 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky';\n\nexport interface AtomicDivProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'color'> {\n d?: Display;\n align?: AlignItems;\n justify?: JustifyContent;\n flexDir?: FlexDirection;\n flexWrap?: FlexWrap;\n flexGrow?: number;\n flexShrink?: number;\n order?: number;\n p?: Spacing | SpacingObject;\n m?: Spacing | SpacingObject;\n w?: Size;\n h?: Size;\n minW?: Size;\n minH?: Size;\n maxW?: Size;\n maxH?: Size;\n bg?: Color;\n bgGradient?: string;\n border?: boolean | string;\n borderColor?: Color;\n rounded?: BorderRadius;\n shadow?: Shadow;\n position?: Position;\n top?: Spacing;\n right?: Spacing;\n bottom?: Spacing;\n left?: Spacing;\n cursor?: 'auto' | 'default' | 'pointer' | 'wait' | 'text' | 'move' | 'help' | 'not-allowed';\n as?: keyof JSX.IntrinsicElements;\n children?: React.ReactNode;\n}\n\nconst getSpacingClass = (spacing: Spacing | SpacingObject | undefined, prefix: string): string => {\n if (!spacing) return '';\n \n if (typeof spacing === 'string') {\n return `${prefix}-${spacing}`;\n }\n \n const classes: string[] = [];\n if (spacing.x !== undefined) classes.push(`${prefix}x-${spacing.x}`);\n if (spacing.y !== undefined) classes.push(`${prefix}y-${spacing.y}`);\n if (spacing.t !== undefined) classes.push(`${prefix}t-${spacing.t}`);\n if (spacing.r !== undefined) classes.push(`${prefix}r-${spacing.r}`);\n if (spacing.b !== undefined) classes.push(`${prefix}b-${spacing.b}`);\n if (spacing.l !== undefined) classes.push(`${prefix}l-${spacing.l}`);\n \n return classes.join(' ');\n};\n\nexport const AtomicDiv = React.forwardRef<HTMLDivElement, AtomicDivProps>(\n ({\n d,\n align,\n justify,\n flexDir,\n flexWrap,\n flexGrow,\n flexShrink,\n order,\n p,\n m,\n w,\n h,\n minW,\n minH,\n maxW,\n maxH,\n bg,\n bgGradient,\n border,\n borderColor,\n rounded,\n shadow,\n position,\n top,\n right,\n bottom,\n left,\n cursor,\n as: Component = 'div',\n className,\n children,\n ...rest\n }, ref) => {\n const classes = cn(\n d && `${d === 'flex' ? 'flex' : d === 'inline-flex' ? 'inline-flex' : d === 'grid' ? 'grid' : d === 'hidden' ? 'hidden' : d === 'inline' ? 'inline' : d === 'inline-block' ? 'inline-block' : 'block'}`,\n align && `items-${align === 'start' ? 'start' : align === 'end' ? 'end' : align === 'center' ? 'center' : align === 'baseline' ? 'baseline' : 'stretch'}`,\n justify && `justify-${justify === 'start' ? 'start' : justify === 'end' ? 'end' : justify === 'center' ? 'center' : justify === 'between' ? 'between' : justify === 'around' ? 'around' : 'evenly'}`,\n flexDir && `flex-${flexDir === 'col' ? 'col' : flexDir === 'col-reverse' ? 'col-reverse' : flexDir === 'row-reverse' ? 'row-reverse' : 'row'}`,\n flexWrap && `flex-${flexWrap}`,\n flexGrow !== undefined && `flex-grow-${flexGrow}`,\n flexShrink !== undefined && `flex-shrink-${flexShrink}`,\n order !== undefined && `order-${order}`,\n getSpacingClass(p, 'p'),\n getSpacingClass(m, 'm'),\n w && `w-${w}`,\n h && `h-${h}`,\n minW && `min-w-${minW}`,\n minH && `min-h-${minH}`,\n maxW && `max-w-${maxW}`,\n maxH && `max-h-${maxH}`,\n bg && `bg-${bg}`,\n bgGradient,\n border === true && 'border',\n typeof border === 'string' && border,\n borderColor && `border-${borderColor}`,\n rounded && `rounded${rounded === 'none' ? '-none' : rounded === 'full' ? '-full' : rounded === 'sm' ? '-sm' : rounded === 'md' ? '' : `-${rounded}`}`,\n shadow && `shadow${shadow === 'none' ? '-none' : shadow === 'sm' ? '-sm' : shadow === 'md' ? '' : shadow === 'inner' ? '-inner' : `-${shadow}`}`,\n position && `${position}`,\n top !== undefined && `top-${top}`,\n right !== undefined && `right-${right}`,\n bottom !== undefined && `bottom-${bottom}`,\n left !== undefined && `left-${left}`,\n cursor && `cursor-${cursor}`,\n \n className\n );\n\n return React.createElement(\n Component,\n {\n ref,\n className: classes,\n ...rest\n },\n children\n );\n }\n);\n\nAtomicDiv.displayName = 'AtomicDiv';","'use client'\n\nimport React, { createContext, useContext, useEffect, useState } from 'react'\nimport { AtomicThemeMode } from '../../tokens/enums/atomic-enums'\n\ntype Theme = 'light' | 'dark' | 'system'\n\ninterface AtomicThemeProviderContextProps {\n theme: Theme\n setTheme: (theme: Theme) => void\n actualTheme: 'light' | 'dark'\n}\n\nconst AtomicThemeProviderContext = createContext<AtomicThemeProviderContextProps | undefined>(undefined)\n\nexport interface AtomicThemeProviderProps {\n children: React.ReactNode\n /** Default theme to use */\n defaultTheme?: Theme\n /** Storage key for theme persistence */\n storageKey?: string\n /** Custom attribute name for theme */\n attribute?: string\n /** Enable system theme detection */\n enableSystem?: boolean\n /** Disable theme transitions */\n disableTransitionOnChange?: boolean\n}\n\nconst AtomicThemeProvider: React.FC<AtomicThemeProviderProps> = ({\n children,\n defaultTheme = 'system',\n storageKey = 'atomic-theme',\n attribute = 'data-theme',\n enableSystem = true,\n disableTransitionOnChange = false,\n}) => {\n const [theme, setThemeState] = useState<Theme>(() => {\n if (typeof window === 'undefined') return defaultTheme\n \n try {\n const stored = localStorage.getItem(storageKey)\n if (stored && ['light', 'dark', 'system'].includes(stored)) {\n return stored as Theme\n }\n } catch {}\n \n return defaultTheme\n })\n\n const [actualTheme, setActualTheme] = useState<'light' | 'dark'>('light')\n\n const getSystemTheme = (): 'light' | 'dark' => {\n if (typeof window === 'undefined') return 'light'\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'\n }\n\n const setTheme = (newTheme: Theme) => {\n try {\n localStorage.setItem(storageKey, newTheme)\n } catch {}\n \n setThemeState(newTheme)\n }\n\n useEffect(() => {\n const root = window.document.documentElement\n const resolvedTheme = theme === 'system' && enableSystem ? getSystemTheme() : theme as 'light' | 'dark'\n \n setActualTheme(resolvedTheme)\n\n if (disableTransitionOnChange) {\n const css = document.createElement('style')\n css.appendChild(\n document.createTextNode(\n '* { transition: none !important; transform: none !important; animation: none !important; }'\n )\n )\n document.head.appendChild(css)\n \n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n document.head.removeChild(css)\n })\n })\n }\n\n root.setAttribute(attribute, resolvedTheme)\n root.classList.remove('light', 'dark')\n root.classList.add(resolvedTheme)\n }, [theme, attribute, enableSystem, disableTransitionOnChange])\n\n useEffect(() => {\n if (!enableSystem || theme !== 'system') return\n\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)')\n \n const handleChange = () => {\n const systemTheme = getSystemTheme()\n setActualTheme(systemTheme)\n \n const root = window.document.documentElement\n root.setAttribute(attribute, systemTheme)\n root.classList.remove('light', 'dark')\n root.classList.add(systemTheme)\n }\n\n mediaQuery.addEventListener('change', handleChange)\n return () => mediaQuery.removeEventListener('change', handleChange)\n }, [theme, attribute, enableSystem])\n\n const value = {\n theme,\n setTheme,\n actualTheme,\n }\n\n return (\n <AtomicThemeProviderContext.Provider value={value}>\n {children}\n </AtomicThemeProviderContext.Provider>\n )\n}\n\nconst useAtomicTheme = () => {\n const context = useContext(AtomicThemeProviderContext)\n \n if (context === undefined) {\n throw new Error('useAtomicTheme must be used within an AtomicThemeProvider')\n }\n \n return context\n}\n\nexport { AtomicThemeProvider, useAtomicTheme, type AtomicThemeProviderContextProps }","export * from './tokens'\nexport * from './utils'\nexport * from './atoms'\n\nexport const VERSION = '2.0.0'\n"]}
1
+ {"version":3,"sources":["../src/tokens/colors/atomic-colors.ts","../src/tokens/spacing/atomic-spacing.ts","../src/tokens/typography/atomic-typography.ts","../src/tokens/shadows/atomic-shadows.ts","../src/tokens/borders/atomic-borders.ts","../src/tokens/animations/atomic-animations.ts","../src/tokens/enums/atomic-enums.ts","../src/tokens/index.ts","../src/utils/cn.ts","../src/atoms/buttons/atomic-button.tsx","../src/atoms/display/atomic-text.tsx","../src/atoms/display/atomic-avatar.tsx","../src/atoms/display/atomic-image.tsx","../src/atoms/display/atomic-card.tsx","../src/atoms/display/atomic-icon.tsx","../src/atoms/inputs/atomic-input.tsx","../src/atoms/inputs/atomic-checkbox.tsx","../src/atoms/inputs/atomic-switch.tsx","../src/atoms/feedback/atomic-spinner.tsx","../src/atoms/feedback/atomic-badge.tsx","../src/atoms/feedback/atomic-tag.tsx","../src/atoms/navigation/atomic-link.tsx","../src/atoms/layout/atomic-div.tsx","../src/atoms/providers/atomic-theme-provider.tsx","../src/index.ts"],"names":["AtomicSize","AtomicColorVariant","AtomicButtonVariant","AtomicInputVariant","AtomicCardVariant","AtomicLoadingState","AtomicStatus","AtomicAlertType","AtomicModalSize","AtomicTextVariant","AtomicPosition","AtomicAlignment","AtomicOrientation","AtomicDirection","AtomicAnimationState","AtomicFormFieldState","AtomicBreakpoint","AtomicThemeMode","twMerge","clsx","cva","React","Slot","jsxs","jsx","Loader2","AvatarPrimitive","Image","spacing","X","EyeOff","Eye","getSpacingClass","Check","Minus","getSizeClasses","getColorClasses","Fragment","Link","createContext","useState","useEffect","useContext"],"mappings":"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","file":"index.js","sourcesContent":["// Basic color definitions for CSS variable generation\nconst colors = {\n primary: '#2563eb',\n primaryLight: '#3b82f6',\n primaryDark: '#1d4ed8',\n secondary: '#0d9488',\n secondaryLight: '#14b8a6',\n secondaryDark: '#0f766e',\n accent: '#F59E0B',\n accentLight: '#FBBF24',\n accentDark: '#D97706',\n gray50: '#FAFAFA',\n gray100: '#F4F4F5',\n gray200: '#E4E4E7',\n gray300: '#D4D4D8',\n gray400: '#A1A1AA',\n gray500: '#71717A',\n gray600: '#52525B',\n gray700: '#3F3F46',\n gray800: '#27272A',\n gray900: '#18181B',\n success: '#10B981',\n successLight: '#34D399',\n successDark: '#059669',\n warning: '#F59E0B',\n warningLight: '#FBBF24',\n warningDark: '#D97706',\n error: '#EF4444',\n errorLight: '#F87171',\n errorDark: '#DC2626',\n info: '#3B82F6',\n infoLight: '#60A5FA',\n infoDark: '#2563EB',\n background: '#FFFFFF',\n backgroundSecondary: '#F9FAFB',\n surface: '#FFFFFF',\n surfaceSecondary: '#F3F4F6',\n textPrimary: '#18181B',\n textSecondary: '#52525B',\n textTertiary: '#A1A1AA',\n textDisabled: '#D4D4D8',\n textInverse: '#FFFFFF',\n}\n\n/**\n * CSS Variables for Web/Next.js usage\n */\nexport const AtomicColorsCss = {\n '--atomic-primary': colors.primary,\n '--atomic-primary-light': colors.primaryLight,\n '--atomic-primary-dark': colors.primaryDark,\n\n '--atomic-secondary': colors.secondary,\n '--atomic-secondary-light': colors.secondaryLight,\n '--atomic-secondary-dark': colors.secondaryDark,\n\n '--atomic-accent': colors.accent,\n '--atomic-accent-light': colors.accentLight,\n '--atomic-accent-dark': colors.accentDark,\n\n '--atomic-gray-50': colors.gray50,\n '--atomic-gray-100': colors.gray100,\n '--atomic-gray-200': colors.gray200,\n '--atomic-gray-300': colors.gray300,\n '--atomic-gray-400': colors.gray400,\n '--atomic-gray-500': colors.gray500,\n '--atomic-gray-600': colors.gray600,\n '--atomic-gray-700': colors.gray700,\n '--atomic-gray-800': colors.gray800,\n '--atomic-gray-900': colors.gray900,\n\n '--atomic-success': colors.success,\n '--atomic-success-light': colors.successLight,\n '--atomic-success-dark': colors.successDark,\n\n '--atomic-warning': colors.warning,\n '--atomic-warning-light': colors.warningLight,\n '--atomic-warning-dark': colors.warningDark,\n\n '--atomic-error': colors.error,\n '--atomic-error-light': colors.errorLight,\n '--atomic-error-dark': colors.errorDark,\n\n '--atomic-info': colors.info,\n '--atomic-info-light': colors.infoLight,\n '--atomic-info-dark': colors.infoDark,\n\n '--atomic-background': colors.background,\n '--atomic-background-secondary': colors.backgroundSecondary,\n '--atomic-surface': colors.surface,\n '--atomic-surface-secondary': colors.surfaceSecondary,\n\n '--atomic-text-primary': colors.textPrimary,\n '--atomic-text-secondary': colors.textSecondary,\n '--atomic-text-tertiary': colors.textTertiary,\n '--atomic-text-disabled': colors.textDisabled,\n '--atomic-text-inverse': colors.textInverse,\n} as const\n","// Basic spacing definitions for CSS variable generation\nconst spacing = {\n unit: 8,\n xxs: 4,\n xs: 8,\n sm: 12,\n md: 16,\n lg: 24,\n xl: 32,\n xxl: 40,\n xxxl: 48,\n huge: 64,\n buttonPaddingX: 16,\n buttonPaddingY: 12,\n cardPadding: 24,\n cardMargin: 16,\n listItemPadding: 16,\n listItemSpacing: 8,\n inputPaddingX: 16,\n inputPaddingY: 12,\n modalPadding: 24,\n sectionPadding: 32,\n}\n\n/**\n * CSS Variables for Web/Next.js usage\n * These are the only spacing exports needed for atomic-next package\n */\nexport const AtomicSpacingCss = {\n '--atomic-spacing-unit': `${spacing.unit}px`,\n '--atomic-spacing-xxs': `${spacing.xxs}px`,\n '--atomic-spacing-xs': `${spacing.xs}px`,\n '--atomic-spacing-sm': `${spacing.sm}px`,\n '--atomic-spacing-md': `${spacing.md}px`,\n '--atomic-spacing-lg': `${spacing.lg}px`,\n '--atomic-spacing-xl': `${spacing.xl}px`,\n '--atomic-spacing-xxl': `${spacing.xxl}px`,\n '--atomic-spacing-xxxl': `${spacing.xxxl}px`,\n '--atomic-spacing-huge': `${spacing.huge}px`,\n\n '--atomic-button-padding-x': `${spacing.buttonPaddingX}px`,\n '--atomic-button-padding-y': `${spacing.buttonPaddingY}px`,\n '--atomic-card-padding': `${spacing.cardPadding}px`,\n '--atomic-card-margin': `${spacing.cardMargin}px`,\n '--atomic-list-item-padding': `${spacing.listItemPadding}px`,\n '--atomic-list-item-spacing': `${spacing.listItemSpacing}px`,\n '--atomic-input-padding-x': `${spacing.inputPaddingX}px`,\n '--atomic-input-padding-y': `${spacing.inputPaddingY}px`,\n '--atomic-modal-padding': `${spacing.modalPadding}px`,\n '--atomic-section-padding': `${spacing.sectionPadding}px`,\n} as const\n","// Basic typography definitions for CSS variable generation\nconst typography = {\n fontFamily: {\n sans: [\n 'Inter',\n 'system-ui',\n '-apple-system',\n 'BlinkMacSystemFont',\n 'Segoe UI',\n 'Roboto',\n 'sans-serif',\n ],\n serif: ['Charter', 'Georgia', 'Cambria', 'Times New Roman', 'Times', 'serif'],\n mono: ['JetBrains Mono', 'Fira Code', 'Consolas', 'Monaco', 'Courier New', 'monospace'],\n },\n fontWeight: {\n thin: 100,\n light: 300,\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n extrabold: 800,\n black: 900,\n },\n fontSize: {\n displayLarge: 57,\n displayMedium: 45,\n displaySmall: 36,\n headlineLarge: 32,\n headlineMedium: 28,\n headlineSmall: 24,\n titleLarge: 22,\n titleMedium: 16,\n titleSmall: 14,\n bodyLarge: 16,\n bodyMedium: 14,\n bodySmall: 12,\n labelLarge: 14,\n labelMedium: 12,\n labelSmall: 11,\n },\n lineHeight: {\n none: 1,\n tight: 1.25,\n snug: 1.375,\n normal: 1.5,\n relaxed: 1.625,\n loose: 2,\n },\n letterSpacing: {\n tighter: '-0.05em',\n tight: '-0.025em',\n normal: '0em',\n wide: '0.025em',\n wider: '0.05em',\n widest: '0.1em',\n },\n}\n\n/**\n * CSS Variables for Web/Next.js usage\n */\nexport const AtomicTypographyCss = {\n '--atomic-font-sans': typography.fontFamily.sans.join(', '),\n '--atomic-font-serif': typography.fontFamily.serif.join(', '),\n '--atomic-font-mono': typography.fontFamily.mono.join(', '),\n\n '--atomic-font-thin': typography.fontWeight.thin.toString(),\n '--atomic-font-light': typography.fontWeight.light.toString(),\n '--atomic-font-regular': typography.fontWeight.regular.toString(),\n '--atomic-font-medium': typography.fontWeight.medium.toString(),\n '--atomic-font-semibold': typography.fontWeight.semibold.toString(),\n '--atomic-font-bold': typography.fontWeight.bold.toString(),\n '--atomic-font-extrabold': typography.fontWeight.extrabold.toString(),\n '--atomic-font-black': typography.fontWeight.black.toString(),\n\n '--atomic-text-display-large': `${typography.fontSize.displayLarge}px`,\n '--atomic-text-display-medium': `${typography.fontSize.displayMedium}px`,\n '--atomic-text-display-small': `${typography.fontSize.displaySmall}px`,\n '--atomic-text-headline-large': `${typography.fontSize.headlineLarge}px`,\n '--atomic-text-headline-medium': `${typography.fontSize.headlineMedium}px`,\n '--atomic-text-headline-small': `${typography.fontSize.headlineSmall}px`,\n '--atomic-text-title-large': `${typography.fontSize.titleLarge}px`,\n '--atomic-text-title-medium': `${typography.fontSize.titleMedium}px`,\n '--atomic-text-title-small': `${typography.fontSize.titleSmall}px`,\n '--atomic-text-body-large': `${typography.fontSize.bodyLarge}px`,\n '--atomic-text-body-medium': `${typography.fontSize.bodyMedium}px`,\n '--atomic-text-body-small': `${typography.fontSize.bodySmall}px`,\n '--atomic-text-label-large': `${typography.fontSize.labelLarge}px`,\n '--atomic-text-label-medium': `${typography.fontSize.labelMedium}px`,\n '--atomic-text-label-small': `${typography.fontSize.labelSmall}px`,\n\n '--atomic-leading-none': typography.lineHeight.none.toString(),\n '--atomic-leading-tight': typography.lineHeight.tight.toString(),\n '--atomic-leading-snug': typography.lineHeight.snug.toString(),\n '--atomic-leading-normal': typography.lineHeight.normal.toString(),\n '--atomic-leading-relaxed': typography.lineHeight.relaxed.toString(),\n '--atomic-leading-loose': typography.lineHeight.loose.toString(),\n\n '--atomic-tracking-tighter': typography.letterSpacing.tighter,\n '--atomic-tracking-tight': typography.letterSpacing.tight,\n '--atomic-tracking-normal': typography.letterSpacing.normal,\n '--atomic-tracking-wide': typography.letterSpacing.wide,\n '--atomic-tracking-wider': typography.letterSpacing.wider,\n '--atomic-tracking-widest': typography.letterSpacing.widest,\n} as const\n","export const AtomicShadows = {\n none: 'none',\n\n xs: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\n sm: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\n md: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\n lg: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\n xl: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n xxl: '0 25px 50px -12px rgb(0 0 0 / 0.25)',\n\n inner: 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)',\n\n focusPrimary: '0 0 0 3px rgb(37 99 235 / 0.2)',\n focusSecondary: '0 0 0 3px rgb(13 148 136 / 0.2)',\n focusSuccess: '0 0 0 3px rgb(16 185 129 / 0.2)',\n focusWarning: '0 0 0 3px rgb(245 158 11 / 0.2)',\n focusError: '0 0 0 3px rgb(239 68 68 / 0.2)',\n focusInfo: '0 0 0 3px rgb(59 130 246 / 0.2)',\n\n glowPrimary: '0 0 20px rgb(37 99 235 / 0.3)',\n glowSecondary: '0 0 20px rgb(13 148 136 / 0.3)',\n glowSuccess: '0 0 20px rgb(16 185 129 / 0.3)',\n glowWarning: '0 0 20px rgb(245 158 11 / 0.3)',\n glowError: '0 0 20px rgb(239 68 68 / 0.3)',\n\n card: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\n cardHover: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\n button: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\n buttonHover: '0 2px 4px 0 rgb(0 0 0 / 0.1)',\n modal: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n dropdown: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\n tooltip: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\n} as const\n\nexport const ShadowUtils = {\n get: (name: keyof typeof AtomicShadows): string => {\n return AtomicShadows[name]\n },\n\n custom: (\n x: number,\n y: number,\n blur: number,\n spread: number = 0,\n color: string = '0 0 0',\n opacity: number = 0.1\n ): string => {\n return `${x}px ${y}px ${blur}px ${spread}px rgb(${color} / ${opacity})`\n },\n\n combine: (...shadows: (keyof typeof AtomicShadows)[]): string => {\n return shadows.map(shadow => AtomicShadows[shadow]).join(', ')\n },\n\n focus: (color: string = '37 99 235', opacity: number = 0.2): string => {\n return `0 0 0 3px rgb(${color} / ${opacity})`\n },\n\n glow: (size: number = 20, color: string = '37 99 235', opacity: number = 0.3): string => {\n return `0 0 ${size}px rgb(${color} / ${opacity})`\n },\n}\n\nexport const AtomicShadowsCss = {\n '--atomic-shadow-none': AtomicShadows.none,\n '--atomic-shadow-xs': AtomicShadows.xs,\n '--atomic-shadow-sm': AtomicShadows.sm,\n '--atomic-shadow-md': AtomicShadows.md,\n '--atomic-shadow-lg': AtomicShadows.lg,\n '--atomic-shadow-xl': AtomicShadows.xl,\n '--atomic-shadow-xxl': AtomicShadows.xxl,\n '--atomic-shadow-inner': AtomicShadows.inner,\n\n '--atomic-shadow-focus-primary': AtomicShadows.focusPrimary,\n '--atomic-shadow-focus-secondary': AtomicShadows.focusSecondary,\n '--atomic-shadow-focus-success': AtomicShadows.focusSuccess,\n '--atomic-shadow-focus-warning': AtomicShadows.focusWarning,\n '--atomic-shadow-focus-error': AtomicShadows.focusError,\n '--atomic-shadow-focus-info': AtomicShadows.focusInfo,\n\n '--atomic-shadow-glow-primary': AtomicShadows.glowPrimary,\n '--atomic-shadow-glow-secondary': AtomicShadows.glowSecondary,\n '--atomic-shadow-glow-success': AtomicShadows.glowSuccess,\n '--atomic-shadow-glow-warning': AtomicShadows.glowWarning,\n '--atomic-shadow-glow-error': AtomicShadows.glowError,\n\n '--atomic-shadow-card': AtomicShadows.card,\n '--atomic-shadow-card-hover': AtomicShadows.cardHover,\n '--atomic-shadow-button': AtomicShadows.button,\n '--atomic-shadow-button-hover': AtomicShadows.buttonHover,\n '--atomic-shadow-modal': AtomicShadows.modal,\n '--atomic-shadow-dropdown': AtomicShadows.dropdown,\n '--atomic-shadow-tooltip': AtomicShadows.tooltip,\n} as const\n\nexport type AtomicShadowKey = keyof typeof AtomicShadows\nexport type AtomicShadowValue = (typeof AtomicShadows)[AtomicShadowKey]\n","export const AtomicBorders = {\n radius: {\n none: '0px',\n xs: '2px',\n sm: '4px',\n md: '6px',\n lg: '8px',\n xl: '12px',\n xxl: '16px',\n xxxl: '24px',\n full: '9999px',\n },\n\n width: {\n none: '0px',\n thin: '1px',\n medium: '2px',\n thick: '4px',\n thicker: '8px',\n },\n\n style: {\n solid: 'solid',\n dashed: 'dashed',\n dotted: 'dotted',\n double: 'double',\n none: 'none',\n },\n} as const\n\nexport const BorderUtils = {\n radius: (name: keyof typeof AtomicBorders.radius): string => {\n return AtomicBorders.radius[name]\n },\n\n width: (name: keyof typeof AtomicBorders.width): string => {\n return AtomicBorders.width[name]\n },\n\n style: (name: keyof typeof AtomicBorders.style): string => {\n return AtomicBorders.style[name]\n },\n\n border: (config: {\n width?: keyof typeof AtomicBorders.width\n style?: keyof typeof AtomicBorders.style\n color?: string\n }) => {\n const width = config.width ? AtomicBorders.width[config.width] : AtomicBorders.width.thin\n const style = config.style ? AtomicBorders.style[config.style] : AtomicBorders.style.solid\n const color = config.color || 'currentColor'\n\n return `${width} ${style} ${color}`\n },\n\n radiusCorners: {\n all: (radius: keyof typeof AtomicBorders.radius) => ({\n borderRadius: AtomicBorders.radius[radius],\n }),\n top: (radius: keyof typeof AtomicBorders.radius) => ({\n borderTopLeftRadius: AtomicBorders.radius[radius],\n borderTopRightRadius: AtomicBorders.radius[radius],\n }),\n right: (radius: keyof typeof AtomicBorders.radius) => ({\n borderTopRightRadius: AtomicBorders.radius[radius],\n borderBottomRightRadius: AtomicBorders.radius[radius],\n }),\n bottom: (radius: keyof typeof AtomicBorders.radius) => ({\n borderBottomLeftRadius: AtomicBorders.radius[radius],\n borderBottomRightRadius: AtomicBorders.radius[radius],\n }),\n left: (radius: keyof typeof AtomicBorders.radius) => ({\n borderTopLeftRadius: AtomicBorders.radius[radius],\n borderBottomLeftRadius: AtomicBorders.radius[radius],\n }),\n topLeft: (radius: keyof typeof AtomicBorders.radius) => ({\n borderTopLeftRadius: AtomicBorders.radius[radius],\n }),\n topRight: (radius: keyof typeof AtomicBorders.radius) => ({\n borderTopRightRadius: AtomicBorders.radius[radius],\n }),\n bottomRight: (radius: keyof typeof AtomicBorders.radius) => ({\n borderBottomRightRadius: AtomicBorders.radius[radius],\n }),\n bottomLeft: (radius: keyof typeof AtomicBorders.radius) => ({\n borderBottomLeftRadius: AtomicBorders.radius[radius],\n }),\n },\n\n borderSides: {\n all: (config: {\n width?: keyof typeof AtomicBorders.width\n style?: keyof typeof AtomicBorders.style\n color?: string\n }) => ({\n border: BorderUtils.border(config),\n }),\n top: (config: {\n width?: keyof typeof AtomicBorders.width\n style?: keyof typeof AtomicBorders.style\n color?: string\n }) => ({\n borderTop: BorderUtils.border(config),\n }),\n right: (config: {\n width?: keyof typeof AtomicBorders.width\n style?: keyof typeof AtomicBorders.style\n color?: string\n }) => ({\n borderRight: BorderUtils.border(config),\n }),\n bottom: (config: {\n width?: keyof typeof AtomicBorders.width\n style?: keyof typeof AtomicBorders.style\n color?: string\n }) => ({\n borderBottom: BorderUtils.border(config),\n }),\n left: (config: {\n width?: keyof typeof AtomicBorders.width\n style?: keyof typeof AtomicBorders.style\n color?: string\n }) => ({\n borderLeft: BorderUtils.border(config),\n }),\n },\n}\n\nexport const AtomicBordersCss = {\n '--atomic-radius-none': AtomicBorders.radius.none,\n '--atomic-radius-xs': AtomicBorders.radius.xs,\n '--atomic-radius-sm': AtomicBorders.radius.sm,\n '--atomic-radius-md': AtomicBorders.radius.md,\n '--atomic-radius-lg': AtomicBorders.radius.lg,\n '--atomic-radius-xl': AtomicBorders.radius.xl,\n '--atomic-radius-xxl': AtomicBorders.radius.xxl,\n '--atomic-radius-xxxl': AtomicBorders.radius.xxxl,\n '--atomic-radius-full': AtomicBorders.radius.full,\n\n '--atomic-border-none': AtomicBorders.width.none,\n '--atomic-border-thin': AtomicBorders.width.thin,\n '--atomic-border-medium': AtomicBorders.width.medium,\n '--atomic-border-thick': AtomicBorders.width.thick,\n '--atomic-border-thicker': AtomicBorders.width.thicker,\n} as const\n\nexport type AtomicBorderRadius = keyof typeof AtomicBorders.radius\nexport type AtomicBorderWidth = keyof typeof AtomicBorders.width\nexport type AtomicBorderStyle = keyof typeof AtomicBorders.style\n","import type { CSSProperties } from 'react'\n\nexport const AtomicAnimations = {\n duration: {\n instant: '0ms',\n fast: '150ms',\n normal: '200ms',\n slow: '300ms',\n slower: '500ms',\n slowest: '700ms',\n },\n\n easing: {\n linear: 'linear',\n ease: 'ease',\n easeIn: 'ease-in',\n easeOut: 'ease-out',\n easeInOut: 'ease-in-out',\n\n smooth: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)',\n snappy: 'cubic-bezier(0.68, -0.55, 0.265, 1.55)',\n bounce: 'cubic-bezier(0.68, -0.6, 0.32, 1.6)',\n elastic: 'cubic-bezier(0.175, 0.885, 0.32, 1.275)',\n\n standard: 'cubic-bezier(0.4, 0, 0.2, 1)',\n decelerate: 'cubic-bezier(0, 0, 0.2, 1)',\n accelerate: 'cubic-bezier(0.4, 0, 1, 1)',\n },\n\n scale: {\n none: '1',\n xs: '1.025',\n sm: '1.05',\n md: '1.1',\n lg: '1.15',\n xl: '1.25',\n },\n\n rotate: {\n none: '0deg',\n quarter: '90deg',\n half: '180deg',\n threeQuarter: '270deg',\n full: '360deg',\n },\n} as const\n\nexport const AnimationUtils = {\n transition: (config: {\n property?: string | string[]\n duration?: keyof typeof AtomicAnimations.duration\n easing?: keyof typeof AtomicAnimations.easing\n delay?: keyof typeof AtomicAnimations.duration\n }) => {\n const property = Array.isArray(config.property)\n ? config.property.join(', ')\n : config.property || 'all'\n const duration = config.duration\n ? AtomicAnimations.duration[config.duration]\n : AtomicAnimations.duration.normal\n const easing = config.easing\n ? AtomicAnimations.easing[config.easing]\n : AtomicAnimations.easing.easeInOut\n const delay = config.delay ? AtomicAnimations.duration[config.delay] : '0ms'\n\n return {\n transition: `${property} ${duration} ${easing} ${delay}`,\n }\n },\n\n transform: (config: {\n scale?: keyof typeof AtomicAnimations.scale\n rotate?: keyof typeof AtomicAnimations.rotate\n translateX?: string\n translateY?: string\n translateZ?: string\n }) => {\n const transforms: string[] = []\n\n if (config.scale) {\n transforms.push(`scale(${AtomicAnimations.scale[config.scale]})`)\n }\n\n if (config.rotate) {\n transforms.push(`rotate(${AtomicAnimations.rotate[config.rotate]})`)\n }\n\n if (config.translateX) {\n transforms.push(`translateX(${config.translateX})`)\n }\n\n if (config.translateY) {\n transforms.push(`translateY(${config.translateY})`)\n }\n\n if (config.translateZ) {\n transforms.push(`translateZ(${config.translateZ})`)\n }\n\n return {\n transform: transforms.join(' ') || 'none',\n }\n },\n\n duration: (name: keyof typeof AtomicAnimations.duration): string => {\n return AtomicAnimations.duration[name]\n },\n\n easing: (name: keyof typeof AtomicAnimations.easing): string => {\n return AtomicAnimations.easing[name]\n },\n\n keyframes: (name: string, frames: Record<string, CSSProperties>): string => {\n const keyframeString = Object.entries(frames)\n .map(([key, styles]) => {\n const styleString = Object.entries(styles)\n .map(([prop, value]) => `${prop}: ${value};`)\n .join(' ')\n return `${key} { ${styleString} }`\n })\n .join(' ')\n\n return `@keyframes ${name} { ${keyframeString} }`\n },\n}\n\nexport const AtomicAnimationPresets = {\n fadeIn: AnimationUtils.transition({\n property: 'opacity',\n duration: 'normal',\n easing: 'easeOut',\n }),\n\n fadeOut: AnimationUtils.transition({\n property: 'opacity',\n duration: 'fast',\n easing: 'easeIn',\n }),\n\n scaleIn: {\n ...AnimationUtils.transition({\n property: 'transform',\n duration: 'normal',\n easing: 'smooth',\n }),\n transform: 'scale(1)',\n },\n\n scaleOut: {\n ...AnimationUtils.transition({\n property: 'transform',\n duration: 'fast',\n easing: 'easeIn',\n }),\n transform: 'scale(0.95)',\n },\n\n slideInUp: {\n ...AnimationUtils.transition({\n property: 'transform',\n duration: 'normal',\n easing: 'smooth',\n }),\n transform: 'translateY(0)',\n },\n\n slideInDown: {\n ...AnimationUtils.transition({\n property: 'transform',\n duration: 'normal',\n easing: 'smooth',\n }),\n transform: 'translateY(-100%)',\n },\n\n buttonHover: {\n ...AnimationUtils.transition({\n property: ['background-color', 'border-color', 'color', 'box-shadow', 'transform'],\n duration: 'fast',\n easing: 'easeOut',\n }),\n transform: 'translateY(-1px)',\n },\n\n buttonPress: {\n ...AnimationUtils.transition({\n property: 'transform',\n duration: 'fast',\n easing: 'easeIn',\n }),\n transform: 'translateY(0)',\n },\n\n spin: {\n animation: 'spin 1s linear infinite',\n },\n\n pulse: {\n animation: 'pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite',\n },\n\n bounce: {\n animation: 'bounce 1s infinite',\n },\n}\n\nexport const AtomicAnimationsCss = {\n '--atomic-duration-instant': AtomicAnimations.duration.instant,\n '--atomic-duration-fast': AtomicAnimations.duration.fast,\n '--atomic-duration-normal': AtomicAnimations.duration.normal,\n '--atomic-duration-slow': AtomicAnimations.duration.slow,\n '--atomic-duration-slower': AtomicAnimations.duration.slower,\n '--atomic-duration-slowest': AtomicAnimations.duration.slowest,\n\n '--atomic-ease-linear': AtomicAnimations.easing.linear,\n '--atomic-ease': AtomicAnimations.easing.ease,\n '--atomic-ease-in': AtomicAnimations.easing.easeIn,\n '--atomic-ease-out': AtomicAnimations.easing.easeOut,\n '--atomic-ease-in-out': AtomicAnimations.easing.easeInOut,\n '--atomic-ease-smooth': AtomicAnimations.easing.smooth,\n '--atomic-ease-snappy': AtomicAnimations.easing.snappy,\n '--atomic-ease-bounce': AtomicAnimations.easing.bounce,\n '--atomic-ease-elastic': AtomicAnimations.easing.elastic,\n '--atomic-ease-standard': AtomicAnimations.easing.standard,\n '--atomic-ease-decelerate': AtomicAnimations.easing.decelerate,\n '--atomic-ease-accelerate': AtomicAnimations.easing.accelerate,\n\n '--atomic-scale-none': AtomicAnimations.scale.none,\n '--atomic-scale-xs': AtomicAnimations.scale.xs,\n '--atomic-scale-sm': AtomicAnimations.scale.sm,\n '--atomic-scale-md': AtomicAnimations.scale.md,\n '--atomic-scale-lg': AtomicAnimations.scale.lg,\n '--atomic-scale-xl': AtomicAnimations.scale.xl,\n} as const\n\nexport type AtomicAnimationDuration = keyof typeof AtomicAnimations.duration\nexport type AtomicAnimationEasing = keyof typeof AtomicAnimations.easing\nexport type AtomicAnimationScale = keyof typeof AtomicAnimations.scale\nexport type AtomicAnimationRotate = keyof typeof AtomicAnimations.rotate\n","export enum AtomicSize {\n XS = 'xs',\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n}\n\nexport enum AtomicColorVariant {\n PRIMARY = 'primary',\n SECONDARY = 'secondary',\n SUCCESS = 'success',\n WARNING = 'warning',\n ERROR = 'error',\n INFO = 'info',\n GRAY = 'gray',\n}\n\nexport enum AtomicButtonVariant {\n PRIMARY = 'primary',\n SECONDARY = 'secondary',\n OUTLINE = 'outline',\n GHOST = 'ghost',\n LINK = 'link',\n DESTRUCTIVE = 'destructive',\n}\n\nexport enum AtomicInputVariant {\n DEFAULT = 'default',\n FILLED = 'filled',\n OUTLINE = 'outline',\n UNDERLINED = 'underlined',\n}\n\nexport enum AtomicCardVariant {\n DEFAULT = 'default',\n ELEVATED = 'elevated',\n OUTLINED = 'outlined',\n FILLED = 'filled',\n}\n\nexport enum AtomicLoadingState {\n IDLE = 'idle',\n LOADING = 'loading',\n SUCCESS = 'success',\n ERROR = 'error',\n}\n\nexport enum AtomicStatus {\n ACTIVE = 'active',\n INACTIVE = 'inactive',\n PENDING = 'pending',\n DISABLED = 'disabled',\n ARCHIVED = 'archived',\n}\n\nexport enum AtomicAlertType {\n INFO = 'info',\n SUCCESS = 'success',\n WARNING = 'warning',\n ERROR = 'error',\n}\n\nexport enum AtomicModalSize {\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n FULL = 'full',\n}\n\nexport enum AtomicTextVariant {\n DISPLAY_LARGE = 'displayLarge',\n DISPLAY_MEDIUM = 'displayMedium',\n DISPLAY_SMALL = 'displaySmall',\n HEADLINE_LARGE = 'headlineLarge',\n HEADLINE_MEDIUM = 'headlineMedium',\n HEADLINE_SMALL = 'headlineSmall',\n TITLE_LARGE = 'titleLarge',\n TITLE_MEDIUM = 'titleMedium',\n TITLE_SMALL = 'titleSmall',\n BODY_LARGE = 'bodyLarge',\n BODY_MEDIUM = 'bodyMedium',\n BODY_SMALL = 'bodySmall',\n LABEL_LARGE = 'labelLarge',\n LABEL_MEDIUM = 'labelMedium',\n LABEL_SMALL = 'labelSmall',\n}\n\nexport enum AtomicPosition {\n TOP = 'top',\n TOP_LEFT = 'top-left',\n TOP_RIGHT = 'top-right',\n BOTTOM = 'bottom',\n BOTTOM_LEFT = 'bottom-left',\n BOTTOM_RIGHT = 'bottom-right',\n LEFT = 'left',\n RIGHT = 'right',\n CENTER = 'center',\n}\n\nexport enum AtomicAlignment {\n LEFT = 'left',\n CENTER = 'center',\n RIGHT = 'right',\n JUSTIFY = 'justify',\n}\n\nexport enum AtomicOrientation {\n HORIZONTAL = 'horizontal',\n VERTICAL = 'vertical',\n}\n\nexport enum AtomicDirection {\n UP = 'up',\n DOWN = 'down',\n LEFT = 'left',\n RIGHT = 'right',\n}\n\nexport enum AtomicAnimationState {\n ENTER = 'enter',\n EXIT = 'exit',\n IDLE = 'idle',\n}\n\nexport enum AtomicFormFieldState {\n DEFAULT = 'default',\n FOCUS = 'focus',\n ERROR = 'error',\n SUCCESS = 'success',\n DISABLED = 'disabled',\n}\n\nexport enum AtomicBreakpoint {\n XS = 'xs',\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n XXL = 'xxl',\n}\n\nexport enum AtomicThemeMode {\n LIGHT = 'light',\n DARK = 'dark',\n SYSTEM = 'system',\n}\n\nexport type AtomicSizeType = keyof typeof AtomicSize\nexport type AtomicColorVariantType = keyof typeof AtomicColorVariant\nexport type AtomicButtonVariantType = keyof typeof AtomicButtonVariant\nexport type AtomicInputVariantType = keyof typeof AtomicInputVariant\nexport type AtomicCardVariantType = keyof typeof AtomicCardVariant\nexport type AtomicLoadingStateType = keyof typeof AtomicLoadingState\nexport type AtomicStatusType = keyof typeof AtomicStatus\nexport type AtomicAlertTypeType = keyof typeof AtomicAlertType\nexport type AtomicModalSizeType = keyof typeof AtomicModalSize\nexport type AtomicTextVariantType = keyof typeof AtomicTextVariant\nexport type AtomicPositionType = keyof typeof AtomicPosition\nexport type AtomicAlignmentType = keyof typeof AtomicAlignment\nexport type AtomicOrientationType = keyof typeof AtomicOrientation\nexport type AtomicDirectionType = keyof typeof AtomicDirection\nexport type AtomicAnimationStateType = keyof typeof AtomicAnimationState\nexport type AtomicFormFieldStateType = keyof typeof AtomicFormFieldState\nexport type AtomicBreakpointType = keyof typeof AtomicBreakpoint\nexport type AtomicThemeModeType = keyof typeof AtomicThemeMode\n\nexport const AtomicEnumUtils = {\n getValues: <T extends Record<string, string>>(enumObj: T): string[] => {\n return Object.values(enumObj)\n },\n\n getKeys: <T extends Record<string, string>>(enumObj: T): string[] => {\n return Object.keys(enumObj)\n },\n\n hasValue: <T extends Record<string, string>>(enumObj: T, value: string): value is T[keyof T] => {\n return Object.values(enumObj).includes(value)\n },\n\n hasKey: <T extends Record<string, string>>(enumObj: T, key: string): key is string => {\n return Object.keys(enumObj).includes(key)\n },\n\n getEntries: <T extends Record<string, string>>(enumObj: T): [string, string][] => {\n return Object.entries(enumObj)\n },\n}\n","export { AtomicColorsCss } from './colors/atomic-colors'\n\nexport { AtomicSpacingCss } from './spacing/atomic-spacing'\n\nexport { AtomicTypographyCss } from './typography/atomic-typography'\n\nexport {\n AtomicShadows,\n ShadowUtils,\n AtomicShadowsCss,\n type AtomicShadowKey,\n type AtomicShadowValue,\n} from './shadows/atomic-shadows'\n\nexport {\n AtomicBorders,\n BorderUtils,\n AtomicBordersCss,\n type AtomicBorderRadius,\n type AtomicBorderWidth,\n type AtomicBorderStyle,\n} from './borders/atomic-borders'\n\nexport {\n AtomicAnimations,\n AnimationUtils,\n AtomicAnimationPresets,\n AtomicAnimationsCss,\n type AtomicAnimationDuration,\n type AtomicAnimationEasing,\n type AtomicAnimationScale,\n type AtomicAnimationRotate,\n} from './animations/atomic-animations'\n\nexport {\n AtomicSize,\n AtomicColorVariant,\n AtomicButtonVariant,\n AtomicInputVariant,\n AtomicCardVariant,\n AtomicLoadingState,\n AtomicStatus,\n AtomicAlertType,\n AtomicModalSize,\n AtomicTextVariant,\n AtomicPosition,\n AtomicAlignment,\n AtomicOrientation,\n AtomicDirection,\n AtomicAnimationState,\n AtomicFormFieldState,\n AtomicBreakpoint,\n AtomicThemeMode,\n AtomicEnumUtils,\n type AtomicSizeType,\n type AtomicColorVariantType,\n type AtomicButtonVariantType,\n type AtomicInputVariantType,\n type AtomicCardVariantType,\n type AtomicLoadingStateType,\n type AtomicStatusType,\n type AtomicAlertTypeType,\n type AtomicModalSizeType,\n type AtomicTextVariantType,\n type AtomicPositionType,\n type AtomicAlignmentType,\n type AtomicOrientationType,\n type AtomicDirectionType,\n type AtomicAnimationStateType,\n type AtomicFormFieldStateType,\n type AtomicBreakpointType,\n type AtomicThemeModeType,\n} from './enums/atomic-enums'\n\nimport { AtomicColorsCss } from './colors/atomic-colors'\nimport { AtomicSpacingCss } from './spacing/atomic-spacing'\nimport { AtomicTypographyCss } from './typography/atomic-typography'\nimport { AtomicShadowsCss } from './shadows/atomic-shadows'\nimport { AtomicBordersCss } from './borders/atomic-borders'\nimport { AtomicAnimationsCss } from './animations/atomic-animations'\n\nexport const AtomicDesignTokensCss = {\n ...AtomicColorsCss,\n ...AtomicSpacingCss,\n ...AtomicTypographyCss,\n ...AtomicShadowsCss,\n ...AtomicBordersCss,\n ...AtomicAnimationsCss,\n} as const\n","import { clsx, type ClassValue } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { Loader2 } from 'lucide-react'\nimport { cn } from '../../utils/cn'\n\n/**\n * Web/Next.js button variants using class-variance-authority\n * For React Native equivalent, see AtomicButton.tsx.template with StyleSheet-based variants\n */\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium 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 disabled:opacity-50',\n {\n variants: {\n variant: {\n default:\n 'bg-gray-900 text-white hover:bg-gray-800 dark:bg-white dark:text-gray-900 dark:hover:bg-gray-100',\n primary:\n 'bg-[--atomic-primary] text-white hover:bg-[--atomic-primary-dark] transition-all duration-200',\n brand: 'text-white hover:shadow-xl transition-all duration-200',\n destructive: 'bg-red-600 text-white hover:bg-red-700 dark:bg-red-500 dark:hover:bg-red-600',\n outline:\n 'border border-gray-300 bg-transparent hover:bg-gray-50 dark:border-gray-700 dark:hover:bg-gray-800',\n secondary:\n 'bg-gray-100 text-gray-900 hover:bg-gray-200 dark:bg-gray-800 dark:text-gray-100 dark:hover:bg-gray-700',\n ghost: 'bg-transparent hover:bg-gray-100 dark:hover:bg-gray-800',\n link: 'bg-transparent text-blue-600 underline-offset-4 hover:underline dark:text-blue-400',\n },\n size: {\n default: 'h-10 px-4 py-2',\n sm: 'h-9 rounded-md px-3',\n lg: 'h-11 rounded-md px-8',\n icon: 'h-10 w-10',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n)\n\nexport interface AtomicButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {\n /** Render as a different element */\n asChild?: boolean\n /** Show loading spinner */\n loading?: boolean\n /** Icon to display on the left */\n leftIcon?: React.ReactNode\n /** Icon to display on the right */\n rightIcon?: React.ReactNode\n /** Make button full width */\n fullWidth?: boolean\n}\n\nconst AtomicButton = React.forwardRef<HTMLButtonElement, AtomicButtonProps>(\n (\n {\n className,\n variant,\n size,\n asChild = false,\n loading = false,\n leftIcon,\n rightIcon,\n fullWidth = false,\n disabled,\n children,\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot : 'button'\n const isDisabled = disabled || loading\n\n return (\n <Comp\n className={cn(buttonVariants({ variant, size }), fullWidth && 'w-full', className)}\n style={{\n ...(variant === 'brand' && {\n background: 'linear-gradient(to right, var(--atomic-primary), var(--atomic-secondary))',\n }),\n ...props.style,\n }}\n ref={ref}\n disabled={isDisabled}\n {...props}\n >\n {loading && (\n <Loader2\n className={cn(\n 'animate-spin',\n size === 'sm' ? 'h-3 w-3' : size === 'lg' ? 'h-5 w-5' : 'h-4 w-4',\n (leftIcon || children) && 'mr-2'\n )}\n />\n )}\n {!loading && leftIcon && (\n <span\n className={cn(\n 'inline-flex items-center',\n size === 'sm' ? 'mr-1' : 'mr-2',\n size === 'sm'\n ? '[&>*]:h-3 [&>*]:w-3'\n : size === 'lg'\n ? '[&>*]:h-5 [&>*]:w-5'\n : '[&>*]:h-4 [&>*]:w-4'\n )}\n >\n {leftIcon}\n </span>\n )}\n {children}\n {!loading && rightIcon && (\n <span\n className={cn(\n 'inline-flex items-center',\n size === 'sm' ? 'ml-1' : 'ml-2',\n size === 'sm'\n ? '[&>*]:h-3 [&>*]:w-3'\n : size === 'lg'\n ? '[&>*]:h-5 [&>*]:w-5'\n : '[&>*]:h-4 [&>*]:w-4'\n )}\n >\n {rightIcon}\n </span>\n )}\n </Comp>\n )\n }\n)\nAtomicButton.displayName = 'AtomicButton'\n\nexport { AtomicButton, buttonVariants }\n","import React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\nconst textVariants = cva('', {\n variants: {\n variant: {\n h1: 'scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl',\n h2: 'scroll-m-20 text-3xl font-semibold tracking-tight lg:text-4xl',\n h3: 'scroll-m-20 text-2xl font-semibold tracking-tight',\n h4: 'scroll-m-20 text-xl font-semibold tracking-tight',\n h5: 'scroll-m-20 text-lg font-semibold tracking-tight',\n h6: 'scroll-m-20 text-base font-semibold tracking-tight',\n\n body: 'text-base leading-7',\n base: 'text-base leading-7',\n large: 'text-lg leading-7',\n lg: 'text-lg leading-7',\n small: 'text-sm leading-6',\n sm: 'text-sm leading-6',\n xs: 'text-xs leading-5',\n xl: 'text-xl leading-7',\n '2xl': 'text-2xl leading-8',\n '3xl': 'text-3xl leading-9',\n\n lead: 'text-xl leading-7 text-muted-foreground',\n muted: 'text-sm text-muted-foreground',\n caption: 'text-xs text-muted-foreground',\n label: 'text-sm font-medium leading-none',\n },\n color: {\n default: 'text-foreground',\n primary: 'text-primary',\n secondary: 'text-secondary-foreground',\n muted: 'text-muted-foreground',\n success: 'text-green-600 dark:text-green-400',\n warning: 'text-amber-600 dark:text-amber-400',\n error: 'text-red-600 dark:text-red-400',\n info: 'text-blue-600 dark:text-blue-400',\n },\n align: {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n justify: 'text-justify',\n },\n weight: {\n thin: 'font-thin',\n light: 'font-light',\n normal: 'font-normal',\n medium: 'font-medium',\n semibold: 'font-semibold',\n bold: 'font-bold',\n extrabold: 'font-extrabold',\n black: 'font-black',\n },\n },\n defaultVariants: {\n variant: 'body',\n color: 'default',\n align: 'left',\n },\n})\n\nexport interface AtomicTextProps\n extends Omit<React.HTMLAttributes<HTMLElement>, 'color'>, VariantProps<typeof textVariants> {\n /** Render as a different element */\n asChild?: boolean\n /** HTML element to render */\n as?: 'p' | 'span' | 'div' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'label'\n /** Truncate text with ellipsis */\n truncate?: boolean\n /** Allow text selection */\n selectable?: boolean\n}\n\nconst AtomicText = React.forwardRef<HTMLElement, AtomicTextProps>(\n (\n {\n className,\n variant,\n color,\n align,\n weight,\n as = 'p',\n asChild = false,\n truncate = false,\n selectable = true,\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot : as\n\n let semanticElement = as\n if (!asChild && as === 'p') {\n if (\n variant === 'h1' ||\n variant === 'h2' ||\n variant === 'h3' ||\n variant === 'h4' ||\n variant === 'h5' ||\n variant === 'h6'\n ) {\n semanticElement = variant\n } else if (variant === 'label') {\n semanticElement = 'label'\n }\n }\n\n const FinalComp = (asChild ? Comp : semanticElement) as React.ElementType\n\n return (\n <FinalComp\n className={cn(\n textVariants({ variant, color: color || 'default', align, weight }),\n truncate && 'truncate',\n !selectable && 'select-none',\n className\n )}\n ref={ref}\n {...props}\n />\n )\n }\n)\nAtomicText.displayName = 'AtomicText'\n\nexport { AtomicText, textVariants }\n","import React from 'react'\nimport * as AvatarPrimitive from '@radix-ui/react-avatar'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\nconst avatarVariants = cva('relative flex shrink-0 overflow-hidden rounded-full', {\n variants: {\n size: {\n xs: 'h-6 w-6',\n sm: 'h-8 w-8',\n default: 'h-10 w-10',\n lg: 'h-12 w-12',\n xl: 'h-16 w-16',\n xxl: 'h-20 w-20',\n xxxl: 'h-24 w-24',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n})\n\nconst avatarImageVariants = cva('aspect-square h-full w-full object-cover')\n\nconst avatarFallbackVariants = cva(\n 'flex h-full w-full items-center justify-center rounded-full bg-muted font-medium text-muted-foreground',\n {\n variants: {\n size: {\n xs: 'text-xs',\n sm: 'text-xs',\n default: 'text-sm',\n lg: 'text-base',\n xl: 'text-lg',\n xxl: 'text-xl',\n xxxl: 'text-2xl',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n }\n)\n\nexport interface AtomicAvatarProps\n extends\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>,\n VariantProps<typeof avatarVariants> {\n src?: string\n alt?: string\n fallback?: string\n fallbackElement?: React.ReactNode\n showStatus?: boolean\n isOnline?: boolean\n statusColor?: string\n}\n\nconst AtomicAvatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n AtomicAvatarProps\n>(\n (\n {\n className,\n size,\n src,\n alt,\n fallback,\n fallbackElement,\n showStatus = false,\n isOnline = false,\n statusColor,\n ...props\n },\n ref\n ) => {\n const generateInitials = (name?: string) => {\n if (!name) return '?'\n\n return name\n .split(' ')\n .map(part => part.charAt(0))\n .join('')\n .slice(0, 2)\n .toUpperCase()\n }\n\n const initials = fallback || generateInitials(alt)\n\n const statusSize = {\n xs: 'h-1.5 w-1.5',\n sm: 'h-2 w-2',\n default: 'h-2.5 w-2.5',\n lg: 'h-3 w-3',\n xl: 'h-4 w-4',\n xxl: 'h-4 w-4',\n xxxl: 'h-5 w-5',\n }[size || 'default']\n\n return (\n <div className=\"relative\">\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(avatarVariants({ size }), className)}\n {...props}\n >\n <AvatarPrimitive.Image className={avatarImageVariants()} src={src} alt={alt} />\n <AvatarPrimitive.Fallback className={avatarFallbackVariants({ size })}>\n {fallbackElement || initials}\n </AvatarPrimitive.Fallback>\n </AvatarPrimitive.Root>\n\n {showStatus && (\n <div\n className={cn(\n 'absolute bottom-0 right-0 rounded-full border-2 border-background',\n statusSize,\n statusColor ? '' : isOnline ? 'bg-green-500' : 'bg-gray-400'\n )}\n style={statusColor ? { backgroundColor: statusColor } : undefined}\n />\n )}\n </div>\n )\n }\n)\nAtomicAvatar.displayName = 'AtomicAvatar'\n\nconst AtomicAvatarImage = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image ref={ref} className={cn(avatarImageVariants(), className)} {...props} />\n))\nAtomicAvatarImage.displayName = 'AtomicAvatarImage'\n\nconst AtomicAvatarFallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback> &\n VariantProps<typeof avatarFallbackVariants>\n>(({ className, size, ...props }, ref) => (\n <AvatarPrimitive.Fallback\n ref={ref}\n className={cn(avatarFallbackVariants({ size }), className)}\n {...props}\n />\n))\nAtomicAvatarFallback.displayName = 'AtomicAvatarFallback'\n\nexport {\n AtomicAvatar,\n AtomicAvatarImage,\n AtomicAvatarFallback,\n avatarVariants,\n avatarImageVariants,\n avatarFallbackVariants,\n}\n","import Image from 'next/image'\nimport { cn } from '../../utils/cn'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport React from 'react'\n\nconst imageVariants = cva('transition-all duration-200', {\n variants: {\n rounded: {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n xl: 'rounded-xl',\n full: 'rounded-full',\n },\n aspectRatio: {\n square: 'aspect-square',\n video: 'aspect-video',\n portrait: 'aspect-[3/4]',\n landscape: 'aspect-[4/3]',\n auto: '',\n },\n objectFit: {\n cover: 'object-cover',\n contain: 'object-contain',\n fill: 'object-fill',\n 'scale-down': 'object-scale-down',\n none: 'object-none',\n },\n objectPosition: {\n center: 'object-center',\n top: 'object-top',\n bottom: 'object-bottom',\n left: 'object-left',\n right: 'object-right',\n 'top-left': 'object-left-top',\n 'top-right': 'object-right-top',\n 'bottom-left': 'object-left-bottom',\n 'bottom-right': 'object-right-bottom',\n },\n },\n defaultVariants: {\n rounded: 'none',\n aspectRatio: 'auto',\n objectFit: 'cover',\n objectPosition: 'center',\n },\n})\n\nexport interface AtomicImageProps\n extends\n Omit<\n React.ComponentProps<typeof Image>,\n 'className' | 'objectFit' | 'objectPosition' | 'placeholder'\n >,\n VariantProps<typeof imageVariants> {\n className?: string\n containerClassName?: string\n /** Enable blur placeholder while loading */\n enableBlur?: boolean\n /** Custom placeholder image source */\n placeholderSrc?: string\n}\n\nexport const AtomicImage = React.forwardRef<React.ElementRef<typeof Image>, AtomicImageProps>(\n (\n {\n className,\n containerClassName,\n rounded,\n aspectRatio,\n objectFit,\n objectPosition,\n enableBlur = false,\n placeholderSrc,\n ...props\n },\n ref\n ) => {\n return (\n <div\n className={cn(\n 'relative overflow-hidden',\n aspectRatio && imageVariants({ aspectRatio }),\n containerClassName\n )}\n >\n <Image\n ref={ref}\n className={cn(\n imageVariants({\n rounded,\n objectFit,\n objectPosition,\n aspectRatio: undefined,\n }),\n className\n )}\n placeholder={enableBlur || placeholderSrc ? 'blur' : 'empty'}\n blurDataURL={placeholderSrc}\n {...props}\n />\n </div>\n )\n }\n)\n\nAtomicImage.displayName = 'AtomicImage'\n\nexport { imageVariants }\n","'use client'\n\nimport React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\nconst cardVariants = cva('rounded-lg border text-card-foreground', {\n variants: {\n variant: {\n default: 'border-border bg-card shadow-sm',\n elevated: 'border-0 bg-card shadow-lg',\n outlined: 'border-2 border-border bg-card shadow-none',\n filled: 'border-0 bg-muted shadow-none',\n },\n size: {\n sm: 'p-4',\n md: 'p-6',\n lg: 'p-8',\n xl: 'p-10',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n})\n\nconst cardHeaderVariants = cva('flex flex-col space-y-1.5', {\n variants: {\n size: {\n sm: 'pb-3',\n md: 'pb-4',\n lg: 'pb-6',\n xl: 'pb-8',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst cardTitleVariants = cva('font-semibold leading-none tracking-tight', {\n variants: {\n size: {\n sm: 'text-lg',\n md: 'text-xl',\n lg: 'text-2xl',\n xl: 'text-3xl',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst cardDescriptionVariants = cva('text-muted-foreground', {\n variants: {\n size: {\n sm: 'text-sm',\n md: 'text-sm',\n lg: 'text-base',\n xl: 'text-lg',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst cardContentVariants = cva('', {\n variants: {\n size: {\n sm: 'pt-0',\n md: 'pt-0',\n lg: 'pt-0',\n xl: 'pt-0',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst cardFooterVariants = cva('flex items-center', {\n variants: {\n size: {\n sm: 'pt-3',\n md: 'pt-4',\n lg: 'pt-6',\n xl: 'pt-8',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nexport interface AtomicCardProps\n extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardVariants> {\n /** Make card interactive with hover effects */\n interactive?: boolean\n /** Make card full width */\n fullWidth?: boolean\n}\n\nexport interface AtomicCardHeaderProps\n extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardHeaderVariants> {}\n\nexport interface AtomicCardTitleProps\n extends React.HTMLAttributes<HTMLHeadingElement>, VariantProps<typeof cardTitleVariants> {\n /** Render as a different heading element */\n as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'\n}\n\nexport interface AtomicCardDescriptionProps\n extends\n React.HTMLAttributes<HTMLParagraphElement>,\n VariantProps<typeof cardDescriptionVariants> {}\n\nexport interface AtomicCardContentProps\n extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardContentVariants> {}\n\nexport interface AtomicCardFooterProps\n extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardFooterVariants> {}\n\nconst AtomicCard = React.forwardRef<HTMLDivElement, AtomicCardProps>(\n ({ className, variant, size, interactive = false, fullWidth = false, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n cardVariants({ variant, size }),\n interactive && 'cursor-pointer transition-shadow hover:shadow-md',\n fullWidth && 'w-full',\n className\n )}\n {...props}\n />\n )\n)\nAtomicCard.displayName = 'AtomicCard'\n\nconst AtomicCardHeader = React.forwardRef<HTMLDivElement, AtomicCardHeaderProps>(\n ({ className, size, ...props }, ref) => (\n <div ref={ref} className={cn(cardHeaderVariants({ size }), className)} {...props} />\n )\n)\nAtomicCardHeader.displayName = 'AtomicCardHeader'\n\nconst AtomicCardTitle = React.forwardRef<HTMLHeadingElement, AtomicCardTitleProps>(\n ({ className, size, as: Component = 'h3', ...props }, ref) => (\n <Component ref={ref} className={cn(cardTitleVariants({ size }), className)} {...props} />\n )\n)\nAtomicCardTitle.displayName = 'AtomicCardTitle'\n\nconst AtomicCardDescription = React.forwardRef<HTMLParagraphElement, AtomicCardDescriptionProps>(\n ({ className, size, ...props }, ref) => (\n <p ref={ref} className={cn(cardDescriptionVariants({ size }), className)} {...props} />\n )\n)\nAtomicCardDescription.displayName = 'AtomicCardDescription'\n\nconst AtomicCardContent = React.forwardRef<HTMLDivElement, AtomicCardContentProps>(\n ({ className, size, ...props }, ref) => (\n <div ref={ref} className={cn(cardContentVariants({ size }), className)} {...props} />\n )\n)\nAtomicCardContent.displayName = 'AtomicCardContent'\n\nconst AtomicCardFooter = React.forwardRef<HTMLDivElement, AtomicCardFooterProps>(\n ({ className, size, ...props }, ref) => (\n <div ref={ref} className={cn(cardFooterVariants({ size }), className)} {...props} />\n )\n)\nAtomicCardFooter.displayName = 'AtomicCardFooter'\n\nexport {\n AtomicCard,\n AtomicCardHeader,\n AtomicCardTitle,\n AtomicCardDescription,\n AtomicCardContent,\n AtomicCardFooter,\n cardVariants,\n cardHeaderVariants,\n cardTitleVariants,\n cardDescriptionVariants,\n cardContentVariants,\n cardFooterVariants,\n}\n","import React from 'react'\nimport { LucideIcon, LucideProps } from 'lucide-react'\nimport { cn } from '../../utils'\n\ntype IconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | number | string\n\ntype Color =\n | 'current'\n | 'black'\n | 'white'\n | 'slate-50'\n | 'slate-100'\n | 'slate-200'\n | 'slate-300'\n | 'slate-400'\n | 'slate-500'\n | 'slate-600'\n | 'slate-700'\n | 'slate-800'\n | 'slate-900'\n | 'gray-50'\n | 'gray-100'\n | 'gray-200'\n | 'gray-300'\n | 'gray-400'\n | 'gray-500'\n | 'gray-600'\n | 'gray-700'\n | 'gray-800'\n | 'gray-900'\n | 'zinc-50'\n | 'zinc-100'\n | 'zinc-200'\n | 'zinc-300'\n | 'zinc-400'\n | 'zinc-500'\n | 'zinc-600'\n | 'zinc-700'\n | 'zinc-800'\n | 'zinc-900'\n | 'red-50'\n | 'red-100'\n | 'red-200'\n | 'red-300'\n | 'red-400'\n | 'red-500'\n | 'red-600'\n | 'red-700'\n | 'red-800'\n | 'red-900'\n | 'orange-50'\n | 'orange-100'\n | 'orange-200'\n | 'orange-300'\n | 'orange-400'\n | 'orange-500'\n | 'orange-600'\n | 'orange-700'\n | 'orange-800'\n | 'orange-900'\n | 'yellow-50'\n | 'yellow-100'\n | 'yellow-200'\n | 'yellow-300'\n | 'yellow-400'\n | 'yellow-500'\n | 'yellow-600'\n | 'yellow-700'\n | 'yellow-800'\n | 'yellow-900'\n | 'green-50'\n | 'green-100'\n | 'green-200'\n | 'green-300'\n | 'green-400'\n | 'green-500'\n | 'green-600'\n | 'green-700'\n | 'green-800'\n | 'green-900'\n | 'blue-50'\n | 'blue-100'\n | 'blue-200'\n | 'blue-300'\n | 'blue-400'\n | 'blue-500'\n | 'blue-600'\n | 'blue-700'\n | 'blue-800'\n | 'blue-900'\n | 'indigo-50'\n | 'indigo-100'\n | 'indigo-200'\n | 'indigo-300'\n | 'indigo-400'\n | 'indigo-500'\n | 'indigo-600'\n | 'indigo-700'\n | 'indigo-800'\n | 'indigo-900'\n | 'purple-50'\n | 'purple-100'\n | 'purple-200'\n | 'purple-300'\n | 'purple-400'\n | 'purple-500'\n | 'purple-600'\n | 'purple-700'\n | 'purple-800'\n | 'purple-900'\n | 'pink-50'\n | 'pink-100'\n | 'pink-200'\n | 'pink-300'\n | 'pink-400'\n | 'pink-500'\n | 'pink-600'\n | 'pink-700'\n | 'pink-800'\n | 'pink-900'\n\ntype Spacing =\n | '0'\n | 'px'\n | '0.5'\n | '1'\n | '1.5'\n | '2'\n | '2.5'\n | '3'\n | '3.5'\n | '4'\n | '5'\n | '6'\n | '7'\n | '8'\n | '9'\n | '10'\n | '11'\n | '12'\n | '14'\n | '16'\n | '20'\n | '24'\n | '28'\n | '32'\n | '36'\n | '40'\n | '44'\n | '48'\n\ntype SpacingObject = {\n x?: Spacing\n y?: Spacing\n t?: Spacing\n r?: Spacing\n b?: Spacing\n l?: Spacing\n}\n\nexport interface AtomicIconProps extends Omit<LucideProps, 'size' | 'color'> {\n icon: LucideIcon\n size?: IconSize\n color?: Color\n hoverColor?: Color\n p?: Spacing | SpacingObject\n m?: Spacing | SpacingObject\n cursor?: 'auto' | 'default' | 'pointer' | 'wait' | 'help' | 'not-allowed'\n spin?: boolean\n pulse?: boolean\n bounce?: boolean\n rotate?: '0' | '45' | '90' | '180' | '-45' | '-90' | '-180'\n 'aria-label'?: string\n 'aria-hidden'?: boolean\n}\n\nconst getSpacingClass = (spacing: Spacing | SpacingObject | undefined, prefix: string): string => {\n if (!spacing) return ''\n\n if (typeof spacing === 'string') {\n return `${prefix}-${spacing}`\n }\n\n const classes: string[] = []\n if (spacing.x !== undefined) classes.push(`${prefix}x-${spacing.x}`)\n if (spacing.y !== undefined) classes.push(`${prefix}y-${spacing.y}`)\n if (spacing.t !== undefined) classes.push(`${prefix}t-${spacing.t}`)\n if (spacing.r !== undefined) classes.push(`${prefix}r-${spacing.r}`)\n if (spacing.b !== undefined) classes.push(`${prefix}b-${spacing.b}`)\n if (spacing.l !== undefined) classes.push(`${prefix}l-${spacing.l}`)\n\n return classes.join(' ')\n}\n\nconst getSizeValue = (size: IconSize): number => {\n if (typeof size === 'number') return size\n if (typeof size === 'string' && !isNaN(Number(size))) return Number(size)\n\n switch (size) {\n case 'xs':\n return 12\n case 'sm':\n return 16\n case 'md':\n return 20\n case 'lg':\n return 24\n case 'xl':\n return 28\n case '2xl':\n return 32\n default:\n return 20\n }\n}\n\nexport const AtomicIcon = React.forwardRef<SVGSVGElement, AtomicIconProps>(\n (\n {\n icon: Icon,\n size = 'md',\n color,\n hoverColor,\n p,\n m,\n cursor,\n spin = false,\n pulse = false,\n bounce = false,\n rotate,\n className,\n 'aria-label': ariaLabel,\n 'aria-hidden': ariaHidden = false,\n ...rest\n },\n ref\n ) => {\n const sizeValue = getSizeValue(size)\n\n const classes = cn(\n 'inline-block flex-shrink-0',\n color && `text-${color}`,\n hoverColor && `hover:text-${hoverColor}`,\n getSpacingClass(p, 'p'),\n getSpacingClass(m, 'm'),\n cursor && `cursor-${cursor}`,\n spin && 'animate-spin',\n pulse && 'animate-pulse',\n bounce && 'animate-bounce',\n rotate && `rotate-${rotate}`,\n (hoverColor || cursor === 'pointer') && 'transition-colors duration-200',\n\n className\n )\n\n return (\n <Icon\n ref={ref}\n size={sizeValue}\n className={classes}\n aria-label={ariaLabel}\n aria-hidden={ariaHidden}\n {...rest}\n />\n )\n }\n)\n\nAtomicIcon.displayName = 'AtomicIcon'\n","'use client'\n\nimport React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { Eye, EyeOff, X } from 'lucide-react'\nimport { cn } from '../../utils/cn'\n\nconst inputVariants = cva(\n 'flex w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n {\n variants: {\n variant: {\n default: '',\n filled: 'bg-secondary border-transparent',\n outline: 'bg-transparent border-2',\n underlined: 'rounded-none border-0 border-b-2 px-0',\n },\n size: {\n sm: 'h-8 px-2 text-xs',\n default: 'h-10 px-3 text-sm',\n lg: 'h-12 px-4 text-base',\n },\n state: {\n default: '',\n error: 'border-destructive focus-visible:ring-destructive',\n success: 'border-green-500 focus-visible:ring-green-500',\n warning: 'border-amber-500 focus-visible:ring-amber-500',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n state: 'default',\n },\n }\n)\n\nexport interface AtomicInputProps\n extends\n Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>,\n VariantProps<typeof inputVariants> {\n /** Left icon or element */\n leftIcon?: React.ReactNode\n /** Right icon or element */\n rightIcon?: React.ReactNode\n /** Input label */\n label?: string\n /** Helper text */\n helperText?: string\n /** Error message */\n error?: string\n /** Success message */\n success?: string\n /** Warning message */\n warning?: string\n /** Show clear button when input has value */\n clearable?: boolean\n /** Callback when clear button is clicked */\n onClear?: () => void\n /** Show password toggle for password inputs */\n showPasswordToggle?: boolean\n /** Container class name */\n containerClassName?: string\n /** Label class name */\n labelClassName?: string\n /** Helper text class name */\n helperClassName?: string\n}\n\nconst AtomicInput = React.forwardRef<HTMLInputElement, AtomicInputProps>(\n (\n {\n className,\n variant,\n size,\n state,\n type = 'text',\n leftIcon,\n rightIcon,\n label,\n helperText,\n error,\n success,\n warning,\n clearable = false,\n onClear,\n showPasswordToggle = false,\n containerClassName,\n labelClassName,\n helperClassName,\n value,\n onChange,\n disabled,\n ...props\n },\n ref\n ) => {\n const [showPassword, setShowPassword] = React.useState(false)\n const [internalValue, setInternalValue] = React.useState(value || '')\n\n let currentState = state\n if (error) currentState = 'error'\n else if (success) currentState = 'success'\n else if (warning) currentState = 'warning'\n\n let inputType = type\n if (type === 'password' && showPasswordToggle) {\n inputType = showPassword ? 'text' : 'password'\n }\n\n const hasValue = (value || internalValue) && String(value || internalValue).length > 0\n const showClearButton = clearable && hasValue && !disabled\n const showPasswordToggleButton = showPasswordToggle && type === 'password' && !disabled\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setInternalValue(e.target.value)\n onChange?.(e)\n }\n\n const handleClear = () => {\n setInternalValue('')\n onClear?.()\n\n const syntheticEvent = {\n target: { value: '' },\n currentTarget: { value: '' },\n } as React.ChangeEvent<HTMLInputElement>\n onChange?.(syntheticEvent)\n }\n\n const messageText = error || success || warning || helperText\n const messageColor = error\n ? 'text-destructive'\n : success\n ? 'text-green-600 dark:text-green-400'\n : warning\n ? 'text-amber-600 dark:text-amber-400'\n : 'text-muted-foreground'\n\n return (\n <div className={cn('space-y-2', containerClassName)}>\n {label && (\n <label\n className={cn(\n 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n disabled && 'opacity-50',\n labelClassName\n )}\n >\n {label}\n </label>\n )}\n\n <div className=\"relative\">\n {leftIcon && (\n <div\n className={cn(\n 'absolute left-0 top-0 h-full flex items-center justify-center',\n size === 'sm' ? 'w-8 pl-2' : size === 'lg' ? 'w-12 pl-4' : 'w-10 pl-3',\n 'text-muted-foreground pointer-events-none',\n '[&>*]:h-4 [&>*]:w-4'\n )}\n >\n {leftIcon}\n </div>\n )}\n\n <input\n type={inputType}\n className={cn(\n inputVariants({ variant, size, state: currentState }),\n leftIcon && (size === 'sm' ? 'pl-8' : size === 'lg' ? 'pl-12' : 'pl-10'),\n (rightIcon || showClearButton || showPasswordToggleButton) &&\n (size === 'sm' ? 'pr-8' : size === 'lg' ? 'pr-12' : 'pr-10'),\n className\n )}\n ref={ref}\n value={value !== undefined ? value : internalValue}\n onChange={handleChange}\n disabled={disabled}\n {...props}\n />\n\n {(rightIcon || showClearButton || showPasswordToggleButton) && (\n <div\n className={cn(\n 'absolute right-0 top-0 h-full flex items-center justify-center gap-1',\n size === 'sm' ? 'w-8 pr-2' : size === 'lg' ? 'w-12 pr-4' : 'w-10 pr-3'\n )}\n >\n {rightIcon && !showClearButton && !showPasswordToggleButton && (\n <div className=\"text-muted-foreground [&>*]:h-4 [&>*]:w-4\">{rightIcon}</div>\n )}\n\n {showClearButton && (\n <button\n type=\"button\"\n onClick={handleClear}\n className=\"text-muted-foreground hover:text-foreground transition-colors [&>*]:h-4 [&>*]:w-4\"\n tabIndex={-1}\n >\n <X />\n </button>\n )}\n\n {showPasswordToggleButton && (\n <button\n type=\"button\"\n onClick={() => setShowPassword(!showPassword)}\n className=\"text-muted-foreground hover:text-foreground transition-colors [&>*]:h-4 [&>*]:w-4\"\n tabIndex={-1}\n >\n {showPassword ? <EyeOff /> : <Eye />}\n </button>\n )}\n </div>\n )}\n </div>\n\n {messageText && (\n <p className={cn('text-xs', messageColor, helperClassName)}>{messageText}</p>\n )}\n </div>\n )\n }\n)\nAtomicInput.displayName = 'AtomicInput'\n\nexport { AtomicInput, inputVariants }\n","import React from 'react'\nimport { Check, Minus } from 'lucide-react'\nimport { cn } from '../../utils'\n\ntype CheckboxSize = 'sm' | 'md' | 'lg'\n\ntype Color =\n | 'slate'\n | 'gray'\n | 'zinc'\n | 'red'\n | 'orange'\n | 'yellow'\n | 'green'\n | 'blue'\n | 'indigo'\n | 'purple'\n | 'pink'\n\ntype Spacing =\n | '0'\n | 'px'\n | '0.5'\n | '1'\n | '1.5'\n | '2'\n | '2.5'\n | '3'\n | '3.5'\n | '4'\n | '5'\n | '6'\n | '7'\n | '8'\n\ntype SpacingObject = {\n x?: Spacing\n y?: Spacing\n t?: Spacing\n r?: Spacing\n b?: Spacing\n l?: Spacing\n}\n\nexport interface AtomicCheckboxProps extends Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n 'size' | 'color' | 'onChange'\n> {\n checked?: boolean\n indeterminate?: boolean\n disabled?: boolean\n size?: CheckboxSize\n color?: Color\n p?: Spacing | SpacingObject\n m?: Spacing | SpacingObject\n label?: string\n description?: string\n error?: boolean\n errorMessage?: string\n onChange?: (checked: boolean, event: React.ChangeEvent<HTMLInputElement>) => void\n onInputChange?: React.ChangeEventHandler<HTMLInputElement>\n}\n\nconst getSpacingClass = (spacing: Spacing | SpacingObject | undefined, prefix: string): string => {\n if (!spacing) return ''\n\n if (typeof spacing === 'string') {\n return `${prefix}-${spacing}`\n }\n\n const classes: string[] = []\n if (spacing.x !== undefined) classes.push(`${prefix}x-${spacing.x}`)\n if (spacing.y !== undefined) classes.push(`${prefix}y-${spacing.y}`)\n if (spacing.t !== undefined) classes.push(`${prefix}t-${spacing.t}`)\n if (spacing.r !== undefined) classes.push(`${prefix}r-${spacing.r}`)\n if (spacing.b !== undefined) classes.push(`${prefix}b-${spacing.b}`)\n if (spacing.l !== undefined) classes.push(`${prefix}l-${spacing.l}`)\n\n return classes.join(' ')\n}\n\nconst getSizeClasses = (\n size: CheckboxSize\n): { container: string; checkbox: string; icon: number } => {\n switch (size) {\n case 'sm':\n return {\n container: 'text-sm',\n checkbox: 'w-4 h-4',\n icon: 12,\n }\n case 'md':\n return {\n container: 'text-base',\n checkbox: 'w-5 h-5',\n icon: 14,\n }\n case 'lg':\n return {\n container: 'text-lg',\n checkbox: 'w-6 h-6',\n icon: 16,\n }\n default:\n return {\n container: 'text-base',\n checkbox: 'w-5 h-5',\n icon: 14,\n }\n }\n}\n\nconst getColorClasses = (color: Color, error: boolean): string => {\n if (error) {\n return 'border-red-300 text-red-600 focus:border-red-500 focus:ring-red-500'\n }\n\n const colorMap = {\n slate: 'border-slate-300 text-slate-600 focus:border-slate-500 focus:ring-slate-500',\n gray: 'border-gray-300 text-gray-600 focus:border-gray-500 focus:ring-gray-500',\n zinc: 'border-zinc-300 text-zinc-600 focus:border-zinc-500 focus:ring-zinc-500',\n red: 'border-red-300 text-red-600 focus:border-red-500 focus:ring-red-500',\n orange: 'border-orange-300 text-orange-600 focus:border-orange-500 focus:ring-orange-500',\n yellow: 'border-yellow-300 text-yellow-600 focus:border-yellow-500 focus:ring-yellow-500',\n green: 'border-green-300 text-green-600 focus:border-green-500 focus:ring-green-500',\n blue: 'border-blue-300 text-blue-600 focus:border-blue-500 focus:ring-blue-500',\n indigo: 'border-indigo-300 text-indigo-600 focus:border-indigo-500 focus:ring-indigo-500',\n purple: 'border-purple-300 text-purple-600 focus:border-purple-500 focus:ring-purple-500',\n pink: 'border-pink-300 text-pink-600 focus:border-pink-500 focus:ring-pink-500',\n }\n\n return colorMap[color] || colorMap.blue\n}\n\nexport const AtomicCheckbox = React.forwardRef<HTMLInputElement, AtomicCheckboxProps>(\n (\n {\n checked = false,\n indeterminate = false,\n disabled = false,\n size = 'md',\n color = 'blue',\n p,\n m,\n label,\n description,\n error = false,\n errorMessage,\n className,\n onChange,\n id,\n ...rest\n },\n ref\n ) => {\n const generatedId = React.useId()\n const checkboxId = id || `checkbox-${generatedId}`\n const sizeClasses = getSizeClasses(size)\n const colorClasses = getColorClasses(color, error)\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (!disabled) {\n onChange?.(event.target.checked, event)\n }\n }\n\n const containerClasses = cn(\n 'relative flex items-start',\n sizeClasses.container,\n getSpacingClass(p, 'p'),\n getSpacingClass(m, 'm'),\n disabled && 'opacity-50 cursor-not-allowed',\n\n className\n )\n\n const checkboxClasses = cn(\n 'flex-shrink-0 rounded border-2 bg-white transition-colors duration-200',\n sizeClasses.checkbox,\n colorClasses,\n 'focus:outline-none focus:ring-2 focus:ring-offset-2',\n disabled ? 'cursor-not-allowed' : 'cursor-pointer',\n (checked || indeterminate) && !disabled && `bg-${color}-600 border-${color}-600`\n )\n\n return (\n <div className={containerClasses}>\n <div className=\"flex items-center h-5\">\n <div className=\"relative\">\n <input\n ref={ref}\n type=\"checkbox\"\n id={checkboxId}\n checked={checked}\n disabled={disabled}\n onChange={handleChange}\n className=\"sr-only\"\n {...rest}\n />\n\n <div\n className={checkboxClasses}\n onClick={() => {\n if (!disabled && ref && 'current' in ref && ref.current) {\n ref.current.click()\n }\n }}\n >\n {checked && !indeterminate && (\n <Check\n size={sizeClasses.icon}\n className=\"text-white absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2\"\n />\n )}\n\n {indeterminate && (\n <Minus\n size={sizeClasses.icon}\n className=\"text-white absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2\"\n />\n )}\n </div>\n </div>\n </div>\n\n {(label || description) && (\n <div className=\"ml-3 flex-1\">\n {label && (\n <label\n htmlFor={checkboxId}\n className={cn(\n 'block font-medium leading-5',\n error ? 'text-red-700' : 'text-gray-700',\n disabled ? 'cursor-not-allowed' : 'cursor-pointer'\n )}\n >\n {label}\n </label>\n )}\n\n {description && (\n <p className={cn('text-sm leading-5', error ? 'text-red-600' : 'text-gray-500')}>\n {description}\n </p>\n )}\n\n {error && errorMessage && <p className=\"mt-1 text-sm text-red-600\">{errorMessage}</p>}\n </div>\n )}\n </div>\n )\n }\n)\n\nAtomicCheckbox.displayName = 'AtomicCheckbox'\n","import React from 'react'\nimport { cn } from '../../utils'\n\ntype SwitchSize = 'sm' | 'md' | 'lg'\n\ntype Color =\n | 'slate'\n | 'gray'\n | 'zinc'\n | 'red'\n | 'orange'\n | 'yellow'\n | 'green'\n | 'blue'\n | 'indigo'\n | 'purple'\n | 'pink'\n\ntype Spacing =\n | '0'\n | 'px'\n | '0.5'\n | '1'\n | '1.5'\n | '2'\n | '2.5'\n | '3'\n | '3.5'\n | '4'\n | '5'\n | '6'\n | '7'\n | '8'\n\ntype SpacingObject = {\n x?: Spacing\n y?: Spacing\n t?: Spacing\n r?: Spacing\n b?: Spacing\n l?: Spacing\n}\n\nexport interface AtomicSwitchProps extends Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n 'size' | 'color' | 'onChange'\n> {\n checked?: boolean\n disabled?: boolean\n size?: SwitchSize\n color?: Color\n p?: Spacing | SpacingObject\n m?: Spacing | SpacingObject\n label?: string\n description?: string\n labelPosition?: 'left' | 'right'\n loading?: boolean\n onChange?: (checked: boolean, event: React.ChangeEvent<HTMLInputElement>) => void\n onInputChange?: React.ChangeEventHandler<HTMLInputElement>\n}\n\nconst getSpacingClass = (spacing: Spacing | SpacingObject | undefined, prefix: string): string => {\n if (!spacing) return ''\n\n if (typeof spacing === 'string') {\n return `${prefix}-${spacing}`\n }\n\n const classes: string[] = []\n if (spacing.x !== undefined) classes.push(`${prefix}x-${spacing.x}`)\n if (spacing.y !== undefined) classes.push(`${prefix}y-${spacing.y}`)\n if (spacing.t !== undefined) classes.push(`${prefix}t-${spacing.t}`)\n if (spacing.r !== undefined) classes.push(`${prefix}r-${spacing.r}`)\n if (spacing.b !== undefined) classes.push(`${prefix}b-${spacing.b}`)\n if (spacing.l !== undefined) classes.push(`${prefix}l-${spacing.l}`)\n\n return classes.join(' ')\n}\n\nconst getSizeClasses = (\n size: SwitchSize\n): {\n track: string\n thumb: string\n thumbTranslate: string\n container: string\n} => {\n switch (size) {\n case 'sm':\n return {\n track: 'w-9 h-5',\n thumb: 'w-4 h-4',\n thumbTranslate: 'translate-x-4',\n container: 'text-sm',\n }\n case 'md':\n return {\n track: 'w-11 h-6',\n thumb: 'w-5 h-5',\n thumbTranslate: 'translate-x-5',\n container: 'text-base',\n }\n case 'lg':\n return {\n track: 'w-14 h-7',\n thumb: 'w-6 h-6',\n thumbTranslate: 'translate-x-7',\n container: 'text-lg',\n }\n default:\n return {\n track: 'w-11 h-6',\n thumb: 'w-5 h-5',\n thumbTranslate: 'translate-x-5',\n container: 'text-base',\n }\n }\n}\n\nconst getColorClasses = (color: Color, checked: boolean): string => {\n if (!checked) {\n return 'bg-gray-200'\n }\n\n const colorMap = {\n slate: 'bg-slate-500',\n gray: 'bg-gray-500',\n zinc: 'bg-zinc-500',\n red: 'bg-red-500',\n orange: 'bg-orange-500',\n yellow: 'bg-yellow-500',\n green: 'bg-green-500',\n blue: 'bg-blue-500',\n indigo: 'bg-indigo-500',\n purple: 'bg-purple-500',\n pink: 'bg-pink-500',\n }\n\n return colorMap[color] || colorMap.blue\n}\n\nexport const AtomicSwitch = React.forwardRef<HTMLInputElement, AtomicSwitchProps>(\n (\n {\n checked = false,\n disabled = false,\n size = 'md',\n color = 'blue',\n p,\n m,\n label,\n description,\n labelPosition = 'right',\n loading = false,\n className,\n onChange,\n id,\n ...rest\n },\n ref\n ) => {\n const generatedId = React.useId()\n const switchId = id || `switch-${generatedId}`\n const sizeClasses = getSizeClasses(size)\n const colorClasses = getColorClasses(color, checked)\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (!disabled && !loading) {\n onChange?.(event.target.checked, event)\n }\n }\n\n const containerClasses = cn(\n 'relative flex items-center',\n sizeClasses.container,\n getSpacingClass(p, 'p'),\n getSpacingClass(m, 'm'),\n disabled && 'opacity-50 cursor-not-allowed',\n\n className\n )\n\n const trackClasses = cn(\n 'relative inline-flex flex-shrink-0 rounded-full border-2 border-transparent transition-colors ease-in-out duration-200',\n sizeClasses.track,\n colorClasses,\n 'focus-within:outline-none focus-within:ring-2 focus-within:ring-offset-2',\n `focus-within:ring-${color}-500`,\n disabled || loading ? 'cursor-not-allowed' : 'cursor-pointer'\n )\n\n const thumbClasses = cn(\n 'pointer-events-none inline-block rounded-full bg-white shadow transform ring-0 transition ease-in-out duration-200',\n sizeClasses.thumb,\n checked ? sizeClasses.thumbTranslate : 'translate-x-0'\n )\n\n const switchElement = (\n <div className={trackClasses}>\n <input\n ref={ref}\n type=\"checkbox\"\n id={switchId}\n checked={checked}\n disabled={disabled || loading}\n onChange={handleChange}\n className=\"sr-only\"\n {...rest}\n />\n\n <span className={thumbClasses}>\n {loading && (\n <svg\n className=\"animate-spin -ml-1 -mt-1 h-3 w-3 text-gray-400\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n />\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n />\n </svg>\n )}\n </span>\n </div>\n )\n\n const labelElement = (label || description) && (\n <div className={cn('flex-1', labelPosition === 'left' ? 'mr-3' : 'ml-3')}>\n {label && (\n <label\n htmlFor={switchId}\n className={cn(\n 'block font-medium leading-5 text-gray-700',\n disabled || loading ? 'cursor-not-allowed' : 'cursor-pointer'\n )}\n >\n {label}\n </label>\n )}\n\n {description && <p className=\"text-sm leading-5 text-gray-500\">{description}</p>}\n </div>\n )\n\n return (\n <div className={containerClasses}>\n {labelPosition === 'left' && labelElement}\n {switchElement}\n {labelPosition === 'right' && labelElement}\n </div>\n )\n }\n)\n\nAtomicSwitch.displayName = 'AtomicSwitch'\n","'use client'\n\nimport React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { Loader2, type LucideIcon } from 'lucide-react'\nimport { cn } from '../../utils/cn'\n\nconst spinnerVariants = cva('animate-spin', {\n variants: {\n size: {\n xs: 'h-3 w-3',\n sm: 'h-4 w-4',\n default: 'h-5 w-5',\n lg: 'h-6 w-6',\n xl: 'h-8 w-8',\n xxl: 'h-12 w-12',\n },\n color: {\n default: 'text-foreground',\n primary: 'text-primary',\n secondary: 'text-secondary-foreground',\n muted: 'text-muted-foreground',\n white: 'text-white',\n success: 'text-green-600',\n warning: 'text-amber-600',\n error: 'text-red-600',\n },\n },\n defaultVariants: {\n size: 'default',\n color: 'default',\n },\n})\n\nexport interface AtomicSpinnerProps\n extends Omit<React.SVGProps<SVGSVGElement>, 'color'>, VariantProps<typeof spinnerVariants> {\n /** Loading text to display alongside spinner */\n label?: string\n /** Show spinner inline with text */\n inline?: boolean\n /** Custom spinner icon */\n icon?: LucideIcon\n}\n\nconst AtomicSpinner = React.forwardRef<SVGSVGElement, AtomicSpinnerProps>(\n ({ className, size, color, label, inline = false, icon: Icon = Loader2, ...props }, ref) => {\n const spinner = (\n <Icon ref={ref} className={cn(spinnerVariants({ size, color }), className)} {...props} />\n )\n\n if (!label) {\n return spinner\n }\n\n return (\n <div className={cn('flex items-center gap-2', inline ? 'inline-flex' : 'flex')}>\n {spinner}\n <span\n className={cn(\n 'text-sm',\n color === 'muted'\n ? 'text-muted-foreground'\n : color === 'white'\n ? 'text-white'\n : color === 'primary'\n ? 'text-primary'\n : 'text-foreground'\n )}\n >\n {label}\n </span>\n </div>\n )\n }\n)\nAtomicSpinner.displayName = 'AtomicSpinner'\n\nexport const AtomicButtonSpinner = React.forwardRef<\n SVGSVGElement,\n Omit<AtomicSpinnerProps, 'size' | 'color'>\n>(({ className, ...props }, ref) => (\n <AtomicSpinner ref={ref} size=\"sm\" color=\"white\" className={cn('mr-2', className)} {...props} />\n))\nAtomicButtonSpinner.displayName = 'AtomicButtonSpinner'\n\nexport const AtomicPageSpinner = React.forwardRef<SVGSVGElement, Omit<AtomicSpinnerProps, 'size'>>(\n ({ className, ...props }, ref) => (\n <div className=\"flex items-center justify-center p-8\">\n <AtomicSpinner ref={ref} size=\"lg\" className={className} {...props} />\n </div>\n )\n)\nAtomicPageSpinner.displayName = 'AtomicPageSpinner'\n\nexport const AtomicInlineSpinner = React.forwardRef<\n SVGSVGElement,\n Omit<AtomicSpinnerProps, 'inline'>\n>(({ className, ...props }, ref) => (\n <AtomicSpinner ref={ref} inline size=\"sm\" color=\"muted\" className={className} {...props} />\n))\nAtomicInlineSpinner.displayName = 'AtomicInlineSpinner'\n\nexport { AtomicSpinner, spinnerVariants }\n","import React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\nconst badgeVariants = cva(\n 'inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\n {\n variants: {\n variant: {\n default: 'border-transparent bg-primary text-primary-foreground hover:bg-primary/80',\n secondary:\n 'border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80',\n destructive:\n 'border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80',\n outline: 'text-foreground border-current',\n success:\n 'border-transparent bg-green-100 text-green-800 dark:bg-green-900/20 dark:text-green-400',\n warning:\n 'border-transparent bg-amber-100 text-amber-800 dark:bg-amber-900/20 dark:text-amber-400',\n info: 'border-transparent bg-blue-100 text-blue-800 dark:bg-blue-900/20 dark:text-blue-400',\n gray: 'border-transparent bg-gray-100 text-gray-800 dark:bg-gray-900/20 dark:text-gray-400',\n },\n size: {\n sm: 'px-2 py-0.5 text-xs',\n default: 'px-2.5 py-0.5 text-xs',\n lg: 'px-3 py-1 text-sm',\n },\n shape: {\n default: 'rounded-full',\n rounded: 'rounded-md',\n square: 'rounded-none',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n shape: 'default',\n },\n }\n)\n\nexport interface AtomicBadgeProps\n extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {\n /** Icon to display on the left */\n leftIcon?: React.ReactNode\n /** Icon to display on the right */\n rightIcon?: React.ReactNode\n /** Show a dot indicator */\n dot?: boolean\n /** Dot color (overrides variant color) */\n dotColor?: string\n /** Make badge removable */\n removable?: boolean\n /** Callback when remove button is clicked */\n onRemove?: () => void\n /** Custom remove icon */\n removeIcon?: React.ReactNode\n}\n\nconst AtomicBadge = React.forwardRef<HTMLDivElement, AtomicBadgeProps>(\n (\n {\n className,\n variant,\n size,\n shape,\n leftIcon,\n rightIcon,\n dot = false,\n dotColor,\n removable = false,\n onRemove,\n removeIcon,\n children,\n ...props\n },\n ref\n ) => {\n const iconSize = size === 'sm' ? 'h-3 w-3' : size === 'lg' ? 'h-4 w-4' : 'h-3.5 w-3.5'\n const iconClasses =\n size === 'sm'\n ? '[&>*]:h-3 [&>*]:w-3'\n : size === 'lg'\n ? '[&>*]:h-4 [&>*]:w-4'\n : '[&>*]:h-3.5 [&>*]:w-3.5'\n const dotSize = size === 'sm' ? 'h-1.5 w-1.5' : size === 'lg' ? 'h-2.5 w-2.5' : 'h-2 w-2'\n\n return (\n <div ref={ref} className={cn(badgeVariants({ variant, size, shape }), className)} {...props}>\n {dot && (\n <span\n className={cn(\n 'mr-1.5 rounded-full',\n dotSize,\n !dotColor &&\n (variant === 'success'\n ? 'bg-green-600'\n : variant === 'warning'\n ? 'bg-amber-600'\n : variant === 'info'\n ? 'bg-blue-600'\n : variant === 'destructive'\n ? 'bg-red-600'\n : variant === 'gray'\n ? 'bg-gray-600'\n : 'bg-current')\n )}\n style={dotColor ? { backgroundColor: dotColor } : undefined}\n />\n )}\n\n {leftIcon && <span className={cn('mr-1 flex items-center', iconClasses)}>{leftIcon}</span>}\n\n {children}\n\n {rightIcon && !removable && (\n <span className={cn('ml-1 flex items-center', iconClasses)}>{rightIcon}</span>\n )}\n\n {removable && (\n <button\n type=\"button\"\n onClick={onRemove}\n className={cn(\n 'ml-1 flex items-center rounded-full hover:bg-black/10 dark:hover:bg-white/10',\n 'transition-colors focus:outline-none focus:ring-1 focus:ring-current',\n size === 'sm' ? 'p-0.5' : 'p-1'\n )}\n >\n {removeIcon ? (\n <span className={cn('flex items-center', iconClasses)}>{removeIcon}</span>\n ) : (\n <svg\n className={iconSize}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n )}\n </button>\n )}\n </div>\n )\n }\n)\nAtomicBadge.displayName = 'AtomicBadge'\n\nexport const AtomicStatusBadge = React.forwardRef<\n HTMLDivElement,\n Omit<AtomicBadgeProps, 'dot'> & { status: 'online' | 'offline' | 'busy' | 'away' }\n>(({ status, variant, ...props }, ref) => {\n const statusConfig = {\n online: { variant: 'success' as const, dot: true, children: 'Online' },\n offline: { variant: 'gray' as const, dot: true, children: 'Offline' },\n busy: { variant: 'destructive' as const, dot: true, children: 'Busy' },\n away: { variant: 'warning' as const, dot: true, children: 'Away' },\n }\n\n const config = statusConfig[status]\n\n return (\n <AtomicBadge ref={ref} variant={variant || config.variant} dot={config.dot} {...props}>\n {props.children || config.children}\n </AtomicBadge>\n )\n})\nAtomicStatusBadge.displayName = 'AtomicStatusBadge'\n\nexport const AtomicCountBadge = React.forwardRef<\n HTMLDivElement,\n Omit<AtomicBadgeProps, 'children'> & { count: number; max?: number }\n>(({ count, max = 99, ...props }, ref) => {\n const displayCount = count > max ? `${max}+` : count.toString()\n\n if (count <= 0) return null\n\n return (\n <AtomicBadge ref={ref} variant=\"destructive\" size=\"sm\" {...props}>\n {displayCount}\n </AtomicBadge>\n )\n})\nAtomicCountBadge.displayName = 'AtomicCountBadge'\n\nexport { AtomicBadge, badgeVariants }\n","import React from 'react'\nimport { LucideIcon } from 'lucide-react'\nimport { cn } from '../../utils'\n\ntype TagVariant =\n | 'default'\n | 'primary'\n | 'secondary'\n | 'success'\n | 'warning'\n | 'danger'\n | 'info'\n | 'outline'\n | 'ghost'\n | 'solid'\n\ntype TagSize = 'xs' | 'sm' | 'md' | 'lg'\n\ntype Color =\n | 'slate'\n | 'gray'\n | 'zinc'\n | 'red'\n | 'orange'\n | 'yellow'\n | 'green'\n | 'blue'\n | 'indigo'\n | 'purple'\n | 'pink'\n\ntype Spacing =\n | '0'\n | 'px'\n | '0.5'\n | '1'\n | '1.5'\n | '2'\n | '2.5'\n | '3'\n | '3.5'\n | '4'\n | '5'\n | '6'\n | '7'\n | '8'\n\ntype SpacingObject = {\n x?: Spacing\n y?: Spacing\n t?: Spacing\n r?: Spacing\n b?: Spacing\n l?: Spacing\n}\n\nexport interface AtomicTagProps extends React.HTMLAttributes<HTMLElement> {\n children: React.ReactNode\n variant?: TagVariant\n size?: TagSize\n color?: Color\n leftIcon?: LucideIcon\n rightIcon?: LucideIcon\n p?: Spacing | SpacingObject\n m?: Spacing | SpacingObject\n clickable?: boolean\n removable?: boolean\n onRemove?: () => void\n disabled?: boolean\n as?: 'span' | 'div' | 'button'\n}\n\nconst getSpacingClass = (spacing: Spacing | SpacingObject | undefined, prefix: string): string => {\n if (!spacing) return ''\n\n if (typeof spacing === 'string') {\n return `${prefix}-${spacing}`\n }\n\n const classes: string[] = []\n if (spacing.x !== undefined) classes.push(`${prefix}x-${spacing.x}`)\n if (spacing.y !== undefined) classes.push(`${prefix}y-${spacing.y}`)\n if (spacing.t !== undefined) classes.push(`${prefix}t-${spacing.t}`)\n if (spacing.r !== undefined) classes.push(`${prefix}r-${spacing.r}`)\n if (spacing.b !== undefined) classes.push(`${prefix}b-${spacing.b}`)\n if (spacing.l !== undefined) classes.push(`${prefix}l-${spacing.l}`)\n\n return classes.join(' ')\n}\n\nconst getVariantClasses = (variant: TagVariant, color?: Color): string => {\n const baseColor = color || 'gray'\n\n switch (variant) {\n case 'primary':\n return `bg-blue-500 text-white border-blue-500`\n case 'secondary':\n return `bg-gray-500 text-white border-gray-500`\n case 'success':\n return `bg-green-500 text-white border-green-500`\n case 'warning':\n return `bg-yellow-500 text-white border-yellow-500`\n case 'danger':\n return `bg-red-500 text-white border-red-500`\n case 'info':\n return `bg-blue-500 text-white border-blue-500`\n case 'outline':\n return `bg-transparent text-${baseColor}-700 border-${baseColor}-300 border`\n case 'ghost':\n return `bg-${baseColor}-100 text-${baseColor}-700 border-transparent`\n case 'solid':\n return `bg-${baseColor}-500 text-white border-${baseColor}-500`\n default:\n return `bg-gray-100 text-gray-800 border-gray-200 border`\n }\n}\n\nconst getSizeClasses = (size: TagSize): string => {\n switch (size) {\n case 'xs':\n return 'px-1.5 py-0.5 text-xs'\n case 'sm':\n return 'px-2 py-1 text-xs'\n case 'md':\n return 'px-2.5 py-1.5 text-sm'\n case 'lg':\n return 'px-3 py-2 text-base'\n default:\n return 'px-2.5 py-1.5 text-sm'\n }\n}\n\nconst getIconSize = (size: TagSize): number => {\n switch (size) {\n case 'xs':\n return 10\n case 'sm':\n return 12\n case 'md':\n return 14\n case 'lg':\n return 16\n default:\n return 14\n }\n}\n\nexport const AtomicTag = React.forwardRef<HTMLElement, AtomicTagProps>(\n (\n {\n children,\n variant = 'default',\n size = 'md',\n color,\n leftIcon: LeftIcon,\n rightIcon: RightIcon,\n p,\n m,\n clickable = false,\n removable = false,\n onRemove,\n disabled = false,\n as: Component = 'span',\n className,\n onClick,\n ...rest\n },\n ref\n ) => {\n const iconSize = getIconSize(size)\n\n const classes = cn(\n 'inline-flex items-center justify-center font-medium rounded-md transition-colors duration-200',\n getVariantClasses(variant, color),\n getSizeClasses(size),\n getSpacingClass(p, 'p'),\n getSpacingClass(m, 'm'),\n clickable &&\n !disabled && [\n 'cursor-pointer',\n 'hover:opacity-80',\n 'focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500',\n ],\n\n removable && !disabled && 'pr-1',\n\n disabled && 'opacity-50 cursor-not-allowed',\n\n className\n )\n\n const content = (\n <>\n {LeftIcon && (\n <LeftIcon size={iconSize} className={cn('flex-shrink-0', children ? 'mr-1.5' : '')} />\n )}\n\n {children && <span className=\"truncate\">{children}</span>}\n\n {RightIcon && (\n <RightIcon size={iconSize} className={cn('flex-shrink-0', children ? 'ml-1.5' : '')} />\n )}\n\n {removable && (\n <button\n type=\"button\"\n className={cn(\n 'flex-shrink-0 ml-1.5 rounded-full p-0.5',\n 'hover:bg-black hover:bg-opacity-20',\n 'focus:outline-none focus:bg-black focus:bg-opacity-20',\n disabled && 'cursor-not-allowed'\n )}\n onClick={e => {\n e.stopPropagation()\n if (!disabled) onRemove?.()\n }}\n disabled={disabled}\n aria-label=\"Remove\"\n >\n <svg className=\"w-3 h-3\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n )}\n </>\n )\n\n const handleClick = (e: React.MouseEvent<HTMLElement>) => {\n if (!disabled) {\n onClick?.(e)\n }\n }\n\n return React.createElement(\n Component,\n {\n ref: ref as React.Ref<HTMLSpanElement>,\n className: classes,\n onClick: clickable ? handleClick : undefined,\n ...rest,\n },\n content\n )\n }\n)\n\nAtomicTag.displayName = 'AtomicTag'\n","import Link from 'next/link'\nimport { cn } from '../../utils/cn'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport React from 'react'\n\nconst linkVariants = cva(\n 'transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n {\n variants: {\n variant: {\n default: 'text-foreground hover:text-foreground/80',\n primary: 'text-primary hover:text-primary/80',\n secondary: 'text-secondary-foreground hover:text-secondary-foreground/80',\n muted: 'text-muted-foreground hover:text-foreground',\n destructive: 'text-destructive hover:text-destructive/80',\n ghost: 'text-foreground hover:bg-accent hover:text-accent-foreground',\n underline: 'text-primary underline underline-offset-4 hover:text-primary/80',\n button:\n 'inline-flex items-center justify-center rounded-md text-sm font-medium h-10 px-4 py-2 bg-primary text-primary-foreground hover:bg-primary/90',\n },\n size: {\n default: '',\n sm: 'text-sm',\n lg: 'text-lg',\n xl: 'text-xl',\n },\n weight: {\n normal: 'font-normal',\n medium: 'font-medium',\n semibold: 'font-semibold',\n bold: 'font-bold',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n weight: 'normal',\n },\n }\n)\n\nexport interface AtomicLinkProps\n extends Omit<React.ComponentProps<typeof Link>, 'className'>, VariantProps<typeof linkVariants> {\n className?: string\n external?: boolean\n showExternalIcon?: boolean\n prefetch?: boolean\n externalIcon?: React.ReactNode\n}\n\nexport const AtomicLink = React.forwardRef<React.ElementRef<typeof Link>, AtomicLinkProps>(\n (\n {\n className,\n variant,\n size,\n weight,\n external = false,\n showExternalIcon = false,\n prefetch = true,\n externalIcon,\n children,\n href,\n ...props\n },\n ref\n ) => {\n const isExternalUrl =\n typeof href === 'string' && (href.startsWith('http') || href.startsWith('//'))\n const shouldBeExternal = external || isExternalUrl\n\n const linkProps = {\n className: cn(linkVariants({ variant, size, weight }), className),\n ref,\n ...props,\n }\n\n const content = (\n <>\n {children}\n {shouldBeExternal && showExternalIcon && (\n <span className=\"ml-1 inline-block\">\n {externalIcon || (\n <svg\n className=\"h-3 w-3\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14\"\n />\n </svg>\n )}\n </span>\n )}\n </>\n )\n\n if (shouldBeExternal) {\n return (\n <a href={href as string} target=\"_blank\" rel=\"noopener noreferrer\" {...linkProps}>\n {content}\n </a>\n )\n }\n\n return (\n <Link href={href} prefetch={prefetch} {...linkProps}>\n {content}\n </Link>\n )\n }\n)\n\nAtomicLink.displayName = 'AtomicLink'\n\nexport { linkVariants }\n","import React from 'react'\nimport { cn } from '../../utils'\n\ntype Display = 'block' | 'inline' | 'inline-block' | 'flex' | 'inline-flex' | 'grid' | 'hidden'\ntype AlignItems = 'stretch' | 'start' | 'center' | 'end' | 'baseline'\ntype JustifyContent = 'start' | 'end' | 'center' | 'between' | 'around' | 'evenly'\ntype FlexDirection = 'row' | 'row-reverse' | 'col' | 'col-reverse'\ntype FlexWrap = 'wrap' | 'wrap-reverse' | 'nowrap'\n\ntype Spacing =\n | '0'\n | 'px'\n | '0.5'\n | '1'\n | '1.5'\n | '2'\n | '2.5'\n | '3'\n | '3.5'\n | '4'\n | '5'\n | '6'\n | '7'\n | '8'\n | '9'\n | '10'\n | '11'\n | '12'\n | '14'\n | '16'\n | '20'\n | '24'\n | '28'\n | '32'\n | '36'\n | '40'\n | '44'\n | '48'\n | '52'\n | '56'\n | '60'\n | '64'\n | '72'\n | '80'\n | '96'\n\ntype SpacingObject = {\n x?: Spacing\n y?: Spacing\n t?: Spacing\n r?: Spacing\n b?: Spacing\n l?: Spacing\n}\n\ntype Size = Spacing | 'auto' | 'full' | 'screen' | 'min' | 'max' | 'fit'\n\ntype Color =\n | 'transparent'\n | 'current'\n | 'black'\n | 'white'\n | 'slate-50'\n | 'slate-100'\n | 'slate-200'\n | 'slate-300'\n | 'slate-400'\n | 'slate-500'\n | 'slate-600'\n | 'slate-700'\n | 'slate-800'\n | 'slate-900'\n | 'gray-50'\n | 'gray-100'\n | 'gray-200'\n | 'gray-300'\n | 'gray-400'\n | 'gray-500'\n | 'gray-600'\n | 'gray-700'\n | 'gray-800'\n | 'gray-900'\n | 'zinc-50'\n | 'zinc-100'\n | 'zinc-200'\n | 'zinc-300'\n | 'zinc-400'\n | 'zinc-500'\n | 'zinc-600'\n | 'zinc-700'\n | 'zinc-800'\n | 'zinc-900'\n | 'red-50'\n | 'red-100'\n | 'red-200'\n | 'red-300'\n | 'red-400'\n | 'red-500'\n | 'red-600'\n | 'red-700'\n | 'red-800'\n | 'red-900'\n | 'orange-50'\n | 'orange-100'\n | 'orange-200'\n | 'orange-300'\n | 'orange-400'\n | 'orange-500'\n | 'orange-600'\n | 'orange-700'\n | 'orange-800'\n | 'orange-900'\n | 'yellow-50'\n | 'yellow-100'\n | 'yellow-200'\n | 'yellow-300'\n | 'yellow-400'\n | 'yellow-500'\n | 'yellow-600'\n | 'yellow-700'\n | 'yellow-800'\n | 'yellow-900'\n | 'green-50'\n | 'green-100'\n | 'green-200'\n | 'green-300'\n | 'green-400'\n | 'green-500'\n | 'green-600'\n | 'green-700'\n | 'green-800'\n | 'green-900'\n | 'blue-50'\n | 'blue-100'\n | 'blue-200'\n | 'blue-300'\n | 'blue-400'\n | 'blue-500'\n | 'blue-600'\n | 'blue-700'\n | 'blue-800'\n | 'blue-900'\n | 'indigo-50'\n | 'indigo-100'\n | 'indigo-200'\n | 'indigo-300'\n | 'indigo-400'\n | 'indigo-500'\n | 'indigo-600'\n | 'indigo-700'\n | 'indigo-800'\n | 'indigo-900'\n | 'purple-50'\n | 'purple-100'\n | 'purple-200'\n | 'purple-300'\n | 'purple-400'\n | 'purple-500'\n | 'purple-600'\n | 'purple-700'\n | 'purple-800'\n | 'purple-900'\n | 'pink-50'\n | 'pink-100'\n | 'pink-200'\n | 'pink-300'\n | 'pink-400'\n | 'pink-500'\n | 'pink-600'\n | 'pink-700'\n | 'pink-800'\n | 'pink-900'\n\ntype BorderRadius = 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'\ntype Shadow = 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'inner'\ntype Position = 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky'\n\nexport interface AtomicDivProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'color'> {\n d?: Display\n align?: AlignItems\n justify?: JustifyContent\n flexDir?: FlexDirection\n flexWrap?: FlexWrap\n flexGrow?: number\n flexShrink?: number\n order?: number\n p?: Spacing | SpacingObject\n m?: Spacing | SpacingObject\n w?: Size\n h?: Size\n minW?: Size\n minH?: Size\n maxW?: Size\n maxH?: Size\n bg?: Color\n bgGradient?: string\n border?: boolean | string\n borderColor?: Color\n rounded?: BorderRadius\n shadow?: Shadow\n position?: Position\n top?: Spacing\n right?: Spacing\n bottom?: Spacing\n left?: Spacing\n cursor?: 'auto' | 'default' | 'pointer' | 'wait' | 'text' | 'move' | 'help' | 'not-allowed'\n as?: keyof JSX.IntrinsicElements\n children?: React.ReactNode\n}\n\nconst getSpacingClass = (spacing: Spacing | SpacingObject | undefined, prefix: string): string => {\n if (!spacing) return ''\n\n if (typeof spacing === 'string') {\n return `${prefix}-${spacing}`\n }\n\n const classes: string[] = []\n if (spacing.x !== undefined) classes.push(`${prefix}x-${spacing.x}`)\n if (spacing.y !== undefined) classes.push(`${prefix}y-${spacing.y}`)\n if (spacing.t !== undefined) classes.push(`${prefix}t-${spacing.t}`)\n if (spacing.r !== undefined) classes.push(`${prefix}r-${spacing.r}`)\n if (spacing.b !== undefined) classes.push(`${prefix}b-${spacing.b}`)\n if (spacing.l !== undefined) classes.push(`${prefix}l-${spacing.l}`)\n\n return classes.join(' ')\n}\n\nexport const AtomicDiv = React.forwardRef<HTMLDivElement, AtomicDivProps>(\n (\n {\n d,\n align,\n justify,\n flexDir,\n flexWrap,\n flexGrow,\n flexShrink,\n order,\n p,\n m,\n w,\n h,\n minW,\n minH,\n maxW,\n maxH,\n bg,\n bgGradient,\n border,\n borderColor,\n rounded,\n shadow,\n position,\n top,\n right,\n bottom,\n left,\n cursor,\n as: Component = 'div',\n className,\n children,\n ...rest\n },\n ref\n ) => {\n const classes = cn(\n d,\n align && `items-${align}`,\n justify && `justify-${justify}`,\n flexDir && `flex-${flexDir}`,\n flexWrap && `flex-${flexWrap}`,\n flexGrow !== undefined && `flex-grow-${flexGrow}`,\n flexShrink !== undefined && `flex-shrink-${flexShrink}`,\n order !== undefined && `order-${order}`,\n getSpacingClass(p, 'p'),\n getSpacingClass(m, 'm'),\n w && `w-${w}`,\n h && `h-${h}`,\n minW && `min-w-${minW}`,\n minH && `min-h-${minH}`,\n maxW && `max-w-${maxW}`,\n maxH && `max-h-${maxH}`,\n bg && `bg-${bg}`,\n bgGradient,\n border === true && 'border',\n typeof border === 'string' && border,\n borderColor && `border-${borderColor}`,\n rounded && `rounded-${rounded}`,\n shadow && `shadow-${shadow}`,\n position,\n top !== undefined && `top-${top}`,\n right !== undefined && `right-${right}`,\n bottom !== undefined && `bottom-${bottom}`,\n left !== undefined && `left-${left}`,\n cursor && `cursor-${cursor}`,\n className\n )\n\n return React.createElement(\n Component,\n {\n ref,\n className: classes,\n ...rest,\n },\n children\n )\n }\n)\n\nAtomicDiv.displayName = 'AtomicDiv'\n","'use client'\n\nimport React, { createContext, useContext, useEffect, useState } from 'react'\n\ntype Theme = 'light' | 'dark' | 'system'\n\ninterface AtomicThemeProviderContextProps {\n theme: Theme\n setTheme: (theme: Theme) => void\n actualTheme: 'light' | 'dark'\n}\n\nconst AtomicThemeProviderContext = createContext<AtomicThemeProviderContextProps | undefined>(\n undefined\n)\n\nexport interface AtomicThemeProviderProps {\n children: React.ReactNode\n /** Default theme to use */\n defaultTheme?: Theme\n /** Storage key for theme persistence */\n storageKey?: string\n /** Custom attribute name for theme */\n attribute?: string\n /** Enable system theme detection */\n enableSystem?: boolean\n /** Disable theme transitions */\n disableTransitionOnChange?: boolean\n}\n\nconst getSystemTheme = (): 'light' | 'dark' => {\n if (typeof window === 'undefined') return 'light'\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'\n}\n\nconst AtomicThemeProvider: React.FC<AtomicThemeProviderProps> = ({\n children,\n defaultTheme = 'system',\n storageKey = 'atomic-theme',\n attribute = 'data-theme',\n enableSystem = true,\n disableTransitionOnChange = false,\n}) => {\n const [theme, setThemeState] = useState<Theme>(() => {\n if (typeof window === 'undefined') return defaultTheme\n\n try {\n const stored = localStorage.getItem(storageKey)\n if (stored && ['light', 'dark', 'system'].includes(stored)) {\n return stored as Theme\n }\n } catch {}\n\n return defaultTheme\n })\n\n const [actualTheme, setActualTheme] = useState<'light' | 'dark'>('light')\n\n const setTheme = (newTheme: Theme) => {\n try {\n localStorage.setItem(storageKey, newTheme)\n } catch {}\n\n setThemeState(newTheme)\n }\n\n useEffect(() => {\n const root = window.document.documentElement\n const resolvedTheme =\n theme === 'system' && enableSystem ? getSystemTheme() : (theme as 'light' | 'dark')\n\n setActualTheme(resolvedTheme)\n\n if (disableTransitionOnChange) {\n const css = document.createElement('style')\n css.appendChild(\n document.createTextNode(\n '* { transition: none !important; transform: none !important; animation: none !important; }'\n )\n )\n document.head.appendChild(css)\n\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n document.head.removeChild(css)\n })\n })\n }\n\n root.setAttribute(attribute, resolvedTheme)\n root.classList.remove('light', 'dark')\n root.classList.add(resolvedTheme)\n }, [theme, attribute, enableSystem, disableTransitionOnChange])\n\n useEffect(() => {\n if (!enableSystem || theme !== 'system') return\n\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)')\n\n const handleChange = () => {\n const systemTheme = getSystemTheme()\n setActualTheme(systemTheme)\n\n const root = window.document.documentElement\n root.setAttribute(attribute, systemTheme)\n root.classList.remove('light', 'dark')\n root.classList.add(systemTheme)\n }\n\n mediaQuery.addEventListener('change', handleChange)\n return () => mediaQuery.removeEventListener('change', handleChange)\n }, [theme, attribute, enableSystem])\n\n const value = {\n theme,\n setTheme,\n actualTheme,\n }\n\n return (\n <AtomicThemeProviderContext.Provider value={value}>\n {children}\n </AtomicThemeProviderContext.Provider>\n )\n}\n\nconst useAtomicTheme = () => {\n const context = useContext(AtomicThemeProviderContext)\n\n if (context === undefined) {\n throw new Error('useAtomicTheme must be used within an AtomicThemeProvider')\n }\n\n return context\n}\n\nexport { AtomicThemeProvider, useAtomicTheme, type AtomicThemeProviderContextProps }\n","'use client'\n\nexport * from './tokens'\nexport * from './utils'\nexport * from './atoms'\n\nexport const VERSION = '2.1.0'\n"]}