@webority-technologies/mobile 0.0.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 (536) hide show
  1. package/README.md +399 -0
  2. package/lib/commonjs/api/publicClient.js +73 -0
  3. package/lib/commonjs/api/userClient.js +290 -0
  4. package/lib/commonjs/auth/authStore.js +107 -0
  5. package/lib/commonjs/auth/index.js +44 -0
  6. package/lib/commonjs/auth/jwt.js +84 -0
  7. package/lib/commonjs/components/Accordion/Accordion.js +257 -0
  8. package/lib/commonjs/components/Accordion/index.js +26 -0
  9. package/lib/commonjs/components/Avatar/Avatar.js +283 -0
  10. package/lib/commonjs/components/Avatar/index.js +26 -0
  11. package/lib/commonjs/components/Badge/Badge.js +212 -0
  12. package/lib/commonjs/components/Badge/index.js +20 -0
  13. package/lib/commonjs/components/Banner/Banner.js +276 -0
  14. package/lib/commonjs/components/Banner/index.js +20 -0
  15. package/lib/commonjs/components/BottomNavigation/BottomNavigation.js +288 -0
  16. package/lib/commonjs/components/BottomNavigation/index.js +20 -0
  17. package/lib/commonjs/components/BottomSheet/BottomSheet.js +367 -0
  18. package/lib/commonjs/components/BottomSheet/index.js +20 -0
  19. package/lib/commonjs/components/Button/Button.js +281 -0
  20. package/lib/commonjs/components/Button/index.js +20 -0
  21. package/lib/commonjs/components/Card/Card.js +194 -0
  22. package/lib/commonjs/components/Card/index.js +20 -0
  23. package/lib/commonjs/components/Carousel/Carousel.js +475 -0
  24. package/lib/commonjs/components/Carousel/index.js +20 -0
  25. package/lib/commonjs/components/Checkbox/Checkbox.js +165 -0
  26. package/lib/commonjs/components/Checkbox/index.js +20 -0
  27. package/lib/commonjs/components/Chip/Chip.js +272 -0
  28. package/lib/commonjs/components/Chip/index.js +20 -0
  29. package/lib/commonjs/components/DatePicker/DatePicker.js +813 -0
  30. package/lib/commonjs/components/DatePicker/index.js +20 -0
  31. package/lib/commonjs/components/DateRangePicker/DateRangePicker.js +622 -0
  32. package/lib/commonjs/components/DateRangePicker/index.js +20 -0
  33. package/lib/commonjs/components/Dialog/Dialog.js +215 -0
  34. package/lib/commonjs/components/Dialog/index.js +20 -0
  35. package/lib/commonjs/components/Divider/Divider.js +118 -0
  36. package/lib/commonjs/components/Divider/index.js +20 -0
  37. package/lib/commonjs/components/Drawer/Drawer.js +344 -0
  38. package/lib/commonjs/components/Drawer/index.js +20 -0
  39. package/lib/commonjs/components/EmptyState/EmptyState.js +201 -0
  40. package/lib/commonjs/components/EmptyState/index.js +20 -0
  41. package/lib/commonjs/components/FAB/FAB.js +457 -0
  42. package/lib/commonjs/components/FAB/index.js +26 -0
  43. package/lib/commonjs/components/Field/Field.js +127 -0
  44. package/lib/commonjs/components/Field/index.js +20 -0
  45. package/lib/commonjs/components/ForceUpdateDialog/ForceUpdateDialog.js +81 -0
  46. package/lib/commonjs/components/ForceUpdateDialog/index.js +20 -0
  47. package/lib/commonjs/components/Header/Header.js +339 -0
  48. package/lib/commonjs/components/Header/index.js +20 -0
  49. package/lib/commonjs/components/Icon/Icon.js +120 -0
  50. package/lib/commonjs/components/Icon/index.js +20 -0
  51. package/lib/commonjs/components/ImageGallery/ImageGallery.js +463 -0
  52. package/lib/commonjs/components/ImageGallery/index.js +20 -0
  53. package/lib/commonjs/components/Input/Input.js +390 -0
  54. package/lib/commonjs/components/Input/index.js +20 -0
  55. package/lib/commonjs/components/ListItem/ListItem.js +241 -0
  56. package/lib/commonjs/components/ListItem/index.js +20 -0
  57. package/lib/commonjs/components/LoadingSpinner/LoadingSpinner.js +183 -0
  58. package/lib/commonjs/components/LoadingSpinner/index.js +20 -0
  59. package/lib/commonjs/components/Modal/Modal.js +239 -0
  60. package/lib/commonjs/components/Modal/index.js +20 -0
  61. package/lib/commonjs/components/NumberInput/NumberInput.js +392 -0
  62. package/lib/commonjs/components/NumberInput/index.js +20 -0
  63. package/lib/commonjs/components/OTPInput/OTPInput.js +375 -0
  64. package/lib/commonjs/components/OTPInput/index.js +20 -0
  65. package/lib/commonjs/components/ProgressBar/ProgressBar.js +149 -0
  66. package/lib/commonjs/components/ProgressBar/index.js +20 -0
  67. package/lib/commonjs/components/Radio/Radio.js +160 -0
  68. package/lib/commonjs/components/Radio/RadioGroup.js +43 -0
  69. package/lib/commonjs/components/Radio/index.js +39 -0
  70. package/lib/commonjs/components/Rating/Rating.js +236 -0
  71. package/lib/commonjs/components/Rating/index.js +20 -0
  72. package/lib/commonjs/components/SearchBar/SearchBar.js +274 -0
  73. package/lib/commonjs/components/SearchBar/index.js +20 -0
  74. package/lib/commonjs/components/SegmentedControl/SegmentedControl.js +184 -0
  75. package/lib/commonjs/components/SegmentedControl/index.js +20 -0
  76. package/lib/commonjs/components/Select/Select.js +540 -0
  77. package/lib/commonjs/components/Select/index.js +20 -0
  78. package/lib/commonjs/components/SkeletonLoader/SkeletonContent.js +191 -0
  79. package/lib/commonjs/components/SkeletonLoader/SkeletonLoader.js +311 -0
  80. package/lib/commonjs/components/SkeletonLoader/index.js +57 -0
  81. package/lib/commonjs/components/Slider/Slider.js +443 -0
  82. package/lib/commonjs/components/Slider/index.js +20 -0
  83. package/lib/commonjs/components/Stepper/Stepper.js +403 -0
  84. package/lib/commonjs/components/Stepper/index.js +20 -0
  85. package/lib/commonjs/components/Swipeable/Swipeable.js +349 -0
  86. package/lib/commonjs/components/Swipeable/index.js +20 -0
  87. package/lib/commonjs/components/Switch/Switch.js +173 -0
  88. package/lib/commonjs/components/Switch/index.js +20 -0
  89. package/lib/commonjs/components/Tabs/Tabs.js +204 -0
  90. package/lib/commonjs/components/Tabs/index.js +20 -0
  91. package/lib/commonjs/components/TimePicker/TimePicker.js +551 -0
  92. package/lib/commonjs/components/TimePicker/index.js +20 -0
  93. package/lib/commonjs/components/Toast/Toast.js +273 -0
  94. package/lib/commonjs/components/Toast/ToastProvider.js +195 -0
  95. package/lib/commonjs/components/Toast/index.js +39 -0
  96. package/lib/commonjs/components/Tooltip/Tooltip.js +363 -0
  97. package/lib/commonjs/components/Tooltip/index.js +20 -0
  98. package/lib/commonjs/components/index.js +392 -0
  99. package/lib/commonjs/config/index.js +63 -0
  100. package/lib/commonjs/formatters/currency.js +61 -0
  101. package/lib/commonjs/formatters/date.js +156 -0
  102. package/lib/commonjs/formatters/index.js +77 -0
  103. package/lib/commonjs/formatters/initials.js +28 -0
  104. package/lib/commonjs/formatters/number.js +76 -0
  105. package/lib/commonjs/formatters/phone.js +59 -0
  106. package/lib/commonjs/hooks/index.js +27 -0
  107. package/lib/commonjs/hooks/useDebounce.js +17 -0
  108. package/lib/commonjs/hooks/usePressAnimation.js +44 -0
  109. package/lib/commonjs/hooks/useToggle.js +22 -0
  110. package/lib/commonjs/index.js +628 -0
  111. package/lib/commonjs/initSDK.js +47 -0
  112. package/lib/commonjs/initUI.js +24 -0
  113. package/lib/commonjs/initUserAuth.js +40 -0
  114. package/lib/commonjs/logger/index.js +127 -0
  115. package/lib/commonjs/network/NetworkStatusBanner.js +89 -0
  116. package/lib/commonjs/network/index.js +32 -0
  117. package/lib/commonjs/network/networkStatus.js +88 -0
  118. package/lib/commonjs/package.json +1 -0
  119. package/lib/commonjs/permissions/index.js +180 -0
  120. package/lib/commonjs/storage/index.js +187 -0
  121. package/lib/commonjs/theme/ThemeContext.js +73 -0
  122. package/lib/commonjs/theme/index.js +93 -0
  123. package/lib/commonjs/theme/merge.js +30 -0
  124. package/lib/commonjs/theme/tokens.js +319 -0
  125. package/lib/commonjs/theme/types.js +6 -0
  126. package/lib/commonjs/types/vector-icons.d.js +2 -0
  127. package/lib/commonjs/utils/dimensions.js +31 -0
  128. package/lib/commonjs/utils/hapticUtils.js +57 -0
  129. package/lib/commonjs/utils/imageCompression.js +51 -0
  130. package/lib/commonjs/utils/index.js +83 -0
  131. package/lib/commonjs/utils/responsive.js +48 -0
  132. package/lib/commonjs/utils/shadows.js +12 -0
  133. package/lib/commonjs/utils/spacing.js +86 -0
  134. package/lib/commonjs/validators/index.js +165 -0
  135. package/lib/commonjs/versionCheck/index.js +338 -0
  136. package/lib/module/api/publicClient.js +69 -0
  137. package/lib/module/api/userClient.js +283 -0
  138. package/lib/module/auth/authStore.js +100 -0
  139. package/lib/module/auth/index.js +5 -0
  140. package/lib/module/auth/jwt.js +78 -0
  141. package/lib/module/components/Accordion/Accordion.js +251 -0
  142. package/lib/module/components/Accordion/index.js +4 -0
  143. package/lib/module/components/Avatar/Avatar.js +278 -0
  144. package/lib/module/components/Avatar/index.js +4 -0
  145. package/lib/module/components/Badge/Badge.js +208 -0
  146. package/lib/module/components/Badge/index.js +4 -0
  147. package/lib/module/components/Banner/Banner.js +272 -0
  148. package/lib/module/components/Banner/index.js +4 -0
  149. package/lib/module/components/BottomNavigation/BottomNavigation.js +284 -0
  150. package/lib/module/components/BottomNavigation/index.js +4 -0
  151. package/lib/module/components/BottomSheet/BottomSheet.js +363 -0
  152. package/lib/module/components/BottomSheet/index.js +4 -0
  153. package/lib/module/components/Button/Button.js +277 -0
  154. package/lib/module/components/Button/index.js +4 -0
  155. package/lib/module/components/Card/Card.js +190 -0
  156. package/lib/module/components/Card/index.js +4 -0
  157. package/lib/module/components/Carousel/Carousel.js +471 -0
  158. package/lib/module/components/Carousel/index.js +4 -0
  159. package/lib/module/components/Checkbox/Checkbox.js +161 -0
  160. package/lib/module/components/Checkbox/index.js +4 -0
  161. package/lib/module/components/Chip/Chip.js +268 -0
  162. package/lib/module/components/Chip/index.js +4 -0
  163. package/lib/module/components/DatePicker/DatePicker.js +808 -0
  164. package/lib/module/components/DatePicker/index.js +4 -0
  165. package/lib/module/components/DateRangePicker/DateRangePicker.js +618 -0
  166. package/lib/module/components/DateRangePicker/index.js +4 -0
  167. package/lib/module/components/Dialog/Dialog.js +210 -0
  168. package/lib/module/components/Dialog/index.js +4 -0
  169. package/lib/module/components/Divider/Divider.js +114 -0
  170. package/lib/module/components/Divider/index.js +4 -0
  171. package/lib/module/components/Drawer/Drawer.js +340 -0
  172. package/lib/module/components/Drawer/index.js +4 -0
  173. package/lib/module/components/EmptyState/EmptyState.js +197 -0
  174. package/lib/module/components/EmptyState/index.js +4 -0
  175. package/lib/module/components/FAB/FAB.js +452 -0
  176. package/lib/module/components/FAB/index.js +4 -0
  177. package/lib/module/components/Field/Field.js +123 -0
  178. package/lib/module/components/Field/index.js +4 -0
  179. package/lib/module/components/ForceUpdateDialog/ForceUpdateDialog.js +75 -0
  180. package/lib/module/components/ForceUpdateDialog/index.js +4 -0
  181. package/lib/module/components/Header/Header.js +335 -0
  182. package/lib/module/components/Header/index.js +4 -0
  183. package/lib/module/components/Icon/Icon.js +111 -0
  184. package/lib/module/components/Icon/index.js +4 -0
  185. package/lib/module/components/ImageGallery/ImageGallery.js +458 -0
  186. package/lib/module/components/ImageGallery/index.js +4 -0
  187. package/lib/module/components/Input/Input.js +384 -0
  188. package/lib/module/components/Input/index.js +4 -0
  189. package/lib/module/components/ListItem/ListItem.js +237 -0
  190. package/lib/module/components/ListItem/index.js +4 -0
  191. package/lib/module/components/LoadingSpinner/LoadingSpinner.js +179 -0
  192. package/lib/module/components/LoadingSpinner/index.js +4 -0
  193. package/lib/module/components/Modal/Modal.js +235 -0
  194. package/lib/module/components/Modal/index.js +4 -0
  195. package/lib/module/components/NumberInput/NumberInput.js +388 -0
  196. package/lib/module/components/NumberInput/index.js +4 -0
  197. package/lib/module/components/OTPInput/OTPInput.js +371 -0
  198. package/lib/module/components/OTPInput/index.js +4 -0
  199. package/lib/module/components/ProgressBar/ProgressBar.js +145 -0
  200. package/lib/module/components/ProgressBar/index.js +4 -0
  201. package/lib/module/components/Radio/Radio.js +155 -0
  202. package/lib/module/components/Radio/RadioGroup.js +38 -0
  203. package/lib/module/components/Radio/index.js +5 -0
  204. package/lib/module/components/Rating/Rating.js +232 -0
  205. package/lib/module/components/Rating/index.js +4 -0
  206. package/lib/module/components/SearchBar/SearchBar.js +270 -0
  207. package/lib/module/components/SearchBar/index.js +4 -0
  208. package/lib/module/components/SegmentedControl/SegmentedControl.js +180 -0
  209. package/lib/module/components/SegmentedControl/index.js +4 -0
  210. package/lib/module/components/Select/Select.js +536 -0
  211. package/lib/module/components/Select/index.js +4 -0
  212. package/lib/module/components/SkeletonLoader/SkeletonContent.js +186 -0
  213. package/lib/module/components/SkeletonLoader/SkeletonLoader.js +301 -0
  214. package/lib/module/components/SkeletonLoader/index.js +5 -0
  215. package/lib/module/components/Slider/Slider.js +439 -0
  216. package/lib/module/components/Slider/index.js +4 -0
  217. package/lib/module/components/Stepper/Stepper.js +399 -0
  218. package/lib/module/components/Stepper/index.js +4 -0
  219. package/lib/module/components/Swipeable/Swipeable.js +344 -0
  220. package/lib/module/components/Swipeable/index.js +4 -0
  221. package/lib/module/components/Switch/Switch.js +169 -0
  222. package/lib/module/components/Switch/index.js +4 -0
  223. package/lib/module/components/Tabs/Tabs.js +200 -0
  224. package/lib/module/components/Tabs/index.js +4 -0
  225. package/lib/module/components/TimePicker/TimePicker.js +545 -0
  226. package/lib/module/components/TimePicker/index.js +4 -0
  227. package/lib/module/components/Toast/Toast.js +268 -0
  228. package/lib/module/components/Toast/ToastProvider.js +187 -0
  229. package/lib/module/components/Toast/index.js +5 -0
  230. package/lib/module/components/Tooltip/Tooltip.js +358 -0
  231. package/lib/module/components/Tooltip/index.js +4 -0
  232. package/lib/module/components/index.js +47 -0
  233. package/lib/module/config/index.js +55 -0
  234. package/lib/module/formatters/currency.js +56 -0
  235. package/lib/module/formatters/date.js +148 -0
  236. package/lib/module/formatters/index.js +8 -0
  237. package/lib/module/formatters/initials.js +23 -0
  238. package/lib/module/formatters/number.js +69 -0
  239. package/lib/module/formatters/phone.js +53 -0
  240. package/lib/module/hooks/index.js +6 -0
  241. package/lib/module/hooks/useDebounce.js +12 -0
  242. package/lib/module/hooks/usePressAnimation.js +39 -0
  243. package/lib/module/hooks/useToggle.js +17 -0
  244. package/lib/module/index.js +37 -0
  245. package/lib/module/initSDK.js +42 -0
  246. package/lib/module/initUI.js +19 -0
  247. package/lib/module/initUserAuth.js +36 -0
  248. package/lib/module/logger/index.js +123 -0
  249. package/lib/module/network/NetworkStatusBanner.js +83 -0
  250. package/lib/module/network/index.js +5 -0
  251. package/lib/module/network/networkStatus.js +81 -0
  252. package/lib/module/package.json +1 -0
  253. package/lib/module/permissions/index.js +177 -0
  254. package/lib/module/storage/index.js +183 -0
  255. package/lib/module/theme/ThemeContext.js +65 -0
  256. package/lib/module/theme/index.js +48 -0
  257. package/lib/module/theme/merge.js +25 -0
  258. package/lib/module/theme/tokens.js +315 -0
  259. package/lib/module/theme/types.js +4 -0
  260. package/lib/module/types/vector-icons.d.js +2 -0
  261. package/lib/module/utils/dimensions.js +4 -0
  262. package/lib/module/utils/hapticUtils.js +51 -0
  263. package/lib/module/utils/imageCompression.js +46 -0
  264. package/lib/module/utils/index.js +8 -0
  265. package/lib/module/utils/responsive.js +42 -0
  266. package/lib/module/utils/shadows.js +7 -0
  267. package/lib/module/utils/spacing.js +82 -0
  268. package/lib/module/validators/index.js +143 -0
  269. package/lib/module/versionCheck/index.js +334 -0
  270. package/lib/typescript/commonjs/api/publicClient.d.ts +11 -0
  271. package/lib/typescript/commonjs/api/userClient.d.ts +18 -0
  272. package/lib/typescript/commonjs/auth/authStore.d.ts +20 -0
  273. package/lib/typescript/commonjs/auth/index.d.ts +5 -0
  274. package/lib/typescript/commonjs/auth/jwt.d.ts +31 -0
  275. package/lib/typescript/commonjs/components/Accordion/Accordion.d.ts +33 -0
  276. package/lib/typescript/commonjs/components/Accordion/index.d.ts +3 -0
  277. package/lib/typescript/commonjs/components/Avatar/Avatar.d.ts +42 -0
  278. package/lib/typescript/commonjs/components/Avatar/index.d.ts +3 -0
  279. package/lib/typescript/commonjs/components/Badge/Badge.d.ts +27 -0
  280. package/lib/typescript/commonjs/components/Badge/index.d.ts +3 -0
  281. package/lib/typescript/commonjs/components/Banner/Banner.d.ts +27 -0
  282. package/lib/typescript/commonjs/components/Banner/index.d.ts +3 -0
  283. package/lib/typescript/commonjs/components/BottomNavigation/BottomNavigation.d.ts +34 -0
  284. package/lib/typescript/commonjs/components/BottomNavigation/index.d.ts +3 -0
  285. package/lib/typescript/commonjs/components/BottomSheet/BottomSheet.d.ts +45 -0
  286. package/lib/typescript/commonjs/components/BottomSheet/index.d.ts +3 -0
  287. package/lib/typescript/commonjs/components/Button/Button.d.ts +29 -0
  288. package/lib/typescript/commonjs/components/Button/index.d.ts +3 -0
  289. package/lib/typescript/commonjs/components/Card/Card.d.ts +29 -0
  290. package/lib/typescript/commonjs/components/Card/index.d.ts +3 -0
  291. package/lib/typescript/commonjs/components/Carousel/Carousel.d.ts +66 -0
  292. package/lib/typescript/commonjs/components/Carousel/index.d.ts +3 -0
  293. package/lib/typescript/commonjs/components/Checkbox/Checkbox.d.ts +24 -0
  294. package/lib/typescript/commonjs/components/Checkbox/index.d.ts +3 -0
  295. package/lib/typescript/commonjs/components/Chip/Chip.d.ts +25 -0
  296. package/lib/typescript/commonjs/components/Chip/index.d.ts +3 -0
  297. package/lib/typescript/commonjs/components/DatePicker/DatePicker.d.ts +25 -0
  298. package/lib/typescript/commonjs/components/DatePicker/index.d.ts +3 -0
  299. package/lib/typescript/commonjs/components/DateRangePicker/DateRangePicker.d.ts +32 -0
  300. package/lib/typescript/commonjs/components/DateRangePicker/index.d.ts +3 -0
  301. package/lib/typescript/commonjs/components/Dialog/Dialog.d.ts +25 -0
  302. package/lib/typescript/commonjs/components/Dialog/index.d.ts +3 -0
  303. package/lib/typescript/commonjs/components/Divider/Divider.d.ts +21 -0
  304. package/lib/typescript/commonjs/components/Divider/index.d.ts +3 -0
  305. package/lib/typescript/commonjs/components/Drawer/Drawer.d.ts +53 -0
  306. package/lib/typescript/commonjs/components/Drawer/index.d.ts +3 -0
  307. package/lib/typescript/commonjs/components/EmptyState/EmptyState.d.ts +25 -0
  308. package/lib/typescript/commonjs/components/EmptyState/index.d.ts +3 -0
  309. package/lib/typescript/commonjs/components/FAB/FAB.d.ts +53 -0
  310. package/lib/typescript/commonjs/components/FAB/index.d.ts +3 -0
  311. package/lib/typescript/commonjs/components/Field/Field.d.ts +28 -0
  312. package/lib/typescript/commonjs/components/Field/index.d.ts +3 -0
  313. package/lib/typescript/commonjs/components/ForceUpdateDialog/ForceUpdateDialog.d.ts +39 -0
  314. package/lib/typescript/commonjs/components/ForceUpdateDialog/index.d.ts +3 -0
  315. package/lib/typescript/commonjs/components/Header/Header.d.ts +36 -0
  316. package/lib/typescript/commonjs/components/Header/index.d.ts +3 -0
  317. package/lib/typescript/commonjs/components/Icon/Icon.d.ts +20 -0
  318. package/lib/typescript/commonjs/components/Icon/index.d.ts +3 -0
  319. package/lib/typescript/commonjs/components/ImageGallery/ImageGallery.d.ts +41 -0
  320. package/lib/typescript/commonjs/components/ImageGallery/index.d.ts +3 -0
  321. package/lib/typescript/commonjs/components/Input/Input.d.ts +34 -0
  322. package/lib/typescript/commonjs/components/Input/index.d.ts +3 -0
  323. package/lib/typescript/commonjs/components/ListItem/ListItem.d.ts +30 -0
  324. package/lib/typescript/commonjs/components/ListItem/index.d.ts +4 -0
  325. package/lib/typescript/commonjs/components/LoadingSpinner/LoadingSpinner.d.ts +20 -0
  326. package/lib/typescript/commonjs/components/LoadingSpinner/index.d.ts +3 -0
  327. package/lib/typescript/commonjs/components/Modal/Modal.d.ts +29 -0
  328. package/lib/typescript/commonjs/components/Modal/index.d.ts +3 -0
  329. package/lib/typescript/commonjs/components/NumberInput/NumberInput.d.ts +35 -0
  330. package/lib/typescript/commonjs/components/NumberInput/index.d.ts +3 -0
  331. package/lib/typescript/commonjs/components/OTPInput/OTPInput.d.ts +29 -0
  332. package/lib/typescript/commonjs/components/OTPInput/index.d.ts +3 -0
  333. package/lib/typescript/commonjs/components/ProgressBar/ProgressBar.d.ts +21 -0
  334. package/lib/typescript/commonjs/components/ProgressBar/index.d.ts +3 -0
  335. package/lib/typescript/commonjs/components/Radio/Radio.d.ts +32 -0
  336. package/lib/typescript/commonjs/components/Radio/RadioGroup.d.ts +16 -0
  337. package/lib/typescript/commonjs/components/Radio/index.d.ts +5 -0
  338. package/lib/typescript/commonjs/components/Rating/Rating.d.ts +22 -0
  339. package/lib/typescript/commonjs/components/Rating/index.d.ts +3 -0
  340. package/lib/typescript/commonjs/components/SearchBar/SearchBar.d.ts +28 -0
  341. package/lib/typescript/commonjs/components/SearchBar/index.d.ts +3 -0
  342. package/lib/typescript/commonjs/components/SegmentedControl/SegmentedControl.d.ts +36 -0
  343. package/lib/typescript/commonjs/components/SegmentedControl/index.d.ts +3 -0
  344. package/lib/typescript/commonjs/components/Select/Select.d.ts +48 -0
  345. package/lib/typescript/commonjs/components/Select/index.d.ts +3 -0
  346. package/lib/typescript/commonjs/components/SkeletonLoader/SkeletonContent.d.ts +29 -0
  347. package/lib/typescript/commonjs/components/SkeletonLoader/SkeletonLoader.d.ts +42 -0
  348. package/lib/typescript/commonjs/components/SkeletonLoader/index.d.ts +5 -0
  349. package/lib/typescript/commonjs/components/Slider/Slider.d.ts +33 -0
  350. package/lib/typescript/commonjs/components/Slider/index.d.ts +3 -0
  351. package/lib/typescript/commonjs/components/Stepper/Stepper.d.ts +25 -0
  352. package/lib/typescript/commonjs/components/Stepper/index.d.ts +3 -0
  353. package/lib/typescript/commonjs/components/Swipeable/Swipeable.d.ts +45 -0
  354. package/lib/typescript/commonjs/components/Swipeable/index.d.ts +3 -0
  355. package/lib/typescript/commonjs/components/Switch/Switch.d.ts +24 -0
  356. package/lib/typescript/commonjs/components/Switch/index.d.ts +3 -0
  357. package/lib/typescript/commonjs/components/Tabs/Tabs.d.ts +37 -0
  358. package/lib/typescript/commonjs/components/Tabs/index.d.ts +3 -0
  359. package/lib/typescript/commonjs/components/TimePicker/TimePicker.d.ts +26 -0
  360. package/lib/typescript/commonjs/components/TimePicker/index.d.ts +3 -0
  361. package/lib/typescript/commonjs/components/Toast/Toast.d.ts +30 -0
  362. package/lib/typescript/commonjs/components/Toast/ToastProvider.d.ts +26 -0
  363. package/lib/typescript/commonjs/components/Toast/index.d.ts +5 -0
  364. package/lib/typescript/commonjs/components/Tooltip/Tooltip.d.ts +22 -0
  365. package/lib/typescript/commonjs/components/Tooltip/index.d.ts +3 -0
  366. package/lib/typescript/commonjs/components/index.d.ts +89 -0
  367. package/lib/typescript/commonjs/config/index.d.ts +40 -0
  368. package/lib/typescript/commonjs/formatters/currency.d.ts +24 -0
  369. package/lib/typescript/commonjs/formatters/date.d.ts +22 -0
  370. package/lib/typescript/commonjs/formatters/index.d.ts +8 -0
  371. package/lib/typescript/commonjs/formatters/initials.d.ts +11 -0
  372. package/lib/typescript/commonjs/formatters/number.d.ts +15 -0
  373. package/lib/typescript/commonjs/formatters/phone.d.ts +13 -0
  374. package/lib/typescript/commonjs/hooks/index.d.ts +6 -0
  375. package/lib/typescript/commonjs/hooks/useDebounce.d.ts +2 -0
  376. package/lib/typescript/commonjs/hooks/usePressAnimation.d.ts +14 -0
  377. package/lib/typescript/commonjs/hooks/useToggle.d.ts +9 -0
  378. package/lib/typescript/commonjs/index.d.ts +37 -0
  379. package/lib/typescript/commonjs/initSDK.d.ts +40 -0
  380. package/lib/typescript/commonjs/initUI.d.ts +12 -0
  381. package/lib/typescript/commonjs/initUserAuth.d.ts +22 -0
  382. package/lib/typescript/commonjs/logger/index.d.ts +42 -0
  383. package/lib/typescript/commonjs/network/NetworkStatusBanner.d.ts +19 -0
  384. package/lib/typescript/commonjs/network/index.d.ts +5 -0
  385. package/lib/typescript/commonjs/network/networkStatus.d.ts +27 -0
  386. package/lib/typescript/commonjs/package.json +1 -0
  387. package/lib/typescript/commonjs/permissions/index.d.ts +20 -0
  388. package/lib/typescript/commonjs/storage/index.d.ts +42 -0
  389. package/lib/typescript/commonjs/theme/ThemeContext.d.ts +18 -0
  390. package/lib/typescript/commonjs/theme/index.d.ts +13 -0
  391. package/lib/typescript/commonjs/theme/merge.d.ts +3 -0
  392. package/lib/typescript/commonjs/theme/tokens.d.ts +4 -0
  393. package/lib/typescript/commonjs/theme/types.d.ts +161 -0
  394. package/lib/typescript/commonjs/utils/dimensions.d.ts +3 -0
  395. package/lib/typescript/commonjs/utils/hapticUtils.d.ts +4 -0
  396. package/lib/typescript/commonjs/utils/imageCompression.d.ts +15 -0
  397. package/lib/typescript/commonjs/utils/index.d.ts +10 -0
  398. package/lib/typescript/commonjs/utils/responsive.d.ts +23 -0
  399. package/lib/typescript/commonjs/utils/shadows.d.ts +4 -0
  400. package/lib/typescript/commonjs/utils/spacing.d.ts +61 -0
  401. package/lib/typescript/commonjs/validators/index.d.ts +46 -0
  402. package/lib/typescript/commonjs/versionCheck/index.d.ts +59 -0
  403. package/lib/typescript/module/api/publicClient.d.ts +11 -0
  404. package/lib/typescript/module/api/userClient.d.ts +18 -0
  405. package/lib/typescript/module/auth/authStore.d.ts +20 -0
  406. package/lib/typescript/module/auth/index.d.ts +5 -0
  407. package/lib/typescript/module/auth/jwt.d.ts +31 -0
  408. package/lib/typescript/module/components/Accordion/Accordion.d.ts +33 -0
  409. package/lib/typescript/module/components/Accordion/index.d.ts +3 -0
  410. package/lib/typescript/module/components/Avatar/Avatar.d.ts +42 -0
  411. package/lib/typescript/module/components/Avatar/index.d.ts +3 -0
  412. package/lib/typescript/module/components/Badge/Badge.d.ts +27 -0
  413. package/lib/typescript/module/components/Badge/index.d.ts +3 -0
  414. package/lib/typescript/module/components/Banner/Banner.d.ts +27 -0
  415. package/lib/typescript/module/components/Banner/index.d.ts +3 -0
  416. package/lib/typescript/module/components/BottomNavigation/BottomNavigation.d.ts +34 -0
  417. package/lib/typescript/module/components/BottomNavigation/index.d.ts +3 -0
  418. package/lib/typescript/module/components/BottomSheet/BottomSheet.d.ts +45 -0
  419. package/lib/typescript/module/components/BottomSheet/index.d.ts +3 -0
  420. package/lib/typescript/module/components/Button/Button.d.ts +29 -0
  421. package/lib/typescript/module/components/Button/index.d.ts +3 -0
  422. package/lib/typescript/module/components/Card/Card.d.ts +29 -0
  423. package/lib/typescript/module/components/Card/index.d.ts +3 -0
  424. package/lib/typescript/module/components/Carousel/Carousel.d.ts +66 -0
  425. package/lib/typescript/module/components/Carousel/index.d.ts +3 -0
  426. package/lib/typescript/module/components/Checkbox/Checkbox.d.ts +24 -0
  427. package/lib/typescript/module/components/Checkbox/index.d.ts +3 -0
  428. package/lib/typescript/module/components/Chip/Chip.d.ts +25 -0
  429. package/lib/typescript/module/components/Chip/index.d.ts +3 -0
  430. package/lib/typescript/module/components/DatePicker/DatePicker.d.ts +25 -0
  431. package/lib/typescript/module/components/DatePicker/index.d.ts +3 -0
  432. package/lib/typescript/module/components/DateRangePicker/DateRangePicker.d.ts +32 -0
  433. package/lib/typescript/module/components/DateRangePicker/index.d.ts +3 -0
  434. package/lib/typescript/module/components/Dialog/Dialog.d.ts +25 -0
  435. package/lib/typescript/module/components/Dialog/index.d.ts +3 -0
  436. package/lib/typescript/module/components/Divider/Divider.d.ts +21 -0
  437. package/lib/typescript/module/components/Divider/index.d.ts +3 -0
  438. package/lib/typescript/module/components/Drawer/Drawer.d.ts +53 -0
  439. package/lib/typescript/module/components/Drawer/index.d.ts +3 -0
  440. package/lib/typescript/module/components/EmptyState/EmptyState.d.ts +25 -0
  441. package/lib/typescript/module/components/EmptyState/index.d.ts +3 -0
  442. package/lib/typescript/module/components/FAB/FAB.d.ts +53 -0
  443. package/lib/typescript/module/components/FAB/index.d.ts +3 -0
  444. package/lib/typescript/module/components/Field/Field.d.ts +28 -0
  445. package/lib/typescript/module/components/Field/index.d.ts +3 -0
  446. package/lib/typescript/module/components/ForceUpdateDialog/ForceUpdateDialog.d.ts +39 -0
  447. package/lib/typescript/module/components/ForceUpdateDialog/index.d.ts +3 -0
  448. package/lib/typescript/module/components/Header/Header.d.ts +36 -0
  449. package/lib/typescript/module/components/Header/index.d.ts +3 -0
  450. package/lib/typescript/module/components/Icon/Icon.d.ts +20 -0
  451. package/lib/typescript/module/components/Icon/index.d.ts +3 -0
  452. package/lib/typescript/module/components/ImageGallery/ImageGallery.d.ts +41 -0
  453. package/lib/typescript/module/components/ImageGallery/index.d.ts +3 -0
  454. package/lib/typescript/module/components/Input/Input.d.ts +34 -0
  455. package/lib/typescript/module/components/Input/index.d.ts +3 -0
  456. package/lib/typescript/module/components/ListItem/ListItem.d.ts +30 -0
  457. package/lib/typescript/module/components/ListItem/index.d.ts +4 -0
  458. package/lib/typescript/module/components/LoadingSpinner/LoadingSpinner.d.ts +20 -0
  459. package/lib/typescript/module/components/LoadingSpinner/index.d.ts +3 -0
  460. package/lib/typescript/module/components/Modal/Modal.d.ts +29 -0
  461. package/lib/typescript/module/components/Modal/index.d.ts +3 -0
  462. package/lib/typescript/module/components/NumberInput/NumberInput.d.ts +35 -0
  463. package/lib/typescript/module/components/NumberInput/index.d.ts +3 -0
  464. package/lib/typescript/module/components/OTPInput/OTPInput.d.ts +29 -0
  465. package/lib/typescript/module/components/OTPInput/index.d.ts +3 -0
  466. package/lib/typescript/module/components/ProgressBar/ProgressBar.d.ts +21 -0
  467. package/lib/typescript/module/components/ProgressBar/index.d.ts +3 -0
  468. package/lib/typescript/module/components/Radio/Radio.d.ts +32 -0
  469. package/lib/typescript/module/components/Radio/RadioGroup.d.ts +16 -0
  470. package/lib/typescript/module/components/Radio/index.d.ts +5 -0
  471. package/lib/typescript/module/components/Rating/Rating.d.ts +22 -0
  472. package/lib/typescript/module/components/Rating/index.d.ts +3 -0
  473. package/lib/typescript/module/components/SearchBar/SearchBar.d.ts +28 -0
  474. package/lib/typescript/module/components/SearchBar/index.d.ts +3 -0
  475. package/lib/typescript/module/components/SegmentedControl/SegmentedControl.d.ts +36 -0
  476. package/lib/typescript/module/components/SegmentedControl/index.d.ts +3 -0
  477. package/lib/typescript/module/components/Select/Select.d.ts +48 -0
  478. package/lib/typescript/module/components/Select/index.d.ts +3 -0
  479. package/lib/typescript/module/components/SkeletonLoader/SkeletonContent.d.ts +29 -0
  480. package/lib/typescript/module/components/SkeletonLoader/SkeletonLoader.d.ts +42 -0
  481. package/lib/typescript/module/components/SkeletonLoader/index.d.ts +5 -0
  482. package/lib/typescript/module/components/Slider/Slider.d.ts +33 -0
  483. package/lib/typescript/module/components/Slider/index.d.ts +3 -0
  484. package/lib/typescript/module/components/Stepper/Stepper.d.ts +25 -0
  485. package/lib/typescript/module/components/Stepper/index.d.ts +3 -0
  486. package/lib/typescript/module/components/Swipeable/Swipeable.d.ts +45 -0
  487. package/lib/typescript/module/components/Swipeable/index.d.ts +3 -0
  488. package/lib/typescript/module/components/Switch/Switch.d.ts +24 -0
  489. package/lib/typescript/module/components/Switch/index.d.ts +3 -0
  490. package/lib/typescript/module/components/Tabs/Tabs.d.ts +37 -0
  491. package/lib/typescript/module/components/Tabs/index.d.ts +3 -0
  492. package/lib/typescript/module/components/TimePicker/TimePicker.d.ts +26 -0
  493. package/lib/typescript/module/components/TimePicker/index.d.ts +3 -0
  494. package/lib/typescript/module/components/Toast/Toast.d.ts +30 -0
  495. package/lib/typescript/module/components/Toast/ToastProvider.d.ts +26 -0
  496. package/lib/typescript/module/components/Toast/index.d.ts +5 -0
  497. package/lib/typescript/module/components/Tooltip/Tooltip.d.ts +22 -0
  498. package/lib/typescript/module/components/Tooltip/index.d.ts +3 -0
  499. package/lib/typescript/module/components/index.d.ts +89 -0
  500. package/lib/typescript/module/config/index.d.ts +40 -0
  501. package/lib/typescript/module/formatters/currency.d.ts +24 -0
  502. package/lib/typescript/module/formatters/date.d.ts +22 -0
  503. package/lib/typescript/module/formatters/index.d.ts +8 -0
  504. package/lib/typescript/module/formatters/initials.d.ts +11 -0
  505. package/lib/typescript/module/formatters/number.d.ts +15 -0
  506. package/lib/typescript/module/formatters/phone.d.ts +13 -0
  507. package/lib/typescript/module/hooks/index.d.ts +6 -0
  508. package/lib/typescript/module/hooks/useDebounce.d.ts +2 -0
  509. package/lib/typescript/module/hooks/usePressAnimation.d.ts +14 -0
  510. package/lib/typescript/module/hooks/useToggle.d.ts +9 -0
  511. package/lib/typescript/module/index.d.ts +37 -0
  512. package/lib/typescript/module/initSDK.d.ts +40 -0
  513. package/lib/typescript/module/initUI.d.ts +12 -0
  514. package/lib/typescript/module/initUserAuth.d.ts +22 -0
  515. package/lib/typescript/module/logger/index.d.ts +42 -0
  516. package/lib/typescript/module/network/NetworkStatusBanner.d.ts +19 -0
  517. package/lib/typescript/module/network/index.d.ts +5 -0
  518. package/lib/typescript/module/network/networkStatus.d.ts +27 -0
  519. package/lib/typescript/module/package.json +1 -0
  520. package/lib/typescript/module/permissions/index.d.ts +20 -0
  521. package/lib/typescript/module/storage/index.d.ts +42 -0
  522. package/lib/typescript/module/theme/ThemeContext.d.ts +18 -0
  523. package/lib/typescript/module/theme/index.d.ts +13 -0
  524. package/lib/typescript/module/theme/merge.d.ts +3 -0
  525. package/lib/typescript/module/theme/tokens.d.ts +4 -0
  526. package/lib/typescript/module/theme/types.d.ts +161 -0
  527. package/lib/typescript/module/utils/dimensions.d.ts +3 -0
  528. package/lib/typescript/module/utils/hapticUtils.d.ts +4 -0
  529. package/lib/typescript/module/utils/imageCompression.d.ts +15 -0
  530. package/lib/typescript/module/utils/index.d.ts +10 -0
  531. package/lib/typescript/module/utils/responsive.d.ts +23 -0
  532. package/lib/typescript/module/utils/shadows.d.ts +4 -0
  533. package/lib/typescript/module/utils/spacing.d.ts +61 -0
  534. package/lib/typescript/module/validators/index.d.ts +46 -0
  535. package/lib/typescript/module/versionCheck/index.d.ts +59 -0
  536. package/package.json +137 -0
