@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
@@ -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 borderColor = invalid ? colors.danger : checked ? colors.primary : colors.border;
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: 18,
77
- height: 18,
78
- borderRadius: 4,
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":"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","ignoreList":[]}
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: toggle,
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 [measuredHeight, setMeasuredHeight] = _react.default.useState(0);
80
- const heightAnim = (0, _reactNativeReanimated.useSharedValue)(open ? measuredHeight : 0);
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
- if (hasMeasured) {
86
- heightAnim.value = (0, _reactNativeReanimated.withTiming)(open ? measuredHeight : 0, {
87
- duration: 220
88
- });
89
- } else {
90
- // Set initial value immediately without animating during initial layout
91
- heightAnim.value = open ? measuredHeight : 0;
92
- }
93
- }, [open, measuredHeight, hasMeasured, heightAnim]);
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
- height
97
- } = e.nativeEvent.layout;
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 animatedStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
103
- height: hasMeasured ? heightAnim.value : open ? undefined : 0,
104
- opacity: hasMeasured ? Math.min(1, heightAnim.value / Math.max(1, measuredHeight)) : open ? 1 : 0
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
- }, animatedStyle, style],
111
- ...props,
112
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
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
- style: {
115
- width: "100%"
116
- },
117
- children: children
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","measuredHeight","setMeasuredHeight","heightAnim","useSharedValue","hasMeasured","useEffect","withTiming","duration","handleLayout","height","nativeEvent","layout","animatedStyle","useAnimatedStyle","opacity","Math","min","max","pointerEvents","overflow","onLayout","width"],"sourceRoot":"../../../src","sources":["components/Collapsible.tsx"],"mappings":"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","ignoreList":[]}
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
- measureTrigger();
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
- measureTrigger();
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: 40,
163
- borderWidth: components.borderWidth.strong,
164
- borderColor: colors.border,
198
+ height: containerHeight,
199
+ borderWidth: open ? components.borderWidth.focus : components.borderWidth.strong,
200
+ borderColor,
165
201
  borderRadius: radii.lg,
166
- backgroundColor: colors.input,
202
+ backgroundColor: triggerBg,
167
203
  paddingHorizontal: spacing.md,
168
204
  width: "100%",
169
- opacity: disabled ? 0.5 : 1
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.textMuted,
211
+ placeholderTextColor: colors.placeholder,
175
212
  value: inputValue,
176
- onChangeText: setInputValue,
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.bodySmall,
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 = 220;
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 + 6
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 ? 8 : -8) * (1 - progress.value)
277
+ translateY: (renderAbove ? 6 : -6) * (1 - progress.value)
228
278
  }]
229
279
  }));
230
- if (!open) return null;
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: "none",
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.lg,
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
- overflow: "hidden"
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: 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: 6
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.sm + 1,
393
+ paddingVertical: spacing.xs,
332
394
  paddingHorizontal: spacing.md,
333
- borderRadius: radii.md,
334
- backgroundColor: isSelected ? colors.surfaceMuted : pressed ? colors.surfaceMuted : colors.transparent,
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.bodySmall,
340
- color: colors.text,
341
- fontWeight: isSelected ? "500" : "400"
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, 14) : /*#__PURE__*/(0, _jsxRuntime.jsx)(CheckIcon, {
406
+ }), isSelected && (checkIcon ? (0, _types.renderIcon)(checkIcon, colors.primary, 16) : /*#__PURE__*/(0, _jsxRuntime.jsx)(CheckIcon, {
345
407
  color: colors.primary
346
408
  }))]
347
409
  });