@chem-po/react-native 0.0.5 → 0.0.7

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 (561) hide show
  1. package/lib/commonjs/components/box/Center.js +35 -0
  2. package/lib/commonjs/components/box/Center.js.map +1 -0
  3. package/lib/commonjs/components/box/CollapseHorizontal.js +44 -0
  4. package/lib/commonjs/components/box/CollapseHorizontal.js.map +1 -0
  5. package/lib/commonjs/components/box/ContentBox.js +32 -0
  6. package/lib/commonjs/components/box/ContentBox.js.map +1 -0
  7. package/lib/commonjs/components/box/DropShadow.js +31 -0
  8. package/lib/commonjs/components/box/DropShadow.js.map +1 -0
  9. package/lib/commonjs/components/box/ExpandOnMount.js +71 -0
  10. package/lib/commonjs/components/box/ExpandOnMount.js.map +1 -0
  11. package/lib/commonjs/components/box/Expandable.js +125 -0
  12. package/lib/commonjs/components/box/Expandable.js.map +1 -0
  13. package/lib/commonjs/components/box/FullSizeContainer.js +79 -0
  14. package/lib/commonjs/components/box/FullSizeContainer.js.map +1 -0
  15. package/lib/commonjs/components/box/index.js +83 -0
  16. package/lib/commonjs/components/box/index.js.map +1 -0
  17. package/lib/commonjs/components/button/DeleteButton.js +279 -0
  18. package/lib/commonjs/components/button/DeleteButton.js.map +1 -0
  19. package/lib/commonjs/components/button/LoadingButton.js +132 -0
  20. package/lib/commonjs/components/button/LoadingButton.js.map +1 -0
  21. package/lib/commonjs/components/button/Toggle.js +89 -0
  22. package/lib/commonjs/components/button/Toggle.js.map +1 -0
  23. package/lib/commonjs/components/button/index.js +39 -0
  24. package/lib/commonjs/components/button/index.js.map +1 -0
  25. package/lib/commonjs/components/feed/FeedContentPane.js +105 -0
  26. package/lib/commonjs/components/feed/FeedContentPane.js.map +1 -0
  27. package/lib/commonjs/components/feed/MediaFeed.js +178 -0
  28. package/lib/commonjs/components/feed/MediaFeed.js.map +1 -0
  29. package/lib/commonjs/components/feed/MediaFeedBackground.js +126 -0
  30. package/lib/commonjs/components/feed/MediaFeedBackground.js.map +1 -0
  31. package/lib/commonjs/components/feed/MediaFeedRefresh.js +113 -0
  32. package/lib/commonjs/components/feed/MediaFeedRefresh.js.map +1 -0
  33. package/lib/commonjs/components/feed/constants.js +9 -0
  34. package/lib/commonjs/components/feed/constants.js.map +1 -0
  35. package/lib/commonjs/components/feed/context.js +23 -0
  36. package/lib/commonjs/components/feed/context.js.map +1 -0
  37. package/lib/commonjs/components/feed/hooks.js +262 -0
  38. package/lib/commonjs/components/feed/hooks.js.map +1 -0
  39. package/lib/commonjs/components/feed/index.js +28 -0
  40. package/lib/commonjs/components/feed/index.js.map +1 -0
  41. package/lib/commonjs/components/form/Condition.js +29 -0
  42. package/lib/commonjs/components/form/Condition.js.map +1 -0
  43. package/lib/commonjs/components/form/Field.js +57 -0
  44. package/lib/commonjs/components/form/Field.js.map +1 -0
  45. package/lib/commonjs/components/form/Form.js +387 -0
  46. package/lib/commonjs/components/form/Form.js.map +1 -0
  47. package/lib/commonjs/components/form/FormFooter.js +173 -0
  48. package/lib/commonjs/components/form/FormFooter.js.map +1 -0
  49. package/lib/commonjs/components/form/UploadProgress/index.js +66 -0
  50. package/lib/commonjs/components/form/UploadProgress/index.js.map +1 -0
  51. package/lib/commonjs/components/form/index.js +40 -0
  52. package/lib/commonjs/components/form/index.js.map +1 -0
  53. package/lib/commonjs/components/form/input/Editable.js +153 -0
  54. package/lib/commonjs/components/form/input/Editable.js.map +1 -0
  55. package/lib/commonjs/components/form/input/InputSlider.js +59 -0
  56. package/lib/commonjs/components/form/input/InputSlider.js.map +1 -0
  57. package/lib/commonjs/components/form/input/OptionalTag.js +46 -0
  58. package/lib/commonjs/components/form/input/OptionalTag.js.map +1 -0
  59. package/lib/commonjs/components/form/input/StandaloneInput.js +33 -0
  60. package/lib/commonjs/components/form/input/StandaloneInput.js.map +1 -0
  61. package/lib/commonjs/components/form/input/boolean/index.js +83 -0
  62. package/lib/commonjs/components/form/input/boolean/index.js.map +1 -0
  63. package/lib/commonjs/components/form/input/color/index.js +147 -0
  64. package/lib/commonjs/components/form/input/color/index.js.map +1 -0
  65. package/lib/commonjs/components/form/input/common/InputClearButton.js +63 -0
  66. package/lib/commonjs/components/form/input/common/InputClearButton.js.map +1 -0
  67. package/lib/commonjs/components/form/input/date/index.js +111 -0
  68. package/lib/commonjs/components/form/input/date/index.js.map +1 -0
  69. package/lib/commonjs/components/form/input/datetime/index.js +155 -0
  70. package/lib/commonjs/components/form/input/datetime/index.js.map +1 -0
  71. package/lib/commonjs/components/form/input/file/index.js +229 -0
  72. package/lib/commonjs/components/form/input/file/index.js.map +1 -0
  73. package/lib/commonjs/components/form/input/hooks/index.js +28 -0
  74. package/lib/commonjs/components/form/input/hooks/index.js.map +1 -0
  75. package/lib/commonjs/components/form/input/hooks/useInputColor.js +14 -0
  76. package/lib/commonjs/components/form/input/hooks/useInputColor.js.map +1 -0
  77. package/lib/commonjs/components/form/input/hooks/useInputImperativeHandle.js +23 -0
  78. package/lib/commonjs/components/form/input/hooks/useInputImperativeHandle.js.map +1 -0
  79. package/lib/commonjs/components/form/input/hooks/useInputStyle.js +50 -0
  80. package/lib/commonjs/components/form/input/hooks/useInputStyle.js.map +1 -0
  81. package/lib/commonjs/components/form/input/index.js +28 -0
  82. package/lib/commonjs/components/form/input/index.js.map +1 -0
  83. package/lib/commonjs/components/form/input/input.js +159 -0
  84. package/lib/commonjs/components/form/input/input.js.map +1 -0
  85. package/lib/commonjs/components/form/input/multipleSelect/index.js +80 -0
  86. package/lib/commonjs/components/form/input/multipleSelect/index.js.map +1 -0
  87. package/lib/commonjs/components/form/input/number/index.js +117 -0
  88. package/lib/commonjs/components/form/input/number/index.js.map +1 -0
  89. package/lib/commonjs/components/form/input/select/index.js +225 -0
  90. package/lib/commonjs/components/form/input/select/index.js.map +1 -0
  91. package/lib/commonjs/components/form/input/socialMedia/index.js +219 -0
  92. package/lib/commonjs/components/form/input/socialMedia/index.js.map +1 -0
  93. package/lib/commonjs/components/form/input/text/index.js +97 -0
  94. package/lib/commonjs/components/form/input/text/index.js.map +1 -0
  95. package/lib/commonjs/components/form/input/text/textarea.js +63 -0
  96. package/lib/commonjs/components/form/input/text/textarea.js.map +1 -0
  97. package/lib/commonjs/components/form/input/time/index.js +125 -0
  98. package/lib/commonjs/components/form/input/time/index.js.map +1 -0
  99. package/lib/commonjs/components/form/types.js +6 -0
  100. package/lib/commonjs/components/form/types.js.map +1 -0
  101. package/lib/commonjs/components/form/view/file.js +57 -0
  102. package/lib/commonjs/components/form/view/file.js.map +1 -0
  103. package/lib/commonjs/components/form/view/index.js +90 -0
  104. package/lib/commonjs/components/form/view/index.js.map +1 -0
  105. package/lib/commonjs/components/form/view/multipleSelect.js +51 -0
  106. package/lib/commonjs/components/form/view/multipleSelect.js.map +1 -0
  107. package/lib/commonjs/components/form/view/select.js +45 -0
  108. package/lib/commonjs/components/form/view/select.js.map +1 -0
  109. package/lib/commonjs/components/icons/index.js +47 -0
  110. package/lib/commonjs/components/icons/index.js.map +1 -0
  111. package/lib/commonjs/components/index.js +94 -0
  112. package/lib/commonjs/components/index.js.map +1 -0
  113. package/lib/commonjs/components/loading/CircularProgress.js +49 -0
  114. package/lib/commonjs/components/loading/CircularProgress.js.map +1 -0
  115. package/lib/commonjs/components/loading/Loading.js +174 -0
  116. package/lib/commonjs/components/loading/Loading.js.map +1 -0
  117. package/lib/commonjs/components/loading/LoadingImage.js +115 -0
  118. package/lib/commonjs/components/loading/LoadingImage.js.map +1 -0
  119. package/lib/commonjs/components/loading/LoadingSwitch.js +100 -0
  120. package/lib/commonjs/components/loading/LoadingSwitch.js.map +1 -0
  121. package/lib/commonjs/components/loading/index.js +50 -0
  122. package/lib/commonjs/components/loading/index.js.map +1 -0
  123. package/lib/commonjs/components/overlay/ImageViewOverlay.js +126 -0
  124. package/lib/commonjs/components/overlay/ImageViewOverlay.js.map +1 -0
  125. package/lib/commonjs/components/overlay/index.js +17 -0
  126. package/lib/commonjs/components/overlay/index.js.map +1 -0
  127. package/lib/commonjs/components/text/AnimatedText.js +63 -0
  128. package/lib/commonjs/components/text/AnimatedText.js.map +1 -0
  129. package/lib/commonjs/components/text/Txt.js +22 -0
  130. package/lib/commonjs/components/text/Txt.js.map +1 -0
  131. package/lib/commonjs/components/text/index.js +17 -0
  132. package/lib/commonjs/components/text/index.js.map +1 -0
  133. package/lib/commonjs/components/theme/colorMode/DarkModeToggle.js +49 -0
  134. package/lib/commonjs/components/theme/colorMode/DarkModeToggle.js.map +1 -0
  135. package/lib/commonjs/components/theme/colorMode/index.js +17 -0
  136. package/lib/commonjs/components/theme/colorMode/index.js.map +1 -0
  137. package/lib/commonjs/components/theme/index.js +17 -0
  138. package/lib/commonjs/components/theme/index.js.map +1 -0
  139. package/lib/commonjs/constants/index.js +17 -0
  140. package/lib/commonjs/constants/index.js.map +1 -0
  141. package/lib/commonjs/constants/toast.js +31 -0
  142. package/lib/commonjs/constants/toast.js.map +1 -0
  143. package/lib/commonjs/contexts/index.js +17 -0
  144. package/lib/commonjs/contexts/index.js.map +1 -0
  145. package/lib/commonjs/contexts/root.js +33 -0
  146. package/lib/commonjs/contexts/root.js.map +1 -0
  147. package/lib/commonjs/hooks/index.js +17 -0
  148. package/lib/commonjs/hooks/index.js.map +1 -0
  149. package/lib/commonjs/hooks/useThemeState.js +21 -0
  150. package/lib/commonjs/hooks/useThemeState.js.map +1 -0
  151. package/lib/commonjs/index.js +61 -0
  152. package/lib/commonjs/index.js.map +1 -0
  153. package/lib/commonjs/store/index.js +17 -0
  154. package/lib/commonjs/store/index.js.map +1 -0
  155. package/lib/commonjs/store/useScreen.js +36 -0
  156. package/lib/commonjs/store/useScreen.js.map +1 -0
  157. package/lib/commonjs/styles/fill.js +25 -0
  158. package/lib/commonjs/styles/fill.js.map +1 -0
  159. package/lib/module/components/box/Center.js +29 -0
  160. package/lib/module/components/box/Center.js.map +1 -0
  161. package/lib/module/components/box/CollapseHorizontal.js +37 -0
  162. package/lib/module/components/box/CollapseHorizontal.js.map +1 -0
  163. package/lib/module/components/box/ContentBox.js +26 -0
  164. package/lib/module/components/box/ContentBox.js.map +1 -0
  165. package/lib/module/components/box/DropShadow.js +25 -0
  166. package/lib/module/components/box/DropShadow.js.map +1 -0
  167. package/lib/module/components/box/ExpandOnMount.js +64 -0
  168. package/lib/module/components/box/ExpandOnMount.js.map +1 -0
  169. package/lib/module/components/box/Expandable.js +117 -0
  170. package/lib/module/components/box/Expandable.js.map +1 -0
  171. package/lib/module/components/box/FullSizeContainer.js +70 -0
  172. package/lib/module/components/box/FullSizeContainer.js.map +1 -0
  173. package/lib/module/components/box/index.js +8 -0
  174. package/lib/module/components/box/index.js.map +1 -0
  175. package/lib/module/components/button/DeleteButton.js +270 -0
  176. package/lib/module/components/button/DeleteButton.js.map +1 -0
  177. package/lib/module/components/button/LoadingButton.js +124 -0
  178. package/lib/module/components/button/LoadingButton.js.map +1 -0
  179. package/lib/module/components/button/Toggle.js +82 -0
  180. package/lib/module/components/button/Toggle.js.map +1 -0
  181. package/lib/module/components/button/index.js +4 -0
  182. package/lib/module/components/button/index.js.map +1 -0
  183. package/lib/module/components/feed/FeedContentPane.js +97 -0
  184. package/lib/module/components/feed/FeedContentPane.js.map +1 -0
  185. package/lib/module/components/feed/MediaFeed.js +170 -0
  186. package/lib/module/components/feed/MediaFeed.js.map +1 -0
  187. package/lib/module/components/feed/MediaFeedBackground.js +118 -0
  188. package/lib/module/components/feed/MediaFeedBackground.js.map +1 -0
  189. package/lib/module/components/feed/MediaFeedRefresh.js +103 -0
  190. package/lib/module/components/feed/MediaFeedRefresh.js.map +1 -0
  191. package/lib/module/components/feed/constants.js +3 -0
  192. package/lib/module/components/feed/constants.js.map +1 -0
  193. package/lib/module/components/feed/context.js +15 -0
  194. package/lib/module/components/feed/context.js.map +1 -0
  195. package/lib/module/components/feed/hooks.js +255 -0
  196. package/lib/module/components/feed/hooks.js.map +1 -0
  197. package/lib/module/components/feed/index.js +3 -0
  198. package/lib/module/components/feed/index.js.map +1 -0
  199. package/lib/module/components/form/Condition.js +22 -0
  200. package/lib/module/components/form/Condition.js.map +1 -0
  201. package/lib/module/components/form/Field.js +51 -0
  202. package/lib/module/components/form/Field.js.map +1 -0
  203. package/lib/module/components/form/Form.js +375 -0
  204. package/lib/module/components/form/Form.js.map +1 -0
  205. package/lib/module/components/form/FormFooter.js +165 -0
  206. package/lib/module/components/form/FormFooter.js.map +1 -0
  207. package/lib/module/components/form/UploadProgress/index.js +59 -0
  208. package/lib/module/components/form/UploadProgress/index.js.map +1 -0
  209. package/lib/module/components/form/index.js +4 -0
  210. package/lib/module/components/form/index.js.map +1 -0
  211. package/lib/module/components/form/input/Editable.js +146 -0
  212. package/lib/module/components/form/input/Editable.js.map +1 -0
  213. package/lib/module/components/form/input/InputSlider.js +51 -0
  214. package/lib/module/components/form/input/InputSlider.js.map +1 -0
  215. package/lib/module/components/form/input/OptionalTag.js +39 -0
  216. package/lib/module/components/form/input/OptionalTag.js.map +1 -0
  217. package/lib/module/components/form/input/StandaloneInput.js +27 -0
  218. package/lib/module/components/form/input/StandaloneInput.js.map +1 -0
  219. package/lib/module/components/form/input/boolean/index.js +77 -0
  220. package/lib/module/components/form/input/boolean/index.js.map +1 -0
  221. package/lib/module/components/form/input/color/index.js +141 -0
  222. package/lib/module/components/form/input/color/index.js.map +1 -0
  223. package/lib/module/components/form/input/common/InputClearButton.js +55 -0
  224. package/lib/module/components/form/input/common/InputClearButton.js.map +1 -0
  225. package/lib/module/components/form/input/date/index.js +106 -0
  226. package/lib/module/components/form/input/date/index.js.map +1 -0
  227. package/lib/module/components/form/input/datetime/index.js +149 -0
  228. package/lib/module/components/form/input/datetime/index.js.map +1 -0
  229. package/lib/module/components/form/input/file/index.js +221 -0
  230. package/lib/module/components/form/input/file/index.js.map +1 -0
  231. package/lib/module/components/form/input/hooks/index.js +3 -0
  232. package/lib/module/components/form/input/hooks/index.js.map +1 -0
  233. package/lib/module/components/form/input/hooks/useInputColor.js +7 -0
  234. package/lib/module/components/form/input/hooks/useInputColor.js.map +1 -0
  235. package/lib/module/components/form/input/hooks/useInputImperativeHandle.js +16 -0
  236. package/lib/module/components/form/input/hooks/useInputImperativeHandle.js.map +1 -0
  237. package/lib/module/components/form/input/hooks/useInputStyle.js +43 -0
  238. package/lib/module/components/form/input/hooks/useInputStyle.js.map +1 -0
  239. package/lib/module/components/form/input/index.js +3 -0
  240. package/lib/module/components/form/input/index.js.map +1 -0
  241. package/lib/module/components/form/input/input.js +153 -0
  242. package/lib/module/components/form/input/input.js.map +1 -0
  243. package/lib/module/components/form/input/multipleSelect/index.js +74 -0
  244. package/lib/module/components/form/input/multipleSelect/index.js.map +1 -0
  245. package/lib/module/components/form/input/number/index.js +111 -0
  246. package/lib/module/components/form/input/number/index.js.map +1 -0
  247. package/lib/module/components/form/input/select/index.js +219 -0
  248. package/lib/module/components/form/input/select/index.js.map +1 -0
  249. package/lib/module/components/form/input/socialMedia/index.js +213 -0
  250. package/lib/module/components/form/input/socialMedia/index.js.map +1 -0
  251. package/lib/module/components/form/input/text/index.js +91 -0
  252. package/lib/module/components/form/input/text/index.js.map +1 -0
  253. package/lib/module/components/form/input/text/textarea.js +57 -0
  254. package/lib/module/components/form/input/text/textarea.js.map +1 -0
  255. package/lib/module/components/form/input/time/index.js +119 -0
  256. package/lib/module/components/form/input/time/index.js.map +1 -0
  257. package/lib/module/components/form/types.js +2 -0
  258. package/lib/module/components/form/types.js.map +1 -0
  259. package/lib/module/components/form/view/file.js +50 -0
  260. package/lib/module/components/form/view/file.js.map +1 -0
  261. package/lib/module/components/form/view/index.js +83 -0
  262. package/lib/module/components/form/view/index.js.map +1 -0
  263. package/lib/module/components/form/view/multipleSelect.js +44 -0
  264. package/lib/module/components/form/view/multipleSelect.js.map +1 -0
  265. package/lib/module/components/form/view/select.js +38 -0
  266. package/lib/module/components/form/view/select.js.map +1 -0
  267. package/lib/module/components/icons/index.js +38 -0
  268. package/lib/module/components/icons/index.js.map +1 -0
  269. package/lib/module/components/index.js +9 -0
  270. package/lib/module/components/index.js.map +1 -0
  271. package/lib/module/components/loading/CircularProgress.js +42 -0
  272. package/lib/module/components/loading/CircularProgress.js.map +1 -0
  273. package/lib/module/components/loading/Loading.js +163 -0
  274. package/lib/module/components/loading/Loading.js.map +1 -0
  275. package/lib/module/components/loading/LoadingImage.js +108 -0
  276. package/lib/module/components/loading/LoadingImage.js.map +1 -0
  277. package/lib/module/components/loading/LoadingSwitch.js +93 -0
  278. package/lib/module/components/loading/LoadingSwitch.js.map +1 -0
  279. package/lib/module/components/loading/index.js +5 -0
  280. package/lib/module/components/loading/index.js.map +1 -0
  281. package/lib/module/components/overlay/ImageViewOverlay.js +119 -0
  282. package/lib/module/components/overlay/ImageViewOverlay.js.map +1 -0
  283. package/lib/module/components/overlay/index.js +2 -0
  284. package/lib/module/components/overlay/index.js.map +1 -0
  285. package/lib/module/components/text/AnimatedText.js +56 -0
  286. package/lib/module/components/text/AnimatedText.js.map +1 -0
  287. package/lib/module/components/text/Txt.js +15 -0
  288. package/lib/module/components/text/Txt.js.map +1 -0
  289. package/lib/module/components/text/index.js +2 -0
  290. package/lib/module/components/text/index.js.map +1 -0
  291. package/lib/module/components/theme/colorMode/DarkModeToggle.js +41 -0
  292. package/lib/module/components/theme/colorMode/DarkModeToggle.js.map +1 -0
  293. package/lib/module/components/theme/colorMode/index.js +2 -0
  294. package/lib/module/components/theme/colorMode/index.js.map +1 -0
  295. package/lib/module/components/theme/index.js +2 -0
  296. package/lib/module/components/theme/index.js.map +1 -0
  297. package/lib/module/constants/index.js +2 -0
  298. package/lib/module/constants/index.js.map +1 -0
  299. package/lib/module/constants/toast.js +25 -0
  300. package/lib/module/constants/toast.js.map +1 -0
  301. package/lib/module/contexts/index.js +2 -0
  302. package/lib/module/contexts/index.js.map +1 -0
  303. package/lib/module/contexts/root.js +26 -0
  304. package/lib/module/contexts/root.js.map +1 -0
  305. package/lib/module/hooks/index.js +2 -0
  306. package/lib/module/hooks/index.js.map +1 -0
  307. package/lib/module/hooks/useThemeState.js +14 -0
  308. package/lib/module/hooks/useThemeState.js.map +1 -0
  309. package/lib/module/index.js +6 -0
  310. package/lib/module/index.js.map +1 -0
  311. package/lib/module/store/index.js +2 -0
  312. package/lib/module/store/index.js.map +1 -0
  313. package/lib/module/store/useScreen.js +29 -0
  314. package/lib/module/store/useScreen.js.map +1 -0
  315. package/lib/module/styles/fill.js +19 -0
  316. package/lib/module/styles/fill.js.map +1 -0
  317. package/lib/typescript/src/components/box/Center.d.ts +5 -0
  318. package/lib/typescript/src/components/box/Center.d.ts.map +1 -0
  319. package/lib/typescript/src/components/box/CollapseHorizontal.d.ts +7 -0
  320. package/lib/typescript/src/components/box/CollapseHorizontal.d.ts.map +1 -0
  321. package/lib/typescript/src/components/box/ContentBox.d.ts +3 -0
  322. package/lib/typescript/src/components/box/ContentBox.d.ts.map +1 -0
  323. package/lib/typescript/src/components/box/DropShadow.d.ts +6 -0
  324. package/lib/typescript/src/components/box/DropShadow.d.ts.map +1 -0
  325. package/lib/typescript/src/components/box/ExpandOnMount.d.ts +9 -0
  326. package/lib/typescript/src/components/box/ExpandOnMount.d.ts.map +1 -0
  327. package/lib/typescript/src/components/box/Expandable.d.ts +23 -0
  328. package/lib/typescript/src/components/box/Expandable.d.ts.map +1 -0
  329. package/lib/typescript/src/components/box/FullSizeContainer.d.ts +16 -0
  330. package/lib/typescript/src/components/box/FullSizeContainer.d.ts.map +1 -0
  331. package/lib/typescript/src/components/box/index.d.ts +8 -0
  332. package/lib/typescript/src/components/box/index.d.ts.map +1 -0
  333. package/lib/typescript/src/components/button/DeleteButton.d.ts +21 -0
  334. package/lib/typescript/src/components/button/DeleteButton.d.ts.map +1 -0
  335. package/lib/typescript/src/components/button/LoadingButton.d.ts +17 -0
  336. package/lib/typescript/src/components/button/LoadingButton.d.ts.map +1 -0
  337. package/lib/typescript/src/components/button/Toggle.d.ts +14 -0
  338. package/lib/typescript/src/components/button/Toggle.d.ts.map +1 -0
  339. package/lib/typescript/src/components/button/index.d.ts +4 -0
  340. package/lib/typescript/src/components/button/index.d.ts.map +1 -0
  341. package/lib/typescript/src/components/feed/FeedContentPane.d.ts +16 -0
  342. package/lib/typescript/src/components/feed/FeedContentPane.d.ts.map +1 -0
  343. package/lib/typescript/src/components/feed/MediaFeed.d.ts +5 -0
  344. package/lib/typescript/src/components/feed/MediaFeed.d.ts.map +1 -0
  345. package/lib/typescript/src/components/feed/MediaFeedBackground.d.ts +19 -0
  346. package/lib/typescript/src/components/feed/MediaFeedBackground.d.ts.map +1 -0
  347. package/lib/typescript/src/components/feed/MediaFeedRefresh.d.ts +7 -0
  348. package/lib/typescript/src/components/feed/MediaFeedRefresh.d.ts.map +1 -0
  349. package/lib/typescript/src/components/feed/constants.d.ts +3 -0
  350. package/lib/typescript/src/components/feed/constants.d.ts.map +1 -0
  351. package/lib/typescript/src/components/feed/context.d.ts +12 -0
  352. package/lib/typescript/src/components/feed/context.d.ts.map +1 -0
  353. package/lib/typescript/src/components/feed/hooks.d.ts +16 -0
  354. package/lib/typescript/src/components/feed/hooks.d.ts.map +1 -0
  355. package/lib/typescript/src/components/feed/index.d.ts +3 -0
  356. package/lib/typescript/src/components/feed/index.d.ts.map +1 -0
  357. package/lib/typescript/src/components/form/Condition.d.ts +6 -0
  358. package/lib/typescript/src/components/form/Condition.d.ts.map +1 -0
  359. package/lib/typescript/src/components/form/Field.d.ts +8 -0
  360. package/lib/typescript/src/components/form/Field.d.ts.map +1 -0
  361. package/lib/typescript/src/components/form/Form.d.ts +18 -0
  362. package/lib/typescript/src/components/form/Form.d.ts.map +1 -0
  363. package/lib/typescript/src/components/form/FormFooter.d.ts +9 -0
  364. package/lib/typescript/src/components/form/FormFooter.d.ts.map +1 -0
  365. package/lib/typescript/src/components/form/UploadProgress/index.d.ts +5 -0
  366. package/lib/typescript/src/components/form/UploadProgress/index.d.ts.map +1 -0
  367. package/lib/typescript/src/components/form/index.d.ts +4 -0
  368. package/lib/typescript/src/components/form/index.d.ts.map +1 -0
  369. package/lib/typescript/src/components/form/input/Editable.d.ts +4 -0
  370. package/lib/typescript/src/components/form/input/Editable.d.ts.map +1 -0
  371. package/lib/typescript/src/components/form/input/InputSlider.d.ts +9 -0
  372. package/lib/typescript/src/components/form/input/InputSlider.d.ts.map +1 -0
  373. package/lib/typescript/src/components/form/input/OptionalTag.d.ts +6 -0
  374. package/lib/typescript/src/components/form/input/OptionalTag.d.ts.map +1 -0
  375. package/lib/typescript/src/components/form/input/StandaloneInput.d.ts +16 -0
  376. package/lib/typescript/src/components/form/input/StandaloneInput.d.ts.map +1 -0
  377. package/lib/typescript/src/components/form/input/boolean/index.d.ts +5 -0
  378. package/lib/typescript/src/components/form/input/boolean/index.d.ts.map +1 -0
  379. package/lib/typescript/src/components/form/input/color/index.d.ts +5 -0
  380. package/lib/typescript/src/components/form/input/color/index.d.ts.map +1 -0
  381. package/lib/typescript/src/components/form/input/common/InputClearButton.d.ts +10 -0
  382. package/lib/typescript/src/components/form/input/common/InputClearButton.d.ts.map +1 -0
  383. package/lib/typescript/src/components/form/input/date/index.d.ts +5 -0
  384. package/lib/typescript/src/components/form/input/date/index.d.ts.map +1 -0
  385. package/lib/typescript/src/components/form/input/datetime/index.d.ts +5 -0
  386. package/lib/typescript/src/components/form/input/datetime/index.d.ts.map +1 -0
  387. package/lib/typescript/src/components/form/input/file/index.d.ts +10 -0
  388. package/lib/typescript/src/components/form/input/file/index.d.ts.map +1 -0
  389. package/lib/typescript/src/components/form/input/hooks/index.d.ts +3 -0
  390. package/lib/typescript/src/components/form/input/hooks/index.d.ts.map +1 -0
  391. package/lib/typescript/src/components/form/input/hooks/useInputColor.d.ts +2 -0
  392. package/lib/typescript/src/components/form/input/hooks/useInputColor.d.ts.map +1 -0
  393. package/lib/typescript/src/components/form/input/hooks/useInputImperativeHandle.d.ts +5 -0
  394. package/lib/typescript/src/components/form/input/hooks/useInputImperativeHandle.d.ts.map +1 -0
  395. package/lib/typescript/src/components/form/input/hooks/useInputStyle.d.ts +9 -0
  396. package/lib/typescript/src/components/form/input/hooks/useInputStyle.d.ts.map +1 -0
  397. package/lib/typescript/src/components/form/input/index.d.ts +3 -0
  398. package/lib/typescript/src/components/form/input/index.d.ts.map +1 -0
  399. package/lib/typescript/src/components/form/input/input.d.ts +6 -0
  400. package/lib/typescript/src/components/form/input/input.d.ts.map +1 -0
  401. package/lib/typescript/src/components/form/input/multipleSelect/index.d.ts +5 -0
  402. package/lib/typescript/src/components/form/input/multipleSelect/index.d.ts.map +1 -0
  403. package/lib/typescript/src/components/form/input/number/index.d.ts +8 -0
  404. package/lib/typescript/src/components/form/input/number/index.d.ts.map +1 -0
  405. package/lib/typescript/src/components/form/input/select/index.d.ts +5 -0
  406. package/lib/typescript/src/components/form/input/select/index.d.ts.map +1 -0
  407. package/lib/typescript/src/components/form/input/socialMedia/index.d.ts +5 -0
  408. package/lib/typescript/src/components/form/input/socialMedia/index.d.ts.map +1 -0
  409. package/lib/typescript/src/components/form/input/text/index.d.ts +5 -0
  410. package/lib/typescript/src/components/form/input/text/index.d.ts.map +1 -0
  411. package/lib/typescript/src/components/form/input/text/textarea.d.ts +5 -0
  412. package/lib/typescript/src/components/form/input/text/textarea.d.ts.map +1 -0
  413. package/lib/typescript/src/components/form/input/time/index.d.ts +5 -0
  414. package/lib/typescript/src/components/form/input/time/index.d.ts.map +1 -0
  415. package/lib/typescript/src/components/form/types.d.ts +4 -0
  416. package/lib/typescript/src/components/form/types.d.ts.map +1 -0
  417. package/lib/typescript/src/components/form/view/file.d.ts +9 -0
  418. package/lib/typescript/src/components/form/view/file.d.ts.map +1 -0
  419. package/lib/typescript/src/components/form/view/index.d.ts +9 -0
  420. package/lib/typescript/src/components/form/view/index.d.ts.map +1 -0
  421. package/lib/typescript/src/components/form/view/multipleSelect.d.ts +9 -0
  422. package/lib/typescript/src/components/form/view/multipleSelect.d.ts.map +1 -0
  423. package/lib/typescript/src/components/form/view/select.d.ts +9 -0
  424. package/lib/typescript/src/components/form/view/select.d.ts.map +1 -0
  425. package/lib/typescript/src/components/icons/index.d.ts +10 -0
  426. package/lib/typescript/src/components/icons/index.d.ts.map +1 -0
  427. package/lib/typescript/src/components/index.d.ts +9 -0
  428. package/lib/typescript/src/components/index.d.ts.map +1 -0
  429. package/lib/typescript/src/components/loading/CircularProgress.d.ts +7 -0
  430. package/lib/typescript/src/components/loading/CircularProgress.d.ts.map +1 -0
  431. package/lib/typescript/src/components/loading/Loading.d.ts +27 -0
  432. package/lib/typescript/src/components/loading/Loading.d.ts.map +1 -0
  433. package/lib/typescript/src/components/loading/LoadingImage.d.ts +13 -0
  434. package/lib/typescript/src/components/loading/LoadingImage.d.ts.map +1 -0
  435. package/lib/typescript/src/components/loading/LoadingSwitch.d.ts +6 -0
  436. package/lib/typescript/src/components/loading/LoadingSwitch.d.ts.map +1 -0
  437. package/lib/typescript/src/components/loading/index.d.ts +5 -0
  438. package/lib/typescript/src/components/loading/index.d.ts.map +1 -0
  439. package/lib/typescript/src/components/overlay/ImageViewOverlay.d.ts +5 -0
  440. package/lib/typescript/src/components/overlay/ImageViewOverlay.d.ts.map +1 -0
  441. package/lib/typescript/src/components/overlay/index.d.ts +2 -0
  442. package/lib/typescript/src/components/overlay/index.d.ts.map +1 -0
  443. package/lib/typescript/src/components/text/AnimatedText.d.ts +11 -0
  444. package/lib/typescript/src/components/text/AnimatedText.d.ts.map +1 -0
  445. package/lib/typescript/src/components/text/Txt.d.ts +3 -0
  446. package/lib/typescript/src/components/text/Txt.d.ts.map +1 -0
  447. package/lib/typescript/src/components/text/index.d.ts +2 -0
  448. package/lib/typescript/src/components/text/index.d.ts.map +1 -0
  449. package/lib/typescript/src/components/theme/colorMode/DarkModeToggle.d.ts +3 -0
  450. package/lib/typescript/src/components/theme/colorMode/DarkModeToggle.d.ts.map +1 -0
  451. package/lib/typescript/src/components/theme/colorMode/index.d.ts +2 -0
  452. package/lib/typescript/src/components/theme/colorMode/index.d.ts.map +1 -0
  453. package/lib/typescript/src/components/theme/index.d.ts +2 -0
  454. package/lib/typescript/src/components/theme/index.d.ts.map +1 -0
  455. package/lib/typescript/src/constants/index.d.ts +2 -0
  456. package/lib/typescript/src/constants/index.d.ts.map +1 -0
  457. package/lib/typescript/src/constants/toast.d.ts +3 -0
  458. package/lib/typescript/src/constants/toast.d.ts.map +1 -0
  459. package/lib/typescript/src/contexts/index.d.ts +2 -0
  460. package/lib/typescript/src/contexts/index.d.ts.map +1 -0
  461. package/lib/typescript/src/contexts/root.d.ts +9 -0
  462. package/lib/typescript/src/contexts/root.d.ts.map +1 -0
  463. package/lib/typescript/src/hooks/index.d.ts +2 -0
  464. package/lib/typescript/src/hooks/index.d.ts.map +1 -0
  465. package/lib/typescript/src/hooks/useThemeState.d.ts +8 -0
  466. package/lib/typescript/src/hooks/useThemeState.d.ts.map +1 -0
  467. package/lib/typescript/src/index.d.ts +6 -0
  468. package/lib/typescript/src/index.d.ts.map +1 -0
  469. package/lib/typescript/src/store/index.d.ts +2 -0
  470. package/lib/typescript/src/store/index.d.ts.map +1 -0
  471. package/lib/typescript/src/store/useScreen.d.ts +2 -0
  472. package/lib/typescript/src/store/useScreen.d.ts.map +1 -0
  473. package/lib/typescript/src/styles/fill.d.ts +269 -0
  474. package/lib/typescript/src/styles/fill.d.ts.map +1 -0
  475. package/lib/typescript/tsup.config.d.ts +3 -0
  476. package/lib/typescript/tsup.config.d.ts.map +1 -0
  477. package/package.json +47 -11
  478. package/src/components/box/Center.tsx +19 -0
  479. package/src/components/box/CollapseHorizontal.tsx +44 -0
  480. package/src/components/box/ContentBox.tsx +24 -0
  481. package/src/components/box/DropShadow.tsx +28 -0
  482. package/src/components/box/ExpandOnMount.tsx +74 -0
  483. package/src/components/box/Expandable.tsx +143 -0
  484. package/src/components/box/FullSizeContainer.tsx +64 -0
  485. package/src/components/box/index.ts +7 -0
  486. package/src/components/button/DeleteButton.tsx +294 -0
  487. package/src/components/button/LoadingButton.tsx +155 -0
  488. package/src/components/button/Toggle.tsx +104 -0
  489. package/src/components/button/index.ts +3 -0
  490. package/src/components/feed/FeedContentPane.tsx +97 -0
  491. package/src/components/feed/MediaFeed.tsx +199 -0
  492. package/src/components/feed/MediaFeedBackground.tsx +136 -0
  493. package/src/components/feed/MediaFeedRefresh.tsx +113 -0
  494. package/src/components/feed/constants.ts +2 -0
  495. package/src/components/feed/context.tsx +19 -0
  496. package/src/components/feed/hooks.ts +279 -0
  497. package/src/components/feed/index.ts +2 -0
  498. package/src/components/form/Condition.tsx +27 -0
  499. package/src/components/form/Field.tsx +43 -0
  500. package/src/components/form/Form.tsx +393 -0
  501. package/src/components/form/FormFooter.tsx +163 -0
  502. package/src/components/form/UploadProgress/index.tsx +62 -0
  503. package/src/components/form/index.ts +3 -0
  504. package/src/components/form/input/Editable.tsx +167 -0
  505. package/src/components/form/input/InputSlider.tsx +70 -0
  506. package/src/components/form/input/OptionalTag.tsx +43 -0
  507. package/src/components/form/input/StandaloneInput.tsx +36 -0
  508. package/src/components/form/input/boolean/index.tsx +56 -0
  509. package/src/components/form/input/color/index.tsx +145 -0
  510. package/src/components/form/input/common/InputClearButton.tsx +47 -0
  511. package/src/components/form/input/date/index.tsx +103 -0
  512. package/src/components/form/input/datetime/index.tsx +143 -0
  513. package/src/components/form/input/file/index.tsx +226 -0
  514. package/src/components/form/input/hooks/index.ts +2 -0
  515. package/src/components/form/input/hooks/useInputColor.ts +7 -0
  516. package/src/components/form/input/hooks/useInputImperativeHandle.ts +22 -0
  517. package/src/components/form/input/hooks/useInputStyle.ts +40 -0
  518. package/src/components/form/input/index.ts +2 -0
  519. package/src/components/form/input/input.tsx +174 -0
  520. package/src/components/form/input/multipleSelect/index.tsx +79 -0
  521. package/src/components/form/input/number/index.tsx +100 -0
  522. package/src/components/form/input/select/index.tsx +215 -0
  523. package/src/components/form/input/socialMedia/index.tsx +234 -0
  524. package/src/components/form/input/text/index.tsx +89 -0
  525. package/src/components/form/input/text/textarea.tsx +56 -0
  526. package/src/components/form/input/time/index.tsx +106 -0
  527. package/src/components/form/types.ts +4 -0
  528. package/src/components/form/view/file.tsx +59 -0
  529. package/src/components/form/view/index.tsx +77 -0
  530. package/src/components/form/view/multipleSelect.tsx +52 -0
  531. package/src/components/form/view/select.tsx +41 -0
  532. package/src/components/icons/index.tsx +28 -0
  533. package/src/components/index.ts +8 -0
  534. package/src/components/loading/CircularProgress.tsx +53 -0
  535. package/src/components/loading/Loading.tsx +181 -0
  536. package/src/components/loading/LoadingImage.tsx +144 -0
  537. package/src/components/loading/LoadingSwitch.tsx +110 -0
  538. package/src/components/loading/index.ts +4 -0
  539. package/src/components/overlay/ImageViewOverlay.tsx +104 -0
  540. package/src/components/overlay/index.ts +1 -0
  541. package/src/components/text/AnimatedText.tsx +66 -0
  542. package/src/components/text/Txt.tsx +11 -0
  543. package/src/components/text/index.ts +1 -0
  544. package/src/components/theme/colorMode/DarkModeToggle.tsx +45 -0
  545. package/src/components/theme/colorMode/index.ts +1 -0
  546. package/src/components/theme/index.ts +1 -0
  547. package/src/constants/index.ts +1 -0
  548. package/src/constants/toast.ts +23 -0
  549. package/src/contexts/index.ts +1 -0
  550. package/src/contexts/root.tsx +39 -0
  551. package/src/hooks/index.ts +1 -0
  552. package/src/hooks/useThemeState.ts +18 -0
  553. package/src/store/index.ts +1 -0
  554. package/src/store/useScreen.ts +25 -0
  555. package/src/styles/fill.ts +19 -0
  556. package/dist/index.d.mts +0 -228
  557. package/dist/index.d.ts +0 -228
  558. package/dist/index.js +0 -2
  559. package/dist/index.js.map +0 -1
  560. package/dist/index.mjs +0 -2
  561. package/dist/index.mjs.map +0 -1
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/box/Center.tsx","../src/components/box/CollapseHorizontal.tsx","../src/components/box/ContentBox.tsx","../src/components/box/DropShadow.tsx","../src/components/text/Txt.tsx","../src/components/box/Expandable.tsx","../src/components/box/ExpandOnMount.tsx","../src/components/box/FullSizeContainer.tsx","../src/components/button/DeleteButton.tsx","../src/components/button/LoadingButton.tsx","../src/components/button/Toggle.tsx","../src/components/feed/context.tsx","../src/styles/fill.ts","../src/components/loading/Loading.tsx","../src/components/feed/FeedContentPane.tsx","../src/components/feed/hooks.ts","../src/components/loading/CircularProgress.tsx","../src/components/overlay/ImageViewOverlay.tsx","../src/components/loading/LoadingImage.tsx","../src/components/loading/LoadingSwitch.tsx","../src/components/feed/MediaFeedBackground.tsx","../src/components/feed/MediaFeedRefresh.tsx","../src/components/feed/MediaFeed.tsx","../src/components/form/Condition.tsx","../src/components/text/AnimatedText.tsx","../src/components/form/input/boolean/index.tsx","../src/components/form/input/InputSlider.tsx","../src/components/form/input/hooks/useInputImperativeHandle.ts","../src/components/form/input/color/index.tsx","../src/components/form/input/date/index.tsx","../src/components/form/input/common/InputClearButton.tsx","../src/components/form/input/hooks/useInputColor.ts","../src/components/form/input/datetime/index.tsx","../src/components/form/input/file/index.tsx","../src/components/form/input/multipleSelect/index.tsx","../src/components/form/input/hooks/useInputStyle.ts","../src/components/form/input/number/index.tsx","../src/components/form/input/select/index.tsx","../src/components/form/input/socialMedia/index.tsx","../src/components/form/input/text/index.tsx","../src/components/form/input/text/textarea.tsx","../src/components/form/input/time/index.tsx","../src/components/form/input/input.tsx","../src/components/form/Field.tsx","../src/components/form/FormFooter.tsx","../src/components/form/UploadProgress/index.tsx","../src/components/form/view/file.tsx","../src/components/form/view/multipleSelect.tsx","../src/components/form/view/select.tsx","../src/components/form/view/index.tsx","../src/components/form/input/StandaloneInput.tsx","../src/components/form/input/Editable.tsx","../src/components/form/Form.tsx","../src/components/theme/colorMode/DarkModeToggle.tsx","../src/constants/toast.ts","../src/hooks/useThemeState.ts","../src/store/useScreen.ts","../src/contexts/root.tsx"],"names":["Center","forwardRef","style","props","ref","jsx","View","styles","AnimatedCenter","Animated","StyleSheet","CollapseHorizontal","width","children","active","duration","styleProp","widthValue","useRef","opacityValue","useEffect","useMemo","ContentBoxBase","ContentBox","DropShadow","Platform","Txt","color","useTextColor","Text","Expandable","header","initExpanded","nested","alwaysExpanded","iconColor","footer","isOpenProp","onCloseProp","onOpenProp","isOpen","setIsOpen","React","heightAnim","rotateAnim","onClose","useCallback","onOpen","handleOpenClick","rotate","jsxs","Pressable","ExpandOnMount","animateOpacity","isIn","onExited","mounted","setMounted","useState","bodyHeight","setBodyHeight","bodyRef","expanded","opacityAnim","x","y","height","animations","FullSizeContainer","setWidth","setHeight","handleLayout","event","newWidth","newHeight","FullSizeContext","createContext","FullSizeProvider","contextValue","useFullSize","useContext","defaultAlertBodyText","DeleteConfirmAlert","confirmActive","onCancel","onConfirm","body","actionName","actionLoading","itemName","Modal","TouchableOpacity","ActivityIndicator","DeleteButton","onDelete","noConfirm","alertBody","text","showError","useToast","deleteLoading","setDeleteLoading","setConfirmActive","confirmTimer","isMounted","contentOpacity","loaderOpacity","animateLoading","isLoading","handleDelete","err","Fragment","e","Ionicons","LoadingButton","onPress","textStyle","colorProp","icon","disabled","loading","setLoading","handlePress","fallbackColor","ToggleButton","selected","Render","disabledMessage","size","Toggle","value","onChange","options","background","useTheme","option","MediaFeedContext","MediaFeedProvider","curr","contextData","useMediaFeed","sharedProps","fill","LottieLoadingLogo","speed","inFeed","asset","colorMode","animationData","LottieView","SVGLoadingLogo","svg","Image","LoadingBody","useAppAssets","LoadingLogo","Loading","inBox","containerStyle","LoadingOverlay","bgColor","getContentScale","status","getContentY","contentSize","cHeight","FeedContentPane","id","collectionPath","onItemLoad","RenderItem","offsetY","enterStatus","useScreen","scale","baseY","docPath","item","useDocument","newScale","updatedY","DEFAULT_LIMIT","fetch","onUpdatePanels","limit","authRequired","ids","setIds","idIdx","setIdIdx","user","useAuth","s","refreshing","setRefreshing","error","setError","itemLoading","setItemLoading","direction","setDirection","fetchingId","idsRef","showInfo","updateCurr","updateNext","updatePrev","fetchIds","startBefore","startAfter","isPrefetch","data","firstId","secondId","newLastId","getNextId","currIdx","currIds","nextIds","nextIdx","fetchedNextId","getPrevId","prevIds","prevIdx","newFirstId","fetchedPrevIds","fetchedPrevId","goNext","newPrev","nextIdData","nextId","newNextId","goPrev","newNext","prevIdData","prevId","newPrevId","refresh","initFetchIds","canGoPrev","canGoNext","CircularProgress","trackColor","animating","visible","viewStyle","defaultTrackColor","useColorModeValue","opacity","ImageViewOverlay","src","screenWidth","screenHeight","imageSize","setImageSize","ratio","h","w","onLoadStart","onLoad","naturalWidth","naturalHeight","emptyPng","LoadingImage","loadingOverride","noFullView","buttonFullView","imageLoading","setImageLoading","imageRef","viewing","setViewing","useMounted","handleImageLoad","prevSrc","setPrevSrc","ImageComponent","LoadingSwitch","label","setIsLoading","reportComplete","fetchedOn","buffer","handleChange","newValue","Switch","backgroundStyle","FillBackground","ImageBackground","FileValueBackground","getBackgroundValue","url","useObjectUrl","usedIndex","index","setIndex","url1","setUrl1","url2","setUrl2","UrlBackground","getBackgroundUrl","MediaFeedBackground","WINDOW","MediaFeedRefresh","canRefresh","dist","baseProgress","progress","progressRoot","yConstrained","finalScale","Icon","useUpdatePanels","setItems","updated","MediaFeed","defaultBackground","swipeDisabled","theme","contentRef","containerRef","panels","setPanels","onNewData","backgroundRef","pointerDown","dragStart","onDragStart","onDragEnd","maxY","minY","oY","onDragMove","oX","panGesture","Gesture","setCurr","handleItemLoad","p","GestureDetector","panel","Condition","path","condition","useWatch","useAnimatedText","show","marginBottom","placeholderAnim","AnimatedText","heightProp","marginBottomProp","transform","BaseCheckboxComponent","field","input","placeholder","useImperativeHandle","CheckboxBooleanComponent","BaseSwitchComponent","SwitchBooleanComponent","BaseBooleanComponent","BooleanComponent","InputSlider","gradient","minimumValue","maximumValue","Slider","useInputImperativeHandle","inputRef","ColorComponentSlider","ColorComponent","meta","withAlpha","defaultValue","key","val","withDefault","asHex","colorValueToHex","gradients","updatedRed","updatedGreen","updatedBlue","updatedAlpha","InputClearButton","isActive","marginRight","useIconColor","borderColor","useBorderColor","DateInputClearButton","useInputColor","textColor","placeholderColor","usePlaceholderColor","DateInput","onFocus","onBlur","minDate","maxDate","optional","date","showDialog","inputColor","minDateObj","maxDateObj","getDateString","Portal","DatePickerModal","d","DateTimeInput","showDatePicker","setShowDatePicker","showTimePicker","setShowTimePicker","selectedDate","handleDateChange","newDate","handleTimeChange","hours","minutes","handleDismiss","formattedValue","getDateTimeString","hourMinute","TimePickerModal","generateAccept","accept","NoFileView","hasUpload","FileView","imageOptions","storagePath","dataUrl","missingFile","fileNameColor","FileComponent","handlePickFile","result","gr","fileExtension","fileName","fr","isImageField","imgOptions","MultipleSelectComponent","inEditable","renderOption","getOptionKey","useColorMode","handleOptionPress","v","o","inputPaddingY","inputPaddingX","fontSize","useInputStyle","NumberComponent","prefix","_","type","endsWith","setEndsWith","displayed","TextInput","num","BaseCurrencyAmountComponent","CurrencyAmountComponent","BaseSelectComponent","buttonLayout","setButtonLayout","buttonRef","key1","key2","handleButtonLayout","_x","_y","pageX","pageY","renderOptionText","isSelected","getKey","menuBg","useBackgroundColor","selectedOptionBg","ScrollView","SelectComponent","siteToIcon","SocialMediaSiteInput","site","isModalVisible","onModalClose","handle","getHandle","displayedText","SocialMediaComponent","sites","selectedSite","setSelectedSite","_curr","rest","TextAreaComponent","inputProps","TextComponent","isHidden","setIsHidden","TimeInput","setVisible","timeString","padZeros","amPm","m","Components","InputBase","touched","activeColor","useThemeValue","errorColor","shadowColorAnim","displayedError","shadowColor","animatedShadowColor","_type","showPlaceholder","bg","animatedStyles","Component","staticStyles","Input","FieldComponentBase","name","control","getOnChange","fieldBlur","useField","validate","getFieldValidate","Controller","_r","FieldComponent","UploadProgress","uploads","asArr","upload","buttonTextColor","CancelButton","onBack","submitting","SubmitButton","onSubmitClick","valid","animatedOpacity","textShadowColor","buttonBg","useButtonColor","FormErrorView","formState","useFormContext","FormFooter","renderFooter","onSubmit","buttonText","useFormState","FileFieldView","noLabel","MultipleSelectFieldView","colorScheme","useColorScheme","DefaultRenderOption","SelectFieldView","customRender","DefaultFieldView","formatted","format","formatField","FieldView","StandaloneInputBase","useStandaloneInput","StandaloneInput","Editable","initValue","onEditClose","onEditOpen","setValue","editHovered","handleEditOpen","handleEditClose","isEditing","setEditHovered","submitValue","submit","parse","useEditable","alwaysEditing","editingBorderColor","palette","ListFieldInput","emptyData","isField","isListField","buttonColor","fields","append","remove","useFieldArray","formField","idx","FormElement","childName","childField","f","b","ListFieldView","itemField","FormElementView","updateField","useDataView","DataView","fieldName","setIsEditing","DataViewProvider","Form","FieldMapForm","onSubmitProp","useSubmitDataProps","useFormSubmit","FieldForm","fieldMap","ChempoFormProvider","DarkModeToggle","toggleColorMode","isDark","iconName","AbsoluteDarkModeToggle","nativeToast","Notifier","title","message","NotifierComponents","componentProps","useThemeState","initialColorMode","setColorMode","initializeScreen","onDimensionsChange","Dimensions","subscription","registerTranslation","en","ChempoNativeProvider","themeProp","useThemeProps","NotifierWrapper","ChempoProvider"],"mappings":"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","file":"index.js","sourcesContent":["import { forwardRef } from 'react'\nimport { Animated, StyleSheet, View, ViewProps } from 'react-native'\n\nexport type CenterProps = ViewProps\nexport const Center = forwardRef<View, CenterProps>(({ style, ...props }, ref) => {\n return <View ref={ref} style={[styles.center, style]} {...props} />\n})\n\nexport const AnimatedCenter = forwardRef<View, CenterProps>(({ style, ...props }, ref) => {\n return <Animated.View ref={ref} style={[styles.center, style]} {...props} />\n})\n\nconst styles = StyleSheet.create({\n center: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n },\n})\n","import { useEffect, useMemo, useRef } from 'react'\nimport { Animated, StyleProp, ViewStyle } from 'react-native'\nimport { AnimatedCenter, CenterProps } from './Center'\n\nexport const CollapseHorizontal = ({\n width,\n children,\n active,\n duration = 400,\n style: styleProp,\n ...props\n}: CenterProps & { width: number; active: boolean; duration?: number }) => {\n const widthValue = useRef(new Animated.Value(active ? width : 0)).current\n const opacityValue = useRef(new Animated.Value(active ? 1 : 0)).current\n\n useEffect(() => {\n Animated.parallel([\n Animated.timing(widthValue, {\n toValue: active ? width : 0,\n duration,\n useNativeDriver: false,\n }),\n Animated.timing(opacityValue, {\n toValue: active ? 1 : 0,\n duration,\n useNativeDriver: true,\n }),\n ]).start()\n }, [active, widthValue, opacityValue, width, duration])\n\n const style: StyleProp<ViewStyle> = useMemo(() => {\n return {\n width: widthValue,\n opacity: opacityValue,\n overflow: 'hidden',\n }\n }, [widthValue, opacityValue])\n\n return (\n <AnimatedCenter style={[style, styleProp]} {...props}>\n {children}\n </AnimatedCenter>\n )\n}\n","import { forwardRef } from 'react'\nimport { StyleSheet, View, ViewProps } from 'react-native'\n\nconst ContentBoxBase = (props: ViewProps, ref: any) => {\n return <View ref={ref} style={[styles.container, props.style]} {...props} />\n}\n\nconst styles = StyleSheet.create({\n container: {\n backgroundColor: '#FFFFFF',\n padding: 12,\n borderRadius: 6,\n shadowColor: '#000000',\n shadowOffset: {\n width: 1,\n height: 1,\n },\n shadowOpacity: 0.4,\n shadowRadius: 4,\n elevation: 4,\n },\n})\n\nexport const ContentBox = forwardRef<View, ViewProps>(ContentBoxBase)\n","import { PropsWithChildren } from 'react'\nimport { Platform, StyleProp, View, ViewStyle } from 'react-native'\n\n// Method 1: Wrapping in a View\nexport const DropShadow = ({\n children,\n style,\n}: PropsWithChildren<{ style: StyleProp<ViewStyle> }>) => (\n <View\n style={[\n {\n ...Platform.select({\n ios: {\n shadowColor: '#000',\n shadowOffset: { width: 0, height: 2 },\n shadowOpacity: 0.25,\n shadowRadius: 3.84,\n },\n android: {\n elevation: 5,\n },\n }),\n },\n style,\n ]}>\n {children}\n </View>\n)\n","import { useTextColor } from '@chem-po/react'\nimport { Text, TextProps } from 'react-native'\n\nexport const Txt = ({ children, ...props }: TextProps) => {\n const color = useTextColor()\n return (\n <Text {...props} style={[{ color }, props.style]}>\n {children}\n </Text>\n )\n}\n","import React, { FC, PropsWithChildren, useCallback, useEffect, useRef } from 'react'\nimport { Animated, Pressable, StyleSheet, View, ViewStyle } from 'react-native'\nimport { Txt } from '../text/Txt'\nimport { AnimatedCenter } from './Center'\ntype ExpandableProps = PropsWithChildren<{\n header: string | FC<{ isOpen: boolean; onClose: () => void }>\n footer?: FC<{ isOpen: boolean; onClose: () => void }>\n nested?: boolean\n alwaysExpanded?: boolean\n initExpanded?: boolean\n isOpen?: boolean\n onClose?: () => void\n iconColor?: string\n onOpen?: () => void\n style?: ViewStyle\n}>\n\nexport const Expandable = ({\n header,\n children,\n initExpanded = false,\n nested,\n alwaysExpanded,\n iconColor = '#000',\n footer,\n isOpen: isOpenProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n style,\n}: ExpandableProps) => {\n const [isOpen, setIsOpen] = React.useState(alwaysExpanded ?? initExpanded)\n const heightAnim = useRef(new Animated.Value(0)).current\n const rotateAnim = useRef(new Animated.Value(0)).current\n\n useEffect(() => {\n if (typeof isOpenProp !== 'undefined') {\n setIsOpen(isOpenProp)\n }\n }, [isOpenProp])\n\n const onClose = useCallback(() => {\n setIsOpen(false)\n onCloseProp?.()\n }, [onCloseProp])\n\n const onOpen = useCallback(() => {\n setIsOpen(true)\n onOpenProp?.()\n }, [onOpenProp])\n\n const handleOpenClick = useCallback(() => {\n if (alwaysExpanded) return\n if (isOpen) {\n onClose()\n } else {\n onOpen()\n }\n }, [alwaysExpanded, onOpen, onClose, isOpen])\n\n useEffect(() => {\n Animated.parallel([\n Animated.timing(heightAnim, {\n toValue: isOpen ? 1 : 0,\n duration: 300,\n useNativeDriver: false,\n }),\n Animated.timing(rotateAnim, {\n toValue: isOpen ? 1 : 0,\n duration: 300,\n useNativeDriver: true,\n }),\n ]).start()\n }, [isOpen, heightAnim, rotateAnim])\n\n const rotate = rotateAnim.interpolate({\n inputRange: [0, 1],\n outputRange: ['0deg', '180deg'],\n })\n\n return (\n <View style={[styles.container, style]}>\n <Pressable onPress={handleOpenClick} style={styles.header}>\n <View style={styles.headerContent}>\n {typeof header === 'string' ? (\n <Txt style={styles.headerText}>{header}</Txt>\n ) : (\n header({ isOpen, onClose })\n )}\n </View>\n {!alwaysExpanded && (\n <Animated.Text style={[styles.arrow, { transform: [{ rotate }], color: iconColor }]}>\n ▼\n </Animated.Text>\n )}\n </Pressable>\n\n <AnimatedCenter\n style={[\n styles.content,\n nested && styles.nested,\n {\n maxHeight: heightAnim.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1000],\n }),\n },\n ]}>\n {children}\n </AnimatedCenter>\n\n {footer?.({ isOpen, onClose })}\n </View>\n )\n}\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n },\n header: {\n flexDirection: 'row',\n padding: 8,\n alignItems: 'center',\n },\n headerContent: {\n flex: 1,\n },\n headerText: {\n fontWeight: '600',\n color: '#666',\n },\n arrow: {\n fontSize: 12,\n marginLeft: 8,\n },\n content: {\n width: '100%',\n overflow: 'hidden',\n },\n nested: {\n borderLeftWidth: 4,\n borderLeftColor: 'rgba(0,0,0,0.2)',\n },\n})\n","import { FC, useEffect, useMemo, useRef, useState } from 'react'\nimport { Animated, View, ViewProps } from 'react-native'\n\nexport const ExpandOnMount: FC<\n ViewProps & { in?: boolean; animateOpacity?: boolean; duration?: number; onExited?: () => void }\n> = ({ animateOpacity, duration = 300, children, in: isIn = true, onExited, style, ...props }) => {\n const [mounted, setMounted] = useState(false)\n useEffect(() => {\n setMounted(true)\n }, [])\n\n const [bodyHeight, setBodyHeight] = useState<number>(0)\n const bodyRef = useRef<View>(null)\n\n const expanded = useMemo(() => mounted && isIn, [isIn, mounted])\n\n const heightAnim = useRef(new Animated.Value(0)).current\n const opacityAnim = useRef(new Animated.Value(0)).current\n\n useEffect(() => {\n if (bodyRef.current) {\n bodyRef.current.measure((x, y, width, height) => {\n setBodyHeight(height)\n })\n }\n }, [children])\n\n useEffect(() => {\n const animations = [\n Animated.timing(heightAnim, {\n toValue: expanded ? bodyHeight : 0,\n duration,\n useNativeDriver: false,\n }),\n ]\n\n if (animateOpacity) {\n animations.push(\n Animated.timing(opacityAnim, {\n toValue: expanded ? 1 : 0,\n duration,\n delay: expanded ? duration : 0,\n useNativeDriver: true,\n }),\n )\n }\n\n Animated.parallel(animations).start(() => {\n if (!expanded && onExited) {\n onExited()\n }\n })\n }, [expanded, bodyHeight, duration, heightAnim, opacityAnim, animateOpacity, onExited])\n\n return (\n <Animated.View\n style={[\n {\n overflow: 'hidden',\n width: '100%',\n height: heightAnim,\n },\n style,\n ]}\n {...props}>\n <View\n ref={bodyRef}\n style={[{ width: '100%' }, animateOpacity && { opacity: opacityAnim }, style]}\n {...props}>\n {children}\n </View>\n </Animated.View>\n )\n}\n","import { createContext, FC, useCallback, useContext, useMemo, useRef, useState } from 'react'\nimport { View, ViewProps } from 'react-native'\n\nexport const FullSizeContainer = ({\n children,\n ...props\n}: Omit<ViewProps, 'children'> & { children: FC<{ width: number; height: number }> }) => {\n const [width, setWidth] = useState(0)\n const [height, setHeight] = useState(0)\n\n const ref = useRef<View>(null)\n const handleLayout = useCallback((event: any) => {\n const { width: newWidth, height: newHeight } = event.nativeEvent.layout\n setWidth(newWidth)\n setHeight(newHeight)\n }, [])\n\n return (\n <View\n ref={ref}\n {...props}\n style={[{ width: '100%', height: '100%' }, props.style]}\n onLayout={handleLayout}>\n {children({ width, height })}\n </View>\n )\n}\n\ninterface FullSizeContextType {\n width: number\n height: number\n}\n\nconst FullSizeContext = createContext<FullSizeContextType>({\n width: 0,\n height: 0,\n})\n\n// same as FullSizeContainer, but provides the width and height in a context instead of a render prop\nexport const FullSizeProvider = ({ children, ...props }: ViewProps) => {\n const [width, setWidth] = useState(0)\n const [height, setHeight] = useState(0)\n\n const ref = useRef<View>(null)\n const handleLayout = useCallback((event: any) => {\n const { width: newWidth, height: newHeight } = event.nativeEvent.layout\n setWidth(newWidth)\n setHeight(newHeight)\n }, [])\n\n const contextValue = useMemo(() => ({ width, height }), [width, height])\n\n return (\n <View\n ref={ref}\n {...props}\n style={[{ width: '100%', height: '100%' }, props.style]}\n onLayout={handleLayout}>\n <FullSizeContext.Provider value={contextValue}>{children}</FullSizeContext.Provider>\n </View>\n )\n}\n\nexport const useFullSize = () => useContext(FullSizeContext)\n","import { useToast } from '@chem-po/react'\nimport { Ionicons } from '@expo/vector-icons'\nimport React, { ReactNode, useCallback, useEffect, useRef, useState } from 'react'\nimport {\n ActivityIndicator,\n Animated,\n Modal,\n StyleSheet,\n Text,\n TouchableOpacity,\n View,\n ViewStyle,\n} from 'react-native'\nimport { Txt } from '../text/Txt'\n\nconst defaultAlertBodyText = \"Are you sure? You can't undo this action afterwards.\"\n\nexport const DeleteConfirmAlert = ({\n confirmActive,\n onCancel,\n onConfirm,\n body = defaultAlertBodyText,\n actionName = 'Delete',\n actionLoading,\n itemName,\n}: {\n confirmActive: boolean\n onCancel: () => void\n onConfirm: () => void\n body?: string | ReactNode\n actionLoading?: boolean\n actionName?: string\n itemName: string\n}) => {\n return (\n <Modal\n transparent={true}\n visible={confirmActive}\n onRequestClose={onCancel}\n animationType=\"fade\">\n <View style={styles.overlay}>\n <View style={styles.alertContainer}>\n <Txt style={styles.alertTitle}>\n {actionName} {itemName}?\n </Txt>\n {typeof body === 'string' ? <Txt style={styles.alertBody}>{body}</Txt> : body}\n <View style={styles.buttonContainer}>\n <TouchableOpacity style={styles.cancelButton} onPress={onCancel}>\n <Txt style={styles.cancelText}>Cancel</Txt>\n </TouchableOpacity>\n <TouchableOpacity\n style={styles.confirmButton}\n onPress={onConfirm}\n disabled={actionLoading}>\n {actionLoading ? (\n <ActivityIndicator color=\"#fff\" />\n ) : (\n <Txt style={[styles.buttonText, styles.confirmButtonText]}>{actionName}</Txt>\n )}\n </TouchableOpacity>\n </View>\n </View>\n </View>\n </Modal>\n )\n}\n\nexport const DeleteButton: React.FC<{\n onDelete: (() => Promise<any>) | (() => void)\n itemName: string\n actionName?: string\n noConfirm?: boolean\n text?: string\n alertBody?: string | ReactNode\n style?: ViewStyle\n}> = ({ onDelete, itemName, noConfirm, alertBody, text, actionName = 'Delete', style }) => {\n const { showError } = useToast()\n const [deleteLoading, setDeleteLoading] = useState(false)\n const [confirmActive, setConfirmActive] = useState(false)\n const confirmTimer = useRef<any>()\n const isMounted = useRef(true)\n const contentOpacity = useRef(new Animated.Value(1)).current\n const loaderOpacity = useRef(new Animated.Value(0)).current\n\n useEffect(() => {\n isMounted.current = true\n\n return () => {\n isMounted.current = false\n }\n }, [])\n\n const animateLoading = useCallback(\n (isLoading: boolean) => {\n Animated.parallel([\n Animated.timing(contentOpacity, {\n toValue: isLoading ? 0 : 1,\n duration: 200,\n useNativeDriver: true,\n }),\n Animated.timing(loaderOpacity, {\n toValue: isLoading ? 1 : 0,\n duration: 200,\n useNativeDriver: true,\n }),\n ]).start()\n },\n [contentOpacity, loaderOpacity],\n )\n\n const handleDelete = useCallback(async () => {\n if (confirmTimer.current) clearTimeout(confirmTimer.current)\n setConfirmActive(false)\n if (onDelete) {\n setDeleteLoading(true)\n animateLoading(true)\n try {\n await onDelete()\n } catch (err: any) {\n console.error(err)\n showError(err.message ?? 'An error occurred')\n }\n if (isMounted.current) {\n setDeleteLoading(false)\n animateLoading(false)\n }\n } else {\n console.error('No delete function')\n }\n }, [onDelete, animateLoading])\n\n return (\n <>\n {text ? (\n <TouchableOpacity\n style={[styles.button, style]}\n onPress={e => {\n e.stopPropagation()\n if (noConfirm) handleDelete()\n else setConfirmActive(true)\n }}\n disabled={deleteLoading}>\n <View style={styles.buttonContent}>\n <Animated.View style={[styles.contentContainer, { opacity: contentOpacity }]}>\n <Ionicons name=\"trash\" size={20} color=\"red\" />\n <Text style={styles.buttonText}>{text}</Text>\n </Animated.View>\n\n <Animated.View style={[styles.loaderContainer, { opacity: loaderOpacity }]}>\n <ActivityIndicator color=\"#ff0000\" size=\"small\" />\n </Animated.View>\n </View>\n </TouchableOpacity>\n ) : (\n <TouchableOpacity\n style={[styles.iconButton, style]}\n onPress={e => {\n e.stopPropagation()\n if (noConfirm) handleDelete()\n else setConfirmActive(true)\n }}\n disabled={deleteLoading}>\n <View style={styles.buttonContent}>\n <Animated.View style={[styles.contentContainer, { opacity: contentOpacity }]}>\n <Ionicons name=\"trash\" size={24} color=\"#ee0000\" />\n </Animated.View>\n\n <Animated.View style={[styles.loaderContainer, { opacity: loaderOpacity }]}>\n <ActivityIndicator color=\"#ff0000\" size=\"small\" />\n </Animated.View>\n </View>\n </TouchableOpacity>\n )}\n {noConfirm ? null : (\n <DeleteConfirmAlert\n confirmActive={confirmActive}\n onCancel={() => setConfirmActive(false)}\n actionLoading={deleteLoading}\n onConfirm={() => {\n handleDelete()\n }}\n actionName={actionName}\n body={alertBody}\n itemName={itemName}\n />\n )}\n </>\n )\n}\n\nconst styles = StyleSheet.create({\n overlay: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n },\n alertContainer: {\n width: '80%',\n maxWidth: 400,\n backgroundColor: 'white',\n borderRadius: 10,\n padding: 20,\n alignItems: 'center',\n },\n alertTitle: {\n fontSize: 18,\n fontWeight: 'bold',\n marginBottom: 10,\n },\n alertBody: {\n fontSize: 16,\n marginBottom: 20,\n },\n buttonContainer: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n width: '100%',\n },\n cancelButton: {\n padding: 10,\n borderColor: 'gray',\n borderWidth: 1,\n borderRadius: 5,\n flex: 1,\n marginRight: 5,\n alignItems: 'center',\n },\n cancelText: {\n color: 'gray',\n fontWeight: 'bold',\n },\n confirmButton: {\n padding: 10,\n backgroundColor: 'red',\n borderRadius: 5,\n flex: 1,\n marginLeft: 5,\n alignItems: 'center',\n },\n buttonText: {\n color: 'red',\n fontWeight: 'bold',\n },\n confirmButtonText: {\n color: 'white',\n textShadowColor: 'rgba(0, 0, 0, 0.5)',\n textShadowOffset: { width: 1, height: 1 },\n textShadowRadius: 3,\n },\n button: {\n flexDirection: 'row',\n alignItems: 'center',\n padding: 10,\n backgroundColor: 'transparent',\n },\n buttonContent: {\n flexDirection: 'row',\n gap: 3,\n borderWidth: 1,\n borderColor: 'red',\n paddingHorizontal: 13,\n paddingVertical: 5,\n borderRadius: 4,\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: 34,\n position: 'relative',\n },\n contentContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 3,\n },\n loaderContainer: {\n ...StyleSheet.absoluteFillObject,\n alignItems: 'center',\n justifyContent: 'center',\n },\n iconButton: {\n padding: 10,\n backgroundColor: 'transparent',\n },\n loading: {\n position: 'absolute',\n top: 0,\n left: 0,\n justifyContent: 'center',\n alignItems: 'center',\n height: 24,\n width: 24,\n },\n})\n","import { useTextColor, useToast } from '@chem-po/react'\nimport { Ionicons } from '@expo/vector-icons'\nimport React, { ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport {\n ActivityIndicator,\n Animated,\n StyleSheet,\n Text,\n TextStyle,\n TouchableOpacity,\n View,\n ViewStyle,\n} from 'react-native'\n\nexport interface LoadingButtonProps {\n onPress: (() => Promise<any>) | (() => void)\n children: ReactNode\n style?: ViewStyle\n textStyle?: TextStyle\n color?: string\n icon?: {\n name: React.ComponentProps<typeof Ionicons>['name']\n size?: number\n }\n disabled?: boolean\n}\n\nexport const LoadingButton: React.FC<LoadingButtonProps> = ({\n onPress,\n children,\n style,\n textStyle,\n color: colorProp,\n icon,\n disabled = false,\n}) => {\n const [loading, setLoading] = useState(false)\n const isMounted = useRef(true)\n const contentOpacity = useRef(new Animated.Value(1)).current\n const loaderOpacity = useRef(new Animated.Value(0)).current\n\n const { showError } = useToast()\n\n useEffect(() => {\n isMounted.current = true\n\n return () => {\n isMounted.current = false\n }\n }, [])\n\n const animateLoading = useCallback(\n (isLoading: boolean) => {\n Animated.parallel([\n Animated.timing(contentOpacity, {\n toValue: isLoading ? 0 : 1,\n duration: 200,\n useNativeDriver: true,\n }),\n Animated.timing(loaderOpacity, {\n toValue: isLoading ? 1 : 0,\n duration: 200,\n useNativeDriver: true,\n }),\n ]).start()\n },\n [contentOpacity, loaderOpacity],\n )\n\n const handlePress = useCallback(async () => {\n if (onPress) {\n setLoading(true)\n animateLoading(true)\n try {\n await onPress()\n } catch (err: any) {\n console.error(err)\n showError(err.message ?? 'An error occurred')\n }\n if (isMounted.current) {\n setLoading(false)\n animateLoading(false)\n }\n }\n }, [onPress, animateLoading, showError])\n\n const fallbackColor = useTextColor()\n const color = useMemo(() => colorProp ?? fallbackColor, [colorProp, fallbackColor])\n return (\n <TouchableOpacity\n style={[\n styles.button,\n { borderColor: color, backgroundColor: disabled ? '#f0f0f0' : 'transparent' },\n style,\n ]}\n onPress={e => {\n e.stopPropagation()\n handlePress()\n }}\n disabled={loading || disabled}>\n <View style={[styles.buttonContent, { borderColor: disabled ? '#ccc' : color }]}>\n <Animated.View style={[styles.contentContainer, { opacity: contentOpacity }]}>\n {icon && (\n <Ionicons name={icon.name} size={icon.size ?? 20} color={disabled ? '#ccc' : color} />\n )}\n {typeof children === 'string' ? (\n <Text style={[styles.buttonText, { color: disabled ? '#ccc' : color }, textStyle]}>\n {children}\n </Text>\n ) : (\n children\n )}\n </Animated.View>\n\n <Animated.View style={[styles.loaderContainer, { opacity: loaderOpacity }]}>\n <ActivityIndicator color={color} size=\"small\" />\n </Animated.View>\n </View>\n </TouchableOpacity>\n )\n}\n\nconst styles = StyleSheet.create({\n button: {\n flexDirection: 'row',\n alignItems: 'center',\n backgroundColor: 'transparent',\n },\n buttonContent: {\n flexDirection: 'row',\n gap: 8,\n borderWidth: 1,\n paddingHorizontal: 16,\n paddingVertical: 8,\n borderRadius: 4,\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: 40,\n position: 'relative',\n },\n contentContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 8,\n },\n loaderContainer: {\n ...StyleSheet.absoluteFillObject,\n alignItems: 'center',\n justifyContent: 'center',\n },\n buttonText: {\n fontWeight: 'bold',\n },\n})\n","import { useTheme, useToast } from '@chem-po/react'\nimport { JSX, useCallback } from 'react'\nimport { StyleSheet, TouchableOpacity, View } from 'react-native'\n\nexport interface ToggleOption<Option extends string = string> {\n id: Option\n disabledMessage?: string\n Render: (selected: boolean) => JSX.Element\n}\n\nexport interface ToggleProps<Option extends string> {\n options: ToggleOption<Option>[]\n value: Option\n size?: number\n onChange: (value: Option) => Promise<void> | void\n}\n\nconst ToggleButton = <Option extends string>({\n selected,\n option: { Render, disabledMessage },\n size,\n onPress,\n}: {\n option: ToggleOption<Option>\n size: number\n selected: boolean\n onPress: () => void\n}) => {\n const { showError } = useToast()\n const handlePress = useCallback(() => {\n if (!disabledMessage) {\n onPress()\n } else {\n showError(disabledMessage)\n }\n }, [onPress, disabledMessage, showError])\n const body = (\n <View\n style={[\n styles.buttonContainer,\n { width: size, height: size, opacity: !disabledMessage ? 1 : 0.6 },\n ]}>\n <TouchableOpacity\n style={[\n styles.button,\n {\n backgroundColor: selected ? 'rgba(255, 255, 255, 0.5)' : 'rgba(0, 0, 0, 0.1)',\n pointerEvents: selected ? 'none' : 'auto',\n },\n ]}\n onPress={handlePress}\n disabled={!!disabledMessage}>\n {Render(selected)}\n </TouchableOpacity>\n </View>\n )\n\n return body\n}\n\nexport const Toggle = <Option extends string>({\n value,\n onChange,\n size = 28,\n options,\n}: ToggleProps<Option>) => {\n const {\n theme: {\n colors: { background },\n },\n } = useTheme()\n return (\n <View style={[styles.container, { borderColor: background[300] }]}>\n {options.map(option => (\n <ToggleButton<Option>\n key={option.id}\n onPress={() => {\n onChange(option.id)\n }}\n option={option}\n size={size}\n selected={option.id === value}\n />\n ))}\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n borderWidth: 1,\n borderRadius: 3,\n },\n buttonContainer: {\n justifyContent: 'center',\n alignItems: 'center',\n },\n button: {\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: 3,\n },\n})\n","import { AnyObject, WithId } from '@chem-po/core'\nimport { createContext, PropsWithChildren, useContext, useMemo } from 'react'\n\ninterface MediaFeedContextValue<T extends AnyObject = AnyObject> {\n curr: WithId<T> | null\n}\nexport const MediaFeedContext = createContext<MediaFeedContextValue<any>>(\n {} as MediaFeedContextValue<any>,\n)\n\nexport const MediaFeedProvider = <T extends AnyObject = AnyObject>({\n curr,\n children,\n}: PropsWithChildren<{ curr: WithId<T> | null }>) => {\n const contextData = useMemo(() => ({ curr }), [curr])\n return <MediaFeedContext.Provider value={contextData}>{children}</MediaFeedContext.Provider>\n}\nexport const useMediaFeed = <T extends AnyObject = AnyObject>() =>\n useContext(MediaFeedContext) as MediaFeedContextValue<T>\n","import { StyleProp, StyleSheet, ViewStyle } from 'react-native'\n\nconst sharedProps: StyleProp<ViewStyle> = {\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n display: 'flex',\n}\nexport const fill = StyleSheet.create({\n absolute: {\n ...sharedProps,\n position: 'absolute',\n },\n relative: {\n ...sharedProps,\n position: 'relative',\n },\n})\n","import { ThemedAsset, useAppAssets, useTheme } from '@chem-po/react'\nimport LottieView from 'lottie-react-native'\nimport { useMemo } from 'react'\nimport { Image, StyleSheet, Text, View, ViewStyle } from 'react-native'\n\nexport const LottieLoadingLogo = ({\n size = 30,\n isLoading,\n speed = 2,\n inFeed,\n asset,\n}: {\n size?: number\n color?: string\n isLoading: boolean\n asset: ThemedAsset\n inFeed?: boolean\n speed?: number\n}) => {\n const { colorMode } = useTheme()\n const animationData = useMemo(\n () =>\n inFeed\n ? (asset.dark ?? asset.default)\n : colorMode === 'dark'\n ? (asset.dark ?? asset.default)\n : asset.default,\n [asset, inFeed, colorMode],\n )\n\n const style = useMemo(\n () => ({\n width: size,\n height: size,\n opacity: isLoading ? 0.85 : 0,\n }),\n [size, isLoading],\n )\n\n return <LottieView source={animationData} autoPlay={isLoading} loop speed={speed} style={style} />\n}\n\nconst SVGLoadingLogo = ({\n size = 30,\n isLoading,\n asset,\n inFeed,\n}: {\n size?: number\n isLoading: boolean\n asset: ThemedAsset\n inFeed?: boolean\n}) => {\n const { colorMode } = useTheme()\n const svg = useMemo(\n () =>\n inFeed\n ? (asset.dark ?? asset.default)\n : colorMode === 'dark'\n ? (asset.dark ?? asset.default)\n : asset.default,\n [asset, inFeed, colorMode],\n )\n\n const style = useMemo(\n () => ({\n width: size,\n height: size,\n opacity: isLoading ? 0.85 : 0,\n }),\n [size, isLoading],\n )\n\n return <Image source={{ uri: svg }} style={style} />\n}\n\nconst LoadingBody = ({ isLoading, size }: { isLoading: boolean; size?: number }) => {\n const { loading } = useAppAssets()\n if (loading.lottieJson)\n return <LottieLoadingLogo isLoading={isLoading} size={size} asset={loading.lottieJson} />\n if (loading.svg) return <SVGLoadingLogo isLoading={isLoading} size={size} asset={loading.svg} />\n return null\n}\n\nexport const LoadingLogo = ({\n isLoading,\n size,\n inFeed,\n}: {\n isLoading: boolean\n size?: number\n inFeed?: boolean\n}) => {\n const { loading } = useAppAssets()\n if (loading.lottieJson)\n return (\n <LottieLoadingLogo\n inFeed={inFeed}\n isLoading={isLoading}\n size={size}\n asset={loading.lottieJson}\n />\n )\n if (loading.svg)\n return <SVGLoadingLogo inFeed={inFeed} isLoading={isLoading} size={size} asset={loading.svg} />\n return <Text style={styles.errorText}>ERROR: No loading animation found</Text>\n}\n\nexport const Loading = ({\n text = 'Loading...',\n inBox,\n containerStyle,\n}: {\n text?: string\n inBox?: boolean\n containerStyle?: ViewStyle\n}) => {\n const body = (\n <View style={[styles.loadingContainer, containerStyle]}>\n <LoadingBody isLoading />\n <Text style={styles.loadingText}>{text}</Text>\n </View>\n )\n return inBox ? <View style={styles.boxContainer}>{body}</View> : body\n}\n\nexport const LoadingOverlay = ({\n isLoading,\n text,\n inFeed,\n style,\n}: {\n isLoading: boolean\n text?: string\n inFeed?: boolean\n style?: ViewStyle\n}) => {\n const { colorMode } = useTheme()\n const bgColor = colorMode === 'dark' ? 'rgba(0, 0, 0, 0.53)' : 'rgba(255, 255, 255, 0.67)'\n\n return (\n <View\n style={[styles.overlay, { backgroundColor: bgColor }, { opacity: isLoading ? 1 : 0 }, style]}>\n {!text ? (\n <LoadingLogo inFeed={inFeed} size={100} isLoading={isLoading} />\n ) : (\n <Loading text={text} />\n )}\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n loadingContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n padding: 8,\n },\n loadingText: {\n opacity: 0.8,\n fontSize: 14,\n marginLeft: 8,\n },\n boxContainer: {\n padding: 16,\n borderRadius: 8,\n backgroundColor: 'rgba(0, 0, 0, 0.05)',\n },\n overlay: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n justifyContent: 'center',\n alignItems: 'center',\n },\n errorText: {\n color: 'red',\n },\n})\n","import { AnyObject, WithId } from '@chem-po/core'\nimport { PanelStatus, useDocument, useScreen } from '@chem-po/react'\nimport { JSX, useEffect, useMemo, useRef } from 'react'\n// import { motion, MotionValue, useMotionValue, useSpring, useTransform } from 'framer-motion'\nimport { Animated } from 'react-native'\n\nconst getContentScale = (status: PanelStatus) => {\n // if (status === 'current') return 1\n if (status === 'current') return 1\n return 0\n}\n// const getContentX = (status: PanelStatus, contentSize: { width: number; height: number }) => {\n// const { width: cWidth } = contentSize\n// if (status === 'current') return 0\n// if (status === 'next') return cWidth\n// if (status === 'prev') return -cWidth\n// return 0\n// }\n\nconst getContentY = (status: PanelStatus, contentSize: { width: number; height: number }) => {\n const { height: cHeight } = contentSize\n if (status === 'current') return 0\n if (status === 'next') return cHeight * 1.1\n if (status === 'prev') return -cHeight * 1.1\n return 0\n}\n\ninterface FeedContentPaneProps<T extends AnyObject = AnyObject> {\n id: string\n collectionPath: string\n RenderItem: (i: WithId<T>) => JSX.Element\n onItemLoad: (data: WithId<T> | null) => void\n status: PanelStatus\n enterStatus?: PanelStatus | null\n offsetY: Animated.Value\n}\n\nexport const FeedContentPane = <T extends AnyObject = AnyObject>({\n id,\n collectionPath,\n onItemLoad,\n RenderItem,\n status,\n offsetY,\n enterStatus,\n}: FeedContentPaneProps<T>) => {\n const { height, width } = useScreen()\n const contentSize = useMemo(() => ({ height, width }), [height, width])\n const scale = useRef(new Animated.Value(0)).current\n const baseY = useRef(new Animated.Value(getContentY(enterStatus ?? 'next', contentSize))).current\n const y = Animated.add(baseY, offsetY)\n\n const docPath = useMemo(() => `${collectionPath}/${id}`, [collectionPath, id])\n const { data: item } = useDocument<T>(docPath, onItemLoad)\n\n // const init = useRef<{\n // status: PanelStatus\n // contentSize: Size\n // y: number\n // scale: number\n // }>({\n // contentSize,\n // status: enterStatus ?? status,\n // // x: getContentX(fromStatus || status, contentSize),\n // y: getContentY(enterStatus ?? status, contentSize),\n // scale: getContentScale(enterStatus ?? status),\n // })\n\n useEffect(() => {\n const newScale = getContentScale(status)\n const updatedY = getContentY(status, contentSize)\n baseY.setValue(updatedY)\n scale.setValue(newScale)\n // baseY.set(updatedY)\n // scale.set(newScale)\n }, [status, baseY, scale, contentSize])\n\n return (\n // <AnimatePresence>\n <Animated.View\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n transform: [{ translateY: y }, { scale }],\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '100%',\n opacity: scale,\n width: '100%',\n }}>\n {item ? RenderItem(item) : null}\n </Animated.View>\n // </AnimatePresence>\n )\n}\n","import { FetchFeedFunction } from '@chem-po/core'\nimport { UpdatePanelsArgs, useAuth, useToast } from '@chem-po/react'\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nconst DEFAULT_LIMIT = 10\nexport const useMediaFeed = (\n fetch: FetchFeedFunction,\n onUpdatePanels: (items: UpdatePanelsArgs) => void,\n limit: number = DEFAULT_LIMIT,\n authRequired = false,\n) => {\n // first element is prev ids, second element is curr ids, third element is next ids\n const [ids, setIds] = useState<[string[] | null, string[] | null, string[] | null]>([\n null,\n null,\n null,\n ])\n const [idIdx, setIdIdx] = useState<number>(0)\n const user = useAuth(s => s.user)\n\n const [loading, setLoading] = useState(false)\n const [refreshing, setRefreshing] = useState(false)\n const [error, setError] = useState<string | null>(null)\n const [itemLoading, setItemLoading] = useState(false)\n const [direction, setDirection] = useState<'next' | 'prev' | null>(null)\n\n const fetchingId = useRef<string | null>(null)\n\n const idsRef = useRef<{ prev: string | null; curr: string | null; next: string | null }>({\n prev: null,\n curr: null,\n next: null,\n })\n\n const { showInfo, showError } = useToast()\n\n const updateCurr = useCallback(\n (id: string | null) => {\n if (id) {\n if (idsRef.current.prev === id) {\n idsRef.current.prev = null\n }\n if (idsRef.current.next === id) {\n idsRef.current.next = null\n }\n }\n idsRef.current.curr = id\n onUpdatePanels({ ...idsRef.current })\n },\n [onUpdatePanels],\n )\n\n const updateNext = useCallback(\n (id: string | null) => {\n if (id) {\n if (idsRef.current.prev === id) {\n idsRef.current.prev = null\n }\n if (idsRef.current.curr === id) {\n idsRef.current.curr = null\n }\n }\n idsRef.current.next = id\n onUpdatePanels({ ...idsRef.current })\n },\n [onUpdatePanels],\n )\n\n const updatePrev = useCallback(\n (id: string | null) => {\n if (id) {\n if (idsRef.current.curr === id) {\n idsRef.current.curr = null\n }\n if (idsRef.current.next === id) {\n idsRef.current.next = null\n }\n }\n idsRef.current.prev = id\n onUpdatePanels({ ...idsRef.current })\n },\n [onUpdatePanels],\n )\n\n const fetchIds = useCallback(\n async (\n startBefore: string | null,\n startAfter: string | null,\n isPrefetch: boolean,\n ): Promise<string[]> => {\n if (!user && authRequired) return []\n if (!isPrefetch) setLoading(true)\n\n try {\n const data = await fetch({ limit, startAfter, startBefore })\n if (!isPrefetch) {\n const firstId = data.ids[0]\n const secondId = data.ids[1] || null\n updateCurr(firstId)\n updateNext(secondId)\n updatePrev(startAfter)\n if (startAfter) {\n setIds(s => [s[1], data.ids, null])\n } else if (startBefore) {\n setIds(s => [null, data.ids, s[1]])\n } else {\n setIds([null, data.ids, null])\n }\n const newLastId = data.ids[data.ids.length - 1]\n if (newLastId) {\n fetchIds(null, newLastId, true)\n }\n } else if (startAfter) {\n setIds(s => [s[0], s[1], data.ids])\n } else if (startBefore) {\n setIds(s => [data.ids, s[1], s[2]])\n }\n setLoading(false)\n return data.ids || []\n } catch (err: any) {\n setError(err.message)\n // toast({\n // title: 'Error fetching feed',\n // description: err.message,\n // status: 'error',\n // duration: 9000,\n // isClosable: true,\n // })\n showError('Error fetching feed')\n }\n setLoading(false)\n return []\n },\n [fetch, user, authRequired, updateCurr, updateNext, updatePrev, limit, showError],\n )\n\n // handles prefetching of next items\n const getNextId = useCallback(\n async (currIdx: number, isPrefetch: boolean): Promise<{ id: string; idx: number } | null> => {\n const currIds = ids[1] ?? []\n const nextIds = ids[2] ?? []\n const nextIdx = currIdx + 1\n if (nextIdx < currIds.length) {\n return { id: currIds[nextIdx], idx: nextIdx }\n }\n if (nextIds[0]) {\n const newLastId = nextIds[nextIds.length - 1]\n if (!isPrefetch) {\n setIds(s => [s[1], s[2], null])\n fetchIds(null, newLastId, true)\n }\n return { id: nextIds[0], idx: 0 }\n }\n const fetchedNextIds = await fetchIds(null, currIds[currIds.length - 1], isPrefetch)\n const fetchedNextId = fetchedNextIds[0]\n return fetchedNextId ? { id: fetchedNextId, idx: 0 } : null\n },\n [ids, fetchIds],\n )\n\n const getPrevId = useCallback(\n async (currIdx: number, isPrefetch: boolean): Promise<{ id: string; idx: number } | null> => {\n const currIds = ids[1] ?? []\n const prevIds = ids[0] ?? []\n const prevIdx = currIdx - 1\n if (prevIdx >= 0) {\n return { id: currIds[prevIdx], idx: prevIdx }\n }\n if (prevIds[prevIds.length - 1]) {\n const newFirstId = prevIds[0]\n if (!isPrefetch) {\n setIds([null, ids[0], ids[1]])\n fetchIds(newFirstId, null, true)\n }\n return { id: prevIds[prevIds.length - 1], idx: prevIds.length - 1 }\n }\n const fetchedPrevIds = await fetchIds(currIds[0], null, isPrefetch)\n const fetchedPrevId = fetchedPrevIds[fetchedPrevIds.length - 1]\n return fetchedPrevId ? { id: fetchedPrevId, idx: fetchedPrevIds.length - 1 } : null\n },\n [ids, fetchIds],\n )\n\n const goNext = useCallback(async () => {\n if (itemLoading) return\n // case 1: next item ID is fetched\n const newPrev = idsRef.current.curr\n\n setItemLoading(true)\n const nextIdData = await getNextId(idIdx, false)\n setDirection('next')\n if (nextIdData) {\n const { id: nextId, idx: nextIdx } = nextIdData\n fetchingId.current = nextId\n setIdIdx(nextIdx)\n updateCurr(nextId)\n updateNext(null)\n updatePrev(newPrev)\n getNextId(nextIdx, true).then(newNextId => updateNext(newNextId?.id ?? null))\n } else {\n showInfo('No more items')\n }\n setItemLoading(false)\n }, [idIdx, getNextId, updateCurr, updateNext, updatePrev, itemLoading, showInfo])\n\n const goPrev = useCallback(async () => {\n if (itemLoading) return\n // case 1: next item ID is fetched\n const newNext = idsRef.current.curr\n\n setDirection('prev')\n setItemLoading(true)\n const prevIdData = await getPrevId(idIdx, false)\n if (prevIdData) {\n const { id: prevId, idx: prevIdx } = prevIdData\n fetchingId.current = prevId\n setIdIdx(prevIdx)\n updateCurr(prevId)\n updatePrev(null)\n updateNext(newNext)\n getPrevId(prevIdx, true).then(newPrevId => updatePrev(newPrevId?.id ?? null))\n } else {\n showInfo('No more items')\n }\n setItemLoading(false)\n }, [idIdx, getPrevId, updateCurr, updateNext, updatePrev, itemLoading, showInfo])\n\n const refresh = useCallback(async () => {\n setLoading(true)\n setRefreshing(true)\n setIds([null, null, null])\n updateCurr(null)\n updateNext(null)\n updatePrev(null)\n setDirection(null)\n setIdIdx(0)\n await fetchIds(null, null, false)\n setRefreshing(false)\n }, [fetchIds, updateCurr, updateNext, updatePrev])\n\n const [initFetchIds] = useState(() => fetchIds)\n useEffect(() => {\n initFetchIds(null, null, false)\n }, [initFetchIds])\n\n const canGoPrev = useMemo(() => (idIdx > 0 && !!ids[1]?.length) || !!ids[0]?.length, [ids, idIdx])\n const canGoNext = useMemo(\n () => (ids[1] && idIdx < ids[1].length) ?? !!ids[2]?.length,\n [ids, idIdx],\n )\n return useMemo(\n () => ({\n ids,\n goNext,\n goPrev,\n error,\n refresh,\n refreshing,\n loading,\n canGoNext,\n direction,\n canGoPrev,\n itemLoading,\n }),\n [\n ids,\n goNext,\n goPrev,\n loading,\n error,\n itemLoading,\n canGoNext,\n canGoPrev,\n refresh,\n refreshing,\n direction,\n ],\n )\n}\n","import { useColorModeValue } from '@chem-po/react'\nimport { useEffect, useRef } from 'react'\nimport {\n ActivityIndicator,\n ActivityIndicatorProps,\n Animated,\n StyleProp,\n StyleSheet,\n ViewStyle,\n} from 'react-native'\n\nexport const CircularProgress = ({\n color,\n trackColor,\n animating,\n visible = true,\n viewStyle,\n ...props\n}: ActivityIndicatorProps & {\n trackColor?: string\n viewStyle?: StyleProp<ViewStyle>\n visible?: boolean\n}) => {\n const defaultTrackColor = useColorModeValue('#959595', '#575757')\n const opacity = useRef(new Animated.Value(visible ? 1 : 0)).current\n\n useEffect(() => {\n Animated.timing(opacity, {\n toValue: visible ? 1 : 0,\n duration: 300,\n useNativeDriver: true,\n }).start()\n }, [visible, opacity])\n return (\n <Animated.View style={[styles.container, { opacity }, viewStyle]}>\n <ActivityIndicator\n color={trackColor ?? defaultTrackColor} // Lighter version of your color\n style={StyleSheet.absoluteFill}\n animating={false}\n {...props}\n />\n {/* Spinning circle */}\n <ActivityIndicator animating={animating} color={color ?? '#575757'} {...props} />\n </Animated.View>\n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n justifyContent: 'center',\n },\n})\n","import { useScreen } from '@chem-po/react'\nimport { Ionicons } from '@expo/vector-icons'\nimport { useCallback, useMemo, useState } from 'react'\nimport { Image, Modal, StyleSheet, TouchableOpacity, View } from 'react-native'\nimport { LoadingLogo } from '../loading/Loading'\n\nexport const ImageViewOverlay = ({ src, onClose }: { src: string; onClose: () => void }) => {\n const [loading, setLoading] = useState(true)\n const screenWidth = useScreen(s => s.width)\n const screenHeight = useScreen(s => s.height)\n const [imageSize, setImageSize] = useState({ width: screenWidth / 2, height: screenHeight / 2 })\n\n const { height, width } = useMemo(() => {\n if (loading) return imageSize\n const ratio = imageSize.width / imageSize.height\n let h = Math.min(imageSize.height, screenHeight * 0.9)\n let w = h * ratio\n if (w > screenWidth * 0.9) {\n w = Math.min(imageSize.width, screenWidth * 0.9)\n h = w / ratio\n }\n return { height: h, width: w }\n }, [screenHeight, screenWidth, imageSize, loading])\n\n const onLoadStart = useCallback(() => setLoading(true), [])\n const onLoad = useCallback((e: any) => {\n const { width: naturalWidth, height: naturalHeight } = e.nativeEvent.source\n setImageSize({ width: naturalWidth, height: naturalHeight })\n setLoading(false)\n }, [])\n\n return (\n <Modal visible={true} transparent animationType=\"fade\" onRequestClose={onClose}>\n <View style={styles.modalOverlay}>\n <View style={styles.contentContainer}>\n <View\n style={[\n styles.imageContainer,\n {\n width,\n height,\n opacity: loading ? 0 : 1,\n },\n ]}>\n <Image\n source={{ uri: src }}\n style={styles.image}\n onLoadStart={onLoadStart}\n onLoad={onLoad}\n resizeMode=\"contain\"\n />\n </View>\n\n <TouchableOpacity style={styles.closeButton} onPress={onClose}>\n <Ionicons name=\"close\" size={24} color=\"white\" />\n </TouchableOpacity>\n\n {loading && (\n <View style={styles.loadingContainer}>\n <LoadingLogo isLoading={loading} size={70} />\n </View>\n )}\n </View>\n </View>\n </Modal>\n )\n}\n\nconst styles = StyleSheet.create({\n modalOverlay: {\n flex: 1,\n backgroundColor: 'rgba(0, 0, 0, 0.7)',\n },\n contentContainer: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n padding: 16,\n },\n imageContainer: {\n overflow: 'hidden',\n borderRadius: 4,\n },\n image: {\n width: '100%',\n height: '100%',\n },\n closeButton: {\n position: 'absolute',\n top: 16,\n right: 16,\n width: 40,\n height: 40,\n borderRadius: 20,\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n justifyContent: 'center',\n alignItems: 'center',\n },\n loadingContainer: {\n ...StyleSheet.absoluteFillObject,\n justifyContent: 'center',\n alignItems: 'center',\n },\n})\n","import { useMounted } from '@chem-po/react'\nimport { Ionicons } from '@expo/vector-icons'\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { DimensionValue, Image, StyleSheet, TouchableOpacity, View, ViewStyle } from 'react-native'\nimport { ImageViewOverlay } from '../overlay/ImageViewOverlay'\nimport { LoadingLogo } from './Loading'\n\nexport interface LoadingImageProps {\n src?: string | null\n loadingOverride?: boolean\n onLoad?: (e: any) => void\n noFullView?: boolean\n buttonFullView?: boolean\n style?: ViewStyle\n width?: DimensionValue\n height?: DimensionValue\n}\n\nconst emptyPng =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkAAIAAAoAAv/lxKUAAAAASUVORK5CYII='\n\nexport const LoadingImage = ({\n src,\n loadingOverride,\n onLoad,\n width,\n height,\n noFullView,\n buttonFullView,\n style,\n}: LoadingImageProps) => {\n const [imageLoading, setImageLoading] = useState(!!src)\n const imageRef = useRef<Image>(null)\n\n const [viewing, setViewing] = useState(false)\n const mounted = useMounted(100)\n\n const handleImageLoad = useCallback(\n (e: any) => {\n if (onLoad) onLoad(e)\n },\n [onLoad],\n )\n\n const [prevSrc, setPrevSrc] = useState(src)\n useEffect(() => {\n if (src) setPrevSrc(src)\n }, [src, prevSrc])\n\n const loading = useMemo(() => imageLoading || !!loadingOverride, [imageLoading, loadingOverride])\n\n const ImageComponent = (\n <Image\n ref={imageRef}\n source={{ uri: src ?? emptyPng }}\n style={[\n styles.image,\n {\n opacity: src && !loading ? 1 : 0,\n },\n ]}\n // onLoadStart={() => setImageLoading(true)}\n onLoadEnd={() => setImageLoading(false)}\n onLoad={handleImageLoad}\n resizeMode={src ? 'cover' : 'contain'}\n />\n )\n\n return (\n <View\n style={[\n styles.container,\n {\n width: width ?? '100%',\n height: height ?? '100%',\n opacity: mounted ? 1 : 0,\n },\n style,\n ]}>\n {noFullView || buttonFullView ? (\n ImageComponent\n ) : (\n <TouchableOpacity\n activeOpacity={0.9}\n onPress={() => setViewing(true)}\n style={styles.imageContainer}>\n {ImageComponent}\n </TouchableOpacity>\n )}\n {buttonFullView && (\n <TouchableOpacity\n style={styles.fullViewButton}\n onPress={() => setViewing(true)}\n activeOpacity={0.7}>\n <Ionicons name=\"expand\" size={20} color=\"white\" style={styles.fullViewIcon} />\n </TouchableOpacity>\n )}\n <View\n style={[\n styles.loadingContainer,\n {\n opacity: loading ? 1 : 0,\n },\n ]}>\n <LoadingLogo isLoading={loading} size={10} />\n </View>\n {viewing && <ImageViewOverlay src={src ?? emptyPng} onClose={() => setViewing(false)} />}\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n overflow: 'hidden',\n position: 'relative',\n },\n imageContainer: {\n width: '100%',\n height: '100%',\n },\n image: {\n width: '100%',\n height: '100%',\n },\n loadingContainer: {\n ...StyleSheet.absoluteFillObject,\n justifyContent: 'center',\n alignItems: 'center',\n },\n fullViewButton: {\n position: 'absolute',\n top: 8,\n right: 8,\n width: 28,\n height: 28,\n borderRadius: 14,\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n justifyContent: 'center',\n alignItems: 'center',\n },\n fullViewIcon: {\n opacity: 0.8,\n },\n})\n","import { useCallback, useState } from 'react'\nimport { Animated, StyleSheet, Switch, Text, View } from 'react-native'\nimport { Loading } from './Loading'\n\nexport const LoadingSwitch = ({\n value,\n label,\n onChange,\n}: {\n value: boolean\n label: string\n onChange: (updated: boolean) => Promise<void>\n}) => {\n const [isLoading, setIsLoading] = useState(false)\n const opacity = useState(new Animated.Value(1))[0]\n\n const reportComplete = useCallback(\n (fetchedOn: number) => {\n const buffer = Math.max(0, 1000 - (Date.now() - fetchedOn))\n setTimeout(() => {\n setIsLoading(false)\n Animated.timing(opacity, {\n toValue: 1,\n duration: 300,\n useNativeDriver: true,\n }).start()\n }, buffer)\n },\n [opacity],\n )\n\n const handleChange = (newValue: boolean) => {\n setIsLoading(true)\n Animated.timing(opacity, {\n toValue: 0,\n duration: 300,\n useNativeDriver: true,\n }).start()\n\n const fetchedOn = Date.now()\n onChange(newValue).catch(err => {\n console.error(err)\n // Note: You might want to implement a toast notification system for React Native\n // For now, we'll just log the error\n })\n\n reportComplete(fetchedOn)\n }\n\n return (\n <View style={styles.container}>\n <Animated.View\n style={[\n styles.content,\n {\n opacity,\n },\n ]}>\n <Text style={styles.label}>{label}</Text>\n <Switch value={value} onValueChange={handleChange} />\n </Animated.View>\n {isLoading && (\n <View style={styles.loadingContainer}>\n <Loading />\n </View>\n )}\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n paddingVertical: 4,\n paddingHorizontal: 12,\n backgroundColor: '#2D3748', // gray.700 equivalent\n borderRadius: 12,\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 0,\n },\n shadowOpacity: 0.25,\n shadowRadius: 4,\n elevation: 5,\n position: 'relative',\n flexDirection: 'row',\n alignItems: 'center',\n },\n content: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n },\n label: {\n fontSize: 20,\n height: 24,\n color: '#FFFFFF',\n },\n loadingContainer: {\n position: 'absolute',\n top: '-10%',\n left: '-10%',\n width: '120%',\n height: '120%',\n borderRadius: 8,\n padding: 4,\n justifyContent: 'center',\n alignItems: 'center',\n },\n})\n","import { AnyObject, WithId } from '@chem-po/core'\nimport { GetBackgroundUrl, GetBackgroundValue, useObjectUrl } from '@chem-po/react'\nimport React, { useEffect, useMemo, useRef, useState } from 'react'\nimport { ImageBackground, StyleSheet, View, ViewProps } from 'react-native'\nimport { fill } from '../../styles/fill'\nimport { Center } from '../box/Center'\nimport { LoadingLogo } from '../loading'\n\nconst emptyPng =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkAAIAAAoAAv/lxKUAAAAASUVORK5CYII='\nexport const backgroundStyle = StyleSheet.create({\n imageBackground: {\n flex: 1,\n transform: [{ scale: 1.075 }],\n },\n})\n\ninterface FillBackgroundProps extends ViewProps {\n background: string | null\n opacity?: number\n}\n\nconst FillBackground: React.FC<FillBackgroundProps> = ({\n background,\n opacity = 0.7,\n style,\n ...props\n}) => (\n <View style={[fill.absolute, style]} {...props}>\n <ImageBackground\n source={{ uri: background ?? emptyPng }}\n style={[backgroundStyle.imageBackground, { opacity }]}\n resizeMode=\"cover\"></ImageBackground>\n </View>\n)\n\ninterface FileValueBackgroundProps<T extends AnyObject = AnyObject> {\n getBackgroundValue: GetBackgroundValue<T>\n item: WithId<T> | null\n filter?: string\n}\nconst FileValueBackground = <T extends AnyObject = AnyObject>({\n getBackgroundValue,\n item,\n}: FileValueBackgroundProps<T>) => {\n const background = useMemo(\n () => (item ? getBackgroundValue(item) : null),\n [getBackgroundValue, item],\n )\n const { loading, url } = useObjectUrl(background)\n const usedIndex = useRef(0)\n const [index, setIndex] = useState(0)\n const [url1, setUrl1] = useState<string | null>(null)\n const [url2, setUrl2] = useState<string | null>(null)\n\n useEffect(() => {\n const usedIdx = usedIndex.current\n if (usedIdx === 0) {\n setUrl1(url)\n usedIndex.current = 1\n setIndex(0)\n } else {\n setUrl2(url)\n usedIndex.current = 0\n setIndex(1)\n }\n }, [url])\n\n return (\n <Center style={fill.absolute}>\n <FillBackground opacity={index === 0 ? 1 : 0} background={url1} />\n <FillBackground opacity={index === 1 ? 1 : 0} background={url2} />\n <LoadingLogo isLoading={loading} />\n </Center>\n )\n}\n\nconst UrlBackground = <T extends AnyObject = AnyObject>({\n getBackgroundUrl,\n item,\n}: {\n getBackgroundUrl: GetBackgroundUrl<T>\n item: T | null\n}) => {\n const background = useMemo(() => (item ? getBackgroundUrl(item) : null), [getBackgroundUrl, item])\n const usedIndex = useRef(0)\n const [index, setIndex] = useState(0)\n const [url1, setUrl1] = useState<string | null>(null)\n const [url2, setUrl2] = useState<string | null>(null)\n\n useEffect(() => {\n if (!background) return\n if (usedIndex.current === 0) {\n setUrl1(background)\n usedIndex.current = 1\n setIndex(0)\n } else {\n setUrl2(background)\n usedIndex.current = 0\n setIndex(1)\n }\n }, [background])\n\n return (\n <Center style={fill.absolute}>\n <FillBackground\n //filter={filter}\n opacity={index === 0 ? 1 : 0}\n background={url1}\n />\n <FillBackground\n //filter={filter}\n opacity={index === 1 ? 1 : 0}\n background={url2}\n />\n </Center>\n )\n}\n\ninterface MediaFeedBackgroundProps<T extends AnyObject = AnyObject> {\n getBackgroundValue?: GetBackgroundValue<T>\n getBackgroundUrl?: GetBackgroundUrl<T>\n filter?: string\n item: WithId<T> | null\n}\n\nexport const MediaFeedBackground = <T extends AnyObject = AnyObject>({\n getBackgroundValue,\n getBackgroundUrl,\n ...props\n}: MediaFeedBackgroundProps<T>) => {\n if (getBackgroundValue)\n return <FileValueBackground getBackgroundValue={getBackgroundValue} {...props} />\n if (getBackgroundUrl) return <UrlBackground getBackgroundUrl={getBackgroundUrl} {...props} />\n return null\n}\n","import Icon from '@expo/vector-icons/MaterialCommunityIcons' // or your preferred icon set\nimport { useEffect, useRef } from 'react'\nimport { Animated, StyleSheet, View } from 'react-native'\nimport { DropShadow } from '../box/DropShadow'\nimport { CircularProgress } from '../loading'\nimport { REFRESH_THRESHOLD, SWIPE_THRESHOLD } from './constants'\n\nconst WINDOW = REFRESH_THRESHOLD - SWIPE_THRESHOLD\n\nexport const MediaFeedRefresh = ({\n offsetY,\n refreshing,\n canRefresh,\n}: {\n offsetY: Animated.Value\n refreshing: boolean\n canRefresh: boolean\n}) => {\n // Create animated values\n const baseY = useRef(new Animated.Value(0)).current\n const isIn = useRef(new Animated.Value(0)).current\n\n const dist = Animated.subtract(offsetY, SWIPE_THRESHOLD)\n const baseProgress = Animated.divide(dist, WINDOW)\n const progress = Animated.diffClamp(baseProgress, 0, 1)\n\n // Handle refreshing state\n useEffect(() => {\n Animated.spring(baseY, {\n toValue: refreshing ? 50 : 0,\n useNativeDriver: true,\n }).start()\n }, [refreshing, baseY])\n\n // Handle canRefresh state\n useEffect(() => {\n Animated.spring(isIn, {\n toValue: canRefresh ? 1 : 0,\n useNativeDriver: true,\n }).start()\n }, [canRefresh, isIn])\n\n // Create complex animations\n const progressRoot = progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, Math.sqrt(1) * 20],\n })\n\n const yBase = Animated.add(baseY, progressRoot)\n const yConstrained = yBase.interpolate({\n inputRange: [0, 20],\n outputRange: [0, 20],\n extrapolate: 'clamp',\n })\n\n const y = Animated.multiply(isIn, yConstrained)\n\n const scale = y.interpolate({\n inputRange: [0, 30],\n outputRange: [0, 1],\n extrapolate: 'clamp',\n })\n const finalScale = Animated.multiply(isIn, scale)\n\n const rotate = progress.interpolate({\n inputRange: [0, 1],\n outputRange: ['0deg', '180deg'],\n })\n\n return (\n <Animated.View\n style={[\n styles.container,\n {\n opacity: finalScale,\n transform: [{ translateY: y }, { scale: finalScale }, { rotate }],\n },\n ]}>\n <View style={styles.centerContainer}>\n <DropShadow\n style={[\n {\n opacity: refreshing ? 0 : 1,\n },\n ]}>\n <Icon name=\"refresh\" size={32} color=\"white\" />\n </DropShadow>\n\n <DropShadow\n style={{\n opacity: refreshing ? 1 : 0,\n }}>\n <CircularProgress animating size=\"large\" color=\"white\" />\n </DropShadow>\n </View>\n </Animated.View>\n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n pointerEvents: 'none',\n },\n centerContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n },\n})\n","import { AnyObject, WithId } from '@chem-po/core'\nimport {\n MediaBackgroundRef,\n MediaFeedProps,\n PanelData,\n UpdatePanelsArgs,\n useScreen,\n useTheme,\n} from '@chem-po/react'\nimport React, { Dispatch, PropsWithChildren, useCallback, useMemo, useRef, useState } from 'react'\nimport { Animated, StyleSheet, View, ViewStyle } from 'react-native'\nimport {\n Gesture,\n GestureDetector,\n GestureStateChangeEvent,\n GestureUpdateEvent,\n PanGestureHandlerEventPayload,\n} from 'react-native-gesture-handler'\nimport { fill } from '../../styles/fill'\nimport { Center } from '../box/Center'\nimport { LoadingOverlay } from '../loading/Loading'\nimport { REFRESH_THRESHOLD, SWIPE_THRESHOLD } from './constants'\nimport { MediaFeedProvider } from './context'\nimport { FeedContentPane } from './FeedContentPane'\nimport { useMediaFeed } from './hooks'\nimport { MediaFeedBackground } from './MediaFeedBackground'\nimport { MediaFeedRefresh } from './MediaFeedRefresh'\n\nconst useUpdatePanels = (setItems: Dispatch<React.SetStateAction<Array<PanelData>>>) =>\n useCallback(\n (data: UpdatePanelsArgs) => {\n const updated: PanelData[] = []\n if (data.prev) updated.push({ status: 'prev', id: data.prev })\n if (data.curr) {\n updated.push({\n status: 'current',\n id: data.curr,\n })\n }\n if (data.next) updated.push({ status: 'next', id: data.next })\n setItems(updated)\n },\n [setItems],\n )\n\nexport const MediaFeed = <T extends AnyObject = AnyObject>({\n fetch,\n collection: collectionPath,\n RenderItem,\n authRequired,\n getBackgroundUrl,\n getBackgroundValue,\n limit,\n defaultBackground,\n swipeDisabled,\n children,\n}: PropsWithChildren<MediaFeedProps<T>>) => {\n const { width, height } = useScreen()\n const { theme } = useTheme()\n\n const contentRef = useRef<View>(null)\n const containerRef = useRef<View>(null)\n // const panels = useRef<Array<FeedContentPaneRef>>([])\n const [direction, setDirection] = useState<'next' | 'prev' | null>(null)\n const [panels, setPanels] = useState<Array<PanelData>>([])\n\n const offsetY = useRef(new Animated.Value(0)).current\n const onNewData = useUpdatePanels(setPanels)\n\n const backgroundRef = useRef<MediaBackgroundRef<T>>(null)\n\n const { goNext, goPrev, loading, canGoNext, canGoPrev, refresh, refreshing } = useMediaFeed(\n fetch,\n onNewData,\n limit,\n authRequired,\n )\n\n const pointerDown = useRef(false)\n const dragStart = useRef({ x: 0, y: 0 })\n\n const onDragStart = useCallback(\n (e: GestureStateChangeEvent<PanGestureHandlerEventPayload>) => {\n if (swipeDisabled) return\n pointerDown.current = true\n dragStart.current = { x: e.x, y: e.y }\n },\n [swipeDisabled],\n )\n\n const onDragEnd = useCallback(\n (e: GestureStateChangeEvent<PanGestureHandlerEventPayload>) => {\n if (!pointerDown.current) return\n\n const maxY = canGoPrev ? SWIPE_THRESHOLD : REFRESH_THRESHOLD\n const minY = canGoNext ? -SWIPE_THRESHOLD : -REFRESH_THRESHOLD\n const oY = Math.max(minY, Math.min(maxY, e.y - dragStart.current.y))\n\n if (canGoNext && oY < -(SWIPE_THRESHOLD - 10)) {\n setDirection('next')\n goNext()\n } else if (canGoPrev && oY > SWIPE_THRESHOLD - 10) {\n setDirection('prev')\n goPrev()\n } else if (oY > REFRESH_THRESHOLD - 10 || oY < -(REFRESH_THRESHOLD - 10)) {\n refresh()\n if (backgroundRef.current) backgroundRef.current.onNewData(null)\n }\n\n offsetY.setValue(0)\n pointerDown.current = false\n },\n [offsetY, goNext, goPrev, canGoNext, canGoPrev, refresh],\n )\n\n const onDragMove = useCallback(\n (e: GestureUpdateEvent<PanGestureHandlerEventPayload>) => {\n if (!pointerDown.current) return\n\n const oX = Math.max(-10, Math.min(10, e.x - dragStart.current.x))\n const maxY = canGoPrev ? SWIPE_THRESHOLD : REFRESH_THRESHOLD\n const minY = canGoNext ? -SWIPE_THRESHOLD : -REFRESH_THRESHOLD\n const oY = Math.max(minY, Math.min(maxY, e.y - dragStart.current.y))\n\n const dist = Math.sqrt(oX ** 2 + oY ** 2)\n if (dist > 10 && contentRef.current) {\n // contentRef.current.style.setProperty('pointer-events', 'none')\n }\n offsetY.setValue(oY)\n },\n [offsetY, canGoNext, canGoPrev],\n )\n\n const panGesture = Gesture.Pan().onStart(onDragStart).onUpdate(onDragMove).onEnd(onDragEnd)\n\n const containerStyle = useMemo<ViewStyle>(\n () => ({\n height,\n width,\n overflow: 'hidden',\n pointerEvents: swipeDisabled ? 'none' : 'auto',\n }),\n [width, height, swipeDisabled],\n )\n const [curr, setCurr] = useState<WithId<T> | null>(null)\n\n const handleItemLoad = useCallback(\n (data: WithId<T> | null) => {\n const isCurr = panels.find(p => p.status === 'current')?.id === data?._id\n if (isCurr) setCurr(data)\n },\n [panels],\n )\n\n return (\n <MediaFeedProvider curr={curr}>\n <GestureDetector gesture={panGesture}>\n <Center\n style={[\n styles.container,\n { backgroundColor: defaultBackground ?? theme.colors.background[100] },\n ]}>\n <MediaFeedBackground\n item={curr}\n getBackgroundValue={getBackgroundValue}\n getBackgroundUrl={getBackgroundUrl}\n />\n <View style={containerStyle} ref={containerRef}>\n <Center style={fill.relative} ref={contentRef}>\n {panels.map(panel => (\n <FeedContentPane<T>\n key={panel.id}\n id={panel.id}\n collectionPath={collectionPath}\n RenderItem={RenderItem}\n onItemLoad={handleItemLoad}\n status={panel.status}\n enterStatus={direction}\n offsetY={offsetY}\n />\n ))}\n </Center>\n </View>\n <MediaFeedRefresh canRefresh={!canGoPrev} refreshing={refreshing} offsetY={offsetY} />\n {/* {onSwipeUp ? <MediaFeedSwipeUp offsetY={offsetY} /> : null} */}\n <LoadingOverlay inFeed isLoading={loading} />\n {children ? <Center style={[fill.absolute, { zIndex: 3 }]}>{children}</Center> : null}\n </Center>\n </GestureDetector>\n </MediaFeedProvider>\n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n ...fill.relative,\n overflow: 'hidden',\n },\n})\n","import { PropsWithChildren, useMemo } from 'react'\nimport { useWatch } from 'react-hook-form'\nimport { Animated } from 'react-native'\n\nexport const Condition = ({\n path,\n condition,\n children,\n}: PropsWithChildren<{\n path: string\n condition: (values: any) => boolean\n}>) => {\n const value = useWatch({ exact: true, name: path })\n const isVisible = useMemo(() => condition(value), [value, condition])\n\n if (!isVisible) return null\n\n return (\n <Animated.View\n style={{\n paddingVertical: 3,\n opacity: 1,\n }}>\n {children}\n </Animated.View>\n )\n}\n","import { PropsWithChildren, useEffect, useMemo, useRef } from 'react'\nimport { Animated, StyleProp, TextStyle } from 'react-native'\n\nexport interface AnimatedTextProps {\n show: boolean\n color: string\n height: number\n marginBottom: number\n style?: StyleProp<TextStyle>\n}\nconst useAnimatedText = (show: boolean, color: string, height: number, marginBottom: number) => {\n const placeholderAnim = useRef(new Animated.Value(0)).current\n\n useEffect(() => {\n Animated.timing(placeholderAnim, {\n toValue: show ? 1 : 0,\n duration: 200,\n useNativeDriver: false,\n }).start()\n }, [show, placeholderAnim])\n\n return useMemo(\n () => ({\n opacity: placeholderAnim,\n color,\n transform: [\n {\n scale: placeholderAnim.interpolate({\n inputRange: [0, 1],\n outputRange: [0.8, 1],\n }),\n },\n ],\n height: placeholderAnim.interpolate({\n inputRange: [0, 1],\n outputRange: [0, height],\n }),\n marginBottom: placeholderAnim.interpolate({\n inputRange: [0, 1],\n outputRange: [0, marginBottom],\n }),\n }),\n [color, height, marginBottom, placeholderAnim],\n )\n}\n\nexport const AnimatedText = ({\n show,\n color: colorProp,\n height: heightProp,\n marginBottom: marginBottomProp,\n style,\n children,\n}: PropsWithChildren<AnimatedTextProps>) => {\n const { opacity, color, transform, height, marginBottom } = useAnimatedText(\n show,\n colorProp,\n heightProp,\n marginBottomProp,\n )\n return (\n <Animated.Text style={[style, { opacity, color, transform, height, marginBottom }]}>\n {children}\n </Animated.Text>\n )\n}\n","import { InputRef } from '@chem-po/core'\nimport { BooleanField } from '@chem-po/react'\nimport { ForwardedRef, forwardRef, useImperativeHandle } from 'react'\nimport { Switch, Text, View } from 'react-native'\nimport { FieldProps } from '../../types'\n\nconst BaseCheckboxComponent = (\n { field, input: { onChange, value, ...input } }: FieldProps<BooleanField>,\n ref: ForwardedRef<InputRef>,\n) => {\n const { placeholder } = field\n useImperativeHandle(ref, () => ({\n focus: () => {},\n blur: () => {},\n }))\n return (\n <View style={{ flexDirection: 'row', alignItems: 'center' }}>\n <Switch value={value} onValueChange={onChange} {...input} />\n <Text style={{ marginLeft: 8, fontWeight: '600', opacity: value ? 0.9 : 0.6 }}>\n {placeholder}\n </Text>\n </View>\n )\n}\n\nconst CheckboxBooleanComponent = forwardRef<InputRef, FieldProps<BooleanField>>(\n BaseCheckboxComponent,\n)\n\nconst BaseSwitchComponent = (\n { field, input: { onChange, value, ...input } }: FieldProps<BooleanField>,\n ref: ForwardedRef<InputRef>,\n) => {\n const { placeholder } = field\n useImperativeHandle(ref, () => ({\n focus: () => {},\n blur: () => {},\n }))\n return (\n <View style={{ flexDirection: 'row', alignItems: 'center' }}>\n <Switch value={value} onValueChange={onChange} {...input} />\n <Text style={{ marginLeft: 8, fontWeight: '600', opacity: value ? 0.9 : 0.6 }}>\n {placeholder}\n </Text>\n </View>\n )\n}\n\nconst SwitchBooleanComponent = forwardRef<InputRef, FieldProps<BooleanField>>(BaseSwitchComponent)\n\nconst BaseBooleanComponent = (props: FieldProps<BooleanField>, ref: ForwardedRef<InputRef>) => {\n if (props.field.type === 'switch') return <SwitchBooleanComponent ref={ref} {...props} />\n return <CheckboxBooleanComponent ref={ref} {...props} />\n}\n\nexport const BooleanComponent = forwardRef<InputRef, FieldProps<BooleanField>>(BaseBooleanComponent)\n","import { Gradient } from '@chem-po/core'\nimport Slider from '@react-native-community/slider'\nimport { StyleSheet, Text, View } from 'react-native'\n\ntype SliderProps = React.ComponentProps<typeof Slider>\n\nexport const InputSlider = ({\n // label,\n gradient,\n value,\n minimumValue,\n maximumValue,\n ...props\n}: {\n label: string\n gradient?: Gradient\n} & SliderProps) => {\n return (\n <View style={[styles.container, { opacity: value !== undefined ? 1 : 0.5 }]}>\n <View style={styles.sliderContainer}>\n {minimumValue !== undefined ? (\n <Text style={[styles.label, gradient ? styles.gradientText : null]}>\n {typeof minimumValue === 'number'\n ? minimumValue.toFixed((props?.step ?? 1) < 1 ? 2 : 0)\n : ''}\n </Text>\n ) : null}\n\n <Slider\n style={styles.slider}\n minimumValue={minimumValue}\n maximumValue={maximumValue}\n step={1}\n {...props}\n />\n\n {maximumValue !== undefined ? (\n <Text style={[styles.label, gradient ? styles.gradientText : null]}>\n {typeof maximumValue === 'number'\n ? maximumValue.toFixed((props?.step ?? 1) < 1 ? 2 : 0)\n : ''}\n </Text>\n ) : null}\n </View>\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n paddingVertical: 8,\n },\n sliderContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n width: '100%',\n },\n slider: {\n flex: 1,\n height: 40,\n },\n label: {\n fontSize: 14,\n marginHorizontal: 8,\n },\n gradientText: {\n color: '#007AFF', // iOS blue color, you can customize this\n },\n})\n","import { InputRef } from '@chem-po/core'\nimport { ForwardedRef, useImperativeHandle, useRef } from 'react'\nimport { TextInput } from 'react-native'\n\nexport const useInputImperativeHandle = (ref: ForwardedRef<InputRef>) => {\n const inputRef = useRef<TextInput>(null)\n\n useImperativeHandle<InputRef, InputRef>(\n ref,\n () => ({\n focus: () => {\n inputRef.current?.focus()\n },\n blur: () => {\n inputRef.current?.blur()\n },\n }),\n [],\n )\n\n return inputRef\n}\n","import { colorValueToHex, Gradient, gradients, InputRef } from '@chem-po/core'\nimport { ColorField } from '@chem-po/react'\nimport { forwardRef, useCallback, useMemo } from 'react'\nimport { StyleSheet, Text, View } from 'react-native'\nimport { FieldProps } from '../../types'\nimport { InputSlider } from '../InputSlider'\nimport { useInputImperativeHandle } from '../hooks/useInputImperativeHandle'\n\nconst ColorComponentSlider = ({\n label,\n gradient,\n value,\n ...props\n}: {\n label: string\n gradient: Gradient\n} & React.ComponentProps<typeof InputSlider>) => (\n <InputSlider\n label={label}\n value={value}\n minimumValue={0}\n maximumValue={255}\n step={1}\n gradient={gradient}\n {...props}\n />\n)\n\nexport const ColorComponent = forwardRef<InputRef, FieldProps<ColorField>>(\n ({ input: { onChange, value }, field, meta }, ref) => {\n const { withAlpha, defaultValue } = field\n const { active } = meta || {}\n\n useInputImperativeHandle(ref)\n\n const handleChange = useCallback(\n (key: 'r' | 'g' | 'b' | 'a', val: number) => {\n if (withAlpha) {\n onChange({\n r: 0,\n g: 0,\n b: 0,\n a: 1,\n ...value,\n [key]: val,\n })\n } else {\n onChange({\n r: 0,\n g: 0,\n b: 0,\n ...value,\n [key]: val,\n })\n }\n },\n [value, onChange, withAlpha],\n )\n\n const withDefault = useMemo(() => ({ ...defaultValue, ...value }), [defaultValue, value])\n const asHex = useMemo(() => colorValueToHex(!!withAlpha, withDefault), [withDefault, withAlpha])\n\n return (\n <View style={styles.container}>\n <View style={[styles.colorPreview, { backgroundColor: asHex }]}>\n <Text style={styles.hexText}>{asHex}</Text>\n </View>\n <View style={[styles.slidersContainer, active && styles.activeContainer]}>\n <ColorComponentSlider\n label=\"R\"\n gradient={gradients.red}\n value={value?.r}\n onValueChange={updatedRed => handleChange('r', updatedRed)}\n />\n <ColorComponentSlider\n label=\"G\"\n gradient={gradients.green}\n value={value?.g}\n onValueChange={updatedGreen => handleChange('g', updatedGreen)}\n />\n <ColorComponentSlider\n label=\"B\"\n gradient={gradients.blue}\n value={value?.b}\n onValueChange={updatedBlue => handleChange('b', updatedBlue)}\n />\n {withAlpha ? (\n <ColorComponentSlider\n label=\"A\"\n gradient={gradients.midnight}\n value={value?.a}\n onValueChange={updatedAlpha => handleChange('a', updatedAlpha)}\n />\n ) : null}\n </View>\n </View>\n )\n },\n)\n\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n },\n colorPreview: {\n width: 80,\n height: 80,\n borderRadius: 40,\n justifyContent: 'center',\n alignItems: 'center',\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 2,\n },\n shadowOpacity: 0.25,\n shadowRadius: 3.84,\n elevation: 5,\n },\n hexText: {\n fontSize: 16,\n color: '#fff',\n textShadowColor: 'rgba(0, 0, 0, 0.75)',\n textShadowOffset: { width: 0, height: 1 },\n textShadowRadius: 2,\n },\n slidersContainer: {\n flex: 1,\n padding: 8,\n borderRadius: 6,\n },\n activeContainer: {\n shadowColor: '#fff',\n shadowOffset: {\n width: 0,\n height: 0,\n },\n shadowOpacity: 0.5,\n shadowRadius: 5,\n elevation: 5,\n },\n})\n","import { getDateString, InputRef } from '@chem-po/core'\nimport { DateField, useIconColor } from '@chem-po/react'\nimport { Ionicons } from '@expo/vector-icons'\nimport { forwardRef, useImperativeHandle, useMemo } from 'react'\nimport { StyleSheet, Text, TouchableOpacity, View } from 'react-native'\nimport { Portal } from 'react-native-paper'\nimport { DatePickerModal } from 'react-native-paper-dates'\nimport { FieldProps } from '../../types'\nimport { DateInputClearButton } from '../common/InputClearButton'\nimport { useInputColor } from '../hooks/useInputColor'\n\n// const parseDate = (date?: Date) =>\n// date\n// ? `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(\n// date.getDate(),\n// ).padStart(2, '0')}`\n// : undefined\n\nexport const DateInput = forwardRef<InputRef, FieldProps<DateField>>(\n (\n {\n input: { onChange, value, onFocus, onBlur },\n field: { placeholder, minDate, maxDate, optional },\n meta: { active },\n },\n ref,\n ) => {\n const date = useMemo(() => (value ? new Date(`${value}T00:00:00.000`) : undefined), [value])\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n onFocus()\n },\n blur: () => {\n onBlur()\n },\n }))\n\n const showDialog = () => {\n onFocus()\n }\n\n const iconColor = useIconColor()\n const inputColor = useInputColor(value)\n\n const minDateObj = minDate === 'now' ? new Date() : minDate ? new Date(minDate) : undefined\n const maxDateObj = maxDate === 'now' ? new Date() : maxDate ? new Date(maxDate) : undefined\n\n return (\n <View style={styles.container}>\n <TouchableOpacity style={styles.button} onPress={showDialog}>\n <Text style={[styles.text, { color: inputColor }]}>\n {value ? getDateString(value, 'short') : placeholder}\n </Text>\n <Ionicons name=\"calendar\" size={20} color={iconColor} style={styles.icon} />\n {optional && value ? (\n <DateInputClearButton onPress={() => onChange(null)} isActive />\n ) : null}\n </TouchableOpacity>\n <Portal>\n <DatePickerModal\n locale=\"en\"\n label=\"Date\"\n date={date}\n startYear={minDateObj?.getFullYear()}\n endYear={maxDateObj?.getFullYear()}\n mode=\"single\"\n onConfirm={d => {\n onChange(d?.date?.toISOString()?.split('T')[0] ?? null)\n onBlur()\n }}\n onDismiss={onBlur}\n visible={active}\n />\n </Portal>\n </View>\n )\n },\n)\n\nDateInput.displayName = 'DateInput'\n\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n },\n button: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n height: 40,\n paddingHorizontal: 12,\n paddingVertical: 8,\n },\n text: {\n fontSize: 16,\n flex: 1,\n },\n icon: {\n marginRight: 10,\n },\n})\n","import { useBorderColor, useIconColor } from '@chem-po/react'\nimport { Ionicons } from '@expo/vector-icons'\nimport { StyleSheet, TouchableOpacity } from 'react-native'\n\nexport const InputClearButton = ({\n onPress,\n isActive,\n marginRight,\n}: {\n onPress: () => void\n isActive: boolean\n marginRight?: number\n}) => {\n const iconColor = useIconColor()\n const borderColor = useBorderColor()\n return (\n <TouchableOpacity\n onPress={onPress}\n style={[styles.closeButton, { opacity: isActive ? 1 : 0, marginRight, borderColor }]}\n hitSlop={{ top: 10, bottom: 10, left: 10, right: 10 }}\n disabled={!isActive}>\n <Ionicons name=\"close\" size={14} color={iconColor} style={{ alignSelf: 'center' }} />\n </TouchableOpacity>\n )\n}\n\nexport const DateInputClearButton = ({\n onPress,\n isActive,\n}: {\n onPress: () => void\n isActive: boolean\n}) => {\n return <InputClearButton marginRight={0} onPress={onPress} isActive={isActive} />\n}\n\nconst styles = StyleSheet.create({\n closeButton: {\n padding: 3,\n borderRadius: 100,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n // backgroundColor: '#e2e8f0',\n borderWidth: 1,\n },\n})\n","import { usePlaceholderColor, useTextColor } from '@chem-po/react'\n\nexport const useInputColor = (value?: any) => {\n const textColor = useTextColor()\n const placeholderColor = usePlaceholderColor()\n return value !== undefined && value !== null && value !== '' ? textColor : placeholderColor\n}\n","import { getDateTimeString, InputRef } from '@chem-po/core'\nimport { DateTimeField, useIconColor } from '@chem-po/react'\nimport { Ionicons } from '@expo/vector-icons'\nimport { forwardRef, useCallback, useImperativeHandle, useMemo, useState } from 'react'\nimport { StyleSheet, Text, TouchableOpacity, View } from 'react-native'\nimport { Portal } from 'react-native-paper'\nimport { DatePickerModal, TimePickerModal } from 'react-native-paper-dates'\nimport { FieldProps } from '../../types'\nimport { DateInputClearButton } from '../common/InputClearButton'\nimport { useInputColor } from '../hooks/useInputColor'\n\nexport const DateTimeInput = forwardRef<InputRef, FieldProps<DateTimeField>>(\n ({ input: { value, onBlur, onChange, onFocus }, field, meta: { active } }, ref) => {\n const { placeholder, optional } = field\n const [showDatePicker, setShowDatePicker] = useState(true)\n const [showTimePicker, setShowTimePicker] = useState(false)\n // const [selectedDate] = useState<Date>(value ? new Date(value) : new Date())\n\n const selectedDate = useMemo(() => (value ? new Date(value) : new Date()), [value])\n useImperativeHandle(ref, () => ({\n focus: () => {\n onFocus()\n },\n blur: () => {\n onBlur()\n },\n }))\n\n const handleDateChange = useCallback(\n (date: string | null) => {\n if (date) {\n const newDate = new Date(date)\n onChange(newDate.toISOString())\n setShowTimePicker(true)\n } else {\n onBlur()\n }\n setShowDatePicker(false)\n },\n [onChange, onBlur],\n )\n\n const handleTimeChange = useCallback(\n ({ hours, minutes }: { hours: number; minutes: number }) => {\n const newDate = selectedDate ? new Date(selectedDate) : new Date()\n newDate.setHours(hours)\n newDate.setMinutes(minutes)\n onChange(newDate.toISOString())\n setShowTimePicker(false)\n onBlur()\n },\n [onChange, onBlur, selectedDate],\n )\n\n const handleDismiss = useCallback(() => {\n setShowDatePicker(true)\n setShowTimePicker(false)\n onBlur()\n }, [onBlur])\n\n const date = useMemo(() => (value ? new Date(value) : undefined), [value])\n\n const formattedValue = useMemo(() => {\n if (!value) return null\n return getDateTimeString(value)\n }, [value])\n\n const hourMinute = useMemo(() => {\n if (!date) return { hours: 0, minutes: 0 }\n return { hours: date.getHours(), minutes: date.getMinutes() }\n }, [date])\n\n const iconColor = useIconColor()\n const inputColor = useInputColor(value)\n\n return (\n <View style={styles.container}>\n <TouchableOpacity\n style={styles.button}\n onPress={() => {\n setShowDatePicker(true)\n onFocus()\n }}>\n <Text style={[styles.text, { color: inputColor }]}>{formattedValue ?? placeholder}</Text>\n <Ionicons name=\"calendar\" size={20} color={iconColor} style={styles.icon} />\n <Ionicons name=\"time\" size={20} color={iconColor} style={styles.icon} />\n {optional && value ? (\n <DateInputClearButton onPress={() => onChange(null)} isActive={!!value} />\n ) : null}\n </TouchableOpacity>\n <Portal>\n {showDatePicker && (\n <DatePickerModal\n locale=\"en\"\n label=\"Date\"\n date={date}\n mode=\"single\"\n onConfirm={d => {\n handleDateChange(d?.date?.toISOString()?.split('T')[0] ?? null)\n }}\n onDismiss={handleDismiss}\n visible={active && showDatePicker}\n />\n )}\n {showTimePicker && (\n <TimePickerModal\n visible={active && showTimePicker}\n onDismiss={handleDismiss}\n locale=\"en-US\"\n onConfirm={handleTimeChange}\n hours={hourMinute.hours}\n minutes={hourMinute.minutes}\n />\n )}\n </Portal>\n </View>\n )\n },\n)\n\nDateTimeInput.displayName = 'DateTimeInput'\n\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n },\n button: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n height: 40,\n paddingHorizontal: 12,\n paddingVertical: 8,\n },\n text: {\n fontSize: 16,\n flex: 1,\n },\n icon: {\n marginRight: 10,\n },\n})\n","import { FileValue, InputRef } from '@chem-po/core'\nimport {\n FileField,\n useBorderColor,\n useIconColor,\n usePlaceholderColor,\n useTextColor,\n} from '@chem-po/react'\nimport { Ionicons } from '@expo/vector-icons'\nimport * as DocumentPicker from 'expo-document-picker'\nimport * as ImagePicker from 'expo-image-picker'\nimport { forwardRef, useCallback, useImperativeHandle, useMemo, useState } from 'react'\nimport { StyleSheet, Text, TouchableOpacity, View } from 'react-native'\nimport { LoadingImage } from '../../../loading/LoadingImage'\nimport { FieldProps } from '../../types'\n\nconst generateAccept = (field: FileField) => {\n if (!field.accept) return undefined\n const accept: string[] = []\n if (field.accept.includes('image')) {\n accept.push('image/jpg', 'image/jpeg', 'image/png', 'image/svg', 'image/gif')\n }\n if (field.accept.includes('pdf')) accept.push('application/pdf')\n if (field.accept.includes('audio')) {\n accept.push('audio/mp3', 'audio/wav', 'audio/x-wav', 'audio/webm', 'audio/ogg')\n }\n return accept.join(',')\n}\n\nconst NoFileView = ({ hasUpload }: { hasUpload?: boolean }) => {\n const textColor = useTextColor()\n const iconColor = useIconColor()\n const borderColor = useBorderColor()\n return (\n <View style={[styles.noFileContainer, { borderColor }]}>\n <Text style={[styles.noFileText, { color: textColor }]}>\n {hasUpload ? 'Tap to upload file' : 'No file uploaded'}\n </Text>\n <Ionicons name=\"cloud-upload\" size={24} color={iconColor} />\n </View>\n )\n}\n\nexport const FileView = ({\n value,\n hasUpload,\n imageOptions,\n}: {\n value?: FileValue | null\n hasUpload?: boolean\n imageOptions?: any\n}) => {\n const { storagePath, dataUrl } = value ?? {}\n const missingFile = !dataUrl && !storagePath\n\n const iconColor = useIconColor()\n const fileNameColor = useTextColor()\n const borderColor = useBorderColor()\n if (!value || missingFile) {\n return <NoFileView hasUpload={hasUpload} />\n }\n\n if (value.type?.startsWith('image/')) {\n return (\n <LoadingImage\n src={dataUrl}\n width={imageOptions?.width ?? 120}\n height={imageOptions?.height ?? 120}\n style={styles.image}\n />\n )\n }\n\n return (\n <View style={[styles.fileContainer, { borderColor }]}>\n <Ionicons name=\"document\" size={24} color={iconColor} />\n <Text style={[styles.filename, { color: fileNameColor }]}>{value.filename}</Text>\n </View>\n )\n}\n\nexport const FileComponent = forwardRef<InputRef, FieldProps<FileField>>(\n ({ input: { value, onChange }, field }, ref) => {\n const [loading, setLoading] = useState(false)\n const { imageOptions } = field || {}\n\n const handlePickFile = useCallback(async () => {\n try {\n setLoading(true)\n let result: ImagePicker.ImagePickerResult | DocumentPicker.DocumentPickerResult\n\n if (field.accept?.includes('image')) {\n result = await ImagePicker.launchImageLibraryAsync({\n mediaTypes: ['images'],\n allowsEditing: true,\n quality: 1,\n base64: true,\n })\n\n if (!result.canceled && result.assets[0]) {\n const asset = result.assets[0]\n const fileExtension = asset.uri.split('.').pop() ?? 'jpeg'\n const fileName = asset.uri.split('/').pop() ?? 'image'\n\n onChange({\n ...value,\n dataUrl: asset.uri,\n type: `image/${fileExtension}`,\n filename: fileName,\n })\n }\n } else {\n result = await DocumentPicker.getDocumentAsync({\n type: generateAccept(field),\n })\n\n if (!result.canceled) {\n onChange({\n ...value,\n dataUrl: result.assets[0].uri,\n type: result.assets[0].mimeType,\n filename: result.assets[0].name,\n })\n }\n }\n } catch (error: unknown) {\n if (error instanceof Error) {\n console.error('Error picking file:', error.message)\n }\n } finally {\n setLoading(false)\n }\n }, [field, onChange, value])\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n void handlePickFile()\n },\n blur: () => {},\n }))\n\n const isImageField = useMemo(\n () => field.accept && field.accept.length === 1 && field.accept[0] === 'image',\n [field],\n )\n\n const imgOptions = useMemo(\n () =>\n isImageField || value?.type?.startsWith('image/')\n ? {\n height: 120,\n ...imageOptions,\n }\n : undefined,\n [imageOptions, isImageField, value],\n )\n\n const placeholderColor = usePlaceholderColor()\n const borderColor = useBorderColor()\n\n return (\n <View style={[styles.container, { borderColor }]}>\n <Text style={[styles.placeholder, { color: placeholderColor }]}>{field.placeholder}</Text>\n <TouchableOpacity\n style={styles.contentContainer}\n onPress={() => void handlePickFile()}\n disabled={loading}>\n <FileView hasUpload imageOptions={imgOptions} value={value} />\n </TouchableOpacity>\n </View>\n )\n },\n)\n\nFileComponent.displayName = 'FileComponent'\n\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n alignItems: 'center',\n justifyContent: 'center',\n },\n placeholder: {\n fontSize: 14,\n opacity: 0.8,\n marginBottom: 4,\n },\n contentContainer: {\n width: '100%',\n position: 'relative',\n alignItems: 'center',\n justifyContent: 'center',\n padding: 8,\n overflow: 'hidden',\n },\n noFileContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n padding: 16,\n borderWidth: 1,\n borderRadius: 4,\n borderStyle: 'dashed',\n },\n noFileText: {\n fontSize: 14,\n textAlign: 'center',\n opacity: 0.8,\n marginRight: 10,\n },\n fileContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n padding: 8,\n borderWidth: 1,\n borderRadius: 4,\n },\n filename: {\n fontSize: 14,\n marginLeft: 8,\n },\n image: {\n borderRadius: 4,\n overflow: 'hidden',\n },\n})\n","import { InputRef } from '@chem-po/core'\nimport { MultipleSelectField, useColorMode, usePlaceholderColor } from '@chem-po/react'\nimport { forwardRef, useImperativeHandle } from 'react'\nimport { StyleSheet, Text, TouchableOpacity, View } from 'react-native'\nimport { FieldProps } from '../../types'\n\nexport const MultipleSelectComponent = forwardRef<InputRef, FieldProps<MultipleSelectField>>(\n ({ field, input, inEditable }, ref) => {\n const { options, renderOption, getOptionKey } = field\n const { onChange, value, onFocus, onBlur } = input\n const colorMode = useColorMode()\n\n const placeholderColor = usePlaceholderColor()\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n onFocus()\n },\n blur: () => {\n onBlur()\n },\n }))\n\n const handleOptionPress = (option: any) => {\n onChange(\n value?.includes(option) ? value.filter(v => v !== option) : [...(value ?? []), option],\n )\n }\n\n const body = (\n <View style={styles.container}>\n {options.map(o => (\n <TouchableOpacity\n key={getOptionKey ? getOptionKey(o) : o}\n style={[styles.option, value?.includes(o) && styles.selectedOption]}\n onPress={() => handleOptionPress(o)}>\n {renderOption(o, colorMode, !!value?.includes(o))}\n </TouchableOpacity>\n ))}\n </View>\n )\n\n return inEditable ? (\n <View style={styles.editableContainer}>\n <Text style={[styles.placeholder, { color: placeholderColor }]}>{field.placeholder}</Text>\n {body}\n </View>\n ) : (\n body\n )\n },\n)\n\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n flexDirection: 'row',\n flexWrap: 'wrap',\n gap: 4,\n },\n editableContainer: {\n width: '100%',\n paddingVertical: 2,\n },\n placeholder: {\n fontSize: 14,\n fontWeight: '600',\n opacity: 0.8,\n paddingHorizontal: 8,\n marginBottom: 4,\n },\n option: {\n padding: 4,\n opacity: 0.7,\n },\n selectedOption: {\n opacity: 1,\n },\n})\n","import { InputSize } from '@chem-po/react'\nimport { useMemo } from 'react'\nimport { StyleSheet } from 'react-native'\n\nconst inputPaddingY: Record<InputSize, number> = {\n xs: 4, // 0.25rem * 16\n sm: 6, // 0.35rem * 16\n md: 8, // 0.5rem * 16\n lg: 8, // 0.5rem * 16\n xl: 8, // 0.5rem * 16\n}\n\nconst inputPaddingX: Record<InputSize, number> = {\n xs: 8, // 0.5rem * 16\n sm: 12, // 0.75rem * 16\n md: 12, // 0.75rem * 16\n lg: 12, // 0.75rem * 16\n xl: 12, // 0.75rem * 16\n}\n\nconst fontSize: Record<InputSize, number> = {\n xs: 12, // 0.75rem * 16\n sm: 14, // 0.875rem * 16\n md: 16, // 1rem * 16\n lg: 18, // 1.125rem * 16\n xl: 20, // 1.25rem * 16\n}\n\nexport const useInputStyle = (size?: InputSize) =>\n useMemo(\n () =>\n StyleSheet.create({\n style: {\n paddingVertical: inputPaddingY[size ?? 'md'],\n paddingHorizontal: inputPaddingX[size ?? 'md'],\n fontSize: fontSize[size ?? 'md'],\n },\n }),\n [size],\n )\n","import { InputRef } from '@chem-po/core'\nimport { CurrencyAmountField, NumberField, usePlaceholderColor, useTextColor } from '@chem-po/react'\nimport { ForwardedRef, forwardRef, useImperativeHandle, useRef, useState } from 'react'\nimport { StyleSheet, Text, TextInput, View } from 'react-native'\nimport { FieldProps } from '../../types'\nimport { InputSlider } from '../InputSlider'\nimport { useInputImperativeHandle } from '../hooks/useInputImperativeHandle'\nimport { useInputStyle } from '../hooks/useInputStyle'\n\nexport const NumberComponent = forwardRef<InputRef, FieldProps<NumberField> & { prefix?: string }>(\n ({ input: { onChange, value, ...input }, field, size, prefix, inEditable: _, ...props }, ref) => {\n const { type, defaultValue, placeholder } = field\n const color = useTextColor()\n const { style } = useInputStyle(size)\n const inputRef = useInputImperativeHandle(ref)\n const [endsWith, setEndsWith] = useState('')\n const displayed = typeof value === 'number' && !Number.isNaN(value) ? `${value}${endsWith}` : ''\n\n const placeholderColor = usePlaceholderColor()\n\n if (type === 'slider') {\n return (\n <InputSlider\n label={placeholder}\n onValueChange={onChange}\n value={value}\n minimumValue={defaultValue}\n />\n )\n }\n\n return (\n <View style={styles.container}>\n {prefix && <Text style={styles.prefix}>{prefix}</Text>}\n <TextInput\n ref={inputRef}\n style={[styles.input, style, { color }]}\n // style={styles.input}\n placeholder={field.placeholder}\n placeholderTextColor={placeholderColor}\n keyboardType=\"numeric\"\n value={displayed}\n onChangeText={text => {\n if (text.endsWith('.')) {\n setEndsWith('.')\n } else if (text.includes('.') && text.endsWith('0')) {\n setEndsWith('0')\n } else {\n setEndsWith('')\n }\n const num = parseFloat(text)\n onChange(!isNaN(num) ? num : undefined)\n }}\n {...input}\n // {...props}\n />\n </View>\n )\n },\n)\n\nconst BaseCurrencyAmountComponent = (\n { field, ...props }: FieldProps<CurrencyAmountField>,\n ref: ForwardedRef<InputRef>,\n) => {\n const inputRef = useRef<TextInput>(null)\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n inputRef.current?.focus()\n },\n blur: () => {\n inputRef.current?.blur()\n },\n }))\n return <NumberComponent prefix=\"$\" field={{ ...field, _type: 'number' }} {...props} />\n}\n\nexport const CurrencyAmountComponent = forwardRef<InputRef, FieldProps<CurrencyAmountField>>(\n BaseCurrencyAmountComponent as any,\n)\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignItems: 'center',\n width: '100%',\n },\n input: {\n flex: 1,\n height: 40,\n paddingHorizontal: 12,\n paddingVertical: 8,\n backgroundColor: 'transparent',\n },\n prefix: {\n marginRight: 4,\n fontSize: 16,\n },\n})\n","import { InputRef } from '@chem-po/core'\nimport {\n SelectField,\n useBackgroundColor,\n useBorderColor,\n useIconColor,\n usePlaceholderColor,\n} from '@chem-po/react'\nimport { Ionicons } from '@expo/vector-icons'\nimport { ForwardedRef, forwardRef, useImperativeHandle, useMemo, useRef, useState } from 'react'\nimport { Modal, ScrollView, StyleSheet, Text, TouchableOpacity, View } from 'react-native'\nimport { Txt } from '../../../text/Txt'\nimport { FieldProps } from '../../types'\nimport { InputClearButton } from '../common/InputClearButton'\n\ntype SelectOption<T extends SelectField> = T['options'][number]\n\nconst BaseSelectComponent = <T extends SelectField>(\n { field, input, meta }: FieldProps<T>,\n ref: ForwardedRef<InputRef>,\n) => {\n const { placeholder, options, renderOption, getOptionKey, optional } = field\n const { onChange, value, onFocus, onBlur } = input\n const { active } = meta\n const [buttonLayout, setButtonLayout] = useState({ x: 0, y: 0, width: 0, height: 0 })\n const buttonRef = useRef<View>(null)\n\n const selected = useMemo(() => {\n if (!value) return undefined\n return options.find(o => {\n if (getOptionKey) {\n const key1 = getOptionKey(o)\n const key2 = getOptionKey(value)\n return key1 === key2\n }\n return o === value\n })\n }, [value, options, getOptionKey])\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n onFocus()\n // setIsOpen(true)\n },\n blur: () => {\n onBlur()\n // setIsOpen(false)\n },\n }))\n\n const handleButtonLayout = () => {\n buttonRef.current?.measure((_x, _y, width, height, pageX, pageY) => {\n setButtonLayout({ x: pageX, y: pageY, width, height })\n })\n }\n\n const renderOptionText = (option: T['options'][number], isSelected: boolean) => {\n if (typeof renderOption === 'function') {\n return renderOption(option, 'light', isSelected)\n }\n if (typeof option === 'object') {\n return <Txt>{JSON.stringify(option)}</Txt>\n }\n return <Txt>{String(option)}</Txt>\n }\n\n const getKey = (option: SelectOption<T>): string => {\n if (getOptionKey) {\n const key = getOptionKey(option)\n return typeof key === 'object' ? JSON.stringify(key) : String(key)\n }\n return typeof option === 'object' ? JSON.stringify(option) : String(option)\n }\n\n const handleOptionPress = (option: SelectOption<T>) => {\n onChange(option)\n onBlur()\n // setIsOpen(false)\n }\n\n const iconColor = useIconColor()\n const placeholderColor = usePlaceholderColor()\n const menuBg = useBackgroundColor(100)\n const selectedOptionBg = useBackgroundColor(50)\n const borderColor = useBorderColor()\n return (\n <View style={styles.wrapper}>\n <View ref={buttonRef} onLayout={handleButtonLayout} style={styles.container}>\n <TouchableOpacity\n style={[styles.button]}\n onPress={() => {\n if (active) {\n onBlur()\n } else {\n onFocus()\n }\n }}>\n <View style={styles.buttonTextContainer}>\n {selected ? (\n renderOptionText(selected, true)\n ) : (\n <Text style={[styles.placeholder, { color: placeholderColor }]}>{placeholder}</Text>\n )}\n </View>\n <Ionicons\n name={active ? 'chevron-up' : 'chevron-down'}\n size={20}\n color={iconColor}\n style={styles.icon}\n />\n {optional && value ? (\n <InputClearButton onPress={() => onChange(null)} isActive={!!value} />\n ) : null}\n </TouchableOpacity>\n </View>\n <Modal visible={active} transparent animationType=\"fade\" onRequestClose={() => onBlur()}>\n <TouchableOpacity style={styles.modalOverlay} activeOpacity={1} onPress={() => onBlur()}>\n <View\n style={[\n styles.dropdownContainer,\n {\n position: 'absolute',\n top: buttonLayout.y + buttonLayout.height + 4,\n left: buttonLayout.x,\n width: buttonLayout.width,\n backgroundColor: menuBg,\n borderColor,\n },\n ]}>\n <ScrollView style={styles.dropdown}>\n {options.map((option: SelectOption<T>) => {\n const key = getKey(option)\n const isSelected = option === selected\n return (\n <TouchableOpacity\n key={key}\n style={[\n styles.option,\n { borderColor },\n isSelected && { backgroundColor: selectedOptionBg },\n ]}\n onPress={() => handleOptionPress(option)}>\n <View>{renderOptionText(option, isSelected)}</View>\n </TouchableOpacity>\n )\n })}\n </ScrollView>\n </View>\n </TouchableOpacity>\n </Modal>\n </View>\n )\n}\n\nexport const SelectComponent = forwardRef(BaseSelectComponent)\n\nconst styles = StyleSheet.create({\n wrapper: {\n width: '100%',\n },\n container: {\n width: '100%',\n },\n button: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n height: 40,\n paddingHorizontal: 12,\n paddingVertical: 8,\n backgroundColor: 'transparent',\n borderRadius: 4,\n },\n buttonTextContainer: {\n flex: 1,\n },\n buttonText: {\n fontSize: 16,\n },\n modalOverlay: {\n flex: 1,\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n },\n dropdownContainer: {\n backgroundColor: 'white',\n borderWidth: 1,\n borderColor: '#ddd',\n borderRadius: 4,\n maxHeight: 200,\n elevation: 3,\n shadowColor: '#000',\n shadowOffset: { width: 0, height: 2 },\n shadowOpacity: 0.1,\n shadowRadius: 2,\n padding: 0,\n },\n dropdown: {\n maxHeight: 200,\n },\n option: {\n paddingVertical: 12,\n paddingHorizontal: 16,\n borderBottomWidth: 1,\n },\n optionText: {\n fontSize: 16,\n },\n placeholder: {\n color: '#666',\n },\n icon: {\n marginRight: 10,\n },\n})\n","import { getHandle, InputRef, SocialMediaSites } from '@chem-po/core'\nimport { SocialMediaField } from '@chem-po/react'\nimport {\n FC,\n ForwardedRef,\n forwardRef,\n useCallback,\n useImperativeHandle,\n useMemo,\n useState,\n} from 'react'\nimport { Modal, StyleSheet, Text, TextInput, TouchableOpacity, View } from 'react-native'\nimport { FieldProps } from '../../types'\nconst siteToIcon: Record<SocialMediaSites, string> = {\n facebook: 'facebook',\n instagram: 'instagram',\n twitter: 'twitter',\n youtube: 'youtube',\n soundcloud: 'soundcloud',\n}\n\nconst SocialMediaSiteInput: FC<{\n site: SocialMediaSites\n value?: string\n onChange: (v?: string) => void\n isModalVisible: boolean\n onModalClose: () => void\n}> = ({ site, value, onChange, isModalVisible, onModalClose }) => {\n const { handle, error } = useMemo(() => {\n try {\n const h = getHandle(site, value)\n return { handle: h }\n } catch (e: any) {\n return { error: e?.message ?? 'Error parsing handle' }\n }\n }, [value, site])\n\n const displayedText = useMemo(\n () => (handle ? `${site.toUpperCase()}: ${handle}` : site.toUpperCase()),\n [site, handle],\n )\n\n return (\n <>\n <TouchableOpacity\n style={[styles.iconButton, !handle && styles.iconButtonInactive]}\n onPress={() => onModalClose()}>\n <Text style={styles.iconText}>{siteToIcon[site]}</Text>\n </TouchableOpacity>\n\n <Modal\n visible={isModalVisible}\n transparent={true}\n animationType=\"slide\"\n onRequestClose={onModalClose}>\n <View style={styles.modalContainer}>\n <View style={styles.modalContent}>\n <Text style={styles.modalTitle}>{displayedText}</Text>\n {error && <Text style={styles.errorText}>{error}</Text>}\n <TextInput\n style={styles.modalInput}\n onChangeText={onChange}\n placeholder=\"Handle or URL\"\n value={value}\n autoCapitalize=\"none\"\n autoCorrect={false}\n />\n <TouchableOpacity style={styles.closeButton} onPress={onModalClose}>\n <Text style={styles.closeButtonText}>Close</Text>\n </TouchableOpacity>\n </View>\n </View>\n </Modal>\n </>\n )\n}\n\nexport const SocialMediaComponent = forwardRef<InputRef, FieldProps<SocialMediaField>>(\n (props: FieldProps<SocialMediaField>, ref: ForwardedRef<InputRef>) => {\n const {\n input: { value, onChange },\n field: { sites },\n } = props\n\n const [selectedSite, setSelectedSite] = useState<SocialMediaSites | null>(null)\n\n const handleChange = useCallback(\n (site: SocialMediaSites, v?: string) => {\n const { [site]: _curr, ...rest } = value ?? {}\n if (!v && Object.keys(rest).length === 0) {\n onChange({ target: { value: undefined } })\n }\n if (!v) onChange(rest)\n onChange({ ...rest, [site]: v })\n },\n [onChange, value],\n )\n\n useImperativeHandle(ref, () => ({\n blur: () => {},\n focus: () => {},\n }))\n\n return (\n <View style={styles.container}>\n <Text style={styles.title}>Links</Text>\n <View style={styles.iconsContainer}>\n {(!sites || sites.facebook) && (\n <SocialMediaSiteInput\n onChange={v => handleChange('facebook', v)}\n site=\"facebook\"\n value={value?.facebook}\n isModalVisible={selectedSite === 'facebook'}\n onModalClose={() => setSelectedSite(null)}\n />\n )}\n {(!sites || sites.instagram) && (\n <SocialMediaSiteInput\n onChange={v => handleChange('instagram', v)}\n site=\"instagram\"\n value={value?.instagram}\n isModalVisible={selectedSite === 'instagram'}\n onModalClose={() => setSelectedSite(null)}\n />\n )}\n {(!sites || sites.twitter) && (\n <SocialMediaSiteInput\n onChange={v => handleChange('twitter', v)}\n site=\"twitter\"\n value={value?.twitter}\n isModalVisible={selectedSite === 'twitter'}\n onModalClose={() => setSelectedSite(null)}\n />\n )}\n {(!sites || sites.youtube) && (\n <SocialMediaSiteInput\n onChange={v => handleChange('youtube', v)}\n site=\"youtube\"\n value={value?.youtube}\n isModalVisible={selectedSite === 'youtube'}\n onModalClose={() => setSelectedSite(null)}\n />\n )}\n {(!sites || sites.soundcloud) && (\n <SocialMediaSiteInput\n onChange={v => handleChange('soundcloud', v)}\n site=\"soundcloud\"\n value={value?.soundcloud}\n isModalVisible={selectedSite === 'soundcloud'}\n onModalClose={() => setSelectedSite(null)}\n />\n )}\n </View>\n </View>\n )\n },\n)\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n padding: 8,\n },\n title: {\n fontSize: 16,\n fontWeight: 'bold',\n marginBottom: 8,\n color: '#1A202C',\n },\n iconsContainer: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n gap: 8,\n },\n iconButton: {\n width: 34,\n height: 34,\n borderRadius: 17,\n backgroundColor: '#EDF2F7',\n justifyContent: 'center',\n alignItems: 'center',\n },\n iconButtonInactive: {\n opacity: 0.6,\n },\n iconText: {\n fontSize: 12,\n color: '#1A202C',\n },\n modalContainer: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n },\n modalContent: {\n backgroundColor: 'white',\n borderRadius: 8,\n padding: 16,\n width: '80%',\n maxWidth: 300,\n },\n modalTitle: {\n fontSize: 16,\n fontWeight: 'bold',\n marginBottom: 8,\n color: '#1A202C',\n },\n errorText: {\n color: '#E53E3E',\n fontSize: 14,\n marginBottom: 8,\n padding: 4,\n backgroundColor: '#FFF5F5',\n },\n modalInput: {\n borderWidth: 1,\n borderColor: '#E2E8F0',\n borderRadius: 4,\n padding: 8,\n marginBottom: 16,\n fontSize: 16,\n },\n closeButton: {\n backgroundColor: '#EDF2F7',\n padding: 8,\n borderRadius: 4,\n alignItems: 'center',\n },\n closeButtonText: {\n color: '#1A202C',\n fontSize: 16,\n },\n})\n","import { InputRef } from '@chem-po/core'\nimport { TextField, usePlaceholderColor, useTextColor } from '@chem-po/react'\nimport { Ionicons } from '@expo/vector-icons'\nimport { forwardRef, useImperativeHandle, useRef, useState } from 'react'\nimport { StyleSheet, TextInput, TouchableOpacity, View } from 'react-native'\nimport { FieldProps } from '../../types'\nimport { TextAreaComponent } from './textarea'\n\nexport const TextComponent = forwardRef<InputRef, FieldProps<TextField>>(\n ({ input, inEditable, meta, field }, ref) => {\n const { placeholder, type } = field\n const [isHidden, setIsHidden] = useState(type === 'password')\n const { value, onChange, ...inputProps } = input\n const inputRef = useRef<TextInput>(null)\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n inputRef.current?.focus()\n },\n blur: () => {\n inputRef.current?.blur()\n },\n }))\n\n const placeholderColor = usePlaceholderColor()\n const color = useTextColor()\n const body =\n type === 'textarea' ? (\n <TextAreaComponent inEditable={inEditable} field={field} input={input} meta={meta} />\n ) : (\n <TextInput\n ref={inputRef}\n style={[\n styles.input,\n inEditable && styles.inEditable,\n type === 'password' && styles.passwordInput,\n { color },\n ]}\n secureTextEntry={isHidden}\n placeholderTextColor={placeholderColor}\n placeholder={placeholder}\n value={value ?? ''}\n onChangeText={onChange}\n {...inputProps}\n />\n )\n\n return type === 'password' ? (\n <View style={styles.passwordContainer}>\n {body}\n <TouchableOpacity style={styles.eyeIcon} onPress={() => setIsHidden(!isHidden)}>\n <Ionicons name={isHidden ? 'eye' : 'eye-off'} size={20} color=\"#666\" />\n </TouchableOpacity>\n </View>\n ) : (\n body\n )\n },\n)\n\nTextComponent.displayName = 'TextComponent'\n\nconst styles = StyleSheet.create({\n input: {\n width: '100%',\n height: 40,\n paddingHorizontal: 12,\n paddingVertical: 8,\n },\n inEditable: {\n paddingHorizontal: 0,\n paddingVertical: 0,\n height: 'auto',\n },\n passwordInput: {\n paddingRight: 40,\n },\n passwordContainer: {\n width: '100%',\n flexDirection: 'row',\n alignItems: 'center',\n position: 'relative',\n },\n eyeIcon: {\n position: 'absolute',\n right: 12,\n padding: 4,\n },\n})\n","import { InputRef } from '@chem-po/core'\nimport { TextField, usePlaceholderColor, useTextColor } from '@chem-po/react'\nimport { forwardRef, useImperativeHandle, useRef } from 'react'\nimport { StyleSheet, TextInput } from 'react-native'\nimport { FieldProps } from '../../types'\n\nexport const TextAreaComponent = forwardRef<InputRef, FieldProps<TextField>>(\n ({ input, field, inEditable }, ref) => {\n const inputRef = useRef<TextInput>(null)\n const { value, onChange, ...inputProps } = input\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n inputRef.current?.focus()\n },\n blur: () => {\n inputRef.current?.blur()\n },\n }))\n\n const placeholderColor = usePlaceholderColor()\n const color = useTextColor()\n\n return (\n <TextInput\n ref={inputRef}\n style={[styles.textarea, inEditable && styles.inEditable, { color }]}\n placeholder={field.placeholder}\n placeholderTextColor={placeholderColor}\n multiline\n maxLength={200}\n textAlignVertical=\"top\"\n value={value ?? ''}\n onChangeText={onChange}\n {...inputProps}\n />\n )\n },\n)\n\nTextAreaComponent.displayName = 'TextAreaComponent'\n\nconst styles = StyleSheet.create({\n textarea: {\n width: '100%',\n minHeight: 80,\n paddingHorizontal: 12,\n paddingVertical: 8,\n backgroundColor: 'transparent',\n textAlignVertical: 'top',\n },\n inEditable: {\n paddingHorizontal: 0,\n paddingVertical: 0,\n },\n})\n","import { InputRef, padZeros } from '@chem-po/core'\nimport { TimeField, useIconColor } from '@chem-po/react'\nimport { Ionicons } from '@expo/vector-icons'\nimport { forwardRef, useImperativeHandle, useMemo, useState } from 'react'\nimport { StyleSheet, Text, TouchableOpacity, View } from 'react-native'\nimport { Portal } from 'react-native-paper'\nimport { TimePickerModal } from 'react-native-paper-dates'\nimport { FieldProps } from '../../types'\nimport { DateInputClearButton } from '../common/InputClearButton'\nimport { useInputColor } from '../hooks/useInputColor'\n\nexport const TimeInput = forwardRef<InputRef, FieldProps<TimeField>>(\n ({ input: { onChange, value, onFocus, onBlur }, field: { placeholder, optional } }, ref) => {\n const [visible, setVisible] = useState(false)\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n setVisible(true)\n onFocus()\n },\n blur: () => {\n setVisible(false)\n onBlur()\n },\n }))\n\n const handleTimeChange = ({ hours, minutes }: { hours: number; minutes: number }) => {\n setVisible(false)\n const timeString = `${padZeros(hours)}:${padZeros(minutes)}`\n onChange(timeString)\n onBlur()\n }\n\n const handleDismiss = () => {\n setVisible(false)\n onBlur()\n }\n\n const formattedValue = useMemo(() => {\n if (!value) return null\n const [hours, minutes] = value.split(':').map(Number)\n const amPm = hours >= 12 ? 'PM' : 'AM'\n const formattedHours = hours % 12 === 0 ? 12 : hours % 12\n return `${formattedHours}:${padZeros(minutes)} ${amPm}`\n }, [value])\n\n const { hours, minutes } = useMemo(() => {\n if (!value) return { hours: 0, minutes: 0 }\n const [h, m] = value.split(':').map(Number)\n return { hours: h, minutes: m }\n }, [value])\n\n const iconColor = useIconColor()\n const inputColor = useInputColor(value)\n\n return (\n <View style={styles.container}>\n <TouchableOpacity\n style={styles.button}\n onPress={() => {\n setVisible(true)\n onFocus()\n }}>\n <Text style={[styles.text, { color: inputColor }]}>{formattedValue ?? placeholder}</Text>\n <Ionicons name=\"time\" size={20} color={iconColor} style={styles.icon} />\n {optional && value ? (\n <DateInputClearButton onPress={() => onChange(null)} isActive={!!value} />\n ) : null}\n </TouchableOpacity>\n <Portal>\n <TimePickerModal\n visible={visible}\n onDismiss={handleDismiss}\n onConfirm={handleTimeChange}\n hours={hours}\n minutes={minutes}\n />\n </Portal>\n </View>\n )\n },\n)\n\nTimeInput.displayName = 'TimeInput'\n\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n },\n button: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n height: 40,\n paddingHorizontal: 12,\n paddingVertical: 8,\n },\n text: {\n fontSize: 16,\n flex: 1,\n },\n icon: {\n marginRight: 10,\n },\n})\n","import { FieldType, InputRef } from '@chem-po/core'\nimport {\n Field,\n TypedField,\n useBackgroundColor,\n usePlaceholderColor,\n useThemeValue,\n} from '@chem-po/react'\nimport { ForwardedRef, forwardRef, ForwardRefExoticComponent, useEffect, useMemo } from 'react'\nimport { Animated, StyleSheet, Text, View, ViewStyle } from 'react-native'\nimport { AnimatedText } from '../../text/AnimatedText'\nimport { FieldProps } from '../types'\nimport { BooleanComponent } from './boolean'\nimport { ColorComponent } from './color'\nimport { DateInput } from './date'\nimport { DateTimeInput } from './datetime'\nimport { FileComponent } from './file'\nimport { MultipleSelectComponent } from './multipleSelect'\nimport { CurrencyAmountComponent, NumberComponent } from './number'\nimport { SelectComponent } from './select'\nimport { SocialMediaComponent } from './socialMedia'\nimport { TextComponent } from './text'\nimport { TimeInput } from './time'\n\ntype ComponentType<T extends Field> = ForwardRefExoticComponent<\n FieldProps<T> & React.RefAttributes<InputRef>\n>\n\nconst Components: { [Key in FieldType]: ComponentType<TypedField<Key>> } = {\n text: TextComponent,\n file: FileComponent,\n boolean: BooleanComponent,\n select: SelectComponent,\n multipleSelect: MultipleSelectComponent,\n currency: CurrencyAmountComponent,\n number: NumberComponent,\n date: DateInput,\n datetime: DateTimeInput,\n time: TimeInput,\n socialMedia: SocialMediaComponent,\n color: ColorComponent,\n}\nconst InputBase = <T extends Field>(props: FieldProps<T>, ref: ForwardedRef<InputRef>) => {\n const {\n field,\n meta: { error, active, touched },\n input,\n inEditable,\n } = props\n\n const { value } = input\n\n const placeholderColor = usePlaceholderColor()\n const activeColor = useThemeValue('colors.accent.400')\n const errorColor = useThemeValue('colors.error.400')\n\n const shadowColorAnim = useMemo(() => new Animated.Value(0), [])\n\n const displayedError = useMemo(() => {\n if (error && touched) return error\n return null\n }, [error, touched])\n const shadowColor = useMemo(() => {\n if (displayedError) return errorColor\n return activeColor\n }, [displayedError, activeColor, errorColor])\n\n useEffect(() => {\n Animated.timing(shadowColorAnim, {\n toValue: active || displayedError ? 1 : 0,\n duration: 300,\n useNativeDriver: false,\n }).start()\n }, [active, displayedError, shadowColorAnim])\n\n const animatedShadowColor = shadowColorAnim.interpolate({\n inputRange: [0, 1],\n outputRange: [placeholderColor, shadowColor],\n })\n\n const { _type, label } = field\n const showPlaceholder = useMemo(\n () => _type === 'multipleSelect' || (!!value && _type !== 'file' && _type !== 'boolean'),\n [value, _type],\n )\n\n const bg = useBackgroundColor(150)\n\n const animatedStyles = useMemo(() => {\n if (inEditable) return {}\n switch (_type) {\n case 'text':\n case 'number':\n case 'currency':\n case 'select':\n case 'datetime':\n case 'date':\n case 'time':\n return {\n shadowColor: animatedShadowColor,\n shadowOffset: { width: 0, height: 0 },\n shadowOpacity: 1,\n shadowRadius: 4,\n elevation: 5,\n backgroundColor: bg,\n } as Animated.WithAnimatedValue<ViewStyle>\n default:\n return {}\n }\n }, [_type, animatedShadowColor, inEditable, bg])\n\n const Component = useMemo(() => Components[_type] as ComponentType<T>, [_type])\n\n return (\n <View style={[staticStyles.container]}>\n {label && !inEditable ? <Text style={staticStyles.label}>{label}</Text> : null}\n <AnimatedText\n style={staticStyles.placeholder}\n show={showPlaceholder}\n color={placeholderColor}\n height={16}\n marginBottom={6}>\n {field.placeholder ?? ''}\n </AnimatedText>\n <Animated.View style={[staticStyles.inputContainer, animatedStyles]}>\n <Component ref={ref} {...props} />\n </Animated.View>\n {!inEditable && (\n <AnimatedText\n style={staticStyles.errorText}\n show={!!displayedError}\n color={errorColor}\n height={18}\n marginBottom={0}>\n {displayedError}\n </AnimatedText>\n )}\n {/* {optional && !inEditable ? <OptionalTag field={field} value={value} /> : null} */}\n </View>\n )\n}\n\nconst staticStyles = StyleSheet.create({\n container: {\n position: 'relative',\n width: '100%',\n paddingHorizontal: 4,\n // backgroundColor: 'blue',\n },\n label: {\n color: '#1A202C',\n fontSize: 14,\n paddingHorizontal: 8,\n },\n inputContainer: {\n width: '100%',\n borderRadius: 4,\n paddingVertical: 1,\n overflow: 'hidden',\n },\n errorText: {\n fontSize: 14,\n paddingHorizontal: 4,\n fontWeight: 500,\n // backgroundColor: 'red',\n },\n placeholder: {\n fontSize: 14,\n paddingHorizontal: 4,\n overflow: 'hidden',\n },\n})\n\nexport const Input = forwardRef<InputRef, FieldProps<Field>>(InputBase)\n","import { InputRef, getFieldValidate } from '@chem-po/core'\nimport { Field, useField } from '@chem-po/react'\nimport { ForwardedRef, forwardRef, useMemo } from 'react'\nimport { ChangeHandler, Controller } from 'react-hook-form'\nimport { Input } from './input/input'\n\nconst FieldComponentBase = (\n { field, name }: { field: Field; name: string },\n ref: ForwardedRef<InputRef>,\n) => {\n const { control, getOnChange, meta, onFocus, onBlur: fieldBlur } = useField(name, field)\n const validate = useMemo(() => field.validate ?? getFieldValidate(field), [field])\n\n return (\n <Controller<Field['defaultValue']>\n control={control}\n rules={{ validate }}\n name={name}\n render={({ field: { name: _, ref: _r, onBlur, ...inputProps } }) => {\n return (\n <Input\n ref={ref}\n field={field}\n input={{\n ...inputProps,\n onFocus,\n onBlur: () => {\n fieldBlur()\n onBlur()\n },\n onChange: getOnChange(inputProps.onChange as ChangeHandler),\n }}\n meta={meta}\n />\n )\n }}\n />\n )\n}\n\nexport const FieldComponent = forwardRef(FieldComponentBase)\n\nexport default FieldComponent\n","import {\n FormFooterProps,\n IFormElement,\n useBorderColor,\n useButtonColor,\n usePlaceholderColor,\n} from '@chem-po/react'\nimport { FC, PropsWithChildren, useEffect, useMemo, useRef } from 'react'\nimport { useFormContext, useFormState } from 'react-hook-form'\nimport { ActivityIndicator, Animated, StyleSheet, Text, TouchableOpacity, View } from 'react-native'\nimport { UploadProgress } from './UploadProgress'\n\nconst buttonTextColor = '#ffffff'\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n },\n progressContainer: {\n height: 5,\n width: '100%',\n },\n footerContainer: {\n flexDirection: 'column',\n paddingVertical: 8,\n gap: 5,\n borderTopWidth: 1,\n paddingHorizontal: 12,\n width: '100%',\n },\n buttonsContainer: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n gap: 10,\n },\n cancelButton: {\n flex: 1,\n paddingVertical: 6,\n borderRadius: 4,\n borderWidth: 1,\n },\n cancelButtonText: {\n color: buttonTextColor,\n fontSize: 16,\n fontWeight: '500',\n textAlign: 'center',\n },\n submitButtonContainer: {\n flex: 1,\n borderRadius: 4,\n },\n submitButton: {\n paddingVertical: 6,\n },\n submitButtonText: {\n color: buttonTextColor,\n fontSize: 16,\n fontWeight: '500',\n // textShadowColor: 'rgba(0, 0, 0, 0.75)',\n textShadowOffset: { width: 0.5, height: 0.5 },\n textShadowRadius: 5,\n textAlign: 'center',\n },\n errorText: {\n color: 'red',\n fontSize: 16,\n paddingVertical: 4,\n },\n})\n\nconst CancelButton = ({\n onBack,\n children,\n submitting,\n}: PropsWithChildren<{ onBack: () => void; submitting: boolean }>) => {\n const placeholderColor = usePlaceholderColor()\n const borderColor = useBorderColor()\n return (\n <TouchableOpacity\n disabled={submitting}\n style={[styles.cancelButton, { borderColor }]}\n onPress={onBack}>\n <Text style={[styles.cancelButtonText, { color: placeholderColor }]}>{children}</Text>\n </TouchableOpacity>\n )\n}\n\nexport const SubmitButton: FC<\n PropsWithChildren<{ onSubmitClick: () => Promise<void>; submitting: boolean; valid: boolean }>\n> = ({ onSubmitClick, submitting, children, valid }) => {\n const animatedOpacity = useRef(new Animated.Value(1)).current\n\n const textShadowColor = useMemo(() => {\n if (submitting || !valid) return 'rgba(0, 0, 0, 0.0)'\n return 'rgba(0, 0, 0, 0.5)'\n }, [submitting, valid])\n useEffect(() => {\n Animated.timing(animatedOpacity, {\n toValue: submitting || !valid ? 0.5 : 1,\n duration: 200,\n useNativeDriver: true,\n }).start()\n }, [submitting, valid, animatedOpacity])\n\n const buttonBg = useButtonColor()\n\n return (\n <Animated.View\n style={[\n styles.submitButtonContainer,\n { opacity: animatedOpacity, backgroundColor: buttonBg },\n ]}>\n <TouchableOpacity\n style={styles.submitButton}\n onPress={() => {\n onSubmitClick()\n }}\n disabled={submitting}>\n {submitting ? (\n <ActivityIndicator color={buttonTextColor} />\n ) : (\n <Text style={[styles.submitButtonText, { textShadowColor }]}>{children}</Text>\n )}\n </TouchableOpacity>\n </Animated.View>\n )\n}\n\nconst FormErrorView = () => {\n const { formState } = useFormContext()\n if (!formState.errors.root) return null\n return <Text style={styles.errorText}>{formState.errors.root.message}</Text>\n}\n\nexport const FormFooter = <F extends IFormElement>({\n renderFooter,\n ...props\n}: FormFooterProps<F>) => {\n const { uploads, onSubmit, onBack, buttonText } = props\n const borderColor = useBorderColor()\n const { isSubmitting: submitting, isValid: valid } = useFormState()\n return (\n <View style={styles.container}>\n <UploadProgress uploads={uploads} />\n {renderFooter ? (\n renderFooter(props)\n ) : (\n <View style={[styles.footerContainer, { borderColor }]}>\n <FormErrorView />\n <View style={styles.buttonsContainer}>\n {onBack && (\n <CancelButton submitting={submitting} onBack={onBack}>\n Cancel\n </CancelButton>\n )}\n <SubmitButton onSubmitClick={onSubmit} submitting={submitting} valid={valid}>\n {buttonText}\n </SubmitButton>\n </View>\n </View>\n )}\n </View>\n )\n}\n","import { UploadsState } from '@chem-po/core'\nimport { useMemo } from 'react'\nimport { Animated, StyleSheet, Text, View } from 'react-native'\n\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n flexDirection: 'column',\n },\n progressContainer: {\n paddingHorizontal: 8,\n height: 26,\n width: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n },\n progressBar: {\n height: '100%',\n width: '100%',\n borderRadius: 13,\n backgroundColor: 'rgba(0, 0, 0, 0.1)',\n overflow: 'hidden',\n },\n progressFill: {\n height: '100%',\n backgroundColor: '#3182CE', // Default blue color, can be customized\n },\n label: {\n position: 'absolute',\n color: 'white',\n fontSize: 12,\n fontWeight: '500',\n textTransform: 'uppercase',\n textShadowColor: 'rgba(0, 0, 0, 0.67)',\n textShadowOffset: { width: 1, height: 1 },\n textShadowRadius: 3,\n },\n})\n\nexport const UploadProgress = ({ uploads }: { uploads: UploadsState }) => {\n const asArr = useMemo(() => Object.values(uploads), [uploads])\n\n return (\n <View style={styles.container}>\n {asArr.map(upload => (\n <Animated.View key={upload.label} style={styles.progressContainer}>\n <View style={styles.progressBar}>\n <Animated.View\n style={[\n styles.progressFill,\n {\n width: `${upload.percent * 100}%`,\n },\n ]}\n />\n </View>\n <Text style={styles.label}>{upload.label}</Text>\n </Animated.View>\n ))}\n </View>\n )\n}\n","import { ImageViewOptions } from '@chem-po/core'\nimport { FileField } from '@chem-po/react'\nimport { useMemo } from 'react'\nimport { StyleSheet, Text, View, ViewStyle } from 'react-native'\nimport { FileView } from '../input/file'\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'column',\n },\n rowContainer: {\n flexDirection: 'row',\n },\n label: {\n paddingRight: 8,\n opacity: 0.7,\n fontWeight: '600',\n },\n emptyText: {\n opacity: 0.7,\n },\n fileContainer: {\n padding: 4,\n },\n})\n\nexport const FileFieldView = ({\n field,\n value,\n noLabel,\n style,\n}: {\n field: FileField\n value: any\n noLabel?: boolean\n style?: ViewStyle\n}) => {\n const { imageOptions, placeholder } = field\n const options = useMemo<ImageViewOptions>(\n () => ({\n height: 150,\n ...imageOptions,\n }),\n [imageOptions],\n )\n\n return (\n <View style={[value ? styles.container : styles.rowContainer, style]}>\n {!noLabel && <Text style={styles.label}>{placeholder}</Text>}\n {value ? (\n <View style={styles.fileContainer}>\n <FileView imageOptions={options} value={value} />\n </View>\n ) : (\n <Text style={styles.emptyText}>None</Text>\n )}\n </View>\n )\n}\n","import { MultipleSelectField } from '@chem-po/react'\nimport { StyleSheet, Text, useColorScheme, View, ViewStyle } from 'react-native'\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n alignItems: 'center',\n maxWidth: '100%',\n },\n label: {\n paddingRight: 8,\n opacity: 0.7,\n fontWeight: '600',\n },\n optionContainer: {\n padding: 2,\n },\n emptyText: {\n opacity: 0.6,\n },\n})\n\nexport const MultipleSelectFieldView = ({\n field,\n value,\n noLabel,\n style,\n}: {\n field: MultipleSelectField\n value: any[]\n noLabel?: boolean\n style?: ViewStyle\n}) => {\n const { placeholder, renderOption, getOptionKey } = field\n const colorScheme = useColorScheme() ?? 'light'\n\n return (\n <View style={[styles.container, style]}>\n {!noLabel && <Text style={styles.label}>{placeholder}</Text>}\n {value ? (\n value.map((v: any) => (\n <View key={getOptionKey ? getOptionKey(v) : v} style={styles.optionContainer}>\n {renderOption(v, colorScheme, true)}\n </View>\n ))\n ) : (\n <Text style={styles.emptyText}>None</Text>\n )}\n </View>\n )\n}\n","import { SelectField, usePlaceholderColor } from '@chem-po/react'\nimport { StyleSheet, Text, useColorScheme, View, ViewStyle } from 'react-native'\nimport { Txt } from '../../text'\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n label: {\n paddingRight: 10,\n fontWeight: '600',\n },\n})\n\nconst DefaultRenderOption = (value: any) => {\n return <Txt>{typeof value === 'string' ? value : JSON.stringify(value)}</Txt>\n}\n\nexport const SelectFieldView = ({\n field,\n value,\n noLabel,\n style,\n}: {\n field: SelectField\n value: any\n noLabel?: boolean\n style?: ViewStyle\n}) => {\n const { placeholder, renderOption: customRender } = field\n const colorScheme = useColorScheme() ?? 'light'\n const placeholderColor = usePlaceholderColor()\n const renderOption = customRender ?? DefaultRenderOption\n return (\n <View style={[styles.container, style]}>\n {!noLabel && <Text style={[styles.label, { color: placeholderColor }]}>{placeholder}</Text>}\n {value ? renderOption(value, colorScheme, true) : 'None'}\n </View>\n )\n}\n","import { formatField } from '@chem-po/core'\nimport { Field } from '@chem-po/react'\nimport { useMemo } from 'react'\nimport { StyleSheet, Text, View, ViewStyle } from 'react-native'\nimport { FileFieldView } from './file'\nimport { MultipleSelectFieldView } from './multipleSelect'\nimport { SelectFieldView } from './select'\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n label: {\n paddingRight: 8,\n opacity: 0.7,\n fontWeight: '600',\n },\n value: {\n opacity: 1,\n },\n valueEmpty: {\n opacity: 0.6,\n },\n})\n\nconst DefaultFieldView = ({\n field,\n value,\n noLabel,\n style,\n}: {\n field: Field\n value: any\n noLabel?: boolean\n style?: ViewStyle\n}) => {\n const { placeholder } = field\n\n const formatted = useMemo(() => {\n const format = formatField[field._type]\n if (!format) return value\n return format(field, value)\n }, [value, field])\n\n return (\n <View style={[styles.container, style]}>\n {!noLabel && <Text style={styles.label}>{placeholder}</Text>}\n <Text style={value !== undefined && value !== null ? styles.value : styles.valueEmpty}>\n {formatted ?? 'None'}\n </Text>\n </View>\n )\n}\n\nexport const FieldView = ({\n field,\n value,\n noLabel,\n style,\n}: {\n field: Field\n value: any\n noLabel?: boolean\n style?: ViewStyle\n}) => {\n switch (field._type) {\n case 'select':\n return <SelectFieldView style={style} field={field} value={value} noLabel={noLabel} />\n case 'multipleSelect':\n return <MultipleSelectFieldView style={style} field={field} value={value} noLabel={noLabel} />\n case 'file':\n return <FileFieldView style={style} field={field} value={value} noLabel={noLabel} />\n default:\n return <DefaultFieldView style={style} field={field} value={value} noLabel={noLabel} />\n }\n}\n","import { InputRef } from '@chem-po/core'\nimport { Field, useStandaloneInput } from '@chem-po/react'\nimport { ForwardedRef, forwardRef } from 'react'\nimport { StyleProp, ViewStyle } from 'react-native'\nimport { Input } from './input'\n\ninterface StandaloneInputProps {\n onChange: (v?: any) => void\n value?: any\n field: Field\n onBlur?: () => void\n onFocus?: () => void\n theme?: 'basic' | 'detailed'\n inEditable?: boolean\n style?: StyleProp<ViewStyle>\n}\n\nconst StandaloneInputBase = (\n { onChange, value, field, onBlur, inEditable, onFocus, style }: StandaloneInputProps,\n ref: ForwardedRef<InputRef>,\n) => {\n const { inputProps, meta } = useStandaloneInput(field, value, onChange, onFocus, onBlur)\n\n return (\n <Input\n ref={ref}\n field={field}\n inEditable={inEditable}\n style={style}\n input={inputProps}\n meta={meta}\n />\n )\n}\n\nexport const StandaloneInput = forwardRef(StandaloneInputBase)\n","import { palette } from '@chem-po/core'\nimport { EditableProps, Field, useColorModeValue, useEditable } from '@chem-po/react'\nimport { Ionicons } from '@expo/vector-icons'\nimport { useEffect, useMemo } from 'react'\nimport { StyleSheet, TouchableOpacity, View, ViewStyle } from 'react-native'\nimport { LoadingOverlay } from '../../loading/Loading'\nimport { UploadProgress } from '../UploadProgress'\nimport { FieldView } from '../view'\nimport { StandaloneInput } from './StandaloneInput'\n\nexport const Editable = <T extends Field>({\n value: initValue,\n field,\n onSubmit,\n storagePath,\n style,\n onEditClose,\n onEditOpen,\n}: EditableProps<ViewStyle, T>) => {\n const {\n formattedValue,\n inputRef,\n setValue,\n isLoading,\n uploads,\n editHovered,\n handleEditOpen,\n handleEditClose,\n isEditing,\n value,\n setEditHovered,\n submitValue,\n submit,\n parse,\n } = useEditable({\n value: initValue,\n field,\n onSubmit,\n storagePath,\n onEditOpen,\n onEditClose,\n })\n\n const alwaysEditing = useMemo(() => field._type === 'file' || field._type === 'boolean', [field])\n\n useEffect(() => {\n if (isEditing) {\n inputRef.current?.focus()\n }\n }, [isEditing, inputRef])\n\n const editingBorderColor = useColorModeValue('#00000055', '#ffffff55')\n\n return (\n <View\n style={[\n styles.container,\n {\n borderColor: editHovered && !isEditing ? editingBorderColor : 'transparent',\n },\n style,\n ]}>\n <View style={styles.contentContainer}>\n <View\n style={[\n styles.inputContainer,\n {\n opacity: isLoading ? 0 : 1,\n borderColor: isEditing ? editingBorderColor : 'transparent',\n },\n ]}>\n {isEditing || alwaysEditing ? (\n <StandaloneInput\n ref={inputRef}\n value={formattedValue}\n inEditable\n field={field}\n style={[styles.input, style]}\n onChange={alwaysEditing ? v => submitValue(parse(v)) : v => setValue(parse(v))}\n />\n ) : (\n <FieldView style={style} field={field} value={value} />\n )}\n </View>\n\n {!alwaysEditing && (\n <>\n <TouchableOpacity\n style={styles.editButton}\n onPress={() => {\n if (isEditing) {\n setValue(value)\n handleEditClose()\n } else {\n handleEditOpen()\n }\n }}\n onPressIn={() => setEditHovered(true)}\n onPressOut={() => setEditHovered(false)}>\n <Ionicons\n name={isEditing ? 'close' : 'create-outline'}\n size={20}\n color={palette.gray.medium}\n />\n </TouchableOpacity>\n\n <View\n style={[\n styles.submitButtonContainer,\n {\n width: isEditing ? 30 : 0,\n opacity: isEditing ? 1 : 0,\n },\n ]}>\n <TouchableOpacity\n style={[styles.submitButton, { backgroundColor: palette.cyan.light }]}\n onPress={() => {\n submit()\n }}>\n <Ionicons name=\"checkmark\" size={20} color=\"#fff\" />\n </TouchableOpacity>\n </View>\n </>\n )}\n <LoadingOverlay isLoading={isLoading} />\n </View>\n <UploadProgress uploads={uploads} />\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n borderRadius: 4,\n borderWidth: 1,\n borderStyle: 'dashed',\n width: '100%',\n },\n contentContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n paddingHorizontal: 4,\n position: 'relative',\n width: '100%',\n },\n inputContainer: {\n flex: 1,\n minWidth: 0,\n borderWidth: 1,\n borderStyle: 'dashed',\n },\n input: {\n padding: 0,\n },\n editButton: {\n padding: 4,\n marginLeft: 4,\n },\n submitButtonContainer: {\n justifyContent: 'flex-end',\n overflow: 'hidden',\n },\n submitButton: {\n padding: 4,\n borderRadius: 4,\n },\n})\n","import { isField, isListField } from '@chem-po/core'\nimport {\n ChempoFormProvider,\n DataViewProps,\n DataViewProvider,\n Field,\n FieldFormProps,\n FieldMap,\n FieldMapFormProps,\n FormProps,\n IFormElement,\n ListField,\n useButtonColor,\n useDataView,\n useFormSubmit,\n UseFormSubmitProps,\n} from '@chem-po/react'\nimport { FC, useMemo, useState } from 'react'\nimport { useFieldArray, useFormContext } from 'react-hook-form'\nimport { StyleSheet, Text, TouchableOpacity, View } from 'react-native'\nimport { Expandable } from '../box/Expandable'\nimport { DeleteButton } from '../button/DeleteButton'\nimport { Condition } from './Condition'\nimport { FieldComponent } from './Field'\nimport { FormFooter } from './FormFooter'\nimport { Editable } from './input/Editable'\nimport { FieldView } from './view'\n\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n },\n listContainer: {\n width: '100%',\n paddingHorizontal: 8,\n paddingVertical: 4,\n gap: 8,\n },\n listHeader: {\n fontSize: 14,\n opacity: 0.7,\n lineHeight: 1,\n },\n listContent: {\n gap: 8,\n paddingVertical: 4,\n minHeight: 30,\n },\n listItem: {\n paddingTop: 8,\n paddingHorizontal: 8,\n borderWidth: 1,\n borderColor: '#e2e8f0',\n borderRadius: 4,\n },\n listItemContent: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 4,\n width: '100%',\n },\n listItemInput: {\n flex: 1,\n minWidth: 0,\n },\n emptyListText: {\n fontSize: 14,\n opacity: 0.7,\n paddingVertical: 4,\n paddingHorizontal: 8,\n },\n newButton: {\n alignSelf: 'flex-start',\n paddingVertical: 4,\n paddingHorizontal: 8,\n borderRadius: 4,\n },\n newButtonText: {\n fontSize: 14,\n color: '#4a5568',\n },\n formElementContainer: {\n width: '100%',\n gap: 5,\n },\n dataViewHeader: {\n flexDirection: 'row',\n alignItems: 'center',\n paddingHorizontal: 8,\n width: '100%',\n },\n dataViewTitle: {\n fontSize: 18,\n fontFamily: 'System',\n paddingVertical: 8,\n },\n dataViewActions: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n marginLeft: 'auto',\n },\n dataViewContent: {\n paddingHorizontal: 16,\n paddingVertical: 8,\n },\n})\n\nexport const ListFieldInput: FC<{ field: ListField; name: string }> = ({ field, name }) => {\n const emptyData = useMemo(() => {\n if (isField(field.itemField)) return ''\n if (isListField(field.itemField)) return []\n return {}\n }, [field])\n\n const buttonColor = useButtonColor()\n const { control } = useFormContext()\n const { fields, append, remove } = useFieldArray({\n control,\n name,\n })\n\n return (\n <View style={styles.listContainer}>\n <Text style={styles.listHeader}>{field.placeholder}</Text>\n <View style={styles.listContent}>\n {fields.length ? (\n fields.map((formField, idx) => (\n <View key={formField.id} style={styles.listItem}>\n <View style={styles.listItemContent}>\n <View style={styles.listItemInput}>\n <FormElement name={formField.id} field={field.itemField} />\n </View>\n <DeleteButton\n onDelete={() => remove(idx)}\n itemName={`${field.placeholder} ${idx + 1}`}\n />\n </View>\n </View>\n ))\n ) : (\n <Text style={styles.emptyListText}>No items</Text>\n )}\n </View>\n <TouchableOpacity\n style={[styles.newButton, { backgroundColor: buttonColor }]}\n onPress={() => append(emptyData)}>\n <Text style={styles.newButtonText}>+ NEW</Text>\n </TouchableOpacity>\n </View>\n )\n}\n\nexport const FormElement = ({ field, name }: { field: IFormElement; name: string }) => {\n const fields = useMemo<Array<{ name: string; field: IFormElement }>>(() => {\n if (isField(field) || isListField(field)) return [{ name: 'value', field }]\n\n return Object.entries((field as FieldMap).children).map(([childName, childField]) => ({\n name: `${name ? `${name}.` : ''}${childName}`,\n field: childField,\n }))\n }, [field, name])\n\n return (\n <View style={styles.formElementContainer}>\n {fields.map(f => {\n if (isListField(f.field)) {\n const b = <ListFieldInput key={f.name} name={f.name} field={f.field} />\n return f.field.condition ? (\n <Condition path={name} condition={f.field.condition} key={f.name}>\n {b}\n </Condition>\n ) : (\n b\n )\n }\n if (isField(f.field)) {\n const b = <FieldComponent key={f.name} name={f.name} field={f.field} />\n return f.field.condition ? (\n <Condition path={name} condition={f.field.condition} key={f.name}>\n {b}\n </Condition>\n ) : (\n b\n )\n }\n\n const b = <FormElement key={f.name} name={f.name} field={f.field} />\n return f.field.condition ? (\n <Condition path={name} condition={f.field.condition} key={f.name}>\n {b}\n </Condition>\n ) : (\n b\n )\n })}\n </View>\n )\n}\n\nconst ListFieldView = ({\n field,\n value,\n path,\n}: {\n field: ListField\n value: any[]\n path: string\n}) => {\n const { itemField, placeholder } = field\n return (\n <View style={styles.listContainer}>\n <Expandable header={() => <Text style={styles.listHeader}>{placeholder}</Text>} initExpanded>\n <View style={styles.listContent}>\n {value?.length ? (\n value.map((item, index) => (\n <View key={`${path}.${index}`} style={styles.listItem}>\n <FormElementView\n path={`${path}.${index}`}\n field={{ ...itemField, placeholder: `${placeholder} ${index + 1}` }}\n value={item}\n />\n </View>\n ))\n ) : (\n <Text style={styles.emptyListText}>No items</Text>\n )}\n </View>\n </Expandable>\n </View>\n )\n}\n\nconst FormElementView = ({\n field,\n value,\n path,\n storagePath,\n}: {\n field: IFormElement\n value: any\n path: string\n storagePath?: string\n}) => {\n const { updateField } = useDataView()\n if (isField(field)) {\n return updateField ? (\n <Editable\n storagePath={storagePath}\n field={field}\n value={value}\n onSubmit={v => updateField(path, v)}\n />\n ) : (\n <FieldView field={field} value={value} />\n )\n }\n if (isListField(field)) {\n return <ListFieldView path={path} field={field} value={value} />\n }\n return (\n <DataView\n storagePath={storagePath ? `${storagePath}.${path}` : undefined}\n path={path}\n field={field}\n />\n )\n}\n\nexport const DataView = ({\n field,\n value,\n onClose,\n onDelete,\n onSubmit,\n itemName,\n storagePath,\n path = '',\n}: DataViewProps & { path?: string }) => {\n const { name: fieldName, children } = field\n const [isEditing, setIsEditing] = useState(false)\n\n return (\n <DataViewProvider value={value} onSubmit={onSubmit}>\n <Expandable\n alwaysExpanded\n header={() => (\n <View style={styles.dataViewHeader}>\n <Text style={styles.dataViewTitle}>{fieldName}</Text>\n <View style={styles.dataViewActions}>\n {onDelete && <DeleteButton onDelete={onDelete} itemName={itemName ?? 'item'} />}\n {onSubmit && (\n <TouchableOpacity onPress={() => setIsEditing(true)}>\n <Text>Edit</Text>\n </TouchableOpacity>\n )}\n {onClose && (\n <TouchableOpacity onPress={onClose}>\n <Text>Close</Text>\n </TouchableOpacity>\n )}\n </View>\n </View>\n )}>\n {isEditing && onSubmit ? (\n <Form\n storagePath={storagePath}\n field={field}\n value={value}\n onSubmit={onSubmit}\n onBack={() => setIsEditing(false)}\n />\n ) : (\n <View style={styles.dataViewContent}>\n {Object.entries(children).map(([key, childField]) => (\n <FormElementView\n storagePath={storagePath ? `${storagePath}/${key}` : undefined}\n path={path ? `${path}.${key}` : key}\n key={key}\n field={childField}\n value={value?.[key]}\n />\n ))}\n </View>\n )}\n </Expandable>\n </DataViewProvider>\n )\n}\n\nexport const FieldMapForm = <F extends FieldMap>({\n onSubmit: onSubmitProp,\n onBack,\n field,\n value,\n buttonText = 'SUBMIT',\n renderFooter,\n storagePath,\n}: FieldMapFormProps<F>) => {\n const useSubmitDataProps = useMemo<UseFormSubmitProps<F>>(\n () => ({\n field,\n value,\n submit: onSubmitProp,\n storagePath,\n }),\n [field, value, onSubmitProp, storagePath],\n )\n const { onSubmit, uploads } = useFormSubmit(useSubmitDataProps)\n\n return (\n <View style={styles.container}>\n <FormElement name=\"\" field={field} />\n <FormFooter\n uploads={uploads}\n onSubmit={onSubmit}\n renderFooter={renderFooter}\n onBack={onBack}\n buttonText={buttonText}\n />\n </View>\n )\n}\n\nexport const FieldForm = <F extends Field | ListField>({\n onSubmit,\n field,\n value,\n ...props\n}: FieldFormProps<F>) => {\n const fieldMap = useMemo<FieldMap>(() => ({ children: { value: field } }), [field])\n return (\n <FieldMapForm\n field={fieldMap}\n value={{ value }}\n onSubmit={data => onSubmit(data?.value)}\n {...props}\n />\n )\n}\n\nexport const Form = <F extends IFormElement>({ field, ...props }: FormProps<F>) => {\n const body =\n isField(field) || isListField(field) ? (\n <FieldForm field={field} {...props} />\n ) : (\n <FieldMapForm field={field} {...props} />\n )\n\n return <ChempoFormProvider>{body}</ChempoFormProvider>\n}\n\nexport default Form\n","import { useBackgroundColor, useIconColor, useTheme } from '@chem-po/react'\nimport { Ionicons } from '@expo/vector-icons'\nimport { StyleSheet, TouchableOpacity, View } from 'react-native'\n\nexport const DarkModeToggle = () => {\n const { colorMode, toggleColorMode } = useTheme()\n const isDark = colorMode === 'dark'\n\n const iconColor = useIconColor()\n const iconName = isDark ? 'moon' : 'sunny'\n const bg = useBackgroundColor(100)\n return (\n <TouchableOpacity\n onPress={toggleColorMode}\n style={[\n styles.button,\n {\n backgroundColor: bg,\n },\n ]}>\n <Ionicons name={iconName} size={16} color={iconColor} />\n </TouchableOpacity>\n )\n}\n\nexport const AbsoluteDarkModeToggle = () => (\n <View style={styles.container}>\n <DarkModeToggle />\n </View>\n)\n\nconst styles = StyleSheet.create({\n container: {\n position: 'absolute',\n bottom: 12,\n right: 12,\n },\n button: {\n width: 25,\n height: 25,\n borderRadius: 16,\n justifyContent: 'center',\n alignItems: 'center',\n },\n})\n","import { ToastProviderProps } from '@chem-po/react'\nimport { Notifier, NotifierComponents } from 'react-native-notifier'\nimport { AlertComponentProps } from 'react-native-notifier/lib/typescript/src/components/Alert'\nimport { NotificationComponentProps } from 'react-native-notifier/lib/typescript/src/components/Notification'\n\n// react-native toast messages\nexport const nativeToast: ToastProviderProps = {\n closeMessage: () => Notifier.hideNotification(),\n showMessage: ({ title, type, duration, message }) => {\n const Component = type === 'info' ? NotifierComponents.Notification : NotifierComponents.Alert\n const componentProps = {\n alertType: type === 'error' ? 'error' : 'success',\n } as NotificationComponentProps | AlertComponentProps\n Notifier.showNotification({\n title,\n description: message,\n duration,\n Component,\n componentProps,\n })\n return 'root'\n },\n}\n","import { ColorMode, Theme } from '@chem-po/core'\nimport { ThemeProps } from '@chem-po/react'\nimport { useMemo, useState } from 'react'\n\nexport interface UseThemeProps {\n initialColorMode?: ColorMode\n theme?: Theme\n}\n\nexport const useThemeState = (props?: UseThemeProps) => {\n const { initialColorMode, theme } = props ?? {}\n const [colorMode, setColorMode] = useState<ColorMode>(initialColorMode ?? 'light')\n\n return useMemo<ThemeProps>(\n () => ({ colorMode, setColorMode, theme }),\n [colorMode, setColorMode, theme],\n )\n}\n","import { useScreen } from '@chem-po/react'\nimport { Dimensions } from 'react-native'\n\nexport const initializeScreen = () => {\n const onDimensionsChange = () => {\n const { width, height } = Dimensions.get('window')\n useScreen.setState({\n width,\n height,\n isMobile: true, // In React Native, we're always on mobile\n isPortrait: width < height,\n })\n }\n\n // Initial setup\n onDimensionsChange()\n\n // Add listener for dimension changes\n const subscription = Dimensions.addEventListener('change', onDimensionsChange)\n\n // Return cleanup function\n return () => {\n subscription.remove()\n }\n}\n","import { BackendAdapterInterface, ColorMode, Theme } from '@chem-po/core'\nimport { ChempoProps, ChempoProvider } from '@chem-po/react'\nimport { PropsWithChildren, useMemo } from 'react'\nimport { NotifierWrapper } from 'react-native-notifier'\nimport { en, registerTranslation } from 'react-native-paper-dates'\nimport { nativeToast } from '../constants/toast'\nimport { useThemeState } from '../hooks/useThemeState'\nimport { initializeScreen } from '../store/useScreen'\n\nregisterTranslation('en', en)\n\nexport interface ChempoNativeProviderProps\n extends PropsWithChildren<\n Pick<ChempoProps<BackendAdapterInterface>, 'backendAdapter' | 'assets'>\n > {\n theme?: Theme\n initialColorMode?: ColorMode\n}\nexport const ChempoNativeProvider = ({\n theme: themeProp,\n initialColorMode,\n ...props\n}: ChempoNativeProviderProps) => {\n const useThemeProps = useMemo(\n () => ({ theme: themeProp, initialColorMode }),\n [themeProp, initialColorMode],\n )\n const theme = useThemeState(useThemeProps)\n return (\n <NotifierWrapper>\n <ChempoProvider\n toast={nativeToast}\n theme={theme}\n initializeScreen={initializeScreen}\n {...props}\n />\n </NotifierWrapper>\n )\n}\n"]}