@codeleap/mobile 4.0.2 → 4.2.1

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 (510) hide show
  1. package/dist/Registry.d.ts +7 -0
  2. package/dist/Registry.js +67 -0
  3. package/dist/Registry.js.map +1 -0
  4. package/dist/components/ActionIcon/index.d.ts +13 -0
  5. package/dist/components/ActionIcon/index.js +79 -0
  6. package/dist/components/ActionIcon/index.js.map +1 -0
  7. package/dist/components/ActionIcon/styles.d.ts +5 -0
  8. package/dist/components/ActionIcon/styles.js +3 -0
  9. package/dist/components/ActionIcon/styles.js.map +1 -0
  10. package/dist/components/ActionIcon/types.d.ts +11 -0
  11. package/dist/components/ActionIcon/types.js +3 -0
  12. package/dist/components/ActionIcon/types.js.map +1 -0
  13. package/dist/components/ActivityIndicator/index.d.ts +15 -0
  14. package/dist/components/ActivityIndicator/index.js +66 -0
  15. package/dist/components/ActivityIndicator/index.js.map +1 -0
  16. package/dist/components/ActivityIndicator/styles.d.ts +1 -0
  17. package/dist/components/ActivityIndicator/styles.js +3 -0
  18. package/dist/components/ActivityIndicator/styles.js.map +1 -0
  19. package/dist/components/ActivityIndicator/types.d.ts +9 -0
  20. package/dist/components/ActivityIndicator/types.js +3 -0
  21. package/dist/components/ActivityIndicator/types.js.map +1 -0
  22. package/dist/components/Autocomplete/index.d.ts +13 -0
  23. package/dist/components/Autocomplete/index.js +192 -0
  24. package/dist/components/Autocomplete/index.js.map +1 -0
  25. package/dist/components/Autocomplete/styles.d.ts +8 -0
  26. package/dist/components/Autocomplete/styles.js +3 -0
  27. package/dist/components/Autocomplete/styles.js.map +1 -0
  28. package/dist/components/Autocomplete/types.d.ts +58 -0
  29. package/dist/components/Autocomplete/types.js +3 -0
  30. package/dist/components/Autocomplete/types.js.map +1 -0
  31. package/dist/components/Avatar/index.d.ts +13 -0
  32. package/dist/components/Avatar/index.js +112 -0
  33. package/dist/components/Avatar/index.js.map +1 -0
  34. package/dist/components/Avatar/styles.d.ts +2 -0
  35. package/dist/components/Avatar/styles.js +3 -0
  36. package/dist/components/Avatar/styles.js.map +1 -0
  37. package/dist/components/Avatar/types.d.ts +19 -0
  38. package/dist/components/Avatar/types.js +3 -0
  39. package/dist/components/Avatar/types.js.map +1 -0
  40. package/dist/components/AvatarGroup/index.d.ts +13 -0
  41. package/dist/components/AvatarGroup/index.js +79 -0
  42. package/dist/components/AvatarGroup/index.js.map +1 -0
  43. package/dist/components/AvatarGroup/styles.d.ts +3 -0
  44. package/dist/components/AvatarGroup/styles.js +3 -0
  45. package/dist/components/AvatarGroup/styles.js.map +1 -0
  46. package/dist/components/AvatarGroup/types.d.ts +9 -0
  47. package/dist/components/AvatarGroup/types.js +3 -0
  48. package/dist/components/AvatarGroup/types.js.map +1 -0
  49. package/dist/components/Backdrop/index.d.ts +13 -0
  50. package/dist/components/Backdrop/index.js +82 -0
  51. package/dist/components/Backdrop/index.js.map +1 -0
  52. package/dist/components/Backdrop/styles.d.ts +1 -0
  53. package/dist/components/Backdrop/styles.js +3 -0
  54. package/dist/components/Backdrop/styles.js.map +1 -0
  55. package/dist/components/Backdrop/types.d.ts +11 -0
  56. package/dist/components/Backdrop/types.js +3 -0
  57. package/dist/components/Backdrop/types.js.map +1 -0
  58. package/dist/components/Badge/index.d.ts +13 -0
  59. package/dist/components/Badge/index.js +109 -0
  60. package/dist/components/Badge/index.js.map +1 -0
  61. package/dist/components/Badge/styles.d.ts +4 -0
  62. package/dist/components/Badge/styles.js +3 -0
  63. package/dist/components/Badge/styles.js.map +1 -0
  64. package/dist/components/Badge/types.d.ts +27 -0
  65. package/dist/components/Badge/types.js +3 -0
  66. package/dist/components/Badge/types.js.map +1 -0
  67. package/dist/components/Button/index.d.ts +5 -0
  68. package/dist/components/Button/index.js +123 -0
  69. package/dist/components/Button/index.js.map +1 -0
  70. package/dist/components/Button/styles.d.ts +12 -0
  71. package/dist/components/Button/styles.js +3 -0
  72. package/dist/components/Button/styles.js.map +1 -0
  73. package/dist/components/Button/types.d.ts +16 -0
  74. package/dist/components/Button/types.js +3 -0
  75. package/dist/components/Button/types.js.map +1 -0
  76. package/dist/components/Calendar/index.d.ts +19 -0
  77. package/dist/components/Calendar/index.js +82 -0
  78. package/dist/components/Calendar/index.js.map +1 -0
  79. package/dist/components/Calendar/types.d.ts +95 -0
  80. package/dist/components/Calendar/types.js +3 -0
  81. package/dist/components/Calendar/types.js.map +1 -0
  82. package/dist/components/Checkbox/index.d.ts +13 -0
  83. package/dist/components/Checkbox/index.js +120 -0
  84. package/dist/components/Checkbox/index.js.map +1 -0
  85. package/dist/components/Checkbox/styles.d.ts +7 -0
  86. package/dist/components/Checkbox/styles.js +3 -0
  87. package/dist/components/Checkbox/styles.js.map +1 -0
  88. package/dist/components/Checkbox/types.d.ts +10 -0
  89. package/dist/components/Checkbox/types.js +3 -0
  90. package/dist/components/Checkbox/types.js.map +1 -0
  91. package/dist/components/DatePickerModal/index.d.ts +13 -0
  92. package/dist/components/DatePickerModal/index.js +156 -0
  93. package/dist/components/DatePickerModal/index.js.map +1 -0
  94. package/dist/components/DatePickerModal/styles.d.ts +5 -0
  95. package/dist/components/DatePickerModal/styles.js +3 -0
  96. package/dist/components/DatePickerModal/styles.js.map +1 -0
  97. package/dist/components/DatePickerModal/types.d.ts +42 -0
  98. package/dist/components/DatePickerModal/types.js +3 -0
  99. package/dist/components/DatePickerModal/types.js.map +1 -0
  100. package/dist/components/EmptyPlaceholder/index.d.ts +13 -0
  101. package/dist/components/EmptyPlaceholder/index.js +87 -0
  102. package/dist/components/EmptyPlaceholder/index.js.map +1 -0
  103. package/dist/components/EmptyPlaceholder/styles.d.ts +2 -0
  104. package/dist/components/EmptyPlaceholder/styles.js +3 -0
  105. package/dist/components/EmptyPlaceholder/styles.js.map +1 -0
  106. package/dist/components/EmptyPlaceholder/types.d.ts +20 -0
  107. package/dist/components/EmptyPlaceholder/types.js +3 -0
  108. package/dist/components/EmptyPlaceholder/types.js.map +1 -0
  109. package/dist/components/FileInput/index.d.ts +9 -0
  110. package/dist/components/FileInput/index.js +218 -0
  111. package/dist/components/FileInput/index.js.map +1 -0
  112. package/dist/components/FileInput/types.d.ts +23 -0
  113. package/dist/components/FileInput/types.js +3 -0
  114. package/dist/components/FileInput/types.js.map +1 -0
  115. package/dist/components/Grid/index.d.ts +5 -0
  116. package/dist/components/Grid/index.js +110 -0
  117. package/dist/components/Grid/index.js.map +1 -0
  118. package/dist/components/Grid/styles.d.ts +2 -0
  119. package/dist/components/Grid/styles.js +3 -0
  120. package/dist/components/Grid/styles.js.map +1 -0
  121. package/dist/components/Grid/types.d.ts +15 -0
  122. package/dist/components/Grid/types.js +3 -0
  123. package/dist/components/Grid/types.js.map +1 -0
  124. package/dist/components/Icon/index.d.ts +7 -0
  125. package/dist/components/Icon/index.js +96 -0
  126. package/dist/components/Icon/index.js.map +1 -0
  127. package/dist/components/Icon/styles.d.ts +2 -0
  128. package/dist/components/Icon/styles.js +3 -0
  129. package/dist/components/Icon/styles.js.map +1 -0
  130. package/dist/components/Icon/types.d.ts +12 -0
  131. package/dist/components/Icon/types.js +3 -0
  132. package/dist/components/Icon/types.js.map +1 -0
  133. package/dist/components/Image/index.d.ts +5 -0
  134. package/dist/components/Image/index.js +151 -0
  135. package/dist/components/Image/index.js.map +1 -0
  136. package/dist/components/Image/styles.d.ts +2 -0
  137. package/dist/components/Image/styles.js +3 -0
  138. package/dist/components/Image/styles.js.map +1 -0
  139. package/dist/components/Image/types.d.ts +16 -0
  140. package/dist/components/Image/types.js +3 -0
  141. package/dist/components/Image/types.js.map +1 -0
  142. package/dist/components/ImageView/Spotlight.d.ts +41 -0
  143. package/dist/components/ImageView/Spotlight.js +178 -0
  144. package/dist/components/ImageView/Spotlight.js.map +1 -0
  145. package/dist/components/ImageView/component.d.ts +5 -0
  146. package/dist/components/ImageView/component.js +18 -0
  147. package/dist/components/ImageView/component.js.map +1 -0
  148. package/dist/components/ImageView/index.d.ts +2 -0
  149. package/dist/components/ImageView/index.js +19 -0
  150. package/dist/components/ImageView/index.js.map +1 -0
  151. package/dist/components/InputBase/index.d.ts +11 -0
  152. package/dist/components/InputBase/index.js +110 -0
  153. package/dist/components/InputBase/index.js.map +1 -0
  154. package/dist/components/InputBase/styles.d.ts +20 -0
  155. package/dist/components/InputBase/styles.js +99 -0
  156. package/dist/components/InputBase/styles.js.map +1 -0
  157. package/dist/components/InputBase/types.d.ts +26 -0
  158. package/dist/components/InputBase/types.js +3 -0
  159. package/dist/components/InputBase/types.js.map +1 -0
  160. package/dist/components/InputBase/utils.d.ts +12 -0
  161. package/dist/components/InputBase/utils.js +41 -0
  162. package/dist/components/InputBase/utils.js.map +1 -0
  163. package/dist/components/List/index.d.ts +5 -0
  164. package/dist/components/List/index.js +104 -0
  165. package/dist/components/List/index.js.map +1 -0
  166. package/dist/components/List/styles.d.ts +5 -0
  167. package/dist/components/List/styles.js +3 -0
  168. package/dist/components/List/styles.js.map +1 -0
  169. package/dist/components/List/types.d.ts +36 -0
  170. package/dist/components/List/types.js +3 -0
  171. package/dist/components/List/types.js.map +1 -0
  172. package/dist/components/LoadingOverlay/index.d.ts +13 -0
  173. package/dist/components/LoadingOverlay/index.js +84 -0
  174. package/dist/components/LoadingOverlay/index.js.map +1 -0
  175. package/dist/components/LoadingOverlay/styles.d.ts +4 -0
  176. package/dist/components/LoadingOverlay/styles.js +3 -0
  177. package/dist/components/LoadingOverlay/styles.js.map +1 -0
  178. package/dist/components/LoadingOverlay/types.d.ts +8 -0
  179. package/dist/components/LoadingOverlay/types.js +3 -0
  180. package/dist/components/LoadingOverlay/types.js.map +1 -0
  181. package/dist/components/Modal/index.d.ts +14 -0
  182. package/dist/components/Modal/index.js +151 -0
  183. package/dist/components/Modal/index.js.map +1 -0
  184. package/dist/components/Modal/styles.d.ts +4 -0
  185. package/dist/components/Modal/styles.js +3 -0
  186. package/dist/components/Modal/styles.js.map +1 -0
  187. package/dist/components/Modal/types.d.ts +36 -0
  188. package/dist/components/Modal/types.js +3 -0
  189. package/dist/components/Modal/types.js.map +1 -0
  190. package/dist/components/Navigation/Navigation.d.ts +55 -0
  191. package/dist/components/Navigation/Navigation.js +84 -0
  192. package/dist/components/Navigation/Navigation.js.map +1 -0
  193. package/dist/components/Navigation/constants.d.ts +9 -0
  194. package/dist/components/Navigation/constants.js +12 -0
  195. package/dist/components/Navigation/constants.js.map +1 -0
  196. package/dist/components/Navigation/index.d.ts +3 -0
  197. package/dist/components/Navigation/index.js +20 -0
  198. package/dist/components/Navigation/index.js.map +1 -0
  199. package/dist/components/Navigation/types.d.ts +26 -0
  200. package/dist/components/Navigation/types.js +3 -0
  201. package/dist/components/Navigation/types.js.map +1 -0
  202. package/dist/components/Navigation/utils.d.ts +3 -0
  203. package/dist/components/Navigation/utils.js +69 -0
  204. package/dist/components/Navigation/utils.js.map +1 -0
  205. package/dist/components/NumberIncrement/index.d.ts +5 -0
  206. package/dist/components/NumberIncrement/index.js +263 -0
  207. package/dist/components/NumberIncrement/index.js.map +1 -0
  208. package/dist/components/NumberIncrement/styles.d.ts +4 -0
  209. package/dist/components/NumberIncrement/styles.js +3 -0
  210. package/dist/components/NumberIncrement/styles.js.map +1 -0
  211. package/dist/components/NumberIncrement/types.d.ts +34 -0
  212. package/dist/components/NumberIncrement/types.js +3 -0
  213. package/dist/components/NumberIncrement/types.js.map +1 -0
  214. package/dist/components/NumberIncrement/utils.d.ts +5 -0
  215. package/dist/components/NumberIncrement/utils.js +27 -0
  216. package/dist/components/NumberIncrement/utils.js.map +1 -0
  217. package/dist/components/Pager/PagerDots.d.ts +16 -0
  218. package/dist/components/Pager/PagerDots.js +58 -0
  219. package/dist/components/Pager/PagerDots.js.map +1 -0
  220. package/dist/components/Pager/index.d.ts +14 -0
  221. package/dist/components/Pager/index.js +127 -0
  222. package/dist/components/Pager/index.js.map +1 -0
  223. package/dist/components/Pager/styles.d.ts +4 -0
  224. package/dist/components/Pager/styles.js +3 -0
  225. package/dist/components/Pager/styles.js.map +1 -0
  226. package/dist/components/Pager/types.d.ts +25 -0
  227. package/dist/components/Pager/types.js +3 -0
  228. package/dist/components/Pager/types.js.map +1 -0
  229. package/dist/components/PaginationIndicator/index.d.ts +11 -0
  230. package/dist/components/PaginationIndicator/index.js +49 -0
  231. package/dist/components/PaginationIndicator/index.js.map +1 -0
  232. package/dist/components/PaginationIndicator/styles.d.ts +2 -0
  233. package/dist/components/PaginationIndicator/styles.js +3 -0
  234. package/dist/components/PaginationIndicator/styles.js.map +1 -0
  235. package/dist/components/PaginationIndicator/types.d.ts +10 -0
  236. package/dist/components/PaginationIndicator/types.js +3 -0
  237. package/dist/components/PaginationIndicator/types.js.map +1 -0
  238. package/dist/components/PlacesAutocomplete/index.d.ts +19 -0
  239. package/dist/components/PlacesAutocomplete/index.js +127 -0
  240. package/dist/components/PlacesAutocomplete/index.js.map +1 -0
  241. package/dist/components/PlacesAutocomplete/styles.d.ts +4 -0
  242. package/dist/components/PlacesAutocomplete/styles.js +3 -0
  243. package/dist/components/PlacesAutocomplete/styles.js.map +1 -0
  244. package/dist/components/PlacesAutocomplete/types.d.ts +41 -0
  245. package/dist/components/PlacesAutocomplete/types.js +3 -0
  246. package/dist/components/PlacesAutocomplete/types.js.map +1 -0
  247. package/dist/components/RadioInput/index.d.ts +13 -0
  248. package/dist/components/RadioInput/index.js +123 -0
  249. package/dist/components/RadioInput/index.js.map +1 -0
  250. package/dist/components/RadioInput/styles.d.ts +6 -0
  251. package/dist/components/RadioInput/styles.js +3 -0
  252. package/dist/components/RadioInput/styles.js.map +1 -0
  253. package/dist/components/RadioInput/types.d.ts +27 -0
  254. package/dist/components/RadioInput/types.js +3 -0
  255. package/dist/components/RadioInput/types.js.map +1 -0
  256. package/dist/components/RefreshControl/index.d.ts +13 -0
  257. package/dist/components/RefreshControl/index.js +67 -0
  258. package/dist/components/RefreshControl/index.js.map +1 -0
  259. package/dist/components/RefreshControl/styles.d.ts +1 -0
  260. package/dist/components/RefreshControl/styles.js +3 -0
  261. package/dist/components/RefreshControl/styles.js.map +1 -0
  262. package/dist/components/RefreshControl/types.d.ts +6 -0
  263. package/dist/components/RefreshControl/types.js +3 -0
  264. package/dist/components/RefreshControl/types.js.map +1 -0
  265. package/dist/components/Scroll/index.d.ts +5 -0
  266. package/dist/components/Scroll/index.js +108 -0
  267. package/dist/components/Scroll/index.js.map +1 -0
  268. package/dist/components/Scroll/styles.d.ts +1 -0
  269. package/dist/components/Scroll/styles.js +3 -0
  270. package/dist/components/Scroll/styles.js.map +1 -0
  271. package/dist/components/Scroll/types.d.ts +16 -0
  272. package/dist/components/Scroll/types.js +3 -0
  273. package/dist/components/Scroll/types.js.map +1 -0
  274. package/dist/components/SearchInput/index.d.ts +15 -0
  275. package/dist/components/SearchInput/index.js +93 -0
  276. package/dist/components/SearchInput/index.js.map +1 -0
  277. package/dist/components/Sections/index.d.ts +5 -0
  278. package/dist/components/Sections/index.js +118 -0
  279. package/dist/components/Sections/index.js.map +1 -0
  280. package/dist/components/Sections/styles.d.ts +1 -0
  281. package/dist/components/Sections/styles.js +3 -0
  282. package/dist/components/Sections/styles.js.map +1 -0
  283. package/dist/components/Sections/types.d.ts +34 -0
  284. package/dist/components/Sections/types.js +3 -0
  285. package/dist/components/Sections/types.js.map +1 -0
  286. package/dist/components/SegmentedControl/Option.d.ts +18 -0
  287. package/dist/components/SegmentedControl/Option.js +44 -0
  288. package/dist/components/SegmentedControl/Option.js.map +1 -0
  289. package/dist/components/SegmentedControl/index.d.ts +5 -0
  290. package/dist/components/SegmentedControl/index.js +174 -0
  291. package/dist/components/SegmentedControl/index.js.map +1 -0
  292. package/dist/components/SegmentedControl/styles.d.ts +8 -0
  293. package/dist/components/SegmentedControl/styles.js +3 -0
  294. package/dist/components/SegmentedControl/styles.js.map +1 -0
  295. package/dist/components/SegmentedControl/types.d.ts +34 -0
  296. package/dist/components/SegmentedControl/types.js +3 -0
  297. package/dist/components/SegmentedControl/types.js.map +1 -0
  298. package/dist/components/Select/index.d.ts +13 -0
  299. package/dist/components/Select/index.js +259 -0
  300. package/dist/components/Select/index.js.map +1 -0
  301. package/dist/components/Select/styles.d.ts +9 -0
  302. package/dist/components/Select/styles.js +3 -0
  303. package/dist/components/Select/styles.js.map +1 -0
  304. package/dist/components/Select/types.d.ts +77 -0
  305. package/dist/components/Select/types.js +3 -0
  306. package/dist/components/Select/types.js.map +1 -0
  307. package/dist/components/Slider/index.d.ts +13 -0
  308. package/dist/components/Slider/index.js +183 -0
  309. package/dist/components/Slider/index.js.map +1 -0
  310. package/dist/components/Slider/styles.d.ts +11 -0
  311. package/dist/components/Slider/styles.js +3 -0
  312. package/dist/components/Slider/styles.js.map +1 -0
  313. package/dist/components/Slider/types.d.ts +22 -0
  314. package/dist/components/Slider/types.js +3 -0
  315. package/dist/components/Slider/types.js.map +1 -0
  316. package/dist/components/SortablePhotos/index.d.ts +13 -0
  317. package/dist/components/SortablePhotos/index.js +125 -0
  318. package/dist/components/SortablePhotos/index.js.map +1 -0
  319. package/dist/components/SortablePhotos/styles.d.ts +2 -0
  320. package/dist/components/SortablePhotos/styles.js +3 -0
  321. package/dist/components/SortablePhotos/styles.js.map +1 -0
  322. package/dist/components/SortablePhotos/types.d.ts +54 -0
  323. package/dist/components/SortablePhotos/types.js +3 -0
  324. package/dist/components/SortablePhotos/types.js.map +1 -0
  325. package/dist/components/SortablePhotos/useSortablePhotos.d.ts +21 -0
  326. package/dist/components/SortablePhotos/useSortablePhotos.js +192 -0
  327. package/dist/components/SortablePhotos/useSortablePhotos.js.map +1 -0
  328. package/dist/components/Switch/index.d.ts +13 -0
  329. package/dist/components/Switch/index.js +115 -0
  330. package/dist/components/Switch/index.js.map +1 -0
  331. package/dist/components/Switch/styles.d.ts +7 -0
  332. package/dist/components/Switch/styles.js +3 -0
  333. package/dist/components/Switch/styles.js.map +1 -0
  334. package/dist/components/Switch/types.d.ts +9 -0
  335. package/dist/components/Switch/types.js +3 -0
  336. package/dist/components/Switch/types.js.map +1 -0
  337. package/dist/components/Text/index.d.ts +7 -0
  338. package/dist/components/Text/index.js +127 -0
  339. package/dist/components/Text/index.js.map +1 -0
  340. package/dist/components/Text/styles.d.ts +6 -0
  341. package/dist/components/Text/styles.js +3 -0
  342. package/dist/components/Text/styles.js.map +1 -0
  343. package/dist/components/Text/types.d.ts +16 -0
  344. package/dist/components/Text/types.js +3 -0
  345. package/dist/components/Text/types.js.map +1 -0
  346. package/dist/components/TextInput/index.d.ts +5 -0
  347. package/dist/components/TextInput/index.js +181 -0
  348. package/dist/components/TextInput/index.js.map +1 -0
  349. package/dist/components/TextInput/styles.d.ts +5 -0
  350. package/dist/components/TextInput/styles.js +3 -0
  351. package/dist/components/TextInput/styles.js.map +1 -0
  352. package/dist/components/TextInput/types.d.ts +21 -0
  353. package/dist/components/TextInput/types.js +3 -0
  354. package/dist/components/TextInput/types.js.map +1 -0
  355. package/dist/components/Touchable/index.d.ts +5 -0
  356. package/dist/components/Touchable/index.js +220 -0
  357. package/dist/components/Touchable/index.js.map +1 -0
  358. package/dist/components/Touchable/styles.d.ts +6 -0
  359. package/dist/components/Touchable/styles.js +3 -0
  360. package/dist/components/Touchable/styles.js.map +1 -0
  361. package/dist/components/Touchable/types.d.ts +25 -0
  362. package/dist/components/Touchable/types.js +3 -0
  363. package/dist/components/Touchable/types.js.map +1 -0
  364. package/dist/components/View/index.d.ts +13 -0
  365. package/dist/components/View/index.js +53 -0
  366. package/dist/components/View/index.js.map +1 -0
  367. package/dist/components/View/styles.d.ts +1 -0
  368. package/dist/components/View/styles.js +3 -0
  369. package/dist/components/View/styles.js.map +1 -0
  370. package/dist/components/View/types.d.ts +13 -0
  371. package/dist/components/View/types.js +3 -0
  372. package/dist/components/View/types.js.map +1 -0
  373. package/dist/components/components.d.ts +42 -0
  374. package/dist/components/components.js +59 -0
  375. package/dist/components/components.js.map +1 -0
  376. package/dist/hooks/index.d.ts +2 -0
  377. package/dist/hooks/index.js +15 -0
  378. package/dist/hooks/index.js.map +1 -0
  379. package/dist/index.d.ts +8 -0
  380. package/dist/index.js +44 -0
  381. package/dist/index.js.map +1 -0
  382. package/dist/modules/PressableRipple/index.d.ts +2 -0
  383. package/dist/modules/PressableRipple/index.js +9 -0
  384. package/dist/modules/PressableRipple/index.js.map +1 -0
  385. package/dist/modules/PressableRipple/ripple.d.ts +30 -0
  386. package/dist/modules/PressableRipple/ripple.js +213 -0
  387. package/dist/modules/PressableRipple/ripple.js.map +1 -0
  388. package/dist/modules/PressableRipple/styles.d.ts +19 -0
  389. package/dist/modules/PressableRipple/styles.js +29 -0
  390. package/dist/modules/PressableRipple/styles.js.map +1 -0
  391. package/dist/modules/PressableRipple/type.d.ts +12 -0
  392. package/dist/modules/PressableRipple/type.js +3 -0
  393. package/dist/modules/PressableRipple/type.js.map +1 -0
  394. package/dist/modules/reactNavigation.d.ts +21 -0
  395. package/dist/modules/reactNavigation.js +25 -0
  396. package/dist/modules/reactNavigation.js.map +1 -0
  397. package/dist/modules/textInputMask.d.ts +6 -0
  398. package/dist/modules/textInputMask.js +21 -0
  399. package/dist/modules/textInputMask.js.map +1 -0
  400. package/dist/modules/types/textInputMask.d.ts +7 -0
  401. package/dist/modules/types/textInputMask.js +3 -0
  402. package/dist/modules/types/textInputMask.js.map +1 -0
  403. package/dist/types/index.d.ts +8 -0
  404. package/dist/types/index.js +18 -0
  405. package/dist/types/index.js.map +1 -0
  406. package/dist/types/utility.d.ts +14 -0
  407. package/dist/types/utility.js +3 -0
  408. package/dist/types/utility.js.map +1 -0
  409. package/dist/utils/KeyboardAware/context.d.ts +14 -0
  410. package/dist/utils/KeyboardAware/context.js +28 -0
  411. package/dist/utils/KeyboardAware/context.js.map +1 -0
  412. package/dist/utils/KeyboardAware/index.d.ts +3 -0
  413. package/dist/utils/KeyboardAware/index.js +20 -0
  414. package/dist/utils/KeyboardAware/index.js.map +1 -0
  415. package/dist/utils/KeyboardAware/keyboardHooks.d.ts +21 -0
  416. package/dist/utils/KeyboardAware/keyboardHooks.js +82 -0
  417. package/dist/utils/KeyboardAware/keyboardHooks.js.map +1 -0
  418. package/dist/utils/KeyboardAware/types.d.ts +1 -0
  419. package/dist/utils/KeyboardAware/types.js +7 -0
  420. package/dist/utils/KeyboardAware/types.js.map +1 -0
  421. package/dist/utils/ModalManager/components.d.ts +15 -0
  422. package/dist/utils/ModalManager/components.js +83 -0
  423. package/dist/utils/ModalManager/components.js.map +1 -0
  424. package/dist/utils/ModalManager/context.d.ts +48 -0
  425. package/dist/utils/ModalManager/context.js +184 -0
  426. package/dist/utils/ModalManager/context.js.map +1 -0
  427. package/dist/utils/ModalManager/index.d.ts +10 -0
  428. package/dist/utils/ModalManager/index.js +12 -0
  429. package/dist/utils/ModalManager/index.js.map +1 -0
  430. package/dist/utils/NotificationManager/index.d.ts +55 -0
  431. package/dist/utils/NotificationManager/index.js +304 -0
  432. package/dist/utils/NotificationManager/index.js.map +1 -0
  433. package/dist/utils/NotificationManager/types.d.ts +16 -0
  434. package/dist/utils/NotificationManager/types.js +3 -0
  435. package/dist/utils/NotificationManager/types.js.map +1 -0
  436. package/dist/utils/OSAlert.d.ts +32 -0
  437. package/dist/utils/OSAlert.js +143 -0
  438. package/dist/utils/OSAlert.js.map +1 -0
  439. package/dist/utils/PermissionManager/context.d.ts +53 -0
  440. package/dist/utils/PermissionManager/context.js +324 -0
  441. package/dist/utils/PermissionManager/context.js.map +1 -0
  442. package/dist/utils/PermissionManager/index.d.ts +4 -0
  443. package/dist/utils/PermissionManager/index.js +9 -0
  444. package/dist/utils/PermissionManager/index.js.map +1 -0
  445. package/dist/utils/PermissionManager/types.d.ts +16 -0
  446. package/dist/utils/PermissionManager/types.js +3 -0
  447. package/dist/utils/PermissionManager/types.js.map +1 -0
  448. package/dist/utils/StorageManager.d.ts +20 -0
  449. package/dist/utils/StorageManager.js +86 -0
  450. package/dist/utils/StorageManager.js.map +1 -0
  451. package/dist/utils/Subscription.d.ts +17 -0
  452. package/dist/utils/Subscription.js +72 -0
  453. package/dist/utils/Subscription.js.map +1 -0
  454. package/dist/utils/deprecated/notifications.d.ts +40 -0
  455. package/dist/utils/deprecated/notifications.js +274 -0
  456. package/dist/utils/deprecated/notifications.js.map +1 -0
  457. package/dist/utils/hooks.d.ts +68 -0
  458. package/dist/utils/hooks.js +228 -0
  459. package/dist/utils/hooks.js.map +1 -0
  460. package/dist/utils/index.d.ts +14 -0
  461. package/dist/utils/index.js +44 -0
  462. package/dist/utils/index.js.map +1 -0
  463. package/dist/utils/input.d.ts +35 -0
  464. package/dist/utils/input.js +49 -0
  465. package/dist/utils/input.js.map +1 -0
  466. package/dist/utils/locale.d.ts +1 -0
  467. package/dist/utils/locale.js +10 -0
  468. package/dist/utils/locale.js.map +1 -0
  469. package/dist/utils/misc.d.ts +12 -0
  470. package/dist/utils/misc.js +124 -0
  471. package/dist/utils/misc.js.map +1 -0
  472. package/dist/utils/theme.d.ts +23 -0
  473. package/dist/utils/theme.js +41 -0
  474. package/dist/utils/theme.js.map +1 -0
  475. package/dist/utils/useQueryListRefresh.d.ts +12 -0
  476. package/dist/utils/useQueryListRefresh.js +42 -0
  477. package/dist/utils/useQueryListRefresh.js.map +1 -0
  478. package/package.json +15 -13
  479. package/package.json.bak +53 -0
  480. package/src/components/Badge/index.tsx +3 -3
  481. package/src/components/DatePickerModal/index.tsx +3 -2
  482. package/src/components/FileInput/index.tsx +7 -7
  483. package/src/components/FileInput/types.ts +1 -1
  484. package/src/components/Image/index.tsx +1 -1
  485. package/src/components/Image/types.ts +1 -1
  486. package/src/components/NumberIncrement/index.tsx +21 -3
  487. package/src/components/NumberIncrement/types.ts +1 -0
  488. package/src/components/Pager/PagerDots.tsx +56 -0
  489. package/src/components/Pager/index.tsx +85 -173
  490. package/src/components/Pager/styles.ts +6 -1
  491. package/src/components/Pager/types.ts +16 -26
  492. package/src/components/PlacesAutocomplete/index.tsx +154 -0
  493. package/src/components/PlacesAutocomplete/styles.ts +12 -0
  494. package/src/components/PlacesAutocomplete/types.ts +42 -0
  495. package/src/components/Select/index.tsx +9 -13
  496. package/src/components/SortablePhotos/index.tsx +170 -0
  497. package/src/components/SortablePhotos/styles.ts +9 -0
  498. package/src/components/SortablePhotos/types.ts +58 -0
  499. package/src/components/SortablePhotos/useSortablePhotos.ts +174 -0
  500. package/src/components/Text/index.tsx +1 -1
  501. package/src/components/Text/types.ts +3 -2
  502. package/src/components/TextInput/index.tsx +8 -0
  503. package/src/components/TextInput/types.ts +2 -0
  504. package/src/components/components.ts +2 -0
  505. package/src/modules/PressableRipple/ripple.js +61 -61
  506. package/src/utils/StorageManager.ts +112 -0
  507. package/src/utils/hooks.ts +2 -51
  508. package/src/utils/index.ts +2 -1
  509. package/src/utils/misc.ts +41 -2
  510. package/src/utils/theme.ts +13 -9
