@lichens-innovation/react-native-common 3.10.0 → 3.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (547) hide show
  1. package/README.md +35 -0
  2. package/dist/index.d.ts +1859 -9
  3. package/dist/index.js +4665 -9
  4. package/dist/index.js.map +1 -1
  5. package/dist/rjsf.d.ts +125 -0
  6. package/dist/rjsf.js +1484 -0
  7. package/dist/rjsf.js.map +1 -0
  8. package/package.json +45 -8
  9. package/dist/components/battery/battery-level.d.ts +0 -9
  10. package/dist/components/battery/battery-level.js +0 -9
  11. package/dist/components/battery/battery-level.js.map +0 -1
  12. package/dist/components/battery/battery.utils.d.ts +0 -2
  13. package/dist/components/battery/battery.utils.js +0 -24
  14. package/dist/components/battery/battery.utils.js.map +0 -1
  15. package/dist/components/battery/index.d.ts +0 -2
  16. package/dist/components/battery/index.js +0 -3
  17. package/dist/components/battery/index.js.map +0 -1
  18. package/dist/components/bottom-sheet/bottom-sheet.constants.d.ts +0 -1
  19. package/dist/components/bottom-sheet/bottom-sheet.constants.js +0 -2
  20. package/dist/components/bottom-sheet/bottom-sheet.constants.js.map +0 -1
  21. package/dist/components/bottom-sheet/default-backdrop.d.ts +0 -3
  22. package/dist/components/bottom-sheet/default-backdrop.js +0 -4
  23. package/dist/components/bottom-sheet/default-backdrop.js.map +0 -1
  24. package/dist/components/bottom-sheet/default-backdrop.windows.d.ts +0 -2
  25. package/dist/components/bottom-sheet/default-backdrop.windows.js +0 -3
  26. package/dist/components/bottom-sheet/default-backdrop.windows.js.map +0 -1
  27. package/dist/components/bottom-sheet/default-sheet-background.d.ts +0 -3
  28. package/dist/components/bottom-sheet/default-sheet-background.js +0 -8
  29. package/dist/components/bottom-sheet/default-sheet-background.js.map +0 -1
  30. package/dist/components/bottom-sheet/index.d.ts +0 -4
  31. package/dist/components/bottom-sheet/index.js +0 -5
  32. package/dist/components/bottom-sheet/index.js.map +0 -1
  33. package/dist/components/bottom-sheet/use-bottom-sheet-toggler.d.ts +0 -7
  34. package/dist/components/bottom-sheet/use-bottom-sheet-toggler.js +0 -39
  35. package/dist/components/bottom-sheet/use-bottom-sheet-toggler.js.map +0 -1
  36. package/dist/components/code-scanner/barcode-scanner-dialog.d.ts +0 -11
  37. package/dist/components/code-scanner/barcode-scanner-dialog.js +0 -32
  38. package/dist/components/code-scanner/barcode-scanner-dialog.js.map +0 -1
  39. package/dist/components/code-scanner/barcode-scanner.d.ts +0 -7
  40. package/dist/components/code-scanner/barcode-scanner.js +0 -34
  41. package/dist/components/code-scanner/barcode-scanner.js.map +0 -1
  42. package/dist/components/code-scanner/barcode-scanner.utils.d.ts +0 -4
  43. package/dist/components/code-scanner/barcode-scanner.utils.js +0 -38
  44. package/dist/components/code-scanner/barcode-scanner.utils.js.map +0 -1
  45. package/dist/components/code-scanner/index.d.ts +0 -3
  46. package/dist/components/code-scanner/index.js +0 -4
  47. package/dist/components/code-scanner/index.js.map +0 -1
  48. package/dist/components/dialogs/dialog-close-only.d.ts +0 -12
  49. package/dist/components/dialogs/dialog-close-only.js +0 -39
  50. package/dist/components/dialogs/dialog-close-only.js.map +0 -1
  51. package/dist/components/dialogs/dialog-ok-cancel.d.ts +0 -13
  52. package/dist/components/dialogs/dialog-ok-cancel.js +0 -44
  53. package/dist/components/dialogs/dialog-ok-cancel.js.map +0 -1
  54. package/dist/components/dialogs/dialog-single-textinput.d.ts +0 -16
  55. package/dist/components/dialogs/dialog-single-textinput.js +0 -59
  56. package/dist/components/dialogs/dialog-single-textinput.js.map +0 -1
  57. package/dist/components/dialogs/dialog-syntax-color-result.d.ts +0 -14
  58. package/dist/components/dialogs/dialog-syntax-color-result.js +0 -47
  59. package/dist/components/dialogs/dialog-syntax-color-result.js.map +0 -1
  60. package/dist/components/dialogs/index.d.ts +0 -5
  61. package/dist/components/dialogs/index.js +0 -6
  62. package/dist/components/dialogs/index.js.map +0 -1
  63. package/dist/components/dialogs/use-dialog-styles.d.ts +0 -4
  64. package/dist/components/dialogs/use-dialog-styles.js +0 -13
  65. package/dist/components/dialogs/use-dialog-styles.js.map +0 -1
  66. package/dist/components/drop-down-selector/drop-down-selector-item.d.ts +0 -8
  67. package/dist/components/drop-down-selector/drop-down-selector-item.js +0 -24
  68. package/dist/components/drop-down-selector/drop-down-selector-item.js.map +0 -1
  69. package/dist/components/drop-down-selector/drop-down-selector-left-icon.d.ts +0 -7
  70. package/dist/components/drop-down-selector/drop-down-selector-left-icon.js +0 -9
  71. package/dist/components/drop-down-selector/drop-down-selector-left-icon.js.map +0 -1
  72. package/dist/components/drop-down-selector/drop-down-selector.d.ts +0 -17
  73. package/dist/components/drop-down-selector/drop-down-selector.js +0 -60
  74. package/dist/components/drop-down-selector/drop-down-selector.js.map +0 -1
  75. package/dist/components/drop-down-selector/drop-down-selector.utils.d.ts +0 -22
  76. package/dist/components/drop-down-selector/drop-down-selector.utils.js +0 -37
  77. package/dist/components/drop-down-selector/drop-down-selector.utils.js.map +0 -1
  78. package/dist/components/drop-down-selector/drop-down-selector.windows.d.ts +0 -2
  79. package/dist/components/drop-down-selector/drop-down-selector.windows.js +0 -3
  80. package/dist/components/drop-down-selector/drop-down-selector.windows.js.map +0 -1
  81. package/dist/components/drop-down-selector/index.d.ts +0 -1
  82. package/dist/components/drop-down-selector/index.js +0 -2
  83. package/dist/components/drop-down-selector/index.js.map +0 -1
  84. package/dist/components/error/error-boundary-screen.d.ts +0 -2
  85. package/dist/components/error/error-boundary-screen.js +0 -35
  86. package/dist/components/error/error-boundary-screen.js.map +0 -1
  87. package/dist/components/error/error-boundary-screen.windows.d.ts +0 -2
  88. package/dist/components/error/error-boundary-screen.windows.js +0 -3
  89. package/dist/components/error/error-boundary-screen.windows.js.map +0 -1
  90. package/dist/components/error/error-boundary.d.ts +0 -3
  91. package/dist/components/error/error-boundary.js +0 -27
  92. package/dist/components/error/error-boundary.js.map +0 -1
  93. package/dist/components/error/error-boundary.windows.d.ts +0 -2
  94. package/dist/components/error/error-boundary.windows.js +0 -3
  95. package/dist/components/error/error-boundary.windows.js.map +0 -1
  96. package/dist/components/error/error-details.d.ts +0 -7
  97. package/dist/components/error/error-details.js +0 -32
  98. package/dist/components/error/error-details.js.map +0 -1
  99. package/dist/components/error/index.d.ts +0 -4
  100. package/dist/components/error/index.js +0 -5
  101. package/dist/components/error/index.js.map +0 -1
  102. package/dist/components/error/use-error-details.d.ts +0 -7
  103. package/dist/components/error/use-error-details.js +0 -19
  104. package/dist/components/error/use-error-details.js.map +0 -1
  105. package/dist/components/event-logs/event-logs-screen.d.ts +0 -2
  106. package/dist/components/event-logs/event-logs-screen.js +0 -63
  107. package/dist/components/event-logs/event-logs-screen.js.map +0 -1
  108. package/dist/components/event-logs/index.d.ts +0 -2
  109. package/dist/components/event-logs/index.js +0 -3
  110. package/dist/components/event-logs/index.js.map +0 -1
  111. package/dist/components/event-logs/live-logs-viewer/index.d.ts +0 -6
  112. package/dist/components/event-logs/live-logs-viewer/index.js +0 -7
  113. package/dist/components/event-logs/live-logs-viewer/index.js.map +0 -1
  114. package/dist/components/event-logs/live-logs-viewer/log-entry-item-suffix.d.ts +0 -7
  115. package/dist/components/event-logs/live-logs-viewer/log-entry-item-suffix.js +0 -6
  116. package/dist/components/event-logs/live-logs-viewer/log-entry-item-suffix.js.map +0 -1
  117. package/dist/components/event-logs/live-logs-viewer/log-entry-item.d.ts +0 -7
  118. package/dist/components/event-logs/live-logs-viewer/log-entry-item.js +0 -35
  119. package/dist/components/event-logs/live-logs-viewer/log-entry-item.js.map +0 -1
  120. package/dist/components/event-logs/live-logs-viewer/logs-viewer.d.ts +0 -7
  121. package/dist/components/event-logs/live-logs-viewer/logs-viewer.js +0 -44
  122. package/dist/components/event-logs/live-logs-viewer/logs-viewer.js.map +0 -1
  123. package/dist/components/event-logs/live-logs-viewer/logs-viewer.utils.d.ts +0 -1
  124. package/dist/components/event-logs/live-logs-viewer/logs-viewer.utils.js +0 -6
  125. package/dist/components/event-logs/live-logs-viewer/logs-viewer.utils.js.map +0 -1
  126. package/dist/components/event-logs/live-logs-viewer/use-auto-scroll.d.ts +0 -7
  127. package/dist/components/event-logs/live-logs-viewer/use-auto-scroll.js +0 -20
  128. package/dist/components/event-logs/live-logs-viewer/use-auto-scroll.js.map +0 -1
  129. package/dist/components/event-logs/live-logs-viewer/use-logs-actions.d.ts +0 -6
  130. package/dist/components/event-logs/live-logs-viewer/use-logs-actions.js +0 -24
  131. package/dist/components/event-logs/live-logs-viewer/use-logs-actions.js.map +0 -1
  132. package/dist/components/header-actions/header-back-button.d.ts +0 -2
  133. package/dist/components/header-actions/header-back-button.js +0 -5
  134. package/dist/components/header-actions/header-back-button.js.map +0 -1
  135. package/dist/components/header-actions/header-back-button.windows.d.ts +0 -2
  136. package/dist/components/header-actions/header-back-button.windows.js +0 -3
  137. package/dist/components/header-actions/header-back-button.windows.js.map +0 -1
  138. package/dist/components/header-actions/header-button.d.ts +0 -7
  139. package/dist/components/header-actions/header-button.js +0 -18
  140. package/dist/components/header-actions/header-button.js.map +0 -1
  141. package/dist/components/header-actions/index.d.ts +0 -2
  142. package/dist/components/header-actions/index.js +0 -3
  143. package/dist/components/header-actions/index.js.map +0 -1
  144. package/dist/components/index.d.ts +0 -19
  145. package/dist/components/index.js +0 -20
  146. package/dist/components/index.js.map +0 -1
  147. package/dist/components/language-selector/index.d.ts +0 -4
  148. package/dist/components/language-selector/index.js +0 -5
  149. package/dist/components/language-selector/index.js.map +0 -1
  150. package/dist/components/language-selector/language-selector-menu.d.ts +0 -3
  151. package/dist/components/language-selector/language-selector-menu.js +0 -13
  152. package/dist/components/language-selector/language-selector-menu.js.map +0 -1
  153. package/dist/components/language-selector/language-selector-segmented.d.ts +0 -3
  154. package/dist/components/language-selector/language-selector-segmented.js +0 -9
  155. package/dist/components/language-selector/language-selector-segmented.js.map +0 -1
  156. package/dist/components/language-selector/language-selector.d.ts +0 -3
  157. package/dist/components/language-selector/language-selector.js +0 -10
  158. package/dist/components/language-selector/language-selector.js.map +0 -1
  159. package/dist/components/language-selector/language-selector.types.d.ts +0 -9
  160. package/dist/components/language-selector/language-selector.types.js +0 -1
  161. package/dist/components/language-selector/language-selector.types.js.map +0 -1
  162. package/dist/components/layout/full-centered.d.ts +0 -7
  163. package/dist/components/layout/full-centered.js +0 -4
  164. package/dist/components/layout/full-centered.js.map +0 -1
  165. package/dist/components/layout/index.d.ts +0 -4
  166. package/dist/components/layout/index.js +0 -5
  167. package/dist/components/layout/index.js.map +0 -1
  168. package/dist/components/layout/orientation-aware-tabs/index.d.ts +0 -2
  169. package/dist/components/layout/orientation-aware-tabs/index.js +0 -3
  170. package/dist/components/layout/orientation-aware-tabs/index.js.map +0 -1
  171. package/dist/components/layout/orientation-aware-tabs/orientation-aware-tab-button.d.ts +0 -9
  172. package/dist/components/layout/orientation-aware-tabs/orientation-aware-tab-button.js +0 -40
  173. package/dist/components/layout/orientation-aware-tabs/orientation-aware-tab-button.js.map +0 -1
  174. package/dist/components/layout/orientation-aware-tabs/orientation-aware-tabs-layout.d.ts +0 -15
  175. package/dist/components/layout/orientation-aware-tabs/orientation-aware-tabs-layout.js +0 -40
  176. package/dist/components/layout/orientation-aware-tabs/orientation-aware-tabs-layout.js.map +0 -1
  177. package/dist/components/layout/resizable/horizontal-resizable-split-view.d.ts +0 -3
  178. package/dist/components/layout/resizable/horizontal-resizable-split-view.js +0 -80
  179. package/dist/components/layout/resizable/horizontal-resizable-split-view.js.map +0 -1
  180. package/dist/components/layout/resizable/horizontal-resizable-split-view.types.d.ts +0 -20
  181. package/dist/components/layout/resizable/horizontal-resizable-split-view.types.js +0 -1
  182. package/dist/components/layout/resizable/horizontal-resizable-split-view.types.js.map +0 -1
  183. package/dist/components/layout/resizable/horizontal-resizable-split-view.utils.d.ts +0 -2
  184. package/dist/components/layout/resizable/horizontal-resizable-split-view.utils.js +0 -23
  185. package/dist/components/layout/resizable/horizontal-resizable-split-view.utils.js.map +0 -1
  186. package/dist/components/layout/resizable/index.d.ts +0 -6
  187. package/dist/components/layout/resizable/index.js +0 -7
  188. package/dist/components/layout/resizable/index.js.map +0 -1
  189. package/dist/components/layout/resizable/resizable-overlay-view.d.ts +0 -3
  190. package/dist/components/layout/resizable/resizable-overlay-view.js +0 -132
  191. package/dist/components/layout/resizable/resizable-overlay-view.js.map +0 -1
  192. package/dist/components/layout/resizable/resizable-overlay-view.utils.d.ts +0 -16
  193. package/dist/components/layout/resizable/resizable-overlay-view.utils.js +0 -19
  194. package/dist/components/layout/resizable/resizable-overlay-view.utils.js.map +0 -1
  195. package/dist/components/layout/resizable/vertical-resizable-overlay-view.types.d.ts +0 -28
  196. package/dist/components/layout/resizable/vertical-resizable-overlay-view.types.js +0 -1
  197. package/dist/components/layout/resizable/vertical-resizable-overlay-view.types.js.map +0 -1
  198. package/dist/components/layout/resizable/vertical-resizable-overlay-view.utils.d.ts +0 -2
  199. package/dist/components/layout/resizable/vertical-resizable-overlay-view.utils.js +0 -31
  200. package/dist/components/layout/resizable/vertical-resizable-overlay-view.utils.js.map +0 -1
  201. package/dist/components/layout/resizable/vertical-resizable-split-view.d.ts +0 -3
  202. package/dist/components/layout/resizable/vertical-resizable-split-view.js +0 -79
  203. package/dist/components/layout/resizable/vertical-resizable-split-view.js.map +0 -1
  204. package/dist/components/layout/resizable/vertical-resizable-split-view.types.d.ts +0 -20
  205. package/dist/components/layout/resizable/vertical-resizable-split-view.types.js +0 -1
  206. package/dist/components/layout/resizable/vertical-resizable-split-view.types.js.map +0 -1
  207. package/dist/components/layout/resizable/vertical-resizable-split-view.utils.d.ts +0 -2
  208. package/dist/components/layout/resizable/vertical-resizable-split-view.utils.js +0 -23
  209. package/dist/components/layout/resizable/vertical-resizable-split-view.utils.js.map +0 -1
  210. package/dist/components/layout/safe-container.d.ts +0 -8
  211. package/dist/components/layout/safe-container.js +0 -18
  212. package/dist/components/layout/safe-container.js.map +0 -1
  213. package/dist/components/layout/safe-container.windows.d.ts +0 -8
  214. package/dist/components/layout/safe-container.windows.js +0 -16
  215. package/dist/components/layout/safe-container.windows.js.map +0 -1
  216. package/dist/components/lists/index.d.ts +0 -2
  217. package/dist/components/lists/index.js +0 -3
  218. package/dist/components/lists/index.js.map +0 -1
  219. package/dist/components/lists/list-header.d.ts +0 -5
  220. package/dist/components/lists/list-header.js +0 -17
  221. package/dist/components/lists/list-header.js.map +0 -1
  222. package/dist/components/lists/list-items-separator.d.ts +0 -2
  223. package/dist/components/lists/list-items-separator.js +0 -17
  224. package/dist/components/lists/list-items-separator.js.map +0 -1
  225. package/dist/components/on-off-toggle/index.d.ts +0 -1
  226. package/dist/components/on-off-toggle/index.js +0 -2
  227. package/dist/components/on-off-toggle/index.js.map +0 -1
  228. package/dist/components/on-off-toggle/on-off-toggle.d.ts +0 -9
  229. package/dist/components/on-off-toggle/on-off-toggle.js +0 -27
  230. package/dist/components/on-off-toggle/on-off-toggle.js.map +0 -1
  231. package/dist/components/password-input/index.d.ts +0 -1
  232. package/dist/components/password-input/index.js +0 -2
  233. package/dist/components/password-input/index.js.map +0 -1
  234. package/dist/components/password-input/password-input.d.ts +0 -4
  235. package/dist/components/password-input/password-input.js +0 -27
  236. package/dist/components/password-input/password-input.js.map +0 -1
  237. package/dist/components/score-indicator/index.d.ts +0 -1
  238. package/dist/components/score-indicator/index.js +0 -2
  239. package/dist/components/score-indicator/index.js.map +0 -1
  240. package/dist/components/score-indicator/score-indicator.d.ts +0 -6
  241. package/dist/components/score-indicator/score-indicator.js +0 -31
  242. package/dist/components/score-indicator/score-indicator.js.map +0 -1
  243. package/dist/components/snack-bar/index.d.ts +0 -2
  244. package/dist/components/snack-bar/index.js +0 -3
  245. package/dist/components/snack-bar/index.js.map +0 -1
  246. package/dist/components/snack-bar/snackbar-provider.d.ts +0 -8
  247. package/dist/components/snack-bar/snackbar-provider.js +0 -31
  248. package/dist/components/snack-bar/snackbar-provider.js.map +0 -1
  249. package/dist/components/snack-bar/snackbar.constants.d.ts +0 -5
  250. package/dist/components/snack-bar/snackbar.constants.js +0 -6
  251. package/dist/components/snack-bar/snackbar.constants.js.map +0 -1
  252. package/dist/components/spinner/activity-progress-bar-stats.d.ts +0 -8
  253. package/dist/components/spinner/activity-progress-bar-stats.js +0 -27
  254. package/dist/components/spinner/activity-progress-bar-stats.js.map +0 -1
  255. package/dist/components/spinner/activity-progress-bar.d.ts +0 -10
  256. package/dist/components/spinner/activity-progress-bar.js +0 -21
  257. package/dist/components/spinner/activity-progress-bar.js.map +0 -1
  258. package/dist/components/spinner/activity-progress.utils.d.ts +0 -10
  259. package/dist/components/spinner/activity-progress.utils.js +0 -20
  260. package/dist/components/spinner/activity-progress.utils.js.map +0 -1
  261. package/dist/components/spinner/full-centered-spinner.d.ts +0 -2
  262. package/dist/components/spinner/full-centered-spinner.js +0 -5
  263. package/dist/components/spinner/full-centered-spinner.js.map +0 -1
  264. package/dist/components/spinner/index.d.ts +0 -5
  265. package/dist/components/spinner/index.js +0 -6
  266. package/dist/components/spinner/index.js.map +0 -1
  267. package/dist/components/spinner/modal-spinner.d.ts +0 -9
  268. package/dist/components/spinner/modal-spinner.js +0 -34
  269. package/dist/components/spinner/modal-spinner.js.map +0 -1
  270. package/dist/components/syntax/index.d.ts +0 -4
  271. package/dist/components/syntax/index.js +0 -5
  272. package/dist/components/syntax/index.js.map +0 -1
  273. package/dist/components/syntax/styles/dark.d.ts +0 -92
  274. package/dist/components/syntax/styles/dark.js +0 -92
  275. package/dist/components/syntax/styles/dark.js.map +0 -1
  276. package/dist/components/syntax/styles/index.d.ts +0 -2
  277. package/dist/components/syntax/styles/index.js +0 -3
  278. package/dist/components/syntax/styles/index.js.map +0 -1
  279. package/dist/components/syntax/styles/light.d.ts +0 -110
  280. package/dist/components/syntax/styles/light.js +0 -110
  281. package/dist/components/syntax/styles/light.js.map +0 -1
  282. package/dist/components/syntax/syntax-coloring-tag-code.d.ts +0 -9
  283. package/dist/components/syntax/syntax-coloring-tag-code.js +0 -27
  284. package/dist/components/syntax/syntax-coloring-tag-code.js.map +0 -1
  285. package/dist/components/syntax/syntax-coloring-tag-pre.d.ts +0 -9
  286. package/dist/components/syntax/syntax-coloring-tag-pre.js +0 -18
  287. package/dist/components/syntax/syntax-coloring-tag-pre.js.map +0 -1
  288. package/dist/components/syntax/syntax-coloring.d.ts +0 -8
  289. package/dist/components/syntax/syntax-coloring.js +0 -25
  290. package/dist/components/syntax/syntax-coloring.js.map +0 -1
  291. package/dist/components/tab-bar-icon.d.ts +0 -14
  292. package/dist/components/tab-bar-icon.js +0 -12
  293. package/dist/components/tab-bar-icon.js.map +0 -1
  294. package/dist/components/voice-recognition/index.d.ts +0 -2
  295. package/dist/components/voice-recognition/index.js +0 -3
  296. package/dist/components/voice-recognition/index.js.map +0 -1
  297. package/dist/components/voice-recognition/voice-recognition-text-input.d.ts +0 -10
  298. package/dist/components/voice-recognition/voice-recognition-text-input.js +0 -104
  299. package/dist/components/voice-recognition/voice-recognition-text-input.js.map +0 -1
  300. package/dist/components/voice-recognition/voice-recognition.utils.d.ts +0 -7
  301. package/dist/components/voice-recognition/voice-recognition.utils.js +0 -24
  302. package/dist/components/voice-recognition/voice-recognition.utils.js.map +0 -1
  303. package/dist/config/env.config.d.ts +0 -2
  304. package/dist/config/env.config.js +0 -4
  305. package/dist/config/env.config.js.map +0 -1
  306. package/dist/config/index.d.ts +0 -1
  307. package/dist/config/index.js +0 -2
  308. package/dist/config/index.js.map +0 -1
  309. package/dist/hooks/camera-image-picker/camera-image-picker.utils.d.ts +0 -4
  310. package/dist/hooks/camera-image-picker/camera-image-picker.utils.js +0 -16
  311. package/dist/hooks/camera-image-picker/camera-image-picker.utils.js.map +0 -1
  312. package/dist/hooks/camera-image-picker/index.d.ts +0 -2
  313. package/dist/hooks/camera-image-picker/index.js +0 -3
  314. package/dist/hooks/camera-image-picker/index.js.map +0 -1
  315. package/dist/hooks/camera-image-picker/use-camera-image-picker.d.ts +0 -5
  316. package/dist/hooks/camera-image-picker/use-camera-image-picker.js +0 -53
  317. package/dist/hooks/camera-image-picker/use-camera-image-picker.js.map +0 -1
  318. package/dist/hooks/index.d.ts +0 -9
  319. package/dist/hooks/index.js +0 -10
  320. package/dist/hooks/index.js.map +0 -1
  321. package/dist/hooks/use-animate-on-focus.windows.d.ts +0 -1
  322. package/dist/hooks/use-animate-on-focus.windows.js +0 -5
  323. package/dist/hooks/use-animate-on-focus.windows.js.map +0 -1
  324. package/dist/hooks/use-image-picker.d.ts +0 -11
  325. package/dist/hooks/use-image-picker.js +0 -35
  326. package/dist/hooks/use-image-picker.js.map +0 -1
  327. package/dist/hooks/use-image-picker.windows.d.ts +0 -1
  328. package/dist/hooks/use-image-picker.windows.js +0 -5
  329. package/dist/hooks/use-image-picker.windows.js.map +0 -1
  330. package/dist/hooks/use-invalidate-queries-on-focus.d.ts +0 -2
  331. package/dist/hooks/use-invalidate-queries-on-focus.js +0 -11
  332. package/dist/hooks/use-invalidate-queries-on-focus.js.map +0 -1
  333. package/dist/hooks/use-on-html-message.d.ts +0 -5
  334. package/dist/hooks/use-on-html-message.js +0 -30
  335. package/dist/hooks/use-on-html-message.js.map +0 -1
  336. package/dist/hooks/use-single-file-selector.d.ts +0 -17
  337. package/dist/hooks/use-single-file-selector.js +0 -32
  338. package/dist/hooks/use-single-file-selector.js.map +0 -1
  339. package/dist/hooks/use-single-file-selector.windows.d.ts +0 -1
  340. package/dist/hooks/use-single-file-selector.windows.js +0 -5
  341. package/dist/hooks/use-single-file-selector.windows.js.map +0 -1
  342. package/dist/hooks/use-timeout-state.d.ts +0 -1
  343. package/dist/hooks/use-timeout-state.js +0 -11
  344. package/dist/hooks/use-timeout-state.js.map +0 -1
  345. package/dist/hooks/use-timeout-toggle.d.ts +0 -1
  346. package/dist/hooks/use-timeout-toggle.js +0 -20
  347. package/dist/hooks/use-timeout-toggle.js.map +0 -1
  348. package/dist/hooks/use-updates.d.ts +0 -8
  349. package/dist/hooks/use-updates.js +0 -68
  350. package/dist/hooks/use-updates.js.map +0 -1
  351. package/dist/hooks/use-updates.windows.d.ts +0 -1
  352. package/dist/hooks/use-updates.windows.js +0 -5
  353. package/dist/hooks/use-updates.windows.js.map +0 -1
  354. package/dist/hooks/use-window-orientation.d.ts +0 -3
  355. package/dist/hooks/use-window-orientation.js +0 -10
  356. package/dist/hooks/use-window-orientation.js.map +0 -1
  357. package/dist/i18n/en/common.json +0 -188
  358. package/dist/i18n/fr/common.json +0 -188
  359. package/dist/i18n/i18n.d.ts +0 -17
  360. package/dist/i18n/i18n.js +0 -47
  361. package/dist/i18n/i18n.js.map +0 -1
  362. package/dist/i18n/i18n.utils.d.ts +0 -1
  363. package/dist/i18n/i18n.utils.js +0 -7
  364. package/dist/i18n/i18n.utils.js.map +0 -1
  365. package/dist/i18n/i18n.utils.windows.d.ts +0 -1
  366. package/dist/i18n/i18n.utils.windows.js +0 -6
  367. package/dist/i18n/i18n.utils.windows.js.map +0 -1
  368. package/dist/i18n/index.d.ts +0 -2
  369. package/dist/i18n/index.js +0 -3
  370. package/dist/i18n/index.js.map +0 -1
  371. package/dist/logger/index.d.ts +0 -4
  372. package/dist/logger/index.js +0 -5
  373. package/dist/logger/index.js.map +0 -1
  374. package/dist/logger/logger.d.ts +0 -17
  375. package/dist/logger/logger.js +0 -163
  376. package/dist/logger/logger.js.map +0 -1
  377. package/dist/logger/logger.types.d.ts +0 -25
  378. package/dist/logger/logger.types.js +0 -8
  379. package/dist/logger/logger.types.js.map +0 -1
  380. package/dist/logger/logger.utils.d.ts +0 -6
  381. package/dist/logger/logger.utils.js +0 -40
  382. package/dist/logger/logger.utils.js.map +0 -1
  383. package/dist/logger/logger.windows.d.ts +0 -18
  384. package/dist/logger/logger.windows.js +0 -65
  385. package/dist/logger/logger.windows.js.map +0 -1
  386. package/dist/logger/use-log-entry-color.d.ts +0 -1
  387. package/dist/logger/use-log-entry-color.js +0 -23
  388. package/dist/logger/use-log-entry-color.js.map +0 -1
  389. package/dist/services/device-finder/device-finder.d.ts +0 -31
  390. package/dist/services/device-finder/device-finder.js +0 -105
  391. package/dist/services/device-finder/device-finder.js.map +0 -1
  392. package/dist/services/device-finder/device-finder.types.d.ts +0 -8
  393. package/dist/services/device-finder/device-finder.types.js +0 -1
  394. package/dist/services/device-finder/device-finder.types.js.map +0 -1
  395. package/dist/services/device-finder/device-finder.windows.d.ts +0 -18
  396. package/dist/services/device-finder/device-finder.windows.js +0 -48
  397. package/dist/services/device-finder/device-finder.windows.js.map +0 -1
  398. package/dist/services/device-finder/index.d.ts +0 -2
  399. package/dist/services/device-finder/index.js +0 -3
  400. package/dist/services/device-finder/index.js.map +0 -1
  401. package/dist/services/files/index.d.ts +0 -2
  402. package/dist/services/files/index.js +0 -3
  403. package/dist/services/files/index.js.map +0 -1
  404. package/dist/services/files/native-file-system.d.ts +0 -15
  405. package/dist/services/files/native-file-system.js +0 -101
  406. package/dist/services/files/native-file-system.js.map +0 -1
  407. package/dist/services/files/native-file-system.types.d.ts +0 -38
  408. package/dist/services/files/native-file-system.types.js +0 -6
  409. package/dist/services/files/native-file-system.types.js.map +0 -1
  410. package/dist/services/files/native-file-system.windows.d.ts +0 -14
  411. package/dist/services/files/native-file-system.windows.js +0 -31
  412. package/dist/services/files/native-file-system.windows.js.map +0 -1
  413. package/dist/services/index.d.ts +0 -3
  414. package/dist/services/index.js +0 -4
  415. package/dist/services/index.js.map +0 -1
  416. package/dist/services/wifi/index.d.ts +0 -6
  417. package/dist/services/wifi/index.js +0 -7
  418. package/dist/services/wifi/index.js.map +0 -1
  419. package/dist/services/wifi/query-keys.d.ts +0 -10
  420. package/dist/services/wifi/query-keys.js +0 -11
  421. package/dist/services/wifi/query-keys.js.map +0 -1
  422. package/dist/services/wifi/use-wifi-info.d.ts +0 -472
  423. package/dist/services/wifi/use-wifi-info.js +0 -95
  424. package/dist/services/wifi/use-wifi-info.js.map +0 -1
  425. package/dist/services/wifi/wifi-info.types.d.ts +0 -22
  426. package/dist/services/wifi/wifi-info.types.js +0 -21
  427. package/dist/services/wifi/wifi-info.types.js.map +0 -1
  428. package/dist/services/wifi/wifi-info.utils.d.ts +0 -15
  429. package/dist/services/wifi/wifi-info.utils.js +0 -114
  430. package/dist/services/wifi/wifi-info.utils.js.map +0 -1
  431. package/dist/services/wifi/wifi-info.utils.simulator.d.ts +0 -3
  432. package/dist/services/wifi/wifi-info.utils.simulator.js +0 -23
  433. package/dist/services/wifi/wifi-info.utils.simulator.js.map +0 -1
  434. package/dist/services/wifi/wifi-info.utils.windows.d.ts +0 -2
  435. package/dist/services/wifi/wifi-info.utils.windows.js +0 -6
  436. package/dist/services/wifi/wifi-info.utils.windows.js.map +0 -1
  437. package/dist/services/wifi/wifi-infos-context.d.ts +0 -170
  438. package/dist/services/wifi/wifi-infos-context.js +0 -34
  439. package/dist/services/wifi/wifi-infos-context.js.map +0 -1
  440. package/dist/store/common-logs.store.d.ts +0 -13
  441. package/dist/store/common-logs.store.js +0 -32
  442. package/dist/store/common-logs.store.js.map +0 -1
  443. package/dist/store/common.store.d.ts +0 -12
  444. package/dist/store/common.store.js +0 -40
  445. package/dist/store/common.store.js.map +0 -1
  446. package/dist/store/index.d.ts +0 -3
  447. package/dist/store/index.js +0 -4
  448. package/dist/store/index.js.map +0 -1
  449. package/dist/store/react-query-provider.d.ts +0 -4
  450. package/dist/store/react-query-provider.js +0 -7
  451. package/dist/store/react-query-provider.js.map +0 -1
  452. package/dist/theme/dark-colors-scheme.d.ts +0 -42
  453. package/dist/theme/dark-colors-scheme.js +0 -44
  454. package/dist/theme/dark-colors-scheme.js.map +0 -1
  455. package/dist/theme/index.d.ts +0 -3
  456. package/dist/theme/index.js +0 -4
  457. package/dist/theme/index.js.map +0 -1
  458. package/dist/theme/light-colors-scheme.d.ts +0 -42
  459. package/dist/theme/light-colors-scheme.js +0 -44
  460. package/dist/theme/light-colors-scheme.js.map +0 -1
  461. package/dist/theme/theme.d.ts +0 -171
  462. package/dist/theme/theme.js +0 -27
  463. package/dist/theme/theme.js.map +0 -1
  464. package/dist/utils/alert.utils.d.ts +0 -1
  465. package/dist/utils/alert.utils.js +0 -12
  466. package/dist/utils/alert.utils.js.map +0 -1
  467. package/dist/utils/axios.config.d.ts +0 -2
  468. package/dist/utils/axios.config.js +0 -15
  469. package/dist/utils/axios.config.js.map +0 -1
  470. package/dist/utils/base64.utils.d.ts +0 -2
  471. package/dist/utils/base64.utils.js +0 -8
  472. package/dist/utils/base64.utils.js.map +0 -1
  473. package/dist/utils/clipboard.utils.d.ts +0 -1
  474. package/dist/utils/clipboard.utils.js +0 -12
  475. package/dist/utils/clipboard.utils.js.map +0 -1
  476. package/dist/utils/date.utils.d.ts +0 -3
  477. package/dist/utils/date.utils.js +0 -15
  478. package/dist/utils/date.utils.js.map +0 -1
  479. package/dist/utils/device.utils.d.ts +0 -4
  480. package/dist/utils/device.utils.js +0 -28
  481. package/dist/utils/device.utils.js.map +0 -1
  482. package/dist/utils/device.utils.windows.d.ts +0 -3
  483. package/dist/utils/device.utils.windows.js +0 -11
  484. package/dist/utils/device.utils.windows.js.map +0 -1
  485. package/dist/utils/digest-auth.d.ts +0 -32
  486. package/dist/utils/digest-auth.js +0 -157
  487. package/dist/utils/digest-auth.js.map +0 -1
  488. package/dist/utils/env.utils.d.ts +0 -5
  489. package/dist/utils/env.utils.js +0 -32
  490. package/dist/utils/env.utils.js.map +0 -1
  491. package/dist/utils/env.utils.windows.d.ts +0 -3
  492. package/dist/utils/env.utils.windows.js +0 -11
  493. package/dist/utils/env.utils.windows.js.map +0 -1
  494. package/dist/utils/errors.utils.d.ts +0 -6
  495. package/dist/utils/errors.utils.js +0 -9
  496. package/dist/utils/errors.utils.js.map +0 -1
  497. package/dist/utils/file-picker.utils.d.ts +0 -30
  498. package/dist/utils/file-picker.utils.js +0 -18
  499. package/dist/utils/file-picker.utils.js.map +0 -1
  500. package/dist/utils/file-picker.utils.windows.d.ts +0 -9
  501. package/dist/utils/file-picker.utils.windows.js +0 -6
  502. package/dist/utils/file-picker.utils.windows.js.map +0 -1
  503. package/dist/utils/file.utils.d.ts +0 -28
  504. package/dist/utils/file.utils.js +0 -105
  505. package/dist/utils/file.utils.js.map +0 -1
  506. package/dist/utils/filename.utils.d.ts +0 -40
  507. package/dist/utils/filename.utils.js +0 -129
  508. package/dist/utils/filename.utils.js.map +0 -1
  509. package/dist/utils/font.utils.d.ts +0 -1
  510. package/dist/utils/font.utils.js +0 -8
  511. package/dist/utils/font.utils.js.map +0 -1
  512. package/dist/utils/image.utils.d.ts +0 -1
  513. package/dist/utils/image.utils.js +0 -16
  514. package/dist/utils/image.utils.js.map +0 -1
  515. package/dist/utils/index.d.ts +0 -22
  516. package/dist/utils/index.js +0 -23
  517. package/dist/utils/index.js.map +0 -1
  518. package/dist/utils/licences.utils.d.ts +0 -16
  519. package/dist/utils/licences.utils.js +0 -19
  520. package/dist/utils/licences.utils.js.map +0 -1
  521. package/dist/utils/linking.utils.d.ts +0 -3
  522. package/dist/utils/linking.utils.js +0 -33
  523. package/dist/utils/linking.utils.js.map +0 -1
  524. package/dist/utils/network.utils.d.ts +0 -4
  525. package/dist/utils/network.utils.js +0 -41
  526. package/dist/utils/network.utils.js.map +0 -1
  527. package/dist/utils/platform.utils.d.ts +0 -1
  528. package/dist/utils/platform.utils.js +0 -6
  529. package/dist/utils/platform.utils.js.map +0 -1
  530. package/dist/utils/sharing.utils.d.ts +0 -9
  531. package/dist/utils/sharing.utils.js +0 -58
  532. package/dist/utils/sharing.utils.js.map +0 -1
  533. package/dist/utils/sharing.utils.windows.d.ts +0 -3
  534. package/dist/utils/sharing.utils.windows.js +0 -11
  535. package/dist/utils/sharing.utils.windows.js.map +0 -1
  536. package/dist/utils/sqlite.utils.d.ts +0 -10
  537. package/dist/utils/sqlite.utils.js +0 -36
  538. package/dist/utils/sqlite.utils.js.map +0 -1
  539. package/dist/utils/storage.d.ts +0 -10
  540. package/dist/utils/storage.js +0 -60
  541. package/dist/utils/storage.js.map +0 -1
  542. package/dist/utils/storage.windows.d.ts +0 -10
  543. package/dist/utils/storage.windows.js +0 -34
  544. package/dist/utils/storage.windows.js.map +0 -1
  545. package/dist/utils/webview.utils.d.ts +0 -9
  546. package/dist/utils/webview.utils.js +0 -18
  547. package/dist/utils/webview.utils.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/rjsf/form-submit-context.tsx","../src/theme/dark-colors-scheme.ts","../src/theme/light-colors-scheme.ts","../src/theme/theme.ts","../src/components/rjsf/rjsf-paper-buttons.tsx","../src/components/rjsf/rjsf-paper-templates.tsx","../src/components/rjsf/widgets/display-label.tsx","../src/components/rjsf/widgets/checkbox-widget.tsx","../src/components/rjsf/widgets/checkboxes-widget.tsx","../src/components/rjsf/widgets/date-widget.tsx","../src/components/rjsf/widgets/datetime-widget.tsx","../src/components/rjsf/widgets/hidden-widget.tsx","../src/utils/storage.ts","../src/config/env.config.ts","../src/store/common-logs.store.ts","../src/utils/device.utils.ts","../src/utils/env.utils.ts","../src/logger/logger.types.ts","../src/logger/logger.ts","../src/components/rjsf/widgets/number-widget.tsx","../src/components/password-input/password-input.tsx","../src/components/rjsf/widgets/password-widget.tsx","../src/components/rjsf/widgets/radio-widget.tsx","../src/components/rjsf/widgets/range-widget.tsx","../src/components/drop-down-selector/drop-down-selector.utils.ts","../src/components/drop-down-selector/drop-down-selector-left-icon.tsx","../src/components/drop-down-selector/drop-down-selector-item.tsx","../src/components/drop-down-selector/drop-down-selector.tsx","../src/components/rjsf/widgets/select-widget.tsx","../src/components/rjsf/widgets/text-widget.tsx","../src/components/rjsf/widgets/textarea-widget.tsx","../src/components/rjsf/rjsf-paper-theme.ts","../src/components/rjsf/rjsf-paper-renderer.tsx"],"names":["createContext","NO_OP","useRef","useCallback","jsx","View","MD3DarkTheme","MD3LightTheme","adaptNavigationTheme","LightNavigationTheme","DarkNavigationTheme","useTheme","TranslatableString","IconButton","getUiOptions","useContext","getSubmitButtonOptions","styles","Button","StyleSheet","getDefaultRegistry","useStyles","jsxs","Text","getTemplate","isBlank","getRjsfDisplayLabel","Switch","Pressable","mapEnumOptions","isNullish","Checkbox","useToggle","hasRjsfErrors","parseDateOnlyToLocalDate","formatDateOnlyForDisplay","Platform","TextInput","dateToDateOnlyString","DateTimePicker","parseDateOrNull","formatDateTimeForDisplay","MMKV","makeAutoObservable","Constants","Updates","LogBox","Paths","RNLogger","fileAsyncTransport","Sentry","sentryTransport","mapConsoleTransport","InteractionManager","FileSystemLegacy","toStringOrEmpty","useTranslation","getRjsfTextChangeValue","RadioButton","Slider","Icon","useState","Dropdown","value","toStringOrUndefined","withTheme","useRjsfValidator","useEffect","createElement","translateRjsfString"],"mappings":"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","file":"rjsf.js","sourcesContent":["import { NO_OP } from '@lichens-innovation/ts-common';\nimport type { PropsWithChildren } from 'react';\nimport { createContext, useCallback, useRef } from 'react';\nimport { View, type ViewProps } from 'react-native';\n\n/**\n * Form submit context for RJSF on React Native.\n *\n * On the web, a form submit is handled by the DOM: a <form> wraps inputs and a button with\n * type=\"submit\" triggers the form's onSubmit. RJSF does not need to pass the submit handler\n * to the theme's submit button because the browser wires it automatically.\n *\n * On React Native there is no native form element or submit semantics. The theme's SubmitButton\n * is just a Pressable; it has no way to receive the Form's onSubmit from RJSF (the theme API\n * does not pass it). This context bridges that gap: the wrapper that receives onSubmit from\n * RJSF provides it via context, and the SubmitButton consumes it to trigger submission on press.\n */\n\nexport type SubmitHandler = (event?: unknown) => void;\n\nexport const FormSubmitContext = createContext<SubmitHandler>(NO_OP);\n\ninterface FormWrapperProps extends ViewProps {\n onSubmit?: SubmitHandler;\n}\n\n/** Wraps RJSF form content in a View and provides submit handler via context for Paper SubmitButton. */\nexport const RjsfPaperFormWrapper: React.ComponentType<PropsWithChildren<FormWrapperProps>> = ({\n onSubmit,\n children,\n ...viewProps\n}) => {\n const submitRef = useRef(onSubmit);\n submitRef.current = onSubmit;\n\n const handleSubmit = useCallback<SubmitHandler>((event) => {\n submitRef.current?.(event);\n }, []);\n\n return (\n <FormSubmitContext.Provider value={handleSubmit}>\n <View {...viewProps}>{children}</View>\n </FormSubmitContext.Provider>\n );\n};\n","// Generated colors from https://callstack.github.io/react-native-paper/docs/guides/theming\nexport const DARK_COLORS_SCHEME = {\n primary: 'rgb(170, 212, 114)',\n onPrimary: 'rgb(32, 54, 0)',\n primaryContainer: 'rgb(49, 79, 0)',\n onPrimaryContainer: 'rgb(197, 240, 139)',\n secondary: 'rgb(185, 209, 101)',\n onSecondary: 'rgb(42, 53, 0)',\n secondaryContainer: 'rgb(62, 76, 0)',\n onSecondaryContainer: 'rgb(212, 237, 126)',\n tertiary: 'rgb(167, 212, 116)',\n onTertiary: 'rgb(30, 55, 0)',\n tertiaryContainer: 'rgb(45, 80, 0)',\n onTertiaryContainer: 'rgb(194, 241, 141)',\n error: 'rgb(255, 180, 171)',\n onError: 'rgb(105, 0, 5)',\n errorContainer: 'rgb(147, 0, 10)',\n onErrorContainer: 'rgb(255, 180, 171)',\n background: 'rgb(27, 28, 24)',\n onBackground: 'rgb(227, 227, 219)',\n surface: 'rgb(27, 28, 24)',\n onSurface: 'rgb(227, 227, 219)',\n surfaceVariant: 'rgb(68, 72, 61)',\n onSurfaceVariant: 'rgb(197, 200, 185)',\n outline: 'rgb(143, 146, 133)',\n outlineVariant: 'rgb(68, 72, 61)',\n shadow: 'rgb(0, 0, 0)',\n scrim: 'rgb(0, 0, 0)',\n inverseSurface: 'rgb(227, 227, 219)',\n inverseOnSurface: 'rgb(48, 49, 44)',\n inversePrimary: 'rgb(69, 104, 18)',\n elevation: {\n level0: 'transparent',\n level1: 'rgb(34, 37, 29)',\n level2: 'rgb(38, 43, 31)',\n level3: 'rgb(43, 48, 34)',\n level4: 'rgb(44, 50, 35)',\n level5: 'rgb(47, 54, 37)',\n },\n surfaceDisabled: 'rgba(227, 227, 219, 0.12)',\n onSurfaceDisabled: 'rgba(227, 227, 219, 0.38)',\n backdrop: 'rgba(46, 50, 40, 0.4)',\n};\n","// Generated colors from https://callstack.github.io/react-native-paper/docs/guides/theming\nexport const LIGHT_COLORS_SCHEME = {\n primary: 'rgb(69, 104, 18)',\n onPrimary: 'rgb(255, 255, 255)',\n primaryContainer: 'rgb(197, 240, 139)',\n onPrimaryContainer: 'rgb(17, 32, 0)',\n secondary: 'rgb(83, 102, 0)',\n onSecondary: 'rgb(255, 255, 255)',\n secondaryContainer: 'rgb(212, 237, 126)',\n onSecondaryContainer: 'rgb(23, 30, 0)',\n tertiary: 'rgb(67, 105, 21)',\n onTertiary: 'rgb(255, 255, 255)',\n tertiaryContainer: 'rgb(194, 241, 141)',\n onTertiaryContainer: 'rgb(15, 32, 0)',\n error: 'rgb(186, 26, 26)',\n onError: 'rgb(255, 255, 255)',\n errorContainer: 'rgb(255, 218, 214)',\n onErrorContainer: 'rgb(65, 0, 2)',\n background: 'rgb(253, 252, 245)',\n onBackground: 'rgb(27, 28, 24)',\n surface: 'rgb(253, 252, 245)',\n onSurface: 'rgb(27, 28, 24)',\n surfaceVariant: 'rgb(225, 228, 213)',\n onSurfaceVariant: 'rgb(68, 72, 61)',\n outline: 'rgb(117, 121, 108)',\n outlineVariant: 'rgb(197, 200, 185)',\n shadow: 'rgb(0, 0, 0)',\n scrim: 'rgb(0, 0, 0)',\n inverseSurface: 'rgb(48, 49, 44)',\n inverseOnSurface: 'rgb(242, 241, 233)',\n inversePrimary: 'rgb(170, 212, 114)',\n elevation: {\n level0: 'transparent',\n level1: 'rgb(244, 245, 234)',\n level2: 'rgb(238, 240, 227)',\n level3: 'rgb(233, 236, 220)',\n level4: 'rgb(231, 234, 218)',\n level5: 'rgb(227, 231, 213)',\n },\n surfaceDisabled: 'rgba(27, 28, 24, 0.12)',\n onSurfaceDisabled: 'rgba(27, 28, 24, 0.38)',\n backdrop: 'rgba(46, 50, 40, 0.4)',\n};\n","import { DarkTheme as DarkNavigationTheme, DefaultTheme as LightNavigationTheme } from '@react-navigation/native';\nimport { MD3DarkTheme, MD3LightTheme, adaptNavigationTheme, useTheme } from 'react-native-paper';\nimport { DARK_COLORS_SCHEME } from './dark-colors-scheme';\nimport { LIGHT_COLORS_SCHEME } from './light-colors-scheme';\n\nconst DEFAULT_SPACING: number = 8;\nconst spacing = (units: number = 1): number => units * DEFAULT_SPACING;\n\nconst roundness = 2;\n\nexport const DARK_THEME = {\n ...MD3DarkTheme,\n colors: {\n ...MD3DarkTheme.colors,\n ...DARK_COLORS_SCHEME,\n },\n spacing,\n roundness,\n};\n\nexport const LIGHT_THEME = {\n ...MD3LightTheme,\n colors: {\n ...MD3LightTheme.colors,\n ...LIGHT_COLORS_SCHEME,\n },\n spacing,\n roundness,\n};\n\nexport type AppTheme = typeof DARK_THEME;\n\n// React Navigation themes\nconst navigationAdaptedThemes = adaptNavigationTheme({\n reactNavigationLight: LightNavigationTheme,\n reactNavigationDark: DarkNavigationTheme,\n materialLight: LIGHT_THEME,\n materialDark: DARK_THEME,\n});\n\nconst { DarkTheme, LightTheme } = navigationAdaptedThemes;\nexport const NAVIGATION_DARK = { ...DarkTheme, fonts: { ...DarkNavigationTheme.fonts } };\nexport const NAVIGATION_LIGHT = { ...LightTheme, fonts: { ...LightNavigationTheme.fonts } };\n\nexport const useAppTheme = () => useTheme() as AppTheme;\n\nexport const useIsDarkMode = (): boolean => {\n const theme = useAppTheme();\n return theme.dark;\n};\n","import type { RjsfRegistryWithTranslate } from '@lichens-innovation/ts-common/rjsf';\nimport { getSubmitButtonOptions, getUiOptions, TranslatableString } from '@rjsf/utils';\nimport type { FunctionComponent } from 'react';\nimport { useContext } from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { Button, IconButton } from 'react-native-paper';\nimport { useAppTheme } from '~/theme';\nimport { FormSubmitContext } from './form-submit-context';\n\nexport interface IconButtonProps {\n id?: string;\n onClick?: () => void;\n disabled?: boolean;\n readonly?: boolean;\n registry: RjsfRegistryWithTranslate;\n uiSchema?: Record<string, unknown>;\n title?: string;\n}\n\nexport const AddButton: FunctionComponent<IconButtonProps> = ({ registry, onClick, disabled, title }) => {\n const label = registry.translateString(TranslatableString.AddItemButton);\n return <IconButton icon=\"plus\" onPress={onClick} disabled={disabled} accessibilityLabel={title ?? label} />;\n};\n\nexport const CopyButton: FunctionComponent<IconButtonProps> = ({ registry, onClick, disabled, title }) => {\n const label = registry.translateString(TranslatableString.CopyButton);\n return <IconButton icon=\"content-copy\" onPress={onClick} disabled={disabled} accessibilityLabel={title ?? label} />;\n};\n\nexport const MoveDownButton: FunctionComponent<IconButtonProps> = ({ registry, onClick, disabled, title }) => {\n const label = registry.translateString(TranslatableString.MoveDownButton);\n return <IconButton icon=\"arrow-down\" onPress={onClick} disabled={disabled} accessibilityLabel={title ?? label} />;\n};\n\nexport const MoveUpButton: FunctionComponent<IconButtonProps> = ({ registry, onClick, disabled, title }) => {\n const label = registry.translateString(TranslatableString.MoveUpButton);\n return <IconButton icon=\"arrow-up\" onPress={onClick} disabled={disabled} accessibilityLabel={title ?? label} />;\n};\n\nexport const RemoveButton: FunctionComponent<IconButtonProps> = ({ uiSchema, registry, onClick, disabled, title }) => {\n const options = getUiOptions(uiSchema);\n const label = registry.translateString(TranslatableString.RemoveButton);\n return (\n <IconButton\n icon=\"delete\"\n onPress={onClick}\n disabled={disabled}\n iconColor={options?.block ? undefined : undefined}\n accessibilityLabel={title ?? label}\n />\n );\n};\n\nexport const ClearButton: FunctionComponent<IconButtonProps> = ({ registry, onClick, disabled, title }) => {\n const label = registry.translateString(TranslatableString.ClearButton);\n return <IconButton icon=\"close\" onPress={onClick} disabled={disabled} accessibilityLabel={title ?? label} />;\n};\n\nexport interface SubmitButtonProps {\n uiSchema?: Record<string, unknown>;\n registry?: RjsfRegistryWithTranslate;\n}\n\n/**\n * RJSF form submit button.\n * Uses FormSubmitContext to get the submit handler (RJSF does not pass onSubmit to the theme button).\n * The fake event provides preventDefault() and persist() as no-ops to satisfy the web form submit\n * event contract, so an onSubmit that calls event.preventDefault() or event.persist() does not\n * crash on React Native, where onPress does not provide a form event.\n */\nexport const SubmitButton: FunctionComponent<SubmitButtonProps> = ({ uiSchema }) => {\n const submit = useContext(FormSubmitContext);\n const { submitText, norender, props: buttonProps } = getSubmitButtonOptions(uiSchema);\n const styles = useStyles();\n\n if (norender) return null;\n\n const fakeEvent = {\n preventDefault: () => {},\n persist: () => {},\n };\n\n return (\n <View style={styles.submitRow}>\n <Button mode=\"contained\" onPress={() => submit?.(fakeEvent)} {...buttonProps}>\n {submitText}\n </Button>\n </View>\n );\n};\n\nconst useStyles = () => {\n const theme = useAppTheme();\n\n return StyleSheet.create({\n submitRow: {\n marginTop: theme.spacing(2),\n alignItems: 'center',\n },\n });\n};\n","import { getDefaultRegistry } from '@rjsf/core';\nimport type {\n ArrayFieldItemTemplateProps,\n ArrayFieldTemplateProps,\n ErrorListProps,\n FieldErrorProps,\n FieldHelpProps,\n FieldTemplateProps,\n ObjectFieldTemplateProps,\n} from '@rjsf/utils';\nimport { getTemplate, getUiOptions } from '@rjsf/utils';\nimport type { ComponentType } from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { Text } from 'react-native-paper';\nimport { useAppTheme } from '~/theme';\nimport {\n AddButton,\n ClearButton,\n CopyButton,\n MoveDownButton,\n MoveUpButton,\n RemoveButton,\n SubmitButton,\n} from './rjsf-paper-buttons';\n\nconst defaultTemplates = getDefaultRegistry().templates;\n\n/** No-op error list: we omit the top \"Erreurs\" block; field-level errors still show per field. */\nconst NoopErrorList = () => null;\n\nconst PaperObjectFieldTemplate = ({ title, description, properties }: ObjectFieldTemplateProps) => {\n const styles = useStyles();\n\n return (\n <View style={styles.fieldSet}>\n {title ? (\n <Text variant=\"titleMedium\" style={styles.title}>\n {title}\n </Text>\n ) : null}\n\n {description ? (\n <Text variant=\"bodySmall\" style={styles.description}>\n {typeof description === 'string' ? description : null}\n </Text>\n ) : null}\n\n {properties.map((prop) => {\n if (prop.hidden) return null;\n return <View key={prop.name}>{prop.content}</View>;\n })}\n </View>\n );\n};\n\nconst PaperFieldTemplate = ({ children, errors }: FieldTemplateProps) => {\n const styles = useStyles();\n\n return (\n <View style={styles.field}>\n {children}\n\n {errors}\n </View>\n );\n};\n\nconst PaperFieldErrorTemplate = ({ errors }: FieldErrorProps) => {\n const styles = useStyles();\n\n if (!errors || errors.length === 0) return null;\n\n return (\n <View style={styles.errorList}>\n {(errors as string[]).map((msg, index) => (\n <Text key={`error-${index}-${msg}`} variant=\"bodySmall\" style={styles.fieldError}>\n {msg}\n </Text>\n ))}\n </View>\n );\n};\n\nconst PaperFieldHelpTemplate = ({ help }: FieldHelpProps) => {\n const styles = useStyles();\n\n if (!help) return null;\n\n return (\n <Text variant=\"bodySmall\" style={styles.help}>\n {typeof help === 'string' ? help : null}\n </Text>\n );\n};\n\n/** Renders a single array item using View (React Native). Default RJSF template uses div and breaks on RN. */\nconst PaperArrayFieldItemTemplate = ({\n children,\n buttonsProps,\n hasToolbar,\n registry,\n uiSchema,\n}: ArrayFieldItemTemplateProps) => {\n const styles = useStyles();\n const uiOptions = getUiOptions(uiSchema);\n const ArrayFieldItemButtonsTemplate = getTemplate('ArrayFieldItemButtonsTemplate', registry, uiOptions);\n\n return (\n <View style={styles.arrayItemRow}>\n <View style={styles.arrayItemContent}>{children}</View>\n {hasToolbar ? (\n <View style={styles.arrayItemToolbar}>\n <ArrayFieldItemButtonsTemplate {...buttonsProps} />\n </View>\n ) : null}\n </View>\n );\n};\n\nconst PaperArrayFieldTemplate = ({ title, items, canAdd, onAddClick, registry, uiSchema }: ArrayFieldTemplateProps) => {\n const styles = useStyles();\n\n return (\n <View style={styles.fieldSet}>\n {title ? (\n <Text variant=\"titleMedium\" style={styles.title}>\n {title}\n </Text>\n ) : null}\n\n {items.map((item, index) => (\n <View key={'key' in item ? String(item.key) : index} style={styles.arrayItem}>\n {item}\n </View>\n ))}\n\n {canAdd ? (\n <AddButton onClick={onAddClick} registry={registry} uiSchema={uiSchema as Record<string, unknown>} />\n ) : null}\n </View>\n );\n};\n\nexport const PAPER_TEMPLATES = {\n ...defaultTemplates,\n ObjectFieldTemplate: PaperObjectFieldTemplate as ComponentType<ObjectFieldTemplateProps>,\n FieldTemplate: PaperFieldTemplate as ComponentType<FieldTemplateProps>,\n FieldErrorTemplate: PaperFieldErrorTemplate as ComponentType<FieldErrorProps>,\n FieldHelpTemplate: PaperFieldHelpTemplate as ComponentType<FieldHelpProps>,\n ArrayFieldTemplate: PaperArrayFieldTemplate as ComponentType<ArrayFieldTemplateProps>,\n ArrayFieldItemTemplate: PaperArrayFieldItemTemplate as ComponentType<ArrayFieldItemTemplateProps>,\n ErrorListTemplate: NoopErrorList as ComponentType<ErrorListProps>,\n ButtonTemplates: {\n ...defaultTemplates.ButtonTemplates,\n AddButton,\n ClearButton,\n CopyButton,\n MoveDownButton,\n MoveUpButton,\n RemoveButton,\n SubmitButton,\n },\n};\n\nconst useStyles = () => {\n const theme = useAppTheme();\n\n return StyleSheet.create({\n fieldSet: {\n marginVertical: theme.spacing(2),\n },\n title: {\n marginBottom: theme.spacing(1),\n },\n description: {\n marginBottom: theme.spacing(2),\n opacity: 0.8,\n },\n field: {\n marginVertical: theme.spacing(0.5),\n },\n errorList: {\n marginTop: theme.spacing(1),\n gap: theme.spacing(0.5),\n },\n fieldError: {\n color: theme.colors.error,\n },\n help: {\n marginTop: theme.spacing(1),\n opacity: 0.8,\n },\n arrayItem: {\n marginVertical: theme.spacing(1),\n },\n arrayItemRow: {\n flexDirection: 'row',\n alignItems: 'center',\n marginVertical: theme.spacing(1),\n },\n arrayItemContent: {\n flex: 1,\n },\n arrayItemToolbar: {\n flexDirection: 'row',\n alignItems: 'center',\n marginLeft: theme.spacing(1),\n },\n });\n};\n","import { isBlank } from '@lichens-innovation/ts-common';\nimport type { StyleProp, TextStyle } from 'react-native';\nimport { Text } from 'react-native-paper';\n\nexport interface RjsfDisplayLabelProps {\n label?: string;\n style?: StyleProp<TextStyle>;\n}\n\nexport const RjsfDisplayLabel = ({ label, style }: RjsfDisplayLabelProps) => {\n if (isBlank(label)) return null;\n\n return (\n <Text variant=\"bodyLarge\" style={style}>\n {label}\n </Text>\n );\n};\n","import { isBlank } from '@lichens-innovation/ts-common';\nimport { getRjsfDisplayLabel } from '@lichens-innovation/ts-common/rjsf';\nimport type { WidgetProps } from '@rjsf/utils';\nimport type { FunctionComponent } from 'react';\nimport { Pressable, StyleSheet, View } from 'react-native';\nimport { Switch } from 'react-native-paper';\nimport { useAppTheme } from '~/theme';\nimport { RjsfDisplayLabel } from './display-label';\n\nexport const CheckboxWidget: FunctionComponent<WidgetProps> = ({\n id,\n value,\n disabled,\n readonly,\n onChange,\n onBlur,\n label,\n hideLabel,\n required,\n}) => {\n const styles = useStyles();\n const displayLabel = getRjsfDisplayLabel({ label, required, hideLabel });\n const checked = value === true;\n\n const handleValueChange = (newValue: boolean) => {\n onChange(newValue);\n onBlur(id, newValue);\n };\n\n const handleLabelPress = () => {\n if (disabled || readonly) return;\n handleValueChange(!checked);\n };\n\n return (\n <View style={styles.checkboxRow}>\n <Switch value={checked} onValueChange={handleValueChange} disabled={disabled} />\n\n {!isBlank(displayLabel) ? (\n <Pressable onPress={handleLabelPress} style={styles.checkboxLabel}>\n <RjsfDisplayLabel label={displayLabel} />\n </Pressable>\n ) : null}\n </View>\n );\n};\n\nconst useStyles = () => {\n const theme = useAppTheme();\n\n return StyleSheet.create({\n checkboxRow: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: theme.spacing(1),\n marginVertical: theme.spacing(0.5),\n },\n checkboxLabel: {\n flex: 1,\n },\n });\n};\n","import { isNullish } from '@lichens-innovation/ts-common';\nimport type { EnumOptionDisplay } from '@lichens-innovation/ts-common/rjsf';\nimport { getRjsfDisplayLabel, mapEnumOptions } from '@lichens-innovation/ts-common/rjsf';\nimport type { WidgetProps } from '@rjsf/utils';\nimport type { FunctionComponent } from 'react';\nimport { Pressable, StyleSheet, View } from 'react-native';\nimport { Checkbox, Text } from 'react-native-paper';\nimport { useAppTheme } from '~/theme';\nimport { RjsfDisplayLabel } from './display-label';\n\nexport const CheckboxesWidget: FunctionComponent<WidgetProps> = ({\n id,\n value,\n disabled,\n readonly,\n onChange,\n onBlur,\n label,\n hideLabel,\n required,\n options,\n schema,\n}) => {\n const styles = useStyles();\n const displayLabel = getRjsfDisplayLabel({ label, required, hideLabel });\n const enumOptions = mapEnumOptions(options);\n const isArrayValue = Array.isArray(value);\n const currentSet = isArrayValue ? value : [];\n const hasMaxItems = typeof schema?.maxItems === 'number';\n const maxItems = hasMaxItems ? schema.maxItems : undefined;\n\n const toggle = (optValue: string) => {\n if (disabled || readonly) return;\n\n const isChecked = currentSet.includes(optValue);\n const next = isChecked ? currentSet.filter((v) => v !== optValue) : [...currentSet, optValue];\n if (!isNullish(maxItems) && next.length > maxItems) return;\n\n const unique = Array.from(new Set(next));\n onChange(unique);\n onBlur(id, unique);\n };\n\n return (\n <View style={styles.widgetBlock}>\n <RjsfDisplayLabel label={displayLabel} style={styles.checkboxesTitle} />\n\n {enumOptions.map((opt: EnumOptionDisplay) => {\n const isOptionChecked = currentSet.includes(opt.value);\n const checkboxStatus = isOptionChecked ? 'checked' : 'unchecked';\n return (\n <View key={opt.value} style={styles.checkboxRow}>\n <Checkbox status={checkboxStatus} onPress={() => toggle(opt.value)} disabled={disabled || readonly} />\n <Pressable onPress={() => toggle(opt.value)} style={styles.checkboxLabel}>\n <Text variant=\"bodyLarge\">{opt.label}</Text>\n </Pressable>\n </View>\n );\n })}\n </View>\n );\n};\n\nconst useStyles = () => {\n const theme = useAppTheme();\n return StyleSheet.create({\n widgetBlock: {\n marginVertical: theme.spacing(0.5),\n },\n checkboxesTitle: {\n marginBottom: theme.spacing(1),\n },\n checkboxRow: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: theme.spacing(1),\n marginVertical: theme.spacing(0.5),\n },\n checkboxLabel: {\n flex: 1,\n },\n });\n};\n","import { isNullish } from '@lichens-innovation/ts-common';\nimport DateTimePicker from '@react-native-community/datetimepicker';\nimport type { WidgetProps } from '@rjsf/utils';\nimport { useToggle } from '@uidotdev/usehooks';\nimport type { FunctionComponent } from 'react';\nimport { Platform, Pressable, StyleSheet, View } from 'react-native';\nimport { TextInput } from 'react-native-paper';\nimport { useAppTheme, useIsDarkMode } from '~/theme';\n\nimport {\n dateToDateOnlyString,\n formatDateOnlyForDisplay,\n getRjsfDisplayLabel,\n hasRjsfErrors,\n parseDateOnlyToLocalDate,\n} from '@lichens-innovation/ts-common/rjsf';\n\nexport const DateWidget: FunctionComponent<WidgetProps> = ({\n id,\n value,\n disabled,\n readonly,\n placeholder,\n onChange,\n onBlur,\n onFocus,\n label,\n hideLabel,\n required,\n rawErrors,\n}) => {\n const theme = useAppTheme();\n const isDarkMode = useIsDarkMode();\n const styles = useStyles();\n const [showPicker, togglePickerVisibility] = useToggle(false);\n const hasError = hasRjsfErrors(rawErrors);\n const displayLabel = getRjsfDisplayLabel({ label, required, hideLabel });\n const date = parseDateOnlyToLocalDate(value as string) ?? new Date();\n const strValue = formatDateOnlyForDisplay(value as string);\n const pickerDisplay = Platform.OS === 'ios' ? 'spinner' : 'default';\n const themeVariant = isDarkMode ? 'dark' : 'light';\n const isDisplayOnly = disabled || readonly;\n\n if (isDisplayOnly) {\n return (\n <View style={styles.widgetBlock}>\n <TextInput\n mode=\"outlined\"\n label={displayLabel}\n value={strValue}\n placeholder={placeholder}\n disabled={disabled}\n editable={false}\n error={hasError}\n style={styles.input}\n outlineColor={theme.colors.outline}\n onFocus={() => onFocus(id, value)}\n pointerEvents=\"auto\"\n />\n </View>\n );\n }\n\n const handlePick = (_: unknown, selectedDate?: Date) => {\n if (Platform.OS === 'android') togglePickerVisibility(false);\n if (!isNullish(selectedDate)) {\n const dateOnly = dateToDateOnlyString(selectedDate);\n onChange(dateOnly);\n onBlur(id, dateOnly);\n }\n };\n\n return (\n <View style={styles.widgetBlock}>\n <Pressable onPress={() => togglePickerVisibility()}>\n <TextInput\n mode=\"outlined\"\n label={displayLabel}\n value={strValue}\n placeholder={placeholder}\n disabled={disabled}\n editable={false}\n error={hasError}\n style={styles.input}\n outlineColor={theme.colors.outline}\n right={<TextInput.Icon icon=\"calendar\" onPress={() => togglePickerVisibility()} />}\n onFocus={() => onFocus(id, value)}\n pointerEvents=\"none\"\n />\n </Pressable>\n\n {showPicker && (\n <DateTimePicker\n value={date}\n mode=\"date\"\n display={pickerDisplay}\n onChange={handlePick}\n onTouchCancel={() => togglePickerVisibility(false)}\n themeVariant={themeVariant}\n {...(Platform.OS === 'ios' && { textColor: theme.colors.onSurface })}\n />\n )}\n </View>\n );\n};\n\nconst useStyles = () => {\n const theme = useAppTheme();\n return StyleSheet.create({\n widgetBlock: {\n marginVertical: theme.spacing(0.5),\n },\n input: {\n marginVertical: theme.spacing(0.5),\n },\n });\n};\n","import { isNullish } from '@lichens-innovation/ts-common';\nimport DateTimePicker from '@react-native-community/datetimepicker';\nimport type { WidgetProps } from '@rjsf/utils';\nimport { useToggle } from '@uidotdev/usehooks';\nimport type { FunctionComponent } from 'react';\nimport { Platform, Pressable, StyleSheet, View } from 'react-native';\nimport { TextInput } from 'react-native-paper';\nimport { useAppTheme, useIsDarkMode } from '~/theme';\n\nimport {\n formatDateTimeForDisplay,\n getRjsfDisplayLabel,\n hasRjsfErrors,\n parseDateOrNull,\n} from '@lichens-innovation/ts-common/rjsf';\n\nexport const DateTimeWidget: FunctionComponent<WidgetProps> = ({\n id,\n value,\n disabled,\n readonly,\n placeholder,\n onChange,\n onBlur,\n onFocus,\n label,\n hideLabel,\n required,\n rawErrors,\n}) => {\n const theme = useAppTheme();\n const isDarkMode = useIsDarkMode();\n const styles = useStyles();\n const [showPicker, togglePickerVisibility] = useToggle(false);\n const hasError = hasRjsfErrors(rawErrors);\n const displayLabel = getRjsfDisplayLabel({ label, required, hideLabel });\n const date = parseDateOrNull(value as string) ?? new Date();\n const strValue = formatDateTimeForDisplay(value as string);\n const pickerDisplay = Platform.OS === 'ios' ? 'spinner' : 'default';\n const themeVariant = isDarkMode ? 'dark' : 'light';\n const isDisplayOnly = disabled || readonly;\n\n if (isDisplayOnly) {\n return (\n <View style={styles.widgetBlock}>\n <TextInput\n mode=\"outlined\"\n label={displayLabel}\n value={strValue}\n placeholder={placeholder}\n disabled={disabled}\n editable={false}\n error={hasError}\n style={styles.input}\n outlineColor={theme.colors.outline}\n onFocus={() => onFocus(id, value)}\n pointerEvents=\"auto\"\n />\n </View>\n );\n }\n\n const handlePick = (_: unknown, selectedDate?: Date) => {\n if (Platform.OS === 'android') togglePickerVisibility(false);\n if (!isNullish(selectedDate)) {\n const iso = selectedDate.toISOString();\n onChange(iso);\n onBlur(id, iso);\n }\n };\n\n return (\n <View style={styles.widgetBlock}>\n <Pressable onPress={() => togglePickerVisibility()}>\n <TextInput\n mode=\"outlined\"\n label={displayLabel}\n value={strValue}\n placeholder={placeholder}\n disabled={disabled}\n editable={false}\n error={hasError}\n style={styles.input}\n outlineColor={theme.colors.outline}\n right={<TextInput.Icon icon=\"clock-outline\" onPress={() => togglePickerVisibility()} />}\n onFocus={() => onFocus(id, value)}\n pointerEvents=\"none\"\n />\n </Pressable>\n {showPicker && (\n <DateTimePicker\n value={date}\n mode=\"datetime\"\n display={pickerDisplay}\n onChange={handlePick}\n onTouchCancel={() => togglePickerVisibility(false)}\n themeVariant={themeVariant}\n {...(Platform.OS === 'ios' && { textColor: theme.colors.onSurface })}\n />\n )}\n </View>\n );\n};\n\nconst useStyles = () => {\n const theme = useAppTheme();\n return StyleSheet.create({\n widgetBlock: {\n marginVertical: theme.spacing(0.5),\n },\n input: {\n marginVertical: theme.spacing(0.5),\n },\n });\n};\n","import type { WidgetProps } from '@rjsf/utils';\nimport type { FunctionComponent } from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nconst styles = StyleSheet.create({\n hidden: {\n display: 'none',\n height: 0,\n overflow: 'hidden',\n },\n});\n\nexport const HiddenWidget: FunctionComponent<WidgetProps> = () => {\n return <View style={styles.hidden} />;\n};\n","import { MMKV } from 'react-native-mmkv';\n\nconst mmkvStorage = new MMKV();\n\nconst setItem = <T>(key: string, data: T) => {\n if (data instanceof ArrayBuffer) {\n mmkvStorage.set(key, data);\n } else if (typeof data === 'boolean' || typeof data === 'number' || typeof data === 'string') {\n mmkvStorage.set(key, data);\n } else {\n mmkvStorage.set(key, JSON.stringify(data));\n }\n};\n\nconst getItem = <T>(key: string, defaultValue: T): T => {\n if (defaultValue instanceof Uint8Array) {\n return (mmkvStorage.getBuffer(key) as T) ?? defaultValue;\n }\n if (typeof defaultValue === 'boolean') {\n return (mmkvStorage.getBoolean(key) as T) ?? defaultValue;\n }\n if (typeof defaultValue === 'number') {\n return (mmkvStorage.getNumber(key) as T) ?? defaultValue;\n }\n\n const stringValue = mmkvStorage.getString(key);\n if (stringValue === undefined || stringValue === null) return defaultValue;\n\n if (typeof defaultValue === 'string') {\n return stringValue as T;\n }\n\n try {\n return JSON.parse(stringValue) as T;\n } catch {\n return stringValue as T;\n }\n};\n\nconst removeItem = (key: string) => {\n mmkvStorage.delete(key);\n};\n\nexport const storage = {\n setItem,\n getItem,\n removeItem,\n};\n\nexport const mmkvStorageForMobxPersist = {\n setItem: (key: string, value: string): Promise<void> => {\n mmkvStorage.set(key, value);\n return Promise.resolve();\n },\n\n getItem: (key: string): Promise<string | null> => {\n const value = mmkvStorage.getString(key);\n return Promise.resolve(value ?? null);\n },\n\n removeItem: (key: string): Promise<void> => {\n mmkvStorage.delete(key);\n return Promise.resolve();\n },\n};\n","import { storage } from '../utils/storage';\n\nexport const isSentryActivated = (): boolean => storage.getItem<string>('SENTRY_ACTIVATED', '') === 'true';\nexport const getSentryDns = (): string => storage.getItem('SENTRY_DNS', '') ?? '';\n","import { makeAutoObservable } from 'mobx';\nimport { transportFunctionType } from 'react-native-logs';\nimport { LogEntry } from '../logger/logger.types';\n\nconst MAX_LOG_ENTRIES = 10 * 1000;\n\nclass CommonLogsStore {\n logEntries: LogEntry[] = [];\n\n constructor() {\n makeAutoObservable(this);\n }\n\n get allLogsAsText(): string {\n return this.logEntries\n .map((log) => log.msg)\n .filter((log) => !!log)\n .join('\\n');\n }\n\n addLog(logEntry: LogEntry): void {\n this.logEntries.push(logEntry);\n\n if (this.logEntries.length > MAX_LOG_ENTRIES) {\n this.logEntries.shift(); // remove the oldest log\n }\n }\n\n clearLogs(): void {\n this.logEntries = [];\n }\n\n filterLogs(filterText: string): LogEntry[] {\n const lowerCaseFilterText = filterText.toLowerCase();\n return this.logEntries.filter((log) => log.msg.toLowerCase().includes(lowerCaseFilterText));\n }\n}\n\nexport const commonLogsStore = new CommonLogsStore();\n\nexport const commonLogsStoreTransport: transportFunctionType<object> = (props: LogEntry) => {\n commonLogsStore.addLog(props);\n};\n","import Constants from 'expo-constants';\nimport * as Device from 'expo-device';\nimport { Platform } from 'react-native';\n\nexport const isRealDevice = (): boolean => {\n return Device.isDevice;\n};\n\nexport const isEmulator = (): boolean => {\n return !Device.isDevice;\n};\n\nexport const getDeviceType = (): string => {\n const isReal = isRealDevice();\n return Platform.select({\n ios: isReal ? 'iOS Device' : 'iOS Simulator',\n android: isReal ? 'Android Device' : 'Android Emulator',\n default: isReal ? `${Platform.OS} Real Device` : `${Platform.OS} Emulator`,\n });\n};\n\nexport const getAppIdentifier = (): string => {\n const bundleId = Platform.select({\n ios: Constants.expoConfig?.ios?.bundleIdentifier,\n android: Constants.expoConfig?.android?.package,\n default: 'Unknown',\n });\n\n const id = bundleId?.split('.').pop();\n return id ?? '';\n};\n","import Constants from 'expo-constants';\nimport * as Updates from 'expo-updates';\nimport { logger } from '../logger/logger';\n\nexport const isProduction = (): boolean => {\n return Updates.channel === 'production';\n};\n\nexport const isPreview = (): boolean => {\n return Updates.channel === 'preview';\n};\n\nexport const isDevelopment = (): boolean => {\n return __DEV__ || !Updates.channel;\n};\n\nexport const getEnvVarsSource = (): string => {\n if (Constants.executionEnvironment === 'storeClient') {\n return 'EAS (Production)';\n }\n\n return 'Local Development';\n};\n\nexport const validateGetRandomValues = (): boolean => {\n if (!crypto?.getRandomValues) {\n logger.error('[validateGetRandomValues] crypto.getRandomValues is not available as a global environment function');\n return false;\n }\n\n const typeOfGetRandomValues = typeof crypto.getRandomValues;\n if (typeOfGetRandomValues !== 'function') {\n logger.error(`[validateGetRandomValues] crypto.getRandomValues is not a function: ${typeOfGetRandomValues}`);\n return false;\n }\n\n logger.debug('[validateGetRandomValues] global crypto getRandomValues is available as a global environment function');\n return true;\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nexport interface SimpleLogger {\n debug(message: string, ...args: any[]): void;\n log(message: string, ...args: any[]): void;\n info(message: string, ...args: any[]): void;\n warn(message: string, ...args: any[]): void;\n error(message: string, ...args: any[]): void;\n}\n\n// extract names of logger methods as a type\nexport type LoggerMethods = keyof SimpleLogger;\n\nexport const LOG_LEVELS = {\n debug: 0,\n log: 1,\n info: 2,\n warn: 3,\n error: 4,\n} as const;\n\nexport type LogLevelKey = keyof typeof LOG_LEVELS;\n\nexport interface LogLevel {\n severity: number;\n text: string;\n}\n\nexport interface LogEntry {\n msg: string;\n rawMsg: unknown;\n level: LogLevel;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as Sentry from '@sentry/react-native';\nimport { InteractionManager, LogBox } from 'react-native';\nimport {\n fileAsyncTransport,\n mapConsoleTransport,\n logger as RNLogger,\n sentryTransport,\n transportFunctionType,\n} from 'react-native-logs';\n\nimport { Directory, File, Paths } from 'expo-file-system';\nimport * as FileSystemLegacy from 'expo-file-system/legacy';\nimport { getSentryDns, isSentryActivated } from '../config/env.config';\nimport { FileInfo } from '../services/files/native-file-system.types';\nimport { commonLogsStoreTransport } from '../store/common-logs.store';\nimport { getAppIdentifier } from '../utils/device.utils';\nimport { isDevelopment } from '../utils/env.utils';\nimport { LOG_LEVELS, SimpleLogger } from './logger.types';\n\nLogBox.ignoreLogs([/^ErrorBoundary /, /Support for defaultProps will be removed from function components/]);\n\nconst appName = getAppIdentifier();\nconst logFilenamePrefix = `app-logs-${appName}`;\nconst logFilenamePattern = `${logFilenamePrefix}-{date-today}.txt`;\nconst filePath: string = Paths.document.uri;\nif (!filePath) {\n throw new Error('Failed to initialize logger: document directory path is unavailable');\n}\n\nclass LoggerWrapper implements SimpleLogger {\n private _logger: ReturnType<typeof RNLogger.createLogger>;\n\n constructor(config: Parameters<typeof RNLogger.createLogger>[0]) {\n this._logger = RNLogger.createLogger(config);\n }\n\n debug(message: string, ...args: any[]): void {\n this._logger.debug(message, ...args);\n }\n\n log(message: string, ...args: any[]): void {\n this._logger.log(message, ...args);\n }\n\n info(message: string, ...args: any[]): void {\n this._logger.info(message, ...args);\n }\n\n warn(message: string, ...args: any[]): void {\n this._logger.warn(message, ...args);\n }\n\n error(message: string, ...args: any[]): void {\n this._logger.error(message, ...args);\n }\n}\n\nconst getTransports = (): transportFunctionType<any>[] => {\n const transports: transportFunctionType<any>[] = [fileAsyncTransport, commonLogsStoreTransport];\n\n if (!isDevelopment() && isSentryActivated()) {\n Sentry.init({\n dsn: getSentryDns(),\n // We can add more context data to events (IP address, cookies, user, etc.)\n // @see https://docs.sentry.io/platforms/react-native/data-management/data-collected/\n sendDefaultPii: true,\n });\n transports.push(sentryTransport);\n }\n\n if (isDevelopment()) {\n transports.push(mapConsoleTransport);\n }\n\n return transports;\n};\n\nexport const logger = new LoggerWrapper({\n severity: 'debug',\n transport: getTransports(),\n levels: {\n debug: LOG_LEVELS.debug,\n log: LOG_LEVELS.log,\n info: LOG_LEVELS.info,\n warn: LOG_LEVELS.warn,\n error: LOG_LEVELS.error,\n },\n async: true,\n asyncFunc: InteractionManager.runAfterInteractions,\n dateFormat: (date: Date) => `${date.toISOString()} `,\n printLevel: true,\n fixedExtLvlLength: true,\n printDate: true,\n enabled: true,\n transportOptions: {\n // @see https://github.com/mowispace/react-native-logs?tab=readme-ov-file#sentrytransport\n SENTRY: Sentry,\n errorLevels: 'error',\n // @see https://github.com/mowispace/react-native-logs?tab=readme-ov-file#mapconsoletransport\n mapLevels: {\n debug: 'debug',\n log: 'log',\n info: 'info',\n warn: 'warn',\n error: 'error',\n },\n // @see https://github.com/mowispace/react-native-logs?tab=readme-ov-file#fileasynctransport\n FS: FileSystemLegacy,\n fileNameDateType: 'iso',\n fileName: logFilenamePattern,\n filePath,\n },\n});\n\nconst isLogFile = (fileName: string): boolean => {\n return fileName.startsWith(logFilenamePrefix);\n};\n\nconst isLogFileItem = (item: Directory | File): item is File => {\n return item instanceof File && isLogFile(item.name);\n};\n\nconst byMostRecentFirstComparator = (a: FileInfo, b: FileInfo): number => {\n return (b.modificationTime ?? 0) - (a.modificationTime ?? 0);\n};\n\nexport const loadAllLogFilesInfo = async (): Promise<FileInfo[]> => {\n try {\n const pathInfo = Paths.info(filePath);\n if (!pathInfo.exists) {\n return [];\n }\n\n const directory = new Directory(filePath);\n const items = directory.list();\n const logFiles = items.filter(isLogFileItem);\n\n const fileInfos: FileInfo[] = logFiles\n .map((file) => {\n const info = file.info();\n return {\n exists: info.exists,\n isDirectory: false,\n size: info.size ?? 0,\n modificationTime: info.modificationTime ?? 0,\n uri: file.uri,\n };\n })\n .filter((info) => info.exists);\n\n return fileInfos.sort(byMostRecentFirstComparator);\n } catch (e: unknown) {\n logger.error('Error loading files:', e);\n return [];\n }\n};\n\nexport const loadCurrentLogsFileUri = async (): Promise<string> => {\n const fileInfos = await loadAllLogFilesInfo();\n return fileInfos[0]?.uri ?? '';\n};\n\nexport const deleteAllLogFiles = async (): Promise<void> => {\n try {\n const pathInfo = Paths.info(filePath);\n if (!pathInfo.exists) {\n return;\n }\n\n const directory = new Directory(filePath);\n const items = directory.list();\n const logFiles: File[] = items.filter(isLogFileItem);\n\n const errors: Error[] = [];\n for (const file of logFiles) {\n try {\n file.delete();\n } catch (e: unknown) {\n errors.push(e instanceof Error ? e : new Error(String(e)));\n }\n }\n\n if (errors.length > 0) {\n throw new Error(`Failed to delete ${errors.length} log file(s): ${errors.map((e) => e.message).join('; ')}`);\n }\n } catch (e: unknown) {\n logger.error('Error deleting files:', e);\n throw e;\n }\n};\n","import { isBlank } from '@lichens-innovation/ts-common';\nimport { getRjsfDisplayLabel, hasRjsfErrors, toStringOrEmpty } from '@lichens-innovation/ts-common/rjsf';\nimport type { WidgetProps } from '@rjsf/utils';\nimport type { FunctionComponent } from 'react';\nimport { StyleSheet } from 'react-native';\nimport { TextInput } from 'react-native-paper';\nimport { logger } from '~/logger/logger';\nimport { useAppTheme } from '~/theme';\n\nexport const NumberWidget: FunctionComponent<WidgetProps> = ({\n id,\n value,\n disabled,\n readonly,\n placeholder,\n onChange,\n onBlur,\n onFocus,\n label,\n hideLabel,\n required,\n rawErrors,\n options,\n schema,\n}) => {\n const theme = useAppTheme();\n const styles = useStyles();\n const hasError = hasRjsfErrors(rawErrors);\n const displayLabel = getRjsfDisplayLabel({ label, required, hideLabel });\n const strValue = toStringOrEmpty(value);\n\n const isInteger = schema?.type === 'integer';\n\n const handleChangeText = (text: string) => {\n if (isBlank(text)) {\n onChange(options?.emptyValue);\n return;\n }\n\n const floatValue = parseFloat(text);\n if (Number.isNaN(floatValue)) {\n logger.error('[NumberWidget]: Invalid float value', { text });\n return;\n }\n onChange(isInteger ? Math.round(floatValue) : floatValue);\n };\n\n const keyboardType = isInteger ? 'number-pad' : 'decimal-pad';\n const inputMode = isInteger ? 'numeric' : 'decimal';\n\n return (\n <TextInput\n mode=\"outlined\"\n label={displayLabel}\n value={strValue}\n placeholder={placeholder}\n disabled={disabled}\n editable={!readonly}\n keyboardType={keyboardType}\n inputMode={inputMode}\n onChangeText={handleChangeText}\n onBlur={() => onBlur(id, value)}\n onFocus={() => onFocus(id, value)}\n error={hasError}\n style={styles.input}\n outlineColor={theme.colors.outline}\n />\n );\n};\n\nconst useStyles = () => {\n const theme = useAppTheme();\n return StyleSheet.create({\n input: {\n marginVertical: theme.spacing(0.5),\n },\n });\n};\n","import { useToggle } from '@uidotdev/usehooks';\nimport { FunctionComponent } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { TextInput, TextInputProps } from 'react-native-paper';\n\nexport type PasswordInputProps = Omit<TextInputProps, 'secureTextEntry'>;\n\nexport const PasswordInput: FunctionComponent<PasswordInputProps> = ({ label, ...rest }) => {\n const { t } = useTranslation();\n const [isPasswordVisible, toggleShowPassword] = useToggle();\n\n const displayLabel = label ?? t('common:password');\n const icon = isPasswordVisible ? 'eye-off' : 'eye';\n const showA11yLabel = isPasswordVisible\n ? t('common:passwordInput.hidePassword')\n : t('common:passwordInput.showPassword');\n\n return (\n <TextInput\n label={displayLabel}\n secureTextEntry={!isPasswordVisible}\n right={<TextInput.Icon icon={icon} onPress={() => toggleShowPassword()} accessibilityLabel={showA11yLabel} />}\n {...rest}\n />\n );\n};\n","import {\n getRjsfDisplayLabel,\n getRjsfTextChangeValue,\n hasRjsfErrors,\n toStringOrEmpty,\n} from '@lichens-innovation/ts-common/rjsf';\nimport type { WidgetProps } from '@rjsf/utils';\nimport type { FunctionComponent } from 'react';\nimport { StyleSheet } from 'react-native';\nimport { PasswordInput } from '~/components/password-input/password-input';\nimport { useAppTheme } from '~/theme';\n\nexport const PasswordWidget: FunctionComponent<WidgetProps> = ({\n id,\n value,\n disabled,\n readonly,\n placeholder,\n onChange,\n onBlur,\n onFocus,\n label,\n hideLabel,\n required,\n rawErrors,\n options,\n}) => {\n const theme = useAppTheme();\n const styles = useStyles();\n const hasError = hasRjsfErrors(rawErrors);\n const displayLabel = getRjsfDisplayLabel({ label, required, hideLabel });\n\n const handleChangeText = (text: string) => {\n onChange(getRjsfTextChangeValue({ text, emptyValue: options?.emptyValue }));\n };\n\n return (\n <PasswordInput\n mode=\"outlined\"\n label={displayLabel}\n value={toStringOrEmpty(value)}\n placeholder={placeholder}\n disabled={disabled}\n editable={!readonly}\n onChangeText={handleChangeText}\n onBlur={() => onBlur(id, value)}\n onFocus={() => onFocus(id, value)}\n error={hasError}\n style={styles.input}\n outlineColor={theme.colors.outline}\n />\n );\n};\n\nconst useStyles = () => {\n const theme = useAppTheme();\n return StyleSheet.create({\n input: {\n marginVertical: theme.spacing(0.5),\n },\n });\n};\n","import type { EnumOptionDisplay } from '@lichens-innovation/ts-common/rjsf';\nimport { getRjsfDisplayLabel, mapEnumOptions, toStringOrEmpty } from '@lichens-innovation/ts-common/rjsf';\nimport type { WidgetProps } from '@rjsf/utils';\nimport type { FunctionComponent } from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { RadioButton } from 'react-native-paper';\nimport { useAppTheme } from '~/theme';\nimport { RjsfDisplayLabel } from './display-label';\n\nexport const RadioWidget: FunctionComponent<WidgetProps> = ({\n id,\n value,\n disabled,\n readonly,\n onChange,\n onBlur,\n label,\n hideLabel,\n required,\n options,\n}) => {\n const styles = useStyles();\n const displayLabel = getRjsfDisplayLabel({ label, required, hideLabel });\n const enumOptions = mapEnumOptions(options);\n const strValue = toStringOrEmpty(value);\n\n return (\n <View style={styles.widgetBlock}>\n <RjsfDisplayLabel label={displayLabel} style={styles.radioTitle} />\n <RadioButton.Group\n onValueChange={(v) => {\n onChange(v);\n onBlur(id, v);\n }}\n value={strValue}\n >\n {enumOptions.map((opt: EnumOptionDisplay) => (\n <RadioButton.Item\n key={opt.value}\n label={opt.label}\n value={opt.value}\n disabled={disabled || readonly}\n style={styles.radioItem}\n />\n ))}\n </RadioButton.Group>\n </View>\n );\n};\n\nconst useStyles = () => {\n const theme = useAppTheme();\n return StyleSheet.create({\n widgetBlock: {\n marginVertical: theme.spacing(0.5),\n },\n radioTitle: {\n marginBottom: theme.spacing(1),\n },\n radioItem: {\n marginVertical: theme.spacing(0.25),\n },\n });\n};\n","import { getRjsfDisplayLabel } from '@lichens-innovation/ts-common/rjsf';\nimport Slider from '@react-native-community/slider';\nimport type { WidgetProps } from '@rjsf/utils';\nimport type { FunctionComponent } from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { Text } from 'react-native-paper';\nimport { useAppTheme } from '~/theme';\nimport { RjsfDisplayLabel } from './display-label';\n\nexport const RangeWidget: FunctionComponent<WidgetProps> = ({\n id,\n value,\n disabled,\n readonly,\n onChange,\n onBlur,\n label,\n hideLabel,\n required,\n rawErrors: _rawErrors,\n schema,\n}) => {\n const theme = useAppTheme();\n const styles = useStyles();\n const displayLabel = getRjsfDisplayLabel({ label, required, hideLabel });\n const hasSchemaMin = typeof schema?.minimum === 'number';\n const min = hasSchemaMin ? schema.minimum : 0;\n const hasSchemaMax = typeof schema?.maximum === 'number';\n const max = hasSchemaMax ? schema.maximum : 100;\n const hasValidValue = typeof value === 'number' && !Number.isNaN(value);\n const numValue = (hasValidValue ? value : min) as number;\n const displayValue = Math.round(numValue);\n\n const handleSlidingComplete = (v: number) => {\n const intValue = Math.round(v);\n onChange(intValue);\n onBlur(id, intValue);\n };\n\n return (\n <View style={styles.widgetBlock}>\n <RjsfDisplayLabel label={displayLabel} style={styles.rangeLabel} />\n\n <View style={styles.rangeRow}>\n <Slider\n style={styles.slider}\n minimumValue={min}\n maximumValue={max}\n value={numValue}\n onSlidingComplete={handleSlidingComplete}\n minimumTrackTintColor={theme.colors.primary}\n maximumTrackTintColor={theme.colors.outline}\n disabled={disabled || readonly}\n />\n <Text variant=\"bodyMedium\" style={styles.rangeValue}>\n {displayValue}\n </Text>\n </View>\n </View>\n );\n};\n\nconst useStyles = () => {\n const theme = useAppTheme();\n return StyleSheet.create({\n widgetBlock: {\n marginVertical: theme.spacing(0.5),\n },\n rangeLabel: {\n marginBottom: theme.spacing(0.5),\n },\n rangeRow: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: theme.spacing(2),\n },\n slider: {\n flex: 1,\n height: 40,\n },\n rangeValue: {\n minWidth: 36,\n },\n });\n};\n","import { AppTheme } from '~/theme';\n\ninterface GetTextColorArgs {\n theme: AppTheme;\n isFocused: boolean;\n isDisabled: boolean;\n}\nexport const getTextColor = ({ theme, isFocused, isDisabled }: GetTextColorArgs) => {\n const { onSurfaceDisabled, primary, secondary } = theme.colors;\n\n if (isDisabled) {\n return onSurfaceDisabled;\n }\n\n if (isFocused) {\n return primary;\n }\n\n return secondary;\n};\n\ninterface GetLabelColorArgs {\n theme: AppTheme;\n isError: boolean;\n isDisabled: boolean;\n isFocusedAndEnabled: boolean;\n}\nexport const getLabelColor = ({ theme, isError, isDisabled, isFocusedAndEnabled }: GetLabelColorArgs) => {\n const { error, onSurfaceDisabled, primary, onSurface } = theme.colors;\n\n if (isError) {\n return error;\n }\n\n if (isDisabled) {\n return onSurfaceDisabled;\n }\n\n if (isFocusedAndEnabled) {\n return primary;\n }\n\n return onSurface;\n};\n\ninterface GetBorderColorArgs {\n theme: AppTheme;\n isError: boolean;\n isDisabled: boolean;\n isFocused: boolean;\n}\nexport const getBorderColor = ({ theme, isError, isDisabled, isFocused }: GetBorderColorArgs) => {\n const { error, surfaceDisabled, primary, outline } = theme.colors;\n\n if (isError) {\n return error;\n }\n\n if (isDisabled) {\n return surfaceDisabled;\n }\n\n if (isFocused) {\n return primary;\n }\n\n return outline;\n};\n","import { FunctionComponent } from 'react';\nimport { Icon } from 'react-native-paper';\n\nexport type DropDownSelectorLeftIconProps = {\n icon?: string;\n color: string;\n size?: number;\n};\n\nexport const DropDownSelectorLeftIcon: FunctionComponent<DropDownSelectorLeftIconProps> = ({\n icon,\n color,\n size = 20,\n}) => {\n if (!icon) {\n return null;\n }\n\n return <Icon source={icon} size={size} color={color} />;\n};\n","import { FunctionComponent } from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { Text } from 'react-native-paper';\nimport { useAppTheme } from '../../theme/theme';\nimport { SelectOption } from './drop-down-selector';\nimport { DropDownSelectorLeftIcon } from './drop-down-selector-left-icon';\n\nexport type DropDownSelectorItemProps = {\n item: SelectOption;\n selected?: boolean;\n textColor: string;\n};\n\nexport const DropDownSelectorItem: FunctionComponent<DropDownSelectorItemProps> = ({ item, selected, textColor }) => {\n const isSelected = selected === true;\n const styles = useStyles({ isSelected });\n\n return (\n <View style={styles.itemContainer}>\n {item.icon && <DropDownSelectorLeftIcon icon={item.icon} color={textColor} />}\n <Text style={{ color: textColor }}>{item.label}</Text>\n </View>\n );\n};\n\ntype UseStylesProps = {\n isSelected: boolean;\n};\n\nconst useStyles = ({ isSelected }: UseStylesProps) => {\n const theme = useAppTheme();\n\n return StyleSheet.create({\n itemContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n paddingVertical: theme.spacing(1),\n paddingHorizontal: theme.spacing(1),\n gap: theme.spacing(1),\n backgroundColor: isSelected ? theme.colors.surfaceVariant : theme.colors.surface,\n },\n });\n};\n","import { FunctionComponent, useState } from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { Dropdown } from 'react-native-element-dropdown';\nimport { Text } from 'react-native-paper';\nimport { useAppTheme } from '../../theme/theme';\nimport { getBorderColor, getLabelColor, getTextColor } from './drop-down-selector.utils';\nimport { DropDownSelectorItem } from './drop-down-selector-item';\nimport { DropDownSelectorLeftIcon } from './drop-down-selector-left-icon';\n\nexport interface SelectOption {\n label: string;\n value: string;\n icon?: string;\n}\n\nexport type DropDownSelectorProps = {\n label?: string;\n value?: string;\n onChange: (code: string) => void;\n isError?: boolean;\n options: SelectOption[];\n placeholder?: string;\n searchPlaceholder?: string;\n disabled?: boolean;\n};\n\nexport const DropDownSelector: FunctionComponent<DropDownSelectorProps> = ({\n label,\n value,\n onChange,\n isError,\n options,\n placeholder,\n searchPlaceholder,\n disabled,\n}) => {\n const [isFocused, setIsFocused] = useState(false);\n const hasLabel = !!label;\n const theme = useAppTheme();\n const isDisabled = disabled === true;\n const textColor = getTextColor({ theme, isFocused, isDisabled });\n const styles = useStyles({ isFocused, disabled, isError, textColor });\n\n const selectedItem = options.find((option) => option.value === value);\n\n return (\n <View>\n {hasLabel && (\n <Text variant=\"bodySmall\" style={styles.dropdownTitle}>\n {label}\n </Text>\n )}\n\n <Dropdown\n style={styles.dropdown}\n autoScroll={false} // @see https://github.com/hoaphantn7604/react-native-element-dropdown/issues/345\n placeholderStyle={styles.placeholderStyle}\n selectedTextStyle={styles.selectedTextStyle}\n data={options}\n search={false}\n searchPlaceholder={searchPlaceholder}\n maxHeight={300}\n labelField=\"label\"\n valueField=\"value\"\n placeholder={isFocused ? '' : placeholder}\n value={value}\n disable={disabled}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n onChange={({ value }) => {\n onChange(value);\n setIsFocused(false);\n }}\n renderItem={(item: SelectOption, selected?: boolean) => (\n <DropDownSelectorItem item={item} selected={selected} textColor={textColor} />\n )}\n renderLeftIcon={() => <DropDownSelectorLeftIcon icon={selectedItem?.icon} color={textColor} />}\n />\n </View>\n );\n};\n\ntype UseStylesProps = {\n isFocused: boolean;\n disabled?: boolean;\n isError?: boolean;\n textColor: string;\n};\n\nconst useStyles = ({ isFocused, disabled, isError, textColor }: UseStylesProps) => {\n const theme = useAppTheme();\n const { surface, surfaceDisabled } = theme.colors;\n\n const isDisabled = disabled === true;\n const isFocusedAndEnabled = isFocused && !isDisabled;\n\n // Priority: error > disabled > focus > normal\n const labelColor = getLabelColor({ theme, isError: !!isError, isDisabled, isFocusedAndEnabled });\n const borderColor = getBorderColor({ theme, isError: !!isError, isDisabled, isFocused });\n const borderWidth = isFocusedAndEnabled ? 2 : 1;\n\n const backgroundColor = isDisabled ? surfaceDisabled : 'transparent';\n\n return StyleSheet.create({\n dropdownTitle: {\n position: 'absolute',\n top: -theme.spacing(1),\n left: theme.spacing(1),\n backgroundColor: surface,\n paddingHorizontal: theme.spacing(0.75),\n color: labelColor,\n zIndex: 1,\n },\n dropdown: {\n height: 50,\n borderColor,\n borderWidth,\n borderRadius: theme.roundness,\n paddingHorizontal: theme.spacing(1),\n backgroundColor,\n },\n placeholderStyle: {\n color: textColor,\n },\n selectedTextStyle: {\n color: textColor,\n paddingLeft: theme.spacing(1),\n },\n });\n};\n","import {\n getRjsfDisplayLabel,\n hasRjsfErrors,\n mapEnumOptions,\n toStringOrUndefined,\n} from '@lichens-innovation/ts-common/rjsf';\nimport type { WidgetProps } from '@rjsf/utils';\nimport type { FunctionComponent } from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { DropDownSelector } from '~/components/drop-down-selector/drop-down-selector';\nimport { useAppTheme } from '~/theme';\n\nexport const SelectWidget: FunctionComponent<WidgetProps> = ({\n id,\n value,\n disabled,\n placeholder,\n onChange,\n onBlur,\n label,\n hideLabel,\n required,\n rawErrors,\n options,\n}) => {\n const styles = useStyles();\n const hasError = hasRjsfErrors(rawErrors);\n const displayLabel = getRjsfDisplayLabel({ label, required, hideLabel });\n const selectOptions = mapEnumOptions(options);\n const strValue = toStringOrUndefined(value);\n\n const handleChange = (code: string) => {\n onChange(code);\n onBlur(id, code);\n };\n\n return (\n <View style={styles.widgetBlock}>\n <DropDownSelector\n label={displayLabel}\n value={strValue}\n onChange={handleChange}\n options={selectOptions}\n placeholder={placeholder}\n disabled={disabled}\n isError={hasError}\n />\n </View>\n );\n};\n\nconst useStyles = () => {\n const theme = useAppTheme();\n return StyleSheet.create({\n widgetBlock: {\n marginVertical: theme.spacing(0.5),\n },\n });\n};\n","import {\n getRjsfDisplayLabel,\n getRjsfTextChangeValue,\n hasRjsfErrors,\n toStringOrEmpty,\n} from '@lichens-innovation/ts-common/rjsf';\nimport type { WidgetProps } from '@rjsf/utils';\nimport type { FunctionComponent } from 'react';\nimport { StyleSheet } from 'react-native';\nimport { TextInput } from 'react-native-paper';\nimport { useAppTheme } from '~/theme';\n\nexport const TextWidget: FunctionComponent<WidgetProps> = ({\n id,\n value,\n disabled,\n readonly,\n placeholder,\n onChange,\n onBlur,\n onFocus,\n label,\n hideLabel,\n required,\n rawErrors,\n options,\n}) => {\n const theme = useAppTheme();\n const styles = useStyles();\n const hasError = hasRjsfErrors(rawErrors);\n const displayLabel = getRjsfDisplayLabel({ label, required, hideLabel });\n\n const handleChangeText = (text: string) => {\n onChange(getRjsfTextChangeValue({ text, emptyValue: options?.emptyValue }));\n };\n\n return (\n <TextInput\n mode=\"outlined\"\n label={displayLabel}\n value={toStringOrEmpty(value)}\n placeholder={placeholder}\n disabled={disabled}\n editable={!readonly}\n onChangeText={handleChangeText}\n onBlur={() => onBlur(id, value)}\n onFocus={() => onFocus(id, value)}\n error={hasError}\n style={styles.input}\n outlineColor={theme.colors.outline}\n />\n );\n};\n\nconst useStyles = () => {\n const theme = useAppTheme();\n return StyleSheet.create({\n input: {\n marginVertical: theme.spacing(0.5),\n },\n });\n};\n","import {\n getRjsfDisplayLabel,\n getRjsfTextChangeValue,\n hasRjsfErrors,\n toStringOrEmpty,\n} from '@lichens-innovation/ts-common/rjsf';\nimport type { WidgetProps } from '@rjsf/utils';\nimport type { FunctionComponent } from 'react';\nimport { StyleSheet } from 'react-native';\nimport { TextInput } from 'react-native-paper';\nimport { useAppTheme } from '~/theme';\n\nexport const TextareaWidget: FunctionComponent<WidgetProps> = ({\n id,\n value,\n disabled,\n readonly,\n placeholder,\n onChange,\n onBlur,\n onFocus,\n label,\n hideLabel,\n required,\n rawErrors,\n options,\n}) => {\n const theme = useAppTheme();\n const styles = useStyles();\n const hasError = hasRjsfErrors(rawErrors);\n const displayLabel = getRjsfDisplayLabel({ label, required, hideLabel });\n const numberOfLines = options?.numberOfLines ?? 4;\n\n const handleChangeText = (text: string) => {\n onChange(getRjsfTextChangeValue({ text, emptyValue: options?.emptyValue }));\n };\n\n return (\n <TextInput\n mode=\"outlined\"\n label={displayLabel}\n value={toStringOrEmpty(value)}\n placeholder={placeholder}\n disabled={disabled}\n editable={!readonly}\n multiline\n numberOfLines={numberOfLines}\n onChangeText={handleChangeText}\n onBlur={() => onBlur(id, value)}\n onFocus={() => onFocus(id, value)}\n error={hasError}\n style={[styles.input, styles.textarea]}\n outlineColor={theme.colors.outline}\n />\n );\n};\n\nconst useStyles = () => {\n const theme = useAppTheme();\n return StyleSheet.create({\n input: {\n marginVertical: theme.spacing(0.5),\n },\n textarea: {\n minHeight: 100,\n },\n });\n};\n","import type { ThemeProps } from '@rjsf/core';\nimport { RjsfPaperFormWrapper } from './form-submit-context';\nimport {\n CheckboxWidget,\n CheckboxesWidget,\n DateTimeWidget,\n DateWidget,\n HiddenWidget,\n NumberWidget,\n PasswordWidget,\n RadioWidget,\n RangeWidget,\n SelectWidget,\n TextWidget,\n TextareaWidget,\n} from './widgets';\n\nexport const RJSF_PAPER_THEME: ThemeProps = {\n widgets: {\n TextWidget,\n TextareaWidget,\n HiddenWidget,\n password: PasswordWidget,\n PasswordWidget,\n date: DateWidget,\n DateWidget,\n datetime: DateTimeWidget,\n DateTimeWidget,\n select: SelectWidget,\n SelectWidget,\n radio: RadioWidget,\n RadioWidget,\n range: RangeWidget,\n RangeWidget,\n number: NumberWidget,\n updown: NumberWidget,\n NumberWidget,\n UpDownWidget: NumberWidget,\n checkbox: CheckboxWidget,\n CheckboxWidget,\n checkboxes: CheckboxesWidget,\n CheckboxesWidget,\n },\n // Form passes onSubmit, children, className, etc. Our wrapper accepts View props + onSubmit.\n _internalFormWrapper: RjsfPaperFormWrapper as ThemeProps['_internalFormWrapper'],\n};\n","import { translateRjsfString, useRjsfValidator } from '@lichens-innovation/ts-common/rjsf';\nimport type { FormProps, IChangeEvent } from '@rjsf/core';\nimport { withTheme } from '@rjsf/core';\nimport type { RJSFSchema } from '@rjsf/utils';\nimport type { FunctionComponent } from 'react';\nimport { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { PAPER_TEMPLATES } from './rjsf-paper-templates';\nimport { RJSF_PAPER_THEME } from './rjsf-paper-theme';\n\nconst ThemedForm = withTheme(RJSF_PAPER_THEME);\n\ntype FormTemplates = FormProps<FormData, RJSFSchema>['templates'];\n\nexport type FormData = Record<string, unknown>;\n\nexport type RjsfPaperRendererProps = Omit<FormProps<FormData, RJSFSchema>, 'validator'>;\n\nexport const RjsfPaperRenderer: FunctionComponent<RjsfPaperRendererProps> = ({\n formData: formDataProp,\n onChange: onChangeProp,\n uiSchema = {},\n ...rest\n}) => {\n const { t, i18n } = useTranslation();\n const customValidator = useRjsfValidator();\n const [localFormData, setLocalFormData] = useState<FormData | undefined>(formDataProp);\n\n useEffect(() => {\n setLocalFormData(formDataProp);\n }, [formDataProp]);\n\n const handleChange = (data: IChangeEvent<FormData, RJSFSchema>, id?: string) => {\n setLocalFormData(data.formData);\n onChangeProp?.(data, id);\n };\n\n return (\n <ThemedForm\n {...rest}\n key={i18n.language}\n formData={localFormData}\n onChange={handleChange}\n templates={PAPER_TEMPLATES as unknown as FormTemplates}\n validator={customValidator}\n translateString={(stringToTranslate, params) => translateRjsfString({ stringToTranslate, params })}\n uiSchema={{\n ...uiSchema,\n 'ui:submitButtonOptions': { submitText: t('rjsf:submit') },\n }}\n />\n );\n};\n"]}
