@aws-amplify/ui-react 5.3.2 → 6.0.1

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 (478) hide show
  1. package/dist/Field-6c0e096a.js +1174 -0
  2. package/dist/esm/PrimitiveCatalog.mjs +16255 -1
  3. package/dist/esm/components/AccountSettings/AccountSettings.mjs +6 -1
  4. package/dist/esm/components/AccountSettings/ChangePassword/ChangePassword.mjs +209 -1
  5. package/dist/esm/components/AccountSettings/ChangePassword/defaults.mjs +77 -1
  6. package/dist/esm/components/AccountSettings/DeleteUser/DeleteUser.mjs +156 -1
  7. package/dist/esm/components/AccountSettings/DeleteUser/defaults.mjs +85 -1
  8. package/dist/esm/components/AccountSettings/constants.mjs +7 -1
  9. package/dist/esm/components/AccountSettings/shared/Defaults.mjs +66 -1
  10. package/dist/esm/components/AccountSettings/utils/displayText.mjs +14 -0
  11. package/dist/esm/components/Authenticator/Authenticator.mjs +74 -1
  12. package/dist/esm/components/Authenticator/ConfirmSignIn/ConfirmSignIn.mjs +42 -1
  13. package/dist/esm/components/Authenticator/ConfirmSignUp/ConfirmSignUp.mjs +51 -1
  14. package/dist/esm/components/Authenticator/FederatedSignIn/FederatedSignIn.mjs +34 -1
  15. package/dist/esm/components/Authenticator/FederatedSignIn/FederatedSignInButtons/FederatedSignInButton.mjs +54 -1
  16. package/dist/esm/components/Authenticator/ForceNewPassword/ForceNewPassword.mjs +43 -1
  17. package/dist/esm/components/Authenticator/ForgotPassword/ConfirmResetPassword.mjs +39 -0
  18. package/dist/esm/components/Authenticator/ForgotPassword/ForgotPassword.mjs +40 -0
  19. package/dist/esm/components/Authenticator/RouteContainer/RouteContainer.mjs +26 -1
  20. package/dist/esm/components/Authenticator/Router/Router.mjs +63 -1
  21. package/dist/esm/components/Authenticator/SetupTotp/SetupTotp.mjs +76 -0
  22. package/dist/esm/components/Authenticator/SignIn/SignIn.mjs +47 -1
  23. package/dist/esm/components/Authenticator/SignUp/SignUp.mjs +46 -1
  24. package/dist/esm/components/Authenticator/VerifyUser/ConfirmVerifyUser.mjs +37 -1
  25. package/dist/esm/components/Authenticator/VerifyUser/VerifyUser.mjs +59 -1
  26. package/dist/esm/components/Authenticator/hooks/useCustomComponents/defaultComponents.mjs +62 -1
  27. package/dist/esm/components/Authenticator/hooks/useCustomComponents/useCustomComponents.mjs +14 -1
  28. package/dist/esm/components/Authenticator/hooks/useFormHandlers/useFormHandlers.mjs +30 -1
  29. package/dist/esm/components/Authenticator/shared/ConfirmSignInFooter.mjs +18 -1
  30. package/dist/esm/components/Authenticator/shared/FormField.mjs +35 -1
  31. package/dist/esm/components/Authenticator/shared/FormFields.mjs +15 -1
  32. package/dist/esm/components/Authenticator/shared/RemoteErrorMessage.mjs +11 -1
  33. package/dist/esm/components/Authenticator/shared/SignInSignUpTabs.mjs +27 -1
  34. package/dist/esm/components/Authenticator/shared/TwoButtonSubmitFooter.mjs +35 -1
  35. package/dist/esm/components/Authenticator/utils.mjs +3 -1
  36. package/dist/esm/components/Authenticator/withAuthenticator.mjs +14 -1
  37. package/dist/esm/components/ThemeProvider/ThemeContext.mjs +8 -0
  38. package/dist/esm/components/ThemeProvider/ThemeProvider.mjs +23 -1
  39. package/dist/esm/components/index.mjs +5 -1
  40. package/dist/esm/components/shared/ValidationErrors.mjs +15 -1
  41. package/dist/esm/helpers/utils.mjs +6 -1
  42. package/dist/esm/hooks/useAuth.mjs +73 -1
  43. package/dist/esm/hooks/useBreakpointValue.mjs +29 -1
  44. package/dist/esm/hooks/useComposeRefsCallback.mjs +20 -1
  45. package/dist/esm/hooks/useDeprecationWarning.mjs +15 -1
  46. package/dist/esm/hooks/useStorageURL.mjs +40 -1
  47. package/dist/esm/hooks/useTheme.mjs +23 -1
  48. package/dist/esm/hooks/useThemeBreakpoint.mjs +19 -1
  49. package/dist/esm/index.mjs +71 -1
  50. package/dist/esm/internal.mjs +32 -1
  51. package/dist/esm/primitives/Accordion/Accordion.mjs +28 -0
  52. package/dist/esm/primitives/Accordion/AccordionContainer.mjs +49 -0
  53. package/dist/esm/primitives/Accordion/AccordionContent.mjs +15 -0
  54. package/dist/esm/primitives/Accordion/AccordionContext.mjs +6 -0
  55. package/dist/esm/primitives/Accordion/AccordionIcon.mjs +20 -0
  56. package/dist/esm/primitives/Accordion/AccordionItem.mjs +19 -0
  57. package/dist/esm/primitives/Accordion/AccordionTrigger.mjs +27 -0
  58. package/dist/esm/primitives/Alert/Alert.mjs +36 -1
  59. package/dist/esm/primitives/Alert/AlertIcon.mjs +36 -1
  60. package/dist/esm/primitives/Autocomplete/Autocomplete.mjs +67 -1
  61. package/dist/esm/primitives/Autocomplete/AutocompleteMenu.mjs +36 -1
  62. package/dist/esm/primitives/Autocomplete/AutocompleteOption.mjs +12 -1
  63. package/dist/esm/primitives/Autocomplete/useAutocomplete.mjs +188 -1
  64. package/dist/esm/primitives/Badge/Badge.mjs +16 -1
  65. package/dist/esm/primitives/Breadcrumbs/BreadcrumbContainer.mjs +18 -1
  66. package/dist/esm/primitives/Breadcrumbs/BreadcrumbItem.mjs +16 -1
  67. package/dist/esm/primitives/Breadcrumbs/BreadcrumbLink.mjs +24 -1
  68. package/dist/esm/primitives/Breadcrumbs/BreadcrumbSeparator.mjs +16 -1
  69. package/dist/esm/primitives/Breadcrumbs/Breadcrumbs.mjs +28 -1
  70. package/dist/esm/primitives/Button/Button.mjs +33 -1
  71. package/dist/esm/primitives/ButtonGroup/ButtonGroup.mjs +19 -1
  72. package/dist/esm/primitives/Card/Card.mjs +15 -1
  73. package/dist/esm/primitives/Checkbox/Checkbox.mjs +84 -1
  74. package/dist/esm/primitives/CheckboxField/CheckboxField.mjs +24 -1
  75. package/dist/esm/primitives/Collection/Collection.mjs +58 -1
  76. package/dist/esm/primitives/Collection/utils.mjs +30 -1
  77. package/dist/esm/primitives/Divider/Divider.mjs +16 -1
  78. package/dist/esm/primitives/DropZone/DropZone.mjs +27 -1
  79. package/dist/esm/primitives/DropZone/DropZoneChildren.mjs +39 -1
  80. package/dist/esm/primitives/DropZone/DropZoneContainer.mjs +18 -1
  81. package/dist/esm/primitives/DropZone/DropZoneProvider.mjs +8 -1
  82. package/dist/esm/primitives/DropZone/filterAllowedFiles.mjs +34 -1
  83. package/dist/esm/primitives/DropZone/useDropZone.mjs +65 -1
  84. package/dist/esm/primitives/Field/Field.mjs +20 -1
  85. package/dist/esm/primitives/Field/FieldClearButton.mjs +21 -1
  86. package/dist/esm/primitives/Field/FieldDescription.mjs +11 -1
  87. package/dist/esm/primitives/Field/FieldErrorMessage.mjs +10 -1
  88. package/dist/esm/primitives/FieldGroup/FieldGroup.mjs +29 -1
  89. package/dist/esm/primitives/FieldGroupIcon/FieldGroupIcon.mjs +12 -1
  90. package/dist/esm/primitives/FieldGroupIcon/FieldGroupIconButton.mjs +11 -1
  91. package/dist/esm/primitives/Fieldset/Fieldset.mjs +33 -1
  92. package/dist/esm/primitives/Fieldset/useFieldset.mjs +13 -1
  93. package/dist/esm/primitives/Flex/Flex.mjs +13 -1
  94. package/dist/esm/primitives/Grid/Grid.mjs +13 -1
  95. package/dist/esm/primitives/Heading/Heading.mjs +21 -1
  96. package/dist/esm/primitives/HighlightMatch/HighlightMatch.mjs +28 -1
  97. package/dist/esm/primitives/Icon/Icon.mjs +36 -1
  98. package/dist/esm/primitives/Icon/context/IconsContext.mjs +5 -1
  99. package/dist/esm/primitives/Icon/context/IconsProvider.mjs +8 -1
  100. package/dist/esm/primitives/Icon/context/useIcons.mjs +12 -1
  101. package/dist/esm/primitives/Icon/icons/IconAdd.mjs +15 -1
  102. package/dist/esm/primitives/Icon/icons/IconCheck.mjs +15 -1
  103. package/dist/esm/primitives/Icon/icons/IconCheckCircle.mjs +15 -1
  104. package/dist/esm/primitives/Icon/icons/IconCheckCircleOutline.mjs +13 -1
  105. package/dist/esm/primitives/Icon/icons/IconChevronLeft.mjs +15 -1
  106. package/dist/esm/primitives/Icon/icons/IconChevronRight.mjs +15 -1
  107. package/dist/esm/primitives/Icon/icons/IconClose.mjs +15 -1
  108. package/dist/esm/primitives/Icon/icons/IconEdit.mjs +15 -1
  109. package/dist/esm/primitives/Icon/icons/IconError.mjs +15 -1
  110. package/dist/esm/primitives/Icon/icons/IconExpandMore.mjs +15 -1
  111. package/dist/esm/primitives/Icon/icons/IconFile.mjs +15 -1
  112. package/dist/esm/primitives/Icon/icons/IconIndeterminate.mjs +15 -1
  113. package/dist/esm/primitives/Icon/icons/IconInfo.mjs +15 -1
  114. package/dist/esm/primitives/Icon/icons/IconMenu.mjs +15 -1
  115. package/dist/esm/primitives/Icon/icons/IconRemove.mjs +15 -1
  116. package/dist/esm/primitives/Icon/icons/IconSearch.mjs +15 -1
  117. package/dist/esm/primitives/Icon/icons/IconStar.mjs +15 -1
  118. package/dist/esm/primitives/Icon/icons/IconUpload.mjs +15 -1
  119. package/dist/esm/primitives/Icon/icons/IconVisibility.mjs +15 -1
  120. package/dist/esm/primitives/Icon/icons/IconVisibilityOff.mjs +15 -1
  121. package/dist/esm/primitives/Icon/icons/IconWarning.mjs +15 -1
  122. package/dist/esm/primitives/Image/Image.mjs +13 -1
  123. package/dist/esm/primitives/Input/Input.mjs +15 -1
  124. package/dist/esm/primitives/Label/Label.mjs +14 -1
  125. package/dist/esm/primitives/Link/Link.mjs +15 -1
  126. package/dist/esm/primitives/Loader/Loader.mjs +56 -1
  127. package/dist/esm/primitives/Menu/Menu.mjs +31 -1
  128. package/dist/esm/primitives/Menu/MenuButton.mjs +18 -1
  129. package/dist/esm/primitives/Menu/MenuItem.mjs +22 -1
  130. package/dist/esm/primitives/Message/Message.mjs +23 -1
  131. package/dist/esm/primitives/Message/MessageContainer.mjs +19 -1
  132. package/dist/esm/primitives/Message/MessageContent.mjs +12 -1
  133. package/dist/esm/primitives/Message/MessageDismiss.mjs +28 -1
  134. package/dist/esm/primitives/Message/MessageHeading.mjs +12 -1
  135. package/dist/esm/primitives/Message/MessageIcon.mjs +35 -1
  136. package/dist/esm/primitives/Message/useMessage.mjs +9 -1
  137. package/dist/esm/primitives/Pagination/Pagination.mjs +31 -1
  138. package/dist/esm/primitives/Pagination/PaginationItem.mjs +48 -1
  139. package/dist/esm/primitives/Pagination/usePagination.mjs +41 -1
  140. package/dist/esm/primitives/Pagination/usePaginationItems.mjs +39 -1
  141. package/dist/esm/primitives/Pagination/useRange.mjs +72 -1
  142. package/dist/esm/primitives/PasswordField/PasswordField.mjs +25 -1
  143. package/dist/esm/primitives/PasswordField/ShowPasswordButton.mjs +30 -1
  144. package/dist/esm/primitives/PhoneNumberField/DialCodeSelect.mjs +21 -0
  145. package/dist/esm/primitives/PhoneNumberField/PhoneNumberField.mjs +17 -1
  146. package/dist/esm/primitives/Placeholder/Placeholder.mjs +18 -1
  147. package/dist/esm/primitives/Radio/Radio.mjs +31 -1
  148. package/dist/esm/primitives/RadioGroupField/RadioGroupField.mjs +55 -1
  149. package/dist/esm/primitives/RadioGroupField/context.mjs +9 -1
  150. package/dist/esm/primitives/Rating/Rating.mjs +44 -1
  151. package/dist/esm/primitives/Rating/RatingIcon.mjs +11 -1
  152. package/dist/esm/primitives/Rating/RatingMixedIcon.mjs +13 -1
  153. package/dist/esm/primitives/Rating/utils.mjs +18 -1
  154. package/dist/esm/primitives/ScrollView/ScrollView.mjs +13 -1
  155. package/dist/esm/primitives/SearchField/SearchField.mjs +38 -1
  156. package/dist/esm/primitives/SearchField/SearchFieldButton.mjs +21 -1
  157. package/dist/esm/primitives/SearchField/useSearchField.mjs +64 -1
  158. package/dist/esm/primitives/Select/Select.mjs +31 -1
  159. package/dist/esm/primitives/SelectField/SelectField.mjs +42 -1
  160. package/dist/esm/primitives/SliderField/SliderField.mjs +77 -1
  161. package/dist/esm/primitives/StepperField/StepperField.mjs +60 -1
  162. package/dist/esm/primitives/StepperField/useStepper.mjs +113 -1
  163. package/dist/esm/primitives/SwitchField/SwitchField.mjs +48 -1
  164. package/dist/esm/primitives/SwitchField/useSwitch.mjs +30 -1
  165. package/dist/esm/primitives/Table/Table.mjs +18 -1
  166. package/dist/esm/primitives/Table/TableBody.mjs +10 -1
  167. package/dist/esm/primitives/Table/TableCell.mjs +12 -1
  168. package/dist/esm/primitives/Table/TableFoot.mjs +10 -1
  169. package/dist/esm/primitives/Table/TableHead.mjs +10 -1
  170. package/dist/esm/primitives/Table/TableRow.mjs +10 -1
  171. package/dist/esm/primitives/Tabs/Tabs.mjs +24 -1
  172. package/dist/esm/primitives/Tabs/TabsContainer.mjs +35 -0
  173. package/dist/esm/primitives/Tabs/TabsContext.mjs +8 -0
  174. package/dist/esm/primitives/Tabs/TabsItem.mjs +24 -0
  175. package/dist/esm/primitives/Tabs/TabsList.mjs +85 -0
  176. package/dist/esm/primitives/Tabs/TabsPanel.mjs +19 -0
  177. package/dist/esm/primitives/Text/Text.mjs +16 -1
  178. package/dist/esm/primitives/TextArea/TextArea.mjs +15 -1
  179. package/dist/esm/primitives/TextAreaField/TextAreaField.mjs +36 -1
  180. package/dist/esm/primitives/TextField/TextField.mjs +34 -1
  181. package/dist/esm/primitives/ToggleButton/ToggleButton.mjs +24 -1
  182. package/dist/esm/primitives/ToggleButton/useToggleButton.mjs +23 -1
  183. package/dist/esm/primitives/ToggleButtonGroup/ToggleButtonGroup.mjs +35 -1
  184. package/dist/esm/primitives/ToggleButtonGroup/useToggleButtonGroup.mjs +36 -1
  185. package/dist/esm/primitives/View/View.mjs +23 -1
  186. package/dist/esm/primitives/VisuallyHidden/VisuallyHidden.mjs +13 -1
  187. package/dist/esm/primitives/index.mjs +63 -1
  188. package/dist/esm/primitives/shared/constants.mjs +98 -1
  189. package/dist/esm/primitives/shared/getStyleValue.mjs +25 -1
  190. package/dist/esm/primitives/shared/responsive/getMediaQueries.mjs +29 -1
  191. package/dist/esm/primitives/shared/responsive/useBreakpoint.mjs +39 -1
  192. package/dist/esm/primitives/shared/responsive/utils.mjs +51 -1
  193. package/dist/esm/primitives/shared/styleUtils.mjs +122 -1
  194. package/dist/esm/primitives/shared/utils.mjs +60 -1
  195. package/dist/esm/primitives/types/style.mjs +104 -1
  196. package/dist/esm/primitives/types/theme.mjs +7 -1
  197. package/dist/esm/primitives/utils/getTestId.mjs +3 -1
  198. package/dist/esm/primitives/utils/primitiveWithForwardRef.mjs +14 -0
  199. package/dist/esm/primitives/utils/splitPrimitiveProps.mjs +36 -1
  200. package/dist/esm/primitives/utils/useLayoutEffect.mjs +13 -1
  201. package/dist/esm/primitives/utils/useStableId.mjs +34 -1
  202. package/dist/esm/version.mjs +3 -1
  203. package/dist/index.js +3485 -1
  204. package/dist/internal.js +16403 -1
  205. package/dist/styles/StorageManager.css +138 -0
  206. package/dist/styles/StorageManager.layer.css +140 -0
  207. package/dist/styles/_fieldControl.css +0 -0
  208. package/dist/styles/_fieldControl.layer.css +3 -0
  209. package/dist/styles/accordion.css +64 -0
  210. package/dist/styles/accordion.layer.css +66 -0
  211. package/dist/styles/alert.css +44 -0
  212. package/dist/styles/alert.layer.css +46 -0
  213. package/dist/styles/authenticator.css +72 -0
  214. package/dist/styles/authenticator.layer.css +74 -0
  215. package/dist/styles/autocomplete.css +48 -0
  216. package/dist/styles/autocomplete.layer.css +50 -0
  217. package/dist/styles/badge.css +35 -0
  218. package/dist/styles/badge.layer.css +37 -0
  219. package/dist/styles/base.css +1491 -0
  220. package/dist/styles/base.layer.css +1493 -0
  221. package/dist/styles/breadcrumbs.css +40 -0
  222. package/dist/styles/breadcrumbs.layer.css +42 -0
  223. package/dist/styles/button.css +1122 -0
  224. package/dist/styles/button.layer.css +1124 -0
  225. package/dist/styles/card.css +26 -0
  226. package/dist/styles/card.layer.css +28 -0
  227. package/dist/styles/checkbox.css +95 -0
  228. package/dist/styles/checkbox.layer.css +97 -0
  229. package/dist/styles/checkboxField.css +6 -0
  230. package/dist/styles/checkboxField.layer.css +8 -0
  231. package/dist/styles/collection.css +70 -0
  232. package/dist/styles/collection.layer.css +72 -0
  233. package/dist/styles/copy.css +27 -0
  234. package/dist/styles/copy.layer.css +29 -0
  235. package/dist/styles/dialCodeSelect.css +3 -0
  236. package/dist/styles/dialCodeSelect.layer.css +5 -0
  237. package/dist/styles/divider.css +47 -0
  238. package/dist/styles/divider.layer.css +49 -0
  239. package/dist/styles/dropZone.css +45 -0
  240. package/dist/styles/dropZone.layer.css +47 -0
  241. package/dist/styles/field.css +17 -0
  242. package/dist/styles/field.layer.css +19 -0
  243. package/dist/styles/fieldGroup.css +130 -0
  244. package/dist/styles/fieldGroup.layer.css +132 -0
  245. package/dist/styles/fieldMessages.css +10 -0
  246. package/dist/styles/fieldMessages.layer.css +12 -0
  247. package/dist/styles/fieldModifiers.css +15 -0
  248. package/dist/styles/fieldModifiers.layer.css +17 -0
  249. package/dist/styles/fieldset.css +37 -0
  250. package/dist/styles/fieldset.layer.css +39 -0
  251. package/dist/styles/flex.css +8 -0
  252. package/dist/styles/flex.layer.css +10 -0
  253. package/dist/styles/grid.css +3 -0
  254. package/dist/styles/grid.layer.css +5 -0
  255. package/dist/styles/heading.css +40 -0
  256. package/dist/styles/heading.layer.css +42 -0
  257. package/dist/styles/highlightMatch.css +3 -0
  258. package/dist/styles/highlightMatch.layer.css +5 -0
  259. package/dist/styles/icon.css +14 -0
  260. package/dist/styles/icon.layer.css +16 -0
  261. package/dist/styles/image.css +9 -0
  262. package/dist/styles/image.layer.css +11 -0
  263. package/dist/styles/inAppMessaging.css +179 -0
  264. package/dist/styles/inAppMessaging.layer.css +181 -0
  265. package/dist/styles/input.css +83 -0
  266. package/dist/styles/input.layer.css +85 -0
  267. package/dist/styles/link.css +26 -0
  268. package/dist/styles/link.layer.css +28 -0
  269. package/dist/styles/liveness.css +374 -0
  270. package/dist/styles/liveness.layer.css +376 -0
  271. package/dist/styles/loader.css +108 -0
  272. package/dist/styles/loader.layer.css +110 -0
  273. package/dist/styles/menu.css +54 -0
  274. package/dist/styles/menu.layer.css +56 -0
  275. package/dist/styles/message.css +111 -0
  276. package/dist/styles/message.layer.css +113 -0
  277. package/dist/styles/pagination.css +41 -0
  278. package/dist/styles/pagination.layer.css +43 -0
  279. package/dist/styles/passwordField.css +49 -0
  280. package/dist/styles/passwordField.layer.css +51 -0
  281. package/dist/styles/phoneNumberField.css +30 -0
  282. package/dist/styles/phoneNumberField.layer.css +32 -0
  283. package/dist/styles/placeholder.css +31 -0
  284. package/dist/styles/placeholder.layer.css +33 -0
  285. package/dist/styles/radio.css +82 -0
  286. package/dist/styles/radio.layer.css +84 -0
  287. package/dist/styles/radioGroupField.css +25 -0
  288. package/dist/styles/radioGroupField.layer.css +27 -0
  289. package/dist/styles/radiogroup.css +5 -0
  290. package/dist/styles/radiogroup.layer.css +7 -0
  291. package/dist/styles/rating.css +33 -0
  292. package/dist/styles/rating.layer.css +35 -0
  293. package/dist/styles/reset.css +76 -0
  294. package/dist/styles/reset.layer.css +78 -0
  295. package/dist/styles/scrollView.css +4 -0
  296. package/dist/styles/scrollView.layer.css +6 -0
  297. package/dist/styles/searchField.css +29 -0
  298. package/dist/styles/searchField.layer.css +31 -0
  299. package/dist/styles/select.css +128 -0
  300. package/dist/styles/select.layer.css +130 -0
  301. package/dist/styles/selectField.css +18 -0
  302. package/dist/styles/selectField.layer.css +20 -0
  303. package/dist/styles/sliderField.css +143 -0
  304. package/dist/styles/sliderField.layer.css +145 -0
  305. package/dist/styles/stepperField.css +77 -0
  306. package/dist/styles/stepperField.layer.css +79 -0
  307. package/dist/styles/switchField.css +76 -0
  308. package/dist/styles/switchField.layer.css +78 -0
  309. package/dist/styles/table.css +146 -0
  310. package/dist/styles/table.layer.css +148 -0
  311. package/dist/styles/tabs.css +87 -0
  312. package/dist/styles/tabs.layer.css +89 -0
  313. package/dist/styles/text.css +40 -0
  314. package/dist/styles/text.layer.css +42 -0
  315. package/dist/styles/textArea.css +71 -0
  316. package/dist/styles/textArea.layer.css +73 -0
  317. package/dist/styles/textAreaField.css +12 -0
  318. package/dist/styles/textAreaField.layer.css +14 -0
  319. package/dist/styles/textField.css +14 -0
  320. package/dist/styles/textField.layer.css +16 -0
  321. package/dist/styles/toggleButton.css +280 -0
  322. package/dist/styles/toggleButton.layer.css +282 -0
  323. package/dist/styles/toggleButtonGroup.css +31 -0
  324. package/dist/styles/toggleButtonGroup.layer.css +33 -0
  325. package/dist/styles/visuallyHidden.css +12 -0
  326. package/dist/styles/visuallyHidden.layer.css +14 -0
  327. package/dist/styles.css +299 -685
  328. package/dist/styles.layer.css +6115 -0
  329. package/dist/types/components/AccountSettings/ChangePassword/ChangePassword.d.ts +6 -6
  330. package/dist/types/components/AccountSettings/ChangePassword/types.d.ts +3 -0
  331. package/dist/types/components/AccountSettings/DeleteUser/DeleteUser.d.ts +3 -3
  332. package/dist/types/components/AccountSettings/DeleteUser/types.d.ts +7 -2
  333. package/dist/types/components/AccountSettings/utils/displayText.d.ts +18 -0
  334. package/dist/types/components/AccountSettings/utils/index.d.ts +1 -0
  335. package/dist/types/components/Authenticator/Authenticator.d.ts +5 -4
  336. package/dist/types/components/Authenticator/ConfirmSignIn/ConfirmSignIn.d.ts +2 -2
  337. package/dist/types/components/Authenticator/ConfirmSignUp/ConfirmSignUp.d.ts +2 -2
  338. package/dist/types/components/Authenticator/{ResetPassword/ResetPassword.d.ts → ForgotPassword/ForgotPassword.d.ts} +1 -1
  339. package/dist/types/components/Authenticator/{ResetPassword → ForgotPassword}/index.d.ts +1 -1
  340. package/dist/types/components/Authenticator/{SetupTOTP/SetupTOTP.d.ts → SetupTotp/SetupTotp.d.ts} +1 -1
  341. package/dist/types/components/Authenticator/SetupTotp/index.d.ts +1 -0
  342. package/dist/types/components/Authenticator/SignIn/SignIn.d.ts +2 -2
  343. package/dist/types/components/Authenticator/SignUp/SignUp.d.ts +2 -2
  344. package/dist/types/components/Authenticator/VerifyUser/ConfirmVerifyUser.d.ts +2 -2
  345. package/dist/types/components/Authenticator/hooks/useCustomComponents/defaultComponents.d.ts +2 -2
  346. package/dist/types/components/Authenticator/withAuthenticator.d.ts +2 -2
  347. package/dist/types/components/ThemeProvider/ThemeContext.d.ts +6 -0
  348. package/dist/types/components/ThemeProvider/ThemeProvider.d.ts +1 -2
  349. package/dist/types/components/ThemeProvider/index.d.ts +1 -1
  350. package/dist/types/components/index.d.ts +0 -1
  351. package/dist/types/hooks/index.d.ts +0 -1
  352. package/dist/types/hooks/useAuth.d.ts +2 -2
  353. package/dist/types/hooks/useStorageURL.d.ts +2 -6
  354. package/dist/types/hooks/useTheme.d.ts +2 -2
  355. package/dist/types/index.d.ts +1 -1
  356. package/dist/types/internal.d.ts +0 -12
  357. package/dist/types/primitives/Accordion/Accordion.d.ts +19 -0
  358. package/dist/types/primitives/Accordion/AccordionContainer.d.ts +8 -0
  359. package/dist/types/primitives/Accordion/AccordionContent.d.ts +9 -0
  360. package/dist/types/primitives/Accordion/AccordionContext.d.ts +9 -0
  361. package/dist/types/primitives/Accordion/AccordionIcon.d.ts +9 -0
  362. package/dist/types/primitives/Accordion/AccordionItem.d.ts +6 -0
  363. package/dist/types/primitives/Accordion/AccordionTrigger.d.ts +9 -0
  364. package/dist/types/primitives/Accordion/index.d.ts +2 -0
  365. package/dist/types/primitives/Accordion/types.d.ts +49 -0
  366. package/dist/types/primitives/Alert/AlertIcon.d.ts +5 -2
  367. package/dist/types/primitives/Breadcrumbs/BreadcrumbItem.d.ts +1 -1
  368. package/dist/types/primitives/DropZone/DropZoneChildren.d.ts +10 -3
  369. package/dist/types/primitives/Icon/context/IconsContext.d.ts +1 -1
  370. package/dist/types/primitives/PhoneNumberField/DialCodeSelect.d.ts +2 -0
  371. package/dist/types/primitives/StepperField/useStepper.d.ts +1 -1
  372. package/dist/types/primitives/Tabs/Tabs.d.ts +14 -3
  373. package/dist/types/primitives/Tabs/TabsContainer.d.ts +6 -0
  374. package/dist/types/primitives/Tabs/TabsContext.d.ts +7 -0
  375. package/dist/types/primitives/Tabs/TabsItem.d.ts +6 -0
  376. package/dist/types/primitives/Tabs/TabsList.d.ts +6 -0
  377. package/dist/types/primitives/Tabs/TabsPanel.d.ts +6 -0
  378. package/dist/types/primitives/Tabs/index.d.ts +2 -1
  379. package/dist/types/primitives/Tabs/types.d.ts +93 -0
  380. package/dist/types/primitives/components.d.ts +2 -2
  381. package/dist/types/primitives/index.d.ts +0 -1
  382. package/dist/types/primitives/shared/constants.d.ts +0 -6
  383. package/dist/types/primitives/shared/responsive/utils.d.ts +1 -1
  384. package/dist/types/primitives/shared/styleUtils.d.ts +2 -2
  385. package/dist/types/primitives/types/collection.d.ts +2 -2
  386. package/dist/types/primitives/types/fieldset.d.ts +1 -1
  387. package/dist/types/primitives/types/index.d.ts +0 -3
  388. package/dist/types/primitives/types/radioGroupField.d.ts +2 -1
  389. package/dist/types/primitives/types/view.d.ts +32 -2
  390. package/dist/types/primitives/utils/primitiveWithForwardRef.d.ts +11 -0
  391. package/dist/types/version.d.ts +1 -1
  392. package/package.json +13 -45
  393. package/dist/Field-94e428ed.js +0 -1
  394. package/dist/esm/components/Authenticator/ResetPassword/ConfirmResetPassword.mjs +0 -1
  395. package/dist/esm/components/Authenticator/ResetPassword/ResetPassword.mjs +0 -1
  396. package/dist/esm/components/Authenticator/SetupTOTP/SetupTOTP.mjs +0 -1
  397. package/dist/esm/components/Storage/FileUploader/FileUploader.mjs +0 -1
  398. package/dist/esm/components/Storage/FileUploader/UploadDropZone/UploadDropZone.mjs +0 -1
  399. package/dist/esm/components/Storage/FileUploader/UploadPreviewer/UploadPreviewer.mjs +0 -1
  400. package/dist/esm/components/Storage/FileUploader/UploadTracker/UploadMessage.mjs +0 -1
  401. package/dist/esm/components/Storage/FileUploader/UploadTracker/UploadTracker.mjs +0 -1
  402. package/dist/esm/components/Storage/FileUploader/hooks/useFileUploader/useFileUploader.mjs +0 -1
  403. package/dist/esm/components/Storage/FileUploader/types.mjs +0 -1
  404. package/dist/esm/components/ThemeProvider/AmplifyContext.mjs +0 -1
  405. package/dist/esm/helpers/constants.mjs +0 -1
  406. package/dist/esm/hooks/actions/constants.mjs +0 -1
  407. package/dist/esm/hooks/actions/shared/types.mjs +0 -1
  408. package/dist/esm/hooks/actions/shared/useTypeCastFields.mjs +0 -1
  409. package/dist/esm/hooks/actions/useAuthSignOutAction.mjs +0 -1
  410. package/dist/esm/hooks/actions/useDataStoreCreateAction.mjs +0 -1
  411. package/dist/esm/hooks/actions/useDataStoreDeleteAction.mjs +0 -1
  412. package/dist/esm/hooks/actions/useDataStoreUpdateAction.mjs +0 -1
  413. package/dist/esm/hooks/actions/useNavigateAction.mjs +0 -1
  414. package/dist/esm/hooks/actions/useStateMutationAction.mjs +0 -1
  415. package/dist/esm/hooks/useAmplify.mjs +0 -1
  416. package/dist/esm/hooks/useDataStore.mjs +0 -1
  417. package/dist/esm/primitives/Expander/Expander.mjs +0 -1
  418. package/dist/esm/primitives/Expander/ExpanderItem.mjs +0 -1
  419. package/dist/esm/primitives/PhoneNumberField/CountryCodeSelect.mjs +0 -1
  420. package/dist/esm/primitives/shared/datastore.mjs +0 -1
  421. package/dist/esm/studio/findChildOverrides.mjs +0 -1
  422. package/dist/esm/studio/getOverrideProps.mjs +0 -1
  423. package/dist/esm/studio/getOverridesFromVariants.mjs +0 -1
  424. package/dist/esm/studio/mergeVariantsAndOverrides.mjs +0 -1
  425. package/dist/styles.js +0 -2
  426. package/dist/types/components/Authenticator/SetupTOTP/index.d.ts +0 -1
  427. package/dist/types/components/Storage/FileUploader/FileUploader.d.ts +0 -3
  428. package/dist/types/components/Storage/FileUploader/UploadDropZone/UploadDropZone.d.ts +0 -3
  429. package/dist/types/components/Storage/FileUploader/UploadDropZone/index.d.ts +0 -1
  430. package/dist/types/components/Storage/FileUploader/UploadPreviewer/UploadPreviewer.d.ts +0 -3
  431. package/dist/types/components/Storage/FileUploader/UploadPreviewer/index.d.ts +0 -1
  432. package/dist/types/components/Storage/FileUploader/UploadTracker/UploadMessage.d.ts +0 -3
  433. package/dist/types/components/Storage/FileUploader/UploadTracker/UploadTracker.d.ts +0 -3
  434. package/dist/types/components/Storage/FileUploader/UploadTracker/index.d.ts +0 -1
  435. package/dist/types/components/Storage/FileUploader/hooks/index.d.ts +0 -1
  436. package/dist/types/components/Storage/FileUploader/hooks/useFileUploader/index.d.ts +0 -2
  437. package/dist/types/components/Storage/FileUploader/hooks/useFileUploader/types.d.ts +0 -18
  438. package/dist/types/components/Storage/FileUploader/hooks/useFileUploader/useFileUploader.d.ts +0 -9
  439. package/dist/types/components/Storage/FileUploader/index.d.ts +0 -1
  440. package/dist/types/components/Storage/FileUploader/types.d.ts +0 -91
  441. package/dist/types/components/Storage/index.d.ts +0 -1
  442. package/dist/types/components/ThemeProvider/AmplifyContext.d.ts +0 -6
  443. package/dist/types/hooks/actions/constants.d.ts +0 -39
  444. package/dist/types/hooks/actions/shared/types.d.ts +0 -27
  445. package/dist/types/hooks/actions/shared/useTypeCastFields.d.ts +0 -15
  446. package/dist/types/hooks/actions/testModels/model.d.ts +0 -25
  447. package/dist/types/hooks/actions/testModels/schema.d.ts +0 -2
  448. package/dist/types/hooks/actions/testModels/todo.d.ts +0 -13
  449. package/dist/types/hooks/actions/useAuthSignOutAction.d.ts +0 -9
  450. package/dist/types/hooks/actions/useDataStoreCreateAction.d.ts +0 -9
  451. package/dist/types/hooks/actions/useDataStoreDeleteAction.d.ts +0 -10
  452. package/dist/types/hooks/actions/useDataStoreUpdateAction.d.ts +0 -10
  453. package/dist/types/hooks/actions/useNavigateAction.d.ts +0 -15
  454. package/dist/types/hooks/actions/useStateMutationAction.d.ts +0 -10
  455. package/dist/types/hooks/useAmplify.d.ts +0 -6
  456. package/dist/types/hooks/useDataStore.d.ts +0 -18
  457. package/dist/types/primitives/Expander/Expander.d.ts +0 -6
  458. package/dist/types/primitives/Expander/ExpanderItem.d.ts +0 -7
  459. package/dist/types/primitives/Expander/index.d.ts +0 -2
  460. package/dist/types/primitives/Menu/__tests_/menu.test.d.ts +0 -1
  461. package/dist/types/primitives/PhoneNumberField/CountryCodeSelect.d.ts +0 -2
  462. package/dist/types/primitives/Rating/__test__/Rating.test.d.ts +0 -1
  463. package/dist/types/primitives/Rating/__test__/utils.test.d.ts +0 -1
  464. package/dist/types/primitives/Text/__test__/Text.test.d.ts +0 -1
  465. package/dist/types/primitives/shared/datastore.d.ts +0 -7
  466. package/dist/types/primitives/shared/index.d.ts +0 -1
  467. package/dist/types/primitives/shared/types.d.ts +0 -15
  468. package/dist/types/primitives/types/datastore.d.ts +0 -31
  469. package/dist/types/primitives/types/expander.d.ts +0 -51
  470. package/dist/types/primitives/types/tabs.d.ts +0 -63
  471. package/dist/types/studio/findChildOverrides.d.ts +0 -18
  472. package/dist/types/studio/getOverrideProps.d.ts +0 -18
  473. package/dist/types/studio/getOverridesFromVariants.d.ts +0 -20
  474. package/dist/types/studio/index.d.ts +0 -5
  475. package/dist/types/studio/mergeVariantsAndOverrides.d.ts +0 -18
  476. package/dist/types/studio/types.d.ts +0 -18
  477. package/dist/types/styles.d.ts +0 -1
  478. /package/dist/types/components/Authenticator/{ResetPassword → ForgotPassword}/ConfirmResetPassword.d.ts +0 -0
