@medway-ui/native 1.8.0 → 1.8.2

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.
@@ -3,10 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.Switch = Switch;
7
- exports.switchVariants = void 0;
6
+ exports.switchVariants = exports.Switch = void 0;
8
7
  var _react = require("react");
9
8
  var _reactNative = require("react-native");
9
+ var _nativewind = require("nativewind");
10
10
  var SwitchPrimitive = _interopRequireWildcard(require("@rn-primitives/switch"));
11
11
  var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
12
12
  var _classVarianceAuthority = require("class-variance-authority");
@@ -15,16 +15,29 @@ var _touchTarget = require("@/lib/touch-target");
15
15
  var _useThemeColor = require("@/hooks/useThemeColor");
16
16
  var _jsxRuntime = require("react/jsx-runtime");
17
17
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
18
+ // `@rn-primitives/switch` renders a plain Pressable — cssInterop makes `className` work.
19
+ const StyledSwitchRoot = (0, _nativewind.cssInterop)(SwitchPrimitive.Root, {
20
+ className: "style"
21
+ });
22
+ const BORDER_WIDTH = 2;
23
+ /** Gap between thumb and inner edge of the track border (web `translate-x-0.5`). */
24
+ const THUMB_INSET = 2;
25
+ const CENTER = {
26
+ alignItems: "center",
27
+ justifyContent: "center"
28
+ };
18
29
  const THUMB_SIZES = {
19
30
  sm: 8,
20
31
  md: 12,
21
32
  lg: 16
22
33
  };