package/package.json CHANGED
@@ -3,10 +3,20 @@
3
3
  "description": "Lichens Innovation React Native Expo shared components, utilities, hooks and services",
4
4
  "repository": "https://github.com/Lichens-Innovation/react-native-common",
5
5
  "author": "Lichens Innovation",
6
- "version": "3.10.0",
6
+ "version": "3.11.0",
7
7
  "private": false,
8
8
  "main": "dist/index.js",
9
9
  "types": "dist/index.d.ts",
10
+ "exports": {
11
+ ".": {
12
+ "types": "./dist/index.d.ts",
13
+ "default": "./dist/index.js"
14
+ },
15
+ "./rjsf": {
16
+ "types": "./dist/rjsf.d.ts",
17
+ "default": "./dist/rjsf.js"
18
+ }
19
+ },
10
20
  "files": [
11
21
  "dist"
12
22
  ],
@@ -18,10 +28,10 @@
18
28
  "clean:node": "npx rimraf node_modules yarn.lock",
19
29
  "clean:dist": "npx rimraf dist",
20
30
  "typecheck": "npx tsc --noEmit",
21
- "build": "npm run clean:dist && tsc",
22
- "watch:for:rvdrain": "tsc --watch & cpx \"dist/**/*\" --watch & cpx \"dist/**/*\" ../rinno-rvdrain-app-mobile/node_modules/@lichens-innovation/react-native-common/dist --watch",
23
- "watch:for:manufacture": "tsc --watch & cpx \"dist/**/*\" --watch & cpx \"dist/**/*\" ../rinno-manufacture-app/node_modules/@lichens-innovation/react-native-common/dist --watch",
24
- "watch:for:rn-common-demo": "tsc --watch & cpx \"dist/**/*\" --watch & cpx \"dist/**/*\" ../react-native-common-demo/node_modules/@lichens-innovation/react-native-common/dist --watch",
31
+ "build": "npm run clean:dist && tsup",
32
+ "watch:for:rvdrain": "tsup --watch & cpx \"dist/**/*\" --watch & cpx \"dist/**/*\" ../rinno-rvdrain-app-mobile/node_modules/@lichens-innovation/react-native-common/dist --watch",
33
+ "watch:for:manufacture": "tsup --watch & cpx \"dist/**/*\" --watch & cpx \"dist/**/*\" ../rinno-manufacture-app/node_modules/@lichens-innovation/react-native-common/dist --watch",
34
+ "watch:for:rn-common-demo": "tsup --watch & cpx \"dist/**/*\" --watch & cpx \"dist/**/*\" ../react-native-common-demo/node_modules/@lichens-innovation/react-native-common/dist --watch",
25
35
  "test": "vitest",
