@aws-amplify/ui-react-native 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (550) hide show
  1. package/.eslintrc.js +7 -1
  2. package/CHANGELOG.md +12 -0
  3. package/dist/Authenticator/Authenticator.d.ts +162 -0
  4. package/dist/Authenticator/Authenticator.js +57 -0
  5. package/dist/Authenticator/Defaults/ConfirmResetPassword/ConfirmResetPassword.d.ts +3 -0
  6. package/dist/Authenticator/Defaults/ConfirmResetPassword/ConfirmResetPassword.js +28 -0
  7. package/dist/Authenticator/Defaults/ConfirmResetPassword/index.d.ts +1 -0
  8. package/dist/Authenticator/Defaults/ConfirmResetPassword/index.js +1 -0
  9. package/dist/Authenticator/Defaults/ConfirmSignIn/ConfirmSignIn.d.ts +3 -0
  10. package/dist/Authenticator/Defaults/ConfirmSignIn/ConfirmSignIn.js +28 -0
  11. package/dist/Authenticator/Defaults/ConfirmSignIn/index.d.ts +1 -0
  12. package/dist/Authenticator/Defaults/ConfirmSignIn/index.js +1 -0
  13. package/dist/Authenticator/Defaults/ConfirmSignUp/ConfirmSignUp.d.ts +3 -0
  14. package/dist/Authenticator/Defaults/ConfirmSignUp/ConfirmSignUp.js +29 -0
  15. package/dist/Authenticator/Defaults/ConfirmSignUp/index.d.ts +1 -0
  16. package/dist/Authenticator/Defaults/ConfirmSignUp/index.js +1 -0
  17. package/dist/Authenticator/Defaults/ConfirmVerifyUser/ConfirmVerifyUser.d.ts +3 -0
  18. package/dist/Authenticator/Defaults/ConfirmVerifyUser/ConfirmVerifyUser.js +28 -0
  19. package/dist/Authenticator/Defaults/ConfirmVerifyUser/index.d.ts +1 -0
  20. package/dist/Authenticator/Defaults/ConfirmVerifyUser/index.js +1 -0
  21. package/dist/Authenticator/Defaults/ForceNewPassword/ForceNewPassword.d.ts +3 -0
  22. package/dist/Authenticator/Defaults/ForceNewPassword/ForceNewPassword.js +30 -0
  23. package/dist/Authenticator/Defaults/ForceNewPassword/index.d.ts +1 -0
  24. package/dist/Authenticator/Defaults/ForceNewPassword/index.js +1 -0
  25. package/dist/Authenticator/Defaults/ResetPassword/ResetPassword.d.ts +3 -0
  26. package/dist/Authenticator/Defaults/ResetPassword/ResetPassword.js +28 -0
  27. package/dist/Authenticator/Defaults/ResetPassword/index.d.ts +1 -0
  28. package/dist/Authenticator/Defaults/ResetPassword/index.js +1 -0
  29. package/dist/Authenticator/Defaults/SetupTOTP/SetupTOTP.d.ts +3 -0
  30. package/dist/Authenticator/Defaults/SetupTOTP/SetupTOTP.js +55 -0
  31. package/dist/Authenticator/Defaults/SetupTOTP/index.d.ts +1 -0
  32. package/dist/Authenticator/Defaults/SetupTOTP/index.js +1 -0
  33. package/dist/Authenticator/Defaults/SetupTOTP/styles.d.ts +5 -0
  34. package/dist/Authenticator/Defaults/SetupTOTP/styles.js +5 -0
  35. package/dist/Authenticator/Defaults/SignIn/SignIn.d.ts +3 -0
  36. package/dist/Authenticator/Defaults/SignIn/SignIn.js +45 -0
  37. package/dist/Authenticator/Defaults/SignIn/index.d.ts +1 -0
  38. package/dist/Authenticator/Defaults/SignIn/index.js +1 -0
  39. package/dist/Authenticator/Defaults/SignUp/SignUp.d.ts +3 -0
  40. package/dist/Authenticator/Defaults/SignUp/SignUp.js +38 -0
  41. package/dist/Authenticator/Defaults/SignUp/index.d.ts +1 -0
  42. package/dist/Authenticator/Defaults/SignUp/index.js +1 -0
  43. package/dist/Authenticator/Defaults/VerifyUser/VerifyUser.d.ts +3 -0
  44. package/dist/Authenticator/Defaults/VerifyUser/VerifyUser.js +29 -0
  45. package/dist/Authenticator/Defaults/VerifyUser/index.d.ts +1 -0
  46. package/dist/Authenticator/Defaults/VerifyUser/index.js +1 -0
  47. package/dist/Authenticator/Defaults/index.d.ts +11 -0
  48. package/dist/Authenticator/Defaults/index.js +10 -0
  49. package/dist/Authenticator/Defaults/types.d.ts +103 -0
  50. package/dist/Authenticator/Defaults/types.js +1 -0
  51. package/dist/Authenticator/common/DefaultContainer/DefaultContainer.d.ts +3 -0
  52. package/dist/Authenticator/common/DefaultContainer/DefaultContainer.js +41 -0
  53. package/dist/Authenticator/common/DefaultContainer/InnerContainer.d.ts +3 -0
  54. package/dist/Authenticator/common/DefaultContainer/InnerContainer.js +11 -0
  55. package/dist/Authenticator/common/DefaultContainer/index.d.ts +3 -0
  56. package/dist/Authenticator/common/DefaultContainer/index.js +2 -0
  57. package/dist/Authenticator/common/DefaultContainer/styles.d.ts +5 -0
  58. package/dist/Authenticator/common/DefaultContainer/styles.js +26 -0
  59. package/dist/Authenticator/common/DefaultContainer/types.d.ts +16 -0
  60. package/dist/Authenticator/common/DefaultContainer/types.js +1 -0
  61. package/dist/Authenticator/common/DefaultContent/DefaultContent.d.ts +4 -0
  62. package/dist/Authenticator/common/DefaultContent/DefaultContent.js +29 -0
  63. package/dist/Authenticator/common/DefaultContent/index.d.ts +1 -0
  64. package/dist/Authenticator/common/DefaultContent/index.js +1 -0
  65. package/dist/Authenticator/common/DefaultContent/styles.d.ts +3 -0
  66. package/dist/Authenticator/common/DefaultContent/styles.js +50 -0
  67. package/dist/Authenticator/common/DefaultContent/types.d.ts +52 -0
  68. package/dist/Authenticator/common/DefaultContent/types.js +1 -0
  69. package/dist/Authenticator/common/DefaultFooter/DefaultFooter.d.ts +3 -0
  70. package/dist/Authenticator/common/DefaultFooter/DefaultFooter.js +5 -0
  71. package/dist/Authenticator/common/DefaultFooter/index.d.ts +2 -0
  72. package/dist/Authenticator/common/DefaultFooter/index.js +1 -0
  73. package/dist/Authenticator/common/DefaultFooter/types.d.ts +3 -0
  74. package/dist/Authenticator/common/DefaultFooter/types.js +1 -0
  75. package/dist/Authenticator/common/DefaultFormFields/DefaultRadioFormFields.d.ts +3 -0
  76. package/dist/Authenticator/common/DefaultFormFields/DefaultRadioFormFields.js +24 -0
  77. package/dist/Authenticator/common/DefaultFormFields/DefaultTextFormFields.d.ts +3 -0
  78. package/dist/Authenticator/common/DefaultFormFields/DefaultTextFormFields.js +23 -0
  79. package/dist/Authenticator/common/DefaultFormFields/FieldErrors.d.ts +2 -0
  80. package/dist/Authenticator/common/DefaultFormFields/FieldErrors.js +12 -0
  81. package/dist/Authenticator/common/DefaultFormFields/index.d.ts +3 -0
  82. package/dist/Authenticator/common/DefaultFormFields/index.js +2 -0
  83. package/dist/Authenticator/common/DefaultFormFields/types.d.ts +19 -0
  84. package/dist/Authenticator/common/DefaultFormFields/types.js +1 -0
  85. package/dist/Authenticator/common/DefaultHeader/DefaultHeader.d.ts +3 -0
  86. package/dist/Authenticator/common/DefaultHeader/DefaultHeader.js +7 -0
  87. package/dist/Authenticator/common/DefaultHeader/index.d.ts +2 -0
  88. package/dist/Authenticator/common/DefaultHeader/index.js +1 -0
  89. package/dist/Authenticator/common/DefaultHeader/types.d.ts +3 -0
  90. package/dist/Authenticator/common/DefaultHeader/types.js +1 -0
  91. package/dist/Authenticator/common/FederatedProviderButton/FederatedProviderButton.d.ts +3 -0
  92. package/dist/Authenticator/common/FederatedProviderButton/FederatedProviderButton.js +13 -0
  93. package/dist/Authenticator/common/FederatedProviderButton/index.d.ts +2 -0
  94. package/dist/Authenticator/common/FederatedProviderButton/index.js +1 -0
  95. package/dist/Authenticator/common/FederatedProviderButton/styles.d.ts +2 -0
  96. package/dist/Authenticator/common/FederatedProviderButton/styles.js +18 -0
  97. package/dist/Authenticator/common/FederatedProviderButton/types.d.ts +10 -0
  98. package/dist/Authenticator/common/FederatedProviderButton/types.js +1 -0
  99. package/dist/Authenticator/common/FederatedProviderButtons/FederatedProviderButtons.d.ts +3 -0
  100. package/dist/Authenticator/common/FederatedProviderButtons/FederatedProviderButtons.js +22 -0
  101. package/dist/Authenticator/common/FederatedProviderButtons/index.d.ts +1 -0
  102. package/dist/Authenticator/common/FederatedProviderButtons/index.js +1 -0
  103. package/dist/Authenticator/common/FederatedProviderButtons/styles.d.ts +2 -0
  104. package/dist/Authenticator/common/FederatedProviderButtons/styles.js +5 -0
  105. package/dist/Authenticator/common/FederatedProviderButtons/types.d.ts +9 -0
  106. package/dist/Authenticator/common/FederatedProviderButtons/types.js +1 -0
  107. package/dist/Authenticator/common/index.d.ts +7 -0
  108. package/dist/Authenticator/common/index.js +7 -0
  109. package/dist/Authenticator/hooks/index.d.ts +2 -0
  110. package/dist/Authenticator/hooks/index.js +2 -0
  111. package/dist/Authenticator/hooks/types.d.ts +24 -0
  112. package/dist/Authenticator/hooks/types.js +1 -0
  113. package/dist/Authenticator/hooks/useFieldValues/constants.d.ts +1 -0
  114. package/dist/Authenticator/hooks/useFieldValues/constants.js +8 -0
  115. package/dist/Authenticator/hooks/useFieldValues/index.d.ts +2 -0
  116. package/dist/Authenticator/hooks/useFieldValues/index.js +2 -0
  117. package/dist/Authenticator/hooks/useFieldValues/types.d.ts +24 -0
  118. package/dist/Authenticator/hooks/useFieldValues/types.js +1 -0
  119. package/dist/Authenticator/hooks/useFieldValues/useFieldValues.d.ts +3 -0
  120. package/dist/Authenticator/hooks/useFieldValues/useFieldValues.js +80 -0
  121. package/dist/Authenticator/hooks/useFieldValues/utils.d.ts +18 -0
  122. package/dist/Authenticator/hooks/useFieldValues/utils.js +98 -0
  123. package/dist/Authenticator/index.d.ts +4 -0
  124. package/dist/Authenticator/index.js +4 -0
  125. package/dist/Authenticator/types.d.ts +14 -0
  126. package/dist/Authenticator/types.js +1 -0
  127. package/dist/Authenticator/withAuthenticator.d.ts +3 -0
  128. package/dist/Authenticator/withAuthenticator.js +11 -0
  129. package/dist/InAppMessaging/components/BannerMessage/BannerMessage.d.ts +1 -0
  130. package/dist/InAppMessaging/components/CarouselMessage/CarouselMessage.d.ts +1 -0
  131. package/dist/InAppMessaging/components/CarouselMessage/CarouselMessageItem.d.ts +1 -0
  132. package/dist/InAppMessaging/components/FullScreenMessage/FullScreenMessage.d.ts +1 -0
  133. package/dist/InAppMessaging/components/InAppMessageDisplay/InAppMessageDisplay.d.ts +1 -0
  134. package/dist/InAppMessaging/components/MessageLayout/MessageLayout.d.ts +1 -0
  135. package/dist/InAppMessaging/components/MessageWrapper/MessageWrapper.d.ts +1 -0
  136. package/dist/InAppMessaging/components/ModalMessage/ModalMessage.d.ts +1 -0
  137. package/dist/__mocks__/react-native-safe-area-context.d.ts +6 -1
  138. package/dist/__mocks__/react-native-safe-area-context.js +3 -1
  139. package/dist/assets/icons/amazonLogo.png +0 -0
  140. package/dist/assets/icons/amazonLogo@2x.png +0 -0
  141. package/dist/assets/icons/amazonLogo@3x.png +0 -0
  142. package/dist/assets/icons/appleLogo.png +0 -0
  143. package/dist/assets/icons/appleLogo@2x.png +0 -0
  144. package/dist/assets/icons/appleLogo@3x.png +0 -0
  145. package/dist/assets/icons/checkboxFilled.png +0 -0
  146. package/dist/assets/icons/checkboxFilled@2x.png +0 -0
  147. package/dist/assets/icons/checkboxFilled@3x.png +0 -0
  148. package/dist/assets/icons/checkboxOutline.png +0 -0
  149. package/dist/assets/icons/checkboxOutline@2x.png +0 -0
  150. package/dist/assets/icons/checkboxOutline@3x.png +0 -0
  151. package/dist/assets/icons/close.png +0 -0
  152. package/dist/assets/icons/close@2x.png +0 -0
  153. package/dist/assets/icons/close@3x.png +0 -0
  154. package/dist/assets/icons/copy.png +0 -0
  155. package/dist/assets/icons/copy@2x.png +0 -0
  156. package/dist/assets/icons/copy@3x.png +0 -0
  157. package/dist/assets/icons/error.png +0 -0
  158. package/dist/assets/icons/error@2x.png +0 -0
  159. package/dist/assets/icons/error@3x.png +0 -0
  160. package/dist/assets/icons/facebookLogo.png +0 -0
  161. package/dist/assets/icons/facebookLogo@2x.png +0 -0
  162. package/dist/assets/icons/facebookLogo@3x.png +0 -0
  163. package/dist/assets/icons/googleLogo.png +0 -0
  164. package/dist/assets/icons/googleLogo@2x.png +0 -0
  165. package/dist/assets/icons/googleLogo@3x.png +0 -0
  166. package/dist/assets/icons/index.d.ts +8 -0
  167. package/dist/assets/icons/index.js +8 -0
  168. package/dist/assets/icons/index.ts +8 -0
  169. package/dist/assets/icons/visibilityOff.png +0 -0
  170. package/dist/assets/icons/visibilityOff@2x.png +0 -0
  171. package/dist/assets/icons/visibilityOff@3x.png +0 -0
  172. package/dist/assets/icons/visibilityOn.png +0 -0
  173. package/dist/assets/icons/visibilityOn@2x.png +0 -0
  174. package/dist/assets/icons/visibilityOn@3x.png +0 -0
  175. package/dist/index.d.ts +2 -0
  176. package/dist/index.js +2 -0
  177. package/dist/primitives/Button/Button.d.ts +2 -1
  178. package/dist/primitives/Button/Button.js +24 -6
  179. package/dist/primitives/Button/styles.d.ts +2 -1
  180. package/dist/primitives/Button/styles.js +50 -3
  181. package/dist/primitives/Button/types.d.ts +13 -2
  182. package/dist/primitives/Carousel/Carousel.d.ts +1 -0
  183. package/dist/primitives/Carousel/CarouselPageIndicator.d.ts +1 -0
  184. package/dist/primitives/Checkbox/Checkbox.d.ts +1 -0
  185. package/dist/primitives/Checkbox/Checkbox.js +9 -8
  186. package/dist/primitives/Checkbox/index.d.ts +1 -1
  187. package/dist/primitives/Checkbox/styles.d.ts +4 -2
  188. package/dist/primitives/Checkbox/styles.js +23 -5
  189. package/dist/primitives/Checkbox/types.d.ts +7 -4
  190. package/dist/primitives/Divider/Divider.d.ts +4 -0
  191. package/dist/primitives/Divider/Divider.js +17 -0
  192. package/dist/primitives/Divider/index.d.ts +2 -0
  193. package/dist/primitives/Divider/index.js +1 -0
  194. package/dist/primitives/Divider/styles.d.ts +3 -0
  195. package/dist/primitives/Divider/styles.js +24 -0
  196. package/dist/primitives/Divider/types.d.ts +10 -0
  197. package/dist/primitives/Divider/types.js +1 -0
  198. package/dist/primitives/ErrorMessage/ErrorMessage.d.ts +4 -0
  199. package/dist/primitives/ErrorMessage/ErrorMessage.js +17 -0
  200. package/dist/primitives/ErrorMessage/index.d.ts +2 -0
  201. package/dist/primitives/ErrorMessage/index.js +1 -0
  202. package/dist/primitives/ErrorMessage/styles.d.ts +3 -0
  203. package/dist/primitives/ErrorMessage/styles.js +24 -0
  204. package/dist/primitives/ErrorMessage/types.d.ts +10 -0
  205. package/dist/primitives/ErrorMessage/types.js +1 -0
  206. package/dist/primitives/Heading/Heading.d.ts +1 -0
  207. package/dist/primitives/Heading/Heading.js +5 -2
  208. package/dist/primitives/Heading/styles.d.ts +2 -1
  209. package/dist/primitives/Heading/styles.js +45 -12
  210. package/dist/primitives/Heading/types.d.ts +1 -1
  211. package/dist/primitives/Icon/Icon.d.ts +2 -1
  212. package/dist/primitives/Icon/Icon.js +12 -5
  213. package/dist/primitives/Icon/constants.d.ts +2 -0
  214. package/dist/primitives/Icon/constants.js +7 -0
  215. package/dist/primitives/Icon/index.d.ts +2 -1
  216. package/dist/primitives/Icon/index.js +1 -0
  217. package/dist/primitives/Icon/styles.d.ts +2 -1
  218. package/dist/primitives/Icon/styles.js +29 -8
  219. package/dist/primitives/Icon/types.d.ts +4 -2
  220. package/dist/primitives/IconButton/IconButton.d.ts +2 -1
  221. package/dist/primitives/IconButton/IconButton.js +18 -5
  222. package/dist/primitives/IconButton/styles.d.ts +3 -0
  223. package/dist/primitives/IconButton/styles.js +17 -1
  224. package/dist/primitives/IconButton/types.d.ts +4 -2
  225. package/dist/primitives/Label/Label.d.ts +2 -1
  226. package/dist/primitives/Label/Label.js +7 -3
  227. package/dist/primitives/Label/index.d.ts +1 -1
  228. package/dist/primitives/Label/styles.d.ts +2 -1
  229. package/dist/primitives/Label/styles.js +40 -3
  230. package/dist/primitives/Label/types.d.ts +14 -1
  231. package/dist/primitives/PasswordField/PasswordField.d.ts +3 -0
  232. package/dist/primitives/PasswordField/PasswordField.js +20 -0
  233. package/dist/primitives/PasswordField/index.d.ts +2 -0
  234. package/dist/primitives/PasswordField/index.js +1 -0
  235. package/dist/primitives/PasswordField/styles.d.ts +3 -0
  236. package/dist/primitives/PasswordField/styles.js +13 -0
  237. package/dist/primitives/PasswordField/types.d.ts +23 -0
  238. package/dist/primitives/PasswordField/types.js +1 -0
  239. package/dist/primitives/PhoneNumberField/PhoneNumberField.d.ts +3 -0
  240. package/dist/primitives/PhoneNumberField/PhoneNumberField.js +9 -0
  241. package/dist/primitives/PhoneNumberField/index.d.ts +2 -0
  242. package/dist/primitives/PhoneNumberField/index.js +1 -0
  243. package/dist/primitives/PhoneNumberField/styles.d.ts +3 -0
  244. package/dist/primitives/PhoneNumberField/styles.js +18 -0
  245. package/dist/primitives/PhoneNumberField/types.d.ts +5 -0
  246. package/dist/primitives/PhoneNumberField/types.js +1 -0
  247. package/dist/primitives/Radio/Radio.d.ts +4 -1
  248. package/dist/primitives/Radio/Radio.js +20 -10
  249. package/dist/primitives/Radio/getRadioDimensions.d.ts +9 -3
  250. package/dist/primitives/Radio/getRadioDimensions.js +16 -4
  251. package/dist/primitives/Radio/styles.d.ts +2 -1
  252. package/dist/primitives/Radio/styles.js +57 -44
  253. package/dist/primitives/Radio/types.d.ts +11 -11
  254. package/dist/primitives/RadioGroup/RadioGroup.d.ts +3 -0
  255. package/dist/primitives/RadioGroup/RadioGroup.js +51 -0
  256. package/dist/primitives/RadioGroup/index.d.ts +2 -0
  257. package/dist/primitives/RadioGroup/index.js +1 -0
  258. package/dist/primitives/RadioGroup/styles.d.ts +3 -0
  259. package/dist/primitives/RadioGroup/styles.js +16 -0
  260. package/dist/primitives/RadioGroup/types.d.ts +14 -0
  261. package/dist/primitives/RadioGroup/types.js +1 -0
  262. package/dist/primitives/Tabs/Tab.d.ts +3 -0
  263. package/dist/primitives/Tabs/Tab.js +23 -0
  264. package/dist/primitives/Tabs/Tabs.d.ts +3 -0
  265. package/dist/primitives/Tabs/Tabs.js +25 -0
  266. package/dist/primitives/Tabs/index.d.ts +3 -0
  267. package/dist/primitives/Tabs/index.js +2 -0
  268. package/dist/primitives/Tabs/styles.d.ts +3 -0
  269. package/dist/primitives/Tabs/styles.js +50 -0
  270. package/dist/primitives/Tabs/types.d.ts +45 -0
  271. package/dist/primitives/Tabs/types.js +1 -0
  272. package/dist/primitives/TextField/TextField.d.ts +5 -0
  273. package/dist/primitives/TextField/TextField.js +25 -0
  274. package/dist/primitives/TextField/index.d.ts +2 -0
  275. package/dist/primitives/TextField/index.js +1 -0
  276. package/dist/primitives/TextField/styles.d.ts +3 -0
  277. package/dist/primitives/TextField/styles.js +39 -0
  278. package/dist/primitives/TextField/types.d.ts +57 -0
  279. package/dist/primitives/TextField/types.js +1 -0
  280. package/dist/primitives/index.d.ts +7 -0
  281. package/dist/primitives/index.js +7 -0
  282. package/dist/theme/ThemeContext.d.ts +6 -0
  283. package/dist/theme/ThemeContext.js +5 -0
  284. package/dist/theme/ThemeProvider.d.ts +9 -0
  285. package/dist/theme/ThemeProvider.js +7 -0
  286. package/dist/theme/createTheme.d.ts +8 -0
  287. package/dist/theme/createTheme.js +105 -0
  288. package/dist/theme/defaultTheme.d.ts +3 -0
  289. package/dist/theme/defaultTheme.js +8 -0
  290. package/dist/theme/index.d.ts +5 -0
  291. package/dist/theme/index.js +5 -0
  292. package/dist/theme/types.d.ts +63 -0
  293. package/dist/theme/types.js +1 -0
  294. package/dist/theme/useTheme.d.ts +2 -0
  295. package/dist/theme/useTheme.js +6 -0
  296. package/dist/utils/font.d.ts +1 -0
  297. package/dist/utils/font.js +4 -0
  298. package/dist/utils/index.d.ts +3 -2
  299. package/dist/utils/index.js +3 -7
  300. package/dist/utils/platform.d.ts +193 -0
  301. package/dist/utils/platform.js +17 -0
  302. package/dist/utils/utils.d.ts +1 -0
  303. package/dist/utils/utils.js +3 -0
  304. package/jest.config.js +1 -0
  305. package/jest.setup.js +3 -0
  306. package/package.json +7 -6
  307. package/src/Authenticator/Authenticator.tsx +106 -0
  308. package/src/Authenticator/Defaults/ConfirmResetPassword/ConfirmResetPassword.tsx +68 -0
  309. package/src/Authenticator/Defaults/ConfirmResetPassword/__tests__/ConfirmResetPassword.spec.tsx +88 -0
  310. package/src/Authenticator/Defaults/ConfirmResetPassword/__tests__/__snapshots__/ConfirmResetPassword.spec.tsx.snap +1048 -0
  311. package/src/Authenticator/Defaults/ConfirmResetPassword/index.ts +1 -0
  312. package/src/Authenticator/Defaults/ConfirmSignIn/ConfirmSignIn.tsx +69 -0
  313. package/src/Authenticator/Defaults/ConfirmSignIn/__tests__/ConfirmSignIn.spec.tsx +77 -0
  314. package/src/Authenticator/Defaults/ConfirmSignIn/__tests__/__snapshots__/ConfirmSignIn.spec.tsx.snap +508 -0
  315. package/src/Authenticator/Defaults/ConfirmSignIn/index.ts +1 -0
  316. package/src/Authenticator/Defaults/ConfirmSignUp/ConfirmSignUp.tsx +72 -0
  317. package/src/Authenticator/Defaults/ConfirmSignUp/__tests__/ConfirmSignUp.spec.tsx +63 -0
  318. package/src/Authenticator/Defaults/ConfirmSignUp/__tests__/__snapshots__/ConfirmSignUp.spec.tsx.snap +528 -0
  319. package/src/Authenticator/Defaults/ConfirmSignUp/index.ts +1 -0
  320. package/src/Authenticator/Defaults/ConfirmVerifyUser/ConfirmVerifyUser.tsx +68 -0
  321. package/src/Authenticator/Defaults/ConfirmVerifyUser/__tests__/ConfirmVerifyUser.spec.tsx +70 -0
  322. package/src/Authenticator/Defaults/ConfirmVerifyUser/__tests__/__snapshots__/ConfirmVerifyUser.spec.tsx.snap +489 -0
  323. package/src/Authenticator/Defaults/ConfirmVerifyUser/index.ts +1 -0
  324. package/src/Authenticator/Defaults/ForceNewPassword/ForceNewPassword.tsx +66 -0
  325. package/src/Authenticator/Defaults/ForceNewPassword/__tests__/ForceNewPassword.spec.tsx +78 -0
  326. package/src/Authenticator/Defaults/ForceNewPassword/__tests__/__snapshots__/ForceNewPassword.spec.tsx.snap +860 -0
  327. package/src/Authenticator/Defaults/ForceNewPassword/index.ts +1 -0
  328. package/src/Authenticator/Defaults/ResetPassword/ResetPassword.tsx +67 -0
  329. package/src/Authenticator/Defaults/ResetPassword/__tests__/ResetPassword.spec.tsx +77 -0
  330. package/src/Authenticator/Defaults/ResetPassword/__tests__/__snapshots__/ResetPassword.spec.tsx.snap +508 -0
  331. package/src/Authenticator/Defaults/ResetPassword/index.ts +1 -0
  332. package/src/Authenticator/Defaults/SetupTOTP/SetupTOTP.tsx +106 -0
  333. package/src/Authenticator/Defaults/SetupTOTP/__tests__/SetupTOTP.spec.tsx +131 -0
  334. package/src/Authenticator/Defaults/SetupTOTP/__tests__/__snapshots__/SetupTOTP.spec.tsx.snap +508 -0
  335. package/src/Authenticator/Defaults/SetupTOTP/index.ts +1 -0
  336. package/src/Authenticator/Defaults/SetupTOTP/styles.ts +10 -0
  337. package/src/Authenticator/Defaults/SignIn/SignIn.tsx +82 -0
  338. package/src/Authenticator/Defaults/SignIn/__tests__/SignIn.spec.tsx +66 -0
  339. package/src/Authenticator/Defaults/SignIn/__tests__/__snapshots__/SignIn.spec.tsx.snap +1252 -0
  340. package/src/Authenticator/Defaults/SignIn/index.ts +1 -0
  341. package/src/Authenticator/Defaults/SignUp/SignUp.tsx +79 -0
  342. package/src/Authenticator/Defaults/SignUp/__tests__/SignUp.spec.tsx +101 -0
  343. package/src/Authenticator/Defaults/SignUp/__tests__/__snapshots__/SignUp.spec.tsx.snap +3019 -0
  344. package/src/Authenticator/Defaults/SignUp/index.ts +1 -0
  345. package/src/Authenticator/Defaults/VerifyUser/VerifyUser.tsx +67 -0
  346. package/src/Authenticator/Defaults/VerifyUser/__tests__/VerifyUser.spec.tsx +106 -0
  347. package/src/Authenticator/Defaults/VerifyUser/__tests__/__snapshots__/VerifyUser.spec.tsx.snap +678 -0
  348. package/src/Authenticator/Defaults/VerifyUser/index.ts +1 -0
  349. package/src/Authenticator/Defaults/index.ts +11 -0
  350. package/src/Authenticator/Defaults/types.ts +146 -0
  351. package/src/Authenticator/__tests__/Authenticator.spec.tsx +134 -0
  352. package/src/Authenticator/__tests__/__snapshots__/Authenticator.spec.tsx.snap +98 -0
  353. package/src/Authenticator/__tests__/__snapshots__/withAuthenticator.spec.tsx.snap +68 -0
  354. package/src/Authenticator/__tests__/withAuthenticator.spec.tsx +73 -0
  355. package/src/Authenticator/common/DefaultContainer/DefaultContainer.tsx +74 -0
  356. package/src/Authenticator/common/DefaultContainer/InnerContainer.tsx +20 -0
  357. package/src/Authenticator/common/DefaultContainer/__tests__/DefaultContainer.spec.tsx +19 -0
  358. package/src/Authenticator/common/DefaultContainer/__tests__/__snapshots__/DefaultContainer.spec.tsx.snap +86 -0
  359. package/src/Authenticator/common/DefaultContainer/index.ts +3 -0
  360. package/src/Authenticator/common/DefaultContainer/styles.ts +40 -0
  361. package/src/Authenticator/common/DefaultContainer/types.ts +29 -0
  362. package/src/Authenticator/common/DefaultContent/DefaultContent.tsx +92 -0
  363. package/src/Authenticator/common/DefaultContent/index.ts +1 -0
  364. package/src/Authenticator/common/DefaultContent/styles.ts +57 -0
  365. package/src/Authenticator/common/DefaultContent/types.ts +74 -0
  366. package/src/Authenticator/common/DefaultFooter/DefaultFooter.tsx +11 -0
  367. package/src/Authenticator/common/DefaultFooter/__tests__/DefaultFooter.spec.tsx +26 -0
  368. package/src/Authenticator/common/DefaultFooter/__tests__/__snapshots__/DefaultFooter.spec.tsx.snap +43 -0
  369. package/src/Authenticator/common/DefaultFooter/index.ts +2 -0
  370. package/src/Authenticator/common/DefaultFooter/types.ts +3 -0
  371. package/src/Authenticator/common/DefaultFormFields/DefaultRadioFormFields.tsx +45 -0
  372. package/src/Authenticator/common/DefaultFormFields/DefaultTextFormFields.tsx +60 -0
  373. package/src/Authenticator/common/DefaultFormFields/FieldErrors.tsx +24 -0
  374. package/src/Authenticator/common/DefaultFormFields/__tests__/DefaultFormFields.spec.tsx +15 -0
  375. package/src/Authenticator/common/DefaultFormFields/__tests__/FieldErrors.spec.tsx +29 -0
  376. package/src/Authenticator/common/DefaultFormFields/__tests__/__snapshots__/DefaultFormFields.spec.tsx.snap +3 -0
  377. package/src/Authenticator/common/DefaultFormFields/__tests__/__snapshots__/FieldErrors.spec.tsx.snap +32 -0
  378. package/src/Authenticator/common/DefaultFormFields/index.ts +3 -0
  379. package/src/Authenticator/common/DefaultFormFields/types.ts +28 -0
  380. package/src/Authenticator/common/DefaultHeader/DefaultHeader.tsx +16 -0
  381. package/src/Authenticator/common/DefaultHeader/__tests__/DefaultHeader.spec.tsx +23 -0
  382. package/src/Authenticator/common/DefaultHeader/__tests__/__snapshots__/DefaultHeader.spec.tsx.snap +24 -0
  383. package/src/Authenticator/common/DefaultHeader/index.ts +2 -0
  384. package/src/Authenticator/common/DefaultHeader/types.ts +3 -0
  385. package/src/Authenticator/common/FederatedProviderButton/FederatedProviderButton.tsx +31 -0
  386. package/src/Authenticator/common/FederatedProviderButton/__tests__/FederatedProviderButton.spec.tsx +36 -0
  387. package/src/Authenticator/common/FederatedProviderButton/__tests__/__snapshots__/FederatedProviderButton.spec.tsx.snap +94 -0
  388. package/src/Authenticator/common/FederatedProviderButton/index.ts +2 -0
  389. package/src/Authenticator/common/FederatedProviderButton/styles.ts +21 -0
  390. package/src/Authenticator/common/FederatedProviderButton/types.ts +18 -0
  391. package/src/Authenticator/common/FederatedProviderButtons/FederatedProviderButtons.tsx +45 -0
  392. package/src/Authenticator/common/FederatedProviderButtons/__tests__/FederatedProviderButtons.spec.tsx +55 -0
  393. package/src/Authenticator/common/FederatedProviderButtons/__tests__/__snapshots__/FederatedProviderButtons.spec.tsx.snap +169 -0
  394. package/src/Authenticator/common/FederatedProviderButtons/index.ts +1 -0
  395. package/src/Authenticator/common/FederatedProviderButtons/styles.ts +7 -0
  396. package/src/Authenticator/common/FederatedProviderButtons/types.ts +16 -0
  397. package/src/Authenticator/common/index.ts +7 -0
  398. package/src/Authenticator/hooks/index.ts +2 -0
  399. package/src/Authenticator/hooks/types.ts +40 -0
  400. package/src/Authenticator/hooks/useFieldValues/__tests__/useFieldValues.spec.ts +300 -0
  401. package/src/Authenticator/hooks/useFieldValues/__tests__/utils.spec.ts +208 -0
  402. package/src/Authenticator/hooks/useFieldValues/constants.ts +8 -0
  403. package/src/Authenticator/hooks/useFieldValues/index.ts +2 -0
  404. package/src/Authenticator/hooks/useFieldValues/types.ts +35 -0
  405. package/src/Authenticator/hooks/useFieldValues/useFieldValues.ts +116 -0
  406. package/src/Authenticator/hooks/useFieldValues/utils.ts +177 -0
  407. package/src/Authenticator/index.ts +6 -0
  408. package/src/Authenticator/types.ts +26 -0
  409. package/src/Authenticator/withAuthenticator.tsx +18 -0
  410. package/src/InAppMessaging/components/BannerMessage/__tests__/__snapshots__/BannerMessage.spec.tsx.snap +24 -10
  411. package/src/InAppMessaging/components/ModalMessage/__tests__/__snapshots__/ModalMessage.spec.tsx.snap +37 -16
  412. package/src/__mocks__/react-native-safe-area-context.ts +4 -1
  413. package/src/__tests__/__snapshots__/index.spec.ts.snap +11 -0
  414. package/src/assets/icons/amazonLogo.png +0 -0
  415. package/src/assets/icons/amazonLogo@2x.png +0 -0
  416. package/src/assets/icons/amazonLogo@3x.png +0 -0
  417. package/src/assets/icons/appleLogo.png +0 -0
  418. package/src/assets/icons/appleLogo@2x.png +0 -0
  419. package/src/assets/icons/appleLogo@3x.png +0 -0
  420. package/src/assets/icons/checkboxFilled.png +0 -0
  421. package/src/assets/icons/checkboxFilled@2x.png +0 -0
  422. package/src/assets/icons/checkboxFilled@3x.png +0 -0
  423. package/src/assets/icons/checkboxOutline.png +0 -0
  424. package/src/assets/icons/checkboxOutline@2x.png +0 -0
  425. package/src/assets/icons/checkboxOutline@3x.png +0 -0
  426. package/src/assets/icons/close.png +0 -0
  427. package/src/assets/icons/close@2x.png +0 -0
  428. package/src/assets/icons/close@3x.png +0 -0
  429. package/src/assets/icons/copy.png +0 -0
  430. package/src/assets/icons/copy@2x.png +0 -0
  431. package/src/assets/icons/copy@3x.png +0 -0
  432. package/src/assets/icons/error.png +0 -0
  433. package/src/assets/icons/error@2x.png +0 -0
  434. package/src/assets/icons/error@3x.png +0 -0
  435. package/src/assets/icons/facebookLogo.png +0 -0
  436. package/src/assets/icons/facebookLogo@2x.png +0 -0
  437. package/src/assets/icons/facebookLogo@3x.png +0 -0
  438. package/src/assets/icons/googleLogo.png +0 -0
  439. package/src/assets/icons/googleLogo@2x.png +0 -0
  440. package/src/assets/icons/googleLogo@3x.png +0 -0
  441. package/src/assets/icons/index.ts +8 -0
  442. package/src/assets/icons/visibilityOff.png +0 -0
  443. package/src/assets/icons/visibilityOff@2x.png +0 -0
  444. package/src/assets/icons/visibilityOff@3x.png +0 -0
  445. package/src/assets/icons/visibilityOn.png +0 -0
  446. package/src/assets/icons/visibilityOn@2x.png +0 -0
  447. package/src/assets/icons/visibilityOn@3x.png +0 -0
  448. package/src/index.ts +15 -0
  449. package/src/primitives/Button/Button.tsx +51 -6
  450. package/src/primitives/Button/__tests__/Button.spec.tsx +75 -7
  451. package/src/primitives/Button/__tests__/__snapshots__/Button.spec.tsx.snap +103 -3
  452. package/src/primitives/Button/styles.ts +61 -3
  453. package/src/primitives/Button/types.ts +14 -2
  454. package/src/primitives/Checkbox/Checkbox.tsx +9 -8
  455. package/src/primitives/Checkbox/__tests__/Checkbox.spec.tsx +120 -15
  456. package/src/primitives/Checkbox/__tests__/__snapshots__/Checkbox.spec.tsx.snap +345 -16
  457. package/src/primitives/Checkbox/index.ts +1 -1
  458. package/src/primitives/Checkbox/styles.ts +31 -6
  459. package/src/primitives/Checkbox/types.ts +13 -4
  460. package/src/primitives/Divider/Divider.tsx +34 -0
  461. package/src/primitives/Divider/__tests__/Divider.spec.tsx +50 -0
  462. package/src/primitives/Divider/__tests__/__snapshots__/Divider.spec.tsx.snap +165 -0
  463. package/src/primitives/Divider/index.ts +2 -0
  464. package/src/primitives/Divider/styles.ts +29 -0
  465. package/src/primitives/Divider/types.ts +21 -0
  466. package/src/primitives/ErrorMessage/ErrorMessage.tsx +44 -0
  467. package/src/primitives/ErrorMessage/__tests__/ErrorMessage.spec.tsx +60 -0
  468. package/src/primitives/ErrorMessage/__tests__/__snapshots__/ErrorMessage.spec.tsx.snap +113 -0
  469. package/src/primitives/ErrorMessage/index.ts +2 -0
  470. package/src/primitives/ErrorMessage/styles.ts +32 -0
  471. package/src/primitives/ErrorMessage/types.ts +18 -0
  472. package/src/primitives/Heading/Heading.tsx +7 -2
  473. package/src/primitives/Heading/__tests__/Heading.spec.tsx +51 -14
  474. package/src/primitives/Heading/__tests__/__snapshots__/Heading.spec.tsx.snap +44 -23
  475. package/src/primitives/Heading/styles.ts +51 -12
  476. package/src/primitives/Heading/types.ts +1 -1
  477. package/src/primitives/Icon/Icon.tsx +16 -4
  478. package/src/primitives/Icon/__tests__/Icon.spec.tsx +80 -5
  479. package/src/primitives/Icon/__tests__/__snapshots__/Icon.spec.tsx.snap +81 -6
  480. package/src/primitives/Icon/constants.ts +9 -0
  481. package/src/primitives/Icon/index.ts +2 -1
  482. package/src/primitives/Icon/styles.ts +38 -7
  483. package/src/primitives/Icon/types.ts +5 -2
  484. package/src/primitives/IconButton/IconButton.tsx +37 -5
  485. package/src/primitives/IconButton/__tests__/IconButton.spec.tsx +57 -9
  486. package/src/primitives/IconButton/__tests__/__snapshots__/IconButton.spec.tsx.snap +125 -4
  487. package/src/primitives/IconButton/styles.ts +25 -0
  488. package/src/primitives/IconButton/types.ts +4 -1
  489. package/src/primitives/Label/Label.tsx +9 -6
  490. package/src/primitives/Label/__tests__/Label.spec.tsx +61 -8
  491. package/src/primitives/Label/__tests__/__snapshots__/Label.spec.tsx.snap +61 -9
  492. package/src/primitives/Label/index.ts +1 -1
  493. package/src/primitives/Label/styles.ts +45 -3
  494. package/src/primitives/Label/types.ts +25 -2
  495. package/src/primitives/PasswordField/PasswordField.tsx +57 -0
  496. package/src/primitives/PasswordField/__tests__/PasswordField.spec.tsx +110 -0
  497. package/src/primitives/PasswordField/__tests__/__snapshots__/PasswordField.spec.tsx.snap +629 -0
  498. package/src/primitives/PasswordField/index.ts +2 -0
  499. package/src/primitives/PasswordField/styles.ts +20 -0
  500. package/src/primitives/PasswordField/types.ts +27 -0
  501. package/src/primitives/PhoneNumberField/PhoneNumberField.tsx +28 -0
  502. package/src/primitives/PhoneNumberField/__tests__/PhoneNumberField.spec.tsx +53 -0
  503. package/src/primitives/PhoneNumberField/__tests__/__snapshots__/PhoneNumberField.spec.tsx.snap +185 -0
  504. package/src/primitives/PhoneNumberField/index.ts +2 -0
  505. package/src/primitives/PhoneNumberField/styles.ts +23 -0
  506. package/src/primitives/PhoneNumberField/types.ts +6 -0
  507. package/src/primitives/Radio/Radio.tsx +35 -14
  508. package/src/primitives/Radio/__tests__/Radio.spec.tsx +109 -15
  509. package/src/primitives/Radio/__tests__/__snapshots__/Radio.spec.tsx.snap +149 -44
  510. package/src/primitives/Radio/getRadioDimensions.ts +20 -7
  511. package/src/primitives/Radio/styles.ts +63 -45
  512. package/src/primitives/Radio/types.ts +12 -11
  513. package/src/primitives/RadioGroup/RadioGroup.tsx +108 -0
  514. package/src/primitives/RadioGroup/__tests__/RadioGroup.spec.tsx +183 -0
  515. package/src/primitives/RadioGroup/__tests__/__snapshots__/RadioGroup.spec.tsx.snap +1741 -0
  516. package/src/primitives/RadioGroup/index.ts +2 -0
  517. package/src/primitives/RadioGroup/styles.ts +21 -0
  518. package/src/primitives/RadioGroup/types.ts +27 -0
  519. package/src/primitives/Tabs/Tab.tsx +49 -0
  520. package/src/primitives/Tabs/Tabs.tsx +43 -0
  521. package/src/primitives/Tabs/__tests__/Tab.spec.tsx +68 -0
  522. package/src/primitives/Tabs/__tests__/Tabs.spec.tsx +81 -0
  523. package/src/primitives/Tabs/__tests__/__snapshots__/Tab.spec.tsx.snap +298 -0
  524. package/src/primitives/Tabs/__tests__/__snapshots__/Tabs.spec.tsx.snap +175 -0
  525. package/src/primitives/Tabs/index.ts +3 -0
  526. package/src/primitives/Tabs/styles.ts +62 -0
  527. package/src/primitives/Tabs/types.ts +51 -0
  528. package/src/primitives/TextField/TextField.tsx +77 -0
  529. package/src/primitives/TextField/__tests__/TextField.spec.tsx +153 -0
  530. package/src/primitives/TextField/__tests__/__snapshots__/TextField.spec.tsx.snap +507 -0
  531. package/src/primitives/TextField/index.ts +2 -0
  532. package/src/primitives/TextField/styles.ts +47 -0
  533. package/src/primitives/TextField/types.ts +66 -0
  534. package/src/primitives/index.ts +7 -0
  535. package/src/theme/ThemeContext.tsx +12 -0
  536. package/src/theme/ThemeProvider.tsx +26 -0
  537. package/src/theme/__tests__/ThemeProvider.spec.tsx +23 -0
  538. package/src/theme/__tests__/__snapshots__/useTheme.spec.tsx.snap +226 -0
  539. package/src/theme/__tests__/createTheme.spec.ts +196 -0
  540. package/src/theme/__tests__/useTheme.spec.tsx +51 -0
  541. package/src/theme/createTheme.ts +130 -0
  542. package/src/theme/defaultTheme.ts +11 -0
  543. package/src/theme/index.ts +5 -0
  544. package/src/theme/types/style-dictionary.d.ts +21 -0
  545. package/src/theme/types.ts +98 -0
  546. package/src/theme/useTheme.ts +9 -0
  547. package/src/utils/font.ts +6 -0
  548. package/src/utils/index.ts +3 -10
  549. package/src/utils/platform.ts +21 -0
  550. package/src/utils/utils.ts +3 -0