@@ -1 +1,72 @@
1
- import*as t from"react";import{getConsecutiveIntArray as r}from"../shared/utils.mjs";const a="...",m=(m,o,n=1)=>t.useMemo((()=>{const t=Math.max(m,1),s=Math.max(n,1),e=Math.max(t,o),i=e;if(e<5+2*s)return r(1,e);const c=Math.max(t-s,1),h=Math.min(t+s,i),u=c>2,M=h<i-1;if(u&&!M){const t=r(i-(3+2*s)+1,i);return[1,a,...t]}if(!u&&M){return[...r(1,3+2*s),a,i]}const f=r(c,h);return[1,a,...f,a,i]}),[m,o,n]);export{a as ELLIPSIS,m as useRange};
1
+ import * as React from 'react';
2
+ import { getConsecutiveIntArray } from '../shared/utils.mjs';
3
+
4
+ const ELLIPSIS = '...';
5
+ /**
6
+ * This hook will be used to determine the range of page numbers to be rendered,
7
+ * including ellipsis dots(e.g., an array like [1, '...', 4, 5, 6, '...', 10]).
8
+ * @param currentPage current page number
9
+ * @param totalPages total number of pages
10
+ * @param siblingCount the number of siblings on each side of
11
+ * @returns an array that contains the range of numbers to be rendered
12
+ */
13
+ const useRange = (currentPageParam, totalPagesParam, siblingCountParam = 1) => {
14
+ const range = React.useMemo(() => {
15
+ // The current page should not be less than 1
16
+ const currentPage = Math.max(currentPageParam, 1);
17
+ // The sibling count should not be less than 1
18
+ const siblingCount = Math.max(siblingCountParam, 1);
19
+ // The total pages should be always greater than current page
20
+ const totalPages = Math.max(currentPage, totalPagesParam);
21
+ // Note: 1-based index will be used for page value.
22
+ const firstPage = 1;
23
+ const lastPage = totalPages;
24
+ /**
25
+ * To avoid resizing our pagination component while a user is interacting with the component,
26
+ * the total number of items returned by the hook should remain constant.
27
+ * The consant is supposed to be the max number of items that would returned by the hook in all cases,
28
+ * so it should be calculated by 1(first page) + 1(last page) + 1(current page) + 2 * siblingCount + 2(ellipses)
29
+ */
30
+ const maxNumOfItems = 5 + 2 * siblingCount;
31
+ /**
32
+ * Case 1: If the total number of pages is not greater than the max number of items that would potentially be returned,
33
+ * then no need to run through the ellipsis cases, just simply return the range from 1 to totalPages (e.g. [1, 2, 3, 4]).
34
+ */
35
+ if (totalPages < maxNumOfItems) {
36
+ return getConsecutiveIntArray(1, totalPages);
37
+ }
38
+ /**
39
+ * Determine if ellipsis dots should be rendered on either left or right side, or both
40
+ */
41
+ const leftSiblingPage = Math.max(currentPage - siblingCount, firstPage);
42
+ const rightSiblingPage = Math.min(currentPage + siblingCount, lastPage);
43
+ const shouldRenderStartEllipsis = leftSiblingPage > 2;
44
+ const shouldRenderEndEllipsis = rightSiblingPage < lastPage - 1;
45
+ /**
46
+ * Case 2: Only render ellipsis dots on the left side (e.g. [1, '...', 6, 7, 8, 9, 10]).
47
+ */
48
+ if (shouldRenderStartEllipsis && !shouldRenderEndEllipsis) {
49
+ // 1(current page) + 1(last page) + 1(fill up a page for the position of end ellipsis) + 2 * siblingCount
50
+ const rightItemCount = 3 + 2 * siblingCount;
51
+ const rightRange = getConsecutiveIntArray(lastPage - rightItemCount + 1, lastPage);
52
+ return [firstPage, ELLIPSIS, ...rightRange];
53
+ }
54
+ /**
55
+ * Case 3: Only render ellipsis dots on the right side (e.g. [1, 2, 3, 4, 5, '...', 10]).
56
+ */
57
+ if (!shouldRenderStartEllipsis && shouldRenderEndEllipsis) {
58
+ // 1(current page) + 1(last page) + 1(fill up a page for the position of start ellipsis) + 2 * siblingCount
59
+ const leftItemCount = 3 + 2 * siblingCount;
60
+ const leftRange = getConsecutiveIntArray(firstPage, leftItemCount);
61
+ return [...leftRange, ELLIPSIS, lastPage];
62
+ }
63
+ /**
64
+ * Case 4: Render ellipsis on both side (e.g. [1, '...', 4, 5, 6, '...', 10]).
65
+ */
66
+ const middleRange = getConsecutiveIntArray(leftSiblingPage, rightSiblingPage);
67
+ return [firstPage, ELLIPSIS, ...middleRange, ELLIPSIS, lastPage];
68
+ }, [currentPageParam, totalPagesParam, siblingCountParam]);
69
+ return range;
70
+ };
71
+
72
+ export { ELLIPSIS, useRange };
@@ -1 +1,25 @@
1
- import{__rest as s}from"tslib";import o from"classnames";import*as e from"react";import{ComponentClassNames as a}from"../shared/constants.mjs";import{ShowPasswordButton as r}from"./ShowPasswordButton.mjs";import{TextField as t}from"../TextField/TextField.mjs";const d=e.forwardRef(((d,l)=>{var{autoComplete:w="current-password",label:n,className:m,hideShowPassword:i=!1,passwordIsHiddenLabel:p,passwordIsShownLabel:h,showPasswordButtonLabel:b,showPasswordButtonRef:u,size:c,hasError:f}=d,P=s(d,["autoComplete","label","className","hideShowPassword","passwordIsHiddenLabel","passwordIsShownLabel","showPasswordButtonLabel","showPasswordButtonRef","size","hasError"]);const[L,E]=e.useState("password"),S=e.useCallback((()=>{E("password"===L?"text":"password")}),[E,L]);return e.createElement(t,Object.assign({autoComplete:w,outerEndComponent:i?null:e.createElement(r,{fieldType:L,onClick:S,passwordIsHiddenLabel:p,passwordIsShownLabel:h,ref:u,size:c,showPasswordButtonLabel:b,hasError:f}),size:c,type:L,label:n,className:o(a.PasswordField,m),ref:l,hasError:f},P))}));d.displayName="PasswordField";export{d as PasswordField};
1
+ import { classNames, ComponentClassName } from '@aws-amplify/ui';
2
+ import * as React from 'react';
3
+ import { ShowPasswordButton } from './ShowPasswordButton.mjs';
4
+ import { TextField } from '../TextField/TextField.mjs';
5
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
6
+
7
+ const PasswordFieldPrimitive = ({ autoComplete = 'current-password', label, className, hideShowPassword = false, passwordIsHiddenLabel, passwordIsShownLabel, showPasswordButtonLabel, showPasswordButtonRef, size, hasError, ...rest }, ref) => {
8
+ const [type, setType] = React.useState('password');
9
+ const showPasswordOnClick = React.useCallback(() => {
10
+ if (type === 'password') {
11
+ setType('text');
12
+ }
13
+ else {
14
+ setType('password');
15
+ }
16
+ }, [setType, type]);
17
+ return (React.createElement(TextField, { autoComplete: autoComplete, outerEndComponent: hideShowPassword ? null : (React.createElement(ShowPasswordButton, { fieldType: type, onClick: showPasswordOnClick, passwordIsHiddenLabel: passwordIsHiddenLabel, passwordIsShownLabel: passwordIsShownLabel, ref: showPasswordButtonRef, size: size, showPasswordButtonLabel: showPasswordButtonLabel, hasError: hasError })), size: size, type: type, label: label, className: classNames(ComponentClassName.PasswordField, className), ref: ref, hasError: hasError, ...rest }));
18
+ };
19
+ /**
20
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/passwordfield)
21
+ */
22
+ const PasswordField = primitiveWithForwardRef(PasswordFieldPrimitive);
23
+ PasswordField.displayName = 'PasswordField';
24
+
25
+ export { PasswordField };
@@ -1 +1,30 @@
1
- import{__rest as s}from"tslib";import*as o from"react";import r from"classnames";import{Button as i}from"../Button/Button.mjs";import{VisuallyHidden as e}from"../VisuallyHidden/VisuallyHidden.mjs";import{ComponentClassNames as a,ComponentText as t}from"../shared/constants.mjs";import"../Icon/Icon.mjs";import"../Icon/context/IconsContext.mjs";import{useIcons as d}from"../Icon/context/useIcons.mjs";import"../View/View.mjs";import{IconVisibilityOff as n}from"../Icon/icons/IconVisibilityOff.mjs";import{IconVisibility as l}from"../Icon/icons/IconVisibility.mjs";import{classNameModifierByFlag as m}from"@aws-amplify/ui";const{passwordIsHidden:w,passwordIsShown:p,showPassword:c}=t.PasswordField,f=o.forwardRef(((t,f)=>{var h,u,{fieldType:I,passwordIsHiddenLabel:b=w,passwordIsShownLabel:j=p,showPasswordButtonLabel:y=c,size:v,hasError:L}=t,P=s(t,["fieldType","passwordIsHiddenLabel","passwordIsShownLabel","showPasswordButtonLabel","size","hasError"]);const E=d("passwordField"),S=r(a.FieldShowPassword,m(a.FieldShowPassword,"error",L)),V="password"===I?null!==(h=null==E?void 0:E.visibility)&&void 0!==h?h:o.createElement(l,{"aria-hidden":"true"}):null!==(u=null==E?void 0:E.visibilityOff)&&void 0!==u?u:o.createElement(n,{"aria-hidden":"true"});return o.createElement(i,Object.assign({"aria-checked":"password"!==I,ariaLabel:y,className:S,ref:f,role:"switch",size:v},P),o.createElement(e,{"aria-live":"polite"},"password"===I?b:j),V)}));f.displayName="ShowPasswordButton";export{f as ShowPasswordButton};
1
+ import * as React from 'react';
2
+ import { classNames, ComponentClassName, classNameModifierByFlag } from '@aws-amplify/ui';
3
+ import { Button } from '../Button/Button.mjs';
4
+ import { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden.mjs';
5
+ import { ComponentText } from '../shared/constants.mjs';
6
+ import '../Icon/Icon.mjs';
7
+ import '../Icon/context/IconsContext.mjs';
8
+ import { useIcons } from '../Icon/context/useIcons.mjs';
9
+ import '../View/View.mjs';
10
+ import { IconVisibilityOff } from '../Icon/icons/IconVisibilityOff.mjs';
11
+ import { IconVisibility } from '../Icon/icons/IconVisibility.mjs';
12
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
13
+
14
+ const { passwordIsHidden, passwordIsShown, showPassword } = ComponentText.PasswordField;
15
+ const ShowPasswordButtonPrimitive = ({ fieldType, passwordIsHiddenLabel = passwordIsHidden, passwordIsShownLabel = passwordIsShown, showPasswordButtonLabel = showPassword, size, hasError, ...rest }, ref) => {
16
+ const icons = useIcons('passwordField');
17
+ const showPasswordButtonClass = classNames(ComponentClassName.FieldShowPassword, classNameModifierByFlag(ComponentClassName.FieldShowPassword, 'error', hasError));
18
+ const icon = fieldType === 'password'
19
+ ? icons?.visibility ?? React.createElement(IconVisibility, { "aria-hidden": "true" })
20
+ : icons?.visibilityOff ?? React.createElement(IconVisibilityOff, { "aria-hidden": "true" });
21
+ return (React.createElement(Button, { "aria-checked": fieldType !== 'password', ariaLabel: showPasswordButtonLabel, className: showPasswordButtonClass, ref: ref, role: "switch", size: size, ...rest },
22
+ React.createElement(VisuallyHidden, { "aria-live": "polite" }, fieldType === 'password'
23
+ ? passwordIsHiddenLabel
24
+ : passwordIsShownLabel),
25
+ icon));
26
+ };
27
+ const ShowPasswordButton = primitiveWithForwardRef(ShowPasswordButtonPrimitive);
28
+ ShowPasswordButton.displayName = 'ShowPasswordButton';
29
+
30
+ export { ShowPasswordButton };
@@ -0,0 +1,21 @@
1
+ import * as React from 'react';
2
+ import { classNames, ComponentClassName, countryDialCodes } from '@aws-amplify/ui';
3
+ import { SelectField } from '../SelectField/SelectField.mjs';
4
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
5
+
6
+ const DialCodeSelectPrimitive = ({ className, dialCodeList, isReadOnly, ...props }, ref) => {
7
+ const dialList = dialCodeList ?? countryDialCodes;
8
+ const dialCodeOptions = React.useMemo(() => dialList.map((dialCode) => (
9
+ // Regarding the `disabled` attribute, see comment in SelectField below
10
+ React.createElement("option", { key: dialCode, value: dialCode, disabled: isReadOnly }, dialCode))), [dialList, isReadOnly]);
11
+ return (React.createElement(SelectField
12
+ /*
13
+ Since <select> elements do not support the `readonly` html attribute, it is suggested to use the `disabled` html attribute
14
+ so that a screen reader will announce something to the user about the interactivity of the options list ( https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/readonly)
15
+ */
16
+ , { "aria-disabled": isReadOnly, autoComplete: "tel-country-code", className: classNames(ComponentClassName.CountryCodeSelect, ComponentClassName.DialCodeSelect, className), labelHidden: true, ref: ref, ...props }, dialCodeOptions));
17
+ };
18
+ const DialCodeSelect = primitiveWithForwardRef(DialCodeSelectPrimitive);
19
+ DialCodeSelect.displayName = 'DialCodeSelect';
20
+
21
+ export { DialCodeSelect };
@@ -1 +1,17 @@
1
- import{__rest as e}from"tslib";import*as o from"react";import a from"classnames";import{ComponentClassNames as l,ComponentText as t}from"../shared/constants.mjs";import{CountryCodeSelect as n}from"./CountryCodeSelect.mjs";import{TextField as r}from"../TextField/TextField.mjs";const d=o.forwardRef(((d,i)=>{var{autoComplete:s="tel-national",className:C,countryCodeName:m,countryCodeLabel:u=t.PhoneNumberField.countryCodeLabel,countryCodeRef:c,defaultCountryCode:f,defaultDialCode:y,dialCodeLabel:b=t.PhoneNumberField.countryCodeLabel,dialCodeList:p,dialCodeName:h,dialCodeRef:N,hasError:L,isDisabled:R,isReadOnly:D,onCountryCodeChange:g,onDialCodeChange:E,onInput:F,size:v,variation:O}=d,j=e(d,["autoComplete","className","countryCodeName","countryCodeLabel","countryCodeRef","defaultCountryCode","defaultDialCode","dialCodeLabel","dialCodeList","dialCodeName","dialCodeRef","hasError","isDisabled","isReadOnly","onCountryCodeChange","onDialCodeChange","onInput","size","variation"]);const z=null!=h?h:m,P=null!=b?b:u,x=null!=y?y:f,I=null!=E?E:g,S=null!=N?N:c;return o.createElement(r,Object.assign({outerStartComponent:o.createElement(n,{defaultValue:x,dialCodeList:p,className:C,hasError:L,isDisabled:R,isReadOnly:D,label:P,name:z,onChange:I,ref:S,size:v,variation:O}),autoComplete:s,className:a(l.PhoneNumberField,C),hasError:L,isDisabled:R,isReadOnly:D,onInput:F,ref:i,size:v,type:"tel",variation:O},j))}));d.displayName="PhoneNumberField";export{d as PhoneNumberField};
1
+ import * as React from 'react';
2
+ import { classNames, ComponentClassName } from '@aws-amplify/ui';
3
+ import { DialCodeSelect } from './DialCodeSelect.mjs';
4
+ import { ComponentText } from '../shared/constants.mjs';
5
+ import { TextField } from '../TextField/TextField.mjs';
6
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
7
+
8
+ const PhoneNumberFieldPrimitive = ({ autoComplete = 'tel-national', className, defaultDialCode, dialCodeLabel = ComponentText.PhoneNumberField.countryCodeLabel, dialCodeList, dialCodeName, dialCodeRef, hasError, isDisabled, isReadOnly, onDialCodeChange, onInput, size, variation, ...rest }, ref) => {
9
+ return (React.createElement(TextField, { outerStartComponent: React.createElement(DialCodeSelect, { defaultValue: defaultDialCode, dialCodeList: dialCodeList, className: className, hasError: hasError, isDisabled: isDisabled, isReadOnly: isReadOnly, label: dialCodeLabel, name: dialCodeName, onChange: onDialCodeChange, ref: dialCodeRef, size: size, variation: variation }), autoComplete: autoComplete, className: classNames(ComponentClassName.PhoneNumberField, className), hasError: hasError, isDisabled: isDisabled, isReadOnly: isReadOnly, onInput: onInput, ref: ref, size: size, type: "tel", variation: variation, ...rest }));
10
+ };
11
+ /**
12
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/phonenumberfield)
13
+ */
14
+ const PhoneNumberField = primitiveWithForwardRef(PhoneNumberFieldPrimitive);
15
+ PhoneNumberField.displayName = 'PhoneNumberField';
16
+
17
+ export { PhoneNumberField };
@@ -1 +1,18 @@
1
- import{__rest as e}from"tslib";import*as a from"react";import r from"classnames";import{classNameModifier as s}from"@aws-amplify/ui";import{ComponentClassNames as m}from"../shared/constants.mjs";import{View as o}from"../View/View.mjs";const i=a.forwardRef(((i,t)=>{var{className:l,children:c,isLoaded:d,size:n}=i,f=e(i,["className","children","isLoaded","size"]);return d?a.createElement(a.Fragment,null,c):a.createElement(o,Object.assign({className:r(m.Placeholder,s(m.Placeholder,n),l),"data-size":n,ref:t},f))}));i.displayName="Placeholder";export{i as Placeholder};
1
+ import * as React from 'react';
2
+ import { classNames, ComponentClassName, classNameModifier } from '@aws-amplify/ui';
3
+ import { View } from '../View/View.mjs';
4
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
5
+
6
+ const PlaceholderPrimitive = ({ className, children, isLoaded, size, ...rest }, ref) => {
7
+ if (isLoaded) {
8
+ return React.createElement(React.Fragment, null, children);
9
+ }
10
+ return (React.createElement(View, { className: classNames(ComponentClassName.Placeholder, classNameModifier(ComponentClassName.Placeholder, size), className), ref: ref, ...rest }));
11
+ };
12
+ /**
13
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/placeholder)
14
+ */
15
+ const Placeholder = primitiveWithForwardRef(PlaceholderPrimitive);
16
+ Placeholder.displayName = 'Placeholder';
17
+
18
+ export { Placeholder };
@@ -1 +1,31 @@
1
- import{__rest as e}from"tslib";import*as i from"react";import a from"classnames";import{classNameModifierByFlag as t,classNameModifier as s}from"@aws-amplify/ui";import{ComponentClassNames as o}from"../shared/constants.mjs";import{Flex as d}from"../Flex/Flex.mjs";import{Input as l}from"../Input/Input.mjs";import{Text as r}from"../Text/Text.mjs";import{useRadioGroupContext as m}from"../RadioGroupField/context.mjs";import{useFieldset as n}from"../Fieldset/useFieldset.mjs";const p=(p,c)=>{var{children:h,className:u,id:b,isDisabled:f,testId:R,value:g,labelPosition:v,height:j,width:N,bottom:x,left:y,position:E,padding:F,right:I,top:w}=p,D=e(p,["children","className","id","isDisabled","testId","value","labelPosition","height","width","bottom","left","position","padding","right","top"]);const{currentValue:C,defaultValue:O,name:P,hasError:V,isGroupDisabled:k,isRequired:q,isReadOnly:z,onChange:B,size:G,labelPosition:T}=m(),{isFieldsetDisabled:H}=n(),L=H||(k||f||z&&O!==g),A=void 0!==C?g===C:void 0,J=void 0!==O?g===O:void 0,K=v||T;return i.createElement(d,{as:"label",className:a(o.Radio,t(o.Radio,"disabled",L),u),"data-disabled":L,"data-label-position":K,height:j,width:N,bottom:x,top:w,right:I,left:y,position:E,padding:F},h&&i.createElement(r,{as:"span",className:o.RadioLabel,"data-disabled":L},h),i.createElement(l,Object.assign({checked:A,className:a(o.VisuallyHidden,o.RadioInput),defaultChecked:J,hasError:V,id:b,isDisabled:L,isReadOnly:z,isRequired:q,onChange:B,ref:c,type:"radio",name:P,value:g},D)),i.createElement(d,{"aria-hidden":"true",as:"span",className:a(o.RadioButton,s(o.RadioButton,G)),"data-size":G,testId:R}))},c=i.forwardRef(p);c.displayName="Radio";export{c as Radio,p as RadioPrimitive};
1
+ import * as React from 'react';
2
+ import { classNames, ComponentClassName, classNameModifierByFlag, classNameModifier } from '@aws-amplify/ui';
3
+ import { Flex } from '../Flex/Flex.mjs';
4
+ import { Input } from '../Input/Input.mjs';
5
+ import { Text } from '../Text/Text.mjs';
6
+ import { useRadioGroupContext } from '../RadioGroupField/context.mjs';
7
+ import { useFieldset } from '../Fieldset/useFieldset.mjs';
8
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
9
+
10
+ const RadioPrimitive = ({ children, className, id, isDisabled = false, testId, value, labelPosition: radioLabelPosition, ...rest }, ref) => {
11
+ const { currentValue, defaultValue, name, hasError, isGroupDisabled = false, isRequired, isReadOnly, onChange, size, labelPosition: groupLabelPosition, } = useRadioGroupContext();
12
+ const { isFieldsetDisabled } = useFieldset();
13
+ const shouldBeDisabled = isFieldsetDisabled
14
+ ? isFieldsetDisabled
15
+ : isGroupDisabled || isDisabled || (isReadOnly && defaultValue !== value);
16
+ // for controlled component
17
+ const checked = currentValue !== undefined ? value === currentValue : undefined;
18
+ // for uncontrolled component
19
+ const defaultChecked = defaultValue !== undefined ? value === defaultValue : undefined;
20
+ const labelPosition = radioLabelPosition
21
+ ? radioLabelPosition
22
+ : groupLabelPosition;
23
+ return (React.createElement(Flex, { as: "label", className: classNames(ComponentClassName.Radio, classNameModifierByFlag(ComponentClassName.Radio, `disabled`, shouldBeDisabled), labelPosition ? `amplify-label-${labelPosition}` : null, className) },
24
+ children && (React.createElement(Text, { as: "span", className: classNames(ComponentClassName.RadioLabel, classNameModifierByFlag(ComponentClassName.RadioLabel, `disabled`, shouldBeDisabled)) }, children)),
25
+ React.createElement(Input, { checked: checked, className: classNames(ComponentClassName.VisuallyHidden, ComponentClassName.RadioInput), defaultChecked: defaultChecked, hasError: hasError, id: id, isDisabled: shouldBeDisabled, isReadOnly: isReadOnly, isRequired: isRequired, onChange: onChange, ref: ref, type: "radio", name: name, value: value, ...rest }),
26
+ React.createElement(Flex, { "aria-hidden": "true", as: "span", className: classNames(ComponentClassName.RadioButton, classNameModifier(ComponentClassName.RadioButton, size)), testId: testId })));
27
+ };
28
+ const Radio = primitiveWithForwardRef(RadioPrimitive);
29
+ Radio.displayName = 'Radio';
30
+
31
+ export { Radio, RadioPrimitive };
@@ -1 +1,55 @@
1
- import{__rest as e}from"tslib";import*as i from"react";import r from"classnames";import{classNameModifier as a}from"@aws-amplify/ui";import{ComponentClassNames as s}from"../shared/constants.mjs";import"../Field/FieldClearButton.mjs";import{FieldDescription as l}from"../Field/FieldDescription.mjs";import{FieldErrorMessage as t}from"../Field/FieldErrorMessage.mjs";import"../Field/Field.mjs";import{Flex as d}from"../Flex/Flex.mjs";import{Label as o}from"../Label/Label.mjs";import{VisuallyHidden as m}from"../VisuallyHidden/VisuallyHidden.mjs";import{RadioGroupContext as n}from"./context.mjs";import{getTestId as u}from"../utils/getTestId.mjs";import{useStableId as p}from"../utils/useStableId.mjs";const c=i.forwardRef(((c,f)=>{var{children:b,className:F,defaultValue:j,descriptiveText:E,errorMessage:g,hasError:h=!1,id:R,isDisabled:v,isRequired:y,isReadOnly:x,label:H,labelHidden:I=!1,labelPosition:V,onChange:G,name:M,size:N,testId:z,value:C}=c,D=e(c,["children","className","defaultValue","descriptiveText","errorMessage","hasError","id","isDisabled","isRequired","isReadOnly","label","labelHidden","labelPosition","onChange","name","size","testId","value"]);const O=p(R),P=p(),T=E?P:void 0,q=u(z,s.RadioGroup),w=i.useMemo((()=>({currentValue:C,defaultValue:j,hasError:h,isRequired:y,isReadOnly:x,isGroupDisabled:v,onChange:G,size:N,name:M,labelPosition:V})),[j,h,v,y,x,G,N,M,C,V]);return i.createElement(d,Object.assign({as:"fieldset",className:r(s.Field,a(s.Field,N),s.RadioGroupField,F),"data-size":N,ref:f,role:"radiogroup",testId:z},D),i.createElement(m,{as:"legend"},H),i.createElement(o,{"aria-hidden":!0,visuallyHidden:I},H),i.createElement(l,{id:P,labelHidden:I,descriptiveText:E}),i.createElement(d,{"aria-describedby":T,className:s.RadioGroup,id:O,testId:q},i.createElement(n.Provider,{value:w},b)),i.createElement(t,{hasError:h,errorMessage:g}))}));c.displayName="RadioGroupField";export{c as RadioGroupField};
1
+ import * as React from 'react';
2
+ import { ComponentClassName, classNames, classNameModifier } from '@aws-amplify/ui';
3
+ import '../Field/FieldClearButton.mjs';
4
+ import { FieldDescription } from '../Field/FieldDescription.mjs';
5
+ import { FieldErrorMessage } from '../Field/FieldErrorMessage.mjs';
6
+ import '../Field/Field.mjs';
7
+ import { Fieldset } from '../Fieldset/Fieldset.mjs';
8
+ import '../Fieldset/useFieldset.mjs';
9
+ import { Flex } from '../Flex/Flex.mjs';
10
+ import { RadioGroupContext } from './context.mjs';
11
+ import { getTestId } from '../utils/getTestId.mjs';
12
+ import { useStableId } from '../utils/useStableId.mjs';
13
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
14
+
15
+ const RadioGroupFieldPrimitive = ({ children, className, defaultValue, descriptiveText, errorMessage, hasError = false, id, isDisabled, isRequired, isReadOnly, legend, legendHidden = false, labelPosition, onChange, name, size, testId, value, variation, ...rest }, ref) => {
16
+ const fieldId = useStableId(id);
17
+ const descriptionId = useStableId();
18
+ const ariaDescribedBy = descriptiveText ? descriptionId : undefined;
19
+ const radioGroupTestId = getTestId(testId, ComponentClassName.RadioGroup);
20
+ const radioGroupContextValue = React.useMemo(() => ({
21
+ currentValue: value,
22
+ defaultValue,
23
+ hasError,
24
+ isRequired,
25
+ isReadOnly,
26
+ isGroupDisabled: isDisabled,
27
+ onChange,
28
+ size,
29
+ name,
30
+ labelPosition,
31
+ }), [
32
+ defaultValue,
33
+ hasError,
34
+ isDisabled,
35
+ isRequired,
36
+ isReadOnly,
37
+ onChange,
38
+ size,
39
+ name,
40
+ value,
41
+ labelPosition,
42
+ ]);
43
+ return (React.createElement(Fieldset, { className: classNames(ComponentClassName.Field, classNameModifier(ComponentClassName.Field, size), ComponentClassName.RadioGroupField, className), isDisabled: isDisabled, legend: legend, legendHidden: legendHidden, ref: ref, role: "radiogroup", size: size, testId: testId, variation: variation, ...rest },
44
+ React.createElement(FieldDescription, { id: descriptionId, labelHidden: legendHidden, descriptiveText: descriptiveText }),
45
+ React.createElement(Flex, { "aria-describedby": ariaDescribedBy, className: ComponentClassName.RadioGroup, id: fieldId, testId: radioGroupTestId },
46
+ React.createElement(RadioGroupContext.Provider, { value: radioGroupContextValue }, children)),
47
+ React.createElement(FieldErrorMessage, { hasError: hasError, errorMessage: errorMessage })));
48
+ };
49
+ /**
50
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/radiogroupfield)
51
+ */
52
+ const RadioGroupField = primitiveWithForwardRef(RadioGroupFieldPrimitive);
53
+ RadioGroupField.displayName = 'RadioGroupField';
54
+
55
+ export { RadioGroupField };
@@ -1 +1,9 @@
1
- import t,{useContext as e}from"react";const o=t.createContext({name:"default"}),r=()=>e(o);export{o as RadioGroupContext,r as useRadioGroupContext};
1
+ import React__default, { useContext } from 'react';
2
+
3
+ const defaultValue = { name: 'default' };
4
+ const RadioGroupContext = React__default.createContext(defaultValue);
5
+ const useRadioGroupContext = () => {
6
+ return useContext(RadioGroupContext);
7
+ };
8
+
9
+ export { RadioGroupContext, useRadioGroupContext };
@@ -1 +1,44 @@
1
- import{__rest as o}from"tslib";import*as e from"react";import l from"classnames";import{classNameModifier as t}from"@aws-amplify/ui";import{ComponentClassNames as i}from"../shared/constants.mjs";import{Flex as m}from"../Flex/Flex.mjs";import"../Icon/Icon.mjs";import"../Icon/context/IconsContext.mjs";import{useIcons as n}from"../Icon/context/useIcons.mjs";import"../View/View.mjs";import{IconStar as r}from"../Icon/icons/IconStar.mjs";import{isIconFilled as a,isIconEmpty as s,isIconMixed as c}from"./utils.mjs";import{RatingIcon as p}from"./RatingIcon.mjs";import{RatingMixedIcon as f}from"./RatingMixedIcon.mjs";import{VisuallyHidden as u}from"../VisuallyHidden/VisuallyHidden.mjs";const y=5,d=0,I=e.forwardRef(((I,g)=>{var j,v,x,{className:C,emptyColor:E,emptyIcon:N,fillColor:R,icon:V,maxValue:w=y,size:S,value:k=d}=I,z=o(I,["className","emptyColor","emptyIcon","fillColor","icon","maxValue","size","value"]);const b=n("rating"),h=null!==(j=null!=V?V:null==b?void 0:b.filled)&&void 0!==j?j:e.createElement(r,null),F=null!==(x=null!==(v=null!=N?N:V)&&void 0!==v?v:null==b?void 0:b.empty)&&void 0!==x?x:e.createElement(r,null),H=new Array(Math.ceil(w)).fill(1).map(((o,l)=>{const t=l+1;return a(t,k)?e.createElement(p,{key:l.toString(),icon:h,fill:R,className:"amplify-rating-icon-filled"}):s(t,k)?e.createElement(p,{key:l.toString(),icon:F,fill:E,className:"amplify-rating-icon-empty"}):c(t,k)?e.createElement(f,{key:l.toString(),fillIcon:h,emptyIcon:F,value:k,fillColor:R,emptyColor:E}):void 0}));return e.createElement(m,Object.assign({className:l(i.Rating,t(i.Rating,S),C),"data-size":S,ref:g},z),H,e.createElement(u,null,k," out of ",w," rating"))}));I.displayName="Rating";export{I as Rating};
1
+ import * as React from 'react';
2
+ import { classNameModifier, ComponentClassName, classNames } from '@aws-amplify/ui';
3
+ import { Flex } from '../Flex/Flex.mjs';
4
+ import '../Icon/Icon.mjs';
5
+ import '../Icon/context/IconsContext.mjs';
6
+ import { useIcons } from '../Icon/context/useIcons.mjs';
7
+ import '../View/View.mjs';
8
+ import { IconStar } from '../Icon/icons/IconStar.mjs';
9
+ import { isIconFilled, isIconEmpty, isIconMixed } from './utils.mjs';
10
+ import { RatingIcon } from './RatingIcon.mjs';
11
+ import { RatingMixedIcon } from './RatingMixedIcon.mjs';
12
+ import { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden.mjs';
13
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
14
+
15
+ const RATING_DEFAULT_MAX_VALUE = 5;
16
+ const RATING_DEFAULT_VALUE = 0;
17
+ const RatingPrimitive = ({ className, emptyColor, emptyIcon, fillColor, icon, maxValue = RATING_DEFAULT_MAX_VALUE, size, value = RATING_DEFAULT_VALUE, ...rest }, ref) => {
18
+ const icons = useIcons('rating');
19
+ const filledIcon = icon ?? icons?.filled ?? React.createElement(IconStar, null);
20
+ const _emptyIcon = emptyIcon ?? icon ?? icons?.empty ?? React.createElement(IconStar, null);
21
+ const items = new Array(Math.ceil(maxValue)).fill(1).map((_, index) => {
22
+ const currentIconIndex = index + 1;
23
+ if (isIconFilled(currentIconIndex, value))
24
+ return (React.createElement(RatingIcon, { key: index.toString(), icon: filledIcon, fill: fillColor, className: classNameModifier(ComponentClassName.RatingIcon, 'filled') }));
25
+ if (isIconEmpty(currentIconIndex, value))
26
+ return (React.createElement(RatingIcon, { key: index.toString(), icon: _emptyIcon, fill: emptyColor, className: classNameModifier(ComponentClassName.RatingIcon, 'empty') }));
27
+ if (isIconMixed(currentIconIndex, value))
28
+ return (React.createElement(RatingMixedIcon, { key: index.toString(), fillIcon: filledIcon, emptyIcon: _emptyIcon, value: value, fillColor: fillColor, emptyColor: emptyColor }));
29
+ });
30
+ return (React.createElement(Flex, { className: classNames(ComponentClassName.Rating, classNameModifier(ComponentClassName.Rating, size), className), ref: ref, ...rest },
31
+ items,
32
+ React.createElement(VisuallyHidden, null,
33
+ value,
34
+ " out of ",
35
+ maxValue,
36
+ " rating")));
37
+ };
38
+ /**
39
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/rating)
40
+ */
41
+ const Rating = primitiveWithForwardRef(RatingPrimitive);
42
+ Rating.displayName = 'Rating';
43
+
44
+ export { Rating };
@@ -1 +1,11 @@
1
- import*as a from"react";import e from"classnames";import{View as s}from"../View/View.mjs";const i=({icon:i,fill:m,className:r})=>a.createElement(s,{as:"span",className:"amplify-rating-icon-container","aria-hidden":"true"},a.createElement(s,{as:"span",className:e(r),color:m},i));i.displayName="RatingIcon";export{i as RatingIcon};
1
+ import * as React from 'react';
2
+ import { ComponentClassName, classNames } from '@aws-amplify/ui';
3
+ import { View } from '../View/View.mjs';
4
+
5
+ const RatingIcon = ({ icon, fill, className, }) => {
6
+ return (React.createElement(View, { as: "span", className: ComponentClassName.RatingItem, "aria-hidden": "true" },
7
+ React.createElement(View, { as: "span", className: classNames(className), color: fill }, icon)));
8
+ };
9
+ RatingIcon.displayName = 'RatingIcon';
10
+
11
+ export { RatingIcon };
@@ -1 +1,13 @@
1
- import*as a from"react";import e from"classnames";import{View as i}from"../View/View.mjs";const l=({emptyColor:l,emptyIcon:n,fillColor:t,fillIcon:m,value:r})=>{const s=r%1*100+"%";return a.createElement(i,{as:"span",className:"amplify-rating-icon-container","aria-hidden":"true"},a.createElement(i,{as:"span",className:"amplify-rating-label"},a.createElement(i,{as:"span",className:e("amplify-rating-icon","amplify-rating-icon-empty"),color:l},n)),a.createElement(i,{as:"span",className:"amplify-rating-label",width:s},a.createElement(i,{as:"span",className:e("amplify-rating-icon","amplify-rating-icon-filled"),color:t},m)))};l.displayName="RatingMixedIcon";export{l as RatingMixedIcon};
1
+ import * as React from 'react';
2
+ import { ComponentClassName, classNames, classNameModifier } from '@aws-amplify/ui';
3
+ import { View } from '../View/View.mjs';
4
+
5
+ const RatingMixedIcon = ({ emptyColor, emptyIcon, fillColor, fillIcon, value, }) => {
6
+ const widthPercentage = `${(value % 1) * 100}%`;
7
+ return (React.createElement(View, { as: "span", className: ComponentClassName.RatingItem, "aria-hidden": "true" },
8
+ React.createElement(View, { as: "span", className: classNames(ComponentClassName.RatingIcon, classNameModifier(ComponentClassName.RatingIcon, 'empty')), color: emptyColor }, emptyIcon),
9
+ React.createElement(View, { as: "span", className: classNames(ComponentClassName.RatingIcon, classNameModifier(ComponentClassName.RatingIcon, 'filled')), width: widthPercentage, color: fillColor }, fillIcon)));
10
+ };
11
+ RatingMixedIcon.displayName = 'RatingMixedIcon';
12
+
13
+ export { RatingMixedIcon };
@@ -1 +1,18 @@
1
- const o=(o,t)=>o<=t,t=(o,t)=>o-1>=t,c=(o,t)=>o>t&&o-1<t;export{t as isIconEmpty,o as isIconFilled,c as isIconMixed};
1
+ const isIconFilled = (currentIconIndex, ratingValue) => {
2
+ if (currentIconIndex <= ratingValue)
3
+ return true;
4
+ return false;
5
+ };
6
+ const isIconEmpty = (currentIconIndex, ratingValue) => {
7
+ if (currentIconIndex - 1 >= ratingValue)
8
+ return true;
9
+ return false;
10
+ };
11
+ const isIconMixed = (currentIconIndex, ratingValue) => {
12
+ if (currentIconIndex > ratingValue && currentIconIndex - 1 < ratingValue) {
13
+ return true;
14
+ }
15
+ return false;
16
+ };
17
+
18
+ export { isIconEmpty, isIconFilled, isIconMixed };
@@ -1 +1,13 @@
1
- import{__rest as r}from"tslib";import*as e from"react";import a from"classnames";import{classNameModifier as o}from"@aws-amplify/ui";import{ComponentClassNames as i}from"../shared/constants.mjs";import{View as t}from"../View/View.mjs";const m=e.forwardRef(((m,s)=>{var{children:l,className:n,orientation:c}=m,f=r(m,["children","className","orientation"]);return e.createElement(t,Object.assign({className:a(i.ScrollView,o(i.ScrollView,c),n),"data-orientation":c,ref:s},f),l)}));m.displayName="ScrollView";export{m as ScrollView};
1
+ import * as React from 'react';
2
+ import { classNames, ComponentClassName, classNameModifier } from '@aws-amplify/ui';
3
+ import { View } from '../View/View.mjs';
4
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
5
+
6
+ const ScrollViewPrimitive = ({ children, className, orientation, ...rest }, ref) => (React.createElement(View, { className: classNames(ComponentClassName.ScrollView, classNameModifier(ComponentClassName.ScrollView, orientation), className), ref: ref, ...rest }, children));
7
+ /**
8
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/scrollview)
9
+ */
10
+ const ScrollView = primitiveWithForwardRef(ScrollViewPrimitive);
11
+ ScrollView.displayName = 'ScrollView';
12
+
13
+ export { ScrollView };
@@ -1 +1,38 @@
1
- import{__rest as e}from"tslib";import o from"classnames";import*as a from"react";import{FieldClearButton as n}from"../Field/FieldClearButton.mjs";import"../Field/FieldDescription.mjs";import"../Field/FieldErrorMessage.mjs";import"../Field/Field.mjs";import{FieldGroupIcon as t}from"../FieldGroupIcon/FieldGroupIcon.mjs";import"../FieldGroupIcon/FieldGroupIconButton.mjs";import{ComponentClassNames as r}from"../shared/constants.mjs";import"../View/View.mjs";import{IconSearch as i}from"../Icon/icons/IconSearch.mjs";import"../Icon/context/IconsContext.mjs";import{SearchFieldButton as l}from"./SearchFieldButton.mjs";import{TextField as m}from"../TextField/TextField.mjs";import{useSearchField as s}from"./useSearchField.mjs";import{strHasLength as c}from"../shared/utils.mjs";const d=a.forwardRef(((d,u)=>{var{autoComplete:p="off",className:f,isDisabled:h,clearButtonLabel:C,labelHidden:F=!0,name:b="q",hasSearchButton:j=!0,hasSearchIcon:S=!1,onChange:I,onClear:B,onSubmit:v,searchButtonRef:E,size:g,defaultValue:x,value:D}=d,V=e(d,["autoComplete","className","isDisabled","clearButtonLabel","labelHidden","name","hasSearchButton","hasSearchIcon","onChange","onClear","onSubmit","searchButtonRef","size","defaultValue","value"]);const{composedValue:w,onClearHandler:z,onKeyDown:R,onClick:k,handleOnChange:G,composedRefs:H}=s({defaultValue:x,value:D,onChange:I,onClear:B,onSubmit:v,externalRef:u}),N=j?a.createElement(l,{isDisabled:h,onClick:k,ref:E,size:g}):void 0,y=S?a.createElement(t,null,a.createElement(i,null)):void 0;return a.createElement(m,Object.assign({autoComplete:p,className:o(r.SearchField,f),labelHidden:F,innerStartComponent:y,innerEndComponent:a.createElement(n,{ariaLabel:C,excludeFromTabOrder:!0,isVisible:!h&&c(w),onClick:z,size:g,variation:"link"}),isDisabled:h,name:b,onChange:G,onKeyDown:R,outerEndComponent:N,ref:H,size:g,value:w},V))}));d.displayName="SearchField";export{d as SearchField};
1
+ import { classNames, ComponentClassName } from '@aws-amplify/ui';
2
+ import * as React from 'react';
3
+ import { FieldClearButton } from '../Field/FieldClearButton.mjs';
4
+ import '../Field/FieldDescription.mjs';
5
+ import '../Field/FieldErrorMessage.mjs';
6
+ import '../Field/Field.mjs';
7
+ import { FieldGroupIcon } from '../FieldGroupIcon/FieldGroupIcon.mjs';
8
+ import '../FieldGroupIcon/FieldGroupIconButton.mjs';
9
+ import '../View/View.mjs';
10
+ import { IconSearch } from '../Icon/icons/IconSearch.mjs';
11
+ import '../Icon/context/IconsContext.mjs';
12
+ import { SearchFieldButton } from './SearchFieldButton.mjs';
13
+ import { TextField } from '../TextField/TextField.mjs';
14
+ import { useSearchField } from './useSearchField.mjs';
15
+ import { strHasLength } from '../shared/utils.mjs';
16
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
17
+
18
+ const SearchFieldPrimitive = ({ autoComplete = 'off', className, isDisabled, clearButtonLabel, labelHidden = true, name = 'q', hasSearchButton = true, hasSearchIcon = false, onChange, onClear, onSubmit, searchButtonRef, size, defaultValue, value, ...rest }, ref) => {
19
+ const { composedValue, onClearHandler, onKeyDown, onClick, handleOnChange, composedRefs, } = useSearchField({
20
+ defaultValue,
21
+ value,
22
+ onChange,
23
+ onClear,
24
+ onSubmit,
25
+ externalRef: ref,
26
+ });
27
+ const SearchButton = hasSearchButton ? (React.createElement(SearchFieldButton, { isDisabled: isDisabled, onClick: onClick, ref: searchButtonRef, size: size })) : undefined;
28
+ const SearchIcon = hasSearchIcon ? (React.createElement(FieldGroupIcon, null,
29
+ React.createElement(IconSearch, null))) : undefined;
30
+ return (React.createElement(TextField, { autoComplete: autoComplete, className: classNames(ComponentClassName.SearchField, className), labelHidden: labelHidden, innerStartComponent: SearchIcon, innerEndComponent: React.createElement(FieldClearButton, { ariaLabel: clearButtonLabel, excludeFromTabOrder: true, isVisible: !isDisabled && strHasLength(composedValue), onClick: onClearHandler, size: size, variation: "link" }), isDisabled: isDisabled, name: name, onChange: handleOnChange, onKeyDown: onKeyDown, outerEndComponent: SearchButton, ref: composedRefs, size: size, value: composedValue, ...rest }));
31
+ };
32
+ /**
33
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/searchfield)
34
+ */
35
+ const SearchField = primitiveWithForwardRef(SearchFieldPrimitive);
36
+ SearchField.displayName = 'SearchField';
37
+
38
+ export { SearchField };
@@ -1 +1,21 @@
1
- import{__rest as o}from"tslib";import*as e from"react";import{ComponentClassNames as r,ComponentText as t}from"../shared/constants.mjs";import"../FieldGroupIcon/FieldGroupIcon.mjs";import{FieldGroupIconButton as s}from"../FieldGroupIcon/FieldGroupIconButton.mjs";import"../Icon/Icon.mjs";import"../Icon/context/IconsContext.mjs";import{useIcons as c}from"../Icon/context/useIcons.mjs";import"classnames";import"../View/View.mjs";import{IconSearch as i}from"../Icon/icons/IconSearch.mjs";const m=t.SearchField.searchButtonLabel,n=e.forwardRef(((t,n)=>{var a,{size:l}=t,p=o(t,["size"]);const d=c("searchField");return e.createElement(s,Object.assign({ariaLabel:m,className:r.SearchFieldSearch,size:l,ref:n,type:"submit"},p),null!==(a=null==d?void 0:d.search)&&void 0!==a?a:e.createElement(i,null))}));n.displayName="SearchFieldButton";export{n as SearchFieldButton};
1
+ import * as React from 'react';
2
+ import { ComponentClassName } from '@aws-amplify/ui';
3
+ import { ComponentText } from '../shared/constants.mjs';
4
+ import '../FieldGroupIcon/FieldGroupIcon.mjs';
5
+ import { FieldGroupIconButton } from '../FieldGroupIcon/FieldGroupIconButton.mjs';
6
+ import '../Icon/Icon.mjs';
7
+ import '../Icon/context/IconsContext.mjs';
8
+ import { useIcons } from '../Icon/context/useIcons.mjs';
9
+ import '../View/View.mjs';
10
+ import { IconSearch } from '../Icon/icons/IconSearch.mjs';
11
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
12
+
13
+ const ariaLabelText = ComponentText.SearchField.searchButtonLabel;
14
+ const SearchFieldButtonPrimitive = ({ size, ...props }, ref) => {
15
+ const icons = useIcons('searchField');
16
+ return (React.createElement(FieldGroupIconButton, { ariaLabel: ariaLabelText, className: ComponentClassName.SearchFieldSearch, size: size, ref: ref, type: "submit", ...props }, icons?.search ?? React.createElement(IconSearch, null)));
17
+ };
18
+ const SearchFieldButton = primitiveWithForwardRef(SearchFieldButtonPrimitive);
19
+ SearchFieldButton.displayName = 'SearchFieldButton';
20
+
21
+ export { SearchFieldButton };
@@ -1 +1,64 @@
1
- import*as e from"react";import{isFunction as a}from"@aws-amplify/ui";import{ESCAPE_KEY as l,ENTER_KEY as o}from"../shared/constants.mjs";import{useComposeRefsCallback as n}from"../../hooks/useComposeRefsCallback.mjs";const s=new Set([l,o]),t=({defaultValue:t="",value:r,onChange:u,onClear:c,onSubmit:m,externalRef:f})=>{const i=void 0!==r,[C,p]=e.useState(t),d=i?r:C,k=e.useRef(null),b=n({externalRef:f,internalRef:k}),v=e.useCallback((()=>{var e;i||p(""),null===(e=null==k?void 0:k.current)||void 0===e||e.focus(),a(c)&&c()}),[i,p,c]),h=e.useCallback((e=>{a(m)&&m(e)}),[m]),R=e.useCallback((e=>{const{key:a}=e;s.has(a)&&(e.preventDefault(),a===l?v():a===o&&h(d))}),[d,v,h]),g=e.useCallback((e=>{i||p(e.target.value),a(u)&&u(e)}),[i,u,p]),w=e.useCallback((()=>{h(d)}),[h,d]);return{composedValue:d,onClearHandler:v,onKeyDown:R,onClick:w,handleOnChange:g,composedRefs:b}};export{t as useSearchField};
1
+ import * as React from 'react';
2
+ import { isFunction } from '@aws-amplify/ui';
3
+ import { ESCAPE_KEY, ENTER_KEY } from '../shared/constants.mjs';
4
+ import { useComposeRefsCallback } from '../../hooks/useComposeRefsCallback.mjs';
5
+
6
+ const DEFAULT_KEYS = new Set([ESCAPE_KEY, ENTER_KEY]);
7
+ const useSearchField = ({ defaultValue = '', value, onChange, onClear, onSubmit, externalRef, }) => {
8
+ const isControlled = value !== undefined;
9
+ const [internalValue, setInternalValue] = React.useState(defaultValue);
10
+ const composedValue = isControlled ? value : internalValue;
11
+ const internalRef = React.useRef(null);
12
+ const composedRefs = useComposeRefsCallback({
13
+ externalRef,
14
+ internalRef,
15
+ });
16
+ const onClearHandler = React.useCallback(() => {
17
+ if (!isControlled) {
18
+ setInternalValue('');
19
+ }
20
+ internalRef?.current?.focus();
21
+ if (isFunction(onClear)) {
22
+ onClear();
23
+ }
24
+ }, [isControlled, setInternalValue, onClear]);
25
+ const onSubmitHandler = React.useCallback((value) => {
26
+ if (isFunction(onSubmit)) {
27
+ onSubmit(value);
28
+ }
29
+ }, [onSubmit]);
30
+ const onKeyDown = React.useCallback((event) => {
31
+ const { key } = event;
32
+ if (!DEFAULT_KEYS.has(key)) {
33
+ return;
34
+ }
35
+ event.preventDefault();
36
+ if (key === ESCAPE_KEY) {
37
+ onClearHandler();
38
+ }
39
+ else if (key === ENTER_KEY) {
40
+ onSubmitHandler(composedValue);
41
+ }
42
+ }, [composedValue, onClearHandler, onSubmitHandler]);
43
+ const handleOnChange = React.useCallback((event) => {
44
+ if (!isControlled) {
45
+ setInternalValue(event.target.value);
46
+ }
47
+ if (isFunction(onChange)) {
48
+ onChange(event);
49
+ }
50
+ }, [isControlled, onChange, setInternalValue]);
51
+ const onClick = React.useCallback(() => {
52
+ onSubmitHandler(composedValue);
53
+ }, [onSubmitHandler, composedValue]);
54
+ return {
55
+ composedValue,
56
+ onClearHandler,
57
+ onKeyDown,
58
+ onClick,
59
+ handleOnChange,
60
+ composedRefs,
61
+ };
62
+ };
63
+
64
+ export { useSearchField };
@@ -1 +1,31 @@
1
- import{__rest as e}from"tslib";import*as l from"react";import o from"classnames";import{classNameModifier as t,classNameModifierByFlag as a}from"@aws-amplify/ui";import{ComponentClassNames as r}from"../shared/constants.mjs";import{Flex as i}from"../Flex/Flex.mjs";import"../Icon/Icon.mjs";import"../Icon/context/IconsContext.mjs";import{useIcons as s}from"../Icon/context/useIcons.mjs";import{View as c}from"../View/View.mjs";import{IconExpandMore as m}from"../Icon/icons/IconExpandMore.mjs";import{useFieldset as n}from"../Fieldset/useFieldset.mjs";const p=l.forwardRef(((p,d)=>{var u,{autoComplete:f,className:v,size:S,variation:I,value:j,defaultValue:x,hasError:E,icon:h,iconColor:C,children:b,placeholder:z,isDisabled:F,isRequired:N,isMultiple:V=!1,selectSize:w=1}=p,D=e(p,["autoComplete","className","size","variation","value","defaultValue","hasError","icon","iconColor","children","placeholder","isDisabled","isRequired","isMultiple","selectSize"]);const q=void 0===j&&void 0===x&&z,M=V||w>1,R=o(r.Select,r.FieldGroupControl,t(r.Select,S),t(r.Select,I),a(r.Select,"error",E),a(r.Select,"expanded",M),v),W=s("select"),{isFieldsetDisabled:y}=n();return l.createElement(c,{className:r.SelectWrapper},l.createElement(c,Object.assign({"aria-invalid":E,as:"select",autoComplete:f,value:j,defaultValue:q?"":x,isDisabled:y||F,multiple:V,size:w,required:N,"data-size":S,"data-variation":I,className:R,ref:d},D),z&&l.createElement("option",{value:""},z),b),M?null:l.createElement(i,{className:o(r.SelectIconWrapper,t(r.SelectIconWrapper,S)),color:C},null!==(u=null!=h?h:null==W?void 0:W.expand)&&void 0!==u?u:l.createElement(m,null)))}));p.displayName="Select";export{p as Select};
1
+ import * as React from 'react';
2
+ import { classNames, ComponentClassName, classNameModifier, classNameModifierByFlag } from '@aws-amplify/ui';
3
+ import { Flex } from '../Flex/Flex.mjs';
4
+ import '../Icon/Icon.mjs';
5
+ import '../Icon/context/IconsContext.mjs';
6
+ import { useIcons } from '../Icon/context/useIcons.mjs';
7
+ import { View } from '../View/View.mjs';
8
+ import { IconExpandMore } from '../Icon/icons/IconExpandMore.mjs';
9
+ import { useFieldset } from '../Fieldset/useFieldset.mjs';
10
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
11
+
12
+ const SelectPrimitive = ({ autoComplete, className, size, variation, value, defaultValue, hasError, icon, iconColor, children, placeholder, isDisabled, isRequired, isMultiple = false, selectSize = 1, ...rest }, ref) => {
13
+ const DEFAULT_PLACEHOLDER_VALUE = '';
14
+ // value === undefined is to make sure that component is used in uncontrolled way so that setting defaultValue is valid
15
+ const shouldSetDefaultPlaceholderValue = value === undefined && defaultValue === undefined && placeholder;
16
+ const isExpanded = isMultiple || selectSize > 1;
17
+ const componentClasses = classNames(ComponentClassName.Select, ComponentClassName.FieldGroupControl, classNameModifier(ComponentClassName.Select, size), classNameModifier(ComponentClassName.Select, variation), classNameModifierByFlag(ComponentClassName.Select, 'error', hasError), classNameModifierByFlag(ComponentClassName.Select, 'expanded', isExpanded), className);
18
+ const icons = useIcons('select');
19
+ const { isFieldsetDisabled } = useFieldset();
20
+ return (React.createElement(View, { className: ComponentClassName.SelectWrapper },
21
+ React.createElement(View, { "aria-invalid": hasError, as: "select", autoComplete: autoComplete, value: value, defaultValue: shouldSetDefaultPlaceholderValue
22
+ ? DEFAULT_PLACEHOLDER_VALUE
23
+ : defaultValue, isDisabled: isFieldsetDisabled ? isFieldsetDisabled : isDisabled, multiple: isMultiple, size: selectSize, required: isRequired, className: componentClasses, ref: ref, ...rest },
24
+ placeholder && React.createElement("option", { value: "" }, placeholder),
25
+ children),
26
+ isExpanded ? null : (React.createElement(Flex, { className: classNames(ComponentClassName.SelectIcon, classNameModifier(ComponentClassName.SelectIcon, size)), color: iconColor }, icon ?? icons?.expand ?? React.createElement(IconExpandMore, null)))));
27
+ };
28
+ const Select = primitiveWithForwardRef(SelectPrimitive);
29
+ Select.displayName = 'Select';
30
+
31
+ export { Select };