26
36
  "lint": "eslint \"**/*.{js,jsx,ts,tsx}\" && prettier -c \"**/*.{js,jsx,ts,tsx,json}\"",
27
37
  "lint:fix": "eslint \"**/*.{js,jsx,ts,tsx}\" --fix",
@@ -29,7 +39,7 @@
29
39
  },
30
40
  "dependencies": {
31
41
  "@legendapp/list": "^2.0.9",
32
- "@lichens-innovation/ts-common": "^1.14.0",
42
+ "@lichens-innovation/ts-common": "^1.15.0",
33
43
  "@noble/hashes": "^2.0.1",
34
44
  "@uidotdev/usehooks": "^2.4.1",
35
45
  "buffer": "^6.0.3",
@@ -52,15 +62,19 @@
52
62
  "@commitlint/config-conventional": "^20.3.0",
53
63
  "@gorhom/bottom-sheet": "^5.2.4",
54
64
  "@react-native-clipboard/clipboard": "^1.16.3",
65
+ "@react-native-community/datetimepicker": "^8.6.0",
55
66
  "@react-native-community/netinfo": "^11.4.1",
67
+ "@react-native-community/slider": "^5.1.2",
56
68
  "@react-navigation/native": "^7.1.6",
69
+ "@rjsf/core": "^6.4.1",
70
+ "@rjsf/utils": "^6.4.1",
71
+ "@rjsf/validator-ajv8": "^6.4.1",
57
72
  "@sentry/react-native": "~7.2.0",
58
73
  "@tanstack/react-query": "^5.90.2",
59
74
  "@types/react": "~18.3.12",
60
75
  "@typescript-eslint/eslint-plugin": "^8.42.0",
61
76
  "@typescript-eslint/parser": "^8.42.0",
62
- "eslint-plugin-prettier": "^5.4.0",
63
- "eslint-plugin-react": "^7.37.3",
77
+ "ajv-i18n": "^4.2.0",
64
78
  "axios": "^1.12.2",
65
79
  "babel-plugin-module-resolver": "^5.0.2",
66
80
  "babel-plugin-transform-import-meta": "^2.3.3",
@@ -69,6 +83,8 @@
69
83
  "cpx": "^1.5.0",
70
84
  "eslint": "^9.36.0",
71
85
  "eslint-config-universe": "^15.0.3",
86
+ "eslint-plugin-prettier": "^5.4.0",
87
+ "eslint-plugin-react": "^7.37.3",
72
88
  "expo": "^54.0.12",
73
89
  "expo-application": "~7.0.7",
74
90
  "expo-asset": "~12.0.9",
@@ -119,16 +135,23 @@
119
135
  "react-native-winrt": "^0.72.2",
120
136
  "react-native-zeroconf": "^0.13.8",
121
137
  "rimraf": "^6.0.1",
138
+ "tsup": "^8.5.1",
122
139
  "typescript": "~5.9.3",
123
140
  "vitest": "^3.2.4"
124
141
  },
