@aws-amplify/ui-react 5.3.2 → 6.0.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 (477) 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 +4 -3
  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 → ForgotPassword}/index.d.ts +1 -1
  339. package/dist/types/components/Authenticator/{SetupTOTP/SetupTOTP.d.ts → SetupTotp/SetupTotp.d.ts} +1 -1
  340. package/dist/types/components/Authenticator/SetupTotp/index.d.ts +1 -0
  341. package/dist/types/components/Authenticator/SignIn/SignIn.d.ts +2 -2
  342. package/dist/types/components/Authenticator/SignUp/SignUp.d.ts +2 -2
  343. package/dist/types/components/Authenticator/VerifyUser/ConfirmVerifyUser.d.ts +2 -2
  344. package/dist/types/components/Authenticator/hooks/useCustomComponents/defaultComponents.d.ts +1 -1
  345. package/dist/types/components/Authenticator/withAuthenticator.d.ts +2 -2
  346. package/dist/types/components/ThemeProvider/ThemeContext.d.ts +6 -0
  347. package/dist/types/components/ThemeProvider/ThemeProvider.d.ts +1 -2
  348. package/dist/types/components/ThemeProvider/index.d.ts +1 -1
  349. package/dist/types/components/index.d.ts +0 -1
  350. package/dist/types/hooks/index.d.ts +0 -1
  351. package/dist/types/hooks/useAuth.d.ts +2 -2
  352. package/dist/types/hooks/useStorageURL.d.ts +2 -6
  353. package/dist/types/hooks/useTheme.d.ts +2 -2
  354. package/dist/types/index.d.ts +1 -1
  355. package/dist/types/internal.d.ts +0 -12
  356. package/dist/types/primitives/Accordion/Accordion.d.ts +19 -0
  357. package/dist/types/primitives/Accordion/AccordionContainer.d.ts +8 -0
  358. package/dist/types/primitives/Accordion/AccordionContent.d.ts +9 -0
  359. package/dist/types/primitives/Accordion/AccordionContext.d.ts +9 -0
  360. package/dist/types/primitives/Accordion/AccordionIcon.d.ts +9 -0
  361. package/dist/types/primitives/Accordion/AccordionItem.d.ts +6 -0
  362. package/dist/types/primitives/Accordion/AccordionTrigger.d.ts +9 -0
  363. package/dist/types/primitives/Accordion/index.d.ts +2 -0
  364. package/dist/types/primitives/Accordion/types.d.ts +49 -0
  365. package/dist/types/primitives/Alert/AlertIcon.d.ts +5 -2
  366. package/dist/types/primitives/Breadcrumbs/BreadcrumbItem.d.ts +1 -1
  367. package/dist/types/primitives/DropZone/DropZoneChildren.d.ts +10 -3
  368. package/dist/types/primitives/Icon/context/IconsContext.d.ts +1 -1
  369. package/dist/types/primitives/PhoneNumberField/DialCodeSelect.d.ts +2 -0
  370. package/dist/types/primitives/StepperField/useStepper.d.ts +1 -1
  371. package/dist/types/primitives/Tabs/Tabs.d.ts +14 -3
  372. package/dist/types/primitives/Tabs/TabsContainer.d.ts +6 -0
  373. package/dist/types/primitives/Tabs/TabsContext.d.ts +7 -0
  374. package/dist/types/primitives/Tabs/TabsItem.d.ts +6 -0
  375. package/dist/types/primitives/Tabs/TabsList.d.ts +6 -0
  376. package/dist/types/primitives/Tabs/TabsPanel.d.ts +6 -0
  377. package/dist/types/primitives/Tabs/index.d.ts +2 -1
  378. package/dist/types/primitives/Tabs/types.d.ts +93 -0
  379. package/dist/types/primitives/components.d.ts +2 -2
  380. package/dist/types/primitives/index.d.ts +0 -1
  381. package/dist/types/primitives/shared/constants.d.ts +0 -6
  382. package/dist/types/primitives/shared/responsive/utils.d.ts +1 -1
  383. package/dist/types/primitives/shared/styleUtils.d.ts +2 -2
  384. package/dist/types/primitives/types/collection.d.ts +2 -2
  385. package/dist/types/primitives/types/fieldset.d.ts +1 -1
  386. package/dist/types/primitives/types/index.d.ts +0 -3
  387. package/dist/types/primitives/types/radioGroupField.d.ts +2 -1
  388. package/dist/types/primitives/types/view.d.ts +32 -2
  389. package/dist/types/primitives/utils/primitiveWithForwardRef.d.ts +11 -0
  390. package/package.json +13 -45
  391. package/dist/Field-94e428ed.js +0 -1
  392. package/dist/esm/components/Authenticator/ResetPassword/ConfirmResetPassword.mjs +0 -1
  393. package/dist/esm/components/Authenticator/ResetPassword/ResetPassword.mjs +0 -1
  394. package/dist/esm/components/Authenticator/SetupTOTP/SetupTOTP.mjs +0 -1
  395. package/dist/esm/components/Storage/FileUploader/FileUploader.mjs +0 -1
  396. package/dist/esm/components/Storage/FileUploader/UploadDropZone/UploadDropZone.mjs +0 -1
  397. package/dist/esm/components/Storage/FileUploader/UploadPreviewer/UploadPreviewer.mjs +0 -1
  398. package/dist/esm/components/Storage/FileUploader/UploadTracker/UploadMessage.mjs +0 -1
  399. package/dist/esm/components/Storage/FileUploader/UploadTracker/UploadTracker.mjs +0 -1
  400. package/dist/esm/components/Storage/FileUploader/hooks/useFileUploader/useFileUploader.mjs +0 -1
  401. package/dist/esm/components/Storage/FileUploader/types.mjs +0 -1
  402. package/dist/esm/components/ThemeProvider/AmplifyContext.mjs +0 -1
  403. package/dist/esm/helpers/constants.mjs +0 -1
  404. package/dist/esm/hooks/actions/constants.mjs +0 -1
  405. package/dist/esm/hooks/actions/shared/types.mjs +0 -1
  406. package/dist/esm/hooks/actions/shared/useTypeCastFields.mjs +0 -1
  407. package/dist/esm/hooks/actions/useAuthSignOutAction.mjs +0 -1
  408. package/dist/esm/hooks/actions/useDataStoreCreateAction.mjs +0 -1
  409. package/dist/esm/hooks/actions/useDataStoreDeleteAction.mjs +0 -1
  410. package/dist/esm/hooks/actions/useDataStoreUpdateAction.mjs +0 -1
  411. package/dist/esm/hooks/actions/useNavigateAction.mjs +0 -1
  412. package/dist/esm/hooks/actions/useStateMutationAction.mjs +0 -1
  413. package/dist/esm/hooks/useAmplify.mjs +0 -1
  414. package/dist/esm/hooks/useDataStore.mjs +0 -1
  415. package/dist/esm/primitives/Expander/Expander.mjs +0 -1
  416. package/dist/esm/primitives/Expander/ExpanderItem.mjs +0 -1
  417. package/dist/esm/primitives/PhoneNumberField/CountryCodeSelect.mjs +0 -1
  418. package/dist/esm/primitives/shared/datastore.mjs +0 -1
  419. package/dist/esm/studio/findChildOverrides.mjs +0 -1
  420. package/dist/esm/studio/getOverrideProps.mjs +0 -1
  421. package/dist/esm/studio/getOverridesFromVariants.mjs +0 -1
  422. package/dist/esm/studio/mergeVariantsAndOverrides.mjs +0 -1
  423. package/dist/styles.js +0 -2
  424. package/dist/types/components/Authenticator/SetupTOTP/index.d.ts +0 -1
  425. package/dist/types/components/Storage/FileUploader/FileUploader.d.ts +0 -3
  426. package/dist/types/components/Storage/FileUploader/UploadDropZone/UploadDropZone.d.ts +0 -3
  427. package/dist/types/components/Storage/FileUploader/UploadDropZone/index.d.ts +0 -1
  428. package/dist/types/components/Storage/FileUploader/UploadPreviewer/UploadPreviewer.d.ts +0 -3
  429. package/dist/types/components/Storage/FileUploader/UploadPreviewer/index.d.ts +0 -1
  430. package/dist/types/components/Storage/FileUploader/UploadTracker/UploadMessage.d.ts +0 -3
  431. package/dist/types/components/Storage/FileUploader/UploadTracker/UploadTracker.d.ts +0 -3
  432. package/dist/types/components/Storage/FileUploader/UploadTracker/index.d.ts +0 -1
  433. package/dist/types/components/Storage/FileUploader/hooks/index.d.ts +0 -1
  434. package/dist/types/components/Storage/FileUploader/hooks/useFileUploader/index.d.ts +0 -2
  435. package/dist/types/components/Storage/FileUploader/hooks/useFileUploader/types.d.ts +0 -18
  436. package/dist/types/components/Storage/FileUploader/hooks/useFileUploader/useFileUploader.d.ts +0 -9
  437. package/dist/types/components/Storage/FileUploader/index.d.ts +0 -1
  438. package/dist/types/components/Storage/FileUploader/types.d.ts +0 -91
  439. package/dist/types/components/Storage/index.d.ts +0 -1
  440. package/dist/types/components/ThemeProvider/AmplifyContext.d.ts +0 -6
  441. package/dist/types/hooks/actions/constants.d.ts +0 -39
  442. package/dist/types/hooks/actions/shared/types.d.ts +0 -27
  443. package/dist/types/hooks/actions/shared/useTypeCastFields.d.ts +0 -15
  444. package/dist/types/hooks/actions/testModels/model.d.ts +0 -25
  445. package/dist/types/hooks/actions/testModels/schema.d.ts +0 -2
  446. package/dist/types/hooks/actions/testModels/todo.d.ts +0 -13
  447. package/dist/types/hooks/actions/useAuthSignOutAction.d.ts +0 -9
  448. package/dist/types/hooks/actions/useDataStoreCreateAction.d.ts +0 -9
  449. package/dist/types/hooks/actions/useDataStoreDeleteAction.d.ts +0 -10
  450. package/dist/types/hooks/actions/useDataStoreUpdateAction.d.ts +0 -10
  451. package/dist/types/hooks/actions/useNavigateAction.d.ts +0 -15
  452. package/dist/types/hooks/actions/useStateMutationAction.d.ts +0 -10
  453. package/dist/types/hooks/useAmplify.d.ts +0 -6
  454. package/dist/types/hooks/useDataStore.d.ts +0 -18
  455. package/dist/types/primitives/Expander/Expander.d.ts +0 -6
  456. package/dist/types/primitives/Expander/ExpanderItem.d.ts +0 -7
  457. package/dist/types/primitives/Expander/index.d.ts +0 -2
  458. package/dist/types/primitives/Menu/__tests_/menu.test.d.ts +0 -1
  459. package/dist/types/primitives/PhoneNumberField/CountryCodeSelect.d.ts +0 -2
  460. package/dist/types/primitives/Rating/__test__/Rating.test.d.ts +0 -1
  461. package/dist/types/primitives/Rating/__test__/utils.test.d.ts +0 -1
  462. package/dist/types/primitives/Text/__test__/Text.test.d.ts +0 -1
  463. package/dist/types/primitives/shared/datastore.d.ts +0 -7
  464. package/dist/types/primitives/shared/index.d.ts +0 -1
  465. package/dist/types/primitives/shared/types.d.ts +0 -15
  466. package/dist/types/primitives/types/datastore.d.ts +0 -31
  467. package/dist/types/primitives/types/expander.d.ts +0 -51
  468. package/dist/types/primitives/types/tabs.d.ts +0 -63
  469. package/dist/types/studio/findChildOverrides.d.ts +0 -18
  470. package/dist/types/studio/getOverrideProps.d.ts +0 -18
  471. package/dist/types/studio/getOverridesFromVariants.d.ts +0 -20
  472. package/dist/types/studio/index.d.ts +0 -5
  473. package/dist/types/studio/mergeVariantsAndOverrides.d.ts +0 -18
  474. package/dist/types/studio/types.d.ts +0 -18
  475. package/dist/types/styles.d.ts +0 -1
  476. /package/dist/types/components/Authenticator/{ResetPassword → ForgotPassword}/ConfirmResetPassword.d.ts +0 -0
  477. /package/dist/types/components/Authenticator/{ResetPassword/ResetPassword.d.ts → ForgotPassword/ForgotPassword.d.ts} +0 -0