23
- const THUMB_TRANSLATE = {
24
- sm: 11,
25
- md: 15,
26
- lg: 19
34
+ const ICON_SIZES = {
35
+ sm: 8,
36
+ md: 12,
37
+ lg: 14
27
38
  };
39
+
40
+ /** Same scale as web `h-4 w-6` / `h-5 w-8` / `h-6 w-10` at 16px rem. */
28
41
  const SWITCH_DIMENSIONS = {
29
42
  sm: {
30
43
  width: 24,
@@ -39,15 +52,43 @@ const SWITCH_DIMENSIONS = {
39
52
  height: 24
40
53
  }
41
54
  };
42
- const switchVariants = exports.switchVariants = (0, _classVarianceAuthority.cva)("rounded-full border-2 items-center shrink-0", {
55
+
56
+ /**
57
+ * Thumb is a sibling of the bordered track (not a child of it), so offsets are
58
+ * from the root's outer box. That avoids Yoga content-box quirks where absolute
59
+ * children of a bordered view shift the knob down / past the right edge.
60
+ *
61
+ * off = border + inset
62
+ * on = width - border - inset - thumb
63
+ * on+disabled keeps a 1px tighter right inset, matching web.
64
+ */
65
+ function getThumbTranslateX(trackWidth, thumbSize, checked, disabled) {
66
+ const off = BORDER_WIDTH + THUMB_INSET;
67
+ if (!checked) return off;
68
+ const on = trackWidth - BORDER_WIDTH - THUMB_INSET - thumbSize;
69
+ return disabled ? on - 1 : on;
70
+ }
71
+
72
+ /**
73
+ * Even curve. A strong ease-out spends the last frames crawling, which reads
74
+ * as the thumb catching. Track and thumb colors ride the same curve.
75
+ */
76
+ const THUMB_MOTION = {
77
+ duration: 250,
78
+ easing: _reactNativeReanimated.Easing.inOut(_reactNativeReanimated.Easing.cubic)
79
+ };
80
+
81
+ // Px, not `h-6 w-10`: NativeWind resolves rem as 14px on native, which shrinks
82
+ // the track below SWITCH_DIMENSIONS and pushes the thumb down and out the right.
83
+ const switchVariants = exports.switchVariants = (0, _classVarianceAuthority.cva)("shrink-0", {
43
84
  variants: {
44
85
  variant: {
45
86
  regular: ""
46
87
  },
47
88
  size: {
48
- sm: "h-4 w-6",
49
- md: "h-5 w-8",
50
- lg: "h-6 w-10"
89
+ sm: "h-[16px] w-[24px]",
90
+ md: "h-[20px] w-[32px]",
91
+ lg: "h-[24px] w-[40px]"
51
92
  }
52
93
  },
53
94
  defaultVariants: {
@@ -55,90 +96,162 @@ const switchVariants = exports.switchVariants = (0, _classVarianceAuthority.cva)
55
96
  size: "md"
56
97
  }
57
98
  });
58
- function Switch({
99
+ function renderThumbIcon(icon, color, size) {
100
+ if (! /*#__PURE__*/(0, _react.isValidElement)(icon)) return icon;
101
+ return /*#__PURE__*/(0, _react.cloneElement)(icon, {
102
+ color: icon.props.color ?? color,
103
+ width: icon.props.width ?? size,
104
+ height: icon.props.height ?? size
105
+ });
106
+ }
107
+ function SwitchThumbIcons({
108
+ progress,
109
+ checkedIcon,
110
+ uncheckedIcon,
111
+ checkedIconColor,
112
+ uncheckedIconColor,
113
+ iconSize
114
+ }) {
115
+ const checkedIconStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
116
+ opacity: progress.value
117
+ }));
118
+ const uncheckedIconStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
119
+ opacity: 1 - progress.value
120
+ }));
121
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
122
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
123
+ style: [_reactNative.StyleSheet.absoluteFill, CENTER, uncheckedIconStyle],
124
+ children: renderThumbIcon(uncheckedIcon, uncheckedIconColor, iconSize)
125
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
126
+ style: [_reactNative.StyleSheet.absoluteFill, CENTER, checkedIconStyle],
127
+ children: renderThumbIcon(checkedIcon, checkedIconColor, iconSize)
128
+ })]
129
+ });
130
+ }
131
+ const Switch = exports.Switch = /*#__PURE__*/(0, _react.memo)(function Switch({
59
132
  className,
60
133
  size = "md",
61
- variant,
134
+ variant = "regular",
62
135
  checkedIcon,
63
136
  uncheckedIcon,
64
137
  checked,
65
138
  defaultChecked,
66
139
  onCheckedChange,
67
- disabled,
140
+ disabled = false,
68
141
  style,
69
142
  ...props
70
143
  }) {
71
144
  const resolvedSize = size ?? "md";
72
145
  const dimensions = SWITCH_DIMENSIONS[resolvedSize];
146
+ const thumbSize = THUMB_SIZES[resolvedSize];
147
+ const iconSize = ICON_SIZES[resolvedSize];
73
148
  const [internalChecked, setInternalChecked] = (0, _react.useState)(defaultChecked ?? false);
74
149
  const isControlled = checked !== undefined;
75
- const isChecked = isControlled ? checked ?? false : internalChecked;
76
- const trackOn = (0, _useThemeColor.useThemeColor)("primary-background-fill");
77
- const trackOff = (0, _useThemeColor.useThemeColor)("surface-card");
78
- const trackDisabled = (0, _useThemeColor.useThemeColor)("gray-background-soft-muted");
79
- const trackBorder = (0, _useThemeColor.useThemeColor)("gray-stroke-muted");
80
- const thumbOn = (0, _useThemeColor.useThemeColor)("primary-foreground-onfill");
81
- const thumbOff = (0, _useThemeColor.useThemeColor)("gray-foreground-muted");
82
- const thumbDisabled = (0, _useThemeColor.useThemeColor)("gray-background-fill-muted");
83
- const translateX = (0, _reactNativeReanimated.useSharedValue)(isChecked ? THUMB_TRANSLATE[resolvedSize] : 2);
84
- (0, _react.useEffect)(() => {
85
- translateX.value = (0, _reactNativeReanimated.withTiming)(isChecked ? THUMB_TRANSLATE[resolvedSize] : 2, {
86
- duration: 180,
87
- easing: _reactNativeReanimated.Easing.out(_reactNativeReanimated.Easing.ease)
88
- });
89
- }, [isChecked, resolvedSize, translateX]);
90
- const thumbStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
91
- transform: [{
92
- translateX: translateX.value
93
- }]
94
- }));
150
+ const isChecked = isControlled ? checked : internalChecked;
95
151
  const hasIcons = Boolean(checkedIcon || uncheckedIcon);