@@ -0,0 +1,23 @@
1
+ import React, { Fragment } from 'react';
2
+ import { View } from 'react-native';
3
+ import { getErrors } from '@aws-amplify/ui';
4
+ import { PasswordField, PhoneNumberField, TextField, } from '../../../primitives';
5
+ import { FieldErrors } from './FieldErrors';
6
+ const DefaultTextFormFields = ({ fieldContainerStyle, fieldErrorsContainer, fieldErrorStyle, fieldStyle, fields = [], isPending, style, validationErrors, }) => {
7
+ const formFields = fields.map(({ name, type, ...field }) => {
8
+ const errors = validationErrors ? getErrors(validationErrors?.[name]) : [];
9
+ const hasError = errors?.length > 0;
10
+ const Field = type === 'password'
11
+ ? PasswordField
12
+ : type === 'phone'
13
+ ? PhoneNumberField
14
+ : TextField;
15
+ return (<Fragment key={name}>
16
+ <Field {...field} disabled={isPending} error={hasError} fieldStyle={fieldStyle} key={name} style={fieldContainerStyle}/>
17
+ <FieldErrors errors={errors} errorStyle={fieldErrorStyle} style={fieldErrorsContainer}/>
18
+ </Fragment>);
19
+ });
20
+ return <View style={style}>{formFields}</View>;
21
+ };
22
+ DefaultTextFormFields.displayName = 'DefaultTextFormFields';
23
+ export default DefaultTextFormFields;
@@ -0,0 +1,2 @@
1
+ import { FieldErrorsProps } from './types';
2
+ export declare const FieldErrors: ({ errors, errorStyle, style, }: FieldErrorsProps) => JSX.Element | null;
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { Text, View } from 'react-native';
3
+ export const FieldErrors = ({ errors, errorStyle, style, }) => {
4
+ if (!errors || !errors.length) {
5
+ return null;
6
+ }
7
+ return (<View style={style}>
8
+ {errors.map((error) => (<Text key={error} style={errorStyle}>
9
+ {error}
10
+ </Text>))}
11
+ </View>);
12
+ };
@@ -0,0 +1,3 @@
1
+ export { default as DefaultRadioFormFields } from './DefaultRadioFormFields';
2
+ export { default as DefaultTextFormFields } from './DefaultTextFormFields';
3
+ export { DefaultFormFieldsComponent, DefaultFormFieldsStyle } from './types';
@@ -0,0 +1,2 @@
1
+ export { default as DefaultRadioFormFields } from './DefaultRadioFormFields';
2
+ export { default as DefaultTextFormFields } from './DefaultTextFormFields';
@@ -0,0 +1,19 @@
1
+ import { StyleProp, TextStyle, ViewStyle } from 'react-native';
2
+ import { AuthenticatorFormFieldsComponent } from '@aws-amplify/ui-react-core';
3
+ import { RadioFieldOptions, TextFieldOptionsType } from '../../hooks';
4
+ export interface FieldErrorsProps {
5
+ errors: string[];
6
+ errorStyle?: StyleProp<TextStyle>;
7
+ style?: StyleProp<ViewStyle>;
8
+ }
9
+ export interface DefaultFormFieldsStyle {
10
+ fieldContainerStyle?: StyleProp<ViewStyle>;
11
+ fieldErrorsContainer?: FieldErrorsProps['style'];
12
+ fieldErrorStyle?: FieldErrorsProps['errorStyle'];
13
+ fieldLabelStyle?: StyleProp<TextStyle>;
14
+ fieldStyle?: StyleProp<TextStyle>;
15
+ style?: StyleProp<ViewStyle>;
16
+ }
17
+ export declare type DefaultFormFieldsComponent<FieldsType> = AuthenticatorFormFieldsComponent<FieldsType, DefaultFormFieldsStyle>;
18
+ export declare type DefaultTextFormFieldsComponent = DefaultFormFieldsComponent<TextFieldOptionsType>;
19
+ export declare type DefaultRadioFormFieldsComponent = DefaultFormFieldsComponent<RadioFieldOptions>;
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import { DefaultHeaderProps } from './types';
3
+ export default function DefaultHeader({ children, level, ...rest }: DefaultHeaderProps): JSX.Element | null;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { Heading } from '../../../primitives/Heading';
3
+ export default function DefaultHeader({ children, level = 3, ...rest }) {
4
+ return children ? (<Heading {...rest} level={level}>
5
+ {children}
6
+ </Heading>) : null;
7
+ }
@@ -0,0 +1,2 @@
1
+ export { default as DefaultHeader } from './DefaultHeader';
2
+ export { DefaultHeaderProps } from './types';
@@ -0,0 +1 @@
1
+ export { default as DefaultHeader } from './DefaultHeader';
@@ -0,0 +1,3 @@
1
+ import { HeadingProps } from '../../../primitives/Heading';
2
+ export interface DefaultHeaderProps extends HeadingProps {
3
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import { FederatedProviderButtonProps } from './types';
3
+ export default function FederatedProviderButton({ children, source, style, textStyle, ...rest }: FederatedProviderButtonProps): JSX.Element;
@@ -0,0 +1,13 @@
1
+ import React, { useCallback } from 'react';
2
+ import { Button, Icon, Label } from '../../../primitives';
3
+ import { styles } from './styles';
4
+ export default function FederatedProviderButton({ children, source, style, textStyle, ...rest }) {
5
+ const containerStyle = useCallback(({ pressed }) => {
6
+ const pressedStateStyle = typeof style === 'function' ? style({ pressed }) : style;
7
+ return [styles.container, pressedStateStyle];
8
+ }, [style]);
9
+ return (<Button {...rest} style={containerStyle}>
10
+ {source ? <Icon source={source} style={styles.icon} size={20}/> : null}
11
+ <Label style={[styles.label, textStyle]}>{children}</Label>
12
+ </Button>);
13
+ }
@@ -0,0 +1,2 @@
1
+ export { default as FederatedProviderButton } from './FederatedProviderButton';
2
+ export { FederatedProviderButtonProps } from './types';
@@ -0,0 +1 @@
1
+ export { default as FederatedProviderButton } from './FederatedProviderButton';
@@ -0,0 +1,2 @@
1
+ import { FederatedProviderButtonStyles } from './types';
2
+ export declare const styles: FederatedProviderButtonStyles;
@@ -0,0 +1,18 @@
1
+ import { StyleSheet } from 'react-native';
2
+ export const styles = StyleSheet.create({
3
+ container: {
4
+ alignItems: 'center',
5
+ borderRadius: 4,
6
+ borderWidth: StyleSheet.hairlineWidth,
7
+ flexDirection: 'row',
8
+ justifyContent: 'center',
9
+ paddingVertical: 8,
10
+ width: '100%',
11
+ },
12
+ icon: {
13
+ paddingHorizontal: 16,
14
+ },
15
+ label: {
16
+ fontWeight: '400',
17
+ },
18
+ });
@@ -0,0 +1,10 @@
1
+ import { ImageSourcePropType, ImageStyle, TextStyle, ViewStyle } from 'react-native';
2
+ import { ButtonProps } from '../../../primitives';
3
+ export interface FederatedProviderButtonProps extends ButtonProps {
4
+ source: ImageSourcePropType;
5
+ }
6
+ export interface FederatedProviderButtonStyles {
7
+ container: ViewStyle;
8
+ icon: ImageStyle;
9
+ label: TextStyle;
10
+ }
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import { FederatedProviderButtonsProps } from './types';
3
+ export default function FederatedProviderButtons({ socialProviders, toFederatedSignIn, }: FederatedProviderButtonsProps): JSX.Element | null;
@@ -0,0 +1,22 @@
1
+ import React, { useMemo } from 'react';
2
+ import { View } from 'react-native';
3
+ import { icons } from '../../../assets';
4
+ import { capitalize } from '../../../utils';
5
+ import { FederatedProviderButton } from '../FederatedProviderButton';
6
+ import { Divider } from '../../../primitives';
7
+ import { styles } from './styles';
8
+ export default function FederatedProviderButtons({ socialProviders, toFederatedSignIn, }) {
9
+ const providerButtons = useMemo(() => socialProviders?.map((provider) => {
10
+ const providerIconSource = icons[`${provider}Logo`];
11
+ const handlePress = () => {
12
+ toFederatedSignIn({ provider });
13
+ };
14
+ return (<FederatedProviderButton key={provider} onPress={handlePress} source={providerIconSource} style={styles.button}>
15
+ {`Sign In with ${capitalize(provider)}`}
16
+ </FederatedProviderButton>);
17
+ }), [socialProviders, toFederatedSignIn]);
18
+ return providerButtons?.length ? (<View style={styles.container}>
19
+ {providerButtons}
20
+ <Divider labelStyle={styles.text}>Or</Divider>
21
+ </View>) : null;
22
+ }
@@ -0,0 +1 @@
1
+ export { default as FederatedProviderButtons } from './FederatedProviderButtons';
@@ -0,0 +1 @@
1
+ export { default as FederatedProviderButtons } from './FederatedProviderButtons';
@@ -0,0 +1,2 @@
1
+ import { FederatedProviderButtonStyle } from './types';
2
+ export declare const styles: FederatedProviderButtonStyle;
@@ -0,0 +1,5 @@
1
+ export const styles = {
2
+ button: { marginVertical: 8 },
3
+ container: { paddingVertical: 4 },
4
+ text: { paddingVertical: 8, textAlign: 'center' },
5
+ };
@@ -0,0 +1,9 @@
1
+ import { TextStyle, ViewStyle } from 'react-native';
2
+ import { AuthenticatorMachineContext } from '@aws-amplify/ui-react-core';
3
+ export interface FederatedProviderButtonsProps extends Pick<AuthenticatorMachineContext, 'socialProviders' | 'toFederatedSignIn'> {
4
+ }
5
+ export interface FederatedProviderButtonStyle {
6
+ button: ViewStyle;
7
+ container: ViewStyle;
8
+ text: TextStyle;
9
+ }
@@ -0,0 +1,7 @@
1
+ export * from './DefaultContainer';
2
+ export * from './DefaultContent';
3
+ export * from './DefaultFooter';
4
+ export * from './DefaultFormFields';
5
+ export * from './DefaultHeader';
6
+ export * from './FederatedProviderButton';
7
+ export * from './FederatedProviderButtons';
@@ -0,0 +1,7 @@
1
+ export * from './DefaultContainer';
2
+ export * from './DefaultContent';
3
+ export * from './DefaultFooter';
4
+ export * from './DefaultFormFields';
5
+ export * from './DefaultHeader';
6
+ export * from './FederatedProviderButton';
7
+ export * from './FederatedProviderButtons';
@@ -0,0 +1,2 @@
1
+ export * from './useFieldValues';
2
+ export * from './types';
@@ -0,0 +1,2 @@
1
+ export * from './useFieldValues';
2
+ export * from './types';
@@ -0,0 +1,24 @@
1
+ import { TextFieldProps, PasswordFieldProps, PhoneNumberFieldProps, RadioProps } from '../../primitives';
2
+ export declare type MachineFieldTypeKey = 'password' | 'tel';
3
+ export declare type AuthenticatorFieldTypeKey = 'password' | 'phone' | 'default' | 'radio';
4
+ declare type RadioFieldOnBlur = RadioProps<string>['onBlur'];
5
+ export declare type TextFieldOnBlur = TextFieldProps['onBlur'];
6
+ export declare type OnChangeText = TextFieldProps['onChangeText'];
7
+ declare type FieldOptions<FieldProps, Type extends AuthenticatorFieldTypeKey> = {
8
+ name: string;
9
+ onBlur?: Type extends 'radio' ? RadioFieldOnBlur : TextFieldOnBlur;
10
+ required?: boolean;
11
+ type: Type;
12
+ } & Omit<FieldProps, 'disabled' | 'onBlur'>;
13
+ declare type PasswordFieldOptions = FieldOptions<PasswordFieldProps, 'password'>;
14
+ declare type PhoneFieldOptions = FieldOptions<PhoneNumberFieldProps, 'phone'>;
15
+ declare type DefaultFieldOptions = FieldOptions<TextFieldProps, 'default'>;
16
+ export declare type TextFieldOptionsType = (PasswordFieldOptions | PhoneFieldOptions | DefaultFieldOptions) & {
17
+ labelHidden?: boolean;
18
+ };
19
+ export declare type RadioFieldOptions = FieldOptions<RadioProps<string>, 'radio'>;
20
+ /**
21
+ * `field` options union
22
+ */
23
+ export declare type TypedField = RadioFieldOptions | TextFieldOptionsType;
24
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export declare const KEY_ALLOW_LIST: string[];
@@ -0,0 +1,8 @@
1
+ // machine keys used with default fields that should be used with UI
2
+ export const KEY_ALLOW_LIST = [
3
+ 'label',
4
+ 'placeholder',
5
+ 'required',
6
+ 'isRequired',
7
+ 'type',
8
+ ];
@@ -0,0 +1,2 @@
1
+ export { default as useFieldValues } from './useFieldValues';
2
+ export { getRouteTypedFields } from './utils';
@@ -0,0 +1,2 @@
1
+ export { default as useFieldValues } from './useFieldValues';
2
+ export { getRouteTypedFields } from './utils';
@@ -0,0 +1,24 @@
1
+ import { AuthenticatorComponentDefaultProps, AuthenticatorRouteComponentName } from '@aws-amplify/ui-react-core';
2
+ import { TypedField } from '../types';
3
+ export declare type MachineEventHandlers = Pick<AuthenticatorComponentDefaultProps[AuthenticatorRouteComponentName], 'handleBlur' | 'handleChange' | 'handleSubmit'>;
4
+ export interface UseFieldValuesParams<FieldType extends TypedField> {
5
+ componentName: AuthenticatorRouteComponentName;
6
+ fields: FieldType[];
7
+ /**
8
+ * machine "BLUR" event handler, validates `field` value against machine validation rules
9
+ */
10
+ handleBlur: MachineEventHandlers['handleBlur'];
11
+ /**
12
+ * machine "CHANGE"" event handler, validates `field` value against machine validation rules
13
+ */
14
+ handleChange: MachineEventHandlers['handleChange'];
15
+ /**
16
+ * machine "SUBMIT"" event handler, validates `field` value against machine validation rules
17
+ */
18
+ handleSubmit: MachineEventHandlers['handleSubmit'];
19
+ }
20
+ export interface UseFieldValues<FieldType extends TypedField> {
21
+ fields: FieldType[];
22
+ disableFormSubmit: boolean;
23
+ handleFormSubmit: () => void;
24
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import { TypedField } from '../types';
2
+ import { UseFieldValues, UseFieldValuesParams } from './types';
3
+ export default function useFieldValues<FieldType extends TypedField>({ componentName, fields, handleBlur, handleChange, handleSubmit, }: UseFieldValuesParams<FieldType>): UseFieldValues<FieldType>;
@@ -0,0 +1,80 @@
1
+ import { useMemo, useState } from 'react';
2
+ import { Logger } from 'aws-amplify';
3
+ import { getSanitizedTextFields, getSanitizedRadioFields, isRadioFieldOptions, } from './utils';
4
+ const logger = new Logger('Authenticator');
5
+ export default function useFieldValues({ componentName, fields = [], handleBlur, handleChange, handleSubmit, }) {
6
+ const [values, setValues] = useState({});
7
+ const isRadioFieldComponent = componentName === 'VerifyUser';
8
+ const sanitizedFields = useMemo(() => {
9
+ if (!Array.isArray(fields)) {
10
+ logger.warn(`Invalid fields type of ${typeof fields} passed to ${componentName}. fields must be of type array.`);
11
+ return [];
12
+ }
13
+ if (isRadioFieldComponent) {
14
+ return getSanitizedRadioFields(fields, componentName);
15
+ }
16
+ return getSanitizedTextFields(fields, componentName);
17
+ }, [componentName, fields, isRadioFieldComponent]);
18
+ const fieldsWithHandlers = sanitizedFields.map((field) => {
19
+ if (isRadioFieldOptions(field)) {
20
+ const onChange = (value) => {
21
+ // call `onChange` passed as radio `field` option
22
+ field.onChange?.(value);
23
+ // set `name` as value of 'unverifiedAttr'
24
+ setValues({ unverifiedAttr: value });
25
+ };
26
+ return { ...field, onChange };
27
+ }
28
+ const { name, label, labelHidden, ...rest } = field;
29
+ const onBlur = (event) => {
30
+ // call `onBlur` passed as text `field` option
31
+ field.onBlur?.(event);
32
+ // call machine blur handler
33
+ handleBlur({ name, value: values[name] });
34
+ };
35
+ const onChangeText = (value) => {
36
+ // call `onChangeText` passed as text `field` option
37
+ field.onChangeText?.(value);
38
+ // call machine change handler
39
+ handleChange({ name, value });
40
+ setValues({ ...values, [name]: value });
41
+ };
42
+ return {
43
+ ...rest,
44
+ label: labelHidden ? undefined : label,
45
+ onBlur,
46
+ onChangeText,
47
+ name,
48
+ value: values[name],
49
+ };
50
+ });
51
+ const disableFormSubmit = isRadioFieldComponent
52
+ ? !values.unverifiedAttr
53
+ : fieldsWithHandlers.some(({ required, value }) => {
54
+ if (!required) {
55
+ return false;
56
+ }
57
+ if (value) {
58
+ return false;
59
+ }
60
+ return true;
61
+ });
62
+ const handleFormSubmit = () => {
63
+ const submitValue = isRadioFieldComponent
64
+ ? values
65
+ : fieldsWithHandlers.reduce((acc, { name, value, type }) => {
66
+ /*
67
+ For phone numbers pass the first 3 charactes from value as dialCode until we support a dialCode picker
68
+ */
69
+ return type === 'phone'
70
+ ? {
71
+ ...acc,
72
+ country_code: value?.substring(0, 3),
73
+ [name]: value?.substring(3, value.length),
74
+ }
75
+ : { ...acc, [name]: value };
76
+ }, {});
77
+ handleSubmit?.(submitValue);
78
+ };
79
+ return { fields: fieldsWithHandlers, disableFormSubmit, handleFormSubmit };
80
+ }
@@ -0,0 +1,18 @@
1
+ import { AuthenticatorLegacyField, AuthenticatorRouteComponentName, UseAuthenticator } from '@aws-amplify/ui-react-core';
2
+ import { RadioFieldOptions, TypedField } from '../types';
3
+ export declare const isRadioFieldOptions: (field: TypedField) => field is RadioFieldOptions;
4
+ export declare const getSanitizedRadioFields: (fields: TypedField[], componentName: AuthenticatorRouteComponentName) => TypedField[];
5
+ export declare const getSanitizedTextFields: (fields: TypedField[], componentName: AuthenticatorRouteComponentName) => TypedField[];
6
+ /**
7
+ * Translate machine fields to typed fields
8
+ *
9
+ * @param {AuthenticatorLegacyField} field machine field option object
10
+ * @returns {TypedField} UI field props object
11
+ */
12
+ export declare const getTypedField: ({ type: machineFieldType, name, ...field }: AuthenticatorLegacyField) => TypedField;
13
+ /**
14
+ * @param {AuthenticatorLegacyField[]} fields machine field options array
15
+ * @returns {TypedField[]} UI field props array
16
+ */
17
+ export declare const getTypedFields: (fields: AuthenticatorLegacyField[]) => TypedField[];
18
+ export declare function getRouteTypedFields({ fields, route, }: Pick<UseAuthenticator, 'fields' | 'route'>): TypedField[];
@@ -0,0 +1,98 @@
1
+ import { Logger } from 'aws-amplify';
2
+ import { isUnverifiedContactMethodType, UnverifiedContactMethodType, } from '@aws-amplify/ui';
3
+ import { isAuthenticatorComponentRouteKey, } from '@aws-amplify/ui-react-core';
4
+ import { KEY_ALLOW_LIST } from './constants';
5
+ const logger = new Logger('Authenticator');
6
+ export const isRadioFieldOptions = (field) => field?.type === 'radio';
7
+ export const getSanitizedRadioFields = (fields, componentName) => {
8
+ const values = {};
9
+ return fields.filter((field) => {
10
+ if (!isRadioFieldOptions(field)) {
11
+ logger.warn(`${componentName} component does not support text fields. field with type ${field.type} has been ignored.`);
12
+ return false;
13
+ }
14
+ const { name, value } = field;
15
+ if (!value) {
16
+ logger.warn('Each radio field must have a value. field has been ignored.');
17
+ return false;
18
+ }
19
+ if (values[value]) {
20
+ logger.warn(`Each radio field value must be unique. field with duplicate value of ${value} has been ignored.`);
21
+ return false;
22
+ }
23
+ if (!isUnverifiedContactMethodType(name)) {
24
+ logger.warn(`field with name '${name}' has been ignored. Supported values are: ${Object.values(UnverifiedContactMethodType)}.`);
25
+ return false;
26
+ }
27
+ // add `value` key to `values`
28
+ values[value] = true;
29
+ return true;
30
+ });
31
+ };
32
+ export const getSanitizedTextFields = (fields, componentName) => {
33
+ const names = {};
34
+ return fields.filter((field) => {
35
+ if (isRadioFieldOptions(field)) {
36
+ logger.warn(`${componentName} component does not support radio fields. field has been ignored.`);
37
+ return false;
38
+ }
39
+ const { name } = field;
40
+ if (!name) {
41
+ logger.warn('Each field must have a name. field has been ignored.');
42
+ return false;
43
+ }
44
+ if (names[name]) {
45
+ logger.warn(`Each field name must be unique. field with duplicate name of ${name} has been ignored.`);
46
+ return false;
47
+ }
48
+ names[name] = true;
49
+ return true;
50
+ });
51
+ };
52
+ // typed fields utils
53
+ const isKeyAllowed = (key) => KEY_ALLOW_LIST.some((allowedKey) => allowedKey === key);
54
+ const isValidMachineFieldType = (type) => type === 'password' || type === 'tel';
55
+ const getFieldType = (type) => {
56
+ if (isValidMachineFieldType(type)) {
57
+ return type === 'tel' ? 'phone' : type;
58
+ }
59
+ return 'default';
60
+ };
61
+ /**
62
+ * Translate machine fields to typed fields
63
+ *
64
+ * @param {AuthenticatorLegacyField} field machine field option object
65
+ * @returns {TypedField} UI field props object
66
+ */
67
+ export const getTypedField = ({ type: machineFieldType, name, ...field }) => {
68
+ const type = getFieldType(machineFieldType);
69
+ return Object.entries(field).reduce((acc, [key, value]) => {
70
+ // early return if key is not allowed
71
+ if (!isKeyAllowed(key)) {
72
+ return acc;
73
+ }
74
+ // map to `required` prop
75
+ if (key === 'isRequired' || key === 'required') {
76
+ // `TypedField` props expects `required` key
77
+ return { ...acc, required: value };
78
+ }
79
+ return { ...acc, [key]: value };
80
+ },
81
+ // initialize `acc` with field `name` and `type`
82
+ { name, type });
83
+ };
84
+ /**
85
+ * @param {AuthenticatorLegacyField[]} fields machine field options array
86
+ * @returns {TypedField[]} UI field props array
87
+ */
88
+ export const getTypedFields = (fields) => fields?.map(getTypedField);
89
+ export function getRouteTypedFields({ fields, route, }) {
90
+ const isComponentRoute = isAuthenticatorComponentRouteKey(route);
91
+ if (!isComponentRoute) {
92
+ return [];
93
+ }
94
+ // `VerifyUser` does not require additional updates to the shape of `fields`
95
+ const isVerifyUserRoute = route === 'verifyUser';
96
+ const radioFields = fields;
97
+ return isVerifyUserRoute ? radioFields : getTypedFields(fields);
98
+ }
@@ -0,0 +1,4 @@
1
+ export { default as Authenticator } from './Authenticator';
2
+ export { AuthenticatorProps, WithAuthenticatorOptions } from './types';
3
+ export { default as withAuthenticator } from './withAuthenticator';
4
+ export { useAuthenticator, UseAuthenticator } from '@aws-amplify/ui-react-core';
@@ -0,0 +1,4 @@
1
+ export { default as Authenticator } from './Authenticator';
2
+ export { default as withAuthenticator } from './withAuthenticator';
3
+ // re-export shared `Authenticator` exports
4
+ export { useAuthenticator } from '@aws-amplify/ui-react-core';
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { AuthenticatorMachineOptions } from '@aws-amplify/ui';
3
+ import { DefaultContainerComponent } from './common';
4
+ import { Components } from './Defaults';
5
+ declare type SupportedAuthenticatorMachineOptions = Omit<AuthenticatorMachineOptions, 'socialProviders' | 'formFields'>;
6
+ export interface AuthenticatorProps extends SupportedAuthenticatorMachineOptions {
7
+ children?: React.ReactNode;
8
+ Container?: DefaultContainerComponent;
9
+ Footer?: React.ComponentType;
10
+ Header?: React.ComponentType;
11
+ components?: Components;
12
+ }
13
+ export declare type WithAuthenticatorOptions = Omit<AuthenticatorProps, 'children'>;
14
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { WithAuthenticatorOptions } from './types';
3
+ export default function withAuthenticator<Props = {}>(Component: React.ComponentType<Props>, options?: WithAuthenticatorOptions): (props: Props) => JSX.Element;
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import Authenticator from './Authenticator';
3
+ export default function withAuthenticator(Component, options = {}) {
4
+ return function WrappedWithAuthenticator(props) {
5
+ return (<Authenticator.Provider>
6
+ <Authenticator {...options}>
7
+ <Component {...props}/>
8
+ </Authenticator>
9
+ </Authenticator.Provider>);
10
+ };
11
+ }
@@ -1,2 +1,3 @@
1
+ /// <reference types="react" />
1
2
  import { BannerMessageProps } from './types';
2
3
  export default function BannerMessage({ position, ...props }: BannerMessageProps): JSX.Element | null;
@@ -1,2 +1,3 @@
1
+ /// <reference types="react" />
1
2
  import { CarouselMessageProps } from './types';
2
3
  export default function CarouselMessage(props: CarouselMessageProps): JSX.Element;
@@ -1,2 +1,3 @@
1
+ /// <reference types="react" />
1
2
  import { CarouselMessageItemProps } from './types';
2
3
  export default function CarouselMessageItem(props: CarouselMessageItemProps): JSX.Element | null;
@@ -1,2 +1,3 @@
1
+ /// <reference types="react" />
1
2
  import { FullScreenMessageProps } from './types';
2
3
  export default function FullScreenMessage(props: FullScreenMessageProps): JSX.Element | null;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { InAppMessageDisplayProps } from './types';
2
3
  declare function InAppMessageDisplay({ components: overrideComponents, }: InAppMessageDisplayProps): JSX.Element | null;
3
4
  declare namespace InAppMessageDisplay {
@@ -1,2 +1,3 @@
1
+ /// <reference types="react" />
1
2
  import { LayoutProps } from './types';
2
3
  export default function MessageLayout({ orientation, ...props }: LayoutProps): JSX.Element;
@@ -1,2 +1,3 @@
1
+ /// <reference types="react" />
1
2
  import { MessageWrapperProps } from './types';
2
3
  export default function MessageWrapper({ children, disableSafeAreaView, style, }: MessageWrapperProps): JSX.Element;