@12min/ds 0.1.0 → 3.0.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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../index.native.ts","../src/tokens/colors.ts","../src/themes/lightTheme.ts","../src/themes/darkTheme.ts"],"sourcesContent":["export * from './src/tokens'\nexport * from './src/themes'\n","export const colors = {\n brand: {\n primary: '#FF6B35',\n secondary: '#1A1A2E',\n },\n\n neutral: {\n 0: '#FFFFFF',\n 50: '#FAFAFA',\n 100: '#F5F5F5',\n 200: '#E5E5E5',\n 300: '#D4D4D4',\n 400: '#A3A3A3',\n 500: '#737373',\n 600: '#525252',\n 700: '#404040',\n 800: '#262626',\n 900: '#121212',\n },\n\n success: {\n light: '#4ADE80',\n default: '#22C55E',\n dark: '#16A34A',\n },\n\n error: {\n light: '#F87171',\n default: '#EF4444',\n dark: '#DC2626',\n },\n\n warning: {\n light: '#FCD34D',\n default: '#F59E0B',\n dark: '#D97706',\n },\n\n info: {\n light: '#60A5FA',\n default: '#3B82F6',\n dark: '#2563EB',\n },\n} as const\n\nexport type Colors = typeof colors\n","import { colors } from '../tokens/colors'\nimport type { Theme } from './types'\n\nexport const lightTheme: Theme = {\n background: colors.neutral[0],\n surface: colors.neutral[100],\n border: colors.neutral[200],\n onBackground: colors.neutral[900],\n onSurface: colors.neutral[800],\n muted: colors.neutral[500],\n primary: colors.brand.primary,\n secondary: colors.brand.secondary,\n success: colors.success.default,\n error: colors.error.default,\n warning: colors.warning.default,\n info: colors.info.default,\n}\n","import { colors } from '../tokens/colors'\nimport type { Theme } from './types'\n\nexport const darkTheme: Theme = {\n background: colors.neutral[900],\n surface: colors.neutral[800],\n border: colors.neutral[700],\n onBackground: colors.neutral[0],\n onSurface: colors.neutral[100],\n muted: colors.neutral[400],\n primary: colors.brand.primary,\n secondary: colors.brand.secondary,\n success: colors.success.light,\n error: colors.error.light,\n warning: colors.warning.light,\n info: colors.info.light,\n} as const\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAO,IAAM,SAAS;AAAA,EACpB,OAAO;AAAA,IACL,SAAW;AAAA,IACX,WAAW;AAAA,EACb;AAAA,EAEA,SAAS;AAAA,IACP,GAAK;AAAA,IACL,IAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,EACP;AAAA,EAEA,SAAS;AAAA,IACP,OAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAS;AAAA,EACX;AAAA,EAEA,OAAO;AAAA,IACL,OAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAS;AAAA,EACX;AAAA,EAEA,SAAS;AAAA,IACP,OAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAS;AAAA,EACX;AAAA,EAEA,MAAM;AAAA,IACJ,OAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAS;AAAA,EACX;AACF;;;ACxCO,IAAM,aAAoB;AAAA,EAC/B,YAAc,OAAO,QAAQ,CAAC;AAAA,EAC9B,SAAc,OAAO,QAAQ,GAAG;AAAA,EAChC,QAAc,OAAO,QAAQ,GAAG;AAAA,EAChC,cAAc,OAAO,QAAQ,GAAG;AAAA,EAChC,WAAc,OAAO,QAAQ,GAAG;AAAA,EAChC,OAAc,OAAO,QAAQ,GAAG;AAAA,EAChC,SAAc,OAAO,MAAM;AAAA,EAC3B,WAAc,OAAO,MAAM;AAAA,EAC3B,SAAc,OAAO,QAAQ;AAAA,EAC7B,OAAc,OAAO,MAAM;AAAA,EAC3B,SAAc,OAAO,QAAQ;AAAA,EAC7B,MAAc,OAAO,KAAK;AAC5B;;;ACbO,IAAM,YAAmB;AAAA,EAC9B,YAAe,OAAO,QAAQ,GAAG;AAAA,EACjC,SAAe,OAAO,QAAQ,GAAG;AAAA,EACjC,QAAe,OAAO,QAAQ,GAAG;AAAA,EACjC,cAAe,OAAO,QAAQ,CAAC;AAAA,EAC/B,WAAe,OAAO,QAAQ,GAAG;AAAA,EACjC,OAAe,OAAO,QAAQ,GAAG;AAAA,EACjC,SAAe,OAAO,MAAM;AAAA,EAC5B,WAAe,OAAO,MAAM;AAAA,EAC5B,SAAe,OAAO,QAAQ;AAAA,EAC9B,OAAe,OAAO,MAAM;AAAA,EAC5B,SAAe,OAAO,QAAQ;AAAA,EAC9B,MAAe,OAAO,KAAK;AAC7B;","names":[]}
1
+ {"version":3,"sources":["../index.native.ts","../src/tokens/colors.ts","../src/tokens/typography.ts","../src/tokens/spacing.ts","../src/tokens/grid.ts","../src/tokens/radius.ts","../src/tokens/borderWidth.ts","../src/tokens/shadow.ts","../src/tokens/opacity.ts","../src/themes/lightTheme.ts","../src/themes/darkTheme.ts","../src/context/ThemeProvider.tsx","../src/components/Button/Button.native.tsx","../src/components/Button/Button.styles.ts","../src/components/ButtonIcon/ButtonIcon.native.tsx","../src/components/DismissButton/DismissButton.native.tsx","../src/components/Chip/Chip.native.tsx","../src/components/Chip/Chip.styles.ts","../src/components/Alert/Alert.native.tsx","../src/components/ProgressBar/ProgressBar.native.tsx","../src/components/ProgressBar/ProgressBar.styles.ts","../src/components/Input/Input.native.tsx","../src/components/Input/Input.styles.ts","../src/components/InputField/InputField.native.tsx","../src/components/Checkbox/Checkbox.native.tsx","../src/components/Checkbox/Checkbox.styles.ts","../src/components/ToggleSwitch/ToggleSwitch.native.tsx","../src/components/RadioGroup/RadioGroup.native.tsx","../src/components/ChoiceCard/ChoiceCard.native.tsx","../src/components/ListItem/ListItem.native.tsx","../src/components/Stepper/Stepper.native.tsx","../src/components/Stepper/Stepper.styles.ts","../src/components/RatingScale/RatingScale.native.tsx","../src/components/RatingScale/RatingScale.styles.ts"],"sourcesContent":["export * from './src/tokens'\nexport * from './src/themes'\nexport { DSThemeProvider, useTheme } from './src/context/ThemeProvider'\nexport { Button } from './src/components/Button/Button.native'\nexport { ButtonIcon } from './src/components/ButtonIcon/ButtonIcon.native'\nexport { DismissButton } from './src/components/DismissButton/DismissButton.native'\nexport { Chip } from './src/components/Chip/Chip.native'\nexport { Alert } from './src/components/Alert/Alert.native'\nexport { ProgressBar } from './src/components/ProgressBar/ProgressBar.native'\nexport { Input } from './src/components/Input/Input.native'\nexport { InputField } from './src/components/InputField/InputField.native'\nexport { Checkbox } from './src/components/Checkbox/Checkbox.native'\nexport { ToggleSwitch } from './src/components/ToggleSwitch/ToggleSwitch.native'\nexport { RadioGroup } from './src/components/RadioGroup/RadioGroup.native'\nexport { ChoiceCard } from './src/components/ChoiceCard/ChoiceCard.native'\nexport { ListItem } from './src/components/ListItem/ListItem.native'\nexport { Stepper } from './src/components/Stepper/Stepper.native'\nexport { RatingScale } from './src/components/RatingScale/RatingScale.native'\n","export const colors = {\n marianBlue: {\n 50: '#FAFBFF',\n 100: '#F6F8FF',\n 200: '#E1E7FF',\n 300: '#C3CCF7',\n 400: '#94A5F2',\n 500: '#697DD6',\n 600: '#4357AD',\n 700: '#31428B',\n 800: '#25326A',\n 900: '#131937',\n },\n\n midnight: {\n 50: '#707070',\n 100: '#5C5C5C',\n 200: '#525252',\n 300: '#474747',\n 400: '#3D3D3D',\n 500: '#333333',\n 600: '#292929',\n 700: '#161616',\n 800: '#141414',\n 900: '#0A0A0A',\n },\n\n gray: {\n 15: '#F4F5F8',\n 25: '#EDEEF1',\n 35: '#DDE0E6',\n 50: '#B1B5BE',\n 100: '#A6ABB5',\n 200: '#9BA0AB',\n 300: '#9095A2',\n 400: '#858B99',\n 500: '#7A8190',\n 600: '#6F7685',\n 700: '#5E6471',\n 800: '#5D636F',\n 900: '#545964',\n },\n\n amber: {\n 50: '#FFFBEB',\n 100: '#FEF3C7',\n 200: '#FDE68A',\n 300: '#FCD34D',\n 400: '#FBBF24',\n 500: '#F59E0B',\n 600: '#D97706',\n 700: '#B45309',\n 800: '#92400E',\n 900: '#78350F',\n text: '#BA5C0A',\n },\n\n yellow: {\n 50: '#FFF2D6',\n 100: '#FFECC2',\n 200: '#FFE5AD',\n 300: '#FFDF99',\n 400: '#FFD885',\n 500: '#FFD270',\n 600: '#FFCB5C',\n 700: '#FFC140',\n 800: '#FFBE33',\n 900: '#FFB81F',\n },\n\n ketchup: {\n 50: '#FEF2F2',\n 100: '#FEE2E2',\n 200: '#FECACA',\n 300: '#FCA5A5',\n 400: '#F87171',\n 500: '#EF4444',\n 600: '#DC2626',\n 700: '#B91C1C',\n 800: '#991B1B',\n 900: '#7F1D1D',\n text: '#D91F3C',\n },\n\n green: {\n 50: '#F2FDF4',\n 100: '#E5FBE9',\n 200: '#C7F4D0',\n 300: '#99E5AC',\n 400: '#5FCD80',\n 500: '#36B260',\n 600: '#258F4B',\n 700: '#1B6F3B',\n 800: '#145430',\n 900: '#0E3622',\n text: '#0E8745',\n },\n\n blue: {\n 50: '#EFF6FF',\n 100: '#DBEAFE',\n 200: '#BFDBFE',\n 300: '#93C5FD',\n 400: '#60A5FA',\n 500: '#3B82F6',\n 600: '#2563EB',\n 700: '#1D4ED8',\n 800: '#1E40AF',\n 900: '#1E3A8A',\n text: '#1E40AF',\n },\n\n // Single brand accent green — the vibrant tone that was previously green/300\n // before the green scale was retuned to muted values in the Figma v2 palette.\n brandGreen: '#6DFFB4',\n\n overlayBlack: {\n 5: '#0000000D',\n 8: '#00000014',\n 12: '#0000001F',\n 16: '#00000029',\n },\n\n overlayWhite: {\n 5: '#FFFFFF0D',\n 8: '#FFFFFF14',\n 12: '#FFFFFF1F',\n 16: '#FFFFFF29',\n },\n\n white: '#FFFFFF',\n black: '#000000',\n} as const\n\nexport type Colors = typeof colors\n","export const typography = {\n display1: { fontFamily: 'Poppins', fontSize: 32, fontWeight: '700', lineHeight: 40, letterSpacing: -1, textTransform: 'none' },\n display2: { fontFamily: 'Poppins', fontSize: 32, fontWeight: '700', lineHeight: 40, letterSpacing: -1, textTransform: 'none' },\n h1: { fontFamily: 'Poppins', fontSize: 24, fontWeight: '700', lineHeight: 32, letterSpacing: -1, textTransform: 'none' },\n h2: { fontFamily: 'Poppins', fontSize: 20, fontWeight: '700', lineHeight: 28, letterSpacing: 0, textTransform: 'none' },\n h3: { fontFamily: 'Poppins', fontSize: 16, fontWeight: '600', lineHeight: 24, letterSpacing: 0, textTransform: 'none' },\n bodyLarge: { fontFamily: 'Inter', fontSize: 16, fontWeight: '500', lineHeight: 24, letterSpacing: 0, textTransform: 'none' },\n bodyDefault: { fontFamily: 'Inter', fontSize: 14, fontWeight: '500', lineHeight: 20, letterSpacing: 0, textTransform: 'none' },\n bodySmall: { fontFamily: 'Inter', fontSize: 12, fontWeight: '400', lineHeight: 16, letterSpacing: 0.2, textTransform: 'none' },\n labelLarge: { fontFamily: 'Inter', fontSize: 16, fontWeight: '600', lineHeight: 20, letterSpacing: 0, textTransform: 'none' },\n labelDefault: { fontFamily: 'Inter', fontSize: 14, fontWeight: '600', lineHeight: 20, letterSpacing: 0, textTransform: 'none' },\n labelSmall: { fontFamily: 'Inter', fontSize: 12, fontWeight: '600', lineHeight: 16, letterSpacing: 0.2, textTransform: 'none' },\n labelTiny: { fontFamily: 'Inter', fontSize: 10, fontWeight: '600', lineHeight: 14, letterSpacing: 0, textTransform: 'none' },\n caption: { fontFamily: 'Inter', fontSize: 12, fontWeight: '500', lineHeight: 16, letterSpacing: 0.5, textTransform: 'none' },\n captionUppercase: { fontFamily: 'Inter', fontSize: 12, fontWeight: '500', lineHeight: 16, letterSpacing: 0.5, textTransform: 'uppercase' },\n overline: { fontFamily: 'Inter', fontSize: 10, fontWeight: '600', lineHeight: 16, letterSpacing: 8, textTransform: 'uppercase' },\n buttonLarge: { fontFamily: 'Inter', fontSize: 16, fontWeight: '600', lineHeight: 20, letterSpacing: 0, textTransform: 'none' },\n buttonDefault: { fontFamily: 'Inter', fontSize: 14, fontWeight: '600', lineHeight: 20, letterSpacing: 0, textTransform: 'none' },\n buttonSmall: { fontFamily: 'Inter', fontSize: 12, fontWeight: '600', lineHeight: 16, letterSpacing: 0, textTransform: 'none' },\n} as const\n\nexport type Typography = typeof typography\n","export const spacing = {\n unit: 4,\n gap: {\n '0.5': 2,\n '1': 4,\n '2': 8,\n '3': 12,\n '4': 16,\n '5': 20,\n '6': 24,\n '8': 32,\n '10': 40,\n '12': 48,\n '14': 56,\n '16': 64,\n '18': 72,\n '20': 80,\n '22': 88,\n '24': 96,\n },\n screen: {\n x: 16,\n y: 24,\n },\n} as const\n\nexport type Spacing = typeof spacing\n","export const grid = {\n // 8px square baseline — line-height/* steps 16/24/32/40 snap; 20 and 28 land on a half-cell\n baseline: 8,\n breakpoints: {\n mobile: 0,\n tablet: 768,\n desktop: 1024,\n },\n columns: {\n mobile: 4,\n tablet: 8,\n desktop: 12,\n },\n gutter: {\n mobile: 8,\n tablet: 16,\n desktop: 24,\n },\n margin: {\n mobile: 20,\n tablet: 24,\n desktop: 32,\n },\n} as const\n\nexport type Grid = typeof grid\n","export const radius = {\n none: 0,\n sm: 8,\n md: 12,\n lg: 16,\n xl: 20,\n '2xl': 24,\n full: 9999,\n\n button: 16,\n card: 20,\n input: 12,\n chip: 9999,\n badge: 8,\n} as const\n\nexport type Radius = typeof radius\n","export const borderWidth = {\n default: 1,\n strong: 1.5,\n heavy: 2,\n} as const\n\nexport type BorderWidth = typeof borderWidth\n","export const shadow = {\n sm: { offsetX: 0, offsetY: 1, blur: 3, spread: 0, color: '#000000', opacity: { light: 0.08, dark: 0.40 } },\n md: { offsetX: 0, offsetY: 4, blur: 12, spread: 0, color: '#000000', opacity: { light: 0.10, dark: 0.50 } },\n lg: { offsetX: 0, offsetY: 8, blur: 24, spread: -4, color: '#000000', opacity: { light: 0.12, dark: 0.60 } },\n} as const\n\nexport type Shadow = typeof shadow\n","export const opacity = {\n disabled: 0.4,\n hover: 0.08,\n pressed: 0.12,\n} as const\n\nexport type Opacity = typeof opacity\n","import { colors } from '../tokens/colors'\nimport type { Theme } from './types'\n\nexport const lightTheme: Theme = {\n bg: {\n primary: colors.marianBlue[600],\n primaryHover: colors.marianBlue[700],\n primaryPressed: colors.marianBlue[800],\n primarySubtle: colors.marianBlue[200],\n primarySubtleHover: colors.marianBlue[300],\n primarySubtlePressed: colors.marianBlue[400],\n surface: colors.white,\n surfaceRaised: colors.marianBlue[50],\n surfaceHover: colors.gray[15],\n surfacePressed: colors.gray[35],\n overlay: colors.marianBlue[900],\n overlaySubtle: colors.overlayBlack[8],\n overlaySubtleHover: colors.overlayBlack[12],\n overlaySubtlePressed: colors.overlayBlack[16],\n success: colors.green[600],\n successSubtle: colors.green[100],\n error: colors.ketchup[600],\n errorSubtle: colors.ketchup[100],\n warning: colors.amber[500],\n warningSubtle: colors.amber[100],\n info: colors.blue[500],\n infoSubtle: colors.blue[100],\n highlight: colors.brandGreen,\n accent: colors.amber[500],\n accentSubtle: colors.amber[100],\n disabled: colors.gray[25],\n },\n text: {\n primary: colors.marianBlue[900],\n secondary: colors.gray[700],\n inverse: colors.white,\n brand: colors.marianBlue[600],\n link: colors.marianBlue[600],\n placeholder: colors.gray[400],\n success: colors.green.text,\n error: colors.ketchup.text,\n warning: colors.amber.text,\n info: colors.blue.text,\n highlight: colors.marianBlue[900],\n accent: colors.amber.text,\n disabled: colors.gray[400],\n onSuccess: colors.white,\n onError: colors.white,\n onWarning: colors.midnight[900],\n onHighlight: colors.midnight[900],\n },\n border: {\n default: colors.marianBlue[200],\n strong: colors.marianBlue[600],\n subtle: colors.overlayBlack[5],\n focus: colors.black,\n accent: colors.amber[700],\n success: colors.green.text,\n error: colors.ketchup[600],\n warning: colors.amber[700],\n info: colors.blue[600],\n disabled: colors.gray[50],\n },\n icon: {\n primary: colors.marianBlue[900],\n secondary: colors.gray[600],\n inverse: colors.white,\n brand: colors.marianBlue[600],\n accent: colors.amber[700],\n success: colors.green.text,\n error: colors.ketchup[600],\n warning: colors.amber[600],\n info: colors.blue[600],\n highlight: colors.marianBlue[900],\n disabled: colors.gray[400],\n },\n interactive: {\n hover: colors.overlayBlack[8],\n pressed: colors.overlayBlack[12],\n selected: colors.marianBlue[700],\n selectedSubtle: colors.marianBlue[200],\n },\n}\n","import { colors } from '../tokens/colors'\nimport type { Theme } from './types'\n\nexport const darkTheme: Theme = {\n bg: {\n primary: colors.marianBlue[600],\n primaryHover: colors.marianBlue[500],\n primaryPressed: colors.marianBlue[600],\n primarySubtle: colors.marianBlue[900],\n primarySubtleHover: colors.marianBlue[800],\n primarySubtlePressed: colors.marianBlue[700],\n surface: colors.midnight[900],\n surfaceRaised: colors.midnight[800],\n surfaceHover: colors.midnight[800],\n surfacePressed: colors.midnight[600],\n overlay: colors.black,\n overlaySubtle: colors.overlayWhite[8],\n overlaySubtleHover: colors.overlayWhite[12],\n overlaySubtlePressed: colors.overlayWhite[16],\n success: colors.green[300],\n successSubtle: colors.green[800],\n error: colors.ketchup[900],\n errorSubtle: colors.ketchup[800],\n warning: colors.amber[900],\n warningSubtle: colors.amber[800],\n info: colors.blue[600],\n infoSubtle: colors.blue[700],\n highlight: colors.brandGreen,\n accent: colors.amber[900],\n accentSubtle: colors.amber[900],\n disabled: colors.midnight[700],\n },\n text: {\n primary: colors.white,\n secondary: colors.gray[300],\n inverse: colors.midnight[900],\n brand: colors.marianBlue[300],\n link: colors.marianBlue[300],\n placeholder: colors.gray[400],\n success: colors.green[500],\n error: colors.ketchup[600],\n warning: colors.amber[500],\n info: colors.blue[100],\n highlight: colors.marianBlue[900],\n accent: colors.amber.text,\n disabled: colors.gray[600],\n onSuccess: colors.white,\n onError: colors.white,\n onWarning: colors.midnight[900],\n onHighlight: colors.midnight[900],\n },\n border: {\n default: colors.midnight[50],\n strong: colors.marianBlue[300],\n subtle: colors.overlayWhite[5],\n focus: colors.white,\n accent: colors.amber.text,\n success: colors.green.text,\n error: colors.ketchup[500],\n warning: colors.amber[600],\n info: colors.blue[500],\n disabled: colors.midnight[700],\n },\n icon: {\n primary: colors.white,\n secondary: colors.gray[400],\n inverse: colors.midnight[900],\n brand: colors.marianBlue[300],\n accent: colors.amber[700],\n success: colors.green.text,\n error: colors.ketchup.text,\n warning: colors.amber[100],\n info: colors.blue[100],\n highlight: colors.marianBlue[900],\n disabled: colors.gray[600],\n },\n interactive: {\n hover: colors.overlayWhite[8],\n pressed: colors.overlayWhite[12],\n selected: colors.marianBlue[800],\n selectedSubtle: colors.marianBlue[900],\n },\n}\n","import { createContext, useContext, useMemo } from 'react'\nimport { lightTheme } from '../themes/lightTheme'\nimport { darkTheme } from '../themes/darkTheme'\nimport type { Theme } from '../themes/types'\n\ntype DSThemeCtx = { theme: Theme; colorScheme: 'light' | 'dark' }\n\nconst DSThemeContext = createContext<DSThemeCtx>({ theme: lightTheme, colorScheme: 'light' })\n\nexport function DSThemeProvider({\n colorScheme = 'light',\n children,\n}: {\n colorScheme?: 'light' | 'dark'\n children: React.ReactNode\n}) {\n const value = useMemo<DSThemeCtx>(\n () => ({ theme: colorScheme === 'dark' ? darkTheme : lightTheme, colorScheme }),\n [colorScheme]\n )\n return <DSThemeContext.Provider value={value}>{children}</DSThemeContext.Provider>\n}\n\nexport function useTheme(): DSThemeCtx {\n return useContext(DSThemeContext)\n}\n","import { Pressable, Text, StyleSheet, type PressableProps, type TextStyle } from 'react-native'\nimport { useTheme } from '../../context/ThemeProvider'\nimport { typography } from '../../tokens/typography'\nimport { opacity } from '../../tokens/opacity'\nimport { buttonTokens } from './Button.styles'\n\ntype ButtonVariant = 'primary' | 'secondary' | 'ghost'\ntype ButtonSize = 'sm' | 'md' | 'lg'\n\ntype ButtonProps = {\n variant?: ButtonVariant\n size?: ButtonSize\n disabled?: boolean\n children: React.ReactNode\n onPress?: PressableProps['onPress']\n}\n\nconst textStyleBySize: Record<ButtonSize, TextStyle> = {\n sm: typography.buttonSmall,\n md: typography.buttonDefault,\n lg: typography.buttonLarge,\n}\n\nexport function Button({ variant = 'primary', size = 'lg', disabled = false, children, onPress }: ButtonProps) {\n const { theme } = useTheme()\n const { sizes, borderRadius } = buttonTokens\n\n const sizeStyle = sizes[size]\n const textStyle = textStyleBySize[size]\n\n const bgColor =\n disabled\n ? variant === 'ghost'\n ? 'transparent'\n : theme.bg.disabled\n : variant === 'primary'\n ? theme.bg.primary\n : variant === 'secondary'\n ? theme.bg.primarySubtle\n : 'transparent'\n\n const textColor = disabled\n ? theme.text.disabled\n : variant === 'primary'\n ? theme.text.inverse\n : variant === 'secondary'\n ? theme.text.primary\n : theme.text.brand\n\n return (\n <Pressable\n onPress={disabled ? undefined : onPress}\n disabled={disabled}\n style={({ pressed }) => [\n styles.base,\n {\n height: sizeStyle.height,\n paddingHorizontal: sizeStyle.paddingHorizontal,\n borderRadius,\n backgroundColor: bgColor,\n opacity: !disabled && pressed ? 1 - opacity.pressed : 1,\n },\n ]}\n accessibilityRole=\"button\"\n accessibilityState={{ disabled }}\n >\n <Text style={[textStyle, { color: textColor }]}>\n {children}\n </Text>\n </Pressable>\n )\n}\n\nconst styles = StyleSheet.create({\n base: { flexDirection: 'row', alignItems: 'center', justifyContent: 'center', gap: 8 },\n})\n","import { radius } from '../../tokens/radius'\n\nexport const buttonTokens = {\n sizes: {\n sm: { height: 32, paddingHorizontal: 12 },\n md: { height: 40, paddingHorizontal: 16 },\n lg: { height: 48, paddingHorizontal: 24 },\n },\n borderRadius: radius.full,\n}\n","import { Pressable, StyleSheet, type PressableProps } from 'react-native'\nimport { useTheme } from '../../context/ThemeProvider'\nimport { colors } from '../../tokens/colors'\nimport { opacity } from '../../tokens/opacity'\nimport { radius } from '../../tokens/radius'\n\ntype ButtonIconVariant = 'primary' | 'secondary' | 'ghost' | 'overlay'\ntype ButtonIconSize = 'sm' | 'md' | 'lg'\n\ntype ButtonIconProps = {\n // Consumer provides the (already colored/sized) icon element.\n icon: React.ReactNode\n accessibilityLabel: string\n variant?: ButtonIconVariant\n size?: ButtonIconSize\n disabled?: boolean\n onPress?: PressableProps['onPress']\n}\n\nconst sizeBySize: Record<ButtonIconSize, number> = {\n sm: 40,\n md: 48,\n lg: 64,\n}\n\nexport function ButtonIcon({ icon, accessibilityLabel, variant = 'primary', size = 'md', disabled = false, onPress }: ButtonIconProps) {\n const { theme, colorScheme } = useTheme()\n const dimension = sizeBySize[size]\n\n const bgColor = disabled\n ? variant === 'ghost'\n ? 'transparent'\n : theme.bg.disabled\n : variant === 'primary'\n ? theme.bg.primary\n : variant === 'secondary'\n ? theme.bg.primarySubtle\n : variant === 'overlay'\n ? colorScheme === 'dark'\n ? colors.overlayWhite[8]\n : colors.overlayBlack[8]\n : 'transparent'\n\n return (\n <Pressable\n onPress={disabled ? undefined : onPress}\n disabled={disabled}\n style={({ pressed }) => [\n styles.base,\n {\n width: dimension,\n height: dimension,\n borderRadius: radius.full,\n backgroundColor: bgColor,\n opacity: !disabled && pressed ? 1 - opacity.pressed : 1,\n },\n ]}\n accessibilityRole=\"button\"\n accessibilityLabel={accessibilityLabel}\n accessibilityState={{ disabled }}\n >\n {icon}\n </Pressable>\n )\n}\n\nconst styles = StyleSheet.create({\n base: { alignItems: 'center', justifyContent: 'center' },\n})\n","import { Pressable, View, StyleSheet, type PressableProps } from 'react-native'\nimport { useTheme } from '../../context/ThemeProvider'\nimport { colors } from '../../tokens/colors'\nimport { opacity } from '../../tokens/opacity'\nimport { radius } from '../../tokens/radius'\n\ntype DismissButtonVariant = 'subtle' | 'ghost'\ntype DismissButtonSize = 'xs' | 'sm' | 'md'\n\ntype DismissButtonProps = {\n accessibilityLabel?: string\n variant?: DismissButtonVariant\n size?: DismissButtonSize\n disabled?: boolean\n onPress?: PressableProps['onPress']\n}\n\nconst containerSize: Record<DismissButtonSize, number> = { xs: 20, sm: 32, md: 40 }\nconst glyphSize: Record<DismissButtonSize, number> = { xs: 12, sm: 16, md: 20 }\n\nexport function DismissButton({ accessibilityLabel = 'Fechar', variant = 'subtle', size = 'sm', disabled = false, onPress }: DismissButtonProps) {\n const { theme, colorScheme } = useTheme()\n const dimension = containerSize[size]\n const glyph = glyphSize[size]\n\n const bgColor = disabled\n ? variant === 'ghost'\n ? 'transparent'\n : theme.bg.disabled\n : variant === 'subtle'\n ? colorScheme === 'dark'\n ? colors.overlayWhite[8]\n : colors.overlayBlack[8]\n : 'transparent'\n\n const glyphColor = disabled ? theme.text.disabled : theme.icon.primary\n\n return (\n <Pressable\n onPress={disabled ? undefined : onPress}\n disabled={disabled}\n style={({ pressed }) => [\n styles.base,\n {\n width: dimension,\n height: dimension,\n borderRadius: radius.full,\n backgroundColor: bgColor,\n opacity: !disabled && pressed ? 1 - opacity.pressed : 1,\n },\n ]}\n accessibilityRole=\"button\"\n accessibilityLabel={accessibilityLabel}\n accessibilityState={{ disabled }}\n >\n <View style={{ width: glyph, height: glyph, alignItems: 'center', justifyContent: 'center' }}>\n <View style={[styles.line, { width: glyph, backgroundColor: glyphColor, transform: [{ rotate: '45deg' }] }]} />\n <View style={[styles.line, { width: glyph, backgroundColor: glyphColor, transform: [{ rotate: '-45deg' }] }]} />\n </View>\n </Pressable>\n )\n}\n\nconst styles = StyleSheet.create({\n base: { alignItems: 'center', justifyContent: 'center' },\n line: { position: 'absolute', height: 2, borderRadius: 1 },\n})\n","import { Pressable, Text, StyleSheet, type StyleProp, type ViewStyle } from 'react-native'\nimport { useTheme } from '../../context/ThemeProvider'\nimport { typography } from '../../tokens/typography'\nimport { borderWidth } from '../../tokens/borderWidth'\nimport { opacity } from '../../tokens/opacity'\nimport { chipSizes, chipRadius, type ChipSize } from './Chip.styles'\n\ntype ChipProps = {\n children: React.ReactNode\n checked?: boolean\n disabled?: boolean\n size?: ChipSize\n leading?: React.ReactNode\n trailing?: React.ReactNode\n onPress?: () => void\n style?: StyleProp<ViewStyle>\n}\n\nexport function Chip({ children, checked = false, disabled = false, size = 'md', leading, trailing, onPress, style }: ChipProps) {\n const { theme } = useTheme()\n const { height, paddingHorizontal } = chipSizes[size]\n\n const bg = disabled ? theme.bg.disabled : checked ? theme.interactive.selected : 'transparent'\n const borderColor = disabled ? theme.border.disabled : checked ? theme.interactive.selected : theme.border.default\n const textColor = disabled ? theme.text.disabled : checked ? theme.text.inverse : theme.text.primary\n\n const baseText = size === 'sm' ? typography.caption : typography.bodyDefault\n const textStyle = { ...baseText, fontWeight: checked ? ('600' as const) : baseText.fontWeight }\n\n return (\n <Pressable\n onPress={disabled ? undefined : onPress}\n disabled={disabled}\n style={({ pressed }) => [\n styles.base,\n {\n height,\n paddingHorizontal,\n borderRadius: chipRadius,\n backgroundColor: bg,\n borderColor,\n borderWidth: borderWidth.default,\n opacity: !disabled && pressed ? 1 - opacity.pressed : 1,\n },\n style,\n ]}\n accessibilityRole=\"button\"\n accessibilityState={{ selected: checked, disabled }}\n >\n {leading}\n <Text style={[textStyle, { color: textColor }]}>{children}</Text>\n {trailing}\n </Pressable>\n )\n}\n\nconst styles = StyleSheet.create({\n base: { flexDirection: 'row', alignItems: 'center', justifyContent: 'center', gap: 8, borderStyle: 'solid' },\n})\n","import { radius } from '../../tokens/radius'\n\nexport type ChipSize = 'sm' | 'md'\n\nexport const chipSizes: Record<ChipSize, { height: number; paddingHorizontal: number }> = {\n sm: { height: 32, paddingHorizontal: 12 },\n md: { height: 44, paddingHorizontal: 16 },\n}\n\nexport const chipRadius = radius.chip\n","import { Pressable, View, Text, StyleSheet } from 'react-native'\nimport { useTheme } from '../../context/ThemeProvider'\nimport { typography } from '../../tokens/typography'\nimport { borderWidth } from '../../tokens/borderWidth'\n\ntype AlertVariant = 'success' | 'info' | 'warning' | 'error'\ntype AlertSize = 'default' | 'compact'\ntype AlertLayout = 'stacked' | 'inline'\n\ntype AlertProps = {\n variant?: AlertVariant\n size?: AlertSize\n layout?: AlertLayout\n title?: string\n description?: string\n onDismiss?: () => void\n}\n\nconst glyph: Record<AlertVariant, string> = { success: '✓', info: 'i', warning: '!', error: '✕' }\n\nexport function Alert({ variant = 'info', size = 'default', layout = 'stacked', title, description, onDismiss }: AlertProps) {\n const { theme } = useTheme()\n const bg = { success: theme.bg.successSubtle, info: theme.bg.infoSubtle, warning: theme.bg.warningSubtle, error: theme.bg.errorSubtle }[variant]\n const iconColor = { success: theme.icon.success, info: theme.icon.info, warning: theme.icon.warning, error: theme.icon.error }[variant]\n const borderColor = theme.border.subtle\n const padding = size === 'compact' ? 12 : 20\n const outerGap = size === 'compact' ? 8 : 12\n\n const iconEl = (\n <View style={[styles.icon, { borderColor: iconColor }]}>\n <Text style={{ color: iconColor, fontSize: 13, fontWeight: '700', lineHeight: 16 }}>{glyph[variant]}</Text>\n </View>\n )\n const bodyEl = description ? (\n <Text style={[typography.bodyDefault, { color: theme.text.secondary, flex: layout === 'inline' ? 1 : undefined }]}>{description}</Text>\n ) : null\n const closeEl = onDismiss ? (\n <Pressable onPress={onDismiss} accessibilityRole=\"button\" accessibilityLabel=\"Fechar\" style={styles.close}>\n <Text style={{ color: theme.text.primary, fontSize: 16, lineHeight: 20 }}>✕</Text>\n </Pressable>\n ) : null\n\n return (\n <View\n style={[styles.container, { backgroundColor: bg, borderColor, padding, gap: outerGap }]}\n accessibilityRole={variant === 'error' ? 'alert' : undefined}\n accessibilityLiveRegion={variant === 'error' ? 'assertive' : 'polite'}\n >\n {layout === 'inline' ? (\n <>\n {iconEl}\n {bodyEl}\n </>\n ) : (\n <View style={styles.content}>\n <View style={styles.header}>\n {iconEl}\n {title ? <Text style={[typography.h3, styles.title, { color: theme.text.primary }]}>{title}</Text> : null}\n </View>\n {bodyEl}\n </View>\n )}\n {closeEl}\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n flexDirection: 'row',\n alignItems: 'flex-start',\n borderWidth: borderWidth.default,\n borderStyle: 'solid',\n borderTopLeftRadius: 24,\n borderTopRightRadius: 24,\n borderBottomRightRadius: 24,\n borderBottomLeftRadius: 0,\n },\n content: { flex: 1, flexDirection: 'column', gap: 8 },\n header: { flexDirection: 'row', alignItems: 'center', gap: 12 },\n title: { flex: 1 },\n icon: { width: 24, height: 24, borderRadius: 12, borderWidth: 2, alignItems: 'center', justifyContent: 'center' },\n close: {},\n})\n","import { View, StyleSheet } from 'react-native'\nimport { useTheme } from '../../context/ThemeProvider'\nimport { progressBarTokens } from './ProgressBar.styles'\n\ntype ProgressBarProps = {\n value: number\n}\n\nexport function ProgressBar({ value }: ProgressBarProps) {\n const { theme } = useTheme()\n const { height, borderRadius, fillBorderRadius } = progressBarTokens\n const pct = Math.min(100, Math.max(0, value))\n const trackColor = theme.bg.surfaceHover\n\n return (\n <View\n style={[styles.track, { height, borderRadius, backgroundColor: trackColor }]}\n accessibilityRole=\"progressbar\"\n accessibilityValue={{ min: 0, max: 100, now: pct }}\n >\n <View style={{ height, width: `${pct}%`, borderRadius: fillBorderRadius, backgroundColor: theme.bg.primary }} />\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n track: { width: '100%', overflow: 'hidden' },\n})\n","import { radius } from '../../tokens/radius'\n\nexport const progressBarTokens = {\n height: 8,\n borderRadius: radius.full,\n fillBorderRadius: radius.full,\n}\n","import { useState } from 'react'\nimport { View, TextInput, StyleSheet, type StyleProp, type ViewStyle } from 'react-native'\nimport { useTheme } from '../../context/ThemeProvider'\nimport { typography } from '../../tokens/typography'\nimport { borderWidth } from '../../tokens/borderWidth'\nimport { inputTokens } from './Input.styles'\n\ntype InputState = 'default' | 'filled' | 'error' | 'disabled'\n\ntype InputProps = {\n value?: string\n placeholder?: string\n state?: InputState\n leadingIcon?: React.ReactNode\n trailingIcon?: React.ReactNode\n onChangeText?: (text: string) => void\n onFocus?: () => void\n onBlur?: () => void\n style?: StyleProp<ViewStyle>\n}\n\nexport function Input({ value, placeholder = 'exemplo@email.com', state = 'default', leadingIcon, trailingIcon, onChangeText, onFocus, onBlur, style }: InputProps) {\n const { theme } = useTheme()\n const { height, padding, gap, borderRadius } = inputTokens\n const [isFocused, setIsFocused] = useState(false)\n\n const isDisabled = state === 'disabled'\n const isError = state === 'error'\n const isFilled = state === 'filled'\n\n const bg = isDisabled ? theme.bg.disabled : theme.bg.surface\n const borderColor = isDisabled\n ? theme.border.disabled\n : isError\n ? theme.border.error\n : isFocused\n ? theme.border.focus\n : theme.border.default\n const inputBorderWidth = isFocused ? borderWidth.heavy : borderWidth.default\n const textColor = isDisabled\n ? theme.text.disabled\n : isError\n ? theme.text.error\n : isFilled || isFocused\n ? theme.text.primary\n : theme.text.secondary\n\n return (\n <View style={[styles.container, { height, padding, gap, borderRadius, backgroundColor: bg, borderColor, borderWidth: inputBorderWidth }, style]}>\n {leadingIcon}\n <TextInput\n value={value}\n placeholder={placeholder}\n placeholderTextColor={textColor}\n editable={!isDisabled}\n onChangeText={onChangeText}\n onFocus={() => { setIsFocused(true); onFocus?.() }}\n onBlur={() => { setIsFocused(false); onBlur?.() }}\n style={[typography.bodyDefault, styles.input, { color: textColor }]}\n />\n {trailingIcon}\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n container: { flexDirection: 'row', alignItems: 'center', borderStyle: 'solid' },\n input: { flex: 1, padding: 0 },\n})\n","import { radius } from '../../tokens/radius'\n\nexport const inputTokens = {\n height: 48,\n padding: 12,\n gap: 8,\n borderRadius: radius.input,\n}\n","import { View, Text } from 'react-native'\nimport { useTheme } from '../../context/ThemeProvider'\nimport { typography } from '../../tokens/typography'\nimport { Input } from '../Input/Input.native'\n\ntype InputFieldProps = {\n label?: string\n required?: boolean\n helperText?: string\n error?: boolean\n value?: string\n placeholder?: string\n disabled?: boolean\n leadingIcon?: React.ReactNode\n trailingIcon?: React.ReactNode\n onChangeText?: (text: string) => void\n onFocus?: () => void\n onBlur?: () => void\n}\n\nexport function InputField({\n label,\n required,\n helperText,\n error,\n value,\n placeholder,\n disabled,\n leadingIcon,\n trailingIcon,\n onChangeText,\n onFocus,\n onBlur,\n}: InputFieldProps) {\n const { theme } = useTheme()\n const state = disabled ? 'disabled' : error ? 'error' : 'default'\n\n return (\n <View style={{ gap: 8, width: '100%' }}>\n {label && (\n <Text style={[typography.labelDefault, { color: theme.text.primary }]}>\n {label}\n {required && <Text style={{ color: theme.text.error }}> *</Text>}\n </Text>\n )}\n <Input\n state={state}\n value={value}\n placeholder={placeholder}\n leadingIcon={leadingIcon}\n trailingIcon={trailingIcon}\n onChangeText={onChangeText}\n onFocus={onFocus}\n onBlur={onBlur}\n />\n {helperText && (\n <Text style={[typography.caption, { color: error ? theme.text.error : theme.text.secondary }]}>\n {helperText}\n </Text>\n )}\n </View>\n )\n}\n","import { Pressable, View, StyleSheet } from 'react-native'\nimport { useTheme } from '../../context/ThemeProvider'\nimport { borderWidth } from '../../tokens/borderWidth'\nimport { colors } from '../../tokens/colors'\nimport { checkboxSizes, type CheckboxSize } from './Checkbox.styles'\n\ntype CheckboxProps = {\n checked?: boolean\n onChange?: (checked: boolean) => void\n disabled?: boolean\n size?: CheckboxSize\n}\n\nexport function Checkbox({ checked = false, onChange, disabled = false, size = 'sm' }: CheckboxProps) {\n const { theme } = useTheme()\n const { box, radius } = checkboxSizes[size]\n\n const boxBg = checked ? (disabled ? theme.bg.disabled : theme.interactive.selected) : 'transparent'\n const boxBorder = checked ? boxBg : disabled ? theme.text.disabled : theme.icon.secondary\n const checkColor = disabled ? theme.text.disabled : colors.white\n\n return (\n <Pressable\n onPress={disabled ? undefined : () => onChange?.(!checked)}\n disabled={disabled}\n style={({ pressed }) => [\n styles.wrapper,\n // state layer: interactive/selected at ~12% (8-digit hex alpha).\n { backgroundColor: !disabled && pressed ? `${theme.interactive.selected}1F` : 'transparent' },\n ]}\n accessibilityRole=\"checkbox\"\n accessibilityState={{ checked, disabled }}\n >\n <View\n style={[\n styles.box,\n {\n width: box,\n height: box,\n borderRadius: radius,\n backgroundColor: boxBg,\n borderColor: boxBorder,\n borderWidth: checked ? 0 : borderWidth.heavy,\n },\n ]}\n >\n {checked && (\n <View\n style={{\n width: box * 0.5,\n height: box * 0.4,\n borderLeftWidth: 1.5,\n borderBottomWidth: 1.5,\n borderColor: checkColor,\n transform: [{ rotate: '-45deg' }, { translateY: -box * 0.1 }],\n }}\n />\n )}\n </View>\n </Pressable>\n )\n}\n\nconst styles = StyleSheet.create({\n wrapper: { padding: 4, borderRadius: 9999, alignItems: 'center', justifyContent: 'center' },\n box: { alignItems: 'center', justifyContent: 'center' },\n})\n","export type CheckboxSize = 'xs' | 'sm' | 'md'\n\n// Frame derives from the icon: xs 16 / sm 20 / md 24 (Figma 250:110). No radius\n// primitive exists this small, so the per-size corner values are hardcoded here.\nexport const checkboxSizes: Record<CheckboxSize, { box: number; radius: number }> = {\n xs: { box: 16, radius: 4 },\n sm: { box: 20, radius: 5 },\n md: { box: 24, radius: 6 },\n}\n","import { useEffect, useRef } from 'react'\nimport { Pressable, Animated, type PressableProps } from 'react-native'\nimport { useTheme } from '../../context/ThemeProvider'\nimport { radius } from '../../tokens/radius'\n\ntype ToggleSwitchSize = 'xs' | 'sm' | 'md'\n\ntype ToggleSwitchProps = {\n value?: boolean\n onChange?: (value: boolean) => void\n disabled?: boolean\n size?: ToggleSwitchSize\n accessibilityLabel: string\n onPress?: PressableProps['onPress']\n}\n\nconst sizes: Record<ToggleSwitchSize, { w: number; h: number; knob: number }> = {\n xs: { w: 32, h: 20, knob: 16 },\n sm: { w: 40, h: 24, knob: 20 },\n md: { w: 52, h: 32, knob: 28 },\n}\n\nexport function ToggleSwitch({ value = false, onChange, disabled = false, size = 'sm', accessibilityLabel }: ToggleSwitchProps) {\n const { theme } = useTheme()\n const { w, h, knob } = sizes[size]\n const travel = w - knob - 4\n\n const anim = useRef(new Animated.Value(value ? 1 : 0)).current\n useEffect(() => {\n Animated.timing(anim, { toValue: value ? 1 : 0, duration: 150, useNativeDriver: true }).start()\n }, [value, anim])\n const translateX = anim.interpolate({ inputRange: [0, 1], outputRange: [0, travel] })\n\n const trackColor = disabled ? theme.bg.disabled : value ? theme.interactive.selected : theme.bg.disabled\n const knobColor = disabled ? theme.text.disabled : theme.text.inverse\n\n return (\n <Pressable\n onPress={disabled ? undefined : () => onChange?.(!value)}\n disabled={disabled}\n style={{ width: w, height: h, borderRadius: radius.full, backgroundColor: trackColor, padding: 2, justifyContent: 'center' }}\n accessibilityRole=\"switch\"\n accessibilityState={{ checked: value, disabled }}\n accessibilityLabel={accessibilityLabel}\n >\n <Animated.View\n style={{ width: knob, height: knob, borderRadius: radius.full, backgroundColor: knobColor, transform: [{ translateX }] }}\n />\n </Pressable>\n )\n}\n","import { View, type StyleProp, type ViewStyle } from 'react-native'\n\ntype RadioGroupProps = {\n children: React.ReactNode\n label?: string\n style?: StyleProp<ViewStyle>\n}\n\nexport function RadioGroup({ children, label, style }: RadioGroupProps) {\n return (\n <View accessibilityRole=\"radiogroup\" accessibilityLabel={label} style={[{ gap: 8 }, style]}>\n {children}\n </View>\n )\n}\n","import { Pressable, View, Text, StyleSheet } from 'react-native'\nimport { useTheme } from '../../context/ThemeProvider'\nimport { typography } from '../../tokens/typography'\nimport { borderWidth } from '../../tokens/borderWidth'\nimport { colors } from '../../tokens/colors'\n\ntype ChoiceCardType = 'radio' | 'checkbox' | 'action'\n\ntype ChoiceCardProps = {\n type?: ChoiceCardType\n label: string\n description?: string\n selected?: boolean\n disabled?: boolean\n leading?: React.ReactNode\n showTrailing?: boolean\n onPress?: () => void\n}\n\nfunction Trailing({ type, selected, disabled }: { type: ChoiceCardType; selected: boolean; disabled: boolean }) {\n const { theme } = useTheme()\n const offColor = disabled ? theme.text.disabled : theme.icon.secondary\n const onColor = theme.interactive.selected\n\n if (type === 'action') {\n return <View style={[styles.caret, { borderColor: disabled ? theme.text.disabled : theme.icon.secondary }]} />\n }\n if (type === 'checkbox') {\n return (\n <View style={[styles.indicator, styles.checkbox, { borderColor: selected ? onColor : offColor, backgroundColor: selected ? onColor : 'transparent' }]}>\n {selected && <View style={[styles.check, { borderColor: colors.white }]} />}\n </View>\n )\n }\n return (\n <View style={[styles.indicator, styles.radio, { borderColor: selected ? onColor : offColor }]}>\n {selected && <View style={[styles.dot, { backgroundColor: onColor }]} />}\n </View>\n )\n}\n\nexport function ChoiceCard({ type = 'radio', label, description, selected = false, disabled = false, leading, showTrailing = true, onPress }: ChoiceCardProps) {\n const { theme } = useTheme()\n const isSelected = type === 'action' ? false : selected\n\n const baseBg = disabled ? theme.bg.surface : isSelected ? theme.bg.primarySubtle : theme.bg.surface\n const pressedBg = isSelected ? theme.bg.primarySubtlePressed : theme.bg.surfacePressed\n const borderColor = disabled ? theme.border.disabled : isSelected ? theme.border.strong : theme.border.default\n const textColor = disabled ? theme.text.disabled : theme.text.primary\n const descColor = disabled ? theme.text.disabled : theme.text.secondary\n\n return (\n <Pressable\n onPress={disabled ? undefined : onPress}\n disabled={disabled}\n accessibilityRole={type === 'radio' ? 'radio' : type === 'checkbox' ? 'checkbox' : 'button'}\n accessibilityState={{ selected: isSelected, checked: isSelected, disabled }}\n style={({ pressed }) => [\n styles.card,\n {\n backgroundColor: !disabled && pressed ? pressedBg : baseBg,\n borderColor,\n borderWidth: isSelected ? borderWidth.heavy : borderWidth.default,\n },\n ]}\n >\n {leading && <View style={styles.leading}>{leading}</View>}\n <View style={styles.text}>\n <Text style={[description ? typography.labelDefault : typography.bodyDefault, { color: textColor }]}>{label}</Text>\n {description ? <Text style={[typography.bodyDefault, { color: descColor }]}>{description}</Text> : null}\n </View>\n {showTrailing && <Trailing type={type} selected={isSelected} disabled={disabled} />}\n </Pressable>\n )\n}\n\nconst styles = StyleSheet.create({\n card: { width: '100%', flexDirection: 'row', alignItems: 'center', gap: 12, padding: 16, borderRadius: 20, borderStyle: 'solid' },\n leading: { width: 24, height: 24, alignItems: 'center', justifyContent: 'center' },\n text: { flex: 1, flexDirection: 'column', gap: 4 },\n indicator: { width: 24, height: 24, alignItems: 'center', justifyContent: 'center', borderWidth: 2 },\n checkbox: { borderRadius: 6 },\n radio: { borderRadius: 12 },\n dot: { width: 12, height: 12, borderRadius: 6 },\n check: { width: 12, height: 8, borderLeftWidth: 2, borderBottomWidth: 2, transform: [{ rotate: '-45deg' }, { translateY: -1 }] },\n caret: { width: 10, height: 10, borderTopWidth: 2, borderRightWidth: 2, transform: [{ rotate: '45deg' }] },\n})\n","import { Pressable, View, Text, StyleSheet } from 'react-native'\nimport { useTheme } from '../../context/ThemeProvider'\nimport { typography } from '../../tokens/typography'\nimport { colors } from '../../tokens/colors'\nimport { ToggleSwitch } from '../ToggleSwitch/ToggleSwitch.native'\n\ntype ListItemTrailing = 'none' | 'radio' | 'checkbox' | 'action' | 'switch'\n\ntype ListItemProps = {\n trailing?: ListItemTrailing\n label: string\n description?: string\n selected?: boolean\n disabled?: boolean\n leading?: React.ReactNode\n switchValue?: boolean\n onSwitchChange?: (value: boolean) => void\n onPress?: () => void\n}\n\nfunction TrailingVisual({ trailing, selected, disabled }: { trailing: 'radio' | 'checkbox' | 'action'; selected: boolean; disabled: boolean }) {\n const { theme } = useTheme()\n const offColor = disabled ? theme.text.disabled : theme.icon.secondary\n const onColor = theme.interactive.selected\n if (trailing === 'action') {\n return <View style={[styles.caret, { borderColor: disabled ? theme.text.disabled : theme.icon.secondary }]} />\n }\n if (trailing === 'checkbox') {\n return (\n <View style={[styles.indicator, styles.checkbox, { borderColor: selected ? onColor : offColor, backgroundColor: selected ? onColor : 'transparent' }]}>\n {selected && <View style={[styles.check, { borderColor: colors.white }]} />}\n </View>\n )\n }\n return (\n <View style={[styles.indicator, styles.radio, { borderColor: selected ? onColor : offColor }]}>\n {selected && <View style={[styles.dot, { backgroundColor: onColor }]} />}\n </View>\n )\n}\n\nexport function ListItem({ trailing = 'none', label, description, selected = false, disabled = false, leading, switchValue = false, onSwitchChange, onPress }: ListItemProps) {\n const { theme } = useTheme()\n const isSelected = trailing === 'radio' || trailing === 'checkbox' ? selected : false\n\n const textColor = disabled ? theme.text.disabled : theme.text.primary\n const descColor = disabled ? theme.text.disabled : theme.text.secondary\n const selectedBg = theme.bg.primarySubtle\n const selectedPressedBg = theme.bg.primarySubtlePressed\n const neutralPressedBg = theme.bg.surfacePressed\n\n const rowStyle = (pressed: boolean) => [\n styles.row,\n { padding: description ? 16 : 10 },\n isSelected ? { backgroundColor: !disabled && pressed ? selectedPressedBg : selectedBg } : { backgroundColor: !disabled && pressed ? neutralPressedBg : 'transparent' },\n ]\n\n const content = (\n <>\n {leading && <View style={styles.leading}>{leading}</View>}\n <View style={styles.text}>\n <Text style={[description ? typography.labelDefault : typography.bodyDefault, { color: textColor }]}>{label}</Text>\n {description ? <Text style={[typography.bodyDefault, { color: descColor }]}>{description}</Text> : null}\n </View>\n {trailing === 'switch' ? (\n <ToggleSwitch size=\"sm\" value={switchValue} onChange={onSwitchChange} disabled={disabled} accessibilityLabel={label} />\n ) : trailing !== 'none' ? (\n <TrailingVisual trailing={trailing} selected={isSelected} disabled={disabled} />\n ) : null}\n </>\n )\n\n if (trailing === 'switch' || trailing === 'none') {\n return <View style={rowStyle(false)}>{content}</View>\n }\n\n return (\n <Pressable\n onPress={disabled ? undefined : onPress}\n disabled={disabled}\n accessibilityRole={trailing === 'radio' ? 'radio' : trailing === 'checkbox' ? 'checkbox' : 'button'}\n accessibilityState={{ selected: isSelected, checked: isSelected, disabled }}\n style={({ pressed }) => rowStyle(pressed)}\n >\n {content}\n </Pressable>\n )\n}\n\nconst styles = StyleSheet.create({\n row: { width: '100%', flexDirection: 'row', alignItems: 'center', gap: 12 },\n leading: { width: 24, height: 24, alignItems: 'center', justifyContent: 'center' },\n text: { flex: 1, flexDirection: 'column', gap: 4 },\n indicator: { width: 24, height: 24, alignItems: 'center', justifyContent: 'center', borderWidth: 2 },\n checkbox: { borderRadius: 6 },\n radio: { borderRadius: 12 },\n dot: { width: 12, height: 12, borderRadius: 6 },\n check: { width: 12, height: 8, borderLeftWidth: 2, borderBottomWidth: 2, transform: [{ rotate: '-45deg' }, { translateY: -1 }] },\n caret: { width: 10, height: 10, borderTopWidth: 2, borderRightWidth: 2, transform: [{ rotate: '45deg' }] },\n})\n","import { View, type StyleProp, type ViewStyle } from 'react-native'\nimport { useTheme } from '../../context/ThemeProvider'\nimport { stepperTokens } from './Stepper.styles'\n\ntype StepperProps = {\n totalSteps: number\n currentStep: number\n style?: StyleProp<ViewStyle>\n}\n\nexport function Stepper({ totalSteps, currentStep, style }: StepperProps) {\n const { theme } = useTheme()\n const { segmentHeight, segmentRadius, gap } = stepperTokens\n\n return (\n <View\n style={[{ flexDirection: 'row', alignItems: 'flex-start', width: '100%', gap }, style]}\n accessibilityRole=\"progressbar\"\n accessibilityValue={{ min: 1, max: totalSteps, now: currentStep }}\n accessibilityLabel={`Etapa ${currentStep} de ${totalSteps}`}\n >\n {Array.from({ length: totalSteps }, (_, i) => {\n const color =\n i < currentStep - 1\n ? theme.bg.primary\n : i === currentStep - 1\n ? theme.bg.primarySubtle\n : theme.bg.disabled\n return <View key={i} style={{ flex: 1, height: segmentHeight, borderRadius: segmentRadius, backgroundColor: color }} />\n })}\n </View>\n )\n}\n","import { radius } from '../../tokens/radius'\n\nexport const stepperTokens = {\n segmentHeight: 4,\n segmentRadius: radius.full,\n gap: 4,\n}\n","import { Pressable, View, Text, StyleSheet, type StyleProp, type ViewStyle } from 'react-native'\nimport { useTheme } from '../../context/ThemeProvider'\nimport { typography } from '../../tokens/typography'\nimport { borderWidth } from '../../tokens/borderWidth'\nimport { ratingScaleTokens, DEFAULT_OPTIONS } from './RatingScale.styles'\n\ntype RatingScaleOption = {\n emoji: string\n label: string\n}\n\ntype RatingScaleProps = {\n value?: number | null\n onChange?: (value: number) => void\n options?: ReadonlyArray<RatingScaleOption>\n disabled?: boolean\n style?: StyleProp<ViewStyle>\n}\n\nexport function RatingScale({ value = null, onChange, options = DEFAULT_OPTIONS, disabled = false, style }: RatingScaleProps) {\n const { theme } = useTheme()\n const { circleSize, circleRadius, emojiFontSize, emojiLineHeight, itemGap } = ratingScaleTokens\n\n return (\n <View style={[styles.container, style]}>\n {options.map((option, index) => {\n const itemValue = index + 1\n const selected = value === itemValue\n\n const circleBg = disabled\n ? theme.bg.disabled\n : selected\n ? theme.bg.primarySubtle\n : theme.bg.surface\n const circleBorderColor = disabled\n ? theme.border.disabled\n : selected\n ? theme.border.strong\n : theme.border.default\n const labelColor = disabled ? theme.text.disabled : theme.text.primary\n\n return (\n <Pressable\n key={itemValue}\n onPress={disabled ? undefined : () => onChange?.(itemValue)}\n disabled={disabled}\n style={[styles.item, { gap: itemGap }]}\n accessibilityRole=\"radio\"\n accessibilityState={{ selected, disabled }}\n >\n <View\n style={[\n styles.circle,\n {\n width: circleSize,\n height: circleSize,\n borderRadius: circleRadius,\n backgroundColor: circleBg,\n borderWidth: selected ? borderWidth.heavy : borderWidth.default,\n borderColor: circleBorderColor,\n },\n ]}\n >\n <Text style={[styles.emoji, { fontSize: emojiFontSize, lineHeight: emojiLineHeight, opacity: disabled ? 0.4 : 1 }]}>\n {option.emoji}\n </Text>\n </View>\n <Text style={[typography.caption, styles.label, { color: labelColor }]}>\n {option.label}\n </Text>\n <Text style={[styles.number, { color: theme.text.disabled }]}>\n {itemValue}\n </Text>\n </Pressable>\n )\n })}\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n container: { flexDirection: 'row', alignItems: 'center', justifyContent: 'center', gap: 8, padding: 16 },\n item: { flex: 1, alignItems: 'center' },\n circle: { alignItems: 'center', justifyContent: 'center', overflow: 'hidden' },\n emoji: { textAlign: 'center' },\n label: { textAlign: 'center' },\n number: { textAlign: 'center', fontFamily: 'Inter', fontSize: 10, fontWeight: '600', letterSpacing: 0.8 },\n})\n","export const ratingScaleTokens = {\n itemWidth: 60,\n circleSize: 60,\n circleRadius: 30,\n emojiFontSize: 28,\n emojiLineHeight: 34,\n itemGap: 6,\n}\n\nexport const DEFAULT_OPTIONS = [\n { emoji: '😡', label: 'Péssimo' },\n { emoji: '😕', label: 'Ruim' },\n { emoji: '😐', label: 'Neutro' },\n { emoji: '😊', label: 'Bom' },\n { emoji: '😍', label: 'Ótimo' },\n] as const\n"],"mappings":"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","names":["import_jsx_runtime","sizes","import_react_native","import_jsx_runtime","styles","import_react_native","import_jsx_runtime","glyph","styles","import_react_native","import_jsx_runtime","styles","import_react_native","import_jsx_runtime","styles","import_react_native","import_jsx_runtime","styles","import_react","import_react_native","import_jsx_runtime","styles","import_react_native","import_jsx_runtime","import_react_native","import_jsx_runtime","radius","styles","import_react","import_react_native","import_jsx_runtime","import_react_native","import_jsx_runtime","import_react_native","import_jsx_runtime","styles","import_react_native","import_jsx_runtime","styles","import_react_native","import_jsx_runtime","import_react_native","import_jsx_runtime","styles"]}