@@ -0,0 +1,371 @@
1
+ "use strict";
2
+
3
+ import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
4
+ import { Animated, Easing, Pressable, StyleSheet, Text, TextInput, View } from 'react-native';
5
+ import { useTheme } from "../../theme/index.js";
6
+ import { triggerHaptic } from "../../utils/index.js";
7
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
+ const sizeMap = {
9
+ sm: {
10
+ cell: 36,
11
+ fontSize: 16,
12
+ borderRadius: 8,
13
+ gap: 8
14
+ },
15
+ md: {
16
+ cell: 48,
17
+ fontSize: 20,
18
+ borderRadius: 10,
19
+ gap: 10
20
+ },
21
+ lg: {
22
+ cell: 56,
23
+ fontSize: 24,
24
+ borderRadius: 12,
25
+ gap: 12
26
+ }
27
+ };
28
+ const sanitizeChar = (input, kind) => {
29
+ if (!input) return '';
30
+ if (kind === 'number-pad') {
31
+ return input.replace(/\D/g, '');
32
+ }
33
+ return input;
34
+ };
35
+ const OTPInput = /*#__PURE__*/forwardRef((props, ref) => {
36
+ const {
37
+ value,
38
+ onChange,
39
+ onComplete,
40
+ length = 6,
41
+ keyboardType = 'number-pad',
42
+ autoFocus = false,
43
+ disabled = false,
44
+ error,
45
+ size = 'md',
46
+ secure = false,
47
+ accessibilityLabel,
48
+ style,
49
+ cellStyle,
50
+ textStyle,
51
+ testID
52
+ } = props;
53
+ const theme = useTheme();
54
+ const styles = useMemo(() => buildStyles(theme), [theme]);
55
+ const sizeStyles = sizeMap[size];
56
+ const inputsRef = useRef([]);
57
+ const [focusedIndex, setFocusedIndex] = useState(-1);
58
+ const previousErrorRef = useRef(null);
59
+ const shake = useRef(new Animated.Value(0)).current;
60
+ const underlines = useRef(Array.from({
61
+ length
62
+ }, () => new Animated.Value(0))).current;
63
+ const previousFocusedIndexRef = useRef(-1);
64
+
65
+ // Resize underline array if length prop changes between renders.
66
+ if (underlines.length !== length) {
67
+ if (underlines.length < length) {
68
+ for (let i = underlines.length; i < length; i += 1) {
69
+ underlines.push(new Animated.Value(0));
70
+ }
71
+ } else {
72
+ underlines.length = length;
73
+ }
74
+ }
75
+ const hasError = Boolean(error);
76
+ const errorMessage = typeof error === 'string' ? error : undefined;
77
+
78
+ // Shake on transition from no-error -> error. Skip on first mount even if
79
+ // error is initially true — there's no transition to animate.
80
+ useEffect(() => {
81
+ const isFirstRun = previousErrorRef.current === null;
82
+ if (!isFirstRun && hasError && !previousErrorRef.current) {
83
+ triggerHaptic('notificationError');
84
+ shake.setValue(0);
85
+ Animated.sequence([Animated.timing(shake, {
86
+ toValue: 1,
87
+ duration: 75,
88
+ easing: Easing.linear,
89
+ useNativeDriver: true
90
+ }), Animated.timing(shake, {
91
+ toValue: -1,
92
+ duration: 75,
93
+ easing: Easing.linear,
94
+ useNativeDriver: true
95
+ }), Animated.timing(shake, {
96
+ toValue: 1,
97
+ duration: 75,
98
+ easing: Easing.linear,
99
+ useNativeDriver: true
100
+ }), Animated.timing(shake, {
101
+ toValue: 0,
102
+ duration: 75,
103
+ easing: Easing.linear,
104
+ useNativeDriver: true
105
+ })]).start();
106
+ }
107
+ previousErrorRef.current = hasError;
108
+ }, [hasError, shake]);
109
+
110
+ // Animate underline opacity for the focused cell. Skip on first mount
111
+ // (no prior focus state) — values are already at 0 and there's nothing to animate.
112
+ useEffect(() => {
113
+ const previous = previousFocusedIndexRef.current;
114
+ previousFocusedIndexRef.current = focusedIndex;
115
+ if (previous === focusedIndex) return;
116
+ if (previous === -1 && focusedIndex === -1) return;
117
+ underlines.forEach((anim, idx) => {
118
+ const target = idx === focusedIndex ? 1 : 0;
119
+ // Only animate the cells whose target changed.
120
+ if (idx !== focusedIndex && idx !== previous) return;
121
+ Animated.timing(anim, {
122
+ toValue: target,
123
+ duration: theme.motion.duration.fast,
124
+ easing: Easing.bezier(...theme.motion.easing.standard),
125
+ useNativeDriver: true
126
+ }).start();
127
+ });
128
+ }, [focusedIndex, underlines, theme]);
129
+ const focusCell = useCallback(index => {
130
+ const target = inputsRef.current[index];
131
+ if (target) {
132
+ target.focus();
133
+ }
134
+ }, []);
135
+ useImperativeHandle(ref, () => ({
136
+ focus: () => focusCell(0),
137
+ blur: () => {
138
+ const current = inputsRef.current[focusedIndex >= 0 ? focusedIndex : 0];
139
+ current?.blur();
140
+ },
141
+ clear: () => {
142
+ onChange('');
143
+ focusCell(0);
144
+ }
145
+ }), [focusCell, focusedIndex, onChange]);
146
+ useEffect(() => {
147
+ if (autoFocus && !disabled) {
148
+ // Defer one frame so the inputs are mounted.
149
+ const timer = setTimeout(() => focusCell(0), 0);
150
+ return () => clearTimeout(timer);
151
+ }
152
+ return undefined;
153
+ }, [autoFocus, disabled, focusCell]);
154
+ const cells = useMemo(() => {
155
+ const arr = new Array(length).fill('');
156
+ for (let i = 0; i < Math.min(value.length, length); i += 1) {
157
+ arr[i] = value[i] ?? '';
158
+ }
159
+ return arr;
160
+ }, [value, length]);
161
+ const updateValue = useCallback(next => {
162
+ const trimmed = next.slice(0, length);
163
+ if (trimmed === value) return;
164
+ onChange(trimmed);
165
+ if (trimmed.length === length && onComplete) {
166
+ onComplete(trimmed);
167
+ }
168
+ }, [length, onChange, onComplete, value]);
169
+ const handleChangeText = useCallback((index, raw) => {
170
+ const sanitized = sanitizeChar(raw, keyboardType);
171
+ if (!sanitized) {
172
+ // User cleared this cell explicitly via change (rare since we manage backspace via key-press).
173
+ const chars = cells.slice();
174
+ chars[index] = '';
175
+ updateValue(chars.join('').slice(0, length));
176
+ return;
177
+ }
178
+
179
+ // Fill cells from current index onward (handles paste of multi-char text).
180
+ const chars = cells.slice();
181
+ let writeIndex = index;
182
+ for (let i = 0; i < sanitized.length && writeIndex < length; i += 1) {
183
+ chars[writeIndex] = sanitized[i] ?? '';
184
+ writeIndex += 1;
185
+ }
186
+ const next = chars.join('').slice(0, length);
187
+ const previousLength = value.length;
188
+ updateValue(next);
189
+ if (next.length !== previousLength) {
190
+ triggerHaptic('selection');
191
+ }
192
+
193
+ // Move focus to the next empty cell or last cell.
194
+ const nextFocus = Math.min(writeIndex, length - 1);
195
+ if (writeIndex >= length) {
196
+ // All filled — blur last cell.
197
+ inputsRef.current[length - 1]?.blur();
198
+ } else {
199
+ focusCell(nextFocus);
200
+ }
201
+ }, [cells, focusCell, keyboardType, length, updateValue, value]);
202
+ const handleKeyPress = useCallback((index, e) => {
203
+ const key = e.nativeEvent.key;
204
+ if (key !== 'Backspace') return;
205
+ const current = cells[index] ?? '';
206
+ if (current.length === 0) {
207
+ // Move back, clear previous cell.
208
+ if (index > 0) {
209
+ const chars = cells.slice();
210
+ chars[index - 1] = '';
211
+ updateValue(chars.join(''));
212
+ focusCell(index - 1);
213
+ }
214
+ } else {
215
+ const chars = cells.slice();
216
+ chars[index] = '';
217
+ updateValue(chars.join(''));
218
+ }
219
+ }, [cells, focusCell, updateValue]);
220
+ const handleFocus = useCallback(index => {
221
+ setFocusedIndex(index);
222
+ }, []);
223
+ const handleBlur = useCallback(() => {
224
+ setFocusedIndex(-1);
225
+ }, []);
226
+ const handleContainerPress = useCallback(() => {
227
+ if (disabled) return;
228
+ // Focus the first empty cell, else the last cell.
229
+ const firstEmpty = cells.findIndex(c => c === '');
230
+ focusCell(firstEmpty === -1 ? length - 1 : firstEmpty);
231
+ }, [cells, disabled, focusCell, length]);
232
+ const accessibleLabel = accessibilityLabel ?? `Enter ${length}-digit code`;
233
+ const translateX = shake.interpolate({
234
+ inputRange: [-1, 1],
235
+ outputRange: [-6, 6]
236
+ });
237
+ return /*#__PURE__*/_jsxs(View, {
238
+ style: style,
239
+ accessible: true,
240
+ accessibilityRole: "none",
241
+ accessibilityLabel: accessibleLabel,
242
+ accessibilityValue: {
243
+ text: value
244
+ },
245
+ accessibilityState: {
246
+ disabled
247
+ },
248
+ testID: testID,
249
+ children: [/*#__PURE__*/_jsx(Pressable, {
250
+ onPress: handleContainerPress,
251
+ disabled: disabled,
252
+ accessible: false,
253
+ children: /*#__PURE__*/_jsx(Animated.View, {
254
+ style: [styles.row, {
255
+ columnGap: sizeStyles.gap,
256
+ transform: [{
257
+ translateX
258
+ }]
259
+ }],
260
+ children: cells.map((char, index) => {
261
+ const isFocused = focusedIndex === index;
262
+ const isFilled = char.length > 0;
263
+ const borderColor = hasError ? theme.colors.border.error : isFocused ? theme.colors.border.focus : theme.colors.border.primary;
264
+ const backgroundColor = disabled ? theme.colors.surface.disabled : theme.colors.background.secondary;
265
+ const underlineColor = hasError ? theme.colors.border.error : theme.colors.border.focus;
266
+ const underlineOpacity = underlines[index] ?? new Animated.Value(0);
267
+ const display = secure && isFilled ? '●' : char;
268
+ return /*#__PURE__*/_jsxs(View, {
269
+ style: styles.cellWrapper,
270
+ children: [/*#__PURE__*/_jsxs(View, {
271
+ style: [styles.cell, {
272
+ width: sizeStyles.cell,
273
+ height: sizeStyles.cell,
274
+ borderRadius: sizeStyles.borderRadius,
275
+ backgroundColor,
276
+ borderColor
277
+ }, cellStyle],
278
+ accessibilityElementsHidden: true,
279
+ importantForAccessibility: "no-hide-descendants",
280
+ children: [/*#__PURE__*/_jsx(TextInput, {
281
+ ref: node => {
282
+ inputsRef.current[index] = node;
283
+ },
284
+ value: secure && isFilled ? '' : char,
285
+ onChangeText: t => handleChangeText(index, t),
286
+ onKeyPress: e => handleKeyPress(index, e),
287
+ onFocus: () => handleFocus(index),
288
+ onBlur: handleBlur,
289
+ keyboardType: keyboardType,
290
+ editable: !disabled,
291
+ selectTextOnFocus: true,
292
+ caretHidden: isFilled,
293
+ maxLength: length,
294
+ textContentType: index === 0 ? 'oneTimeCode' : 'none',
295
+ autoComplete: index === 0 ? 'sms-otp' : 'off',
296
+ importantForAutofill: index === 0 ? 'yes' : 'no',
297
+ style: [styles.input, {
298
+ fontSize: sizeStyles.fontSize,
299
+ color: theme.colors.text.primary,
300
+ fontWeight: theme.typography.fontWeight.semibold
301
+ }, textStyle]
302
+ }), secure && isFilled ? /*#__PURE__*/_jsx(View, {
303
+ pointerEvents: "none",
304
+ style: styles.maskOverlay,
305
+ children: /*#__PURE__*/_jsx(Text, {
306
+ style: [{
307
+ fontSize: sizeStyles.fontSize,
308
+ color: theme.colors.text.primary,
309
+ fontWeight: theme.typography.fontWeight.semibold
310
+ }, textStyle],
311
+ children: display
312
+ })
313
+ }) : null]
314
+ }), /*#__PURE__*/_jsx(Animated.View, {
315
+ style: [styles.underline, {
316
+ backgroundColor: underlineColor,
317
+ opacity: underlineOpacity
318
+ }]
319
+ })]
320
+ }, `otp-cell-${index}`);
321
+ })
322
+ })
323
+ }), errorMessage ? /*#__PURE__*/_jsx(Text, {
324
+ style: [styles.errorText, {
325
+ color: theme.colors.error,
326
+ fontSize: theme.typography.fontSize.sm
327
+ }],
328
+ accessibilityLiveRegion: "polite",
329
+ children: errorMessage
330
+ }) : null]
331
+ });
332
+ });
333
+ OTPInput.displayName = 'OTPInput';
334
+ const buildStyles = _theme => StyleSheet.create({
335
+ row: {
336
+ flexDirection: 'row',
337
+ alignItems: 'center'
338
+ },
339
+ cellWrapper: {
340
+ alignItems: 'center'
341
+ },
342
+ cell: {
343
+ borderWidth: 1.5,
344
+ alignItems: 'center',
345
+ justifyContent: 'center',
346
+ overflow: 'hidden'
347
+ },
348
+ input: {
349
+ width: '100%',
350
+ height: '100%',
351
+ textAlign: 'center',
352
+ padding: 0
353
+ },
354
+ maskOverlay: {
355
+ ...StyleSheet.absoluteFillObject,
356
+ alignItems: 'center',
357
+ justifyContent: 'center'
358
+ },
359
+ underline: {
360
+ marginTop: 4,
361
+ height: 2,
362
+ width: '60%',
363
+ borderRadius: 1
364
+ },
365
+ errorText: {
366
+ marginTop: 6
367
+ }
368
+ });
369
+ export { OTPInput };
370
+ export default OTPInput;
371
+ //# sourceMappingURL=OTPInput.js.map
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export { OTPInput, default } from "./OTPInput.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+
3
+ import React, { forwardRef, useEffect, useMemo, useRef } from 'react';
4
+ import { Animated, Easing, StyleSheet, View } from 'react-native';
5
+ import { useTheme } from "../../theme/index.js";
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ const toneColor = (theme, tone) => {
8
+ switch (tone) {
9
+ case 'success':
10
+ return theme.colors.success;
11
+ case 'warning':
12
+ return theme.colors.warning;
13
+ case 'error':
14
+ return theme.colors.error;
15
+ case 'primary':
16
+ default:
17
+ return theme.colors.primary;
18
+ }
19
+ };
20
+ const clampProgress = value => {
21
+ if (typeof value !== 'number' || Number.isNaN(value)) return 0;
22
+ if (value < 0) return 0;
23
+ if (value > 1) return 1;
24
+ return value;
25
+ };
26
+ const ProgressBar = /*#__PURE__*/forwardRef((props, ref) => {
27
+ const theme = useTheme();
28
+ const {
29
+ progress,
30
+ indeterminate: indeterminateProp,
31
+ height = 6,
32
+ radius,
33
+ tone = 'primary',
34
+ trackColor,
35
+ barColor,
36
+ animated = true,
37
+ style,
38
+ accessibilityLabel,
39
+ testID
40
+ } = props;
41
+ const isIndeterminate = indeterminateProp ?? typeof progress !== 'number';
42
+ const clamped = clampProgress(progress);
43
+ const fillAnim = useRef(new Animated.Value(clamped)).current;
44
+ const loopAnim = useRef(new Animated.Value(0)).current;
45
+ const widthRef = useRef(0);
46
+ const styles = useMemo(() => buildStyles(theme), [theme]);
47
+ const resolvedRadius = radius ?? theme.radius.full;
48
+ const resolvedTrack = trackColor ?? theme.colors.surface.disabled;
49
+ const resolvedBar = barColor ?? toneColor(theme, tone);
50
+ useEffect(() => {
51
+ if (isIndeterminate) return;
52
+ if (!animated) {
53
+ fillAnim.setValue(clamped);
54
+ return;
55
+ }
56
+ Animated.timing(fillAnim, {
57
+ toValue: clamped,
58
+ duration: 400,
59
+ easing: Easing.bezier(...theme.motion.easing.standard),
60
+ useNativeDriver: false
61
+ }).start();
62
+ }, [animated, clamped, fillAnim, isIndeterminate, theme]);
63
+ useEffect(() => {
64
+ if (!isIndeterminate) return;
65
+ loopAnim.setValue(0);
66
+ const animation = Animated.loop(Animated.timing(loopAnim, {
67
+ toValue: 1,
68
+ duration: 1500,
69
+ easing: Easing.inOut(Easing.ease),
70
+ useNativeDriver: true
71
+ }));
72
+ animation.start();
73
+ return () => {
74
+ animation.stop();
75
+ };
76
+ }, [isIndeterminate, loopAnim]);
77
+ const determinateWidth = fillAnim.interpolate({
78
+ inputRange: [0, 1],
79
+ outputRange: ['0%', '100%']
80
+ });
81
+ const indeterminateTranslate = loopAnim.interpolate({
82
+ inputRange: [0, 1],
83
+ outputRange: [-1, 1]
84
+ });
85
+ const onLayout = event => {
86
+ widthRef.current = event.nativeEvent.layout.width;
87
+ };
88
+ return /*#__PURE__*/_jsx(View, {
89
+ ref: ref,
90
+ accessibilityRole: "progressbar",
91
+ accessibilityLabel: accessibilityLabel,
92
+ accessibilityValue: isIndeterminate ? {
93
+ text: 'Loading'
94
+ } : {
95
+ min: 0,
96
+ max: 100,
97
+ now: Math.round(clamped * 100)
98
+ },
99
+ testID: testID,
100
+ onLayout: onLayout,
101
+ style: [styles.track, {
102
+ height,
103
+ borderRadius: resolvedRadius,
104
+ backgroundColor: resolvedTrack
105
+ }, style],
106
+ children: isIndeterminate ? /*#__PURE__*/_jsx(Animated.View, {
107
+ style: [styles.indeterminateBar, {
108
+ height,
109
+ borderRadius: resolvedRadius,
110
+ backgroundColor: resolvedBar,
111
+ transform: [{
112
+ translateX: Animated.multiply(indeterminateTranslate, new Animated.Value(widthRef.current || 0))
113
+ }]
114
+ }]
115
+ }) : /*#__PURE__*/_jsx(Animated.View, {
116
+ style: [styles.determinateBar, {
117
+ height,
118
+ borderRadius: resolvedRadius,
119
+ backgroundColor: resolvedBar,
120
+ width: determinateWidth
121
+ }]
122
+ })
123
+ });
124
+ });
125
+ ProgressBar.displayName = 'ProgressBar';
126
+ const buildStyles = _theme => StyleSheet.create({
127
+ track: {
128
+ width: '100%',
129
+ overflow: 'hidden'
130
+ },
131
+ determinateBar: {
132
+ position: 'absolute',
133
+ left: 0,
134
+ top: 0
135
+ },
136
+ indeterminateBar: {
137
+ position: 'absolute',
138
+ left: 0,
139
+ top: 0,
140
+ width: '30%'
141
+ }
142
+ });
143
+ export { ProgressBar };
144
+ export default ProgressBar;
145
+ //# sourceMappingURL=ProgressBar.js.map
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export { ProgressBar, default } from "./ProgressBar.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+
3
+ import React, { createContext, forwardRef, useContext, useEffect, useMemo, useRef } from 'react';
4
+ import { Animated, Pressable, StyleSheet, Text, View } from 'react-native';
5
+ import { useTheme } from "../../theme/index.js";
6
+ import { triggerHaptic } from "../../utils/hapticUtils.js";
7
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
+ export const RadioGroupContext = /*#__PURE__*/createContext(null);
9
+ export const useRadioGroup = () => useContext(RadioGroupContext);
10
+ const sizeMap = {
11
+ sm: {
12
+ outer: 16,
13
+ inner: 8
14
+ },
15
+ md: {
16
+ outer: 20,
17
+ inner: 10
18
+ },
19
+ lg: {
20
+ outer: 24,
21
+ inner: 12
22
+ }
23
+ };
24
+ const toneColor = (theme, tone) => {
25
+ switch (tone) {
26
+ case 'success':
27
+ return theme.colors.success;
28
+ case 'warning':
29
+ return theme.colors.warning;
30
+ case 'error':
31
+ return theme.colors.error;
32
+ case 'primary':
33
+ default:
34
+ return theme.colors.primary;
35
+ }
36
+ };
37
+ const Radio = /*#__PURE__*/forwardRef((props, ref) => {
38
+ const {
39
+ value,
40
+ selected: selectedProp,
41
+ onSelect,
42
+ disabled: disabledProp = false,
43
+ label,
44
+ size = 'md',
45
+ tone = 'primary',
46
+ accessibilityLabel,
47
+ haptic = 'selection',
48
+ style,
49
+ circleStyle,
50
+ testID,
51
+ ...rest
52
+ } = props;
53
+ const theme = useTheme();
54
+ const styles = useMemo(() => buildStyles(theme), [theme]);
55
+ const ctx = useRadioGroup();
56
+ const selected = ctx ? ctx.selectedValue === value : !!selectedProp;
57
+ const disabled = ctx ? ctx.disabled || disabledProp : disabledProp;
58
+ const fillColor = toneColor(theme, tone);
59
+ const {
60
+ outer,
61
+ inner
62
+ } = sizeMap[size];
63
+ const progress = useRef(new Animated.Value(selected ? 1 : 0)).current;
64
+ useEffect(() => {
65
+ Animated.spring(progress, {
66
+ toValue: selected ? 1 : 0,
67
+ damping: theme.motion.spring.snappy.damping,
68
+ stiffness: theme.motion.spring.snappy.stiffness,
69
+ mass: theme.motion.spring.snappy.mass,
70
+ useNativeDriver: true
71
+ }).start();
72
+ }, [selected, progress, theme.motion.spring.snappy]);
73
+ const scale = progress.interpolate({
74
+ inputRange: [0, 1],
75
+ outputRange: [0, 1]
76
+ });
77
+ const handlePress = event => {
78
+ if (disabled) return;
79
+ if (haptic !== false) triggerHaptic(haptic);
80
+ if (ctx) {
81
+ ctx.onSelect(value);
82
+ } else {
83
+ onSelect?.(value);
84
+ }
85
+ rest.onPressOut?.(event);
86
+ };
87
+ const accessibleLabel = accessibilityLabel ?? label;
88
+ const borderColor = disabled ? theme.colors.border.primary : selected ? fillColor : theme.colors.border.primary;
89
+ return /*#__PURE__*/_jsxs(Pressable, {
90
+ ref: ref,
91
+ onPress: handlePress,
92
+ disabled: disabled,
93
+ accessibilityRole: "radio",
94
+ accessibilityLabel: accessibleLabel,
95
+ accessibilityState: {
96
+ checked: selected,
97
+ disabled
98
+ },
99
+ testID: testID,
100
+ hitSlop: 6,
101
+ ...rest,
102
+ style: ({
103
+ pressed
104
+ }) => [styles.row, {
105
+ opacity: disabled ? 0.55 : pressed ? 0.85 : 1
106
+ }, style],
107
+ children: [/*#__PURE__*/_jsx(View, {
108
+ style: [styles.outer, {
109
+ width: outer,
110
+ height: outer,
111
+ borderRadius: outer / 2,
112
+ borderColor
113
+ }, circleStyle],
114
+ children: /*#__PURE__*/_jsx(Animated.View, {
115
+ style: [styles.inner, {
116
+ width: inner,
117
+ height: inner,
118
+ borderRadius: inner / 2,
119
+ backgroundColor: disabled ? theme.colors.text.disabled : fillColor,
120
+ opacity: progress,
121
+ transform: [{
122
+ scale
123
+ }]
124
+ }]
125
+ })
126
+ }), label ? /*#__PURE__*/_jsx(Text, {
127
+ style: [styles.label, {
128
+ color: disabled ? theme.colors.text.disabled : theme.colors.text.primary,
129
+ fontSize: theme.typography.fontSize.base
130
+ }],
131
+ numberOfLines: 2,
132
+ children: label
133
+ }) : null]
134
+ });
135
+ });
136
+ Radio.displayName = 'Radio';
137
+ const buildStyles = _theme => StyleSheet.create({
138
+ row: {
139
+ flexDirection: 'row',
140
+ alignItems: 'center'
141
+ },
142
+ outer: {
143
+ borderWidth: 1.5,
144
+ alignItems: 'center',
145
+ justifyContent: 'center'
146
+ },
147
+ inner: {},
148
+ label: {
149
+ marginLeft: 10,
150
+ flexShrink: 1
151
+ }
152
+ });
153
+ export { Radio };
154
+ export default Radio;
155
+ //# sourceMappingURL=Radio.js.map