96
- const thumbSize = THUMB_SIZES[resolvedSize];
152
+ const checkedIconColor = (0, _useThemeColor.useThemeColor)(disabled ? "gray-300" : "primary-foreground-onfill");
153
+ const uncheckedIconColor = (0, _useThemeColor.useThemeColor)(disabled ? "gray-300" : "gray-foreground");
154
+ const trackOffColor = (0, _useThemeColor.useThemeColor)(disabled ? "gray-background-soft-muted" : "surface-card");
155
+ const trackOnColor = (0, _useThemeColor.useThemeColor)(disabled ? "gray-background-soft-muted" : "primary-background-fill");
156
+ const borderOffColor = (0, _useThemeColor.useThemeColor)("gray-stroke-muted");
157
+ const borderOnColor = disabled ? borderOffColor : (0, _useThemeColor.withAlpha)(borderOffColor, 0);
158
+ const thumbDisabledColor = (0, _useThemeColor.useThemeColor)("gray-background-fill-muted");
159
+ const thumbOnToken = (0, _useThemeColor.useThemeColor)("primary-foreground-onfill");
160
+ const thumbOffToken = (0, _useThemeColor.useThemeColor)("gray-foreground-muted");
161
+ const thumbOffColor = hasIcons ? "rgba(0, 0, 0, 0)" : disabled ? thumbDisabledColor : thumbOffToken;
162
+ const thumbOnColor = hasIcons ? "rgba(0, 0, 0, 0)" : disabled ? thumbDisabledColor : thumbOnToken;
163
+ const offX = getThumbTranslateX(dimensions.width, thumbSize, false, disabled);
164
+ const onX = getThumbTranslateX(dimensions.width, thumbSize, true, disabled);
165
+ // Root has no border — center against the outer height.
166
+ const thumbTop = (dimensions.height - thumbSize) / 2;
167
+
168
+ // Single UI-thread driver for position, colors and icons. In controlled mode
169
+ // the visual only moves when `checked` changes (same as the web Radix switch).
170
+ const progress = (0, _reactNativeReanimated.useSharedValue)(isChecked ? 1 : 0);
171
+ const targetRef = (0, _react.useRef)(isChecked);
172
+ const animateTo = next => {
173
+ if (targetRef.current === next) return;
174
+ targetRef.current = next;
175
+ progress.value = (0, _reactNativeReanimated.withTiming)(next ? 1 : 0, THUMB_MOTION);
176
+ };
177
+ (0, _react.useLayoutEffect)(() => {
178
+ animateTo(isChecked);
179
+ }, [isChecked]);
97
180
  const handleCheckedChange = nextChecked => {
98
- if (!isControlled) setInternalChecked(nextChecked);
181
+ if (!isControlled) {
182
+ animateTo(nextChecked);
183
+ setInternalChecked(nextChecked);
184
+ }
99
185
  onCheckedChange?.(nextChecked);
100
186
  };