@@ -11,6 +11,7 @@ import { NumberIncrementProps } from './types'
11
11
  import { AnyRecord, AppIcon, IJSX, StyledComponentProps, StyledComponentWithProps } from '@codeleap/styles'
12
12
  import { MobileStyleRegistry } from '../../Registry'
13
13
  import { useStylesFor } from '../../hooks'
14
+ import CurrencyInput from 'react-native-currency-input'
14
15
 
15
16
  export * from './styles'
16
17
  export * from './types'
@@ -58,6 +59,7 @@ export const NumberIncrement = forwardRef<NativeTextInput, NumberIncrementProps>
58
59
  timeoutActionFocus,
59
60
  mask,
60
61
  actionDebounce,
62
+ precision,
61
63
  ...textInputProps
62
64
  } = others
63
65
 
@@ -73,11 +75,13 @@ export const NumberIncrement = forwardRef<NativeTextInput, NumberIncrementProps>
73
75
 
74
76
  const isFormatted = TypeGuards.isFunction(formatter)
75
77
 
76
- const hasMaskProps = [masking, prefix, suffix, delimiter, separator, mask].some(v => !!v)
78
+ const hasMaskProps = [masking, mask].some(v => !!v)
79
+ const hasCurrencyProps = [prefix, suffix, delimiter, separator, precision].some(v => !!v)
77
80
 
