@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
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.triggerHaptic = triggerHaptic;
7
+ /**
8
+ * Safe haptic feedback utility for @masumdev/rn-ui.
9
+ * Attempts to invoke expo-haptics if available in runtime, gracefully falling back to a no-op if absent.
10
+ */
11
+ function triggerHaptic(type = "light") {
12
+ try {
13
+ const Haptic = require("expo-haptics");
14
+ if (!Haptic) return;
15
+ switch (type) {
16
+ case "light":
17
+ Haptic.impactAsync?.(Haptic.ImpactFeedbackStyle?.Light);
18
+ break;
19
+ case "medium":
20
+ Haptic.impactAsync?.(Haptic.ImpactFeedbackStyle?.Medium);
21
+ break;
22
+ case "heavy":
23
+ Haptic.impactAsync?.(Haptic.ImpactFeedbackStyle?.Heavy);
24
+ break;
25
+ case "selection":
26
+ Haptic.selectionAsync?.();
27
+ break;
28
+ case "success":
29
+ Haptic.notificationAsync?.(Haptic.NotificationFeedbackType?.Success);
30
+ break;
31
+ case "warning":
32
+ Haptic.notificationAsync?.(Haptic.NotificationFeedbackType?.Warning);
33
+ break;
34
+ case "error":
35
+ Haptic.notificationAsync?.(Haptic.NotificationFeedbackType?.Error);
36
+ break;
37
+ }
38
+ } catch (_err) {
39
+ // Graceful no-op when expo-haptics is absent in pure React Native or mock environments
40
+ }
41
+ }
42
+ //# sourceMappingURL=haptics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["triggerHaptic","type","Haptic","require","impactAsync","ImpactFeedbackStyle","Light","Medium","Heavy","selectionAsync","notificationAsync","NotificationFeedbackType","Success","Warning","Error","_err"],"sourceRoot":"../../../src","sources":["utils/haptics.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACO,SAASA,aAAaA,CAC3BC,IAAkF,GAAG,OAAO,EAC5F;EACA,IAAI;IACF,MAAMC,MAAM,GAAGC,OAAO,CAAC,cAAc,CAAC;IACtC,IAAI,CAACD,MAAM,EAAE;IAEb,QAAQD,IAAI;MACV,KAAK,OAAO;QACVC,MAAM,CAACE,WAAW,GAAGF,MAAM,CAACG,mBAAmB,EAAEC,KAAK,CAAC;QACvD;MACF,KAAK,QAAQ;QACXJ,MAAM,CAACE,WAAW,GAAGF,MAAM,CAACG,mBAAmB,EAAEE,MAAM,CAAC;QACxD;MACF,KAAK,OAAO;QACVL,MAAM,CAACE,WAAW,GAAGF,MAAM,CAACG,mBAAmB,EAAEG,KAAK,CAAC;QACvD;MACF,KAAK,WAAW;QACdN,MAAM,CAACO,cAAc,GAAG,CAAC;QACzB;MACF,KAAK,SAAS;QACZP,MAAM,CAACQ,iBAAiB,GAAGR,MAAM,CAACS,wBAAwB,EAAEC,OAAO,CAAC;QACpE;MACF,KAAK,SAAS;QACZV,MAAM,CAACQ,iBAAiB,GAAGR,MAAM,CAACS,wBAAwB,EAAEE,OAAO,CAAC;QACpE;MACF,KAAK,OAAO;QACVX,MAAM,CAACQ,iBAAiB,GAAGR,MAAM,CAACS,wBAAwB,EAAEG,KAAK,CAAC;QAClE;IACJ;EACF,CAAC,CAAC,OAAOC,IAAI,EAAE;IACb;EAAA;AAEJ","ignoreList":[]}
@@ -3,6 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "triggerHaptic", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _haptics.triggerHaptic;
10
+ }
11
+ });
6
12
  Object.defineProperty(exports, "withAlpha", {
7
13
  enumerable: true,
8
14
  get: function () {
@@ -10,4 +16,5 @@ Object.defineProperty(exports, "withAlpha", {
10
16
  }
11
17
  });
12
18
  var _color = require("./color.js");
19
+ var _haptics = require("./haptics.js");
13
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_color","require"],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":";;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA","ignoreList":[]}
1
+ {"version":3,"names":["_color","require","_haptics"],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA","ignoreList":[]}
@@ -4,6 +4,7 @@ import React, { useCallback, useEffect, useMemo, useState } from "react";
4
4
  import { Pressable, Text as RNText, View } from "react-native";
5
5
  import Animated, { runOnJS, useAnimatedStyle, useSharedValue, 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, jsxs as _jsxs } from "react/jsx-runtime";
9
10
  function renderIndicator(indicator, expanded, color, size) {
@@ -96,12 +97,15 @@ function DefaultAccordionIndicator({
96
97
  }
97
98
  export function Accordion({
98
99
  items,
100
+ variant = "outlined",
99
101
  allowMultiple = false,
100
102
  defaultOpenIds = [],
101
103
  openIds,
102
104
  onOpenChange,
103
105
  disabled = false,
104
106
  animated = true,
107
+ glass = false,
108
+ haptic = true,
105
109
  animationDuration = 180,
106
110
  animationComponents,
107
111
  indicator,
@@ -117,7 +121,8 @@ export function Accordion({
117
121
  components,
118
122
  radii,
119
123
  spacing,
120
- typography
124
+ typography,
125
+ isDark
121
126
  } = useTheme();
122
127
  const [internalOpenIds, setInternalOpenIds] = useState(defaultOpenIds);
123
128
  const activeOpenIds = openIds ?? internalOpenIds;
@@ -130,25 +135,35 @@ export function Accordion({
130
135
  }, [onOpenChange, openIds]);
131
136
  const AnimatedContent = animationComponents?.Content ?? DefaultAccordionContent;
132
137
  const AnimatedIndicator = animationComponents?.Indicator ?? DefaultAccordionIndicator;
138
+ const isGlass = glass || variant === "glass";
139
+ const isFlat = variant === "flat";
140
+ const isGhost = variant === "ghost";
141
+ const glassBg = isDark ? "rgba(15, 27, 45, 0.60)" : "rgba(255, 255, 255, 0.75)";
133
142
  const toggleItem = useCallback(item => {
134
143
  if (disabled || item.disabled) return;
144
+ if (haptic) triggerHaptic("selection");
135
145
  const expanded = openSet.has(item.id);
136
146
  const nextOpenIds = expanded ? activeOpenIds.filter(id => id !== item.id) : allowMultiple ? [...activeOpenIds, item.id] : [item.id];
137
147
  setNextOpenIds(nextOpenIds);
138
- }, [activeOpenIds, allowMultiple, disabled, openSet, setNextOpenIds]);
148
+ }, [activeOpenIds, allowMultiple, disabled, haptic, openSet, setNextOpenIds]);
139
149
  return /*#__PURE__*/_jsx(View, {
140
150
  style: [{
141
- gap: spacing.sm
151
+ gap: isGhost ? 0 : spacing.sm
142
152
  }, style],
143
- children: items.map(item => {
153
+ children: items.map((item, index) => {
144
154
  const expanded = openSet.has(item.id);
145
155
  const itemDisabled = disabled || item.disabled;
156
+ const itemBg = isGlass ? glassBg : isGhost ? colors.transparent : isFlat ? isDark ? "rgba(15, 28, 38, 0.6)" : colors.backgroundMuted : colors.surface;
157
+ const itemBorderColor = isGlass ? isDark ? "rgba(248, 250, 252, 0.20)" : "rgba(15, 23, 42, 0.14)" : isGhost ? colors.border : isFlat ? "transparent" : expanded ? colors.primary : colors.border;
158
+ const borderWidth = isGhost ? 0 : isFlat ? 0 : components.borderWidth.strong;
159
+ const borderBottomWidth = isGhost && index < items.length - 1 ? 1 : borderWidth;
146
160
  return /*#__PURE__*/_jsxs(View, {
147
161
  style: [{
148
- backgroundColor: colors.surface,
149
- borderRadius: radii.xl,
150
- borderWidth: components.borderWidth.strong,
151
- borderColor: expanded ? colors.primary : colors.border,
162
+ backgroundColor: itemBg,
163
+ borderRadius: isGhost ? 0 : radii.xl,
164
+ borderWidth,
165
+ borderBottomWidth,
166
+ borderColor: itemBorderColor,
152
167
  overflow: "hidden",
153
168
  opacity: itemDisabled ? 0.58 : 1
154
169
  }, itemStyle],
@@ -167,7 +182,7 @@ export function Accordion({
167
182
  flexDirection: "row",
168
183
  alignItems: "center",
169
184
  gap: spacing.md,
170
- backgroundColor: pressed && !itemDisabled ? colors.backgroundMuted : colors.surface
185
+ backgroundColor: pressed && !itemDisabled ? colors.backgroundMuted : colors.transparent
171
186
  }, headerStyle],
172
187
  children: [renderIcon(item.icon, expanded ? colors.primary : colors.textMuted, 20), /*#__PURE__*/_jsxs(View, {
173
188
  style: {
@@ -202,10 +217,10 @@ export function Accordion({
202
217
  expanded: expanded,
203
218
  duration: animationDuration,
204
219
  style: [{
205
- borderTopWidth: 1,
220
+ borderTopWidth: isGhost ? 0 : 1,
206
221
  borderTopColor: colors.border,
207
222
  padding: spacing.lg,
208
- backgroundColor: colors.surface
223
+ backgroundColor: colors.transparent
209
224
  }, contentStyle],
210
225
  children: typeof item.content === "string" ? /*#__PURE__*/_jsx(RNText, {
211
226
  style: [typography.body, {
@@ -215,10 +230,10 @@ export function Accordion({
215
230
  }) : item.content
216
231
  }) : expanded && /*#__PURE__*/_jsx(View, {
217
232
  style: [{
218
- borderTopWidth: 1,
233
+ borderTopWidth: isGhost ? 0 : 1,
219
234
  borderTopColor: colors.border,
220
235
  padding: spacing.lg,
221
- backgroundColor: colors.surface
236
+ backgroundColor: colors.transparent
222
237
  }, contentStyle],
223
238
  children: typeof item.content === "string" ? /*#__PURE__*/_jsx(RNText, {
224
239
  style: [typography.body, {
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useEffect","useMemo","useState","Pressable","Text","RNText","View","Animated","runOnJS","useAnimatedStyle","useSharedValue","withTiming","useTheme","renderIcon","jsx","_jsx","jsxs","_jsxs","renderIndicator","indicator","expanded","color","size","style","fontSize","lineHeight","fontWeight","children","DefaultAccordionContent","duration","progress","contentHeight","setContentHeight","shouldRender","setShouldRender","value","finished","animatedStyle","height","opacity","overflow","position","left","right","onLayout","event","nativeEvent","layout","DefaultAccordionIndicator","transform","rotate","Accordion","items","allowMultiple","defaultOpenIds","openIds","onOpenChange","disabled","animated","animationDuration","animationComponents","itemStyle","headerStyle","titleStyle","subtitleStyle","contentStyle","colors","components","radii","spacing","typography","internalOpenIds","setInternalOpenIds","activeOpenIds","openSet","Set","setNextOpenIds","nextOpenIds","AnimatedContent","Content","AnimatedIndicator","Indicator","toggleItem","item","has","id","filter","gap","sm","map","itemDisabled","backgroundColor","surface","borderRadius","xl","borderWidth","strong","borderColor","primary","border","accessibilityRole","accessibilityState","onPress","pressed","padding","lg","flexDirection","alignItems","md","backgroundMuted","icon","textMuted","flex","xxs","title","subtitle","text","bodySmall","width","justifyContent","borderTopWidth","borderTopColor","content","body"],"sourceRoot":"../../../src","sources":["components/Accordion.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useEffect","useMemo","useState","Pressable","Text","RNText","View","Animated","runOnJS","useAnimatedStyle","useSharedValue","withTiming","useTheme","triggerHaptic","renderIcon","jsx","_jsx","jsxs","_jsxs","renderIndicator","indicator","expanded","color","size","style","fontSize","lineHeight","fontWeight","children","DefaultAccordionContent","duration","progress","contentHeight","setContentHeight","shouldRender","setShouldRender","value","finished","animatedStyle","height","opacity","overflow","position","left","right","onLayout","event","nativeEvent","layout","DefaultAccordionIndicator","transform","rotate","Accordion","items","variant","allowMultiple","defaultOpenIds","openIds","onOpenChange","disabled","animated","glass","haptic","animationDuration","animationComponents","itemStyle","headerStyle","titleStyle","subtitleStyle","contentStyle","colors","components","radii","spacing","typography","isDark","internalOpenIds","setInternalOpenIds","activeOpenIds","openSet","Set","setNextOpenIds","nextOpenIds","AnimatedContent","Content","AnimatedIndicator","Indicator","isGlass","isFlat","isGhost","glassBg","toggleItem","item","has","id","filter","gap","sm","map","index","itemDisabled","itemBg","transparent","backgroundMuted","surface","itemBorderColor","border","primary","borderWidth","strong","borderBottomWidth","length","backgroundColor","borderRadius","xl","borderColor","accessibilityRole","accessibilityState","onPress","pressed","padding","lg","flexDirection","alignItems","md","icon","textMuted","flex","xxs","title","subtitle","text","bodySmall","width","justifyContent","borderTopWidth","borderTopColor","content","body"],"sourceRoot":"../../../src","sources":["components/Accordion.tsx"],"mappings":"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","ignoreList":[]}
@@ -4,55 +4,118 @@ import React from "react";
4
4
  import { Pressable, View } from "react-native";
5
5
  import Animated, { runOnJS, useAnimatedStyle, useSharedValue, withTiming } from "react-native-reanimated";
6
6
  import { useTheme } from "../theme/index.js";
7
- import { renderIcon } from "./types.js";
7
+ import { withAlpha } from "../utils/index.js";
8
8
  import { Text } from "./Text.js";
9
+ import { renderIcon } from "./types.js";
9
10
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
- function getToneColors(tone, colors) {
11
- if (tone === "primary") return {
12
- base: colors.primary,
13
- soft: colors.primarySoft,
14
- on: colors.onPrimary
15
- };
16
- if (tone === "success") return {
17
- base: colors.success,
18
- soft: colors.successSoft,
19
- on: colors.onSuccess
20
- };
21
- if (tone === "warning") return {
22
- base: colors.warning,
23
- soft: colors.warningSoft,
24
- on: colors.onWarning
25
- };
26
- if (tone === "danger") return {
27
- base: colors.danger,
28
- soft: colors.dangerSoft,
29
- on: colors.onDanger
30
- };
31
- if (tone === "info") return {
32
- base: colors.info,
33
- soft: colors.infoSoft,
34
- on: colors.onInfo
35
- };
36
- return {
37
- base: colors.secondary,
38
- soft: colors.secondarySoft,
39
- on: colors.onSecondary
40
- };
11
+ // Built-in default icons when icon prop is omitted
12
+ function DefaultInfoIcon({
13
+ color
14
+ }) {
15
+ return /*#__PURE__*/_jsx(View, {
16
+ style: {
17
+ width: 18,
18
+ height: 18,
19
+ borderRadius: 9,
20
+ borderWidth: 1.8,
21
+ borderColor: color,
22
+ alignItems: "center",
23
+ justifyContent: "center"
24
+ },
25
+ children: /*#__PURE__*/_jsx(Text, {
26
+ style: {
27
+ color,
28
+ fontSize: 11,
29
+ fontWeight: "700",
30
+ lineHeight: 12
31
+ },
32
+ children: "i"
33
+ })
34
+ });
41
35
  }
42
- function renderTextContent(content, fallbackStyle) {
43
- if (typeof content === "string") {
44
- return /*#__PURE__*/_jsx(Text, {
45
- style: fallbackStyle,
46
- children: content
47
- });
48
- }
49
- return content;
36
+ function DefaultSuccessIcon({
37
+ color
38
+ }) {
39
+ return /*#__PURE__*/_jsx(View, {
40
+ style: {
41
+ width: 18,
42
+ height: 18,
43
+ borderRadius: 9,
44
+ backgroundColor: color,
45
+ alignItems: "center",
46
+ justifyContent: "center"
47
+ },
48
+ children: /*#__PURE__*/_jsx(View, {
49
+ style: {
50
+ width: 8,
51
+ height: 4,
52
+ borderLeftWidth: 1.8,
53
+ borderBottomWidth: 1.8,
54
+ borderColor: "#FFFFFF",
55
+ transform: [{
56
+ rotate: "-45deg"
57
+ }],
58
+ marginTop: -1
59
+ }
60
+ })
61
+ });
62
+ }
63
+ function DefaultWarningIcon({
64
+ color
65
+ }) {
66
+ return /*#__PURE__*/_jsx(Text, {
67
+ style: {
68
+ color,
69
+ fontSize: 16,
70
+ fontWeight: "700",
71
+ lineHeight: 18
72
+ },
73
+ children: "\u26A0\uFE0F"
74
+ });
75
+ }
76
+ function DefaultDangerIcon({
77
+ color
78
+ }) {
79
+ return /*#__PURE__*/_jsx(View, {
80
+ style: {
81
+ width: 18,
82
+ height: 18,
83
+ borderRadius: 9,
84
+ backgroundColor: color,
85
+ alignItems: "center",
86
+ justifyContent: "center"
87
+ },
88
+ children: /*#__PURE__*/_jsx(Text, {
89
+ style: {
90
+ color: "#FFFFFF",
91
+ fontSize: 11,
92
+ fontWeight: "700",
93
+ lineHeight: 12
94
+ },
95
+ children: "\u2715"
96
+ })
97
+ });
98
+ }
99
+ function renderDefaultIcon(tone, color) {
100
+ if (tone === "success") return /*#__PURE__*/_jsx(DefaultSuccessIcon, {
101
+ color: color
102
+ });
103
+ if (tone === "warning") return /*#__PURE__*/_jsx(DefaultWarningIcon, {
104
+ color: color
105
+ });
106
+ if (tone === "danger") return /*#__PURE__*/_jsx(DefaultDangerIcon, {
107
+ color: color
108
+ });
109
+ return /*#__PURE__*/_jsx(DefaultInfoIcon, {
110
+ color: color
111
+ });
50
112
  }
51
113
  export function Alert({
52
114
  title,
53
115
  children,
54
116
  tone = "info",
55
117
  variant = "soft",
118
+ glass = false,
56
119
  icon,
57
120
  action,
58
121
  dismissible = false,
@@ -69,16 +132,86 @@ export function Alert({
69
132
  colors,
70
133
  components,
71
134
  radii,
72
- spacing
135
+ spacing,
136
+ isDark
73
137
  } = useTheme();
74
138
  const [visible, setVisible] = React.useState(true);
75
139
  const progress = useSharedValue(1);
76
- const toneColors = getToneColors(tone, colors);
77
- const isSolid = variant === "solid";
78
- const backgroundColor = variant === "solid" ? toneColors.base : variant === "soft" ? toneColors.soft : colors.surface;
79
- const foregroundColor = isSolid ? toneColors.on : toneColors.base;
80
- const bodyColor = isSolid ? toneColors.on : colors.textMuted;
81
- const borderColor = variant === "outline" ? toneColors.base : toneColors.base;
140
+
141
+ // Deep rich solid colors for dark mode & light mode
142
+ const solidColors = {
143
+ primary: {
144
+ bg: isDark ? "#3730A3" : colors.primary,
145
+ text: "#FFFFFF"
146
+ },
147
+ success: {
148
+ bg: isDark ? "#065F46" : "#059669",
149
+ text: "#FFFFFF"
150
+ },
151
+ warning: {
152
+ bg: isDark ? "#92400E" : "#D97706",
153
+ text: "#FFFFFF"
154
+ },
155
+ danger: {
156
+ bg: isDark ? "#991B1B" : "#DC2626",
157
+ text: "#FFFFFF"
158
+ },
159
+ info: {
160
+ bg: isDark ? "#075985" : "#0284C7",
161
+ text: "#FFFFFF"
162
+ },
163
+ secondary: {
164
+ bg: isDark ? "#334155" : colors.secondary,
165
+ text: "#FFFFFF"
166
+ }
167
+ };
168
+ const toneBaseColor = {
169
+ primary: colors.primary,
170
+ success: colors.success,
171
+ warning: colors.warning,
172
+ danger: colors.danger,
173
+ info: colors.info,
174
+ secondary: colors.secondary
175
+ };
176
+ const currentToneColor = toneBaseColor[tone];
177
+ const effectiveVariant = glass ? "glass" : variant;
178
+ const glassBg = isDark ? "rgba(15, 27, 45, 0.70)" : "rgba(255, 255, 255, 0.85)";
179
+ let backgroundColor = colors.surface;
180
+ let borderColor = colors.border;
181
+ let titleTextColor = colors.text;
182
+ let bodyTextColor = colors.textMuted;
183
+ let iconColor = currentToneColor;
184
+ if (effectiveVariant === "solid") {
185
+ backgroundColor = solidColors[tone].bg;
186
+ borderColor = solidColors[tone].bg;
187
+ titleTextColor = solidColors[tone].text;
188
+ bodyTextColor = withAlpha(solidColors[tone].text, 0.88);
189
+ iconColor = solidColors[tone].text;
190
+ } else if (effectiveVariant === "soft") {
191
+ backgroundColor = isDark ? withAlpha(currentToneColor, 0.12) : withAlpha(currentToneColor, 0.08);
192
+ borderColor = isDark ? withAlpha(currentToneColor, 0.28) : withAlpha(currentToneColor, 0.22);
193
+ titleTextColor = isDark ? colors.text : colors.text;
194
+ bodyTextColor = colors.textMuted;
195
+ iconColor = currentToneColor;
196
+ } else if (effectiveVariant === "accent") {
197
+ backgroundColor = colors.surface;
198
+ borderColor = colors.border;
199
+ titleTextColor = colors.text;
200
+ bodyTextColor = colors.textMuted;
201
+ iconColor = currentToneColor;
202
+ } else if (effectiveVariant === "glass") {
203
+ backgroundColor = glassBg;
204
+ borderColor = withAlpha(currentToneColor, 0.35);
205
+ titleTextColor = colors.text;
206
+ bodyTextColor = colors.textMuted;
207
+ iconColor = currentToneColor;
208
+ } else if (effectiveVariant === "outline") {
209
+ backgroundColor = colors.transparent;
210
+ borderColor = currentToneColor;
211
+ titleTextColor = colors.text;
212
+ bodyTextColor = colors.textMuted;
213
+ iconColor = currentToneColor;
214
+ }
82
215
  const animatedStyle = useAnimatedStyle(() => ({
83
216
  opacity: progress.value,
84
217
  transform: [{
@@ -86,7 +219,7 @@ export function Alert({
86
219
  }]
87
220
  }));
88
221
  const handleClose = () => {
89
- if (dismissible && animated) {
222
+ if ((dismissible || onClose) && animated) {
90
223
  progress.value = withTiming(0, {
91
224
  duration: animationDuration
92
225
  }, finished => {
@@ -94,12 +227,13 @@ export function Alert({
94
227
  runOnJS(setVisible)(false);
95
228
  }
96
229
  });
97
- } else if (dismissible) {
230
+ } else {
98
231
  setVisible(false);
99
232
  }
100
233
  onClose?.();
101
234
  };
102
- const container = /*#__PURE__*/_jsxs(View, {
235
+ if (!visible) return null;
236
+ const content = /*#__PURE__*/_jsxs(View, {
103
237
  accessibilityRole: "alert",
104
238
  style: [{
105
239
  backgroundColor,
@@ -108,18 +242,39 @@ export function Alert({
108
242
  borderRadius: radii.xl,
109
243
  padding: spacing.lg,
110
244
  flexDirection: "row",
111
- gap: spacing.md
245
+ alignItems: "flex-start",
246
+ gap: spacing.md,
247
+ position: "relative",
248
+ overflow: "hidden"
249
+ }, effectiveVariant === "accent" && {
250
+ borderLeftWidth: 4,
251
+ borderLeftColor: currentToneColor
112
252
  }, style],
113
- children: [renderIcon(icon, foregroundColor, 20), /*#__PURE__*/_jsxs(View, {
253
+ children: [/*#__PURE__*/_jsx(View, {
254
+ style: {
255
+ marginTop: 2
256
+ },
257
+ children: icon ? renderIcon(icon, iconColor, 20) : renderDefaultIcon(tone, iconColor)
258
+ }), /*#__PURE__*/_jsxs(View, {
114
259
  style: [{
115
260
  flex: 1,
116
- gap: spacing.xs
261
+ gap: 4
117
262
  }, contentStyle],
118
- children: [title ? renderTextContent(title, [{
119
- color: isSolid ? toneColors.on : colors.text
120
- }, titleStyle]) : null, children ? renderTextContent(children, [{
121
- color: bodyColor
122
- }, textStyle]) : null, action ? /*#__PURE__*/_jsxs(Pressable, {
263
+ children: [title ? typeof title === "string" ? /*#__PURE__*/_jsx(Text, {
264
+ variant: "label",
265
+ weight: "600",
266
+ style: [{
267
+ color: titleTextColor
268
+ }, titleStyle],
269
+ children: title
270
+ }) : title : null, children ? typeof children === "string" ? /*#__PURE__*/_jsx(Text, {
271
+ variant: "bodySmall",
272
+ style: [{
273
+ color: bodyTextColor,
274
+ lineHeight: 20
275
+ }, textStyle],
276
+ children: children
277
+ }) : children : null, action ? /*#__PURE__*/_jsxs(Pressable, {
123
278
  accessibilityRole: "button",
124
279
  onPress: action.onPress,
125
280
  style: ({
@@ -132,10 +287,11 @@ export function Alert({
132
287
  marginTop: spacing.xs,
133
288
  opacity: pressed ? 0.72 : 1
134
289
  }),
135
- children: [renderIcon(action.icon, foregroundColor, 14), /*#__PURE__*/_jsx(Text, {
290
+ children: [renderIcon(action.icon, iconColor, 14), /*#__PURE__*/_jsx(Text, {
136
291
  variant: "labelSmall",
292
+ weight: "600",
137
293
  style: {
138
- color: foregroundColor
294
+ color: iconColor
139
295
  },
140
296
  children: action.label
141
297
  })]
@@ -144,34 +300,34 @@ export function Alert({
144
300
  accessibilityRole: "button",
145
301
  accessibilityLabel: "Close alert",
146
302
  onPress: handleClose,
303
+ hitSlop: 8,
147
304
  style: ({
148
305
  pressed
149
306
  }) => ({
150
- width: 28,
151
- height: 28,
152
- borderRadius: 14,
307
+ width: 24,
308
+ height: 24,
309
+ borderRadius: 12,
153
310
  alignItems: "center",
154
311
  justifyContent: "center",
155
- opacity: pressed ? 0.72 : 1
312
+ backgroundColor: pressed ? withAlpha(iconColor, 0.15) : "transparent",
313
+ opacity: pressed ? 0.8 : 0.7
156
314
  }),
157
- children: closeIcon ? renderIcon(closeIcon, foregroundColor, 16) : /*#__PURE__*/_jsx(Text, {
158
- variant: "label",
315
+ children: closeIcon ? renderIcon(closeIcon, iconColor, 16) : /*#__PURE__*/_jsx(Text, {
159
316
  style: {
160
- color: foregroundColor
317
+ color: iconColor,
318
+ fontSize: 14,
319
+ fontWeight: "600"
161
320
  },
162
- children: "x"
321
+ children: "\u2715"
163
322
  })
164
323
  }) : null]
165
324
  });
166
- if (!visible) {
167
- return null;
168
- }
169
325
  if (animated) {
170
326
  return /*#__PURE__*/_jsx(Animated.View, {
171
327
  style: animatedStyle,
172
- children: container
328
+ children: content
173
329
  });
174
330
  }
175
- return container;
331
+ return content;
176
332
  }
177
333
  //# sourceMappingURL=Alert.js.map