@tecsinapse/react-native-kit 1.20.0 → 1.22.0-beta.13

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 (415) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/components/atoms/Avatar/Avatar.d.ts +2 -1
  3. package/dist/components/atoms/Avatar/Avatar.js +34 -20
  4. package/dist/components/atoms/Avatar/Avatar.js.map +1 -1
  5. package/dist/components/atoms/Avatar/index.d.ts +1 -1
  6. package/dist/components/atoms/Badge/Badge.js +58 -29
  7. package/dist/components/atoms/Badge/Badge.js.map +1 -1
  8. package/dist/components/atoms/Badge/index.d.ts +2 -1
  9. package/dist/components/atoms/BottomNavigator/BottomNavigator.js +71 -39
  10. package/dist/components/atoms/BottomNavigator/BottomNavigator.js.map +1 -1
  11. package/dist/components/atoms/BottomNavigator/Item.js +68 -31
  12. package/dist/components/atoms/BottomNavigator/Item.js.map +1 -1
  13. package/dist/components/atoms/BottomNavigator/index.d.ts +3 -2
  14. package/dist/components/atoms/BottomNavigator/styled.js +25 -42
  15. package/dist/components/atoms/BottomNavigator/styled.js.map +1 -1
  16. package/dist/components/atoms/Button/Button.js +55 -23
  17. package/dist/components/atoms/Button/Button.js.map +1 -1
  18. package/dist/components/atoms/Button/States/Error.d.ts +1 -1
  19. package/dist/components/atoms/Button/States/Error.js +34 -22
  20. package/dist/components/atoms/Button/States/Error.js.map +1 -1
  21. package/dist/components/atoms/Button/States/Loading.d.ts +1 -1
  22. package/dist/components/atoms/Button/States/Loading.js +34 -22
  23. package/dist/components/atoms/Button/States/Loading.js.map +1 -1
  24. package/dist/components/atoms/Button/States/Success.d.ts +1 -1
  25. package/dist/components/atoms/Button/States/Success.js +34 -22
  26. package/dist/components/atoms/Button/States/Success.js.map +1 -1
  27. package/dist/components/atoms/Button/index.d.ts +2 -1
  28. package/dist/components/atoms/GroupButton/GroupButtonOption.js +34 -21
  29. package/dist/components/atoms/GroupButton/GroupButtonOption.js.map +1 -1
  30. package/dist/components/atoms/Header/Header.js +75 -32
  31. package/dist/components/atoms/Header/Header.js.map +1 -1
  32. package/dist/components/atoms/Header/index.d.ts +2 -1
  33. package/dist/components/atoms/Header/styled.js +14 -15
  34. package/dist/components/atoms/Header/styled.js.map +1 -1
  35. package/dist/components/atoms/Input/Input.js +133 -89
  36. package/dist/components/atoms/Input/Input.js.map +1 -1
  37. package/dist/components/atoms/Input/index.d.ts +2 -1
  38. package/dist/components/atoms/Input/styled.js +12 -14
  39. package/dist/components/atoms/Input/styled.js.map +1 -1
  40. package/dist/components/atoms/InputMask/InputMask.js +135 -87
  41. package/dist/components/atoms/InputMask/InputMask.js.map +1 -1
  42. package/dist/components/atoms/InputMask/index.d.ts +2 -1
  43. package/dist/components/atoms/InputMask/styled.js +15 -17
  44. package/dist/components/atoms/InputMask/styled.js.map +1 -1
  45. package/dist/components/atoms/Modal/ModalGroupManager.js +47 -29
  46. package/dist/components/atoms/Modal/ModalGroupManager.js.map +1 -1
  47. package/dist/components/atoms/Modal/ModalLifecycleHandler.js +94 -87
  48. package/dist/components/atoms/Modal/ModalLifecycleHandler.js.map +1 -1
  49. package/dist/components/atoms/Modal/ui/BaseModalView.js +106 -105
  50. package/dist/components/atoms/Modal/ui/BaseModalView.js.map +1 -1
  51. package/dist/components/atoms/Modal/ui/styled.js +19 -21
  52. package/dist/components/atoms/Modal/ui/styled.js.map +1 -1
  53. package/dist/components/atoms/Modal/useLazyModalManager.js +22 -23
  54. package/dist/components/atoms/Modal/useLazyModalManager.js.map +1 -1
  55. package/dist/components/atoms/Modal/useModalManager.js +14 -19
  56. package/dist/components/atoms/Modal/useModalManager.js.map +1 -1
  57. package/dist/components/atoms/Modal/useModalRemoteControl.js +10 -12
  58. package/dist/components/atoms/Modal/useModalRemoteControl.js.map +1 -1
  59. package/dist/components/atoms/Skeleton/Pulse.js +20 -22
  60. package/dist/components/atoms/Skeleton/Pulse.js.map +1 -1
  61. package/dist/components/atoms/Skeleton/Skeleton.js +77 -55
  62. package/dist/components/atoms/Skeleton/Skeleton.js.map +1 -1
  63. package/dist/components/atoms/Skeleton/Wave.js +36 -40
  64. package/dist/components/atoms/Skeleton/Wave.js.map +1 -1
  65. package/dist/components/atoms/Skeleton/animation.js +29 -29
  66. package/dist/components/atoms/Skeleton/animation.js.map +1 -1
  67. package/dist/components/atoms/Skeleton/index.d.ts +2 -1
  68. package/dist/components/atoms/Skeleton/styled.js +12 -18
  69. package/dist/components/atoms/Skeleton/styled.js.map +1 -1
  70. package/dist/components/atoms/SnappingSlider/SnappingSlider.js +76 -36
  71. package/dist/components/atoms/SnappingSlider/SnappingSlider.js.map +1 -1
  72. package/dist/components/atoms/SnappingSlider/index.d.ts +2 -1
  73. package/dist/components/atoms/Tag/Tag.js +45 -25
  74. package/dist/components/atoms/Tag/Tag.js.map +1 -1
  75. package/dist/components/atoms/Tag/index.d.ts +2 -1
  76. package/dist/components/atoms/Text/Text.js +38 -15
  77. package/dist/components/atoms/Text/Text.js.map +1 -1
  78. package/dist/components/atoms/Text/index.d.ts +2 -1
  79. package/dist/components/atoms/Text/styled.js +16 -19
  80. package/dist/components/atoms/Text/styled.js.map +1 -1
  81. package/dist/components/atoms/TextArea/TextArea.js +122 -74
  82. package/dist/components/atoms/TextArea/TextArea.js.map +1 -1
  83. package/dist/components/atoms/TextArea/index.d.ts +2 -1
  84. package/dist/components/atoms/TextArea/styled.js +9 -9
  85. package/dist/components/atoms/TextArea/styled.js.map +1 -1
  86. package/dist/components/molecules/Calendar/Calendar.js +54 -25
  87. package/dist/components/molecules/Calendar/Calendar.js.map +1 -1
  88. package/dist/components/molecules/DatePicker/DatePicker.js +67 -42
  89. package/dist/components/molecules/DatePicker/DatePicker.js.map +1 -1
  90. package/dist/components/molecules/DatePicker/index.d.ts +2 -1
  91. package/dist/components/molecules/DatePicker/styled.js +10 -11
  92. package/dist/components/molecules/DatePicker/styled.js.map +1 -1
  93. package/dist/components/molecules/DateTimePicker/DateTimePicker.js +61 -34
  94. package/dist/components/molecules/DateTimePicker/DateTimePicker.js.map +1 -1
  95. package/dist/components/molecules/DateTimePicker/index.d.ts +2 -1
  96. package/dist/components/molecules/DateTimeSelector/DateTimeSelector.js +54 -25
  97. package/dist/components/molecules/DateTimeSelector/DateTimeSelector.js.map +1 -1
  98. package/dist/components/molecules/Grid/Grid.js +79 -42
  99. package/dist/components/molecules/Grid/Grid.js.map +1 -1
  100. package/dist/components/molecules/Grid/Item/Item.js +90 -56
  101. package/dist/components/molecules/Grid/Item/Item.js.map +1 -1
  102. package/dist/components/molecules/IconTextButton/IconTextButton.js +70 -42
  103. package/dist/components/molecules/IconTextButton/IconTextButton.js.map +1 -1
  104. package/dist/components/molecules/IconTextButton/TextComponent.js +38 -26
  105. package/dist/components/molecules/IconTextButton/TextComponent.js.map +1 -1
  106. package/dist/components/molecules/IconTextButton/index.d.ts +2 -1
  107. package/dist/components/molecules/IconTextButton/styled.js +22 -31
  108. package/dist/components/molecules/IconTextButton/styled.js.map +1 -1
  109. package/dist/components/molecules/InputPassword/InputPassword.js +60 -37
  110. package/dist/components/molecules/InputPassword/InputPassword.js.map +1 -1
  111. package/dist/components/molecules/InputPassword/index.d.ts +2 -1
  112. package/dist/components/molecules/LabeledSwitch/LabelComponent.js +58 -29
  113. package/dist/components/molecules/LabeledSwitch/LabelComponent.js.map +1 -1
  114. package/dist/components/molecules/LabeledSwitch/LabeledSwitch.js +70 -41
  115. package/dist/components/molecules/LabeledSwitch/LabeledSwitch.js.map +1 -1
  116. package/dist/components/molecules/LabeledSwitch/index.d.ts +2 -1
  117. package/dist/components/molecules/LabeledSwitch/styled.js +18 -20
  118. package/dist/components/molecules/LabeledSwitch/styled.js.map +1 -1
  119. package/dist/components/molecules/Select/Modal.js +206 -133
  120. package/dist/components/molecules/Select/Modal.js.map +1 -1
  121. package/dist/components/molecules/Select/Select.js +217 -135
  122. package/dist/components/molecules/Select/Select.js.map +1 -1
  123. package/dist/components/molecules/Select/index.d.ts +2 -1
  124. package/dist/components/molecules/Select/styled.js +54 -83
  125. package/dist/components/molecules/Select/styled.js.map +1 -1
  126. package/dist/components/molecules/Snackbar/Snackbar.d.ts +1 -1
  127. package/dist/components/molecules/Snackbar/Snackbar.js +52 -28
  128. package/dist/components/molecules/Snackbar/Snackbar.js.map +1 -1
  129. package/dist/components/molecules/Snackbar/index.d.ts +2 -1
  130. package/dist/components/molecules/Snackbar/styled.js +11 -14
  131. package/dist/components/molecules/Snackbar/styled.js.map +1 -1
  132. package/dist/index.d.ts +38 -19
  133. package/dist/index.js +80 -191
  134. package/dist/index.js.map +1 -1
  135. package/dist/utils/date.js +31 -19
  136. package/dist/utils/date.js.map +1 -1
  137. package/esm/components/atoms/Avatar/Avatar.d.ts +4 -0
  138. package/esm/components/atoms/Avatar/Avatar.js +31 -0
  139. package/esm/components/atoms/Avatar/Avatar.js.map +1 -0
  140. package/esm/components/atoms/Avatar/index.d.ts +1 -0
  141. package/esm/components/atoms/Badge/Badge.d.ts +8 -0
  142. package/esm/components/atoms/Badge/Badge.js +56 -0
  143. package/esm/components/atoms/Badge/Badge.js.map +1 -0
  144. package/esm/components/atoms/Badge/index.d.ts +2 -0
  145. package/esm/components/atoms/BottomNavigator/BottomNavigator.d.ts +13 -0
  146. package/esm/components/atoms/BottomNavigator/BottomNavigator.js +61 -0
  147. package/esm/components/atoms/BottomNavigator/BottomNavigator.js.map +1 -0
  148. package/esm/components/atoms/BottomNavigator/Item.d.ts +19 -0
  149. package/esm/components/atoms/BottomNavigator/Item.js +58 -0
  150. package/esm/components/atoms/BottomNavigator/Item.js.map +1 -0
  151. package/esm/components/atoms/BottomNavigator/index.d.ts +3 -0
  152. package/esm/components/atoms/BottomNavigator/styled.d.ts +11 -0
  153. package/esm/components/atoms/BottomNavigator/styled.js +31 -0
  154. package/esm/components/atoms/BottomNavigator/styled.js.map +1 -0
  155. package/esm/components/atoms/Button/Button.d.ts +6 -0
  156. package/esm/components/atoms/Button/Button.js +57 -0
  157. package/esm/components/atoms/Button/Button.js.map +1 -0
  158. package/esm/components/atoms/Button/States/Error.d.ts +4 -0
  159. package/esm/components/atoms/Button/States/Error.js +31 -0
  160. package/esm/components/atoms/Button/States/Error.js.map +1 -0
  161. package/esm/components/atoms/Button/States/Loading.d.ts +4 -0
  162. package/esm/components/atoms/Button/States/Loading.js +31 -0
  163. package/esm/components/atoms/Button/States/Loading.js.map +1 -0
  164. package/esm/components/atoms/Button/States/Success.d.ts +4 -0
  165. package/esm/components/atoms/Button/States/Success.js +31 -0
  166. package/esm/components/atoms/Button/States/Success.js.map +1 -0
  167. package/esm/components/atoms/Button/States/index.d.ts +3 -0
  168. package/esm/components/atoms/Button/index.d.ts +3 -0
  169. package/esm/components/atoms/GroupButton/GroupButtonOption.d.ts +2 -0
  170. package/esm/components/atoms/GroupButton/GroupButtonOption.js +31 -0
  171. package/esm/components/atoms/GroupButton/GroupButtonOption.js.map +1 -0
  172. package/esm/components/atoms/GroupButton/index.d.ts +1 -0
  173. package/esm/components/atoms/Header/Header.d.ts +12 -0
  174. package/esm/components/atoms/Header/Header.js +62 -0
  175. package/esm/components/atoms/Header/Header.js.map +1 -0
  176. package/esm/components/atoms/Header/index.d.ts +2 -0
  177. package/esm/components/atoms/Header/styled.d.ts +8 -0
  178. package/esm/components/atoms/Header/styled.js +19 -0
  179. package/esm/components/atoms/Header/styled.js.map +1 -0
  180. package/esm/components/atoms/Input/Input.d.ts +9 -0
  181. package/esm/components/atoms/Input/Input.js +133 -0
  182. package/esm/components/atoms/Input/Input.js.map +1 -0
  183. package/esm/components/atoms/Input/index.d.ts +2 -0
  184. package/esm/components/atoms/Input/styled.d.ts +1 -0
  185. package/esm/components/atoms/Input/styled.js +13 -0
  186. package/esm/components/atoms/Input/styled.js.map +1 -0
  187. package/esm/components/atoms/InputMask/InputMask.d.ts +8 -0
  188. package/esm/components/atoms/InputMask/InputMask.js +134 -0
  189. package/esm/components/atoms/InputMask/InputMask.js.map +1 -0
  190. package/esm/components/atoms/InputMask/index.d.ts +2 -0
  191. package/esm/components/atoms/InputMask/styled.d.ts +5 -0
  192. package/esm/components/atoms/InputMask/styled.js +16 -0
  193. package/esm/components/atoms/InputMask/styled.js.map +1 -0
  194. package/esm/components/atoms/Modal/ModalGroupManager.d.ts +4 -0
  195. package/esm/components/atoms/Modal/ModalGroupManager.js +48 -0
  196. package/esm/components/atoms/Modal/ModalGroupManager.js.map +1 -0
  197. package/esm/components/atoms/Modal/ModalLifecycleHandler.d.ts +24 -0
  198. package/esm/components/atoms/Modal/ModalLifecycleHandler.js +101 -0
  199. package/esm/components/atoms/Modal/ModalLifecycleHandler.js.map +1 -0
  200. package/esm/components/atoms/Modal/index.d.ts +7 -0
  201. package/esm/components/atoms/Modal/ui/BaseModalView.d.ts +3 -0
  202. package/esm/components/atoms/Modal/ui/BaseModalView.js +143 -0
  203. package/esm/components/atoms/Modal/ui/BaseModalView.js.map +1 -0
  204. package/esm/components/atoms/Modal/ui/styled.d.ts +6 -0
  205. package/esm/components/atoms/Modal/ui/styled.js +24 -0
  206. package/esm/components/atoms/Modal/ui/styled.js.map +1 -0
  207. package/esm/components/atoms/Modal/ui/types.d.ts +10 -0
  208. package/esm/components/atoms/Modal/useLazyModalManager.d.ts +8 -0
  209. package/esm/components/atoms/Modal/useLazyModalManager.js +33 -0
  210. package/esm/components/atoms/Modal/useLazyModalManager.js.map +1 -0
  211. package/esm/components/atoms/Modal/useModalManager.d.ts +6 -0
  212. package/esm/components/atoms/Modal/useModalManager.js +24 -0
  213. package/esm/components/atoms/Modal/useModalManager.js.map +1 -0
  214. package/esm/components/atoms/Modal/useModalRemoteControl.d.ts +4 -0
  215. package/esm/components/atoms/Modal/useModalRemoteControl.js +18 -0
  216. package/esm/components/atoms/Modal/useModalRemoteControl.js.map +1 -0
  217. package/esm/components/atoms/Skeleton/Pulse.d.ts +2 -0
  218. package/esm/components/atoms/Skeleton/Pulse.js +32 -0
  219. package/esm/components/atoms/Skeleton/Pulse.js.map +1 -0
  220. package/esm/components/atoms/Skeleton/Skeleton.d.ts +12 -0
  221. package/esm/components/atoms/Skeleton/Skeleton.js +87 -0
  222. package/esm/components/atoms/Skeleton/Skeleton.js.map +1 -0
  223. package/esm/components/atoms/Skeleton/Wave.d.ts +2 -0
  224. package/esm/components/atoms/Skeleton/Wave.js +50 -0
  225. package/esm/components/atoms/Skeleton/Wave.js.map +1 -0
  226. package/esm/components/atoms/Skeleton/animation.d.ts +3 -0
  227. package/esm/components/atoms/Skeleton/animation.js +45 -0
  228. package/esm/components/atoms/Skeleton/animation.js.map +1 -0
  229. package/esm/components/atoms/Skeleton/index.d.ts +2 -0
  230. package/esm/components/atoms/Skeleton/styled.d.ts +7 -0
  231. package/esm/components/atoms/Skeleton/styled.js +13 -0
  232. package/esm/components/atoms/Skeleton/styled.js.map +1 -0
  233. package/esm/components/atoms/Skeleton/types.d.ts +12 -0
  234. package/esm/components/atoms/SnappingSlider/SnappingSlider.d.ts +10 -0
  235. package/esm/components/atoms/SnappingSlider/SnappingSlider.js +79 -0
  236. package/esm/components/atoms/SnappingSlider/SnappingSlider.js.map +1 -0
  237. package/esm/components/atoms/SnappingSlider/index.d.ts +2 -0
  238. package/esm/components/atoms/Tag/Tag.d.ts +7 -0
  239. package/esm/components/atoms/Tag/Tag.js +47 -0
  240. package/esm/components/atoms/Tag/Tag.js.map +1 -0
  241. package/esm/components/atoms/Tag/index.d.ts +2 -0
  242. package/esm/components/atoms/Text/Text.d.ts +5 -0
  243. package/esm/components/atoms/Text/Text.js +38 -0
  244. package/esm/components/atoms/Text/Text.js.map +1 -0
  245. package/esm/components/atoms/Text/index.d.ts +2 -0
  246. package/esm/components/atoms/Text/styled.d.ts +10 -0
  247. package/esm/components/atoms/Text/styled.js +20 -0
  248. package/esm/components/atoms/Text/styled.js.map +1 -0
  249. package/esm/components/atoms/TextArea/TextArea.d.ts +5 -0
  250. package/esm/components/atoms/TextArea/TextArea.js +129 -0
  251. package/esm/components/atoms/TextArea/TextArea.js.map +1 -0
  252. package/esm/components/atoms/TextArea/index.d.ts +2 -0
  253. package/esm/components/atoms/TextArea/styled.d.ts +4 -0
  254. package/esm/components/atoms/TextArea/styled.js +8 -0
  255. package/esm/components/atoms/TextArea/styled.js.map +1 -0
  256. package/esm/components/molecules/Calendar/Calendar.d.ts +1 -0
  257. package/esm/components/molecules/Calendar/Calendar.js +50 -0
  258. package/esm/components/molecules/Calendar/Calendar.js.map +1 -0
  259. package/esm/components/molecules/Calendar/index.d.ts +1 -0
  260. package/esm/components/molecules/DatePicker/DatePicker.d.ts +3 -0
  261. package/esm/components/molecules/DatePicker/DatePicker.js +76 -0
  262. package/esm/components/molecules/DatePicker/DatePicker.js.map +1 -0
  263. package/esm/components/molecules/DatePicker/index.d.ts +2 -0
  264. package/esm/components/molecules/DatePicker/styled.d.ts +4 -0
  265. package/esm/components/molecules/DatePicker/styled.js +9 -0
  266. package/esm/components/molecules/DatePicker/styled.js.map +1 -0
  267. package/esm/components/molecules/DateTimePicker/DateTimePicker.d.ts +4 -0
  268. package/esm/components/molecules/DateTimePicker/DateTimePicker.js +66 -0
  269. package/esm/components/molecules/DateTimePicker/DateTimePicker.js.map +1 -0
  270. package/esm/components/molecules/DateTimePicker/index.d.ts +2 -0
  271. package/esm/components/molecules/DateTimeSelector/DateTimeSelector.d.ts +3 -0
  272. package/esm/components/molecules/DateTimeSelector/DateTimeSelector.js +50 -0
  273. package/esm/components/molecules/DateTimeSelector/DateTimeSelector.js.map +1 -0
  274. package/esm/components/molecules/DateTimeSelector/index.d.ts +1 -0
  275. package/esm/components/molecules/Grid/Grid.d.ts +5 -0
  276. package/esm/components/molecules/Grid/Grid.js +88 -0
  277. package/esm/components/molecules/Grid/Grid.js.map +1 -0
  278. package/esm/components/molecules/Grid/Item/Item.d.ts +7 -0
  279. package/esm/components/molecules/Grid/Item/Item.js +106 -0
  280. package/esm/components/molecules/Grid/Item/Item.js.map +1 -0
  281. package/esm/components/molecules/Grid/Item/index.d.ts +1 -0
  282. package/esm/components/molecules/Grid/index.d.ts +2 -0
  283. package/esm/components/molecules/IconTextButton/IconTextButton.d.ts +6 -0
  284. package/esm/components/molecules/IconTextButton/IconTextButton.js +72 -0
  285. package/esm/components/molecules/IconTextButton/IconTextButton.js.map +1 -0
  286. package/esm/components/molecules/IconTextButton/TextComponent.d.ts +12 -0
  287. package/esm/components/molecules/IconTextButton/TextComponent.js +40 -0
  288. package/esm/components/molecules/IconTextButton/TextComponent.js.map +1 -0
  289. package/esm/components/molecules/IconTextButton/index.d.ts +2 -0
  290. package/esm/components/molecules/IconTextButton/styled.d.ts +2 -0
  291. package/esm/components/molecules/IconTextButton/styled.js +28 -0
  292. package/esm/components/molecules/IconTextButton/styled.js.map +1 -0
  293. package/esm/components/molecules/InputPassword/InputPassword.d.ts +6 -0
  294. package/esm/components/molecules/InputPassword/InputPassword.js +54 -0
  295. package/esm/components/molecules/InputPassword/InputPassword.js.map +1 -0
  296. package/esm/components/molecules/InputPassword/index.d.ts +2 -0
  297. package/esm/components/molecules/LabeledSwitch/LabelComponent.d.ts +13 -0
  298. package/esm/components/molecules/LabeledSwitch/LabelComponent.js +59 -0
  299. package/esm/components/molecules/LabeledSwitch/LabelComponent.js.map +1 -0
  300. package/esm/components/molecules/LabeledSwitch/LabeledSwitch.d.ts +8 -0
  301. package/esm/components/molecules/LabeledSwitch/LabeledSwitch.js +76 -0
  302. package/esm/components/molecules/LabeledSwitch/LabeledSwitch.js.map +1 -0
  303. package/esm/components/molecules/LabeledSwitch/index.d.ts +2 -0
  304. package/esm/components/molecules/LabeledSwitch/styled.d.ts +9 -0
  305. package/esm/components/molecules/LabeledSwitch/styled.js +24 -0
  306. package/esm/components/molecules/LabeledSwitch/styled.js.map +1 -0
  307. package/esm/components/molecules/Select/Modal.d.ts +7 -0
  308. package/esm/components/molecules/Select/Modal.js +230 -0
  309. package/esm/components/molecules/Select/Modal.js.map +1 -0
  310. package/esm/components/molecules/Select/Select.d.ts +24 -0
  311. package/esm/components/molecules/Select/Select.js +240 -0
  312. package/esm/components/molecules/Select/Select.js.map +1 -0
  313. package/esm/components/molecules/Select/index.d.ts +2 -0
  314. package/esm/components/molecules/Select/styled.d.ts +41 -0
  315. package/esm/components/molecules/Select/styled.js +78 -0
  316. package/esm/components/molecules/Select/styled.js.map +1 -0
  317. package/esm/components/molecules/Snackbar/Snackbar.d.ts +9 -0
  318. package/esm/components/molecules/Snackbar/Snackbar.js +51 -0
  319. package/esm/components/molecules/Snackbar/Snackbar.js.map +1 -0
  320. package/esm/components/molecules/Snackbar/index.d.ts +2 -0
  321. package/esm/components/molecules/Snackbar/styled.d.ts +4 -0
  322. package/esm/components/molecules/Snackbar/styled.js +10 -0
  323. package/esm/components/molecules/Snackbar/styled.js.map +1 -0
  324. package/esm/index.d.ts +44 -0
  325. package/esm/index.js +35 -0
  326. package/esm/index.js.map +1 -0
  327. package/esm/utils/date.d.ts +1 -0
  328. package/esm/utils/date.js +16 -0
  329. package/esm/utils/date.js.map +1 -0
  330. package/package.json +8 -5
  331. package/rollup.config.js +39 -0
  332. package/src/components/atoms/Avatar/Avatar.tsx +3 -1
  333. package/src/components/atoms/Avatar/index.ts +1 -1
  334. package/src/components/atoms/Badge/index.ts +2 -1
  335. package/src/components/atoms/BottomNavigator/index.ts +3 -5
  336. package/src/components/atoms/Button/States/Error.tsx +1 -1
  337. package/src/components/atoms/Button/States/Loading.tsx +1 -1
  338. package/src/components/atoms/Button/States/Success.tsx +1 -1
  339. package/src/components/atoms/Button/index.ts +2 -1
  340. package/src/components/atoms/Header/index.ts +2 -1
  341. package/src/components/atoms/Input/index.ts +2 -1
  342. package/src/components/atoms/InputMask/index.ts +2 -1
  343. package/src/components/atoms/Skeleton/index.ts +2 -1
  344. package/src/components/atoms/SnappingSlider/index.ts +2 -4
  345. package/src/components/atoms/Tag/index.ts +2 -1
  346. package/src/components/atoms/Text/index.ts +2 -1
  347. package/src/components/atoms/TextArea/index.ts +2 -1
  348. package/src/components/molecules/DatePicker/index.ts +2 -1
  349. package/src/components/molecules/DateTimePicker/index.ts +2 -1
  350. package/src/components/molecules/IconTextButton/index.ts +2 -4
  351. package/src/components/molecules/InputPassword/index.ts +2 -4
  352. package/src/components/molecules/LabeledSwitch/index.ts +2 -4
  353. package/src/components/molecules/Select/Modal.tsx +1 -1
  354. package/src/components/molecules/Select/Select.tsx +3 -2
  355. package/src/components/molecules/Select/index.ts +2 -1
  356. package/src/components/molecules/Snackbar/Snackbar.tsx +1 -1
  357. package/src/components/molecules/Snackbar/index.ts +2 -1
  358. package/src/index.ts +37 -46
  359. package/tsconfig.build.esm.json +10 -0
  360. package/dist/components/atoms/Avatar/index.js +0 -9
  361. package/dist/components/atoms/Avatar/index.js.map +0 -1
  362. package/dist/components/atoms/Badge/index.js +0 -14
  363. package/dist/components/atoms/Badge/index.js.map +0 -1
  364. package/dist/components/atoms/BottomNavigator/index.js +0 -18
  365. package/dist/components/atoms/BottomNavigator/index.js.map +0 -1
  366. package/dist/components/atoms/Button/States/index.js +0 -19
  367. package/dist/components/atoms/Button/States/index.js.map +0 -1
  368. package/dist/components/atoms/Button/index.js +0 -16
  369. package/dist/components/atoms/Button/index.js.map +0 -1
  370. package/dist/components/atoms/GroupButton/index.js +0 -11
  371. package/dist/components/atoms/GroupButton/index.js.map +0 -1
  372. package/dist/components/atoms/Header/index.js +0 -14
  373. package/dist/components/atoms/Header/index.js.map +0 -1
  374. package/dist/components/atoms/Input/index.js +0 -14
  375. package/dist/components/atoms/Input/index.js.map +0 -1
  376. package/dist/components/atoms/InputMask/index.js +0 -14
  377. package/dist/components/atoms/InputMask/index.js.map +0 -1
  378. package/dist/components/atoms/Modal/index.js +0 -60
  379. package/dist/components/atoms/Modal/index.js.map +0 -1
  380. package/dist/components/atoms/Modal/ui/types.js +0 -4
  381. package/dist/components/atoms/Modal/ui/types.js.map +0 -1
  382. package/dist/components/atoms/Skeleton/index.js +0 -14
  383. package/dist/components/atoms/Skeleton/index.js.map +0 -1
  384. package/dist/components/atoms/Skeleton/types.js +0 -4
  385. package/dist/components/atoms/Skeleton/types.js.map +0 -1
  386. package/dist/components/atoms/SnappingSlider/index.js +0 -14
  387. package/dist/components/atoms/SnappingSlider/index.js.map +0 -1
  388. package/dist/components/atoms/Tag/index.js +0 -14
  389. package/dist/components/atoms/Tag/index.js.map +0 -1
  390. package/dist/components/atoms/Text/index.js +0 -14
  391. package/dist/components/atoms/Text/index.js.map +0 -1
  392. package/dist/components/atoms/TextArea/index.js +0 -14
  393. package/dist/components/atoms/TextArea/index.js.map +0 -1
  394. package/dist/components/molecules/Calendar/index.js +0 -9
  395. package/dist/components/molecules/Calendar/index.js.map +0 -1
  396. package/dist/components/molecules/DatePicker/index.js +0 -10
  397. package/dist/components/molecules/DatePicker/index.js.map +0 -1
  398. package/dist/components/molecules/DateTimePicker/index.js +0 -10
  399. package/dist/components/molecules/DateTimePicker/index.js.map +0 -1
  400. package/dist/components/molecules/DateTimeSelector/index.js +0 -9
  401. package/dist/components/molecules/DateTimeSelector/index.js.map +0 -1
  402. package/dist/components/molecules/Grid/Item/index.js +0 -14
  403. package/dist/components/molecules/Grid/Item/index.js.map +0 -1
  404. package/dist/components/molecules/Grid/index.js +0 -15
  405. package/dist/components/molecules/Grid/index.js.map +0 -1
  406. package/dist/components/molecules/IconTextButton/index.js +0 -14
  407. package/dist/components/molecules/IconTextButton/index.js.map +0 -1
  408. package/dist/components/molecules/InputPassword/index.js +0 -14
  409. package/dist/components/molecules/InputPassword/index.js.map +0 -1
  410. package/dist/components/molecules/LabeledSwitch/index.js +0 -14
  411. package/dist/components/molecules/LabeledSwitch/index.js.map +0 -1
  412. package/dist/components/molecules/Select/index.js +0 -14
  413. package/dist/components/molecules/Select/index.js.map +0 -1
  414. package/dist/components/molecules/Snackbar/index.js +0 -14
  415. package/dist/components/molecules/Snackbar/index.js.map +0 -1
