@aws-amplify/ui-react-native 0.0.0-fileuploader-41bde68-20221115171326

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 (332) hide show
  1. package/.eslintrc.js +100 -0
  2. package/.lintstagedrc.js +6 -0
  3. package/.turbo/turbo-build.log +3 -0
  4. package/CHANGELOG.md +22 -0
  5. package/LICENSE +201 -0
  6. package/README.md +23 -0
  7. package/babel.config.js +3 -0
  8. package/dist/InAppMessaging/components/BannerMessage/BannerMessage.d.ts +2 -0
  9. package/dist/InAppMessaging/components/BannerMessage/BannerMessage.js +16 -0
  10. package/dist/InAppMessaging/components/BannerMessage/index.d.ts +2 -0
  11. package/dist/InAppMessaging/components/BannerMessage/index.js +1 -0
  12. package/dist/InAppMessaging/components/BannerMessage/styles.d.ts +7 -0
  13. package/dist/InAppMessaging/components/BannerMessage/styles.js +77 -0
  14. package/dist/InAppMessaging/components/BannerMessage/types.d.ts +12 -0
  15. package/dist/InAppMessaging/components/BannerMessage/types.js +1 -0
  16. package/dist/InAppMessaging/components/CarouselMessage/CarouselMessage.d.ts +2 -0
  17. package/dist/InAppMessaging/components/CarouselMessage/CarouselMessage.js +20 -0
  18. package/dist/InAppMessaging/components/CarouselMessage/CarouselMessageItem.d.ts +2 -0
  19. package/dist/InAppMessaging/components/CarouselMessage/CarouselMessageItem.js +18 -0
  20. package/dist/InAppMessaging/components/CarouselMessage/index.d.ts +2 -0
  21. package/dist/InAppMessaging/components/CarouselMessage/index.js +1 -0
  22. package/dist/InAppMessaging/components/CarouselMessage/styles.d.ts +5 -0
  23. package/dist/InAppMessaging/components/CarouselMessage/styles.js +98 -0
  24. package/dist/InAppMessaging/components/CarouselMessage/types.d.ts +18 -0
  25. package/dist/InAppMessaging/components/CarouselMessage/types.js +1 -0
  26. package/dist/InAppMessaging/components/FullScreenMessage/FullScreenMessage.d.ts +2 -0
  27. package/dist/InAppMessaging/components/FullScreenMessage/FullScreenMessage.js +18 -0
  28. package/dist/InAppMessaging/components/FullScreenMessage/index.d.ts +2 -0
  29. package/dist/InAppMessaging/components/FullScreenMessage/index.js +1 -0
  30. package/dist/InAppMessaging/components/FullScreenMessage/styles.d.ts +3 -0
  31. package/dist/InAppMessaging/components/FullScreenMessage/styles.js +86 -0
  32. package/dist/InAppMessaging/components/FullScreenMessage/types.d.ts +6 -0
  33. package/dist/InAppMessaging/components/FullScreenMessage/types.js +1 -0
  34. package/dist/InAppMessaging/components/InAppMessageDisplay/InAppMessageDisplay.d.ts +9 -0
  35. package/dist/InAppMessaging/components/InAppMessageDisplay/InAppMessageDisplay.js +29 -0
  36. package/dist/InAppMessaging/components/InAppMessageDisplay/handleMessageLinkAction.d.ts +3 -0
  37. package/dist/InAppMessaging/components/InAppMessageDisplay/handleMessageLinkAction.js +24 -0
  38. package/dist/InAppMessaging/components/InAppMessageDisplay/index.d.ts +2 -0
  39. package/dist/InAppMessaging/components/InAppMessageDisplay/index.js +1 -0
  40. package/dist/InAppMessaging/components/InAppMessageDisplay/types.d.ts +24 -0
  41. package/dist/InAppMessaging/components/InAppMessageDisplay/types.js +1 -0
  42. package/dist/InAppMessaging/components/MessageLayout/MessageLayout.d.ts +2 -0
  43. package/dist/InAppMessaging/components/MessageLayout/MessageLayout.js +34 -0
  44. package/dist/InAppMessaging/components/MessageLayout/index.d.ts +1 -0
  45. package/dist/InAppMessaging/components/MessageLayout/index.js +1 -0
  46. package/dist/InAppMessaging/components/MessageLayout/types.d.ts +7 -0
  47. package/dist/InAppMessaging/components/MessageLayout/types.js +1 -0
  48. package/dist/InAppMessaging/components/MessageWrapper/MessageWrapper.d.ts +2 -0
  49. package/dist/InAppMessaging/components/MessageWrapper/MessageWrapper.js +20 -0
  50. package/dist/InAppMessaging/components/MessageWrapper/index.d.ts +2 -0
  51. package/dist/InAppMessaging/components/MessageWrapper/index.js +1 -0
  52. package/dist/InAppMessaging/components/MessageWrapper/styles.d.ts +2 -0
  53. package/dist/InAppMessaging/components/MessageWrapper/styles.js +5 -0
  54. package/dist/InAppMessaging/components/MessageWrapper/types.d.ts +10 -0
  55. package/dist/InAppMessaging/components/MessageWrapper/types.js +1 -0
  56. package/dist/InAppMessaging/components/ModalMessage/ModalMessage.d.ts +2 -0
  57. package/dist/InAppMessaging/components/ModalMessage/ModalMessage.js +18 -0
  58. package/dist/InAppMessaging/components/ModalMessage/index.d.ts +2 -0
  59. package/dist/InAppMessaging/components/ModalMessage/index.js +1 -0
  60. package/dist/InAppMessaging/components/ModalMessage/styles.d.ts +4 -0
  61. package/dist/InAppMessaging/components/ModalMessage/styles.js +99 -0
  62. package/dist/InAppMessaging/components/ModalMessage/types.d.ts +6 -0
  63. package/dist/InAppMessaging/components/ModalMessage/types.js +1 -0
  64. package/dist/InAppMessaging/components/index.d.ts +6 -0
  65. package/dist/InAppMessaging/components/index.js +2 -0
  66. package/dist/InAppMessaging/components/withInAppMessaging/index.d.ts +1 -0
  67. package/dist/InAppMessaging/components/withInAppMessaging/index.js +1 -0
  68. package/dist/InAppMessaging/components/withInAppMessaging/withInAppMessaging.d.ts +5 -0
  69. package/dist/InAppMessaging/components/withInAppMessaging/withInAppMessaging.js +11 -0
  70. package/dist/InAppMessaging/constants.d.ts +32 -0
  71. package/dist/InAppMessaging/constants.js +44 -0
  72. package/dist/InAppMessaging/hooks/index.d.ts +2 -0
  73. package/dist/InAppMessaging/hooks/index.js +2 -0
  74. package/dist/InAppMessaging/hooks/useMessageImage/constants.d.ts +8 -0
  75. package/dist/InAppMessaging/hooks/useMessageImage/constants.js +18 -0
  76. package/dist/InAppMessaging/hooks/useMessageImage/index.d.ts +2 -0
  77. package/dist/InAppMessaging/hooks/useMessageImage/index.js +1 -0
  78. package/dist/InAppMessaging/hooks/useMessageImage/types.d.ts +15 -0
  79. package/dist/InAppMessaging/hooks/useMessageImage/types.js +6 -0
  80. package/dist/InAppMessaging/hooks/useMessageImage/useMessageImage.d.ts +10 -0
  81. package/dist/InAppMessaging/hooks/useMessageImage/useMessageImage.js +50 -0
  82. package/dist/InAppMessaging/hooks/useMessageImage/utils.d.ts +4 -0
  83. package/dist/InAppMessaging/hooks/useMessageImage/utils.js +56 -0
  84. package/dist/InAppMessaging/hooks/useMessageProps/index.d.ts +2 -0
  85. package/dist/InAppMessaging/hooks/useMessageProps/index.js +1 -0
  86. package/dist/InAppMessaging/hooks/useMessageProps/types.d.ts +109 -0
  87. package/dist/InAppMessaging/hooks/useMessageProps/types.js +1 -0
  88. package/dist/InAppMessaging/hooks/useMessageProps/useMessageProps.d.ts +12 -0
  89. package/dist/InAppMessaging/hooks/useMessageProps/useMessageProps.js +49 -0
  90. package/dist/InAppMessaging/hooks/useMessageProps/utils.d.ts +43 -0
  91. package/dist/InAppMessaging/hooks/useMessageProps/utils.js +192 -0
  92. package/dist/InAppMessaging/index.d.ts +2 -0
  93. package/dist/InAppMessaging/index.js +2 -0
  94. package/dist/__mocks__/@react-native-async-storage/async-storage.d.ts +1 -0
  95. package/dist/__mocks__/@react-native-async-storage/async-storage.js +2 -0
  96. package/dist/__mocks__/@react-native-community/netinfo.d.ts +1 -0
  97. package/dist/__mocks__/@react-native-community/netinfo.js +2 -0
  98. package/dist/__mocks__/react-native-safe-area-context.d.ts +3 -0
  99. package/dist/__mocks__/react-native-safe-area-context.js +4 -0
  100. package/dist/assets/icons/checkboxFilled.png +0 -0
  101. package/dist/assets/icons/checkboxOutline.png +0 -0
  102. package/dist/assets/icons/close.png +0 -0
  103. package/dist/assets/icons/index.d.ts +7 -0
  104. package/dist/assets/icons/index.js +6 -0
  105. package/dist/assets/icons/index.ts +9 -0
  106. package/dist/assets/index.d.ts +1 -0
  107. package/dist/assets/index.js +1 -0
  108. package/dist/assets/index.ts +1 -0
  109. package/dist/hooks/index.d.ts +1 -0
  110. package/dist/hooks/index.js +1 -0
  111. package/dist/hooks/useDeviceOrientation/index.d.ts +1 -0
  112. package/dist/hooks/useDeviceOrientation/index.js +1 -0
  113. package/dist/hooks/useDeviceOrientation/useDeviceOrientation.d.ts +6 -0
  114. package/dist/hooks/useDeviceOrientation/useDeviceOrientation.js +33 -0
  115. package/dist/index.d.ts +1 -0
  116. package/dist/index.js +1 -0
  117. package/dist/primitives/Button/Button.d.ts +2 -0
  118. package/dist/primitives/Button/Button.js +8 -0
  119. package/dist/primitives/Button/index.d.ts +2 -0
  120. package/dist/primitives/Button/index.js +1 -0
  121. package/dist/primitives/Button/styles.d.ts +2 -0
  122. package/dist/primitives/Button/styles.js +4 -0
  123. package/dist/primitives/Button/types.d.ts +7 -0
  124. package/dist/primitives/Button/types.js +1 -0
  125. package/dist/primitives/Carousel/Carousel.d.ts +2 -0
  126. package/dist/primitives/Carousel/Carousel.js +58 -0
  127. package/dist/primitives/Carousel/CarouselPageIndicator.d.ts +2 -0
  128. package/dist/primitives/Carousel/CarouselPageIndicator.js +10 -0
  129. package/dist/primitives/Carousel/constants.d.ts +9 -0
  130. package/dist/primitives/Carousel/constants.js +18 -0
  131. package/dist/primitives/Carousel/index.d.ts +3 -0
  132. package/dist/primitives/Carousel/index.js +2 -0
  133. package/dist/primitives/Carousel/styles.d.ts +2 -0
  134. package/dist/primitives/Carousel/styles.js +11 -0
  135. package/dist/primitives/Carousel/types.d.ts +19 -0
  136. package/dist/primitives/Carousel/types.js +1 -0
  137. package/dist/primitives/Checkbox/Checkbox.d.ts +2 -0
  138. package/dist/primitives/Checkbox/Checkbox.js +23 -0
  139. package/dist/primitives/Checkbox/index.d.ts +2 -0
  140. package/dist/primitives/Checkbox/index.js +1 -0
  141. package/dist/primitives/Checkbox/styles.d.ts +2 -0
  142. package/dist/primitives/Checkbox/styles.js +6 -0
  143. package/dist/primitives/Checkbox/types.d.ts +18 -0
  144. package/dist/primitives/Checkbox/types.js +1 -0
  145. package/dist/primitives/Heading/Heading.d.ts +2 -0
  146. package/dist/primitives/Heading/Heading.js +8 -0
  147. package/dist/primitives/Heading/index.d.ts +2 -0
  148. package/dist/primitives/Heading/index.js +1 -0
  149. package/dist/primitives/Heading/styles.d.ts +2 -0
  150. package/dist/primitives/Heading/styles.js +14 -0
  151. package/dist/primitives/Heading/types.d.ts +11 -0
  152. package/dist/primitives/Heading/types.js +1 -0
  153. package/dist/primitives/Icon/Icon.d.ts +2 -0
  154. package/dist/primitives/Icon/Icon.js +10 -0
  155. package/dist/primitives/Icon/index.d.ts +2 -0
  156. package/dist/primitives/Icon/index.js +1 -0
  157. package/dist/primitives/Icon/styles.d.ts +2 -0
  158. package/dist/primitives/Icon/styles.js +9 -0
  159. package/dist/primitives/Icon/types.d.ts +18 -0
  160. package/dist/primitives/Icon/types.js +1 -0
  161. package/dist/primitives/IconButton/IconButton.d.ts +2 -0
  162. package/dist/primitives/IconButton/IconButton.js +8 -0
  163. package/dist/primitives/IconButton/index.d.ts +2 -0
  164. package/dist/primitives/IconButton/index.js +1 -0
  165. package/dist/primitives/IconButton/styles.d.ts +0 -0
  166. package/dist/primitives/IconButton/styles.js +1 -0
  167. package/dist/primitives/IconButton/types.d.ts +22 -0
  168. package/dist/primitives/IconButton/types.js +1 -0
  169. package/dist/primitives/Label/Label.d.ts +2 -0
  170. package/dist/primitives/Label/Label.js +8 -0
  171. package/dist/primitives/Label/index.d.ts +2 -0
  172. package/dist/primitives/Label/index.js +1 -0
  173. package/dist/primitives/Label/styles.d.ts +2 -0
  174. package/dist/primitives/Label/styles.js +4 -0
  175. package/dist/primitives/Label/types.d.ts +7 -0
  176. package/dist/primitives/Label/types.js +1 -0
  177. package/dist/primitives/Label/utils.d.ts +17 -0
  178. package/dist/primitives/Label/utils.js +21 -0
  179. package/dist/primitives/Radio/Radio.d.ts +2 -0
  180. package/dist/primitives/Radio/Radio.js +29 -0
  181. package/dist/primitives/Radio/getRadioDimensions.d.ts +18 -0
  182. package/dist/primitives/Radio/getRadioDimensions.js +27 -0
  183. package/dist/primitives/Radio/index.d.ts +2 -0
  184. package/dist/primitives/Radio/index.js +1 -0
  185. package/dist/primitives/Radio/styles.d.ts +2 -0
  186. package/dist/primitives/Radio/styles.js +46 -0
  187. package/dist/primitives/Radio/types.d.ts +28 -0
  188. package/dist/primitives/Radio/types.js +1 -0
  189. package/dist/primitives/index.d.ts +8 -0
  190. package/dist/primitives/index.js +8 -0
  191. package/dist/utils/index.d.ts +2 -0
  192. package/dist/utils/index.js +7 -0
  193. package/jest.config.js +20 -0
  194. package/package.json +57 -0
  195. package/src/InAppMessaging/components/BannerMessage/BannerMessage.tsx +37 -0
  196. package/src/InAppMessaging/components/BannerMessage/__tests__/BannerMessage.spec.tsx +138 -0
  197. package/src/InAppMessaging/components/BannerMessage/__tests__/__snapshots__/BannerMessage.spec.tsx.snap +230 -0
  198. package/src/InAppMessaging/components/BannerMessage/index.ts +2 -0
  199. package/src/InAppMessaging/components/BannerMessage/styles.ts +106 -0
  200. package/src/InAppMessaging/components/BannerMessage/types.ts +15 -0
  201. package/src/InAppMessaging/components/CarouselMessage/CarouselMessage.tsx +42 -0
  202. package/src/InAppMessaging/components/CarouselMessage/CarouselMessageItem.tsx +37 -0
  203. package/src/InAppMessaging/components/CarouselMessage/__tests__/CarouselMessage.spec.tsx +55 -0
  204. package/src/InAppMessaging/components/CarouselMessage/__tests__/CarouselMessageItem.spec.tsx +56 -0
  205. package/src/InAppMessaging/components/CarouselMessage/__tests__/__snapshots__/CarouselMessage.spec.tsx.snap +86 -0
  206. package/src/InAppMessaging/components/CarouselMessage/__tests__/__snapshots__/CarouselMessageItem.spec.tsx.snap +248 -0
  207. package/src/InAppMessaging/components/CarouselMessage/index.ts +2 -0
  208. package/src/InAppMessaging/components/CarouselMessage/styles.ts +126 -0
  209. package/src/InAppMessaging/components/CarouselMessage/types.ts +28 -0
  210. package/src/InAppMessaging/components/FullScreenMessage/FullScreenMessage.tsx +38 -0
  211. package/src/InAppMessaging/components/FullScreenMessage/__tests__/FullScreenMessage.spec.tsx +53 -0
  212. package/src/InAppMessaging/components/FullScreenMessage/__tests__/__snapshots__/FullScreenMessage.spec.tsx.snap +236 -0
  213. package/src/InAppMessaging/components/FullScreenMessage/index.ts +2 -0
  214. package/src/InAppMessaging/components/FullScreenMessage/styles.ts +107 -0
  215. package/src/InAppMessaging/components/FullScreenMessage/types.ts +7 -0
  216. package/src/InAppMessaging/components/InAppMessageDisplay/InAppMessageDisplay.tsx +48 -0
  217. package/src/InAppMessaging/components/InAppMessageDisplay/__tests__/InAppMessageDisplay.spec.tsx +31 -0
  218. package/src/InAppMessaging/components/InAppMessageDisplay/__tests__/__snapshots__/InAppMessageDisplay.spec.tsx.snap +9 -0
  219. package/src/InAppMessaging/components/InAppMessageDisplay/__tests__/handleMessageLinkAction.spec.ts +51 -0
  220. package/src/InAppMessaging/components/InAppMessageDisplay/handleMessageLinkAction.ts +30 -0
  221. package/src/InAppMessaging/components/InAppMessageDisplay/index.ts +2 -0
  222. package/src/InAppMessaging/components/InAppMessageDisplay/types.ts +32 -0
  223. package/src/InAppMessaging/components/MessageLayout/MessageLayout.tsx +102 -0
  224. package/src/InAppMessaging/components/MessageLayout/index.ts +1 -0
  225. package/src/InAppMessaging/components/MessageLayout/types.ts +15 -0
  226. package/src/InAppMessaging/components/MessageWrapper/MessageWrapper.tsx +34 -0
  227. package/src/InAppMessaging/components/MessageWrapper/__tests__/MessageWrapper.spec.tsx +19 -0
  228. package/src/InAppMessaging/components/MessageWrapper/__tests__/__snapshots__/MessageWrapper.spec.tsx.snap +35 -0
  229. package/src/InAppMessaging/components/MessageWrapper/index.ts +2 -0
  230. package/src/InAppMessaging/components/MessageWrapper/styles.ts +7 -0
  231. package/src/InAppMessaging/components/MessageWrapper/types.ts +12 -0
  232. package/src/InAppMessaging/components/ModalMessage/ModalMessage.tsx +37 -0
  233. package/src/InAppMessaging/components/ModalMessage/__tests__/ModalMessage.spec.tsx +155 -0
  234. package/src/InAppMessaging/components/ModalMessage/__tests__/__snapshots__/ModalMessage.spec.tsx.snap +332 -0
  235. package/src/InAppMessaging/components/ModalMessage/index.ts +2 -0
  236. package/src/InAppMessaging/components/ModalMessage/styles.ts +133 -0
  237. package/src/InAppMessaging/components/ModalMessage/types.ts +8 -0
  238. package/src/InAppMessaging/components/index.ts +6 -0
  239. package/src/InAppMessaging/components/withInAppMessaging/__tests__/__snapshots__/withInAppMessaging.spec.tsx.snap +3 -0
  240. package/src/InAppMessaging/components/withInAppMessaging/__tests__/withInAppMessaging.spec.tsx +15 -0
  241. package/src/InAppMessaging/components/withInAppMessaging/index.ts +1 -0
  242. package/src/InAppMessaging/components/withInAppMessaging/withInAppMessaging.tsx +18 -0
  243. package/src/InAppMessaging/constants.ts +57 -0
  244. package/src/InAppMessaging/hooks/index.ts +9 -0
  245. package/src/InAppMessaging/hooks/useMessageImage/__tests__/useMessageImage.spec.ts +141 -0
  246. package/src/InAppMessaging/hooks/useMessageImage/__tests__/utils.spec.ts +107 -0
  247. package/src/InAppMessaging/hooks/useMessageImage/constants.ts +27 -0
  248. package/src/InAppMessaging/hooks/useMessageImage/index.ts +2 -0
  249. package/src/InAppMessaging/hooks/useMessageImage/types.ts +18 -0
  250. package/src/InAppMessaging/hooks/useMessageImage/useMessageImage.ts +74 -0
  251. package/src/InAppMessaging/hooks/useMessageImage/utils.ts +80 -0
  252. package/src/InAppMessaging/hooks/useMessageProps/__tests__/__snapshots__/utils.spec.ts.snap +223 -0
  253. package/src/InAppMessaging/hooks/useMessageProps/__tests__/useMessageProps.spec.ts +162 -0
  254. package/src/InAppMessaging/hooks/useMessageProps/__tests__/utils.spec.ts +354 -0
  255. package/src/InAppMessaging/hooks/useMessageProps/index.ts +8 -0
  256. package/src/InAppMessaging/hooks/useMessageProps/types.ts +131 -0
  257. package/src/InAppMessaging/hooks/useMessageProps/useMessageProps.ts +70 -0
  258. package/src/InAppMessaging/hooks/useMessageProps/utils.ts +274 -0
  259. package/src/InAppMessaging/index.ts +14 -0
  260. package/src/__mocks__/@react-native-async-storage/async-storage.ts +2 -0
  261. package/src/__mocks__/@react-native-community/netinfo.ts +2 -0
  262. package/src/__mocks__/react-native-safe-area-context.ts +6 -0
  263. package/src/__tests__/__snapshots__/index.spec.ts.snap +15 -0
  264. package/src/__tests__/index.spec.ts +8 -0
  265. package/src/assets/icons/checkboxFilled.png +0 -0
  266. package/src/assets/icons/checkboxOutline.png +0 -0
  267. package/src/assets/icons/close.png +0 -0
  268. package/src/assets/icons/index.ts +9 -0
  269. package/src/assets/index.ts +1 -0
  270. package/src/hooks/index.ts +4 -0
  271. package/src/hooks/useDeviceOrientation/__tests__/useDeviceOrientation.spec.ts +87 -0
  272. package/src/hooks/useDeviceOrientation/index.ts +4 -0
  273. package/src/hooks/useDeviceOrientation/useDeviceOrientation.ts +47 -0
  274. package/src/index.ts +1 -0
  275. package/src/primitives/Button/Button.tsx +21 -0
  276. package/src/primitives/Button/__tests__/Button.spec.tsx +24 -0
  277. package/src/primitives/Button/__tests__/__snapshots__/Button.spec.tsx.snap +52 -0
  278. package/src/primitives/Button/index.ts +2 -0
  279. package/src/primitives/Button/styles.ts +6 -0
  280. package/src/primitives/Button/types.ts +9 -0
  281. package/src/primitives/Carousel/Carousel.tsx +115 -0
  282. package/src/primitives/Carousel/CarouselPageIndicator.tsx +39 -0
  283. package/src/primitives/Carousel/__tests__/Carousel.spec.tsx +185 -0
  284. package/src/primitives/Carousel/__tests__/CarouselPageIndicator.spec.tsx +71 -0
  285. package/src/primitives/Carousel/__tests__/__snapshots__/Carousel.spec.tsx.snap +216 -0
  286. package/src/primitives/Carousel/__tests__/__snapshots__/CarouselPageIndicator.spec.tsx.snap +191 -0
  287. package/src/primitives/Carousel/constants.ts +25 -0
  288. package/src/primitives/Carousel/index.ts +3 -0
  289. package/src/primitives/Carousel/styles.ts +14 -0
  290. package/src/primitives/Carousel/types.ts +22 -0
  291. package/src/primitives/Checkbox/Checkbox.tsx +57 -0
  292. package/src/primitives/Checkbox/__tests__/Checkbox.spec.tsx +50 -0
  293. package/src/primitives/Checkbox/__tests__/__snapshots__/Checkbox.spec.tsx.snap +198 -0
  294. package/src/primitives/Checkbox/index.ts +2 -0
  295. package/src/primitives/Checkbox/styles.ts +8 -0
  296. package/src/primitives/Checkbox/types.ts +20 -0
  297. package/src/primitives/Heading/Heading.tsx +22 -0
  298. package/src/primitives/Heading/__tests__/Heading.spec.tsx +36 -0
  299. package/src/primitives/Heading/__tests__/__snapshots__/Heading.spec.tsx.snap +150 -0
  300. package/src/primitives/Heading/index.ts +2 -0
  301. package/src/primitives/Heading/styles.ts +16 -0
  302. package/src/primitives/Heading/types.ts +13 -0
  303. package/src/primitives/Icon/Icon.tsx +20 -0
  304. package/src/primitives/Icon/__tests__/Icon.spec.tsx +25 -0
  305. package/src/primitives/Icon/__tests__/__snapshots__/Icon.spec.tsx.snap +64 -0
  306. package/src/primitives/Icon/index.ts +2 -0
  307. package/src/primitives/Icon/styles.ts +16 -0
  308. package/src/primitives/Icon/types.ts +22 -0
  309. package/src/primitives/IconButton/IconButton.tsx +19 -0
  310. package/src/primitives/IconButton/__tests__/IconButton.spec.tsx +23 -0
  311. package/src/primitives/IconButton/__tests__/__snapshots__/IconButton.spec.tsx.snap +75 -0
  312. package/src/primitives/IconButton/index.ts +2 -0
  313. package/src/primitives/IconButton/styles.ts +0 -0
  314. package/src/primitives/IconButton/types.ts +33 -0
  315. package/src/primitives/Label/Label.tsx +21 -0
  316. package/src/primitives/Label/__tests__/Label.spec.tsx +22 -0
  317. package/src/primitives/Label/__tests__/__snapshots__/Label.spec.tsx.snap +39 -0
  318. package/src/primitives/Label/index.ts +2 -0
  319. package/src/primitives/Label/styles.ts +7 -0
  320. package/src/primitives/Label/types.ts +8 -0
  321. package/src/primitives/Label/utils.ts +27 -0
  322. package/src/primitives/Radio/Radio.tsx +75 -0
  323. package/src/primitives/Radio/__tests__/Radio.spec.tsx +70 -0
  324. package/src/primitives/Radio/__tests__/__snapshots__/Radio.spec.tsx.snap +555 -0
  325. package/src/primitives/Radio/getRadioDimensions.ts +38 -0
  326. package/src/primitives/Radio/index.ts +2 -0
  327. package/src/primitives/Radio/styles.ts +50 -0
  328. package/src/primitives/Radio/types.ts +32 -0
  329. package/src/primitives/index.ts +8 -0
  330. package/src/utils/index.ts +10 -0
  331. package/tsconfig.dist.json +4 -0
  332. package/tsconfig.json +21 -0