101
- const trackBackgroundColor = disabled ? trackDisabled : isChecked ? trackOn : trackOff;
102
- const trackBorderColor = disabled || !isChecked ? trackBorder : "transparent";
103
- const thumbBackgroundColor = disabled ? thumbDisabled : hasIcons ? "transparent" : isChecked ? thumbOn : thumbOff;
104
- const rootStyle = {
187
+ const trackMotionStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
188
+ backgroundColor: (0, _reactNativeReanimated.interpolateColor)(progress.value, [0, 1], [trackOffColor, trackOnColor]),
189
+ borderColor: (0, _reactNativeReanimated.interpolateColor)(progress.value, [0, 1], [borderOffColor, borderOnColor])
190
+ }));
191
+ const thumbMotionStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
192
+ transform: [{
193
+ translateX: offX + (onX - offX) * progress.value
194
+ }]
195
+ }), [offX, onX]);
196
+ const thumbColorStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
197
+ backgroundColor: (0, _reactNativeReanimated.interpolateColor)(progress.value, [0, 1], [thumbOffColor, thumbOnColor])
198
+ }));
199
+ const baseRootStyle = (0, _react.useMemo)(() => ({
105
200
  width: dimensions.width,
106
201
  height: dimensions.height,
107
202
  minWidth: dimensions.width,
108
203
  minHeight: dimensions.height,
109
204
  borderRadius: dimensions.height / 2,
110
- borderWidth: 2,
111
- alignItems: "flex-start",
112
- justifyContent: "center",
113
- backgroundColor: trackBackgroundColor,
114
- borderColor: trackBorderColor
115
- };
116
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(SwitchPrimitive.Root, {
205
+ borderWidth: 0,
206
+ padding: 0,
207
+ overflow: "visible"
208
+ }), [dimensions.height, dimensions.width]);
209
+ const trackStyle = (0, _react.useMemo)(() => ({
210
+ ..._reactNative.StyleSheet.absoluteFill,
211
+ borderRadius: dimensions.height / 2,
212
+ borderWidth: BORDER_WIDTH
213
+ }), [dimensions.height]);
214
+ const thumbStyle = (0, _react.useMemo)(() => ({
215
+ position: "absolute",
216
+ top: thumbTop,
217
+ left: 0,
218
+ width: thumbSize,
219
+ height: thumbSize,
220
+ borderRadius: thumbSize / 2,
221
+ alignItems: "center",
222
+ justifyContent: "center"
223
+ }), [thumbSize, thumbTop]);
224
+ const hitSlop = (0, _react.useMemo)(() => (0, _touchTarget.getMinTouchHitSlop)(dimensions.width, dimensions.height), [dimensions.height, dimensions.width]);
225
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(StyledSwitchRoot, {
226
+ hitSlop: hitSlop,
227
+ ...props,
117
228
  checked: isChecked,
118
229
  onCheckedChange: handleCheckedChange,
119
230
  disabled: disabled,
120
- hitSlop: (0, _touchTarget.getMinTouchHitSlop)(dimensions.width, dimensions.height),
121
- style: state => [rootStyle, typeof style === "function" ? style(state) : style],
122
231
  className: (0, _utils.cn)(switchVariants({
123
- size,
232
+ size: resolvedSize,
124
233
  variant
125
- }), className),
126
- ...props,
127
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(SwitchPrimitive.Thumb, {
128
- asChild: true,
129
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
130
- style: [thumbStyle, {
131
- width: thumbSize,
132
- height: thumbSize,
133
- borderRadius: thumbSize / 2,
134
- backgroundColor: thumbBackgroundColor
135
- }],
136
- children: hasIcons ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
137
- className: "flex-1 items-center justify-center",
138
- children: [isChecked && checkedIcon, !isChecked && uncheckedIcon]
139
- }) : null
140
- })
141
- })
234
+ }), className)
235
+ // Not a function: with a `className`, NativeWind spreads `style` into an
236
+ // object, and a function spreads to nothing.
237
+ ,
238
+ style: [baseRootStyle, style],
239
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
240
+ pointerEvents: "none",
241
+ style: [trackStyle, trackMotionStyle]
242
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
243
+ pointerEvents: "none",
244
+ collapsable: false,
245
+ style: [thumbStyle, thumbMotionStyle, thumbColorStyle],
246
+ children: hasIcons ? /*#__PURE__*/(0, _jsxRuntime.jsx)(SwitchThumbIcons, {
247
+ progress: progress,
248
+ checkedIcon: checkedIcon,
249
+ uncheckedIcon: uncheckedIcon,
250
+ checkedIconColor: checkedIconColor,
251
+ uncheckedIconColor: uncheckedIconColor,
252
+ iconSize: iconSize
253
+ }) : null
254
+ })]
142
255
  });