@@ -0,0 +1,76 @@
1
+ import { Switch } from '@tecsinapse/react-core';
2
+ import React__default from 'react';
3
+ import LabelComponent from './LabelComponent.js';
4
+ import { StyledView } from './styled.js';
5
+
6
+ var __defProp = Object.defineProperty;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
10
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
11
+ var __spreadValues = (a, b) => {
12
+ for (var prop in b || (b = {}))
13
+ if (__hasOwnProp.call(b, prop))
14
+ __defNormalProp(a, prop, b[prop]);
15
+ if (__getOwnPropSymbols)
16
+ for (var prop of __getOwnPropSymbols(b)) {
17
+ if (__propIsEnum.call(b, prop))
18
+ __defNormalProp(a, prop, b[prop]);
19
+ }
20
+ return a;
21
+ };
22
+ var __objRest = (source, exclude) => {
23
+ var target = {};
24
+ for (var prop in source)
25
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
26
+ target[prop] = source[prop];
27
+ if (source != null && __getOwnPropSymbols)
28
+ for (var prop of __getOwnPropSymbols(source)) {
29
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
30
+ target[prop] = source[prop];
31
+ }
32
+ return target;
33
+ };
34
+ const LabeledSwitch = (_a) => {
35
+ var _b = _a, {
36
+ label,
37
+ labelPosition = "right",
38
+ labelProps,
39
+ pressableLabel = false,
40
+ active,
41
+ disabled,
42
+ onChange
43
+ } = _b, rest = __objRest(_b, [
44
+ "label",
45
+ "labelPosition",
46
+ "labelProps",
47
+ "pressableLabel",
48
+ "active",
49
+ "disabled",
50
+ "onChange"
51
+ ]);
52
+ return /* @__PURE__ */ React__default.createElement(StyledView, null, labelPosition === "left" ? /* @__PURE__ */ React__default.createElement(LabelComponent, {
53
+ active,
54
+ label,
55
+ labelPosition: "left",
56
+ labelProps,
57
+ disabled: !pressableLabel || disabled,
58
+ switchDisabled: disabled,
59
+ onPress: () => onChange(!active)
60
+ }) : /* @__PURE__ */ React__default.createElement(React__default.Fragment, null), /* @__PURE__ */ React__default.createElement(Switch, __spreadValues({
61
+ active,
62
+ onChange,
63
+ disabled
64
+ }, rest)), labelPosition === "right" ? /* @__PURE__ */ React__default.createElement(LabelComponent, {
65
+ active,
66
+ label,
67
+ labelPosition: "right",
68
+ labelProps,
69
+ disabled: !pressableLabel || disabled,
70
+ switchDisabled: disabled,
71
+ onPress: () => onChange(!active)
72
+ }) : /* @__PURE__ */ React__default.createElement(React__default.Fragment, null));
73
+ };
74
+
75
+ export { LabeledSwitch as default };
76
+ //# sourceMappingURL=LabeledSwitch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LabeledSwitch.js","sources":["../../../../src/components/molecules/LabeledSwitch/LabeledSwitch.tsx"],"sourcesContent":["import { LabeledSwitchProps, Switch } from '@tecsinapse/react-core';\nimport React, { FC } from 'react';\nimport { TextNativeProps } from '../../atoms/Text';\nimport LabelComponent from './LabelComponent';\nimport { StyledView } from './styled';\n\nexport type LabeledSwitchNativeProps = LabeledSwitchProps & {\n labelProps?: TextNativeProps;\n};\n\nconst LabeledSwitch: FC<LabeledSwitchNativeProps> = ({\n label,\n labelPosition = 'right',\n labelProps,\n pressableLabel = false,\n active,\n disabled,\n onChange,\n ...rest\n}) => {\n return (\n <StyledView>\n {labelPosition === 'left' ? (\n <LabelComponent\n active={active}\n label={label}\n labelPosition={'left'}\n labelProps={labelProps}\n disabled={!pressableLabel || disabled}\n switchDisabled={disabled}\n onPress={() => onChange(!active)}\n />\n ) : (\n <></>\n )}\n <Switch\n active={active}\n onChange={onChange}\n disabled={disabled}\n {...rest}\n />\n {labelPosition === 'right' ? (\n <LabelComponent\n active={active}\n label={label}\n labelPosition={'right'}\n labelProps={labelProps}\n disabled={!pressableLabel || disabled}\n switchDisabled={disabled}\n onPress={() => onChange(!active)}\n />\n ) : (\n <></>\n )}\n </StyledView>\n );\n};\n\nexport default LabeledSwitch;\n"],"names":["React"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUM,MAAA,aAAA,GAA8C,CAAC,EAS/C,KAAA;AAT+C,EACnD,IAAA,EAAA,GAAA,EAAA,EAAA;AAAA,IAAA,KAAA;AAAA,IACA,aAAgB,GAAA,OAAA;AAAA,IAChB,UAAA;AAAA,IACA,cAAiB,GAAA,KAAA;AAAA,IACjB,MAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,GAjBF,GAUqD,EAQhD,EAAA,IAAA,GAAA,SAAA,CARgD,EAQhD,EAAA;AAAA,IAPH,OAAA;AAAA,IACA,eAAA;AAAA,IACA,YAAA;AAAA,IACA,gBAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAA;AAAA,IACA,UAAA;AAAA,GAAA,CAAA,CAAA;AAGA,EAAA,uBACGA,cAAA,CAAA,aAAA,CAAA,UAAA,EAAA,IAAA,EACE,aAAkB,KAAA,MAAA,mBAChBA,cAAA,CAAA,aAAA,CAAA,cAAA,EAAA;AAAA,IACC,MAAA;AAAA,IACA,KAAA;AAAA,IACA,aAAe,EAAA,MAAA;AAAA,IACf,UAAA;AAAA,IACA,QAAA,EAAU,CAAC,cAAkB,IAAA,QAAA;AAAA,IAC7B,cAAgB,EAAA,QAAA;AAAA,IAChB,OAAS,EAAA,MAAM,QAAS,CAAA,CAAC,MAAM,CAAA;AAAA,GACjC,CAAA,mBAEEA,cAAA,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,CAAA,kBAEHA,cAAA,CAAA,aAAA,CAAA,MAAA,EAAA,cAAA,CAAA;AAAA,IACC,MAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,GAAA,EACI,IACN,CAAA,CAAA,EACC,aAAkB,KAAA,OAAA,mBAChBA,cAAA,CAAA,aAAA,CAAA,cAAA,EAAA;AAAA,IACC,MAAA;AAAA,IACA,KAAA;AAAA,IACA,aAAe,EAAA,OAAA;AAAA,IACf,UAAA;AAAA,IACA,QAAA,EAAU,CAAC,cAAkB,IAAA,QAAA;AAAA,IAC7B,cAAgB,EAAA,QAAA;AAAA,IAChB,OAAS,EAAA,MAAM,QAAS,CAAA,CAAC,MAAM,CAAA;AAAA,GACjC,CAAA,6EAEE,CAEN,CAAA,CAAA;AAEJ;;;;"}
@@ -0,0 +1,2 @@
1
+ export { default as LabeledSwitch } from './LabeledSwitch';
2
+ export type { LabeledSwitchNativeProps } from './LabeledSwitch';
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { View } from 'react-native';
3
+ export declare const StyledView: import("@emotion/native").StyledComponent<import("react-native").ViewProps & {
4
+ theme?: import("@emotion/react").Theme | undefined;
5
+ as?: import("react").ElementType<any> | undefined;
6
+ }, {}, {
7
+ ref?: import("react").Ref<View> | undefined;
8
+ }>;
9
+ export declare const StyledLabel: import("@emotion/native").StyledComponent<any, {}, {}>;
@@ -0,0 +1,24 @@
1
+ import styled, { css } from '@emotion/native';
2
+ import { View } from 'react-native';
3
+ import Text from '../../atoms/Text/Text.js';
4
+
5
+ const StyledView = styled(View)`
6
+ display: flex;
7
+ flex-direction: row;
8
+ align-items: center;
9
+ `;
10
+ const StyledLabel = styled(Text)`
11
+ ${({ theme, labelPosition }) => {
12
+ if (labelPosition === "right")
13
+ return css`
14
+ margin-left: ${theme == null ? void 0 : theme.spacing.centi};
15
+ `;
16
+ else if (labelPosition === "left")
17
+ return css`
18
+ margin-right: ${theme == null ? void 0 : theme.spacing.centi};
19
+ `;
20
+ }}
21
+ `;
22
+
23
+ export { StyledLabel, StyledView };
24
+ //# sourceMappingURL=styled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styled.js","sources":["../../../../src/components/molecules/LabeledSwitch/styled.ts"],"sourcesContent":["import styled, { css } from '@emotion/native';\nimport { LabelPositionOptions, StyleProps } from '@tecsinapse/react-core';\nimport { View } from 'react-native';\nimport { Text } from '../../atoms/Text';\n\nexport const StyledView = styled(View)`\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nexport const StyledLabel = styled(Text)<\n Partial<StyleProps> & {\n labelPosition: LabelPositionOptions;\n }\n>`\n ${({ theme, labelPosition }) => {\n if (labelPosition === 'right')\n return css`\n margin-left: ${theme?.spacing.centi};\n `;\n else if (labelPosition === 'left')\n return css`\n margin-right: ${theme?.spacing.centi};\n `;\n }}\n`;\n"],"names":[],"mappings":";;;;AAKa,MAAA,UAAA,GAAa,OAAO,IAAI,CAAA,CAAA;AAAA;AAAA;AAAA;AAAA,EAAA;AAMxB,MAAA,WAAA,GAAc,OAAO,IAAI,CAAA,CAAA;AAAA,EAAA,EAKlC,CAAC,EAAE,KAAO,EAAA,aAAA,EAAoB,KAAA;AAC9B,EAAA,IAAI,aAAkB,KAAA,OAAA;AACpB,IAAO,OAAA,GAAA,CAAA;AAAA,qBAAA,EACU,+BAAO,OAAQ,CAAA,KAAA,CAAA;AAAA,MAAA,CAAA,CAAA;AAAA,OAAA,IAEzB,aAAkB,KAAA,MAAA;AACzB,IAAO,OAAA,GAAA,CAAA;AAAA,sBAAA,EACW,+BAAO,OAAQ,CAAA,KAAA,CAAA;AAAA,MAAA,CAAA,CAAA;AAErC,CAAA,CAAA;AAAA;;;;"}
@@ -0,0 +1,7 @@
1
+ import { IBaseModal } from '../../atoms/Modal';
2
+ import { SelectNativeProps } from './Select';
3
+ interface LoadingProps {
4
+ loading?: boolean;
5
+ }
6
+ export declare const Modal: <Data, Type extends "single" | "multi">({ options, keyExtractor, labelExtractor, hideSearchBar, searchBarPlaceholder, focused, type, value, onSelect, onSearch, selectModalTitle, selectModalTitleComponent, confirmButtonText, loading, close, closeOnPick, ...others }: SelectNativeProps<Data, Type> & LoadingProps & IBaseModal) => JSX.Element;
7
+ export {};
@@ -0,0 +1,230 @@
1
+ import { useDebouncedState, getStatusBarHeight, RFValue, Checkbox, RadioButton } from '@tecsinapse/react-core';
2
+ import * as React from 'react';
3
+ import { FlatList, View } from 'react-native';
4
+ import { Button } from '../../atoms/Button/Button.js';
5
+ import Text from '../../atoms/Text/Text.js';
6
+ import Header from '../../atoms/Header/Header.js';
7
+ import Input from '../../atoms/Input/Input.js';
8
+ import '../../atoms/Modal/ModalGroupManager.js';
9
+ import { ModalView } from '../../atoms/Modal/ui/BaseModalView.js';
10
+ import 'uuid';
11
+ import { getStyledModal, TextTitleModal, SearchBarContainer, SelectIcon, FetchIndicator, ModalFooter, ListItem } from './styled.js';
12
+
13
+ var __defProp = Object.defineProperty;
14
+ var __defProps = Object.defineProperties;
15
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
16
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
17
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
18
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
19
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
20
+ var __spreadValues = (a, b) => {
21
+ for (var prop in b || (b = {}))
22
+ if (__hasOwnProp.call(b, prop))
23
+ __defNormalProp(a, prop, b[prop]);
24
+ if (__getOwnPropSymbols)
25
+ for (var prop of __getOwnPropSymbols(b)) {
26
+ if (__propIsEnum.call(b, prop))
27
+ __defNormalProp(a, prop, b[prop]);
28
+ }
29
+ return a;
30
+ };
31
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
32
+ var __objRest = (source, exclude) => {
33
+ var target = {};
34
+ for (var prop in source)
35
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
36
+ target[prop] = source[prop];
37
+ if (source != null && __getOwnPropSymbols)
38
+ for (var prop of __getOwnPropSymbols(source)) {
39
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
40
+ target[prop] = source[prop];
41
+ }
42
+ return target;
43
+ };
44
+ const Component = (_a) => {
45
+ var _b = _a, {
46
+ options,
47
+ keyExtractor,
48
+ labelExtractor,
49
+ hideSearchBar,
50
+ searchBarPlaceholder,
51
+ focused,
52
+ type,
53
+ value,
54
+ onSelect,
55
+ onSearch,
56
+ selectModalTitle,
57
+ selectModalTitleComponent,
58
+ confirmButtonText,
59
+ loading,
60
+ close,
61
+ closeOnPick
62
+ } = _b, others = __objRest(_b, [
63
+ "options",
64
+ "keyExtractor",
65
+ "labelExtractor",
66
+ "hideSearchBar",
67
+ "searchBarPlaceholder",
68
+ "focused",
69
+ "type",
70
+ "value",
71
+ "onSelect",
72
+ "onSearch",
73
+ "selectModalTitle",
74
+ "selectModalTitleComponent",
75
+ "confirmButtonText",
76
+ "loading",
77
+ "close",
78
+ "closeOnPick"
79
+ ]);
80
+ const [selectedValues, setSelectedValues] = React.useState([]);
81
+ const [searchArg, setSearchArg] = useDebouncedState("", onSearch);
82
+ const ModalComponent = React.useMemo(
83
+ () => getStyledModal(getStatusBarHeight(true)),
84
+ []
85
+ );
86
+ const _closeOnPick = closeOnPick && type === "single";
87
+ React.useEffect(() => {
88
+ setSelectedValues(
89
+ value ? type === "multi" ? value : [value] : []
90
+ );
91
+ }, [value, focused, setSelectedValues]);
92
+ const getData = React.useCallback(
93
+ (options2) => {
94
+ return options2 == null ? void 0 : options2.map((option, index) => __spreadProps(__spreadValues({}, option), {
95
+ _checked: type === "multi" ? !!selectedValues.find(
96
+ (value2) => keyExtractor(option, index) == keyExtractor(value2, index)
97
+ ) : keyExtractor(selectedValues[0] || {}, index) == keyExtractor(option, index)
98
+ }));
99
+ },
100
+ [keyExtractor, selectedValues, type]
101
+ );
102
+ const data = React.useMemo(
103
+ () => typeof options !== "function" ? getData(options) : [],
104
+ [options, getData]
105
+ );
106
+ const handlePressItem = React.useCallback(
107
+ (option) => {
108
+ setSelectedValues((selectedValues2) => {
109
+ if (type === "multi") {
110
+ const newArr = [];
111
+ let found = false;
112
+ for (const value2 of selectedValues2) {
113
+ if (keyExtractor(value2) != keyExtractor(option))
114
+ newArr.push(value2);
115
+ else
116
+ found = true;
117
+ }
118
+ if (!found)
119
+ newArr.push(option);
120
+ return newArr;
121
+ }
122
+ return keyExtractor(selectedValues2[0] || {}) === keyExtractor(option) ? [] : [option];
123
+ });
124
+ },
125
+ [selectedValues, setSelectedValues, keyExtractor, type]
126
+ );
127
+ React.useEffect(() => {
128
+ if (_closeOnPick && selectedValues[0] && selectedValues[0] !== value) {
129
+ handleConfirm();
130
+ }
131
+ }, [selectedValues[0], value, closeOnPick]);
132
+ const handleConfirm = React.useCallback(() => {
133
+ onSelect(
134
+ type === "single" ? selectedValues[0] : selectedValues
135
+ );
136
+ close == null ? void 0 : close();
137
+ }, [selectedValues]);
138
+ const optionBuilder = React.useCallback(
139
+ ({ item }) => /* @__PURE__ */ React.createElement(MemoizedOption, {
140
+ item,
141
+ type,
142
+ handlePressItem,
143
+ labelExtractor
144
+ }),
145
+ []
146
+ );
147
+ const anyChecked = data.filter((item) => item._checked).length;
148
+ const dataLengthChanged = data.length;
149
+ const memoizedFlatlist = React.useMemo(
150
+ () => /* @__PURE__ */ React.createElement(FlatList, {
151
+ data,
152
+ keyExtractor,
153
+ fadingEdgeLength: 200,
154
+ renderItem: optionBuilder
155
+ }),
156
+ [selectedValues, anyChecked, dataLengthChanged]
157
+ );
158
+ const titleTextModal = selectModalTitle ? /* @__PURE__ */ React.createElement(TextTitleModal, {
159
+ typography: "h4",
160
+ fontWeight: "bold",
161
+ numberOfLines: 3,
162
+ style: { maxWidth: RFValue(250) }
163
+ }, selectModalTitle) : null;
164
+ const headerContent = selectModalTitleComponent ? selectModalTitleComponent : titleTextModal;
165
+ return /* @__PURE__ */ React.createElement(ModalView, __spreadProps(__spreadValues({}, others), {
166
+ BoxComponent: ModalComponent,
167
+ showCloseBar: false
168
+ }), /* @__PURE__ */ React.createElement(Header, {
169
+ rightButton: {
170
+ onPress: close,
171
+ icon: {
172
+ name: "close",
173
+ type: "material-community",
174
+ fontColor: "light"
175
+ }
176
+ }
177
+ }, headerContent), !hideSearchBar && /* @__PURE__ */ React.createElement(SearchBarContainer, null, /* @__PURE__ */ React.createElement(Input, {
178
+ placeholder: searchBarPlaceholder,
179
+ value: searchArg,
180
+ onChange: setSearchArg,
181
+ leftComponent: /* @__PURE__ */ React.createElement(SelectIcon, {
182
+ name: "search",
183
+ type: "ionicon",
184
+ size: "centi"
185
+ })
186
+ })), loading && /* @__PURE__ */ React.createElement(FetchIndicator, {
187
+ animating: true,
188
+ color: "grey",
189
+ size: "large"
190
+ }), memoizedFlatlist, !_closeOnPick && /* @__PURE__ */ React.createElement(ModalFooter, null, /* @__PURE__ */ React.createElement(Button, {
191
+ variant: "filled",
192
+ color: "primary",
193
+ onPress: handleConfirm,
194
+ disabled: loading
195
+ }, /* @__PURE__ */ React.createElement(Text, {
196
+ fontColor: "light",
197
+ fontWeight: "bold"
198
+ }, confirmButtonText))));
199
+ };
200
+ const MemoizedOption = ({
201
+ handlePressItem,
202
+ labelExtractor,
203
+ item,
204
+ type
205
+ }) => {
206
+ return React.useMemo(() => {
207
+ const label = labelExtractor(item);
208
+ return /* @__PURE__ */ React.createElement(ListItem, {
209
+ onPress: () => handlePressItem(item)
210
+ }, /* @__PURE__ */ React.createElement(View, {
211
+ pointerEvents: "none"
212
+ }, type === "multi" ? /* @__PURE__ */ React.createElement(Checkbox, {
213
+ color: "primary",
214
+ labelPosition: "right",
215
+ checked: item._checked
216
+ }, /* @__PURE__ */ React.createElement(Text, {
217
+ fontWeight: item._checked ? "bold" : "regular"
218
+ }, label)) : /* @__PURE__ */ React.createElement(RadioButton, {
219
+ color: "primary",
220
+ labelPosition: "right",
221
+ checked: item._checked
222
+ }, /* @__PURE__ */ React.createElement(Text, {
223
+ fontWeight: item._checked ? "bold" : "regular"
224
+ }, label))));
225
+ }, [item._checked]);
226
+ };
227
+ const Modal = Component;
228
+
229
+ export { Modal };
230
+ //# sourceMappingURL=Modal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Modal.js","sources":["../../../../src/components/molecules/Select/Modal.tsx"],"sourcesContent":["import {\n Checkbox,\n getStatusBarHeight,\n RadioButton,\n RFValue,\n useDebouncedState,\n} from '@tecsinapse/react-core';\nimport * as React from 'react';\nimport { FlatList, ListRenderItemInfo, View } from 'react-native';\nimport { Button } from '../../atoms/Button';\nimport { Header } from '../../atoms/Header';\nimport { Input } from '../../atoms/Input';\nimport { IBaseModal, ModalView } from '../../atoms/Modal';\nimport { Text } from '../../atoms/Text';\nimport { SelectNativeProps } from './Select';\nimport {\n FetchIndicator,\n getStyledModal,\n ListItem,\n ModalFooter,\n SearchBarContainer,\n SelectIcon,\n TextTitleModal,\n} from './styled';\n\ninterface LoadingProps {\n loading?: boolean;\n}\n\nconst Component = <Data, Type extends 'single' | 'multi'>({\n options,\n keyExtractor,\n labelExtractor,\n hideSearchBar,\n searchBarPlaceholder,\n focused,\n type,\n value,\n onSelect,\n onSearch,\n selectModalTitle,\n selectModalTitleComponent,\n confirmButtonText,\n loading,\n close,\n closeOnPick,\n ...others\n}: SelectNativeProps<Data, Type> & LoadingProps & IBaseModal): JSX.Element => {\n const [selectedValues, setSelectedValues] = React.useState<Data[]>([]);\n const [searchArg, setSearchArg] = useDebouncedState<string>('', onSearch);\n const ModalComponent = React.useMemo(\n () => getStyledModal(getStatusBarHeight(true)),\n []\n );\n const _closeOnPick = closeOnPick && type === 'single';\n\n // Resets the temporary state to the initial state whenever the\n // modal is reopened or the value changes\n React.useEffect(() => {\n setSelectedValues(\n (value ? (type === 'multi' ? value : [value]) : []) as Data[]\n );\n }, [value, focused, setSelectedValues]);\n\n const getData = React.useCallback(\n (options: Data[]) => {\n return options?.map((option, index) => ({\n ...option,\n _checked:\n type === 'multi'\n ? !!selectedValues.find(\n value =>\n keyExtractor(option, index) == keyExtractor(value, index)\n )\n : keyExtractor((selectedValues[0] || {}) as Data, index) ==\n keyExtractor(option, index),\n }));\n },\n [keyExtractor, selectedValues, type]\n );\n\n const data = React.useMemo(\n () => (typeof options !== 'function' ? getData(options) : []),\n [options, getData]\n );\n\n const handlePressItem = React.useCallback(\n (option: Data) => {\n setSelectedValues(selectedValues => {\n if (type === 'multi') {\n const newArr: Data[] = [];\n let found = false;\n for (const value of selectedValues) {\n if (keyExtractor(value) != keyExtractor(option)) newArr.push(value);\n else found = true;\n }\n if (!found) newArr.push(option);\n return newArr;\n }\n return keyExtractor((selectedValues[0] || {}) as Data) ===\n keyExtractor(option)\n ? []\n : [option];\n });\n },\n [selectedValues, setSelectedValues, keyExtractor, type]\n );\n\n React.useEffect(() => {\n if (_closeOnPick && selectedValues[0] && selectedValues[0] !== value) {\n handleConfirm();\n }\n }, [selectedValues[0], value, closeOnPick]);\n\n const handleConfirm = React.useCallback(() => {\n // TS Workaround since TS won't infer the ternary operator's result type correctly\n type OnSelectArg = Parameters<typeof onSelect>[0];\n onSelect(\n (type === 'single' ? selectedValues[0] : selectedValues) as OnSelectArg\n );\n close?.();\n }, [selectedValues]);\n\n const optionBuilder = React.useCallback(\n ({ item }: ListRenderItemInfo<Data & { _checked: boolean }>) => (\n <MemoizedOption\n item={item}\n type={type}\n handlePressItem={handlePressItem}\n labelExtractor={labelExtractor}\n />\n ),\n []\n );\n\n const anyChecked = data.filter(item => item._checked).length;\n const dataLengthChanged = data.length;\n\n const memoizedFlatlist = React.useMemo(\n () => (\n <FlatList\n data={data}\n keyExtractor={keyExtractor}\n fadingEdgeLength={200}\n renderItem={optionBuilder}\n />\n ),\n [selectedValues, anyChecked, dataLengthChanged]\n );\n\n const titleTextModal = selectModalTitle ? (\n <TextTitleModal\n typography=\"h4\"\n fontWeight=\"bold\"\n numberOfLines={3}\n style={{ maxWidth: RFValue(250) }}\n >\n {selectModalTitle}\n </TextTitleModal>\n ) : null;\n\n const headerContent = selectModalTitleComponent\n ? selectModalTitleComponent\n : titleTextModal;\n\n return (\n <ModalView {...others} BoxComponent={ModalComponent} showCloseBar={false}>\n <Header\n rightButton={{\n onPress: close,\n icon: {\n name: 'close',\n type: 'material-community',\n fontColor: 'light',\n },\n }}\n >\n {headerContent}\n </Header>\n\n {!hideSearchBar && (\n <SearchBarContainer>\n <Input\n placeholder={searchBarPlaceholder}\n value={searchArg}\n onChange={setSearchArg}\n leftComponent={\n <SelectIcon name=\"search\" type=\"ionicon\" size=\"centi\" />\n }\n />\n </SearchBarContainer>\n )}\n\n {loading && (\n <FetchIndicator animating={true} color={'grey'} size={'large'} />\n )}\n\n {memoizedFlatlist}\n\n {!_closeOnPick && (\n <ModalFooter>\n <Button\n variant={'filled'}\n color={'primary'}\n onPress={handleConfirm}\n disabled={loading}\n >\n <Text fontColor={'light'} fontWeight=\"bold\">\n {confirmButtonText}\n </Text>\n </Button>\n </ModalFooter>\n )}\n </ModalView>\n );\n};\n\ninterface IOption<T> {\n item: T & { _checked: boolean };\n type: 'single' | 'multi';\n labelExtractor: (option: T) => string;\n handlePressItem: (option: T) => void;\n}\n\nconst MemoizedOption = <T,>({\n handlePressItem,\n labelExtractor,\n item,\n type,\n}: IOption<T>): JSX.Element => {\n return React.useMemo(() => {\n const label = labelExtractor(item);\n return (\n <ListItem onPress={() => handlePressItem(item)}>\n <View pointerEvents={'none'}>\n {type === 'multi' ? (\n <Checkbox\n color={'primary'}\n labelPosition={'right'}\n checked={item._checked}\n >\n <Text fontWeight={item._checked ? 'bold' : 'regular'}>\n {label}\n </Text>\n </Checkbox>\n ) : (\n <RadioButton\n color={'primary'}\n labelPosition={'right'}\n checked={item._checked}\n >\n <Text fontWeight={item._checked ? 'bold' : 'regular'}>\n {label}\n </Text>\n </RadioButton>\n )}\n </View>\n </ListItem>\n );\n }, [item._checked]);\n};\n\nexport const Modal = Component;\n"],"names":["options","value","selectedValues"],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { InputContainerProps } from '@tecsinapse/react-core';
2
+ export interface SelectNativeProps<Data, Type extends 'single' | 'multi'> extends Omit<InputContainerProps, 'value' | 'onChange' | 'onChangeText'> {
3
+ options: ((searchInput?: string) => Promise<Data[]>) | Data[];
4
+ onSelect: (option: Type extends 'single' ? Data | undefined : Data[]) => never | void;
5
+ value: Type extends 'single' ? Data | null | undefined : Data[];
6
+ type: Type;
7
+ keyExtractor: (t: Data, index?: number) => string;
8
+ labelExtractor: (t: Data) => string;
9
+ groupKeyExtractor?: (t: Data) => string;
10
+ hideSearchBar?: boolean;
11
+ placeholder?: string;
12
+ onFocus?: () => void | never;
13
+ onBlur?: () => void | never;
14
+ onSearch?: ((searchArg: string) => void) | ((searchInput?: string) => Promise<Data[]>) | never;
15
+ searchBarPlaceholder?: string;
16
+ confirmButtonText?: string;
17
+ selectModalTitle?: string;
18
+ selectModalTitleComponent?: JSX.Element;
19
+ closeOnPick?: boolean;
20
+ controlComponent?: (onPress: () => void, displayValue?: string) => JSX.Element;
21
+ numberOfLines?: number;
22
+ }
23
+ declare function Select<Data, Type extends 'single' | 'multi'>({ value, options, keyExtractor, groupKeyExtractor, onSelect, type, labelExtractor, placeholder, onFocus, onBlur, disabled, onSearch, selectModalTitle, selectModalTitleComponent, searchBarPlaceholder, hideSearchBar, confirmButtonText, rightComponent, variant, hintComponent, hint, style, controlComponent, closeOnPick, label, numberOfLines, ...rest }: SelectNativeProps<Data, Type>): JSX.Element;
24
+ export default Select;
@@ -0,0 +1,240 @@
1
+ import { useInputFocus, HintInputContainer } from '@tecsinapse/react-core';
2
+ import * as React from 'react';
3
+ import { useState, useEffect } from 'react';
4
+ import '../../atoms/Modal/ModalGroupManager.js';
5
+ import 'react-native';
6
+ import 'react-native-safe-area-context';
7
+ import '../../atoms/Modal/ui/styled.js';
8
+ import 'uuid';
9
+ import { useLazyModalManager } from '../../atoms/Modal/useLazyModalManager.js';
10
+ import Text from '../../atoms/Text/Text.js';
11
+ import { Modal } from './Modal.js';
12
+ import { StyledSelectionText, SelectIcon } from './styled.js';
13
+
14
+ var __defProp = Object.defineProperty;
15
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
16
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
17
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
18
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
19
+ var __spreadValues = (a, b) => {
20
+ for (var prop in b || (b = {}))
21
+ if (__hasOwnProp.call(b, prop))
22
+ __defNormalProp(a, prop, b[prop]);
23
+ if (__getOwnPropSymbols)
24
+ for (var prop of __getOwnPropSymbols(b)) {
25
+ if (__propIsEnum.call(b, prop))
26
+ __defNormalProp(a, prop, b[prop]);
27
+ }
28
+ return a;
29
+ };
30
+ var __objRest = (source, exclude) => {
31
+ var target = {};
32
+ for (var prop in source)
33
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
34
+ target[prop] = source[prop];
35
+ if (source != null && __getOwnPropSymbols)
36
+ for (var prop of __getOwnPropSymbols(source)) {
37
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
38
+ target[prop] = source[prop];
39
+ }
40
+ return target;
41
+ };
42
+ function Select(_a) {
43
+ var _b = _a, {
44
+ value,
45
+ options,
46
+ keyExtractor,
47
+ groupKeyExtractor,
48
+ onSelect,
49
+ type,
50
+ labelExtractor,
51
+ placeholder,
52
+ onFocus,
53
+ onBlur,
54
+ disabled,
55
+ onSearch,
56
+ selectModalTitle,
57
+ selectModalTitleComponent,
58
+ searchBarPlaceholder,
59
+ hideSearchBar,
60
+ confirmButtonText,
61
+ rightComponent,
62
+ variant = "default",
63
+ hintComponent,
64
+ hint,
65
+ style,
66
+ controlComponent,
67
+ closeOnPick = type === "single",
68
+ label,
69
+ numberOfLines
70
+ } = _b, rest = __objRest(_b, [
71
+ "value",
72
+ "options",
73
+ "keyExtractor",
74
+ "groupKeyExtractor",
75
+ "onSelect",
76
+ "type",
77
+ "labelExtractor",
78
+ "placeholder",
79
+ "onFocus",
80
+ "onBlur",
81
+ "disabled",
82
+ "onSearch",
83
+ "selectModalTitle",
84
+ "selectModalTitleComponent",
85
+ "searchBarPlaceholder",
86
+ "hideSearchBar",
87
+ "confirmButtonText",
88
+ "rightComponent",
89
+ "variant",
90
+ "hintComponent",
91
+ "hint",
92
+ "style",
93
+ "controlComponent",
94
+ "closeOnPick",
95
+ "label",
96
+ "numberOfLines"
97
+ ]);
98
+ const { focused, handleBlur, handleFocus } = useInputFocus(
99
+ onFocus,
100
+ onBlur,
101
+ !disabled
102
+ );
103
+ const [selectOptions, setSelectOptions] = useState([]);
104
+ const modal = useLazyModalManager();
105
+ const [loading, setLoading] = useState(false);
106
+ const onlyLabel = label && !placeholder;
107
+ const hasValue = type === "single" ? !!value : (value || []).length > 0;
108
+ const _placeholder = onlyLabel ? label : placeholder;
109
+ const _label = hasValue ? label : void 0;
110
+ useEffect(() => {
111
+ if (typeof options !== "function") {
112
+ setSelectOptions(options);
113
+ }
114
+ }, [options]);
115
+ const handleLazyFocus = React.useCallback(async () => {
116
+ if (typeof options === "function" && !onSearch) {
117
+ setLoading(true);
118
+ try {
119
+ const result = await options();
120
+ if (result) {
121
+ if (value && !result.find((v) => keyExtractor(value) === keyExtractor(v))) {
122
+ setSelectOptions([value, ...result]);
123
+ } else
124
+ setSelectOptions(result);
125
+ }
126
+ } catch (e) {
127
+ } finally {
128
+ setLoading(false);
129
+ }
130
+ }
131
+ }, [options, value, setSelectOptions]);
132
+ const handleOnSearch = React.useCallback(
133
+ async (searchInput) => {
134
+ if (searchInput !== void 0 && onSearch) {
135
+ setLoading(true);
136
+ modal.requestUpdate();
137
+ try {
138
+ const result = await onSearch(searchInput);
139
+ if (result) {
140
+ if (type === "single") {
141
+ if (value && !result.find(
142
+ (v) => keyExtractor(value) === keyExtractor(v)
143
+ )) {
144
+ setSelectOptions([value, ...result]);
145
+ } else
146
+ setSelectOptions(result);
147
+ } else {
148
+ if (value == null ? void 0 : value.length) {
149
+ const selectedValues = value.filter(
150
+ (v) => !result.find(
151
+ (current) => keyExtractor(v) === keyExtractor(current)
152
+ )
153
+ ) || [];
154
+ setSelectOptions([...selectedValues, ...result]);
155
+ } else {
156
+ setSelectOptions(result);
157
+ }
158
+ }
159
+ }
160
+ } catch (e) {
161
+ } finally {
162
+ modal.requestUpdate();
163
+ setLoading(false);
164
+ }
165
+ }
166
+ },
167
+ [options, value, keyExtractor]
168
+ );
169
+ const getDisplayValue = React.useCallback(() => {
170
+ if (Array.isArray(value)) {
171
+ if (value.length === 0)
172
+ return _placeholder;
173
+ else {
174
+ const options2 = selectOptions.length > 0 ? selectOptions : value;
175
+ return options2 == null ? void 0 : options2.reduce(
176
+ (acc, option, index) => value.find(
177
+ (key) => keyExtractor(option, index) == keyExtractor(key, index)
178
+ ) ? acc + labelExtractor(option) + ", " : acc,
179
+ ""
180
+ ).slice(0, -2);
181
+ }
182
+ } else {
183
+ if (!value)
184
+ return _placeholder;
185
+ const selectedOption = selectOptions == null ? void 0 : selectOptions.find(
186
+ (option, index) => keyExtractor(option, index) == keyExtractor(value, index)
187
+ );
188
+ return labelExtractor(selectedOption != null ? selectedOption : value);
189
+ }
190
+ }, [_placeholder, value, selectOptions]);
191
+ modal.sync(
192
+ /* @__PURE__ */ React.createElement(Modal, {
193
+ options: selectOptions || [],
194
+ focused: true,
195
+ keyExtractor,
196
+ labelExtractor,
197
+ groupKeyExtractor,
198
+ searchBarPlaceholder,
199
+ type,
200
+ onSelect,
201
+ value,
202
+ hideSearchBar,
203
+ onSearch: handleOnSearch,
204
+ selectModalTitle,
205
+ selectModalTitleComponent,
206
+ confirmButtonText,
207
+ loading,
208
+ onClose: handleBlur,
209
+ closeOnPick
210
+ })
211
+ );
212
+ const handlePressInput = async () => {
213
+ modal.show();
214
+ handleFocus();
215
+ await handleLazyFocus();
216
+ };
217
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, controlComponent ? controlComponent(handlePressInput, getDisplayValue() || "") : /* @__PURE__ */ React.createElement(HintInputContainer, __spreadValues({
218
+ viewStyle: style,
219
+ onPress: handlePressInput,
220
+ focused,
221
+ disabled,
222
+ LabelComponent: Text,
223
+ variant,
224
+ hint,
225
+ hintComponent,
226
+ label: _label,
227
+ rightComponent: /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(SelectIcon, {
228
+ name: "chevron-down",
229
+ type: "ionicon",
230
+ size: "centi"
231
+ }), rightComponent)
232
+ }, rest), /* @__PURE__ */ React.createElement(StyledSelectionText, {
233
+ numberOfLines,
234
+ fontWeight: "bold",
235
+ disabled
236
+ }, getDisplayValue() || " ")));
237
+ }
238
+
239
+ export { Select as default };
240
+ //# sourceMappingURL=Select.js.map