125
142
  "peerDependencies": {
126
143
  "@gorhom/bottom-sheet": ">=5.2.4",
127
144
  "@react-native-clipboard/clipboard": ">=1.16.3",
145
+ "@react-native-community/datetimepicker": ">=8.6.0",
128
146
  "@react-native-community/netinfo": ">=11.4.1",
147
+ "@react-native-community/slider": ">=5.1.2",
129
148
  "@react-navigation/native": ">=7.1.6",
149
+ "@rjsf/core": ">=6.4.1",
150
+ "@rjsf/utils": ">=6.4.1",
151
+ "@rjsf/validator-ajv8": ">=6.4.1",
130
152
  "@sentry/react-native": ">=7.2.0",
131
153
  "@tanstack/react-query": ">=5.90.2",
154
+ "ajv-i18n": ">=4.2.0",
132
155
  "axios": ">=1.12.2",
133
156
  "expo": ">=54.0.12",
134
157
  "expo-application": ">=7.0.7",
@@ -176,5 +199,19 @@
176
199
  "react-native-winrt": ">=0.72.2",
177
200
  "react-native-zeroconf": ">=0.13.8"
178
201
  },
202
+ "peerDependenciesMeta": {
203
+ "@rjsf/core": {
204
+ "optional": true
205
+ },
206
+ "@rjsf/utils": {
207
+ "optional": true
208
+ },
209
+ "@rjsf/validator-ajv8": {
210
+ "optional": true
211
+ },
212
+ "ajv-i18n": {
213
+ "optional": true
214
+ }
215
+ },
179
216
  "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
