@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,42 @@
1
- import{__rest as e}from"tslib";import*as r from"react";import i from"classnames";import{classNameModifier as t}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 o}from"../Field/FieldErrorMessage.mjs";import"../Field/Field.mjs";import{Flex as m}from"../Flex/Flex.mjs";import{Label as a}from"../Label/Label.mjs";import{Select as d}from"../Select/Select.mjs";import{splitPrimitiveProps as n}from"../utils/splitPrimitiveProps.mjs";import{useStableId as p}from"../utils/useStableId.mjs";const c=r.forwardRef(((c,f)=>{const{children:F,className:h,descriptiveText:b,errorMessage:u,hasError:j=!1,id:E,label:v,labelHidden:g=!1,options:y,size:S,testId:x,inputStyles:I}=c,z=e(c,["children","className","descriptiveText","errorMessage","hasError","id","label","labelHidden","options","size","testId","inputStyles"]),H=p(E),M=p(),N=b?M:void 0,{styleProps:w,rest:P}=n(z);return r.createElement(m,Object.assign({className:i(s.Field,t(s.Field,S),s.SelectField,h),"data-size":S,testId:x},w),r.createElement(a,{htmlFor:H,visuallyHidden:g},v),r.createElement(l,{id:M,labelHidden:g,descriptiveText:b}),r.createElement(d,Object.assign({"aria-describedby":N,hasError:j,id:H,ref:f,size:S},P,I),(({children:e,options:i})=>e?((null==i?void 0:i.length)&&console.warn("Amplify UI: <SelectField> component defaults to rendering children over `options`. When using the `options` prop, omit children."),e):null==i?void 0:i.map(((e,i)=>r.createElement("option",{label:e,value:e,key:`${e}-${i}`},e))))({children:F,options:y})),r.createElement(o,{hasError:j,errorMessage:u}))}));c.displayName="SelectField";export{c as SelectField};
1
+ import * as React from 'react';
2
+ import { classNames, ComponentClassName, 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 { Flex } from '../Flex/Flex.mjs';
8
+ import { Label } from '../Label/Label.mjs';
9
+ import { Select } from '../Select/Select.mjs';
10
+ import { splitPrimitiveProps } from '../utils/splitPrimitiveProps.mjs';
11
+ import { useStableId } from '../utils/useStableId.mjs';
12
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
13
+
14
+ const selectFieldChildren = ({ children, options, }) => {
15
+ if (children) {
16
+ if (options?.length) {
17
+ // eslint-disable-next-line no-console
18
+ console.warn('Amplify UI: <SelectField> component defaults to rendering children over `options`. When using the `options` prop, omit children.');
19
+ }
20
+ return children;
21
+ }
22
+ return options?.map((option, index) => (React.createElement("option", { label: option, value: option, key: `${option}-${index}` }, option)));
23
+ };
24
+ const SelectFieldPrimitive = (props, ref) => {
25
+ const { children, className, descriptiveText, errorMessage, hasError = false, id, label, labelHidden = false, options, size, testId, inputStyles, ..._rest } = props;
26
+ const fieldId = useStableId(id);
27
+ const descriptionId = useStableId();
28
+ const ariaDescribedBy = descriptiveText ? descriptionId : undefined;
29
+ const { styleProps, rest } = splitPrimitiveProps(_rest);
30
+ return (React.createElement(Flex, { className: classNames(ComponentClassName.Field, classNameModifier(ComponentClassName.Field, size), ComponentClassName.SelectField, className), testId: testId, ...styleProps },
31
+ React.createElement(Label, { htmlFor: fieldId, visuallyHidden: labelHidden }, label),
32
+ React.createElement(FieldDescription, { id: descriptionId, labelHidden: labelHidden, descriptiveText: descriptiveText }),
33
+ React.createElement(Select, { "aria-describedby": ariaDescribedBy, hasError: hasError, id: fieldId, ref: ref, size: size, ...rest, ...inputStyles }, selectFieldChildren({ children, options })),
34
+ React.createElement(FieldErrorMessage, { hasError: hasError, errorMessage: errorMessage })));
35
+ };
36
+ /**
37
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/selectfield)
38
+ */
39
+ const SelectField = primitiveWithForwardRef(SelectFieldPrimitive);
40
+ SelectField.displayName = 'SelectField';
41
+
42
+ export { SelectField };
@@ -1 +1,77 @@
1
- import{__rest as e}from"tslib";import r from"classnames";import*as t from"@radix-ui/react-slider";import*as i from"react";import{sanitizeNamespaceImport as a,isFunction as l,classNameModifier as o}from"@aws-amplify/ui";import{ComponentClassNames as s}from"../shared/constants.mjs";import"../Field/FieldClearButton.mjs";import{FieldDescription as d}from"../Field/FieldDescription.mjs";import{FieldErrorMessage as m}from"../Field/FieldErrorMessage.mjs";import"../Field/Field.mjs";import{FieldGroup as n}from"../FieldGroup/FieldGroup.mjs";import{Flex as c}from"../Flex/Flex.mjs";import{Label as u}from"../Label/Label.mjs";import{splitPrimitiveProps as p}from"../utils/splitPrimitiveProps.mjs";import{View as F}from"../View/View.mjs";import{useStableId as b}from"../utils/useStableId.mjs";import{useFieldset as f}from"../Fieldset/useFieldset.mjs";const{Range:S,Root:g,Thumb:C,Track:E}=a(t),h="slider-label",k="slider-root",v="slider-track",j="slider-range",T=i.forwardRef(((t,a)=>{var{ariaValuetext:T,className:y,defaultValue:V=0,descriptiveText:x,emptyTrackColor:N,errorMessage:R,filledTrackColor:z,formatValue:H,hasError:w=!1,id:I,isDisabled:M,isValueHidden:D=!1,label:G,labelHidden:L=!1,onChange:P,orientation:O="horizontal",outerEndComponent:B,outerStartComponent:q,testId:A,thumbColor:J,trackSize:K,value:Q,size:U}=t,W=e(t,["ariaValuetext","className","defaultValue","descriptiveText","emptyTrackColor","errorMessage","filledTrackColor","formatValue","hasError","id","isDisabled","isValueHidden","label","labelHidden","onChange","orientation","outerEndComponent","outerStartComponent","testId","thumbColor","trackSize","value","size"]);const{isFieldsetDisabled:X}=f(),Y=b(I),Z=b(),$=b(),_=x?$:void 0,{styleProps:ee,rest:re}=p(W),te=void 0!==Q,[ie,ae]=i.useState(te?Q:V),le=te?[Q]:void 0,oe=te?void 0:[V],se=i.useCallback((e=>{ae(e[0]),l(P)&&P(e[0])}),[P]),de=i.useMemo((()=>{const e=l(H)?H(ie):ie;return"string"==typeof H?i.createElement(F,{as:"span"},e):e}),[ie,H]),me="vertical"===O,ne=r(s.SliderFieldTrack,o(s.SliderFieldTrack,O),o(s.SliderFieldTrack,U)),ce=r(s.SliderFieldRoot,o(s.SliderFieldRoot,O),o(s.SliderFieldRoot,U),y);return i.createElement(c,Object.assign({className:r(s.Field,o(s.Field,U),s.SliderField),testId:A,"data-size":U},ee),i.createElement(u,{className:s.SliderFieldLabel,id:Z,testId:h,visuallyHidden:L},i.createElement(F,{as:"span"},G),D?null:de),i.createElement(d,{id:$,labelHidden:L,descriptiveText:x}),i.createElement(n,{className:s.SliderFieldGroup,id:Y,orientation:O,outerStartComponent:q,outerEndComponent:B},i.createElement(g,Object.assign({className:ce,"data-testid":k,disabled:X||M,defaultValue:oe,onValueChange:se,orientation:O,ref:a,value:le},re),i.createElement(E,{className:ne,"data-testid":v,style:{backgroundColor:String(N),[""+(me?"width":"height")]:K}},i.createElement(S,{className:r(s.SliderFieldRange,o(s.SliderFieldRange,O)),"data-testid":j,style:{backgroundColor:String(z)}})),i.createElement(C,{"aria-describedby":_,"aria-labelledby":Z,"aria-valuetext":T,className:r(s.SliderFieldThumb,o(s.SliderFieldThumb,U)),style:{backgroundColor:String(J)}}))),i.createElement(m,{hasError:w,errorMessage:R}))}));T.displayName="SliderField";export{h as SLIDER_LABEL_TEST_ID,j as SLIDER_RANGE_TEST_ID,k as SLIDER_ROOT_TEST_ID,v as SLIDER_TRACK_TEST_ID,T as SliderField};
1
+ import { sanitizeNamespaceImport, isFunction, classNames, ComponentClassName, classNameModifier, classNameModifierByFlag } from '@aws-amplify/ui';
2
+ import * as RadixSlider from '@radix-ui/react-slider';
3
+ import * as React from 'react';
4
+ import '../Field/FieldClearButton.mjs';
5
+ import { FieldDescription } from '../Field/FieldDescription.mjs';
6
+ import { FieldErrorMessage } from '../Field/FieldErrorMessage.mjs';
7
+ import '../Field/Field.mjs';
8
+ import { FieldGroup } from '../FieldGroup/FieldGroup.mjs';
9
+ import { Flex } from '../Flex/Flex.mjs';
10
+ import { Label } from '../Label/Label.mjs';
11
+ import { splitPrimitiveProps } from '../utils/splitPrimitiveProps.mjs';
12
+ import { View } from '../View/View.mjs';
13
+ import { useStableId } from '../utils/useStableId.mjs';
14
+ import { useFieldset } from '../Fieldset/useFieldset.mjs';
15
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
16
+
17
+ // Radix packages don't support ESM in Node, in some scenarios(e.g. SSR)
18
+ // We have to use namespace import and sanitize it to ensure the interoperablity between ESM and CJS
19
+ const { Range, Root, Thumb, Track } = sanitizeNamespaceImport(RadixSlider);
20
+ const SLIDER_LABEL_TEST_ID = 'slider-label';
21
+ const SLIDER_ROOT_TEST_ID = 'slider-root';
22
+ const SLIDER_TRACK_TEST_ID = 'slider-track';
23
+ const SLIDER_RANGE_TEST_ID = 'slider-range';
24
+ const SliderFieldPrimitive = ({ ariaValuetext, className, defaultValue = 0, descriptiveText, emptyTrackColor, errorMessage, filledTrackColor, formatValue, hasError = false, id, isDisabled, isValueHidden = false, label, labelHidden = false, onChange, orientation = 'horizontal', outerEndComponent, outerStartComponent, testId, thumbColor, trackSize, value, size, ..._rest }, ref) => {
25
+ const { isFieldsetDisabled } = useFieldset();
26
+ const fieldId = useStableId(id);
27
+ const labelId = useStableId();
28
+ const descriptionId = useStableId();
29
+ const ariaDescribedBy = descriptiveText ? descriptionId : undefined;
30
+ const disabled = isFieldsetDisabled ? isFieldsetDisabled : isDisabled;
31
+ const { styleProps, rest } = splitPrimitiveProps(_rest);
32
+ const isControlled = value !== undefined;
33
+ const [currentValue, setCurrentValue] = React.useState(isControlled ? value : defaultValue);
34
+ const values = isControlled ? [value] : undefined;
35
+ const defaultValues = !isControlled ? [defaultValue] : undefined;
36
+ const onValueChange = React.useCallback((value) => {
37
+ setCurrentValue(value[0]);
38
+ if (isFunction(onChange)) {
39
+ // Do not have multiple thumbs support yet
40
+ onChange(value[0]);
41
+ }
42
+ }, [onChange]);
43
+ const renderedValue = React.useMemo(() => {
44
+ const formattedValue = isFunction(formatValue)
45
+ ? formatValue(currentValue)
46
+ : currentValue;
47
+ return typeof formatValue === 'string' ? (React.createElement(View, { as: "span" }, formattedValue)) : (formattedValue);
48
+ }, [currentValue, formatValue]);
49
+ const isVertical = orientation === 'vertical';
50
+ const componentClasses = classNames(ComponentClassName.SliderFieldTrack, classNameModifier(ComponentClassName.SliderFieldTrack, orientation), classNameModifier(ComponentClassName.SliderFieldTrack, size));
51
+ const rootComponentClasses = classNames(ComponentClassName.SliderFieldRoot, classNameModifier(ComponentClassName.SliderFieldRoot, orientation), classNameModifier(ComponentClassName.SliderFieldRoot, size), classNameModifierByFlag(ComponentClassName.SliderFieldRoot, 'disabled', disabled), className);
52
+ return (React.createElement(Flex
53
+ // Custom classnames will be added to Root below
54
+ , {
55
+ // Custom classnames will be added to Root below
56
+ className: classNames(ComponentClassName.Field, classNameModifier(ComponentClassName.Field, size), ComponentClassName.SliderField), testId: testId, ...styleProps },
57
+ React.createElement(Label, { className: ComponentClassName.SliderFieldLabel, id: labelId, testId: SLIDER_LABEL_TEST_ID, visuallyHidden: labelHidden },
58
+ React.createElement(View, { as: "span" }, label),
59
+ !isValueHidden ? renderedValue : null),
60
+ React.createElement(FieldDescription, { id: descriptionId, labelHidden: labelHidden, descriptiveText: descriptiveText }),
61
+ React.createElement(FieldGroup, { className: ComponentClassName.SliderFieldGroup, id: fieldId, orientation: orientation, outerStartComponent: outerStartComponent, outerEndComponent: outerEndComponent },
62
+ React.createElement(Root, { className: rootComponentClasses, "data-testid": SLIDER_ROOT_TEST_ID, disabled: disabled, defaultValue: defaultValues, onValueChange: onValueChange, orientation: orientation, ref: ref, value: values, ...rest },
63
+ React.createElement(Track, { className: componentClasses, "data-testid": SLIDER_TRACK_TEST_ID, style: {
64
+ backgroundColor: String(emptyTrackColor),
65
+ [`${isVertical ? 'width' : 'height'}`]: trackSize,
66
+ } },
67
+ React.createElement(Range, { className: classNames(ComponentClassName.SliderFieldRange, classNameModifier(ComponentClassName.SliderFieldRange, orientation), classNameModifierByFlag(ComponentClassName.SliderFieldRange, 'disabled', disabled)), "data-testid": SLIDER_RANGE_TEST_ID, style: { backgroundColor: String(filledTrackColor) } })),
68
+ React.createElement(Thumb, { "aria-describedby": ariaDescribedBy, "aria-labelledby": labelId, "aria-valuetext": ariaValuetext, className: classNames(ComponentClassName.SliderFieldThumb, classNameModifier(ComponentClassName.SliderFieldThumb, size), classNameModifierByFlag(ComponentClassName.SliderFieldThumb, 'disabled', disabled)), style: { backgroundColor: String(thumbColor) } }))),
69
+ React.createElement(FieldErrorMessage, { hasError: hasError, errorMessage: errorMessage })));
70
+ };
71
+ /**
72
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/sliderfield)
73
+ */
74
+ const SliderField = primitiveWithForwardRef(SliderFieldPrimitive);
75
+ SliderField.displayName = 'SliderField';
76
+
77
+ export { SLIDER_LABEL_TEST_ID, SLIDER_RANGE_TEST_ID, SLIDER_ROOT_TEST_ID, SLIDER_TRACK_TEST_ID, SliderField };
@@ -1 +1,60 @@
1
- import{__rest as e}from"tslib";import*as t from"react";import r from"classnames";import{useStepper as i}from"./useStepper.mjs";import"../Field/FieldClearButton.mjs";import{FieldDescription as a}from"../Field/FieldDescription.mjs";import{FieldErrorMessage as s}from"../Field/FieldErrorMessage.mjs";import"../Field/Field.mjs";import{FieldGroup as o}from"../FieldGroup/FieldGroup.mjs";import"../FieldGroupIcon/FieldGroupIcon.mjs";import{FieldGroupIconButton as l}from"../FieldGroupIcon/FieldGroupIconButton.mjs";import{Flex as n}from"../Flex/Flex.mjs";import"../Icon/Icon.mjs";import"../Icon/context/IconsContext.mjs";import{useIcons as d}from"../Icon/context/useIcons.mjs";import{IconAdd as m}from"../Icon/icons/IconAdd.mjs";import{ComponentClassNames as p,ComponentText as c}from"../shared/constants.mjs";import"../View/View.mjs";import{IconRemove as u}from"../Icon/icons/IconRemove.mjs";import{Input as b}from"../Input/Input.mjs";import{Label as F}from"../Label/Label.mjs";import{classNameModifier as f,classNameModifierByFlag as I}from"@aws-amplify/ui";import{splitPrimitiveProps as j}from"../utils/splitPrimitiveProps.mjs";import{useStableId as v}from"../utils/useStableId.mjs";const h="decrease-icon",S="increase-icon",B=t.forwardRef(((B,E)=>{var g,D;const{className:y,defaultValue:C,descriptiveText:L,errorMessage:O,hasError:x=!1,id:R,inputStyles:N,isDisabled:V,isReadOnly:z,isRequired:G,increaseButtonLabel:w=c.StepperField.increaseButtonLabel,decreaseButtonLabel:H=c.StepperField.decreaseButtonLabel,label:M,labelHidden:$=!1,onStepChange:q,size:P,testId:T,value:k,variation:W}=B,A=e(B,["className","defaultValue","descriptiveText","errorMessage","hasError","id","inputStyles","isDisabled","isReadOnly","isRequired","increaseButtonLabel","decreaseButtonLabel","label","labelHidden","onStepChange","size","testId","value","variation"]),J=v(R),K=v(),Q=L?K:void 0,{styleProps:U,rest:X}=j(A),Y=d("stepperField"),{step:Z,value:_,inputValue:ee,handleDecrease:te,handleIncrease:re,handleOnBlur:ie,handleOnChange:ae,handleOnWheel:se,setInputValue:oe,shouldDisableDecreaseButton:le,shouldDisableIncreaseButton:ne}=i(Object.assign(Object.assign({},B),{defaultValue:C,onStepChange:q}));return t.useEffect((()=>{void 0!==k&&oe(k)}),[k,oe]),t.createElement(n,Object.assign({className:r(p.Field,f(p.Field,P),p.StepperField,y),"data-size":P,"data-variation":W,testId:T},U),t.createElement(F,{htmlFor:J,visuallyHidden:$},M),t.createElement(a,{id:K,labelHidden:$,descriptiveText:L}),t.createElement(o,{outerStartComponent:t.createElement(l,{"aria-controls":J,ariaLabel:`${H} ${_-Z}`,className:r(p.StepperFieldButtonDecrease,f(p.StepperFieldButtonDecrease,W),I(p.StepperFieldButtonDecrease,"disabled",le)),"data-invalid":x,isDisabled:le,onClick:te,size:P},null!==(g=null==Y?void 0:Y.remove)&&void 0!==g?g:t.createElement(u,{"data-testid":h})),outerEndComponent:t.createElement(l,{"aria-controls":J,ariaLabel:`${w} ${_+Z}`,className:r(p.StepperFieldButtonIncrease,f(p.StepperFieldButtonIncrease,W),I(p.StepperFieldButtonIncrease,"disabled",ne)),"data-invalid":x,isDisabled:ne,onClick:re,size:P},null!==(D=null==Y?void 0:Y.add)&&void 0!==D?D:t.createElement(m,{"data-testid":S}))},t.createElement(b,Object.assign({"aria-describedby":Q,className:p.StepperFieldInput,hasError:x,id:J,isDisabled:V,isReadOnly:z,isRequired:G,onBlur:ie,onChange:ae,onWheel:se,ref:E,size:P,variation:W,type:"number",value:ee},N,X))),t.createElement(s,{hasError:x,errorMessage:O}))}));B.displayName="StepperField";export{h as DECREASE_ICON,S as INCREASE_ICON,B as StepperField};
1
+ import * as React from 'react';
2
+ import { classNames, ComponentClassName, classNameModifier, classNameModifierByFlag } from '@aws-amplify/ui';
3
+ import { useStepper } from './useStepper.mjs';
4
+ import '../Field/FieldClearButton.mjs';
5
+ import { FieldDescription } from '../Field/FieldDescription.mjs';
6
+ import { FieldErrorMessage } from '../Field/FieldErrorMessage.mjs';
7
+ import '../Field/Field.mjs';
8
+ import { FieldGroup } from '../FieldGroup/FieldGroup.mjs';
9
+ import '../FieldGroupIcon/FieldGroupIcon.mjs';
10
+ import { FieldGroupIconButton } from '../FieldGroupIcon/FieldGroupIconButton.mjs';
11
+ import { Flex } from '../Flex/Flex.mjs';
12
+ import '../Icon/Icon.mjs';
13
+ import '../Icon/context/IconsContext.mjs';
14
+ import { useIcons } from '../Icon/context/useIcons.mjs';
15
+ import { IconAdd } from '../Icon/icons/IconAdd.mjs';
16
+ import '../View/View.mjs';
17
+ import { IconRemove } from '../Icon/icons/IconRemove.mjs';
18
+ import { Input } from '../Input/Input.mjs';
19
+ import { Label } from '../Label/Label.mjs';
20
+ import { ComponentText } from '../shared/constants.mjs';
21
+ import { splitPrimitiveProps } from '../utils/splitPrimitiveProps.mjs';
22
+ import { useStableId } from '../utils/useStableId.mjs';
23
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
24
+
25
+ const DECREASE_ICON = 'decrease-icon';
26
+ const INCREASE_ICON = 'increase-icon';
27
+ const StepperFieldPrimitive = (props, ref) => {
28
+ const { className,
29
+ // destructure to prevent `defaultValue` from being passed to underlying `Input` via `_rest`
30
+ defaultValue, descriptiveText, errorMessage, hasError = false, id, inputStyles, isDisabled, isReadOnly, isRequired, increaseButtonLabel = ComponentText.StepperField.increaseButtonLabel, decreaseButtonLabel = ComponentText.StepperField.decreaseButtonLabel, label, labelHidden = false,
31
+ // destructure to prevent `onStepChange` from being passed to underlying `Input` via `_rest`
32
+ onStepChange, size, testId,
33
+ // this is only required in useStepper hook but deconstruct here to remove its existence in rest
34
+ value: controlledValue, variation, ..._rest } = props;
35
+ const fieldId = useStableId(id);
36
+ const descriptionId = useStableId();
37
+ const ariaDescribedBy = descriptiveText ? descriptionId : undefined;
38
+ const { styleProps, rest } = splitPrimitiveProps(_rest);
39
+ const icons = useIcons('stepperField');
40
+ const { step, value, inputValue, handleDecrease, handleIncrease, handleOnBlur, handleOnChange, handleOnWheel, setInputValue, shouldDisableDecreaseButton, shouldDisableIncreaseButton, } = useStepper({ ...props, defaultValue, onStepChange });
41
+ React.useEffect(() => {
42
+ const isControlled = controlledValue !== undefined;
43
+ if (isControlled) {
44
+ setInputValue(controlledValue);
45
+ }
46
+ }, [controlledValue, setInputValue]);
47
+ return (React.createElement(Flex, { className: classNames(ComponentClassName.Field, classNameModifier(ComponentClassName.Field, size), ComponentClassName.StepperField, className), testId: testId, ...styleProps },
48
+ React.createElement(Label, { htmlFor: fieldId, visuallyHidden: labelHidden }, label),
49
+ React.createElement(FieldDescription, { id: descriptionId, labelHidden: labelHidden, descriptiveText: descriptiveText }),
50
+ React.createElement(FieldGroup, { outerStartComponent: React.createElement(FieldGroupIconButton, { "aria-controls": fieldId, ariaLabel: `${decreaseButtonLabel} ${value - step}`, className: classNames(ComponentClassName.StepperFieldButtonDecrease, classNameModifier(ComponentClassName.StepperFieldButtonDecrease, variation), classNameModifierByFlag(ComponentClassName.StepperFieldButtonDecrease, 'disabled', shouldDisableDecreaseButton)), "data-invalid": hasError, isDisabled: shouldDisableDecreaseButton, onClick: handleDecrease, size: size }, icons?.remove ?? React.createElement(IconRemove, { "data-testid": DECREASE_ICON })), outerEndComponent: React.createElement(FieldGroupIconButton, { "aria-controls": fieldId, ariaLabel: `${increaseButtonLabel} ${value + step}`, className: classNames(ComponentClassName.StepperFieldButtonIncrease, classNameModifier(ComponentClassName.StepperFieldButtonIncrease, variation), classNameModifierByFlag(ComponentClassName.StepperFieldButtonIncrease, 'disabled', shouldDisableIncreaseButton)), "data-invalid": hasError, isDisabled: shouldDisableIncreaseButton, onClick: handleIncrease, size: size }, icons?.add ?? React.createElement(IconAdd, { "data-testid": INCREASE_ICON })) },
51
+ React.createElement(Input, { "aria-describedby": ariaDescribedBy, className: ComponentClassName.StepperFieldInput, hasError: hasError, id: fieldId, isDisabled: isDisabled, isReadOnly: isReadOnly, isRequired: isRequired, onBlur: handleOnBlur, onChange: handleOnChange, onWheel: handleOnWheel, ref: ref, size: size, variation: variation, type: "number", value: inputValue, ...inputStyles, ...rest })),
52
+ React.createElement(FieldErrorMessage, { hasError: hasError, errorMessage: errorMessage })));
53
+ };
54
+ /**
55
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/stepperfield)
56
+ */
57
+ const StepperField = primitiveWithForwardRef(StepperFieldPrimitive);
58
+ StepperField.displayName = 'StepperField';
59
+
60
+ export { DECREASE_ICON, INCREASE_ICON, StepperField };
@@ -1 +1,113 @@
1
- import*as e from"react";import{isFunction as a}from"@aws-amplify/ui";const l=({max:e,min:a,step:l,value:n})=>{const t=(n-a)%l;return n=n-t+Math.round(t/l)*l,(n=Math.max(a,n))>e&&(n=e-(e-a)%l),n},n=({defaultValue:n=0,value:t,step:u=1,max:s=Number.MAX_SAFE_INTEGER,min:r=Number.MIN_SAFE_INTEGER,isDisabled:o,isReadOnly:i,onChange:c,onDecrease:m,onIncrease:d,onStepChange:h})=>{var p,v;const b=void 0!==t;s=Math.max(r,s);const[x,C]=e.useState((()=>l({min:r,max:s,step:u,value:n}))),I=b?l({min:r,max:s,step:u,value:t}):x,N=null!==(p=null!=o?o:i)&&void 0!==p?p:I+u>s,g=null!==(v=null!=o?o:i)&&void 0!==v?v:I-u<r,[D,E]=e.useState(I),f=e.useCallback((e=>{E(e.target.value),a(c)&&c(e)}),[c]),k=e.useCallback((e=>{const n=parseFloat(e.target.value);if(isNaN(n))return;const t=l({min:r,max:s,step:u,value:n});b||C(t),a(h)&&h(t),E(t)}),[r,s,u,b,h]),M=e.useCallback((()=>{b||C(I+u),a(h)&&h(I+u),a(d)&&d(),E(I+u)}),[u,I,b,d,h]),S=e.useCallback((()=>{b||C(I-u),a(h)&&h(I-u),a(m)&&m(),E(I-u)}),[u,I,b,m,h]),O=e.useCallback((e=>{e.currentTarget.blur()}),[]);return{step:u,value:I,inputValue:D,handleDecrease:S,handleIncrease:M,handleOnBlur:k,handleOnChange:f,handleOnWheel:O,setInputValue:E,shouldDisableDecreaseButton:g,shouldDisableIncreaseButton:N}};export{n as useStepper};
1
+ import * as React from 'react';
2
+ import { isFunction } from '@aws-amplify/ui';
3
+
4
+ const getCorrectSteppingValue = ({ max, min, step, value, }) => {
5
+ // Round it to the closest step value
6
+ // It will be based off min to be consistent with native input[type="number"]
7
+ // This allows keyboard accessible
8
+ const remainder = (value - min) % step;
9
+ value = value - remainder + Math.round(remainder / step) * step;
10
+ // Make sure new value is not outside the bound
11
+ value = Math.max(min, value);
12
+ if (value > max) {
13
+ value = max - ((max - min) % step);
14
+ }
15
+ return value;
16
+ };
17
+ const useStepper = ({ defaultValue = 0, value: controlledValue, step = 1, max = Number.MAX_SAFE_INTEGER, min = Number.MIN_SAFE_INTEGER, isDisabled, isReadOnly, onChange, onDecrease, onIncrease, onStepChange, }) => {
18
+ const isControlled = controlledValue !== undefined;
19
+ // Make sure max value is greater than or equal to min value
20
+ max = Math.max(min, max);
21
+ // Maintain an internal state for uncontrolled components
22
+ // This allows to take over the input value and correct any invalid versus purely relying on the native uncontrolled input
23
+ const [uncontrolledValue, setUncontrolledValue] = React.useState(() =>
24
+ // This is required for users could provide any defaultValue
25
+ getCorrectSteppingValue({ min, max, step, value: defaultValue }));
26
+ // Same for controlled components on the first render because users could provide invalid initial value.
27
+ // It seems redundant afterwards but necessary for the first render
28
+ const value = isControlled
29
+ ? getCorrectSteppingValue({ min, max, step, value: controlledValue })
30
+ : uncontrolledValue;
31
+ const shouldDisableIncreaseButton = isDisabled ?? isReadOnly ?? value + step > max;
32
+ const shouldDisableDecreaseButton = isDisabled ?? isReadOnly ?? value - step < min;
33
+ // This is the exact value to be rendered on screen
34
+ // It could be a string, like '-' or empty string when users clear the input
35
+ const [inputValue, setInputValue] = React.useState(value);
36
+ const handleOnChange = React.useCallback((event) => {
37
+ setInputValue(event.target.value);
38
+ if (isFunction(onChange)) {
39
+ onChange(event);
40
+ }
41
+ }, [onChange]);
42
+ const handleOnBlur = React.useCallback((event) => {
43
+ const parsedValue = parseFloat(event.target.value);
44
+ // Though input[type='number'] has built-in validation to reject non-numerical entries
45
+ // The entered value could still be empty string or minus '-'
46
+ // in these cases, no need to do the following validation
47
+ if (isNaN(parsedValue)) {
48
+ return;
49
+ }
50
+ const newValue = getCorrectSteppingValue({
51
+ min,
52
+ max,
53
+ step,
54
+ value: parsedValue,
55
+ });
56
+ if (!isControlled) {
57
+ setUncontrolledValue(newValue);
58
+ }
59
+ if (isFunction(onStepChange)) {
60
+ onStepChange(newValue);
61
+ }
62
+ setInputValue(newValue);
63
+ }, [min, max, step, isControlled, onStepChange]);
64
+ const handleIncrease = React.useCallback(() => {
65
+ // No need to check if the value will be outside the bounds
66
+ // The button will be disabled if so
67
+ if (!isControlled) {
68
+ setUncontrolledValue(value + step);
69
+ }
70
+ if (isFunction(onStepChange)) {
71
+ onStepChange(value + step);
72
+ }
73
+ if (isFunction(onIncrease)) {
74
+ onIncrease();
75
+ }
76
+ setInputValue(value + step);
77
+ }, [step, value, isControlled, onIncrease, onStepChange]);
78
+ const handleDecrease = React.useCallback(() => {
79
+ // No need to check if the value will be outside the bounds
80
+ // The button will be disabled if so
81
+ if (!isControlled) {
82
+ setUncontrolledValue(value - step);
83
+ }
84
+ if (isFunction(onStepChange)) {
85
+ onStepChange(value - step);
86
+ }
87
+ if (isFunction(onDecrease)) {
88
+ onDecrease();
89
+ }
90
+ setInputValue(value - step);
91
+ }, [step, value, isControlled, onDecrease, onStepChange]);
92
+ // This aims to disable unwanted behaviors on React input[type='number']
93
+ // When the input gets focused, rotating a wheel will change its value
94
+ // But the parent container(mostly the entire window) will be scrolling to elsewhere
95
+ const handleOnWheel = React.useCallback((event) => {
96
+ event.currentTarget.blur();
97
+ }, []);
98
+ return {
99
+ step,
100
+ value,
101
+ inputValue,
102
+ handleDecrease,
103
+ handleIncrease,
104
+ handleOnBlur,
105
+ handleOnChange,
106
+ handleOnWheel,
107
+ setInputValue,
108
+ shouldDisableDecreaseButton,
109
+ shouldDisableIncreaseButton,
110
+ };
111
+ };
112
+
113
+ export { useStepper };
@@ -1 +1,48 @@
1
- import{__rest as e}from"tslib";import*as a from"react";import s from"classnames";import{classNameModifierByFlag as r,classNameModifier as i}from"@aws-amplify/ui";import{ComponentClassNames as t}from"../shared/constants.mjs";import{Flex as l}from"../Flex/Flex.mjs";import"../Field/FieldClearButton.mjs";import"../Field/FieldDescription.mjs";import{FieldErrorMessage as o}from"../Field/FieldErrorMessage.mjs";import"../Field/Field.mjs";import{Input as c}from"../Input/Input.mjs";import{Label as d}from"../Label/Label.mjs";import{useStableId as m}from"../utils/useStableId.mjs";import{useSwitch as n}from"./useSwitch.mjs";import{View as h}from"../View/View.mjs";import{VisuallyHidden as p}from"../VisuallyHidden/VisuallyHidden.mjs";import{useFieldset as b}from"../Fieldset/useFieldset.mjs";const u=a.forwardRef(((u,k)=>{var{className:f,defaultChecked:C,id:w,isChecked:F,isDisabled:S,isLabelHidden:j,label:g,labelPosition:E,name:N,onChange:T,size:y,thumbColor:D,trackCheckedColor:H,trackColor:L,value:v,hasError:x,errorMessage:I}=u,M=e(u,["className","defaultChecked","id","isChecked","isDisabled","isLabelHidden","label","labelPosition","name","onChange","size","thumbColor","trackCheckedColor","trackColor","value","hasError","errorMessage"]);const{isOn:V,changeHandler:z,isFocused:B,setIsFocused:O}=n({onChange:T,isChecked:F,defaultChecked:C,isDisabled:S}),{isFieldsetDisabled:P}=b(),W=P||S,R=m(w),q=j?p:h,A=s(t.SwitchTrack,r(t.SwitchTrack,"checked",V),r(t.SwitchTrack,"disabled",W),r(t.SwitchTrack,"focused",B),r(t.SwitchTrack,"error",x)),G=s(t.SwitchThumb,r(t.SwitchThumb,"checked",V),r(t.SwitchThumb,"disabled",W));return a.createElement(l,Object.assign({className:s(t.SwitchField,i(t.SwitchField,y),f),"data-size":y,"data-label-position":E,ref:k},M),a.createElement(p,null,a.createElement(c,{role:"switch",type:"checkbox",id:R,onChange:z,disabled:S,name:N,checked:V,value:v,onFocus:()=>{O(!0)},onBlur:()=>{O(!1)}})),a.createElement(d,{htmlFor:R,className:s(t.SwitchWrapper,i(t.SwitchWrapper,E)),"data-label-position":E},a.createElement(q,{as:"span",className:t.SwitchLabel},g),a.createElement(h,{as:"span",className:A,"data-checked":V,"data-disabled":W,"data-focused":B,backgroundColor:V?H:L},a.createElement(h,{as:"span",className:G,"data-checked":V,"data-disabled":W,backgroundColor:D}))),a.createElement(o,{hasError:x,errorMessage:I}))}));u.displayName="SwitchField";export{u as SwitchField};
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 '../Field/FieldClearButton.mjs';
5
+ import '../Field/FieldDescription.mjs';
6
+ import { FieldErrorMessage } from '../Field/FieldErrorMessage.mjs';
7
+ import '../Field/Field.mjs';
8
+ import { Input } from '../Input/Input.mjs';
9
+ import { Label } from '../Label/Label.mjs';
10
+ import { useStableId } from '../utils/useStableId.mjs';
11
+ import { useSwitch } from './useSwitch.mjs';
12
+ import { View } from '../View/View.mjs';
13
+ import { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden.mjs';
14
+ import { useFieldset } from '../Fieldset/useFieldset.mjs';
15
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
16
+
17
+ const SwitchFieldPrimitive = ({ className, defaultChecked, id, isChecked, isDisabled, isLabelHidden, label, labelPosition, name, onChange, size, thumbColor, trackCheckedColor, trackColor, value, hasError, errorMessage, ...rest }, ref) => {
18
+ const { isOn, changeHandler, isFocused, setIsFocused } = useSwitch({
19
+ onChange,
20
+ isChecked,
21
+ defaultChecked,
22
+ isDisabled,
23
+ });
24
+ const { isFieldsetDisabled } = useFieldset();
25
+ const shouldBeDisabled = isFieldsetDisabled ? isFieldsetDisabled : isDisabled;
26
+ const fieldId = useStableId(id);
27
+ const wrapperClasses = classNames(ComponentClassName.SwitchTrack, classNameModifierByFlag(ComponentClassName.SwitchTrack, 'checked', isOn), classNameModifierByFlag(ComponentClassName.SwitchTrack, 'disabled', shouldBeDisabled), classNameModifierByFlag(ComponentClassName.SwitchTrack, 'focused', isFocused), classNameModifierByFlag(ComponentClassName.SwitchTrack, 'error', hasError));
28
+ const componentClasses = classNames(ComponentClassName.SwitchThumb, classNameModifierByFlag(ComponentClassName.SwitchThumb, 'checked', isOn), classNameModifierByFlag(ComponentClassName.SwitchThumb, 'disabled', shouldBeDisabled));
29
+ return (React.createElement(Flex, { className: classNames(ComponentClassName.SwitchField, classNameModifier(ComponentClassName.SwitchField, size), labelPosition ? `amplify-label-${labelPosition}` : null, className), ref: ref, ...rest },
30
+ React.createElement(VisuallyHidden, null,
31
+ React.createElement(Input, { role: "switch", type: "checkbox", id: fieldId, onChange: changeHandler, disabled: isDisabled, name: name, checked: isOn, value: value, onFocus: () => {
32
+ setIsFocused(true);
33
+ }, onBlur: () => {
34
+ setIsFocused(false);
35
+ } })),
36
+ React.createElement(Label, { htmlFor: fieldId, className: classNames(ComponentClassName.SwitchWrapper, classNameModifier(ComponentClassName.SwitchWrapper, labelPosition)) },
37
+ isLabelHidden ? (React.createElement(VisuallyHidden, { as: "span", className: ComponentClassName.SwitchLabel }, label)) : (React.createElement(View, { as: "span", className: ComponentClassName.SwitchLabel }, label)),
38
+ React.createElement(View, { as: "span", className: wrapperClasses, backgroundColor: isOn ? trackCheckedColor : trackColor },
39
+ React.createElement(View, { as: "span", className: componentClasses, "data-checked": isOn, "data-disabled": shouldBeDisabled, backgroundColor: thumbColor }))),
40
+ React.createElement(FieldErrorMessage, { hasError: hasError, errorMessage: errorMessage })));
41
+ };
42
+ /**
43
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/switchfield)
44
+ */
45
+ const SwitchField = primitiveWithForwardRef(SwitchFieldPrimitive);
46
+ SwitchField.displayName = 'SwitchField';
47
+
48
+ export { SwitchField };
@@ -1 +1,30 @@
1
- import{useState as e,useCallback as t}from"react";import{isFunction as s}from"@aws-amplify/ui";const o=o=>{const{onChange:r,isChecked:a,defaultChecked:c,isDisabled:i}=o,d=void 0!==a,[n,u]=e(d?a:!!c),[f,h]=e(!1),l=t((e=>{i?e.preventDefault():(s(r)&&r(e),u(e.target.checked))}),[r,i]);return d&&n!==a&&u(a),{isOn:n,changeHandler:l,isFocused:f,setIsFocused:h}};export{o as useSwitch};
1
+ import { useState, useCallback } from 'react';
2
+ import { isFunction } from '@aws-amplify/ui';
3
+
4
+ const useSwitch = (props) => {
5
+ const { onChange, isChecked, defaultChecked, isDisabled } = props;
6
+ const isControlled = typeof isChecked !== 'undefined';
7
+ const [isOn, setIsOn] = useState(isControlled ? isChecked : !!defaultChecked);
8
+ const [isFocused, setIsFocused] = useState(false);
9
+ const changeHandler = useCallback((event) => {
10
+ if (isDisabled) {
11
+ event.preventDefault();
12
+ return;
13
+ }
14
+ if (isFunction(onChange)) {
15
+ onChange(event);
16
+ }
17
+ setIsOn(event.target.checked);
18
+ }, [onChange, isDisabled]);
19
+ if (isControlled && isOn !== isChecked) {
20
+ setIsOn(isChecked);
21
+ }
22
+ return {
23
+ isOn,
24
+ changeHandler,
25
+ isFocused,
26
+ setIsFocused,
27
+ };
28
+ };
29
+
30
+ export { useSwitch };
@@ -1 +1,18 @@
1
- import{__rest as a}from"tslib";import*as e from"react";import i from"classnames";import{classNameModifier as t}from"@aws-amplify/ui";import{ComponentClassNames as r}from"../shared/constants.mjs";import{View as s}from"../View/View.mjs";const o=e.forwardRef(((o,m)=>{var{caption:l,children:n,className:c,highlightOnHover:h=!1,size:p,variation:f}=o,b=a(o,["caption","children","className","highlightOnHover","size","variation"]);const d=i(r.Table,t(r.Table,p),t(r.Table,f),c);return e.createElement(s,Object.assign({as:"table",className:d,"data-highlightonhover":h,"data-size":p,"data-variation":f,ref:m},b),l&&e.createElement(s,{as:"caption",className:r.TableCaption},l),n)}));o.displayName="Table";export{o as Table};
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 TablePrimitive = ({ caption, children, className, highlightOnHover = false, size, variation, ...rest }, ref) => {
7
+ const componentClasses = classNames(ComponentClassName.Table, classNameModifier(ComponentClassName.Table, size), classNameModifier(ComponentClassName.Table, variation), className);
8
+ return (React.createElement(View, { as: "table", className: componentClasses, "data-highlightonhover": highlightOnHover, ref: ref, ...rest },
9
+ caption && (React.createElement(View, { as: "caption", className: ComponentClassName.TableCaption }, caption)),
10
+ children));
11
+ };
12
+ /**
13
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/table)
14
+ */
15
+ const Table = primitiveWithForwardRef(TablePrimitive);
16
+ Table.displayName = 'Table';
17
+
18
+ export { Table };
@@ -1 +1,10 @@
1
- import{__rest as e}from"tslib";import*as r from"react";import a from"classnames";import{ComponentClassNames as s}from"../shared/constants.mjs";import{View as m}from"../View/View.mjs";const o=r.forwardRef(((o,t)=>{var{children:i,className:c}=o,l=e(o,["children","className"]);return r.createElement(m,Object.assign({as:"tbody",className:a(s.TableBody,c),ref:t},l),i)}));o.displayName="TableBody";export{o as TableBody};
1
+ import * as React from 'react';
2
+ import { classNames, ComponentClassName } from '@aws-amplify/ui';
3
+ import { View } from '../View/View.mjs';
4
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
5
+
6
+ const TableBodyPrimitive = ({ children, className, ...rest }, ref) => (React.createElement(View, { as: "tbody", className: classNames(ComponentClassName.TableBody, className), ref: ref, ...rest }, children));
7
+ const TableBody = primitiveWithForwardRef(TableBodyPrimitive);
8
+ TableBody.displayName = 'TableBody';
9
+
10
+ export { TableBody };
@@ -1 +1,12 @@
1
- import{__rest as a}from"tslib";import*as e from"react";import s from"classnames";import{ComponentClassNames as r}from"../shared/constants.mjs";import{View as m}from"../View/View.mjs";const t=e.forwardRef(((t,l)=>{var{as:o="td",children:i,className:c}=t,n=a(t,["as","children","className"]);return e.createElement(m,Object.assign({as:o,className:s("td"===o?r.TableTd:r.TableTh,c),ref:l},n),i)}));t.displayName="TableCell";export{t as TableCell};
1
+ import * as React from 'react';
2
+ import { classNames, ComponentClassName } from '@aws-amplify/ui';
3
+ import { View } from '../View/View.mjs';
4
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
5
+
6
+ const TableCellPrimitive = ({ as: asElementTag = 'td', children, className, ...rest }, ref) => (React.createElement(View, { as: asElementTag, className: classNames(asElementTag === 'td'
7
+ ? ComponentClassName.TableTd
8
+ : ComponentClassName.TableTh, className), ref: ref, ...rest }, children));
9
+ const TableCell = primitiveWithForwardRef(TableCellPrimitive);
10
+ TableCell.displayName = 'TableCell';
11
+
12
+ export { TableCell };
@@ -1 +1,10 @@
1
- import{__rest as e}from"tslib";import*as r from"react";import a from"classnames";import{ComponentClassNames as s}from"../shared/constants.mjs";import{View as o}from"../View/View.mjs";const t=r.forwardRef(((t,m)=>{var{children:i,className:c}=t,l=e(t,["children","className"]);return r.createElement(o,Object.assign({as:"tfoot",className:a(s.TableFoot,c),ref:m},l),i)}));t.displayName="TableFoot";export{t as TableFoot};
1
+ import * as React from 'react';
2
+ import { classNames, ComponentClassName } from '@aws-amplify/ui';
3
+ import { View } from '../View/View.mjs';
4
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
5
+
6
+ const TableFootPrimitive = ({ children, className, ...rest }, ref) => (React.createElement(View, { as: "tfoot", className: classNames(ComponentClassName.TableFoot, className), ref: ref, ...rest }, children));
7
+ const TableFoot = primitiveWithForwardRef(TableFootPrimitive);
8
+ TableFoot.displayName = 'TableFoot';
9
+
10
+ export { TableFoot };
@@ -1 +1,10 @@
1
- import{__rest as e}from"tslib";import*as a from"react";import r 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{children:i,className:c}=t,l=e(t,["children","className"]);return a.createElement(m,Object.assign({as:"thead",className:r(s.TableHead,c),ref:o},l),i)}));t.displayName="TableHead";export{t as TableHead};
1
+ import * as React from 'react';
2
+ import { classNames, ComponentClassName } from '@aws-amplify/ui';
3
+ import { View } from '../View/View.mjs';
4
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
5
+
6
+ const TableHeadPrimitive = ({ children, className, ...rest }, ref) => (React.createElement(View, { as: "thead", className: classNames(ComponentClassName.TableHead, className), ref: ref, ...rest }, children));
7
+ const TableHead = primitiveWithForwardRef(TableHeadPrimitive);
8
+ TableHead.displayName = 'TableHead';
9
+
10
+ export { TableHead };
@@ -1 +1,10 @@
1
- import{__rest as r}from"tslib";import e from"classnames";import*as a from"react";import{ComponentClassNames as s}from"../shared/constants.mjs";import{View as m}from"../View/View.mjs";const o=a.forwardRef(((o,t)=>{var{children:i,className:c}=o,l=r(o,["children","className"]);return a.createElement(m,Object.assign({as:"tr",className:e(s.TableRow,c),ref:t},l),i)}));o.displayName="TableRow";export{o as TableRow};
1
+ import { classNames, ComponentClassName } 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 TableRowPrimitive = ({ children, className, ...rest }, ref) => (React.createElement(View, { as: "tr", className: classNames(ComponentClassName.TableRow, className), ref: ref, ...rest }, children));
7
+ const TableRow = primitiveWithForwardRef(TableRowPrimitive);
8
+ TableRow.displayName = 'TableRow';
9
+
10
+ export { TableRow };
@@ -1 +1,24 @@
1
- import{__rest as e}from"tslib";import a from"classnames";import*as r from"@radix-ui/react-tabs";import*as t from"react";import{sanitizeNamespaceImport as i}from"@aws-amplify/ui";import{ComponentClassNames as n}from"../shared/constants.mjs";import{Flex as s}from"../Flex/Flex.mjs";import{View as l}from"../View/View.mjs";const{Root:o,List:m,Trigger:c,Content:d}=i(r),f=e=>t.isValidElement(e),p=t.forwardRef(((r,i)=>{var{ariaLabel:l,children:c,className:p,defaultIndex:u=0,currentIndex:g,onChange:b,indicatorPosition:h,spacing:x}=r,N=e(r,["ariaLabel","children","className","defaultIndex","currentIndex","onChange","indicatorPosition","spacing"]);const C={defaultValue:u.toString(),value:null!=g?g.toString():void 0,onValueChange:b},E=t.Children.toArray(c).filter((e=>!!e));return t.createElement(o,Object.assign({},C),t.createElement(m,{"aria-label":l},t.createElement(s,Object.assign({className:a(n.Tabs,p),"data-indicator-position":h,ref:i},N),t.Children.map(E,((e,a)=>{if(f(e))return t.cloneElement(e,{"data-spacing":x,key:a,value:`${a}`})})))),t.Children.map(E,((e,a)=>{if(f(e))return t.createElement(d,{key:a,value:`${a}`},e.props.children)})))})),u=t.forwardRef(((r,i)=>{var{className:s,title:o}=r,m=e(r,["className","title"]);return t.createElement(l,Object.assign({as:c,className:a(n.TabItems,s),ref:i},m),o)}));p.displayName="Tabs",u.displayName="TabItem";export{u as TabItem,p as Tabs};
1
+ import * as React from 'react';
2
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
3
+ import { TabsItem } from './TabsItem.mjs';
4
+ import { TabList } from './TabsList.mjs';
5
+ import { TabPanel } from './TabsPanel.mjs';
6
+ import { TabsContainer } from './TabsContainer.mjs';
7
+
8
+ const TabsPrimitive = ({ items, indicatorPosition, justifyContent, spacing, ...rest }, ref) => {
9
+ return (React.createElement(TabsContainer, { ...rest, ref: ref },
10
+ React.createElement(TabList, { indicatorPosition: indicatorPosition, justifyContent: justifyContent, spacing: spacing }, items?.map(({ value, label, content, ...rest }) => (React.createElement(TabsItem, { ...rest, key: value, value: value }, label)))),
11
+ items?.map(({ value, content, isDisabled }) => (React.createElement(TabPanel, { key: value, value: value, isDisabled: isDisabled }, content)))));
12
+ };
13
+ /**
14
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/tabs)
15
+ */
16
+ const Tabs = Object.assign(primitiveWithForwardRef(TabsPrimitive), {
17
+ Item: TabsItem,
18
+ List: TabList,
19
+ Panel: TabPanel,
20
+ Container: TabsContainer,
21
+ });
22
+ Tabs.displayName = 'Tabs';
23
+
24
+ export { Tabs };
@@ -0,0 +1,35 @@
1
+ import * as React from 'react';
2
+ import { isFunction, classNames, ComponentClassName } from '@aws-amplify/ui';
3
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
4
+ import { View } from '../View/View.mjs';
5
+ import { TabsContext } from './TabsContext.mjs';
6
+
7
+ const TabsContainerPrimitive = ({ children, defaultValue, className, value: controlledValue, onValueChange, isLazy, ...rest }, ref) => {
8
+ const isControlled = controlledValue !== undefined;
9
+ const [localValue, setLocalValue] = React.useState(() => isControlled ? controlledValue : defaultValue);
10
+ const activeTab = isControlled ? controlledValue : localValue ?? '';
11
+ const setActiveTab = React.useCallback((newValue) => {
12
+ if (isFunction(onValueChange)) {
13
+ onValueChange(newValue);
14
+ }
15
+ if (!isControlled) {
16
+ setLocalValue(newValue);
17
+ }
18
+ }, [onValueChange, isControlled]);
19
+ const _value = React.useMemo(() => {
20
+ return {
21
+ activeTab,
22
+ isLazy,
23
+ setActiveTab,
24
+ };
25
+ }, [activeTab, setActiveTab, isLazy]);
26
+ return (React.createElement(TabsContext.Provider, { value: _value },
27
+ React.createElement(View, { ...rest, ref: ref, className: classNames(className, ComponentClassName.Tabs) }, children)));
28
+ };
29
+ /**
30
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/tabs)
31
+ */
32
+ const TabsContainer = primitiveWithForwardRef(TabsContainerPrimitive);
33
+ TabsContainer.displayName = 'Tabs.Container';
34
+
35
+ export { TabsContainer };
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+
3
+ const TabsContext = React.createContext({
4
+ activeTab: '',
5
+ setActiveTab: () => { },
6
+ });
7
+
8
+ export { TabsContext };
@@ -0,0 +1,24 @@
1
+ import * as React from 'react';
2
+ import { classNames, ComponentClassName, classNameModifierByFlag, isTypedFunction } from '@aws-amplify/ui';
3
+ import { View } from '../View/View.mjs';
4
+ import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
5
+ import { TabsContext } from './TabsContext.mjs';
6
+
7
+ const TabsItemPrimitive = ({ className, value, children, onClick, as = 'button', role = 'tab', ...rest }, ref) => {
8
+ const { activeTab, setActiveTab } = React.useContext(TabsContext);
9
+ const isActive = activeTab === value;
10
+ const handleOnClick = (e) => {
11
+ if (isTypedFunction(onClick)) {
12
+ onClick?.(e);
13
+ }
14
+ setActiveTab(value);
15
+ };
16
+ return (React.createElement(View, { ...rest, role: role, as: as, id: `${value}-tab`, "aria-selected": isActive, "aria-controls": `${value}-panel`, tabIndex: !isActive ? -1 : undefined, className: classNames(ComponentClassName.TabsItem, classNameModifierByFlag(ComponentClassName.TabsItem, 'active', activeTab === value), className), ref: ref, onClick: handleOnClick }, children));
17
+ };
18
+ /**
19
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/tabs)
20
+ */
21
+ const TabsItem = primitiveWithForwardRef(TabsItemPrimitive);
22
+ TabsItem.displayName = 'Tabs.Item';
23
+
24
+ export { TabsItem };