@timmbr/ui 1.4.2 → 1.6.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.
- package/README.md +12 -10
- package/dist/components/Accordion/Accordion.js +1 -1
- package/dist/components/Accordion/Accordion.styles.d.ts.map +1 -1
- package/dist/components/Accordion/Accordion.styles.js +3 -3
- package/dist/components/Alert/Alert.js +2 -2
- package/dist/components/Alert/Alert.styles.d.ts +2 -2
- package/dist/components/Alert/Alert.styles.js +4 -4
- package/dist/components/AlertDialog/AlertDialog.d.ts +5 -3
- package/dist/components/AlertDialog/AlertDialog.d.ts.map +1 -1
- package/dist/components/AlertDialog/AlertDialog.js +21 -8
- package/dist/components/AlertDialog/AlertDialog.styles.d.ts +7 -1
- package/dist/components/AlertDialog/AlertDialog.styles.d.ts.map +1 -1
- package/dist/components/AlertDialog/AlertDialog.styles.js +29 -6
- package/dist/components/AlertDialog/AlertDialog.types.d.ts +19 -2
- package/dist/components/AlertDialog/AlertDialog.types.d.ts.map +1 -1
- package/dist/components/AuthModal/AuthModal.d.ts +4 -0
- package/dist/components/AuthModal/AuthModal.d.ts.map +1 -0
- package/dist/components/AuthModal/AuthModal.js +89 -0
- package/dist/components/AuthModal/AuthModal.labels.d.ts +6 -0
- package/dist/components/AuthModal/AuthModal.labels.d.ts.map +1 -0
- package/dist/components/AuthModal/AuthModal.labels.js +52 -0
- package/dist/components/AuthModal/AuthModal.styles.d.ts +12 -0
- package/dist/components/AuthModal/AuthModal.styles.d.ts.map +1 -0
- package/dist/components/AuthModal/AuthModal.styles.js +38 -0
- package/dist/components/AuthModal/AuthModal.types.d.ts +158 -0
- package/dist/components/AuthModal/AuthModal.types.d.ts.map +1 -0
- package/dist/components/AuthModal/index.d.ts +6 -0
- package/dist/components/AuthModal/index.d.ts.map +1 -0
- package/dist/components/AuthModal/subcomponents/AuthModalBanner.d.ts +11 -0
- package/dist/components/AuthModal/subcomponents/AuthModalBanner.d.ts.map +1 -0
- package/dist/components/AuthModal/subcomponents/AuthModalBanner.js +58 -0
- package/dist/components/AuthModal/subcomponents/AuthModalIdentifierForm.d.ts +11 -0
- package/dist/components/AuthModal/subcomponents/AuthModalIdentifierForm.d.ts.map +1 -0
- package/dist/components/AuthModal/subcomponents/AuthModalIdentifierForm.js +62 -0
- package/dist/components/AuthModal/subcomponents/AuthModalOAuth.d.ts +11 -0
- package/dist/components/AuthModal/subcomponents/AuthModalOAuth.d.ts.map +1 -0
- package/dist/components/AuthModal/subcomponents/AuthModalOAuth.js +19 -0
- package/dist/components/AuthModal/subcomponents/AuthModalOtpForm.d.ts +10 -0
- package/dist/components/AuthModal/subcomponents/AuthModalOtpForm.d.ts.map +1 -0
- package/dist/components/AuthModal/subcomponents/AuthModalOtpForm.js +62 -0
- package/dist/components/AuthModal/subcomponents/AuthModalParts.d.ts +44 -0
- package/dist/components/AuthModal/subcomponents/AuthModalParts.d.ts.map +1 -0
- package/dist/components/AuthModal/subcomponents/AuthModalParts.js +134 -0
- package/dist/components/AuthModal/subcomponents/AuthModalPasswordForm.d.ts +10 -0
- package/dist/components/AuthModal/subcomponents/AuthModalPasswordForm.d.ts.map +1 -0
- package/dist/components/AuthModal/subcomponents/AuthModalPasswordForm.js +54 -0
- package/dist/components/AuthModal/subcomponents/AuthModalSetPasswordForm.d.ts +10 -0
- package/dist/components/AuthModal/subcomponents/AuthModalSetPasswordForm.d.ts.map +1 -0
- package/dist/components/AuthModal/subcomponents/AuthModalSetPasswordForm.js +79 -0
- package/dist/components/AuthModal/subcomponents/AuthModalSuccess.d.ts +10 -0
- package/dist/components/AuthModal/subcomponents/AuthModalSuccess.d.ts.map +1 -0
- package/dist/components/AuthModal/subcomponents/AuthModalSuccess.js +26 -0
- package/dist/components/AuthModal/subcomponents/OAuthButton.d.ts +12 -0
- package/dist/components/AuthModal/subcomponents/OAuthButton.d.ts.map +1 -0
- package/dist/components/AuthModal/subcomponents/OAuthButton.js +38 -0
- package/dist/components/AuthModal/subcomponents/index.d.ts +9 -0
- package/dist/components/AuthModal/subcomponents/index.d.ts.map +1 -0
- package/dist/components/Avatar/Avatar.styles.d.ts +2 -2
- package/dist/components/Avatar/Avatar.styles.js +11 -11
- package/dist/components/Badge/Badge.styles.d.ts +2 -2
- package/dist/components/Badge/Badge.styles.d.ts.map +1 -1
- package/dist/components/Badge/Badge.styles.js +10 -8
- package/dist/components/Button/Button.d.ts.map +1 -1
- package/dist/components/Button/Button.js +6 -0
- package/dist/components/Button/Button.styles.d.ts +4 -2
- package/dist/components/Button/Button.styles.d.ts.map +1 -1
- package/dist/components/Button/Button.styles.js +29 -10
- package/dist/components/Card/Card.d.ts.map +1 -1
- package/dist/components/Card/Card.js +51 -32
- package/dist/components/Card/Card.styles.d.ts +32 -5
- package/dist/components/Card/Card.styles.d.ts.map +1 -1
- package/dist/components/Card/Card.styles.js +70 -11
- package/dist/components/Card/Card.types.d.ts +14 -3
- package/dist/components/Card/Card.types.d.ts.map +1 -1
- package/dist/components/Checkbox/Checkbox.js +4 -4
- package/dist/components/Checkbox/Checkbox.styles.d.ts +2 -2
- package/dist/components/Checkbox/Checkbox.styles.js +1 -1
- package/dist/components/Chip/Chip.js +1 -1
- package/dist/components/Chip/Chip.styles.d.ts +1 -1
- package/dist/components/Chip/Chip.styles.js +5 -5
- package/dist/components/ConfirmDialog/ConfirmDialog.d.ts +30 -0
- package/dist/components/ConfirmDialog/ConfirmDialog.d.ts.map +1 -0
- package/dist/components/ConfirmDialog/ConfirmDialog.js +57 -0
- package/dist/components/ConfirmDialog/index.d.ts +2 -0
- package/dist/components/ConfirmDialog/index.d.ts.map +1 -0
- package/dist/components/Container/Container.styles.d.ts +1 -1
- package/dist/components/DataList/DataList.d.ts +3 -1
- package/dist/components/DataList/DataList.d.ts.map +1 -1
- package/dist/components/DataList/DataList.js +53 -15
- package/dist/components/DataList/DataList.styles.d.ts +17 -4
- package/dist/components/DataList/DataList.styles.d.ts.map +1 -1
- package/dist/components/DataList/DataList.styles.js +56 -13
- package/dist/components/DataList/DataList.types.d.ts +19 -2
- package/dist/components/DataList/DataList.types.d.ts.map +1 -1
- package/dist/components/Dialog/Dialog.styles.js +6 -6
- package/dist/components/Divider/Divider.js +1 -1
- package/dist/components/Drawer/Drawer.d.ts +4 -3
- package/dist/components/Drawer/Drawer.d.ts.map +1 -1
- package/dist/components/Drawer/Drawer.js +33 -6
- package/dist/components/Drawer/Drawer.styles.d.ts +4 -0
- package/dist/components/Drawer/Drawer.styles.d.ts.map +1 -1
- package/dist/components/Drawer/Drawer.styles.js +9 -6
- package/dist/components/Drawer/Drawer.types.d.ts +1 -0
- package/dist/components/Drawer/Drawer.types.d.ts.map +1 -1
- package/dist/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/components/Dropdown/Dropdown.js +25 -12
- package/dist/components/Dropdown/Dropdown.styles.d.ts +5 -1
- package/dist/components/Dropdown/Dropdown.styles.d.ts.map +1 -1
- package/dist/components/Dropdown/Dropdown.styles.js +13 -3
- package/dist/components/Dropdown/Dropdown.types.d.ts +4 -0
- package/dist/components/Dropdown/Dropdown.types.d.ts.map +1 -1
- package/dist/components/EmptyState/EmptyState.d.ts.map +1 -1
- package/dist/components/EmptyState/EmptyState.js +4 -3
- package/dist/components/EmptyState/EmptyState.styles.d.ts +3 -2
- package/dist/components/EmptyState/EmptyState.styles.d.ts.map +1 -1
- package/dist/components/EmptyState/EmptyState.styles.js +8 -3
- package/dist/components/Fieldset/Fieldset.d.ts +14 -0
- package/dist/components/Fieldset/Fieldset.d.ts.map +1 -0
- package/dist/components/Fieldset/Fieldset.js +24 -0
- package/dist/components/Fieldset/index.d.ts +2 -0
- package/dist/components/Fieldset/index.d.ts.map +1 -0
- package/dist/components/FormActions/FormActions.d.ts +13 -0
- package/dist/components/FormActions/FormActions.d.ts.map +1 -0
- package/dist/components/FormActions/FormActions.js +24 -0
- package/dist/components/FormActions/index.d.ts +2 -0
- package/dist/components/FormActions/index.d.ts.map +1 -0
- package/dist/components/FormField/FormField.js +1 -1
- package/dist/components/Grid/Grid.d.ts +3 -1
- package/dist/components/Grid/Grid.d.ts.map +1 -1
- package/dist/components/Grid/Grid.js +31 -5
- package/dist/components/Grid/Grid.styles.d.ts +86 -0
- package/dist/components/Grid/Grid.styles.d.ts.map +1 -1
- package/dist/components/Grid/Grid.styles.js +85 -1
- package/dist/components/Grid/Grid.types.d.ts +31 -3
- package/dist/components/Grid/Grid.types.d.ts.map +1 -1
- package/dist/components/Heading/Heading.styles.d.ts +2 -2
- package/dist/components/Heading/Heading.styles.d.ts.map +1 -1
- package/dist/components/Heading/Heading.styles.js +15 -11
- package/dist/components/Heading/Heading.types.d.ts +1 -1
- package/dist/components/Heading/Heading.types.d.ts.map +1 -1
- package/dist/components/Icon/Icon.styles.d.ts +2 -2
- package/dist/components/Icon/Icon.styles.d.ts.map +1 -1
- package/dist/components/Icon/Icon.styles.js +12 -8
- package/dist/components/IconTile/IconTile.d.ts +8 -0
- package/dist/components/IconTile/IconTile.d.ts.map +1 -0
- package/dist/components/IconTile/IconTile.js +23 -0
- package/dist/components/IconTile/IconTile.styles.d.ts +7 -0
- package/dist/components/IconTile/IconTile.styles.d.ts.map +1 -0
- package/dist/components/IconTile/IconTile.styles.js +24 -0
- package/dist/components/IconTile/IconTile.types.d.ts +12 -0
- package/dist/components/IconTile/IconTile.types.d.ts.map +1 -0
- package/dist/components/IconTile/index.d.ts +4 -0
- package/dist/components/IconTile/index.d.ts.map +1 -0
- package/dist/components/ImageUpload/ImageUpload.js +6 -6
- package/dist/components/ImageUpload/subcomponents/ImageUploadDropzone.js +10 -10
- package/dist/components/ImageUpload/subcomponents/ImageUploadModal.js +8 -8
- package/dist/components/ImageUpload/subcomponents/ImageUploadSinglePreview.js +7 -7
- package/dist/components/ImageUpload/subcomponents/ImageUploadThumbnailCard.js +10 -10
- package/dist/components/Inline/Inline.d.ts.map +1 -1
- package/dist/components/Inline/Inline.js +10 -2
- package/dist/components/Inline/Inline.types.d.ts +6 -1
- package/dist/components/Inline/Inline.types.d.ts.map +1 -1
- package/dist/components/Input/Input.js +4 -4
- package/dist/components/Input/Input.styles.d.ts +1 -1
- package/dist/components/Input/Input.styles.js +6 -6
- package/dist/components/Label/Label.styles.d.ts +1 -1
- package/dist/components/Label/Label.styles.js +4 -4
- package/dist/components/LinkButton/LinkButton.d.ts.map +1 -1
- package/dist/components/LinkButton/LinkButton.js +2 -0
- package/dist/components/LinkButton/LinkButton.styles.d.ts +3 -2
- package/dist/components/LinkButton/LinkButton.styles.d.ts.map +1 -1
- package/dist/components/LinkButton/LinkButton.styles.js +12 -6
- package/dist/components/List/List.d.ts.map +1 -1
- package/dist/components/List/List.js +19 -6
- package/dist/components/List/List.styles.d.ts +3 -1
- package/dist/components/List/List.styles.d.ts.map +1 -1
- package/dist/components/List/List.styles.js +7 -6
- package/dist/components/List/List.types.d.ts +7 -0
- package/dist/components/List/List.types.d.ts.map +1 -1
- package/dist/components/MediaCard/MediaCard.d.ts +13 -0
- package/dist/components/MediaCard/MediaCard.d.ts.map +1 -0
- package/dist/components/MediaCard/MediaCard.js +123 -0
- package/dist/components/MediaCard/MediaCard.styles.d.ts +17 -0
- package/dist/components/MediaCard/MediaCard.styles.d.ts.map +1 -0
- package/dist/components/MediaCard/MediaCard.styles.js +57 -0
- package/dist/components/MediaCard/MediaCard.types.d.ts +73 -0
- package/dist/components/MediaCard/MediaCard.types.d.ts.map +1 -0
- package/dist/components/MediaCard/index.d.ts +4 -0
- package/dist/components/MediaCard/index.d.ts.map +1 -0
- package/dist/components/NavFooter/NavFooter.styles.d.ts +1 -1
- package/dist/components/NavFooter/NavFooter.styles.js +9 -9
- package/dist/components/NavFooter/subcomponents/FooterBrand.js +3 -3
- package/dist/components/NavFooter/subcomponents/FooterLegalBar.js +1 -1
- package/dist/components/NavFooter/subcomponents/FooterNavSection.js +4 -4
- package/dist/components/NavFooter/subcomponents/FooterNewsletter.js +7 -7
- package/dist/components/NavFooter/subcomponents/FooterOffice.js +5 -5
- package/dist/components/NavFooter/subcomponents/FooterSocial.js +3 -3
- package/dist/components/NavHeader/NavHeader.d.ts.map +1 -1
- package/dist/components/NavHeader/NavHeader.js +13 -4
- package/dist/components/NavHeader/NavHeader.styles.d.ts +1 -1
- package/dist/components/NavHeader/NavHeader.styles.js +16 -16
- package/dist/components/NavHeader/NavHeader.types.d.ts +41 -0
- package/dist/components/NavHeader/NavHeader.types.d.ts.map +1 -1
- package/dist/components/NavHeader/index.d.ts +1 -1
- package/dist/components/NavHeader/index.d.ts.map +1 -1
- package/dist/components/NavHeader/subcomponents/NavActionLabelSkeleton.d.ts +4 -0
- package/dist/components/NavHeader/subcomponents/NavActionLabelSkeleton.d.ts.map +1 -0
- package/dist/components/NavHeader/subcomponents/NavActionLabelSkeleton.js +16 -0
- package/dist/components/NavHeader/subcomponents/NavActionOverflow.d.ts.map +1 -1
- package/dist/components/NavHeader/subcomponents/NavActionOverflow.js +6 -5
- package/dist/components/NavHeader/subcomponents/NavActions.d.ts +14 -0
- package/dist/components/NavHeader/subcomponents/NavActions.d.ts.map +1 -1
- package/dist/components/NavHeader/subcomponents/NavActions.js +82 -16
- package/dist/components/NavHeader/subcomponents/NavBrand.d.ts.map +1 -1
- package/dist/components/NavHeader/subcomponents/NavBrand.js +14 -15
- package/dist/components/NavHeader/subcomponents/NavItems.js +3 -3
- package/dist/components/NavHeader/subcomponents/NavItemsOverflow.js +7 -7
- package/dist/components/NavHeader/subcomponents/NavMobileSearchDrawer.js +5 -5
- package/dist/components/NavHeader/subcomponents/NavMobileTabSlider.js +2 -2
- package/dist/components/NavHeader/subcomponents/NavSearch.js +5 -5
- package/dist/components/NavHeader/subcomponents/OfferBanner.js +1 -1
- package/dist/components/OtpInput/OtpInput.d.ts +4 -0
- package/dist/components/OtpInput/OtpInput.d.ts.map +1 -0
- package/dist/components/OtpInput/OtpInput.js +114 -0
- package/dist/components/OtpInput/OtpInput.styles.d.ts +10 -0
- package/dist/components/OtpInput/OtpInput.styles.d.ts.map +1 -0
- package/dist/components/OtpInput/OtpInput.styles.js +49 -0
- package/dist/components/OtpInput/OtpInput.types.d.ts +40 -0
- package/dist/components/OtpInput/OtpInput.types.d.ts.map +1 -0
- package/dist/components/OtpInput/index.d.ts +4 -0
- package/dist/components/OtpInput/index.d.ts.map +1 -0
- package/dist/components/PageHeader/PageHeader.d.ts +8 -0
- package/dist/components/PageHeader/PageHeader.d.ts.map +1 -0
- package/dist/components/PageHeader/PageHeader.js +55 -0
- package/dist/components/PageHeader/PageHeader.styles.d.ts +10 -0
- package/dist/components/PageHeader/PageHeader.styles.d.ts.map +1 -0
- package/dist/components/PageHeader/PageHeader.styles.js +23 -0
- package/dist/components/PageHeader/PageHeader.types.d.ts +24 -0
- package/dist/components/PageHeader/PageHeader.types.d.ts.map +1 -0
- package/dist/components/PageHeader/index.d.ts +4 -0
- package/dist/components/PageHeader/index.d.ts.map +1 -0
- package/dist/components/Pagination/Pagination.d.ts +9 -3
- package/dist/components/Pagination/Pagination.d.ts.map +1 -1
- package/dist/components/Pagination/Pagination.js +60 -39
- package/dist/components/Pagination/Pagination.styles.d.ts +1 -1
- package/dist/components/Pagination/Pagination.styles.js +3 -3
- package/dist/components/Pagination/Pagination.types.d.ts +23 -14
- package/dist/components/Pagination/Pagination.types.d.ts.map +1 -1
- package/dist/components/Popover/Popover.styles.js +1 -1
- package/dist/components/Price/Price.d.ts +10 -0
- package/dist/components/Price/Price.d.ts.map +1 -0
- package/dist/components/Price/Price.js +49 -0
- package/dist/components/Price/Price.styles.d.ts +15 -0
- package/dist/components/Price/Price.styles.d.ts.map +1 -0
- package/dist/components/Price/Price.styles.js +44 -0
- package/dist/components/Price/Price.types.d.ts +22 -0
- package/dist/components/Price/Price.types.d.ts.map +1 -0
- package/dist/components/Price/index.d.ts +4 -0
- package/dist/components/Price/index.d.ts.map +1 -0
- package/dist/components/Progress/Progress.js +2 -2
- package/dist/components/Progress/Progress.styles.d.ts +1 -1
- package/dist/components/Radio/Radio.js +4 -4
- package/dist/components/Radio/Radio.styles.d.ts +2 -2
- package/dist/components/Radio/Radio.styles.js +1 -1
- package/dist/components/RangeSlider/RangeSlider.js +3 -3
- package/dist/components/RangeSlider/RangeSlider.styles.js +1 -1
- package/dist/components/Rating/Rating.d.ts +5 -0
- package/dist/components/Rating/Rating.d.ts.map +1 -0
- package/dist/components/Rating/Rating.js +38 -0
- package/dist/components/Rating/Rating.styles.d.ts +6 -0
- package/dist/components/Rating/Rating.styles.d.ts.map +1 -0
- package/dist/components/Rating/Rating.styles.js +13 -0
- package/dist/components/Rating/Rating.types.d.ts +18 -0
- package/dist/components/Rating/Rating.types.d.ts.map +1 -0
- package/dist/components/Rating/index.d.ts +4 -0
- package/dist/components/Rating/index.d.ts.map +1 -0
- package/dist/components/ResponsiveDialog/ResponsiveDialog.d.ts +29 -0
- package/dist/components/ResponsiveDialog/ResponsiveDialog.d.ts.map +1 -0
- package/dist/components/ResponsiveDialog/ResponsiveDialog.js +74 -0
- package/dist/components/ResponsiveDialog/ResponsiveDialog.types.d.ts +27 -0
- package/dist/components/ResponsiveDialog/ResponsiveDialog.types.d.ts.map +1 -0
- package/dist/components/ResponsiveDialog/index.d.ts +3 -0
- package/dist/components/ResponsiveDialog/index.d.ts.map +1 -0
- package/dist/components/SectionNav/SectionNav.d.ts +12 -0
- package/dist/components/SectionNav/SectionNav.d.ts.map +1 -0
- package/dist/components/SectionNav/SectionNav.js +67 -0
- package/dist/components/SectionNav/SectionNav.styles.d.ts +11 -0
- package/dist/components/SectionNav/SectionNav.styles.d.ts.map +1 -0
- package/dist/components/SectionNav/SectionNav.styles.js +28 -0
- package/dist/components/SectionNav/SectionNav.types.d.ts +37 -0
- package/dist/components/SectionNav/SectionNav.types.d.ts.map +1 -0
- package/dist/components/SectionNav/index.d.ts +4 -0
- package/dist/components/SectionNav/index.d.ts.map +1 -0
- package/dist/components/Select/Select.js +2 -2
- package/dist/components/Select/Select.styles.d.ts +1 -1
- package/dist/components/Select/Select.styles.js +8 -8
- package/dist/components/SideBarNavigation/SideBarNavigation.styles.js +8 -8
- package/dist/components/SideBarNavigation/subcomponents/SidebarBranding.js +3 -3
- package/dist/components/SideBarNavigation/subcomponents/SidebarFooter.js +1 -1
- package/dist/components/SideBarNavigation/subcomponents/SidebarPopoverMenu.js +4 -4
- package/dist/components/SideBarNavigation/subcomponents/SidebarProfile.js +9 -9
- package/dist/components/SideBarNavigation/subcomponents/SidebarSubItem.js +2 -2
- package/dist/components/Skeleton/Skeleton.styles.js +1 -1
- package/dist/components/Spinner/Spinner.d.ts.map +1 -1
- package/dist/components/Spinner/Spinner.js +9 -7
- package/dist/components/Spinner/Spinner.styles.d.ts +8 -2
- package/dist/components/Spinner/Spinner.styles.d.ts.map +1 -1
- package/dist/components/Spinner/Spinner.styles.js +27 -24
- package/dist/components/Spinner/Spinner.types.d.ts +9 -0
- package/dist/components/Spinner/Spinner.types.d.ts.map +1 -1
- package/dist/components/Stack/Stack.d.ts.map +1 -1
- package/dist/components/Stack/Stack.js +16 -1
- package/dist/components/Stack/Stack.types.d.ts +14 -1
- package/dist/components/Stack/Stack.types.d.ts.map +1 -1
- package/dist/components/Stat/Stat.styles.js +4 -4
- package/dist/components/Stepper/Stepper.d.ts +9 -0
- package/dist/components/Stepper/Stepper.d.ts.map +1 -0
- package/dist/components/Stepper/Stepper.js +81 -0
- package/dist/components/Stepper/Stepper.styles.d.ts +14 -0
- package/dist/components/Stepper/Stepper.styles.d.ts.map +1 -0
- package/dist/components/Stepper/Stepper.styles.js +40 -0
- package/dist/components/Stepper/Stepper.types.d.ts +17 -0
- package/dist/components/Stepper/Stepper.types.d.ts.map +1 -0
- package/dist/components/Stepper/index.d.ts +4 -0
- package/dist/components/Stepper/index.d.ts.map +1 -0
- package/dist/components/Steps/Steps.d.ts +9 -0
- package/dist/components/Steps/Steps.d.ts.map +1 -0
- package/dist/components/Steps/Steps.js +81 -0
- package/dist/components/Steps/Steps.styles.d.ts +14 -0
- package/dist/components/Steps/Steps.styles.d.ts.map +1 -0
- package/dist/components/Steps/Steps.styles.js +40 -0
- package/dist/components/Steps/Steps.types.d.ts +17 -0
- package/dist/components/Steps/Steps.types.d.ts.map +1 -0
- package/dist/components/Steps/index.d.ts +4 -0
- package/dist/components/Steps/index.d.ts.map +1 -0
- package/dist/components/SubNav/SubNav.d.ts +17 -0
- package/dist/components/SubNav/SubNav.d.ts.map +1 -0
- package/dist/components/SubNav/SubNav.js +87 -0
- package/dist/components/SubNav/SubNav.styles.d.ts +18 -0
- package/dist/components/SubNav/SubNav.styles.d.ts.map +1 -0
- package/dist/components/SubNav/SubNav.styles.js +33 -0
- package/dist/components/SubNav/SubNav.types.d.ts +45 -0
- package/dist/components/SubNav/SubNav.types.d.ts.map +1 -0
- package/dist/components/SubNav/index.d.ts +4 -0
- package/dist/components/SubNav/index.d.ts.map +1 -0
- package/dist/components/Switch/Switch.js +2 -2
- package/dist/components/Switch/Switch.styles.d.ts +2 -2
- package/dist/components/Switch/Switch.styles.js +1 -1
- package/dist/components/Table/Table.js +1 -1
- package/dist/components/Table/Table.styles.d.ts +1 -1
- package/dist/components/Table/Table.styles.js +5 -5
- package/dist/components/Table/TablePagination.js +4 -4
- package/dist/components/Tabs/Tabs.d.ts.map +1 -1
- package/dist/components/Tabs/Tabs.js +75 -8
- package/dist/components/Tabs/Tabs.styles.d.ts +10 -2
- package/dist/components/Tabs/Tabs.styles.d.ts.map +1 -1
- package/dist/components/Tabs/Tabs.styles.js +25 -10
- package/dist/components/Tabs/Tabs.types.d.ts +13 -0
- package/dist/components/Tabs/Tabs.types.d.ts.map +1 -1
- package/dist/components/Text/Text.d.ts.map +1 -1
- package/dist/components/Text/Text.js +4 -0
- package/dist/components/Text/Text.styles.d.ts +4 -2
- package/dist/components/Text/Text.styles.d.ts.map +1 -1
- package/dist/components/Text/Text.styles.js +32 -16
- package/dist/components/Text/Text.types.d.ts +1 -1
- package/dist/components/Text/Text.types.d.ts.map +1 -1
- package/dist/components/Textarea/Textarea.js +4 -4
- package/dist/components/Textarea/Textarea.styles.d.ts +1 -1
- package/dist/components/Textarea/Textarea.styles.js +6 -6
- package/dist/components/Toast/Toast.js +3 -3
- package/dist/components/Toast/Toast.styles.js +5 -5
- package/dist/components/Toast/ToastContainer.js +1 -1
- package/dist/components/Tooltip/Tooltip.styles.js +1 -1
- package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +8 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.d.ts.map +1 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.js +14 -0
- package/dist/components/VisuallyHidden/index.d.ts +2 -0
- package/dist/components/VisuallyHidden/index.d.ts.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +46 -14
- package/dist/utils/gap.d.ts +21 -1
- package/dist/utils/gap.d.ts.map +1 -1
- package/dist/utils/gap.js +306 -46
- package/package.json +7 -6
- package/dist/components/CrossZoneLink/CrossZoneLink.d.ts +0 -10
- package/dist/components/CrossZoneLink/CrossZoneLink.d.ts.map +0 -1
- package/dist/components/CrossZoneLink/CrossZoneLink.js +0 -111
- package/dist/components/CrossZoneLink/CrossZoneLink.styles.d.ts +0 -8
- package/dist/components/CrossZoneLink/CrossZoneLink.styles.d.ts.map +0 -1
- package/dist/components/CrossZoneLink/CrossZoneLink.styles.js +0 -33
- package/dist/components/CrossZoneLink/CrossZoneLink.types.d.ts +0 -31
- package/dist/components/CrossZoneLink/CrossZoneLink.types.d.ts.map +0 -1
- package/dist/components/CrossZoneLink/index.d.ts +0 -4
- package/dist/components/CrossZoneLink/index.d.ts.map +0 -1
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import type { ReactNode, FormEvent } from 'react';
|
|
2
|
+
export interface AuthModalBannerData {
|
|
3
|
+
title?: string;
|
|
4
|
+
subtitle?: string;
|
|
5
|
+
promoBadge?: string;
|
|
6
|
+
termsNotice?: string;
|
|
7
|
+
imageUrl?: string;
|
|
8
|
+
iconUrl?: string;
|
|
9
|
+
logoUrl?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* IDENTIFIER → OTP | PASSWORD → [SET_PASSWORD] → SUCCESS
|
|
13
|
+
* - IDENTIFIER: email or phone, "Continue" (OTP) or "Use password instead"
|
|
14
|
+
* - OTP: one-time code
|
|
15
|
+
* - PASSWORD: password sign-in, with "Forgot password?"
|
|
16
|
+
* - SET_PASSWORD: create (new account, skippable) or reset (forgot password)
|
|
17
|
+
* - SUCCESS: signed-in confirmation
|
|
18
|
+
*/
|
|
19
|
+
export type AuthModalStep = 'IDENTIFIER' | 'OTP' | 'PASSWORD' | 'SET_PASSWORD' | 'SUCCESS';
|
|
20
|
+
export type AuthModalSetPasswordMode = 'create' | 'reset';
|
|
21
|
+
export interface AuthOAuthProvider {
|
|
22
|
+
/** Provider identifier, e.g. 'google', 'apple', 'github', or custom */
|
|
23
|
+
id: 'google' | 'apple' | 'github' | string;
|
|
24
|
+
/** Display label for the provider, e.g. 'Google', 'Apple', 'GitHub' */
|
|
25
|
+
name: string;
|
|
26
|
+
/** Custom icon ReactNode. If omitted, built-in icon is used for google, apple, github */
|
|
27
|
+
icon?: ReactNode;
|
|
28
|
+
/** Click handler for initiating OAuth flow */
|
|
29
|
+
onClick: () => void;
|
|
30
|
+
/** Whether this provider is currently in a loading state */
|
|
31
|
+
isLoading?: boolean;
|
|
32
|
+
/** Whether this provider is disabled */
|
|
33
|
+
disabled?: boolean;
|
|
34
|
+
}
|
|
35
|
+
export interface AuthModalBannerProps {
|
|
36
|
+
/** Promotional banner content. The banner is hidden when no image is provided. */
|
|
37
|
+
data?: AuthModalBannerData;
|
|
38
|
+
/** Link for the promo's terms notice (e.g. "*T&C Apply"); not the site's Terms of Use */
|
|
39
|
+
promoTermsUrl?: string;
|
|
40
|
+
/** Custom banner wrapper class */
|
|
41
|
+
className?: string;
|
|
42
|
+
}
|
|
43
|
+
export interface AuthModalFormProps {
|
|
44
|
+
/** Current step (see AuthModalStep) */
|
|
45
|
+
step?: AuthModalStep;
|
|
46
|
+
/** Whether an async request is currently loading */
|
|
47
|
+
isLoading?: boolean;
|
|
48
|
+
/** Error message for the current step */
|
|
49
|
+
error?: string | null;
|
|
50
|
+
/** Identifier input value (phone number or email) */
|
|
51
|
+
identifier?: string;
|
|
52
|
+
onIdentifierChange?: (value: string) => void;
|
|
53
|
+
/** Primary action: send a one-time code */
|
|
54
|
+
onIdentifierSubmit?: (e: FormEvent) => void;
|
|
55
|
+
/** Secondary action: switch to the PASSWORD step. Hidden when omitted. */
|
|
56
|
+
onUsePassword?: () => void;
|
|
57
|
+
/** One-time code value */
|
|
58
|
+
otp?: string;
|
|
59
|
+
onOtpChange?: (value: string) => void;
|
|
60
|
+
onOtpSubmit?: (e: FormEvent) => void;
|
|
61
|
+
/** Number of digits in the code. Defaults to 6 */
|
|
62
|
+
otpLength?: number;
|
|
63
|
+
onResendOtp?: () => void;
|
|
64
|
+
/** Resend countdown in seconds (0 = enabled) */
|
|
65
|
+
resendCountdown?: number;
|
|
66
|
+
/** Masked destination where the code was sent (e.g. a***x@gmail.com) */
|
|
67
|
+
destination?: string;
|
|
68
|
+
/** "Edit" link on OTP/PASSWORD steps: go back to IDENTIFIER */
|
|
69
|
+
onEditIdentifier?: () => void;
|
|
70
|
+
password?: string;
|
|
71
|
+
onPasswordChange?: (value: string) => void;
|
|
72
|
+
onPasswordSubmit?: (e: FormEvent) => void;
|
|
73
|
+
/** "Forgot password?" — typically sends a one-time code instead */
|
|
74
|
+
onForgotPassword?: () => void;
|
|
75
|
+
setPasswordMode?: AuthModalSetPasswordMode;
|
|
76
|
+
newPassword?: string;
|
|
77
|
+
onNewPasswordChange?: (value: string) => void;
|
|
78
|
+
confirmPassword?: string;
|
|
79
|
+
onConfirmPasswordChange?: (value: string) => void;
|
|
80
|
+
onSetPasswordSubmit?: (e: FormEvent) => void;
|
|
81
|
+
/** "Skip for now" (create mode only). Hidden when omitted. */
|
|
82
|
+
onSkipSetPassword?: () => void;
|
|
83
|
+
/** Heading shown on the SUCCESS step */
|
|
84
|
+
successTitle?: string;
|
|
85
|
+
/** Supporting text shown on the SUCCESS step */
|
|
86
|
+
successMessage?: string;
|
|
87
|
+
}
|
|
88
|
+
export interface AuthModalOAuthProps {
|
|
89
|
+
/** List of OAuth providers to display */
|
|
90
|
+
providers?: AuthOAuthProvider[];
|
|
91
|
+
}
|
|
92
|
+
export interface AuthModalLegalProps {
|
|
93
|
+
/** Terms of Service URL. Defaults to '/terms' */
|
|
94
|
+
termsUrl?: string;
|
|
95
|
+
/** Privacy Policy URL. Defaults to '/privacy' */
|
|
96
|
+
privacyUrl?: string;
|
|
97
|
+
}
|
|
98
|
+
/** All user-facing copy. Every key has an English default. */
|
|
99
|
+
export interface AuthModalLabels {
|
|
100
|
+
dialogTitle: string;
|
|
101
|
+
dialogDescription: string;
|
|
102
|
+
close: string;
|
|
103
|
+
identifierTitle: string;
|
|
104
|
+
identifierSubtitle: string;
|
|
105
|
+
identifierLabel: string;
|
|
106
|
+
identifierPlaceholder: string;
|
|
107
|
+
continue: string;
|
|
108
|
+
usePassword: string;
|
|
109
|
+
legalPrefix: string;
|
|
110
|
+
termsOfUse: string;
|
|
111
|
+
privacyPolicy: string;
|
|
112
|
+
oauthDivider: string;
|
|
113
|
+
oauthContinueWith: (providerName: string) => string;
|
|
114
|
+
otpTitle: string;
|
|
115
|
+
otpSentTo: string;
|
|
116
|
+
otpLabel: string;
|
|
117
|
+
otpSubmit: string;
|
|
118
|
+
otpResend: string;
|
|
119
|
+
otpResendIn: (seconds: number) => string;
|
|
120
|
+
edit: string;
|
|
121
|
+
passwordTitle: string;
|
|
122
|
+
passwordLabel: string;
|
|
123
|
+
passwordPlaceholder: string;
|
|
124
|
+
passwordSubmit: string;
|
|
125
|
+
forgotPassword: string;
|
|
126
|
+
showPassword: string;
|
|
127
|
+
hidePassword: string;
|
|
128
|
+
setPasswordCreateTitle: string;
|
|
129
|
+
setPasswordCreateSubtitle: string;
|
|
130
|
+
setPasswordResetTitle: string;
|
|
131
|
+
setPasswordResetSubtitle: string;
|
|
132
|
+
newPasswordLabel: string;
|
|
133
|
+
confirmPasswordLabel: string;
|
|
134
|
+
passwordHint: string;
|
|
135
|
+
passwordMismatch: string;
|
|
136
|
+
setPasswordSubmit: string;
|
|
137
|
+
skipForNow: string;
|
|
138
|
+
successTitle: string;
|
|
139
|
+
}
|
|
140
|
+
export interface AuthModalProps {
|
|
141
|
+
/** Controlled open state */
|
|
142
|
+
isOpen: boolean;
|
|
143
|
+
/** Callback fired when modal is closed */
|
|
144
|
+
onClose: () => void;
|
|
145
|
+
/** Promotional banner section configuration */
|
|
146
|
+
banner?: AuthModalBannerProps;
|
|
147
|
+
/** Form state, inputs, and submission callbacks */
|
|
148
|
+
form: AuthModalFormProps;
|
|
149
|
+
/** OAuth social login configuration (shown on the IDENTIFIER step) */
|
|
150
|
+
oauth?: AuthModalOAuthProps;
|
|
151
|
+
/** Legal links configuration */
|
|
152
|
+
legal?: AuthModalLegalProps;
|
|
153
|
+
/** Override any user-facing copy */
|
|
154
|
+
labels?: Partial<AuthModalLabels>;
|
|
155
|
+
/** Optional custom class name for dialog container */
|
|
156
|
+
className?: string;
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=AuthModal.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthModal.types.d.ts","sourceRoot":"","sources":["../../../src/components/AuthModal/AuthModal.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElD,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,KAAK,GAAG,UAAU,GAAG,cAAc,GAAG,SAAS,CAAC;AAE3F,MAAM,MAAM,wBAAwB,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE1D,MAAM,WAAW,iBAAiB;IAChC,uEAAuE;IACvE,EAAE,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC3C,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,yFAAyF;IACzF,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,8CAA8C;IAC9C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,kFAAkF;IAClF,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,yFAAyF;IACzF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,oDAAoD;IACpD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAGtB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,2CAA2C;IAC3C,kBAAkB,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;IAC5C,0EAA0E;IAC1E,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAG3B,0BAA0B;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;IACrC,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAG9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,gBAAgB,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;IAC1C,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAG9B,eAAe,CAAC,EAAE,wBAAwB,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;IAC7C,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAG/B,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,yCAAyC;IACzC,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,8DAA8D;AAC9D,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IAEd,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;IAEpD,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IACzC,IAAI,EAAE,MAAM,CAAC;IAEb,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IAErB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,yBAAyB,EAAE,MAAM,CAAC;IAClC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,wBAAwB,EAAE,MAAM,CAAC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IAEnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,4BAA4B;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,0CAA0C;IAC1C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,mDAAmD;IACnD,IAAI,EAAE,kBAAkB,CAAC;IACzB,sEAAsE;IACtE,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,gCAAgC;IAChC,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,oCAAoC;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAClC,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/AuthModal/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { AuthModalBannerProps } from '../AuthModal.types';
|
|
3
|
+
/**
|
|
4
|
+
* Promotional side panel (≥ sm). All content comes from the consumer (CMS);
|
|
5
|
+
* without an image the banner isn't rendered at all.
|
|
6
|
+
*/
|
|
7
|
+
export declare function AuthModalBanner({ data, promoTermsUrl, className }: AuthModalBannerProps): React.JSX.Element | null;
|
|
8
|
+
export declare namespace AuthModalBanner {
|
|
9
|
+
var displayName: string;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=AuthModalBanner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthModalBanner.d.ts","sourceRoot":"","sources":["../../../../src/components/AuthModal/subcomponents/AuthModalBanner.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,oBAAoB,4BAqEvF;yBArEe,eAAe"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { cn } from '@timmbr/utils';
|
|
4
|
+
import { authModalBannerVariants } from '../AuthModal.styles.js';
|
|
5
|
+
|
|
6
|
+
function AuthModalBanner({ data, promoTermsUrl, className }) {
|
|
7
|
+
if (!data?.imageUrl) return null;
|
|
8
|
+
const brandIcon = data.iconUrl || data.logoUrl;
|
|
9
|
+
return /* @__PURE__ */ jsxs("div", { "data-slot": "auth-modal-banner", className: cn(authModalBannerVariants(), className), children: [
|
|
10
|
+
/* @__PURE__ */ jsxs("div", { "aria-hidden": "true", className: "absolute inset-0 pointer-events-none z-0", children: [
|
|
11
|
+
/* @__PURE__ */ jsx(
|
|
12
|
+
"img",
|
|
13
|
+
{
|
|
14
|
+
src: data.imageUrl,
|
|
15
|
+
alt: "",
|
|
16
|
+
width: 320,
|
|
17
|
+
height: 454,
|
|
18
|
+
loading: "lazy",
|
|
19
|
+
decoding: "async",
|
|
20
|
+
className: "h-full w-full object-cover object-center"
|
|
21
|
+
}
|
|
22
|
+
),
|
|
23
|
+
/* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-grey-1000/20" })
|
|
24
|
+
] }),
|
|
25
|
+
(brandIcon || data.title || data.subtitle) && /* @__PURE__ */ jsxs("div", { className: "relative z-10 flex items-center gap-3 pt-2", children: [
|
|
26
|
+
brandIcon && /* @__PURE__ */ jsx(
|
|
27
|
+
"img",
|
|
28
|
+
{
|
|
29
|
+
src: brandIcon,
|
|
30
|
+
alt: "",
|
|
31
|
+
width: 56,
|
|
32
|
+
height: 56,
|
|
33
|
+
loading: "lazy",
|
|
34
|
+
decoding: "async",
|
|
35
|
+
className: "size-14 object-contain"
|
|
36
|
+
}
|
|
37
|
+
),
|
|
38
|
+
/* @__PURE__ */ jsxs("div", { className: "text-grey-50 text-left leading-tight", children: [
|
|
39
|
+
data.title && /* @__PURE__ */ jsx("p", { className: "text-h4 tracking-[1.4px]", children: data.title }),
|
|
40
|
+
data.subtitle && /* @__PURE__ */ jsx("p", { className: "font-medium text-body-2 tracking-[0.7px]", children: data.subtitle })
|
|
41
|
+
] })
|
|
42
|
+
] }),
|
|
43
|
+
(data.promoBadge || data.termsNotice) && /* @__PURE__ */ jsxs("div", { className: "relative z-10 flex flex-col items-start gap-4 pb-2", children: [
|
|
44
|
+
data.promoBadge && /* @__PURE__ */ jsx("div", { className: "bg-primary-400 px-3.5 py-1.5 rounded-sm shadow-sm", children: /* @__PURE__ */ jsx("span", { className: "text-grey-50 font-semibold text-body-3 tracking-wider uppercase", children: data.promoBadge }) }),
|
|
45
|
+
data.termsNotice && (promoTermsUrl ? /* @__PURE__ */ jsx(
|
|
46
|
+
"a",
|
|
47
|
+
{
|
|
48
|
+
href: promoTermsUrl,
|
|
49
|
+
className: "text-grey-50/80 hover:text-grey-50 text-body-3 underline underline-offset-2 transition-colors",
|
|
50
|
+
children: data.termsNotice
|
|
51
|
+
}
|
|
52
|
+
) : /* @__PURE__ */ jsx("p", { className: "text-grey-50/80 text-body-3", children: data.termsNotice }))
|
|
53
|
+
] })
|
|
54
|
+
] });
|
|
55
|
+
}
|
|
56
|
+
AuthModalBanner.displayName = "AuthModalBanner";
|
|
57
|
+
|
|
58
|
+
export { AuthModalBanner };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { AuthModalFormProps, AuthModalLegalProps } from '../AuthModal.types';
|
|
3
|
+
export interface AuthModalIdentifierFormProps {
|
|
4
|
+
form: AuthModalFormProps;
|
|
5
|
+
legal?: AuthModalLegalProps;
|
|
6
|
+
}
|
|
7
|
+
export declare function AuthModalIdentifierForm({ form, legal }: AuthModalIdentifierFormProps): React.JSX.Element;
|
|
8
|
+
export declare namespace AuthModalIdentifierForm {
|
|
9
|
+
var displayName: string;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=AuthModalIdentifierForm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthModalIdentifierForm.d.ts","sourceRoot":"","sources":["../../../../src/components/AuthModal/subcomponents/AuthModalIdentifierForm.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAGlF,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,kBAAkB,CAAC;IACzB,KAAK,CAAC,EAAE,mBAAmB,CAAC;CAC7B;AAKD,wBAAgB,uBAAuB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,4BAA4B,qBAkEpF;yBAlEe,uBAAuB"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { useAuthModalLabels } from '../AuthModal.labels.js';
|
|
4
|
+
import { authModalInputVariants, authModalLinkVariants } from '../AuthModal.styles.js';
|
|
5
|
+
import { AuthStepHeader, AuthForm, AuthFieldError, AuthSubmitButton, AuthTextLink } from './AuthModalParts.js';
|
|
6
|
+
|
|
7
|
+
const INPUT_ID = "auth-identifier-input";
|
|
8
|
+
const ERROR_ID = "auth-identifier-error";
|
|
9
|
+
function AuthModalIdentifierForm({ form, legal }) {
|
|
10
|
+
const labels = useAuthModalLabels();
|
|
11
|
+
const {
|
|
12
|
+
identifier = "",
|
|
13
|
+
onIdentifierChange,
|
|
14
|
+
onIdentifierSubmit,
|
|
15
|
+
onUsePassword,
|
|
16
|
+
isLoading = false,
|
|
17
|
+
error
|
|
18
|
+
} = form;
|
|
19
|
+
const isEmpty = !identifier.trim();
|
|
20
|
+
return /* @__PURE__ */ jsxs("div", { "data-slot": "auth-modal-identifier-step", className: "flex flex-col", children: [
|
|
21
|
+
/* @__PURE__ */ jsx(AuthStepHeader, { title: labels.identifierTitle, subtitle: labels.identifierSubtitle }),
|
|
22
|
+
/* @__PURE__ */ jsxs(AuthForm, { onSubmit: onIdentifierSubmit, className: "space-y-4", children: [
|
|
23
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
24
|
+
/* @__PURE__ */ jsx("label", { htmlFor: INPUT_ID, className: "sr-only", children: labels.identifierLabel }),
|
|
25
|
+
/* @__PURE__ */ jsx(
|
|
26
|
+
"input",
|
|
27
|
+
{
|
|
28
|
+
id: INPUT_ID,
|
|
29
|
+
type: "text",
|
|
30
|
+
inputMode: "email",
|
|
31
|
+
autoComplete: "username",
|
|
32
|
+
autoCapitalize: "none",
|
|
33
|
+
spellCheck: false,
|
|
34
|
+
value: identifier,
|
|
35
|
+
onChange: (e) => onIdentifierChange?.(e.target.value),
|
|
36
|
+
placeholder: labels.identifierPlaceholder,
|
|
37
|
+
disabled: isLoading,
|
|
38
|
+
autoFocus: true,
|
|
39
|
+
"aria-invalid": !!error || void 0,
|
|
40
|
+
"aria-describedby": error ? ERROR_ID : void 0,
|
|
41
|
+
className: authModalInputVariants({ invalid: !!error })
|
|
42
|
+
}
|
|
43
|
+
),
|
|
44
|
+
/* @__PURE__ */ jsx(AuthFieldError, { id: ERROR_ID, children: error })
|
|
45
|
+
] }),
|
|
46
|
+
/* @__PURE__ */ jsx(AuthSubmitButton, { isLoading, disabled: isEmpty, children: labels.continue }),
|
|
47
|
+
onUsePassword && /* @__PURE__ */ jsx("div", { className: "text-center", children: /* @__PURE__ */ jsx(AuthTextLink, { onClick: onUsePassword, disabled: isLoading || isEmpty, className: "text-body-2", children: labels.usePassword }) }),
|
|
48
|
+
/* @__PURE__ */ jsxs("p", { className: "text-body-3 text-grey-600 text-center leading-relaxed pt-1", children: [
|
|
49
|
+
labels.legalPrefix,
|
|
50
|
+
" ",
|
|
51
|
+
/* @__PURE__ */ jsx("a", { href: legal?.termsUrl ?? "/terms", className: authModalLinkVariants(), children: labels.termsOfUse }),
|
|
52
|
+
" ",
|
|
53
|
+
"&",
|
|
54
|
+
" ",
|
|
55
|
+
/* @__PURE__ */ jsx("a", { href: legal?.privacyUrl ?? "/privacy", className: authModalLinkVariants(), children: labels.privacyPolicy })
|
|
56
|
+
] })
|
|
57
|
+
] })
|
|
58
|
+
] });
|
|
59
|
+
}
|
|
60
|
+
AuthModalIdentifierForm.displayName = "AuthModalIdentifierForm";
|
|
61
|
+
|
|
62
|
+
export { AuthModalIdentifierForm };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { AuthModalOAuthProps } from '../AuthModal.types';
|
|
3
|
+
export interface AuthModalOAuthSectionProps extends AuthModalOAuthProps {
|
|
4
|
+
/** Disable every provider (e.g. while an OTP request is in flight) */
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function AuthModalOAuth({ providers, disabled }: AuthModalOAuthSectionProps): React.JSX.Element | null;
|
|
8
|
+
export declare namespace AuthModalOAuth {
|
|
9
|
+
var displayName: string;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=AuthModalOAuth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthModalOAuth.d.ts","sourceRoot":"","sources":["../../../../src/components/AuthModal/subcomponents/AuthModalOAuth.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,MAAM,WAAW,0BAA2B,SAAQ,mBAAmB;IACrE,sEAAsE;IACtE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,cAAc,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,0BAA0B,4BAsBjF;yBAtBe,cAAc"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { OAuthButton } from './OAuthButton.js';
|
|
4
|
+
import { useAuthModalLabels } from '../AuthModal.labels.js';
|
|
5
|
+
|
|
6
|
+
function AuthModalOAuth({ providers, disabled }) {
|
|
7
|
+
const labels = useAuthModalLabels();
|
|
8
|
+
if (!providers || providers.length === 0) return null;
|
|
9
|
+
return /* @__PURE__ */ jsxs("div", { "data-slot": "auth-modal-oauth-section", className: "mt-6 flex flex-col", children: [
|
|
10
|
+
/* @__PURE__ */ jsxs("div", { className: "relative flex items-center justify-center my-2", "aria-hidden": "true", children: [
|
|
11
|
+
/* @__PURE__ */ jsx("div", { className: "absolute inset-0 flex items-center", children: /* @__PURE__ */ jsx("div", { className: "w-full border-t border-border-warm" }) }),
|
|
12
|
+
/* @__PURE__ */ jsx("div", { className: "relative px-3 bg-grey-50 text-body-3 text-sand-muted uppercase font-medium tracking-wider", children: labels.oauthDivider })
|
|
13
|
+
] }),
|
|
14
|
+
/* @__PURE__ */ jsx("div", { className: "mt-4 flex flex-col gap-3", children: providers.map((provider) => /* @__PURE__ */ jsx(OAuthButton, { provider, disabled }, provider.id)) })
|
|
15
|
+
] });
|
|
16
|
+
}
|
|
17
|
+
AuthModalOAuth.displayName = "AuthModalOAuth";
|
|
18
|
+
|
|
19
|
+
export { AuthModalOAuth };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { AuthModalFormProps } from '../AuthModal.types';
|
|
3
|
+
export interface AuthModalOtpFormProps {
|
|
4
|
+
form: AuthModalFormProps;
|
|
5
|
+
}
|
|
6
|
+
export declare function AuthModalOtpForm({ form }: AuthModalOtpFormProps): React.JSX.Element;
|
|
7
|
+
export declare namespace AuthModalOtpForm {
|
|
8
|
+
var displayName: string;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=AuthModalOtpForm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthModalOtpForm.d.ts","sourceRoot":"","sources":["../../../../src/components/AuthModal/subcomponents/AuthModalOtpForm.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAS7D,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,kBAAkB,CAAC;CAC1B;AAED,wBAAgB,gBAAgB,CAAC,EAAE,IAAI,EAAE,EAAE,qBAAqB,qBAgE/D;yBAhEe,gBAAgB"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { useAuthModalLabels } from '../AuthModal.labels.js';
|
|
4
|
+
import { AuthStepHeader, AuthDestination, AuthForm, AuthSubmitButton, AuthTextLink } from './AuthModalParts.js';
|
|
5
|
+
import { OtpInput } from '../../OtpInput/OtpInput.js';
|
|
6
|
+
|
|
7
|
+
function AuthModalOtpForm({ form }) {
|
|
8
|
+
const labels = useAuthModalLabels();
|
|
9
|
+
const {
|
|
10
|
+
identifier = "",
|
|
11
|
+
otp = "",
|
|
12
|
+
otpLength = 6,
|
|
13
|
+
onOtpChange,
|
|
14
|
+
onOtpSubmit,
|
|
15
|
+
onResendOtp,
|
|
16
|
+
onEditIdentifier,
|
|
17
|
+
isLoading = false,
|
|
18
|
+
error,
|
|
19
|
+
destination,
|
|
20
|
+
resendCountdown = 0
|
|
21
|
+
} = form;
|
|
22
|
+
return /* @__PURE__ */ jsxs("div", { "data-slot": "auth-modal-otp-step", className: "flex flex-col", children: [
|
|
23
|
+
/* @__PURE__ */ jsx(
|
|
24
|
+
AuthStepHeader,
|
|
25
|
+
{
|
|
26
|
+
title: labels.otpTitle,
|
|
27
|
+
subtitle: /* @__PURE__ */ jsxs("span", { className: "inline-flex flex-wrap items-center gap-1", children: [
|
|
28
|
+
labels.otpSentTo,
|
|
29
|
+
" ",
|
|
30
|
+
/* @__PURE__ */ jsx(
|
|
31
|
+
AuthDestination,
|
|
32
|
+
{
|
|
33
|
+
value: destination || identifier,
|
|
34
|
+
onEdit: onEditIdentifier,
|
|
35
|
+
disabled: isLoading
|
|
36
|
+
}
|
|
37
|
+
)
|
|
38
|
+
] })
|
|
39
|
+
}
|
|
40
|
+
),
|
|
41
|
+
/* @__PURE__ */ jsxs(AuthForm, { onSubmit: onOtpSubmit, className: "space-y-6", children: [
|
|
42
|
+
/* @__PURE__ */ jsx(
|
|
43
|
+
OtpInput,
|
|
44
|
+
{
|
|
45
|
+
length: otpLength,
|
|
46
|
+
value: otp,
|
|
47
|
+
onChange: onOtpChange,
|
|
48
|
+
disabled: isLoading,
|
|
49
|
+
autoFocus: true,
|
|
50
|
+
autoComplete: "one-time-code",
|
|
51
|
+
"aria-label": labels.otpLabel,
|
|
52
|
+
error: error ?? void 0
|
|
53
|
+
}
|
|
54
|
+
),
|
|
55
|
+
/* @__PURE__ */ jsx(AuthSubmitButton, { isLoading, disabled: otp.length !== otpLength, children: labels.otpSubmit }),
|
|
56
|
+
/* @__PURE__ */ jsx("div", { className: "text-center pt-1 text-body-3", children: resendCountdown > 0 ? /* @__PURE__ */ jsx("p", { className: "text-grey-600", "aria-live": "polite", children: labels.otpResendIn(resendCountdown) }) : onResendOtp && /* @__PURE__ */ jsx(AuthTextLink, { onClick: onResendOtp, disabled: isLoading, children: labels.otpResend }) })
|
|
57
|
+
] })
|
|
58
|
+
] });
|
|
59
|
+
}
|
|
60
|
+
AuthModalOtpForm.displayName = "AuthModalOtpForm";
|
|
61
|
+
|
|
62
|
+
export { AuthModalOtpForm };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
/** A <form> that never falls back to a native, page-reloading submit. */
|
|
3
|
+
export declare function AuthForm({ onSubmit, className, children, }: {
|
|
4
|
+
onSubmit?: (e: React.FormEvent) => void;
|
|
5
|
+
className?: string;
|
|
6
|
+
children: React.ReactNode;
|
|
7
|
+
}): React.JSX.Element;
|
|
8
|
+
/** Step heading. `focusOnMount` moves focus here for steps without an input to focus. */
|
|
9
|
+
export declare function AuthStepHeader({ title, subtitle, focusOnMount, }: {
|
|
10
|
+
title: React.ReactNode;
|
|
11
|
+
subtitle?: React.ReactNode;
|
|
12
|
+
focusOnMount?: boolean;
|
|
13
|
+
}): React.JSX.Element;
|
|
14
|
+
export declare function AuthFieldError({ id, children }: {
|
|
15
|
+
id: string;
|
|
16
|
+
children?: React.ReactNode;
|
|
17
|
+
}): React.JSX.Element | null;
|
|
18
|
+
export declare function AuthSubmitButton({ isLoading, disabled, children, }: {
|
|
19
|
+
isLoading?: boolean;
|
|
20
|
+
disabled?: boolean;
|
|
21
|
+
children: React.ReactNode;
|
|
22
|
+
}): React.JSX.Element;
|
|
23
|
+
export declare function AuthTextLink({ onClick, disabled, className, children, }: {
|
|
24
|
+
onClick?: () => void;
|
|
25
|
+
disabled?: boolean;
|
|
26
|
+
className?: string;
|
|
27
|
+
children: React.ReactNode;
|
|
28
|
+
}): React.JSX.Element;
|
|
29
|
+
/** Masked destination with an optional "Edit" link back to the identifier step. */
|
|
30
|
+
export declare function AuthDestination({ value, onEdit, disabled, }: {
|
|
31
|
+
value: string;
|
|
32
|
+
onEdit?: () => void;
|
|
33
|
+
disabled?: boolean;
|
|
34
|
+
}): React.JSX.Element;
|
|
35
|
+
type PasswordFieldProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'type'> & {
|
|
36
|
+
id: string;
|
|
37
|
+
label: string;
|
|
38
|
+
onValueChange?: (value: string) => void;
|
|
39
|
+
invalid?: boolean;
|
|
40
|
+
describedBy?: string;
|
|
41
|
+
};
|
|
42
|
+
export declare function AuthPasswordField({ id, label, onValueChange, invalid, describedBy, className, ...inputProps }: PasswordFieldProps): React.JSX.Element;
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=AuthModalParts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthModalParts.d.ts","sourceRoot":"","sources":["../../../../src/components/AuthModal/subcomponents/AuthModalParts.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAe/B,yEAAyE;AACzE,wBAAgB,QAAQ,CAAC,EACvB,QAAQ,EACR,SAAS,EACT,QAAQ,GACT,EAAE;IACD,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,qBAaA;AAED,yFAAyF;AACzF,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,YAAoB,GACrB,EAAE;IACD,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,qBAcA;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,4BAO1F;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,qBAmBA;AAED,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,QAAQ,EACR,SAAS,EACT,QAAQ,GACT,EAAE;IACD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,qBAWA;AAED,mFAAmF;AACnF,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,MAAM,EACN,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,qBAYA;AAED,KAAK,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,GAAG;IACjG,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,EAChC,EAAE,EACF,KAAK,EACL,aAAa,EACb,OAAO,EACP,WAAW,EACX,SAAS,EACT,GAAG,UAAU,EACd,EAAE,kBAAkB,qBA+BpB"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { cn } from '@timmbr/utils';
|
|
5
|
+
import { EyeOff, Eye } from '@timmbr/icons';
|
|
6
|
+
import { useAuthModalLabels } from '../AuthModal.labels.js';
|
|
7
|
+
import { authModalHeadingVariants, authModalSubtitleVariants, authModalSubmitButtonVariants, authModalLinkVariants, authModalInputVariants } from '../AuthModal.styles.js';
|
|
8
|
+
import { Spinner } from '../../Spinner/Spinner.js';
|
|
9
|
+
|
|
10
|
+
function AuthForm({
|
|
11
|
+
onSubmit,
|
|
12
|
+
className,
|
|
13
|
+
children
|
|
14
|
+
}) {
|
|
15
|
+
return /* @__PURE__ */ jsx(
|
|
16
|
+
"form",
|
|
17
|
+
{
|
|
18
|
+
noValidate: true,
|
|
19
|
+
className,
|
|
20
|
+
onSubmit: (e) => {
|
|
21
|
+
e.preventDefault();
|
|
22
|
+
onSubmit?.(e);
|
|
23
|
+
},
|
|
24
|
+
children
|
|
25
|
+
}
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
function AuthStepHeader({
|
|
29
|
+
title,
|
|
30
|
+
subtitle,
|
|
31
|
+
focusOnMount = false
|
|
32
|
+
}) {
|
|
33
|
+
const ref = React.useRef(null);
|
|
34
|
+
React.useEffect(() => {
|
|
35
|
+
if (focusOnMount) ref.current?.focus();
|
|
36
|
+
}, [focusOnMount]);
|
|
37
|
+
return /* @__PURE__ */ jsxs("div", { className: "mb-6", children: [
|
|
38
|
+
/* @__PURE__ */ jsx("h2", { ref, tabIndex: -1, className: authModalHeadingVariants(), children: title }),
|
|
39
|
+
subtitle && /* @__PURE__ */ jsx("div", { className: authModalSubtitleVariants(), children: subtitle })
|
|
40
|
+
] });
|
|
41
|
+
}
|
|
42
|
+
function AuthFieldError({ id, children }) {
|
|
43
|
+
if (!children) return null;
|
|
44
|
+
return /* @__PURE__ */ jsx("p", { id, role: "alert", "data-slot": "auth-modal-error", className: "mt-2 text-body-3 text-destructive font-medium", children });
|
|
45
|
+
}
|
|
46
|
+
function AuthSubmitButton({
|
|
47
|
+
isLoading,
|
|
48
|
+
disabled,
|
|
49
|
+
children
|
|
50
|
+
}) {
|
|
51
|
+
return /* @__PURE__ */ jsx(
|
|
52
|
+
"button",
|
|
53
|
+
{
|
|
54
|
+
type: "submit",
|
|
55
|
+
disabled: disabled || isLoading,
|
|
56
|
+
"aria-busy": isLoading || void 0,
|
|
57
|
+
className: authModalSubmitButtonVariants(),
|
|
58
|
+
children: isLoading ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
59
|
+
/* @__PURE__ */ jsx(Spinner, { size: "sm", variant: "white", decorative: true }),
|
|
60
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children })
|
|
61
|
+
] }) : children
|
|
62
|
+
}
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
function AuthTextLink({
|
|
66
|
+
onClick,
|
|
67
|
+
disabled,
|
|
68
|
+
className,
|
|
69
|
+
children
|
|
70
|
+
}) {
|
|
71
|
+
return /* @__PURE__ */ jsx(
|
|
72
|
+
"button",
|
|
73
|
+
{
|
|
74
|
+
type: "button",
|
|
75
|
+
onClick,
|
|
76
|
+
disabled,
|
|
77
|
+
className: cn(authModalLinkVariants(), className),
|
|
78
|
+
children
|
|
79
|
+
}
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
function AuthDestination({
|
|
83
|
+
value,
|
|
84
|
+
onEdit,
|
|
85
|
+
disabled
|
|
86
|
+
}) {
|
|
87
|
+
const labels = useAuthModalLabels();
|
|
88
|
+
return /* @__PURE__ */ jsxs("span", { className: "inline-flex flex-wrap items-center gap-2", children: [
|
|
89
|
+
/* @__PURE__ */ jsx("span", { className: "font-medium text-grey-950 break-all", children: value }),
|
|
90
|
+
onEdit && /* @__PURE__ */ jsx(AuthTextLink, { onClick: onEdit, disabled, className: "text-body-3", children: labels.edit })
|
|
91
|
+
] });
|
|
92
|
+
}
|
|
93
|
+
function AuthPasswordField({
|
|
94
|
+
id,
|
|
95
|
+
label,
|
|
96
|
+
onValueChange,
|
|
97
|
+
invalid,
|
|
98
|
+
describedBy,
|
|
99
|
+
className,
|
|
100
|
+
...inputProps
|
|
101
|
+
}) {
|
|
102
|
+
const labels = useAuthModalLabels();
|
|
103
|
+
const [visible, setVisible] = React.useState(false);
|
|
104
|
+
return /* @__PURE__ */ jsxs("div", { className, children: [
|
|
105
|
+
/* @__PURE__ */ jsx("label", { htmlFor: id, className: "sr-only", children: label }),
|
|
106
|
+
/* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
107
|
+
/* @__PURE__ */ jsx(
|
|
108
|
+
"input",
|
|
109
|
+
{
|
|
110
|
+
id,
|
|
111
|
+
type: visible ? "text" : "password",
|
|
112
|
+
onChange: (e) => onValueChange?.(e.target.value),
|
|
113
|
+
"aria-invalid": invalid || void 0,
|
|
114
|
+
"aria-describedby": describedBy,
|
|
115
|
+
className: cn(authModalInputVariants({ invalid: !!invalid }), "pr-12"),
|
|
116
|
+
...inputProps
|
|
117
|
+
}
|
|
118
|
+
),
|
|
119
|
+
/* @__PURE__ */ jsx(
|
|
120
|
+
"button",
|
|
121
|
+
{
|
|
122
|
+
type: "button",
|
|
123
|
+
onClick: () => setVisible((v) => !v),
|
|
124
|
+
"aria-label": visible ? labels.hidePassword : labels.showPassword,
|
|
125
|
+
"aria-pressed": visible,
|
|
126
|
+
className: "absolute inset-y-0 right-0 flex w-12 items-center justify-center text-grey-600 hover:text-grey-950 focus:outline-none focus-visible:text-primary cursor-pointer",
|
|
127
|
+
children: visible ? /* @__PURE__ */ jsx(EyeOff, { className: "size-5", "aria-hidden": "true" }) : /* @__PURE__ */ jsx(Eye, { className: "size-5", "aria-hidden": "true" })
|
|
128
|
+
}
|
|
129
|
+
)
|
|
130
|
+
] })
|
|
131
|
+
] });
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
export { AuthDestination, AuthFieldError, AuthForm, AuthPasswordField, AuthStepHeader, AuthSubmitButton, AuthTextLink };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { AuthModalFormProps } from '../AuthModal.types';
|
|
3
|
+
export interface AuthModalPasswordFormProps {
|
|
4
|
+
form: AuthModalFormProps;
|
|
5
|
+
}
|
|
6
|
+
export declare function AuthModalPasswordForm({ form }: AuthModalPasswordFormProps): React.JSX.Element;
|
|
7
|
+
export declare namespace AuthModalPasswordForm {
|
|
8
|
+
var displayName: string;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=AuthModalPasswordForm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthModalPasswordForm.d.ts","sourceRoot":"","sources":["../../../../src/components/AuthModal/subcomponents/AuthModalPasswordForm.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAW7D,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,kBAAkB,CAAC;CAC1B;AAID,wBAAgB,qBAAqB,CAAC,EAAE,IAAI,EAAE,EAAE,0BAA0B,qBAsDzE;yBAtDe,qBAAqB"}
|