@12min/ds 1.0.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":["../src/context/ThemeProvider.tsx","../src/components/Button/Button.native.tsx","../src/components/Button/Button.styles.ts","../src/components/Chip/Chip.native.tsx","../src/components/Chip/Chip.styles.ts","../src/components/Alert/Alert.native.tsx","../src/components/Alert/Alert.styles.ts","../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/Checkbox/Checkbox.native.tsx","../src/components/Checkbox/Checkbox.styles.ts","../src/components/RadioItem/RadioItem.native.tsx","../src/components/RadioItem/RadioItem.styles.ts","../src/components/RadioGroup/RadioGroup.native.tsx","../src/components/ActionItem/ActionItem.native.tsx","../src/components/ActionItem/ActionItem.styles.ts","../src/components/Stepper/Stepper.native.tsx","../src/components/Stepper/Stepper.styles.ts","../src/components/RatingScale/RatingScale.native.tsx"],"sourcesContent":["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 } from 'react-native'\nimport { useTheme } from '../../context/ThemeProvider'\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\nexport function Button({ variant = 'primary', size = 'md', disabled = false, children, onPress }: ButtonProps) {\n const { theme } = useTheme()\n const { sizes, borderRadius } = buttonTokens\n\n const sizeStyle = sizes[size]\n\n const bgColor =\n disabled\n ? theme.surfaceDisabled\n : variant === 'primary'\n ? theme.primary\n : variant === 'secondary'\n ? theme.surface\n : 'transparent'\n\n const textColor =\n variant === 'primary'\n ? theme.textInverse\n : variant === 'secondary'\n ? theme.onBackground\n : theme.primary\n\n return (\n <Pressable\n onPress={disabled ? undefined : onPress}\n style={({ pressed }) => [\n styles.base,\n {\n height: sizeStyle.height,\n paddingHorizontal: sizeStyle.paddingHorizontal,\n borderRadius,\n backgroundColor: bgColor,\n opacity: disabled ? 0.5 : pressed ? 0.85 : 1,\n },\n ]}\n accessibilityRole=\"button\"\n accessibilityState={{ disabled }}\n >\n <Text style={[styles.label, { fontSize: sizeStyle.fontSize, color: textColor }]}>\n {children}\n </Text>\n </Pressable>\n )\n}\n\nconst styles = StyleSheet.create({\n base: { flexDirection: 'row', alignItems: 'center', justifyContent: 'center' },\n label: { fontWeight: '600' },\n})\n","export const buttonTokens = {\n sizes: {\n sm: { height: 36, paddingHorizontal: 14, fontSize: 14 },\n md: { height: 48, paddingHorizontal: 16, fontSize: 16 },\n lg: { height: 56, paddingHorizontal: 24, fontSize: 18 },\n },\n borderRadius: 9999,\n}\n","import { Pressable, Text, StyleSheet, type StyleProp, type ViewStyle } from 'react-native'\nimport { useTheme } from '../../context/ThemeProvider'\nimport { chipTokens } from './Chip.styles'\n\ntype ChipProps = {\n children: React.ReactNode\n checked?: boolean\n onPress?: () => void\n style?: StyleProp<ViewStyle>\n}\n\nexport function Chip({ children, checked = false, onPress, style }: ChipProps) {\n const { theme } = useTheme()\n const { size, borderRadius } = chipTokens\n\n const bg = checked ? theme.primary : theme.surface\n const textColor = checked ? theme.textInverse : theme.onBackground\n\n return (\n <Pressable\n onPress={onPress}\n style={({ pressed }) => [\n styles.base,\n { height: size.height, paddingHorizontal: size.paddingHorizontal, borderRadius, backgroundColor: bg, opacity: pressed ? 0.85 : 1 },\n style,\n ]}\n accessibilityRole=\"button\"\n >\n <Text style={{ fontSize: size.fontSize, color: textColor, fontWeight: checked ? '600' : '500' }}>\n {children}\n </Text>\n </Pressable>\n )\n}\n\nconst styles = StyleSheet.create({\n base: { flexDirection: 'row', alignItems: 'center', justifyContent: 'center' },\n})\n","export const chipTokens = {\n size: { height: 48, paddingHorizontal: 16, fontSize: 14 },\n borderRadius: 56,\n}\n","import { View, Text, StyleSheet } from 'react-native'\nimport { useTheme } from '../../context/ThemeProvider'\nimport { alertTokens } from './Alert.styles'\n\ntype AlertVariant = 'success' | 'info'\n\ntype AlertProps = {\n variant?: AlertVariant\n title: string\n description?: string\n}\n\nexport function Alert({ variant = 'info', title, description }: AlertProps) {\n const { theme } = useTheme()\n const { padding, borderRadius } = alertTokens\n\n const bg = variant === 'success' ? theme.successBg : theme.surface\n\n return (\n <View style={[styles.container, { backgroundColor: bg, padding, borderColor: theme.border }]}>\n <Text style={[styles.title, { color: theme.onBackground }]}>{title}</Text>\n {description && (\n <Text style={[styles.description, { color: theme.muted }]}>{description}</Text>\n )}\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n borderWidth: 1,\n borderTopLeftRadius: 32,\n borderTopRightRadius: 32,\n borderBottomRightRadius: 32,\n borderBottomLeftRadius: 0,\n },\n title: { fontWeight: '600', fontSize: 16, lineHeight: 22 },\n description: { fontWeight: '500', fontSize: 14, lineHeight: 21, marginTop: 12 },\n})\n","export const alertTokens = {\n padding: 20,\n borderRadius: 32,\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\n return (\n <View\n style={[styles.track, { height, borderRadius, backgroundColor: theme.border }]}\n accessibilityRole=\"progressbar\"\n accessibilityValue={{ min: 0, max: 100, now: pct }}\n >\n <View style={{ height, width: `${pct}%`, borderRadius: fillBorderRadius, backgroundColor: theme.primary }} />\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n track: { width: '100%', overflow: 'hidden' },\n})\n","export const progressBarTokens = {\n height: 8,\n borderRadius: 999,\n fillBorderRadius: 24,\n}\n","import { useState } from 'react'\nimport { View, TextInput, StyleSheet, type StyleProp, type ViewStyle } from 'react-native'\nimport { useTheme } from '../../context/ThemeProvider'\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 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, onChangeText, onFocus, onBlur, style }: InputProps) {\n const { theme } = useTheme()\n const { height, padding, gap, borderRadius, fontSize } = 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.background : theme.surface\n const borderColor = isDisabled\n ? theme.muted\n : isError\n ? theme.error\n : isFocused\n ? theme.primary\n : theme.border\n const borderWidth = isFocused ? 2 : 1\n const textColor = isDisabled\n ? theme.muted\n : isError\n ? theme.error\n : isFilled || isFocused\n ? theme.onBackground\n : theme.muted\n\n return (\n <View style={[styles.container, { height, padding, gap, borderRadius, backgroundColor: bg, borderColor, borderWidth }, 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={[styles.input, { fontSize, color: textColor }]}\n />\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n container: { flexDirection: 'row', alignItems: 'center', borderStyle: 'solid' },\n input: { flex: 1, fontWeight: '500', padding: 0 },\n})\n","export const inputTokens = {\n height: 48,\n padding: 12,\n gap: 8,\n borderRadius: 12,\n fontSize: 14,\n}\n","import { Pressable, View, StyleSheet } from 'react-native'\nimport { useTheme } from '../../context/ThemeProvider'\nimport { checkboxTokens } from './Checkbox.styles'\n\ntype CheckboxProps = {\n checked?: boolean\n onChange?: (checked: boolean) => void\n disabled?: boolean\n}\n\nexport function Checkbox({ checked = false, onChange, disabled = false }: CheckboxProps) {\n const { theme } = useTheme()\n const { size, borderRadius } = checkboxTokens\n\n return (\n <Pressable\n onPress={disabled ? undefined : () => onChange?.(!checked)}\n style={({ pressed }) => [\n styles.base,\n {\n width: size,\n height: size,\n borderRadius,\n backgroundColor: checked ? theme.primary : 'transparent',\n borderWidth: checked ? 0 : 1,\n borderColor: theme.primary,\n opacity: disabled ? 0.5 : pressed ? 0.85 : 1,\n },\n ]}\n accessibilityRole=\"checkbox\"\n accessibilityState={{ checked, disabled }}\n >\n {checked && (\n <View style={styles.checkmark}>\n <View style={[styles.checkLine, { borderColor: theme.textInverse }]} />\n </View>\n )}\n </Pressable>\n )\n}\n\nconst styles = StyleSheet.create({\n base: { alignItems: 'center', justifyContent: 'center' },\n checkmark: { width: 10, height: 8, alignItems: 'center', justifyContent: 'center' },\n checkLine: { width: 10, height: 8, borderLeftWidth: 1.5, borderBottomWidth: 1.5, transform: [{ rotate: '-45deg' }, { translateY: -2 }] },\n})\n","export const checkboxTokens = {\n size: 20,\n borderRadius: 6,\n}\n","import { Pressable, View, Text, StyleSheet, type StyleProp, type ViewStyle } from 'react-native'\nimport { useTheme } from '../../context/ThemeProvider'\nimport { radioItemTokens } from './RadioItem.styles'\n\ntype RadioItemProps = {\n label: string\n description?: string\n selected?: boolean\n icon?: React.ReactNode\n onPress?: () => void\n style?: StyleProp<ViewStyle>\n}\n\nexport function RadioItem({ label, description, selected = false, icon, onPress, style }: RadioItemProps) {\n const { theme } = useTheme()\n const { height, padding, gap, borderRadius, radioSize, fontSize } = radioItemTokens\n\n const bg = selected ? theme.primary : theme.surface\n const textColor = selected ? theme.textInverse : theme.onBackground\n const descColor = selected ? theme.textInverse : theme.textSecondary\n const descOpacity = selected ? 0.8 : 1\n const radioBorderColor = selected ? theme.textInverse : theme.onBackground\n\n return (\n <Pressable\n onPress={onPress}\n style={({ pressed }) => [\n styles.container,\n { height, paddingHorizontal: padding, gap, borderRadius, backgroundColor: bg, opacity: pressed ? 0.9 : 1 },\n style,\n ]}\n accessibilityRole=\"radio\"\n accessibilityState={{ selected }}\n >\n <View style={styles.left}>\n {icon && <View style={styles.icon}>{icon}</View>}\n <View style={styles.textContainer}>\n <Text style={[styles.label, { fontSize, color: textColor, fontWeight: selected ? '700' : '500' }]}>\n {label}\n </Text>\n {description && (\n <Text style={[styles.description, { color: descColor, opacity: descOpacity }]}>{description}</Text>\n )}\n </View>\n </View>\n <View style={[styles.radio, { width: radioSize, height: radioSize, borderRadius: radioSize / 2, borderColor: radioBorderColor }]} />\n </Pressable>\n )\n}\n\nconst styles = StyleSheet.create({\n container: { flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between' },\n left: { flexDirection: 'row', alignItems: 'center', gap: 12 },\n icon: { width: 20, height: 20 },\n textContainer: { flexDirection: 'column', gap: 2 },\n label: { lineHeight: 21 },\n description: { fontSize: 12, fontWeight: '400', lineHeight: 18, letterSpacing: 0.024 },\n radio: { borderWidth: 1 },\n})\n","export const radioItemTokens = {\n height: 48,\n padding: 16,\n gap: 12,\n borderRadius: 16,\n radioSize: 20,\n fontSize: 14,\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, type StyleProp, type ViewStyle } from 'react-native'\nimport { useTheme } from '../../context/ThemeProvider'\nimport { actionItemTokens } from './ActionItem.styles'\n\ntype ActionItemProps = {\n label: string\n description?: string\n selected?: boolean\n icon?: React.ReactNode\n onPress?: () => void\n style?: StyleProp<ViewStyle>\n}\n\nexport function ActionItem({ label, description, selected = false, icon, onPress, style }: ActionItemProps) {\n const { theme } = useTheme()\n const { height, padding, gap, innerGap, borderRadius, fontSize } = actionItemTokens\n\n const bg = selected ? theme.border : theme.surface\n\n return (\n <Pressable\n onPress={onPress}\n style={({ pressed }) => [\n styles.container,\n {\n height,\n paddingHorizontal: padding,\n gap,\n borderRadius,\n backgroundColor: bg,\n borderWidth: selected ? 2 : 0,\n borderColor: selected ? theme.primary : 'transparent',\n opacity: pressed ? 0.9 : 1,\n },\n style,\n ]}\n accessibilityRole=\"button\"\n >\n <View style={[styles.content, { gap: innerGap }]}>\n {icon && <View style={styles.icon}>{icon}</View>}\n <View style={styles.textContainer}>\n <Text style={[styles.label, { fontSize, color: theme.onBackground }]} numberOfLines={1}>\n {label}\n </Text>\n {description && (\n <Text style={[styles.description, { color: theme.textSecondary }]} numberOfLines={1}>\n {description}\n </Text>\n )}\n </View>\n </View>\n <View style={styles.chevron}>\n <Text style={[styles.chevronText, { color: theme.onBackground }]}>›</Text>\n </View>\n </Pressable>\n )\n}\n\nconst styles = StyleSheet.create({\n container: { flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between' },\n content: { flex: 1, flexDirection: 'row', alignItems: 'center', minWidth: 0 },\n icon: { width: 24, height: 24, overflow: 'hidden', flexShrink: 0 },\n textContainer: { flex: 1, flexDirection: 'column', gap: 4, minWidth: 0 },\n label: { fontWeight: '500', lineHeight: 21 },\n description: { fontSize: 12, fontWeight: '400', lineHeight: 18, letterSpacing: 0.024 },\n chevron: { width: 24, height: 24, alignItems: 'center', justifyContent: 'center', flexShrink: 0 },\n chevronText: { fontSize: 20 },\n})\n","export const actionItemTokens = {\n height: 56,\n padding: 16,\n gap: 20,\n innerGap: 16,\n borderRadius: 16,\n fontSize: 14,\n}\n","import { View, Text, StyleSheet, type StyleProp, type ViewStyle } from 'react-native'\nimport { useTheme } from '../../context/ThemeProvider'\nimport { stepperTokens } from './Stepper.styles'\n\ntype StepState = 'completed' | 'active' | 'upcoming'\n\ntype Step = {\n label: string\n}\n\ntype StepperProps = {\n steps: Step[]\n currentStep: number\n style?: StyleProp<ViewStyle>\n}\n\nexport function Stepper({ steps, currentStep, style }: StepperProps) {\n const { theme } = useTheme()\n const { trackHeight, trackRadius, dotSize, labelFontSize, gap } = stepperTokens\n\n const getState = (i: number): StepState =>\n i < currentStep ? 'completed' : i === currentStep ? 'active' : 'upcoming'\n\n return (\n <View style={[styles.container, { gap }, style]}>\n {steps.map((step, i) => {\n const state = getState(i)\n const isLast = i === steps.length - 1\n const trackBg = state === 'completed' ? theme.primary : theme.border\n const dotBg = state === 'completed' ? theme.primary : theme.border\n\n return (\n <View key={step.label} style={{ flexDirection: 'row', alignItems: 'flex-end', flex: 1 }}>\n <View style={styles.stepItem}>\n <View style={styles.labelRow}>\n <Text\n style={[styles.label, { fontSize: labelFontSize, color: theme.onBackground, opacity: state === 'active' ? 1 : 0 }]}\n numberOfLines={1}\n >\n {step.label}\n </Text>\n </View>\n <View style={[styles.track, { height: trackHeight, borderRadius: trackRadius, backgroundColor: trackBg }]}>\n {state === 'active' && (\n <View\n style={[styles.trackFill, { height: trackHeight, borderRadius: trackRadius, backgroundColor: theme.onBackground, right: 12 }]}\n />\n )}\n </View>\n </View>\n {!isLast && (\n <View style={[styles.dot, { width: dotSize, height: dotSize, borderRadius: dotSize / 2, backgroundColor: dotBg }]} />\n )}\n </View>\n )\n })}\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n container: { width: '100%', flexDirection: 'row', alignItems: 'flex-end' },\n stepItem: { flex: 1, flexDirection: 'column', gap: 4 },\n labelRow: { height: 12, justifyContent: 'flex-end' },\n label: { fontWeight: '600', letterSpacing: 0.8, textTransform: 'uppercase' },\n track: { overflow: 'hidden', position: 'relative' },\n trackFill: { position: 'absolute', left: 0 },\n dot: { alignSelf: 'flex-end' },\n})\n","export const stepperTokens = {\n trackHeight: 4,\n trackRadius: 8,\n dotSize: 4,\n labelFontSize: 10,\n gap: 4,\n}\n","import { Pressable, View, Text, StyleSheet, type StyleProp, type ViewStyle } from 'react-native'\nimport { useTheme } from '../../context/ThemeProvider'\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 style?: StyleProp<ViewStyle>\n}\n\nexport function RatingScale({ value = null, onChange, options = DEFAULT_OPTIONS, style }: RatingScaleProps) {\n const { theme } = useTheme()\n const { itemWidth, circleSize, circlePadding, circleRadius, emojiFontSize, emojiLineHeight, labelFontSize, numberFontSize, labelNumberGap } = 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 return (\n <Pressable\n key={itemValue}\n onPress={() => onChange?.(itemValue)}\n style={styles.item}\n accessibilityRole=\"button\"\n accessibilityState={{ selected }}\n >\n <View\n style={[\n styles.circle,\n {\n width: circleSize,\n height: circleSize,\n borderRadius: circleRadius,\n padding: circlePadding,\n backgroundColor: selected ? theme.primary : theme.surface,\n borderWidth: selected ? 0 : 1,\n borderColor: theme.border,\n },\n ]}\n >\n <Text style={[styles.emoji, { fontSize: emojiFontSize, lineHeight: emojiLineHeight }]}>\n {option.emoji}\n </Text>\n </View>\n <View style={[styles.labelContainer, { gap: labelNumberGap }]}>\n <Text\n style={[\n styles.label,\n {\n fontSize: labelFontSize,\n color: selected ? theme.primary : theme.onBackground,\n fontWeight: selected ? '700' : '500',\n width: itemWidth,\n },\n ]}\n >\n {option.label}\n </Text>\n <Text style={[styles.number, { fontSize: numberFontSize, color: theme.textTertiary }]}>\n {itemValue}\n </Text>\n </View>\n </Pressable>\n )\n })}\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n container: { flexDirection: 'row', justifyContent: 'space-between' },\n item: { alignItems: 'center', gap: 8 },\n circle: { alignItems: 'center', justifyContent: 'center', overflow: 'hidden' },\n emoji: { textAlign: 'center' },\n labelContainer: { alignItems: 'center' },\n label: { textAlign: 'center', lineHeight: 16 },\n number: { fontWeight: '600', letterSpacing: 0.8, textAlign: 'center', lineHeight: 10 },\n})\n"],"mappings":"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","names":["jsx","Pressable","Text","StyleSheet","jsx","Pressable","styles","Text","StyleSheet","Text","StyleSheet","jsx","styles","Text","StyleSheet","View","StyleSheet","jsx","View","styles","StyleSheet","View","StyleSheet","jsx","jsxs","View","styles","StyleSheet","Pressable","View","StyleSheet","jsx","Pressable","styles","View","StyleSheet","Pressable","View","Text","StyleSheet","jsx","jsxs","Pressable","styles","View","Text","StyleSheet","View","jsx","Pressable","View","Text","StyleSheet","jsx","jsxs","Pressable","styles","View","Text","StyleSheet","View","Text","StyleSheet","jsx","jsxs","View","styles","Text","StyleSheet","Pressable","View","Text","StyleSheet","jsx","jsxs","View","styles","Pressable","Text","StyleSheet"]}
1
+ {"version":3,"sources":["../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"],"sourcesContent":["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"],"mappings":"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","names":["jsx","sizes","Pressable","StyleSheet","jsx","Pressable","styles","StyleSheet","Pressable","StyleSheet","jsx","glyph","Pressable","styles","StyleSheet","Pressable","Text","StyleSheet","jsx","jsxs","Pressable","styles","Text","StyleSheet","Pressable","View","Text","StyleSheet","jsx","jsxs","View","styles","Text","Pressable","StyleSheet","View","StyleSheet","jsx","View","styles","StyleSheet","View","StyleSheet","jsx","jsxs","View","styles","StyleSheet","View","Text","jsx","jsxs","View","Text","Pressable","View","StyleSheet","jsx","radius","Pressable","styles","View","StyleSheet","Pressable","jsx","Pressable","View","jsx","Pressable","View","Text","StyleSheet","jsx","jsxs","View","styles","Pressable","Text","StyleSheet","Pressable","View","Text","StyleSheet","Fragment","jsx","jsxs","View","styles","Text","Pressable","StyleSheet","View","jsx","View","Pressable","View","Text","StyleSheet","jsx","jsxs","View","styles","Pressable","Text","StyleSheet"]}
@@ -1,5 +1,6 @@
1
- export { Colors, Typography, colors, typography } from './tokens/index.mjs';
2
- export { T as Theme, d as darkTheme, l as lightTheme } from './darkTheme-gaad4-zD.mjs';
1
+ export { BorderWidth, Colors, Grid, Opacity, Radius, Shadow, Spacing, Typography, borderWidth, colors, grid, opacity, radius, shadow, spacing, typography } from './tokens/index.mjs';
2
+ import { C as ChipSize, a as CheckboxSize } from './Checkbox.styles-DPyXzxFJ.mjs';
3
+ export { T as Theme, d as darkTheme, l as lightTheme } from './Checkbox.styles-DPyXzxFJ.mjs';
3
4
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
5
  import * as class_variance_authority_types from 'class-variance-authority/types';
