@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Pressable","Text","TextInput","View","Animated","cancelAnimation","useAnimatedStyle","useSharedValue","withRepeat","withSequence","withTiming","useTheme","jsx","_jsx","jsxs","_jsxs","InputOTPContext","createContext","normalizeValue","value","maxLength","replace","slice","InputOTP","children","defaultValue","onChangeText","disabled","invalid","autoFocus","textInputProps","style","onPress","props","colors","inputRef","useRef","focused","setFocused","useState","internalValue","setInternalValue","currentValue","activeIndex","Math","min","length","handleChangeText","nextValue","normalized","undefined","focus","current","slots","useMemo","Array","from","_","index","char","isActive","hasFakeCaret","context","Provider","accessibilityRole","accessibilityState","event","opacity","ref","editable","keyboardType","textContentType","autoComplete","caretHidden","spellCheck","onFocus","onBlur","position","width","height","color","transparent","InputOTPGroup","radii","spacing","flexDirection","
|
|
1
|
+
{"version":3,"names":["React","Pressable","Text","TextInput","View","Animated","cancelAnimation","useAnimatedStyle","useSharedValue","withRepeat","withSequence","withTiming","useTheme","jsx","_jsx","jsxs","_jsxs","InputOTPContext","createContext","normalizeValue","value","maxLength","replace","slice","InputOTP","children","defaultValue","onChangeText","size","disabled","invalid","glass","autoFocus","textInputProps","style","onPress","props","colors","inputRef","useRef","focused","setFocused","useState","internalValue","setInternalValue","currentValue","activeIndex","Math","min","length","handleChangeText","nextValue","normalized","undefined","focus","current","slots","useMemo","Array","from","_","index","char","isActive","hasFakeCaret","context","Provider","accessibilityRole","accessibilityState","event","alignSelf","alignItems","justifyContent","opacity","ref","editable","keyboardType","textContentType","autoComplete","caretHidden","spellCheck","onFocus","onBlur","position","width","height","color","transparent","InputOTPGroup","radii","spacing","flexDirection","borderRadius","lg","gap","sm","slotDimensions","fontSize","md","InputOTPSlot","components","isDark","useContext","slot","effectiveSize","dims","glassBg","selected","borderWidth","strong","borderColor","danger","primary","border","xl","backgroundColor","input","fontWeight","disabledText","text","fontVariant","InputOTPCaret","useEffect","duration","caretStyle","pointerEvents","InputOTPSeparator","textMuted"],"sourceRoot":"../../../src","sources":["components/InputOTP.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,8 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
import React from "react";
|
|
4
4
|
import { Modal, Pressable } from "react-native";
|
|
5
|
+
import Animated, { Easing, useAnimatedStyle, useSharedValue, withTiming } from "react-native-reanimated";
|
|
6
|
+
import { useSafeAreaInsets } from "react-native-safe-area-context";
|
|
5
7
|
import { useTheme } from "../theme/index.js";
|
|
6
|
-
import {
|
|
8
|
+
import { triggerHaptic } from "../utils/haptics.js";
|
|
9
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
10
|
const PopoverContext = /*#__PURE__*/React.createContext(null);
|
|
8
11
|
export function Popover({
|
|
9
12
|
open,
|
|
@@ -26,27 +29,47 @@ export function Popover({
|
|
|
26
29
|
});
|
|
27
30
|
}
|
|
28
31
|
export function PopoverTrigger({
|
|
32
|
+
children,
|
|
29
33
|
triggerMode = "press",
|
|
30
34
|
onPress,
|
|
31
35
|
onLongPress,
|
|
36
|
+
style,
|
|
32
37
|
...props
|
|
33
38
|
}) {
|
|
34
39
|
const context = React.useContext(PopoverContext);
|
|
40
|
+
const handlePress = event => {
|
|
41
|
+
triggerHaptic("selection");
|
|
42
|
+
context?.setOpen(!context.open);
|
|
43
|
+
onPress?.(event);
|
|
44
|
+
};
|
|
45
|
+
const handleLongPress = event => {
|
|
46
|
+
triggerHaptic("selection");
|
|
47
|
+
context?.setOpen(!context.open);
|
|
48
|
+
onLongPress?.(event);
|
|
49
|
+
};
|
|
50
|
+
if (/*#__PURE__*/React.isValidElement(children)) {
|
|
51
|
+
return /*#__PURE__*/React.cloneElement(children, {
|
|
52
|
+
onPress: e => {
|
|
53
|
+
handlePress(e);
|
|
54
|
+
children.props?.onPress?.(e);
|
|
55
|
+
},
|
|
56
|
+
onLongPress: e => {
|
|
57
|
+
handleLongPress(e);
|
|
58
|
+
children.props?.onLongPress?.(e);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
}
|
|
35
62
|
return /*#__PURE__*/_jsx(Pressable, {
|
|
36
|
-
onPress:
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
if (triggerMode === "longPress") context?.setOpen(true);
|
|
42
|
-
onLongPress?.(event);
|
|
43
|
-
},
|
|
44
|
-
...props
|
|
63
|
+
onPress: handlePress,
|
|
64
|
+
onLongPress: handleLongPress,
|
|
65
|
+
style: style,
|
|
66
|
+
...props,
|
|
67
|
+
children: children
|
|
45
68
|
});
|
|
46
69
|
}
|
|
47
70
|
export function PopoverContent({
|
|
48
71
|
children,
|
|
49
|
-
width =
|
|
72
|
+
width = 300,
|
|
50
73
|
style
|
|
51
74
|
}) {
|
|
52
75
|
const context = React.useContext(PopoverContext);
|
|
@@ -54,24 +77,66 @@ export function PopoverContent({
|
|
|
54
77
|
colors,
|
|
55
78
|
components,
|
|
56
79
|
radii,
|
|
57
|
-
spacing
|
|
80
|
+
spacing,
|
|
81
|
+
isDark
|
|
58
82
|
} = useTheme();
|
|
59
|
-
|
|
83
|
+
const insets = useSafeAreaInsets();
|
|
84
|
+
const progress = useSharedValue(0);
|
|
85
|
+
React.useEffect(() => {
|
|
86
|
+
if (context?.open) {
|
|
87
|
+
triggerHaptic("medium");
|
|
88
|
+
progress.value = withTiming(1, {
|
|
89
|
+
duration: 180,
|
|
90
|
+
easing: Easing.out(Easing.quad)
|
|
91
|
+
});
|
|
92
|
+
} else {
|
|
93
|
+
progress.value = withTiming(0, {
|
|
94
|
+
duration: 140,
|
|
95
|
+
easing: Easing.in(Easing.quad)
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
}, [context?.open, progress]);
|
|
99
|
+
const animatedOverlayStyle = useAnimatedStyle(() => ({
|
|
100
|
+
opacity: progress.value
|
|
101
|
+
}));
|
|
102
|
+
const animatedCardStyle = useAnimatedStyle(() => ({
|
|
103
|
+
opacity: progress.value,
|
|
104
|
+
transform: [{
|
|
105
|
+
scale: 0.92 + 0.08 * progress.value
|
|
106
|
+
}]
|
|
107
|
+
}));
|
|
108
|
+
if (!context?.open) return null;
|
|
60
109
|
return /*#__PURE__*/_jsx(Modal, {
|
|
61
110
|
visible: context.open,
|
|
62
111
|
transparent: true,
|
|
63
|
-
animationType: "
|
|
112
|
+
animationType: "none",
|
|
113
|
+
statusBarTranslucent: true,
|
|
114
|
+
navigationBarTranslucent: true,
|
|
115
|
+
hardwareAccelerated: true,
|
|
64
116
|
onRequestClose: () => context.setOpen(false),
|
|
65
|
-
children: /*#__PURE__*/
|
|
66
|
-
style: {
|
|
117
|
+
children: /*#__PURE__*/_jsxs(Animated.View, {
|
|
118
|
+
style: [{
|
|
67
119
|
flex: 1,
|
|
68
|
-
backgroundColor:
|
|
120
|
+
backgroundColor: isDark ? "rgba(0,0,0,0.72)" : "rgba(15,23,42,0.55)",
|
|
69
121
|
alignItems: "center",
|
|
70
122
|
justifyContent: "center",
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
children: /*#__PURE__*/_jsx(Pressable, {
|
|
123
|
+
paddingHorizontal: spacing.xl,
|
|
124
|
+
paddingBottom: insets.bottom
|
|
125
|
+
}, animatedOverlayStyle],
|
|
126
|
+
children: [/*#__PURE__*/_jsx(Pressable, {
|
|
127
|
+
accessibilityRole: "button",
|
|
128
|
+
style: {
|
|
129
|
+
position: "absolute",
|
|
130
|
+
top: 0,
|
|
131
|
+
right: 0,
|
|
132
|
+
bottom: 0,
|
|
133
|
+
left: 0
|
|
134
|
+
},
|
|
135
|
+
onPress: () => {
|
|
136
|
+
triggerHaptic("selection");
|
|
137
|
+
context.setOpen(false);
|
|
138
|
+
}
|
|
139
|
+
}), /*#__PURE__*/_jsx(Animated.View, {
|
|
75
140
|
style: [{
|
|
76
141
|
width,
|
|
77
142
|
maxWidth: "100%",
|
|
@@ -79,10 +144,11 @@ export function PopoverContent({
|
|
|
79
144
|
borderWidth: components.borderWidth.strong,
|
|
80
145
|
borderColor: colors.border,
|
|
81
146
|
backgroundColor: colors.surface,
|
|
82
|
-
padding: spacing.
|
|
83
|
-
|
|
147
|
+
padding: spacing.xl,
|
|
148
|
+
elevation: 0
|
|
149
|
+
}, animatedCardStyle, style],
|
|
84
150
|
children: children
|
|
85
|
-
})
|
|
151
|
+
})]
|
|
86
152
|
})
|
|
87
153
|
});
|
|
88
154
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Modal","Pressable","useTheme","jsx","_jsx","PopoverContext","createContext","Popover","open","defaultOpen","onOpenChange","children","internalOpen","setInternalOpen","useState","currentOpen","setOpen","next","undefined","Provider","value","PopoverTrigger","triggerMode","onPress","onLongPress","props","context","useContext","event","
|
|
1
|
+
{"version":3,"names":["React","Modal","Pressable","Animated","Easing","useAnimatedStyle","useSharedValue","withTiming","useSafeAreaInsets","useTheme","triggerHaptic","jsx","_jsx","jsxs","_jsxs","PopoverContext","createContext","Popover","open","defaultOpen","onOpenChange","children","internalOpen","setInternalOpen","useState","currentOpen","setOpen","next","undefined","Provider","value","PopoverTrigger","triggerMode","onPress","onLongPress","style","props","context","useContext","handlePress","event","handleLongPress","isValidElement","cloneElement","e","PopoverContent","width","colors","components","radii","spacing","isDark","insets","progress","useEffect","duration","easing","out","quad","in","animatedOverlayStyle","opacity","animatedCardStyle","transform","scale","visible","transparent","animationType","statusBarTranslucent","navigationBarTranslucent","hardwareAccelerated","onRequestClose","View","flex","backgroundColor","alignItems","justifyContent","paddingHorizontal","xl","paddingBottom","bottom","accessibilityRole","position","top","right","left","maxWidth","borderRadius","borderWidth","strong","borderColor","border","surface","padding","elevation"],"sourceRoot":"../../../src","sources":["components/Popover.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,14 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
import React from "react";
|
|
4
4
|
import { View } from "react-native";
|
|
5
|
-
import Animated, { useAnimatedStyle, useSharedValue, withTiming } from "react-native-reanimated";
|
|
5
|
+
import Animated, { Easing, useAnimatedStyle, useSharedValue, withRepeat, withTiming } from "react-native-reanimated";
|
|
6
|
+
import Svg, { Circle } from "react-native-svg";
|
|
6
7
|
import { useTheme } from "../theme/index.js";
|
|
7
|
-
import {
|
|
8
|
+
import { Text } from "./Text.js";
|
|
9
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
10
|
export function Progress({
|
|
9
11
|
value = 0,
|
|
10
12
|
max = 100,
|
|
11
13
|
tone = "primary",
|
|
14
|
+
size = "default",
|
|
12
15
|
animated = true,
|
|
16
|
+
indeterminate = false,
|
|
13
17
|
style,
|
|
14
18
|
indicatorStyle,
|
|
15
19
|
...props
|
|
@@ -19,20 +23,41 @@ export function Progress({
|
|
|
19
23
|
radii
|
|
20
24
|
} = useTheme();
|
|
21
25
|
const toneColor = tone === "success" ? colors.success : tone === "warning" ? colors.warning : tone === "danger" ? colors.danger : tone === "accent" ? colors.accent : colors.primary;
|
|
26
|
+
const height = size === "xs" ? 4 : size === "sm" ? 6 : size === "lg" ? 14 : size === "xl" ? 18 : 10;
|
|
22
27
|
const progress = Math.max(0, Math.min(1, max <= 0 ? 0 : value / max));
|
|
23
28
|
const width = useSharedValue(progress);
|
|
29
|
+
const indeterminateOffset = useSharedValue(-0.4);
|
|
24
30
|
React.useEffect(() => {
|
|
31
|
+
if (indeterminate) {
|
|
32
|
+
indeterminateOffset.value = -0.4;
|
|
33
|
+
indeterminateOffset.value = withRepeat(withTiming(1, {
|
|
34
|
+
duration: 1200,
|
|
35
|
+
easing: Easing.bezier(0.4, 0, 0.6, 1)
|
|
36
|
+
}), -1, false);
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
25
39
|
if (!animated) {
|
|
26
40
|
width.value = progress;
|
|
27
41
|
return;
|
|
28
42
|
}
|
|
29
43
|
width.value = withTiming(progress, {
|
|
30
|
-
duration:
|
|
44
|
+
duration: 220,
|
|
45
|
+
easing: Easing.out(Easing.quad)
|
|
31
46
|
});
|
|
32
|
-
}, [animated, progress, width]);
|
|
33
|
-
const indicatorAnimatedStyle = useAnimatedStyle(() =>
|
|
34
|
-
|
|
35
|
-
|
|
47
|
+
}, [animated, indeterminate, progress, width, indeterminateOffset]);
|
|
48
|
+
const indicatorAnimatedStyle = useAnimatedStyle(() => {
|
|
49
|
+
if (indeterminate) {
|
|
50
|
+
return {
|
|
51
|
+
width: "40%",
|
|
52
|
+
transform: [{
|
|
53
|
+
translateX: indeterminateOffset.value * 280
|
|
54
|
+
}]
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
width: `${width.value * 100}%`
|
|
59
|
+
};
|
|
60
|
+
});
|
|
36
61
|
return /*#__PURE__*/_jsx(View, {
|
|
37
62
|
accessibilityRole: "progressbar",
|
|
38
63
|
accessibilityValue: {
|
|
@@ -42,7 +67,7 @@ export function Progress({
|
|
|
42
67
|
},
|
|
43
68
|
style: [{
|
|
44
69
|
width: "100%",
|
|
45
|
-
height
|
|
70
|
+
height,
|
|
46
71
|
borderRadius: radii.full,
|
|
47
72
|
overflow: "hidden",
|
|
48
73
|
backgroundColor: colors.backgroundSubtle
|
|
@@ -57,4 +82,77 @@ export function Progress({
|
|
|
57
82
|
})
|
|
58
83
|
});
|
|
59
84
|
}
|
|
85
|
+
export function CircularProgress({
|
|
86
|
+
value = 0,
|
|
87
|
+
size = 64,
|
|
88
|
+
strokeWidth = 6,
|
|
89
|
+
tone = "primary",
|
|
90
|
+
showValue = true,
|
|
91
|
+
strokeLinecap = "round",
|
|
92
|
+
style
|
|
93
|
+
}) {
|
|
94
|
+
const {
|
|
95
|
+
colors
|
|
96
|
+
} = useTheme();
|
|
97
|
+
const toneColor = tone === "success" ? colors.success : tone === "warning" ? colors.warning : tone === "danger" ? colors.danger : tone === "accent" ? colors.accent : colors.primary;
|
|
98
|
+
const clamped = Math.max(0, Math.min(100, value));
|
|
99
|
+
const radius = (size - strokeWidth) / 2;
|
|
100
|
+
const circumference = 2 * Math.PI * radius;
|
|
101
|
+
const strokeDashoffset = circumference - circumference * clamped / 100;
|
|
102
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
103
|
+
style: [{
|
|
104
|
+
width: size,
|
|
105
|
+
height: size,
|
|
106
|
+
justifyContent: "center",
|
|
107
|
+
alignItems: "center",
|
|
108
|
+
position: "relative"
|
|
109
|
+
}, style],
|
|
110
|
+
children: [/*#__PURE__*/_jsxs(Svg, {
|
|
111
|
+
width: size,
|
|
112
|
+
height: size,
|
|
113
|
+
style: {
|
|
114
|
+
transform: [{
|
|
115
|
+
rotate: "-90deg"
|
|
116
|
+
}]
|
|
117
|
+
},
|
|
118
|
+
children: [/*#__PURE__*/_jsx(Circle, {
|
|
119
|
+
cx: size / 2,
|
|
120
|
+
cy: size / 2,
|
|
121
|
+
r: radius,
|
|
122
|
+
stroke: colors.backgroundSubtle,
|
|
123
|
+
strokeWidth: strokeWidth,
|
|
124
|
+
fill: "none"
|
|
125
|
+
}), clamped > 0 && /*#__PURE__*/_jsx(Circle, {
|
|
126
|
+
cx: size / 2,
|
|
127
|
+
cy: size / 2,
|
|
128
|
+
r: radius,
|
|
129
|
+
stroke: toneColor,
|
|
130
|
+
strokeWidth: strokeWidth,
|
|
131
|
+
strokeDasharray: circumference,
|
|
132
|
+
strokeDashoffset: strokeDashoffset,
|
|
133
|
+
strokeLinecap: strokeLinecap,
|
|
134
|
+
fill: "none"
|
|
135
|
+
})]
|
|
136
|
+
}), showValue && /*#__PURE__*/_jsx(View, {
|
|
137
|
+
pointerEvents: "none",
|
|
138
|
+
style: {
|
|
139
|
+
position: "absolute",
|
|
140
|
+
top: 0,
|
|
141
|
+
left: 0,
|
|
142
|
+
right: 0,
|
|
143
|
+
bottom: 0,
|
|
144
|
+
justifyContent: "center",
|
|
145
|
+
alignItems: "center"
|
|
146
|
+
},
|
|
147
|
+
children: /*#__PURE__*/_jsxs(Text, {
|
|
148
|
+
weight: "700",
|
|
149
|
+
color: "text",
|
|
150
|
+
style: {
|
|
151
|
+
fontSize: size * 0.22
|
|
152
|
+
},
|
|
153
|
+
children: [Math.round(clamped), "%"]
|
|
154
|
+
})
|
|
155
|
+
})]
|
|
156
|
+
});
|
|
157
|
+
}
|
|
60
158
|
//# sourceMappingURL=Progress.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","Animated","useAnimatedStyle","useSharedValue","withTiming","useTheme","jsx","_jsx","Progress","value","max","tone","animated","style","indicatorStyle","props","colors","radii","toneColor","success","warning","danger","accent","primary","progress","Math","min","width","useEffect","duration","indicatorAnimatedStyle","accessibilityRole","accessibilityValue","now","
|
|
1
|
+
{"version":3,"names":["React","View","Animated","Easing","useAnimatedStyle","useSharedValue","withRepeat","withTiming","Svg","Circle","useTheme","Text","jsx","_jsx","jsxs","_jsxs","Progress","value","max","tone","size","animated","indeterminate","style","indicatorStyle","props","colors","radii","toneColor","success","warning","danger","accent","primary","height","progress","Math","min","width","indeterminateOffset","useEffect","duration","easing","bezier","out","quad","indicatorAnimatedStyle","transform","translateX","accessibilityRole","accessibilityValue","now","borderRadius","full","overflow","backgroundColor","backgroundSubtle","children","CircularProgress","strokeWidth","showValue","strokeLinecap","clamped","radius","circumference","PI","strokeDashoffset","justifyContent","alignItems","position","rotate","cx","cy","r","stroke","fill","strokeDasharray","pointerEvents","top","left","right","bottom","weight","color","fontSize","round"],"sourceRoot":"../../../src","sources":["components/Progress.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
import React from "react";
|
|
4
4
|
import { Pressable, View } from "react-native";
|
|
5
|
+
import Animated, { interpolateColor, useAnimatedStyle, useSharedValue, withSpring, withTiming } from "react-native-reanimated";
|
|
5
6
|
import { useTheme } from "../theme/index.js";
|
|
7
|
+
import { triggerHaptic } from "../utils/haptics.js";
|
|
6
8
|
import { Text } from "./Text.js";
|
|
7
9
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
10
|
const RadioGroupContext = /*#__PURE__*/React.createContext(null);
|
|
@@ -45,7 +47,11 @@ export function RadioGroupItem({
|
|
|
45
47
|
label,
|
|
46
48
|
description,
|
|
47
49
|
disabled = false,
|
|
50
|
+
glass = false,
|
|
51
|
+
haptic = true,
|
|
52
|
+
animated = true,
|
|
48
53
|
style,
|
|
54
|
+
onPress,
|
|
49
55
|
...props
|
|
50
56
|
}) {
|
|
51
57
|
const context = React.useContext(RadioGroupContext);
|
|
@@ -54,68 +60,119 @@ export function RadioGroupItem({
|
|
|
54
60
|
components,
|
|
55
61
|
radii,
|
|
56
62
|
spacing,
|
|
57
|
-
typography
|
|
63
|
+
typography,
|
|
64
|
+
isDark
|
|
58
65
|
} = useTheme();
|
|
59
66
|
const checked = context?.value === value;
|
|
60
67
|
const isDisabled = disabled || Boolean(context?.disabled);
|
|
61
|
-
|
|
68
|
+
const checkedProgress = useSharedValue(checked ? 1 : 0);
|
|
69
|
+
const pressedProgress = useSharedValue(0);
|
|
70
|
+
React.useEffect(() => {
|
|
71
|
+
checkedProgress.value = withSpring(checked ? 1 : 0, {
|
|
72
|
+
damping: 15,
|
|
73
|
+
stiffness: 220,
|
|
74
|
+
mass: 0.7
|
|
75
|
+
});
|
|
76
|
+
}, [checked, checkedProgress]);
|
|
77
|
+
const glassBg = isDark ? "rgba(15, 27, 45, 0.60)" : "rgba(255, 255, 255, 0.75)";
|
|
78
|
+
const inactiveBg = glass ? glassBg : colors.surface;
|
|
79
|
+
const activeBg = colors.primarySoft;
|
|
80
|
+
const inactiveBorder = glass ? isDark ? "rgba(248, 250, 252, 0.20)" : "rgba(15, 23, 42, 0.14)" : colors.border;
|
|
81
|
+
const activeBorder = colors.primary;
|
|
82
|
+
const containerAnimatedStyle = useAnimatedStyle(() => ({
|
|
83
|
+
backgroundColor: interpolateColor(checkedProgress.value, [0, 1], [inactiveBg, activeBg]),
|
|
84
|
+
borderColor: interpolateColor(checkedProgress.value, [0, 1], [inactiveBorder, activeBorder]),
|
|
85
|
+
transform: [{
|
|
86
|
+
scale: animated ? 1 - pressedProgress.value * 0.02 : 1
|
|
87
|
+
}]
|
|
88
|
+
}));
|
|
89
|
+
const dotAnimatedStyle = useAnimatedStyle(() => ({
|
|
90
|
+
transform: [{
|
|
91
|
+
scale: checkedProgress.value
|
|
92
|
+
}],
|
|
93
|
+
opacity: checkedProgress.value
|
|
94
|
+
}));
|
|
95
|
+
const radioCircleAnimatedStyle = useAnimatedStyle(() => ({
|
|
96
|
+
borderColor: interpolateColor(checkedProgress.value, [0, 1], [colors.border, colors.primary])
|
|
97
|
+
}));
|
|
98
|
+
const handlePress = e => {
|
|
99
|
+
if (isDisabled) return;
|
|
100
|
+
if (haptic) triggerHaptic("selection");
|
|
101
|
+
context?.onValueChange?.(value);
|
|
102
|
+
onPress?.(e);
|
|
103
|
+
};
|
|
104
|
+
return /*#__PURE__*/_jsx(Pressable, {
|
|
62
105
|
accessibilityRole: "radio",
|
|
63
106
|
accessibilityState: {
|
|
64
107
|
checked,
|
|
65
108
|
disabled: isDisabled
|
|
66
109
|
},
|
|
67
110
|
disabled: isDisabled,
|
|
68
|
-
onPress:
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
},
|
|
111
|
+
onPress: handlePress,
|
|
112
|
+
onPressIn: () => {
|
|
113
|
+
if (!isDisabled && animated) {
|
|
114
|
+
pressedProgress.value = withTiming(1, {
|
|
115
|
+
duration: 100
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
onPressOut: () => {
|
|
120
|
+
if (!isDisabled && animated) {
|
|
121
|
+
pressedProgress.value = withTiming(0, {
|
|
122
|
+
duration: 120
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
style: {
|
|
127
|
+
width: "100%"
|
|
128
|
+
},
|
|
83
129
|
...props,
|
|
84
|
-
children:
|
|
85
|
-
style: {
|
|
86
|
-
width:
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
},
|
|
95
|
-
children:
|
|
130
|
+
children: /*#__PURE__*/_jsxs(Animated.View, {
|
|
131
|
+
style: [{
|
|
132
|
+
width: "100%",
|
|
133
|
+
flexDirection: "row",
|
|
134
|
+
alignItems: "flex-start",
|
|
135
|
+
gap: spacing.md,
|
|
136
|
+
padding: spacing.md,
|
|
137
|
+
borderWidth: components.borderWidth.strong,
|
|
138
|
+
borderRadius: radii.xl,
|
|
139
|
+
opacity: isDisabled ? 0.5 : 1
|
|
140
|
+
}, containerAnimatedStyle, style],
|
|
141
|
+
children: [/*#__PURE__*/_jsx(Animated.View, {
|
|
142
|
+
style: [{
|
|
143
|
+
width: 20,
|
|
144
|
+
height: 20,
|
|
145
|
+
borderRadius: 10,
|
|
146
|
+
borderWidth: components.borderWidth.focus,
|
|
147
|
+
alignItems: "center",
|
|
148
|
+
justifyContent: "center",
|
|
149
|
+
marginTop: 2
|
|
150
|
+
}, radioCircleAnimatedStyle],
|
|
151
|
+
children: /*#__PURE__*/_jsx(Animated.View, {
|
|
152
|
+
style: [{
|
|
153
|
+
width: 10,
|
|
154
|
+
height: 10,
|
|
155
|
+
borderRadius: 5,
|
|
156
|
+
backgroundColor: colors.primary
|
|
157
|
+
}, dotAnimatedStyle]
|
|
158
|
+
})
|
|
159
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
96
160
|
style: {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
}) : label, typeof description === "string" ? /*#__PURE__*/_jsx(Text, {
|
|
113
|
-
style: [typography.bodySmall, {
|
|
114
|
-
color: colors.textMuted
|
|
115
|
-
}],
|
|
116
|
-
children: description
|
|
117
|
-
}) : description]
|
|
118
|
-
})]
|
|
161
|
+
flex: 1,
|
|
162
|
+
gap: spacing.xs
|
|
163
|
+
},
|
|
164
|
+
children: [typeof label === "string" ? /*#__PURE__*/_jsx(Text, {
|
|
165
|
+
variant: "label",
|
|
166
|
+
color: "text",
|
|
167
|
+
children: label
|
|
168
|
+
}) : label, typeof description === "string" ? /*#__PURE__*/_jsx(Text, {
|
|
169
|
+
style: [typography.bodySmall, {
|
|
170
|
+
color: colors.textMuted
|
|
171
|
+
}],
|
|
172
|
+
children: description
|
|
173
|
+
}) : description]
|
|
174
|
+
})]
|
|
175
|
+
})
|
|
119
176
|
});
|
|
120
177
|
}
|
|
121
178
|
//# sourceMappingURL=RadioGroup.js.map
|