180
217
  }
@@ -1,9 +0,0 @@
1
- import { FunctionComponent } from 'react';
2
- import { StyleProp, TextStyle } from 'react-native';
3
- interface BatteryLevelProps {
4
- batteryLevel?: number | null;
5
- size?: number;
6
- style?: StyleProp<TextStyle>;
7
- }
8
- export declare const BatteryLevel: FunctionComponent<BatteryLevelProps>;
9
- export {};
@@ -1,9 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Icon } from 'react-native-paper';
3
- import { getBatteryColor, getBatteryIcon } from './battery.utils';
4
- export const BatteryLevel = ({ batteryLevel, size = 32 }) => {
5
- const batteryColor = getBatteryColor(batteryLevel);
6
- const batteryIcon = getBatteryIcon(batteryLevel);
7
- return _jsx(Icon, { source: batteryIcon, size: size, color: batteryColor });
8
- };
9
- //# sourceMappingURL=battery-level.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"battery-level.js","sourceRoot":"","sources":["../../../src/components/battery/battery-level.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAQlE,MAAM,CAAC,MAAM,YAAY,GAAyC,CAAC,EAAE,YAAY,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE;IAChG,MAAM,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;IAEjD,OAAO,KAAC,IAAI,IAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,GAAI,CAAC;AACxE,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare const getBatteryIcon: (level?: number | null) => "battery-alert-variant-outline" | "battery" | "battery-60" | "battery-50" | "battery-40" | "battery-30" | "battery-20" | "battery-10" | "battery-arrow-down-outline";
2
- export declare const getBatteryColor: (batteryLevel?: number | null) => string;
@@ -1,24 +0,0 @@
1
- import { getColorForPercentage, isNullish } from '@lichens-innovation/ts-common';
2
- export const getBatteryIcon = (level) => {
3
- if (isNullish(level))
4
- return 'battery-alert-variant-outline';
5
- if (level >= 90)
6
- return 'battery';
7
- if (level >= 75)
8
- return 'battery-60';
9
- if (level >= 60)
10
- return 'battery-50';
11
- if (level >= 45)
12
- return 'battery-40';
13
- if (level >= 30)
14
- return 'battery-30';
15
- if (level >= 15)
16
- return 'battery-20';
17
- if (level > 0)
18
- return 'battery-10';
19
- return 'battery-arrow-down-outline';
20
- };
21
- export const getBatteryColor = (batteryLevel) => {
22
- return isNullish(batteryLevel) ? 'gray' : getColorForPercentage(batteryLevel / 100);
23
- };
24
- //# sourceMappingURL=battery.utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"battery.utils.js","sourceRoot":"","sources":["../../../src/components/battery/battery.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAEjF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAqB,EAAE,EAAE;IACtD,IAAI,SAAS,CAAC,KAAK,CAAC;QAAE,OAAO,+BAA+B,CAAC;IAE7D,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IAClC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,YAAY,CAAC;IACrC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,YAAY,CAAC;IACrC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,YAAY,CAAC;IACrC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,YAAY,CAAC;IACrC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,YAAY,CAAC;IACrC,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,YAAY,CAAC;IAEnC,OAAO,4BAA4B,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,YAA4B,EAAE,EAAE;IAC9D,OAAO,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC;AACtF,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from './battery-level';
2
- export * from './battery.utils';
@@ -1,3 +0,0 @@
1
- export * from './battery-level';
2
- export * from './battery.utils';
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/battery/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
@@ -1 +0,0 @@
1
- export declare const DEFAULT_SHEET_SNAP_POINTS: string[];
@@ -1,2 +0,0 @@
1
- export const DEFAULT_SHEET_SNAP_POINTS = ['55%', '65%', '75%'];
2
- //# sourceMappingURL=bottom-sheet.constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bottom-sheet.constants.js","sourceRoot":"","sources":["../../../src/components/bottom-sheet/bottom-sheet.constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- import { type BottomSheetBackdropProps } from '@gorhom/bottom-sheet';
2
- import { FunctionComponent } from 'react';
3
- export declare const DefaultBackdrop: FunctionComponent<BottomSheetBackdropProps>;
@@ -1,4 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { BottomSheetBackdrop } from '@gorhom/bottom-sheet';
3
- export const DefaultBackdrop = (props) => (_jsx(BottomSheetBackdrop, Object.assign({ disappearsOnIndex: -1, appearsOnIndex: 0 }, props)));
4
- //# sourceMappingURL=default-backdrop.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"default-backdrop.js","sourceRoot":"","sources":["../../../src/components/bottom-sheet/default-backdrop.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,mBAAmB,EAAiC,MAAM,sBAAsB,CAAC;AAG1F,MAAM,CAAC,MAAM,eAAe,GAAgD,CAAC,KAAK,EAAE,EAAE,CAAC,CACrF,KAAC,mBAAmB,kBAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,IAAM,KAAK,EAAI,CAC7E,CAAC"}
@@ -1,2 +0,0 @@
1
- import { FunctionComponent } from 'react';
2
- export declare const DefaultBackdrop: FunctionComponent<any>;
@@ -1,3 +0,0 @@
1
- import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
2
- export const DefaultBackdrop = () => _jsx(_Fragment, {});
3
- //# sourceMappingURL=default-backdrop.windows.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"default-backdrop.windows.js","sourceRoot":"","sources":["../../../src/components/bottom-sheet/default-backdrop.windows.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,MAAM,eAAe,GAA2B,GAAG,EAAE,CAAC,mBAAK,CAAC"}
@@ -1,3 +0,0 @@
1
- import { BottomSheetBackgroundProps } from '@gorhom/bottom-sheet';
2
- import { FunctionComponent } from 'react';
3
- export declare const DefaultSheetBackground: FunctionComponent<BottomSheetBackgroundProps>;
@@ -1,8 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { View } from 'react-native';
3
- import { useAppTheme } from '../../theme/theme';
4
- export const DefaultSheetBackground = ({ style }) => {
5
- const { colors } = useAppTheme();
6
- return _jsx(View, { style: [style, { backgroundColor: colors.background }] });
7
- };
8
- //# sourceMappingURL=default-sheet-background.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"default-sheet-background.js","sourceRoot":"","sources":["../../../src/components/bottom-sheet/default-sheet-background.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,CAAC,MAAM,sBAAsB,GAAkD,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IACjG,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACjC,OAAO,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,GAAI,CAAC;AAC1E,CAAC,CAAC"}
@@ -1,4 +0,0 @@
1
- export * from './bottom-sheet.constants';
2
- export * from './default-backdrop';
3
- export * from './default-sheet-background';
4
- export * from './use-bottom-sheet-toggler';
@@ -1,5 +0,0 @@
1
- export * from './bottom-sheet.constants';
2
- export * from './default-backdrop';
3
- export * from './default-sheet-background';
4
- export * from './use-bottom-sheet-toggler';
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/bottom-sheet/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC"}
@@ -1,7 +0,0 @@
1
- import { BottomSheetModal } from '@gorhom/bottom-sheet';
2
- export declare const useBottomSheetToggler: () => {
3
- bottomSheetModalRef: import("react").RefObject<BottomSheetModal>;
4
- showBottomSheet: () => void;
5
- hideBottomSheet: () => void;
6
- isBottomSheetOpen: boolean;
7
- };
@@ -1,39 +0,0 @@
1
- import { useEffect, useRef, useState } from 'react';
2
- import { BackHandler } from 'react-native';
3
- import { logger } from '../../logger/logger';
4
- export const useBottomSheetToggler = () => {
5
- const bottomSheetModalRef = useRef(null);
6
- const [isBottomSheetOpen, setIsBottomSheetOpen] = useState(false);
7
- const showBottomSheet = () => {
8
- var _a;
9
- setIsBottomSheetOpen(true);
10
- (_a = bottomSheetModalRef.current) === null || _a === void 0 ? void 0 : _a.present();
11
- };
12
- const hideBottomSheet = () => {
13
- var _a;
14
- logger.debug('[useBottomSheetToggler] hideBottomSheet');
15
- setIsBottomSheetOpen(false);
16
- (_a = bottomSheetModalRef.current) === null || _a === void 0 ? void 0 : _a.dismiss();
17
- };
18
- const onBackButtonPress = () => {
19
- if (!isBottomSheetOpen || !bottomSheetModalRef.current) {
20
- return false;
21
- }
22
- logger.debug('[useBottomSheetToggler] onBackButtonPress: closing bottom sheet');
23
- hideBottomSheet();
24
- return true;
25
- };
26
- useEffect(() => {
27
- if (!isBottomSheetOpen)
28
- return;
29
- const backHandler = BackHandler.addEventListener('hardwareBackPress', onBackButtonPress);
30
- return () => backHandler.remove();
31
- }, [isBottomSheetOpen]);
32
- return {
33
- bottomSheetModalRef,
34
- showBottomSheet,
35
- hideBottomSheet,
36
- isBottomSheetOpen,
37
- };
38
- };
39
- //# sourceMappingURL=use-bottom-sheet-toggler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-bottom-sheet-toggler.js","sourceRoot":"","sources":["../../../src/components/bottom-sheet/use-bottom-sheet-toggler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACxC,MAAM,mBAAmB,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IAC3D,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElE,MAAM,eAAe,GAAG,GAAG,EAAE;;QAC3B,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAA,mBAAmB,CAAC,OAAO,0CAAE,OAAO,EAAE,CAAC;IACzC,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,GAAG,EAAE;;QAC3B,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QACxD,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAA,mBAAmB,CAAC,OAAO,0CAAE,OAAO,EAAE,CAAC;IACzC,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,GAAY,EAAE;QACtC,IAAI,CAAC,iBAAiB,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC;YACvD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;QAChF,eAAe,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,iBAAiB;YAAE,OAAO;QAE/B,MAAM,WAAW,GAAG,WAAW,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;QACzF,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;IACpC,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAExB,OAAO;QACL,mBAAmB;QACnB,eAAe;QACf,eAAe;QACf,iBAAiB;KAClB,CAAC;AACJ,CAAC,CAAC"}
@@ -1,11 +0,0 @@
1
- import { BarcodeScanningResult } from 'expo-camera';
2
- import { FunctionComponent } from 'react';
3
- import { DialogCloseOnlyProps } from '../dialogs/dialog-close-only';
4
- interface BarcodeScannerDialogProps extends DialogCloseOnlyProps {
5
- isVisible: boolean;
6
- title: string;
7
- onClose: () => void;
8
- onBarcodeScanned: (result: BarcodeScanningResult) => void;
9
- }
10
- export declare const BarcodeScannerDialog: FunctionComponent<BarcodeScannerDialogProps>;
11
- export {};