5
6
  import { VariantProps } from 'class-variance-authority';
@@ -17,22 +18,57 @@ type ButtonProps = VariantProps<typeof button> & {
17
18
  };
18
19
  declare function Button({ variant, size, disabled, children, onClick, type, className }: ButtonProps): react_jsx_runtime.JSX.Element;
19
20
 
21
+ declare const buttonIcon: (props?: ({
22
+ variant?: "primary" | "secondary" | "ghost" | "overlay" | null | undefined;
23
+ size?: "sm" | "md" | "lg" | null | undefined;
24
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
25
+ type ButtonIconProps = VariantProps<typeof buttonIcon> & {
26
+ icon: React.ReactNode;
27
+ label: string;
28
+ disabled?: boolean;
29
+ onClick?: React.MouseEventHandler<HTMLButtonElement>;
30
+ type?: 'button' | 'submit' | 'reset';
31
+ className?: string;
32
+ };
33
+ declare function ButtonIcon({ variant, size, icon, label, disabled, onClick, type, className }: ButtonIconProps): react_jsx_runtime.JSX.Element;
34
+
35
+ declare const dismissButton: (props?: ({
36
+ variant?: "ghost" | "subtle" | null | undefined;
37
+ size?: "sm" | "md" | "xs" | null | undefined;
38
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
39
+ type DismissButtonProps = VariantProps<typeof dismissButton> & {
40
+ label?: string;
41
+ disabled?: boolean;
42
+ onClick?: React.MouseEventHandler<HTMLButtonElement>;
43
+ className?: string;
44
+ };
45
+ declare function DismissButton({ variant, size, label, disabled, onClick, className }: DismissButtonProps): react_jsx_runtime.JSX.Element;
46
+
20
47
  type ChipProps = {
21
48
  children: React.ReactNode;
22
49
  checked?: boolean;
50
+ disabled?: boolean;
51
+ size?: ChipSize;
52
+ leading?: React.ReactNode;
53
+ trailing?: React.ReactNode;
23
54
  onClick?: () => void;
24
55
  className?: string;
25
56
  };
26
- declare function Chip({ children, checked, onClick, className }: ChipProps): react_jsx_runtime.JSX.Element;
57
+ declare function Chip({ children, checked, disabled, size, leading, trailing, onClick, className }: ChipProps): react_jsx_runtime.JSX.Element;
27
58
 
28
- type AlertVariant = 'success' | 'info';
59
+ type AlertVariant = 'success' | 'info' | 'warning' | 'error';
60
+ type AlertSize = 'default' | 'compact';
61
+ type AlertLayout = 'stacked' | 'inline';
29
62
  type AlertProps = {
30
63
  variant?: AlertVariant;
31
- title: string;
64
+ size?: AlertSize;
65
+ layout?: AlertLayout;
66
+ title?: string;
32
67
  description?: string;
68
+ onDismiss?: () => void;
33
69
  className?: string;
34
70
  };
35
- declare function Alert({ variant, title, description, className }: AlertProps): react_jsx_runtime.JSX.Element;
71
+ declare function Alert({ variant, size, layout, title, description, onDismiss, className }: AlertProps): react_jsx_runtime.JSX.Element;
36
72
 
37
73
  type ProgressBarProps = {
38
74
  value: number;
@@ -46,28 +82,46 @@ type InputProps = {
46
82
  placeholder?: string;
47
83
  state?: InputState;
48
84
  leadingIcon?: React.ReactNode;
85
+ trailingIcon?: React.ReactNode;
86
+ onChange?: React.ChangeEventHandler<HTMLInputElement>;
87
+ className?: string;
88
+ };
89
+ declare function Input({ value, placeholder, state, leadingIcon, trailingIcon, onChange, className }: InputProps): react_jsx_runtime.JSX.Element;
90
+
91
+ type InputFieldProps = {
92
+ label?: string;
93
+ required?: boolean;
94
+ helperText?: string;
95
+ error?: boolean;
96
+ value?: string;
97
+ placeholder?: string;
98
+ disabled?: boolean;
99
+ leadingIcon?: React.ReactNode;
100
+ trailingIcon?: React.ReactNode;
49
101
  onChange?: React.ChangeEventHandler<HTMLInputElement>;
50
102
  className?: string;
51
103
  };
52
- declare function Input({ value, placeholder, state, leadingIcon, onChange, className }: InputProps): react_jsx_runtime.JSX.Element;
104
+ declare function InputField({ label, required, helperText, error, value, placeholder, disabled, leadingIcon, trailingIcon, onChange, className, }: InputFieldProps): react_jsx_runtime.JSX.Element;
53
105
 
54
106
  type CheckboxProps = {
55
107
  checked?: boolean;
56
108
  onChange?: (checked: boolean) => void;
57
109
  disabled?: boolean;
110
+ size?: CheckboxSize;
58
111
  className?: string;
59
112
  };
60
- declare function Checkbox({ checked, onChange, disabled, className }: CheckboxProps): react_jsx_runtime.JSX.Element;
113
+ declare function Checkbox({ checked, onChange, disabled, size, className }: CheckboxProps): react_jsx_runtime.JSX.Element;
61
114
 
62
- type RadioItemProps = {
115
+ type ToggleSwitchSize = 'xs' | 'sm' | 'md';
116
+ type ToggleSwitchProps = {
117
+ value?: boolean;
118
+ onChange?: (value: boolean) => void;
119
+ disabled?: boolean;
120
+ size?: ToggleSwitchSize;
63
121
  label: string;
64
- description?: string;
65
- selected?: boolean;
66
- icon?: React.ReactNode;
67
- onClick?: () => void;
68
122
  className?: string;
69
123
  };
70
- declare function RadioItem({ label, description, selected, icon, onClick, className }: RadioItemProps): react_jsx_runtime.JSX.Element;
124
+ declare function ToggleSwitch({ value, onChange, disabled, size, label, className }: ToggleSwitchProps): react_jsx_runtime.JSX.Element;
71
125
 
72
126
  type RadioGroupProps = {
73
127
  children: React.ReactNode;
@@ -76,25 +130,41 @@ type RadioGroupProps = {
76
130
  };
77
131
  declare function RadioGroup({ children, label, className }: RadioGroupProps): react_jsx_runtime.JSX.Element;
78
132
 
79
- type ActionItemProps = {
133
+ type ChoiceCardType = 'radio' | 'checkbox' | 'action';
134
+ type ChoiceCardProps = {
135
+ type?: ChoiceCardType;
80
136
  label: string;
81
137
  description?: string;
82
138
  selected?: boolean;
83
- icon?: React.ReactNode;
139
+ disabled?: boolean;
140
+ leading?: React.ReactNode;
141
+ showTrailing?: boolean;
84
142
  onClick?: () => void;
85
143
  className?: string;
86
144
  };
87
- declare function ActionItem({ label, description, selected, icon, onClick, className }: ActionItemProps): react_jsx_runtime.JSX.Element;
145
+ declare function ChoiceCard({ type, label, description, selected, disabled, leading, showTrailing, onClick, className }: ChoiceCardProps): react_jsx_runtime.JSX.Element;
88
146
 
89
- type Step = {
147
+ type ListItemTrailing = 'none' | 'radio' | 'checkbox' | 'action' | 'switch';
148
+ type ListItemProps = {
149
+ trailing?: ListItemTrailing;
90
150
  label: string;
151
+ description?: string;
152
+ selected?: boolean;
153
+ disabled?: boolean;
154
+ leading?: React.ReactNode;
155
+ switchValue?: boolean;
156
+ onSwitchChange?: (value: boolean) => void;
157
+ onClick?: () => void;
158
+ className?: string;
91
159
  };
160
+ declare function ListItem({ trailing, label, description, selected, disabled, leading, switchValue, onSwitchChange, onClick, className }: ListItemProps): react_jsx_runtime.JSX.Element;
161
+
92
162
  type StepperProps = {
93
- steps: Step[];
163
+ totalSteps: number;
94
164
  currentStep: number;
95
165
  className?: string;
96
166
  };
97
- declare function Stepper({ steps, currentStep, className }: StepperProps): react_jsx_runtime.JSX.Element;
167
+ declare function Stepper({ totalSteps, currentStep, className }: StepperProps): react_jsx_runtime.JSX.Element;
98
168
 
99
169
  type RatingScaleOption = {
100
170
  emoji: string;
@@ -104,8 +174,9 @@ type RatingScaleProps = {
104
174
  value?: number | null;
105
175
  onChange?: (value: number) => void;
106
176
  options?: ReadonlyArray<RatingScaleOption>;
177
+ disabled?: boolean;
107
178
  className?: string;
108
179
  };
109
- declare function RatingScale({ value, onChange, options, className }: RatingScaleProps): react_jsx_runtime.JSX.Element;
180
+ declare function RatingScale({ value, onChange, options, disabled, className }: RatingScaleProps): react_jsx_runtime.JSX.Element;
110
181
 
111
- export { ActionItem, Alert, Button, Checkbox, Chip, Input, ProgressBar, RadioGroup, RadioItem, RatingScale, Stepper };
182
+ export { Alert, Button, ButtonIcon, Checkbox, Chip, ChoiceCard, DismissButton, Input, InputField, ListItem, ProgressBar, RadioGroup, RatingScale, Stepper, ToggleSwitch };
@@ -1,5 +1,6 @@
1
- export { Colors, Typography, colors, typography } from './tokens/index.js';
2
- export { T as Theme, d as darkTheme, l as lightTheme } from './darkTheme-gaad4-zD.js';
1
+ export { BorderWidth, Colors, Grid, Opacity, Radius, Shadow, Spacing, Typography, borderWidth, colors, grid, opacity, radius, shadow, spacing, typography } from './tokens/index.js';
2
+ import { C as ChipSize, a as CheckboxSize } from './Checkbox.styles-DPyXzxFJ.js';
3
+ export { T as Theme, d as darkTheme, l as lightTheme } from './Checkbox.styles-DPyXzxFJ.js';
3
4
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
5
  import * as class_variance_authority_types from 'class-variance-authority/types';
5
6
  import { VariantProps } from 'class-variance-authority';
@@ -17,22 +18,57 @@ type ButtonProps = VariantProps<typeof button> & {
17
18
  };
18
19
  declare function Button({ variant, size, disabled, children, onClick, type, className }: ButtonProps): react_jsx_runtime.JSX.Element;
19
20
 
21
+ declare const buttonIcon: (props?: ({
22
+ variant?: "primary" | "secondary" | "ghost" | "overlay" | null | undefined;
23
+ size?: "sm" | "md" | "lg" | null | undefined;
24
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
25
+ type ButtonIconProps = VariantProps<typeof buttonIcon> & {
26
+ icon: React.ReactNode;
27
+ label: string;
28
+ disabled?: boolean;
29
+ onClick?: React.MouseEventHandler<HTMLButtonElement>;
30
+ type?: 'button' | 'submit' | 'reset';
31
+ className?: string;
32
+ };
33
+ declare function ButtonIcon({ variant, size, icon, label, disabled, onClick, type, className }: ButtonIconProps): react_jsx_runtime.JSX.Element;
34
+
35
+ declare const dismissButton: (props?: ({
36
+ variant?: "ghost" | "subtle" | null | undefined;
37
+ size?: "sm" | "md" | "xs" | null | undefined;
38
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
39
+ type DismissButtonProps = VariantProps<typeof dismissButton> & {
40
+ label?: string;
41
+ disabled?: boolean;
42
+ onClick?: React.MouseEventHandler<HTMLButtonElement>;
43
+ className?: string;
44
+ };
45
+ declare function DismissButton({ variant, size, label, disabled, onClick, className }: DismissButtonProps): react_jsx_runtime.JSX.Element;
46
+
20
47
  type ChipProps = {
21
48
  children: React.ReactNode;
22
49
  checked?: boolean;
50
+ disabled?: boolean;
51
+ size?: ChipSize;
52
+ leading?: React.ReactNode;
53
+ trailing?: React.ReactNode;
23
54
  onClick?: () => void;
24
55
  className?: string;
25
56
  };
26
- declare function Chip({ children, checked, onClick, className }: ChipProps): react_jsx_runtime.JSX.Element;
57
+ declare function Chip({ children, checked, disabled, size, leading, trailing, onClick, className }: ChipProps): react_jsx_runtime.JSX.Element;
27
58
 
28
- type AlertVariant = 'success' | 'info';
59
+ type AlertVariant = 'success' | 'info' | 'warning' | 'error';
60
+ type AlertSize = 'default' | 'compact';
61
+ type AlertLayout = 'stacked' | 'inline';
29
62
  type AlertProps = {
30
63
  variant?: AlertVariant;
31
- title: string;
64
+ size?: AlertSize;
65
+ layout?: AlertLayout;
66
+ title?: string;
32
67
  description?: string;
68
+ onDismiss?: () => void;
33
69
  className?: string;
34
70
  };
35
- declare function Alert({ variant, title, description, className }: AlertProps): react_jsx_runtime.JSX.Element;
71
+ declare function Alert({ variant, size, layout, title, description, onDismiss, className }: AlertProps): react_jsx_runtime.JSX.Element;
36
72
 
37
73
  type ProgressBarProps = {
38
74
  value: number;
@@ -46,28 +82,46 @@ type InputProps = {
46
82
  placeholder?: string;
47
83
  state?: InputState;
48
84
  leadingIcon?: React.ReactNode;
85
+ trailingIcon?: React.ReactNode;
86
+ onChange?: React.ChangeEventHandler<HTMLInputElement>;
87
+ className?: string;
88
+ };
89
+ declare function Input({ value, placeholder, state, leadingIcon, trailingIcon, onChange, className }: InputProps): react_jsx_runtime.JSX.Element;
90
+
91
+ type InputFieldProps = {
92
+ label?: string;
93
+ required?: boolean;
94
+ helperText?: string;
95
+ error?: boolean;
96
+ value?: string;
97
+ placeholder?: string;
98
+ disabled?: boolean;
99
+ leadingIcon?: React.ReactNode;
100
+ trailingIcon?: React.ReactNode;
49
101
  onChange?: React.ChangeEventHandler<HTMLInputElement>;
50
102
  className?: string;
51
103
  };
52
- declare function Input({ value, placeholder, state, leadingIcon, onChange, className }: InputProps): react_jsx_runtime.JSX.Element;
104
+ declare function InputField({ label, required, helperText, error, value, placeholder, disabled, leadingIcon, trailingIcon, onChange, className, }: InputFieldProps): react_jsx_runtime.JSX.Element;
53
105
 
54
106
  type CheckboxProps = {
55
107
  checked?: boolean;
56
108
  onChange?: (checked: boolean) => void;
57
109
  disabled?: boolean;
110
+ size?: CheckboxSize;
58
111
  className?: string;
59
112
  };
60
- declare function Checkbox({ checked, onChange, disabled, className }: CheckboxProps): react_jsx_runtime.JSX.Element;
113
+ declare function Checkbox({ checked, onChange, disabled, size, className }: CheckboxProps): react_jsx_runtime.JSX.Element;
61
114
 
62
- type RadioItemProps = {
115
+ type ToggleSwitchSize = 'xs' | 'sm' | 'md';
116
+ type ToggleSwitchProps = {
117
+ value?: boolean;
118
+ onChange?: (value: boolean) => void;
119
+ disabled?: boolean;
120
+ size?: ToggleSwitchSize;
63
121
  label: string;
64
- description?: string;
65
- selected?: boolean;
66
- icon?: React.ReactNode;
67
- onClick?: () => void;
68
122
  className?: string;
69
123
  };
70
- declare function RadioItem({ label, description, selected, icon, onClick, className }: RadioItemProps): react_jsx_runtime.JSX.Element;
124
+ declare function ToggleSwitch({ value, onChange, disabled, size, label, className }: ToggleSwitchProps): react_jsx_runtime.JSX.Element;
71
125
 
72
126
  type RadioGroupProps = {
73
127
  children: React.ReactNode;
@@ -76,25 +130,41 @@ type RadioGroupProps = {
76
130
  };
77
131
  declare function RadioGroup({ children, label, className }: RadioGroupProps): react_jsx_runtime.JSX.Element;
78
132
 
79
- type ActionItemProps = {
133
+ type ChoiceCardType = 'radio' | 'checkbox' | 'action';
134
+ type ChoiceCardProps = {
135
+ type?: ChoiceCardType;
80
136
  label: string;
81
137
  description?: string;
82
138
  selected?: boolean;
83
- icon?: React.ReactNode;
139
+ disabled?: boolean;
140
+ leading?: React.ReactNode;
141
+ showTrailing?: boolean;
84
142
  onClick?: () => void;
85
143
  className?: string;
86
144
  };
87
- declare function ActionItem({ label, description, selected, icon, onClick, className }: ActionItemProps): react_jsx_runtime.JSX.Element;
145
+ declare function ChoiceCard({ type, label, description, selected, disabled, leading, showTrailing, onClick, className }: ChoiceCardProps): react_jsx_runtime.JSX.Element;
88
146
 
89
- type Step = {
147
+ type ListItemTrailing = 'none' | 'radio' | 'checkbox' | 'action' | 'switch';
148
+ type ListItemProps = {
149
+ trailing?: ListItemTrailing;
90
150
  label: string;
151
+ description?: string;
152
+ selected?: boolean;
153
+ disabled?: boolean;
154
+ leading?: React.ReactNode;
155
+ switchValue?: boolean;
156
+ onSwitchChange?: (value: boolean) => void;
157
+ onClick?: () => void;
158
+ className?: string;
91
159
  };
160
+ declare function ListItem({ trailing, label, description, selected, disabled, leading, switchValue, onSwitchChange, onClick, className }: ListItemProps): react_jsx_runtime.JSX.Element;
161
+
92
162
  type StepperProps = {
93
- steps: Step[];
163
+ totalSteps: number;
94
164
  currentStep: number;
95
165
  className?: string;
96
166
  };
97
- declare function Stepper({ steps, currentStep, className }: StepperProps): react_jsx_runtime.JSX.Element;
167
+ declare function Stepper({ totalSteps, currentStep, className }: StepperProps): react_jsx_runtime.JSX.Element;
98
168
 
99
169
  type RatingScaleOption = {
100
170
  emoji: string;
@@ -104,8 +174,9 @@ type RatingScaleProps = {
104
174
  value?: number | null;
105
175
  onChange?: (value: number) => void;
106
176
  options?: ReadonlyArray<RatingScaleOption>;
177
+ disabled?: boolean;
107
178
  className?: string;
108
179
  };
109
- declare function RatingScale({ value, onChange, options, className }: RatingScaleProps): react_jsx_runtime.JSX.Element;
180
+ declare function RatingScale({ value, onChange, options, disabled, className }: RatingScaleProps): react_jsx_runtime.JSX.Element;
110
181
 
111
- export { ActionItem, Alert, Button, Checkbox, Chip, Input, ProgressBar, RadioGroup, RadioItem, RatingScale, Stepper };
182
+ export { Alert, Button, ButtonIcon, Checkbox, Chip, ChoiceCard, DismissButton, Input, InputField, ListItem, ProgressBar, RadioGroup, RatingScale, Stepper, ToggleSwitch };