143
- }
256
+ });
144
257
  //# sourceMappingURL=Switch.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","SwitchPrimitive","_interopRequireWildcard","_reactNativeReanimated","_classVarianceAuthority","_utils","_touchTarget","_useThemeColor","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","THUMB_SIZES","sm","md","lg","THUMB_TRANSLATE","SWITCH_DIMENSIONS","width","height","switchVariants","exports","cva","variants","variant","regular","size","defaultVariants","Switch","className","checkedIcon","uncheckedIcon","checked","defaultChecked","onCheckedChange","disabled","style","props","resolvedSize","dimensions","internalChecked","setInternalChecked","useState","isControlled","undefined","isChecked","trackOn","useThemeColor","trackOff","trackDisabled","trackBorder","thumbOn","thumbOff","thumbDisabled","translateX","useSharedValue","useEffect","value","withTiming","duration","easing","Easing","out","ease","thumbStyle","useAnimatedStyle","transform","hasIcons","Boolean","thumbSize","handleCheckedChange","nextChecked","trackBackgroundColor","trackBorderColor","thumbBackgroundColor","rootStyle","minWidth","minHeight","borderRadius","borderWidth","alignItems","justifyContent","backgroundColor","borderColor","jsx","Root","hitSlop","getMinTouchHitSlop","state","cn","children","Thumb","asChild","View","jsxs"],"sourceRoot":"../../../src","sources":["components/Switch.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_nativewind","SwitchPrimitive","_interopRequireWildcard","_reactNativeReanimated","_classVarianceAuthority","_utils","_touchTarget","_useThemeColor","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","StyledSwitchRoot","cssInterop","Root","className","BORDER_WIDTH","THUMB_INSET","CENTER","alignItems","justifyContent","THUMB_SIZES","sm","md","lg","ICON_SIZES","SWITCH_DIMENSIONS","width","height","getThumbTranslateX","trackWidth","thumbSize","checked","disabled","off","on","THUMB_MOTION","duration","easing","Easing","inOut","cubic","switchVariants","exports","cva","variants","variant","regular","size","defaultVariants","renderThumbIcon","icon","color","isValidElement","cloneElement","props","SwitchThumbIcons","progress","checkedIcon","uncheckedIcon","checkedIconColor","uncheckedIconColor","iconSize","checkedIconStyle","useAnimatedStyle","opacity","value","uncheckedIconStyle","jsxs","Fragment","children","jsx","View","style","StyleSheet","absoluteFill","Switch","memo","defaultChecked","onCheckedChange","resolvedSize","dimensions","internalChecked","setInternalChecked","useState","isControlled","undefined","isChecked","hasIcons","Boolean","useThemeColor","trackOffColor","trackOnColor","borderOffColor","borderOnColor","withAlpha","thumbDisabledColor","thumbOnToken","thumbOffToken","thumbOffColor","thumbOnColor","offX","onX","thumbTop","useSharedValue","targetRef","useRef","animateTo","next","current","withTiming","useLayoutEffect","handleCheckedChange","nextChecked","trackMotionStyle","backgroundColor","interpolateColor","borderColor","thumbMotionStyle","transform","translateX","thumbColorStyle","baseRootStyle","useMemo","minWidth","minHeight","borderRadius","borderWidth","padding","overflow","trackStyle","thumbStyle","position","top","left","hitSlop","getMinTouchHitSlop","cn","pointerEvents","collapsable"],"sourceRoot":"../../../src","sources":["components/Switch.tsx"],"mappings":"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","ignoreList":[]}
@@ -73,7 +73,7 @@ const buttonVariants = cva("flex-row items-center justify-center gap-2 rounded-p
73
73
  success: "bg-green-background-fill active:bg-green-background-fill-emphasis disabled:bg-gray-background-fill-muted",
74
74
  "success-soft": "bg-green-background-soft active:bg-green-background-soft-emphasis disabled:bg-gray-background-soft-muted",
75
75
  "success-basic": "bg-transparent active:bg-green-background-soft-emphasis disabled:bg-transparent",
76
- outlined: "border border-gray-stroke-muted bg-transparent active:bg-gray-50 disabled:border-gray-stroke-muted",
76
+ outlined: "border border-gray-stroke-muted bg-transparent active:bg-state-hover disabled:border-gray-stroke-muted",
77
77
  gradient: "bg-primary active:opacity-90 disabled:bg-gray-background-fill-muted",
78
78
  medbrain: "bg-surface-card border-2 border-secondary active:bg-secondary-background-soft disabled:bg-gray-background-fill-muted disabled:border-transparent"
79
79
  },