@@ -1 +1,36 @@
1
- import{__rest as e}from"tslib";import*as t from"react";import s from"classnames";import{isFunction as i,classNameModifier as o}from"@aws-amplify/ui";import{ComponentClassNames as a,ComponentText as r}from"../shared/constants.mjs";import{View as m}from"../View/View.mjs";import{Flex as n}from"../Flex/Flex.mjs";import{Button as l}from"../Button/Button.mjs";import{AlertIcon as c}from"./AlertIcon.mjs";import"../Icon/Icon.mjs";import"../Icon/context/IconsContext.mjs";import{useIcons as d}from"../Icon/context/useIcons.mjs";import{IconClose as f}from"../Icon/icons/IconClose.mjs";const p=t.forwardRef(((p,u)=>{var b,{buttonRef:I,children:j,className:h,dismissButtonLabel:v=r.Alert.dismissButtonLabel,hasIcon:A=!0,heading:x,isDismissible:E=!1,onDismiss:N,variation:B}=p,D=e(p,["buttonRef","children","className","dismissButtonLabel","hasIcon","heading","isDismissible","onDismiss","variation"]);const[g,w]=t.useState(!1),C=d("alert"),L=t.useCallback((()=>{w(!g),i(N)&&N()}),[w,N,g]);return g?null:t.createElement(n,Object.assign({className:s(a.Alert,h,o(a.Alert,B)),"data-variation":B,ref:u,role:"alert"},D),A&&t.createElement(c,{variation:B,ariaHidden:!0}),t.createElement(m,{flex:"1"},x&&t.createElement(m,{className:a.AlertHeading},x),t.createElement(m,{className:a.AlertBody},j)),E&&t.createElement(l,{ariaLabel:v,variation:"link",className:a.AlertDismiss,onClick:L,ref:I},null!==(b=null==C?void 0:C.close)&&void 0!==b?b:t.createElement(f,{"aria-hidden":"true"})))}));p.displayName="Alert";export{p as Alert};
1
+ import * as React from 'react';
2
+ import { isFunction, classNames, ComponentClassName, classNameModifier } from '@aws-amplify/ui';
3
+ import { ComponentText } from '../shared/constants.mjs';
4
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
5
+ import { View } from '../View/View.mjs';
6
+ import { Flex } from '../Flex/Flex.mjs';
7
+ import { Button } from '../Button/Button.mjs';
8
+ import { AlertIcon } from './AlertIcon.mjs';
9
+ import '../Icon/Icon.mjs';
10
+ import '../Icon/context/IconsContext.mjs';
11
+ import { useIcons } from '../Icon/context/useIcons.mjs';
12
+ import { IconClose } from '../Icon/icons/IconClose.mjs';
13
+
14
+ const AlertPrimitive = ({ buttonRef, children, className, dismissButtonLabel = ComponentText.Alert.dismissButtonLabel, hasIcon = true, heading, isDismissible = false, onDismiss, variation, ...rest }, ref) => {
15
+ const [dismissed, setDismissed] = React.useState(false);
16
+ const icons = useIcons('alert');
17
+ const dismissAlert = React.useCallback(() => {
18
+ setDismissed(!dismissed);
19
+ if (isFunction(onDismiss)) {
20
+ onDismiss();
21
+ }
22
+ }, [setDismissed, onDismiss, dismissed]);
23
+ return !dismissed ? (React.createElement(Flex, { className: classNames(ComponentClassName.Alert, className, classNameModifier(ComponentClassName.Alert, variation)), ref: ref, role: "alert", ...rest },
24
+ hasIcon && React.createElement(AlertIcon, { variation: variation, ariaHidden: true }),
25
+ React.createElement(View, { flex: "1" },
26
+ heading && (React.createElement(View, { className: ComponentClassName.AlertHeading }, heading)),
27
+ React.createElement(View, { className: ComponentClassName.AlertBody }, children)),
28
+ isDismissible && (React.createElement(Button, { ariaLabel: dismissButtonLabel, variation: "link", className: ComponentClassName.AlertDismiss, onClick: dismissAlert, ref: buttonRef }, icons?.close ?? React.createElement(IconClose, { "aria-hidden": "true" }))))) : null;
29
+ };
30
+ /**
31
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/alert)
32
+ */
33
+ const Alert = primitiveWithForwardRef(AlertPrimitive);
34
+ Alert.displayName = 'Alert';
35
+
36
+ export { Alert };
@@ -1 +1,36 @@
1
- import*as o from"react";import{ComponentClassNames as n}from"../shared/constants.mjs";import"../Icon/Icon.mjs";import"../Icon/context/IconsContext.mjs";import{useIcons as e}from"../Icon/context/useIcons.mjs";import"tslib";import"classnames";import"../View/View.mjs";import{IconCheckCircle as r}from"../Icon/icons/IconCheckCircle.mjs";import{IconError as i}from"../Icon/icons/IconError.mjs";import{IconInfo as c}from"../Icon/icons/IconInfo.mjs";import{IconWarning as t}from"../Icon/icons/IconWarning.mjs";const s=({variation:s,ariaHidden:a})=>{var m,l,d,I;const p=e("alert");let u;switch(s){case"info":u=null!==(m=null==p?void 0:p.info)&&void 0!==m?m:o.createElement(c,{"aria-hidden":a});break;case"error":u=null!==(l=null==p?void 0:p.error)&&void 0!==l?l:o.createElement(i,{"aria-hidden":a});break;case"warning":u=null!==(d=null==p?void 0:p.warning)&&void 0!==d?d:o.createElement(t,{"aria-hidden":a});break;case"success":u=null!==(I=null==p?void 0:p.success)&&void 0!==I?I:o.createElement(r,{"aria-hidden":a})}return u?o.createElement("span",{className:n.AlertIcon},u):null};s.displayName="AlertIcon";export{s as AlertIcon};
1
+ import * as React from 'react';
2
+ import { ComponentClassName } from '@aws-amplify/ui';
3
+ import '../Icon/Icon.mjs';
4
+ import '../Icon/context/IconsContext.mjs';
5
+ import { useIcons } from '../Icon/context/useIcons.mjs';
6
+ import '../View/View.mjs';
7
+ import { IconCheckCircle } from '../Icon/icons/IconCheckCircle.mjs';
8
+ import { IconError } from '../Icon/icons/IconError.mjs';
9
+ import { IconInfo } from '../Icon/icons/IconInfo.mjs';
10
+ import { IconWarning } from '../Icon/icons/IconWarning.mjs';
11
+
12
+ /**
13
+ * @internal For internal Amplify UI use only. May be removed in a future release.
14
+ */
15
+ const AlertIcon = ({ variation, ariaHidden, }) => {
16
+ const icons = useIcons('alert');
17
+ let icon;
18
+ switch (variation) {
19
+ case 'info':
20
+ icon = icons?.info ?? React.createElement(IconInfo, { "aria-hidden": ariaHidden });
21
+ break;
22
+ case 'error':
23
+ icon = icons?.error ?? React.createElement(IconError, { "aria-hidden": ariaHidden });
24
+ break;
25
+ case 'warning':
26
+ icon = icons?.warning ?? React.createElement(IconWarning, { "aria-hidden": ariaHidden });
27
+ break;
28
+ case 'success':
29
+ icon = icons?.success ?? React.createElement(IconCheckCircle, { "aria-hidden": ariaHidden });
30
+ break;
31
+ }
32
+ return icon ? (React.createElement("span", { className: ComponentClassName.AlertIcon }, icon)) : null;
33
+ };
34
+ AlertIcon.displayName = 'AlertIcon';
35
+
36
+ export { AlertIcon };
@@ -1 +1,67 @@
1
- import{__rest as e}from"tslib";import o from"classnames";import*as t from"react";import{isFunction as n}from"@aws-amplify/ui";import{AutocompleteOption as a}from"./AutocompleteOption.mjs";import{AutocompleteMenu as i}from"./AutocompleteMenu.mjs";import{useAutocomplete as l}from"./useAutocomplete.mjs";import{HighlightMatch as r}from"../HighlightMatch/HighlightMatch.mjs";import{SearchField as s}from"../SearchField/SearchField.mjs";import{View as m}from"../View/View.mjs";import{ComponentClassNames as c}from"../shared/constants.mjs";const u=(u,p)=>{var{className:d,defaultValue:h,value:f,isLoading:C=!1,menuSlots:g={},options:O,optionFilter:b,onBlur:v,onChange:I,onClear:S,onClick:j,onSelect:w,onSubmit:M,renderOption:k,testId:A}=u,B=e(u,["className","defaultValue","value","isLoading","menuSlots","options","optionFilter","onBlur","onChange","onClear","onClick","onSelect","onSubmit","renderOption","testId"]);const{activeOptionId:V,autocompleteId:x,composedValue:y,filteredOptions:F,handleOnBlur:E,handleOnClear:D,handleOnClick:N,handleOnChange:L,handleOnKeyDown:H,isControlled:K,isCustomFiltering:$,isMenuOpen:q,listboxId:R,menuId:z,optionBaseId:G,setActiveOption:J,setIsMenuOpen:P,setInternalValue:Q}=l({defaultValue:h,value:f,options:O,optionFilter:b,onBlur:v,onChange:I,onClear:S,onClick:j,onSelect:w,onSubmit:M}),T={role:"combobox","aria-activedescendant":V,"aria-autocomplete":"list","aria-controls":q?z:void 0,"aria-expanded":q,"aria-haspopup":"listbox","aria-owns":q?z:void 0},U=F.map(((o,i)=>{const{id:l,label:s}=o,m=e(o,["id","label"]),c=null!=l?l:`${G}-option-${i}`,u=c===V;return t.createElement(a,Object.assign({isActive:u,id:c,key:c,onClick:()=>{P(!1),J(null),K||Q(s),n(w)&&w(o)},onMouseDown:e=>{e.preventDefault()},onMouseMove:()=>{J(o)}},m),n(k)?k(o,y):$?s:t.createElement(r,{query:y},s))}));return t.createElement(m,{className:o(c.Autocomplete,d),id:x,testId:A},t.createElement(s,Object.assign({hasSearchButton:!1,hasSearchIcon:!0,onBlur:E,onChange:L,onClear:D,onClick:N,onKeyDown:H,ref:p,value:y},T,B)),q?t.createElement(i,Object.assign({id:z,isLoading:C,listboxId:R},g),U):null)},p=t.forwardRef(u);p.displayName="Autocomplete";export{p as Autocomplete,u as AutocompletePrimitive};
1
+ import { isFunction, classNames, ComponentClassName } from '@aws-amplify/ui';
2
+ import * as React from 'react';
3
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
4
+ import { AutocompleteOption } from './AutocompleteOption.mjs';
5
+ import { AutocompleteMenu } from './AutocompleteMenu.mjs';
6
+ import { useAutocomplete } from './useAutocomplete.mjs';
7
+ import { HighlightMatch } from '../HighlightMatch/HighlightMatch.mjs';
8
+ import { SearchField } from '../SearchField/SearchField.mjs';
9
+ import { View } from '../View/View.mjs';
10
+
11
+ const AutocompletePrimitive = ({ className, defaultValue, value, isLoading = false, menuSlots = {}, options, optionFilter, onBlur, onChange, onClear, onClick, onSelect, onSubmit, renderOption, testId, ...rest }, ref) => {
12
+ const { activeOptionId, autocompleteId, composedValue, filteredOptions, handleOnBlur, handleOnClear, handleOnClick, handleOnChange, handleOnKeyDown, isControlled, isCustomFiltering, isMenuOpen, listboxId, menuId, optionBaseId, setActiveOption, setIsMenuOpen, setInternalValue, } = useAutocomplete({
13
+ defaultValue,
14
+ value,
15
+ options,
16
+ optionFilter,
17
+ onBlur,
18
+ onChange,
19
+ onClear,
20
+ onClick,
21
+ onSelect,
22
+ onSubmit,
23
+ });
24
+ const comboboxProps = {
25
+ role: 'combobox',
26
+ 'aria-activedescendant': activeOptionId,
27
+ 'aria-autocomplete': 'list',
28
+ 'aria-controls': isMenuOpen ? menuId : undefined,
29
+ 'aria-expanded': isMenuOpen,
30
+ 'aria-haspopup': 'listbox',
31
+ 'aria-owns': isMenuOpen ? menuId : undefined,
32
+ };
33
+ const Options = filteredOptions.map((option, idx) => {
34
+ const { id, label, ...rest } = option;
35
+ const handleOnClick = () => {
36
+ setIsMenuOpen(false);
37
+ setActiveOption(null);
38
+ if (!isControlled) {
39
+ setInternalValue(label);
40
+ }
41
+ if (isFunction(onSelect)) {
42
+ onSelect(option);
43
+ }
44
+ };
45
+ // This is required. Mousedown event will fire a blur event by default
46
+ // and so the menu will close before the click event on an option gets a chance to fire
47
+ const handleOnMouseDown = (event) => {
48
+ event.preventDefault();
49
+ };
50
+ const handleOnMouseMove = () => {
51
+ setActiveOption(option);
52
+ };
53
+ const optionId = id ?? `${optionBaseId}-option-${idx}`;
54
+ const isActive = optionId === activeOptionId;
55
+ return (React.createElement(AutocompleteOption, { isActive: isActive, id: optionId, key: optionId, onClick: handleOnClick, onMouseDown: handleOnMouseDown, onMouseMove: handleOnMouseMove, ...rest }, isFunction(renderOption) ? (renderOption(option, composedValue)) : isCustomFiltering ? (label) : (React.createElement(HighlightMatch, { query: composedValue }, label))));
56
+ });
57
+ return (React.createElement(View, { className: classNames(ComponentClassName.Autocomplete, className), id: autocompleteId, testId: testId },
58
+ React.createElement(SearchField, { hasSearchButton: false, hasSearchIcon: true, onBlur: handleOnBlur, onChange: handleOnChange, onClear: handleOnClear, onClick: handleOnClick, onKeyDown: handleOnKeyDown, ref: ref, value: composedValue, ...comboboxProps, ...rest }),
59
+ isMenuOpen ? (React.createElement(AutocompleteMenu, { id: menuId, isLoading: isLoading, listboxId: listboxId, ...menuSlots }, Options)) : null));
60
+ };
61
+ /**
62
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/autocomplete)
63
+ */
64
+ const Autocomplete = primitiveWithForwardRef(AutocompletePrimitive);
65
+ Autocomplete.displayName = 'Autocomplete';
66
+
67
+ export { Autocomplete, AutocompletePrimitive };
@@ -1 +1,36 @@
1
- import{__rest as e}from"tslib";import*as t from"react";import{Loader as l}from"../Loader/Loader.mjs";import{ScrollView as a}from"../ScrollView/ScrollView.mjs";import{View as o}from"../View/View.mjs";import{ComponentClassNames as r,ComponentText as m}from"../shared/constants.mjs";const n=t.forwardRef(((n,c)=>{var{ariaLabel:s,children:i,Header:u=null,Footer:p=null,LoadingIndicator:d=null,Empty:E=null,isLoading:g,listboxId:A}=n,L=e(n,["ariaLabel","children","Header","Footer","LoadingIndicator","Empty","isLoading","listboxId"]);return t.createElement(a,Object.assign({className:r.AutocompleteMenu,ref:c},L),g?t.createElement((()=>{const e=null!=d?d:t.createElement(t.Fragment,null,t.createElement(l,null),m.Autocomplete.loadingText);return t.createElement(o,{className:r.AutocompleteMenuLoading},e)}),null):t.createElement(t.Fragment,null,t.createElement((()=>u&&t.createElement(o,{className:r.AutocompleteMenuHeader},u)),null),i.length>0?t.createElement(a,{as:"ul",ariaLabel:s,className:r.AutocompleteMenuOptions,id:A,role:"listbox"},i):t.createElement((()=>E?t.createElement(o,{className:r.AutocompleteMenuEmpty},E):t.createElement(o,{className:r.AutocompleteMenuEmpty},m.Autocomplete.emptyText)),null),t.createElement((()=>p&&t.createElement(o,{className:r.AutocompleteMenuFooter},p)),null)))}));n.displayName="AutocompleteMenu";export{n as AutocompleteMenu};
1
+ import * as React from 'react';
2
+ import { ComponentClassName } from '@aws-amplify/ui';
3
+ import { Loader } from '../Loader/Loader.mjs';
4
+ import { ScrollView } from '../ScrollView/ScrollView.mjs';
5
+ import { View } from '../View/View.mjs';
6
+ import { ComponentText } from '../shared/constants.mjs';
7
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
8
+
9
+ const MenuHeader = ({ children }) => {
10
+ if (!children) {
11
+ return null;
12
+ }
13
+ return (React.createElement(View, { className: ComponentClassName.AutocompleteMenuHeader }, children));
14
+ };
15
+ const MenuFooter = ({ children }) => {
16
+ if (!children) {
17
+ return null;
18
+ }
19
+ return (React.createElement(View, { className: ComponentClassName.AutocompleteMenuFooter }, children));
20
+ };
21
+ const MenuLoading = ({ children }) => {
22
+ return (React.createElement(View, { className: ComponentClassName.AutocompleteMenuLoading }, children ?? (React.createElement(React.Fragment, null,
23
+ React.createElement(Loader, null),
24
+ ComponentText.Autocomplete.loadingText))));
25
+ };
26
+ const MenuEmpty = ({ children }) => (React.createElement(View, { className: ComponentClassName.AutocompleteMenuEmpty }, children ?? ComponentText.Autocomplete.emptyText));
27
+ const AutocompleteMenuPrimitive = ({ ariaLabel, children, Header = null, Footer = null, LoadingIndicator = null, Empty = null, isLoading, listboxId, ...rest }, ref) => {
28
+ return (React.createElement(ScrollView, { className: ComponentClassName.AutocompleteMenu, ref: ref, ...rest }, isLoading ? (React.createElement(MenuLoading, null, LoadingIndicator)) : (React.createElement(React.Fragment, null,
29
+ React.createElement(MenuHeader, null, Header),
30
+ children.length > 0 ? (React.createElement(ScrollView, { as: "ul", ariaLabel: ariaLabel, className: ComponentClassName.AutocompleteMenuOptions, id: listboxId, role: "listbox" }, children)) : (React.createElement(MenuEmpty, null, Empty)),
31
+ React.createElement(MenuFooter, null, Footer)))));
32
+ };
33
+ const AutocompleteMenu = primitiveWithForwardRef(AutocompleteMenuPrimitive);
34
+ AutocompleteMenu.displayName = 'AutocompleteMenu';
35
+
36
+ export { AutocompleteMenu };
@@ -1 +1,12 @@
1
- import{__rest as e}from"tslib";import t from"classnames";import*as o from"react";import{View as i}from"../View/View.mjs";import{ComponentClassNames as r}from"../shared/constants.mjs";import{classNameModifierByFlag as s}from"@aws-amplify/ui";const a=o.forwardRef(((a,m)=>{var{children:c,className:l,isActive:p}=a,n=e(a,["children","className","isActive"]);return o.createElement(i,Object.assign({"aria-selected":p,as:"li",role:"option",className:t(r.AutocompleteMenuOption,s(r.AutocompleteMenuOption,"active",p),l),ref:m},n),c)}));a.displayName="AutocompleteOption";export{a as AutocompleteOption};
1
+ import { classNames, ComponentClassName, classNameModifierByFlag } from '@aws-amplify/ui';
2
+ import * as React from 'react';
3
+ import { View } from '../View/View.mjs';
4
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
5
+
6
+ const AutocompleteOptionPrimitive = ({ children, className, isActive, ...rest }, ref) => {
7
+ return (React.createElement(View, { "aria-selected": isActive, as: "li", role: "option", className: classNames(ComponentClassName.AutocompleteMenuOption, classNameModifierByFlag(ComponentClassName.AutocompleteMenuOption, 'active', isActive), className), ref: ref, ...rest }, children));
8
+ };
9
+ const AutocompleteOption = primitiveWithForwardRef(AutocompleteOptionPrimitive);
10
+ AutocompleteOption.displayName = 'AutocompleteOption';
11
+
12
+ export { AutocompleteOption };
@@ -1 +1,188 @@
1
- import*as e from"react";import{isFunction as t}from"@aws-amplify/ui";import{ARROW_UP as o,ARROW_DOWN as n,ENTER_KEY as l,ESCAPE_KEY as s}from"../shared/constants.mjs";import{strHasLength as i}from"../shared/utils.mjs";import{useStableId as a}from"../utils/useStableId.mjs";const u=new Set([n,o,l,s]),c=({defaultValue:c="",value:r,options:d,optionFilter:m,onBlur:f,onChange:p,onClear:h,onClick:g,onSelect:b,onSubmit:v})=>{var C;const I=void 0!==r,[k,w]=e.useState(c),O=I?r:k,[B,E]=e.useState(!1),[y,S]=e.useState(null),T=t(m),H=e.useMemo((()=>{var e;const t=T?e=>m(e,O):e=>{const{label:t}=e;return null==t?void 0:t.toLocaleLowerCase().includes(null==O?void 0:O.toLocaleLowerCase())};return null!==(e=null==d?void 0:d.filter(t))&&void 0!==e?e:[]}),[O,m,T,d]),L=a(),M=a(),V=a(),j=a(),x=H.findIndex((e=>e===y)),D=null!==(C=null==y?void 0:y.id)&&void 0!==C?C:-1!==x?`${j}-option-${x}`:void 0,F=e.useCallback((e=>{E(!1),S(null),t(f)&&f(e)}),[f]),R=e.useCallback((e=>{S(null),E(!0),I||w(e.target.value),t(p)&&p(e)}),[I,p]),$=e.useCallback((()=>{I||w(""),t(h)&&h()}),[I,h]),A=e.useCallback((e=>{E(!0),t(g)&&g(e)}),[g]);return e.useEffect((()=>{const e=document.getElementById(L),t=document.getElementById(V);if(t&&B&&e){const{bottom:o}=t.getBoundingClientRect(),{offsetParent:n,offsetTop:l}=e;n===document.body&&o>document.documentElement.clientHeight&&window.scrollTo({top:Math.min(o-document.documentElement.clientHeight+window.scrollY+20,l),behavior:"smooth"})}}),[L,B,V]),e.useEffect((()=>{const e=document.getElementById(M),t=i(D)?document.getElementById(D):null;if(t&&e){const{scrollTop:o,clientHeight:n}=e,{offsetHeight:l,offsetTop:s}=t,{top:i,bottom:a}=t.getBoundingClientRect();o>s&&(e.scrollTop=s),o+n<s+l&&(e.scrollTop=s+l-n),(i<0||a>document.documentElement.clientHeight)&&t.scrollIntoView({behavior:"smooth",block:"nearest"})}}),[D,M]),{activeOptionId:D,autocompleteId:L,composedValue:O,filteredOptions:H,handleOnBlur:F,handleOnClear:$,handleOnClick:A,handleOnChange:R,handleOnKeyDown:e=>{const{key:i}=e;if(u.has(i))switch(e.preventDefault(),i){case s:B?(E(!1),S(null)):$();break;case l:if(y){const{label:e}=y;I||w(e),t(b)&&b(y)}else t(v)&&v(O);E(!1),S(null);break;case n:{if(H.length<=0)return;E(!0);const e=x>=H.length-1?0:x+1;S(H[e]);break}case o:{if(H.length<=0)return;E(!0);const e=x<=0?H.length-1:x-1;S(H[e])}}},isControlled:I,isCustomFiltering:T,isMenuOpen:B,listboxId:M,menuId:V,optionBaseId:j,setActiveOption:S,setIsMenuOpen:E,setInternalValue:w}};export{c as useAutocomplete};
1
+ import * as React from 'react';
2
+ import { isFunction } from '@aws-amplify/ui';
3
+ import { ARROW_UP, ARROW_DOWN, ENTER_KEY, ESCAPE_KEY } from '../shared/constants.mjs';
4
+ import { strHasLength } from '../shared/utils.mjs';
5
+ import { useStableId } from '../utils/useStableId.mjs';
6
+
7
+ const DEFAULT_KEYS = new Set([ARROW_DOWN, ARROW_UP, ENTER_KEY, ESCAPE_KEY]);
8
+ const useAutocomplete = ({ defaultValue = '', value, options, optionFilter, onBlur, onChange, onClear, onClick, onSelect, onSubmit, }) => {
9
+ const isControlled = value !== undefined;
10
+ const [internalValue, setInternalValue] = React.useState(defaultValue);
11
+ const composedValue = isControlled ? value : internalValue;
12
+ const [isMenuOpen, setIsMenuOpen] = React.useState(false);
13
+ const [activeOption, setActiveOption] = React.useState(null);
14
+ const isCustomFiltering = isFunction(optionFilter);
15
+ const filteredOptions = React.useMemo(() => {
16
+ const defaultFilter = (option) => {
17
+ const { label } = option;
18
+ return label
19
+ ?.toLocaleLowerCase()
20
+ .includes(composedValue?.toLocaleLowerCase());
21
+ };
22
+ const filter = isCustomFiltering
23
+ ? (option) => optionFilter(option, composedValue)
24
+ : defaultFilter;
25
+ return options?.filter(filter) ?? [];
26
+ }, [composedValue, optionFilter, isCustomFiltering, options]);
27
+ const autocompleteId = useStableId();
28
+ const listboxId = useStableId();
29
+ const menuId = useStableId();
30
+ const optionBaseId = useStableId();
31
+ const activeIndex = filteredOptions.findIndex((option) => option === activeOption);
32
+ const activeOptionId = activeOption?.id ??
33
+ (activeIndex !== -1 ? `${optionBaseId}-option-${activeIndex}` : undefined);
34
+ const handleOnBlur = React.useCallback((event) => {
35
+ setIsMenuOpen(false);
36
+ setActiveOption(null);
37
+ if (isFunction(onBlur)) {
38
+ onBlur(event);
39
+ }
40
+ }, [onBlur]);
41
+ const handleOnChange = React.useCallback((event) => {
42
+ setActiveOption(null);
43
+ setIsMenuOpen(true);
44
+ if (!isControlled) {
45
+ setInternalValue(event.target.value);
46
+ }
47
+ if (isFunction(onChange)) {
48
+ onChange(event);
49
+ }
50
+ }, [isControlled, onChange]);
51
+ const handleOnClear = React.useCallback(() => {
52
+ if (!isControlled) {
53
+ setInternalValue('');
54
+ }
55
+ if (isFunction(onClear)) {
56
+ onClear();
57
+ }
58
+ }, [isControlled, onClear]);
59
+ const handleOnClick = React.useCallback((event) => {
60
+ setIsMenuOpen(true);
61
+ if (isFunction(onClick)) {
62
+ onClick(event);
63
+ }
64
+ }, [onClick]);
65
+ const handleOnKeyDown = (event) => {
66
+ const { key } = event;
67
+ if (!DEFAULT_KEYS.has(key)) {
68
+ return;
69
+ }
70
+ event.preventDefault();
71
+ switch (key) {
72
+ case ESCAPE_KEY: {
73
+ if (isMenuOpen) {
74
+ setIsMenuOpen(false);
75
+ setActiveOption(null);
76
+ }
77
+ else {
78
+ handleOnClear();
79
+ }
80
+ break;
81
+ }
82
+ case ENTER_KEY: {
83
+ if (!activeOption) {
84
+ if (isFunction(onSubmit)) {
85
+ onSubmit(composedValue);
86
+ }
87
+ }
88
+ else {
89
+ const { label } = activeOption;
90
+ if (!isControlled) {
91
+ setInternalValue(label);
92
+ }
93
+ if (isFunction(onSelect)) {
94
+ onSelect(activeOption);
95
+ }
96
+ }
97
+ setIsMenuOpen(false);
98
+ setActiveOption(null);
99
+ break;
100
+ }
101
+ case ARROW_DOWN: {
102
+ if (filteredOptions.length <= 0) {
103
+ return;
104
+ }
105
+ setIsMenuOpen(true);
106
+ const newActiveIndex = activeIndex >= filteredOptions.length - 1 ? 0 : activeIndex + 1;
107
+ setActiveOption(filteredOptions[newActiveIndex]);
108
+ break;
109
+ }
110
+ case ARROW_UP: {
111
+ if (filteredOptions.length <= 0) {
112
+ return;
113
+ }
114
+ setIsMenuOpen(true);
115
+ const newActiveIndex = activeIndex <= 0 ? filteredOptions.length - 1 : activeIndex - 1;
116
+ setActiveOption(filteredOptions[newActiveIndex]);
117
+ }
118
+ }
119
+ };
120
+ // The window will scroll down to the right place to show the whole menu
121
+ // if space is not enough in current viewport
122
+ React.useEffect(() => {
123
+ const autocompleteElement = document.getElementById(autocompleteId);
124
+ const menuElement = document.getElementById(menuId);
125
+ if (menuElement && isMenuOpen && autocompleteElement) {
126
+ const { bottom } = menuElement.getBoundingClientRect();
127
+ const { offsetParent, offsetTop } = autocompleteElement;
128
+ if (offsetParent === document.body &&
129
+ bottom > document.documentElement.clientHeight) {
130
+ window.scrollTo({
131
+ top: Math.min(bottom -
132
+ document.documentElement.clientHeight +
133
+ window.scrollY +
134
+ 20, // Add 20 gap between menu bottom and window viewport bottom
135
+ offsetTop),
136
+ behavior: 'smooth',
137
+ });
138
+ }
139
+ }
140
+ }, [autocompleteId, isMenuOpen, menuId]);
141
+ // This will make the menu able to scroll with keyboard,
142
+ // and scroll each option into window viewport if necessary
143
+ React.useEffect(() => {
144
+ const listboxElement = document.getElementById(listboxId);
145
+ const activeOptionElement = strHasLength(activeOptionId)
146
+ ? document.getElementById(activeOptionId)
147
+ : null;
148
+ if (activeOptionElement && listboxElement) {
149
+ const { scrollTop, clientHeight } = listboxElement;
150
+ const { offsetHeight, offsetTop } = activeOptionElement;
151
+ const { top, bottom } = activeOptionElement.getBoundingClientRect();
152
+ if (scrollTop > offsetTop) {
153
+ listboxElement.scrollTop = offsetTop;
154
+ }
155
+ if (scrollTop + clientHeight < offsetTop + offsetHeight) {
156
+ listboxElement.scrollTop = offsetTop + offsetHeight - clientHeight;
157
+ }
158
+ if (top < 0 || bottom > document.documentElement.clientHeight) {
159
+ activeOptionElement.scrollIntoView({
160
+ behavior: 'smooth',
161
+ block: 'nearest',
162
+ });
163
+ }
164
+ }
165
+ }, [activeOptionId, listboxId]);
166
+ return {
167
+ activeOptionId,
168
+ autocompleteId,
169
+ composedValue,
170
+ filteredOptions,
171
+ handleOnBlur,
172
+ handleOnClear,
173
+ handleOnClick,
174
+ handleOnChange,
175
+ handleOnKeyDown,
176
+ isControlled,
177
+ isCustomFiltering,
178
+ isMenuOpen,
179
+ listboxId,
180
+ menuId,
181
+ optionBaseId,
182
+ setActiveOption,
183
+ setIsMenuOpen,
184
+ setInternalValue,
185
+ };
186
+ };
187
+
188
+ export { useAutocomplete };
@@ -1 +1,16 @@
1
- import{__rest as a}from"tslib";import*as e from"react";import r from"classnames";import{classNameModifier as s}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,o)=>{var{className:n,children:c,variation:d,size:f}=m,l=a(m,["className","children","variation","size"]);const p=r(i.Badge,n,s(i.Badge,d),s(i.Badge,f));return e.createElement(t,Object.assign({as:"span",className:p,"data-variation":d,"data-size":f,ref:o},l),c)}));m.displayName="Badge";export{m as Badge};
1
+ import * as React from 'react';
2
+ import { classNames, ComponentClassName, classNameModifier } from '@aws-amplify/ui';
3
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
4
+ import { View } from '../View/View.mjs';
5
+
6
+ const BadgePrimitive = ({ className, children, variation, size, ...rest }, ref) => {
7
+ const componentClasses = classNames(ComponentClassName.Badge, className, classNameModifier(ComponentClassName.Badge, variation), classNameModifier(ComponentClassName.Badge, size));
8
+ return (React.createElement(View, { as: "span", className: componentClasses, ref: ref, ...rest }, children));
9
+ };
10
+ /**
11
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/badge)
12
+ */
13
+ const Badge = primitiveWithForwardRef(BadgePrimitive);
14
+ Badge.displayName = 'Badge';
15
+
16
+ export { Badge };
@@ -1 +1,18 @@
1
- import{__rest as a}from"tslib";import*as r from"react";import e from"classnames";import{ComponentClassNames as s}from"../shared/constants.mjs";import{View as m}from"../View/View.mjs";const t=r.forwardRef(((t,c)=>{var l,{className:o,children:i}=t,n=a(t,["className","children"]);const d=e(s.Breadcrumbs,o),b=null!==(l=n["aria-label"])&&void 0!==l?l:"Breadcrumb";return r.createElement(m,Object.assign({},n,{as:"nav","aria-label":b,className:d,ref:c}),r.createElement(m,{as:"ol",className:s.BreadcrumbsList},i))}));t.displayName="Breadcrumbs.Container";export{t as BreadcrumbContainer};
1
+ import * as React from 'react';
2
+ import { classNames, ComponentClassName } from '@aws-amplify/ui';
3
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
4
+ import { View } from '../View/View.mjs';
5
+
6
+ const BreadcrumbContainerPrimitive = ({ className, children, ...rest }, ref) => {
7
+ const componentClasses = classNames(ComponentClassName.Breadcrumbs, className);
8
+ const ariaLabel = rest['aria-label'] ?? 'Breadcrumb';
9
+ return (React.createElement(View, { ...rest, as: "nav", "aria-label": ariaLabel, className: componentClasses, ref: ref },
10
+ React.createElement(View, { as: "ol", className: ComponentClassName.BreadcrumbsList }, children)));
11
+ };
12
+ /**
13
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/breadcrumbs)
14
+ */
15
+ const BreadcrumbContainer = primitiveWithForwardRef(BreadcrumbContainerPrimitive);
16
+ BreadcrumbContainer.displayName = 'Breadcrumbs.Container';
17
+
18
+ export { BreadcrumbContainer };
@@ -1 +1,16 @@
1
- import{__rest as r}from"tslib";import*as s from"react";import e from"classnames";import{ComponentClassNames as a}from"../shared/constants.mjs";import{View as m}from"../View/View.mjs";const t=s.forwardRef(((t,o)=>{var{className:c,children:i,as:l="li"}=t,n=r(t,["className","children","as"]);const f=e(a.BreadcrumbsItem,c);return s.createElement(m,Object.assign({},n,{as:l,className:f,ref:o}),i)}));t.displayName="Breadcrumbs.Item";export{t as BreadcrumbItem};
1
+ import * as React from 'react';
2
+ import { classNames, ComponentClassName } from '@aws-amplify/ui';
3
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
4
+ import { View } from '../View/View.mjs';
5
+
6
+ const BreadcrumbItemPrimitive = ({ className, children, as = 'li', ...rest }, ref) => {
7
+ const componentClasses = classNames(ComponentClassName.BreadcrumbsItem, className);
8
+ return (React.createElement(View, { ...rest, as: as, className: componentClasses, ref: ref }, children));
9
+ };
10
+ /**
11
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/breadcrumbs)
12
+ */
13
+ const BreadcrumbItem = primitiveWithForwardRef(BreadcrumbItemPrimitive);
14
+ BreadcrumbItem.displayName = 'Breadcrumbs.Item';
15
+
16
+ export { BreadcrumbItem };
@@ -1 +1,24 @@
1
- import{__rest as r}from"tslib";import*as e from"react";import s from"classnames";import{classNameModifierByFlag as a}from"@aws-amplify/ui";import{ComponentClassNames as t}from"../shared/constants.mjs";import{Link as m}from"../Link/Link.mjs";import{Text as i}from"../Text/Text.mjs";const n=e.forwardRef(((n,c)=>{var o,f,{className:l,children:u,href:p,isCurrent:d}=n,b=r(n,["className","children","href","isCurrent"]);const h=s(t.BreadcrumbsLink,a(t.BreadcrumbsLink,"current",d),l);if(d){const r=null!==(o=b["aria-current"])&&void 0!==o?o:"page",s=null!==(f=b.as)&&void 0!==f?f:"span";return e.createElement(i,Object.assign({},b,{as:s,"aria-current":r,className:h,ref:c}),u)}return e.createElement(m,Object.assign({},b,{className:h,ref:c,href:p}),u)}));n.displayName="Breadcrumbs.Link";export{n as BreadcrumbLink};
1
+ import * as React from 'react';
2
+ import { classNames, ComponentClassName, classNameModifierByFlag } from '@aws-amplify/ui';
3
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
4
+ import { Link } from '../Link/Link.mjs';
5
+ import { Text } from '../Text/Text.mjs';
6
+
7
+ const BreadcrumbLinkPrimitive = ({ className, children, href, isCurrent, ...rest }, ref) => {
8
+ const componentClasses = classNames(ComponentClassName.BreadcrumbsLink, classNameModifierByFlag(ComponentClassName.BreadcrumbsLink, 'current', isCurrent), className);
9
+ if (isCurrent) {
10
+ const ariaCurrent = rest['aria-current'] ?? 'page';
11
+ const as = rest.as ?? 'span';
12
+ return (React.createElement(Text, { ...rest, as: as, "aria-current": ariaCurrent, className: componentClasses, ref: ref }, children));
13
+ }
14
+ else {
15
+ return (React.createElement(Link, { ...rest, className: componentClasses, ref: ref, href: href }, children));
16
+ }
17
+ };
18
+ /**
19
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/breadcrumbs)
20
+ */
21
+ const BreadcrumbLink = primitiveWithForwardRef(BreadcrumbLinkPrimitive);
22
+ BreadcrumbLink.displayName = 'Breadcrumbs.Link';
23
+
24
+ export { BreadcrumbLink };
@@ -1 +1,16 @@
1
- import{__rest as r}from"tslib";import*as a from"react";import e from"classnames";import{ComponentClassNames as s}from"../shared/constants.mjs";import{View as m}from"../View/View.mjs";const t=a.forwardRef(((t,o)=>{var i,{className:c,children:n="/",as:d="span"}=t,l=r(t,["className","children","as"]);const p=null!==(i=l["aria-hidden"])&&void 0!==i?i:"true";return a.createElement(m,Object.assign({},l,{as:d,ref:o,"aria-hidden":p,className:e(s.BreadcrumbsSeparator,c)}),n)}));t.displayName="Breadcrumbs.Separator";export{t as BreadcrumbSeparator};
1
+ import * as React from 'react';
2
+ import { classNames, ComponentClassName } from '@aws-amplify/ui';
3
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
4
+ import { View } from '../View/View.mjs';
5
+
6
+ const BreadcrumbSeparatorPrimitive = ({ className, children = '/', as = 'span', ...rest }, ref) => {
7
+ const ariaHidden = rest['aria-hidden'] ?? 'true';
8
+ return (React.createElement(View, { ...rest, as: as, ref: ref, "aria-hidden": ariaHidden, className: classNames(ComponentClassName.BreadcrumbsSeparator, className) }, children));
9
+ };
10
+ /**
11
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/breadcrumbs)
12
+ */
13
+ const BreadcrumbSeparator = primitiveWithForwardRef(BreadcrumbSeparatorPrimitive);
14
+ BreadcrumbSeparator.displayName = 'Breadcrumbs.Separator';
15
+
16
+ export { BreadcrumbSeparator };
@@ -1 +1,28 @@
1
- import{__rest as r}from"tslib";import*as e from"react";import{BreadcrumbItem as a}from"./BreadcrumbItem.mjs";import{BreadcrumbLink as t}from"./BreadcrumbLink.mjs";import{BreadcrumbSeparator as m}from"./BreadcrumbSeparator.mjs";import{BreadcrumbContainer as s}from"./BreadcrumbContainer.mjs";const o=Object.assign(e.forwardRef(((o,l)=>{var n,{className:i,items:c,separator:p=e.createElement(m,null)}=o,u=r(o,["className","items","separator"]);const b=null!==(n=u["aria-label"])&&void 0!==n?n:"Breadcrumb";return e.createElement(s,Object.assign({},u,{"aria-label":b,className:i,ref:l}),null==c?void 0:c.map((({href:r,label:m},s)=>{const o=c.length-1===s;return e.createElement(a,{key:`${r}${s}`},e.createElement(t,{href:r,isCurrent:o},m),o?null:p)})))})),{Item:a,Link:t,Separator:m,Container:s});o.displayName="Breadcrumbs";export{o as Breadcrumbs};
1
+ import * as React from 'react';
2
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
3
+ import { BreadcrumbItem } from './BreadcrumbItem.mjs';
4
+ import { BreadcrumbLink } from './BreadcrumbLink.mjs';
5
+ import { BreadcrumbSeparator } from './BreadcrumbSeparator.mjs';
6
+ import { BreadcrumbContainer } from './BreadcrumbContainer.mjs';
7
+
8
+ const BreadcrumbsPrimitive = ({ className, items, separator = React.createElement(BreadcrumbSeparator, null), ...rest }, ref) => {
9
+ const ariaLabel = rest['aria-label'] ?? 'Breadcrumb';
10
+ return (React.createElement(BreadcrumbContainer, { ...rest, "aria-label": ariaLabel, className: className, ref: ref }, items?.map(({ href, label }, idx) => {
11
+ const isCurrent = items.length - 1 === idx;
12
+ return (React.createElement(BreadcrumbItem, { key: `${href}${idx}` },
13
+ React.createElement(BreadcrumbLink, { href: href, isCurrent: isCurrent }, label),
14
+ isCurrent ? null : separator));
15
+ })));
16
+ };
17
+ /**
18
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/breadcrumbs)
19
+ */
20
+ const Breadcrumbs = Object.assign(primitiveWithForwardRef(BreadcrumbsPrimitive), {
21
+ Item: BreadcrumbItem,
22
+ Link: BreadcrumbLink,
23
+ Separator: BreadcrumbSeparator,
24
+ Container: BreadcrumbContainer,
25
+ });
26
+ Breadcrumbs.displayName = 'Breadcrumbs';
27
+
28
+ export { Breadcrumbs };
@@ -1 +1,33 @@
1
- import{__rest as t}from"tslib";import e from"classnames";import*as i from"react";import{classNameModifier as a,classNameModifierByFlag as o}from"@aws-amplify/ui";import{ComponentClassNames as s}from"../shared/constants.mjs";import{useFieldset as l}from"../Fieldset/useFieldset.mjs";import{Flex as r}from"../Flex/Flex.mjs";import{Loader as n}from"../Loader/Loader.mjs";import{View as d}from"../View/View.mjs";const m=["link","primary",void 0],u=i.forwardRef(((u,p)=>{var c,{className:f,children:b,colorTheme:h,isFullWidth:B=!1,isDisabled:F,isLoading:g,loadingText:v="",size:j,type:w="button",variation:y}=u,x=t(u,["className","children","colorTheme","isFullWidth","isDisabled","isLoading","loadingText","size","type","variation"]);const L=m.includes(y)&&h?`${null!=y?y:"outlined"}--${h}`:void 0,{isFieldsetDisabled:N}=l(),z=N||(null!==(c=null!=F?F:g)&&void 0!==c?c:x.disabled),D=e(s.Button,s.FieldGroupControl,a(s.Button,y),a(s.Button,L),a(s.Button,j),o(s.Button,"disabled",z),o(s.Button,"loading",g),o(s.Button,"fullwidth",B),f);return i.createElement(d,Object.assign({ref:p,as:"button",className:D,"data-fullwidth":B,"data-loading":g,"data-size":j,"data-variation":y,isDisabled:z,type:w},x),g?i.createElement(r,{as:"span",className:s.ButtonLoaderWrapper},i.createElement(n,{size:j}),v||null):b)}));u.displayName="Button";export{u as Button};
1
+ import * as React from 'react';
2
+ import { classNames, ComponentClassName, classNameModifier, classNameModifierByFlag } from '@aws-amplify/ui';
3
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
4
+ import { useFieldset } from '../Fieldset/useFieldset.mjs';
5
+ import { Flex } from '../Flex/Flex.mjs';
6
+ import { Loader } from '../Loader/Loader.mjs';
7
+ import { View } from '../View/View.mjs';
8
+
9
+ // These variations support colorThemes. 'undefined' accounts for our
10
+ // 'default' variation which is not named.
11
+ const supportedVariations = ['link', 'primary', undefined];
12
+ const ButtonPrimitive = ({ className, children, colorTheme, isFullWidth = false, isDisabled, isLoading, loadingText = '', size, type = 'button', variation, ...rest }, ref) => {
13
+ // Creates our colorTheme modifier string based on if the variation
14
+ // supports colorThemes and a colorTheme is used.
15
+ const colorThemeModifier = supportedVariations.includes(variation) && colorTheme
16
+ ? `${variation ?? 'outlined'}--${colorTheme}`
17
+ : undefined;
18
+ const { isFieldsetDisabled } = useFieldset();
19
+ const shouldBeDisabled = isFieldsetDisabled
20
+ ? isFieldsetDisabled
21
+ : isDisabled ?? isLoading ?? rest['disabled'];
22
+ const componentClasses = classNames(ComponentClassName.Button, ComponentClassName.FieldGroupControl, classNameModifier(ComponentClassName.Button, variation), classNameModifier(ComponentClassName.Button, colorThemeModifier), classNameModifier(ComponentClassName.Button, size), classNameModifierByFlag(ComponentClassName.Button, 'disabled', shouldBeDisabled), classNameModifierByFlag(ComponentClassName.Button, 'loading', isLoading), classNameModifierByFlag(ComponentClassName.Button, 'fullwidth', isFullWidth), className);
23
+ return (React.createElement(View, { ref: ref, as: "button", className: componentClasses, isDisabled: shouldBeDisabled, type: type, ...rest }, isLoading ? (React.createElement(Flex, { as: "span", className: ComponentClassName.ButtonLoaderWrapper },
24
+ React.createElement(Loader, { size: size }),
25
+ loadingText ? loadingText : null)) : (children)));
26
+ };
27
+ /**
28
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/button)
29
+ */
30
+ const Button = primitiveWithForwardRef(ButtonPrimitive);
31
+ Button.displayName = 'Button';
32
+
33
+ export { Button };
@@ -1 +1,19 @@
1
- import{__rest as r}from"tslib";import*as e from"react";import o from"classnames";import{ComponentClassNames as a}from"../shared/constants.mjs";import{Flex as t}from"../Flex/Flex.mjs";const s=e.forwardRef(((s,i)=>{var{className:n,children:m,role:l="group",size:c,variation:p}=s,f=r(s,["className","children","role","size","variation"]);return e.createElement(t,Object.assign({className:o(a.ButtonGroup,n),role:l,ref:i},f),e.Children.map(m,(r=>{if(e.isValidElement(r)){const{size:o=c,variation:a=p}=r.props;return e.cloneElement(r,{size:o,variation:a})}return r})))}));s.displayName="ButtonGroup";export{s as ButtonGroup};
1
+ import * as React from 'react';
2
+ import { classNames, ComponentClassName } from '@aws-amplify/ui';
3
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
4
+ import { Flex } from '../Flex/Flex.mjs';
5
+
6
+ const ButtonGroupPrimitive = ({ className, children, role = 'group', size: _size, variation: _variation, ...rest }, ref) => (React.createElement(Flex, { className: classNames(ComponentClassName.ButtonGroup, className), role: role, ref: ref, ...rest }, React.Children.map(children, (child) => {
7
+ if (React.isValidElement(child)) {
8
+ const { size = _size, variation = _variation } = child.props;
9
+ return React.cloneElement(child, { size, variation });
10
+ }
11
+ return child;
12
+ })));
13
+ /**
14
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/button#buttongroup)
15
+ */
16
+ const ButtonGroup = primitiveWithForwardRef(ButtonGroupPrimitive);
17
+ ButtonGroup.displayName = 'ButtonGroup';
18
+
19
+ export { ButtonGroup };
@@ -1 +1,15 @@
1
- import{__rest as a}from"tslib";import r from"classnames";import*as i from"react";import{classNameModifier as m}from"@aws-amplify/ui";import{ComponentClassNames as s}from"../shared/constants.mjs";import{View as e}from"../View/View.mjs";const t=i.forwardRef(((t,o)=>{var{className:n,children:c,variation:f}=t,l=a(t,["className","children","variation"]);return i.createElement(e,Object.assign({className:r(s.Card,m(s.Card,f),n),"data-variation":f,ref:o},l),c)}));t.displayName="Card";export{t as Card};
1
+ import { classNames, ComponentClassName, classNameModifier } from '@aws-amplify/ui';
2
+ import * as React from 'react';
3
+ import { View } from '../View/View.mjs';
4
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
5
+
6
+ const CardPrimitive = ({ className, children, variation, ...rest }, ref) => {
7
+ return (React.createElement(View, { className: classNames(ComponentClassName.Card, classNameModifier(ComponentClassName.Card, variation), className), ref: ref, ...rest }, children));
8
+ };
9
+ /**
10
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/card)
11
+ */
12
+ const Card = primitiveWithForwardRef(CardPrimitive);
13
+ Card.displayName = 'Card';
14
+
15
+ export { Card };