@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
@@ -4,6 +4,7 @@ import React from "react";
4
4
  import { Pressable } from "react-native";
5
5
  import Animated, { interpolateColor, useAnimatedStyle, useSharedValue, withSpring, withTiming } from "react-native-reanimated";
6
6
  import { useTheme } from "../theme/index.js";
7
+ import { triggerHaptic } from "../utils/haptics.js";
7
8
  import { renderIcon } from "./types.js";
8
9
  import { jsx as _jsx } from "react/jsx-runtime";
9
10
  export function Switch({
@@ -14,6 +15,8 @@ export function Switch({
14
15
  invalid = false,
15
16
  size = "md",
16
17
  tone = "primary",
18
+ glass = false,
19
+ haptic = true,
17
20
  style,
18
21
  trackStyle,
19
22
  thumbStyle,
@@ -32,7 +35,8 @@ export function Switch({
32
35
  const {
33
36
  colors,
34
37
  components,
35
- radii
38
+ radii,
39
+ isDark
36
40
  } = useTheme();
37
41
  const isControlled = value !== undefined;
38
42
  const [uncontrolledValue, setUncontrolledValue] = React.useState(defaultValue);
@@ -47,7 +51,6 @@ export function Switch({
47
51
  });
48
52
  }, [checked, progress]);
49
53
  const activeColor = invalid ? colors.danger : colors[tone];
50
- const activeSoftColor = invalid ? colors.dangerSoft : tone === "primary" ? colors.primarySoft : tone === "secondary" ? colors.secondarySoft : tone === "accent" ? colors.accentSoft : tone === "success" ? colors.successSoft : tone === "warning" ? colors.warningSoft : tone === "danger" ? colors.dangerSoft : colors.infoSoft;
51
54
  const thumbIcon = checked ? activeIcon : inactiveIcon;
52
55
  const selectedThumbContent = (checked ? activeThumbContent : inactiveThumbContent) ?? thumbContent;
53
56
  const width = components.switch.width[size];
@@ -57,12 +60,19 @@ export function Switch({
57
60
  const borderWidth = components.borderWidth.focus;
58
61
  const inset = (height - thumbSize) / 2;
59
62
  const travel = width - thumbSize - (inset + borderWidth) * 2;
60
- const thumbColor = disabled ? colors.disabledText : colors.surface;
61
- const inactiveTrackColor = disabled ? colors.disabled : colors.backgroundMuted;
62
- const inactiveBorderColor = invalid ? colors.danger : colors.border;
63
+ const glassBg = isDark ? "rgba(15, 27, 45, 0.60)" : "rgba(255, 255, 255, 0.70)";
64
+ const inactiveTrackColor = disabled ? colors.disabled : glass ? glassBg : isDark ? "rgba(30, 41, 59, 0.90)" : colors.backgroundMuted;
65
+ const activeTrackColor = disabled ? colors.disabled : activeColor;
66
+ const inactiveBorderColor = invalid ? colors.danger : glass ? isDark ? "rgba(248, 250, 252, 0.20)" : "rgba(15, 23, 42, 0.14)" : isDark ? "rgba(148, 163, 184, 0.30)" : colors.border;
67
+ const activeBorderColor = invalid ? colors.danger : activeColor;
68
+
69
+ // Crisp white/light-slate knob for OFF state in both dark & light mode
70
+ const inactiveThumbColor = disabled ? colors.disabledText : isDark ? "#e2e8f0" : "#ffffff";
71
+ const activeThumbColor = disabled ? colors.disabledText : "#ffffff";
63
72
  const handlePress = event => {
64
73
  onPress?.(event);
65
74
  if (disabled) return;
75
+ if (haptic) triggerHaptic("selection");
66
76
  const nextValue = !checked;
67
77
  if (!isControlled) {
68
78
  setUncontrolledValue(nextValue);
@@ -82,8 +92,8 @@ export function Switch({
82
92
  });
83
93
  };
84
94
  const trackAnimatedStyle = useAnimatedStyle(() => ({
85
- backgroundColor: interpolateColor(progress.value, [0, 1], [inactiveTrackColor, activeSoftColor]),
86
- borderColor: interpolateColor(progress.value, [0, 1], [inactiveBorderColor, activeColor])
95
+ backgroundColor: interpolateColor(progress.value, [0, 1], [inactiveTrackColor, activeTrackColor]),
96
+ borderColor: interpolateColor(progress.value, [0, 1], [inactiveBorderColor, activeBorderColor])
87
97
  }));
88
98
  const thumbAnimatedStyle = useAnimatedStyle(() => ({
89
99
  transform: [{
@@ -91,9 +101,9 @@ export function Switch({
91
101
  }, {
92
102
  scale: 1 + pressed.value * 0.06
93
103
  }],
94
- backgroundColor: interpolateColor(progress.value, [0, 1], [thumbColor, activeColor])
104
+ backgroundColor: interpolateColor(progress.value, [0, 1], [inactiveThumbColor, activeThumbColor])
95
105
  }));
96
- const iconColor = checked ? invalid ? colors.onDanger : tone === "primary" ? colors.onPrimary : tone === "secondary" ? colors.onSecondary : tone === "accent" ? colors.onAccent : tone === "success" ? colors.onSuccess : tone === "warning" ? colors.onWarning : tone === "danger" ? colors.onDanger : colors.onInfo : colors.textSubtle;
106
+ const iconColor = checked ? invalid ? colors.danger : activeColor : colors.textSubtle;
97
107
  const thumbContentParams = {
98
108
  checked,
99
109
  disabled,
@@ -116,7 +126,7 @@ export function Switch({
116
126
  style: ({
117
127
  pressed: isPressed
118
128
  }) => [{
119
- opacity: disabled ? 0.56 : isPressed ? 0.9 : 1,
129
+ opacity: disabled ? 0.45 : isPressed ? 0.9 : 1,
120
130
  alignSelf: "flex-start"
121
131
  }, style],
122
132
  ...props,
@@ -137,7 +147,7 @@ export function Switch({
137
147
  alignItems: "center",
138
148
  justifyContent: "center",
139
149
  borderWidth: components.borderWidth.default,
140
- borderColor: checked ? activeColor : colors.borderMuted
150
+ borderColor: checked ? activeColor : "transparent"
141
151
  }, thumbAnimatedStyle, thumbStyle],
142
152
  children: renderThumb ? renderThumb(thumbContentParams) : renderedThumbContent ? renderedThumbContent : thumbIcon ? renderIcon(thumbIcon, iconColor, iconSize) : null
143
153
  })
@@ -1 +1 @@
1
- {"version":3,"names":["React","Pressable","Animated","interpolateColor","useAnimatedStyle","useSharedValue","withSpring","withTiming","useTheme","renderIcon","jsx","_jsx","Switch","value","defaultValue","onValueChange","disabled","invalid","size","tone","style","trackStyle","thumbStyle","activeIcon","inactiveIcon","thumbContent","activeThumbContent","inactiveThumbContent","renderThumb","onPress","onPressIn","onPressOut","accessibilityLabel","props","colors","components","radii","isControlled","undefined","uncontrolledValue","setUncontrolledValue","useState","checked","progress","pressed","useEffect","damping","stiffness","mass","activeColor","danger","activeSoftColor","dangerSoft","primarySoft","secondarySoft","accentSoft","successSoft","warningSoft","infoSoft","thumbIcon","selectedThumbContent","width","switch","height","thumbSize","iconSize","borderWidth","focus","inset","travel","thumbColor","disabledText","surface","inactiveTrackColor","backgroundMuted","inactiveBorderColor","border","handlePress","event","nextValue","handlePressIn","duration","handlePressOut","trackAnimatedStyle","backgroundColor","borderColor","thumbAnimatedStyle","transform","translateX","scale","iconColor","onDanger","onPrimary","onSecondary","onAccent","onSuccess","onWarning","onInfo","textSubtle","thumbContentParams","color","renderedThumbContent","accessibilityRole","accessibilityState","isPressed","opacity","alignSelf","children","View","borderRadius","full","padding","justifyContent","alignItems","default","borderMuted"],"sourceRoot":"../../../src","sources":["components/Switch.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Pressable","Animated","interpolateColor","useAnimatedStyle","useSharedValue","withSpring","withTiming","useTheme","triggerHaptic","renderIcon","jsx","_jsx","Switch","value","defaultValue","onValueChange","disabled","invalid","size","tone","glass","haptic","style","trackStyle","thumbStyle","activeIcon","inactiveIcon","thumbContent","activeThumbContent","inactiveThumbContent","renderThumb","onPress","onPressIn","onPressOut","accessibilityLabel","props","colors","components","radii","isDark","isControlled","undefined","uncontrolledValue","setUncontrolledValue","useState","checked","progress","pressed","useEffect","damping","stiffness","mass","activeColor","danger","thumbIcon","selectedThumbContent","width","switch","height","thumbSize","iconSize","borderWidth","focus","inset","travel","glassBg","inactiveTrackColor","backgroundMuted","activeTrackColor","inactiveBorderColor","border","activeBorderColor","inactiveThumbColor","disabledText","activeThumbColor","handlePress","event","nextValue","handlePressIn","duration","handlePressOut","trackAnimatedStyle","backgroundColor","borderColor","thumbAnimatedStyle","transform","translateX","scale","iconColor","textSubtle","thumbContentParams","color","renderedThumbContent","accessibilityRole","accessibilityState","isPressed","opacity","alignSelf","children","View","borderRadius","full","padding","justifyContent","alignItems","default"],"sourceRoot":"../../../src","sources":["components/Switch.tsx"],"mappings":"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","ignoreList":[]}
@@ -2,13 +2,28 @@
2
2
 
3
3
  import React from "react";
4
4
  import { Pressable, View } from "react-native";
5
+ import Animated, { useAnimatedStyle, useSharedValue, 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
- import { jsx as _jsx } from "react/jsx-runtime";
9
+ import { renderIcon } from "./types.js";
10
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
11
  const TabsContext = /*#__PURE__*/React.createContext(null);
12
+ export function useTabsContext() {
13
+ const context = React.useContext(TabsContext);
14
+ if (!context) {
15
+ throw new Error("Tabs compound components must be rendered inside <Tabs />");
16
+ }
17
+ return context;
18
+ }
9
19
  export function Tabs({
10
20
  value,
11
21
  defaultValue,
22
+ variant = "segmented",
23
+ size = "md",
24
+ glass = false,
25
+ haptic = true,
26
+ animated = true,
12
27
  onValueChange,
13
28
  style,
14
29
  ...props
@@ -17,15 +32,35 @@ export function Tabs({
17
32
  spacing
18
33
  } = useTheme();
19
34
  const [internalValue, setInternalValue] = React.useState(defaultValue);
35
+ const [tabNodes, setTabNodes] = React.useState({});
20
36
  const currentValue = value ?? internalValue;
37
+ const registerTabNode = React.useCallback((tabValue, layout) => {
38
+ setTabNodes(prev => {
39
+ if (prev[tabValue]?.x === layout.x && prev[tabValue]?.width === layout.width) {
40
+ return prev;
41
+ }
42
+ return {
43
+ ...prev,
44
+ [tabValue]: layout
45
+ };
46
+ });
47
+ }, []);
21
48
  const handleValueChange = React.useCallback(next => {
49
+ if (haptic) triggerHaptic("selection");
22
50
  if (value === undefined) setInternalValue(next);
23
51
  onValueChange?.(next);
24
- }, [onValueChange, value]);
52
+ }, [haptic, onValueChange, value]);
25
53
  const context = React.useMemo(() => ({
26
54
  value: currentValue,
27
- onValueChange: handleValueChange
28
- }), [currentValue, handleValueChange]);
55
+ onValueChange: handleValueChange,
56
+ variant,
57
+ size,
58
+ glass,
59
+ haptic,
60
+ animated,
61
+ registerTabNode,
62
+ tabNodes
63
+ }), [currentValue, handleValueChange, variant, size, glass, haptic, animated, registerTabNode, tabNodes]);
29
64
  return /*#__PURE__*/_jsx(TabsContext.Provider, {
30
65
  value: context,
31
66
  children: /*#__PURE__*/_jsx(View, {
@@ -37,73 +72,165 @@ export function Tabs({
37
72
  })
38
73
  });
39
74
  }
75
+ const listHeights = {
76
+ sm: 36,
77
+ md: 44,
78
+ lg: 52
79
+ };
40
80
  export function TabsList({
41
81
  style,
82
+ children,
42
83
  ...props
43
84
  }) {
44
85
  const {
45
86
  colors,
46
87
  components,
47
88
  radii,
48
- spacing
89
+ spacing,
90
+ isDark
49
91
  } = useTheme();
50
- return /*#__PURE__*/_jsx(View, {
92
+ const {
93
+ value,
94
+ variant,
95
+ size,
96
+ glass,
97
+ animated,
98
+ tabNodes
99
+ } = useTabsContext();
100
+ const activeNode = value ? tabNodes[value] : undefined;
101
+ const indicatorX = useSharedValue(0);
102
+ const indicatorWidth = useSharedValue(0);
103
+ const initialized = useSharedValue(false);
104
+ React.useEffect(() => {
105
+ if (activeNode && activeNode.width > 0) {
106
+ if (!animated || !initialized.value) {
107
+ indicatorX.value = activeNode.x;
108
+ indicatorWidth.value = activeNode.width;
109
+ initialized.value = true;
110
+ } else {
111
+ indicatorX.value = withTiming(activeNode.x, {
112
+ duration: 180
113
+ });
114
+ indicatorWidth.value = withTiming(activeNode.width, {
115
+ duration: 180
116
+ });
117
+ }
118
+ }
119
+ }, [activeNode, animated, indicatorX, indicatorWidth, initialized]);
120
+ const glassBg = isDark ? "rgba(15, 27, 45, 0.70)" : "rgba(255, 255, 255, 0.85)";
121
+ const isUnderline = variant === "underline";
122
+ const isPills = variant === "pills";
123
+ const height = listHeights[size];
124
+ const indicatorStyle = useAnimatedStyle(() => ({
125
+ transform: [{
126
+ translateX: indicatorX.value
127
+ }],
128
+ width: indicatorWidth.value
129
+ }));
130
+ const activeBg = variant === "segmented" || variant === "pills" ? colors.primary : variant === "soft" ? colors.primarySoft : colors.transparent;
131
+ const padding = isUnderline ? 0 : 4;
132
+ // Concentric radius rule: InnerRadius = OuterRadius - Padding (16 - 4 = 12px)
133
+ const innerRadius = isPills ? radii.full : isUnderline ? 0 : radii.md;
134
+ return /*#__PURE__*/_jsxs(View, {
51
135
  style: [{
52
136
  width: "100%",
53
- minHeight: 44,
54
- padding: 3,
55
- borderRadius: radii.lg,
56
- borderWidth: components.borderWidth.strong,
57
- borderColor: colors.border,
58
- backgroundColor: colors.surface,
137
+ minHeight: height,
138
+ height: isUnderline ? undefined : height,
139
+ padding,
140
+ borderRadius: isUnderline ? 0 : radii.lg,
141
+ borderWidth: isUnderline ? 0 : components.borderWidth.strong,
142
+ borderColor: glass ? isDark ? "rgba(248, 250, 252, 0.20)" : "rgba(15, 23, 42, 0.14)" : colors.border,
143
+ borderBottomWidth: isUnderline ? components.borderWidth.strong : undefined,
144
+ borderBottomColor: isUnderline ? colors.border : undefined,
145
+ backgroundColor: isUnderline ? colors.transparent : isPills ? colors.transparent : glass ? glassBg : colors.input,
59
146
  flexDirection: "row",
60
- gap: spacing.xs
147
+ alignItems: "stretch",
148
+ gap: isPills ? spacing.xs : isUnderline ? spacing.md : 4,
149
+ position: "relative"
61
150
  }, style],
62
- ...props
151
+ ...props,
152
+ children: [activeNode && /*#__PURE__*/_jsx(Animated.View, {
153
+ style: [{
154
+ position: "absolute",
155
+ top: isUnderline ? undefined : padding,
156
+ bottom: isUnderline ? 0 : padding,
157
+ height: isUnderline ? 2.5 : undefined,
158
+ borderRadius: innerRadius,
159
+ backgroundColor: isUnderline ? colors.primary : activeBg,
160
+ zIndex: 0
161
+ }, indicatorStyle]
162
+ }), children]
63
163
  });
64
164
  }
65
165
  export function TabsTrigger({
66
166
  value,
167
+ icon,
67
168
  children,
68
169
  style,
69
170
  disabled,
70
171
  ...props
71
172
  }) {
72
- const context = React.useContext(TabsContext);
173
+ const {
174
+ value: selectedValue,
175
+ onValueChange,
176
+ variant,
177
+ size,
178
+ registerTabNode
179
+ } = useTabsContext();
73
180
  const {
74
181
  colors,
75
182
  radii,
76
183
  spacing
77
184
  } = useTheme();
78
- const active = context?.value === value;
79
- return /*#__PURE__*/_jsx(Pressable, {
185
+ const active = selectedValue === value;
186
+ const handleLayout = event => {
187
+ const {
188
+ x,
189
+ width,
190
+ height
191
+ } = event.nativeEvent.layout;
192
+ registerTabNode(value, {
193
+ x,
194
+ width,
195
+ height
196
+ });
197
+ };
198
+ const activeTextColor = variant === "segmented" || variant === "pills" ? colors.onPrimary : colors.primary;
199
+ const isPills = variant === "pills";
200
+ const isUnderline = variant === "underline";
201
+ const triggerRadius = isPills ? radii.full : isUnderline ? 0 : radii.md;
202
+ return /*#__PURE__*/_jsxs(Pressable, {
80
203
  accessibilityRole: "tab",
81
204
  accessibilityState: {
82
205
  selected: active,
83
206
  disabled: Boolean(disabled)
84
207
  },
85
208
  disabled: disabled,
86
- onPress: () => context?.onValueChange?.(value),
209
+ onLayout: handleLayout,
210
+ onPress: () => onValueChange?.(value),
87
211
  style: ({
88
212
  pressed
89
213
  }) => [{
90
214
  flex: 1,
91
- minHeight: 36,
92
- borderRadius: radii.md,
93
- backgroundColor: active ? colors.primary : colors.transparent,
215
+ height: isUnderline ? listHeights[size] : "100%",
216
+ borderRadius: triggerRadius,
94
217
  alignItems: "center",
95
218
  justifyContent: "center",
96
- paddingHorizontal: spacing.md,
97
- opacity: disabled ? 0.5 : pressed ? 0.78 : 1
219
+ flexDirection: "row",
220
+ gap: spacing.xs,
221
+ paddingHorizontal: spacing.sm,
222
+ zIndex: 1,
223
+ opacity: disabled ? 0.5 : pressed ? 0.82 : 1
98
224
  }, style],
99
225
  ...props,
100
- children: typeof children === "string" ? /*#__PURE__*/_jsx(Text, {
101
- variant: "label",
226
+ children: [icon ? renderIcon(icon, active ? activeTextColor : colors.textMuted, size === "sm" ? 14 : 16) : null, typeof children === "string" ? /*#__PURE__*/_jsx(Text, {
227
+ variant: size === "sm" ? "bodySmall" : "label",
228
+ weight: active ? "600" : "400",
102
229
  style: {
103
- color: active ? colors.onPrimary : colors.textMuted
230
+ color: active ? activeTextColor : colors.textMuted
104
231
  },
105
232
  children: children
106
- }) : children
233
+ }) : children]
107
234
  });
108
235
  }
109
236
  export function TabsContent({
@@ -112,8 +239,10 @@ export function TabsContent({
112
239
  style,
113
240
  ...props
114
241
  }) {
115
- const context = React.useContext(TabsContext);
116
- const active = context?.value === value;
242
+ const {
243
+ value: selectedValue
244
+ } = useTabsContext();
245
+ const active = selectedValue === value;
117
246
  if (!active && !forceMount) return null;
118
247
  return /*#__PURE__*/_jsx(View, {
119
248
  style: [{
@@ -1 +1 @@
1
- {"version":3,"names":["React","Pressable","View","useTheme","Text","jsx","_jsx","TabsContext","createContext","Tabs","value","defaultValue","onValueChange","style","props","spacing","internalValue","setInternalValue","useState","currentValue","handleValueChange","useCallback","next","undefined","context","useMemo","Provider","children","width","gap","md","TabsList","colors","components","radii","minHeight","padding","borderRadius","lg","borderWidth","strong","borderColor","border","backgroundColor","surface","flexDirection","xs","TabsTrigger","disabled","useContext","active","accessibilityRole","accessibilityState","selected","Boolean","onPress","pressed","flex","primary","transparent","alignItems","justifyContent","paddingHorizontal","opacity","variant","color","onPrimary","textMuted","TabsContent","forceMount","display"],"sourceRoot":"../../../src","sources":["components/Tabs.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Pressable","View","Animated","useAnimatedStyle","useSharedValue","withTiming","useTheme","triggerHaptic","Text","renderIcon","jsx","_jsx","jsxs","_jsxs","TabsContext","createContext","useTabsContext","context","useContext","Error","Tabs","value","defaultValue","variant","size","glass","haptic","animated","onValueChange","style","props","spacing","internalValue","setInternalValue","useState","tabNodes","setTabNodes","currentValue","registerTabNode","useCallback","tabValue","layout","prev","x","width","handleValueChange","next","undefined","useMemo","Provider","children","gap","md","listHeights","sm","lg","TabsList","colors","components","radii","isDark","activeNode","indicatorX","indicatorWidth","initialized","useEffect","duration","glassBg","isUnderline","isPills","height","indicatorStyle","transform","translateX","activeBg","primary","primarySoft","transparent","padding","innerRadius","full","minHeight","borderRadius","borderWidth","strong","borderColor","border","borderBottomWidth","borderBottomColor","backgroundColor","input","flexDirection","alignItems","xs","position","top","bottom","zIndex","TabsTrigger","icon","disabled","selectedValue","active","handleLayout","event","nativeEvent","activeTextColor","onPrimary","triggerRadius","accessibilityRole","accessibilityState","selected","Boolean","onLayout","onPress","pressed","flex","justifyContent","paddingHorizontal","opacity","textMuted","weight","color","TabsContent","forceMount","display"],"sourceRoot":"../../../src","sources":["components/Tabs.tsx"],"mappings":"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","ignoreList":[]}
@@ -4,23 +4,38 @@ import React from "react";
4
4
  import { View } from "react-native";
5
5
  import { useTheme } from "../theme/index.js";
6
6
  import { Text } from "./Text.js";
7
+ import { renderIcon } from "./types.js";
7
8
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
8
9
  export function Timeline({
9
10
  style,
11
+ children,
10
12
  ...props
11
13
  }) {
12
- const {
13
- spacing
14
- } = useTheme();
14
+ const childrenArray = React.Children.toArray(children).filter(Boolean);
15
+ const count = childrenArray.length;
15
16
  return /*#__PURE__*/_jsx(View, {
16
17
  style: [{
17
- gap: spacing.md
18
+ gap: 0
18
19
  }, style],
19
- ...props
20
+ ...props,
21
+ children: childrenArray.map((child, index) => {
22
+ if (/*#__PURE__*/React.isValidElement(child)) {
23
+ return /*#__PURE__*/React.cloneElement(child, {
24
+ isLast: child.props.isLast ?? index === count - 1,
25
+ isFirst: child.props.isFirst ?? index === 0
26
+ });
27
+ }
28
+ return child;
29
+ })
20
30
  });
21
31
  }
22
32
  export function TimelineItem({
23
33
  active = false,
34
+ isLast = false,
35
+ isFirst = false,
36
+ lineColor,
37
+ dotColor,
38
+ icon,
24
39
  style,
25
40
  children,
26
41
  ...props
@@ -31,6 +46,8 @@ export function TimelineItem({
31
46
  spacing
32
47
  } = useTheme();
33
48
  const indicatorSize = components.timeline.indicatorSize;
49
+ const resolvedDotColor = dotColor ?? (active ? colors.primary : colors.border);
50
+ const resolvedLineColor = lineColor ?? (active ? colors.primary : colors.borderMuted);
34
51
  return /*#__PURE__*/_jsxs(View, {
35
52
  style: [{
36
53
  flexDirection: "row",
@@ -39,26 +56,32 @@ export function TimelineItem({
39
56
  ...props,
40
57
  children: [/*#__PURE__*/_jsxs(View, {
41
58
  style: {
42
- alignItems: "center"
59
+ alignItems: "center",
60
+ width: indicatorSize + 8
43
61
  },
44
62
  children: [/*#__PURE__*/_jsx(View, {
45
63
  style: {
46
64
  width: indicatorSize,
47
65
  height: indicatorSize,
48
66
  borderRadius: indicatorSize / 2,
49
- backgroundColor: active ? colors.primary : colors.border
50
- }
51
- }), /*#__PURE__*/_jsx(View, {
67
+ backgroundColor: resolvedDotColor,
68
+ marginTop: 4,
69
+ alignItems: "center",
70
+ justifyContent: "center"
71
+ },
72
+ children: icon ? renderIcon(icon, colors.onPrimary, 8) : null
73
+ }), !isLast && /*#__PURE__*/_jsx(View, {
52
74
  style: {
53
- width: components.timeline.connectorWidth,
75
+ width: components.timeline.connectorWidth ?? 1.5,
54
76
  flex: 1,
55
- minHeight: components.timeline.connectorMinHeight,
56
- backgroundColor: colors.borderMuted
77
+ backgroundColor: resolvedLineColor,
78
+ marginTop: 4
57
79
  }
58
80
  })]
59
81
  }), /*#__PURE__*/_jsx(View, {
60
82
  style: {
61
83
  flex: 1,
84
+ paddingBottom: isLast ? 0 : spacing.lg,
62
85
  gap: spacing.xs
63
86
  },
64
87
  children: children
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","useTheme","Text","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","Timeline","style","props","spacing","gap","md","TimelineItem","active","children","colors","components","indicatorSize","timeline","flexDirection","alignItems","width","height","borderRadius","backgroundColor","primary","border","connectorWidth","flex","minHeight","connectorMinHeight","borderMuted","xs","TimelineTitle","variant","TimelineDescription","color"],"sourceRoot":"../../../src","sources":["components/Timeline.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACEC,IAAI,QAIC,cAAc;AAErB,SAASC,QAAQ,QAAQ,mBAAU;AACnC,SAASC,IAAI,QAAQ,WAAQ;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAmB9B,OAAO,SAASC,QAAQA,CAAC;EAAEC,KAAK;EAAE,GAAGC;AAAqB,CAAC,EAAE;EAC3D,MAAM;IAAEC;EAAQ,CAAC,GAAGX,QAAQ,CAAC,CAAC;EAC9B,oBAAOG,IAAA,CAACJ,IAAI;IAACU,KAAK,EAAE,CAAC;MAAEG,GAAG,EAAED,OAAO,CAACE;IAAG,CAAC,EAAEJ,KAAK,CAAE;IAAA,GAAKC;EAAK,CAAG,CAAC;AACjE;AAEA,OAAO,SAASI,YAAYA,CAAC;EAC3BC,MAAM,GAAG,KAAK;EACdN,KAAK;EACLO,QAAQ;EACR,GAAGN;AACc,CAAC,EAAE;EACpB,MAAM;IAAEO,MAAM;IAAEC,UAAU;IAAEP;EAAQ,CAAC,GAAGX,QAAQ,CAAC,CAAC;EAClD,MAAMmB,aAAa,GAAGD,UAAU,CAACE,QAAQ,CAACD,aAAa;EAEvD,oBACEd,KAAA,CAACN,IAAI;IAACU,KAAK,EAAE,CAAC;MAAEY,aAAa,EAAE,KAAK;MAAET,GAAG,EAAED,OAAO,CAACE;IAAG,CAAC,EAAEJ,KAAK,CAAE;IAAA,GAAKC,KAAK;IAAAM,QAAA,gBACxEX,KAAA,CAACN,IAAI;MAACU,KAAK,EAAE;QAAEa,UAAU,EAAE;MAAS,CAAE;MAAAN,QAAA,gBACpCb,IAAA,CAACJ,IAAI;QACHU,KAAK,EAAE;UACLc,KAAK,EAAEJ,aAAa;UACpBK,MAAM,EAAEL,aAAa;UACrBM,YAAY,EAAEN,aAAa,GAAG,CAAC;UAC/BO,eAAe,EAAEX,MAAM,GAAGE,MAAM,CAACU,OAAO,GAAGV,MAAM,CAACW;QACpD;MAAE,CACH,CAAC,eACFzB,IAAA,CAACJ,IAAI;QACHU,KAAK,EAAE;UACLc,KAAK,EAAEL,UAAU,CAACE,QAAQ,CAACS,cAAc;UACzCC,IAAI,EAAE,CAAC;UACPC,SAAS,EAAEb,UAAU,CAACE,QAAQ,CAACY,kBAAkB;UACjDN,eAAe,EAAET,MAAM,CAACgB;QAC1B;MAAE,CACH,CAAC;IAAA,CACE,CAAC,eACP9B,IAAA,CAACJ,IAAI;MAACU,KAAK,EAAE;QAAEqB,IAAI,EAAE,CAAC;QAAElB,GAAG,EAAED,OAAO,CAACuB;MAAG,CAAE;MAAAlB,QAAA,EAAEA;IAAQ,CAAO,CAAC;EAAA,CACxD,CAAC;AAEX;AAEA,OAAO,SAASmB,aAAaA,CAAC;EAAEnB;AAA6B,CAAC,EAAE;EAC9D,OAAO,OAAOA,QAAQ,KAAK,QAAQ,gBACjCb,IAAA,CAACF,IAAI;IAACmC,OAAO,EAAC,OAAO;IAAApB,QAAA,EAAEA;EAAQ,CAAO,CAAC,gBAEvCb,IAAA,CAAAI,SAAA;IAAAS,QAAA,EAAGA;EAAQ,CAAG,CACf;AACH;AAEA,OAAO,SAASqB,mBAAmBA,CAAC;EAAErB;AAAmC,CAAC,EAAE;EAC1E,OAAO,OAAOA,QAAQ,KAAK,QAAQ,gBACjCb,IAAA,CAACF,IAAI;IAACmC,OAAO,EAAC,WAAW;IAACE,KAAK,EAAC,WAAW;IAAAtB,QAAA,EACxCA;EAAQ,CACL,CAAC,gBAEPb,IAAA,CAAAI,SAAA;IAAAS,QAAA,EAAGA;EAAQ,CAAG,CACf;AACH","ignoreList":[]}
1
+ {"version":3,"names":["React","View","useTheme","Text","renderIcon","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","Timeline","style","children","props","childrenArray","Children","toArray","filter","Boolean","count","length","gap","map","child","index","isValidElement","cloneElement","isLast","isFirst","TimelineItem","active","lineColor","dotColor","icon","colors","components","spacing","indicatorSize","timeline","resolvedDotColor","primary","border","resolvedLineColor","borderMuted","flexDirection","md","alignItems","width","height","borderRadius","backgroundColor","marginTop","justifyContent","onPrimary","connectorWidth","flex","paddingBottom","lg","xs","TimelineTitle","variant","TimelineDescription","color"],"sourceRoot":"../../../src","sources":["components/Timeline.tsx"],"mappings":"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","ignoreList":[]}