@aws-amplify/ui-react-native 1.2.22 → 1.2.24

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 (351) hide show
  1. package/dist/version.d.ts +1 -1
  2. package/dist/version.js +1 -1
  3. package/lib/Authenticator/Authenticator.js +72 -0
  4. package/lib/Authenticator/Defaults/ConfirmResetPassword/ConfirmResetPassword.js +43 -0
  5. package/lib/Authenticator/Defaults/ConfirmResetPassword/index.js +8 -0
  6. package/lib/Authenticator/Defaults/ConfirmSignIn/ConfirmSignIn.js +42 -0
  7. package/lib/Authenticator/Defaults/ConfirmSignIn/index.js +8 -0
  8. package/lib/Authenticator/Defaults/ConfirmSignUp/ConfirmSignUp.js +43 -0
  9. package/lib/Authenticator/Defaults/ConfirmSignUp/index.js +8 -0
  10. package/lib/Authenticator/Defaults/ConfirmVerifyUser/ConfirmVerifyUser.js +42 -0
  11. package/lib/Authenticator/Defaults/ConfirmVerifyUser/index.js +8 -0
  12. package/lib/Authenticator/Defaults/ForceNewPassword/ForceNewPassword.js +45 -0
  13. package/lib/Authenticator/Defaults/ForceNewPassword/index.js +8 -0
  14. package/lib/Authenticator/Defaults/ResetPassword/ResetPassword.js +42 -0
  15. package/lib/Authenticator/Defaults/ResetPassword/index.js +8 -0
  16. package/lib/Authenticator/Defaults/SetupTOTP/SetupTOTP.js +52 -0
  17. package/lib/Authenticator/Defaults/SetupTOTP/index.js +8 -0
  18. package/lib/Authenticator/Defaults/SetupTOTP/styles.js +8 -0
  19. package/lib/Authenticator/Defaults/SignIn/SignIn.js +50 -0
  20. package/lib/Authenticator/Defaults/SignIn/index.js +8 -0
  21. package/lib/Authenticator/Defaults/SignUp/SignUp.js +48 -0
  22. package/lib/Authenticator/Defaults/SignUp/index.js +8 -0
  23. package/lib/Authenticator/Defaults/VerifyUser/VerifyUser.js +33 -0
  24. package/lib/Authenticator/Defaults/VerifyUser/index.js +8 -0
  25. package/lib/Authenticator/Defaults/index.js +23 -0
  26. package/lib/Authenticator/Defaults/types.js +2 -0
  27. package/lib/Authenticator/common/DefaultContainer/DefaultContainer.js +37 -0
  28. package/lib/Authenticator/common/DefaultContainer/InnerContainer.js +15 -0
  29. package/lib/Authenticator/common/DefaultContainer/index.js +10 -0
  30. package/lib/Authenticator/common/DefaultContainer/styles.js +31 -0
  31. package/lib/Authenticator/common/DefaultContainer/types.js +2 -0
  32. package/lib/Authenticator/common/DefaultContent/DefaultContent.js +33 -0
  33. package/lib/Authenticator/common/DefaultContent/index.js +8 -0
  34. package/lib/Authenticator/common/DefaultContent/styles.js +54 -0
  35. package/lib/Authenticator/common/DefaultContent/types.js +2 -0
  36. package/lib/Authenticator/common/DefaultFooter/DefaultFooter.js +9 -0
  37. package/lib/Authenticator/common/DefaultFooter/index.js +8 -0
  38. package/lib/Authenticator/common/DefaultFooter/types.js +2 -0
  39. package/lib/Authenticator/common/DefaultFormFields/DefaultRadioFormFields.js +28 -0
  40. package/lib/Authenticator/common/DefaultFormFields/DefaultTextFormFields.js +21 -0
  41. package/lib/Authenticator/common/DefaultFormFields/Field.js +37 -0
  42. package/lib/Authenticator/common/DefaultFormFields/FieldErrors.js +17 -0
  43. package/lib/Authenticator/common/DefaultFormFields/index.js +10 -0
  44. package/lib/Authenticator/common/DefaultFormFields/types.js +2 -0
  45. package/lib/Authenticator/common/DefaultHeader/DefaultHeader.js +11 -0
  46. package/lib/Authenticator/common/DefaultHeader/index.js +8 -0
  47. package/lib/Authenticator/common/DefaultHeader/types.js +2 -0
  48. package/lib/Authenticator/common/FederatedProviderButton/FederatedProviderButton.js +18 -0
  49. package/lib/Authenticator/common/FederatedProviderButton/index.js +8 -0
  50. package/lib/Authenticator/common/FederatedProviderButton/styles.js +21 -0
  51. package/lib/Authenticator/common/FederatedProviderButton/types.js +2 -0
  52. package/lib/Authenticator/common/FederatedProviderButtons/FederatedProviderButtons.js +26 -0
  53. package/lib/Authenticator/common/FederatedProviderButtons/index.js +8 -0
  54. package/lib/Authenticator/common/FederatedProviderButtons/styles.js +8 -0
  55. package/lib/Authenticator/common/FederatedProviderButtons/types.js +2 -0
  56. package/lib/Authenticator/common/index.js +10 -0
  57. package/lib/Authenticator/hooks/index.js +5 -0
  58. package/lib/Authenticator/hooks/types.js +2 -0
  59. package/lib/Authenticator/hooks/useFieldValues/constants.js +11 -0
  60. package/lib/Authenticator/hooks/useFieldValues/index.js +10 -0
  61. package/lib/Authenticator/hooks/useFieldValues/types.js +2 -0
  62. package/lib/Authenticator/hooks/useFieldValues/useFieldValues.js +101 -0
  63. package/lib/Authenticator/hooks/useFieldValues/utils.js +139 -0
  64. package/lib/Authenticator/index.js +13 -0
  65. package/lib/Authenticator/types.js +2 -0
  66. package/lib/Authenticator/withAuthenticator.js +15 -0
  67. package/lib/InAppMessaging/components/BannerMessage/BannerMessage.js +20 -0
  68. package/lib/InAppMessaging/components/BannerMessage/index.js +8 -0
  69. package/lib/InAppMessaging/components/BannerMessage/styles.js +81 -0
  70. package/lib/InAppMessaging/components/BannerMessage/types.js +2 -0
  71. package/lib/InAppMessaging/components/CarouselMessage/CarouselMessage.js +25 -0
  72. package/lib/InAppMessaging/components/CarouselMessage/CarouselMessageItem.js +22 -0
  73. package/lib/InAppMessaging/components/CarouselMessage/index.js +8 -0
  74. package/lib/InAppMessaging/components/CarouselMessage/styles.js +103 -0
  75. package/lib/InAppMessaging/components/CarouselMessage/types.js +2 -0
  76. package/lib/InAppMessaging/components/FullScreenMessage/FullScreenMessage.js +22 -0
  77. package/lib/InAppMessaging/components/FullScreenMessage/index.js +8 -0
  78. package/lib/InAppMessaging/components/FullScreenMessage/styles.js +91 -0
  79. package/lib/InAppMessaging/components/FullScreenMessage/types.js +2 -0
  80. package/lib/InAppMessaging/components/InAppMessageDisplay/InAppMessageDisplay.js +32 -0
  81. package/lib/InAppMessaging/components/InAppMessageDisplay/handleMessageLinkAction.js +26 -0
  82. package/lib/InAppMessaging/components/InAppMessageDisplay/index.js +8 -0
  83. package/lib/InAppMessaging/components/InAppMessageDisplay/types.js +2 -0
  84. package/lib/InAppMessaging/components/MessageLayout/MessageLayout.js +38 -0
  85. package/lib/InAppMessaging/components/MessageLayout/index.js +8 -0
  86. package/lib/InAppMessaging/components/MessageLayout/types.js +2 -0
  87. package/lib/InAppMessaging/components/MessageWrapper/MessageWrapper.js +24 -0
  88. package/lib/InAppMessaging/components/MessageWrapper/index.js +8 -0
  89. package/lib/InAppMessaging/components/MessageWrapper/styles.js +8 -0
  90. package/lib/InAppMessaging/components/MessageWrapper/types.js +2 -0
  91. package/lib/InAppMessaging/components/ModalMessage/ModalMessage.js +22 -0
  92. package/lib/InAppMessaging/components/ModalMessage/index.js +8 -0
  93. package/lib/InAppMessaging/components/ModalMessage/styles.js +104 -0
  94. package/lib/InAppMessaging/components/ModalMessage/types.js +2 -0
  95. package/lib/InAppMessaging/components/index.js +7 -0
  96. package/lib/InAppMessaging/components/withInAppMessaging/index.js +8 -0
  97. package/lib/InAppMessaging/components/withInAppMessaging/withInAppMessaging.js +15 -0
  98. package/lib/InAppMessaging/constants.js +48 -0
  99. package/lib/InAppMessaging/hooks/index.js +7 -0
  100. package/lib/InAppMessaging/hooks/useMessageImage/constants.js +21 -0
  101. package/lib/InAppMessaging/hooks/useMessageImage/index.js +8 -0
  102. package/lib/InAppMessaging/hooks/useMessageImage/types.js +9 -0
  103. package/lib/InAppMessaging/hooks/useMessageImage/useMessageImage.js +53 -0
  104. package/lib/InAppMessaging/hooks/useMessageImage/utils.js +61 -0
  105. package/lib/InAppMessaging/hooks/useMessageProps/index.js +8 -0
  106. package/lib/InAppMessaging/hooks/useMessageProps/types.js +2 -0
  107. package/lib/InAppMessaging/hooks/useMessageProps/useMessageProps.js +52 -0
  108. package/lib/InAppMessaging/hooks/useMessageProps/utils.js +201 -0
  109. package/lib/InAppMessaging/index.js +9 -0
  110. package/lib/assets/icons/amazonLogo.png +0 -0
  111. package/lib/assets/icons/amazonLogo@2x.png +0 -0
  112. package/lib/assets/icons/amazonLogo@3x.png +0 -0
  113. package/lib/assets/icons/appleLogo.png +0 -0
  114. package/lib/assets/icons/appleLogo@2x.png +0 -0
  115. package/lib/assets/icons/appleLogo@3x.png +0 -0
  116. package/lib/assets/icons/checkboxFilled.png +0 -0
  117. package/lib/assets/icons/checkboxFilled@2x.png +0 -0
  118. package/lib/assets/icons/checkboxFilled@3x.png +0 -0
  119. package/lib/assets/icons/checkboxOutline.png +0 -0
  120. package/lib/assets/icons/checkboxOutline@2x.png +0 -0
  121. package/lib/assets/icons/checkboxOutline@3x.png +0 -0
  122. package/lib/assets/icons/close.png +0 -0
  123. package/lib/assets/icons/close@2x.png +0 -0
  124. package/lib/assets/icons/close@3x.png +0 -0
  125. package/lib/assets/icons/copy.png +0 -0
  126. package/lib/assets/icons/copy@2x.png +0 -0
  127. package/lib/assets/icons/copy@3x.png +0 -0
  128. package/lib/assets/icons/error.png +0 -0
  129. package/lib/assets/icons/error@2x.png +0 -0
  130. package/lib/assets/icons/error@3x.png +0 -0
  131. package/lib/assets/icons/facebookLogo.png +0 -0
  132. package/lib/assets/icons/facebookLogo@2x.png +0 -0
  133. package/lib/assets/icons/facebookLogo@3x.png +0 -0
  134. package/lib/assets/icons/googleLogo.png +0 -0
  135. package/lib/assets/icons/googleLogo@2x.png +0 -0
  136. package/lib/assets/icons/googleLogo@3x.png +0 -0
  137. package/lib/assets/icons/index.js +16 -0
  138. package/lib/assets/icons/index.ts +17 -0
  139. package/lib/assets/icons/visibilityOff.png +0 -0
  140. package/lib/assets/icons/visibilityOff@2x.png +0 -0
  141. package/lib/assets/icons/visibilityOff@3x.png +0 -0
  142. package/lib/assets/icons/visibilityOn.png +0 -0
  143. package/lib/assets/icons/visibilityOn@2x.png +0 -0
  144. package/lib/assets/icons/visibilityOn@3x.png +0 -0
  145. package/lib/assets/index.js +8 -0
  146. package/lib/hooks/index.js +9 -0
  147. package/lib/hooks/useDeprecationWarning/index.js +8 -0
  148. package/lib/hooks/useDeprecationWarning/useDeprecationWarning.js +13 -0
  149. package/lib/hooks/useDeviceOrientation/index.js +8 -0
  150. package/lib/hooks/useDeviceOrientation/useDeviceOrientation.js +37 -0
  151. package/lib/hooks/usePressableContainerStyles/index.js +5 -0
  152. package/lib/hooks/usePressableContainerStyles/usePressableContainerStyles.js +19 -0
  153. package/lib/index.js +14 -0
  154. package/lib/primitives/Button/Button.js +31 -0
  155. package/lib/primitives/Button/index.js +8 -0
  156. package/lib/primitives/Button/styles.js +55 -0
  157. package/lib/primitives/Button/types.js +2 -0
  158. package/lib/primitives/Carousel/Carousel.js +63 -0
  159. package/lib/primitives/Carousel/CarouselPageIndicator.js +14 -0
  160. package/lib/primitives/Carousel/constants.js +21 -0
  161. package/lib/primitives/Carousel/index.js +10 -0
  162. package/lib/primitives/Carousel/styles.js +14 -0
  163. package/lib/primitives/Carousel/types.js +2 -0
  164. package/lib/primitives/Checkbox/Checkbox.js +28 -0
  165. package/lib/primitives/Checkbox/index.js +8 -0
  166. package/lib/primitives/Checkbox/styles.js +28 -0
  167. package/lib/primitives/Checkbox/types.js +2 -0
  168. package/lib/primitives/Divider/Divider.js +22 -0
  169. package/lib/primitives/Divider/index.js +8 -0
  170. package/lib/primitives/Divider/styles.js +28 -0
  171. package/lib/primitives/Divider/types.js +2 -0
  172. package/lib/primitives/ErrorMessage/ErrorMessage.js +22 -0
  173. package/lib/primitives/ErrorMessage/index.js +8 -0
  174. package/lib/primitives/ErrorMessage/styles.js +30 -0
  175. package/lib/primitives/ErrorMessage/types.js +2 -0
  176. package/lib/primitives/Heading/Heading.js +15 -0
  177. package/lib/primitives/Heading/index.js +8 -0
  178. package/lib/primitives/Heading/styles.js +51 -0
  179. package/lib/primitives/Heading/types.js +2 -0
  180. package/lib/primitives/Icon/Icon.js +21 -0
  181. package/lib/primitives/Icon/constants.js +10 -0
  182. package/lib/primitives/Icon/index.js +10 -0
  183. package/lib/primitives/Icon/styles.js +34 -0
  184. package/lib/primitives/Icon/types.js +2 -0
  185. package/lib/primitives/IconButton/IconButton.js +26 -0
  186. package/lib/primitives/IconButton/index.js +8 -0
  187. package/lib/primitives/IconButton/styles.js +21 -0
  188. package/lib/primitives/IconButton/types.js +2 -0
  189. package/lib/primitives/Label/Label.js +16 -0
  190. package/lib/primitives/Label/index.js +8 -0
  191. package/lib/primitives/Label/styles.js +45 -0
  192. package/lib/primitives/Label/types.js +2 -0
  193. package/lib/primitives/Label/utils.js +25 -0
  194. package/lib/primitives/PasswordField/PasswordField.js +24 -0
  195. package/lib/primitives/PasswordField/index.js +8 -0
  196. package/lib/primitives/PasswordField/styles.js +17 -0
  197. package/lib/primitives/PasswordField/types.js +2 -0
  198. package/lib/primitives/PhoneNumberField/PhoneNumberField.js +13 -0
  199. package/lib/primitives/PhoneNumberField/index.js +8 -0
  200. package/lib/primitives/PhoneNumberField/styles.js +22 -0
  201. package/lib/primitives/PhoneNumberField/types.js +2 -0
  202. package/lib/primitives/Radio/Radio.js +46 -0
  203. package/lib/primitives/Radio/getRadioDimensions.js +43 -0
  204. package/lib/primitives/Radio/index.js +8 -0
  205. package/lib/primitives/Radio/styles.js +68 -0
  206. package/lib/primitives/Radio/types.js +2 -0
  207. package/lib/primitives/RadioGroup/RadioGroup.js +55 -0
  208. package/lib/primitives/RadioGroup/index.js +8 -0
  209. package/lib/primitives/RadioGroup/styles.js +20 -0
  210. package/lib/primitives/RadioGroup/types.js +2 -0
  211. package/lib/primitives/Tabs/Tab.js +27 -0
  212. package/lib/primitives/Tabs/Tabs.js +29 -0
  213. package/lib/primitives/Tabs/index.js +10 -0
  214. package/lib/primitives/Tabs/styles.js +58 -0
  215. package/lib/primitives/Tabs/types.js +2 -0
  216. package/lib/primitives/TextField/TextField.js +31 -0
  217. package/lib/primitives/TextField/index.js +8 -0
  218. package/lib/primitives/TextField/styles.js +46 -0
  219. package/lib/primitives/TextField/types.js +2 -0
  220. package/lib/primitives/index.js +18 -0
  221. package/lib/theme/ThemeContext.js +9 -0
  222. package/lib/theme/ThemeProvider.js +12 -0
  223. package/lib/theme/createTheme.js +113 -0
  224. package/lib/theme/defaultTheme.js +11 -0
  225. package/lib/theme/index.js +12 -0
  226. package/lib/theme/types.js +2 -0
  227. package/lib/theme/useTheme.js +11 -0
  228. package/lib/utils/font.js +8 -0
  229. package/lib/utils/index.js +10 -0
  230. package/lib/utils/platform.js +21 -0
  231. package/lib/version.js +4 -0
  232. package/package.json +20 -11
  233. package/src/version.ts +1 -1
  234. package/.eslintrc.js +0 -12
  235. package/.lintstagedrc.js +0 -6
  236. package/.turbo/turbo-build.log +0 -3
  237. package/CHANGELOG.md +0 -332
  238. package/babel.config.js +0 -3
  239. package/dist/assets/index.ts +0 -1
  240. package/jest.config.js +0 -22
  241. package/jest.setup.js +0 -3
  242. package/src/Authenticator/Defaults/ConfirmResetPassword/__tests__/ConfirmResetPassword.spec.tsx +0 -89
  243. package/src/Authenticator/Defaults/ConfirmResetPassword/__tests__/__snapshots__/ConfirmResetPassword.spec.tsx.snap +0 -1090
  244. package/src/Authenticator/Defaults/ConfirmSignIn/__tests__/ConfirmSignIn.spec.tsx +0 -78
  245. package/src/Authenticator/Defaults/ConfirmSignIn/__tests__/__snapshots__/ConfirmSignIn.spec.tsx.snap +0 -512
  246. package/src/Authenticator/Defaults/ConfirmSignUp/__tests__/ConfirmSignUp.spec.tsx +0 -64
  247. package/src/Authenticator/Defaults/ConfirmSignUp/__tests__/__snapshots__/ConfirmSignUp.spec.tsx.snap +0 -528
  248. package/src/Authenticator/Defaults/ConfirmVerifyUser/__tests__/ConfirmVerifyUser.spec.tsx +0 -71
  249. package/src/Authenticator/Defaults/ConfirmVerifyUser/__tests__/__snapshots__/ConfirmVerifyUser.spec.tsx.snap +0 -492
  250. package/src/Authenticator/Defaults/ForceNewPassword/__tests__/ForceNewPassword.spec.tsx +0 -79
  251. package/src/Authenticator/Defaults/ForceNewPassword/__tests__/__snapshots__/ForceNewPassword.spec.tsx.snap +0 -896
  252. package/src/Authenticator/Defaults/ResetPassword/__tests__/ResetPassword.spec.tsx +0 -78
  253. package/src/Authenticator/Defaults/ResetPassword/__tests__/__snapshots__/ResetPassword.spec.tsx.snap +0 -512
  254. package/src/Authenticator/Defaults/SetupTOTP/__tests__/SetupTOTP.spec.tsx +0 -85
  255. package/src/Authenticator/Defaults/SetupTOTP/__tests__/__snapshots__/SetupTOTP.spec.tsx.snap +0 -602
  256. package/src/Authenticator/Defaults/SignIn/__tests__/SignIn.spec.tsx +0 -67
  257. package/src/Authenticator/Defaults/SignIn/__tests__/__snapshots__/SignIn.spec.tsx.snap +0 -1281
  258. package/src/Authenticator/Defaults/SignUp/__tests__/SignUp.spec.tsx +0 -102
  259. package/src/Authenticator/Defaults/SignUp/__tests__/__snapshots__/SignUp.spec.tsx.snap +0 -3122
  260. package/src/Authenticator/Defaults/VerifyUser/__tests__/VerifyUser.spec.tsx +0 -107
  261. package/src/Authenticator/Defaults/VerifyUser/__tests__/__snapshots__/VerifyUser.spec.tsx.snap +0 -692
  262. package/src/Authenticator/__tests__/Authenticator.spec.tsx +0 -131
  263. package/src/Authenticator/__tests__/__snapshots__/Authenticator.spec.tsx.snap +0 -90
  264. package/src/Authenticator/__tests__/__snapshots__/withAuthenticator.spec.tsx.snap +0 -68
  265. package/src/Authenticator/__tests__/withAuthenticator.spec.tsx +0 -73
  266. package/src/Authenticator/common/DefaultContainer/__tests__/DefaultContainer.spec.tsx +0 -19
  267. package/src/Authenticator/common/DefaultContainer/__tests__/__snapshots__/DefaultContainer.spec.tsx.snap +0 -83
  268. package/src/Authenticator/common/DefaultFooter/__tests__/DefaultFooter.spec.tsx +0 -26
  269. package/src/Authenticator/common/DefaultFooter/__tests__/__snapshots__/DefaultFooter.spec.tsx.snap +0 -40
  270. package/src/Authenticator/common/DefaultFormFields/__tests__/DefaultFormFields.spec.tsx +0 -15
  271. package/src/Authenticator/common/DefaultFormFields/__tests__/FieldErrors.spec.tsx +0 -29
  272. package/src/Authenticator/common/DefaultFormFields/__tests__/__snapshots__/DefaultFormFields.spec.tsx.snap +0 -3
  273. package/src/Authenticator/common/DefaultFormFields/__tests__/__snapshots__/FieldErrors.spec.tsx.snap +0 -32
  274. package/src/Authenticator/common/DefaultHeader/__tests__/DefaultHeader.spec.tsx +0 -23
  275. package/src/Authenticator/common/DefaultHeader/__tests__/__snapshots__/DefaultHeader.spec.tsx.snap +0 -24
  276. package/src/Authenticator/common/FederatedProviderButton/__tests__/FederatedProviderButton.spec.tsx +0 -67
  277. package/src/Authenticator/common/FederatedProviderButton/__tests__/__snapshots__/FederatedProviderButton.spec.tsx.snap +0 -185
  278. package/src/Authenticator/common/FederatedProviderButtons/__tests__/FederatedProviderButtons.spec.tsx +0 -55
  279. package/src/Authenticator/common/FederatedProviderButtons/__tests__/__snapshots__/FederatedProviderButtons.spec.tsx.snap +0 -167
  280. package/src/Authenticator/hooks/useFieldValues/__tests__/useFieldValues.spec.ts +0 -399
  281. package/src/Authenticator/hooks/useFieldValues/__tests__/utils.spec.ts +0 -282
  282. package/src/InAppMessaging/components/BannerMessage/__tests__/BannerMessage.spec.tsx +0 -151
  283. package/src/InAppMessaging/components/BannerMessage/__tests__/__snapshots__/BannerMessage.spec.tsx.snap +0 -618
  284. package/src/InAppMessaging/components/CarouselMessage/__tests__/CarouselMessage.spec.tsx +0 -92
  285. package/src/InAppMessaging/components/CarouselMessage/__tests__/CarouselMessageItem.spec.tsx +0 -50
  286. package/src/InAppMessaging/components/CarouselMessage/__tests__/__snapshots__/CarouselMessage.spec.tsx.snap +0 -124
  287. package/src/InAppMessaging/components/CarouselMessage/__tests__/__snapshots__/CarouselMessageItem.spec.tsx.snap +0 -248
  288. package/src/InAppMessaging/components/FullScreenMessage/__tests__/FullScreenMessage.spec.tsx +0 -53
  289. package/src/InAppMessaging/components/FullScreenMessage/__tests__/__snapshots__/FullScreenMessage.spec.tsx.snap +0 -238
  290. package/src/InAppMessaging/components/InAppMessageDisplay/__tests__/InAppMessageDisplay.spec.tsx +0 -34
  291. package/src/InAppMessaging/components/InAppMessageDisplay/__tests__/__snapshots__/InAppMessageDisplay.spec.tsx.snap +0 -9
  292. package/src/InAppMessaging/components/InAppMessageDisplay/__tests__/handleMessageLinkAction.spec.ts +0 -51
  293. package/src/InAppMessaging/components/MessageWrapper/__tests__/MessageWrapper.spec.tsx +0 -19
  294. package/src/InAppMessaging/components/MessageWrapper/__tests__/__snapshots__/MessageWrapper.spec.tsx.snap +0 -35
  295. package/src/InAppMessaging/components/ModalMessage/__tests__/ModalMessage.spec.tsx +0 -169
  296. package/src/InAppMessaging/components/ModalMessage/__tests__/__snapshots__/ModalMessage.spec.tsx.snap +0 -727
  297. package/src/InAppMessaging/components/withInAppMessaging/__tests__/__snapshots__/withInAppMessaging.spec.tsx.snap +0 -3
  298. package/src/InAppMessaging/components/withInAppMessaging/__tests__/withInAppMessaging.spec.tsx +0 -15
  299. package/src/InAppMessaging/hooks/useMessageImage/__tests__/useMessageImage.spec.ts +0 -141
  300. package/src/InAppMessaging/hooks/useMessageImage/__tests__/utils.spec.ts +0 -107
  301. package/src/InAppMessaging/hooks/useMessageProps/__tests__/__snapshots__/utils.spec.ts.snap +0 -223
  302. package/src/InAppMessaging/hooks/useMessageProps/__tests__/useMessageProps.spec.ts +0 -162
  303. package/src/InAppMessaging/hooks/useMessageProps/__tests__/utils.spec.ts +0 -355
  304. package/src/__mocks__/@react-native-async-storage/async-storage.ts +0 -2
  305. package/src/__mocks__/@react-native-community/netinfo.ts +0 -3
  306. package/src/__mocks__/react-native-safe-area-context.ts +0 -9
  307. package/src/__tests__/__snapshots__/index.spec.ts.snap +0 -26
  308. package/src/__tests__/index.spec.ts +0 -8
  309. package/src/hooks/useDeprecationWarning/__tests__/useDeprecationWarning.spec.ts +0 -42
  310. package/src/hooks/useDeviceOrientation/__tests__/useDeviceOrientation.spec.ts +0 -89
  311. package/src/hooks/usePressableContainerStyles/__tests__/usePressableContainerStyles.spec.ts +0 -68
  312. package/src/primitives/Button/__tests__/Button.spec.tsx +0 -92
  313. package/src/primitives/Button/__tests__/__snapshots__/Button.spec.tsx.snap +0 -143
  314. package/src/primitives/Carousel/__tests__/Carousel.spec.tsx +0 -174
  315. package/src/primitives/Carousel/__tests__/CarouselPageIndicator.spec.tsx +0 -73
  316. package/src/primitives/Carousel/__tests__/__snapshots__/Carousel.spec.tsx.snap +0 -310
  317. package/src/primitives/Carousel/__tests__/__snapshots__/CarouselPageIndicator.spec.tsx.snap +0 -191
  318. package/src/primitives/Checkbox/__tests__/Checkbox.spec.tsx +0 -150
  319. package/src/primitives/Checkbox/__tests__/__snapshots__/Checkbox.spec.tsx.snap +0 -527
  320. package/src/primitives/Divider/__tests__/Divider.spec.tsx +0 -50
  321. package/src/primitives/Divider/__tests__/__snapshots__/Divider.spec.tsx.snap +0 -165
  322. package/src/primitives/ErrorMessage/__tests__/ErrorMessage.spec.tsx +0 -60
  323. package/src/primitives/ErrorMessage/__tests__/__snapshots__/ErrorMessage.spec.tsx.snap +0 -123
  324. package/src/primitives/Heading/__tests__/Heading.spec.tsx +0 -73
  325. package/src/primitives/Heading/__tests__/__snapshots__/Heading.spec.tsx.snap +0 -171
  326. package/src/primitives/Icon/__tests__/Icon.spec.tsx +0 -100
  327. package/src/primitives/Icon/__tests__/__snapshots__/Icon.spec.tsx.snap +0 -139
  328. package/src/primitives/IconButton/__tests__/IconButton.spec.tsx +0 -71
  329. package/src/primitives/IconButton/__tests__/__snapshots__/IconButton.spec.tsx.snap +0 -192
  330. package/src/primitives/Label/__tests__/Label.spec.tsx +0 -75
  331. package/src/primitives/Label/__tests__/__snapshots__/Label.spec.tsx.snap +0 -91
  332. package/src/primitives/PasswordField/__tests__/PasswordField.spec.tsx +0 -110
  333. package/src/primitives/PasswordField/__tests__/__snapshots__/PasswordField.spec.tsx.snap +0 -625
  334. package/src/primitives/PhoneNumberField/__tests__/PhoneNumberField.spec.tsx +0 -53
  335. package/src/primitives/PhoneNumberField/__tests__/__snapshots__/PhoneNumberField.spec.tsx.snap +0 -188
  336. package/src/primitives/Radio/__tests__/Radio.spec.tsx +0 -166
  337. package/src/primitives/Radio/__tests__/__snapshots__/Radio.spec.tsx.snap +0 -678
  338. package/src/primitives/RadioGroup/__tests__/RadioGroup.spec.tsx +0 -183
  339. package/src/primitives/RadioGroup/__tests__/__snapshots__/RadioGroup.spec.tsx.snap +0 -1789
  340. package/src/primitives/Tabs/__tests__/Tab.spec.tsx +0 -75
  341. package/src/primitives/Tabs/__tests__/Tabs.spec.tsx +0 -81
  342. package/src/primitives/Tabs/__tests__/__snapshots__/Tab.spec.tsx.snap +0 -278
  343. package/src/primitives/Tabs/__tests__/__snapshots__/Tabs.spec.tsx.snap +0 -163
  344. package/src/primitives/TextField/__tests__/TextField.spec.tsx +0 -202
  345. package/src/primitives/TextField/__tests__/__snapshots__/TextField.spec.tsx.snap +0 -507
  346. package/src/theme/__tests__/ThemeProvider.spec.tsx +0 -23
  347. package/src/theme/__tests__/__snapshots__/useTheme.spec.tsx.snap +0 -226
  348. package/src/theme/__tests__/createTheme.spec.ts +0 -244
  349. package/src/theme/__tests__/useTheme.spec.tsx +0 -51
  350. package/tsconfig.dist.json +0 -4
  351. package/tsconfig.json +0 -9
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getLandscapeStyles = exports.getPortraitStyles = void 0;
4
+ const constants_1 = require("../../constants");
5
+ const commonStyles = {
6
+ body: {
7
+ fontSize: constants_1.FONT_SIZE_BASE,
8
+ fontWeight: constants_1.FONT_WEIGHT_BASE,
9
+ lineHeight: constants_1.LINE_HEIGHT_BASE,
10
+ },
11
+ buttonContainer: {
12
+ backgroundColor: constants_1.COLOR_LIGHT_GREY,
13
+ borderRadius: constants_1.BORDER_RADIUS_BASE,
14
+ flex: 1,
15
+ margin: constants_1.SPACING_MEDIUM,
16
+ padding: constants_1.SPACING_LARGE,
17
+ },
18
+ buttonsContainer: {
19
+ flexDirection: 'row',
20
+ justifyContent: 'center',
21
+ },
22
+ buttonText: {
23
+ fontSize: constants_1.FONT_SIZE_BASE,
24
+ fontWeight: constants_1.FONT_WEIGHT_BASE,
25
+ lineHeight: constants_1.LINE_HEIGHT_BASE,
26
+ textAlign: 'center',
27
+ },
28
+ container: {
29
+ flex: 1,
30
+ padding: constants_1.SPACING_EXTRA_LARGE,
31
+ },
32
+ contentContainer: {
33
+ flex: 1,
34
+ },
35
+ header: {
36
+ fontSize: constants_1.FONT_SIZE_LARGE,
37
+ fontWeight: constants_1.FONT_WEIGHT_BOLD,
38
+ lineHeight: constants_1.LINE_HEIGHT_LARGE,
39
+ },
40
+ iconButton: {
41
+ alignSelf: 'flex-start',
42
+ marginBottom: constants_1.SPACING_MEDIUM,
43
+ marginLeft: 'auto',
44
+ marginRight: constants_1.SPACING_MEDIUM,
45
+ },
46
+ imageContainer: {
47
+ alignItems: 'center',
48
+ margin: constants_1.SPACING_LARGE,
49
+ },
50
+ textContainer: {
51
+ paddingHorizontal: constants_1.SPACING_MEDIUM,
52
+ },
53
+ wrapper: {
54
+ backgroundColor: constants_1.COLOR_WHITE,
55
+ },
56
+ };
57
+ const getPortraitStyles = (imageDimensions) => ({
58
+ ...commonStyles,
59
+ buttonsContainer: {
60
+ ...commonStyles.buttonsContainer,
61
+ marginTop: 'auto',
62
+ },
63
+ image: imageDimensions,
64
+ textContainer: {
65
+ ...commonStyles.textContainer,
66
+ marginVertical: constants_1.SPACING_LARGE,
67
+ },
68
+ });
69
+ exports.getPortraitStyles = getPortraitStyles;
70
+ const getLandscapeStyles = (imageDimensions) => ({
71
+ ...commonStyles,
72
+ contentContainer: {
73
+ ...commonStyles.contentContainer,
74
+ flexDirection: 'row',
75
+ },
76
+ image: { ...imageDimensions },
77
+ imageContainer: {
78
+ ...commonStyles.imageContainer,
79
+ justifyContent: 'center',
80
+ },
81
+ textContainer: {
82
+ ...commonStyles.textContainer,
83
+ flex: 1,
84
+ justifyContent: 'center',
85
+ },
86
+ wrapper: {
87
+ ...commonStyles.wrapper,
88
+ flex: 1,
89
+ },
90
+ });
91
+ exports.getLandscapeStyles = getLandscapeStyles;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importDefault(require("react"));
5
+ const ui_react_core_notifications_1 = require("@aws-amplify/ui-react-core-notifications");
6
+ const BannerMessage_1 = require("../BannerMessage");
7
+ const FullScreenMessage_1 = require("../FullScreenMessage");
8
+ const CarouselMessage_1 = require("../CarouselMessage");
9
+ const ModalMessage_1 = require("../ModalMessage");
10
+ const handleMessageLinkAction_1 = tslib_1.__importDefault(require("./handleMessageLinkAction"));
11
+ const platformComponents = {
12
+ BannerMessage: BannerMessage_1.BannerMessage,
13
+ CarouselMessage: CarouselMessage_1.CarouselMessage,
14
+ FullScreenMessage: FullScreenMessage_1.FullScreenMessage,
15
+ ModalMessage: ModalMessage_1.ModalMessage,
16
+ };
17
+ const onMessageAction = ({ action, url }) => {
18
+ (0, ui_react_core_notifications_1.handleMessageAction)({ action, url, handleMessageLinkAction: handleMessageLinkAction_1.default });
19
+ };
20
+ function InAppMessageDisplay({ components: overrideComponents, }) {
21
+ const components = react_1.default.useMemo(() => ({ ...platformComponents, ...overrideComponents }), [overrideComponents]);
22
+ const { Component, props } = (0, ui_react_core_notifications_1.useMessage)({
23
+ components,
24
+ onMessageAction,
25
+ });
26
+ return <Component {...props}/>;
27
+ }
28
+ InAppMessageDisplay.BannerMessage = BannerMessage_1.BannerMessage;
29
+ InAppMessageDisplay.CarouselMessage = CarouselMessage_1.CarouselMessage;
30
+ InAppMessageDisplay.FullScreenMessage = FullScreenMessage_1.FullScreenMessage;
31
+ InAppMessageDisplay.ModalMessage = ModalMessage_1.ModalMessage;
32
+ exports.default = InAppMessageDisplay;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const react_native_1 = require("react-native");
4
+ const core_1 = require("@aws-amplify/core");
5
+ const logger = new core_1.ConsoleLogger('Notifications.InAppMessaging');
6
+ const handleMessageLinkAction = async (url) => {
7
+ let supported = false;
8
+ try {
9
+ supported = await react_native_1.Linking.canOpenURL(url);
10
+ }
11
+ catch (e) {
12
+ logger.warn(`Call to Linking.canOpenURL failed: ${e}`);
13
+ }
14
+ if (!supported) {
15
+ logger.warn(`Unsupported url provided: ${url}`);
16
+ return;
17
+ }
18
+ try {
19
+ logger.info(`Opening url: ${url}`);
20
+ await react_native_1.Linking.openURL(url);
21
+ }
22
+ catch (e) {
23
+ logger.warn(`Call to Linking.openURL failed: ${e}`);
24
+ }
25
+ };
26
+ exports.default = handleMessageLinkAction;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.InAppMessageDisplay = void 0;
7
+ var InAppMessageDisplay_1 = require("./InAppMessageDisplay");
8
+ Object.defineProperty(exports, "InAppMessageDisplay", { enumerable: true, get: function () { return __importDefault(InAppMessageDisplay_1).default; } });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importDefault(require("react"));
5
+ const react_native_1 = require("react-native");
6
+ const assets_1 = require("../../../assets");
7
+ const primitives_1 = require("../../../primitives");
8
+ const constants_1 = require("../../constants");
9
+ function MessageLayout({ orientation, ...props }) {
10
+ const { body, hasButtons, hasPrimaryButton, hasRenderableImage, hasSecondaryButton, header, image, onClose, primaryButton, secondaryButton, styles, testID, } = props;
11
+ const iconButton = (<primitives_1.IconButton color={styles.iconButton.iconColor} hitSlop={constants_1.ICON_BUTTON_HIT_SLOP} onPress={onClose} size={constants_1.ICON_BUTTON_SIZE} source={assets_1.icons.close} style={styles.iconButton.container} testID={constants_1.IN_APP_MESSAGING_TEST_ID.CLOSE_BUTTON}/>);
12
+ return (<react_native_1.View style={styles.container} testID={testID}>
13
+ <react_native_1.View style={styles.contentContainer}>
14
+ {orientation === 'portrait' && iconButton}
15
+ {hasRenderableImage && (<react_native_1.View style={styles.imageContainer}>
16
+ <react_native_1.Image source={{ uri: image?.src }} style={styles.image} testID={constants_1.IN_APP_MESSAGING_TEST_ID.IMAGE}/>
17
+ </react_native_1.View>)}
18
+ <react_native_1.View style={styles.textContainer}>
19
+ {header?.content && (<react_native_1.Text style={styles.header} testID={constants_1.IN_APP_MESSAGING_TEST_ID.HEADER}>
20
+ {header.content}
21
+ </react_native_1.Text>)}
22
+ {body?.content && (<react_native_1.Text style={styles.body} testID={constants_1.IN_APP_MESSAGING_TEST_ID.BODY}>
23
+ {body.content}
24
+ </react_native_1.Text>)}
25
+ </react_native_1.View>
26
+ {orientation === 'landscape' && iconButton}
27
+ </react_native_1.View>
28
+ {hasButtons && (<react_native_1.View style={styles.buttonsContainer}>
29
+ {hasSecondaryButton && (<primitives_1.Button onPress={secondaryButton?.onAction} style={styles.secondaryButton.container} testID={constants_1.IN_APP_MESSAGING_TEST_ID.SECONDARY_BUTTON} textStyle={styles.secondaryButton.text}>
30
+ {secondaryButton?.title}
31
+ </primitives_1.Button>)}
32
+ {hasPrimaryButton && (<primitives_1.Button onPress={primaryButton?.onAction} style={styles.primaryButton.container} testID={constants_1.IN_APP_MESSAGING_TEST_ID.PRIMARY_BUTTON} textStyle={styles.primaryButton.text}>
33
+ {primaryButton?.title}
34
+ </primitives_1.Button>)}
35
+ </react_native_1.View>)}
36
+ </react_native_1.View>);
37
+ }
38
+ exports.default = MessageLayout;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MessageLayout = void 0;
7
+ var MessageLayout_1 = require("./MessageLayout");
8
+ Object.defineProperty(exports, "MessageLayout", { enumerable: true, get: function () { return __importDefault(MessageLayout_1).default; } });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importDefault(require("react"));
5
+ const react_native_1 = require("react-native");
6
+ const react_native_safe_area_context_1 = require("react-native-safe-area-context");
7
+ const styles_1 = require("./styles");
8
+ const SUPPORTED_ORIENTATIONS = [
9
+ 'portrait',
10
+ 'portrait-upside-down',
11
+ 'landscape',
12
+ 'landscape-left',
13
+ 'landscape-right',
14
+ ];
15
+ function MessageWrapper({ children, disableSafeAreaView, style, }) {
16
+ return (<react_native_1.Modal transparent visible supportedOrientations={SUPPORTED_ORIENTATIONS}>
17
+ <react_native_safe_area_context_1.SafeAreaProvider>
18
+ {disableSafeAreaView ? (children) : (<react_native_safe_area_context_1.SafeAreaView style={[styles_1.styles.messageWrapper, style]}>
19
+ {children}
20
+ </react_native_safe_area_context_1.SafeAreaView>)}
21
+ </react_native_safe_area_context_1.SafeAreaProvider>
22
+ </react_native_1.Modal>);
23
+ }
24
+ exports.default = MessageWrapper;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MessageWrapper = void 0;
7
+ var MessageWrapper_1 = require("./MessageWrapper");
8
+ Object.defineProperty(exports, "MessageWrapper", { enumerable: true, get: function () { return __importDefault(MessageWrapper_1).default; } });
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.styles = void 0;
4
+ exports.styles = {
5
+ messageWrapper: {
6
+ flex: 1,
7
+ },
8
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importDefault(require("react"));
5
+ const hooks_1 = require("../../../hooks");
6
+ const hooks_2 = require("../../hooks");
7
+ const MessageLayout_1 = require("../MessageLayout");
8
+ const MessageWrapper_1 = require("../MessageWrapper");
9
+ const styles_1 = require("./styles");
10
+ function ModalMessage(props) {
11
+ const { deviceOrientation, isPortraitMode } = (0, hooks_1.useDeviceOrientation)();
12
+ const messageProps = (0, hooks_2.useMessageProps)(props, isPortraitMode ? styles_1.getPortraitStyles : styles_1.getLandscapeStyles);
13
+ const { shouldRenderMessage, styles } = messageProps;
14
+ if (!shouldRenderMessage) {
15
+ return null;
16
+ }
17
+ const { wrapper, ...messageStyles } = styles;
18
+ return (<MessageWrapper_1.MessageWrapper style={wrapper}>
19
+ <MessageLayout_1.MessageLayout {...props} {...messageProps} orientation={deviceOrientation} styles={messageStyles} testID={`inappmessaging-modal-dialog`}/>
20
+ </MessageWrapper_1.MessageWrapper>);
21
+ }
22
+ exports.default = ModalMessage;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ModalMessage = void 0;
7
+ var ModalMessage_1 = require("./ModalMessage");
8
+ Object.defineProperty(exports, "ModalMessage", { enumerable: true, get: function () { return __importDefault(ModalMessage_1).default; } });
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getLandscapeStyles = exports.getPortraitStyles = void 0;
4
+ const react_native_1 = require("react-native");
5
+ const constants_1 = require("../../constants");
6
+ const commonStyles = {
7
+ body: {
8
+ fontSize: constants_1.FONT_SIZE_BASE,
9
+ fontWeight: constants_1.FONT_WEIGHT_BASE,
10
+ lineHeight: constants_1.LINE_HEIGHT_BASE,
11
+ },
12
+ buttonContainer: {
13
+ backgroundColor: constants_1.COLOR_LIGHT_GREY,
14
+ borderRadius: constants_1.BORDER_RADIUS_BASE,
15
+ flex: 1,
16
+ margin: constants_1.SPACING_MEDIUM,
17
+ padding: constants_1.SPACING_LARGE,
18
+ },
19
+ buttonsContainer: {
20
+ flexDirection: 'row',
21
+ justifyContent: 'center',
22
+ },
23
+ container: {
24
+ backgroundColor: constants_1.COLOR_WHITE,
25
+ elevation: constants_1.MESSAGE_ELEVATION,
26
+ margin: constants_1.SPACING_EXTRA_LARGE,
27
+ shadowColor: constants_1.COLOR_BLACK,
28
+ shadowOffset: {
29
+ width: constants_1.MESSAGE_SHADOW_WIDTH,
30
+ height: constants_1.MESSAGE_SHADOW_HEIGHT,
31
+ },
32
+ shadowOpacity: constants_1.MESSAGE_SHADOW_OPACITY,
33
+ shadowRadius: constants_1.MESSAGE_SHADOW_RADIUS,
34
+ },
35
+ buttonText: {
36
+ fontSize: constants_1.FONT_SIZE_BASE,
37
+ fontWeight: constants_1.FONT_WEIGHT_BASE,
38
+ lineHeight: constants_1.LINE_HEIGHT_BASE,
39
+ textAlign: 'center',
40
+ },
41
+ header: {
42
+ fontSize: constants_1.FONT_SIZE_LARGE,
43
+ fontWeight: constants_1.FONT_WEIGHT_BOLD,
44
+ lineHeight: constants_1.LINE_HEIGHT_LARGE,
45
+ },
46
+ iconButton: {
47
+ alignSelf: 'flex-start',
48
+ marginLeft: 'auto',
49
+ },
50
+ imageContainer: {
51
+ alignItems: 'center',
52
+ margin: constants_1.SPACING_LARGE,
53
+ },
54
+ wrapper: {
55
+ flex: 1,
56
+ justifyContent: 'center',
57
+ },
58
+ };
59
+ const getPortraitStyles = (imageDimensions) => react_native_1.StyleSheet.create({
60
+ ...commonStyles,
61
+ buttonsContainer: {
62
+ ...commonStyles.buttonsContainer,
63
+ marginTop: 'auto',
64
+ paddingHorizontal: constants_1.SPACING_SMALL,
65
+ paddingBottom: constants_1.SPACING_SMALL,
66
+ },
67
+ container: {
68
+ ...commonStyles.container,
69
+ minHeight: '40%',
70
+ },
71
+ contentContainer: { padding: constants_1.SPACING_LARGE },
72
+ image: { ...imageDimensions },
73
+ textContainer: {
74
+ marginTop: constants_1.SPACING_LARGE,
75
+ },
76
+ });
77
+ exports.getPortraitStyles = getPortraitStyles;
78
+ const getLandscapeStyles = (imageDimensions) => react_native_1.StyleSheet.create({
79
+ ...commonStyles,
80
+ container: {
81
+ ...commonStyles.container,
82
+ flex: 1,
83
+ padding: constants_1.SPACING_EXTRA_LARGE,
84
+ },
85
+ contentContainer: {
86
+ flex: 1,
87
+ flexDirection: 'row',
88
+ },
89
+ iconButton: {
90
+ ...commonStyles.iconButton,
91
+ marginRight: constants_1.SPACING_MEDIUM,
92
+ },
93
+ image: { ...imageDimensions },
94
+ imageContainer: {
95
+ ...commonStyles.imageContainer,
96
+ justifyContent: 'center',
97
+ },
98
+ textContainer: {
99
+ flex: 1,
100
+ justifyContent: 'center',
101
+ paddingHorizontal: constants_1.SPACING_MEDIUM,
102
+ },
103
+ });
104
+ exports.getLandscapeStyles = getLandscapeStyles;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.withInAppMessaging = exports.InAppMessageDisplay = void 0;
4
+ var InAppMessageDisplay_1 = require("./InAppMessageDisplay");
5
+ Object.defineProperty(exports, "InAppMessageDisplay", { enumerable: true, get: function () { return InAppMessageDisplay_1.InAppMessageDisplay; } });
6
+ var withInAppMessaging_1 = require("./withInAppMessaging");
7
+ Object.defineProperty(exports, "withInAppMessaging", { enumerable: true, get: function () { return withInAppMessaging_1.withInAppMessaging; } });
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.withInAppMessaging = void 0;
7
+ var withInAppMessaging_1 = require("./withInAppMessaging");
8
+ Object.defineProperty(exports, "withInAppMessaging", { enumerable: true, get: function () { return __importDefault(withInAppMessaging_1).default; } });
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importDefault(require("react"));
5
+ const ui_react_core_notifications_1 = require("@aws-amplify/ui-react-core-notifications");
6
+ const InAppMessageDisplay_1 = require("../InAppMessageDisplay");
7
+ function withInAppMessaging(Component, options) {
8
+ return function WrappedWithInAppMessaging(props) {
9
+ return (<ui_react_core_notifications_1.InAppMessagingProvider>
10
+ <InAppMessageDisplay_1.InAppMessageDisplay {...options}/>
11
+ <Component {...props}/>
12
+ </ui_react_core_notifications_1.InAppMessagingProvider>);
13
+ };
14
+ }
15
+ exports.default = withInAppMessaging;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IN_APP_MESSAGING_TEST_ID = exports.BUTTON_PRESSED_OPACITY = exports.MESSAGE_ELEVATION = exports.MESSAGE_SHADOW_RADIUS = exports.MESSAGE_SHADOW_OPACITY = exports.MESSAGE_SHADOW_WIDTH = exports.MESSAGE_SHADOW_HEIGHT = exports.ICON_BUTTON_HIT_SLOP = exports.ICON_BUTTON_SIZE = exports.FONT_WEIGHT_BOLD = exports.FONT_WEIGHT_BASE = exports.LINE_HEIGHT_LARGE = exports.LINE_HEIGHT_BASE = exports.FONT_SIZE_LARGE = exports.FONT_SIZE_BASE = exports.BORDER_RADIUS_BASE = exports.SPACING_EXTRA_LARGE = exports.SPACING_LARGE = exports.SPACING_MEDIUM = exports.SPACING_SMALL = exports.COLOR_WHITE = exports.COLOR_LIGHT_GREY_2 = exports.COLOR_LIGHT_GREY = exports.COLOR_GREY = exports.COLOR_BLACK = void 0;
4
+ const utils_1 = require("../utils");
5
+ // color
6
+ exports.COLOR_BLACK = '#000';
7
+ exports.COLOR_GREY = '#a1a1a1';
8
+ exports.COLOR_LIGHT_GREY = '#e8e8e8';
9
+ exports.COLOR_LIGHT_GREY_2 = '#d8d8d8';
10
+ exports.COLOR_WHITE = '#fff';
11
+ // spacing
12
+ exports.SPACING_SMALL = 4;
13
+ exports.SPACING_MEDIUM = 8;
14
+ exports.SPACING_LARGE = 12;
15
+ exports.SPACING_EXTRA_LARGE = 16;
16
+ // border radius
17
+ exports.BORDER_RADIUS_BASE = 4;
18
+ // font
19
+ exports.FONT_SIZE_BASE = 16;
20
+ exports.FONT_SIZE_LARGE = 18;
21
+ exports.LINE_HEIGHT_BASE = (0, utils_1.getLineHeight)(exports.FONT_SIZE_BASE);
22
+ exports.LINE_HEIGHT_LARGE = (0, utils_1.getLineHeight)(exports.FONT_SIZE_LARGE);
23
+ exports.FONT_WEIGHT_BASE = '400';
24
+ exports.FONT_WEIGHT_BOLD = '600';
25
+ // icon
26
+ exports.ICON_BUTTON_SIZE = 20;
27
+ exports.ICON_BUTTON_HIT_SLOP = 10;
28
+ // shadow properties
29
+ // iOS shadow values
30
+ exports.MESSAGE_SHADOW_HEIGHT = 2;
31
+ exports.MESSAGE_SHADOW_WIDTH = 2;
32
+ exports.MESSAGE_SHADOW_OPACITY = 0.1;
33
+ exports.MESSAGE_SHADOW_RADIUS = 2;
34
+ // android shadow values
35
+ exports.MESSAGE_ELEVATION = 3;
36
+ // Message UI Buttons
37
+ // default value applied in React Native TouchableOpacity
38
+ exports.BUTTON_PRESSED_OPACITY = 0.8;
39
+ // Message Component Test IDs
40
+ exports.IN_APP_MESSAGING_TEST_ID = {
41
+ BODY: 'in-app-messaging--body',
42
+ CLOSE_BUTTON: 'in-app-messaging--close-button',
43
+ HEADER: 'in-app-messaging--header',
44
+ IMAGE: 'in-app-messaging--image',
45
+ PRIMARY_BUTTON: 'in-app-messaging--primary-button',
46
+ SECONDARY_BUTTON: 'in-app-messaging--secondary-button',
47
+ CAROUSEL: 'in-app-messaging--carousel',
48
+ };
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useMessageProps = exports.useMessageImage = void 0;
4
+ var useMessageImage_1 = require("./useMessageImage");
5
+ Object.defineProperty(exports, "useMessageImage", { enumerable: true, get: function () { return useMessageImage_1.useMessageImage; } });
6
+ var useMessageProps_1 = require("./useMessageProps");
7
+ Object.defineProperty(exports, "useMessageProps", { enumerable: true, get: function () { return useMessageProps_1.useMessageProps; } });
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MODAL_IMAGE_SCREEN_SIZE = exports.FULL_SCREEN_IMAGE_SCREEN_SIZE = exports.CAROUSEL_IMAGE_SCREEN_SIZE = exports.BANNER_IMAGE_SCREEN_SIZE = exports.MODAL_IMAGE_SCREEN_MULTIPLIER = exports.FULL_SCREEN_IMAGE_SCREEN_MULTIPLIER = exports.CAROUSEL_IMAGE_SCREEN_MULTIPLIER = exports.BANNER_IMAGE_SCREEN_MULTIPLIER = void 0;
4
+ const react_native_1 = require("react-native");
5
+ // as images are not expected to be responsive to orientation changes get screen dimensions at app start
6
+ const SCREEN_DIMENSIONS = react_native_1.Dimensions.get('screen');
7
+ // compare screen width and height and assign the lesser of the two as the base screen dimension
8
+ const BASE_SCREEN_DIMENSION = SCREEN_DIMENSIONS.width < SCREEN_DIMENSIONS.height
9
+ ? SCREEN_DIMENSIONS.width
10
+ : SCREEN_DIMENSIONS.height;
11
+ // base size that message images should fill
12
+ // - all banner message images should fill 20 percent of the base screen dimension
13
+ // - all other components should fill 60 percent of the base screen dimension
14
+ exports.BANNER_IMAGE_SCREEN_MULTIPLIER = 0.2;
15
+ exports.CAROUSEL_IMAGE_SCREEN_MULTIPLIER = 0.6;
16
+ exports.FULL_SCREEN_IMAGE_SCREEN_MULTIPLIER = 0.6;
17
+ exports.MODAL_IMAGE_SCREEN_MULTIPLIER = 0.6;
18
+ exports.BANNER_IMAGE_SCREEN_SIZE = exports.BANNER_IMAGE_SCREEN_MULTIPLIER * BASE_SCREEN_DIMENSION;
19
+ exports.CAROUSEL_IMAGE_SCREEN_SIZE = exports.CAROUSEL_IMAGE_SCREEN_MULTIPLIER * BASE_SCREEN_DIMENSION;
20
+ exports.FULL_SCREEN_IMAGE_SCREEN_SIZE = exports.FULL_SCREEN_IMAGE_SCREEN_MULTIPLIER * BASE_SCREEN_DIMENSION;
21
+ exports.MODAL_IMAGE_SCREEN_SIZE = exports.MODAL_IMAGE_SCREEN_MULTIPLIER * BASE_SCREEN_DIMENSION;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.useMessageImage = void 0;
7
+ var useMessageImage_1 = require("./useMessageImage");
8
+ Object.defineProperty(exports, "useMessageImage", { enumerable: true, get: function () { return __importDefault(useMessageImage_1).default; } });
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ImagePrefetchStatus = void 0;
4
+ var ImagePrefetchStatus;
5
+ (function (ImagePrefetchStatus) {
6
+ ImagePrefetchStatus["Failure"] = "FAILURE";
7
+ ImagePrefetchStatus["Fetching"] = "FETCHING";
8
+ ImagePrefetchStatus["Success"] = "SUCCESS";
9
+ })(ImagePrefetchStatus = exports.ImagePrefetchStatus || (exports.ImagePrefetchStatus = {}));
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const react_1 = require("react");
4
+ const react_native_1 = require("react-native");
5
+ const core_1 = require("@aws-amplify/core");
6
+ const types_1 = require("./types");
7
+ const utils_1 = require("./utils");
8
+ const logger = new core_1.ConsoleLogger('Notifications.InAppMessaging');
9
+ /**
10
+ * Handles prefetching and dimension setting for message images
11
+ *
12
+ * @param image contains image source
13
+ * @param layout message layout
14
+ * @returns message image dimensions and rendering related booleans
15
+ */
16
+ function useMessageImage(image, layout) {
17
+ const { src } = image ?? {};
18
+ const shouldPrefetch = !!src;
19
+ // set initial status to fetching if prefetch is required
20
+ const [prefetchStatus, setPrefetchStatus] = (0, react_1.useState)(shouldPrefetch ? types_1.ImagePrefetchStatus.Fetching : null);
21
+ const imageDimensions = (0, react_1.useRef)({
22
+ height: undefined,
23
+ width: undefined,
24
+ }).current;
25
+ const isImageFetching = prefetchStatus === types_1.ImagePrefetchStatus.Fetching;
26
+ const hasRenderableImage = prefetchStatus === types_1.ImagePrefetchStatus.Success;
27
+ (0, react_1.useEffect)(() => {
28
+ if (!shouldPrefetch) {
29
+ return;
30
+ }
31
+ (0, utils_1.prefetchNetworkImage)(src).then((prefetchResult) => {
32
+ if (prefetchResult === 'loaded') {
33
+ // get image size once loaded
34
+ react_native_1.Image.getSize(src, (imageWidth, imageHeight) => {
35
+ const { height, width } = (0, utils_1.getLayoutImageDimensions)(imageHeight, imageWidth, layout);
36
+ imageDimensions.height = height;
37
+ imageDimensions.width = width;
38
+ setPrefetchStatus(types_1.ImagePrefetchStatus.Success);
39
+ }, (error) => {
40
+ // handle size retrieval error
41
+ logger.error(`Unable to retrieve size for image: ${error}`);
42
+ setPrefetchStatus(types_1.ImagePrefetchStatus.Failure);
43
+ });
44
+ }
45
+ else {
46
+ // handle prefetch failure
47
+ setPrefetchStatus(types_1.ImagePrefetchStatus.Failure);
48
+ }
49
+ });
50
+ }, [imageDimensions, layout, shouldPrefetch, src]);
51
+ return { hasRenderableImage, imageDimensions, isImageFetching };
52
+ }
53
+ exports.default = useMessageImage;