@masumdev/rn-ui 0.1.7 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/Accordion.js +28 -13
- package/lib/commonjs/components/Accordion.js.map +1 -1
- package/lib/commonjs/components/Alert.js +229 -73
- package/lib/commonjs/components/Alert.js.map +1 -1
- package/lib/commonjs/components/AlertDialog.js +143 -87
- package/lib/commonjs/components/AlertDialog.js.map +1 -1
- package/lib/commonjs/components/Avatar.js +31 -28
- package/lib/commonjs/components/Avatar.js.map +1 -1
- package/lib/commonjs/components/Badge.js +18 -7
- package/lib/commonjs/components/Badge.js.map +1 -1
- package/lib/commonjs/components/BottomSheet.js +63 -8
- package/lib/commonjs/components/BottomSheet.js.map +1 -1
- package/lib/commonjs/components/Breadcrumb.js +31 -9
- package/lib/commonjs/components/Breadcrumb.js.map +1 -1
- package/lib/commonjs/components/Button.js +22 -6
- package/lib/commonjs/components/Button.js.map +1 -1
- package/lib/commonjs/components/Calendar.js +113 -31
- package/lib/commonjs/components/Calendar.js.map +1 -1
- package/lib/commonjs/components/Card.js +8 -3
- package/lib/commonjs/components/Card.js.map +1 -1
- package/lib/commonjs/components/Carousel.js +67 -21
- package/lib/commonjs/components/Carousel.js.map +1 -1
- package/lib/commonjs/components/Checkbox.js +12 -7
- package/lib/commonjs/components/Checkbox.js.map +1 -1
- package/lib/commonjs/components/Collapsible.js +47 -36
- package/lib/commonjs/components/Collapsible.js.map +1 -1
- package/lib/commonjs/components/Combobox.js +110 -48
- package/lib/commonjs/components/Combobox.js.map +1 -1
- package/lib/commonjs/components/Command.js +121 -77
- package/lib/commonjs/components/Command.js.map +1 -1
- package/lib/commonjs/components/DropdownMenu.js +78 -25
- package/lib/commonjs/components/DropdownMenu.js.map +1 -1
- package/lib/commonjs/components/Empty.js +24 -10
- package/lib/commonjs/components/Empty.js.map +1 -1
- package/lib/commonjs/components/FormField.js +63 -13
- package/lib/commonjs/components/FormField.js.map +1 -1
- package/lib/commonjs/components/IconButton.js +22 -6
- package/lib/commonjs/components/IconButton.js.map +1 -1
- package/lib/commonjs/components/Input.js +11 -13
- package/lib/commonjs/components/Input.js.map +1 -1
- package/lib/commonjs/components/InputGroup.js +19 -10
- package/lib/commonjs/components/InputGroup.js.map +1 -1
- package/lib/commonjs/components/InputOTP.js +46 -15
- package/lib/commonjs/components/InputOTP.js.map +1 -1
- package/lib/commonjs/components/Popover.js +90 -23
- package/lib/commonjs/components/Popover.js.map +1 -1
- package/lib/commonjs/components/Progress.js +105 -6
- package/lib/commonjs/components/Progress.js.map +1 -1
- package/lib/commonjs/components/RadioGroup.js +109 -51
- package/lib/commonjs/components/RadioGroup.js.map +1 -1
- package/lib/commonjs/components/Rating.js +109 -95
- package/lib/commonjs/components/Rating.js.map +1 -1
- package/lib/commonjs/components/Select.js +109 -43
- package/lib/commonjs/components/Select.js.map +1 -1
- package/lib/commonjs/components/Sheet.js +217 -29
- package/lib/commonjs/components/Sheet.js.map +1 -1
- package/lib/commonjs/components/Stepper.js +119 -24
- package/lib/commonjs/components/Stepper.js.map +1 -1
- package/lib/commonjs/components/Switch.js +21 -11
- package/lib/commonjs/components/Switch.js.map +1 -1
- package/lib/commonjs/components/Tabs.js +159 -28
- package/lib/commonjs/components/Tabs.js.map +1 -1
- package/lib/commonjs/components/Timeline.js +35 -12
- package/lib/commonjs/components/Timeline.js.map +1 -1
- package/lib/commonjs/components/Toast.js +163 -38
- package/lib/commonjs/components/Toast.js.map +1 -1
- package/lib/commonjs/components/index.js +12 -0
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/components/types.js +16 -0
- package/lib/commonjs/components/types.js.map +1 -1
- package/lib/commonjs/theme/tokens.js +7 -7
- package/lib/commonjs/theme/tokens.js.map +1 -1
- package/lib/commonjs/utils/haptics.js +42 -0
- package/lib/commonjs/utils/haptics.js.map +1 -0
- package/lib/commonjs/utils/index.js +7 -0
- package/lib/commonjs/utils/index.js.map +1 -1
- package/lib/module/components/Accordion.js +28 -13
- package/lib/module/components/Accordion.js.map +1 -1
- package/lib/module/components/Alert.js +229 -73
- package/lib/module/components/Alert.js.map +1 -1
- package/lib/module/components/AlertDialog.js +144 -88
- package/lib/module/components/AlertDialog.js.map +1 -1
- package/lib/module/components/Avatar.js +31 -28
- package/lib/module/components/Avatar.js.map +1 -1
- package/lib/module/components/Badge.js +18 -7
- package/lib/module/components/Badge.js.map +1 -1
- package/lib/module/components/BottomSheet.js +64 -4
- package/lib/module/components/BottomSheet.js.map +1 -1
- package/lib/module/components/Breadcrumb.js +31 -9
- package/lib/module/components/Breadcrumb.js.map +1 -1
- package/lib/module/components/Button.js +22 -6
- package/lib/module/components/Button.js.map +1 -1
- package/lib/module/components/Calendar.js +114 -32
- package/lib/module/components/Calendar.js.map +1 -1
- package/lib/module/components/Card.js +8 -3
- package/lib/module/components/Card.js.map +1 -1
- package/lib/module/components/Carousel.js +67 -21
- package/lib/module/components/Carousel.js.map +1 -1
- package/lib/module/components/Checkbox.js +12 -7
- package/lib/module/components/Checkbox.js.map +1 -1
- package/lib/module/components/Collapsible.js +49 -38
- package/lib/module/components/Collapsible.js.map +1 -1
- package/lib/module/components/Combobox.js +110 -48
- package/lib/module/components/Combobox.js.map +1 -1
- package/lib/module/components/Command.js +121 -77
- package/lib/module/components/Command.js.map +1 -1
- package/lib/module/components/DropdownMenu.js +79 -26
- package/lib/module/components/DropdownMenu.js.map +1 -1
- package/lib/module/components/Empty.js +24 -10
- package/lib/module/components/Empty.js.map +1 -1
- package/lib/module/components/FormField.js +63 -14
- package/lib/module/components/FormField.js.map +1 -1
- package/lib/module/components/IconButton.js +22 -6
- package/lib/module/components/IconButton.js.map +1 -1
- package/lib/module/components/Input.js +12 -14
- package/lib/module/components/Input.js.map +1 -1
- package/lib/module/components/InputGroup.js +19 -10
- package/lib/module/components/InputGroup.js.map +1 -1
- package/lib/module/components/InputOTP.js +46 -15
- package/lib/module/components/InputOTP.js.map +1 -1
- package/lib/module/components/Popover.js +90 -24
- package/lib/module/components/Popover.js.map +1 -1
- package/lib/module/components/Progress.js +106 -8
- package/lib/module/components/Progress.js.map +1 -1
- package/lib/module/components/RadioGroup.js +108 -51
- package/lib/module/components/RadioGroup.js.map +1 -1
- package/lib/module/components/Rating.js +109 -95
- package/lib/module/components/Rating.js.map +1 -1
- package/lib/module/components/Select.js +111 -45
- package/lib/module/components/Select.js.map +1 -1
- package/lib/module/components/Sheet.js +216 -24
- package/lib/module/components/Sheet.js.map +1 -1
- package/lib/module/components/Stepper.js +120 -25
- package/lib/module/components/Stepper.js.map +1 -1
- package/lib/module/components/Switch.js +21 -11
- package/lib/module/components/Switch.js.map +1 -1
- package/lib/module/components/Tabs.js +158 -29
- package/lib/module/components/Tabs.js.map +1 -1
- package/lib/module/components/Timeline.js +35 -12
- package/lib/module/components/Timeline.js.map +1 -1
- package/lib/module/components/Toast.js +164 -38
- package/lib/module/components/Toast.js.map +1 -1
- package/lib/module/components/index.js +2 -2
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/components/types.js +16 -0
- package/lib/module/components/types.js.map +1 -1
- package/lib/module/theme/tokens.js +7 -7
- package/lib/module/theme/tokens.js.map +1 -1
- package/lib/module/utils/haptics.js +38 -0
- package/lib/module/utils/haptics.js.map +1 -0
- package/lib/module/utils/index.js +1 -0
- package/lib/module/utils/index.js.map +1 -1
- package/lib/typescript/commonjs/components/Accordion.d.ts +6 -3
- package/lib/typescript/commonjs/components/Accordion.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Alert.d.ts +4 -4
- package/lib/typescript/commonjs/components/Alert.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/AlertDialog.d.ts +5 -3
- package/lib/typescript/commonjs/components/AlertDialog.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Avatar.d.ts +9 -4
- package/lib/typescript/commonjs/components/Avatar.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Badge.d.ts +4 -4
- package/lib/typescript/commonjs/components/Badge.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/BottomSheet.d.ts +13 -4
- package/lib/typescript/commonjs/components/BottomSheet.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Breadcrumb.d.ts +6 -5
- package/lib/typescript/commonjs/components/Breadcrumb.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Button.d.ts +3 -3
- package/lib/typescript/commonjs/components/Button.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Calendar.d.ts +9 -1
- package/lib/typescript/commonjs/components/Calendar.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Card.d.ts +3 -2
- package/lib/typescript/commonjs/components/Card.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Carousel.d.ts +4 -1
- package/lib/typescript/commonjs/components/Carousel.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Checkbox.d.ts +3 -3
- package/lib/typescript/commonjs/components/Checkbox.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Collapsible.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Combobox.d.ts +11 -6
- package/lib/typescript/commonjs/components/Combobox.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Command.d.ts +3 -0
- package/lib/typescript/commonjs/components/Command.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/DropdownMenu.d.ts +4 -2
- package/lib/typescript/commonjs/components/DropdownMenu.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Empty.d.ts +7 -4
- package/lib/typescript/commonjs/components/Empty.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/FormField.d.ts +12 -4
- package/lib/typescript/commonjs/components/FormField.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/IconButton.d.ts +3 -3
- package/lib/typescript/commonjs/components/IconButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Input.d.ts +2 -1
- package/lib/typescript/commonjs/components/Input.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/InputGroup.d.ts +3 -2
- package/lib/typescript/commonjs/components/InputGroup.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/InputOTP.d.ts +9 -4
- package/lib/typescript/commonjs/components/InputOTP.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Popover.d.ts +1 -1
- package/lib/typescript/commonjs/components/Popover.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Progress.d.ts +13 -1
- package/lib/typescript/commonjs/components/Progress.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/RadioGroup.d.ts +3 -2
- package/lib/typescript/commonjs/components/RadioGroup.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Rating.d.ts +3 -23
- package/lib/typescript/commonjs/components/Rating.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Select.d.ts +5 -4
- package/lib/typescript/commonjs/components/Select.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Sheet.d.ts +25 -6
- package/lib/typescript/commonjs/components/Sheet.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Stepper.d.ts +5 -3
- package/lib/typescript/commonjs/components/Stepper.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Switch.d.ts +3 -3
- package/lib/typescript/commonjs/components/Switch.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Tabs.d.ts +21 -4
- package/lib/typescript/commonjs/components/Tabs.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Timeline.d.ts +9 -3
- package/lib/typescript/commonjs/components/Timeline.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Toast.d.ts +3 -0
- package/lib/typescript/commonjs/components/Toast.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/index.d.ts +5 -5
- package/lib/typescript/commonjs/components/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/types.d.ts +35 -0
- package/lib/typescript/commonjs/components/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/utils/haptics.d.ts +6 -0
- package/lib/typescript/commonjs/utils/haptics.d.ts.map +1 -0
- package/lib/typescript/commonjs/utils/index.d.ts +1 -0
- package/lib/typescript/commonjs/utils/index.d.ts.map +1 -1
- package/lib/typescript/module/components/Accordion.d.ts +6 -3
- package/lib/typescript/module/components/Accordion.d.ts.map +1 -1
- package/lib/typescript/module/components/Alert.d.ts +4 -4
- package/lib/typescript/module/components/Alert.d.ts.map +1 -1
- package/lib/typescript/module/components/AlertDialog.d.ts +5 -3
- package/lib/typescript/module/components/AlertDialog.d.ts.map +1 -1
- package/lib/typescript/module/components/Avatar.d.ts +9 -4
- package/lib/typescript/module/components/Avatar.d.ts.map +1 -1
- package/lib/typescript/module/components/Badge.d.ts +4 -4
- package/lib/typescript/module/components/Badge.d.ts.map +1 -1
- package/lib/typescript/module/components/BottomSheet.d.ts +13 -4
- package/lib/typescript/module/components/BottomSheet.d.ts.map +1 -1
- package/lib/typescript/module/components/Breadcrumb.d.ts +6 -5
- package/lib/typescript/module/components/Breadcrumb.d.ts.map +1 -1
- package/lib/typescript/module/components/Button.d.ts +3 -3
- package/lib/typescript/module/components/Button.d.ts.map +1 -1
- package/lib/typescript/module/components/Calendar.d.ts +9 -1
- package/lib/typescript/module/components/Calendar.d.ts.map +1 -1
- package/lib/typescript/module/components/Card.d.ts +3 -2
- package/lib/typescript/module/components/Card.d.ts.map +1 -1
- package/lib/typescript/module/components/Carousel.d.ts +4 -1
- package/lib/typescript/module/components/Carousel.d.ts.map +1 -1
- package/lib/typescript/module/components/Checkbox.d.ts +3 -3
- package/lib/typescript/module/components/Checkbox.d.ts.map +1 -1
- package/lib/typescript/module/components/Collapsible.d.ts.map +1 -1
- package/lib/typescript/module/components/Combobox.d.ts +11 -6
- package/lib/typescript/module/components/Combobox.d.ts.map +1 -1
- package/lib/typescript/module/components/Command.d.ts +3 -0
- package/lib/typescript/module/components/Command.d.ts.map +1 -1
- package/lib/typescript/module/components/DropdownMenu.d.ts +4 -2
- package/lib/typescript/module/components/DropdownMenu.d.ts.map +1 -1
- package/lib/typescript/module/components/Empty.d.ts +7 -4
- package/lib/typescript/module/components/Empty.d.ts.map +1 -1
- package/lib/typescript/module/components/FormField.d.ts +12 -4
- package/lib/typescript/module/components/FormField.d.ts.map +1 -1
- package/lib/typescript/module/components/IconButton.d.ts +3 -3
- package/lib/typescript/module/components/IconButton.d.ts.map +1 -1
- package/lib/typescript/module/components/Input.d.ts +2 -1
- package/lib/typescript/module/components/Input.d.ts.map +1 -1
- package/lib/typescript/module/components/InputGroup.d.ts +3 -2
- package/lib/typescript/module/components/InputGroup.d.ts.map +1 -1
- package/lib/typescript/module/components/InputOTP.d.ts +9 -4
- package/lib/typescript/module/components/InputOTP.d.ts.map +1 -1
- package/lib/typescript/module/components/Popover.d.ts +1 -1
- package/lib/typescript/module/components/Popover.d.ts.map +1 -1
- package/lib/typescript/module/components/Progress.d.ts +13 -1
- package/lib/typescript/module/components/Progress.d.ts.map +1 -1
- package/lib/typescript/module/components/RadioGroup.d.ts +3 -2
- package/lib/typescript/module/components/RadioGroup.d.ts.map +1 -1
- package/lib/typescript/module/components/Rating.d.ts +3 -23
- package/lib/typescript/module/components/Rating.d.ts.map +1 -1
- package/lib/typescript/module/components/Select.d.ts +5 -4
- package/lib/typescript/module/components/Select.d.ts.map +1 -1
- package/lib/typescript/module/components/Sheet.d.ts +25 -6
- package/lib/typescript/module/components/Sheet.d.ts.map +1 -1
- package/lib/typescript/module/components/Stepper.d.ts +5 -3
- package/lib/typescript/module/components/Stepper.d.ts.map +1 -1
- package/lib/typescript/module/components/Switch.d.ts +3 -3
- package/lib/typescript/module/components/Switch.d.ts.map +1 -1
- package/lib/typescript/module/components/Tabs.d.ts +21 -4
- package/lib/typescript/module/components/Tabs.d.ts.map +1 -1
- package/lib/typescript/module/components/Timeline.d.ts +9 -3
- package/lib/typescript/module/components/Timeline.d.ts.map +1 -1
- package/lib/typescript/module/components/Toast.d.ts +3 -0
- package/lib/typescript/module/components/Toast.d.ts.map +1 -1
- package/lib/typescript/module/components/index.d.ts +5 -5
- package/lib/typescript/module/components/index.d.ts.map +1 -1
- package/lib/typescript/module/components/types.d.ts +35 -0
- package/lib/typescript/module/components/types.d.ts.map +1 -1
- package/lib/typescript/module/utils/haptics.d.ts +6 -0
- package/lib/typescript/module/utils/haptics.d.ts.map +1 -0
- package/lib/typescript/module/utils/index.d.ts +1 -0
- package/lib/typescript/module/utils/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -7,21 +7,74 @@ exports.Stepper = Stepper;
|
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _index = require("../theme/index.js");
|
|
10
|
-
var
|
|
10
|
+
var _index2 = require("../utils/index.js");
|
|
11
|
+
var _haptics = require("../utils/haptics.js");
|
|
11
12
|
var _Text = require("./Text.js");
|
|
12
13
|
var _types = require("./types.js");
|
|
13
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
15
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
|
+
const stepperHeights = {
|
|
17
|
+
sm: 36,
|
|
18
|
+
md: 44,
|
|
19
|
+
lg: 52
|
|
20
|
+
};
|
|
15
21
|
function clampStepper(value, min, max) {
|
|
16
22
|
return Math.min(max, Math.max(min, value));
|
|
17
23
|
}
|
|
24
|
+
function MinusIcon({
|
|
25
|
+
color,
|
|
26
|
+
size
|
|
27
|
+
}) {
|
|
28
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
29
|
+
style: {
|
|
30
|
+
width: size,
|
|
31
|
+
height: 2,
|
|
32
|
+
backgroundColor: color,
|
|
33
|
+
borderRadius: 1
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
function PlusIcon({
|
|
38
|
+
color,
|
|
39
|
+
size
|
|
40
|
+
}) {
|
|
41
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
42
|
+
style: {
|
|
43
|
+
width: size,
|
|
44
|
+
height: size,
|
|
45
|
+
alignItems: "center",
|
|
46
|
+
justifyContent: "center"
|
|
47
|
+
},
|
|
48
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
49
|
+
style: {
|
|
50
|
+
position: "absolute",
|
|
51
|
+
width: size,
|
|
52
|
+
height: 2,
|
|
53
|
+
backgroundColor: color,
|
|
54
|
+
borderRadius: 1
|
|
55
|
+
}
|
|
56
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
57
|
+
style: {
|
|
58
|
+
position: "absolute",
|
|
59
|
+
width: 2,
|
|
60
|
+
height: size,
|
|
61
|
+
backgroundColor: color,
|
|
62
|
+
borderRadius: 1
|
|
63
|
+
}
|
|
64
|
+
})]
|
|
65
|
+
});
|
|
66
|
+
}
|
|
18
67
|
function Stepper({
|
|
19
68
|
value,
|
|
20
69
|
defaultValue = 0,
|
|
21
70
|
min = 0,
|
|
22
71
|
max = 999,
|
|
23
72
|
step = 1,
|
|
73
|
+
variant = "input",
|
|
74
|
+
size = "md",
|
|
24
75
|
disabled = false,
|
|
76
|
+
glass = false,
|
|
77
|
+
haptic = true,
|
|
25
78
|
onValueChange,
|
|
26
79
|
decrementIcon,
|
|
27
80
|
incrementIcon,
|
|
@@ -32,15 +85,30 @@ function Stepper({
|
|
|
32
85
|
colors,
|
|
33
86
|
components,
|
|
34
87
|
radii,
|
|
35
|
-
spacing
|
|
88
|
+
spacing,
|
|
89
|
+
isDark
|
|
36
90
|
} = (0, _index.useTheme)();
|
|
37
91
|
const [internalValue, setInternalValue] = _react.default.useState(defaultValue);
|
|
38
92
|
const currentValue = clampStepper(value ?? internalValue, min, max);
|
|
39
93
|
const setNextValue = nextValue => {
|
|
94
|
+
if (disabled) return;
|
|
40
95
|
const next = clampStepper(nextValue, min, max);
|
|
96
|
+
if (haptic) (0, _haptics.triggerHaptic)("selection");
|
|
41
97
|
if (value === undefined) setInternalValue(next);
|
|
42
98
|
onValueChange?.(next);
|
|
43
99
|
};
|
|
100
|
+
const containerHeight = stepperHeights[size];
|
|
101
|
+
const padding = 4;
|
|
102
|
+
const buttonSize = containerHeight - padding * 2;
|
|
103
|
+
const iconSize = size === "sm" ? 12 : size === "md" ? 14 : 16;
|
|
104
|
+
const glassBg = isDark ? "rgba(15, 27, 45, 0.70)" : "rgba(255, 255, 255, 0.85)";
|
|
105
|
+
const containerBg = disabled ? (0, _index2.withAlpha)(colors.input, 0.55) : glass ? glassBg : variant === "soft" ? (0, _index2.withAlpha)(colors.primary, 0.08) : colors.input;
|
|
106
|
+
const borderColor = glass ? isDark ? "rgba(248, 250, 252, 0.20)" : "rgba(15, 23, 42, 0.14)" : colors.border;
|
|
107
|
+
|
|
108
|
+
// Concentric inner radius (Outer 16px - 4px padding = 12px inner)
|
|
109
|
+
const innerRadius = radii.md;
|
|
110
|
+
const canDecrement = !disabled && currentValue > min;
|
|
111
|
+
const canIncrement = !disabled && currentValue < max;
|
|
44
112
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
45
113
|
accessibilityRole: "adjustable",
|
|
46
114
|
accessibilityValue: {
|
|
@@ -49,46 +117,73 @@ function Stepper({
|
|
|
49
117
|
now: currentValue
|
|
50
118
|
},
|
|
51
119
|
style: [{
|
|
52
|
-
|
|
120
|
+
height: containerHeight,
|
|
121
|
+
minHeight: containerHeight,
|
|
53
122
|
flexDirection: "row",
|
|
54
123
|
alignItems: "center",
|
|
55
124
|
borderWidth: components.borderWidth.strong,
|
|
56
|
-
borderColor
|
|
125
|
+
borderColor,
|
|
57
126
|
borderRadius: radii.lg,
|
|
58
|
-
backgroundColor:
|
|
59
|
-
|
|
60
|
-
opacity: disabled ? 0.
|
|
127
|
+
backgroundColor: containerBg,
|
|
128
|
+
padding,
|
|
129
|
+
opacity: disabled ? 0.56 : 1
|
|
61
130
|
}, style],
|
|
62
131
|
...props,
|
|
63
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
shape: "square",
|
|
68
|
-
disabled: disabled || currentValue <= min,
|
|
132
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
|
|
133
|
+
accessibilityRole: "button",
|
|
134
|
+
accessibilityLabel: "Decrement stepper",
|
|
135
|
+
disabled: !canDecrement,
|
|
69
136
|
onPress: () => setNextValue(currentValue - step),
|
|
70
|
-
|
|
137
|
+
style: ({
|
|
138
|
+
pressed
|
|
139
|
+
}) => [{
|
|
140
|
+
width: buttonSize,
|
|
141
|
+
height: buttonSize,
|
|
142
|
+
borderRadius: innerRadius,
|
|
143
|
+
backgroundColor: pressed && canDecrement ? colors.backgroundMuted : canDecrement ? (0, _index2.withAlpha)(colors.secondary, 0.12) : colors.transparent,
|
|
144
|
+
alignItems: "center",
|
|
145
|
+
justifyContent: "center",
|
|
146
|
+
opacity: canDecrement ? pressed ? 0.8 : 1 : 0.4
|
|
147
|
+
}],
|
|
148
|
+
children: decrementIcon ? (0, _types.renderIcon)(decrementIcon, canDecrement ? colors.text : colors.disabledText, iconSize) : /*#__PURE__*/(0, _jsxRuntime.jsx)(MinusIcon, {
|
|
149
|
+
color: canDecrement ? colors.text : colors.disabledText,
|
|
150
|
+
size: iconSize
|
|
151
|
+
})
|
|
71
152
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
72
153
|
style: {
|
|
73
|
-
|
|
154
|
+
flex: 1,
|
|
74
155
|
alignItems: "center",
|
|
75
|
-
|
|
156
|
+
justifyContent: "center",
|
|
157
|
+
paddingHorizontal: spacing.xs
|
|
76
158
|
},
|
|
77
159
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.Text, {
|
|
78
|
-
variant: "label",
|
|
160
|
+
variant: size === "sm" ? "bodySmall" : "label",
|
|
161
|
+
weight: "600",
|
|
79
162
|
style: {
|
|
80
163
|
fontVariant: ["tabular-nums"]
|
|
81
164
|
},
|
|
82
165
|
children: currentValue
|
|
83
166
|
})
|
|
84
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
shape: "square",
|
|
89
|
-
disabled: disabled || currentValue >= max,
|
|
167
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
|
|
168
|
+
accessibilityRole: "button",
|
|
169
|
+
accessibilityLabel: "Increment stepper",
|
|
170
|
+
disabled: !canIncrement,
|
|
90
171
|
onPress: () => setNextValue(currentValue + step),
|
|
91
|
-
|
|
172
|
+
style: ({
|
|
173
|
+
pressed
|
|
174
|
+
}) => [{
|
|
175
|
+
width: buttonSize,
|
|
176
|
+
height: buttonSize,
|
|
177
|
+
borderRadius: innerRadius,
|
|
178
|
+
backgroundColor: pressed && canIncrement ? colors.backgroundMuted : canIncrement ? (0, _index2.withAlpha)(colors.secondary, 0.12) : colors.transparent,
|
|
179
|
+
alignItems: "center",
|
|
180
|
+
justifyContent: "center",
|
|
181
|
+
opacity: canIncrement ? pressed ? 0.8 : 1 : 0.4
|
|
182
|
+
}],
|
|
183
|
+
children: incrementIcon ? (0, _types.renderIcon)(incrementIcon, canIncrement ? colors.text : colors.disabledText, iconSize) : /*#__PURE__*/(0, _jsxRuntime.jsx)(PlusIcon, {
|
|
184
|
+
color: canIncrement ? colors.text : colors.disabledText,
|
|
185
|
+
size: iconSize
|
|
186
|
+
})
|
|
92
187
|
})]
|
|
93
188
|
});
|
|
94
189
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_index","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_index","_index2","_haptics","_Text","_types","_jsxRuntime","e","__esModule","default","stepperHeights","sm","md","lg","clampStepper","value","min","max","Math","MinusIcon","color","size","jsx","View","style","width","height","backgroundColor","borderRadius","PlusIcon","jsxs","alignItems","justifyContent","children","position","Stepper","defaultValue","step","variant","disabled","glass","haptic","onValueChange","decrementIcon","incrementIcon","props","colors","components","radii","spacing","isDark","useTheme","internalValue","setInternalValue","React","useState","currentValue","setNextValue","nextValue","next","triggerHaptic","undefined","containerHeight","padding","buttonSize","iconSize","glassBg","containerBg","withAlpha","input","primary","borderColor","border","innerRadius","canDecrement","canIncrement","accessibilityRole","accessibilityValue","now","minHeight","flexDirection","borderWidth","strong","opacity","Pressable","accessibilityLabel","onPress","pressed","backgroundMuted","secondary","transparent","renderIcon","text","disabledText","flex","paddingHorizontal","xs","Text","weight","fontVariant"],"sourceRoot":"../../../src","sources":["components/Stepper.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,6 +8,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
|
|
10
10
|
var _index = require("../theme/index.js");
|
|
11
|
+
var _haptics = require("../utils/haptics.js");
|
|
11
12
|
var _types = require("./types.js");
|
|
12
13
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
14
|
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); }
|
|
@@ -20,6 +21,8 @@ function Switch({
|
|
|
20
21
|
invalid = false,
|
|
21
22
|
size = "md",
|
|
22
23
|
tone = "primary",
|
|
24
|
+
glass = false,
|
|
25
|
+
haptic = true,
|
|
23
26
|
style,
|
|
24
27
|
trackStyle,
|
|
25
28
|
thumbStyle,
|
|
@@ -38,7 +41,8 @@ function Switch({
|
|
|
38
41
|
const {
|
|
39
42
|
colors,
|
|
40
43
|
components,
|
|
41
|
-
radii
|
|
44
|
+
radii,
|
|
45
|
+
isDark
|
|
42
46
|
} = (0, _index.useTheme)();
|
|
43
47
|
const isControlled = value !== undefined;
|
|
44
48
|
const [uncontrolledValue, setUncontrolledValue] = _react.default.useState(defaultValue);
|
|
@@ -53,7 +57,6 @@ function Switch({
|
|
|
53
57
|
});
|
|
54
58
|
}, [checked, progress]);
|
|
55
59
|
const activeColor = invalid ? colors.danger : colors[tone];
|
|
56
|
-
const activeSoftColor = invalid ? colors.dangerSoft : tone === "primary" ? colors.primarySoft : tone === "secondary" ? colors.secondarySoft : tone === "accent" ? colors.accentSoft : tone === "success" ? colors.successSoft : tone === "warning" ? colors.warningSoft : tone === "danger" ? colors.dangerSoft : colors.infoSoft;
|
|
57
60
|
const thumbIcon = checked ? activeIcon : inactiveIcon;
|
|
58
61
|
const selectedThumbContent = (checked ? activeThumbContent : inactiveThumbContent) ?? thumbContent;
|
|
59
62
|
const width = components.switch.width[size];
|
|
@@ -63,12 +66,19 @@ function Switch({
|
|
|
63
66
|
const borderWidth = components.borderWidth.focus;
|
|
64
67
|
const inset = (height - thumbSize) / 2;
|
|
65
68
|
const travel = width - thumbSize - (inset + borderWidth) * 2;
|
|
66
|
-
const
|
|
67
|
-
const inactiveTrackColor = disabled ? colors.disabled : colors.backgroundMuted;
|
|
68
|
-
const
|
|
69
|
+
const glassBg = isDark ? "rgba(15, 27, 45, 0.60)" : "rgba(255, 255, 255, 0.70)";
|
|
70
|
+
const inactiveTrackColor = disabled ? colors.disabled : glass ? glassBg : isDark ? "rgba(30, 41, 59, 0.90)" : colors.backgroundMuted;
|
|
71
|
+
const activeTrackColor = disabled ? colors.disabled : activeColor;
|
|
72
|
+
const inactiveBorderColor = invalid ? colors.danger : glass ? isDark ? "rgba(248, 250, 252, 0.20)" : "rgba(15, 23, 42, 0.14)" : isDark ? "rgba(148, 163, 184, 0.30)" : colors.border;
|
|
73
|
+
const activeBorderColor = invalid ? colors.danger : activeColor;
|
|
74
|
+
|
|
75
|
+
// Crisp white/light-slate knob for OFF state in both dark & light mode
|
|
76
|
+
const inactiveThumbColor = disabled ? colors.disabledText : isDark ? "#e2e8f0" : "#ffffff";
|
|
77
|
+
const activeThumbColor = disabled ? colors.disabledText : "#ffffff";
|
|
69
78
|
const handlePress = event => {
|
|
70
79
|
onPress?.(event);
|
|
71
80
|
if (disabled) return;
|
|
81
|
+
if (haptic) (0, _haptics.triggerHaptic)("selection");
|
|
72
82
|
const nextValue = !checked;
|
|
73
83
|
if (!isControlled) {
|
|
74
84
|
setUncontrolledValue(nextValue);
|
|
@@ -88,8 +98,8 @@ function Switch({
|
|
|
88
98
|
});
|
|
89
99
|
};
|
|
90
100
|
const trackAnimatedStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
|
|
91
|
-
backgroundColor: (0, _reactNativeReanimated.interpolateColor)(progress.value, [0, 1], [inactiveTrackColor,
|
|
92
|
-
borderColor: (0, _reactNativeReanimated.interpolateColor)(progress.value, [0, 1], [inactiveBorderColor,
|
|
101
|
+
backgroundColor: (0, _reactNativeReanimated.interpolateColor)(progress.value, [0, 1], [inactiveTrackColor, activeTrackColor]),
|
|
102
|
+
borderColor: (0, _reactNativeReanimated.interpolateColor)(progress.value, [0, 1], [inactiveBorderColor, activeBorderColor])
|
|
93
103
|
}));
|
|
94
104
|
const thumbAnimatedStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
|
|
95
105
|
transform: [{
|
|
@@ -97,9 +107,9 @@ function Switch({
|
|
|
97
107
|
}, {
|
|
98
108
|
scale: 1 + pressed.value * 0.06
|
|
99
109
|
}],
|
|
100
|
-
backgroundColor: (0, _reactNativeReanimated.interpolateColor)(progress.value, [0, 1], [
|
|
110
|
+
backgroundColor: (0, _reactNativeReanimated.interpolateColor)(progress.value, [0, 1], [inactiveThumbColor, activeThumbColor])
|
|
101
111
|
}));
|
|
102
|
-
const iconColor = checked ? invalid ? colors.
|
|
112
|
+
const iconColor = checked ? invalid ? colors.danger : activeColor : colors.textSubtle;
|
|
103
113
|
const thumbContentParams = {
|
|
104
114
|
checked,
|
|
105
115
|
disabled,
|
|
@@ -122,7 +132,7 @@ function Switch({
|
|
|
122
132
|
style: ({
|
|
123
133
|
pressed: isPressed
|
|
124
134
|
}) => [{
|
|
125
|
-
opacity: disabled ? 0.
|
|
135
|
+
opacity: disabled ? 0.45 : isPressed ? 0.9 : 1,
|
|
126
136
|
alignSelf: "flex-start"
|
|
127
137
|
}, style],
|
|
128
138
|
...props,
|
|
@@ -143,7 +153,7 @@ function Switch({
|
|
|
143
153
|
alignItems: "center",
|
|
144
154
|
justifyContent: "center",
|
|
145
155
|
borderWidth: components.borderWidth.default,
|
|
146
|
-
borderColor: checked ? activeColor :
|
|
156
|
+
borderColor: checked ? activeColor : "transparent"
|
|
147
157
|
}, thumbAnimatedStyle, thumbStyle],
|
|
148
158
|
children: renderThumb ? renderThumb(thumbContentParams) : renderedThumbContent ? renderedThumbContent : thumbIcon ? (0, _types.renderIcon)(thumbIcon, iconColor, iconSize) : null
|
|
149
159
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeReanimated","_interopRequireWildcard","_index","_types","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Switch","value","defaultValue","onValueChange","disabled","invalid","size","tone","style","trackStyle","thumbStyle","activeIcon","inactiveIcon","thumbContent","activeThumbContent","inactiveThumbContent","renderThumb","onPress","onPressIn","onPressOut","accessibilityLabel","props","colors","components","radii","useTheme","isControlled","undefined","uncontrolledValue","setUncontrolledValue","React","useState","checked","progress","useSharedValue","pressed","useEffect","withSpring","damping","stiffness","mass","activeColor","danger","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeReanimated","_interopRequireWildcard","_index","_haptics","_types","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Switch","value","defaultValue","onValueChange","disabled","invalid","size","tone","glass","haptic","style","trackStyle","thumbStyle","activeIcon","inactiveIcon","thumbContent","activeThumbContent","inactiveThumbContent","renderThumb","onPress","onPressIn","onPressOut","accessibilityLabel","props","colors","components","radii","isDark","useTheme","isControlled","undefined","uncontrolledValue","setUncontrolledValue","React","useState","checked","progress","useSharedValue","pressed","useEffect","withSpring","damping","stiffness","mass","activeColor","danger","thumbIcon","selectedThumbContent","width","switch","height","thumbSize","iconSize","borderWidth","focus","inset","travel","glassBg","inactiveTrackColor","backgroundMuted","activeTrackColor","inactiveBorderColor","border","activeBorderColor","inactiveThumbColor","disabledText","activeThumbColor","handlePress","event","triggerHaptic","nextValue","handlePressIn","withTiming","duration","handlePressOut","trackAnimatedStyle","useAnimatedStyle","backgroundColor","interpolateColor","borderColor","thumbAnimatedStyle","transform","translateX","scale","iconColor","textSubtle","thumbContentParams","color","renderedThumbContent","jsx","Pressable","accessibilityRole","accessibilityState","isPressed","opacity","alignSelf","children","View","borderRadius","full","padding","justifyContent","alignItems","renderIcon"],"sourceRoot":"../../../src","sources":["components/Switch.tsx"],"mappings":"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","ignoreList":[]}
|