@frosted-ui/react-native 0.0.1-canary.93 → 0.0.1-canary.95

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/README.md +18 -5
  2. package/dist/components/avatar.d.ts.map +1 -1
  3. package/dist/components/avatar.js +1 -0
  4. package/dist/components/avatar.js.map +1 -1
  5. package/dist/components/badge.d.ts.map +1 -1
  6. package/dist/components/badge.js +2 -0
  7. package/dist/components/badge.js.map +1 -1
  8. package/dist/components/button.js +1 -1
  9. package/dist/components/card.d.ts.map +1 -1
  10. package/dist/components/card.js +2 -1
  11. package/dist/components/card.js.map +1 -1
  12. package/dist/components/circular-progress.d.ts +21 -0
  13. package/dist/components/circular-progress.d.ts.map +1 -0
  14. package/dist/components/circular-progress.js +78 -0
  15. package/dist/components/circular-progress.js.map +1 -0
  16. package/dist/components/heading.d.ts +2 -2
  17. package/dist/components/heading.d.ts.map +1 -1
  18. package/dist/components/icon-button.js +1 -1
  19. package/dist/components/index.d.ts +4 -0
  20. package/dist/components/index.d.ts.map +1 -1
  21. package/dist/components/index.js +4 -0
  22. package/dist/components/index.js.map +1 -1
  23. package/dist/components/link.d.ts +19 -0
  24. package/dist/components/link.d.ts.map +1 -0
  25. package/dist/components/link.js +68 -0
  26. package/dist/components/link.js.map +1 -0
  27. package/dist/components/list.d.ts +37 -0
  28. package/dist/components/list.d.ts.map +1 -0
  29. package/dist/components/list.js +112 -0
  30. package/dist/components/list.js.map +1 -0
  31. package/dist/components/select.js +1 -1
  32. package/dist/components/separator.d.ts.map +1 -1
  33. package/dist/components/separator.js +2 -3
  34. package/dist/components/separator.js.map +1 -1
  35. package/dist/components/slider.d.ts +30 -0
  36. package/dist/components/slider.d.ts.map +1 -0
  37. package/dist/components/slider.js +248 -0
  38. package/dist/components/slider.js.map +1 -0
  39. package/dist/components/text-area.d.ts.map +1 -1
  40. package/dist/components/text-area.js +1 -1
  41. package/dist/components/text-area.js.map +1 -1
  42. package/dist/components/text-field.d.ts.map +1 -1
  43. package/dist/components/text-field.js +41 -3
  44. package/dist/components/text-field.js.map +1 -1
  45. package/dist/components/text.d.ts +2 -2
  46. package/dist/components/text.d.ts.map +1 -1
  47. package/dist/components/text.js +11 -2
  48. package/dist/components/text.js.map +1 -1
  49. package/docs/llm/COLOR_SYSTEM.md +799 -0
  50. package/docs/llm/COMPONENTS.md +1329 -0
  51. package/docs/llm/DESIGN_PATTERNS.md +2567 -0
  52. package/docs/llm/README.md +118 -0
  53. package/docs/llm/TYPOGRAPHY.md +516 -0
  54. package/package.json +9 -3
