@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
|
@@ -8,11 +8,11 @@ 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); }
|
|
14
15
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
-
// Pure SVG/Vector checkmark to avoid external dependencies
|
|
16
16
|
function CheckIcon({
|
|
17
17
|
color
|
|
18
18
|
}) {
|
|
@@ -35,13 +35,16 @@ function Checkbox({
|
|
|
35
35
|
onCheckedChange,
|
|
36
36
|
disabled = false,
|
|
37
37
|
invalid = false,
|
|
38
|
+
glass = false,
|
|
39
|
+
haptic = true,
|
|
38
40
|
style,
|
|
39
41
|
icon,
|
|
40
42
|
...props
|
|
41
43
|
}) {
|
|
42
44
|
const {
|
|
43
45
|
colors,
|
|
44
|
-
components
|
|
46
|
+
components,
|
|
47
|
+
isDark
|
|
45
48
|
} = (0, _index.useTheme)();
|
|
46
49
|
const progress = (0, _reactNativeReanimated.useSharedValue)(checked ? 1 : 0);
|
|
47
50
|
_react.default.useEffect(() => {
|
|
@@ -52,10 +55,12 @@ function Checkbox({
|
|
|
52
55
|
}, [checked, progress]);
|
|
53
56
|
const handlePress = () => {
|
|
54
57
|
if (!disabled && onCheckedChange) {
|
|
58
|
+
if (haptic) (0, _haptics.triggerHaptic)("selection");
|
|
55
59
|
onCheckedChange(!checked);
|
|
56
60
|
}
|
|
57
61
|
};
|
|
58
|
-
const
|
|
62
|
+
const glassBg = isDark ? "rgba(15, 27, 45, 0.60)" : "rgba(255, 255, 255, 0.75)";
|
|
63
|
+
const borderColor = invalid ? colors.danger : checked ? colors.primary : glass ? isDark ? "rgba(248, 250, 252, 0.20)" : "rgba(15, 23, 42, 0.14)" : colors.border;
|
|
59
64
|
const overlayStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
|
|
60
65
|
opacity: progress.value,
|
|
61
66
|
transform: [{
|
|
@@ -73,12 +78,12 @@ function Checkbox({
|
|
|
73
78
|
style: ({
|
|
74
79
|
pressed
|
|
75
80
|
}) => [{
|
|
76
|
-
width:
|
|
77
|
-
height:
|
|
78
|
-
borderRadius:
|
|
81
|
+
width: 20,
|
|
82
|
+
height: 20,
|
|
83
|
+
borderRadius: 5,
|
|
79
84
|
borderWidth: components.borderWidth.focus,
|
|
80
85
|
borderColor,
|
|
81
|
-
backgroundColor: colors.transparent,
|
|
86
|
+
backgroundColor: glass ? glassBg : colors.transparent,
|
|
82
87
|
justifyContent: "center",
|
|
83
88
|
alignItems: "center",
|
|
84
89
|
overflow: "hidden",
|
|
@@ -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","CheckIcon","color","jsx","View","style","width","height","borderLeftWidth","borderBottomWidth","borderColor","transform","rotate","marginTop","Checkbox","checked","onCheckedChange","disabled","invalid","icon","props","colors","components","useTheme","progress","useSharedValue","React","useEffect","value","withSpring","damping","stiffness","handlePress","danger","primary","border","overlayStyle","useAnimatedStyle","opacity","scale","Pressable","accessibilityRole","accessibilityState","onPress","pressed","borderRadius","borderWidth","focus","backgroundColor","transparent","justifyContent","alignItems","overflow","children","position","top","left","right","bottom","renderIcon","onPrimary"],"sourceRoot":"../../../src","sources":["components/Checkbox.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAC,uBAAA,CAAAH,OAAA;AAMA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,
|
|
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","CheckIcon","color","jsx","View","style","width","height","borderLeftWidth","borderBottomWidth","borderColor","transform","rotate","marginTop","Checkbox","checked","onCheckedChange","disabled","invalid","glass","haptic","icon","props","colors","components","isDark","useTheme","progress","useSharedValue","React","useEffect","value","withSpring","damping","stiffness","handlePress","triggerHaptic","glassBg","danger","primary","border","overlayStyle","useAnimatedStyle","opacity","scale","Pressable","accessibilityRole","accessibilityState","onPress","pressed","borderRadius","borderWidth","focus","backgroundColor","transparent","justifyContent","alignItems","overflow","children","position","top","left","right","bottom","renderIcon","onPrimary"],"sourceRoot":"../../../src","sources":["components/Checkbox.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,6 +10,7 @@ exports.useCollapsible = useCollapsible;
|
|
|
10
10
|
var _react = _interopRequireDefault(require("react"));
|
|
11
11
|
var _reactNative = require("react-native");
|
|
12
12
|
var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
|
|
13
|
+
var _haptics = require("../utils/haptics.js");
|
|
13
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
15
|
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); }
|
|
15
16
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -61,11 +62,15 @@ function CollapsibleTrigger({
|
|
|
61
62
|
const {
|
|
62
63
|
toggle
|
|
63
64
|
} = useCollapsible();
|
|
65
|
+
const handlePress = () => {
|
|
66
|
+
(0, _haptics.triggerHaptic)("selection");
|
|
67
|
+
toggle();
|
|
68
|
+
};
|
|
64
69
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
|
|
65
|
-
onPress:
|
|
70
|
+
onPress: handlePress,
|
|
66
71
|
style: style,
|
|
67
72
|
...props,
|
|
68
|
-
children: children
|
|
73
|
+
children: typeof children === "function" ? children() : children
|
|
69
74
|
});
|
|
70
75
|
}
|
|
71
76
|
function CollapsibleContent({
|
|
@@ -76,46 +81,52 @@ function CollapsibleContent({
|
|
|
76
81
|
const {
|
|
77
82
|
open
|
|
78
83
|
} = useCollapsible();
|
|
79
|
-
const [
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
// Track if we have completed our first height layout measurement
|
|
83
|
-
const hasMeasured = measuredHeight > 0;
|
|
84
|
+
const [contentHeight, setContentHeight] = _react.default.useState(0);
|
|
85
|
+
const progress = (0, _reactNativeReanimated.useSharedValue)(open ? 1 : 0);
|
|
84
86
|
_react.default.useEffect(() => {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
}
|
|
87
|
+
progress.value = (0, _reactNativeReanimated.withTiming)(open ? 1 : 0, {
|
|
88
|
+
duration: 220,
|
|
89
|
+
easing: _reactNativeReanimated.Easing.out(_reactNativeReanimated.Easing.quad)
|
|
90
|
+
});
|
|
91
|
+
}, [open, progress]);
|
|
92
|
+
const animatedStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
|
|
93
|
+
height: progress.value * contentHeight,
|
|
94
|
+
opacity: progress.value
|
|
95
|
+
}));
|
|
94
96
|
const handleLayout = e => {
|
|
95
|
-
const
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
if (height > 0 && height !== measuredHeight) {
|
|
99
|
-
setMeasuredHeight(height);
|
|
97
|
+
const h = e.nativeEvent.layout.height;
|
|
98
|
+
if (h > 0 && Math.abs(h - contentHeight) > 1) {
|
|
99
|
+
setContentHeight(h);
|
|
100
100
|
}
|
|
101
101
|
};
|
|
102
|
-
const
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
}));
|
|
106
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
|
|
107
|
-
pointerEvents: open ? "auto" : "none",
|
|
108
|
-
style: [{
|
|
102
|
+
const childContent = typeof children === "function" ? children() : children;
|
|
103
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
104
|
+
style: {
|
|
109
105
|
overflow: "hidden"
|
|
110
|
-
},
|
|
111
|
-
|
|
112
|
-
|
|
106
|
+
},
|
|
107
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
108
|
+
style: [style, {
|
|
109
|
+
position: "absolute",
|
|
110
|
+
opacity: 0,
|
|
111
|
+
top: -9999,
|
|
112
|
+
left: 0,
|
|
113
|
+
right: 0,
|
|
114
|
+
zIndex: -1
|
|
115
|
+
}],
|
|
113
116
|
onLayout: handleLayout,
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
117
|
+
pointerEvents: "none",
|
|
118
|
+
children: childContent
|
|
119
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
|
|
120
|
+
pointerEvents: open ? "auto" : "none",
|
|
121
|
+
style: [{
|
|
122
|
+
overflow: "hidden"
|
|
123
|
+
}, animatedStyle],
|
|
124
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
125
|
+
style: style,
|
|
126
|
+
...props,
|
|
127
|
+
children: childContent
|
|
128
|
+
})
|
|
129
|
+
})]
|
|
119
130
|
});
|
|
120
131
|
}
|
|
121
132
|
//# sourceMappingURL=Collapsible.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeReanimated","_interopRequireWildcard","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","CollapsibleContext","React","createContext","useCollapsible","context","useContext","Error","Collapsible","open","controlledOpen","defaultOpen","onOpenChange","children","style","props","uncontrolledOpen","setUncontrolledOpen","useState","isControlled","undefined","toggle","useCallback","nextOpen","jsx","Provider","value","View","CollapsibleTrigger","Pressable","onPress","CollapsibleContent","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeReanimated","_interopRequireWildcard","_haptics","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","CollapsibleContext","React","createContext","useCollapsible","context","useContext","Error","Collapsible","open","controlledOpen","defaultOpen","onOpenChange","children","style","props","uncontrolledOpen","setUncontrolledOpen","useState","isControlled","undefined","toggle","useCallback","nextOpen","jsx","Provider","value","View","CollapsibleTrigger","handlePress","triggerHaptic","Pressable","onPress","CollapsibleContent","contentHeight","setContentHeight","progress","useSharedValue","useEffect","withTiming","duration","easing","Easing","out","quad","animatedStyle","useAnimatedStyle","height","opacity","handleLayout","h","nativeEvent","layout","Math","abs","childContent","jsxs","overflow","position","top","left","right","zIndex","onLayout","pointerEvents"],"sourceRoot":"../../../src","sources":["components/Collapsible.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,6 +14,8 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
14
14
|
var _reactNative = require("react-native");
|
|
15
15
|
var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
|
|
16
16
|
var _index = require("../theme/index.js");
|
|
17
|
+
var _index2 = require("../utils/index.js");
|
|
18
|
+
var _haptics = require("../utils/haptics.js");
|
|
17
19
|
var _Text = require("./Text.js");
|
|
18
20
|
var _types = require("./types.js");
|
|
19
21
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -32,6 +34,8 @@ function Combobox({
|
|
|
32
34
|
onValueChange,
|
|
33
35
|
open: controlledOpen,
|
|
34
36
|
onOpenChange,
|
|
37
|
+
glass = false,
|
|
38
|
+
haptic = true,
|
|
35
39
|
children
|
|
36
40
|
}) {
|
|
37
41
|
const {
|
|
@@ -65,7 +69,7 @@ function Combobox({
|
|
|
65
69
|
onValueChange(nextVal);
|
|
66
70
|
}
|
|
67
71
|
}, [controlledValue, onValueChange]);
|
|
68
|
-
const measureTrigger = _react.default.useCallback(
|
|
72
|
+
const measureTrigger = _react.default.useCallback(callback => {
|
|
69
73
|
triggerRef.current?.measureInWindow((x, y, width, height) => {
|
|
70
74
|
if (width > 0 && height > 0) {
|
|
71
75
|
setTriggerLayout({
|
|
@@ -74,6 +78,7 @@ function Combobox({
|
|
|
74
78
|
width,
|
|
75
79
|
height
|
|
76
80
|
});
|
|
81
|
+
callback?.();
|
|
77
82
|
}
|
|
78
83
|
});
|
|
79
84
|
}, []);
|
|
@@ -88,6 +93,8 @@ function Combobox({
|
|
|
88
93
|
triggerRef,
|
|
89
94
|
triggerLayout,
|
|
90
95
|
measureTrigger,
|
|
96
|
+
glass,
|
|
97
|
+
haptic,
|
|
91
98
|
colors
|
|
92
99
|
},
|
|
93
100
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
@@ -98,8 +105,6 @@ function Combobox({
|
|
|
98
105
|
})
|
|
99
106
|
});
|
|
100
107
|
}
|
|
101
|
-
|
|
102
|
-
// Chevron pure arrow down icon
|
|
103
108
|
function ChevronDownIcon({
|
|
104
109
|
color
|
|
105
110
|
}) {
|
|
@@ -113,17 +118,39 @@ function ChevronDownIcon({
|
|
|
113
118
|
transform: [{
|
|
114
119
|
rotate: "45deg"
|
|
115
120
|
}],
|
|
116
|
-
marginTop: -3
|
|
117
|
-
marginRight: 4
|
|
121
|
+
marginTop: -3
|
|
118
122
|
}
|
|
119
123
|
});
|
|
120
124
|
}
|
|
125
|
+
function ClearIcon({
|
|
126
|
+
color
|
|
127
|
+
}) {
|
|
128
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.Text, {
|
|
129
|
+
style: {
|
|
130
|
+
color,
|
|
131
|
+
fontSize: 14,
|
|
132
|
+
fontWeight: "600",
|
|
133
|
+
lineHeight: 14
|
|
134
|
+
},
|
|
135
|
+
children: "\u2715"
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
const comboboxHeights = {
|
|
139
|
+
sm: 36,
|
|
140
|
+
md: 44,
|
|
141
|
+
lg: 52
|
|
142
|
+
};
|
|
121
143
|
function ComboboxInput({
|
|
122
144
|
placeholder = "Select option...",
|
|
145
|
+
size = "md",
|
|
146
|
+
variant = "outline",
|
|
147
|
+
glass = false,
|
|
148
|
+
haptic = true,
|
|
123
149
|
style,
|
|
124
150
|
inputStyle,
|
|
125
151
|
disabled = false,
|
|
126
|
-
chevronIcon
|
|
152
|
+
chevronIcon,
|
|
153
|
+
searchIcon
|
|
127
154
|
}) {
|
|
128
155
|
const {
|
|
129
156
|
inputValue,
|
|
@@ -138,20 +165,29 @@ function ComboboxInput({
|
|
|
138
165
|
components,
|
|
139
166
|
radii,
|
|
140
167
|
spacing,
|
|
141
|
-
typography
|
|
168
|
+
typography,
|
|
169
|
+
isDark
|
|
142
170
|
} = (0, _index.useTheme)();
|
|
143
171
|
const handleFocus = () => {
|
|
144
172
|
if (!disabled) {
|
|
145
|
-
|
|
146
|
-
setOpen(true);
|
|
173
|
+
if (haptic) (0, _haptics.triggerHaptic)("light");
|
|
174
|
+
measureTrigger(() => setOpen(true));
|
|
147
175
|
}
|
|
148
176
|
};
|
|
149
177
|
const handlePress = () => {
|
|
150
178
|
if (!disabled) {
|
|
151
|
-
|
|
152
|
-
setOpen(!open);
|
|
179
|
+
if (haptic) (0, _haptics.triggerHaptic)("light");
|
|
180
|
+
measureTrigger(() => setOpen(!open));
|
|
153
181
|
}
|
|
154
182
|
};
|
|
183
|
+
const handleClear = () => {
|
|
184
|
+
if (haptic) (0, _haptics.triggerHaptic)("light");
|
|
185
|
+
setInputValue("");
|
|
186
|
+
};
|
|
187
|
+
const glassBg = isDark ? "rgba(15, 27, 45, 0.70)" : "rgba(255, 255, 255, 0.85)";
|
|
188
|
+
const triggerBg = disabled ? (0, _index2.withAlpha)(colors.input, 0.55) : glass ? glassBg : variant === "filled" ? colors.surface : variant === "soft" ? (0, _index2.withAlpha)(colors.primary, 0.08) : colors.input;
|
|
189
|
+
const borderColor = disabled ? colors.border : open ? colors.primary : glass ? isDark ? "rgba(248, 250, 252, 0.20)" : "rgba(15, 23, 42, 0.14)" : colors.border;
|
|
190
|
+
const containerHeight = comboboxHeights[size];
|
|
155
191
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Pressable, {
|
|
156
192
|
ref: triggerRef,
|
|
157
193
|
onPress: handlePress,
|
|
@@ -159,30 +195,41 @@ function ComboboxInput({
|
|
|
159
195
|
style: [{
|
|
160
196
|
flexDirection: "row",
|
|
161
197
|
alignItems: "center",
|
|
162
|
-
height:
|
|
163
|
-
borderWidth: components.borderWidth.strong,
|
|
164
|
-
borderColor
|
|
198
|
+
height: containerHeight,
|
|
199
|
+
borderWidth: open ? components.borderWidth.focus : components.borderWidth.strong,
|
|
200
|
+
borderColor,
|
|
165
201
|
borderRadius: radii.lg,
|
|
166
|
-
backgroundColor:
|
|
202
|
+
backgroundColor: triggerBg,
|
|
167
203
|
paddingHorizontal: spacing.md,
|
|
168
204
|
width: "100%",
|
|
169
|
-
|
|
205
|
+
gap: spacing.sm,
|
|
206
|
+
opacity: disabled ? 0.56 : 1
|
|
170
207
|
}, style],
|
|
171
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
|
|
208
|
+
children: [searchIcon ? (0, _types.renderIcon)(searchIcon, colors.textMuted, 16) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
|
|
172
209
|
editable: !disabled,
|
|
173
210
|
placeholder: placeholder,
|
|
174
|
-
placeholderTextColor: colors.
|
|
211
|
+
placeholderTextColor: colors.placeholder,
|
|
175
212
|
value: inputValue,
|
|
176
|
-
onChangeText:
|
|
213
|
+
onChangeText: val => {
|
|
214
|
+
setInputValue(val);
|
|
215
|
+
if (!open) setOpen(true);
|
|
216
|
+
},
|
|
177
217
|
onFocus: handleFocus,
|
|
178
218
|
pointerEvents: disabled ? "none" : "auto",
|
|
179
219
|
style: [{
|
|
180
220
|
flex: 1,
|
|
181
|
-
...typography.
|
|
221
|
+
...typography.body,
|
|
222
|
+
fontSize: size === "sm" ? 13 : 15,
|
|
182
223
|
color: colors.text,
|
|
183
224
|
padding: 0,
|
|
184
225
|
height: "100%"
|
|
185
226
|
}, inputStyle]
|
|
227
|
+
}), !!inputValue && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
|
|
228
|
+
onPress: handleClear,
|
|
229
|
+
hitSlop: 8,
|
|
230
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ClearIcon, {
|
|
231
|
+
color: colors.textMuted
|
|
232
|
+
})
|
|
186
233
|
}), chevronIcon ? (0, _types.renderIcon)(chevronIcon, colors.textMuted, 16) : /*#__PURE__*/(0, _jsxRuntime.jsx)(ChevronDownIcon, {
|
|
187
234
|
color: colors.textMuted
|
|
188
235
|
})]
|
|
@@ -198,11 +245,14 @@ function ComboboxContent({
|
|
|
198
245
|
open,
|
|
199
246
|
setOpen,
|
|
200
247
|
triggerLayout,
|
|
201
|
-
colors
|
|
248
|
+
colors,
|
|
249
|
+
glass
|
|
202
250
|
} = useCombobox();
|
|
203
251
|
const {
|
|
204
252
|
components,
|
|
205
|
-
radii
|
|
253
|
+
radii,
|
|
254
|
+
spacing,
|
|
255
|
+
isDark
|
|
206
256
|
} = (0, _index.useTheme)();
|
|
207
257
|
const progress = (0, _reactNativeReanimated.useSharedValue)(open ? 1 : 0);
|
|
208
258
|
_react.default.useEffect(() => {
|
|
@@ -214,24 +264,25 @@ function ComboboxContent({
|
|
|
214
264
|
height: SCREEN_HEIGHT
|
|
215
265
|
} = _reactNative.Dimensions.get("window");
|
|
216
266
|
const spaceBelow = SCREEN_HEIGHT - (triggerLayout.pageY + triggerLayout.height);
|
|
217
|
-
const dropdownMaxHeight =
|
|
267
|
+
const dropdownMaxHeight = 240;
|
|
218
268
|
const renderAbove = spaceBelow < dropdownMaxHeight + 40;
|
|
219
269
|
const positionStyle = renderAbove ? {
|
|
220
270
|
bottom: SCREEN_HEIGHT - triggerLayout.pageY + 6
|
|
221
271
|
} : {
|
|
222
|
-
top: triggerLayout.pageY + triggerLayout.height +
|
|
272
|
+
top: triggerLayout.pageY + triggerLayout.height + 4
|
|
223
273
|
};
|
|
224
274
|
const animatedStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
|
|
225
275
|
opacity: progress.value,
|
|
226
276
|
transform: [{
|
|
227
|
-
translateY: (renderAbove ?
|
|
277
|
+
translateY: (renderAbove ? 6 : -6) * (1 - progress.value)
|
|
228
278
|
}]
|
|
229
279
|
}));
|
|
230
|
-
|
|
280
|
+
const glassBg = isDark ? "rgba(15, 27, 45, 0.70)" : "rgba(255, 255, 255, 0.85)";
|
|
281
|
+
if (!open || triggerLayout.width === 0) return null;
|
|
231
282
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Modal, {
|
|
232
283
|
transparent: true,
|
|
233
284
|
visible: open,
|
|
234
|
-
animationType: "
|
|
285
|
+
animationType: "fade",
|
|
235
286
|
statusBarTranslucent: true,
|
|
236
287
|
navigationBarTranslucent: true,
|
|
237
288
|
hardwareAccelerated: true,
|
|
@@ -245,12 +296,21 @@ function ComboboxContent({
|
|
|
245
296
|
position: "absolute",
|
|
246
297
|
left: triggerLayout.pageX,
|
|
247
298
|
width: triggerLayout.width,
|
|
248
|
-
backgroundColor: colors.surface,
|
|
299
|
+
backgroundColor: glass ? glassBg : colors.surface,
|
|
249
300
|
borderWidth: components.borderWidth.strong,
|
|
250
|
-
borderColor: colors.border,
|
|
251
|
-
borderRadius: radii.
|
|
301
|
+
borderColor: glass ? isDark ? "rgba(248, 250, 252, 0.20)" : "rgba(15, 23, 42, 0.14)" : colors.border,
|
|
302
|
+
borderRadius: radii.xl,
|
|
252
303
|
maxHeight: dropdownMaxHeight,
|
|
253
|
-
|
|
304
|
+
padding: spacing.xs,
|
|
305
|
+
overflow: "hidden",
|
|
306
|
+
elevation: 8,
|
|
307
|
+
shadowColor: "#000",
|
|
308
|
+
shadowOffset: {
|
|
309
|
+
width: 0,
|
|
310
|
+
height: 4
|
|
311
|
+
},
|
|
312
|
+
shadowOpacity: 0.18,
|
|
313
|
+
shadowRadius: 12
|
|
254
314
|
}, animatedStyle, positionStyle, style],
|
|
255
315
|
children: children
|
|
256
316
|
})]
|
|
@@ -260,19 +320,20 @@ function ComboboxList({
|
|
|
260
320
|
children,
|
|
261
321
|
style
|
|
262
322
|
}) {
|
|
263
|
-
const {
|
|
264
|
-
spacing
|
|
265
|
-
} = (0, _index.useTheme)();
|
|
266
323
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ScrollView, {
|
|
324
|
+
nestedScrollEnabled: true,
|
|
267
325
|
keyboardShouldPersistTaps: "handled",
|
|
268
326
|
style: [{
|
|
269
|
-
flex: 1
|
|
270
|
-
padding: spacing.xs
|
|
327
|
+
flex: 1
|
|
271
328
|
}, style],
|
|
272
|
-
children:
|
|
329
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
330
|
+
style: {
|
|
331
|
+
gap: 2
|
|
332
|
+
},
|
|
333
|
+
children: children
|
|
334
|
+
})
|
|
273
335
|
});
|
|
274
336
|
}
|
|
275
|
-
// Chevron checkmark for selected indicator
|
|
276
337
|
function CheckIcon({
|
|
277
338
|
color
|
|
278
339
|
}) {
|
|
@@ -286,7 +347,7 @@ function CheckIcon({
|
|
|
286
347
|
transform: [{
|
|
287
348
|
rotate: "-45deg"
|
|
288
349
|
}],
|
|
289
|
-
marginRight:
|
|
350
|
+
marginRight: 4
|
|
290
351
|
}
|
|
291
352
|
});
|
|
292
353
|
}
|
|
@@ -303,6 +364,7 @@ function ComboboxItem({
|
|
|
303
364
|
setOpen,
|
|
304
365
|
inputValue,
|
|
305
366
|
setInputValue,
|
|
367
|
+
haptic,
|
|
306
368
|
colors
|
|
307
369
|
} = useCombobox();
|
|
308
370
|
const {
|
|
@@ -310,13 +372,12 @@ function ComboboxItem({
|
|
|
310
372
|
spacing,
|
|
311
373
|
typography
|
|
312
374
|
} = (0, _index.useTheme)();
|
|
313
|
-
|
|
314
|
-
// Automatic filter matching
|
|
315
375
|
if (inputValue && !label.toLowerCase().includes(inputValue.toLowerCase())) {
|
|
316
376
|
return null;
|
|
317
377
|
}
|
|
318
378
|
const isSelected = selectedValue === value;
|
|
319
379
|
const handlePress = () => {
|
|
380
|
+
if (haptic) (0, _haptics.triggerHaptic)("selection");
|
|
320
381
|
onValueChange(value);
|
|
321
382
|
setInputValue(label);
|
|
322
383
|
setOpen(false);
|
|
@@ -326,22 +387,23 @@ function ComboboxItem({
|
|
|
326
387
|
style: ({
|
|
327
388
|
pressed
|
|
328
389
|
}) => [{
|
|
390
|
+
minHeight: 40,
|
|
329
391
|
flexDirection: "row",
|
|
330
392
|
alignItems: "center",
|
|
331
|
-
paddingVertical: spacing.
|
|
393
|
+
paddingVertical: spacing.xs,
|
|
332
394
|
paddingHorizontal: spacing.md,
|
|
333
|
-
borderRadius: radii.
|
|
334
|
-
backgroundColor: isSelected ? colors.
|
|
395
|
+
borderRadius: radii.lg,
|
|
396
|
+
backgroundColor: isSelected ? colors.primarySoft : pressed ? colors.backgroundMuted : colors.transparent,
|
|
335
397
|
justifyContent: "space-between"
|
|
336
398
|
}, style],
|
|
337
399
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.Text, {
|
|
338
400
|
style: {
|
|
339
|
-
...typography.
|
|
340
|
-
color: colors.text,
|
|
341
|
-
fontWeight: isSelected ? "
|
|
401
|
+
...typography.body,
|
|
402
|
+
color: isSelected ? colors.primary : colors.text,
|
|
403
|
+
fontWeight: isSelected ? "600" : "400"
|
|
342
404
|
},
|
|
343
405
|
children: children || label
|
|
344
|
-
}), isSelected && (checkIcon ? (0, _types.renderIcon)(checkIcon, colors.primary,
|
|
406
|
+
}), isSelected && (checkIcon ? (0, _types.renderIcon)(checkIcon, colors.primary, 16) : /*#__PURE__*/(0, _jsxRuntime.jsx)(CheckIcon, {
|
|
345
407
|
color: colors.primary
|
|
346
408
|
}))]
|
|
347
409
|
});
|