78
- const isMasked = hasMaskProps && !isFormatted
81
+ const isCurrency = hasCurrencyProps
82
+ const isMasked = hasMaskProps && !isFormatted && !isCurrency
79
83
 
80
- const InputElement = isMasked ? MaskedTextInput : NativeTextInput
84
+ const InputElement: any = isMasked ? MaskedTextInput : isCurrency ? CurrencyInput : NativeTextInput
81
85
 
82
86
  // @ts-expect-error - React's ref type system is weird
83
87
  useImperativeHandle(inputRef, () => {
@@ -219,6 +223,19 @@ export const NumberIncrement = forwardRef<NativeTextInput, NumberIncrementProps>
219
223
  },
220
224
  } : {}
221
225
 
226
+ const currencyExtraProps = isCurrency ? {
227
+ value,
228
+ onChangeText: null,
229
+ onChangeValue: onChange,
230
+ prefix: prefix,
231
+ separator: separator ?? '.',
232
+ suffix: suffix,
233
+ delimiter: delimiter ?? ',',
234
+ minValue: min,
235
+ maxValue: max,
236
+ precision,
237
+ } : {}
238
+
222
239
  const onPressInnerWrapper = () => {
223
240
  handleFocus()
224
241
  if (editable) innerInputRef.current?.focus?.()
@@ -270,6 +287,7 @@ export const NumberIncrement = forwardRef<NativeTextInput, NumberIncrementProps>
270
287
  style={inputTextStyle}
271
288
  ref={innerInputRef}
272
289
  {...maskingExtraProps}
290
+ {...currencyExtraProps}
273
291
  />
274
292
  ) : (
275
293
  <Text
@@ -26,6 +26,7 @@ export type NumberIncrementProps =
26
26
  suffix?: MaskOptions['suffixUnit']
27
27
  separator?: MaskOptions['separator']
28
28
  delimiter?: MaskOptions['delimiter']
29
+ precision?: number
29
30
  mask?: MaskOptions['mask']
30
31
  formatter?: (value: string | number) => string
31
32
  parseValue?: (value: string) => number
@@ -0,0 +1,56 @@
1
+ import { AnyFunction, StylesOf } from '@codeleap/common'
2
+ import Animated, { useAnimatedStyle } from 'react-native-reanimated'
3
+ import { Touchable } from '../Touchable'
4
+ import { View } from '../View'
5
+ import { DotComposition } from './styles'
6
+
7
+ export type PagerDot = {
8
+ onPress: AnyFunction
9
+ isActive: boolean
10
+ index: number
11
+ styles: StylesOf<DotComposition>
12
+ }
13
+
14
+ function Dot({ onPress, isActive, index, styles }: PagerDot) {
15
+ const animation = useAnimatedStyle(() => {
16
+ const scale = isActive ? 1 : 0.6
17
+ return {
18
+ transform: [{ scale }],
19
+ ...(isActive ? styles['dot:active'] : styles.dot),
20
+ }
21
+ })
22
+
23
+ return (
24
+ <Touchable
25
+ debugName={`default-pager-dot-touchable-${index}`}
26
+ onPress={onPress}
27
+ noFeedback
28
+ style={[styles.touchable, isActive && styles['touchable:active']]}
29
+ >
30
+ <Animated.View style={[animation, styles.dot]} />
31
+ </Touchable>
32
+ )
33
+ }
34
+
35
+ export type PagerDots = {
36
+ styles: StylesOf<DotComposition>
37
+ currentPage: number
38
+ setCurrentPage: (page: number) => void
39
+ pages: Array<any>
40
+ }
41
+
42
+ export function PagerDots({ styles, currentPage, setCurrentPage, pages }: PagerDots) {
43
+ return (
44
+ <View style={styles.wrapper}>
45
+ {pages?.map((_, i) => (
46
+ <Dot
47
+ key={`default-pager-dots-index-${i}`}
48
+ index={i}
49
+ onPress={() => setCurrentPage(i)}
50
+ isActive={i === currentPage}
51
+ styles={styles}
52
+ />
53
+ ))}
54
+ </View>
55
+ )
56
+ }
@@ -1,207 +1,119 @@
1
- import React, { useCallback, useRef } from 'react'
2
- import { onUpdate, TypeGuards } from '@codeleap/common'
3
- import { AnyRecord, IJSX, StyledComponentProps } from '@codeleap/styles'
4
- import { Dimensions, ScrollView } from 'react-native'
1
+ import React, { useCallback, useRef, useState } from 'react'
2
+ import { ReduceMotion } from 'react-native-reanimated'
3
+ import Carousel, { ICarouselInstance } from 'react-native-reanimated-carousel'
4
+ import { CarouselRenderItemInfo, TCarouselProps } from 'react-native-reanimated-carousel/lib/typescript/types'
5
+ import { Dimensions, LayoutChangeEvent } from 'react-native'
6
+ import { onUpdate, TypeGuards, useConditionalState } from '@codeleap/common'
7
+ import { AnyRecord, IJSX, StyledComponentProps, useNestedStylesByKey } from '@codeleap/styles'
8
+ import { useStylesFor } from '../../hooks'
5
9
  import { MobileStyleRegistry } from '../../Registry'
6
10
  import { View } from '../View'
7
- import { PageProps, PagerProps, ScrollEvent } from './types'
8
- import { useStylesFor } from '../../hooks'
11
+ import { PageProps, PagerProps } from './types'
12
+ import { PagerDots } from './PagerDots'
9
13
 
10
14
  export * from './styles'
11
15
  export * from './types'
16
+ export * from './PagerDots'
17
+
18
+ const window = Dimensions.get('window')
12
19
 
13
- export const Pager = (pagerProps: PagerProps) => {
20
+ export function Pager<T>(props: PagerProps<T>) {
14
21
  const {
15
- width: widthProp,
22
+ pages,
16
23
  page,
24
+ onChangePage,
25
+ initialPage,
17
26
  style,
18
- returnEarly,
19
- renderPageWrapper,
20
- pageWrapperProps = {},
21
- children,
22
- windowing,
23
- setPage,
24
- scrollEnabled,
25
- scrollLeftEnabled,
26
- scrollRightEnabled,
27
- onScroll,
28
- scrollDirectionThrottle,
29
- onSwipeLastPage,
30
- waitEventDispatchTimeout,
27
+ showDots,
28
+ renderItem: RenderItem,
29
+ footer,
30
+ width: carouselWidth,
31
+ height: carouselHeight,
32
+ autoCalculateFooterHeight,
33
+ ...rest
31
34
  } = {
32
35
  ...Pager.defaultProps,
33
- ...pagerProps,
36
+ ...props,
34
37
  }
35
38
 
36
- const childArr = React.Children.toArray(children)
37
- const scrollRef = useRef<ScrollView>(null)
38
- const [positionX, setPositionX] = React.useState(0)
39
- const [scrollPositionX, setScrollPositionX] = React.useState(0)
40
- const [_scrollEnabled, setScrollEnabled] = React.useState(true)
41
- const waitEventDispatch = useRef(false)
39
+ const [currentPage, setCurrentPage] = useConditionalState(page, onChangePage, { initialValue: initialPage })
40
+ const carouselRef = useRef<ICarouselInstance>(null)
41
+ const [footerHeight, setFooterHeight] = useState(0)
42
42
 
43
43
  const styles = useStylesFor(Pager.styleRegistryName, style)
44
+ const dotStyles = useNestedStylesByKey('dot', styles)
44
45
 
45
- const windowWidth = Dimensions.get('window').width
46
-
47
- // @ts-expect-error
48
- let width = widthProp ?? styles?.wrapper?.width
49
-
50
- const validWidth = TypeGuards.isNumber(width)
51
-
52
- if (!validWidth) {
53
- width = windowWidth
54
- }
55
-
56
- const nChildren = React.Children.count(children)
57
-
58
- const lastPage = nChildren - 1
59
-
60
- const WrapperComponent = renderPageWrapper || View
61
-
62
- const hasScrollDirectionDisabled = !scrollLeftEnabled || !scrollRightEnabled
63
-
64
- const handleScrollEnd = useCallback((event: ScrollEvent) => {
65
- if (!scrollEnabled) return null
66
-
67
- if (waitEventDispatch.current === true) return null
68
-
69
- waitEventDispatch.current = true
70
-
71
- const x = event?.nativeEvent.contentOffset.x
72
- const toPage = Math.floor(((Math.round(x)) / Math.round(width)))
73
-
74
- const length = childArr.length - 1
75
-
76
- if (toPage >= length && TypeGuards.isFunction(onSwipeLastPage) && page >= length) {
77
- onSwipeLastPage?.(event)
78
- } else if (toPage !== page && toPage <= length) {
79
- setPage(toPage)
80
- setPositionX(toPage * width)
81
- }
82
-
83
- setTimeout(() => {
84
- waitEventDispatch.current = false
85
- }, waitEventDispatchTimeout)
86
- }, [childArr, page, setPage, waitEventDispatch.current])
87
-
88
- const handleScroll = (event: ScrollEvent) => {
89
- const scrollX = event?.nativeEvent?.contentOffset?.x
90
-
91
- if (!scrollEnabled) {
92
- if (TypeGuards.isFunction(onScroll)) onScroll?.(event, { x: scrollX })
93
- return null
94
- }
95
-
96
- if (!_scrollEnabled) {
97
- setScrollPositionX(scrollX)
98
- return null
46
+ onUpdate(() => {
47
+ carouselRef.current?.scrollTo({ index: currentPage, animated: true })
48
+ }, [currentPage])
49
+
50
+ const renderItem = useCallback(({ item, index, animationValue }: CarouselRenderItemInfo<any>) => {
51
+ const itemProps: Omit<PageProps<T>, 'item'> = {
52
+ isFirst: index === 0,
53
+ isLast: index === pages?.length - 1,
54
+ isOnly: pages?.length === 1,
55
+ isActive: index === currentPage,
56
+ isNext: index === currentPage + 1,
57
+ isPrevious: index === currentPage - 1,
58
+ index,
59
+ animationValue,
99
60
  }
100
61
 
101
- const isRight = scrollX < scrollPositionX
102
- const isLeft = scrollX > scrollPositionX
103
-
104
- if (TypeGuards.isFunction(onScroll)) onScroll?.(event, { isLeft, isRight, x: scrollX })
105
-
106
- if (hasScrollDirectionDisabled) {
107
- if (isRight && !scrollRightEnabled || isLeft && !scrollLeftEnabled) {
108
- setScrollEnabled(false)
109
-
110
- setTimeout(() => {
111
- scrollRef.current.scrollTo({
112
- x: positionX,
113
- animated: true,
114
- })
115
-
116
- setTimeout(() => {
117
- setScrollEnabled(true)
118
- }, scrollDirectionThrottle)
119
- })
120
- }
62
+ if (TypeGuards.isFunction(item)) {
63
+ const ItemComponent = item
64
+ return <ItemComponent {...itemProps} />
121
65
  }
122
66
 
123
- setScrollPositionX(scrollX)
124
- }
125
-
126
- onUpdate(() => {
127
- const x = width * page
128
- if (scrollRef.current && x !== positionX) {
129
- scrollRef.current.scrollTo({
130
- x,
131
- animated: true,
132
- })
133
- setPositionX(x)
134
- }
135
- }, [page])
67
+ return <RenderItem {...itemProps} item={item} />
68
+ }, [RenderItem, pages?.length, currentPage])
136
69
 
137
70
  return (
138
- <ScrollView
139
- ref={scrollRef}
140
- horizontal
141
- pagingEnabled
142
- onMomentumScrollEnd={handleScrollEnd}
143
- scrollEventThrottle={hasScrollDirectionDisabled ? 2000 : 300}
144
- showsHorizontalScrollIndicator={false}
145
- {...pagerProps}
146
- style={styles?.wrapper}
147
- onScroll={handleScroll}
148
- scrollEnabled={childArr.length > 1 && scrollEnabled && _scrollEnabled}
149
- >
150
- {childArr.map((child: PagerProps['children'][number], index) => {
151
- const isActive = index === page
152
- const isLast = index === lastPage
153
- const isFirst = index === 0
154
- const isNext = index === page + 1
155
- const isPrevious = index === page - 1
156
-
157
- const shouldRender = windowing ? (isActive || isNext || isPrevious) : true
158
-
159
- if (!shouldRender && returnEarly) {
160
- return <View style={{ height: '100%', width }} />
161
- }
162
-
163
- const pageProps: PageProps = {
164
- isLast,
165
- isActive,
166
- isFirst,
167
- isNext,
168
- isPrevious,
169
- index,
170
- page,
171
- }
172
-
173
- const content = typeof child === 'function' ? child(pageProps) : child
174
-
175
- const wrapperProps = {
176
- key: index,
177
- ...pageWrapperProps,
178
- style: [{ height: '100%', width }, styles?.page],
179
- }
180
-
181
- return <WrapperComponent {...wrapperProps}>{content}</WrapperComponent>
182
- })}
183
- </ScrollView>
71
+ <View style={styles.wrapper}>
72
+ <Carousel
73
+ data={pages}
74
+ withAnimation={{
75
+ type: 'timing',
76
+ config: {
77
+ reduceMotion: ReduceMotion.Never,
78
+ },
79
+ }}
80
+ autoPlay={false}
81
+ ref={carouselRef}
82
+ loop={false}
83
+ defaultIndex={initialPage}
84
+ onSnapToItem={setCurrentPage}
85
+ maxScrollDistancePerSwipe={carouselWidth}
86
+ width={carouselWidth}
87
+ height={carouselHeight - (autoCalculateFooterHeight ? footerHeight : 0)}
88
+ renderItem={renderItem}
89
+ {...rest as TCarouselProps<T>}
90
+ style={styles.carousel}
91
+ />
92
+
93
+ <View onLayout={(event: LayoutChangeEvent) => setFooterHeight(event.nativeEvent.layout.height)} style={styles.footerWrapper}>
94
+ {/* {footer} */}
95
+ {showDots ? (
96
+ <PagerDots currentPage={currentPage} pages={pages} setCurrentPage={setCurrentPage} styles={dotStyles} />
97
+ ) : null}
98
+ </View>
99
+ </View>
184
100
  )
185
101
  }
186
102
 
187
103
  Pager.styleRegistryName = 'Pager'
188
- Pager.elements = ['page', 'wrapper']
104
+ Pager.elements = ['carousel', 'wrapper', 'footerWrapper', 'dot']
189
105
  Pager.rootElement = 'wrapper'
190
106
 
191
107
  Pager.withVariantTypes = <S extends AnyRecord>(styles: S) => {
192
- return Pager as (props: StyledComponentProps<PagerProps, typeof styles>) => IJSX
108
+ return Pager as <T >(props: StyledComponentProps<PagerProps<T>, typeof styles>) => IJSX
193
109
  }
194
110
 
195
111
  Pager.defaultProps = {
196
- page: 0,
197
- returnEarly: true,
198
- windowing: false,
199
- keyboardShouldPersistTaps: 'handled',
200
- scrollEnabled: true,
201
- scrollRightEnabled: true,
202
- scrollLeftEnabled: true,
203
- scrollDirectionThrottle: 650,
204
- waitEventDispatchTimeout: 250,
205
- } as Partial<PagerProps>
112
+ width: window.width,
113
+ height: window.height,
114
+ showDots: true,
115
+ autoCalculateFooterHeight: true,
116
+ initialPage: 0,
117
+ } as Partial<PagerProps<unknown>>
206
118
 
207
119
  MobileStyleRegistry.registerComponent(Pager)
@@ -1,2 +1,7 @@
1
+ export type DotStates = '' | 'active'
1
2
 
2
- export type PagerComposition = 'page' | 'wrapper'
3
+ export type DotParts = 'wrapper' | `touchable` | `dot`
4
+
5
+ export type DotComposition = DotParts | `${DotParts}:${DotStates}`
6
+
7
+ export type PagerComposition = 'carousel' | 'wrapper' | 'footerWrapper' | `dot${Capitalize<DotParts>}`
@@ -1,37 +1,27 @@
1
+ import React, { ReactNode } from 'react'
1
2
  import { StyledProp } from '@codeleap/styles'
2
- import { ReactNode } from 'react'
3
- import { NativeScrollEvent, NativeSyntheticEvent, ScrollViewProps } from 'react-native'
4
3
  import { PagerComposition } from './styles'
4
+ import { TCarouselProps } from 'react-native-reanimated-carousel'
5
+ import { CarouselRenderItemInfo } from 'react-native-reanimated-carousel/lib/typescript/types'
5
6
 
6
- export type PageProps = {
7
+ export type PageProps<T> = CarouselRenderItemInfo<T> & {
7
8
  isLast: boolean
8
9
  isFirst: boolean
9
10
  isActive: boolean
11
+ isOnly: boolean
10
12
  isNext: boolean
11
- page: number
12
13
  index: number
13
14
  isPrevious: boolean
14
15
  }
15
16
 
16
- export type ScrollEvent = NativeSyntheticEvent<NativeScrollEvent>
17
-
18
- export type PagerProps =
19
- Omit<ScrollViewProps, 'style'> &
20
- {
21
- children?: (((pageData: PageProps) => ReactNode) | ReactNode)[]
22
- page?: number
23
- setPage?: (page: number) => void
24
- returnEarly?: boolean
25
- renderPageWrapper?: React.FC<PageProps>
26
- pageWrapperProps?: any
27
- width?: number
28
- onScroll?: (event: ScrollEvent, args: { isLeft?: boolean; isRight?: boolean; x?: number }) => void
29
- /** If TRUE render page, nextPage and prevPage only */
30
- windowing?: boolean
31
- scrollRightEnabled?: boolean
32
- scrollLeftEnabled?: boolean
33
- scrollDirectionThrottle?: number
34
- onSwipeLastPage?: (event: ScrollEvent) => void
35
- waitEventDispatchTimeout?: number
36
- style?: StyledProp<PagerComposition>
37
- }
17
+ export type PagerProps<T> = Partial<Omit<TCarouselProps<T>, 'data' | 'renderItem'>> & {
18
+ pages: TCarouselProps<T>['data']
19
+ renderItem?: (props: PageProps<T>) => JSX.Element
20
+ page?: number
21
+ onChangePage?: (page: number) => void
22
+ initialPage?: number
23
+ style?: StyledProp<PagerComposition>
24
+ showDots?: boolean
25
+ footer?: ReactNode
26
+ autoCalculateFooterHeight?: boolean
27
+ }
@@ -0,0 +1,154 @@
1
+ import React, { useCallback } from 'react'
2
+ import { AnyRecord, AppIcon, IJSX, StyledComponentProps, useCompositionStyles } from '@codeleap/styles'
3
+ import { useStylesFor } from '../../hooks'
4
+ import { Text } from '../Text'
5
+ import { View } from '../View'
6
+ import { PlaceItem, PlacesAutocompleteProps } from './types'
7
+ import { MobileStyleRegistry } from '../../Registry'
8
+ import { TextInput } from '../TextInput'
9
+ import { List } from '../List'
10
+ import { Touchable } from '../Touchable'
11
+ import { EmptyPlaceholder } from '../EmptyPlaceholder'
12
+ import { ActivityIndicator } from '../ActivityIndicator'
13
+ import { usePlacesAutocompleteUtils } from '@codeleap/common'
14
+
15
+ export * from './styles'
16
+ export * from './types'
17
+
18
+ const DefaultPlaceRow: PlacesAutocompleteProps['renderPlaceRow'] = (props) => {
19
+ const { item, onPress, styles } = props
20
+
21
+ if (item?.content) {
22
+ return item?.content
23
+ }
24
+
25
+ const isLatLng = !!item?.formatted_address
26
+
27
+ const mainTitle = isLatLng ? item?.formatted_address : item?.description
28
+
29
+ return (
30
+ <Touchable onPress={() => onPress(mainTitle, item)} debugName={`PlaceRow ${item?.place_id}`} style={styles.placeRowWrapper}>
31
+ <Text text={`${mainTitle}`} style={styles.placeRowText} />
32
+ </Touchable>
33
+ )
34
+ }
35
+
36
+ export const PlacesAutocomplete = (props: PlacesAutocompleteProps) => {
37
+ const {
38
+ style,
39
+ itemRow,
40
+ data = [],
41
+ customData = [],
42
+ onPress,
43
+ onValueChange,
44
+ showClearIcon,
45
+ showEmptyPlaceholder,
46
+ clearIcon,
47
+ textInputProps,
48
+ listProps,
49
+ emptyPlaceholderProps,
50
+ placeRow = null,
51
+ renderPlaceRow: PlaceRow,
52
+ activityIndicatorProps,
53
+ debounce,
54
+ isLoading,
55
+ persistResultsOnBlur,
56
+ ...rest
57
+ } = props
58
+
59
+ const [isFocused, setIsFocused] = React.useState(false)
60
+
61
+ const styles = useStylesFor(PlacesAutocomplete.styleRegistryName, style)
62
+ const compositionStyles = useCompositionStyles(['input', 'list', 'loader'], styles)
63
+
64
+ const hasCustomValue = !!textInputProps?.value
65
+
66
+ const {
67
+ handleChangeAddress,
68
+ handlePressAddress,
69
+ handleClearAddress,
70
+ address,
71
+ isTyping,
72
+ setIsTyping,
73
+ } = usePlacesAutocompleteUtils<PlaceItem>({
74
+ onValueChange,
75
+ onPress,
76
+ debounce: hasCustomValue ? null : 250
77
+ })
78
+
79
+ const _showEmptyPlaceholder = !!address && !isTyping && showEmptyPlaceholder && !isLoading
80
+
81
+ const showResults = isFocused || persistResultsOnBlur
82
+
83
+ const _showClearIcon = showClearIcon && !!address?.trim?.()
84
+
85
+ const rightIcon = _showClearIcon ? {
86
+ name: clearIcon,
87
+ onPress: handleClearAddress,
88
+ } : textInputProps?.rightIcon
89
+
90
+ const _data = customData?.length > 0 && address ? [...customData, ...data] : data
91
+
92
+ const renderItem = useCallback((props) => {
93
+ return (
94
+ placeRow ? placeRow : <PlaceRow onPress={handlePressAddress} styles={styles} {...props} />
95
+ )
96
+ }, [placeRow])
97
+
98
+ return (
99
+ <View style={styles.wrapper} {...rest}>
100
+ <TextInput
101
+ style={compositionStyles.input}
102
+ onChangeText={(value) => {
103
+ setIsTyping(true)
104
+ handleChangeAddress(value)
105
+ }}
106
+ onBlur={() => {
107
+ setIsFocused(false)
108
+ }}
109
+ onFocus={() => {
110
+ setIsFocused(true)
111
+ }}
112
+ {...textInputProps}
113
+ value={hasCustomValue ? textInputProps?.value : address}
114
+ rightIcon={rightIcon}
115
+ />
116
+ {isTyping ? (
117
+ <View style={styles.loadingWrapper}>
118
+ <ActivityIndicator style={compositionStyles.loader} {...activityIndicatorProps} />
119
+ </View>
120
+ ) : (
121
+ showResults ? (
122
+ <List
123
+ data={_data}
124
+ renderItem={renderItem}
125
+ ListEmptyComponent={
126
+ _showEmptyPlaceholder ? <EmptyPlaceholder {...emptyPlaceholderProps} /> : null
127
+ }
128
+ style={compositionStyles.list}
129
+ separators
130
+ {...listProps}
131
+ />
132
+ ) : null
133
+ )
134
+ }
135
+ </View>
136
+ )
137
+ }
138
+
139
+ PlacesAutocomplete.styleRegistryName = 'PlacesAutocomplete'
140
+ PlacesAutocomplete.elements = ['wrapper', 'input', 'list', 'loader', 'placeRow', 'loadingWrapper']
141
+ PlacesAutocomplete.withVariantTypes = <S extends AnyRecord>(styles: S) => {
142
+ return PlacesAutocomplete as (props: StyledComponentProps<PlacesAutocompleteProps, typeof styles>) => IJSX
143
+ }
144
+
145
+ PlacesAutocomplete.defaultProps = {
146
+ showClearIcon: false,
147
+ showEmptyPlaceholder: true,
148
+ clearIcon: 'x' as AppIcon,
149
+ placeRowComponent: DefaultPlaceRow,
150
+ renderPlaceRow: DefaultPlaceRow,
151
+ debounce: 250,
152
+ }
153
+
154
+ MobileStyleRegistry.registerComponent(PlacesAutocomplete)
@@ -0,0 +1,12 @@
1
+ import { ActivityIndicatorComposition } from '../ActivityIndicator'
2
+ import { ListComposition } from '../List'
3
+ import { TextInputComposition } from '../TextInput'
4
+
5
+ export type PlacesAutocompleteComposition =
6
+ `input${Capitalize<TextInputComposition>}` |
7
+ `list${Capitalize<ListComposition>}` |
8
+ `loader${Capitalize<ActivityIndicatorComposition>}` |
9
+ 'placeRowWrapper' |
10
+ 'placeRowText' |
11
+ 'wrapper' |
12
+ 'loadingWrapper'