@@ -1 +1 @@
1
- {"version":3,"names":["Pressable","View","Text","cva","cn","Loading","Badge","BadgeComponent","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ICON_ONLY_SIZES","sm","md","lg","xl","badgeSizeMap","ALERT_DOT_SIZES","LOADING_SIZES","FILLED_LOADING_COLOR","SOFT_LOADING_COLOR","LOADING_COLOR_TOKENS","regular","emphasis","error","warning","success","outlined","gradient","medbrain","buttonVariants","variants","variant","size","defaultVariants","buttonTextVariants","shouldShowBadge","value","Button","className","containerStyle","iconRight","iconLeft","badge","loading","alert","disabled","children","props","resolvedSize","resolvedVariant","isIconOnly","style","position","String","accessibilityRole","accessibilityState","busy","colorToken","width","height","backgroundColor"],"sourceRoot":"../../../src","sources":["components/Button.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Pressable","View","Text","cva","cn","Loading","Badge","BadgeComponent","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ICON_ONLY_SIZES","sm","md","lg","xl","badgeSizeMap","ALERT_DOT_SIZES","LOADING_SIZES","FILLED_LOADING_COLOR","SOFT_LOADING_COLOR","LOADING_COLOR_TOKENS","regular","emphasis","error","warning","success","outlined","gradient","medbrain","buttonVariants","variants","variant","size","defaultVariants","buttonTextVariants","shouldShowBadge","value","Button","className","containerStyle","iconRight","iconLeft","badge","loading","alert","disabled","children","props","resolvedSize","resolvedVariant","isIconOnly","style","position","String","accessibilityRole","accessibilityState","busy","colorToken","width","height","backgroundColor"],"sourceRoot":"../../../src","sources":["components/Button.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
- import { useState, useCallback, useEffect, cloneElement } from "react";
4
- import { View, TextInput, Pressable } from "react-native";
3
+ import { useState, useCallback, useEffect, useRef, cloneElement } from "react";
4
+ import { View, TextInput, Pressable, StyleSheet } from "react-native";
5
5
  import Animated, { useSharedValue, useAnimatedStyle, withTiming, interpolate, Easing } from "react-native-reanimated";
6
6
  import { cva } from "class-variance-authority";
7
7
  import { ChevronDown, Hide, Lock, Mail, Show, TriangleWarning } from "@medway-ui/icons/native";
@@ -16,6 +16,15 @@ const INPUT_ICON_SIZE_MD = 20;
16
16
  const INPUT_ICON_STROKE_WIDTH = 1.6;
17
17
  const CHEVRON_SIZE_LG = 10;
18
18
  const CHEVRON_SIZE_MD = 8;
19
+ const LABELED_INPUT_HEIGHT_CLASS = {
20
+ lg: "h-14",
21
+ md: "h-11"
22
+ };
23
+ const LABEL_FONT_SIZE = {
24
+ lg: 16,
25
+ md: 14
26
+ };
27
+ const FLOATED_LABEL_FONT_SIZE = 12;
19
28
  const inputVariants = cva("w-full rounded-md border-2 border-gray-stroke-muted bg-surface-card px-4 text-gray-foreground", {
20
29
  variants: {
21
30
  size: {
@@ -60,45 +69,120 @@ function InputField({
60
69
  ...props
61
70
  });
62
71
  }
72
+
73
+ // `left-4`/`right-4` and `left-12`/`right-12` in FloatingLabel, in rem.
74
+ const LABEL_INSET_REM = 1;
75
+ const LABEL_ICON_INSET_REM = 3;
76
+
77
+ // Reanimated views drop `className` (see Skeleton), so the classes stay on plain views.
78
+ function FloatingLabelBackground({
79
+ progress
80
+ }) {
81
+ const style = useAnimatedStyle(() => ({
82
+ opacity: progress.value
83
+ }));
84
+ return /*#__PURE__*/_jsx(Animated.View, {
85
+ style: [StyleSheet.absoluteFill, style],
86
+ children: /*#__PURE__*/_jsx(View, {
87
+ className: "absolute -inset-x-1 inset-y-0 rounded-sm bg-surface-card"
88
+ })
89
+ });
90
+ }
63
91
  function FloatingLabel({
64
92
  children,
65
93
  floated = false,
66
- disabled = false
94
+ disabled = false,
95
+ invalid = false,
96
+ size,
97
+ hasStartIcon = false,
98
+ hasEndIcon = false
67
99
  }) {
100
+ const resolvedSize = size ?? "lg";
68
101
  const progress = useSharedValue(floated ? 1 : 0);
102
+ const metrics = useSharedValue({
103
+ restWidth: 0,
104
+ floatedWidth: 0,
105
+ floatedX: 0,
106
+ floatedY: 0
107
+ });
108
+ const lastFloated = useRef(floated);
109
+ const floatedScale = FLOATED_LABEL_FONT_SIZE / LABEL_FONT_SIZE[resolvedSize];
69
110
  useEffect(() => {
111
+ if (lastFloated.current === floated) return;
112
+ lastFloated.current = floated;
70
113
  progress.value = withTiming(floated ? 1 : 0, {
71
114
  duration: 200,
72
115
  easing: Easing.out(Easing.ease)
73
116
  });
74
- }, [floated]);
75
- const animatedStyle = useAnimatedStyle(() => ({
76
- transform: [{
77
- translateY: interpolate(progress.value, [0, 1], [-6, -22])
78
- }],
79
- fontSize: interpolate(progress.value, [0, 1], [15, 12])
80
- }));
81
- return /*#__PURE__*/_jsx(Animated.Text, {
82
- style: [animatedStyle, {
83
- position: "absolute",
84
- left: 16,
85
- top: "50%",
86
- zIndex: 10,
87
- fontFamily: fontFamilyMedium
88
- }],
89
- className: cn("font-medium", disabled ? "text-gray-foreground-muted" : "text-gray-foreground"),
90
- children: children
117
+ }, [floated, progress]);
118
+ const handleLayout = event => {
119
+ const {
120
+ x,
121
+ width,
122
+ height
123
+ } = event.nativeEvent.layout;
124
+ const rem = x / (hasStartIcon ? LABEL_ICON_INSET_REM : LABEL_INSET_REM);
125
+ const inset = rem * LABEL_INSET_REM;
126
+ const fieldWidth = x + width + rem * (hasEndIcon ? LABEL_ICON_INSET_REM : LABEL_INSET_REM);
127
+ metrics.value = {
128
+ restWidth: width,
129
+ floatedWidth: fieldWidth - inset * 2,
130
+ floatedX: inset - x,
131
+ floatedY: -height / 2
132
+ };
133
+ };
134
+
135
+ // Older React Native ignores `transformOrigin`, so it scales around the center
136
+ // and `translateX` makes up for the width lost on the left.
137
+ const labelStyle = useAnimatedStyle(() => {
138
+ const {
139
+ restWidth,
140
+ floatedWidth,
141
+ floatedX,
142
+ floatedY
143
+ } = metrics.value;
144
+ const scale = interpolate(progress.value, [0, 1], [1, floatedScale]);
145
+ const width = interpolate(progress.value, [0, 1], [restWidth, floatedWidth / floatedScale]);
146
+ return {
147
+ opacity: restWidth > 0 ? 1 : 0,
148
+ width,
149
+ transform: [{
150
+ translateX: interpolate(progress.value, [0, 1], [0, floatedX]) - width * (1 - scale) / 2
151
+ }, {
152
+ translateY: interpolate(progress.value, [0, 1], [0, floatedY])
153
+ }, {
154
+ scale
155
+ }]
156
+ };
157
+ });
158
+ return /*#__PURE__*/_jsx(View, {
159
+ pointerEvents: "none",
160
+ importantForAccessibility: "no-hide-descendants",
161
+ accessibilityElementsHidden: true,
162
+ onLayout: handleLayout,
163
+ className: cn("absolute inset-y-0 z-10", hasStartIcon ? "left-12" : "left-4", hasEndIcon ? "right-12" : "right-4"),
164
+ children: /*#__PURE__*/_jsx(Animated.View, {
165
+ style: [{
166
+ flex: 1,
167
+ justifyContent: "center",
168
+ alignItems: "flex-start"
169
+ }, labelStyle],
170
+ children: /*#__PURE__*/_jsxs(View, {
171
+ className: "max-w-full",
172
+ children: [!disabled && /*#__PURE__*/_jsx(FloatingLabelBackground, {
173
+ progress: progress
174
+ }), /*#__PURE__*/_jsx(Text, {
175
+ numberOfLines: 1,
176
+ className: cn(floated ? "font-medium" : "font-normal", resolvedSize === "md" ? "text-sm" : "text-md", disabled ? "text-gray-foreground-muted" : invalid ? "text-feedback-error-foreground" : "text-gray-foreground"),
177
+ children: children
178
+ })]
179
+ })
180
+ })
91
181
  });
92
182
  }
93
- function InputLabel({
94
- children,
95
- floated = false,
96
- disabled = false
97
- }) {
183
+ function InputLabel(props) {
98
184
  return /*#__PURE__*/_jsx(FloatingLabel, {
99
- floated: floated,
100
- disabled: disabled,
101
- children: children
185
+ ...props
102
186
  });
103
187
  }
104
188
  function InputText({
@@ -201,6 +285,10 @@ function InputPassword({
201
285
  children: [label && /*#__PURE__*/_jsx(InputLabel, {
202
286
  floated: isFloated,
203
287
  disabled: props.editable === false,
288
+ invalid: invalid,
289
+ size: size,
290
+ hasStartIcon: true,
291
+ hasEndIcon: true,
204
292
  children: label
205
293
  }), /*#__PURE__*/_jsx(TextInput, {
206
294
  secureTextEntry: !visible,
@@ -209,11 +297,12 @@ function InputPassword({
209
297
  invalid,
210
298
  focused,
211
299
  disabled: props.editable === false
212
- }), "pl-12 pr-12 font-medium", className),
300
+ }), label ? LABELED_INPUT_HEIGHT_CLASS[size ?? "lg"] : "", "pl-12 pr-12 font-medium", className),
213
301
  value: value,
214
302
  defaultValue: defaultValue,
215
303
  accessibilityLabel: label,
216
304
  ...props,
305
+ placeholderTextColor: label ? "transparent" : props.placeholderTextColor,
217
306
  onFocus: handleFocus,
218
307
  onBlur: handleBlur,
219
308
  onChangeText: handleChangeText,
@@ -286,6 +375,10 @@ function InputNumeric({
286
375
  children: [label && /*#__PURE__*/_jsx(InputLabel, {
287
376
  floated: isFloated,
288
377
  disabled: !editable,
378
+ invalid: invalid,
379
+ size: size,
380
+ hasStartIcon: !!iconLeft,
381
+ hasEndIcon: true,
289
382
  children: label
290
383
  }), /*#__PURE__*/_jsx(TextInput, {
291
384
  keyboardType: allowNegative ? "numbers-and-punctuation" : "numeric",
@@ -301,9 +394,10 @@ function InputNumeric({
301
394
  invalid,
302
395
  focused,
303
396
  disabled: !editable
304
- }), iconLeft ? "pl-12" : "", "pr-12 font-medium", className),
397
+ }), label ? LABELED_INPUT_HEIGHT_CLASS[size ?? "lg"] : "", iconLeft ? "pl-12" : "", "pr-12 font-medium", className),
305
398
  accessibilityLabel: label,
306
399
  ...props,
400
+ placeholderTextColor: label ? "transparent" : props.placeholderTextColor,
307
401
  onFocus: handleFocus,
308
402
  onBlur: handleBlur,
309
403
  style: [{
@@ -410,6 +504,10 @@ function InputTextual({
410
504
  children: [label && /*#__PURE__*/_jsx(InputLabel, {
411
505
  floated: isFloated,
412
506
  disabled: !editable,
507
+ invalid: invalid,
508
+ size: size,
509
+ hasStartIcon: !!resolvedIconLeft,
510
+ hasEndIcon: !!resolvedIconRight,
413
511
  children: label
414
512
  }), /*#__PURE__*/_jsx(TextInput, {
415
513
  keyboardType: type === "email" ? "email-address" : "default",
@@ -421,9 +519,10 @@ function InputTextual({
421
519
  invalid,
422
520
  focused,
423
521
  disabled: !editable
424
- }), resolvedIconLeft ? "pl-12" : "", resolvedIconRight ? "pr-12" : "", "font-medium", className),
522
+ }), label ? LABELED_INPUT_HEIGHT_CLASS[size ?? "lg"] : "", resolvedIconLeft ? "pl-12" : "", resolvedIconRight ? "pr-12" : "", "font-medium", className),
425
523
  accessibilityLabel: label,
426
524
  ...props,
525
+ placeholderTextColor: label ? "transparent" : props.placeholderTextColor,
427
526
  onFocus: handleFocus,
428
527
  onBlur: handleBlur,
429
528
  onChangeText: handleChangeText,