@@ -0,0 +1 @@
1
+ export { default } from '@react-native-async-storage/async-storage/jest/async-storage-mock';
@@ -0,0 +1,2 @@
1
+ // mock RN AsyncStorage module to prevent errors from Amplify JS usage of the module
2
+ export { default } from '@react-native-async-storage/async-storage/jest/async-storage-mock';
@@ -0,0 +1 @@
1
+ export { default } from '@react-native-community/netinfo/jest/netinfo-mock.js';
@@ -0,0 +1,2 @@
1
+ // mock RN NetInfo module to prevent errors from Amplify JS usage of the module
2
+ export { default } from '@react-native-community/netinfo/jest/netinfo-mock.js';
@@ -0,0 +1,3 @@
1
+ declare const SafeAreaProvider = "SafeAreaProvider";
2
+ declare const SafeAreaView = "SafeAreaView";
3
+ export { SafeAreaProvider, SafeAreaView };
@@ -0,0 +1,4 @@
1
+ jest.mock('react-native-safe-area-context');
2
+ const SafeAreaProvider = 'SafeAreaProvider';
3
+ const SafeAreaView = 'SafeAreaView';
4
+ export { SafeAreaProvider, SafeAreaView };
Binary file
@@ -0,0 +1,7 @@
1
+ import { ImageSourcePropType } from 'react-native';
2
+ declare const icons: {
3
+ checkboxFilled: ImageSourcePropType;
4
+ checkboxOutline: ImageSourcePropType;
5
+ close: ImageSourcePropType;
6
+ };
7
+ export default icons;
@@ -0,0 +1,6 @@
1
+ const icons = {
2
+ checkboxFilled: require('./checkboxFilled.png'),
3
+ checkboxOutline: require('./checkboxOutline.png'),
4
+ close: require('./close.png'),
5
+ };
6
+ export default icons;
@@ -0,0 +1,9 @@
1
+ import { ImageSourcePropType } from 'react-native';
2
+
3
+ const icons = {
4
+ checkboxFilled: require('./checkboxFilled.png') as ImageSourcePropType,
5
+ checkboxOutline: require('./checkboxOutline.png') as ImageSourcePropType,
6
+ close: require('./close.png') as ImageSourcePropType,
7
+ };
8
+
9
+ export default icons;
@@ -0,0 +1 @@
1
+ export { default as icons } from './icons';
@@ -0,0 +1 @@
1
+ export { default as icons } from './icons';
@@ -0,0 +1 @@
1
+ export { default as icons } from './icons';
@@ -0,0 +1 @@
1
+ export { DeviceOrientation, useDeviceOrientation, } from './useDeviceOrientation';
@@ -0,0 +1 @@
1
+ export { useDeviceOrientation, } from './useDeviceOrientation';
@@ -0,0 +1 @@
1
+ export { default as useDeviceOrientation, DeviceOrientation, } from './useDeviceOrientation';
@@ -0,0 +1 @@
1
+ export { default as useDeviceOrientation, } from './useDeviceOrientation';
@@ -0,0 +1,6 @@
1
+ export declare type DeviceOrientation = 'portrait' | 'landscape';
2
+ export default function useDeviceOrientation(): {
3
+ deviceOrientation: DeviceOrientation;
4
+ isLandscapeMode: boolean;
5
+ isPortraitMode: boolean;
6
+ };
@@ -0,0 +1,33 @@
1
+ import { useEffect, useState } from 'react';
2
+ import { Dimensions } from 'react-native';
3
+ const getDeviceOrientation = () => {
4
+ const { height, width } = Dimensions.get('screen');
5
+ return height >= width ? 'portrait' : 'landscape';
6
+ };
7
+ export default function useDeviceOrientation() {
8
+ const [deviceOrientation, setDeviceOrientation] = useState(getDeviceOrientation);
9
+ const isLandscapeMode = deviceOrientation === 'landscape';
10
+ const isPortraitMode = deviceOrientation === 'portrait';
11
+ useEffect(() => {
12
+ const handler = () => {
13
+ setDeviceOrientation(getDeviceOrientation);
14
+ };
15
+ // The below cast and conditional unsubscribe handling is due to subscription removal variation
16
+ // between `Dimensions.addEventListener` in React Native prior to and after v0.65.
17
+ //
18
+ // Beginning with v0.65, `Dimensions.addEventListener` returns an `EventSubscription` object,
19
+ // which includes a `remove` method for removing the subscription. Prior versions return
20
+ // `undefined`, and subscription removal is handled by `Dimensions.removeEventListener`,
21
+ // which is deprecated in v0.65
22
+ const subscription = Dimensions.addEventListener('change', handler);
23
+ return () => {
24
+ if (typeof subscription?.remove === 'function') {
25
+ subscription.remove();
26
+ }
27
+ else {
28
+ Dimensions.removeEventListener('change', handler);
29
+ }
30
+ };
31
+ }, []);
32
+ return { deviceOrientation, isLandscapeMode, isPortraitMode };
33
+ }
@@ -0,0 +1 @@
1
+ export * from './InAppMessaging';
package/dist/index.js ADDED
@@ -0,0 +1 @@
1
+ export * from './InAppMessaging';
@@ -0,0 +1,2 @@
1
+ import { ButtonProps } from './types';
2
+ export default function Button({ children, textStyle, ...pressableProps }: ButtonProps): JSX.Element;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { Pressable, Text } from 'react-native';
3
+ import { styles } from './styles';
4
+ export default function Button({ children, textStyle, ...pressableProps }) {
5
+ return (<Pressable {...pressableProps}>
6
+ {typeof children === 'string' ? (<Text style={[styles.text, textStyle]}>{children}</Text>) : (children)}
7
+ </Pressable>);
8
+ }
@@ -0,0 +1,2 @@
1
+ export { default as Button } from './Button';
2
+ export { ButtonProps, ButtonStyles } from './types';
@@ -0,0 +1 @@
1
+ export { default as Button } from './Button';
@@ -0,0 +1,2 @@
1
+ import { ButtonStyles } from './types';
2
+ export declare const styles: ButtonStyles;
@@ -0,0 +1,4 @@
1
+ import { StyleSheet } from 'react-native';
2
+ export const styles = StyleSheet.create({
3
+ text: { alignSelf: 'center' },
4
+ });
@@ -0,0 +1,7 @@
1
+ import { PressableProps, StyleProp, TextStyle } from 'react-native';
2
+ export interface ButtonProps extends PressableProps {
3
+ textStyle?: StyleProp<TextStyle>;
4
+ }
5
+ export interface ButtonStyles {
6
+ text: TextStyle;
7
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ import { CarouselProps } from './types';
2
+ export default function Carousel<T>(props: CarouselProps<T>): JSX.Element | null;
@@ -0,0 +1,58 @@
1
+ import React, { useCallback, useEffect, useRef, useState } from 'react';
2
+ import { Dimensions, FlatList, View, } from 'react-native';
3
+ import CarouselPageIndicator from './CarouselPageIndicator';
4
+ import { VIEWABILITY_CONFIG } from './constants';
5
+ import { styles } from './styles';
6
+ export default function Carousel(props) {
7
+ const { data, indicatorActiveStyle, indicatorInactiveStyle, renderItem, style, } = props;
8
+ const flatListRef = useRef(null);
9
+ const indexRef = useRef(0);
10
+ const [currentIndex, setCurrentIndex] = useState(0);
11
+ const windowWidthRef = useRef(Dimensions.get('window').width);
12
+ const [width, setWidth] = useState(windowWidthRef.current);
13
+ const onViewableItemsChanged = useRef(({ viewableItems }) => {
14
+ if (viewableItems.length !== 1) {
15
+ return;
16
+ }
17
+ const [item] = viewableItems;
18
+ indexRef.current = item.index;
19
+ setCurrentIndex(indexRef.current);
20
+ });
21
+ const updateOrientation = useCallback((updatedWidth) => {
22
+ if (windowWidthRef.current !== updatedWidth) {
23
+ windowWidthRef.current = updatedWidth;
24
+ setWidth(updatedWidth);
25
+ }
26
+ }, []);
27
+ useEffect(() => {
28
+ // on width change (due to orientation change), jump to the new index offset
29
+ flatListRef?.current?.scrollToOffset({
30
+ offset: width * indexRef.current,
31
+ animated: false,
32
+ });
33
+ }, [width]);
34
+ useEffect(() => {
35
+ const orientationHandler = ({ window }) => {
36
+ updateOrientation(window.width);
37
+ };
38
+ const subscription = Dimensions.addEventListener('change', orientationHandler);
39
+ // Clean up listener. Dimensions.removeEventListener is deprecated as of React Native 0.65 but it is technically
40
+ // available so try to remove via a `EmitterSubscription` first before falling back to `removeEventListener`
41
+ return () => {
42
+ if (typeof subscription?.remove === 'function') {
43
+ subscription?.remove();
44
+ }
45
+ else {
46
+ Dimensions.removeEventListener('change', orientationHandler);
47
+ }
48
+ };
49
+ }, [updateOrientation]);
50
+ const carouselRenderItem = (renderInfo) => (<View style={{ width }}>{renderItem(renderInfo)}</View>);
51
+ if (!data?.length) {
52
+ return null;
53
+ }
54
+ return (<>
55
+ <FlatList bounces={false} data={data} decelerationRate="fast" disableIntervalMomentum horizontal onViewableItemsChanged={onViewableItemsChanged.current} ref={flatListRef} renderItem={carouselRenderItem} renderToHardwareTextureAndroid showsHorizontalScrollIndicator={false} showsVerticalScrollIndicator={false} snapToAlignment="start" snapToInterval={width} style={style} viewabilityConfig={VIEWABILITY_CONFIG}/>
56
+ <CarouselPageIndicator activeStyle={indicatorActiveStyle} currentIndex={currentIndex} inactiveStyle={indicatorInactiveStyle} numberOfItems={data.length} style={styles.indicator}/>
57
+ </>);
58
+ }
@@ -0,0 +1,2 @@
1
+ import { CarouselPageIndicatorProps } from './types';
2
+ export default function CarouselPageIndicator({ activeStyle, currentIndex, inactiveStyle, numberOfItems, style, }: CarouselPageIndicatorProps): JSX.Element;
@@ -0,0 +1,10 @@
1
+ import React, { useMemo } from 'react';
2
+ import { View } from 'react-native';
3
+ import { SafeAreaView } from 'react-native-safe-area-context';
4
+ import { DEFAULT_CAROUSEL_INDICATOR_ACTIVE_STYLE, DEFAULT_CAROUSEL_INDICATOR_INACTIVE_STYLE, } from './constants';
5
+ export default function CarouselPageIndicator({ activeStyle, currentIndex, inactiveStyle, numberOfItems, style, }) {
6
+ const items = useMemo(() => new Array(numberOfItems ?? 0)
7
+ .fill(null)
8
+ .map((_, index) => (currentIndex ?? 0) === index ? (<View style={[DEFAULT_CAROUSEL_INDICATOR_ACTIVE_STYLE, activeStyle]} key={`indicator-item-${index}`}/>) : (<View style={[DEFAULT_CAROUSEL_INDICATOR_INACTIVE_STYLE, inactiveStyle]} key={`indicator-item-${index}`}/>)), [activeStyle, currentIndex, inactiveStyle, numberOfItems]);
9
+ return <SafeAreaView style={style}>{items}</SafeAreaView>;
10
+ }
@@ -0,0 +1,9 @@
1
+ import { ViewStyle } from 'react-native';
2
+ export declare const DEFAULT_CAROUSEL_COLOR_ACTIVE = "#a1a1a1";
3
+ export declare const DEFAULT_CAROUSEL_COLOR_INACTIVE = "#d8d8d8";
4
+ export declare const DEFAULT_CAROUSEL_INDICATOR_SIZE = 12;
5
+ export declare const DEFAULT_CAROUSEL_INDICATOR_ACTIVE_STYLE: ViewStyle;
6
+ export declare const DEFAULT_CAROUSEL_INDICATOR_INACTIVE_STYLE: ViewStyle;
7
+ export declare const VIEWABILITY_CONFIG: {
8
+ itemVisiblePercentThreshold: number;
9
+ };
@@ -0,0 +1,18 @@
1
+ export const DEFAULT_CAROUSEL_COLOR_ACTIVE = '#a1a1a1';
2
+ export const DEFAULT_CAROUSEL_COLOR_INACTIVE = '#d8d8d8';
3
+ export const DEFAULT_CAROUSEL_INDICATOR_SIZE = 12;
4
+ const DEFAULT_CAROUSEL_INDICATOR_STYLE = {
5
+ borderRadius: DEFAULT_CAROUSEL_INDICATOR_SIZE / 2,
6
+ height: DEFAULT_CAROUSEL_INDICATOR_SIZE,
7
+ margin: DEFAULT_CAROUSEL_INDICATOR_SIZE / 3,
8
+ width: DEFAULT_CAROUSEL_INDICATOR_SIZE,
9
+ };
10
+ export const DEFAULT_CAROUSEL_INDICATOR_ACTIVE_STYLE = {
11
+ ...DEFAULT_CAROUSEL_INDICATOR_STYLE,
12
+ backgroundColor: DEFAULT_CAROUSEL_COLOR_ACTIVE,
13
+ };
14
+ export const DEFAULT_CAROUSEL_INDICATOR_INACTIVE_STYLE = {
15
+ ...DEFAULT_CAROUSEL_INDICATOR_STYLE,
16
+ backgroundColor: DEFAULT_CAROUSEL_COLOR_INACTIVE,
17
+ };
18
+ export const VIEWABILITY_CONFIG = { itemVisiblePercentThreshold: 60 };
@@ -0,0 +1,3 @@
1
+ export { default as Carousel } from './Carousel';
2
+ export { DEFAULT_CAROUSEL_INDICATOR_SIZE } from './constants';
3
+ export { CarouselProps } from './types';
@@ -0,0 +1,2 @@
1
+ export { default as Carousel } from './Carousel';
2
+ export { DEFAULT_CAROUSEL_INDICATOR_SIZE } from './constants';
@@ -0,0 +1,2 @@
1
+ import { CarouselStyles } from './types';
2
+ export declare const styles: CarouselStyles;
@@ -0,0 +1,11 @@
1
+ import { StyleSheet } from 'react-native';
2
+ export const styles = StyleSheet.create({
3
+ indicator: {
4
+ bottom: 0,
5
+ flexDirection: 'row',
6
+ justifyContent: 'center',
7
+ left: 0,
8
+ position: 'absolute',
9
+ right: 0,
10
+ },
11
+ });
@@ -0,0 +1,19 @@
1
+ import { ListRenderItem, StyleProp, ViewStyle } from 'react-native';
2
+ export interface CarouselProps<T> {
3
+ data: ReadonlyArray<T>;
4
+ indicatorActiveStyle?: StyleProp<ViewStyle>;
5
+ indicatorInactiveStyle?: StyleProp<ViewStyle>;
6
+ onClose?: () => void;
7
+ renderItem: ListRenderItem<T>;
8
+ style?: StyleProp<ViewStyle>;
9
+ }
10
+ export interface CarouselPageIndicatorProps {
11
+ activeStyle?: StyleProp<ViewStyle>;
12
+ currentIndex: number | null;
13
+ inactiveStyle?: StyleProp<ViewStyle>;
14
+ numberOfItems: number;
15
+ style?: StyleProp<ViewStyle>;
16
+ }
17
+ export interface CarouselStyles {
18
+ indicator: ViewStyle;
19
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ import { CheckboxProps } from './types';
2
+ export default function Checkbox<T>({ accessibilityRole, iconStyle, disabled, label, labelPosition, labelStyle, onChange, selected, size, style, value, ...rest }: CheckboxProps<T>): JSX.Element;
@@ -0,0 +1,23 @@
1
+ import React, { useCallback, useMemo, useState } from 'react';
2
+ import { Pressable } from 'react-native';
3
+ import { icons } from '../../assets';
4
+ import { styles } from './styles';
5
+ import { Label } from '../Label';
6
+ import { getFlexDirectionFromLabelPosition } from '../Label/utils';
7
+ import { Icon } from '../Icon';
8
+ export default function Checkbox({ accessibilityRole = 'checkbox', iconStyle, disabled, label, labelPosition = 'end', labelStyle, onChange, selected, size, style, value, ...rest }) {
9
+ const [checked, setChecked] = useState(selected ?? false);
10
+ const handleOnChange = useCallback(() => {
11
+ onChange?.(value);
12
+ setChecked(!checked);
13
+ }, [onChange, value, checked]);
14
+ const containerStyle = useMemo(() => ({
15
+ ...styles.container,
16
+ flexDirection: getFlexDirectionFromLabelPosition(labelPosition),
17
+ opacity: disabled ? 0.6 : 1,
18
+ }), [disabled, labelPosition]);
19
+ return (<Pressable {...rest} accessibilityRole={accessibilityRole} disabled={disabled} onPress={handleOnChange} style={[containerStyle, style]}>
20
+ <Icon source={checked ? icons.checkboxFilled : icons.checkboxOutline} size={size} style={iconStyle}/>
21
+ {label ? <Label style={labelStyle}>{label}</Label> : null}
22
+ </Pressable>);
23
+ }
@@ -0,0 +1,2 @@
1
+ export { default as Checkbox } from './Checkbox';
2
+ export type { CheckboxProps } from './types';
@@ -0,0 +1 @@
1
+ export { default as Checkbox } from './Checkbox';
@@ -0,0 +1,2 @@
1
+ import { CheckboxStyle } from './types';
2
+ export declare const styles: CheckboxStyle;
@@ -0,0 +1,6 @@
1
+ export const styles = {
2
+ container: {
3
+ alignItems: 'center',
4
+ padding: 4,
5
+ },
6
+ };
@@ -0,0 +1,18 @@
1
+ import { PressableProps, StyleProp, ViewStyle } from 'react-native';
2
+ import { IconProps } from '../Icon/types';
3
+ import { LabelProps } from '../Label';
4
+ import { LabelPosition } from '../Label/types';
5
+ export interface CheckboxProps<T> extends PressableProps {
6
+ iconStyle?: IconProps['style'];
7
+ label?: string;
8
+ labelPosition?: LabelPosition;
9
+ labelStyle?: LabelProps['style'];
10
+ onChange: (value: T) => void;
11
+ selected?: boolean;
12
+ size?: number;
13
+ style?: StyleProp<ViewStyle>;
14
+ value: T;
15
+ }
16
+ export interface CheckboxStyle {
17
+ container: ViewStyle;
18
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ import { HeadingProps } from './types';
2
+ export default function Heading({ accessibilityRole, children, level, style, ...rest }: HeadingProps): JSX.Element;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { Text } from 'react-native';
3
+ import { styles } from './styles';
4
+ export default function Heading({ accessibilityRole = 'header', children, level = 6, style, ...rest }) {
5
+ return (<Text {...rest} accessibilityRole={accessibilityRole} style={[styles.text, styles[level], style]}>
6
+ {children}
7
+ </Text>);
8
+ }
@@ -0,0 +1,2 @@
1
+ export { default as Heading } from './Heading';
2
+ export { HeadingProps, HeadingStyles } from './types';
@@ -0,0 +1 @@
1
+ export { default as Heading } from './Heading';
@@ -0,0 +1,2 @@
1
+ import { HeadingStyles } from './types';
2
+ export declare const styles: HeadingStyles;
@@ -0,0 +1,14 @@
1
+ import { StyleSheet } from 'react-native';
2
+ import { getLineHeight } from '../../utils';
3
+ export const styles = StyleSheet.create({
4
+ text: {
5
+ color: 'black',
6
+ },
7
+ // these values are completely arbitrary for now
8
+ 1: { fontSize: 56, fontWeight: '100', lineHeight: getLineHeight(56) },
9
+ 2: { fontSize: 44, fontWeight: '200', lineHeight: getLineHeight(44) },
10
+ 3: { fontSize: 34, fontWeight: '300', lineHeight: getLineHeight(34) },
11
+ 4: { fontSize: 26, fontWeight: '500', lineHeight: getLineHeight(26) },
12
+ 5: { fontSize: 20, fontWeight: '700', lineHeight: getLineHeight(20) },
13
+ 6: { fontSize: 16, fontWeight: '900', lineHeight: getLineHeight(16) },
14
+ });
@@ -0,0 +1,11 @@
1
+ import { TextProps, TextStyle } from 'react-native';
2
+ declare type Level = 1 | 2 | 3 | 4 | 5 | 6;
3
+ export interface HeadingProps extends TextProps {
4
+ level?: Level;
5
+ }
6
+ export declare type HeadingStyles = {
7
+ text: TextStyle;
8
+ } & {
9
+ [key in Level]: TextStyle;
10
+ };
11
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ import { IconProps } from './types';
2
+ export default function Icon({ animated, color, size, style, ...rest }: IconProps): JSX.Element;
@@ -0,0 +1,10 @@
1
+ import React, { useMemo } from 'react';
2
+ import { Animated, Image } from 'react-native';
3
+ import { getStyles } from './styles';
4
+ export default function Icon({ animated, color, size, style, ...rest }) {
5
+ const { icon } = useMemo(() => getStyles(color, size), [color, size]);
6
+ if (animated) {
7
+ return <Animated.Image {...rest} style={[icon, style]}/>;
8
+ }
9
+ return <Image {...rest} style={[icon, style]}/>;
10
+ }
@@ -0,0 +1,2 @@
1
+ export { default as Icon } from './Icon';
2
+ export { IconProps } from './types';
@@ -0,0 +1 @@
1
+ export { default as Icon } from './Icon';
@@ -0,0 +1,2 @@
1
+ import { IconProps, IconStyles } from './types';
2
+ export declare const getStyles: (color: IconProps['color'], size: IconProps['size']) => IconStyles;
@@ -0,0 +1,9 @@
1
+ import { StyleSheet } from 'react-native';
2
+ export const getStyles = (color, size) => StyleSheet.create({
3
+ icon: {
4
+ height: size,
5
+ resizeMode: 'contain',
6
+ tintColor: color,
7
+ width: size,
8
+ },
9
+ });
@@ -0,0 +1,18 @@
1
+ import { ColorValue, ImageProps, ImageStyle } from 'react-native';
2
+ export interface IconStyles {
3
+ icon: ImageStyle;
4
+ }
5
+ export interface IconProps extends ImageProps {
6
+ /**
7
+ * Whether the icon is animated
8
+ */
9
+ animated?: boolean;
10
+ /**
11
+ * Color to be applied to the icon
12
+ */
13
+ color?: ColorValue;
14
+ /**
15
+ * Icon size
16
+ */
17
+ size?: number;
18
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ import { IconButtonProps } from './types';
2
+ export default function IconButton({ color, iconStyle, source, size, ...rest }: IconButtonProps): JSX.Element;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { Pressable } from 'react-native';
3
+ import { Icon } from '../Icon';
4
+ export default function IconButton({ color, iconStyle, source, size = 16, ...rest }) {
5
+ return (<Pressable {...rest}>
6
+ <Icon color={color} size={size} source={source} style={iconStyle}/>
7
+ </Pressable>);
8
+ }
@@ -0,0 +1,2 @@
1
+ export { default as IconButton } from './IconButton';
2
+ export { IconButtonProps, IconButtonStyles } from './types';
@@ -0,0 +1 @@
1
+ export { default as IconButton } from './IconButton';
File without changes
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1,22 @@
1
+ import { ColorValue, ImageSourcePropType, ImageStyle, PressableProps, StyleProp } from 'react-native';
2
+ export interface IconButtonStyles {
3
+ icon: ImageStyle;
4
+ }
5
+ export interface IconButtonProps extends PressableProps {
6
+ /**
7
+ * Color to be applied to the icon
8
+ */
9
+ color?: ColorValue;
10
+ /**
11
+ * Icon style properties
12
+ */
13
+ iconStyle?: StyleProp<ImageStyle>;
14
+ /**
15
+ * Icon source, only supports images at this time
16
+ */
17
+ source: ImageSourcePropType;
18
+ /**
19
+ * Icon size
20
+ */
21
+ size?: number;
22
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ import { LabelProps } from './types';
2
+ export default function Label({ accessibilityRole, children, style, ...rest }: LabelProps): JSX.Element;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { Text } from 'react-native';
3
+ import { styles } from './styles';
4
+ export default function Label({ accessibilityRole = 'text', children, style, ...rest }) {
5
+ return (<Text {...rest} accessibilityRole={accessibilityRole} style={[styles.label, style]}>
6
+ {children}
7
+ </Text>);
8
+ }
@@ -0,0 +1,2 @@
1
+ export { default as Label } from './Label';
2
+ export { LabelProps } from './types';
@@ -0,0 +1 @@
1
+ export { default as Label } from './Label';
@@ -0,0 +1,2 @@
1
+ import { LabelStyles } from './types';
2
+ export declare const styles: LabelStyles;
@@ -0,0 +1,4 @@
1
+ import { StyleSheet } from 'react-native';
2
+ export const styles = StyleSheet.create({
3
+ label: { fontSize: 16, marginVertical: 2, marginHorizontal: 4 },
4
+ });