@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.
Files changed (299) hide show
  1. package/lib/commonjs/components/Accordion.js +28 -13
  2. package/lib/commonjs/components/Accordion.js.map +1 -1
  3. package/lib/commonjs/components/Alert.js +229 -73
  4. package/lib/commonjs/components/Alert.js.map +1 -1
  5. package/lib/commonjs/components/AlertDialog.js +143 -87
  6. package/lib/commonjs/components/AlertDialog.js.map +1 -1
  7. package/lib/commonjs/components/Avatar.js +31 -28
  8. package/lib/commonjs/components/Avatar.js.map +1 -1
  9. package/lib/commonjs/components/Badge.js +18 -7
  10. package/lib/commonjs/components/Badge.js.map +1 -1
  11. package/lib/commonjs/components/BottomSheet.js +63 -8
  12. package/lib/commonjs/components/BottomSheet.js.map +1 -1
  13. package/lib/commonjs/components/Breadcrumb.js +31 -9
  14. package/lib/commonjs/components/Breadcrumb.js.map +1 -1
  15. package/lib/commonjs/components/Button.js +22 -6
  16. package/lib/commonjs/components/Button.js.map +1 -1
  17. package/lib/commonjs/components/Calendar.js +113 -31
  18. package/lib/commonjs/components/Calendar.js.map +1 -1
  19. package/lib/commonjs/components/Card.js +8 -3
  20. package/lib/commonjs/components/Card.js.map +1 -1
  21. package/lib/commonjs/components/Carousel.js +67 -21
  22. package/lib/commonjs/components/Carousel.js.map +1 -1
  23. package/lib/commonjs/components/Checkbox.js +12 -7
  24. package/lib/commonjs/components/Checkbox.js.map +1 -1
  25. package/lib/commonjs/components/Collapsible.js +47 -36
  26. package/lib/commonjs/components/Collapsible.js.map +1 -1
  27. package/lib/commonjs/components/Combobox.js +110 -48
  28. package/lib/commonjs/components/Combobox.js.map +1 -1
  29. package/lib/commonjs/components/Command.js +121 -77
  30. package/lib/commonjs/components/Command.js.map +1 -1
  31. package/lib/commonjs/components/DropdownMenu.js +78 -25
  32. package/lib/commonjs/components/DropdownMenu.js.map +1 -1
  33. package/lib/commonjs/components/Empty.js +24 -10
  34. package/lib/commonjs/components/Empty.js.map +1 -1
  35. package/lib/commonjs/components/FormField.js +63 -13
  36. package/lib/commonjs/components/FormField.js.map +1 -1
  37. package/lib/commonjs/components/IconButton.js +22 -6
  38. package/lib/commonjs/components/IconButton.js.map +1 -1
  39. package/lib/commonjs/components/Input.js +11 -13
  40. package/lib/commonjs/components/Input.js.map +1 -1
  41. package/lib/commonjs/components/InputGroup.js +19 -10
  42. package/lib/commonjs/components/InputGroup.js.map +1 -1
  43. package/lib/commonjs/components/InputOTP.js +46 -15
  44. package/lib/commonjs/components/InputOTP.js.map +1 -1
  45. package/lib/commonjs/components/Popover.js +90 -23
  46. package/lib/commonjs/components/Popover.js.map +1 -1
  47. package/lib/commonjs/components/Progress.js +105 -6
  48. package/lib/commonjs/components/Progress.js.map +1 -1
  49. package/lib/commonjs/components/RadioGroup.js +109 -51
  50. package/lib/commonjs/components/RadioGroup.js.map +1 -1
  51. package/lib/commonjs/components/Rating.js +109 -95
  52. package/lib/commonjs/components/Rating.js.map +1 -1
  53. package/lib/commonjs/components/Select.js +109 -43
  54. package/lib/commonjs/components/Select.js.map +1 -1
  55. package/lib/commonjs/components/Sheet.js +217 -29
  56. package/lib/commonjs/components/Sheet.js.map +1 -1
  57. package/lib/commonjs/components/Stepper.js +119 -24
  58. package/lib/commonjs/components/Stepper.js.map +1 -1
  59. package/lib/commonjs/components/Switch.js +21 -11
  60. package/lib/commonjs/components/Switch.js.map +1 -1
  61. package/lib/commonjs/components/Tabs.js +159 -28
  62. package/lib/commonjs/components/Tabs.js.map +1 -1
  63. package/lib/commonjs/components/Timeline.js +35 -12
  64. package/lib/commonjs/components/Timeline.js.map +1 -1
  65. package/lib/commonjs/components/Toast.js +163 -38
  66. package/lib/commonjs/components/Toast.js.map +1 -1
  67. package/lib/commonjs/components/index.js +12 -0
  68. package/lib/commonjs/components/index.js.map +1 -1
  69. package/lib/commonjs/components/types.js +16 -0
  70. package/lib/commonjs/components/types.js.map +1 -1
  71. package/lib/commonjs/theme/tokens.js +7 -7
  72. package/lib/commonjs/theme/tokens.js.map +1 -1
  73. package/lib/commonjs/utils/haptics.js +42 -0
  74. package/lib/commonjs/utils/haptics.js.map +1 -0
  75. package/lib/commonjs/utils/index.js +7 -0
  76. package/lib/commonjs/utils/index.js.map +1 -1
  77. package/lib/module/components/Accordion.js +28 -13
  78. package/lib/module/components/Accordion.js.map +1 -1
  79. package/lib/module/components/Alert.js +229 -73
  80. package/lib/module/components/Alert.js.map +1 -1
  81. package/lib/module/components/AlertDialog.js +144 -88
  82. package/lib/module/components/AlertDialog.js.map +1 -1
  83. package/lib/module/components/Avatar.js +31 -28
  84. package/lib/module/components/Avatar.js.map +1 -1
  85. package/lib/module/components/Badge.js +18 -7
  86. package/lib/module/components/Badge.js.map +1 -1
  87. package/lib/module/components/BottomSheet.js +64 -4
  88. package/lib/module/components/BottomSheet.js.map +1 -1
  89. package/lib/module/components/Breadcrumb.js +31 -9
  90. package/lib/module/components/Breadcrumb.js.map +1 -1
  91. package/lib/module/components/Button.js +22 -6
  92. package/lib/module/components/Button.js.map +1 -1
  93. package/lib/module/components/Calendar.js +114 -32
  94. package/lib/module/components/Calendar.js.map +1 -1
  95. package/lib/module/components/Card.js +8 -3
  96. package/lib/module/components/Card.js.map +1 -1
  97. package/lib/module/components/Carousel.js +67 -21
  98. package/lib/module/components/Carousel.js.map +1 -1
  99. package/lib/module/components/Checkbox.js +12 -7
  100. package/lib/module/components/Checkbox.js.map +1 -1
  101. package/lib/module/components/Collapsible.js +49 -38
  102. package/lib/module/components/Collapsible.js.map +1 -1
  103. package/lib/module/components/Combobox.js +110 -48
  104. package/lib/module/components/Combobox.js.map +1 -1
  105. package/lib/module/components/Command.js +121 -77
  106. package/lib/module/components/Command.js.map +1 -1
  107. package/lib/module/components/DropdownMenu.js +79 -26
  108. package/lib/module/components/DropdownMenu.js.map +1 -1
  109. package/lib/module/components/Empty.js +24 -10
  110. package/lib/module/components/Empty.js.map +1 -1
  111. package/lib/module/components/FormField.js +63 -14
  112. package/lib/module/components/FormField.js.map +1 -1
  113. package/lib/module/components/IconButton.js +22 -6
  114. package/lib/module/components/IconButton.js.map +1 -1
  115. package/lib/module/components/Input.js +12 -14
  116. package/lib/module/components/Input.js.map +1 -1
  117. package/lib/module/components/InputGroup.js +19 -10
  118. package/lib/module/components/InputGroup.js.map +1 -1
  119. package/lib/module/components/InputOTP.js +46 -15
  120. package/lib/module/components/InputOTP.js.map +1 -1
  121. package/lib/module/components/Popover.js +90 -24
  122. package/lib/module/components/Popover.js.map +1 -1
  123. package/lib/module/components/Progress.js +106 -8
  124. package/lib/module/components/Progress.js.map +1 -1
  125. package/lib/module/components/RadioGroup.js +108 -51
  126. package/lib/module/components/RadioGroup.js.map +1 -1
  127. package/lib/module/components/Rating.js +109 -95
  128. package/lib/module/components/Rating.js.map +1 -1
  129. package/lib/module/components/Select.js +111 -45
  130. package/lib/module/components/Select.js.map +1 -1
  131. package/lib/module/components/Sheet.js +216 -24
  132. package/lib/module/components/Sheet.js.map +1 -1
  133. package/lib/module/components/Stepper.js +120 -25
  134. package/lib/module/components/Stepper.js.map +1 -1
  135. package/lib/module/components/Switch.js +21 -11
  136. package/lib/module/components/Switch.js.map +1 -1
  137. package/lib/module/components/Tabs.js +158 -29
  138. package/lib/module/components/Tabs.js.map +1 -1
  139. package/lib/module/components/Timeline.js +35 -12
  140. package/lib/module/components/Timeline.js.map +1 -1
  141. package/lib/module/components/Toast.js +164 -38
  142. package/lib/module/components/Toast.js.map +1 -1
  143. package/lib/module/components/index.js +2 -2
  144. package/lib/module/components/index.js.map +1 -1
  145. package/lib/module/components/types.js +16 -0
  146. package/lib/module/components/types.js.map +1 -1
  147. package/lib/module/theme/tokens.js +7 -7
  148. package/lib/module/theme/tokens.js.map +1 -1
  149. package/lib/module/utils/haptics.js +38 -0
  150. package/lib/module/utils/haptics.js.map +1 -0
  151. package/lib/module/utils/index.js +1 -0
  152. package/lib/module/utils/index.js.map +1 -1
  153. package/lib/typescript/commonjs/components/Accordion.d.ts +6 -3
  154. package/lib/typescript/commonjs/components/Accordion.d.ts.map +1 -1
  155. package/lib/typescript/commonjs/components/Alert.d.ts +4 -4
  156. package/lib/typescript/commonjs/components/Alert.d.ts.map +1 -1
  157. package/lib/typescript/commonjs/components/AlertDialog.d.ts +5 -3
  158. package/lib/typescript/commonjs/components/AlertDialog.d.ts.map +1 -1
  159. package/lib/typescript/commonjs/components/Avatar.d.ts +9 -4
  160. package/lib/typescript/commonjs/components/Avatar.d.ts.map +1 -1
  161. package/lib/typescript/commonjs/components/Badge.d.ts +4 -4
  162. package/lib/typescript/commonjs/components/Badge.d.ts.map +1 -1
  163. package/lib/typescript/commonjs/components/BottomSheet.d.ts +13 -4
  164. package/lib/typescript/commonjs/components/BottomSheet.d.ts.map +1 -1
  165. package/lib/typescript/commonjs/components/Breadcrumb.d.ts +6 -5
  166. package/lib/typescript/commonjs/components/Breadcrumb.d.ts.map +1 -1
  167. package/lib/typescript/commonjs/components/Button.d.ts +3 -3
  168. package/lib/typescript/commonjs/components/Button.d.ts.map +1 -1
  169. package/lib/typescript/commonjs/components/Calendar.d.ts +9 -1
  170. package/lib/typescript/commonjs/components/Calendar.d.ts.map +1 -1
  171. package/lib/typescript/commonjs/components/Card.d.ts +3 -2
  172. package/lib/typescript/commonjs/components/Card.d.ts.map +1 -1
  173. package/lib/typescript/commonjs/components/Carousel.d.ts +4 -1
  174. package/lib/typescript/commonjs/components/Carousel.d.ts.map +1 -1
  175. package/lib/typescript/commonjs/components/Checkbox.d.ts +3 -3
  176. package/lib/typescript/commonjs/components/Checkbox.d.ts.map +1 -1
  177. package/lib/typescript/commonjs/components/Collapsible.d.ts.map +1 -1
  178. package/lib/typescript/commonjs/components/Combobox.d.ts +11 -6
  179. package/lib/typescript/commonjs/components/Combobox.d.ts.map +1 -1
  180. package/lib/typescript/commonjs/components/Command.d.ts +3 -0
  181. package/lib/typescript/commonjs/components/Command.d.ts.map +1 -1
  182. package/lib/typescript/commonjs/components/DropdownMenu.d.ts +4 -2
  183. package/lib/typescript/commonjs/components/DropdownMenu.d.ts.map +1 -1
  184. package/lib/typescript/commonjs/components/Empty.d.ts +7 -4
  185. package/lib/typescript/commonjs/components/Empty.d.ts.map +1 -1
  186. package/lib/typescript/commonjs/components/FormField.d.ts +12 -4
  187. package/lib/typescript/commonjs/components/FormField.d.ts.map +1 -1
  188. package/lib/typescript/commonjs/components/IconButton.d.ts +3 -3
  189. package/lib/typescript/commonjs/components/IconButton.d.ts.map +1 -1
  190. package/lib/typescript/commonjs/components/Input.d.ts +2 -1
  191. package/lib/typescript/commonjs/components/Input.d.ts.map +1 -1
  192. package/lib/typescript/commonjs/components/InputGroup.d.ts +3 -2
  193. package/lib/typescript/commonjs/components/InputGroup.d.ts.map +1 -1
  194. package/lib/typescript/commonjs/components/InputOTP.d.ts +9 -4
  195. package/lib/typescript/commonjs/components/InputOTP.d.ts.map +1 -1
  196. package/lib/typescript/commonjs/components/Popover.d.ts +1 -1
  197. package/lib/typescript/commonjs/components/Popover.d.ts.map +1 -1
  198. package/lib/typescript/commonjs/components/Progress.d.ts +13 -1
  199. package/lib/typescript/commonjs/components/Progress.d.ts.map +1 -1
  200. package/lib/typescript/commonjs/components/RadioGroup.d.ts +3 -2
  201. package/lib/typescript/commonjs/components/RadioGroup.d.ts.map +1 -1
  202. package/lib/typescript/commonjs/components/Rating.d.ts +3 -23
  203. package/lib/typescript/commonjs/components/Rating.d.ts.map +1 -1
  204. package/lib/typescript/commonjs/components/Select.d.ts +5 -4
  205. package/lib/typescript/commonjs/components/Select.d.ts.map +1 -1
  206. package/lib/typescript/commonjs/components/Sheet.d.ts +25 -6
  207. package/lib/typescript/commonjs/components/Sheet.d.ts.map +1 -1
  208. package/lib/typescript/commonjs/components/Stepper.d.ts +5 -3
  209. package/lib/typescript/commonjs/components/Stepper.d.ts.map +1 -1
  210. package/lib/typescript/commonjs/components/Switch.d.ts +3 -3
  211. package/lib/typescript/commonjs/components/Switch.d.ts.map +1 -1
  212. package/lib/typescript/commonjs/components/Tabs.d.ts +21 -4
  213. package/lib/typescript/commonjs/components/Tabs.d.ts.map +1 -1
  214. package/lib/typescript/commonjs/components/Timeline.d.ts +9 -3
  215. package/lib/typescript/commonjs/components/Timeline.d.ts.map +1 -1
  216. package/lib/typescript/commonjs/components/Toast.d.ts +3 -0
  217. package/lib/typescript/commonjs/components/Toast.d.ts.map +1 -1
  218. package/lib/typescript/commonjs/components/index.d.ts +5 -5
  219. package/lib/typescript/commonjs/components/index.d.ts.map +1 -1
  220. package/lib/typescript/commonjs/components/types.d.ts +35 -0
  221. package/lib/typescript/commonjs/components/types.d.ts.map +1 -1
  222. package/lib/typescript/commonjs/utils/haptics.d.ts +6 -0
  223. package/lib/typescript/commonjs/utils/haptics.d.ts.map +1 -0
  224. package/lib/typescript/commonjs/utils/index.d.ts +1 -0
  225. package/lib/typescript/commonjs/utils/index.d.ts.map +1 -1
  226. package/lib/typescript/module/components/Accordion.d.ts +6 -3
  227. package/lib/typescript/module/components/Accordion.d.ts.map +1 -1
  228. package/lib/typescript/module/components/Alert.d.ts +4 -4
  229. package/lib/typescript/module/components/Alert.d.ts.map +1 -1
  230. package/lib/typescript/module/components/AlertDialog.d.ts +5 -3
  231. package/lib/typescript/module/components/AlertDialog.d.ts.map +1 -1
  232. package/lib/typescript/module/components/Avatar.d.ts +9 -4
  233. package/lib/typescript/module/components/Avatar.d.ts.map +1 -1
  234. package/lib/typescript/module/components/Badge.d.ts +4 -4
  235. package/lib/typescript/module/components/Badge.d.ts.map +1 -1
  236. package/lib/typescript/module/components/BottomSheet.d.ts +13 -4
  237. package/lib/typescript/module/components/BottomSheet.d.ts.map +1 -1
  238. package/lib/typescript/module/components/Breadcrumb.d.ts +6 -5
  239. package/lib/typescript/module/components/Breadcrumb.d.ts.map +1 -1
  240. package/lib/typescript/module/components/Button.d.ts +3 -3
  241. package/lib/typescript/module/components/Button.d.ts.map +1 -1
  242. package/lib/typescript/module/components/Calendar.d.ts +9 -1
  243. package/lib/typescript/module/components/Calendar.d.ts.map +1 -1
  244. package/lib/typescript/module/components/Card.d.ts +3 -2
  245. package/lib/typescript/module/components/Card.d.ts.map +1 -1
  246. package/lib/typescript/module/components/Carousel.d.ts +4 -1
  247. package/lib/typescript/module/components/Carousel.d.ts.map +1 -1
  248. package/lib/typescript/module/components/Checkbox.d.ts +3 -3
  249. package/lib/typescript/module/components/Checkbox.d.ts.map +1 -1
  250. package/lib/typescript/module/components/Collapsible.d.ts.map +1 -1
  251. package/lib/typescript/module/components/Combobox.d.ts +11 -6
  252. package/lib/typescript/module/components/Combobox.d.ts.map +1 -1
  253. package/lib/typescript/module/components/Command.d.ts +3 -0
  254. package/lib/typescript/module/components/Command.d.ts.map +1 -1
  255. package/lib/typescript/module/components/DropdownMenu.d.ts +4 -2
  256. package/lib/typescript/module/components/DropdownMenu.d.ts.map +1 -1
  257. package/lib/typescript/module/components/Empty.d.ts +7 -4
  258. package/lib/typescript/module/components/Empty.d.ts.map +1 -1
  259. package/lib/typescript/module/components/FormField.d.ts +12 -4
  260. package/lib/typescript/module/components/FormField.d.ts.map +1 -1
  261. package/lib/typescript/module/components/IconButton.d.ts +3 -3
  262. package/lib/typescript/module/components/IconButton.d.ts.map +1 -1
  263. package/lib/typescript/module/components/Input.d.ts +2 -1
  264. package/lib/typescript/module/components/Input.d.ts.map +1 -1
  265. package/lib/typescript/module/components/InputGroup.d.ts +3 -2
  266. package/lib/typescript/module/components/InputGroup.d.ts.map +1 -1
  267. package/lib/typescript/module/components/InputOTP.d.ts +9 -4
  268. package/lib/typescript/module/components/InputOTP.d.ts.map +1 -1
  269. package/lib/typescript/module/components/Popover.d.ts +1 -1
  270. package/lib/typescript/module/components/Popover.d.ts.map +1 -1
  271. package/lib/typescript/module/components/Progress.d.ts +13 -1
  272. package/lib/typescript/module/components/Progress.d.ts.map +1 -1
  273. package/lib/typescript/module/components/RadioGroup.d.ts +3 -2
  274. package/lib/typescript/module/components/RadioGroup.d.ts.map +1 -1
  275. package/lib/typescript/module/components/Rating.d.ts +3 -23
  276. package/lib/typescript/module/components/Rating.d.ts.map +1 -1
  277. package/lib/typescript/module/components/Select.d.ts +5 -4
  278. package/lib/typescript/module/components/Select.d.ts.map +1 -1
  279. package/lib/typescript/module/components/Sheet.d.ts +25 -6
  280. package/lib/typescript/module/components/Sheet.d.ts.map +1 -1
  281. package/lib/typescript/module/components/Stepper.d.ts +5 -3
  282. package/lib/typescript/module/components/Stepper.d.ts.map +1 -1
  283. package/lib/typescript/module/components/Switch.d.ts +3 -3
  284. package/lib/typescript/module/components/Switch.d.ts.map +1 -1
  285. package/lib/typescript/module/components/Tabs.d.ts +21 -4
  286. package/lib/typescript/module/components/Tabs.d.ts.map +1 -1
  287. package/lib/typescript/module/components/Timeline.d.ts +9 -3
  288. package/lib/typescript/module/components/Timeline.d.ts.map +1 -1
  289. package/lib/typescript/module/components/Toast.d.ts +3 -0
  290. package/lib/typescript/module/components/Toast.d.ts.map +1 -1
  291. package/lib/typescript/module/components/index.d.ts +5 -5
  292. package/lib/typescript/module/components/index.d.ts.map +1 -1
  293. package/lib/typescript/module/components/types.d.ts +35 -0
  294. package/lib/typescript/module/components/types.d.ts.map +1 -1
  295. package/lib/typescript/module/utils/haptics.d.ts +6 -0
  296. package/lib/typescript/module/utils/haptics.d.ts.map +1 -0
  297. package/lib/typescript/module/utils/index.d.ts +1 -0
  298. package/lib/typescript/module/utils/index.d.ts.map +1 -1
  299. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["React","Pressable","View","useTheme","Text","jsx","_jsx","jsxs","_jsxs","RadioGroupContext","createContext","RadioGroup","value","defaultValue","disabled","onValueChange","style","props","spacing","internalValue","setInternalValue","useState","currentValue","handleValueChange","useCallback","next","undefined","context","useMemo","Provider","children","accessibilityRole","gap","sm","width","RadioGroupItem","label","description","useContext","colors","components","radii","typography","checked","isDisabled","Boolean","accessibilityState","onPress","pressed","flexDirection","alignItems","md","padding","borderWidth","strong","borderColor","primary","border","borderRadius","lg","backgroundColor","primarySoft","surface","opacity","height","focus","justifyContent","marginTop","flex","xs","variant","color","bodySmall","textMuted"],"sourceRoot":"../../../src","sources":["components/RadioGroup.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Pressable","View","Animated","interpolateColor","useAnimatedStyle","useSharedValue","withSpring","withTiming","useTheme","triggerHaptic","Text","jsx","_jsx","jsxs","_jsxs","RadioGroupContext","createContext","RadioGroup","value","defaultValue","disabled","onValueChange","style","props","spacing","internalValue","setInternalValue","useState","currentValue","handleValueChange","useCallback","next","undefined","context","useMemo","Provider","children","accessibilityRole","gap","sm","width","RadioGroupItem","label","description","glass","haptic","animated","onPress","useContext","colors","components","radii","typography","isDark","checked","isDisabled","Boolean","checkedProgress","pressedProgress","useEffect","damping","stiffness","mass","glassBg","inactiveBg","surface","activeBg","primarySoft","inactiveBorder","border","activeBorder","primary","containerAnimatedStyle","backgroundColor","borderColor","transform","scale","dotAnimatedStyle","opacity","radioCircleAnimatedStyle","handlePress","e","accessibilityState","onPressIn","duration","onPressOut","flexDirection","alignItems","md","padding","borderWidth","strong","borderRadius","xl","height","focus","justifyContent","marginTop","flex","xs","variant","color","bodySmall","textMuted"],"sourceRoot":"../../../src","sources":["components/RadioGroup.tsx"],"mappings":"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","ignoreList":[]}