@@ -0,0 +1,112 @@
1
+ import { Card } from '../components/card';
2
+ import { TextStyleContext } from '../components/text';
3
+ import { useThemeTokens } from '../lib/use-theme-tokens';
4
+ import * as React from 'react';
5
+ import { Platform, Pressable, Text, View, } from 'react-native';
6
+ function ListRoot({ variant = 'surface', style, children, ...props }) {
7
+ return (<Card variant={variant} style={[{ padding: 0 }, style]} {...props}>
8
+ {children}
9
+ </Card>);
10
+ }
11
+ function ListItem({ children, onPress, disabled, style, ...props }) {
12
+ const { colors } = useThemeTokens();
13
+ const [pressed, setPressed] = React.useState(false);
14
+ const [hovered, setHovered] = React.useState(false);
15
+ const isInteractive = !!onPress && !disabled;
16
+ const isHighlighted = isInteractive && (pressed || hovered);
17
+ const itemStyle = {
18
+ flexDirection: 'row',
19
+ alignItems: 'center',
20
+ gap: 12,
21
+ paddingVertical: 12,
22
+ paddingHorizontal: 16,
23
+ backgroundColor: isHighlighted ? colors.palettes.gray.a3 : undefined,
24
+ ...(Platform.OS === 'web' && isInteractive
25
+ ? { cursor: 'pointer', userSelect: 'none' }
26
+ : {}),
27
+ };
28
+ // Web hover handlers
29
+ const webProps = Platform.OS === 'web' && isInteractive
30
+ ? {
31
+ onMouseEnter: () => setHovered(true),
32
+ onMouseLeave: () => setHovered(false),
33
+ }
34
+ : {};
35
+ return (<Pressable onPress={onPress} onPressIn={() => setPressed(true)} onPressOut={() => setPressed(false)} disabled={disabled || !onPress} style={[itemStyle, style]} {...webProps} {...props}>
36
+ {children}
37
+ </Pressable>);
38
+ }
39
+ function ListItemSlot({ children, style, ...props }) {
40
+ const { colors } = useThemeTokens();
41
+ const slotStyle = {
42
+ alignItems: 'center',
43
+ justifyContent: 'center',
44
+ minWidth: 24,
45
+ minHeight: 24,
46
+ };
47
+ // Provide icon color context
48
+ return (<TextStyleContext.Provider value={{ color: colors.palettes.gray.a11 }}>
49
+ <View style={[slotStyle, style]} {...props}>
50
+ {children}
51
+ </View>
52
+ </TextStyleContext.Provider>);
53
+ }
54
+ function ListItemContent({ children, style, ...props }) {
55
+ const contentStyle = {
56
+ flex: 1,
57
+ gap: 2,
58
+ justifyContent: 'center',
59
+ };
60
+ return (<View style={[contentStyle, style]} {...props}>
61
+ {children}
62
+ </View>);
63
+ }
64
+ function ListItemTitle({ children, style, ...props }) {
65
+ const { colors, typography, fontWeights } = useThemeTokens();
66
+ const typo = typography['3'];
67
+ const titleStyle = {
68
+ fontSize: typo.fontSize,
69
+ lineHeight: typo.lineHeight,
70
+ letterSpacing: typo.letterSpacing,
71
+ fontWeight: fontWeights.medium,
72
+ color: colors.palettes.gray['12'],
73
+ };
74
+ return (<Text style={[titleStyle, style]} {...props}>
75
+ {children}
76
+ </Text>);
77
+ }
78
+ function ListItemDescription({ children, style, ...props }) {
79
+ const { colors, typography } = useThemeTokens();
80
+ const typo = typography['2'];
81
+ const descriptionStyle = {
82
+ fontSize: typo.fontSize,
83
+ lineHeight: typo.lineHeight,
84
+ letterSpacing: typo.letterSpacing,
85
+ color: colors.palettes.gray.a11,
86
+ };
87
+ return (<Text style={[descriptionStyle, style]} {...props}>
88
+ {children}
89
+ </Text>);
90
+ }
91
+ function ListSeparator({ style, ...props }) {
92
+ const { colors } = useThemeTokens();
93
+ const separatorStyle = {
94
+ height: 1,
95
+ backgroundColor: colors.stroke,
96
+ };
97
+ return <View style={[separatorStyle, style]} {...props}/>;
98
+ }
99
+ // ============================================================================
100
+ // Exports
101
+ // ============================================================================
102
+ const List = {
103
+ Root: ListRoot,
104
+ Item: ListItem,
105
+ ItemSlot: ListItemSlot,
106
+ ItemContent: ListItemContent,
107
+ ItemTitle: ListItemTitle,
108
+ ItemDescription: ListItemDescription,
109
+ Separator: ListSeparator,
110
+ };
111
+ export { List };
112
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/components/list.tsx"],"names":[],"mappings":"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"}
@@ -39,7 +39,7 @@ const noop = () => { };
39
39
  const SelectContentContext = React.createContext({
40
40
  registerItemPosition: noop,
41
41
  });
42
- function SelectRoot({ size = '2', value, onValueChange, children, ...props }) {
42
+ function SelectRoot({ size = '3', value, onValueChange, children, ...props }) {
43
43
  const labelMapRef = React.useRef(new Map());
44
44
  const [open, setOpen] = React.useState(false);
45
45
  // Handle open state changes
@@ -1 +1 @@
1
- {"version":3,"file":"separator.d.ts","sourceRoot":"","sources":["../../src/components/separator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,kBAAkB,MAAM,0BAA0B,CAAC;AAG/D,QAAA,MAAM,cAAc,+BAAgC,CAAC;AAErD,KAAK,aAAa,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAoBrD,KAAK,cAAc,GAAG,kBAAkB,CAAC,SAAS,GAAG;IACnD,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;AAEF,iBAAS,SAAS,CAAC,EACjB,IAAU,EACV,KAAc,EACd,WAA0B,EAC1B,UAAiB,EACjB,KAAK,EACL,GAAG,KAAK,EACT,EAAE,cAAc,+BAuChB;AAED,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;AACrC,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"separator.d.ts","sourceRoot":"","sources":["../../src/components/separator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,kBAAkB,MAAM,0BAA0B,CAAC;AAG/D,QAAA,MAAM,cAAc,+BAAgC,CAAC;AAErD,KAAK,aAAa,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAoBrD,KAAK,cAAc,GAAG,kBAAkB,CAAC,SAAS,GAAG;IACnD,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;AAEF,iBAAS,SAAS,CAAC,EACjB,IAAU,EACV,KAAc,EACd,WAA0B,EAC1B,UAAiB,EACjB,KAAK,EACL,GAAG,KAAK,EACT,EAAE,cAAc,+BAsChB;AAED,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;AACrC,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC"}
@@ -20,12 +20,11 @@ function getSeparatorSize(size) {
20
20
  }
21
21
  function Separator({ size = '1', color = 'gray', orientation = 'horizontal', decorative = true, style, ...props }) {
22
22
  const { colors } = useThemeTokens();
23
- const gray = colors.palettes.gray;
24
- const palette = colors.palettes[color] ?? gray;
23
+ const separatorColor = color !== 'gray' ? colors.palettes[color].a6 : colors.stroke;
25
24
  const separatorSize = getSeparatorSize(size);
26
25
  // Base style - thickness is always 1px
27
26
  const baseStyle = {
28
- backgroundColor: palette.a6,
27
+ backgroundColor: separatorColor,
29
28
  flexShrink: 0,
30
29
  };
31
30
  // Orientation-based sizing
@@ -1 +1 @@
1
- {"version":3,"file":"separator.js","sourceRoot":"","sources":["../../src/components/separator.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,kBAAkB,MAAM,0BAA0B,CAAC;AAG/D,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AAIrD,yBAAyB;AACzB,gCAAgC;AAChC,gCAAgC;AAChC,gCAAgC;AAChC,eAAe;AACf,SAAS,gBAAgB,CAAC,IAAmB;IAC3C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,GAAG;YACN,OAAO,EAAE,CAAC;QACZ,KAAK,GAAG;YACN,OAAO,EAAE,CAAC;QACZ,KAAK,GAAG;YACN,OAAO,EAAE,CAAC;QACZ,KAAK,GAAG;YACN,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC;AAOD,SAAS,SAAS,CAAC,EACjB,IAAI,GAAG,GAAG,EACV,KAAK,GAAG,MAAM,EACd,WAAW,GAAG,YAAY,EAC1B,UAAU,GAAG,IAAI,EACjB,KAAK,EACL,GAAG,KAAK,EACO;IACf,MAAM,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,CAAC;IAEpC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;IAClC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;IAE/C,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAE7C,uCAAuC;IACvC,MAAM,SAAS,GAAc;QAC3B,eAAe,EAAE,OAAO,CAAC,EAAE;QAC3B,UAAU,EAAE,CAAC;KACd,CAAC;IAEF,2BAA2B;IAC3B,MAAM,gBAAgB,GACpB,WAAW,KAAK,YAAY;QAC1B,CAAC,CAAC;YACE,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,aAAa;SACrB;QACH,CAAC,CAAC;YACE,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,aAAa;SACtB,CAAC;IAER,MAAM,aAAa,GAAc;QAC/B,GAAG,SAAS;QACZ,GAAG,gBAAgB;KACpB,CAAC;IAEF,OAAO,CACL,CAAC,kBAAkB,CAAC,IAAI,CACtB,UAAU,CAAC,CAAC,UAAU,CAAC,CACvB,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,KAAK,CAAC,CAAC,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAC9B,IAAI,KAAK,CAAC,EACV,CACH,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"separator.js","sourceRoot":"","sources":["../../src/components/separator.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,kBAAkB,MAAM,0BAA0B,CAAC;AAG/D,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AAIrD,yBAAyB;AACzB,gCAAgC;AAChC,gCAAgC;AAChC,gCAAgC;AAChC,eAAe;AACf,SAAS,gBAAgB,CAAC,IAAmB;IAC3C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,GAAG;YACN,OAAO,EAAE,CAAC;QACZ,KAAK,GAAG;YACN,OAAO,EAAE,CAAC;QACZ,KAAK,GAAG;YACN,OAAO,EAAE,CAAC;QACZ,KAAK,GAAG;YACN,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC;AAOD,SAAS,SAAS,CAAC,EACjB,IAAI,GAAG,GAAG,EACV,KAAK,GAAG,MAAM,EACd,WAAW,GAAG,YAAY,EAC1B,UAAU,GAAG,IAAI,EACjB,KAAK,EACL,GAAG,KAAK,EACO;IACf,MAAM,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,CAAC;IAEpC,MAAM,cAAc,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IAEpF,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAE7C,uCAAuC;IACvC,MAAM,SAAS,GAAc;QAC3B,eAAe,EAAE,cAAc;QAC/B,UAAU,EAAE,CAAC;KACd,CAAC;IAEF,2BAA2B;IAC3B,MAAM,gBAAgB,GACpB,WAAW,KAAK,YAAY;QAC1B,CAAC,CAAC;YACE,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,aAAa;SACrB;QACH,CAAC,CAAC;YACE,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,aAAa;SACtB,CAAC;IAER,MAAM,aAAa,GAAc;QAC/B,GAAG,SAAS;QACZ,GAAG,gBAAgB;KACpB,CAAC;IAEF,OAAO,CACL,CAAC,kBAAkB,CAAC,IAAI,CACtB,UAAU,CAAC,CAAC,UAAU,CAAC,CACvB,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,KAAK,CAAC,CAAC,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAC9B,IAAI,KAAK,CAAC,EACV,CACH,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { Color } from '../lib/types';
2
+ import * as React from 'react';
3
+ import { type ViewStyle } from 'react-native';
4
+ type SliderSize = '1' | '2' | '3';
5
+ type SliderProps = {
6
+ /** Size of the slider track and thumb */
7
+ size?: SliderSize;
8
+ /** Accent color for the filled range */
9
+ color?: Color;
10
+ /** Current value - controlled mode */
11
+ value?: number;
12
+ /** Default value - uncontrolled mode */
13
+ defaultValue?: number;
14
+ /** Minimum value */
15
+ min?: number;
16
+ /** Maximum value */
17
+ max?: number;
18
+ /** Step increment */
19
+ step?: number;
20
+ /** Callback when value changes */
21
+ onValueChange?: (value: number) => void;
22
+ /** Whether the slider is disabled */
23
+ disabled?: boolean;
24
+ /** Container style */
25
+ style?: ViewStyle;
26
+ };
27
+ declare function Slider({ size, color, value: controlledValue, defaultValue, min, max, step, onValueChange, disabled, style, }: SliderProps): React.JSX.Element;
28
+ export { Slider };
29
+ export type { SliderProps };
30
+ //# sourceMappingURL=slider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../src/components/slider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAA0C,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAWtF,KAAK,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AA8BlC,KAAK,WAAW,GAAG;IACjB,yCAAyC;IACzC,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,wCAAwC;IACxC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sBAAsB;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,iBAAS,MAAM,CAAC,EACd,IAAU,EACV,KAAK,EACL,KAAK,EAAE,eAAe,EACtB,YAAiB,EACjB,GAAO,EACP,GAAS,EACT,IAAQ,EACR,aAAa,EACb,QAAgB,EAChB,KAAK,GACN,EAAE,WAAW,qBA4Gb;AA4PD,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,YAAY,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,248 @@
1
+ import { useThemeTokens } from '../lib/use-theme-tokens';
2
+ import * as SliderPrimitive from '@rn-primitives/slider';
3
+ import * as React from 'react';
4
+ import { Platform, View } from 'react-native';
5
+ import { Gesture, GestureDetector, GestureHandlerRootView, } from 'react-native-gesture-handler';
6
+ import Animated, { runOnJS, useAnimatedStyle, useSharedValue } from 'react-native-reanimated';
7
+ // Size styles from CSS:
8
+ // Size 1: --slider-track-size: calc(var(--space-2) * 0.75) = 6px
9
+ // Size 2: --slider-track-size: var(--space-2) = 8px
10
+ // Size 3: --slider-track-size: calc(var(--space-2) * 1.25) = 10px
11
+ // --slider-thumb-size: calc(var(--slider-track-size) + var(--space-1)) = track + 4px
12
+ function getSizeStyle(size) {
13
+ switch (size) {
14
+ case '1': {
15
+ const trackHeight = 6;
16
+ const thumbSize = trackHeight + 4; // 10
17
+ return { trackHeight, thumbSize };
18
+ }
19
+ case '2': {
20
+ const trackHeight = 8;
21
+ const thumbSize = trackHeight + 4; // 12
22
+ return { trackHeight, thumbSize };
23
+ }
24
+ case '3': {
25
+ const trackHeight = 10;
26
+ const thumbSize = trackHeight + 4; // 14
27
+ return { trackHeight, thumbSize };
28
+ }
29
+ }
30
+ }
31
+ function Slider({ size = '2', color, value: controlledValue, defaultValue = 50, min = 0, max = 100, step = 1, onValueChange, disabled = false, style, }) {
32
+ const { colors } = useThemeTokens();
33
+ // Internal state for uncontrolled mode
34
+ const [internalValue, setInternalValue] = React.useState(defaultValue);
35
+ // Use controlled value if provided, otherwise use internal state
36
+ const currentValue = controlledValue !== undefined ? controlledValue : internalValue;
37
+ const gray = colors.palettes.gray;
38
+ const palette = colors.palettes[color ?? 'accent'] ?? gray;
39
+ const { trackHeight, thumbSize } = getSizeStyle(size);
40
+ // The thumb has a visible pseudo-element that's slightly larger
41
+ const thumbVisibleSize = thumbSize + Math.floor(trackHeight * 0.5);
42
+ // Range (filled track) color
43
+ const rangeColor = disabled ? gray.a5 : palette['9'];
44
+ // Calculate range width based on value
45
+ const rangePercent = ((currentValue - min) / (max - min)) * 100;
46
+ // Update value helper
47
+ const updateValue = React.useCallback((newValue) => {
48
+ if (controlledValue === undefined) {
49
+ setInternalValue(newValue);
50
+ }
51
+ onValueChange?.(newValue);
52
+ }, [controlledValue, onValueChange]);
53
+ // Handle value changes from rn-primitives (receives array)
54
+ const handlePrimitiveValueChange = React.useCallback((newValue) => {
55
+ updateValue(newValue[0] ?? min);
56
+ }, [updateValue, min]);
57
+ // Track styles
58
+ const trackStyle = {
59
+ height: trackHeight,
60
+ borderRadius: trackHeight / 2,
61
+ backgroundColor: gray.a4,
62
+ justifyContent: 'center',
63
+ position: 'relative',
64
+ };
65
+ const rangeStyle = {
66
+ height: trackHeight,
67
+ borderRadius: trackHeight / 2,
68
+ backgroundColor: rangeColor,
69
+ position: 'absolute',
70
+ left: 0,
71
+ width: `${rangePercent}%`,
72
+ };
73
+ // Container style
74
+ const containerStyle = {
75
+ height: thumbVisibleSize + 8,
76
+ justifyContent: 'center',
77
+ opacity: disabled ? 0.5 : 1,
78
+ ...style,
79
+ };
80
+ // Web implementation using rn-primitives for accessibility (keyboard, focus)
81
+ if (Platform.OS === 'web') {
82
+ return (<WebSlider currentValue={currentValue} min={min} max={max} step={step} disabled={disabled} handlePrimitiveValueChange={handlePrimitiveValueChange} containerStyle={containerStyle} trackStyle={trackStyle} rangeStyle={rangeStyle} thumbVisibleSize={thumbVisibleSize} gray={gray} palette={palette}/>);
83
+ }
84
+ // Native implementation with Gesture Handler for proper scroll view negotiation
85
+ return (<NativeSlider {...{
86
+ currentValue,
87
+ min,
88
+ max,
89
+ step,
90
+ disabled,
91
+ updateValue,
92
+ trackHeight,
93
+ thumbVisibleSize,
94
+ gray,
95
+ rangeColor,
96
+ trackStyle,
97
+ rangeStyle,
98
+ containerStyle,
99
+ }}/>);
100
+ }
101
+ // Separate web component to track focus state with hooks
102
+ function WebSlider({ currentValue, min, max, step, disabled, handlePrimitiveValueChange, containerStyle, trackStyle, rangeStyle, thumbVisibleSize, gray, palette, }) {
103
+ const [isFocused, setIsFocused] = React.useState(false);
104
+ // Base box-shadow (always visible)
105
+ const baseBoxShadow = disabled
106
+ ? `0 0 0 1px ${gray['5']}`
107
+ : `0 0 0 1px ${gray.a3}, 0 1px 2px ${gray.a4}, 0 1px 3px -0.5px ${gray.a3}`;
108
+ // Focus box-shadow adds the light accent buffer ring
109
+ const focusBoxShadow = `${baseBoxShadow}, 0 0 0 3px ${palette['3']}`;
110
+ const webThumbStyle = {
111
+ width: thumbVisibleSize,
112
+ height: thumbVisibleSize,
113
+ borderRadius: thumbVisibleSize / 2,
114
+ backgroundColor: disabled ? gray['1'] : 'white',
115
+ boxShadow: isFocused && !disabled ? focusBoxShadow : baseBoxShadow,
116
+ cursor: disabled ? 'not-allowed' : 'grab',
117
+ // Focus outline - only show when focused
118
+ outlineStyle: isFocused && !disabled ? 'solid' : 'none',
119
+ outlineWidth: 2,
120
+ outlineOffset: 3,
121
+ outlineColor: palette['8'],
122
+ };
123
+ return (<SliderPrimitive.Root value={currentValue} min={min} max={max} step={step} onValueChange={handlePrimitiveValueChange} disabled={disabled} style={containerStyle}>
124
+ <SliderPrimitive.Track style={trackStyle}>
125
+ <SliderPrimitive.Range style={rangeStyle}/>
126
+ </SliderPrimitive.Track>
127
+ <SliderPrimitive.Thumb style={webThumbStyle} onFocus={() => setIsFocused(true)} onBlur={() => setIsFocused(false)}>
128
+ <View />
129
+ </SliderPrimitive.Thumb>
130
+ </SliderPrimitive.Root>);
131
+ }
132
+ // Separate native component to avoid hook issues with conditional rendering
133
+ function NativeSlider({ currentValue, min, max, step, disabled, updateValue, trackHeight, thumbVisibleSize, gray, rangeColor, trackStyle, rangeStyle, containerStyle, }) {
134
+ // Track dimensions
135
+ const trackWidth = useSharedValue(0);
136
+ // Animated thumb position (as percentage 0-1)
137
+ const thumbPosition = useSharedValue((currentValue - min) / (max - min));
138
+ // Update thumb position when controlled value changes
139
+ React.useEffect(() => {
140
+ thumbPosition.value = (currentValue - min) / (max - min);
141
+ }, [currentValue, min, max, thumbPosition]);
142
+ // Convert position to stepped value
143
+ const positionToValue = React.useCallback((position) => {
144
+ 'worklet';
145
+ const percent = Math.max(0, Math.min(1, position));
146
+ const rawValue = min + percent * (max - min);
147
+ // Round to step
148
+ const steppedValue = Math.round(rawValue / step) * step;
149
+ return Math.max(min, Math.min(max, steppedValue));
150
+ }, [min, max, step]);
151
+ // Handle track layout to get dimensions
152
+ const handleTrackLayout = React.useCallback((event) => {
153
+ trackWidth.value = event.nativeEvent.layout.width;
154
+ // We'll measure pageX on gesture start
155
+ }, [trackWidth]);
156
+ // Track ref for measuring
157
+ const trackRef = React.useRef(null);
158
+ // Pan gesture with proper scroll view handling
159
+ const panGesture = React.useMemo(() => Gesture.Pan()
160
+ .enabled(!disabled)
161
+ // Small horizontal threshold to claim gesture before scroll view
162
+ .activeOffsetX([-5, 5])
163
+ // Large vertical threshold - let scroll view handle vertical
164
+ .failOffsetY([-20, 20])
165
+ .onStart((event) => {
166
+ // Calculate position from touch
167
+ if (trackWidth.value > 0) {
168
+ // Use the locationX which is relative to the component
169
+ const percent = Math.max(0, Math.min(1, event.x / trackWidth.value));
170
+ thumbPosition.value = percent;
171
+ const newValue = positionToValue(percent);
172
+ runOnJS(updateValue)(newValue);
173
+ }
174
+ })
175
+ .onUpdate((event) => {
176
+ if (trackWidth.value > 0) {
177
+ const percent = Math.max(0, Math.min(1, event.x / trackWidth.value));
178
+ thumbPosition.value = percent;
179
+ const newValue = positionToValue(percent);
180
+ runOnJS(updateValue)(newValue);
181
+ }
182
+ }), [disabled, trackWidth, thumbPosition, positionToValue, updateValue]);
183
+ // Tap gesture for clicking on track
184
+ const tapGesture = React.useMemo(() => Gesture.Tap()
185
+ .enabled(!disabled)
186
+ .onStart((event) => {
187
+ if (trackWidth.value > 0) {
188
+ const percent = Math.max(0, Math.min(1, event.x / trackWidth.value));
189
+ thumbPosition.value = percent;
190
+ const newValue = positionToValue(percent);
191
+ runOnJS(updateValue)(newValue);
192
+ }
193
+ }), [disabled, trackWidth, thumbPosition, positionToValue, updateValue]);
194
+ // Combine gestures - tap and pan work together
195
+ const composedGesture = Gesture.Race(panGesture, tapGesture);
196
+ // Outer ring size (the outline effect from web's box-shadow)
197
+ const outerRingSize = thumbVisibleSize + 2;
198
+ // Animated styles for range fill
199
+ const animatedRangeStyle = useAnimatedStyle(() => {
200
+ return {
201
+ width: `${thumbPosition.value * 100}%`,
202
+ };
203
+ });
204
+ // Animated styles for thumb position
205
+ const animatedThumbStyle = useAnimatedStyle(() => {
206
+ const left = thumbPosition.value * trackWidth.value - outerRingSize / 2;
207
+ return {
208
+ transform: [{ translateX: left }],
209
+ };
210
+ });
211
+ // Outer ring style - creates the dark outline effect
212
+ const thumbOuterStyle = {
213
+ width: outerRingSize,
214
+ height: outerRingSize,
215
+ borderRadius: outerRingSize / 2,
216
+ backgroundColor: disabled ? gray['5'] : gray.a5,
217
+ position: 'absolute',
218
+ top: (trackHeight - outerRingSize) / 2,
219
+ left: 0,
220
+ alignItems: 'center',
221
+ justifyContent: 'center',
222
+ // Drop shadow
223
+ shadowColor: '#000',
224
+ shadowOpacity: disabled ? 0.08 : 0.15,
225
+ shadowOffset: { width: 0, height: 1 },
226
+ shadowRadius: 2,
227
+ elevation: disabled ? 1 : 2,
228
+ };
229
+ // Inner thumb style - the white center
230
+ const thumbInnerStyle = {
231
+ width: thumbVisibleSize,
232
+ height: thumbVisibleSize,
233
+ borderRadius: thumbVisibleSize / 2,
234
+ backgroundColor: disabled ? gray['1'] : 'white',
235
+ };
236
+ return (<GestureHandlerRootView style={containerStyle}>
237
+ <GestureDetector gesture={composedGesture}>
238
+ <View ref={trackRef} style={trackStyle} onLayout={handleTrackLayout}>
239
+ <Animated.View style={[rangeStyle, animatedRangeStyle, { backgroundColor: rangeColor }]}/>
240
+ <Animated.View style={[thumbOuterStyle, animatedThumbStyle]}>
241
+ <View style={thumbInnerStyle}/>
242
+ </Animated.View>
243
+ </View>
244
+ </GestureDetector>
245
+ </GestureHandlerRootView>);
246
+ }
247
+ export { Slider };
248
+ //# sourceMappingURL=slider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slider.js","sourceRoot":"","sources":["../../src/components/slider.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"text-area.d.ts","sourceRoot":"","sources":["../../src/components/text-area.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,SAAS,EAEf,MAAM,cAAc,CAAC;AAStB,KAAK,YAAY,GAAG,aAAa,CAAC;AAClC,KAAK,eAAe,GAAG,gBAAgB,CAAC;AA0DxC,UAAU,aAAc,SAAQ,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC;IAC3D,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,iBAAS,QAAQ,CAAC,EAChB,IAAU,EACV,OAAmB,EACnB,KAAK,EACL,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,aAAa,qBAgGf;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"text-area.d.ts","sourceRoot":"","sources":["../../src/components/text-area.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,SAAS,EAEf,MAAM,cAAc,CAAC;AAStB,KAAK,YAAY,GAAG,aAAa,CAAC;AAClC,KAAK,eAAe,GAAG,gBAAgB,CAAC;AA0DxC,UAAU,aAAc,SAAQ,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC;IAC3D,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,iBAAS,QAAQ,CAAC,EAChB,IAAU,EACV,OAAmB,EACnB,KAAK,EACL,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,aAAa,qBA2Ff;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC"}
@@ -45,7 +45,7 @@ function getTextAreaSizeStyle(size) {
45
45
  };
46
46
  }
47
47
  }
48
- function TextArea({ size = '2', variant = 'surface', color, style, editable, ...props }) {
48
+ function TextArea({ size = '3', variant = 'surface', color, style, editable, ...props }) {
49
49
  const { colors } = useThemeTokens();
50
50
  const gray = colors.palettes.gray;
51
51
  // For soft variant background/text, use gray as default
@@ -1 +1 @@
1
- {"version":3,"file":"text-area.js","sourceRoot":"","sources":["../../src/components/text-area.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text-area.js","sourceRoot":"","sources":["../../src/components/text-area.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"text-field.d.ts","sourceRoot":"","sources":["../../src/components/text-field.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAEL,SAAS,EAGT,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,SAAS,EAEf,MAAM,cAAc,CAAC;AAMtB,KAAK,aAAa,GAAG,aAAa,CAAC;AACnC,KAAK,gBAAgB,GAAG,gBAAgB,CAAC;AA2DzC,UAAU,kBAAmB,SAAQ,SAAS;IAC5C,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,iBAAS,aAAa,CAAC,EACrB,IAAU,EACV,OAAmB,EACnB,KAAK,EACL,QAAgB,EAChB,OAAO,EAAE,WAAW,EACpB,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,kBAAkB,qBA4IpB;AAMD,UAAU,kBAAmB,SAAQ,SAAS;IAC5C,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,iBAAS,aAAa,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,4BAiC9E;AAMD,UAAU,mBAAoB,SAAQ,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC;IACjE,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,QAAA,MAAM,cAAc,uFAyHnB,CAAC;AAOF,QAAA,MAAM,SAAS;;;;CAId,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;AACnE,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,GACjB,CAAC"}
1
+ {"version":3,"file":"text-field.d.ts","sourceRoot":"","sources":["../../src/components/text-field.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAEL,SAAS,EAGT,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,SAAS,EAEf,MAAM,cAAc,CAAC;AAMtB,KAAK,aAAa,GAAG,aAAa,CAAC;AACnC,KAAK,gBAAgB,GAAG,gBAAgB,CAAC;AA6DzC,UAAU,kBAAmB,SAAQ,SAAS;IAC5C,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,iBAAS,aAAa,CAAC,EACrB,IAAU,EACV,OAAmB,EACnB,KAAK,EACL,QAAgB,EAChB,OAAO,EAAE,WAAW,EACpB,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,kBAAkB,qBA+KpB;AAMD,UAAU,kBAAmB,SAAQ,SAAS;IAC5C,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,iBAAS,aAAa,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,4BAiC9E;AAMD,UAAU,mBAAoB,SAAQ,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC;IACjE,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,QAAA,MAAM,cAAc,uFAgInB,CAAC;AAOF,QAAA,MAAM,SAAS;;;;CAId,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;AACnE,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,GACjB,CAAC"}
@@ -29,7 +29,7 @@ function getSlotPadding(size) {
29
29
  return 12;
30
30
  }
31
31
  }
32
- function TextFieldRoot({ size = '2', variant = 'surface', color, disabled = false, focused: focusedProp, style, children, ...props }) {
32
+ function TextFieldRoot({ size = '3', variant = 'surface', color, disabled = false, focused: focusedProp, style, children, ...props }) {
33
33
  const { colors } = useThemeTokens();
34
34
  const gray = colors.palettes.gray;
35
35
  // For soft variant background/text, use gray as default
@@ -39,6 +39,36 @@ function TextFieldRoot({ size = '2', variant = 'surface', color, disabled = fals
39
39
  const [internalFocused, setInternalFocused] = React.useState(false);
40
40
  const focused = focusedProp !== undefined ? focusedProp : internalFocused;
41
41
  const inputRef = React.useRef(null);
42
+ // Determine if there are slots before/after the input
43
+ const childArray = React.Children.toArray(children);
44
+ let inputIndex = -1;
45
+ let hasSlotBefore = false;
46
+ let hasSlotAfter = false;
47
+ childArray.forEach((child, index) => {
48
+ if (React.isValidElement(child)) {
49
+ if (child.type === TextFieldInput) {
50
+ inputIndex = index;
51
+ }
52
+ }
53
+ });
54
+ if (inputIndex !== -1) {
55
+ // Check for slots before the input
56
+ for (let i = 0; i < inputIndex; i++) {
57
+ const child = childArray[i];
58
+ if (React.isValidElement(child) && child.type === TextFieldSlot) {
59
+ hasSlotBefore = true;
60
+ break;
61
+ }
62
+ }
63
+ // Check for slots after the input
64
+ for (let i = inputIndex + 1; i < childArray.length; i++) {
65
+ const child = childArray[i];
66
+ if (React.isValidElement(child) && child.type === TextFieldSlot) {
67
+ hasSlotAfter = true;
68
+ break;
69
+ }
70
+ }
71
+ }
42
72
  const sizeStyle = getSizeStyle(size);
43
73
  // Background and border based on variant
44
74
  let variantStyle = variant === 'surface'
@@ -132,6 +162,8 @@ function TextFieldRoot({ size = '2', variant = 'surface', color, disabled = fals
132
162
  inputRef,
133
163
  onFocus: () => setInternalFocused(true),
134
164
  onBlur: () => setInternalFocused(false),
165
+ hasSlotBefore,
166
+ hasSlotAfter,
135
167
  }}>
136
168
  <View style={[rootStyle, style]} {...(Platform.OS === 'web'
137
169
  ? { onPointerDown: handlePointerDown }
@@ -171,7 +203,7 @@ function TextFieldSlot({ color, style, children, ...props }) {
171
203
  const TextFieldInput = React.forwardRef(({ size: sizeProp, variant: variantProp, color: colorProp, style, editable, ...props }, forwardedRef) => {
172
204
  const context = React.useContext(TextFieldContext);
173
205
  const { colors } = useThemeTokens();
174
- const size = sizeProp ?? context?.size ?? '2';
206
+ const size = sizeProp ?? context?.size ?? '3';
175
207
  const variant = variantProp ?? context?.variant ?? 'surface';
176
208
  // Keep color undefined if not explicitly set, so TextFieldRoot uses accent for focus
177
209
  const color = colorProp ?? context?.color;
@@ -202,13 +234,19 @@ const TextFieldInput = React.forwardRef(({ size: sizeProp, variant: variantProp,
202
234
  : basePlaceholderColor;
203
235
  // Account for border height: surface variant has 1px border top and bottom (2px total)
204
236
  const inputHeight = variant === 'surface' ? sizeStyle.height - 2 : sizeStyle.height;
237
+ // Determine padding based on adjacent slots
238
+ const hasSlotBefore = context?.hasSlotBefore ?? false;
239
+ const hasSlotAfter = context?.hasSlotAfter ?? false;
240
+ const paddingLeft = hasSlotBefore ? 0 : sizeStyle.paddingHorizontal;
241
+ const paddingRight = hasSlotAfter ? 0 : sizeStyle.paddingHorizontal;
205
242
  const inputStyle = {
206
243
  flex: 1,
207
244
  minWidth: 0, // Allow input to shrink below content width
208
245
  height: inputHeight,
209
246
  fontSize: sizeStyle.fontSize,
210
247
  color: textColor,
211
- paddingHorizontal: sizeStyle.paddingHorizontal,
248
+ paddingLeft,
249
+ paddingRight,
212
250
  // Remove default styling
213
251
  ...(Platform.OS === 'web'
214
252
  ? {