@@ -6,24 +6,10 @@ import { Gesture, GestureDetector } from "react-native-gesture-handler";
6
6
  import Animated, { runOnJS, useAnimatedStyle, useSharedValue, withSequence, withSpring } from "react-native-reanimated";
7
7
  import Svg, { Path } from "react-native-svg";
8
8
  import { useTheme } from "../theme/index.js";
9
+ import { triggerHaptic } from "../utils/haptics.js";
9
10
  import { Text } from "./Text.js";
10
11
  import { renderIcon } from "./types.js";
11
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
12
- function getNumericSize(size) {
13
- if (typeof size === "number") return size;
14
- switch (size) {
15
- case "sm":
16
- return 16;
17
- case "md":
18
- return 24;
19
- case "lg":
20
- return 32;
21
- case "xl":
22
- return 40;
23
- default:
24
- return 24;
25
- }
26
- }
27
13
  function getDefaultTone(shape) {
28
14
  switch (shape) {
29
15
  case "heart":
@@ -138,6 +124,76 @@ function ShapeSvg({
138
124
  });
139
125
  }
140
126
  }
127
+ function RatingItemWrapper({
128
+ index,
129
+ itemSize,
130
+ ratingShared,
131
+ activeColor,
132
+ activeEmptyColor,
133
+ shape,
134
+ icon,
135
+ renderItem
136
+ }) {
137
+ const itemValue = index + 1;
138
+ const fillOverlayStyle = useAnimatedStyle(() => {
139
+ const currentVal = ratingShared.value;
140
+ let fillFraction = 0;
141
+ if (currentVal >= itemValue) {
142
+ fillFraction = 1;
143
+ } else if (currentVal > index) {
144
+ fillFraction = currentVal - index;
145
+ }
146
+ return {
147
+ width: `${fillFraction * 100}%`
148
+ };
149
+ });
150
+ if (renderItem) {
151
+ const currentVal = ratingShared.value;
152
+ let fillFraction = 0;
153
+ if (currentVal >= itemValue) fillFraction = 1;else if (currentVal > index) fillFraction = currentVal - index;
154
+ return /*#__PURE__*/_jsx(View, {
155
+ style: {
156
+ width: itemSize,
157
+ height: itemSize
158
+ },
159
+ children: renderItem({
160
+ index,
161
+ value: itemValue,
162
+ fillFraction,
163
+ isFilled: fillFraction > 0,
164
+ color: activeColor,
165
+ emptyColor: activeEmptyColor,
166
+ size: itemSize
167
+ })
168
+ });
169
+ }
170
+ return /*#__PURE__*/_jsxs(View, {
171
+ style: styles.iconCenter,
172
+ children: [/*#__PURE__*/_jsx(View, {
173
+ style: StyleSheet.absoluteFill,
174
+ children: icon ? renderIcon(icon, activeEmptyColor, itemSize) : /*#__PURE__*/_jsx(ShapeSvg, {
175
+ shape: shape,
176
+ color: activeEmptyColor,
177
+ size: itemSize
178
+ })
179
+ }), /*#__PURE__*/_jsx(Animated.View, {
180
+ style: [StyleSheet.absoluteFill, {
181
+ overflow: "hidden"
182
+ }, fillOverlayStyle],
183
+ children: /*#__PURE__*/_jsx(View, {
184
+ style: {
185
+ width: itemSize,
186
+ height: itemSize
187
+ },
188
+ children: icon ? renderIcon(icon, activeColor, itemSize) : /*#__PURE__*/_jsx(ShapeSvg, {
189
+ shape: shape,
190
+ color: activeColor,
191
+ size: itemSize
192
+ })
193
+ })
194
+ })]
195
+ });
196
+ }
141
197
  export function Rating({
142
198
  value,
143
199
  defaultValue = 0,
@@ -153,6 +209,7 @@ export function Rating({
153
209
  disabled = false,
154
210
  allowClear = true,
155
211
  showValue = false,
212
+ haptic = true,
156
213
  valueFormat,
157
214
  renderItem,
158
215
  icon,
@@ -180,11 +237,13 @@ export function Rating({
180
237
  const isInteracting = useSharedValue(false);
181
238
  const containerWidth = useSharedValue(max * itemSize + (max - 1) * gap);
182
239
  const scaleAnim = useSharedValue(1);
240
+ const [displayVal, setDisplayVal] = React.useState(currentValue);
183
241
  React.useEffect(() => {
184
242
  if (!isInteracting.value) {
185
243
  ratingShared.value = currentValue;
244
+ setDisplayVal(currentValue);
186
245
  }
187
- }, [currentValue, isInteracting]);
246
+ }, [currentValue, isInteracting, ratingShared]);
188
247
  const updateRatingFromX = React.useCallback((xPos, isFinal = false) => {
189
248
  "worklet";
190
249
 
@@ -192,24 +251,32 @@ export function Rating({
192
251
  if (totalW <= 0) return;
193
252
  const rawVal = xPos / totalW * max;
194
253
  let nextVal = roundToStep(rawVal, step, max, allowClear);
195
-
196
- // Handle tap on current value to toggle zero clear
197
254
  if (isFinal && allowClear && nextVal === ratingShared.value && xPos < itemSize) {
198
255
  nextVal = 0;
199
256
  }
200
257
  ratingShared.value = nextVal;
258
+ runOnJS(setDisplayVal)(nextVal);
201
259
  if (onValueChange) {
202
260
  runOnJS(onValueChange)(nextVal);
203
261
  }
204
- if (!isControlled) {
262
+ if (isFinal && !isControlled) {
205
263
  runOnJS(setInternalValue)(nextVal);
206
264
  }
207
- }, [max, step, allowClear, isControlled, onValueChange, ratingShared, containerWidth, itemSize]);
208
- const panGesture = Gesture.Pan().enabled(!disabled && !readOnly).minDistance(0).onBegin(e => {
265
+ }, [allowClear, containerWidth, isControlled, itemSize, max, onValueChange, ratingShared, step]);
266
+ const triggerHapticFeedback = React.useCallback(() => {
267
+ if (haptic) triggerHaptic("selection");
268
+ }, [haptic]);
269
+ const tapGesture = Gesture.Tap().enabled(!disabled && !readOnly).onEnd(e => {
270
+ "worklet";
271
+
272
+ updateRatingFromX(e.x, true);
273
+ runOnJS(triggerHapticFeedback)();
274
+ });
275
+ const panGesture = Gesture.Pan().enabled(!disabled && !readOnly).minDistance(2).onBegin(e => {
209
276
  "worklet";
210
277
 
211
278
  isInteracting.value = true;
212
- scaleAnim.value = withSpring(1.06, {
279
+ scaleAnim.value = withSpring(1.05, {
213
280
  damping: 15,
214
281
  stiffness: 200
215
282
  });
@@ -226,7 +293,7 @@ export function Rating({
226
293
 
227
294
  updateRatingFromX(e.x, true);
228
295
  const finalVal = ratingShared.value;
229
- scaleAnim.value = withSequence(withSpring(1.12, {
296
+ scaleAnim.value = withSequence(withSpring(1.08, {
230
297
  damping: 10
231
298
  }), withSpring(1, {
232
299
  damping: 15
@@ -234,6 +301,7 @@ export function Rating({
234
301
  if (onSlidingComplete) {
235
302
  runOnJS(onSlidingComplete)(finalVal);
236
303
  }
304
+ runOnJS(triggerHapticFeedback)();
237
305
  isInteracting.value = false;
238
306
  }).onFinalize(() => {
239
307
  "worklet";
@@ -241,7 +309,7 @@ export function Rating({
241
309
  isInteracting.value = false;
242
310
  scaleAnim.value = withSpring(1);
243
311
  });
244
- const composedGesture = panGesture;
312
+ const composedGesture = Gesture.Race(tapGesture, panGesture);
245
313
  const containerAnimatedStyle = useAnimatedStyle(() => ({
246
314
  transform: [{
247
315
  scale: scaleAnim.value
@@ -252,7 +320,7 @@ export function Rating({
252
320
  containerWidth.value = e.nativeEvent.layout.width;
253
321
  if (onLayout) onLayout(e);
254
322
  };
255
- const defaultFormattedValue = valueFormat ? valueFormat(currentValue, max) : `${currentValue.toFixed(step < 0.5 ? 1 : step === 0.5 ? 1 : 0)} / ${max}`;
323
+ const defaultFormattedValue = valueFormat ? valueFormat(displayVal, max) : `${displayVal.toFixed(step < 0.5 ? 1 : step === 0.5 ? 1 : 0)} / ${max}`;
256
324
  return /*#__PURE__*/_jsxs(View, {
257
325
  style: [styles.root, style],
258
326
  ...props,
@@ -265,76 +333,22 @@ export function Rating({
265
333
  }, containerAnimatedStyle],
266
334
  children: Array.from({
267
335
  length: max
268
- }).map((_, index) => {
269
- const itemValue = index + 1;
270
- let fillFraction = 0;
271
- if (currentValue >= itemValue) {
272
- fillFraction = 1;
273
- } else if (currentValue > index) {
274
- fillFraction = currentValue - index;
275
- }
276
- const isFilled = fillFraction > 0;
277
- const itemInfo = {
278
- index,
279
- value: itemValue,
280
- fillFraction,
281
- isFilled,
282
- color: activeColor,
283
- emptyColor: activeEmptyColor,
284
- size: itemSize
285
- };
286
- return /*#__PURE__*/_jsx(View, {
287
- style: [styles.itemWrapper, {
288
- width: itemSize,
289
- height: itemSize
290
- }, itemStyle],
291
- children: renderItem ? renderItem(itemInfo) : icon ? /*#__PURE__*/_jsxs(View, {
292
- style: styles.iconCenter,
293
- children: [/*#__PURE__*/_jsx(View, {
294
- style: StyleSheet.absoluteFill,
295
- children: renderIcon(icon, activeEmptyColor, itemSize)
296
- }), /*#__PURE__*/_jsx(View, {
297
- style: [StyleSheet.absoluteFill, {
298
- width: `${fillFraction * 100}%`,
299
- overflow: "hidden"
300
- }],
301
- children: /*#__PURE__*/_jsx(View, {
302
- style: {
303
- width: itemSize,
304
- height: itemSize
305
- },
306
- children: renderIcon(icon, activeColor, itemSize)
307
- })
308
- })]
309
- }) : /*#__PURE__*/_jsxs(View, {
310
- style: styles.iconCenter,
311
- children: [/*#__PURE__*/_jsx(View, {
312
- style: StyleSheet.absoluteFill,
313
- children: /*#__PURE__*/_jsx(ShapeSvg, {
314
- shape: shape,
315
- color: activeEmptyColor,
316
- size: itemSize
317
- })
318
- }), /*#__PURE__*/_jsx(View, {
319
- style: [StyleSheet.absoluteFill, {
320
- width: `${fillFraction * 100}%`,
321
- overflow: "hidden"
322
- }],
323
- children: /*#__PURE__*/_jsx(View, {
324
- style: {
325
- width: itemSize,
326
- height: itemSize
327
- },
328
- children: /*#__PURE__*/_jsx(ShapeSvg, {
329
- shape: shape,
330
- color: activeColor,
331
- size: itemSize
332
- })
333
- })
334
- })]
335
- })
336
- }, index);
337
- })
336
+ }).map((_, index) => /*#__PURE__*/_jsx(View, {
337
+ style: [styles.itemWrapper, {
338
+ width: itemSize,
339
+ height: itemSize
340
+ }, itemStyle],
341
+ children: /*#__PURE__*/_jsx(RatingItemWrapper, {
342
+ index: index,
343
+ itemSize: itemSize,
344
+ ratingShared: ratingShared,
345
+ activeColor: activeColor,
346
+ activeEmptyColor: activeEmptyColor,
347
+ shape: shape,
348
+ icon: icon,
349
+ renderItem: renderItem
350
+ })
351
+ }, index))
338
352
  })
339
353
  }), showValue && /*#__PURE__*/_jsx(Text, {
340
354
  variant: "labelSmall",
@@ -1 +1 @@
1
- {"version":3,"names":["React","StyleSheet","View","Gesture","GestureDetector","Animated","runOnJS","useAnimatedStyle","useSharedValue","withSequence","withSpring","Svg","Path","useTheme","Text","renderIcon","jsx","_jsx","jsxs","_jsxs","getNumericSize","size","getDefaultTone","shape","parsePrecisionStep","precision","Math","max","clamp","val","min","roundToStep","rawVal","step","allowZero","snapped","round","decimals","toString","split","length","Number","toFixed","ShapeSvg","color","viewBox","width","height","children","d","fill","Rating","value","defaultValue","gap","tone","emptyColor","readOnly","disabled","allowClear","showValue","valueFormat","renderItem","icon","onValueChange","onSlidingStart","onSlidingComplete","style","itemStyle","onLayout","props","colors","components","activeTone","activeColor","activeEmptyColor","textMuted","itemSize","rating","internalValue","setInternalValue","useState","isControlled","undefined","currentValue","ratingShared","isInteracting","containerWidth","scaleAnim","useEffect","updateRatingFromX","useCallback","xPos","isFinal","totalW","nextVal","panGesture","Pan","enabled","minDistance","onBegin","e","damping","stiffness","x","onUpdate","onEnd","finalVal","onFinalize","composedGesture","containerAnimatedStyle","transform","scale","opacity","handleLayout","nativeEvent","layout","defaultFormattedValue","styles","root","gesture","container","Array","from","map","_","index","itemValue","fillFraction","isFilled","itemInfo","itemWrapper","iconCenter","absoluteFill","overflow","variant","valueText","create","flexDirection","alignItems","justifyContent","marginLeft"],"sourceRoot":"../../../src","sources":["components/Rating.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","StyleSheet","View","Gesture","GestureDetector","Animated","runOnJS","useAnimatedStyle","useSharedValue","withSequence","withSpring","Svg","Path","useTheme","triggerHaptic","Text","renderIcon","jsx","_jsx","jsxs","_jsxs","getDefaultTone","shape","parsePrecisionStep","precision","Math","max","clamp","val","min","roundToStep","rawVal","step","allowZero","snapped","round","decimals","toString","split","length","Number","toFixed","ShapeSvg","color","size","viewBox","width","height","children","d","fill","RatingItemWrapper","index","itemSize","ratingShared","activeColor","activeEmptyColor","icon","renderItem","itemValue","fillOverlayStyle","currentVal","value","fillFraction","style","isFilled","emptyColor","styles","iconCenter","absoluteFill","overflow","Rating","defaultValue","gap","tone","readOnly","disabled","allowClear","showValue","haptic","valueFormat","onValueChange","onSlidingStart","onSlidingComplete","itemStyle","onLayout","props","colors","components","activeTone","textMuted","rating","internalValue","setInternalValue","useState","isControlled","undefined","currentValue","isInteracting","containerWidth","scaleAnim","displayVal","setDisplayVal","useEffect","updateRatingFromX","useCallback","xPos","isFinal","totalW","nextVal","triggerHapticFeedback","tapGesture","Tap","enabled","onEnd","e","x","panGesture","Pan","minDistance","onBegin","damping","stiffness","onUpdate","finalVal","onFinalize","composedGesture","Race","containerAnimatedStyle","transform","scale","opacity","handleLayout","nativeEvent","layout","defaultFormattedValue","root","gesture","container","Array","from","map","_","itemWrapper","variant","valueText","create","flexDirection","alignItems","justifyContent","marginLeft"],"sourceRoot":"../../../src","sources":["components/Rating.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,18 +1,34 @@
1
1
  "use strict";
2
2
 
3
3
  import React from "react";
4
- import { Modal, Pressable, ScrollView, View } from "react-native";
4
+ import { Modal, Pressable, ScrollView, StyleSheet, View } from "react-native";
5
5
  import { useTheme } from "../theme/index.js";
6
+ import { withAlpha } from "../utils/index.js";
7
+ import { triggerHaptic } from "../utils/haptics.js";
6
8
  import { Text } from "./Text.js";
7
9
  import { renderIcon } from "./types.js";
8
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
10
+ const selectHeights = {
11
+ sm: 36,
12
+ md: 44,
13
+ lg: 52
14
+ };
15
+ const selectPaddingX = {
16
+ sm: 10,
17
+ md: 12,
18
+ lg: 14
19
+ };
20
+ import { useFormField } from "./FormField.js";
21
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
22
  export function Select({
10
23
  value,
11
24
  defaultValue,
12
25
  options,
13
26
  placeholder = "Select option",
27
+ variant = "outline",
28
+ size = "md",
14
29
  disabled = false,
15
- title = "Select",
30
+ glass = false,
31
+ haptic = true,
16
32
  onValueChange,
17
33
  chevronIcon,
18
34
  checkIcon,
@@ -22,45 +38,83 @@ export function Select({
22
38
  colors,
23
39
  components,
24
40
  radii,
25
- spacing
41
+ spacing,
42
+ isDark
26
43
  } = useTheme();
44
+ const field = useFormField();
27
45
  const [open, setOpen] = React.useState(false);
28
46
  const [internalValue, setInternalValue] = React.useState(defaultValue);
47
+ const triggerRef = React.useRef(null);
48
+ const [coords, setCoords] = React.useState({
49
+ x: 0,
50
+ y: 0,
51
+ width: 0
52
+ });
53
+ const isInvalid = Boolean(field?.invalid);
54
+ const isDisabled = disabled || Boolean(field?.disabled);
29
55
  const currentValue = value ?? internalValue;
30
56
  const selected = options.find(option => option.value === currentValue);
31
57
  const choose = next => {
58
+ if (haptic) triggerHaptic("selection");
32
59
  if (value === undefined) setInternalValue(next);
33
60
  onValueChange?.(next);
34
61
  setOpen(false);
35
62
  };
36
- return /*#__PURE__*/_jsxs(_Fragment, {
63
+ const handleOpen = () => {
64
+ if (isDisabled) return;
65
+ if (haptic) triggerHaptic("light");
66
+ triggerRef.current?.measureInWindow((x, y, width, height) => {
67
+ setCoords({
68
+ x,
69
+ y: y + height + 4,
70
+ width
71
+ });
72
+ setOpen(false);
73
+ setOpen(true);
74
+ });
75
+ };
76
+ const glassBg = isDark ? "rgba(15, 27, 45, 0.70)" : "rgba(255, 255, 255, 0.85)";
77
+ const triggerBg = isDisabled ? withAlpha(colors.input, 0.55) : glass ? glassBg : variant === "filled" ? colors.surface : variant === "soft" ? withAlpha(colors.primary, 0.08) : colors.input;
78
+ const borderColor = isInvalid ? colors.danger : isDisabled ? colors.border : invalidOrOpenBorder(open, glass, isDark, colors);
79
+ const containerHeight = selectHeights[size];
80
+ const paddingX = selectPaddingX[size];
81
+ return /*#__PURE__*/_jsxs(View, {
82
+ ref: triggerRef,
83
+ style: {
84
+ width: "100%"
85
+ },
37
86
  children: [/*#__PURE__*/_jsxs(Pressable, {
38
87
  accessibilityRole: "button",
39
88
  disabled: disabled,
40
- onPress: () => setOpen(true),
89
+ onPress: handleOpen,
41
90
  style: ({
42
91
  pressed
43
92
  }) => [{
44
- minHeight: 44,
93
+ minHeight: containerHeight,
94
+ height: containerHeight,
45
95
  width: "100%",
46
- borderWidth: components.borderWidth.strong,
47
- borderColor: colors.border,
96
+ borderWidth: open ? components.borderWidth.focus : components.borderWidth.strong,
97
+ borderColor,
48
98
  borderRadius: radii.lg,
49
- backgroundColor: colors.input,
50
- paddingHorizontal: spacing.md,
99
+ backgroundColor: triggerBg,
100
+ paddingHorizontal: paddingX,
51
101
  flexDirection: "row",
52
102
  alignItems: "center",
53
103
  gap: spacing.sm,
54
- opacity: disabled ? 0.5 : pressed ? 0.78 : 1
104
+ opacity: disabled ? 0.56 : pressed ? 0.82 : 1
55
105
  }, style],
56
106
  children: [/*#__PURE__*/_jsx(Text, {
107
+ variant: size === "sm" ? "bodySmall" : "body",
57
108
  color: selected ? "text" : "placeholder",
58
109
  style: {
59
110
  flex: 1
60
111
  },
61
112
  children: selected?.label ?? placeholder
62
- }), renderIcon(chevronIcon, colors.textMuted, 18) ?? /*#__PURE__*/_jsx(Text, {
113
+ }), renderIcon(chevronIcon, colors.textMuted, size === "sm" ? 14 : 18) ?? /*#__PURE__*/_jsx(Text, {
63
114
  color: "textMuted",
115
+ style: {
116
+ fontSize: size === "sm" ? 12 : 14
117
+ },
64
118
  children: "\u2304"
65
119
  })]
66
120
  }), /*#__PURE__*/_jsx(Modal, {
@@ -69,30 +123,35 @@ export function Select({
69
123
  animationType: "fade",
70
124
  onRequestClose: () => setOpen(false),
71
125
  children: /*#__PURE__*/_jsx(Pressable, {
72
- style: {
73
- flex: 1,
74
- backgroundColor: colors.overlay,
75
- justifyContent: "flex-end"
76
- },
126
+ style: StyleSheet.absoluteFill,
77
127
  onPress: () => setOpen(false),
78
- children: /*#__PURE__*/_jsxs(Pressable, {
79
- style: {
80
- backgroundColor: colors.surface,
81
- borderTopLeftRadius: radii.xxl,
82
- borderTopRightRadius: radii.xxl,
128
+ children: /*#__PURE__*/_jsx(View, {
129
+ style: [{
130
+ position: "absolute",
131
+ top: coords.y,
132
+ left: coords.x,
133
+ width: coords.width,
134
+ maxHeight: 260,
135
+ backgroundColor: glass ? glassBg : colors.surface,
136
+ borderRadius: radii.xl,
83
137
  borderWidth: components.borderWidth.strong,
84
- borderColor: colors.border,
85
- padding: spacing.lg,
86
- gap: spacing.md,
87
- maxHeight: "72%"
88
- },
89
- children: [/*#__PURE__*/_jsx(Text, {
90
- variant: "title",
91
- children: title
92
- }), /*#__PURE__*/_jsx(ScrollView, {
138
+ borderColor: glass ? isDark ? "rgba(248, 250, 252, 0.20)" : "rgba(15, 23, 42, 0.14)" : colors.border,
139
+ padding: spacing.xs,
140
+ elevation: 8,
141
+ shadowColor: "#000",
142
+ shadowOffset: {
143
+ width: 0,
144
+ height: 4
145
+ },
146
+ shadowOpacity: 0.18,
147
+ shadowRadius: 12
148
+ }],
149
+ children: /*#__PURE__*/_jsx(ScrollView, {
150
+ nestedScrollEnabled: true,
151
+ keyboardShouldPersistTaps: "handled",
93
152
  children: /*#__PURE__*/_jsx(View, {
94
153
  style: {
95
- gap: spacing.sm
154
+ gap: 2
96
155
  },
97
156
  children: options.map(option => {
98
157
  const active = option.value === currentValue;
@@ -102,41 +161,48 @@ export function Select({
102
161
  style: ({
103
162
  pressed
104
163
  }) => ({
105
- minHeight: 48,
164
+ minHeight: 40,
106
165
  borderRadius: radii.lg,
107
- borderWidth: components.borderWidth.strong,
108
- borderColor: active ? colors.primary : colors.border,
109
- backgroundColor: active ? colors.primarySoft : colors.surface,
110
- padding: spacing.md,
166
+ backgroundColor: active ? colors.primarySoft : pressed ? colors.backgroundMuted : colors.transparent,
167
+ paddingHorizontal: spacing.md,
168
+ paddingVertical: spacing.xs,
111
169
  flexDirection: "row",
112
170
  alignItems: "center",
113
- gap: spacing.md,
114
- opacity: option.disabled ? 0.5 : pressed ? 0.78 : 1
171
+ gap: spacing.sm,
172
+ opacity: option.disabled ? 0.5 : 1
115
173
  }),
116
174
  children: [/*#__PURE__*/_jsxs(View, {
117
175
  style: {
118
176
  flex: 1,
119
- gap: spacing.xs
177
+ gap: 2
120
178
  },
121
179
  children: [/*#__PURE__*/_jsx(Text, {
122
- variant: "label",
180
+ variant: "body",
181
+ color: active ? "primary" : "text",
182
+ weight: active ? "600" : "400",
123
183
  children: option.label
124
184
  }), option.description ? /*#__PURE__*/_jsx(Text, {
125
- variant: "bodySmall",
185
+ variant: "caption",
126
186
  color: "textMuted",
127
187
  children: option.description
128
188
  }) : null]
129
- }), active ? renderIcon(checkIcon, colors.primary, 18) ?? /*#__PURE__*/_jsx(Text, {
189
+ }), active ? renderIcon(checkIcon, colors.primary, 16) ?? /*#__PURE__*/_jsx(Text, {
130
190
  color: "primary",
191
+ weight: "700",
131
192
  children: "\u2713"
132
193
  }) : null]
133
194
  }, option.value);
134
195
  })
135
196
  })
136
- })]
197
+ })
137
198
  })
138
199
  })
139
200
  })]
140
201
  });
141
202
  }
203
+ function invalidOrOpenBorder(open, glass, isDark, colors) {
204
+ if (open) return colors.primary;
205
+ if (glass) return isDark ? "rgba(248, 250, 252, 0.20)" : "rgba(15, 23, 42, 0.14)";
206
+ return colors.border;
207
+ }
142
208
  //# sourceMappingURL=Select.js.map