@aws-amplify/ui 3.0.12 → 3.0.15

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../node_modules/tsup/assets/esm_shims.js","../../src/theme/tokens/components/alert.js","../../src/theme/tokens/components/badge.js","../../src/theme/tokens/components/button.js","../../src/theme/tokens/components/card.js","../../src/theme/tokens/components/checkbox.js","../../src/theme/tokens/components/checkboxField.js","../../src/theme/tokens/components/countryCodeSelect.js","../../src/theme/tokens/components/divider.js","../../src/theme/tokens/components/expander.js","../../src/theme/tokens/components/field.js","../../src/theme/tokens/components/fieldControl.js","../../src/theme/tokens/components/fieldGroup.js","../../src/theme/tokens/components/fieldMessages.js","../../src/theme/tokens/components/flex.js","../../src/theme/tokens/components/heading.js","../../src/theme/tokens/components/icon.js","../../src/theme/tokens/components/image.js","../../src/theme/tokens/components/link.js","../../src/theme/tokens/components/loader.js","../../src/theme/tokens/components/menu.js","../../src/theme/tokens/components/pagination.js","../../src/theme/tokens/components/phoneNumberField.js","../../src/theme/tokens/components/placeholder.js","../../src/theme/tokens/components/radio.js","../../src/theme/tokens/components/rating.js","../../src/theme/tokens/components/select.js","../../src/theme/tokens/components/selectField.js","../../src/theme/tokens/components/sliderField.js","../../src/theme/tokens/components/stepperField.js","../../src/theme/tokens/components/switchField.js","../../src/theme/tokens/components/table.js","../../src/theme/tokens/components/tabs.js","../../src/theme/tokens/components/text.js","../../src/theme/tokens/components/toggleButton.js","../../src/theme/tokens/components/toggleButtonGroup.js","../../src/theme/tokens/components/index.js","../../src/index.ts","../../src/helpers/index.ts","../../src/helpers/auth.ts","../../src/types/index.ts","../../src/types/authMachine.ts","../../src/types/validator.ts","../../src/helpers/utils.ts","../../src/i18n/index.ts","../../src/i18n/country-dial-codes.ts","../../src/i18n/translations.ts","../../src/i18n/dictionaries/index.ts","../../src/i18n/dictionaries/authenticator/index.ts","../../src/i18n/dictionaries/authenticator/de.ts","../../src/i18n/dictionaries/authenticator/en.ts","../../src/i18n/dictionaries/authenticator/es.ts","../../src/i18n/dictionaries/authenticator/fr.ts","../../src/i18n/dictionaries/authenticator/it.ts","../../src/i18n/dictionaries/authenticator/ja.ts","../../src/i18n/dictionaries/authenticator/kr.ts","../../src/i18n/dictionaries/authenticator/nl.ts","../../src/i18n/dictionaries/authenticator/pl.ts","../../src/i18n/dictionaries/authenticator/pt.ts","../../src/i18n/dictionaries/authenticator/zh.ts","../../src/i18n/dictionaries/authenticator/sv.ts","../../src/i18n/dictionaries/authenticator/defaultTexts.ts","../../src/machines/index.ts","../../src/machines/authenticator/index.ts","../../src/machines/authenticator/actions.ts","../../src/machines/authenticator/actors/index.ts","../../src/machines/authenticator/actors/signIn.ts","../../src/validators/index.ts","../../src/machines/authenticator/defaultServices.ts","../../src/machines/authenticator/actors/signOut.ts","../../src/machines/authenticator/actors/resetPassword.ts","../../src/machines/authenticator/signUp.ts","../../src/theme/index.ts","../../src/theme/createTheme.ts","../../src/theme/baseTheme.ts","../../src/theme/tokens/index.ts","../../src/theme/tokens/borderWidths.ts","../../src/theme/tokens/colors.ts","../../src/theme/tokens/fonts.ts","../../src/theme/tokens/fontSizes.ts","../../src/theme/tokens/fontWeights.ts","../../src/theme/tokens/lineHeights.ts","../../src/theme/tokens/opacities.ts","../../src/theme/tokens/outlineOffsets.ts","../../src/theme/tokens/outlineWidths.ts","../../src/theme/tokens/radii.ts","../../src/theme/tokens/shadows.ts","../../src/theme/tokens/space.ts","../../src/theme/tokens/time.ts","../../src/theme/tokens/transforms.ts","../../src/theme/breakpoints.ts","../../src/theme/utils.ts","../../src/theme/types.ts","../../src/theme/tokens/types/designToken.ts"],"sourcesContent":["// Shim globals in esm bundle\nimport { fileURLToPath } from 'url'\nimport path from 'path'\n\nconst getFilename = () => fileURLToPath(import.meta.url)\nconst getDirname = () => path.dirname(getFilename())\n\nexport const __dirname = /* @__PURE__ */ getDirname()\nexport const __filename = /* @__PURE__ */ getFilename()\n","module.exports = {\n // Default styles\n alignItems: { value: 'center' },\n justifyContent: { value: 'space-between' },\n color: { value: '{colors.font.primary.value}' },\n backgroundColor: { value: '{colors.background.tertiary.value}' },\n paddingBlock: { value: '{space.small.value}' },\n paddingInline: { value: '{space.medium.value}' },\n\n icon: {\n size: { value: '{fontSizes.xl.value}' },\n },\n\n heading: {\n fontSize: { value: '{fontSizes.medium.value}' },\n fontWeight: { value: '{fontWeights.bold.value}' },\n },\n\n // Variations\n info: {\n color: { value: '{colors.font.info.value}' },\n backgroundColor: { value: '{colors.background.info.value}' },\n },\n\n error: {\n color: { value: '{colors.font.error.value}' },\n backgroundColor: { value: '{colors.background.error.value}' },\n },\n\n warning: {\n color: { value: '{colors.font.warning.value}' },\n backgroundColor: { value: '{colors.background.warning.value}' },\n },\n\n success: {\n color: { value: '{colors.font.success.value}' },\n backgroundColor: { value: '{colors.background.success.value}' },\n },\n};\n","module.exports = {\n // Default styles\n color: { value: '{colors.font.primary.value}' },\n lineHeight: { value: 1 },\n fontWeight: { value: '{fontWeights.semibold.value}' },\n fontSize: { value: '{fontSizes.small.value}' },\n textAlign: { value: 'center' },\n paddingVertical: { value: '{space.xs.value}' },\n paddingHorizontal: { value: '{space.small.value}' },\n backgroundColor: { value: '{colors.background.tertiary.value}' },\n // An arbitrarily large value to ensure that the left and right sides of the badge are perfectly rounded for any size variation\n borderRadius: { value: '{radii.xl.value}' },\n\n // Variations\n info: {\n color: { value: '{colors.font.info.value}' },\n backgroundColor: { value: '{colors.background.info.value}' },\n },\n\n warning: {\n color: { value: '{colors.font.warning.value}' },\n backgroundColor: { value: '{colors.background.warning.value}' },\n },\n\n success: {\n color: { value: '{colors.font.success.value}' },\n backgroundColor: { value: '{colors.background.success.value}' },\n },\n\n error: {\n color: { value: '{colors.font.error.value}' },\n backgroundColor: { value: '{colors.background.error.value}' },\n },\n\n // Sizes\n small: {\n fontSize: { value: '{fontSizes.xs.value}' },\n paddingVertical: { value: '{space.xxs.value}' },\n paddingHorizontal: { value: '{space.xs.value}' },\n },\n // medium is the default size\n large: {\n fontSize: { value: '{fontSizes.medium.value}' },\n paddingVertical: { value: '{space.small.value}' },\n paddingHorizontal: { value: '{space.medium.value}' },\n },\n};\n","module.exports = {\n // shared styles\n fontWeight: { value: '{fontWeights.bold.value}' },\n transitionDuration: {\n value: '{components.fieldcontrol.transitionDuration.value}',\n },\n fontSize: { value: '{components.fieldcontrol.fontSize.value}' },\n lineHeight: { value: '{components.fieldcontrol.lineHeight.value}' },\n paddingBlockStart: {\n value: '{components.fieldcontrol.paddingBlockStart.value}',\n },\n paddingBlockEnd: {\n value: '{components.fieldcontrol.paddingBlockEnd.value}',\n },\n paddingInlineStart: {\n value: '{components.fieldcontrol.paddingInlineStart.value}',\n },\n paddingInlineEnd: {\n value: '{components.fieldcontrol.paddingInlineEnd.value}',\n },\n borderColor: { value: '{components.fieldcontrol.borderColor.value}' },\n borderWidth: { value: '{components.fieldcontrol.borderWidth.value}' },\n borderStyle: { value: '{components.fieldcontrol.borderStyle.value}' },\n borderRadius: { value: '{components.fieldcontrol.borderRadius.value}' },\n color: { value: '{colors.font.primary.value}' },\n\n _hover: {\n color: { value: '{colors.font.focus.value}' },\n backgroundColor: { value: '{colors.brand.primary.10.value}' },\n borderColor: { value: '{colors.brand.primary.60.value}' },\n },\n _focus: {\n color: { value: '{colors.font.focus.value}' },\n backgroundColor: { value: '{colors.brand.primary.10.value}' },\n borderColor: { value: '{colors.border.focus.value}' },\n boxShadow: { value: '{components.fieldcontrol._focus.boxShadow.value}' },\n },\n _active: {\n color: { value: '{colors.font.active.value}' },\n backgroundColor: { value: '{colors.brand.primary.20.value}' },\n borderColor: { value: '{colors.brand.primary.100.value}' },\n },\n _loading: {\n color: { value: '{colors.font.tertiary.value}' },\n backgroundColor: { value: 'transparent' },\n borderColor: { value: '{colors.border.tertiary.value}' },\n },\n _disabled: {\n color: { value: '{colors.font.disabled.value}' },\n backgroundColor: { value: 'transparent' },\n borderColor: { value: '{colors.border.tertiary.value}' },\n },\n\n // variations\n primary: {\n borderColor: { value: 'transparent' },\n borderWidth: { value: '{borderWidths.small.value}' },\n borderStyle: { value: 'solid' },\n backgroundColor: { value: '{colors.brand.primary.80.value}' },\n color: { value: '{colors.font.inverse.value}' },\n _disabled: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.background.disabled.value}' },\n color: { value: '{colors.font.disabled.value}' },\n },\n _loading: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.background.tertiary.value}' },\n color: { value: '{colors.font.inverse.value}' },\n },\n _hover: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.brand.primary.90.value}' },\n color: { value: '{colors.font.inverse.value}' },\n },\n _focus: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.brand.primary.90.value}' },\n color: { value: '{colors.font.inverse.value}' },\n boxShadow: { value: '{components.fieldcontrol._focus.boxShadow.value}' },\n },\n _active: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.brand.primary.100.value}' },\n color: { value: '{colors.font.inverse.value}' },\n },\n },\n\n menu: {\n borderWidth: { value: 0 },\n backgroundColor: { value: 'transparent' },\n justifyContent: { value: 'start' },\n // Focus and hover styles are identical for menu variation\n // because for Menu primitive, menu items are forced to be focused even\n // for mouse interactions, making it impossible to distinguish the two interactions\n _hover: {\n color: { value: '{colors.font.inverse.value}' },\n backgroundColor: { value: '{colors.brand.primary.80.value}' },\n },\n _focus: {\n color: { value: '{colors.font.inverse.value}' },\n backgroundColor: { value: '{colors.brand.primary.80.value}' },\n },\n _active: {\n color: { value: '{colors.font.inverse.value}' },\n backgroundColor: { value: '{colors.brand.primary.90.value}' },\n },\n _disabled: {\n color: { value: '{colors.font.disabled.value}' },\n },\n },\n\n link: {\n borderWidth: { value: 0 },\n borderColor: { value: 'transparent' },\n backgroundColor: { value: 'transparent' },\n color: { value: '{colors.font.interactive.value}' },\n _hover: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.brand.primary.10.value}' },\n color: { value: '{colors.font.hover.value}' },\n },\n _focus: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.brand.primary.10.value}' },\n color: { value: '{colors.font.focus.value}' },\n boxShadow: { value: '{components.fieldcontrol._focus.boxShadow.value}' },\n },\n _active: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.brand.primary.20.value}' },\n color: { value: '{colors.font.active.value}' },\n },\n _disabled: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: 'transparent' },\n color: { value: '{colors.font.disabled.value}' },\n },\n _loading: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: 'transparent' },\n color: { value: '{colors.font.disabled.value}' },\n },\n },\n\n // sizes\n small: {\n fontSize: { value: '{components.fieldcontrol.small.fontSize.value}' },\n paddingBlockStart: {\n value: '{components.fieldcontrol.small.paddingBlockStart.value}',\n },\n paddingBlockEnd: {\n value: '{components.fieldcontrol.small.paddingBlockEnd.value}',\n },\n paddingInlineStart: {\n value: '{components.fieldcontrol.small.paddingInlineStart.value}',\n },\n paddingInlineEnd: {\n value: '{components.fieldcontrol.small.paddingInlineEnd.value}',\n },\n },\n large: {\n fontSize: { value: '{components.fieldcontrol.large.fontSize.value}' },\n paddingBlockStart: {\n value: '{components.fieldcontrol.large.paddingBlockStart.value}',\n },\n paddingBlockEnd: {\n value: '{components.fieldcontrol.large.paddingBlockEnd.value}',\n },\n paddingInlineStart: {\n value: '{components.fieldcontrol.large.paddingInlineStart.value}',\n },\n paddingInlineEnd: {\n value: '{components.fieldcontrol.large.paddingInlineEnd.value}',\n },\n },\n};\n","module.exports = {\n backgroundColor: { value: '{colors.background.primary.value}' },\n borderRadius: { value: '{radii.xs.value}' },\n borderWidth: { value: '0' },\n borderStyle: { value: 'solid' },\n borderColor: { value: 'transparent' },\n boxShadow: { value: 'none' },\n padding: { value: '{space.medium.value}' },\n\n outlined: {\n backgroundColor: { value: '{components.card.backgroundColor.value}' },\n borderRadius: { value: '{radii.xs.value}' },\n borderWidth: { value: '{borderWidths.small.value}' },\n borderStyle: { value: 'solid' },\n borderColor: { value: '{colors.border.primary.value}' },\n },\n\n elevated: {\n backgroundColor: { value: '{components.card.backgroundColor.value}' },\n borderRadius: { value: '{radii.xs.value}' },\n borderWidth: { value: '0' },\n borderStyle: { value: 'solid' },\n borderColor: { value: 'transparent' },\n boxShadow: { value: '{shadows.medium.value}' },\n },\n};\n","module.exports = {\n cursor: { value: 'pointer' },\n alignItems: { value: 'center' },\n _disabled: {\n cursor: {\n value: 'not-allowed',\n },\n },\n button: {\n position: { value: 'relative' },\n alignItems: { value: 'center' },\n justifyContent: { value: 'center' },\n color: { value: '{colors.white.value}' },\n before: {\n width: { value: '100%' },\n height: { value: '100%' },\n borderWidth: { value: '{borderWidths.medium.value}' },\n borderRadius: { value: '20%' },\n borderStyle: { value: 'solid' },\n borderColor: { value: '{colors.border.primary.value}' },\n },\n _focus: {\n outlineColor: { value: '{colors.transparent.value}' },\n outlineStyle: { value: 'solid' },\n outlineWidth: { value: '{outlineWidths.medium.value}' },\n outlineOffset: { value: '{outlineOffsets.medium.value}' },\n borderColor: { value: '{colors.transparent.value}' },\n boxShadow: {\n value: {\n offsetX: '0px',\n offsetY: '0px',\n blurRadius: '0px',\n spreadRadius: '2px',\n color: '{colors.border.focus.value}',\n },\n },\n },\n _disabled: {\n borderColor: { value: '{colors.border.disabled.value}' },\n },\n _error: {\n borderColor: { value: '{colors.border.error.value}' },\n _focus: {\n borderColor: { value: '{colors.transparent.value}' },\n boxShadow: {\n value: {\n offsetX: '0px',\n offsetY: '0px',\n blurRadius: '0px',\n spreadRadius: '2px',\n color: '{colors.border.error.value}',\n },\n },\n },\n },\n },\n icon: {\n backgroundColor: { value: '{colors.brand.primary.80.value}' },\n borderRadius: { value: '20%' },\n opacity: { value: '{opacities.0.value}' },\n transform: { value: 'scale(0)' },\n transitionProperty: { value: 'all' },\n transitionDuration: { value: '{time.short.value}' },\n transitionTimingFunction: { value: 'ease-in-out' },\n _checked: {\n opacity: { value: '{opacities.100.value}' },\n transform: { value: 'scale(1)' },\n _disabled: {\n backgroundColor: { value: '{colors.background.disabled.value}' },\n },\n },\n },\n label: {\n _disabled: {\n color: { value: '{colors.font.disabled.value}' },\n },\n },\n};\n","module.exports = {\n alignItems: { value: 'flex-start' },\n alignContent: { value: 'center' },\n flexDirection: { value: 'column' },\n justifyContent: { value: 'center' },\n};\n","module.exports = {\n height: {\n value: '100%',\n },\n};\n","module.exports = {\n borderStyle: { value: 'solid' },\n borderColor: { value: '{colors.border.primary.value}' },\n borderWidth: { value: '{borderWidths.medium.value}' },\n\n small: {\n borderWidth: { value: '{borderWidths.small.value}' },\n },\n\n large: {\n borderWidth: { value: '{borderWidths.large.value}' },\n },\n\n opacity: {\n value: '{opacities.60.value}',\n },\n};\n","module.exports = {\n display: { value: 'block' },\n backgroundColor: { value: '{colors.white.value}' },\n borderRadius: { value: '{radii.medium.value}' },\n boxShadow: {\n value: '{shadows.large.value}',\n },\n width: { value: '100%' },\n item: {\n marginTop: { value: '1px' },\n boxShadow: {\n value: '{shadows.small.value}',\n },\n borderBottomLeftRadius: { value: '{radii.medium.value}' },\n borderBottomRightRadius: { value: '{radii.medium.value}' },\n borderTopLeftRadius: { value: '{radii.medium.value}' },\n borderTopRightRadius: { value: '{radii.medium.value}' },\n borderStartStartRadius: { value: '{radii.medium.value}' },\n borderStartEndRadius: { value: '{radii.medium.value}' },\n borderEndStartRadius: { value: '{radii.medium.value}' },\n borderEndEndRadius: { value: '{radii.medium.value}' },\n _focus: {\n boxShadow: {\n value: {\n offsetX: '0',\n offsetY: '0',\n blurRadius: '0',\n spreadRadius: '2px',\n color: '{colors.border.focus.value}',\n },\n },\n },\n },\n header: {\n boxShadow: {\n value: {\n offsetX: '0',\n offsetY: '1px',\n blurRadius: '0',\n color: '{colors.overlay.20.value}',\n },\n },\n },\n trigger: {\n minHeight: { value: '3rem' },\n paddingInlineStart: { value: '{space.large.value}' },\n paddingInlineEnd: { value: '{space.large.value}' },\n alignItems: { value: 'center' },\n justifyContent: { value: 'space-between' },\n _hover: {\n backgroundColor: { value: '{colors.overlay.10.value}' },\n },\n },\n content: {\n paddingInlineStart: { value: '{space.large.value}' },\n paddingInlineEnd: { value: '{space.large.value}' },\n text: {\n color: { value: '{colors.font.secondary.value}' },\n paddingBlockStart: { value: '{space.medium.value}' },\n paddingBlockEnd: { value: '{space.medium.value}' },\n },\n _open: {\n animationDuration: { value: '{time.medium.value}' },\n animationTimingFunction: { value: 'cubic-bezier(0.87, 0, 0.13, 1)' },\n },\n _closed: {\n animationDuration: { value: '{time.medium.value}' },\n animationTimingFunction: { value: 'cubic-bezier(0.87, 0, 0.13, 1)' },\n },\n },\n icon: {\n transitionDuration: { value: '{time.medium.value}' },\n transitionTimingFunction: { value: 'cubic-bezier(0.87, 0, 0.13, 1)' },\n },\n};\n","module.exports = {\n // default styles\n gap: { value: '{space.xs.value}' },\n fontSize: { value: '{fontSizes.medium.value}' },\n\n // Adjust base fontSize and gap for small and large sizes\n small: {\n gap: { value: '{space.xxxs.value}' },\n fontSize: { value: '{fontSizes.small.value}' },\n },\n large: {\n gap: { value: '{space.small.value}' },\n fontSize: { value: '{fontSizes.large.value}' },\n },\n\n label: {\n color: { value: '{colors.font.secondary.value}' },\n },\n};\n","module.exports = {\n borderStyle: { value: 'solid' },\n borderColor: { value: '{colors.border.primary.value}' },\n borderWidth: { value: '{borderWidths.small.value}' },\n borderRadius: { value: '{radii.small.value}' },\n color: { value: '{colors.font.primary.value}' },\n paddingBlockStart: {\n value: '{space.xs.value}',\n },\n paddingBlockEnd: {\n value: '{space.xs.value}',\n },\n paddingInlineStart: {\n value: '{space.medium.value}',\n },\n paddingInlineEnd: {\n value: '{space.medium.value}',\n },\n\n fontSize: { value: '{components.field.fontSize.value}' },\n lineHeight: { value: '{lineHeights.medium.value}' },\n transitionDuration: { value: '{time.medium.value}' },\n outlineColor: { value: '{colors.transparent.value}' },\n outlineStyle: { value: 'solid' },\n outlineWidth: { value: '{outlineWidths.medium.value}' },\n outlineOffset: { value: '{outlineOffsets.medium.value}' },\n\n small: {\n fontSize: { value: '{components.field.small.fontSize.value}' },\n paddingBlockStart: {\n value: '{space.xs.value}',\n },\n paddingBlockEnd: {\n value: '{space.xs.value}',\n },\n paddingInlineStart: {\n value: '{space.small.value}',\n },\n paddingInlineEnd: {\n value: '{space.small.value}',\n },\n },\n large: {\n fontSize: { value: '{components.field.large.fontSize.value}' },\n paddingBlockStart: {\n value: '{space.xs.value}',\n },\n paddingBlockEnd: {\n value: '{space.xs.value}',\n },\n paddingInlineStart: {\n value: '{space.medium.value}',\n },\n paddingInlineEnd: {\n value: '{space.medium.value}',\n },\n },\n\n quiet: {\n borderStyle: { value: 'none' },\n borderBlockEnd: {\n value: '{borderWidths.small.value} solid {colors.border.primary.value}',\n },\n borderInlineStart: { value: 'none' },\n borderInlineEnd: { value: 'none' },\n borderBlockStart: { value: 'none' },\n borderRadius: { value: '0' },\n _focus: {\n borderBlockEndColor: { value: '{colors.border.focus.value}' },\n boxShadow: {\n value: {\n offsetX: '0px',\n offsetY: '1px',\n color: '{colors.border.focus.value}',\n },\n },\n },\n _error: {\n borderBlockEndColor: { value: '{colors.border.error.value}' },\n _focus: {\n boxShadow: {\n value: {\n offsetX: '0px',\n offsetY: '1px',\n color: '{colors.border.error.value}',\n },\n },\n },\n },\n },\n _focus: {\n // These focus styles have been calibrated to create\n // a highly visible focus indicator per WCAG 2.1 guidliness:\n // See: https://www.w3.org/WAI/WCAG21/Techniques/general/G195.html\n //\n // Key features:\n // * Focus indicator area is at least the 1 CSS px border around the component.\n // * Contrast between focused and unfocused states has a ratio of 3:1\n //\n // IMPORTANT: Must recalibrate if `colors.border.primary` or `colors.focus` are changed\n borderColor: { value: '{colors.border.focus.value}' },\n boxShadow: {\n value: {\n offsetX: '0px',\n offsetY: '0px',\n blurRadius: '0px',\n spreadRadius: '1px',\n color: '{colors.border.focus.value}',\n },\n },\n },\n _disabled: {\n color: { value: '{colors.font.disabled.value}' },\n cursor: { value: 'not-allowed' },\n borderColor: { value: '{colors.transparent.value}' },\n backgroundColor: { value: '{colors.background.disabled.value}' },\n },\n _error: {\n borderColor: { value: '{colors.border.error.value}' },\n _focus: {\n boxShadow: {\n value: {\n offsetX: '0px',\n offsetY: '0px',\n blurRadius: '0px',\n spreadRadius: '1px',\n color: '{colors.border.error.value}',\n },\n },\n },\n },\n};\n","module.exports = {\n gap: { value: 0 },\n vertical: {\n alignItems: { value: 'center' },\n },\n outer: {\n alignItems: { value: 'center' },\n },\n};\n","module.exports = {\n error: {\n color: { value: '{colors.font.error.value}' },\n fontSize: { value: '{fontSizes.small.value}' },\n },\n description: {\n color: { value: '{colors.font.secondary.value}' },\n fontStyle: { value: 'italic' },\n fontSize: { value: '{fontSizes.small.value}' },\n },\n};\n","module.exports = {\n gap: { value: '{space.medium.value}' },\n justifyContent: { value: 'normal' },\n alignItems: { value: 'stretch' },\n alignContent: { value: 'normal' },\n flexWrap: { value: 'nowrap' },\n};\n","module.exports = {\n color: { value: '{colors.font.primary.value}' },\n lineHeight: { value: 1.25 },\n\n 1: {\n fontSize: { value: '{fontSizes.xxxxl.value}' },\n fontWeight: { value: '{fontWeights.light.value}' },\n },\n 2: {\n fontSize: { value: '{fontSizes.xxxl.value}' },\n fontWeight: { value: '{fontWeights.light.value}' },\n },\n 3: {\n fontSize: { value: '{fontSizes.xxl.value}' },\n fontWeight: { value: '{fontWeights.normal.value}' },\n },\n 4: {\n fontSize: { value: '{fontSizes.xl.value}' },\n fontWeight: { value: '{fontWeights.medium.value}' },\n },\n 5: {\n fontSize: { value: '{fontSizes.large.value}' },\n fontWeight: { value: '{fontWeights.semibold.value}' },\n },\n 6: {\n fontSize: { value: '{fontSizes.medium.value}' },\n fontWeight: { value: '{fontWeights.bold.value}' },\n },\n};\n","module.exports = {\n lineHeight: { value: 1 },\n height: { value: '1em' }, // Should match height of parent container font-size\n};\n","module.exports = {\n maxWidth: { value: '100%' },\n height: { value: 'auto' },\n objectFit: { value: 'initial' },\n objectPosition: { value: 'initial' },\n};\n","module.exports = {\n active: {\n color: { value: '{colors.font.active.value}' },\n },\n color: { value: '{colors.font.interactive.value}' },\n focus: {\n color: { value: '{colors.font.focus.value}' },\n },\n hover: {\n color: { value: '{colors.font.hover.value}' },\n },\n large: {\n fontSize: { value: '{fontSizes.large.value}' },\n },\n small: {\n fontSize: { value: '{fontSizes.small.value}' },\n },\n visited: {\n color: { value: '{colors.font.interactive.value}' },\n },\n};\n","module.exports = {\n width: { value: '{fontSizes.xxl.value}' },\n height: { value: '{fontSizes.xxl.value}' },\n strokeEmpty: { value: '{colors.neutral.20.value}' },\n strokeFilled: { value: '{colors.brand.primary.80.value}' },\n strokeLinecap: { value: 'round' },\n animationDuration: { value: '1s' },\n small: {\n width: { value: '{fontSizes.medium.value}' },\n height: { value: '{fontSizes.medium.value}' },\n },\n large: {\n width: { value: '{fontSizes.xxxl.value}' },\n height: { value: '{fontSizes.xxxl.value}' },\n },\n linear: {\n width: { value: '100%' },\n minWidth: { value: '5rem' },\n height: { value: '{fontSizes.xxs.value}' },\n strokeWidth: { value: '{fontSizes.xxs.value}' },\n strokeFilled: { value: '{colors.brand.primary.80.value}' },\n strokeEmpty: { value: '{colors.neutral.20.value}' },\n strokeLinecap: { value: 'round' },\n animationDuration: { value: '1s' },\n small: {\n height: { value: '{fontSizes.xxxs.value}' },\n strokeWidth: { value: '{fontSizes.xxxs.value}' },\n },\n large: {\n height: { value: '{fontSizes.xs.value}' },\n strokeWidth: { value: '{fontSizes.xs.value}' },\n },\n },\n};\n","module.exports = {\n backgroundColor: { value: '{colors.white.value}' },\n borderRadius: { value: '{radii.medium.value}' },\n boxShadow: { value: '{shadows.large.value}' },\n flexDirection: { value: 'column' },\n gap: { value: 0 },\n maxWidth: { value: '30rem' },\n minWidth: { value: '14rem' },\n\n small: {\n width: { value: '{fontSizes.medium.value}' },\n height: { value: '{fontSizes.medium.value}' },\n },\n large: {\n width: { value: '{fontSizes.xxxl.value}' },\n height: { value: '{fontSizes.xxxl.value}' },\n },\n item: {\n minHeight: { value: '2.5rem' },\n paddingInlineStart: { value: '{space.medium.value}' },\n paddingInlineEnd: { value: '{space.medium.value}' },\n },\n};\n","module.exports = {\n current: {\n alignItems: { value: 'center' },\n justifyContent: { value: 'center' },\n color: { value: '{colors.white.value}' },\n fontSize: { value: '{fontSizes.small.value}' },\n backgroundColor: { value: '{colors.overlay.40.value}' },\n },\n button: {\n color: { value: '{colors.font.primary.value}' },\n paddingInlineStart: { value: '{space.xxs.value}' },\n paddingInlineEnd: { value: '{space.xxs.value}' },\n transitionProperty: { value: 'background-color' },\n transitionDuration: { value: '{time.medium.value}' },\n hover: {\n backgroundColor: { value: '{colors.overlay.10.value}' },\n color: { value: '{colors.font.primary.value}' },\n },\n disabled: {\n color: { value: '{colors.font.disabled.value}' },\n },\n },\n ellipsis: {\n alignItems: { value: 'baseline' },\n justifyContent: { value: 'center' },\n paddingInlineStart: { value: '{space.xs.value}' },\n paddingInlineEnd: { value: '{space.xs.value}' },\n },\n itemContainer: {\n marginLeft: { value: '{space.xxxs.value}' },\n marginRight: { value: '{space.xxxs.value}' },\n },\n itemShared: {\n height: { value: '{fontSizes.xxl.value}' },\n minWidth: { value: '{fontSizes.xxl.value}' },\n borderRadius: { value: '{fontSizes.medium.value}' },\n },\n};\n","module.exports = {};\n","module.exports = {\n borderRadius: { value: '{radii.small.value}' },\n transitionDuration: { value: '{time.long.value}' },\n\n startColor: { value: '{colors.background.secondary.value}' },\n endColor: { value: '{colors.background.tertiary.value}' },\n\n // sizes\n small: {\n height: { value: '{space.small.value}' },\n },\n default: {\n height: { value: '{space.medium.value}' },\n },\n large: {\n height: { value: '{space.large.value}' },\n },\n};\n","module.exports = {\n alignItems: { value: 'center' },\n justifyContent: { value: 'flex-start' },\n gap: { value: 'inherit' },\n _disabled: { cursor: { value: 'not-allowed' } },\n button: {\n alignItems: { value: 'center' },\n justifyContent: { value: 'center' },\n width: { value: '{fontSizes.medium.value}' },\n height: { value: '{fontSizes.medium.value}' },\n boxSizing: { value: 'border-box' },\n borderWidth: { value: '{borderWidths.medium.value}' },\n borderStyle: { value: 'solid' },\n borderRadius: { value: '50%' },\n borderColor: { value: '{colors.border.primary.value}' },\n color: { value: '{colors.white.value}' },\n backgroundColor: { value: '{colors.white.value}' },\n transitionProperty: { value: 'all' },\n transitionDuration: { value: '{time.medium.value}' },\n outlineColor: { value: '{colors.transparent.value}' },\n outlineStyle: { value: 'solid' },\n outlineWidth: { value: '{outlineWidths.medium.value}' },\n outlineOffset: { value: '{outlineOffsets.medium.value}' },\n // We want the dot inside the border to be a border-width from the border\n padding: { value: '{borderWidths.medium.value}' },\n\n small: {\n width: { value: '{fontSizes.small.value}' },\n height: { value: '{fontSizes.small.value}' },\n },\n large: {\n width: { value: '{fontSizes.large.value}' },\n height: { value: '{fontSizes.large.value}' },\n },\n\n _checked: {\n color: {\n value: '{colors.brand.primary.80.value}',\n },\n _disabled: { color: { value: '{colors.background.disabled.value}' } },\n },\n\n _focus: {\n borderColor: { value: '{colors.border.focus.value}' },\n boxShadow: { value: '{components.fieldcontrol._focus.boxShadow.value}' },\n },\n\n _error: {\n borderColor: { value: '{colors.border.error.value}' },\n _focus: {\n boxShadow: {\n value: '{components.fieldcontrol._error._focus.boxShadow.value}',\n },\n },\n },\n\n _disabled: {\n borderColor: { value: '{colors.border.disabled.value}' },\n backgroundColor: { value: '{colors.background.primary.value}' },\n },\n },\n\n label: {\n _disabled: {\n color: {\n value: '{colors.font.disabled.value}',\n },\n },\n },\n};\n","module.exports = {\n large: { size: { value: '{fontSizes.xxxl.value}' } },\n default: { size: { value: '{fontSizes.xl.value}' } },\n small: { size: { value: '{fontSizes.small.value}' } },\n filled: { color: { value: '{colors.brand.secondary.80.value}' } },\n empty: { color: { value: '{colors.background.tertiary.value}' } },\n};\n","module.exports = {\n paddingInlineEnd: { value: '{space.xxl.value}' },\n // wrappers\n wrapper: {\n flex: { value: '1' },\n display: { value: 'block' },\n position: { value: 'relative' },\n cursor: { value: 'pointer' },\n },\n iconWrapper: {\n alignItems: { value: 'center' },\n position: { value: 'absolute' },\n top: { value: '50%' },\n right: { value: '{space.medium.value}' },\n transform: { value: 'translateY(-50%)' },\n pointerEvents: { value: 'none' },\n },\n // for Firefox only, to fix background color in darkmode\n option: {\n backgroundColor: { value: '{colors.background.primary.value}' },\n },\n whiteSpace: { value: 'nowrap' },\n minWidth: { value: '6.5rem' },\n small: {\n minWidth: { value: '5.5rem' },\n },\n large: {\n minWidth: { value: '7.5rem' },\n },\n};\n","module.exports = {\n flexDirection: {\n value: 'column',\n },\n};\n","module.exports = {\n paddingBlock: { value: '{space.xs.value}' },\n\n // The track is the thin background of the slider\n track: {\n backgroundColor: { value: '{colors.background.tertiary.value}' },\n borderRadius: { value: '9999px' },\n height: { value: '0.375rem' },\n minWidth: { value: '10rem' },\n },\n\n // The range is the filled part of the track\n range: {\n backgroundColor: { value: '{colors.brand.primary.80.value}' },\n borderRadius: { value: '9999px' },\n _disabled: {\n backgroundColor: { value: '{colors.background.disabled.value}' },\n },\n },\n\n // The thumb is the circle above the track that the user drags\n thumb: {\n width: { value: '1.25rem' },\n height: { value: '1.25rem' },\n backgroundColor: { value: '{colors.background.primary.value}' },\n boxShadow: { value: '{shadows.medium.value}' },\n borderRadius: { value: '50%' },\n borderWidth: { value: '{borderWidths.small.value}' },\n borderColor: { value: '{colors.border.primary.value}' },\n borderStyle: { value: 'solid' },\n _disabled: {\n backgroundColor: { value: '{colors.background.disabled.value}' },\n borderColor: { value: 'transparent' },\n boxShadow: { value: 'none' },\n },\n _hover: {\n backgroundColor: { value: '{colors.background.primary.value}' },\n borderColor: { value: '{colors.border.focus.value}' },\n },\n _focus: {\n boxShadow: {\n value: {\n offsetX: '0',\n offsetY: '0',\n blurRadius: '0',\n spreadRadius: '3px',\n color: '{colors.border.focus.value}',\n },\n },\n },\n },\n\n small: {\n track: {\n height: { value: '0.25rem' },\n },\n thumb: {\n width: { value: '1rem' },\n height: { value: '1rem' },\n },\n },\n\n large: {\n track: {\n height: { value: '0.625rem' },\n },\n thumb: {\n width: { value: '1.5rem' },\n height: { value: '1.5rem' },\n },\n },\n};\n","module.exports = {\n flexDirection: { value: 'column' },\n input: {\n textAlign: { value: 'center' },\n },\n};\n","module.exports = {\n disabled: {\n opacity: { value: '{opacities.60.value}' },\n },\n focused: {\n shadow: { value: '{shadows.small.value}' },\n },\n label: {\n padding: { value: '{space.xs.value}' },\n },\n large: {\n font: {\n size: { value: '{fontSizes.large.value}' },\n },\n },\n small: {\n font: {\n size: { value: '{fontSizes.small.value}' },\n },\n },\n thumb: {\n backgroundColor: { value: '{colors.background.primary.value}' },\n borderColor: { value: '{colors.border.tertiary.value}' },\n borderRadius: { value: '{radii.xxxl.value}' },\n checked: {\n transform: { value: '{transforms.slideX.medium.value}' },\n },\n transition: {\n duration: { value: '{time.medium.value}' },\n },\n width: { value: '{space.relative.medium.value}' },\n },\n track: {\n backgroundColor: { value: '{colors.background.tertiary.value}' },\n borderRadius: { value: '{radii.xxxl.value}' },\n checked: {\n backgroundColor: { value: '{colors.brand.primary.60.value}' },\n },\n height: { value: '{space.relative.medium.value}' },\n padding: { value: '{outlineWidths.medium.value}' },\n transition: {\n duration: { value: '{time.short.value}' },\n },\n width: { value: '{space.relative.xl.value}' },\n },\n};\n","module.exports = {\n /**\n * Default table styles\n */\n borderCollapse: { value: 'collapse' },\n display: { value: 'table' },\n width: { value: '100%' },\n\n /**\n * Default table head styles\n */\n head: {\n display: { value: 'table-header-group' },\n verticalAlign: { value: 'middle' },\n },\n\n /**\n * Default table body styles\n */\n body: {\n display: { value: 'table-row-group' },\n verticalAlign: { value: 'middle' },\n },\n\n /**\n * Default table foot styles\n */\n foot: {\n display: { value: 'table-footer-group' },\n verticalAlign: { value: 'middle' },\n },\n\n /**\n * Default table row styles\n */\n row: {\n display: { value: 'table-row' },\n verticalAlign: { value: 'middle' },\n\n hover: {\n backgroundColor: { value: '{colors.background.tertiary.value}' },\n },\n\n striped: {\n backgroundColor: { value: '{colors.background.secondary.value}' },\n },\n },\n\n /**\n * Default table header cell styles\n */\n header: {\n borderColor: { value: '{colors.border.tertiary.value}' },\n borderStyle: { value: 'solid' },\n borderWidth: { value: '{borderWidths.small.value}' },\n color: { value: '{colors.font.primary.value}' },\n display: { value: 'table-cell' },\n fontSize: { value: '{fontSizes.medium.value}' },\n fontWeight: { value: '{fontWeights.bold.value}' },\n padding: { value: '{space.medium.value}' },\n verticalAlign: { value: 'middle' },\n\n large: {\n fontSize: { value: '{fontSizes.large.value}' },\n padding: { value: '{space.large.value}' },\n },\n\n small: {\n fontSize: { value: '{fontSizes.small.value}' },\n padding: { value: '{space.xs.value}' },\n },\n },\n\n /**\n * Default table data cell styles\n */\n data: {\n borderColor: { value: '{colors.border.tertiary.value}' },\n borderStyle: { value: 'solid' },\n borderWidth: { value: '{borderWidths.small.value}' },\n color: { value: '{colors.font.primary.value}' },\n display: { value: 'table-cell' },\n fontSize: { value: '{fontSizes.medium.value}' },\n fontWeight: { value: '{fontWeights.normal.value}' },\n padding: { value: '{space.medium.value}' },\n verticalAlign: { value: 'middle' },\n\n large: {\n fontSize: { value: '{fontSizes.large.value}' },\n padding: { value: '{space.large.value}' },\n },\n\n small: {\n fontSize: { value: '{fontSizes.small.value}' },\n padding: { value: '{space.xs.value}' },\n },\n },\n\n /**\n * Default table caption styles\n */\n caption: {\n captionSide: { value: 'bottom' },\n color: { value: '{colors.font.primary.value}' },\n display: { value: 'table-caption' },\n fontSize: { value: '{fontSizes.medium.value}' },\n textAlign: { value: 'center' },\n wordBreak: { value: 'break-all' },\n\n large: {\n fontSize: { value: '{fontSizes.large.value}' },\n },\n\n small: {\n fontSize: { value: '{fontSizes.small.value}' },\n },\n },\n};\n","module.exports = {\n backgroundColor: { value: 'transparent' },\n borderColor: { value: '{colors.border.secondary.value}' },\n borderStyle: { value: 'solid' },\n borderWidth: { value: '{borderWidths.medium.value}' },\n gap: { value: '0' },\n\n item: {\n backgroundColor: { value: 'transparent' },\n borderColor: { value: '{colors.border.secondary.value}' },\n borderStyle: { value: 'solid' },\n borderWidth: { value: '{borderWidths.medium.value}' },\n color: { value: '{colors.font.secondary.value}' },\n fontSize: { value: '{fontSizes.medium.value}' },\n fontWeight: { value: '{fontWeights.bold.value}' },\n paddingVertical: { value: '{space.small.value}' },\n paddingHorizontal: { value: '{space.medium.value}' },\n textAlign: { value: 'center' },\n transitionDuration: { value: '{time.medium.value}' },\n\n _hover: {\n color: { value: '{colors.font.hover.value}' },\n },\n _focus: {\n color: { value: '{colors.font.focus.value}' },\n },\n _active: {\n color: { value: '{colors.font.interactive.value}' },\n borderColor: { value: '{colors.font.interactive.value}' },\n backgroundColor: { value: 'transparent' },\n },\n _disabled: {\n color: { value: '{colors.font.disabled.value}' },\n backgroundColor: { value: 'transparent' },\n borderColor: { value: '{colors.border.tertiary.value}' },\n },\n },\n};\n","module.exports = {\n // default styles\n color: { value: '{colors.font.primary.value}' },\n\n // variations\n primary: {\n color: { value: '{colors.font.primary.value}' },\n },\n secondary: {\n color: { value: '{colors.font.secondary.value}' },\n },\n tertiary: {\n color: { value: '{colors.font.tertiary.value}' },\n },\n error: {\n color: { value: '{colors.font.error.value}' },\n },\n warning: {\n color: { value: '{colors.font.warning.value}' },\n },\n success: {\n color: { value: '{colors.font.success.value}' },\n },\n info: {\n color: { value: '{colors.font.info.value}' },\n },\n};\n","module.exports = {\n borderColor: { value: '{colors.border.primary.value}' },\n color: { value: '{colors.overlay.50.value}' },\n _hover: {\n backgroundColor: { value: '{colors.overlay.10.value}' },\n },\n _focus: {\n borderColor: { value: '{colors.border.focus.value}' },\n color: { value: '{colors.overlay.50.value}' },\n },\n _active: {\n backgroundColor: { value: '{colors.transparent.value}' },\n },\n _disabled: {\n backgroundColor: { value: '{colors.transparent.value}' },\n borderColor: { value: '{colors.border.secondary.value}' },\n color: { value: '{colors.font.disabled.value}' },\n },\n _pressed: {\n color: { value: '{colors.overlay.90.value}' },\n backgroundColor: { value: '{colors.overlay.20.value}' },\n _hover: {\n backgroundColor: { value: '{colors.overlay.30.value}' },\n },\n },\n primary: {\n backgroundColor: { value: '{colors.transparent.value}' },\n borderWidth: { value: '{borderWidths.small.value}' },\n _focus: {\n borderColor: { value: '{colors.border.focus.value}' },\n backgroundColor: { value: '{colors.transparent.value}' },\n boxShadow: { value: '{components.fieldcontrol._focus.boxShadow.value}' },\n color: { value: '{colors.overlay.50.value}' },\n },\n _hover: {\n backgroundColor: { value: '{colors.overlay.10.value}' },\n color: { value: '{colors.overlay.50.value}' },\n },\n _disabled: {\n backgroundColor: { value: '{colors.background.tertiary.value}' },\n color: { value: '{colors.font.disabled.value}' },\n },\n _pressed: {\n backgroundColor: { value: '{colors.brand.primary.80.value}' },\n borderColor: { value: '{colors.brand.primary.80.value}' },\n color: { value: '{colors.white.value}' },\n _focus: {\n backgroundColor: {\n value: '{colors.border.focus.value}',\n },\n borderColor: { value: '{colors.border.focus.value}' },\n },\n _hover: {\n borderColor: { value: '{colors.brand.primary.60.value}' },\n backgroundColor: {\n value: '{colors.brand.primary.60.value}',\n },\n },\n },\n },\n link: {\n color: { value: '{colors.overlay.50.value}' },\n _hover: {\n backgroundColor: { value: '{colors.transparent.value}' },\n color: { value: '{colors.overlay.50.value}' },\n },\n _focus: {\n backgroundColor: { value: '{colors.transparent.value}' },\n color: { value: '{colors.overlay.50.value}' },\n },\n _disabled: {\n color: { value: '{colors.font.disabled.value}' },\n },\n _pressed: {\n backgroundColor: { value: '{colors.transparent.value}' },\n color: { value: '{colors.overlay.90.value}' },\n _hover: {\n backgroundColor: { value: '{colors.transparent.value}' },\n },\n },\n },\n};\n","module.exports = {\n alignItems: { value: 'center' },\n alignContent: { value: 'center' },\n justifyContent: { value: 'flex-start' },\n};\n","module.exports = {\n alert: require('./alert'),\n badge: require('./badge'),\n button: require('./button'),\n card: require('./card'),\n checkbox: require('./checkbox'),\n checkboxfield: require('./checkboxField'),\n countrycodeselect: require('./countryCodeSelect'),\n divider: require('./divider'),\n expander: require('./expander'),\n field: require('./field'),\n fieldcontrol: require('./fieldControl'),\n fieldgroup: require('./fieldGroup'),\n fieldmessages: require('./fieldMessages'),\n flex: require('./flex'),\n heading: require('./heading'),\n icon: require('./icon'),\n image: require('./image'),\n link: require('./link'),\n loader: require('./loader'),\n menu: require('./menu'),\n pagination: require('./pagination'),\n phonenumberfield: require('./phoneNumberField'),\n placeholder: require('./placeholder'),\n radio: require('./radio'),\n rating: require('./rating'),\n select: require('./select'),\n selectfield: require('./selectField'),\n sliderfield: require('./sliderField'),\n stepperfield: require('./stepperField'),\n switchfield: require('./switchField'),\n table: require('./table'),\n tabs: require('./tabs'),\n text: require('./text'),\n togglebutton: require('./toggleButton'),\n togglebuttongroup: require('./toggleButtonGroup'),\n};\n","export * from './helpers';\nexport * from './i18n';\nexport * from './machines';\nexport * from './theme';\nexport * from './types';\n","export * from './auth';\nexport * from './utils';\n","import { Hub } from 'aws-amplify';\nimport { Sender } from 'xstate';\nimport includes from 'lodash/includes';\n\nimport { AuthContext } from '..';\nimport {\n ActorContextWithForms,\n AuthActorContext,\n AuthActorState,\n AuthEvent,\n AuthEventData,\n AuthEventTypes,\n AuthInputAttributes,\n AuthMachineSend,\n AuthMachineState,\n LoginMechanism,\n LoginMechanismArray,\n} from '../types';\n\nexport const authInputAttributes: AuthInputAttributes = {\n birthdate: {\n label: 'Birthdate',\n placeholder: 'Birthdate',\n type: 'date',\n autocomplete: 'bday',\n },\n confirmation_code: {\n label: 'Confirmation Code',\n placeholder: 'Code',\n type: 'text',\n autocomplete: 'one-time-code',\n },\n email: {\n label: 'Email',\n type: 'email',\n placeholder: 'Email',\n autocomplete: 'username',\n },\n family_name: {\n label: 'Family Name',\n placeholder: 'Family Name',\n type: 'text',\n autocomplete: 'family-name',\n },\n given_name: {\n label: 'Given Name',\n placeholder: 'Given Name',\n type: 'text',\n autocomplete: 'given-name',\n },\n middle_name: {\n label: 'Middle Name',\n placeholder: 'Middle Name',\n type: 'text',\n autocomplete: 'additional-name',\n },\n name: {\n label: 'Name',\n placeholder: 'Name',\n type: 'text',\n autocomplete: 'name',\n },\n nickname: {\n label: 'Nickname',\n placeholder: 'Nickname',\n type: 'text',\n autocomplete: 'tel',\n },\n password: {\n label: 'Password',\n placeholder: 'Password',\n type: 'password',\n autocomplete: 'password',\n },\n phone_number: {\n label: 'Phone Number',\n placeholder: 'Phone',\n type: 'tel',\n autocomplete: 'tel',\n },\n preferred_username: {\n label: 'Preferred Username',\n placeholder: 'Preferred Username',\n type: 'text',\n },\n profile: {\n label: 'Profile',\n placeholder: 'Profile',\n type: 'url',\n autocomplete: 'url',\n },\n website: {\n label: 'Website',\n placeholder: 'Website',\n type: 'url',\n autocomplete: 'url',\n },\n username: {\n label: 'Username',\n type: 'text',\n placeholder: 'Username',\n autocomplete: 'username',\n },\n};\n\nexport enum FederatedIdentityProviders {\n Apple = 'SignInWithApple',\n Amazon = 'LoginWithAmazon',\n Facebook = 'Facebook',\n Google = 'Google',\n}\n\n/**\n * Given xstate context from AuthMachine, this returns the input label, type,\n * and error attributes of the configured login_mechanisms. An optional \"alias\"\n * may be passed in to get info from context for that specific alias.\n */\nexport const getAliasInfoFromContext = (\n context: AuthContext,\n // TODO This function & its signature should be renamed since aliases were rolled back\n alias?: LoginMechanism\n) => {\n const loginMechanisms = context.config?.loginMechanisms;\n const error = context.actorRef?.context?.validationError['username'];\n\n if (LoginMechanismArray.includes(alias)) {\n return {\n label: authInputAttributes[alias].label,\n type: authInputAttributes[alias].type,\n error,\n };\n }\n\n let type = 'text';\n const label = loginMechanisms\n .filter((mechanism) => includes(LoginMechanismArray, mechanism))\n .map((v) => {\n return (\n authInputAttributes[v]?.label ?? authInputAttributes['username'].label\n );\n })\n .join(' or ');\n\n if (loginMechanisms.length === 1) {\n type = authInputAttributes[loginMechanisms[0]]?.type ?? 'text';\n }\n\n return { label, type, error };\n};\n\n/**\n * Given xstate context from AuthMachine, returns the primaryAlias and\n * secondaryAliases.\n */\nexport const getConfiguredAliases = (context: AuthContext) => {\n const loginMechanisms = context.config?.loginMechanisms;\n const aliases = loginMechanisms.filter((mechanism) =>\n includes(LoginMechanismArray, mechanism)\n );\n\n const [primaryAlias, ...secondaryAliases] = aliases;\n return { primaryAlias, secondaryAliases };\n};\n\n/**\n * Get the state of current actor. This is useful for checking which screen\n * to render: e.g. `getActorState(state).matches('confirmSignUp.edit').\n */\nexport const getActorState = (state: AuthMachineState): AuthActorState => {\n return state.context.actorRef?.getSnapshot();\n};\n\n/**\n * Get the context of current actor. Useful for getting any nested context\n * like remoteError.\n */\nexport const getActorContext = (state: AuthMachineState): AuthActorContext => {\n return getActorState(state)?.context;\n};\n\n/**\n * Creates public facing auth helpers that abstracts out xstate implementation\n * detail. Each framework implementation can export these helpers so that\n * developers can send events without having to learn internals.\n *\n * ```\n * const [state, send] = useActor(...);\n * const { submit } = getSendEventAliases(send);\n * submit({ username, password})\n * ```\n */\nexport const getSendEventAliases = (send: Sender<AuthEvent>) => {\n const sendToMachine = (type: AuthEventTypes) => {\n // TODO If these were created during the creation of the machine & provider,\n // then invalid transitions could be caught via https://xstate.js.org/docs/guides/states.html#state-can-event\n return (data?: AuthEventData) => send({ type, data });\n };\n\n return {\n resendCode: sendToMachine('RESEND'),\n signOut: sendToMachine('SIGN_OUT'),\n submitForm: sendToMachine('SUBMIT'),\n updateForm: sendToMachine('CHANGE'),\n updateBlur: sendToMachine('BLUR'),\n\n // Actions that don't immediately invoke a service but instead transition to a screen\n // are prefixed with `to*`\n\n toFederatedSignIn: sendToMachine('FEDERATED_SIGN_IN'),\n toResetPassword: sendToMachine('RESET_PASSWORD'),\n toSignIn: sendToMachine('SIGN_IN'),\n toSignUp: sendToMachine('SIGN_UP'),\n skipVerification: sendToMachine('SKIP'),\n } as const;\n};\n\nexport const getServiceContextFacade = (state: AuthMachineState) => {\n const user = state.context?.user;\n const actorState = getActorState(state);\n const actorContext = getActorContext(state) as ActorContextWithForms;\n const error = actorContext?.remoteError;\n const validationErrors = { ...actorContext?.validationError };\n const codeDeliveryDetails = actorContext?.codeDeliveryDetails;\n const hasValidationErrors = Object.keys(validationErrors).length > 0;\n const isPending =\n state.hasTag('pending') || getActorState(state)?.hasTag('pending');\n const route = (() => {\n switch (true) {\n case state.matches('idle'):\n return 'idle';\n case state.matches('setup'):\n return 'setup';\n case state.matches('signOut'):\n return 'signOut';\n case state.matches('authenticated'):\n return 'authenticated';\n case actorState?.matches('confirmSignUp'):\n return 'confirmSignUp';\n case actorState?.matches('confirmSignIn'):\n return 'confirmSignIn';\n case actorState?.matches('setupTOTP'):\n return 'setupTOTP';\n case actorState?.matches('signIn'):\n return 'signIn';\n case actorState?.matches('signUp'):\n return 'signUp';\n case actorState?.matches('forceNewPassword'):\n return 'forceNewPassword';\n case actorState?.matches('resetPassword'):\n return 'resetPassword';\n case actorState?.matches('confirmResetPassword'):\n return 'confirmResetPassword';\n case actorState?.matches('verifyUser'):\n return 'verifyUser';\n case actorState?.matches('confirmVerifyUser'):\n return 'confirmVerifyUser';\n default:\n console.debug(\n 'Cannot infer `route` from Authenticator state:',\n state.value\n );\n return null;\n }\n })();\n\n return {\n error,\n hasValidationErrors,\n isPending,\n route,\n user,\n validationErrors,\n codeDeliveryDetails,\n };\n};\n\nexport const getServiceFacade = ({ send, state }) => {\n const sendEventAliases = getSendEventAliases(send);\n const serviceContext = getServiceContextFacade(state);\n\n return {\n ...sendEventAliases,\n ...serviceContext,\n };\n};\n\n/**\n * Listens to external auth Hub events and sends corresponding event to\n * the `authService` of interest\n *\n * @param send - `send` function associated with the `authService` of interest\n *\n * @returns function that unsubscribes to the hub evenmt\n */\nexport const listenToAuthHub = (send: AuthMachineSend) => {\n return Hub.listen('auth', (data) => {\n switch (data.payload.event) {\n // TODO: We can add more cases here, according to\n // https://docs.amplify.aws/lib/auth/auth-events/q/platform/js/\n case 'signOut':\n send('SIGN_OUT');\n break;\n }\n });\n};\n","export * from './authMachine';\nexport * from './validator';\n\n// Prevents usage of T from being automatically inferred.\n// https://github.com/Microsoft/TypeScript/issues/14829#issuecomment-504042546\nexport type NoInfer<T> = [T][T extends any ? 0 : never];\n","import { CognitoUser, CodeDeliveryDetails } from 'amazon-cognito-identity-js';\nimport { Interpreter, State } from 'xstate';\nimport { ValidationError } from './validator';\nimport { defaultServices } from '../machines/authenticator/defaultServices';\n\nexport type AuthFormData = Record<string, string>;\n\nexport interface AuthContext {\n actorRef?: any;\n config?: {\n loginMechanisms?: LoginMechanism[];\n signUpAttributes?: SignUpAttribute[];\n socialProviders?: SocialProvider[];\n initialState?: 'signIn' | 'signUp' | 'resetPassword';\n };\n services?: Partial<typeof defaultServices>;\n user?: CognitoUserAmplify;\n username?: string;\n password?: string;\n code?: string;\n mfaType?: AuthChallengeNames.SMS_MFA | AuthChallengeNames.SOFTWARE_TOKEN_MFA;\n}\n\nexport interface ServicesContext {\n username?: string;\n password?: string;\n user?: string;\n code?: string;\n mfaType: AuthChallengeNames.SMS_MFA | AuthChallengeNames.SOFTWARE_TOKEN_MFA;\n}\n\ninterface BaseFormContext {\n authAttributes?: Record<string, any>;\n challengeName?: string;\n requiredAttributes?: Array<string>;\n formValues?: AuthFormData;\n touched?: AuthFormData;\n intent?: string;\n remoteError?: string;\n user?: CognitoUserAmplify;\n validationError?: ValidationError;\n codeDeliveryDetails?: CodeDeliveryDetails;\n country_code?: string;\n}\n\nexport interface SignInContext extends BaseFormContext {\n loginMechanisms: Required<AuthContext>['config']['loginMechanisms'];\n socialProviders: Required<AuthContext>['config']['socialProviders'];\n attributeToVerify?: string;\n redirectIntent?: string;\n unverifiedAttributes?: Record<string, string>;\n}\n\n// https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html\nexport const signUpFieldsWithDefault = [\n 'birthdate',\n 'email',\n 'family_name',\n 'given_name',\n 'middle_name',\n 'name',\n 'nickname',\n 'phone_number',\n 'preferred_username',\n 'profile',\n 'website',\n] as const;\n\nexport const signUpFieldsWithoutDefault = [\n 'address',\n 'gender',\n 'locale',\n 'picture',\n 'updated_at',\n 'zoneinfo',\n] as const;\n\nexport type SignUpFieldsWithDefaults = typeof signUpFieldsWithDefault[number];\n\nexport type SignUpFieldsWithoutDefaults =\n typeof signUpFieldsWithoutDefault[number];\n\nexport type SignUpAttribute =\n | SignUpFieldsWithDefaults\n | SignUpFieldsWithoutDefaults;\n\nexport interface SignUpContext extends BaseFormContext {\n loginMechanisms: Required<AuthContext>['config']['loginMechanisms'];\n socialProviders: Required<AuthContext>['config']['socialProviders'];\n unverifiedAttributes?: Record<string, string>;\n}\n\nexport interface ResetPasswordContext extends BaseFormContext {\n username?: string;\n unverifiedAttributes?: Record<string, string>;\n}\n\nexport interface SignOutContext {\n authAttributes?: Record<string, any>;\n challengeName?: string;\n unverifiedAttributes?: Record<string, string>;\n user?: CognitoUserAmplify;\n}\n\n// actors that have forms. Has `formValues, remoteErrror, and validationError in common.\nexport type ActorContextWithForms =\n | SignInContext\n | SignUpContext\n | ResetPasswordContext;\n\nexport type SignInState = State<SignInContext, AuthEvent>;\nexport type SignUpState = State<SignUpContext, AuthEvent>;\nexport type SignOutState = State<SignOutContext, AuthEvent>;\nexport type ResetPasswordState = State<ResetPasswordContext, AuthEvent>;\nexport type AuthActorContext = ActorContextWithForms | SignOutContext;\nexport type AuthActorState = State<AuthActorContext, AuthEvent>;\nexport interface CognitoUserAmplify extends CognitoUser {\n username?: string;\n}\n\nexport type InvokeActorEventTypes =\n | 'done.invoke.signInActor'\n | 'done.invoke.signUpActor'\n | 'done.invoke.signOutActor'\n | 'done.invoke.resetPasswordActor';\n\nexport type AuthEventTypes =\n | 'CHANGE'\n | 'BLUR'\n | 'FEDERATED_SIGN_IN'\n | 'RESEND'\n | 'RESET_PASSWORD'\n | 'SIGN_IN'\n | 'SIGN_OUT'\n | 'SIGN_UP'\n | 'SKIP'\n | 'SUBMIT'\n | 'INIT'\n | InvokeActorEventTypes;\n\nexport enum AuthChallengeNames {\n SMS_MFA = 'SMS_MFA',\n SOFTWARE_TOKEN_MFA = 'SOFTWARE_TOKEN_MFA',\n NEW_PASSWORD_REQUIRED = 'NEW_PASSWORD_REQUIRED',\n RESET_REQUIRED = 'RESET_REQUIRED',\n MFA_SETUP = 'MFA_SETUP',\n}\n\nexport interface InputAttributes {\n label: string;\n type: string;\n placeholder: string;\n autocomplete?: string;\n}\n\nexport const LoginMechanismArray = [\n 'username',\n 'email',\n 'phone_number',\n] as const;\n\nexport type LoginMechanism = typeof LoginMechanismArray[number];\n\nexport type SocialProvider = 'amazon' | 'apple' | 'facebook' | 'google';\n\n// Auth fields that we provide default fields with\nexport type AuthFieldsWithDefaults =\n | LoginMechanism\n | SignUpFieldsWithDefaults\n | 'confirmation_code'\n | 'password';\n\nexport type AuthInputAttributes = Record<\n AuthFieldsWithDefaults,\n InputAttributes\n>;\n\nexport type AuthEventData = Record<PropertyKey, any>; // TODO: this should be typed further\n\nexport interface AuthEvent {\n type: AuthEventTypes;\n data?: AuthEventData;\n}\n\nexport type AuthMachineState = State<AuthContext, AuthEvent>;\n\nexport type AuthInterpreter = Interpreter<AuthContext, any, AuthEvent>;\n\nexport type AuthMachineSend = AuthInterpreter['send'];\n","import { AuthChallengeNames, AuthFormData } from './authMachine';\n\nexport type ValidationError = Record<string, string>;\n\n/**\n * Return type of validator. This is `null` if there are no error, and `ValidationError` otherwise.\n */\nexport type ValidatorResult = void | null | ValidationError; // null if there are no error, `ValidationError` otherwise\nexport type SignInResult = string; // null if there are no error, `ValidationError` otherwise\n\n/**\n * Validates the given formData. This can be synchronous or asynchronous.\n */\nexport type Validator = (\n formData: AuthFormData,\n touchData?: AuthFormData\n) => ValidatorResult | Promise<ValidatorResult>;\n\nexport type SignInTypes = (\n user: string,\n code: string,\n mfaType: AuthChallengeNames.SMS_MFA | AuthChallengeNames.SOFTWARE_TOKEN_MFA\n) => SignInResult | Promise<SignInResult>;\n","export type ContactMethod = 'Email' | 'Phone Number';\n\n// replaces all characters in a string with '*', except for the first and last char\nexport const censorAllButFirstAndLast = (value: string): string => {\n const split = value.trim().split('');\n for (let i = 0; i < split.length; i++) {\n if (i > 0 && i < split.length - 1) {\n split[i] = '*';\n }\n }\n\n return split.join('');\n};\n\n// censors all but the last four characters of a phone number\nexport const censorPhoneNumber = (val: string): string => {\n if (val.length < 4) {\n return val;\n }\n\n const split = val.split('');\n for (let i = 0; i < split.length - 4; i++) {\n split[i] = '*';\n }\n\n return split.join('');\n};\n","export * from './country-dial-codes';\nexport * from './translations';\n","export const countryDialCodes = [\n '+1',\n '+7',\n '+20',\n '+27',\n '+30',\n '+31',\n '+32',\n '+33',\n '+34',\n '+36',\n '+39',\n '+40',\n '+41',\n '+43',\n '+44',\n '+45',\n '+46',\n '+47',\n '+48',\n '+49',\n '+51',\n '+52',\n '+53',\n '+54',\n '+55',\n '+56',\n '+57',\n '+58',\n '+60',\n '+61',\n '+62',\n '+63',\n '+64',\n '+65',\n '+66',\n '+81',\n '+82',\n '+84',\n '+86',\n '+90',\n '+91',\n '+92',\n '+93',\n '+94',\n '+95',\n '+98',\n '+212',\n '+213',\n '+216',\n '+218',\n '+220',\n '+221',\n '+222',\n '+223',\n '+224',\n '+225',\n '+226',\n '+227',\n '+228',\n '+229',\n '+230',\n '+231',\n '+232',\n '+233',\n '+234',\n '+235',\n '+236',\n '+237',\n '+238',\n '+239',\n '+240',\n '+241',\n '+242',\n '+243',\n '+244',\n '+245',\n '+246',\n '+248',\n '+249',\n '+250',\n '+251',\n '+252',\n '+253',\n '+254',\n '+255',\n '+256',\n '+257',\n '+258',\n '+260',\n '+261',\n '+262',\n '+263',\n '+264',\n '+265',\n '+266',\n '+267',\n '+268',\n '+269',\n '+290',\n '+291',\n '+297',\n '+298',\n '+299',\n '+345',\n '+350',\n '+351',\n '+352',\n '+353',\n '+354',\n '+355',\n '+356',\n '+357',\n '+358',\n '+359',\n '+370',\n '+371',\n '+372',\n '+373',\n '+374',\n '+375',\n '+376',\n '+377',\n '+378',\n '+379',\n '+380',\n '+381',\n '+382',\n '+385',\n '+386',\n '+387',\n '+389',\n '+420',\n '+421',\n '+423',\n '+500',\n '+501',\n '+502',\n '+503',\n '+504',\n '+505',\n '+506',\n '+507',\n '+508',\n '+509',\n '+537',\n '+590',\n '+591',\n '+593',\n '+594',\n '+595',\n '+596',\n '+597',\n '+598',\n '+599',\n '+670',\n '+672',\n '+673',\n '+674',\n '+675',\n '+676',\n '+677',\n '+678',\n '+679',\n '+680',\n '+681',\n '+682',\n '+683',\n '+685',\n '+686',\n '+687',\n '+688',\n '+689',\n '+690',\n '+691',\n '+692',\n '+850',\n '+852',\n '+853',\n '+855',\n '+856',\n '+872',\n '+880',\n '+886',\n '+960',\n '+961',\n '+962',\n '+963',\n '+964',\n '+965',\n '+966',\n '+967',\n '+968',\n '+970',\n '+971',\n '+972',\n '+973',\n '+974',\n '+975',\n '+976',\n '+977',\n '+992',\n '+993',\n '+994',\n '+995',\n '+996',\n '+998',\n];\n","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { I18n } from 'aws-amplify';\nimport { NoInfer } from '../types';\nimport {\n deDict,\n enDict,\n esDict,\n frDict,\n itDict,\n jaDict,\n krDict,\n nlDict,\n plDict,\n ptDict,\n zhDict,\n svDict,\n defaultTexts,\n} from './dictionaries';\n\n/**\n * Contains translatable strings that authenticator provides by default. Customers\n * can use this to add custom vocabularies:\n *\n * ```\n * I18n.putVocabulariesForLanguage(\"en\", {\n * [DefaultTexts.SIGN_IN]: \"Custom Sign In Text\",\n * [DefaultTexts.SIGN_IN_BUTTON]: \"Custom Click Here to Sign In\"\n * });\n * ```\n */\nexport const DefaultTexts = { ...defaultTexts } as const;\n\n// type Phrase = \"Back to Sign In\" | \"Change Password\" | ...\nexport type Phrase = typeof DefaultTexts[keyof typeof DefaultTexts];\n\n/**\n * TODO: Translation keys for dictionaries can be inferred from DefaultTexts\n * by typing it to Partial<Record<Phrase, string>>.\n *\n * But this requires error string keys to be standarized as well, and can be a\n * limiting factor for custom translation keys. Marking it as TODO until we see\n * a reason to strongly type this.\n */\nexport type Dict = Record<string, string>;\n\n/**\n * This helper type checks that given phrase is one of the texts @aws-amplify/ui\n * provides by default. This enables vscode autocompletion to help catch typos\n * during development.\n *\n * You can also use translate<string> to handle custom strings or dynamic content.\n */\nexport function translate<T = Phrase>(phrase: NoInfer<T>): string {\n return I18n.get(phrase);\n}\n\n/**\n * Whether I18n has a translation entry for given phrase\n */\nexport function hasTranslation(phrase: string) {\n return I18n.get(phrase) !== phrase;\n}\n\nexport const translations: Record<string, Dict> = {\n de: deDict,\n en: enDict,\n es: esDict,\n fr: frDict,\n it: itDict,\n ja: jaDict,\n kr: krDict,\n nl: nlDict,\n pl: plDict,\n pt: ptDict,\n zh: zhDict,\n sv: svDict,\n};\n","import * as authenticatorDict from './authenticator';\n\n//merge all the new module translations in respective locale constants\nexport const deDict = { ...authenticatorDict.deDict };\nexport const enDict = { ...authenticatorDict.enDict };\nexport const esDict = { ...authenticatorDict.esDict };\nexport const frDict = { ...authenticatorDict.frDict };\nexport const itDict = { ...authenticatorDict.itDict };\nexport const jaDict = { ...authenticatorDict.jaDict };\nexport const krDict = { ...authenticatorDict.krDict };\nexport const nlDict = { ...authenticatorDict.nlDict };\nexport const plDict = { ...authenticatorDict.plDict };\nexport const ptDict = { ...authenticatorDict.ptDict };\nexport const zhDict = { ...authenticatorDict.zhDict };\nexport const svDict = { ...authenticatorDict.svDict };\n\nexport const defaultTexts = {\n ...authenticatorDict.defaultTexts,\n // new module related default texts goes here\n};\n","// translation dictionaries\nexport { deDict } from './de';\nexport { enDict } from './en';\nexport { esDict } from './es';\nexport { frDict } from './fr';\nexport { itDict } from './it';\nexport { jaDict } from './ja';\nexport { krDict } from './kr';\nexport { nlDict } from './nl';\nexport { plDict } from './pl';\nexport { ptDict } from './pt';\nexport { zhDict } from './zh';\nexport { svDict } from './sv';\n\n// default text phrases\nexport { defaultTexts } from './defaultTexts';\n","export const deDict = {\n 'Account recovery requires verified contact information':\n 'Zurücksetzen des Account benötigt einen verifizierten Account',\n 'An account with the given email already exists.':\n 'Ein Account mit dieser Email existiert bereits.',\n 'Back to Sign In': 'Zurück zur Anmeldung',\n 'Change Password': 'Passwort ändern',\n Code: 'Code',\n Confirm: 'Bestätigen',\n 'Confirm Password': 'Passwort bestätigen',\n 'Confirm a Code': 'Code bestätigen',\n 'Confirm Sign In': 'Anmeldung bestätigen',\n 'Confirm Sign Up': 'Registrierung bestätigen',\n 'Confirm SMS Code': 'SMS-Code bestätigen',\n 'Confirm TOTP Code': 'TOTP-Code bestätigen',\n 'Confirmation Code': 'Bestätigungs-Code',\n 'Create a new account': 'Einen neuen Account erstellen',\n 'Create account': 'Hier registrieren',\n 'Create Account': 'Account erstellen', \n 'Creating Account': 'Account wird erstellt',\n Email: 'Email',\n 'Enter your code': 'Geben Sie Ihren Code ein',\n 'Enter your password': 'Geben Sie Ihr Passwort ein',\n 'Enter your username': 'Geben Sie Ihren Benutzernamen ein',\n 'Enter your phone number': 'Geben Sie Ihre Telefonnummer ein',\n 'Enter your email': 'Geben Sie ihre Email ein',\n 'Forgot your password?': 'Passwort vergessen? ',\n 'Forgot Password': 'Passwort vergessen',\n 'Hide password': 'Passwort verbergen',\n 'Have an account? ': 'Schon registriert? ',\n 'Incorrect username or password':\n 'Falscher Benutzername oder falsches Passwort',\n 'Invalid password format': 'Ungültiges Passwort-Format',\n 'Invalid phone number format': `Ungültiges Telefonummern-Format. Benutze eine Nummer im Format: +12345678900`,\n 'Lost your code? ': 'Code verloren? ',\n 'New Password': 'Neues Passwort',\n 'No account? ': 'Kein Account? ',\n or: 'oder',\n Password: 'Passwort',\n 'Password attempts exceeded':\n 'Die maximale Anzahl der fehlerhaften Anmeldeversuche wurde erreicht',\n 'Phone Number': 'Telefonnummer',\n 'Resend Code': 'Code erneut senden',\n 'Reset password': 'Passwort zurücksetzen',\n 'Reset your password': 'Zurücksetzen des Passworts',\n 'Send Code': 'Code senden',\n 'Sign in': 'Anmelden',\n 'Sign In': 'Anmelden',\n 'Sign in to your account': 'Melden Sie sich mit Ihrem Account an',\n 'Sign Out': 'Abmelden',\n 'Sign Up': 'Registrieren',\n Skip: 'Überspringen',\n Submit: 'Abschicken',\n 'User already exists': 'Dieser Benutzer existiert bereits',\n 'User does not exist': 'Dieser Benutzer existiert nicht',\n Username: 'Benutzername',\n 'Username cannot be empty': 'Benutzername darf nicht leer sein',\n Verify: 'Verifizieren',\n 'Verify Contact': 'Kontakt verifizieren',\n};\n","export const enDict = {\n 'Account recovery requires verified contact information': \n 'Account recovery requires verified contact information',\n 'Back to Sign In': 'Back to Sign In',\n 'Change Password': 'Change Password',\n Changing: 'Changing',\n Code: 'Code',\n Confirm: 'Confirm',\n 'Confirm Password': 'Confirm Password',\n 'Confirm Sign Up': 'Confirm Sign Up',\n 'Confirm SMS Code': 'Confirm SMS Code',\n 'Confirm TOTP Code': 'Confirm TOTP Code',\n 'Confirmation Code': 'Confirmation Code',\n Confirming: 'Confirming',\n 'Create Account': 'Create Account',\n 'Creating Account': 'Creating Account',\n Email: 'Email',\n 'Enter your code': 'Enter your code',\n 'Enter your username': 'Enter your username',\n 'Enter your phone number': 'Enter your phone number',\n 'Enter your email': 'Enter your email',\n 'Forgot your password?': 'Forgot your password?',\n 'Hide password': 'Hide password',\n Loading: 'Loading',\n Username: 'Username',\n 'New password': 'New password',\n Password: 'Password',\n 'Phone Number': 'Phone Number',\n 'Resend Code': 'Resend Code',\n 'Reset your password': 'Reset your password',\n 'Reset your Password': 'Reset your Password',\n 'Send Code': 'Send Code',\n 'Send code': 'Send code',\n Sending: 'Sending',\n 'Setup TOTP': 'Setup TOTP',\n 'Show password': 'Show password',\n 'Sign in': 'Sign in',\n 'Sign In': 'Sign In',\n 'Sign In with Amazon': 'Sign In with Amazon',\n 'Sign In with Apple': 'Sign In with Apple',\n 'Sign In with Facebook': 'Sign In with Facebook',\n 'Sign In with Google': 'Sign In with Google',\n 'Sign in to your account': 'Sign in to your account',\n 'Create a new account': 'Create a new account',\n 'Signing in': 'Signing in',\n Skip: 'Skip',\n Submit: 'Submit',\n Submitting: 'Submitting',\n 'Verify Contact': 'Verify Contact',\n Verify: 'Verify',\n};\n","export const esDict = {\n 'Account recovery requires verified contact information':\n 'La recuperación de la cuenta requiere información de contacto verificada',\n 'Back to Sign In': 'Volver a inicio de sesión',\n 'Change Password': 'Cambiar contraseña',\n Code: 'Código',\n Confirm: 'Confirmar',\n 'Confirm a Code': 'Confirmar un código',\n 'Confirm Password': 'Confirmar contraseña',\n 'Confirm Sign In': 'Confirmar inicio de sesión',\n 'Confirm Sign Up': 'Confirmar registro',\n 'Confirmation Code': 'Código de confirmación',\n 'Create a new account': 'Crear una cuenta nueva',\n Email: 'Email',\n 'Forgot Password': 'Olvidé mi contraseña',\n 'Incorrect username or password': 'Nombre de usuario o contraseña incorrecta',\n 'Invalid password format': 'Formato de contraseña inválido',\n 'Invalid phone number format': 'Formato de número de teléfono inválido',\n 'Loading...': 'Cargando...',\n 'New Password': 'Nueva contraseña',\n or: 'o',\n Password: 'Contraseña',\n 'Phone Number': 'Número de teléfono',\n 'Resend a Code': 'Reenviar un código',\n 'Resend Code': 'Reenviar código',\n 'Send Code': 'Enviar código',\n 'Sign In': 'Iniciar sesión',\n 'Sign in to your account': 'Iniciar sesión en tu cuenta',\n 'Sign Out': 'Cerrar sesión',\n 'Sign Up': 'Crear cuenta',\n Skip: 'Omitir',\n Submit: 'Enviar',\n 'User already exists': 'El usuario ya existe',\n 'User does not exist': 'El usuario no existe',\n Username: 'Nombre de usuario',\n 'Username cannot be empty': 'El nombre de usuario no puede estar vacío',\n Verify: 'Verificar',\n 'Verify Contact': 'Verificar contacto',\n};\n","export const frDict = {\n 'Account recovery requires verified contact information':\n 'La récupération du compte nécessite des informations de contact vérifiées',\n 'An account with the given email already exists.':\n 'Un utilisateur avec cette adresse email existe déjà.',\n 'Back to Sign In': 'Retour à la connexion',\n Change: 'Modifier',\n 'Change Password': 'Modifier le mot de passe',\n Code: 'Code',\n Confirm: 'Confirmer',\n 'Confirm a Code': 'Confirmer un code',\n 'Confirm Password': 'Confirmez le mot de passe',\n 'Confirm Sign In': 'Confirmer la connexion',\n 'Confirm Sign Up': \"Confirmer l'inscription\",\n 'Confirm SMS Code': 'Confirmer le code SMS',\n 'Confirm TOTP Code': 'Confirmer le code TOTP',\n 'Confirmation Code': 'Code de confirmation',\n 'Create a new account': 'Créer un nouveau compte',\n 'Create account': 'Créer un compte',\n 'Create Account': 'Créer un compte',\n Email: 'Email',\n 'Enter your code': 'Saisissez cotre code de confirmation',\n 'Enter your email': 'Saisissez votre adresse email',\n 'Enter your password': 'Saisissez votre mot de passe',\n 'Enter your phone number': 'Saisissez votre numéro de téléphone',\n 'Enter your username': \"Saisissez votre nom d'utilisateur\",\n 'Forgot Password': 'Mot de passe oublié',\n 'Forgot your password?': 'Mot de passe oublié ? ',\n 'Have an account? ': 'Déjà un compte ? ',\n Hello: 'Bonjour',\n 'Incorrect username or password': 'Identifiant ou mot de passe incorrect',\n 'Invalid password format': 'Format de mot de passe invalide',\n 'Invalid phone number format': `Format de numéro de téléphone invalide. Veuillez utiliser un format +12345678900`,\n 'Loading...': 'Chargement...',\n 'Lost your code? ': 'Vous avez perdu votre code ? ',\n 'Network error': 'Erreur réseau',\n 'New Password': 'Nouveau mot de passe',\n 'No account? ': 'Pas de compte ? ',\n or: 'ou',\n Password: 'Mot de passe',\n 'Phone Number': 'Numéro de téléphone',\n 'Resend a Code': 'Renvoyer un code',\n 'Resend Code': 'Renvoyer le code',\n 'Reset password': 'Réinitialisez votre mot de passe',\n 'Reset your password': 'Réinitialisez votre mot de passe',\n Send: 'Envoyer',\n 'Send Code': \"M'envoyer un code\",\n 'Sign in': 'Se connecter',\n 'Sign In': 'Se connecter',\n 'Sign in to your account': 'Connexion à votre compte',\n 'Sign In with Amazon': 'Se connecter avec Amazon',\n 'Sign In with AWS': 'Se connecter avec AWS',\n 'Sign In with Facebook': 'Se connecter avec Facebook',\n 'Sign In with Google': 'Se connecter avec Google',\n 'Sign Out': 'Déconnexion',\n 'Sign Up': \"S'inscrire\",\n Skip: 'Passer',\n SMS: 'SMS',\n Submit: 'Soumettre',\n 'User already exists': \"L'utilisateur existe déjà\",\n 'User does not exist': \"L'utilisateur n'existe pas\",\n Username: \"Nom d'utilisateur\",\n 'Username cannot be empty': \"Le nom d'utilisateur doit être renseigné\",\n 'Username/client id combination not found.': \"L'utilisateur n'existe pas\",\n Verify: 'Vérifier',\n 'Verify Contact': 'Vérifier le contact',\n};\n","export const itDict = {\n 'Account recovery requires verified contact information':\n 'Ripristino del conto richiede un account verificati',\n 'An account with the given email already exists.':\n 'Un account con questa email esiste già.',\n 'Back to Sign In': 'Torna alla Accesso',\n 'Change Password': 'Cambia la password',\n Code: 'Codice',\n Confirm: 'Conferma',\n 'Confirm a Code': 'Codice Conferma',\n 'Confirm Password': 'Conferma la password',\n 'Confirm Sign In': 'Conferma di applicazione',\n 'Confirm Sign Up': 'Registrazione Conferma',\n 'Confirmation Code': 'Codice di verifica',\n 'Create a new account': 'Creare un nuovo account',\n 'Create account': 'Registrati',\n 'Create Account': 'Crea account',\n Email: 'E-mail',\n 'Enter your password': 'Inserire la password',\n 'Enter your username': 'Inserisci il tuo nome utente',\n 'Forgot Password': 'Password dimenticata',\n 'Forgot your password?': 'Password dimenticata?',\n 'Have an account? ': 'Già registrato?',\n 'Incorrect username or password': 'Nome utente o password errati',\n 'Invalid password format': 'Formato della password non valido',\n 'Invalid phone number format':\n 'Utilizzo non valido Telefonummern formattare un numero nel formato :. 12.345.678,9 mille',\n 'Lost your code?': 'Perso codice?',\n 'New Password': 'Nuova password',\n or: 'o',\n 'No account? ': 'Nessun account?',\n Password: 'Password',\n 'Password attempts exceeded':\n 'Il numero massimo di tentativi di accesso falliti è stato raggiunto',\n 'Phone Number': 'Numero di telefono',\n 'Resend Code': 'Codice Rispedisci',\n 'Reset password': 'Ripristina password',\n 'Reset your password': 'Resetta password',\n 'Send Code': 'Invia codice',\n 'Sign in': 'Accesso',\n 'Sign In': 'Accesso',\n 'Sign in to your account': 'Accedi con il tuo account a',\n 'Sign Out': 'Esci',\n 'Sign Up': 'Iscriviti',\n Skip: 'Salta',\n Submit: 'Sottoscrivi',\n 'User already exists': 'Questo utente esiste già',\n 'User does not exist': 'Questo utente non esiste',\n Username: 'Nome utente',\n 'Username cannot be empty': 'Nome utente non può essere vuoto',\n Verify: 'Verifica',\n 'Verify Contact': 'Contatto verifica',\n};\n","export const jaDict = {\n 'Account recovery requires verified contact information':\n 'アカウントの復旧には確認済みの連絡先が必要です',\n 'An account with the given email already exists.':\n '入力されたメールアドレスのアカウントが既に存在します',\n 'Back to Sign In': 'サインインに戻る',\n 'Change Password': 'パスワードを変える ',\n Code: 'コード',\n Confirm: '確定',\n 'Confirm a Code': 'コードを確認',\n 'Confirm Password': 'パスワードの確認',\n 'Confirm Sign In': 'サインインする',\n 'Confirm Sign Up': '登録する',\n 'Confirmation Code': '確認コード',\n 'Create a new account': '新しいアカウントを作る',\n 'Create account': 'アカウントを作る ',\n 'Create Account': 'アカウントを作る',\n Email: 'メールアドレス',\n 'Enter your password': 'パスワードを入力 ',\n 'Enter your username': 'ユーザー名を入力 ',\n 'Forgot Password': 'パスワードを忘れた ',\n 'Forgot your password?': 'パスワードを忘れましたか? ',\n 'Have an account? ': 'アカウントを持っていますか?',\n 'Incorrect username or password': 'ユーザー名かパスワードが異なります ',\n 'Invalid password format': 'パスワードの形式が無効です ',\n 'Invalid phone number format':\n '不正な電話番号の形式です。\\n+12345678900 の形式で入力してください',\n 'Lost your code? ': 'コードを失くしましたか?',\n 'New Password': '新しいパスワード',\n 'No account? ': 'アカウントが無いとき ',\n or: '又は',\n Password: 'パスワード ',\n 'Password attempts exceeded': 'サインインの試行回数が上限に達しました',\n 'Phone Number': '電話番号',\n 'Resend Code': 'コードを再送信',\n 'Reset password': 'パスワードをリセット ',\n 'Reset your password': 'パスワードをリセットする',\n 'Send Code': 'コードを送信',\n 'Sign in': 'サインイン',\n 'Sign In': 'サインイン ',\n 'Sign in to your account': 'アカウントにサインイン ',\n 'Sign In with Amazon': 'Amazonでサインイン',\n 'Sign In with Facebook': 'Facebookでサインイン',\n 'Sign In with Google': 'Googleでサインイン',\n 'Sign Out': 'サインアウト ',\n 'Sign Up': '登録 ',\n Skip: 'スキップ',\n Submit: '送信',\n 'User already exists': '既にユーザーが存在しています ',\n 'User does not exist': 'ユーザーが存在しません ',\n Username: 'ユーザー名 ',\n 'Username cannot be empty': 'ユーザー名は入力必須です',\n Verify: '確認',\n 'Verify Contact': '連絡先を確認',\n};\n","export const krDict = {\n 'Back to Sign In': '로그인으로 돌아가기',\n Birthdate: '생년월일',\n 'Change Password': '비밀번호 변경하기',\n Changing: '변경중',\n Code: '코드',\n 'Confirm Password': '비밀번호 재확인',\n 'Reset your Password': '비밀번호 재설정',\n 'Confirm Sign Up': '회원가입 확인',\n 'Confirm SMS Code': '휴대폰 본인 확인',\n 'Confirm TOTP Code': 'TOTP 인증번호 확인',\n Confirm: '확인',\n 'Confirmation Code': '인증번호',\n Confirming: '확인중',\n 'Create Account': '회원가입',\n 'Creating Account': '회원가입중',\n Email: '이메일',\n 'Enter your code': '인증번호를 입력해주세요',\n 'Enter your username': '아이디를 입력해주세요',\n 'Family Name': '성',\n 'Given Name': '이름',\n 'Forgot your password?': '비밀번호를 잊으셨나요?',\n 'Hide password': '비밀번호 숨기기',\n Loading: '로딩중',\n Username: '아이디',\n Name: '성함',\n Nickname: '닉네임',\n 'New password': '새 비밀번호',\n Password: '비밀번호',\n 'Phone Number': '전화번호',\n 'Preferred Username': '닉네임',\n Profile: '프로필',\n 'Resend Code': '인증번호 재전송',\n 'Reset your password': '비밀번호 재설정',\n 'Reset Password': '비밀번호 재설정',\n 'Send code': '인증코드 보내기',\n Sending: '전송중',\n 'Setup TOTP': 'TOTP 설정하기',\n 'Show password': '비밀번호 보이기',\n 'Sign in': '로그인',\n 'Sign In': '로그인',\n 'Sign In with Amazon': 'Amazon 로그인',\n 'Sign In with Apple': 'Apple 로그인',\n 'Sign In with Facebook': 'Facebook 로그인',\n 'Sign In with Google': 'Google 로그인',\n 'Sign in to your account': '로그인',\n 'Create a new account': '회원가입',\n 'Signing in': '로그인중',\n Skip: '다음에 하기',\n Submit: '확인',\n Submitting: '확인중',\n 'Verify Contact': '연락처 확인',\n 'Account recovery requires verified contact information':\n '계정 복구를 위해 연락처 확인이 필요합니다',\n Verify: '인증',\n Website: '웹사이트',\n};\n","export const nlDict = {\n 'Back to Sign In': 'Terug naar inloggen',\n 'Change Password': 'Wachtwoord wijzigen',\n Changing: 'Wordt aangepast',\n Code: 'Code',\n 'Confirm Password': 'Bevestig Wachtwoord',\n 'Reset your Password': 'Wachtwoord resetten',\n 'Confirm Sign Up': 'Bevestig inschrijving',\n 'Confirm SMS Code': 'Bevestig SMS Code',\n 'Confirm TOTP Code': 'Bevestig TOTP Code',\n Confirm: 'Bevestig',\n 'Confirmation Code': 'Bevestigingscode',\n Confirming: 'Bevestigen',\n 'Create Account': 'Account aanmaken',\n 'Creating Account': 'Account wordt aangemaakt',\n Email: 'E-mail',\n 'Enter your code': 'Vul je code in',\n 'Enter your username': 'Vul je gebruikersnaam in',\n 'Enter your phone number': 'Vul je telefoonnummer in',\n 'Enter your email': 'Vul je e-mail in',\n 'Forgot your password?': 'Wachtwoord vergeten? ',\n 'Hide password': 'Verberg wachtwoord',\n Loading: 'Laden',\n Username: 'Gebruikersnaam',\n 'New password': 'Nieuw wachtwoord',\n Password: 'Wachtwoord',\n 'Phone Number': 'Telefoonnummer',\n 'Resend Code': 'Verstuur code nogmaals',\n 'Reset your password': 'Reset je wachtwoord',\n 'Send Code': 'Verstuur Code',\n 'Send code': 'Verstuur code',\n Sending: 'Versturen',\n 'Setup TOTP': 'TOTP Instellingen',\n 'Show password': 'Toon wachtwoord',\n 'Sign in': 'Inloggen',\n 'Sign In': 'Inloggen',\n 'Sign In with Amazon': 'Inloggen met Amazon',\n 'Sign In with Apple': 'Inloggen met Apple',\n 'Sign In with Facebook': 'Inloggen met Facebook',\n 'Sign In with Google': 'Inloggen met Google',\n 'Sign in to your account': 'Inloggen op je account',\n 'Create a new account': 'Nieuw account aanmaken',\n 'Signing in': 'Inloggen',\n Skip: 'Overslaan',\n Submit: 'Versturen',\n Submitting: 'Wordt verstuurd',\n 'Verify Contact': 'Verifieer Contact',\n 'Account recovery requires verified contact information':\n 'Accountherstel vereist geverifieerde contactgegevens',\n Verify: 'Verifieer',\n};\n","export const plDict = {\n 'Back to Sign In': 'Powrót do logowania',\n Birthdate: 'Data urodzenia',\n 'Change Password': 'Zmień hasło',\n Changing: 'Zmienianie',\n Code: 'Kod',\n 'Confirm Password': 'Potwierdź Hasło',\n 'Reset your Password': 'Zresetuj swoje hasło',\n 'Confirm Sign Up': 'Potwierdź rejestrację',\n 'Confirm SMS Code': 'Potwierdź kod SMS',\n 'Confirm TOTP Code': 'Potwierdź hasło jednorazowe',\n Confirm: 'Potwierdź',\n 'Confirmation Code': 'Kod potwierdzenia',\n Confirming: 'Potwierdzanie',\n 'Create Account': 'Utwórz konto',\n 'Creating Account': 'Tworzenie konta',\n Email: 'E-mail',\n 'Enter your code': 'Wprowadź swój kod',\n 'Enter your username': 'Wprowadź swoją nazwę użytkownika',\n 'Family Name': 'Nazwisko',\n 'Given Name': 'Pierwsze imię',\n 'Forgot your password?': 'Zapomniałeś hasła? ',\n 'Hide password': 'Ukryj hasło',\n Loading: 'Ładowanie',\n Username: 'Nazwa użytkownika',\n 'Middle Name': 'Drugie imię',\n Name: 'Imię i nazwisko',\n Nickname: 'Pseudonim',\n 'New password': 'Nowe hasło',\n Password: 'Hasło',\n 'Phone Number': 'Numer telefonu',\n 'Preferred Username': 'Preferowana nazwa użytkownika',\n Profile: 'Profil',\n 'Resend Code': 'Wyślij kod ponownie',\n 'Reset your password': 'Zresetuj swoje hasło',\n 'Send Code': 'Zresetuj hasło',\n 'Send code': 'Wyślij kod',\n Sending: 'Wysyłanie',\n 'Setup TOTP': 'Konfiguruj TOTP',\n 'Show password': 'Pokaż hasło',\n 'Sign in': 'Zaloguj',\n 'Sign In': 'Logowanie',\n 'Sign In with Amazon': 'Zaloguj z Amazon',\n 'Sign In with Apple': 'Zaloguj z Apple',\n 'Sign In with Facebook': 'Zaloguj z Facebook',\n 'Sign In with Google': 'Zaloguj z Google',\n 'Sign in to your account': 'Zaloguj się na swoje konto',\n 'Create a new account': 'Utwórz nowe konto',\n 'Signing in': 'Logowanie',\n Skip: 'Pomiń',\n Submit: 'Wyślij',\n Submitting: 'Wysyłanie',\n 'Verify Contact': 'Weryfikacja danych kontaktowych',\n 'Account recovery requires verified contact information':\n 'Odzyskanie konta wymaga zweryfikowanych danych kontaktowych',\n Verify: 'Zweryfikuj',\n Website: 'Strona internetowa',\n};\n","export const ptDict = {\n 'Back to Sign In': 'Voltar para Entrar',\n 'Change Password': 'Mudar senha',\n Changing: 'Mudando',\n Code: 'Código',\n 'Confirm Password': 'Confirme a Senha',\n 'Reset your Password': 'Redefina sua senha',\n 'Confirm Sign Up': 'Confirmar inscrição',\n 'Confirm SMS Code': 'Confirme o código SMS',\n 'Confirm TOTP Code': 'Confirme o código TOTP',\n Confirm: 'confirme',\n 'Confirmation Code': 'Código de confirmação',\n Confirming: 'Confirmando',\n 'Create Account': 'Criar Conta',\n 'Creating Account': 'Criando conta',\n Email: 'O email',\n 'Enter your code': 'Insira seu código',\n 'Enter your username': 'entre com seu nome de usuário',\n 'Enter your phone number': 'Digite seu número de telefone',\n 'Enter your email': 'Digite seu e-mail',\n 'Forgot your password?': 'Esqueceu sua senha? ',\n 'Hide password': 'Esconder a senha',\n Loading: 'Carregando',\n Username: 'Nome do usuário',\n 'New password': 'Nova Senha',\n Password: 'Senha',\n 'Phone Number': 'Número de telefone',\n 'Resend Code': 'Reenviar código',\n 'Reset your password': 'Redefina sua senha',\n 'Send Code': 'Enviar código',\n 'Send code': 'Enviar código',\n Sending: 'Enviando',\n 'Setup TOTP': 'Configurar TOTP',\n 'Show password': 'Mostrar senha',\n 'Sign In': 'Entrar',\n 'Sign in': 'Entrar',\n 'Sign In with Amazon': 'Entrar com a Amazon',\n 'Sign In with Apple': 'Entrar com a Apple',\n 'Sign In with Facebook': 'Entrar com o Facebook',\n 'Sign In with Google': 'Faça login no Google',\n 'Sign in to your account': 'Faça login em sua conta',\n 'Create a new account': 'Criar uma nova conta',\n 'Signing in': 'Entrando',\n Skip: 'Pular',\n Submit: 'Enviar',\n Submitting: 'Enviando',\n 'Verify Contact': 'Verificar contato',\n 'Account recovery requires verified contact information':\n 'A recuperação da conta requer informações de contato verificadas',\n Verify: 'Verificar',\n};\n","export const zhDict = {\n 'Account recovery requires verified contact information':\n '账户恢复需要验证过的联系方式',\n 'Back to Sign In': '回到登录',\n 'Change Password': '改变密码',\n Code: '确认码',\n Confirm: '确认',\n 'Confirm a Code': '确认码',\n 'Confirm Password': '确认密码',\n 'Confirm Sign In': '确认登录',\n 'Confirm Sign Up': '确认注册',\n Email: '邮箱',\n 'Forgot Password': '忘记密码',\n 'Incorrect username or password': '用户名或密码错误',\n 'Invalid password format': '密码格式错误',\n 'Invalid phone number format': '电话格式错误,请使用格式 +12345678900',\n 'New Password': '新密码',\n or: '或者',\n Password: '密码',\n 'Phone Number': '电话',\n 'Resend a Code': '重发确认码',\n 'Send Code': '发送确认码',\n 'Sign In': '登录',\n 'Sign Out': '退出',\n 'Sign Up': '注册',\n Skip: '跳过',\n Submit: '提交',\n 'User already exists': '用户已经存在',\n 'User does not exist': '用户不存在',\n Username: '用户名',\n Verify: '验证',\n 'Verify Contact': '验证联系方式',\n};\n","export const svDict = {\n 'Account recovery requires verified contact information':\n 'För att återställa kontot behöver du ett verifierat konto',\n 'An account with the given email already exists.':\n 'Det finns redan ett konto med denna e-postadress',\n 'Back to Sign In': 'Tillbaka till inloggningen',\n 'Change Password': 'Byt lösenord',\n 'Confirm Password': 'Bekräfta lösenord',\n Code: 'Kod',\n Confirm: 'Bekräfta',\n 'Confirm a Code': 'Bekräfta koden',\n 'Confirm Sign In': 'Bekräfta inloggning',\n 'Confirm Sign Up': 'Bekräfta registrering',\n 'Confirmation Code': 'Verifikationskod',\n 'Create a new account': 'Skapa ett nytt konto',\n 'Create account': 'Skapa konto',\n 'Create Account': 'Skapa konto',\n Email: 'E-post',\n 'Enter your password': 'Ange ditt lösenord',\n 'Enter your username': 'Ange ditt användarnamn',\n 'Forgot Password': 'Glömt lösenordet',\n 'Forgot your password?': 'Glömt ditt lösenord? ',\n 'Have an account? ': 'Redan registrerad? ',\n 'Incorrect username or password': 'Felaktigt användarnamn eller lösenord',\n 'Invalid password format': 'Ogiltigt lösenordsformat',\n 'Invalid phone number format': `Ogiltigt format för telefonnummer`,\n 'Lost your code? ': 'Förlorat koden? ',\n 'New Password': 'Nytt lösenord',\n 'No account? ': 'Inget konto? ',\n or: 'eller',\n Password: 'Lösenord',\n 'Password attempts exceeded':\n 'Maximalt antal felaktiga inloggningsförsök har uppnåtts',\n 'Phone Number': 'Telefonnummer',\n 'Resend Code': 'Skicka koden igen',\n 'Reset password': 'Återställ lösenord',\n 'Reset your password': 'Återställ ditt lösenord',\n 'Send code': 'Skicka kod',\n 'Sign in': 'Logga in',\n 'Sign In': 'Logga in',\n 'Sign in to your account': 'Logga in till ditt konto',\n 'Sign Out': 'Logga ut',\n 'Sign Up': 'Registrering',\n 'We Emailed You': 'Vi har skickat e-post till dig',\n 'Enter your code': 'Skriv din kod',\n Skip: 'Hoppa över',\n Submit: 'Skicka',\n 'User already exists': 'Användaren finns redan',\n 'User does not exist': 'Användaren finns inte',\n Username: 'Användarnamn',\n 'Username cannot be empty': 'Användarnamnet kan inte vara tomt',\n Verify: 'Verifiera',\n 'Verify Contact': 'Verifiera kontakt',\n};\n","export const defaultTexts = {\n BACK_SIGN_IN: 'Back to Sign In',\n BIRTHDATE: 'Birthdate',\n CHANGE_PASSWORD: 'Change Password',\n CHANGING_PASSWORD: 'Changing',\n CODE: 'Code',\n CONFIRM_PASSWORD: 'Confirm Password',\n CONFIRM_RESET_PASSWORD_HEADING: 'Reset your Password',\n CONFIRM_SIGNUP_HEADING: 'Confirm Sign Up',\n CONFIRM_SMS: 'Confirm SMS Code',\n CONFIRM_TOTP: 'Confirm TOTP Code',\n CONFIRM: 'Confirm',\n CONFIRMATION_CODE: 'Confirmation Code',\n CONFIRMING: 'Confirming',\n CREATE_ACCOUNT: 'Create Account',\n CREATING_ACCOUNT: 'Creating Account',\n EMAIL_ADDRESS: 'Email',\n ENTER_CODE: 'Enter your code',\n ENTER_USERNAME: 'Enter your username',\n FAMILY_NAME: 'Family Name',\n GIVEN_NAME: 'Given Name',\n FORGOT_YOUR_PASSWORD: 'Forgot your password?',\n FORGOT_YOUR_PASSWORD_LEGACY: 'Forgot your password? ',\n HIDE_PASSWORD: 'Hide password',\n LOADING: 'Loading',\n LOGIN_NAME: 'Username',\n MIDDLE_NAME: 'Middle Name',\n NAME: 'Name',\n NICKNAME: 'Nickname',\n NEW_PASSWORD: 'New password',\n PASSWORD: 'Password',\n PHONE_NUMBER: 'Phone Number',\n PREFERRED_USERNAME: 'Preferred Username',\n PROFILE: 'Profile',\n RESEND_CODE: 'Resend Code',\n RESET_PASSWORD_HEADING: 'Reset your password',\n RESET_PASSWORD: 'Reset Password',\n SEND_CODE: 'Send code',\n SENDING: 'Sending',\n SETUP_TOTP: 'Setup TOTP',\n SHOW_PASSWORD: 'Show password',\n SIGN_IN_BUTTON: 'Sign in',\n SIGN_IN_TAB: 'Sign In',\n SIGN_IN_WITH_AMAZON: 'Sign In with Amazon',\n SIGN_IN_WITH_APPLE: 'Sign In with Apple',\n SIGN_IN_WITH_FACEBOOK: 'Sign In with Facebook',\n SIGN_IN_WITH_GOOGLE: 'Sign In with Google',\n SIGN_IN: 'Sign in to your account',\n SIGN_UP_BUTTON: 'Create a new account',\n SIGNING_IN_BUTTON: 'Signing in',\n SKIP: 'Skip',\n SUBMIT: 'Submit',\n SUBMITTING: 'Submitting',\n VERIFY_CONTACT: 'Verify Contact',\n VERIFY_HEADING: 'Account recovery requires verified contact information',\n VERIFY: 'Verify',\n WEBSITE: 'Website',\n};\n","export * from './authenticator';\n","import { assign, createMachine, forwardTo, spawn } from 'xstate';\n\nimport { AuthContext, AuthEvent, ServicesContext } from '../../types';\nimport { stopActor } from './actions';\nimport { resetPasswordActor, signInActor, signOutActor } from './actors';\nimport { defaultServices } from './defaultServices';\nimport { createSignUpMachine } from './signUp';\n\nconst DEFAULT_COUNTRY_CODE = '+1';\n\nexport type AuthenticatorMachineOptions = AuthContext['config'] & {\n services?: AuthContext['services'];\n};\n\nexport function createAuthenticatorMachine() {\n return createMachine<AuthContext, AuthEvent>(\n {\n id: 'authenticator',\n initial: 'idle',\n context: {\n user: undefined,\n config: {},\n services: {},\n actorRef: undefined,\n },\n states: {\n // See: https://xstate.js.org/docs/guides/communication.html#invoking-promises\n idle: {\n on: {\n INIT: {\n target: 'setup',\n actions: 'configure',\n },\n },\n },\n setup: {\n invoke: [\n {\n // TODO Wait for Auth to be configured\n src: (context, _) => context.services.getCurrentUser(),\n onDone: {\n actions: 'setUser',\n target: 'authenticated',\n },\n onError: [\n {\n target: 'signUp',\n cond: (context) => context.config.initialState === 'signUp',\n },\n {\n target: 'resetPassword',\n cond: (context) =>\n context.config.initialState === 'resetPassword',\n },\n { target: 'signIn' },\n ],\n },\n {\n src: (context, _) => context.services.getAmplifyConfig(),\n onDone: {\n actions: 'applyAmplifyConfig',\n },\n },\n ],\n },\n signIn: {\n entry: 'spawnSignInActor',\n exit: stopActor('signInActor'),\n on: {\n SIGN_UP: 'signUp',\n RESET_PASSWORD: 'resetPassword',\n 'done.invoke.signInActor': [\n {\n target: 'signUp',\n cond: 'shouldRedirectToSignUp',\n },\n {\n target: 'resetPassword',\n cond: 'shouldRedirectToResetPassword',\n },\n {\n target: 'authenticated',\n actions: 'setUser',\n },\n ],\n },\n },\n signUp: {\n entry: 'spawnSignUpActor',\n exit: stopActor('signUpActor'),\n on: {\n SIGN_IN: 'signIn',\n 'done.invoke.signUpActor': {\n target: 'setup',\n actions: 'setUser',\n },\n },\n },\n resetPassword: {\n entry: 'spawnResetPasswordActor',\n exit: stopActor('resetPasswordActor'),\n on: {\n SIGN_IN: 'signIn',\n 'done.invoke.resetPasswordActor': 'signIn',\n },\n },\n signOut: {\n entry: 'spawnSignOutActor',\n exit: [stopActor('signOutActor'), 'clearUser'],\n on: { 'done.invoke.signOutActor': 'signIn' },\n },\n authenticated: {\n on: { SIGN_OUT: 'signOut' },\n },\n },\n on: {\n CHANGE: { actions: 'forwardToActor' },\n BLUR: { actions: 'forwardToActor' },\n SUBMIT: { actions: 'forwardToActor' },\n FEDERATED_SIGN_IN: { actions: 'forwardToActor' },\n RESEND: { actions: 'forwardToActor' },\n SIGN_OUT: { actions: 'forwardToActor' },\n SIGN_IN: { actions: 'forwardToActor' },\n SKIP: { actions: 'forwardToActor' },\n },\n },\n {\n actions: {\n forwardToActor: forwardTo((context) => context.actorRef),\n setUser: assign({\n user: (_, event) => event.data.user || event.data,\n }),\n clearUser: assign({\n user: undefined,\n }),\n applyAmplifyConfig: assign({\n config(context, event) {\n // The CLI uses uppercased constants in `aws-exports.js`, while `parameters.json` are lowercase.\n // We use lowercase to be consistent with previous versions' values.\n const cliLoginMechanisms =\n event.data.aws_cognito_username_attributes?.map((s) =>\n s.toLowerCase()\n ) ?? [];\n\n const cliVerificationMechanisms =\n event.data.aws_cognito_verification_mechanisms?.map((s) =>\n s.toLowerCase()\n ) ?? [];\n\n const cliSignUpAttributes =\n event.data.aws_cognito_signup_attributes?.map((s) =>\n s.toLowerCase()\n ) ?? [];\n\n const cliSocialProviders =\n event.data.aws_cognito_social_providers?.map((s) =>\n s.toLowerCase()\n ) ?? [];\n\n // By default, Cognito assumes `username`, so there isn't a different username attribute like `email`.\n // We explicitly add it as a login mechanism to be consistent with Admin UI's language.\n if (cliLoginMechanisms.length === 0) {\n cliLoginMechanisms.push('username');\n }\n\n // Prefer explicitly configured settings over default CLI values\\\n\n const {\n loginMechanisms,\n signUpAttributes,\n socialProviders,\n initialState,\n } = context.config;\n return {\n loginMechanisms: loginMechanisms ?? cliLoginMechanisms,\n signUpAttributes:\n signUpAttributes ??\n Array.from(\n new Set([\n ...cliVerificationMechanisms,\n ...cliSignUpAttributes,\n ])\n ),\n socialProviders: socialProviders ?? cliSocialProviders.sort(),\n initialState,\n };\n },\n }),\n spawnSignInActor: assign({\n actorRef: (context, event) => {\n const { services } = context;\n const actor = signInActor({ services }).withContext({\n authAttributes: event.data?.authAttributes,\n user: event.data?.user,\n intent: event.data?.intent,\n country_code: DEFAULT_COUNTRY_CODE,\n formValues: {},\n touched: {},\n validationError: {},\n loginMechanisms: context.config?.loginMechanisms,\n socialProviders: context.config?.socialProviders,\n });\n return spawn(actor, { name: 'signInActor' });\n },\n }),\n spawnSignUpActor: assign({\n actorRef: (context, event) => {\n const { services } = context;\n const actor = createSignUpMachine({ services }).withContext({\n authAttributes: event.data?.authAttributes ?? {},\n country_code: DEFAULT_COUNTRY_CODE,\n intent: event.data?.intent,\n formValues: {},\n touched: {},\n validationError: {},\n loginMechanisms: context.config?.loginMechanisms,\n socialProviders: context.config?.socialProviders,\n });\n return spawn(actor, { name: 'signUpActor' });\n },\n }),\n spawnResetPasswordActor: assign({\n actorRef: (context, event) => {\n const { services } = context;\n const actor = resetPasswordActor({ services }).withContext({\n formValues: {},\n touched: {},\n intent: event.data?.intent,\n username: event.data?.authAttributes?.username,\n validationError: {},\n });\n return spawn(actor, { name: 'resetPasswordActor' });\n },\n }),\n spawnSignOutActor: assign({\n actorRef: (context) => {\n const actor = signOutActor.withContext({\n user: context.user,\n });\n return spawn(actor, { name: 'signOutActor' });\n },\n }),\n configure: assign((_, event) => {\n const { services: customServices, ...config } = event.data;\n return {\n services: { ...defaultServices, ...customServices },\n config,\n };\n }),\n },\n guards: {\n shouldRedirectToSignUp: (_, event): boolean => {\n if (!event.data?.intent) return false;\n return event.data.intent === 'confirmSignUp';\n },\n shouldRedirectToResetPassword: (_, event): boolean => {\n if (!event.data?.intent) return false;\n return event.data.intent === 'confirmPasswordReset';\n },\n },\n }\n );\n}\n","import { assign, stop } from 'xstate/lib/actions';\n\nimport {\n ActorContextWithForms,\n AuthEvent,\n SignInContext,\n SignUpContext,\n} from '../../types';\n\nexport const stopActor = (machineId: string) => {\n return stop(machineId);\n};\n\n/**\n * https://github.com/statelyai/xstate/issues/866\n *\n * Actions in Xstate take in two arguments - a `context` and\n * an `event`.\n *\n * When writing reusable actions in a separate file for Xstate,\n * you cannot specify the type for both the `context` and the `event`.\n * The bug has been around for 2 years with seemingly no resolution\n * in sight.\n *\n * TypeScript apparently has trouble inferring Xstate properly.\n * So, when writing actions, only specify the type for either `context`\n * or `event` - but not both.\n *\n * https://xstate.js.org/docs/guides/typescript.html#assign-action-behaving-strangely\n *\n * Each of the actions NEEDS at least the `context` argument in the\n * `assign` body - even if it is unused. This is another known bug in\n * how TypeScript integrate with Xstate.\n */\n\n/**\n * \"clear\" actions\n */\nexport const clearAttributeToVerify = assign({\n attributeToVerify: (_) => undefined,\n});\nexport const clearChallengeName = assign({ challengeName: (_) => undefined });\nexport const clearRequiredAttributes = assign({\n requiredAttributes: (_) => undefined,\n});\nexport const clearError = assign({ remoteError: (_) => '' });\nexport const clearFormValues = assign({ formValues: (_) => ({}) });\nexport const clearTouched = assign({ touched: (_) => ({}) });\nexport const clearUnverifiedAttributes = assign({\n unverifiedAttributes: (_) => undefined,\n});\nexport const clearUsername = assign({ username: (_) => undefined });\nexport const clearValidationError = assign({ validationError: (_) => ({}) });\n\n/**\n * \"set\" actions\n */\nexport const setChallengeName = assign({\n challengeName: (_, event: AuthEvent) => event.data?.challengeName,\n});\n\nexport const setRequiredAttributes = assign({\n requiredAttributes: (_, event: AuthEvent) =>\n event.data?.challengeParam?.requiredAttributes,\n});\n\nexport const setConfirmResetPasswordIntent = assign({\n redirectIntent: (_) => 'confirmPasswordReset',\n});\n\nexport const setConfirmSignUpIntent = assign({\n redirectIntent: (_) => 'confirmSignUp',\n});\n\nexport const setCredentials = assign({\n authAttributes: (context: SignInContext | SignUpContext, _) => {\n const [primaryAlias] = context.loginMechanisms;\n const username =\n context.formValues[primaryAlias] ?? context.formValues['username'];\n const password = context.formValues?.password;\n\n return { username, password };\n },\n});\n\nexport const setFieldErrors = assign({\n validationError: (_, event: AuthEvent) => event.data,\n});\n\nexport const setRemoteError = assign({\n remoteError: (_, event: AuthEvent) => {\n if (event.data.name === 'NoUserPoolError') {\n return `Configuration error (see console) – please contact the administrator`;\n }\n return event.data?.message || event.data;\n },\n});\n\nexport const setUnverifiedAttributes = assign({\n unverifiedAttributes: (_, event: AuthEvent) => event.data.unverified,\n});\n\nexport const setUser = assign({\n user: (_, event: AuthEvent) => event.data.user || event.data,\n});\n\nexport const setUsername = assign({\n username: (context: ActorContextWithForms, _) => context.formValues.username,\n});\n\nexport const setCodeDeliveryDetails = assign({\n codeDeliveryDetails: (_, event: AuthEvent) => event.data.codeDeliveryDetails,\n});\n\nexport const setUsernameAuthAttributes = assign({\n authAttributes: (context: ActorContextWithForms, _) => ({\n username: context.formValues.username,\n }),\n});\n\nexport const handleInput = assign({\n formValues: (context, event: AuthEvent) => {\n const { name, value } = event.data;\n\n return {\n ...context['formValues'],\n [name]: value,\n };\n },\n});\n\nexport const handleBlur = assign({\n touched: (context, event: AuthEvent) => {\n const { name } = event.data;\n return {\n ...context['touched'],\n [`${name}`]: true,\n };\n },\n});\n\n/**\n * This action occurs on the entry to a state where a form submit action\n * occurs. It combines the phone_number and country_code form values, parses\n * the result, and updates the form values with the full phone number which is\n * the required format by Cognito for form submission.\n */\nexport const parsePhoneNumber = assign({\n formValues: (context: SignInContext | SignUpContext, _) => {\n const [primaryAlias = 'username'] = context.loginMechanisms;\n\n if (!context.formValues.phone_number && primaryAlias !== 'phone_number')\n return context.formValues;\n\n const { formValues, country_code: defaultCountryCode } = context;\n const phoneAlias = formValues.phone_number ? 'phone_number' : 'username';\n\n const parsedPhoneNumber = `${\n formValues.country_code ?? defaultCountryCode\n }${formValues[phoneAlias]}`.replace(/[^A-Z0-9+]/gi, '');\n\n const updatedFormValues = {\n ...formValues,\n [phoneAlias]: parsedPhoneNumber,\n };\n delete updatedFormValues.country_code;\n\n return updatedFormValues;\n },\n});\n","export * from './signIn';\nexport * from './signOut';\nexport * from './resetPassword';\n","import { Auth } from 'aws-amplify';\nimport get from 'lodash/get';\nimport isEmpty from 'lodash/isEmpty';\nimport { createMachine, sendUpdate } from 'xstate';\nimport { AuthChallengeNames, AuthEvent, SignInContext } from '../../../types';\nimport { runValidators } from '../../../validators';\nimport {\n clearAttributeToVerify,\n clearChallengeName,\n clearRequiredAttributes,\n clearError,\n clearFormValues,\n clearTouched,\n clearUnverifiedAttributes,\n clearValidationError,\n handleInput,\n handleBlur,\n parsePhoneNumber,\n setChallengeName,\n setConfirmResetPasswordIntent,\n setConfirmSignUpIntent,\n setCredentials,\n setFieldErrors,\n setRemoteError,\n setRequiredAttributes,\n setUnverifiedAttributes,\n setUser,\n setUsernameAuthAttributes,\n} from '../actions';\nimport { defaultServices } from '../defaultServices';\n\nexport type SignInMachineOptions = {\n services?: Partial<typeof defaultServices>;\n};\n\nexport function signInActor({ services }: SignInMachineOptions) {\n return createMachine<SignInContext, AuthEvent>(\n {\n initial: 'init',\n id: 'signInActor',\n states: {\n init: {\n always: [{ target: 'signIn' }],\n },\n signIn: {\n initial: 'edit',\n exit: ['clearFormValues', 'clearTouched'],\n states: {\n edit: {\n entry: sendUpdate(),\n on: {\n SUBMIT: 'submit',\n CHANGE: { actions: 'handleInput' },\n FEDERATED_SIGN_IN: 'federatedSignIn',\n },\n },\n federatedSignIn: {\n tags: ['pending'],\n entry: [sendUpdate(), 'clearError'],\n invoke: {\n src: 'federatedSignIn',\n // getting navigated out anyway, only track errors.\n // onDone: '#signInActor.resolved',\n onError: { actions: 'setRemoteError' },\n },\n },\n submit: {\n tags: ['pending'],\n entry: ['parsePhoneNumber', 'clearError', sendUpdate()],\n invoke: {\n src: 'signIn',\n onDone: [\n {\n cond: 'shouldSetupTOTP',\n actions: ['setUser', 'setChallengeName'],\n target: '#signInActor.setupTOTP',\n },\n {\n cond: 'shouldConfirmSignIn',\n actions: ['setUser', 'setChallengeName'],\n target: '#signInActor.confirmSignIn',\n },\n {\n cond: 'shouldForceChangePassword',\n actions: [\n 'setUser',\n 'setChallengeName',\n 'setRequiredAttributes',\n ],\n target: '#signInActor.forceNewPassword',\n },\n {\n actions: 'setUser',\n target: 'verifying',\n },\n ],\n onError: [\n {\n cond: 'shouldRedirectToConfirmSignUp',\n actions: ['setCredentials', 'setConfirmSignUpIntent'],\n target: 'rejected',\n },\n {\n cond: 'shouldRedirectToConfirmResetPassword',\n actions: [\n 'setUsernameAuthAttributes',\n 'setConfirmResetPasswordIntent',\n ],\n target: 'rejected',\n },\n {\n actions: 'setRemoteError',\n target: 'edit',\n },\n ],\n },\n },\n verifying: {\n tags: ['pending'],\n entry: ['clearError', sendUpdate()],\n invoke: {\n src: 'checkVerifiedContact',\n onDone: [\n {\n cond: 'shouldRequestVerification',\n target: '#signInActor.verifyUser',\n actions: 'setUnverifiedAttributes',\n },\n {\n target: 'resolved',\n },\n ],\n onError: {\n actions: 'setRemoteError',\n target: 'edit',\n },\n },\n },\n resolved: { always: '#signInActor.resolved' },\n rejected: { always: '#signInActor.rejected' },\n },\n },\n confirmSignIn: {\n initial: 'edit',\n exit: ['clearFormValues', 'clearError', 'clearTouched'],\n states: {\n edit: {\n entry: sendUpdate(),\n on: {\n SUBMIT: 'submit',\n SIGN_IN: '#signInActor.signIn',\n CHANGE: { actions: 'handleInput' },\n },\n },\n submit: {\n tags: ['pending'],\n entry: ['clearError', sendUpdate()],\n invoke: {\n src: 'confirmSignIn',\n onDone: {\n target: '#signInActor.resolved',\n actions: [\n 'setUser',\n 'clearChallengeName',\n 'clearRequiredAttributes',\n ],\n },\n onError: {\n target: 'edit',\n actions: 'setRemoteError',\n },\n },\n },\n },\n },\n forceNewPassword: {\n type: 'parallel',\n exit: ['clearFormValues', 'clearError', 'clearTouched'],\n states: {\n validation: {\n initial: 'pending',\n states: {\n pending: {\n invoke: {\n src: 'validateFields',\n onDone: {\n target: 'valid',\n actions: 'clearValidationError',\n },\n onError: {\n target: 'invalid',\n actions: 'setFieldErrors',\n },\n },\n },\n valid: { entry: sendUpdate() },\n invalid: { entry: sendUpdate() },\n },\n on: {\n CHANGE: {\n actions: 'handleInput',\n target: '.pending',\n },\n BLUR: {\n actions: 'handleBlur',\n target: '.pending',\n },\n },\n },\n submit: {\n initial: 'idle',\n entry: 'clearError',\n states: {\n idle: {\n entry: sendUpdate(),\n on: {\n SUBMIT: 'validate',\n },\n },\n validate: {\n entry: sendUpdate(),\n invoke: {\n src: 'validateFields',\n onDone: {\n target: 'pending',\n actions: 'clearValidationError',\n },\n onError: {\n target: 'idle',\n actions: 'setFieldErrors',\n },\n },\n },\n pending: {\n tags: ['pending'],\n entry: [sendUpdate(), 'clearError'],\n invoke: {\n src: 'forceNewPassword',\n onDone: [\n {\n cond: 'shouldConfirmSignIn',\n actions: ['setUser', 'setChallengeName'],\n target: '#signInActor.confirmSignIn',\n },\n {\n cond: 'shouldSetupTOTP',\n actions: ['setUser', 'setChallengeName'],\n\n target: '#signInActor.setupTOTP',\n },\n {\n target: 'resolved',\n actions: ['setUser', 'setCredentials'],\n },\n ],\n onError: {\n target: 'idle',\n actions: 'setRemoteError',\n },\n },\n },\n resolved: { type: 'final', always: '#signInActor.resolved' },\n },\n },\n },\n },\n setupTOTP: {\n initial: 'edit',\n exit: ['clearFormValues', 'clearError', 'clearTouched'],\n states: {\n edit: {\n entry: sendUpdate(),\n on: {\n SUBMIT: 'submit',\n SIGN_IN: '#signInActor.signIn',\n CHANGE: { actions: 'handleInput' },\n },\n },\n submit: {\n tags: ['pending'],\n entry: [sendUpdate(), 'clearError'],\n invoke: {\n src: 'verifyTotpToken',\n onDone: {\n actions: [\n 'setUser',\n 'clearChallengeName',\n 'clearRequiredAttributes',\n ],\n target: '#signInActor.resolved',\n },\n onError: {\n actions: 'setRemoteError',\n target: 'edit',\n },\n },\n },\n },\n },\n verifyUser: {\n initial: 'edit',\n exit: ['clearFormValues', 'clearError', 'clearTouched'],\n states: {\n edit: {\n entry: sendUpdate(),\n on: {\n SUBMIT: 'submit',\n SKIP: '#signInActor.resolved',\n CHANGE: { actions: 'handleInput' },\n },\n },\n submit: {\n tags: ['pending'],\n entry: 'clearError',\n invoke: {\n src: 'verifyUser',\n onDone: {\n target: '#signInActor.confirmVerifyUser',\n },\n onError: {\n actions: 'setRemoteError',\n target: 'edit',\n },\n },\n },\n },\n },\n confirmVerifyUser: {\n initial: 'edit',\n exit: [\n 'clearFormValues',\n 'clearError',\n 'clearUnverifiedAttributes',\n 'clearAttributeToVerify',\n 'clearTouched',\n ],\n states: {\n edit: {\n entry: sendUpdate(),\n on: {\n SUBMIT: 'submit',\n SKIP: '#signInActor.resolved',\n CHANGE: { actions: 'handleInput' },\n },\n },\n submit: {\n tags: ['pending'],\n entry: 'clearError',\n invoke: {\n src: 'confirmVerifyUser',\n onDone: {\n target: '#signInActor.resolved',\n },\n onError: {\n actions: 'setRemoteError',\n target: 'edit',\n },\n },\n },\n },\n },\n resolved: {\n type: 'final',\n data: (context) => ({\n user: context.user,\n }),\n },\n rejected: {\n type: 'final',\n data: (context, event) => {\n return {\n intent: context.redirectIntent,\n authAttributes: context.authAttributes,\n };\n },\n },\n },\n },\n {\n actions: {\n clearAttributeToVerify,\n clearChallengeName,\n clearRequiredAttributes,\n clearError,\n clearFormValues,\n clearTouched,\n clearUnverifiedAttributes,\n clearValidationError,\n handleInput,\n handleBlur,\n parsePhoneNumber,\n setChallengeName,\n setConfirmResetPasswordIntent,\n setConfirmSignUpIntent,\n setRequiredAttributes,\n setCredentials,\n setFieldErrors,\n setRemoteError,\n setUnverifiedAttributes,\n setUser,\n setUsernameAuthAttributes,\n },\n guards: {\n shouldConfirmSignIn: (_, event): boolean => {\n const challengeName = get(event, 'data.challengeName');\n const validChallengeNames = [\n AuthChallengeNames.SMS_MFA,\n AuthChallengeNames.SOFTWARE_TOKEN_MFA,\n ];\n\n return validChallengeNames.includes(challengeName);\n },\n shouldRedirectToConfirmSignUp: (_, event): boolean => {\n return event.data.code === 'UserNotConfirmedException';\n },\n shouldRedirectToConfirmResetPassword: (_, event): boolean => {\n return event.data.code === 'PasswordResetRequiredException';\n },\n shouldSetupTOTP: (_, event): boolean => {\n const challengeName = get(event, 'data.challengeName');\n\n return challengeName === AuthChallengeNames.MFA_SETUP;\n },\n shouldForceChangePassword: (_, event): boolean => {\n const challengeName = get(event, 'data.challengeName');\n\n return challengeName === AuthChallengeNames.NEW_PASSWORD_REQUIRED;\n },\n shouldRequestVerification: (_, event): boolean => {\n const { unverified, verified } = event.data;\n\n return isEmpty(verified) && !isEmpty(unverified);\n },\n },\n services: {\n async signIn(context) {\n const { username, password } = context.formValues;\n\n return await services.handleSignIn({\n username,\n password,\n });\n },\n async confirmSignIn(context, event) {\n const { challengeName, user } = context;\n const { confirmation_code: code } = context.formValues;\n\n let mfaType;\n if (\n challengeName === AuthChallengeNames.SMS_MFA ||\n challengeName === AuthChallengeNames.SOFTWARE_TOKEN_MFA\n ) {\n mfaType = challengeName;\n }\n\n return await services.handleConfirmSignIn({ user, code, mfaType });\n },\n async forceNewPassword(context, event) {\n const { user, formValues } = context;\n let {\n password,\n confirm_password,\n phone_number,\n country_code,\n ...rest\n } = formValues;\n\n let phoneNumberWithCountryCode;\n if (phone_number) {\n phoneNumberWithCountryCode =\n `${country_code}${phone_number}`.replace(/[^A-Z0-9+]/gi, '');\n rest = { ...rest, phone_number: phoneNumberWithCountryCode };\n }\n\n return Auth.completeNewPassword(user, password, rest);\n },\n async verifyTotpToken(context, event) {\n const { user } = context;\n const { confirmation_code } = context.formValues;\n\n return Auth.verifyTotpToken(user, confirmation_code);\n },\n async federatedSignIn(_, event) {\n const { provider } = event.data;\n\n return await Auth.federatedSignIn({ provider });\n },\n async checkVerifiedContact(context, event) {\n const { user } = context;\n const result = await Auth.verifiedContact(user);\n\n return result;\n },\n async verifyUser(context, event) {\n const { unverifiedAttr } = context.formValues;\n const result = await Auth.verifyCurrentUserAttribute(unverifiedAttr);\n\n context.attributeToVerify = unverifiedAttr;\n\n return result;\n },\n async confirmVerifyUser(context, event) {\n const { attributeToVerify } = context;\n const { confirmation_code } = context.formValues;\n\n return await Auth.verifyCurrentUserAttributeSubmit(\n attributeToVerify,\n confirmation_code\n );\n },\n async validateFields(context, event) {\n return runValidators(context.formValues, context.touched, [\n defaultServices.validateConfirmPassword,\n ]);\n },\n },\n }\n );\n}\n","import { AuthFormData, Validator } from '../types';\nimport isEmpty from 'lodash/isEmpty';\nimport merge from 'lodash/merge';\n\n// Runs all validators given. Resolves if there are no error. Rejects otherwise.\nexport const runValidators = async (\n formData: AuthFormData,\n touchData: AuthFormData,\n validators: Validator[]\n) => {\n const errors = await Promise.all(\n validators.map((validator) => validator(formData, touchData))\n );\n const mergedError = merge({}, ...errors);\n\n if (isEmpty(mergedError)) {\n // no errors were found\n return Promise.resolve();\n } else {\n return Promise.reject(mergedError);\n }\n};\n","import { Amplify, Auth } from 'aws-amplify';\n\nimport { AuthChallengeNames, SignInResult, ValidatorResult } from '../../types';\n\nexport const defaultServices = {\n async getAmplifyConfig() {\n return Amplify.configure();\n },\n\n async getCurrentUser() {\n return Auth.currentAuthenticatedUser();\n },\n\n async handleSignUp(formData): Promise<any> {\n return Auth.signUp(formData);\n },\n async handleSignIn({\n username,\n password,\n }: {\n username: string;\n password: string;\n }): Promise<any> {\n return Auth.signIn(username, password);\n },\n async handleConfirmSignIn({\n user,\n code,\n mfaType,\n }: {\n user: any;\n code: string;\n mfaType: AuthChallengeNames.SMS_MFA | AuthChallengeNames.SOFTWARE_TOKEN_MFA;\n }): Promise<any> {\n return Auth.confirmSignIn(user, code, mfaType);\n },\n async handleConfirmSignUp({\n username,\n code,\n }: {\n username: string;\n code: string;\n }): Promise<any> {\n return await Auth.confirmSignUp(username, code);\n },\n async handleForgotPasswordSubmit({\n username,\n code,\n password,\n }: {\n username: string;\n code: string;\n password: string;\n }): Promise<SignInResult> {\n return Auth.forgotPasswordSubmit(username, code, password);\n },\n async handleForgotPassword(formData): Promise<any> {\n return Auth.forgotPassword(formData);\n },\n\n // Validation hooks for overriding\n async validateCustomSignUp(formData, touchData): Promise<ValidatorResult> {},\n async validateConfirmPassword<Validator>(\n formData,\n touchData\n ): Promise<ValidatorResult> {\n const { password, confirm_password } = formData;\n\n const {\n confirm_password: touched_confirm_password,\n password: touched_password,\n } = touchData;\n\n if (!password && !confirm_password) {\n // these inputs are clean, don't complain yet\n return null;\n } else if (\n (password || confirm_password) &&\n password !== confirm_password &&\n ((touched_confirm_password && touched_password) ||\n (password.length >= 6 && confirm_password.length >= 6))\n ) {\n // Only return an error if both fields have text entered,\n // the passwords do not match, and the fields have been\n // touched or the password and confirm password is longer then or equal to 6.\n\n return {\n confirm_password: 'Your passwords must match',\n };\n }\n },\n async validatePreferredUsername(\n formData,\n touchData\n ): Promise<ValidatorResult> {},\n};\n","import { createMachine } from 'xstate';\n\nimport { AuthEvent, SignOutContext } from '../../../types';\nimport { Auth } from 'aws-amplify';\n\nexport const signOutActor = createMachine<SignOutContext, AuthEvent>(\n {\n initial: 'pending',\n id: 'signOutActor',\n states: {\n pending: {\n tags: ['pending'],\n invoke: {\n src: 'signOut',\n onDone: 'resolved',\n onError: 'rejected',\n },\n },\n resolved: { type: 'final' },\n rejected: { type: 'final' },\n },\n },\n {\n services: {\n signOut: () => Auth.signOut(/* global? */),\n },\n }\n);\n","import { createMachine, sendUpdate } from 'xstate';\nimport { AuthEvent, ResetPasswordContext } from '../../../types';\nimport { runValidators } from '../../../validators';\nimport {\n clearError,\n clearFormValues,\n clearTouched,\n clearUsername,\n clearValidationError,\n handleInput,\n handleBlur,\n setFieldErrors,\n setRemoteError,\n setUsername,\n} from '../actions';\nimport { defaultServices } from '../defaultServices';\n\nexport type ResetPasswordMachineOptions = {\n services?: Partial<typeof defaultServices>;\n};\n\nexport function resetPasswordActor({ services }: ResetPasswordMachineOptions) {\n return createMachine<ResetPasswordContext, AuthEvent>(\n {\n id: 'resetPasswordActor',\n initial: 'init',\n states: {\n init: {\n always: [\n { target: 'confirmResetPassword', cond: 'shouldAutoConfirmReset' },\n { target: 'resetPassword' },\n ],\n },\n resetPassword: {\n initial: 'edit',\n exit: ['clearFormValues', 'clearError', 'clearTouched'],\n states: {\n edit: {\n entry: sendUpdate(),\n on: {\n SUBMIT: 'submit',\n CHANGE: { actions: 'handleInput' },\n BLUR: { actions: 'handleBlur' },\n },\n },\n submit: {\n tags: ['pending'],\n entry: [sendUpdate(), 'setUsername', 'clearError'],\n invoke: {\n src: 'resetPassword',\n onDone: {\n target: '#resetPasswordActor.confirmResetPassword',\n },\n onError: {\n actions: ['setRemoteError'],\n target: 'edit',\n },\n },\n },\n },\n },\n confirmResetPassword: {\n type: 'parallel',\n exit: [\n 'clearFormValues',\n 'clearError',\n 'clearUsername',\n 'clearTouched',\n ],\n states: {\n validation: {\n initial: 'pending',\n states: {\n pending: {\n invoke: {\n src: 'validateFields',\n onDone: {\n target: 'valid',\n actions: 'clearValidationError',\n },\n onError: {\n target: 'invalid',\n actions: 'setFieldErrors',\n },\n },\n },\n valid: { entry: sendUpdate() },\n invalid: { entry: sendUpdate() },\n },\n on: {\n CHANGE: {\n actions: 'handleInput',\n target: '.pending',\n },\n BLUR: {\n actions: 'handleBlur',\n target: '.pending',\n },\n },\n },\n submission: {\n initial: 'idle',\n states: {\n idle: {\n entry: sendUpdate(),\n on: {\n SUBMIT: 'validate',\n RESEND: 'resendCode',\n CHANGE: { actions: 'handleInput' },\n BLUR: { actions: 'handleBlur' },\n },\n },\n validate: {\n entry: sendUpdate(),\n invoke: {\n src: 'validateFields',\n onDone: {\n target: 'pending',\n actions: 'clearValidationError',\n },\n onError: {\n target: 'idle',\n actions: 'setFieldErrors',\n },\n },\n },\n resendCode: {\n tags: ['pending'],\n entry: ['clearError', sendUpdate()],\n invoke: {\n src: 'resetPassword',\n onDone: { target: 'idle' },\n onError: {\n actions: 'setRemoteError',\n target: 'idle',\n },\n },\n },\n pending: {\n tags: ['pending'],\n entry: ['clearError', sendUpdate()],\n invoke: {\n src: 'confirmResetPassword',\n onDone: {\n actions: 'clearUsername',\n target: '#resetPasswordActor.resolved',\n },\n onError: {\n actions: 'setRemoteError',\n target: 'idle',\n },\n },\n },\n },\n },\n },\n },\n resolved: { type: 'final' },\n },\n },\n {\n actions: {\n clearError,\n clearFormValues,\n clearTouched,\n clearUsername,\n clearValidationError,\n handleInput,\n handleBlur,\n setFieldErrors,\n setRemoteError,\n setUsername,\n },\n guards: {\n shouldAutoConfirmReset: (context, event): boolean => {\n return !!(\n context.intent && context.intent === 'confirmPasswordReset'\n );\n },\n },\n services: {\n async resetPassword(context) {\n const username = context.formValues?.username ?? context.username;\n\n return services.handleForgotPassword(username);\n },\n async confirmResetPassword(context) {\n const { username } = context;\n const { confirmation_code: code, password } = context.formValues;\n\n return services.handleForgotPasswordSubmit({\n username,\n code,\n password,\n });\n },\n async validateFields(context, event) {\n return runValidators(context.formValues, context.touched, [\n defaultServices.validateConfirmPassword,\n ]);\n },\n },\n }\n );\n}\n","import { Auth } from 'aws-amplify';\nimport get from 'lodash/get';\nimport pickBy from 'lodash/pickBy';\nimport { createMachine, sendUpdate } from 'xstate';\n\nimport { AuthEvent, SignUpContext } from '../../types';\nimport { runValidators } from '../../validators';\nimport {\n clearError,\n clearFormValues,\n clearTouched,\n clearValidationError,\n handleInput,\n handleBlur,\n parsePhoneNumber,\n setCredentials,\n setFieldErrors,\n setRemoteError,\n setCodeDeliveryDetails,\n setUser,\n} from './actions';\nimport { defaultServices } from './defaultServices';\n\nexport type SignUpMachineOptions = {\n services?: Partial<typeof defaultServices>;\n};\n\nexport function createSignUpMachine({ services }: SignUpMachineOptions) {\n return createMachine<SignUpContext, AuthEvent>(\n {\n id: 'signUpActor',\n initial: 'init',\n states: {\n init: {\n always: [\n { target: 'confirmSignUp', cond: 'shouldInitConfirmSignUp' },\n { target: 'signUp' },\n ],\n },\n signUp: {\n type: 'parallel',\n exit: ['clearError', 'clearFormValues', 'clearTouched'],\n states: {\n validation: {\n initial: 'pending',\n states: {\n pending: {\n invoke: {\n src: 'validateSignUp',\n onDone: {\n target: 'valid',\n actions: 'clearValidationError',\n },\n onError: {\n target: 'invalid',\n actions: 'setFieldErrors',\n },\n },\n },\n valid: { entry: sendUpdate() },\n invalid: { entry: sendUpdate() },\n },\n on: {\n CHANGE: {\n actions: 'handleInput',\n target: '.pending',\n },\n BLUR: {\n actions: 'handleBlur',\n target: '.pending',\n },\n },\n },\n submission: {\n initial: 'idle',\n states: {\n idle: {\n entry: sendUpdate(),\n on: {\n SUBMIT: 'validate',\n FEDERATED_SIGN_IN: 'federatedSignIn',\n },\n },\n federatedSignIn: {\n tags: ['pending'],\n entry: [sendUpdate(), 'clearError'],\n invoke: {\n src: 'federatedSignIn',\n onDone: '#signUpActor.resolved',\n onError: { actions: 'setRemoteError' },\n },\n },\n validate: {\n entry: sendUpdate(),\n invoke: {\n src: 'validateSignUp',\n onDone: {\n target: 'pending',\n actions: 'clearValidationError',\n },\n onError: {\n target: 'idle',\n actions: 'setFieldErrors',\n },\n },\n },\n pending: {\n tags: ['pending'],\n entry: ['parsePhoneNumber', sendUpdate(), 'clearError'],\n invoke: {\n src: 'signUp',\n onDone: [\n {\n cond: 'shouldSkipConfirm',\n target: 'skipConfirm',\n actions: ['setUser'],\n },\n {\n target: 'resolved',\n actions: [\n 'setUser',\n 'setCredentials',\n 'setCodeDeliveryDetails',\n ],\n },\n ],\n onError: {\n target: 'idle',\n actions: 'setRemoteError',\n },\n },\n },\n skipConfirm: {\n invoke: {\n src: 'signIn',\n onDone: {\n target: '#signUpActor.resolved',\n actions: 'setUser',\n },\n onError: {\n target: 'idle',\n actions: 'setRemoteError',\n },\n },\n },\n\n resolved: {\n type: 'final',\n always: '#signUpActor.confirmSignUp',\n },\n },\n },\n },\n },\n confirmSignUp: {\n initial: 'edit',\n states: {\n edit: {\n entry: sendUpdate(),\n on: {\n SUBMIT: 'submit',\n CHANGE: { actions: 'handleInput' },\n BLUR: { actions: 'handleBlur' },\n RESEND: 'resend',\n },\n },\n resend: {\n tags: ['pending'],\n entry: sendUpdate(),\n invoke: {\n src: 'resendConfirmationCode',\n onDone: { target: 'edit' },\n onError: [\n {\n target: '#signUpActor.resolved',\n actions: 'setUser',\n cond: 'isUserAlreadyConfirmed',\n },\n { target: 'edit', actions: 'setRemoteError' },\n ],\n },\n },\n submit: {\n tags: ['pending'],\n entry: [sendUpdate(), 'clearError'],\n invoke: {\n src: 'confirmSignUp',\n onDone: {\n target: '#signUpActor.resolved',\n actions: ['setUser'],\n },\n onError: { target: 'edit', actions: 'setRemoteError' },\n },\n },\n },\n },\n resolved: {\n type: 'final',\n data: (context, event) => {\n const { username, password } = context.authAttributes;\n\n return {\n user: get(event, 'data.user') || context.user,\n authAttributes: { username, password },\n };\n },\n },\n },\n },\n {\n guards: {\n /**\n * This guard covers an edge case that exists in the current state of the UI.\n * As of now, our ConfirmSignUp screen only supports showing an input for a\n * confirmation code. However, a Cognito UserPool can instead verify users\n * through a link that gets emailed to them. If a user verifies through the\n * link and then they click on the \"Resend Code\" button, they will get an error\n * saying that the user has already been confirmed. If we encounter that error,\n * we want to just funnel them through the rest of the flow. In the future, we will\n * want to update our UI to support both confirmation codes and links.\n *\n * https://github.com/aws-amplify/amplify-ui/issues/219\n */\n isUserAlreadyConfirmed: (context, event) => {\n return event.data.message === 'User is already confirmed.';\n },\n shouldInitConfirmSignUp: (context) => {\n return context.intent && context.intent === 'confirmSignUp';\n },\n shouldSkipConfirm: (context, event) => {\n return event.data.userConfirmed;\n },\n },\n actions: {\n clearError,\n clearFormValues,\n clearTouched,\n clearValidationError,\n handleInput,\n handleBlur,\n parsePhoneNumber,\n setCredentials,\n setFieldErrors,\n setRemoteError,\n setCodeDeliveryDetails,\n setUser,\n },\n services: {\n async signIn(context, event) {\n const { user, authAttributes, formValues } = context;\n\n const username =\n get(user, 'username') || get(authAttributes, 'username');\n const password = get(formValues, 'password');\n\n return await Auth.signIn(username, password);\n },\n async confirmSignUp(context, event) {\n const { user, authAttributes, formValues } = context;\n const { confirmation_code: code } = formValues;\n\n const username =\n get(user, 'username') || get(authAttributes, 'username');\n const { password } = authAttributes;\n\n await services.handleConfirmSignUp({ username, code });\n\n return await Auth.signIn(username, password);\n },\n async resendConfirmationCode(context, event) {\n const { user, authAttributes } = context;\n const username =\n get(user, 'username') || get(authAttributes, 'username');\n\n return Auth.resendSignUp(username);\n },\n async federatedSignIn(_, event) {\n const { provider } = event.data;\n const result = await Auth.federatedSignIn({ provider });\n return result;\n },\n async signUp(context, _event) {\n const { formValues, loginMechanisms } = context;\n const [primaryAlias = 'username'] = loginMechanisms;\n const { [primaryAlias]: username, password } = formValues;\n\n const attributes = pickBy(formValues, (_, key) => {\n // Allowlist of Cognito User Pool Attributes (from OpenID Connect specification)\n // See: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html\n switch (key) {\n case 'address':\n case 'birthdate':\n case 'email':\n case 'family_name':\n case 'gender':\n case 'given_name':\n case 'locale':\n case 'middle_name':\n case 'name':\n case 'nickname':\n case 'phone_number':\n case 'picture':\n case 'preferred_username':\n case 'profile':\n case 'updated_at':\n case 'website':\n case 'zoneinfo':\n return true;\n\n // Otherwise, it's a custom attribute\n default:\n return key.startsWith('custom:');\n }\n });\n\n return await services.handleSignUp({\n username,\n password,\n attributes,\n });\n },\n async validateSignUp(context, event) {\n // This needs to exist in the machine to reference new `services`\n\n return runValidators(context.formValues, context.touched, [\n // Validation for default form fields\n services.validateConfirmPassword,\n services.validatePreferredUsername,\n // Validation for any custom Sign Up fields\n services.validateCustomSignUp,\n ]);\n },\n },\n }\n );\n}\n","import { createTheme } from './createTheme';\nimport { baseTheme } from './baseTheme';\n\nexport { createTheme };\nexport * from './types';\n\nexport const defaultTheme = createTheme(\n {\n name: 'default-theme',\n },\n baseTheme\n);\n","// Internal Style Dictionary methods\nimport deepExtend from 'style-dictionary/lib/utils/deepExtend';\nimport flattenProperties from 'style-dictionary/lib/utils/flattenProperties';\n\nimport { baseTheme as _baseTheme } from './baseTheme';\nimport { Theme, BaseTheme, WebTheme, Override } from './types';\nimport { cssValue, cssNameTransform } from './utils';\nimport { WebTokens } from './tokens';\nimport { DesignToken, WebDesignToken } from './tokens/types/designToken';\n\n/**\n * This will take a design token and add some data to it for it\n * to be used in JS/CSS. It will create its CSS var name and update\n * the value to use a CSS var if it is a reference. It will also\n * add a `.toString()` method to make it easier to use in JS.\n *\n * We should see if there is a way to share this logic with style dictionary...\n */\nfunction setupToken(token: DesignToken, path: Array<string>): WebDesignToken {\n const name = `--${cssNameTransform({ path })}`;\n const { value } = token;\n\n return {\n name,\n path,\n value: cssValue(token),\n original: value,\n toString: () => `var(${name})`,\n };\n}\n\n/**\n * Recursive function that will walk down the token object\n * and perform the setupToken function on each token.\n * Similar to what Style Dictionary does.\n */\nfunction setupTokens(obj: any, path = []) {\n let tokens = {};\n\n if (obj.hasOwnProperty('value')) {\n return setupToken(obj, path);\n } else {\n for (const name in obj) {\n if (obj.hasOwnProperty(name)) {\n tokens[name] = setupTokens(obj[name], path.concat(name));\n }\n }\n }\n\n return tokens;\n}\n\n/**\n * This will be used like `const myTheme = createTheme({})`\n * `myTheme` can then be passed to a Provider or the generated CSS\n * can be passed to a stylesheet at build-time or run-time.\n * const myTheme = createTheme({})\n * const myOtherTheme = createTheme({}, myTheme);\n */\nexport function createTheme(\n theme?: Theme,\n baseTheme: BaseTheme = _baseTheme\n): WebTheme {\n // merge theme and baseTheme to get a complete theme\n // deepExtend is an internal Style Dictionary method\n // that performs a deep merge on n objects. We could change\n // this to another 3p deep merge solution too.\n const mergedTheme: BaseTheme = deepExtend([{}, baseTheme, theme]);\n\n // Setting up the tokens. This is similar to what Style Dictionary\n // does. At the end of this, each token should have:\n // - CSS variable name of itself\n // - its value (reference to another CSS variable or raw value)\n const tokens = setupTokens(mergedTheme.tokens) as WebTokens; // Setting the type here because setupTokens is recursive\n\n const { breakpoints, name } = mergedTheme;\n\n // flattenProperties is another internal Style Dictionary function\n // that creates an array of all tokens.\n let cssText =\n `[data-amplify-theme=\"${name}\"] {\\n` +\n flattenProperties(tokens)\n .map((token) => `${token.name}: ${token.value};`)\n .join('\\n') +\n `\\n}\\n`;\n\n let overrides: Array<Override> = [];\n\n /**\n * For each override, we setup the tokens and then generate the CSS.\n * This allows us to have one single CSS string for all possible overrides\n * and avoid re-renders in React, but also support other frameworks as well.\n */\n if (mergedTheme.overrides) {\n overrides = mergedTheme.overrides.map((override) => {\n const tokens = setupTokens(override.tokens);\n const customProperties = flattenProperties(tokens)\n .map((token) => `${token.name}: ${token.value};`)\n .join('\\n');\n // Overrides can have a selector, media query, breakpoint, or color mode\n // for creating the selector\n if ('selector' in override) {\n cssText += `\\n${override.selector} {\\n${customProperties}\\n}\\n`;\n }\n if ('mediaQuery' in override) {\n cssText += `\\n@media (${override.mediaQuery}) {\n [data-amplify-theme=\"${name}\"] {\n ${customProperties}\n }\n}\\n`;\n }\n if ('breakpoint' in override) {\n const breakpoint = mergedTheme.breakpoints.values[override.breakpoint];\n cssText += `\\n@media (min-width: ${breakpoint}px) {\n [data-amplify-theme=\"${name}\"] {\n ${customProperties}\n }\n}\\n`;\n }\n if ('colorMode' in override) {\n cssText += `\\n@media (prefers-color-scheme: ${override.colorMode}) {\n [data-amplify-theme=\"${name}\"][data-amplify-color-mode=\"system\"] {\\n${customProperties}\\n}\n }\\n`;\n cssText += `\\n[data-amplify-theme=\"${name}\"][data-amplify-color-mode=\"${override.colorMode}\"] {\\n${customProperties}\\n}\\n`;\n }\n\n return {\n ...override,\n tokens,\n };\n });\n }\n\n return {\n tokens,\n breakpoints,\n name,\n cssText,\n // keep overrides separate from base theme\n // this allows web platforms to use plain CSS scoped to a\n // selector and only override the CSS vars needed. This\n // means we could generate CSS at build-time in a postcss\n // plugin, or do it at runtime and inject the CSS into a\n // style tag.\n // This also allows RN to dynamically switch themes in a\n // provider.\n overrides,\n };\n}\n","import { tokens } from './tokens';\nimport { breakpoints } from './breakpoints';\nimport { BaseTheme } from './types';\n\nexport const baseTheme: BaseTheme = {\n tokens,\n breakpoints,\n name: 'base-theme',\n};\n","import { borderWidths, BorderWidths, WebBorderWidths } from './borderWidths';\nimport { colors, Colors, WebColors } from './colors';\nimport { fonts, Fonts, WebFonts } from './fonts';\nimport { fontSizes, FontSizes, WebFontSizes } from './fontSizes';\nimport { fontWeights, FontWeights, WebFontWeights } from './fontWeights';\nimport { lineHeights, LineHeights, WebLineHeights } from './lineHeights';\nimport { opacities, Opacities, WebOpacities } from './opacities';\nimport {\n outlineOffsets,\n OutlineOffsets,\n WebOutlineOffsets,\n} from './outlineOffsets';\nimport {\n outlineWidths,\n OutlineWidths,\n WebOutlineWidths,\n} from './outlineWidths';\nimport { radii, Radii, WebRadii } from './radii';\nimport { shadows, Shadows, WebShadows } from './shadows';\nimport { space, Space, WebSpace } from './space';\nimport { time, Time, WebTime } from './time';\nimport { transforms, Transforms, WebTransforms } from './transforms';\n\nexport interface Tokens {\n components: any; // TODO type this\n borderWidths: BorderWidths;\n colors: Colors;\n fonts: Fonts;\n fontSizes: FontSizes;\n fontWeights: FontWeights;\n lineHeights: LineHeights;\n opacities: Opacities;\n outlineOffsets: OutlineOffsets;\n outlineWidths: OutlineWidths;\n radii: Radii;\n shadows: Shadows;\n space: Space;\n time: Time;\n transforms: Transforms;\n}\n\n/**\n * The fully setup theme tokens. It has the same shape as Tokens\n * but each token has added fields.\n */\nexport interface WebTokens extends Tokens {\n borderWidths: WebBorderWidths;\n colors: WebColors;\n fonts: WebFonts;\n fontSizes: WebFontSizes;\n fontWeights: WebFontWeights;\n lineHeights: WebLineHeights;\n opacities: WebOpacities;\n outlineOffsets: WebOutlineOffsets;\n outlineWidths: WebOutlineWidths;\n radii: WebRadii;\n shadows: WebShadows;\n space: WebSpace;\n time: WebTime;\n transform: WebTransforms;\n}\n\nexport const tokens: Tokens = {\n // TODO: convert component theme files to typescript\n components: require('./components'),\n borderWidths,\n colors,\n fonts,\n fontSizes,\n fontWeights,\n lineHeights,\n opacities,\n outlineOffsets,\n outlineWidths,\n radii,\n shadows,\n space,\n time,\n transforms,\n};\n","import {\n DesignToken,\n WebDesignToken,\n BorderWidthValue,\n} from './types/designToken';\n\nexport type BorderWidths = {\n /**\n * Small border, used for inputs and such\n */\n small: DesignToken<BorderWidthValue>;\n /**\n * Medium border, used for\n */\n medium: DesignToken<BorderWidthValue>;\n /**\n * Large border\n */\n large: DesignToken<BorderWidthValue>;\n};\n\nexport type WebBorderWidths = {\n [Property in keyof BorderWidths]: WebDesignToken<BorderWidthValue>;\n};\n\nexport const borderWidths: BorderWidths = {\n small: { value: '1px' },\n medium: { value: '2px' },\n large: { value: '3px' },\n};\n","import { DesignToken, WebDesignToken, ColorValue } from './types/designToken';\nimport { OrdinalScale, OrdinalVariation } from './types/scales';\n\ntype ScaleKeys = 10 | 20 | 40 | 60 | 80 | 90 | 100;\n\ntype ColorScale<DesignTokenType = DesignToken<ColorValue>> = {\n [key in ScaleKeys]: DesignTokenType;\n};\n\ntype FontColors<DesignTokenType = DesignToken<ColorValue>> = {\n inverse: DesignTokenType;\n interactive: DesignTokenType;\n hover: DesignTokenType;\n focus: DesignTokenType;\n active: DesignTokenType;\n disabled: DesignTokenType;\n} & OrdinalScale<DesignTokenType> &\n OrdinalVariation<DesignTokenType>;\n\ntype BackgroundColors<DesignTokenType = DesignToken<ColorValue>> = {\n disabled: DesignTokenType;\n} & OrdinalScale<DesignTokenType> &\n OrdinalVariation<DesignTokenType>;\n\ntype BorderColors<DesignTokenType = DesignToken<ColorValue>> = {\n disabled: DesignTokenType;\n focus: DesignTokenType;\n error: DesignTokenType;\n} & OrdinalScale<DesignTokenType>;\n\ntype ColorTypes<DesignTokenType = DesignToken<ColorValue>> =\n | { [key in ScaleKeys]: DesignTokenType }\n | FontColors\n | BackgroundColors\n | DesignTokenType\n | BorderColors;\n\ntype WebColorTypes = ColorTypes<WebDesignToken<ColorValue>>;\n\nexport type Colors = {\n // base color palette\n red: ColorScale;\n orange: ColorScale;\n yellow: ColorScale;\n green: ColorScale;\n teal: ColorScale;\n blue: ColorScale;\n purple: ColorScale;\n pink: ColorScale;\n neutral: ColorScale;\n white: DesignToken<ColorValue>;\n black: DesignToken<ColorValue>;\n\n // Semantic colors\n font: FontColors;\n background: BackgroundColors;\n border: BorderColors;\n brand: {\n primary: ColorScale;\n secondary: ColorScale;\n };\n\n [key: string]: ColorTypes | Record<string, ColorTypes>;\n};\n\nexport type WebColors = {\n red: ColorScale<WebDesignToken<ColorValue>>;\n orange: ColorScale<WebDesignToken<ColorValue>>;\n yellow: ColorScale<WebDesignToken<ColorValue>>;\n green: ColorScale<WebDesignToken<ColorValue>>;\n teal: ColorScale<WebDesignToken<ColorValue>>;\n blue: ColorScale<WebDesignToken<ColorValue>>;\n purple: ColorScale<WebDesignToken<ColorValue>>;\n pink: ColorScale<WebDesignToken<ColorValue>>;\n neutral: ColorScale<WebDesignToken<ColorValue>>;\n white: WebDesignToken<ColorValue>;\n black: WebDesignToken<ColorValue>;\n\n font: FontColors<WebDesignToken<ColorValue>>;\n background: BackgroundColors<WebDesignToken<ColorValue>>;\n border: BorderColors<WebDesignToken<ColorValue>>;\n brand: {\n primary: ColorScale<WebDesignToken<ColorValue>>;\n secondary: ColorScale<WebDesignToken<ColorValue>>;\n };\n\n [key: string]: WebColorTypes | Record<string, WebColorTypes>;\n};\n\nexport const colors: Colors = {\n red: {\n 10: { value: 'hsl(0, 75%, 95%)' },\n 20: { value: 'hsl(0, 75%, 85%)' },\n 40: { value: 'hsl(0, 75%, 75%)' },\n 60: { value: 'hsl(0, 50%, 50%)' },\n 80: { value: 'hsl(0, 95%, 30%)' },\n 90: { value: 'hsl(0, 100%, 20%)' },\n 100: { value: 'hsl(0, 100%, 15%)' },\n },\n\n orange: {\n 10: { value: 'hsl(30, 75%, 95%)' },\n 20: { value: 'hsl(30, 75%, 85%)' },\n 40: { value: 'hsl(30, 75%, 75%)' },\n 60: { value: 'hsl(30, 50%, 50%)' },\n 80: { value: 'hsl(30, 95%, 30%)' },\n 90: { value: 'hsl(30, 100%, 20%)' },\n 100: { value: 'hsl(30, 100%, 15%)' },\n },\n\n yellow: {\n 10: { value: 'hsl(60, 75%, 95%)' },\n 20: { value: 'hsl(60, 75%, 85%)' },\n 40: { value: 'hsl(60, 75%, 75%)' },\n 60: { value: 'hsl(60, 50%, 50%)' },\n 80: { value: 'hsl(60, 95%, 30%)' },\n 90: { value: 'hsl(60, 100%, 20%)' },\n 100: { value: 'hsl(60, 100%, 15%)' },\n },\n\n green: {\n 10: { value: 'hsl(130, 60%, 95%)' },\n 20: { value: 'hsl(130, 60%, 90%)' },\n 40: { value: 'hsl(130, 44%, 63%)' },\n 60: { value: 'hsl(130, 43%, 46%)' },\n 80: { value: 'hsl(130, 33%, 37%)' },\n 90: { value: 'hsl(130, 27%, 29%)' },\n 100: { value: 'hsl(130, 22%, 23%)' },\n },\n\n teal: {\n 10: { value: 'hsl(190, 75%, 95%)' },\n 20: { value: 'hsl(190, 75%, 85%)' },\n 40: { value: 'hsl(190, 70%, 70%)' },\n 60: { value: 'hsl(190, 50%, 50%)' },\n 80: { value: 'hsl(190, 95%, 30%)' },\n 90: { value: 'hsl(190, 100%, 20%)' },\n 100: { value: 'hsl(190, 100%, 15%)' },\n },\n\n blue: {\n 10: { value: 'hsl(220, 95%, 95%)' },\n 20: { value: 'hsl(220, 85%, 85%)' },\n 40: { value: 'hsl(220, 70%, 70%)' },\n 60: { value: 'hsl(220, 50%, 50%)' },\n 80: { value: 'hsl(220, 95%, 30%)' },\n 90: { value: 'hsl(220, 100%, 20%)' },\n 100: { value: 'hsl(220, 100%, 15%)' },\n },\n\n purple: {\n 10: { value: 'hsl(300, 95%, 95%)' },\n 20: { value: 'hsl(300, 85%, 85%)' },\n 40: { value: 'hsl(300, 70%, 70%)' },\n 60: { value: 'hsl(300, 50%, 50%)' },\n 80: { value: 'hsl(300, 95%, 30%)' },\n 90: { value: 'hsl(300, 100%, 20%)' },\n 100: { value: 'hsl(300, 100%, 15%)' },\n },\n\n pink: {\n 10: { value: 'hsl(340, 95%, 95%)' },\n 20: { value: 'hsl(340, 90%, 85%)' },\n 40: { value: 'hsl(340, 70%, 70%)' },\n 60: { value: 'hsl(340, 50%, 50%)' },\n 80: { value: 'hsl(340, 95%, 30%)' },\n 90: { value: 'hsl(340, 100%, 20%)' },\n 100: { value: 'hsl(340, 100%, 15%)' },\n },\n\n neutral: {\n 10: { value: 'hsl(210, 5%, 98%)' },\n 20: { value: 'hsl(210, 5%, 94%)' },\n 40: { value: 'hsl(210, 5%, 87%)' },\n 60: { value: 'hsl(210, 6%, 70%)' },\n 80: { value: 'hsl(210, 10%, 40%)' },\n 90: { value: 'hsl(210, 25%, 25%)' },\n 100: { value: 'hsl(210, 50%, 10%)' },\n },\n\n brand: {\n primary: {\n 10: { value: '{colors.teal.10.value}' },\n 20: { value: '{colors.teal.20.value}' },\n 40: { value: '{colors.teal.40.value}' },\n 60: { value: '{colors.teal.60.value}' },\n 80: { value: '{colors.teal.80.value}' },\n 90: { value: '{colors.teal.90.value}' },\n 100: { value: '{colors.teal.100.value}' },\n },\n secondary: {\n 10: { value: '{colors.purple.10.value}' },\n 20: { value: '{colors.purple.20.value}' },\n 40: { value: '{colors.purple.40.value}' },\n 60: { value: '{colors.purple.60.value}' },\n 80: { value: '{colors.purple.80.value}' },\n 90: { value: '{colors.purple.90.value}' },\n 100: { value: '{colors.purple.100.value}' },\n },\n },\n\n font: {\n primary: { value: '{colors.neutral.100.value}' },\n secondary: { value: '{colors.neutral.90.value}' },\n tertiary: { value: '{colors.neutral.80.value}' },\n disabled: { value: '{colors.font.tertiary.value}' },\n inverse: { value: '{colors.white.value}' },\n\n interactive: { value: '{colors.brand.primary.80.value}' },\n // Hover and Focus colors are intentionally different colors.\n // This allows users to distinguish between the current keyboard focus\n // and the location of their pointer\n hover: { value: '{colors.brand.primary.90.value}' },\n // Focus color is set to 100 to ensure enough contrast for accessibility\n focus: { value: '{colors.brand.primary.100.value}' },\n active: { value: '{colors.brand.primary.100.value}' },\n\n info: { value: '{colors.blue.90.value}' },\n warning: { value: '{colors.orange.90.value}' },\n error: { value: '{colors.red.90.value}' },\n success: { value: '{colors.green.90.value}' },\n },\n\n background: {\n primary: { value: '{colors.white.value}' },\n secondary: { value: '{colors.neutral.10.value}' },\n tertiary: { value: '{colors.neutral.20.value}' },\n disabled: { value: '{colors.background.tertiary.value}' },\n\n info: { value: '{colors.blue.20.value}' },\n warning: { value: '{colors.orange.20.value}' },\n error: { value: '{colors.red.20.value}' },\n success: { value: '{colors.green.20.value}' },\n },\n\n border: {\n primary: { value: '{colors.neutral.60.value}' },\n secondary: { value: '{colors.neutral.40.value}' },\n tertiary: { value: '{colors.neutral.20.value}' },\n\n disabled: { value: '{colors.border.tertiary.value}' },\n // Focus color is set to 100 to ensure enough contrast for accessibility\n focus: { value: '{colors.brand.primary.100.value}' },\n error: { value: '{colors.red.80.value}' },\n },\n\n shadow: {\n primary: { value: 'hsla(210, 50%, 10%, 0.25)' },\n secondary: { value: 'hsla(210, 50%, 10%, 0.15)' },\n tertiary: { value: 'hsla(210, 50%, 10%, 0.05)' },\n },\n\n overlay: {\n 10: { value: 'hsla(0, 0%, 0%, 0.1)' },\n 20: { value: 'hsla(0, 0%, 0%, 0.2)' },\n 30: { value: 'hsla(0, 0%, 0%, 0.3)' },\n 40: { value: 'hsla(0, 0%, 0%, 0.4)' },\n 50: { value: 'hsla(0, 0%, 0%, 0.5)' },\n 60: { value: 'hsla(0, 0%, 0%, 0.6)' },\n 70: { value: 'hsla(0, 0%, 0%, 0.7)' },\n 80: { value: 'hsla(0, 0%, 0%, 0.8)' },\n 90: { value: 'hsla(0, 0%, 0%, 0.9)' },\n },\n\n black: {\n value: 'hsl(0, 0%, 0%)',\n },\n white: { value: 'hsl(0, 0%, 100%)' },\n transparent: { value: 'transparent' },\n};\n","import { DesignToken, WebDesignToken, FontValue } from './types/designToken';\n\nexport type Fonts = {\n default: {\n variable: DesignToken<FontValue>;\n static: DesignToken<FontValue>;\n };\n};\n\nexport interface WebFonts {\n default: {\n [Property in keyof Fonts['default']]: WebDesignToken<FontValue>;\n };\n}\n\n// TODO: update the design tokens to use an array\n// export interface FontDesignToken {\n// value: Array<string>\n// }\n\nexport const fonts: Fonts = {\n default: {\n variable: {\n value: `'InterVariable', 'Inter var', 'Inter', -apple-system, BlinkMacSystemFont,\n 'Helvetica Neue', 'Segoe UI', Oxygen, Ubuntu, Cantarell, 'Open Sans',\n sans-serif`,\n },\n static: {\n value: `'Inter', -apple-system, BlinkMacSystemFont, 'Helvetica Neue',\n 'Segoe UI', Oxygen, Ubuntu, Cantarell, 'Open Sans', sans-serif`,\n },\n },\n};\n","import {\n DesignToken,\n WebDesignToken,\n FontSizeValue,\n} from './types/designToken';\n\nexport type FontSizes = {\n xxxs: DesignToken<FontSizeValue>;\n xxs: DesignToken<FontSizeValue>;\n xs: DesignToken<FontSizeValue>;\n small: DesignToken<FontSizeValue>;\n medium: DesignToken<FontSizeValue>;\n large: DesignToken<FontSizeValue>;\n xl: DesignToken<FontSizeValue>;\n xxl: DesignToken<FontSizeValue>;\n xxxl: DesignToken<FontSizeValue>;\n xxxxl: DesignToken<FontSizeValue>;\n};\n\nexport type WebFontSizes = {\n [Property in keyof FontSizes]: WebDesignToken<FontSizeValue>;\n};\n\nexport const fontSizes: FontSizes = {\n xxxs: { value: '0.375rem' },\n xxs: { value: '0.5rem' },\n xs: { value: '0.75rem' },\n small: { value: '0.875rem' },\n medium: { value: '1rem' },\n large: { value: '1.25rem' },\n xl: { value: '1.5rem' },\n xxl: { value: '2rem' },\n xxxl: { value: '3rem' },\n xxxxl: { value: '5rem' },\n};\n","import {\n DesignToken,\n WebDesignToken,\n FontWeightValue,\n} from './types/designToken';\n\nexport type FontWeights = {\n hairline: DesignToken<FontWeightValue>;\n thin: DesignToken<FontWeightValue>;\n light: DesignToken<FontWeightValue>;\n normal: DesignToken<FontWeightValue>;\n medium: DesignToken<FontWeightValue>;\n semibold: DesignToken<FontWeightValue>;\n bold: DesignToken<FontWeightValue>;\n extrabold: DesignToken<FontWeightValue>;\n black: DesignToken<FontWeightValue>;\n};\n\nexport type WebFontWeights = {\n [Property in keyof FontWeights]: WebDesignToken<FontWeightValue>;\n};\n\nexport const fontWeights: FontWeights = {\n hairline: { value: 100 },\n thin: { value: 200 },\n light: { value: 300 },\n normal: { value: 400 },\n medium: { value: 500 },\n semibold: { value: 600 },\n bold: { value: 700 },\n extrabold: { value: 800 },\n black: { value: 900 },\n};\n","import {\n DesignToken,\n WebDesignToken,\n LineHeightValue,\n} from './types/designToken';\n\nexport type LineHeights = {\n small: DesignToken<LineHeightValue>;\n medium: DesignToken<LineHeightValue>;\n large: DesignToken<LineHeightValue>;\n};\n\nexport type WebLineHeights = {\n [Property in keyof LineHeights]: WebDesignToken<LineHeightValue>;\n};\n\nexport const lineHeights: LineHeights = {\n small: { value: '1.5' },\n medium: { value: '1.75' },\n large: { value: '2' },\n};\n","import { DesignToken, WebDesignToken, OpacityValue } from './types/designToken';\n\nexport type Opacities = {\n // TODO: Update these so the values aren't directly tied to the names\n 0: DesignToken<OpacityValue>;\n 10: DesignToken<OpacityValue>;\n 20: DesignToken<OpacityValue>;\n 30: DesignToken<OpacityValue>;\n 40: DesignToken<OpacityValue>;\n 50: DesignToken<OpacityValue>;\n 60: DesignToken<OpacityValue>;\n 70: DesignToken<OpacityValue>;\n 80: DesignToken<OpacityValue>;\n 90: DesignToken<OpacityValue>;\n 100: DesignToken<OpacityValue>;\n};\n\nexport type WebOpacities = {\n [Property in keyof Opacities]: WebDesignToken<OpacityValue>;\n};\n\nexport const opacities: Opacities = {\n 0: {\n value: '0',\n },\n 10: {\n value: '0.1',\n },\n 20: {\n value: '0.2',\n },\n 30: {\n value: '0.3',\n },\n 40: {\n value: '0.4',\n },\n 50: {\n value: '0.5',\n },\n 60: {\n value: '0.6',\n },\n 70: {\n value: '0.7',\n },\n 80: {\n value: '0.8',\n },\n 90: {\n value: '0.9',\n },\n 100: {\n value: '1',\n },\n};\n","import {\n DesignToken,\n WebDesignToken,\n OutlineOffsetValue,\n} from './types/designToken';\n\nexport type OutlineOffsets = {\n small: DesignToken<OutlineOffsetValue>;\n medium: DesignToken<OutlineOffsetValue>;\n large: DesignToken<OutlineOffsetValue>;\n};\n\nexport type WebOutlineOffsets = {\n [Property in keyof OutlineOffsets]: WebDesignToken<OutlineOffsetValue>;\n};\n\nexport const outlineOffsets: OutlineOffsets = {\n small: { value: '1px' },\n medium: { value: '2px' },\n large: { value: '3px' },\n};\n","import {\n DesignToken,\n WebDesignToken,\n OutlineWidthValue,\n} from './types/designToken';\n\nexport type OutlineWidths = {\n small: DesignToken<OutlineWidthValue>;\n medium: DesignToken<OutlineWidthValue>;\n large: DesignToken<OutlineWidthValue>;\n};\n\nexport type WebOutlineWidths = {\n [Property in keyof OutlineWidths]: WebDesignToken<OutlineWidthValue>;\n};\n\nexport const outlineWidths: OutlineWidths = {\n small: { value: '1px' },\n medium: { value: '2px' },\n large: { value: '3px' },\n};\n","import { DesignToken, WebDesignToken, RadiusValue } from './types/designToken';\n\nexport type Radii = {\n xs: DesignToken<RadiusValue>;\n small: DesignToken<RadiusValue>;\n medium: DesignToken<RadiusValue>;\n large: DesignToken<RadiusValue>;\n xl: DesignToken<RadiusValue>;\n xxl: DesignToken<RadiusValue>;\n xxxl: DesignToken<RadiusValue>;\n};\n\nexport type WebRadii = {\n [Property in keyof Radii]: WebDesignToken<RadiusValue>;\n};\n\nexport const radii: Radii = {\n xs: { value: '0.125rem' },\n small: { value: '0.25rem' },\n medium: { value: '0.5rem' },\n large: { value: '1rem' },\n xl: { value: '2rem' },\n xxl: { value: '4rem' },\n xxxl: { value: '8rem' },\n};\n","import { DesignToken, WebDesignToken, ShadowValue } from './types/designToken';\n\nexport type Shadows = {\n small: DesignToken<ShadowValue>;\n medium: DesignToken<ShadowValue>;\n large: DesignToken<ShadowValue>;\n};\n\nexport type WebShadows = {\n [Property in keyof Shadows]: WebDesignToken<ShadowValue>;\n};\n\nexport const shadows: Shadows = {\n small: {\n value: {\n offsetX: '0px',\n offsetY: '2px',\n blurRadius: '4px',\n color: '{colors.shadow.tertiary.value}',\n },\n },\n medium: {\n value: {\n offsetX: '0px',\n offsetY: '2px',\n blurRadius: '6px',\n color: '{colors.shadow.secondary.value}',\n },\n },\n large: {\n value: {\n offsetX: '0px',\n offsetY: '4px',\n blurRadius: '12px',\n color: '{colors.shadow.primary.value}',\n },\n },\n};\n","import { DesignToken, WebDesignToken, SpaceValue } from './types/designToken';\n\nexport type Space = {\n xxxs: DesignToken<SpaceValue>;\n xxs: DesignToken<SpaceValue>;\n xs: DesignToken<SpaceValue>;\n small: DesignToken<SpaceValue>;\n medium: DesignToken<SpaceValue>;\n large: DesignToken<SpaceValue>;\n xl: DesignToken<SpaceValue>;\n xxl: DesignToken<SpaceValue>;\n xxxl: DesignToken<SpaceValue>;\n relative: {\n xxxs: DesignToken<SpaceValue>;\n xxs: DesignToken<SpaceValue>;\n xs: DesignToken<SpaceValue>;\n small: DesignToken<SpaceValue>;\n medium: DesignToken<SpaceValue>;\n large: DesignToken<SpaceValue>;\n xl: DesignToken<SpaceValue>;\n xxl: DesignToken<SpaceValue>;\n xxxl: DesignToken<SpaceValue>;\n };\n};\n\nexport type WebSpace = {\n [Property in keyof Omit<Space, 'relative'>]: WebDesignToken<SpaceValue>;\n} & {\n relative: {\n [Property in keyof Space['relative']]: WebDesignToken<SpaceValue>;\n };\n};\n\nexport const space: Space = {\n xxxs: { value: '0.25rem' },\n xxs: { value: '0.375rem' },\n xs: { value: '0.5rem' },\n small: { value: '0.75rem' },\n medium: { value: '1rem' },\n large: { value: '1.5rem' },\n xl: { value: '2.0rem' },\n xxl: { value: '3.0rem' },\n xxxl: { value: '4.5rem' },\n relative: {\n //creating a second set of sizes using em which will be sized relative to a parent instead of the root\n xxxs: { value: '0.25em' },\n xxs: { value: '0.375rem' },\n xs: { value: '0.5em' },\n small: { value: '0.75em' },\n medium: { value: '1em' },\n large: { value: '1.5em' },\n xl: { value: '2.0em' },\n xxl: { value: '3.0em' },\n xxxl: { value: '4.5em' },\n },\n};\n","import { DesignToken, WebDesignToken, TimeValue } from './types/designToken';\n\nexport type Time = {\n short: DesignToken<TimeValue>;\n medium: DesignToken<TimeValue>;\n long: DesignToken<TimeValue>;\n};\n\nexport type WebTime = {\n [Property in keyof Time]: WebDesignToken<TimeValue>;\n};\n\nexport const time: Time = {\n short: { value: '100ms' },\n medium: { value: '250ms' },\n long: { value: '500ms' },\n};\n","import {\n DesignToken,\n WebDesignToken,\n TransformValue,\n} from './types/designToken';\n\nexport type Transforms = {\n slideX: {\n small: DesignToken<TransformValue>;\n medium: DesignToken<TransformValue>;\n large: DesignToken<TransformValue>;\n };\n};\n\nexport type WebTransforms = {\n slideX: {\n [Property in keyof Transforms['slideX']]: WebDesignToken<TransformValue>;\n };\n};\n\nexport const transforms: Transforms = {\n // TODO: make this more generic and cross-platform\n slideX: {\n small: { value: 'translateX(0.5em)' },\n medium: { value: 'translateX(1em)' },\n large: { value: 'translateX(2em)' },\n },\n};\n","export interface Breakpoints {\n values: {\n base: number;\n small: number;\n medium: number;\n large: number;\n xl: number;\n xxl: number;\n };\n defaultBreakpoint: string;\n}\n\n// Breakpoint unit is in pixels\nexport const breakpoints: Breakpoints = {\n values: {\n base: 0,\n small: 480, // breakpoint unit is px\n medium: 768,\n large: 992,\n xl: 1280,\n xxl: 1536,\n },\n defaultBreakpoint: 'base',\n};\n","import kebabCase from 'lodash/kebabCase';\n// internal style dictionary function\nimport usesReference from 'style-dictionary/lib/utils/references/usesReference';\n\nimport { DesignToken } from './tokens/types/designToken';\n\nexport const CSS_VARIABLE_PREFIX = 'amplify';\n\nfunction referenceValue(value: string) {\n if (usesReference(value)) {\n const path = value.replace(/\\{|\\}/g, '').replace('.value', '').split('.');\n return `var(--${cssNameTransform({ path })})`;\n }\n return value;\n}\n\nexport function cssValue(token: DesignToken) {\n const { value } = token;\n if (typeof value === 'string') {\n return referenceValue(value);\n }\n if (typeof value === 'object') {\n if ('offsetX' in value) {\n const {\n offsetX = '',\n offsetY = '',\n blurRadius = '',\n spreadRadius = '',\n color = '',\n } = value;\n return [\n referenceValue(offsetX),\n referenceValue(offsetY),\n referenceValue(blurRadius),\n referenceValue(spreadRadius),\n referenceValue(color),\n ].join(' ');\n }\n }\n\n return value;\n}\n\ninterface NameTransformProps {\n path?: Array<string>;\n}\n\nexport function cssNameTransform({ path = [] }: NameTransformProps): string {\n return `${kebabCase([CSS_VARIABLE_PREFIX, ...path].join(' '))}`;\n}\n","import { PartialDeep } from 'type-fest';\nimport { Tokens, WebTokens } from './tokens';\nimport { Breakpoints } from './breakpoints';\n\nexport * from './tokens/types/designToken';\n\n/**\n * An override is a set of tokens that override others\n * in certain contexts. On Android, these are like resource\n * qualifiers. On the web, these are like media queries with\n * a set of CSS variables in it. A theme should contain\n * everything it needs to render\n */\nexport type Override =\n | SelectorOverride\n | MediaQueryOverride\n | BreakpointOverride\n | ColorModeOverride;\n\ninterface BaseOverride {\n tokens?: PartialDeep<Tokens>;\n}\n\n/**\n * This override takes a breakpoint name and creates a media-query for that\n * breakpoint\n * ```css\n * @media (min-width: 20em) {\n * [data-amplify-theme] {\n * --amplify-font-size-large: 2rem;\n * }\n * }\n * ```\n */\ninterface BreakpointOverride extends BaseOverride {\n breakpoint: keyof Breakpoints['values'];\n}\n\n/**\n * ```css\n * @media (prefers-color-scheme: dark) {\n * --amplify-colors-background-primary: black;\n * --amplify-colors-font-primary: white;\n * }\n * ```\n */\nexport interface MediaQueryOverride extends BaseOverride {\n mediaQuery: string;\n}\n\n/**\n * ```css\n * .disco-theme {\n * --amplify-colors-background-primary: pink;\n * }\n * [data-my-cool-theme] {\n * --amplify-colors-font-primary: purple;\n * }\n * ```\n */\nexport interface SelectorOverride extends BaseOverride {\n selector: string;\n}\n\ntype ColorMode = 'light' | 'dark';\n\n/**\n * This creates a color mode override, where the color mode is 'light' or 'dark'.\n * Note: there is no 'system' here.\n *\n * ```css\n * @media(prefers-color-scheme: dark) {\n * [data-amplify-color-mode=\"system\"] {\n * }\n * }\n *\n * [data-amplify-color-mode=\"dark\"] {\n *\n * }\n * ```\n */\nexport interface ColorModeOverride extends BaseOverride {\n colorMode: ColorMode;\n}\n\n/**\n * A Theme just needs a name. This is what a user would generally deal with.\n * They can define any tokens or breakpoints they need, but they don't need a\n * complete theme with all tokens.\n */\nexport interface Theme {\n /**\n * The name of the theme. This is used to create scoped CSS to allow for\n * multiple themes on a page.\n */\n name: string;\n tokens?: PartialDeep<Tokens>;\n breakpoints?: PartialDeep<Breakpoints>;\n /**\n * Overrides allow you to change design tokens in different contexts, like\n * light and dark mode. You can also have other media query overrides as well\n * as breakpoint overrides which correspond to the Breakpoints on a theme,\n * and a generic selector override.\n */\n overrides?: Array<Override>;\n}\n\n/**\n * A BaseTheme has all tokens and breakpoints required\n */\nexport interface BaseTheme extends Theme {\n tokens: Tokens;\n breakpoints: Breakpoints;\n overrides?: Array<Override>;\n}\n\n/**\n * WebTheme is a fully built theme that has cssText based\n * on the design tokens and all design tokens have added fields\n * to be used in Javascript/Typescript.\n */\nexport interface WebTheme extends BaseTheme {\n tokens: WebTokens;\n cssText: string;\n}\n","/**\n * Helper function to test if something is a design token or not.\n * Used in the React component style props.\n *\n * @param arg - thing to test if it is a design token or not\n * @returns boolean\n */\nexport function isDesignToken(arg: unknown): arg is WebDesignToken {\n if (typeof arg === 'object') {\n return arg.hasOwnProperty('value');\n } else {\n return false;\n }\n}\n\n/**\n *\n */\nexport type DesignToken<ValueType = any> = {\n value: ValueType;\n};\n\n/**\n * A fully setup design token ready to be used in web platform.\n */\nexport type WebDesignToken<ValueType = any> = {\n /**\n * Name of the design token\n */\n name: string;\n /**\n * Object path of the design token. Used for constructing the name\n */\n path: Array<string>;\n /**\n * Original (unresolved, untransformed) value of the design token\n */\n original: ValueType;\n /**\n * The wrapped CSS variable name of this design token, for example\n * `var(--amplify-colors-font-primary)`\n */\n toString(): string;\n} & DesignToken<ValueType>;\n\nexport type ColorValue = string;\nexport type BorderWidthValue = string;\nexport type FontValue = string;\nexport type FontSizeValue = string;\nexport type FontWeightValue = number;\nexport type LineHeightValue = string;\nexport type OpacityValue = string;\nexport type OutlineOffsetValue = string;\nexport type OutlineWidthValue = string;\nexport type RadiusValue = string;\nexport type ShadowValue = {\n offsetX: string;\n offsetY: string;\n blurRadius: string;\n spreadRadius?: string;\n color: string;\n};\nexport type SpaceValue = string;\nexport type TimeValue = string;\nexport type TransformValue = string;\n"],"mappings":"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,MACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QC9MF,IAYA,oCCZA,ICAA,ICAA,IAAO,GAAM,GAAS,CACpB,yDACE,sEACF,kDACE,kDACF,kBAAmB,0BACnB,kBAAmB,qBACnB,KAAM,OACN,QAAS,gBACT,mBAAoB,yBACpB,iBAAkB,qBAClB,kBAAmB,0BACnB,kBAAmB,8BACnB,mBAAoB,yBACpB,oBAAqB,0BACrB,oBAAqB,uBACrB,uBAAwB,gCACxB,iBAAkB,oBAClB,iBAAkB,oBAClB,mBAAoB,wBACpB,MAAO,QACP,kBAAmB,2BACnB,sBAAuB,6BACvB,sBAAuB,oCACvB,0BAA2B,mCAC3B,mBAAoB,2BACpB,wBAAyB,uBACzB,kBAAmB,qBACnB,gBAAiB,qBAC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","names":[]}
1
+ {"version":3,"sources":["../../../../node_modules/tsup/assets/esm_shims.js","../../src/theme/tokens/components/alert.js","../../src/theme/tokens/components/badge.js","../../src/theme/tokens/components/button.js","../../src/theme/tokens/components/card.js","../../src/theme/tokens/components/checkbox.js","../../src/theme/tokens/components/checkboxField.js","../../src/theme/tokens/components/countryCodeSelect.js","../../src/theme/tokens/components/divider.js","../../src/theme/tokens/components/expander.js","../../src/theme/tokens/components/field.js","../../src/theme/tokens/components/fieldControl.js","../../src/theme/tokens/components/fieldGroup.js","../../src/theme/tokens/components/fieldMessages.js","../../src/theme/tokens/components/flex.js","../../src/theme/tokens/components/heading.js","../../src/theme/tokens/components/icon.js","../../src/theme/tokens/components/image.js","../../src/theme/tokens/components/link.js","../../src/theme/tokens/components/loader.js","../../src/theme/tokens/components/menu.js","../../src/theme/tokens/components/pagination.js","../../src/theme/tokens/components/phoneNumberField.js","../../src/theme/tokens/components/placeholder.js","../../src/theme/tokens/components/radio.js","../../src/theme/tokens/components/rating.js","../../src/theme/tokens/components/select.js","../../src/theme/tokens/components/selectField.js","../../src/theme/tokens/components/sliderField.js","../../src/theme/tokens/components/stepperField.js","../../src/theme/tokens/components/switchField.js","../../src/theme/tokens/components/table.js","../../src/theme/tokens/components/tabs.js","../../src/theme/tokens/components/text.js","../../src/theme/tokens/components/toggleButton.js","../../src/theme/tokens/components/toggleButtonGroup.js","../../src/theme/tokens/components/index.js","../../src/index.ts","../../src/helpers/index.ts","../../src/helpers/auth.ts","../../src/types/index.ts","../../src/types/authMachine.ts","../../src/types/validator.ts","../../src/helpers/utils.ts","../../src/i18n/index.ts","../../src/i18n/country-dial-codes.ts","../../src/i18n/translations.ts","../../src/i18n/dictionaries/index.ts","../../src/i18n/dictionaries/authenticator/index.ts","../../src/i18n/dictionaries/authenticator/de.ts","../../src/i18n/dictionaries/authenticator/en.ts","../../src/i18n/dictionaries/authenticator/es.ts","../../src/i18n/dictionaries/authenticator/fr.ts","../../src/i18n/dictionaries/authenticator/it.ts","../../src/i18n/dictionaries/authenticator/ja.ts","../../src/i18n/dictionaries/authenticator/kr.ts","../../src/i18n/dictionaries/authenticator/nl.ts","../../src/i18n/dictionaries/authenticator/pl.ts","../../src/i18n/dictionaries/authenticator/pt.ts","../../src/i18n/dictionaries/authenticator/zh.ts","../../src/i18n/dictionaries/authenticator/sv.ts","../../src/i18n/dictionaries/authenticator/defaultTexts.ts","../../src/machines/index.ts","../../src/machines/authenticator/index.ts","../../src/machines/authenticator/actions.ts","../../src/machines/authenticator/actors/index.ts","../../src/machines/authenticator/actors/signIn.ts","../../src/validators/index.ts","../../src/machines/authenticator/defaultServices.ts","../../src/machines/authenticator/actors/signOut.ts","../../src/machines/authenticator/actors/resetPassword.ts","../../src/machines/authenticator/signUp.ts","../../src/theme/index.ts","../../src/theme/createTheme.ts","../../src/theme/baseTheme.ts","../../src/theme/tokens/index.ts","../../src/theme/tokens/borderWidths.ts","../../src/theme/tokens/colors.ts","../../src/theme/tokens/fonts.ts","../../src/theme/tokens/fontSizes.ts","../../src/theme/tokens/fontWeights.ts","../../src/theme/tokens/lineHeights.ts","../../src/theme/tokens/opacities.ts","../../src/theme/tokens/outlineOffsets.ts","../../src/theme/tokens/outlineWidths.ts","../../src/theme/tokens/radii.ts","../../src/theme/tokens/shadows.ts","../../src/theme/tokens/space.ts","../../src/theme/tokens/time.ts","../../src/theme/tokens/transforms.ts","../../src/theme/breakpoints.ts","../../src/theme/utils.ts","../../src/theme/types.ts","../../src/theme/tokens/types/designToken.ts"],"sourcesContent":["// Shim globals in esm bundle\nimport { fileURLToPath } from 'url'\nimport path from 'path'\n\nconst getFilename = () => fileURLToPath(import.meta.url)\nconst getDirname = () => path.dirname(getFilename())\n\nexport const __dirname = /* @__PURE__ */ getDirname()\nexport const __filename = /* @__PURE__ */ getFilename()\n","module.exports = {\n // Default styles\n alignItems: { value: 'center' },\n justifyContent: { value: 'space-between' },\n color: { value: '{colors.font.primary.value}' },\n backgroundColor: { value: '{colors.background.tertiary.value}' },\n paddingBlock: { value: '{space.small.value}' },\n paddingInline: { value: '{space.medium.value}' },\n\n icon: {\n size: { value: '{fontSizes.xl.value}' },\n },\n\n heading: {\n fontSize: { value: '{fontSizes.medium.value}' },\n fontWeight: { value: '{fontWeights.bold.value}' },\n },\n\n // Variations\n info: {\n color: { value: '{colors.font.info.value}' },\n backgroundColor: { value: '{colors.background.info.value}' },\n },\n\n error: {\n color: { value: '{colors.font.error.value}' },\n backgroundColor: { value: '{colors.background.error.value}' },\n },\n\n warning: {\n color: { value: '{colors.font.warning.value}' },\n backgroundColor: { value: '{colors.background.warning.value}' },\n },\n\n success: {\n color: { value: '{colors.font.success.value}' },\n backgroundColor: { value: '{colors.background.success.value}' },\n },\n};\n","module.exports = {\n // Default styles\n color: { value: '{colors.font.primary.value}' },\n lineHeight: { value: 1 },\n fontWeight: { value: '{fontWeights.semibold.value}' },\n fontSize: { value: '{fontSizes.small.value}' },\n textAlign: { value: 'center' },\n paddingVertical: { value: '{space.xs.value}' },\n paddingHorizontal: { value: '{space.small.value}' },\n backgroundColor: { value: '{colors.background.tertiary.value}' },\n // An arbitrarily large value to ensure that the left and right sides of the badge are perfectly rounded for any size variation\n borderRadius: { value: '{radii.xl.value}' },\n\n // Variations\n info: {\n color: { value: '{colors.font.info.value}' },\n backgroundColor: { value: '{colors.background.info.value}' },\n },\n\n warning: {\n color: { value: '{colors.font.warning.value}' },\n backgroundColor: { value: '{colors.background.warning.value}' },\n },\n\n success: {\n color: { value: '{colors.font.success.value}' },\n backgroundColor: { value: '{colors.background.success.value}' },\n },\n\n error: {\n color: { value: '{colors.font.error.value}' },\n backgroundColor: { value: '{colors.background.error.value}' },\n },\n\n // Sizes\n small: {\n fontSize: { value: '{fontSizes.xs.value}' },\n paddingVertical: { value: '{space.xxs.value}' },\n paddingHorizontal: { value: '{space.xs.value}' },\n },\n // medium is the default size\n large: {\n fontSize: { value: '{fontSizes.medium.value}' },\n paddingVertical: { value: '{space.small.value}' },\n paddingHorizontal: { value: '{space.medium.value}' },\n },\n};\n","module.exports = {\n // shared styles\n fontWeight: { value: '{fontWeights.bold.value}' },\n transitionDuration: {\n value: '{components.fieldcontrol.transitionDuration.value}',\n },\n fontSize: { value: '{components.fieldcontrol.fontSize.value}' },\n lineHeight: { value: '{components.fieldcontrol.lineHeight.value}' },\n paddingBlockStart: {\n value: '{components.fieldcontrol.paddingBlockStart.value}',\n },\n paddingBlockEnd: {\n value: '{components.fieldcontrol.paddingBlockEnd.value}',\n },\n paddingInlineStart: {\n value: '{components.fieldcontrol.paddingInlineStart.value}',\n },\n paddingInlineEnd: {\n value: '{components.fieldcontrol.paddingInlineEnd.value}',\n },\n borderColor: { value: '{components.fieldcontrol.borderColor.value}' },\n borderWidth: { value: '{components.fieldcontrol.borderWidth.value}' },\n borderStyle: { value: '{components.fieldcontrol.borderStyle.value}' },\n borderRadius: { value: '{components.fieldcontrol.borderRadius.value}' },\n color: { value: '{colors.font.primary.value}' },\n\n _hover: {\n color: { value: '{colors.font.focus.value}' },\n backgroundColor: { value: '{colors.brand.primary.10.value}' },\n borderColor: { value: '{colors.brand.primary.60.value}' },\n },\n _focus: {\n color: { value: '{colors.font.focus.value}' },\n backgroundColor: { value: '{colors.brand.primary.10.value}' },\n borderColor: { value: '{colors.border.focus.value}' },\n boxShadow: { value: '{components.fieldcontrol._focus.boxShadow.value}' },\n },\n _active: {\n color: { value: '{colors.font.active.value}' },\n backgroundColor: { value: '{colors.brand.primary.20.value}' },\n borderColor: { value: '{colors.brand.primary.100.value}' },\n },\n _loading: {\n color: { value: '{colors.font.disabled.value}' },\n backgroundColor: { value: 'transparent' },\n borderColor: { value: '{colors.border.tertiary.value}' },\n },\n _disabled: {\n color: { value: '{colors.font.disabled.value}' },\n backgroundColor: { value: 'transparent' },\n borderColor: { value: '{colors.border.tertiary.value}' },\n },\n\n // variations\n primary: {\n borderColor: { value: 'transparent' },\n borderWidth: { value: '{borderWidths.small.value}' },\n borderStyle: { value: 'solid' },\n backgroundColor: { value: '{colors.brand.primary.80.value}' },\n color: { value: '{colors.font.inverse.value}' },\n _disabled: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.background.disabled.value}' },\n color: { value: '{colors.font.disabled.value}' },\n },\n _loading: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.background.disabled.value}' },\n color: { value: '{colors.font.disabled.value}' },\n },\n _hover: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.brand.primary.90.value}' },\n color: { value: '{colors.font.inverse.value}' },\n },\n _focus: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.brand.primary.90.value}' },\n color: { value: '{colors.font.inverse.value}' },\n boxShadow: { value: '{components.fieldcontrol._focus.boxShadow.value}' },\n },\n _active: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.brand.primary.100.value}' },\n color: { value: '{colors.font.inverse.value}' },\n },\n },\n\n menu: {\n borderWidth: { value: 0 },\n backgroundColor: { value: 'transparent' },\n justifyContent: { value: 'start' },\n // Focus and hover styles are identical for menu variation\n // because for Menu primitive, menu items are forced to be focused even\n // for mouse interactions, making it impossible to distinguish the two interactions\n _hover: {\n color: { value: '{colors.font.inverse.value}' },\n backgroundColor: { value: '{colors.brand.primary.80.value}' },\n },\n _focus: {\n color: { value: '{colors.font.inverse.value}' },\n backgroundColor: { value: '{colors.brand.primary.80.value}' },\n },\n _active: {\n color: { value: '{colors.font.inverse.value}' },\n backgroundColor: { value: '{colors.brand.primary.90.value}' },\n },\n _disabled: {\n color: { value: '{colors.font.disabled.value}' },\n },\n },\n\n link: {\n borderWidth: { value: 0 },\n borderColor: { value: 'transparent' },\n backgroundColor: { value: 'transparent' },\n color: { value: '{colors.font.interactive.value}' },\n _hover: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.brand.primary.10.value}' },\n color: { value: '{colors.font.hover.value}' },\n },\n _focus: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.brand.primary.10.value}' },\n color: { value: '{colors.font.focus.value}' },\n boxShadow: { value: '{components.fieldcontrol._focus.boxShadow.value}' },\n },\n _active: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.brand.primary.20.value}' },\n color: { value: '{colors.font.active.value}' },\n },\n _disabled: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: 'transparent' },\n color: { value: '{colors.font.disabled.value}' },\n },\n _loading: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: 'transparent' },\n color: { value: '{colors.font.disabled.value}' },\n },\n },\n\n // sizes\n small: {\n fontSize: { value: '{components.fieldcontrol.small.fontSize.value}' },\n paddingBlockStart: {\n value: '{components.fieldcontrol.small.paddingBlockStart.value}',\n },\n paddingBlockEnd: {\n value: '{components.fieldcontrol.small.paddingBlockEnd.value}',\n },\n paddingInlineStart: {\n value: '{components.fieldcontrol.small.paddingInlineStart.value}',\n },\n paddingInlineEnd: {\n value: '{components.fieldcontrol.small.paddingInlineEnd.value}',\n },\n },\n\n large: {\n fontSize: { value: '{components.fieldcontrol.large.fontSize.value}' },\n paddingBlockStart: {\n value: '{components.fieldcontrol.large.paddingBlockStart.value}',\n },\n paddingBlockEnd: {\n value: '{components.fieldcontrol.large.paddingBlockEnd.value}',\n },\n paddingInlineStart: {\n value: '{components.fieldcontrol.large.paddingInlineStart.value}',\n },\n paddingInlineEnd: {\n value: '{components.fieldcontrol.large.paddingInlineEnd.value}',\n },\n },\n\n loaderWrapper: {\n alignItems: {\n value: 'center',\n },\n gap: {\n value: '{space.xs.value}',\n },\n },\n};\n","module.exports = {\n backgroundColor: { value: '{colors.background.primary.value}' },\n borderRadius: { value: '{radii.xs.value}' },\n borderWidth: { value: '0' },\n borderStyle: { value: 'solid' },\n borderColor: { value: 'transparent' },\n boxShadow: { value: 'none' },\n padding: { value: '{space.medium.value}' },\n\n outlined: {\n backgroundColor: { value: '{components.card.backgroundColor.value}' },\n borderRadius: { value: '{radii.xs.value}' },\n borderWidth: { value: '{borderWidths.small.value}' },\n borderStyle: { value: 'solid' },\n borderColor: { value: '{colors.border.primary.value}' },\n boxShadow: { value: '{components.card.boxShadow.value}' },\n },\n\n elevated: {\n backgroundColor: { value: '{components.card.backgroundColor.value}' },\n borderRadius: { value: '{radii.xs.value}' },\n borderWidth: { value: '0' },\n borderStyle: { value: 'solid' },\n borderColor: { value: 'transparent' },\n boxShadow: { value: '{shadows.medium.value}' },\n },\n};\n","module.exports = {\n cursor: { value: 'pointer' },\n alignItems: { value: 'center' },\n _disabled: {\n cursor: {\n value: 'not-allowed',\n },\n },\n button: {\n position: { value: 'relative' },\n alignItems: { value: 'center' },\n justifyContent: { value: 'center' },\n color: { value: '{colors.white.value}' },\n before: {\n width: { value: '100%' },\n height: { value: '100%' },\n borderWidth: { value: '{borderWidths.medium.value}' },\n borderRadius: { value: '20%' },\n borderStyle: { value: 'solid' },\n borderColor: { value: '{colors.border.primary.value}' },\n },\n _focus: {\n outlineColor: { value: '{colors.transparent.value}' },\n outlineStyle: { value: 'solid' },\n outlineWidth: { value: '{outlineWidths.medium.value}' },\n outlineOffset: { value: '{outlineOffsets.medium.value}' },\n borderColor: { value: '{colors.transparent.value}' },\n boxShadow: {\n value: {\n offsetX: '0px',\n offsetY: '0px',\n blurRadius: '0px',\n spreadRadius: '2px',\n color: '{colors.border.focus.value}',\n },\n },\n },\n _disabled: {\n borderColor: { value: '{colors.border.disabled.value}' },\n },\n _error: {\n borderColor: { value: '{colors.border.error.value}' },\n _focus: {\n borderColor: { value: '{colors.transparent.value}' },\n boxShadow: {\n value: {\n offsetX: '0px',\n offsetY: '0px',\n blurRadius: '0px',\n spreadRadius: '2px',\n color: '{colors.border.error.value}',\n },\n },\n },\n },\n },\n icon: {\n backgroundColor: { value: '{colors.brand.primary.80.value}' },\n borderRadius: { value: '20%' },\n opacity: { value: '{opacities.0.value}' },\n transform: { value: 'scale(0)' },\n transitionProperty: { value: 'all' },\n transitionDuration: { value: '{time.short.value}' },\n transitionTimingFunction: { value: 'ease-in-out' },\n _checked: {\n opacity: { value: '{opacities.100.value}' },\n transform: { value: 'scale(1)' },\n _disabled: {\n backgroundColor: { value: '{colors.background.disabled.value}' },\n },\n },\n },\n label: {\n _disabled: {\n color: { value: '{colors.font.disabled.value}' },\n },\n },\n};\n","module.exports = {\n alignItems: { value: 'flex-start' },\n alignContent: { value: 'center' },\n flexDirection: { value: 'column' },\n justifyContent: { value: 'center' },\n};\n","module.exports = {\n height: {\n value: '100%',\n },\n};\n","module.exports = {\n borderStyle: { value: 'solid' },\n borderColor: { value: '{colors.border.primary.value}' },\n borderWidth: { value: '{borderWidths.medium.value}' },\n\n small: {\n borderWidth: { value: '{borderWidths.small.value}' },\n },\n\n large: {\n borderWidth: { value: '{borderWidths.large.value}' },\n },\n\n opacity: {\n value: '{opacities.60.value}',\n },\n};\n","module.exports = {\n display: { value: 'block' },\n backgroundColor: { value: '{colors.white.value}' },\n borderRadius: { value: '{radii.medium.value}' },\n boxShadow: {\n value: '{shadows.large.value}',\n },\n width: { value: '100%' },\n item: {\n marginTop: { value: '1px' },\n boxShadow: {\n value: '{shadows.small.value}',\n },\n borderBottomLeftRadius: { value: '{radii.medium.value}' },\n borderBottomRightRadius: { value: '{radii.medium.value}' },\n borderTopLeftRadius: { value: '{radii.medium.value}' },\n borderTopRightRadius: { value: '{radii.medium.value}' },\n borderStartStartRadius: { value: '{radii.medium.value}' },\n borderStartEndRadius: { value: '{radii.medium.value}' },\n borderEndStartRadius: { value: '{radii.medium.value}' },\n borderEndEndRadius: { value: '{radii.medium.value}' },\n _focus: {\n boxShadow: {\n value: {\n offsetX: '0',\n offsetY: '0',\n blurRadius: '0',\n spreadRadius: '2px',\n color: '{colors.border.focus.value}',\n },\n },\n },\n },\n header: {\n boxShadow: {\n value: {\n offsetX: '0',\n offsetY: '1px',\n blurRadius: '0',\n color: '{colors.overlay.20.value}',\n },\n },\n },\n trigger: {\n minHeight: { value: '3rem' },\n paddingInlineStart: { value: '{space.large.value}' },\n paddingInlineEnd: { value: '{space.large.value}' },\n alignItems: { value: 'center' },\n justifyContent: { value: 'space-between' },\n _hover: {\n backgroundColor: { value: '{colors.overlay.10.value}' },\n },\n },\n content: {\n paddingInlineStart: { value: '{space.large.value}' },\n paddingInlineEnd: { value: '{space.large.value}' },\n text: {\n color: { value: '{colors.font.secondary.value}' },\n paddingBlockStart: { value: '{space.medium.value}' },\n paddingBlockEnd: { value: '{space.medium.value}' },\n },\n _open: {\n animationDuration: { value: '{time.medium.value}' },\n animationTimingFunction: { value: 'cubic-bezier(0.87, 0, 0.13, 1)' },\n },\n _closed: {\n animationDuration: { value: '{time.medium.value}' },\n animationTimingFunction: { value: 'cubic-bezier(0.87, 0, 0.13, 1)' },\n },\n },\n icon: {\n transitionDuration: { value: '{time.medium.value}' },\n transitionTimingFunction: { value: 'cubic-bezier(0.87, 0, 0.13, 1)' },\n },\n};\n","module.exports = {\n // default styles\n gap: { value: '{space.xs.value}' },\n fontSize: { value: '{fontSizes.medium.value}' },\n\n // Adjust base fontSize and gap for small and large sizes\n small: {\n gap: { value: '{space.xxxs.value}' },\n fontSize: { value: '{fontSizes.small.value}' },\n },\n large: {\n gap: { value: '{space.small.value}' },\n fontSize: { value: '{fontSizes.large.value}' },\n },\n\n label: {\n color: { value: '{colors.font.secondary.value}' },\n },\n};\n","module.exports = {\n borderStyle: { value: 'solid' },\n borderColor: { value: '{colors.border.primary.value}' },\n borderWidth: { value: '{borderWidths.small.value}' },\n borderRadius: { value: '{radii.small.value}' },\n color: { value: '{colors.font.primary.value}' },\n paddingBlockStart: {\n value: '{space.xs.value}',\n },\n paddingBlockEnd: {\n value: '{space.xs.value}',\n },\n paddingInlineStart: {\n value: '{space.medium.value}',\n },\n paddingInlineEnd: {\n value: '{space.medium.value}',\n },\n\n fontSize: { value: '{components.field.fontSize.value}' },\n lineHeight: { value: '{lineHeights.medium.value}' },\n transitionDuration: { value: '{time.medium.value}' },\n outlineColor: { value: '{colors.transparent.value}' },\n outlineStyle: { value: 'solid' },\n outlineWidth: { value: '{outlineWidths.medium.value}' },\n outlineOffset: { value: '{outlineOffsets.medium.value}' },\n\n small: {\n fontSize: { value: '{components.field.small.fontSize.value}' },\n paddingBlockStart: {\n value: '{space.xxs.value}',\n },\n paddingBlockEnd: {\n value: '{space.xxs.value}',\n },\n paddingInlineStart: {\n value: '{space.small.value}',\n },\n paddingInlineEnd: {\n value: '{space.small.value}',\n },\n },\n large: {\n fontSize: { value: '{components.field.large.fontSize.value}' },\n paddingBlockStart: {\n value: '{space.xs.value}',\n },\n paddingBlockEnd: {\n value: '{space.xs.value}',\n },\n paddingInlineStart: {\n value: '{space.medium.value}',\n },\n paddingInlineEnd: {\n value: '{space.medium.value}',\n },\n },\n\n quiet: {\n borderStyle: { value: 'none' },\n borderBlockEnd: {\n value: '{borderWidths.small.value} solid {colors.border.primary.value}',\n },\n borderInlineStart: { value: 'none' },\n borderInlineEnd: { value: 'none' },\n borderBlockStart: { value: 'none' },\n borderRadius: { value: '0' },\n _focus: {\n borderBlockEndColor: { value: '{colors.border.focus.value}' },\n boxShadow: {\n value: {\n offsetX: '0px',\n offsetY: '1px',\n color: '{colors.border.focus.value}',\n },\n },\n },\n _error: {\n borderBlockEndColor: { value: '{colors.border.error.value}' },\n _focus: {\n boxShadow: {\n value: {\n offsetX: '0px',\n offsetY: '1px',\n color: '{colors.border.error.value}',\n },\n },\n },\n },\n },\n _focus: {\n // These focus styles have been calibrated to create\n // a highly visible focus indicator per WCAG 2.1 guidliness:\n // See: https://www.w3.org/WAI/WCAG21/Techniques/general/G195.html\n //\n // Key features:\n // * Focus indicator area is at least the 1 CSS px border around the component.\n // * Contrast between focused and unfocused states has a ratio of 3:1\n //\n // IMPORTANT: Must recalibrate if `colors.border.primary` or `colors.focus` are changed\n borderColor: { value: '{colors.border.focus.value}' },\n boxShadow: {\n value: {\n offsetX: '0px',\n offsetY: '0px',\n blurRadius: '0px',\n spreadRadius: '1px',\n color: '{colors.border.focus.value}',\n },\n },\n },\n _disabled: {\n color: { value: '{colors.font.disabled.value}' },\n cursor: { value: 'not-allowed' },\n borderColor: { value: '{colors.transparent.value}' },\n backgroundColor: { value: '{colors.background.disabled.value}' },\n },\n _error: {\n borderColor: { value: '{colors.border.error.value}' },\n _focus: {\n boxShadow: {\n value: {\n offsetX: '0px',\n offsetY: '0px',\n blurRadius: '0px',\n spreadRadius: '1px',\n color: '{colors.border.error.value}',\n },\n },\n },\n },\n};\n","module.exports = {\n gap: { value: 0 },\n vertical: {\n alignItems: { value: 'center' },\n },\n outer: {\n alignItems: { value: 'center' },\n },\n};\n","module.exports = {\n error: {\n color: { value: '{colors.font.error.value}' },\n fontSize: { value: '{fontSizes.small.value}' },\n },\n description: {\n color: { value: '{colors.font.secondary.value}' },\n fontStyle: { value: 'italic' },\n fontSize: { value: '{fontSizes.small.value}' },\n },\n};\n","module.exports = {\n gap: { value: '{space.medium.value}' },\n justifyContent: { value: 'normal' },\n alignItems: { value: 'stretch' },\n alignContent: { value: 'normal' },\n flexWrap: { value: 'nowrap' },\n};\n","module.exports = {\n color: { value: '{colors.font.primary.value}' },\n lineHeight: { value: '{lineHeights.small.value}' },\n\n 1: {\n fontSize: { value: '{fontSizes.xxxxl.value}' },\n fontWeight: { value: '{fontWeights.light.value}' },\n },\n 2: {\n fontSize: { value: '{fontSizes.xxxl.value}' },\n fontWeight: { value: '{fontWeights.normal.value}' },\n },\n 3: {\n fontSize: { value: '{fontSizes.xxl.value}' },\n fontWeight: { value: '{fontWeights.medium.value}' },\n },\n 4: {\n fontSize: { value: '{fontSizes.xl.value}' },\n fontWeight: { value: '{fontWeights.semibold.value}' },\n },\n 5: {\n fontSize: { value: '{fontSizes.large.value}' },\n fontWeight: { value: '{fontWeights.bold.value}' },\n },\n 6: {\n fontSize: { value: '{fontSizes.medium.value}' },\n fontWeight: { value: '{fontWeights.extrabold.value}' },\n },\n};\n","module.exports = {\n lineHeight: { value: 1 },\n height: { value: '1em' }, // Should match height of parent container font-size\n};\n","module.exports = {\n maxWidth: { value: '100%' },\n height: { value: 'auto' },\n objectFit: { value: 'initial' },\n objectPosition: { value: 'initial' },\n};\n","module.exports = {\n active: {\n color: { value: '{colors.font.active.value}' },\n },\n color: { value: '{colors.font.interactive.value}' },\n focus: {\n color: { value: '{colors.font.focus.value}' },\n },\n hover: {\n color: { value: '{colors.font.hover.value}' },\n },\n large: {\n fontSize: { value: '{fontSizes.large.value}' },\n },\n small: {\n fontSize: { value: '{fontSizes.small.value}' },\n },\n visited: {\n color: { value: '{colors.font.interactive.value}' },\n },\n};\n","module.exports = {\n width: { value: '{fontSizes.medium.value}' },\n height: { value: '{fontSizes.medium.value}' },\n strokeEmpty: { value: '{colors.neutral.20.value}' },\n strokeFilled: { value: '{colors.brand.primary.80.value}' },\n strokeLinecap: { value: 'round' },\n animationDuration: { value: '1s' },\n small: {\n width: { value: '{fontSizes.small.value}' },\n height: { value: '{fontSizes.small.value}' },\n },\n large: {\n width: { value: '{fontSizes.large.value}' },\n height: { value: '{fontSizes.large.value}' },\n },\n linear: {\n width: { value: '100%' },\n minWidth: { value: '5rem' },\n height: { value: '{fontSizes.medium.value}' },\n strokeWidth: { value: '{fontSizes.medium.value}' },\n strokeFilled: { value: '{colors.brand.primary.80.value}' },\n strokeEmpty: { value: '{colors.neutral.20.value}' },\n strokeLinecap: { value: 'round' },\n animationDuration: { value: '1s' },\n small: {\n height: { value: '{fontSizes.small.value}' },\n strokeWidth: { value: '{fontSizes.small.value}' },\n },\n large: {\n height: { value: '{fontSizes.large.value}' },\n strokeWidth: { value: '{fontSizes.large.value}' },\n },\n },\n};\n","module.exports = {\n backgroundColor: { value: '{colors.white.value}' },\n borderRadius: { value: '{radii.medium.value}' },\n borderWidth: { value: '{borderWidths.small.value}' },\n borderStyle: { value: 'solid' },\n borderColor: { value: '{colors.border.primary.value}' },\n boxShadow: { value: '{shadows.large.value}' },\n flexDirection: { value: 'column' },\n gap: { value: 0 },\n maxWidth: { value: '30rem' },\n minWidth: { value: '14rem' },\n\n small: {\n width: { value: '{fontSizes.medium.value}' },\n height: { value: '{fontSizes.medium.value}' },\n },\n large: {\n width: { value: '{fontSizes.xxxl.value}' },\n height: { value: '{fontSizes.xxxl.value}' },\n },\n item: {\n minHeight: { value: '2.5rem' },\n paddingInlineStart: { value: '{space.medium.value}' },\n paddingInlineEnd: { value: '{space.medium.value}' },\n },\n};\n","module.exports = {\n current: {\n alignItems: { value: 'center' },\n justifyContent: { value: 'center' },\n color: { value: '{colors.white.value}' },\n fontSize: { value: '{fontSizes.small.value}' },\n backgroundColor: { value: '{colors.overlay.40.value}' },\n },\n button: {\n color: { value: '{colors.font.primary.value}' },\n paddingInlineStart: { value: '{space.xxs.value}' },\n paddingInlineEnd: { value: '{space.xxs.value}' },\n transitionProperty: { value: 'background-color' },\n transitionDuration: { value: '{time.medium.value}' },\n hover: {\n backgroundColor: { value: '{colors.overlay.10.value}' },\n color: { value: '{colors.font.primary.value}' },\n },\n disabled: {\n color: { value: '{colors.font.disabled.value}' },\n },\n },\n ellipsis: {\n alignItems: { value: 'baseline' },\n justifyContent: { value: 'center' },\n paddingInlineStart: { value: '{space.xs.value}' },\n paddingInlineEnd: { value: '{space.xs.value}' },\n },\n itemContainer: {\n marginLeft: { value: '{space.xxxs.value}' },\n marginRight: { value: '{space.xxxs.value}' },\n },\n itemShared: {\n height: { value: '{fontSizes.xxl.value}' },\n minWidth: { value: '{fontSizes.xxl.value}' },\n borderRadius: { value: '{fontSizes.medium.value}' },\n },\n};\n","module.exports = {};\n","module.exports = {\n borderRadius: { value: '{radii.small.value}' },\n transitionDuration: { value: '{time.long.value}' },\n\n startColor: { value: '{colors.background.secondary.value}' },\n endColor: { value: '{colors.background.tertiary.value}' },\n\n // sizes\n small: {\n height: { value: '{space.small.value}' },\n },\n default: {\n height: { value: '{space.medium.value}' },\n },\n large: {\n height: { value: '{space.large.value}' },\n },\n};\n","module.exports = {\n alignItems: { value: 'center' },\n justifyContent: { value: 'flex-start' },\n gap: { value: 'inherit' },\n _disabled: { cursor: { value: 'not-allowed' } },\n button: {\n alignItems: { value: 'center' },\n justifyContent: { value: 'center' },\n width: { value: '{fontSizes.medium.value}' },\n height: { value: '{fontSizes.medium.value}' },\n boxSizing: { value: 'border-box' },\n borderWidth: { value: '{borderWidths.medium.value}' },\n borderStyle: { value: 'solid' },\n borderRadius: { value: '50%' },\n borderColor: { value: '{colors.border.primary.value}' },\n color: { value: '{colors.white.value}' },\n backgroundColor: { value: '{colors.white.value}' },\n transitionProperty: { value: 'all' },\n transitionDuration: { value: '{time.medium.value}' },\n outlineColor: { value: '{colors.transparent.value}' },\n outlineStyle: { value: 'solid' },\n outlineWidth: { value: '{outlineWidths.medium.value}' },\n outlineOffset: { value: '{outlineOffsets.medium.value}' },\n // We want the dot inside the border to be a border-width from the border\n padding: { value: '{borderWidths.medium.value}' },\n\n small: {\n width: { value: '{fontSizes.small.value}' },\n height: { value: '{fontSizes.small.value}' },\n },\n large: {\n width: { value: '{fontSizes.large.value}' },\n height: { value: '{fontSizes.large.value}' },\n },\n\n _checked: {\n color: {\n value: '{colors.brand.primary.80.value}',\n },\n _disabled: { color: { value: '{colors.background.disabled.value}' } },\n },\n\n _focus: {\n borderColor: { value: '{colors.border.focus.value}' },\n boxShadow: { value: '{components.fieldcontrol._focus.boxShadow.value}' },\n },\n\n _error: {\n borderColor: { value: '{colors.border.error.value}' },\n _focus: {\n boxShadow: {\n value: '{components.fieldcontrol._error._focus.boxShadow.value}',\n },\n },\n },\n\n _disabled: {\n borderColor: { value: '{colors.border.disabled.value}' },\n backgroundColor: { value: '{colors.background.primary.value}' },\n },\n },\n\n label: {\n _disabled: {\n color: {\n value: '{colors.font.disabled.value}',\n },\n },\n },\n};\n","module.exports = {\n large: { size: { value: '{fontSizes.xxxl.value}' } },\n default: { size: { value: '{fontSizes.xl.value}' } },\n small: { size: { value: '{fontSizes.small.value}' } },\n filled: { color: { value: '{colors.brand.secondary.80.value}' } },\n empty: { color: { value: '{colors.background.tertiary.value}' } },\n};\n","module.exports = {\n paddingInlineEnd: { value: '{space.xxl.value}' },\n // wrappers\n wrapper: {\n flex: { value: '1' },\n display: { value: 'block' },\n position: { value: 'relative' },\n cursor: { value: 'pointer' },\n },\n iconWrapper: {\n alignItems: { value: 'center' },\n position: { value: 'absolute' },\n top: { value: '50%' },\n right: { value: '{space.medium.value}' },\n transform: { value: 'translateY(-50%)' },\n pointerEvents: { value: 'none' },\n },\n // for Firefox only, to fix background color in darkmode\n option: {\n backgroundColor: { value: '{colors.background.primary.value}' },\n },\n whiteSpace: { value: 'nowrap' },\n minWidth: { value: '6.5rem' },\n small: {\n minWidth: { value: '5.5rem' },\n },\n large: {\n minWidth: { value: '7.5rem' },\n },\n};\n","module.exports = {\n flexDirection: {\n value: 'column',\n },\n};\n","module.exports = {\n paddingBlock: { value: '{space.xs.value}' },\n\n // The track is the thin background of the slider\n track: {\n backgroundColor: { value: '{colors.background.tertiary.value}' },\n borderRadius: { value: '9999px' },\n height: { value: '0.375rem' },\n minWidth: { value: '10rem' },\n },\n\n // The range is the filled part of the track\n range: {\n backgroundColor: { value: '{colors.brand.primary.80.value}' },\n borderRadius: { value: '9999px' },\n _disabled: {\n backgroundColor: { value: '{colors.background.disabled.value}' },\n },\n },\n\n // The thumb is the circle above the track that the user drags\n thumb: {\n width: { value: '1.25rem' },\n height: { value: '1.25rem' },\n backgroundColor: { value: '{colors.background.primary.value}' },\n boxShadow: { value: '{shadows.small.value}' },\n borderRadius: { value: '50%' },\n borderWidth: { value: '{borderWidths.small.value}' },\n borderColor: { value: '{colors.border.primary.value}' },\n borderStyle: { value: 'solid' },\n _disabled: {\n backgroundColor: { value: '{colors.background.disabled.value}' },\n borderColor: { value: 'transparent' },\n boxShadow: { value: 'none' },\n },\n _hover: {\n backgroundColor: { value: '{colors.background.primary.value}' },\n borderColor: { value: '{colors.border.focus.value}' },\n },\n _focus: {\n boxShadow: {\n value: {\n offsetX: '0',\n offsetY: '0',\n blurRadius: '0',\n spreadRadius: '3px',\n color: '{colors.border.focus.value}',\n },\n },\n },\n },\n\n small: {\n track: {\n height: { value: '0.25rem' },\n },\n thumb: {\n width: { value: '1rem' },\n height: { value: '1rem' },\n },\n },\n\n large: {\n track: {\n height: { value: '0.625rem' },\n },\n thumb: {\n width: { value: '1.5rem' },\n height: { value: '1.5rem' },\n },\n },\n};\n","module.exports = {\n flexDirection: { value: 'column' },\n input: {\n textAlign: { value: 'center' },\n },\n};\n","module.exports = {\n // States\n disabled: {\n opacity: { value: '{opacities.60.value}' },\n },\n focused: {\n shadow: { value: '{shadows.small.value}' },\n },\n\n // Sizes\n large: {\n fontSize: { value: '{fontSizes.large.value}' },\n },\n small: {\n fontSize: { value: '{fontSizes.small.value}' },\n },\n\n // Child elements\n label: {\n padding: { value: '{space.xs.value}' },\n },\n\n thumb: {\n backgroundColor: { value: '{colors.background.primary.value}' },\n borderColor: { value: '{colors.border.tertiary.value}' },\n borderRadius: { value: '{radii.xxxl.value}' },\n checked: {\n transform: { value: '{transforms.slideX.medium.value}' },\n },\n transition: {\n duration: { value: '{time.medium.value}' },\n },\n width: { value: '{space.relative.medium.value}' },\n },\n\n track: {\n backgroundColor: { value: '{colors.background.tertiary.value}' },\n borderRadius: { value: '{radii.xxxl.value}' },\n checked: {\n backgroundColor: { value: '{colors.brand.primary.60.value}' },\n },\n height: { value: '{space.relative.medium.value}' },\n padding: { value: '{outlineWidths.medium.value}' },\n transition: {\n duration: { value: '{time.short.value}' },\n },\n width: { value: '{space.relative.xl.value}' },\n },\n};\n","module.exports = {\n /**\n * Default table styles\n */\n borderCollapse: { value: 'collapse' },\n display: { value: 'table' },\n width: { value: '100%' },\n\n /**\n * Default table head styles\n */\n head: {\n display: { value: 'table-header-group' },\n verticalAlign: { value: 'middle' },\n },\n\n /**\n * Default table body styles\n */\n body: {\n display: { value: 'table-row-group' },\n verticalAlign: { value: 'middle' },\n },\n\n /**\n * Default table foot styles\n */\n foot: {\n display: { value: 'table-footer-group' },\n verticalAlign: { value: 'middle' },\n },\n\n /**\n * Default table row styles\n */\n row: {\n display: { value: 'table-row' },\n verticalAlign: { value: 'middle' },\n\n hover: {\n backgroundColor: { value: '{colors.background.tertiary.value}' },\n },\n\n striped: {\n backgroundColor: { value: '{colors.background.secondary.value}' },\n },\n },\n\n /**\n * Default table header cell styles\n */\n header: {\n borderColor: { value: '{colors.border.tertiary.value}' },\n borderStyle: { value: 'solid' },\n borderWidth: { value: '{borderWidths.small.value}' },\n color: { value: '{colors.font.primary.value}' },\n display: { value: 'table-cell' },\n fontSize: { value: '{fontSizes.medium.value}' },\n fontWeight: { value: '{fontWeights.bold.value}' },\n padding: { value: '{space.medium.value}' },\n verticalAlign: { value: 'middle' },\n\n large: {\n fontSize: { value: '{fontSizes.large.value}' },\n padding: { value: '{space.large.value}' },\n },\n\n small: {\n fontSize: { value: '{fontSizes.small.value}' },\n padding: { value: '{space.xs.value}' },\n },\n },\n\n /**\n * Default table data cell styles\n */\n data: {\n borderColor: { value: '{colors.border.tertiary.value}' },\n borderStyle: { value: 'solid' },\n borderWidth: { value: '{borderWidths.small.value}' },\n color: { value: '{colors.font.primary.value}' },\n display: { value: 'table-cell' },\n fontSize: { value: '{fontSizes.medium.value}' },\n fontWeight: { value: '{fontWeights.normal.value}' },\n padding: { value: '{space.medium.value}' },\n verticalAlign: { value: 'middle' },\n\n large: {\n fontSize: { value: '{fontSizes.large.value}' },\n padding: { value: '{space.large.value}' },\n },\n\n small: {\n fontSize: { value: '{fontSizes.small.value}' },\n padding: { value: '{space.xs.value}' },\n },\n },\n\n /**\n * Default table caption styles\n */\n caption: {\n captionSide: { value: 'bottom' },\n color: { value: '{colors.font.primary.value}' },\n display: { value: 'table-caption' },\n fontSize: { value: '{fontSizes.medium.value}' },\n textAlign: { value: 'center' },\n wordBreak: { value: 'break-all' },\n\n large: {\n fontSize: { value: '{fontSizes.large.value}' },\n },\n\n small: {\n fontSize: { value: '{fontSizes.small.value}' },\n },\n },\n};\n","module.exports = {\n backgroundColor: { value: 'transparent' },\n borderColor: { value: '{colors.border.secondary.value}' },\n borderStyle: { value: 'solid' },\n borderWidth: { value: '{borderWidths.medium.value}' },\n gap: { value: '0' },\n\n item: {\n backgroundColor: { value: 'transparent' },\n borderColor: { value: '{colors.border.secondary.value}' },\n borderStyle: { value: 'solid' },\n borderWidth: { value: '{borderWidths.medium.value}' },\n color: { value: '{colors.font.secondary.value}' },\n fontSize: { value: '{fontSizes.medium.value}' },\n fontWeight: { value: '{fontWeights.bold.value}' },\n paddingVertical: { value: '{space.small.value}' },\n paddingHorizontal: { value: '{space.medium.value}' },\n textAlign: { value: 'center' },\n transitionDuration: { value: '{time.medium.value}' },\n\n _hover: {\n color: { value: '{colors.font.hover.value}' },\n },\n _focus: {\n color: { value: '{colors.font.focus.value}' },\n },\n _active: {\n color: { value: '{colors.font.interactive.value}' },\n borderColor: { value: '{colors.font.interactive.value}' },\n backgroundColor: { value: 'transparent' },\n },\n _disabled: {\n color: { value: '{colors.font.disabled.value}' },\n backgroundColor: { value: 'transparent' },\n borderColor: { value: '{colors.border.tertiary.value}' },\n },\n },\n};\n","module.exports = {\n // default styles\n color: { value: '{colors.font.primary.value}' },\n\n // variations\n primary: {\n color: { value: '{colors.font.primary.value}' },\n },\n secondary: {\n color: { value: '{colors.font.secondary.value}' },\n },\n tertiary: {\n color: { value: '{colors.font.tertiary.value}' },\n },\n error: {\n color: { value: '{colors.font.error.value}' },\n },\n warning: {\n color: { value: '{colors.font.warning.value}' },\n },\n success: {\n color: { value: '{colors.font.success.value}' },\n },\n info: {\n color: { value: '{colors.font.info.value}' },\n },\n};\n","module.exports = {\n borderColor: { value: '{colors.border.primary.value}' },\n color: { value: '{colors.overlay.50.value}' },\n _hover: {\n backgroundColor: { value: '{colors.overlay.10.value}' },\n },\n _focus: {\n borderColor: { value: '{colors.border.focus.value}' },\n color: { value: '{colors.overlay.50.value}' },\n },\n _active: {\n backgroundColor: { value: '{colors.transparent.value}' },\n },\n _disabled: {\n backgroundColor: { value: '{colors.transparent.value}' },\n borderColor: { value: '{colors.border.secondary.value}' },\n color: { value: '{colors.font.disabled.value}' },\n },\n _pressed: {\n color: { value: '{colors.font.primary.value}' },\n backgroundColor: { value: '{colors.overlay.20.value}' },\n _hover: {\n backgroundColor: { value: '{colors.overlay.30.value}' },\n },\n },\n primary: {\n backgroundColor: { value: '{colors.transparent.value}' },\n borderWidth: { value: '{borderWidths.small.value}' },\n _focus: {\n borderColor: { value: '{colors.border.focus.value}' },\n backgroundColor: { value: '{colors.transparent.value}' },\n boxShadow: { value: '{components.fieldcontrol._focus.boxShadow.value}' },\n color: { value: '{colors.overlay.50.value}' },\n },\n _hover: {\n backgroundColor: { value: '{colors.overlay.10.value}' },\n color: { value: '{colors.overlay.50.value}' },\n },\n _disabled: {\n backgroundColor: { value: '{colors.background.tertiary.value}' },\n color: { value: '{colors.font.disabled.value}' },\n },\n _pressed: {\n backgroundColor: { value: '{colors.brand.primary.80.value}' },\n borderColor: { value: '{colors.brand.primary.80.value}' },\n color: { value: '{colors.white.value}' },\n _focus: {\n backgroundColor: {\n value: '{colors.border.focus.value}',\n },\n borderColor: { value: '{colors.border.focus.value}' },\n },\n _hover: {\n borderColor: { value: '{colors.brand.primary.60.value}' },\n backgroundColor: {\n value: '{colors.brand.primary.60.value}',\n },\n },\n },\n },\n link: {\n color: { value: '{colors.overlay.50.value}' },\n _hover: {\n backgroundColor: { value: '{colors.transparent.value}' },\n color: { value: '{colors.overlay.50.value}' },\n },\n _focus: {\n backgroundColor: { value: '{colors.transparent.value}' },\n color: { value: '{colors.overlay.50.value}' },\n },\n _disabled: {\n color: { value: '{colors.font.disabled.value}' },\n },\n _pressed: {\n backgroundColor: { value: '{colors.transparent.value}' },\n color: { value: '{colors.overlay.90.value}' },\n _hover: {\n backgroundColor: { value: '{colors.transparent.value}' },\n },\n },\n },\n};\n","module.exports = {\n alignItems: { value: 'center' },\n alignContent: { value: 'center' },\n justifyContent: { value: 'flex-start' },\n};\n","module.exports = {\n alert: require('./alert'),\n badge: require('./badge'),\n button: require('./button'),\n card: require('./card'),\n checkbox: require('./checkbox'),\n checkboxfield: require('./checkboxField'),\n countrycodeselect: require('./countryCodeSelect'),\n divider: require('./divider'),\n expander: require('./expander'),\n field: require('./field'),\n fieldcontrol: require('./fieldControl'),\n fieldgroup: require('./fieldGroup'),\n fieldmessages: require('./fieldMessages'),\n flex: require('./flex'),\n heading: require('./heading'),\n icon: require('./icon'),\n image: require('./image'),\n link: require('./link'),\n loader: require('./loader'),\n menu: require('./menu'),\n pagination: require('./pagination'),\n phonenumberfield: require('./phoneNumberField'),\n placeholder: require('./placeholder'),\n radio: require('./radio'),\n rating: require('./rating'),\n select: require('./select'),\n selectfield: require('./selectField'),\n sliderfield: require('./sliderField'),\n stepperfield: require('./stepperField'),\n switchfield: require('./switchField'),\n table: require('./table'),\n tabs: require('./tabs'),\n text: require('./text'),\n togglebutton: require('./toggleButton'),\n togglebuttongroup: require('./toggleButtonGroup'),\n};\n","export * from './helpers';\nexport * from './i18n';\nexport * from './machines';\nexport * from './theme';\nexport * from './types';\n","export * from './auth';\nexport * from './utils';\n","import { Hub } from 'aws-amplify';\nimport { Sender } from 'xstate';\nimport includes from 'lodash/includes';\n\nimport { AuthContext } from '..';\nimport {\n ActorContextWithForms,\n AuthActorContext,\n AuthActorState,\n AuthEvent,\n AuthEventData,\n AuthEventTypes,\n AuthInputAttributes,\n AuthMachineSend,\n AuthMachineState,\n LoginMechanism,\n LoginMechanismArray,\n} from '../types';\n\nexport const authInputAttributes: AuthInputAttributes = {\n birthdate: {\n label: 'Birthdate',\n placeholder: 'Birthdate',\n type: 'date',\n autocomplete: 'bday',\n },\n confirmation_code: {\n label: 'Confirmation Code',\n placeholder: 'Code',\n type: 'text',\n autocomplete: 'one-time-code',\n },\n email: {\n label: 'Email',\n type: 'email',\n placeholder: 'Email',\n autocomplete: 'username',\n },\n family_name: {\n label: 'Family Name',\n placeholder: 'Family Name',\n type: 'text',\n autocomplete: 'family-name',\n },\n given_name: {\n label: 'Given Name',\n placeholder: 'Given Name',\n type: 'text',\n autocomplete: 'given-name',\n },\n middle_name: {\n label: 'Middle Name',\n placeholder: 'Middle Name',\n type: 'text',\n autocomplete: 'additional-name',\n },\n name: {\n label: 'Name',\n placeholder: 'Name',\n type: 'text',\n autocomplete: 'name',\n },\n nickname: {\n label: 'Nickname',\n placeholder: 'Nickname',\n type: 'text',\n autocomplete: 'tel',\n },\n password: {\n label: 'Password',\n placeholder: 'Password',\n type: 'password',\n autocomplete: 'password',\n },\n phone_number: {\n label: 'Phone Number',\n placeholder: 'Phone',\n type: 'tel',\n autocomplete: 'tel',\n },\n preferred_username: {\n label: 'Preferred Username',\n placeholder: 'Preferred Username',\n type: 'text',\n },\n profile: {\n label: 'Profile',\n placeholder: 'Profile',\n type: 'url',\n autocomplete: 'url',\n },\n website: {\n label: 'Website',\n placeholder: 'Website',\n type: 'url',\n autocomplete: 'url',\n },\n username: {\n label: 'Username',\n type: 'text',\n placeholder: 'Username',\n autocomplete: 'username',\n },\n};\n\nexport enum FederatedIdentityProviders {\n Apple = 'SignInWithApple',\n Amazon = 'LoginWithAmazon',\n Facebook = 'Facebook',\n Google = 'Google',\n}\n\n/**\n * Given xstate context from AuthMachine, this returns the input label, type,\n * and error attributes of the configured login_mechanisms. An optional \"alias\"\n * may be passed in to get info from context for that specific alias.\n */\nexport const getAliasInfoFromContext = (\n context: AuthContext,\n // TODO This function & its signature should be renamed since aliases were rolled back\n alias?: LoginMechanism\n) => {\n const loginMechanisms = context.config?.loginMechanisms;\n const error = context.actorRef?.context?.validationError['username'];\n\n if (LoginMechanismArray.includes(alias)) {\n return {\n label: authInputAttributes[alias].label,\n type: authInputAttributes[alias].type,\n error,\n };\n }\n\n let type = 'text';\n const label = loginMechanisms\n .filter((mechanism) => includes(LoginMechanismArray, mechanism))\n .map((v) => {\n return (\n authInputAttributes[v]?.label ?? authInputAttributes['username'].label\n );\n })\n .join(' or ');\n\n if (loginMechanisms.length === 1) {\n type = authInputAttributes[loginMechanisms[0]]?.type ?? 'text';\n }\n\n return { label, type, error };\n};\n\n/**\n * Given xstate context from AuthMachine, returns the primaryAlias and\n * secondaryAliases.\n */\nexport const getConfiguredAliases = (context: AuthContext) => {\n const loginMechanisms = context.config?.loginMechanisms;\n const aliases = loginMechanisms.filter((mechanism) =>\n includes(LoginMechanismArray, mechanism)\n );\n\n const [primaryAlias, ...secondaryAliases] = aliases;\n return { primaryAlias, secondaryAliases };\n};\n\n/**\n * Get the state of current actor. This is useful for checking which screen\n * to render: e.g. `getActorState(state).matches('confirmSignUp.edit').\n */\nexport const getActorState = (state: AuthMachineState): AuthActorState => {\n return state.context.actorRef?.getSnapshot();\n};\n\n/**\n * Get the context of current actor. Useful for getting any nested context\n * like remoteError.\n */\nexport const getActorContext = (state: AuthMachineState): AuthActorContext => {\n return getActorState(state)?.context;\n};\n\n/**\n * Creates public facing auth helpers that abstracts out xstate implementation\n * detail. Each framework implementation can export these helpers so that\n * developers can send events without having to learn internals.\n *\n * ```\n * const [state, send] = useActor(...);\n * const { submit } = getSendEventAliases(send);\n * submit({ username, password})\n * ```\n */\nexport const getSendEventAliases = (send: Sender<AuthEvent>) => {\n const sendToMachine = (type: AuthEventTypes) => {\n // TODO If these were created during the creation of the machine & provider,\n // then invalid transitions could be caught via https://xstate.js.org/docs/guides/states.html#state-can-event\n return (data?: AuthEventData) => send({ type, data });\n };\n\n return {\n resendCode: sendToMachine('RESEND'),\n signOut: sendToMachine('SIGN_OUT'),\n submitForm: sendToMachine('SUBMIT'),\n updateForm: sendToMachine('CHANGE'),\n updateBlur: sendToMachine('BLUR'),\n\n // Actions that don't immediately invoke a service but instead transition to a screen\n // are prefixed with `to*`\n\n toFederatedSignIn: sendToMachine('FEDERATED_SIGN_IN'),\n toResetPassword: sendToMachine('RESET_PASSWORD'),\n toSignIn: sendToMachine('SIGN_IN'),\n toSignUp: sendToMachine('SIGN_UP'),\n skipVerification: sendToMachine('SKIP'),\n } as const;\n};\n\nexport const getServiceContextFacade = (state: AuthMachineState) => {\n const user = state.context?.user;\n const actorState = getActorState(state);\n const actorContext = getActorContext(state) as ActorContextWithForms;\n const error = actorContext?.remoteError;\n const validationErrors = { ...actorContext?.validationError };\n const codeDeliveryDetails = actorContext?.codeDeliveryDetails;\n const hasValidationErrors = Object.keys(validationErrors).length > 0;\n const isPending =\n state.hasTag('pending') || getActorState(state)?.hasTag('pending');\n const route = (() => {\n switch (true) {\n case state.matches('idle'):\n return 'idle';\n case state.matches('setup'):\n return 'setup';\n case state.matches('signOut'):\n return 'signOut';\n case state.matches('authenticated'):\n return 'authenticated';\n case actorState?.matches('confirmSignUp'):\n return 'confirmSignUp';\n case actorState?.matches('confirmSignIn'):\n return 'confirmSignIn';\n case actorState?.matches('setupTOTP'):\n return 'setupTOTP';\n case actorState?.matches('signIn'):\n return 'signIn';\n case actorState?.matches('signUp'):\n return 'signUp';\n case actorState?.matches('forceNewPassword'):\n return 'forceNewPassword';\n case actorState?.matches('resetPassword'):\n return 'resetPassword';\n case actorState?.matches('confirmResetPassword'):\n return 'confirmResetPassword';\n case actorState?.matches('verifyUser'):\n return 'verifyUser';\n case actorState?.matches('confirmVerifyUser'):\n return 'confirmVerifyUser';\n default:\n console.debug(\n 'Cannot infer `route` from Authenticator state:',\n state.value\n );\n return null;\n }\n })();\n\n return {\n error,\n hasValidationErrors,\n isPending,\n route,\n user,\n validationErrors,\n codeDeliveryDetails,\n };\n};\n\nexport const getServiceFacade = ({ send, state }) => {\n const sendEventAliases = getSendEventAliases(send);\n const serviceContext = getServiceContextFacade(state);\n\n return {\n ...sendEventAliases,\n ...serviceContext,\n };\n};\n\n/**\n * Listens to external auth Hub events and sends corresponding event to\n * the `authService` of interest\n *\n * @param send - `send` function associated with the `authService` of interest\n *\n * @returns function that unsubscribes to the hub evenmt\n */\nexport const listenToAuthHub = (send: AuthMachineSend) => {\n return Hub.listen('auth', (data) => {\n switch (data.payload.event) {\n // TODO: We can add more cases here, according to\n // https://docs.amplify.aws/lib/auth/auth-events/q/platform/js/\n case 'signOut':\n send('SIGN_OUT');\n break;\n }\n });\n};\n","export * from './authMachine';\nexport * from './validator';\n\n// Prevents usage of T from being automatically inferred.\n// https://github.com/Microsoft/TypeScript/issues/14829#issuecomment-504042546\nexport type NoInfer<T> = [T][T extends any ? 0 : never];\n","import { CognitoUser, CodeDeliveryDetails } from 'amazon-cognito-identity-js';\nimport { Interpreter, State } from 'xstate';\nimport { ValidationError } from './validator';\nimport { defaultServices } from '../machines/authenticator/defaultServices';\n\nexport type AuthFormData = Record<string, string>;\n\nexport interface ActorDoneData {\n authAttributes?: AuthFormData;\n intent?: string;\n user?: CognitoUserAmplify;\n}\n\nexport interface AuthContext {\n actorRef?: any;\n config?: {\n loginMechanisms?: LoginMechanism[];\n signUpAttributes?: SignUpAttribute[];\n socialProviders?: SocialProvider[];\n initialState?: 'signIn' | 'signUp' | 'resetPassword';\n };\n services?: Partial<typeof defaultServices>;\n user?: CognitoUserAmplify;\n username?: string;\n password?: string;\n code?: string;\n mfaType?: AuthChallengeNames.SMS_MFA | AuthChallengeNames.SOFTWARE_TOKEN_MFA;\n actorDoneData?: Omit<ActorDoneData, 'user'>; // data returned from actors when they finish and reach their final state\n}\n\nexport interface ServicesContext {\n username?: string;\n password?: string;\n user?: string;\n code?: string;\n mfaType: AuthChallengeNames.SMS_MFA | AuthChallengeNames.SOFTWARE_TOKEN_MFA;\n}\n\ninterface BaseFormContext {\n authAttributes?: Record<string, any>;\n challengeName?: string;\n requiredAttributes?: Array<string>;\n formValues?: AuthFormData;\n touched?: AuthFormData;\n intent?: string;\n remoteError?: string;\n user?: CognitoUserAmplify;\n validationError?: ValidationError;\n codeDeliveryDetails?: CodeDeliveryDetails;\n country_code?: string;\n}\n\nexport interface SignInContext extends BaseFormContext {\n loginMechanisms: Required<AuthContext>['config']['loginMechanisms'];\n socialProviders: Required<AuthContext>['config']['socialProviders'];\n attributeToVerify?: string;\n redirectIntent?: string;\n unverifiedAttributes?: Record<string, string>;\n}\n\n// https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html\nexport const signUpFieldsWithDefault = [\n 'birthdate',\n 'email',\n 'family_name',\n 'given_name',\n 'middle_name',\n 'name',\n 'nickname',\n 'phone_number',\n 'preferred_username',\n 'profile',\n 'website',\n] as const;\n\nexport const signUpFieldsWithoutDefault = [\n 'address',\n 'gender',\n 'locale',\n 'picture',\n 'updated_at',\n 'zoneinfo',\n] as const;\n\nexport type SignUpFieldsWithDefaults = typeof signUpFieldsWithDefault[number];\n\nexport type SignUpFieldsWithoutDefaults =\n typeof signUpFieldsWithoutDefault[number];\n\nexport type SignUpAttribute =\n | SignUpFieldsWithDefaults\n | SignUpFieldsWithoutDefaults;\n\nexport interface SignUpContext extends BaseFormContext {\n loginMechanisms: Required<AuthContext>['config']['loginMechanisms'];\n socialProviders: Required<AuthContext>['config']['socialProviders'];\n unverifiedAttributes?: Record<string, string>;\n}\n\nexport interface ResetPasswordContext extends BaseFormContext {\n username?: string;\n unverifiedAttributes?: Record<string, string>;\n}\n\nexport interface SignOutContext {\n authAttributes?: Record<string, any>;\n challengeName?: string;\n unverifiedAttributes?: Record<string, string>;\n user?: CognitoUserAmplify;\n}\n\n// actors that have forms. Has `formValues, remoteErrror, and validationError in common.\nexport type ActorContextWithForms =\n | SignInContext\n | SignUpContext\n | ResetPasswordContext;\n\nexport type SignInState = State<SignInContext, AuthEvent>;\nexport type SignUpState = State<SignUpContext, AuthEvent>;\nexport type SignOutState = State<SignOutContext, AuthEvent>;\nexport type ResetPasswordState = State<ResetPasswordContext, AuthEvent>;\nexport type AuthActorContext = ActorContextWithForms | SignOutContext;\nexport type AuthActorState = State<AuthActorContext, AuthEvent>;\nexport interface CognitoUserAmplify extends CognitoUser {\n username?: string;\n attributes?: CognitoAttributes;\n}\n\nexport interface CognitoAttributes {\n email: string;\n phone_number: string;\n [key: string]: string;\n}\n\nexport type InvokeActorEventTypes =\n | 'done.invoke.signInActor'\n | 'done.invoke.signUpActor'\n | 'done.invoke.signOutActor'\n | 'done.invoke.resetPasswordActor';\n\nexport type AuthEventTypes =\n | 'CHANGE'\n | 'BLUR'\n | 'FEDERATED_SIGN_IN'\n | 'RESEND'\n | 'RESET_PASSWORD'\n | 'SIGN_IN'\n | 'SIGN_OUT'\n | 'SIGN_UP'\n | 'SKIP'\n | 'SUBMIT'\n | 'INIT'\n | InvokeActorEventTypes;\n\nexport enum AuthChallengeNames {\n SMS_MFA = 'SMS_MFA',\n SOFTWARE_TOKEN_MFA = 'SOFTWARE_TOKEN_MFA',\n NEW_PASSWORD_REQUIRED = 'NEW_PASSWORD_REQUIRED',\n RESET_REQUIRED = 'RESET_REQUIRED',\n MFA_SETUP = 'MFA_SETUP',\n}\n\nexport interface InputAttributes {\n label: string;\n type: string;\n placeholder: string;\n autocomplete?: string;\n}\n\nexport const LoginMechanismArray = [\n 'username',\n 'email',\n 'phone_number',\n] as const;\n\nexport type LoginMechanism = typeof LoginMechanismArray[number];\n\nexport type SocialProvider = 'amazon' | 'apple' | 'facebook' | 'google';\n\n// Auth fields that we provide default fields with\nexport type AuthFieldsWithDefaults =\n | LoginMechanism\n | SignUpFieldsWithDefaults\n | 'confirmation_code'\n | 'password';\n\nexport type AuthInputAttributes = Record<\n AuthFieldsWithDefaults,\n InputAttributes\n>;\n\nexport type AuthEventData = Record<PropertyKey, any>; // TODO: this should be typed further\n\nexport interface AuthEvent {\n type: AuthEventTypes;\n data?: AuthEventData;\n}\n\nexport type AuthMachineState = State<AuthContext, AuthEvent>;\n\nexport type AuthInterpreter = Interpreter<AuthContext, any, AuthEvent>;\n\nexport type AuthMachineSend = AuthInterpreter['send'];\n","import { AuthChallengeNames, AuthFormData } from './authMachine';\n\nexport type ValidationError = Record<string, string>;\n\n/**\n * Return type of validator. This is `null` if there are no error, and `ValidationError` otherwise.\n */\nexport type ValidatorResult = void | null | ValidationError; // null if there are no error, `ValidationError` otherwise\nexport type SignInResult = string; // null if there are no error, `ValidationError` otherwise\n\n/**\n * Validates the given formData. This can be synchronous or asynchronous.\n */\nexport type Validator = (\n formData: AuthFormData,\n touchData?: AuthFormData\n) => ValidatorResult | Promise<ValidatorResult>;\n\nexport type SignInTypes = (\n user: string,\n code: string,\n mfaType: AuthChallengeNames.SMS_MFA | AuthChallengeNames.SOFTWARE_TOKEN_MFA\n) => SignInResult | Promise<SignInResult>;\n","export type ContactMethod = 'Email' | 'Phone Number';\n\n// replaces all characters in a string with '*', except for the first and last char\nexport const censorAllButFirstAndLast = (value: string): string => {\n const split = value.trim().split('');\n for (let i = 0; i < split.length; i++) {\n if (i > 0 && i < split.length - 1) {\n split[i] = '*';\n }\n }\n\n return split.join('');\n};\n\n// censors all but the last four characters of a phone number\nexport const censorPhoneNumber = (val: string): string => {\n if (val.length < 4) {\n return val;\n }\n\n const split = val.split('');\n for (let i = 0; i < split.length - 4; i++) {\n split[i] = '*';\n }\n\n return split.join('');\n};\n\nexport const getFormDataFromEvent = (event: Event) => {\n const formData = new FormData(event.target as HTMLFormElement);\n return Object.fromEntries(formData);\n};\n","export * from './country-dial-codes';\nexport * from './translations';\n","export const countryDialCodes = [\n '+1',\n '+7',\n '+20',\n '+27',\n '+30',\n '+31',\n '+32',\n '+33',\n '+34',\n '+36',\n '+39',\n '+40',\n '+41',\n '+43',\n '+44',\n '+45',\n '+46',\n '+47',\n '+48',\n '+49',\n '+51',\n '+52',\n '+53',\n '+54',\n '+55',\n '+56',\n '+57',\n '+58',\n '+60',\n '+61',\n '+62',\n '+63',\n '+64',\n '+65',\n '+66',\n '+81',\n '+82',\n '+84',\n '+86',\n '+90',\n '+91',\n '+92',\n '+93',\n '+94',\n '+95',\n '+98',\n '+212',\n '+213',\n '+216',\n '+218',\n '+220',\n '+221',\n '+222',\n '+223',\n '+224',\n '+225',\n '+226',\n '+227',\n '+228',\n '+229',\n '+230',\n '+231',\n '+232',\n '+233',\n '+234',\n '+235',\n '+236',\n '+237',\n '+238',\n '+239',\n '+240',\n '+241',\n '+242',\n '+243',\n '+244',\n '+245',\n '+246',\n '+248',\n '+249',\n '+250',\n '+251',\n '+252',\n '+253',\n '+254',\n '+255',\n '+256',\n '+257',\n '+258',\n '+260',\n '+261',\n '+262',\n '+263',\n '+264',\n '+265',\n '+266',\n '+267',\n '+268',\n '+269',\n '+290',\n '+291',\n '+297',\n '+298',\n '+299',\n '+345',\n '+350',\n '+351',\n '+352',\n '+353',\n '+354',\n '+355',\n '+356',\n '+357',\n '+358',\n '+359',\n '+370',\n '+371',\n '+372',\n '+373',\n '+374',\n '+375',\n '+376',\n '+377',\n '+378',\n '+379',\n '+380',\n '+381',\n '+382',\n '+385',\n '+386',\n '+387',\n '+389',\n '+420',\n '+421',\n '+423',\n '+500',\n '+501',\n '+502',\n '+503',\n '+504',\n '+505',\n '+506',\n '+507',\n '+508',\n '+509',\n '+537',\n '+590',\n '+591',\n '+593',\n '+594',\n '+595',\n '+596',\n '+597',\n '+598',\n '+599',\n '+670',\n '+672',\n '+673',\n '+674',\n '+675',\n '+676',\n '+677',\n '+678',\n '+679',\n '+680',\n '+681',\n '+682',\n '+683',\n '+685',\n '+686',\n '+687',\n '+688',\n '+689',\n '+690',\n '+691',\n '+692',\n '+850',\n '+852',\n '+853',\n '+855',\n '+856',\n '+872',\n '+880',\n '+886',\n '+960',\n '+961',\n '+962',\n '+963',\n '+964',\n '+965',\n '+966',\n '+967',\n '+968',\n '+970',\n '+971',\n '+972',\n '+973',\n '+974',\n '+975',\n '+976',\n '+977',\n '+992',\n '+993',\n '+994',\n '+995',\n '+996',\n '+998',\n];\n","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { I18n } from 'aws-amplify';\nimport { NoInfer } from '../types';\nimport {\n deDict,\n enDict,\n esDict,\n frDict,\n itDict,\n jaDict,\n krDict,\n nlDict,\n plDict,\n ptDict,\n zhDict,\n svDict,\n defaultTexts,\n} from './dictionaries';\n\n/**\n * Contains translatable strings that authenticator provides by default. Customers\n * can use this to add custom vocabularies:\n *\n * ```\n * I18n.putVocabulariesForLanguage(\"en\", {\n * [DefaultTexts.SIGN_IN]: \"Custom Sign In Text\",\n * [DefaultTexts.SIGN_IN_BUTTON]: \"Custom Click Here to Sign In\"\n * });\n * ```\n */\nexport const DefaultTexts = { ...defaultTexts } as const;\n\n// type Phrase = \"Back to Sign In\" | \"Change Password\" | ...\nexport type Phrase = typeof DefaultTexts[keyof typeof DefaultTexts];\n\n/**\n * TODO: Translation keys for dictionaries can be inferred from DefaultTexts\n * by typing it to Partial<Record<Phrase, string>>.\n *\n * But this requires error string keys to be standarized as well, and can be a\n * limiting factor for custom translation keys. Marking it as TODO until we see\n * a reason to strongly type this.\n */\nexport type Dict = Record<string, string>;\n\n/**\n * This helper type checks that given phrase is one of the texts @aws-amplify/ui\n * provides by default. This enables vscode autocompletion to help catch typos\n * during development.\n *\n * You can also use translate<string> to handle custom strings or dynamic content.\n */\nexport function translate<T = Phrase>(phrase: NoInfer<T>): string {\n return I18n.get(phrase);\n}\n\n/**\n * Whether I18n has a translation entry for given phrase\n */\nexport function hasTranslation(phrase: string) {\n return I18n.get(phrase) !== phrase;\n}\n\nexport const translations: Record<string, Dict> = {\n de: deDict,\n en: enDict,\n es: esDict,\n fr: frDict,\n it: itDict,\n ja: jaDict,\n kr: krDict,\n nl: nlDict,\n pl: plDict,\n pt: ptDict,\n zh: zhDict,\n sv: svDict,\n};\n","import * as authenticatorDict from './authenticator';\n\n//merge all the new module translations in respective locale constants\nexport const deDict = { ...authenticatorDict.deDict };\nexport const enDict = { ...authenticatorDict.enDict };\nexport const esDict = { ...authenticatorDict.esDict };\nexport const frDict = { ...authenticatorDict.frDict };\nexport const itDict = { ...authenticatorDict.itDict };\nexport const jaDict = { ...authenticatorDict.jaDict };\nexport const krDict = { ...authenticatorDict.krDict };\nexport const nlDict = { ...authenticatorDict.nlDict };\nexport const plDict = { ...authenticatorDict.plDict };\nexport const ptDict = { ...authenticatorDict.ptDict };\nexport const zhDict = { ...authenticatorDict.zhDict };\nexport const svDict = { ...authenticatorDict.svDict };\n\nexport const defaultTexts = {\n ...authenticatorDict.defaultTexts,\n // new module related default texts goes here\n};\n","// translation dictionaries\nexport { deDict } from './de';\nexport { enDict } from './en';\nexport { esDict } from './es';\nexport { frDict } from './fr';\nexport { itDict } from './it';\nexport { jaDict } from './ja';\nexport { krDict } from './kr';\nexport { nlDict } from './nl';\nexport { plDict } from './pl';\nexport { ptDict } from './pt';\nexport { zhDict } from './zh';\nexport { svDict } from './sv';\n\n// default text phrases\nexport { defaultTexts } from './defaultTexts';\n","export const deDict = {\n 'Account recovery requires verified contact information':\n 'Zurücksetzen des Account benötigt einen verifizierten Account',\n 'An account with the given email already exists.':\n 'Ein Account mit dieser Email existiert bereits.',\n 'Back to Sign In': 'Zurück zur Anmeldung',\n 'Change Password': 'Passwort ändern',\n Code: 'Code',\n Confirm: 'Bestätigen',\n 'Confirm Password': 'Passwort bestätigen',\n 'Confirm a Code': 'Code bestätigen',\n 'Confirm Sign In': 'Anmeldung bestätigen',\n 'Confirm Sign Up': 'Registrierung bestätigen',\n 'Confirm SMS Code': 'SMS-Code bestätigen',\n 'Confirm TOTP Code': 'TOTP-Code bestätigen',\n 'Confirmation Code': 'Bestätigungs-Code',\n 'Create a new account': 'Einen neuen Account erstellen',\n 'Create account': 'Hier registrieren',\n 'Create Account': 'Account erstellen',\n 'Creating Account': 'Account wird erstellt',\n Email: 'Email',\n 'Enter your code': 'Geben Sie Ihren Code ein',\n 'Enter your password': 'Geben Sie Ihr Passwort ein',\n 'Enter your username': 'Geben Sie Ihren Benutzernamen ein',\n 'Enter your phone number': 'Geben Sie Ihre Telefonnummer ein',\n 'Enter your email': 'Geben Sie ihre Email ein',\n 'Forgot your password?': 'Passwort vergessen? ',\n 'Forgot Password': 'Passwort vergessen',\n 'Hide password': 'Passwort verbergen',\n 'Have an account? ': 'Schon registriert? ',\n 'Incorrect username or password':\n 'Falscher Benutzername oder falsches Passwort',\n 'Invalid password format': 'Ungültiges Passwort-Format',\n 'Invalid phone number format': `Ungültiges Telefonummern-Format. Benutze eine Nummer im Format: +12345678900`,\n 'Lost your code? ': 'Code verloren? ',\n 'New Password': 'Neues Passwort',\n 'No account? ': 'Kein Account? ',\n or: 'oder',\n Password: 'Passwort',\n 'Password attempts exceeded':\n 'Die maximale Anzahl der fehlerhaften Anmeldeversuche wurde erreicht',\n 'Phone Number': 'Telefonnummer',\n 'Resend Code': 'Code erneut senden',\n 'Reset password': 'Passwort zurücksetzen',\n 'Reset your password': 'Zurücksetzen des Passworts',\n 'Send Code': 'Code senden',\n 'Sign in': 'Anmelden',\n 'Sign In': 'Anmelden',\n 'Sign in to your account': 'Melden Sie sich mit Ihrem Account an',\n 'Sign Out': 'Abmelden',\n 'Sign Up': 'Registrieren',\n Skip: 'Überspringen',\n Submit: 'Abschicken',\n 'User already exists': 'Dieser Benutzer existiert bereits',\n 'User does not exist': 'Dieser Benutzer existiert nicht',\n Username: 'Benutzername',\n 'Username cannot be empty': 'Benutzername darf nicht leer sein',\n Verify: 'Verifizieren',\n 'Verify Contact': 'Kontakt verifizieren',\n};\n","export const enDict = {\n 'Account recovery requires verified contact information':\n 'Account recovery requires verified contact information',\n 'Back to Sign In': 'Back to Sign In',\n 'Change Password': 'Change Password',\n Changing: 'Changing',\n Code: 'Code',\n Confirm: 'Confirm',\n 'Confirm Password': 'Confirm Password',\n 'Confirm Sign Up': 'Confirm Sign Up',\n 'Confirm SMS Code': 'Confirm SMS Code',\n 'Confirm TOTP Code': 'Confirm TOTP Code',\n 'Confirmation Code': 'Confirmation Code',\n Confirming: 'Confirming',\n 'Create Account': 'Create Account',\n 'Creating Account': 'Creating Account',\n Email: 'Email',\n 'Enter your code': 'Enter your code',\n 'Enter your username': 'Enter your username',\n 'Enter your phone number': 'Enter your phone number',\n 'Enter your email': 'Enter your email',\n 'Forgot your password?': 'Forgot your password?',\n 'Hide password': 'Hide password',\n Loading: 'Loading',\n Username: 'Username',\n 'New password': 'New password',\n Password: 'Password',\n 'Phone Number': 'Phone Number',\n 'Resend Code': 'Resend Code',\n 'Reset your password': 'Reset your password',\n 'Reset your Password': 'Reset your Password',\n 'Send Code': 'Send Code',\n 'Send code': 'Send code',\n Sending: 'Sending',\n 'Setup TOTP': 'Setup TOTP',\n 'Show password': 'Show password',\n 'Sign in': 'Sign in',\n 'Sign In': 'Sign In',\n 'Sign In with Amazon': 'Sign In with Amazon',\n 'Sign In with Apple': 'Sign In with Apple',\n 'Sign In with Facebook': 'Sign In with Facebook',\n 'Sign In with Google': 'Sign In with Google',\n 'Sign in to your account': 'Sign in to your account',\n 'Create a new account': 'Create a new account',\n 'Signing in': 'Signing in',\n Skip: 'Skip',\n Submit: 'Submit',\n Submitting: 'Submitting',\n 'Verify Contact': 'Verify Contact',\n Verify: 'Verify',\n};\n","export const esDict = {\n 'Account recovery requires verified contact information':\n 'La recuperación de la cuenta requiere información de contacto verificada',\n 'Back to Sign In': 'Volver a inicio de sesión',\n 'Change Password': 'Cambiar contraseña',\n Changing: 'Cambiando',\n Code: 'Código',\n Confirm: 'Confirmar',\n 'Confirm a Code': 'Confirmar un código',\n 'Confirm Password': 'Confirmar contraseña',\n 'Confirm Sign In': 'Confirmar inicio de sesión',\n 'Confirm Sign Up': 'Confirmar registro',\n 'Confirm TOTP Code': 'Confirmar código TOTP',\n 'Confirmation Code': 'Código de confirmación',\n Confirming: 'Confirmando',\n 'Create a new account': 'Crear una cuenta nueva',\n 'Creating Account': 'Creando cuenta',\n Email: 'Email',\n 'Forgot Password': 'Olvidé mi contraseña',\n 'Incorrect username or password': 'Nombre de usuario o contraseña incorrecta',\n 'Invalid password format': 'Formato de contraseña inválido',\n 'Invalid phone number format': 'Formato de número de teléfono inválido',\n 'Forgot your password?': '¿Olvidó su contraseña?',\n 'Hide password': 'Ocultar contraseña',\n 'Loading...': 'Cargando...',\n 'New Password': 'Nueva contraseña',\n or: 'o',\n Password: 'Contraseña',\n 'Phone Number': 'Número de teléfono',\n 'Resend a Code': 'Reenviar un código',\n 'Reset your password': 'Restablecer su contraseña',\n 'Reset your Password': 'Restablecer su Contraseña',\n 'Resend Code': 'Reenviar código',\n 'Send Code': 'Enviar código',\n Sending: 'Enviando',\n 'Setup TOTP': 'Configurar TOTP',\n 'Show password': 'Mostrar contraseña',\n 'Sign in': 'Iniciar sesión',\n 'Sign In': 'Iniciar Sesión',\n 'Sign In with Amazon': 'Iniciar Sesión con Amazon',\n 'Sign In with Apple': 'Iniciar Sesión con Apple',\n 'Sign In with Facebook': 'Iniciar Sesión con Facebook',\n 'Sign In with Google': 'Iniciar Sesión con Google',\n 'Sign in to your account': 'Iniciar sesión en tu cuenta',\n 'Sign Out': 'Cerrar sesión',\n 'Sign Up': 'Crear cuenta',\n 'Signing in': 'Iniciando sesión',\n Skip: 'Omitir',\n Submit: 'Enviar',\n 'User already exists': 'El usuario ya existe',\n 'User does not exist': 'El usuario no existe',\n Username: 'Nombre de usuario',\n 'Username cannot be empty': 'El nombre de usuario no puede estar vacío',\n Verify: 'Verificar',\n 'Verify Contact': 'Verificar contacto',\n};\n","export const frDict = {\n 'Account recovery requires verified contact information':\n 'La récupération du compte nécessite des informations de contact vérifiées',\n 'An account with the given email already exists.':\n 'Un utilisateur avec cette adresse email existe déjà.',\n 'Back to Sign In': 'Retour à la connexion',\n Change: 'Modifier',\n 'Change Password': 'Modifier le mot de passe',\n Code: 'Code',\n Confirm: 'Confirmer',\n 'Confirm a Code': 'Confirmer un code',\n 'Confirm Password': 'Confirmez le mot de passe',\n 'Confirm Sign In': 'Confirmer la connexion',\n 'Confirm Sign Up': \"Confirmer l'inscription\",\n 'Confirm SMS Code': 'Confirmer le code SMS',\n 'Confirm TOTP Code': 'Confirmer le code TOTP',\n 'Confirmation Code': 'Code de confirmation',\n 'Create a new account': 'Créer un nouveau compte',\n 'Create account': 'Créer un compte',\n 'Create Account': 'Créer un compte',\n Email: 'Email',\n 'Enter your code': 'Saisissez cotre code de confirmation',\n 'Enter your email': 'Saisissez votre adresse email',\n 'Enter your password': 'Saisissez votre mot de passe',\n 'Enter your phone number': 'Saisissez votre numéro de téléphone',\n 'Enter your username': \"Saisissez votre nom d'utilisateur\",\n 'Forgot Password': 'Mot de passe oublié',\n 'Forgot your password?': 'Mot de passe oublié ? ',\n 'Have an account? ': 'Déjà un compte ? ',\n Hello: 'Bonjour',\n 'Incorrect username or password': 'Identifiant ou mot de passe incorrect',\n 'Invalid password format': 'Format de mot de passe invalide',\n 'Invalid phone number format': `Format de numéro de téléphone invalide. Veuillez utiliser un format +12345678900`,\n 'Loading...': 'Chargement...',\n 'Lost your code? ': 'Vous avez perdu votre code ? ',\n 'Network error': 'Erreur réseau',\n 'New Password': 'Nouveau mot de passe',\n 'No account? ': 'Pas de compte ? ',\n or: 'ou',\n Password: 'Mot de passe',\n 'Phone Number': 'Numéro de téléphone',\n 'Resend a Code': 'Renvoyer un code',\n 'Resend Code': 'Renvoyer le code',\n 'Reset password': 'Réinitialisez votre mot de passe',\n 'Reset your password': 'Réinitialisez votre mot de passe',\n Send: 'Envoyer',\n 'Send Code': \"M'envoyer un code\",\n 'Sign in': 'Se connecter',\n 'Sign In': 'Se connecter',\n 'Sign in to your account': 'Connexion à votre compte',\n 'Sign In with Amazon': 'Se connecter avec Amazon',\n 'Sign In with AWS': 'Se connecter avec AWS',\n 'Sign In with Facebook': 'Se connecter avec Facebook',\n 'Sign In with Google': 'Se connecter avec Google',\n 'Sign Out': 'Déconnexion',\n 'Sign Up': \"S'inscrire\",\n Skip: 'Passer',\n SMS: 'SMS',\n Submit: 'Soumettre',\n 'User already exists': \"L'utilisateur existe déjà\",\n 'User does not exist': \"L'utilisateur n'existe pas\",\n Username: \"Nom d'utilisateur\",\n 'Username cannot be empty': \"Le nom d'utilisateur doit être renseigné\",\n 'Username/client id combination not found.': \"L'utilisateur n'existe pas\",\n Verify: 'Vérifier',\n 'Verify Contact': 'Vérifier le contact',\n};\n","export const itDict = {\n 'Account recovery requires verified contact information':\n \"Il ripristino dell'account richiede informazioni di contatto verificate\",\n 'An account with the given email already exists.':\n \"Questa email è già utilizzata da un'altro account.\",\n 'Back to Sign In': 'Torna alla schermata di accesso',\n 'Change Password': 'Cambia la password',\n Code: 'Codice',\n Confirm: 'Conferma',\n 'Confirm a Code': 'Conferma un codice',\n 'Confirm Password': 'Conferma la password',\n 'Confirm Sign In': \"Conferma l'accesso\",\n 'Confirm Sign Up': 'Conferma registrazione',\n 'Confirmation Code': 'Codice di verifica',\n 'Create a new account': 'Crea un nuovo account',\n 'Create account': 'Crea account',\n 'Create Account': 'Crea Account',\n Email: 'Email',\n 'Enter your password': 'Inserisci la tua password',\n 'Enter your username': 'Inserisci il tuo nome utente',\n 'Forgot Password': 'Password dimenticata',\n 'Forgot your password?': 'Password dimenticata?',\n 'Have an account? ': 'Già registrato?',\n 'Incorrect username or password': 'Nome utente o password errati',\n 'Invalid password format': 'Formato della password non valido',\n 'Invalid phone number format': 'Formato del numero di telefono non valido',\n 'Lost your code?': 'Codice smarrito?',\n 'New Password': 'Nuova password',\n or: 'o',\n 'No account? ': 'Non hai un account?',\n Password: 'Password',\n 'Password attempts exceeded':\n 'Il numero massimo di tentativi di accesso falliti è stato raggiunto',\n 'Phone Number': 'Numero di telefono',\n 'Resend Code': 'Rispedisci codice',\n 'Reset password': 'Reimposta password',\n 'Reset your password': 'Reimposta la tua password',\n 'Send Code': 'Invia codice',\n 'Sign in': 'Accesso',\n 'Sign In': 'Accesso',\n 'Sign in to your account': 'Accedi al tuo account',\n 'Sign Out': 'Esci',\n 'Sign Up': 'Registrati',\n Skip: 'Salta',\n Submit: 'Invia',\n 'User already exists': 'Utente già esistente',\n 'User does not exist': 'Utente inesistente',\n Username: 'Nome utente',\n 'Username cannot be empty': 'Il nome utente non può essere vuoto',\n Verify: 'Verifica',\n 'Verify Contact': 'Verifica contatto',\n};\n","export const jaDict = {\n 'Account recovery requires verified contact information':\n 'アカウントの復旧には確認済みの連絡先が必要です',\n 'An account with the given email already exists.':\n '入力されたメールアドレスのアカウントが既に存在します',\n 'Back to Sign In': 'サインインに戻る',\n 'Change Password': 'パスワードを変える ',\n Code: 'コード',\n Confirm: '確定',\n 'Confirm a Code': 'コードを確認',\n 'Confirm Password': 'パスワードの確認',\n 'Confirm Sign In': 'サインインする',\n 'Confirm Sign Up': '登録する',\n 'Confirmation Code': '確認コード',\n 'Create a new account': '新しいアカウントを作る',\n 'Create account': 'アカウントを作る ',\n 'Create Account': 'アカウントを作る',\n Email: 'メールアドレス',\n 'Enter your password': 'パスワードを入力 ',\n 'Enter your username': 'ユーザー名を入力 ',\n 'Forgot Password': 'パスワードを忘れた ',\n 'Forgot your password?': 'パスワードを忘れましたか? ',\n 'Have an account? ': 'アカウントを持っていますか?',\n 'Incorrect username or password': 'ユーザー名かパスワードが異なります ',\n 'Invalid password format': 'パスワードの形式が無効です ',\n 'Invalid phone number format':\n '不正な電話番号の形式です。\\n+12345678900 の形式で入力してください',\n 'Lost your code? ': 'コードを失くしましたか?',\n 'New Password': '新しいパスワード',\n 'No account? ': 'アカウントが無いとき ',\n or: '又は',\n Password: 'パスワード ',\n 'Password attempts exceeded': 'サインインの試行回数が上限に達しました',\n 'Phone Number': '電話番号',\n 'Resend Code': 'コードを再送信',\n 'Reset password': 'パスワードをリセット ',\n 'Reset your password': 'パスワードをリセットする',\n 'Send Code': 'コードを送信',\n 'Sign in': 'サインイン',\n 'Sign In': 'サインイン ',\n 'Sign in to your account': 'アカウントにサインイン ',\n 'Sign In with Amazon': 'Amazonでサインイン',\n 'Sign In with Facebook': 'Facebookでサインイン',\n 'Sign In with Google': 'Googleでサインイン',\n 'Sign Out': 'サインアウト ',\n 'Sign Up': '登録 ',\n Skip: 'スキップ',\n Submit: '送信',\n 'User already exists': '既にユーザーが存在しています ',\n 'User does not exist': 'ユーザーが存在しません ',\n Username: 'ユーザー名 ',\n 'Username cannot be empty': 'ユーザー名は入力必須です',\n Verify: '確認',\n 'Verify Contact': '連絡先を確認',\n};\n","export const krDict = {\n 'Back to Sign In': '로그인으로 돌아가기',\n Birthdate: '생년월일',\n 'Change Password': '비밀번호 변경하기',\n Changing: '변경중',\n Code: '코드',\n 'Confirm Password': '비밀번호 재확인',\n 'Reset your Password': '비밀번호 재설정',\n 'Confirm Sign Up': '회원가입 확인',\n 'Confirm SMS Code': '휴대폰 본인 확인',\n 'Confirm TOTP Code': 'TOTP 인증번호 확인',\n Confirm: '확인',\n 'Confirmation Code': '인증번호',\n Confirming: '확인중',\n 'Create Account': '회원가입',\n 'Creating Account': '회원가입중',\n Email: '이메일',\n 'Enter your code': '인증번호를 입력해주세요',\n 'Enter your username': '아이디를 입력해주세요',\n 'Family Name': '성',\n 'Given Name': '이름',\n 'Forgot your password?': '비밀번호를 잊으셨나요?',\n 'Hide password': '비밀번호 숨기기',\n Loading: '로딩중',\n Username: '아이디',\n Name: '성함',\n Nickname: '닉네임',\n 'New password': '새 비밀번호',\n Password: '비밀번호',\n 'Phone Number': '전화번호',\n 'Preferred Username': '닉네임',\n Profile: '프로필',\n 'Resend Code': '인증번호 재전송',\n 'Reset your password': '비밀번호 재설정',\n 'Reset Password': '비밀번호 재설정',\n 'Send code': '인증코드 보내기',\n Sending: '전송중',\n 'Setup TOTP': 'TOTP 설정하기',\n 'Show password': '비밀번호 보이기',\n 'Sign in': '로그인',\n 'Sign In': '로그인',\n 'Sign In with Amazon': 'Amazon 로그인',\n 'Sign In with Apple': 'Apple 로그인',\n 'Sign In with Facebook': 'Facebook 로그인',\n 'Sign In with Google': 'Google 로그인',\n 'Sign in to your account': '로그인',\n 'Create a new account': '회원가입',\n 'Signing in': '로그인중',\n Skip: '다음에 하기',\n Submit: '확인',\n Submitting: '확인중',\n 'Verify Contact': '연락처 확인',\n 'Account recovery requires verified contact information':\n '계정 복구를 위해 연락처 확인이 필요합니다',\n Verify: '인증',\n Website: '웹사이트',\n};\n","export const nlDict = {\n 'Back to Sign In': 'Terug naar inloggen',\n 'Change Password': 'Wachtwoord wijzigen',\n Changing: 'Wordt aangepast',\n Code: 'Code',\n 'Confirm Password': 'Bevestig Wachtwoord',\n 'Reset your Password': 'Wachtwoord resetten',\n 'Confirm Sign Up': 'Bevestig inschrijving',\n 'Confirm SMS Code': 'Bevestig SMS Code',\n 'Confirm TOTP Code': 'Bevestig TOTP Code',\n Confirm: 'Bevestig',\n 'Confirmation Code': 'Bevestigingscode',\n Confirming: 'Bevestigen',\n 'Create Account': 'Account aanmaken',\n 'Creating Account': 'Account wordt aangemaakt',\n Email: 'E-mail',\n 'Enter your code': 'Vul je code in',\n 'Enter your username': 'Vul je gebruikersnaam in',\n 'Enter your phone number': 'Vul je telefoonnummer in',\n 'Enter your email': 'Vul je e-mail in',\n 'Forgot your password?': 'Wachtwoord vergeten? ',\n 'Hide password': 'Verberg wachtwoord',\n Loading: 'Laden',\n Username: 'Gebruikersnaam',\n 'New password': 'Nieuw wachtwoord',\n Password: 'Wachtwoord',\n 'Phone Number': 'Telefoonnummer',\n 'Resend Code': 'Verstuur code nogmaals',\n 'Reset your password': 'Reset je wachtwoord',\n 'Send Code': 'Verstuur Code',\n 'Send code': 'Verstuur code',\n Sending: 'Versturen',\n 'Setup TOTP': 'TOTP Instellingen',\n 'Show password': 'Toon wachtwoord',\n 'Sign in': 'Inloggen',\n 'Sign In': 'Inloggen',\n 'Sign In with Amazon': 'Inloggen met Amazon',\n 'Sign In with Apple': 'Inloggen met Apple',\n 'Sign In with Facebook': 'Inloggen met Facebook',\n 'Sign In with Google': 'Inloggen met Google',\n 'Sign in to your account': 'Inloggen op je account',\n 'Create a new account': 'Nieuw account aanmaken',\n 'Signing in': 'Inloggen',\n Skip: 'Overslaan',\n Submit: 'Versturen',\n Submitting: 'Wordt verstuurd',\n 'Verify Contact': 'Verifieer Contact',\n 'Account recovery requires verified contact information':\n 'Accountherstel vereist geverifieerde contactgegevens',\n Verify: 'Verifieer',\n};\n","export const plDict = {\n 'Back to Sign In': 'Powrót do logowania',\n Birthdate: 'Data urodzenia',\n 'Change Password': 'Zmień hasło',\n Changing: 'Zmienianie',\n Code: 'Kod',\n 'Confirm Password': 'Potwierdź Hasło',\n 'Reset your Password': 'Zresetuj swoje hasło',\n 'Confirm Sign Up': 'Potwierdź rejestrację',\n 'Confirm SMS Code': 'Potwierdź kod SMS',\n 'Confirm TOTP Code': 'Potwierdź hasło jednorazowe',\n Confirm: 'Potwierdź',\n 'Confirmation Code': 'Kod potwierdzenia',\n Confirming: 'Potwierdzanie',\n 'Create Account': 'Utwórz konto',\n 'Creating Account': 'Tworzenie konta',\n Email: 'E-mail',\n 'Enter your code': 'Wprowadź swój kod',\n 'Enter your username': 'Wprowadź swoją nazwę użytkownika',\n 'Family Name': 'Nazwisko',\n 'Given Name': 'Pierwsze imię',\n 'Forgot your password?': 'Zapomniałeś hasła? ',\n 'Hide password': 'Ukryj hasło',\n Loading: 'Ładowanie',\n Username: 'Nazwa użytkownika',\n 'Middle Name': 'Drugie imię',\n Name: 'Imię i nazwisko',\n Nickname: 'Pseudonim',\n 'New password': 'Nowe hasło',\n Password: 'Hasło',\n 'Phone Number': 'Numer telefonu',\n 'Preferred Username': 'Preferowana nazwa użytkownika',\n Profile: 'Profil',\n 'Resend Code': 'Wyślij kod ponownie',\n 'Reset your password': 'Zresetuj swoje hasło',\n 'Send Code': 'Zresetuj hasło',\n 'Send code': 'Wyślij kod',\n Sending: 'Wysyłanie',\n 'Setup TOTP': 'Konfiguruj TOTP',\n 'Show password': 'Pokaż hasło',\n 'Sign in': 'Zaloguj',\n 'Sign In': 'Logowanie',\n 'Sign In with Amazon': 'Zaloguj z Amazon',\n 'Sign In with Apple': 'Zaloguj z Apple',\n 'Sign In with Facebook': 'Zaloguj z Facebook',\n 'Sign In with Google': 'Zaloguj z Google',\n 'Sign in to your account': 'Zaloguj się na swoje konto',\n 'Create a new account': 'Utwórz nowe konto',\n 'Signing in': 'Logowanie',\n Skip: 'Pomiń',\n Submit: 'Wyślij',\n Submitting: 'Wysyłanie',\n 'Verify Contact': 'Weryfikacja danych kontaktowych',\n 'Account recovery requires verified contact information':\n 'Odzyskanie konta wymaga zweryfikowanych danych kontaktowych',\n Verify: 'Zweryfikuj',\n Website: 'Strona internetowa',\n};\n","export const ptDict = {\n 'Back to Sign In': 'Voltar para Entrar',\n 'Change Password': 'Mudar senha',\n Changing: 'Mudando',\n Code: 'Código',\n 'Confirm Password': 'Confirme a Senha',\n 'Reset your Password': 'Redefina sua senha',\n 'Confirm Sign Up': 'Confirmar inscrição',\n 'Confirm SMS Code': 'Confirme o código SMS',\n 'Confirm TOTP Code': 'Confirme o código TOTP',\n Confirm: 'confirme',\n 'Confirmation Code': 'Código de confirmação',\n Confirming: 'Confirmando',\n 'Create Account': 'Criar Conta',\n 'Creating Account': 'Criando conta',\n Email: 'O email',\n 'Enter your code': 'Insira seu código',\n 'Enter your username': 'entre com seu nome de usuário',\n 'Enter your phone number': 'Digite seu número de telefone',\n 'Enter your email': 'Digite seu e-mail',\n 'Forgot your password?': 'Esqueceu sua senha? ',\n 'Hide password': 'Esconder a senha',\n Loading: 'Carregando',\n Username: 'Nome do usuário',\n 'New password': 'Nova Senha',\n Password: 'Senha',\n 'Phone Number': 'Número de telefone',\n 'Resend Code': 'Reenviar código',\n 'Reset your password': 'Redefina sua senha',\n 'Send Code': 'Enviar código',\n 'Send code': 'Enviar código',\n Sending: 'Enviando',\n 'Setup TOTP': 'Configurar TOTP',\n 'Show password': 'Mostrar senha',\n 'Sign In': 'Entrar',\n 'Sign in': 'Entrar',\n 'Sign In with Amazon': 'Entrar com a Amazon',\n 'Sign In with Apple': 'Entrar com a Apple',\n 'Sign In with Facebook': 'Entrar com o Facebook',\n 'Sign In with Google': 'Faça login no Google',\n 'Sign in to your account': 'Faça login em sua conta',\n 'Create a new account': 'Criar uma nova conta',\n 'Signing in': 'Entrando',\n Skip: 'Pular',\n Submit: 'Enviar',\n Submitting: 'Enviando',\n 'Verify Contact': 'Verificar contato',\n 'Account recovery requires verified contact information':\n 'A recuperação da conta requer informações de contato verificadas',\n Verify: 'Verificar',\n};\n","export const zhDict = {\n 'Account recovery requires verified contact information':\n '账户恢复需要验证过的联系方式',\n 'Back to Sign In': '回到登录',\n 'Change Password': '更改密码',\n Code: '确认码',\n Confirm: '确认',\n 'Confirm a Code': '确认码',\n 'Confirm Password': '确认密码',\n 'Confirm Sign In': '确认登录',\n 'Confirm Sign Up': '确认注册',\n Email: '邮箱',\n 'Forgot Password': '忘记密码',\n 'Incorrect username or password': '用户名或密码错误',\n 'Invalid password format': '密码格式错误',\n 'Invalid phone number format': '电话格式错误,请使用格式 +12345678900',\n 'New Password': '新密码',\n or: '或者',\n Password: '密码',\n 'Phone Number': '电话',\n 'Resend a Code': '重发确认码',\n 'Send Code': '发送确认码',\n 'Sign In': '登录',\n 'Sign Out': '退出',\n 'Sign Up': '注册',\n Skip: '跳过',\n Submit: '提交',\n 'User already exists': '用户已经存在',\n 'User does not exist': '用户不存在',\n Username: '用户名',\n Verify: '验证',\n 'Verify Contact': '验证联系方式',\n};\n","export const svDict = {\n 'Account recovery requires verified contact information':\n 'För att återställa kontot behöver du ett verifierat konto',\n 'An account with the given email already exists.':\n 'Det finns redan ett konto med denna e-postadress',\n 'Back to Sign In': 'Tillbaka till inloggningen',\n 'Change Password': 'Byt lösenord',\n 'Confirm Password': 'Bekräfta lösenord',\n Code: 'Kod',\n Confirm: 'Bekräfta',\n 'Confirm a Code': 'Bekräfta koden',\n 'Confirm Sign In': 'Bekräfta inloggning',\n 'Confirm Sign Up': 'Bekräfta registrering',\n 'Confirmation Code': 'Verifikationskod',\n 'Create a new account': 'Skapa ett nytt konto',\n 'Create account': 'Skapa konto',\n 'Create Account': 'Skapa konto',\n Email: 'E-post',\n 'Enter your password': 'Ange ditt lösenord',\n 'Enter your username': 'Ange ditt användarnamn',\n 'Forgot Password': 'Glömt lösenordet',\n 'Forgot your password?': 'Glömt ditt lösenord? ',\n 'Have an account? ': 'Redan registrerad? ',\n 'Incorrect username or password': 'Felaktigt användarnamn eller lösenord',\n 'Invalid password format': 'Ogiltigt lösenordsformat',\n 'Invalid phone number format': `Ogiltigt format för telefonnummer`,\n 'Lost your code? ': 'Förlorat koden? ',\n 'New Password': 'Nytt lösenord',\n 'No account? ': 'Inget konto? ',\n or: 'eller',\n Password: 'Lösenord',\n 'Password attempts exceeded':\n 'Maximalt antal felaktiga inloggningsförsök har uppnåtts',\n 'Phone Number': 'Telefonnummer',\n 'Resend Code': 'Skicka koden igen',\n 'Reset password': 'Återställ lösenord',\n 'Reset your password': 'Återställ ditt lösenord',\n 'Send code': 'Skicka kod',\n 'Sign in': 'Logga in',\n 'Sign In': 'Logga in',\n 'Sign in to your account': 'Logga in till ditt konto',\n 'Sign Out': 'Logga ut',\n 'Sign Up': 'Registrering',\n 'We Emailed You': 'Vi har skickat e-post till dig',\n 'Enter your code': 'Skriv din kod',\n Skip: 'Hoppa över',\n Submit: 'Skicka',\n 'User already exists': 'Användaren finns redan',\n 'User does not exist': 'Användaren finns inte',\n Username: 'Användarnamn',\n 'Username cannot be empty': 'Användarnamnet kan inte vara tomt',\n Verify: 'Verifiera',\n 'Verify Contact': 'Verifiera kontakt',\n};\n","export const defaultTexts = {\n BACK_SIGN_IN: 'Back to Sign In',\n BIRTHDATE: 'Birthdate',\n CHANGE_PASSWORD: 'Change Password',\n CHANGING_PASSWORD: 'Changing',\n CODE: 'Code',\n CONFIRM_PASSWORD: 'Confirm Password',\n CONFIRM_RESET_PASSWORD_HEADING: 'Reset your Password',\n CONFIRM_SIGNUP_HEADING: 'Confirm Sign Up',\n CONFIRM_SMS: 'Confirm SMS Code',\n CONFIRM_TOTP: 'Confirm TOTP Code',\n CONFIRM: 'Confirm',\n CONFIRMATION_CODE: 'Confirmation Code',\n CONFIRMING: 'Confirming',\n CREATE_ACCOUNT: 'Create Account',\n CREATING_ACCOUNT: 'Creating Account',\n EMAIL_ADDRESS: 'Email',\n ENTER_CODE: 'Enter your code',\n ENTER_USERNAME: 'Enter your username',\n FAMILY_NAME: 'Family Name',\n GIVEN_NAME: 'Given Name',\n FORGOT_YOUR_PASSWORD: 'Forgot your password?',\n FORGOT_YOUR_PASSWORD_LEGACY: 'Forgot your password? ',\n HIDE_PASSWORD: 'Hide password',\n LOADING: 'Loading',\n LOGIN_NAME: 'Username',\n MIDDLE_NAME: 'Middle Name',\n NAME: 'Name',\n NICKNAME: 'Nickname',\n NEW_PASSWORD: 'New password',\n PASSWORD: 'Password',\n PHONE_NUMBER: 'Phone Number',\n PREFERRED_USERNAME: 'Preferred Username',\n PROFILE: 'Profile',\n RESEND_CODE: 'Resend Code',\n RESET_PASSWORD_HEADING: 'Reset your password',\n RESET_PASSWORD: 'Reset Password',\n SEND_CODE: 'Send code',\n SENDING: 'Sending',\n SETUP_TOTP: 'Setup TOTP',\n SHOW_PASSWORD: 'Show password',\n SIGN_IN_BUTTON: 'Sign in',\n SIGN_IN_TAB: 'Sign In',\n SIGN_IN_WITH_AMAZON: 'Sign In with Amazon',\n SIGN_IN_WITH_APPLE: 'Sign In with Apple',\n SIGN_IN_WITH_FACEBOOK: 'Sign In with Facebook',\n SIGN_IN_WITH_GOOGLE: 'Sign In with Google',\n SIGN_IN: 'Sign in to your account',\n SIGN_UP_BUTTON: 'Create a new account',\n SIGNING_IN_BUTTON: 'Signing in',\n SKIP: 'Skip',\n SUBMIT: 'Submit',\n SUBMITTING: 'Submitting',\n VERIFY_CONTACT: 'Verify Contact',\n VERIFY_HEADING: 'Account recovery requires verified contact information',\n VERIFY: 'Verify',\n WEBSITE: 'Website',\n};\n","export * from './authenticator';\n","import { assign, createMachine, forwardTo, spawn } from 'xstate';\n\nimport {\n AuthContext,\n AuthEvent,\n CognitoUserAmplify,\n ServicesContext,\n} from '../../types';\nimport { stopActor } from './actions';\nimport { resetPasswordActor, signInActor, signOutActor } from './actors';\nimport { defaultServices } from './defaultServices';\nimport { createSignUpMachine } from './signUp';\n\nconst DEFAULT_COUNTRY_CODE = '+1';\n\nexport type AuthenticatorMachineOptions = AuthContext['config'] & {\n services?: AuthContext['services'];\n};\n\nexport function createAuthenticatorMachine() {\n return createMachine<AuthContext, AuthEvent>(\n {\n id: 'authenticator',\n initial: 'idle',\n context: {\n user: undefined,\n config: {},\n services: {},\n actorRef: undefined,\n },\n states: {\n // See: https://xstate.js.org/docs/guides/communication.html#invoking-promises\n idle: {\n on: {\n INIT: {\n target: 'setup',\n actions: 'configure',\n },\n },\n },\n setup: {\n invoke: [\n {\n // TODO Wait for Auth to be configured\n src: (context, _) => context.services.getCurrentUser(),\n onDone: {\n actions: 'setUser',\n target: 'authenticated',\n },\n onError: [\n {\n target: 'signUp',\n cond: (context) => context.config.initialState === 'signUp',\n },\n {\n target: 'resetPassword',\n cond: (context) =>\n context.config.initialState === 'resetPassword',\n },\n { target: 'signIn' },\n ],\n },\n {\n src: (context, _) => context.services.getAmplifyConfig(),\n onDone: {\n actions: 'applyAmplifyConfig',\n },\n },\n ],\n },\n signIn: {\n initial: 'spawnActor',\n states: {\n spawnActor: {\n always: { actions: 'spawnSignInActor', target: 'runActor' },\n },\n runActor: {\n entry: 'clearActorDoneData',\n exit: stopActor('signInActor'),\n },\n },\n on: {\n SIGN_UP: 'signUp',\n RESET_PASSWORD: 'resetPassword',\n 'done.invoke.signInActor': [\n {\n target: 'signUp',\n actions: 'setActorDoneData',\n cond: 'shouldRedirectToSignUp',\n },\n {\n target: 'resetPassword',\n actions: 'setActorDoneData',\n cond: 'shouldRedirectToResetPassword',\n },\n {\n target: 'authenticated',\n actions: 'setActorDoneData',\n },\n ],\n },\n },\n signUp: {\n initial: 'spawnActor',\n states: {\n spawnActor: {\n always: { actions: 'spawnSignUpActor', target: 'runActor' },\n },\n runActor: {\n entry: 'clearActorDoneData',\n exit: stopActor('signUpActor'),\n },\n },\n on: {\n SIGN_IN: 'signIn',\n 'done.invoke.signUpActor': {\n target: 'setup',\n actions: 'setActorDoneData',\n },\n },\n },\n resetPassword: {\n initial: 'spawnActor',\n states: {\n spawnActor: {\n always: {\n actions: 'spawnResetPasswordActor',\n target: 'runActor',\n },\n },\n runActor: {\n entry: 'clearActorDoneData',\n exit: stopActor('resetPasswordActor'),\n },\n },\n on: {\n SIGN_IN: 'signIn',\n 'done.invoke.resetPasswordActor': {\n target: 'signIn',\n actions: 'setActorDoneData',\n },\n },\n },\n signOut: {\n initial: 'spawnActor',\n states: {\n spawnActor: {\n always: { actions: 'spawnSignOutActor', target: 'runActor' },\n },\n runActor: {\n entry: 'clearActorDoneData',\n exit: [stopActor('signOutActor'), 'clearUser'],\n },\n },\n on: {\n 'done.invoke.signOutActor': 'signIn',\n },\n },\n authenticated: {\n on: { SIGN_OUT: 'signOut' },\n },\n },\n on: {\n CHANGE: { actions: 'forwardToActor' },\n BLUR: { actions: 'forwardToActor' },\n SUBMIT: { actions: 'forwardToActor' },\n FEDERATED_SIGN_IN: { actions: 'forwardToActor' },\n RESEND: { actions: 'forwardToActor' },\n SIGN_OUT: { actions: 'forwardToActor' },\n SIGN_IN: { actions: 'forwardToActor' },\n SKIP: { actions: 'forwardToActor' },\n },\n },\n {\n actions: {\n forwardToActor: forwardTo((context) => context.actorRef),\n setUser: assign({\n user: (_, event) => event.data as CognitoUserAmplify,\n }),\n setActorDoneData: assign({\n actorDoneData: (_, event) => ({\n authAttributes: { ...event.data.authAttributes },\n intent: event.data.intent,\n }),\n user: (_, event) => event.data.user,\n }),\n clearUser: assign({ user: undefined }),\n clearActorDoneData: assign({ actorDoneData: undefined }),\n applyAmplifyConfig: assign({\n config(context, event) {\n // The CLI uses uppercased constants in `aws-exports.js`, while `parameters.json` are lowercase.\n // We use lowercase to be consistent with previous versions' values.\n const cliLoginMechanisms =\n event.data.aws_cognito_username_attributes?.map((s) =>\n s.toLowerCase()\n ) ?? [];\n\n const cliVerificationMechanisms =\n event.data.aws_cognito_verification_mechanisms?.map((s) =>\n s.toLowerCase()\n ) ?? [];\n\n const cliSignUpAttributes =\n event.data.aws_cognito_signup_attributes?.map((s) =>\n s.toLowerCase()\n ) ?? [];\n\n const cliSocialProviders =\n event.data.aws_cognito_social_providers?.map((s) =>\n s.toLowerCase()\n ) ?? [];\n\n // By default, Cognito assumes `username`, so there isn't a different username attribute like `email`.\n // We explicitly add it as a login mechanism to be consistent with Admin UI's language.\n if (cliLoginMechanisms.length === 0) {\n cliLoginMechanisms.push('username');\n }\n\n // Prefer explicitly configured settings over default CLI values\\\n\n const {\n loginMechanisms,\n signUpAttributes,\n socialProviders,\n initialState,\n } = context.config;\n return {\n loginMechanisms: loginMechanisms ?? cliLoginMechanisms,\n signUpAttributes:\n signUpAttributes ??\n Array.from(\n new Set([\n ...cliVerificationMechanisms,\n ...cliSignUpAttributes,\n ])\n ),\n socialProviders: socialProviders ?? cliSocialProviders.sort(),\n initialState,\n };\n },\n }),\n spawnSignInActor: assign({\n actorRef: (context, _) => {\n const { services } = context;\n const actor = signInActor({ services }).withContext({\n authAttributes: context.actorDoneData?.authAttributes,\n user: context.user,\n intent: context.actorDoneData?.intent,\n country_code: DEFAULT_COUNTRY_CODE,\n formValues: {},\n touched: {},\n validationError: {},\n loginMechanisms: context.config?.loginMechanisms,\n socialProviders: context.config?.socialProviders,\n });\n return spawn(actor, { name: 'signInActor' });\n },\n }),\n spawnSignUpActor: assign({\n actorRef: (context, _) => {\n const { services } = context;\n const actor = createSignUpMachine({ services }).withContext({\n authAttributes: context.actorDoneData?.authAttributes ?? {},\n country_code: DEFAULT_COUNTRY_CODE,\n intent: context.actorDoneData?.intent,\n formValues: {},\n touched: {},\n validationError: {},\n loginMechanisms: context.config?.loginMechanisms,\n socialProviders: context.config?.socialProviders,\n });\n return spawn(actor, { name: 'signUpActor' });\n },\n }),\n spawnResetPasswordActor: assign({\n actorRef: (context, _) => {\n const { services } = context;\n const actor = resetPasswordActor({ services }).withContext({\n formValues: {},\n touched: {},\n intent: context.actorDoneData?.intent,\n username: context.actorDoneData?.authAttributes?.username,\n validationError: {},\n });\n return spawn(actor, { name: 'resetPasswordActor' });\n },\n }),\n spawnSignOutActor: assign({\n actorRef: (context) => {\n const actor = signOutActor.withContext({\n user: context.user,\n });\n return spawn(actor, { name: 'signOutActor' });\n },\n }),\n configure: assign((_, event) => {\n const { services: customServices, ...config } = event.data;\n return {\n services: { ...defaultServices, ...customServices },\n config,\n };\n }),\n },\n guards: {\n shouldRedirectToSignUp: (_, event): boolean => {\n if (!event.data?.intent) return false;\n return event.data.intent === 'confirmSignUp';\n },\n shouldRedirectToResetPassword: (_, event): boolean => {\n if (!event.data?.intent) return false;\n return event.data.intent === 'confirmPasswordReset';\n },\n },\n }\n );\n}\n","import { assign, stop } from 'xstate/lib/actions';\n\nimport {\n ActorContextWithForms,\n AuthEvent,\n SignInContext,\n SignUpContext,\n} from '../../types';\n\nexport const stopActor = (machineId: string) => {\n return stop(machineId);\n};\n\n/**\n * https://github.com/statelyai/xstate/issues/866\n *\n * Actions in Xstate take in two arguments - a `context` and\n * an `event`.\n *\n * When writing reusable actions in a separate file for Xstate,\n * you cannot specify the type for both the `context` and the `event`.\n * The bug has been around for 2 years with seemingly no resolution\n * in sight.\n *\n * TypeScript apparently has trouble inferring Xstate properly.\n * So, when writing actions, only specify the type for either `context`\n * or `event` - but not both.\n *\n * https://xstate.js.org/docs/guides/typescript.html#assign-action-behaving-strangely\n *\n * Each of the actions NEEDS at least the `context` argument in the\n * `assign` body - even if it is unused. This is another known bug in\n * how TypeScript integrate with Xstate.\n */\n\n/**\n * \"clear\" actions\n */\nexport const clearAttributeToVerify = assign({\n attributeToVerify: (_) => undefined,\n});\nexport const clearChallengeName = assign({ challengeName: (_) => undefined });\nexport const clearRequiredAttributes = assign({\n requiredAttributes: (_) => undefined,\n});\nexport const clearError = assign({ remoteError: (_) => '' });\nexport const clearFormValues = assign({ formValues: (_) => ({}) });\nexport const clearTouched = assign({ touched: (_) => ({}) });\nexport const clearUnverifiedAttributes = assign({\n unverifiedAttributes: (_) => undefined,\n});\nexport const clearUsername = assign({ username: (_) => undefined });\nexport const clearValidationError = assign({ validationError: (_) => ({}) });\n\n/**\n * \"set\" actions\n */\nexport const setChallengeName = assign({\n challengeName: (_, event: AuthEvent) => event.data?.challengeName,\n});\n\nexport const setRequiredAttributes = assign({\n requiredAttributes: (_, event: AuthEvent) =>\n event.data?.challengeParam?.requiredAttributes,\n});\n\nexport const setConfirmResetPasswordIntent = assign({\n redirectIntent: (_) => 'confirmPasswordReset',\n});\n\nexport const setConfirmSignUpIntent = assign({\n redirectIntent: (_) => 'confirmSignUp',\n});\n\nexport const setCredentials = assign({\n authAttributes: (context: SignInContext | SignUpContext, _) => {\n const [primaryAlias] = context.loginMechanisms;\n const username =\n context.formValues[primaryAlias] ?? context.formValues['username'];\n const password = context.formValues?.password;\n\n return { username, password };\n },\n});\n\nexport const setFieldErrors = assign({\n validationError: (_, event: AuthEvent) => event.data,\n});\n\nexport const setRemoteError = assign({\n remoteError: (_, event: AuthEvent) => {\n if (event.data.name === 'NoUserPoolError') {\n return `Configuration error (see console) – please contact the administrator`;\n }\n return event.data?.message || event.data;\n },\n});\n\nexport const setUnverifiedAttributes = assign({\n unverifiedAttributes: (_, event: AuthEvent) => event.data.unverified,\n});\n\nexport const setUser = assign({\n user: (_, event: AuthEvent) => event.data.user || event.data,\n});\n\nexport const setUsername = assign({\n username: (context: ActorContextWithForms, _) => context.formValues.username,\n});\n\nexport const setCodeDeliveryDetails = assign({\n codeDeliveryDetails: (_, event: AuthEvent) => event.data.codeDeliveryDetails,\n});\n\nexport const setUsernameAuthAttributes = assign({\n authAttributes: (context: ActorContextWithForms, _) => ({\n username: context.formValues.username,\n }),\n});\n\nexport const handleInput = assign({\n formValues: (context, event: AuthEvent) => {\n const { name, value } = event.data;\n\n return {\n ...context['formValues'],\n [name]: value,\n };\n },\n});\n\nexport const handleSubmit = assign({\n formValues: (context, event: AuthEvent) => ({\n ...context['formValues'],\n ...event.data,\n }),\n});\n\nexport const handleBlur = assign({\n touched: (context, event: AuthEvent) => {\n const { name } = event.data;\n return {\n ...context['touched'],\n [`${name}`]: true,\n };\n },\n});\n\n/**\n * This action occurs on the entry to a state where a form submit action\n * occurs. It combines the phone_number and country_code form values, parses\n * the result, and updates the form values with the full phone number which is\n * the required format by Cognito for form submission.\n */\nexport const parsePhoneNumber = assign({\n formValues: (context: SignInContext | SignUpContext, _) => {\n const [primaryAlias = 'username'] = context.loginMechanisms;\n\n if (!context.formValues.phone_number && primaryAlias !== 'phone_number')\n return context.formValues;\n\n const { formValues, country_code: defaultCountryCode } = context;\n const phoneAlias = formValues.phone_number ? 'phone_number' : 'username';\n\n const parsedPhoneNumber = `${\n formValues.country_code ?? defaultCountryCode\n }${formValues[phoneAlias]}`.replace(/[^A-Z0-9+]/gi, '');\n\n const updatedFormValues = {\n ...formValues,\n [phoneAlias]: parsedPhoneNumber,\n };\n delete updatedFormValues.country_code;\n\n return updatedFormValues;\n },\n});\n","export * from './signIn';\nexport * from './signOut';\nexport * from './resetPassword';\n","import { Auth } from 'aws-amplify';\nimport get from 'lodash/get';\nimport isEmpty from 'lodash/isEmpty';\nimport { createMachine, sendUpdate } from 'xstate';\nimport { AuthChallengeNames, AuthEvent, SignInContext } from '../../../types';\nimport { runValidators } from '../../../validators';\nimport {\n clearAttributeToVerify,\n clearChallengeName,\n clearRequiredAttributes,\n clearError,\n clearFormValues,\n clearTouched,\n clearUnverifiedAttributes,\n clearValidationError,\n handleInput,\n handleSubmit,\n handleBlur,\n parsePhoneNumber,\n setChallengeName,\n setConfirmResetPasswordIntent,\n setConfirmSignUpIntent,\n setCredentials,\n setFieldErrors,\n setRemoteError,\n setRequiredAttributes,\n setUnverifiedAttributes,\n setUser,\n setUsernameAuthAttributes,\n} from '../actions';\nimport { defaultServices } from '../defaultServices';\n\nexport type SignInMachineOptions = {\n services?: Partial<typeof defaultServices>;\n};\n\nexport function signInActor({ services }: SignInMachineOptions) {\n return createMachine<SignInContext, AuthEvent>(\n {\n initial: 'init',\n id: 'signInActor',\n states: {\n init: {\n always: [{ target: 'signIn' }],\n },\n signIn: {\n initial: 'edit',\n exit: ['clearFormValues', 'clearTouched'],\n states: {\n edit: {\n entry: sendUpdate(),\n on: {\n SUBMIT: { actions: 'handleSubmit', target: 'submit' },\n CHANGE: { actions: 'handleInput' },\n FEDERATED_SIGN_IN: 'federatedSignIn',\n },\n },\n federatedSignIn: {\n tags: ['pending'],\n entry: [sendUpdate(), 'clearError'],\n invoke: {\n src: 'federatedSignIn',\n // getting navigated out anyway, only track errors.\n // onDone: '#signInActor.resolved',\n onError: { actions: 'setRemoteError' },\n },\n },\n submit: {\n tags: ['pending'],\n entry: ['parsePhoneNumber', 'clearError', sendUpdate()],\n invoke: {\n src: 'signIn',\n onDone: [\n {\n cond: 'shouldSetupTOTP',\n actions: ['setUser', 'setChallengeName'],\n target: '#signInActor.setupTOTP',\n },\n {\n cond: 'shouldConfirmSignIn',\n actions: ['setUser', 'setChallengeName'],\n target: '#signInActor.confirmSignIn',\n },\n {\n cond: 'shouldForceChangePassword',\n actions: [\n 'setUser',\n 'setChallengeName',\n 'setRequiredAttributes',\n ],\n target: '#signInActor.forceNewPassword',\n },\n {\n actions: 'setUser',\n target: 'verifying',\n },\n ],\n onError: [\n {\n cond: 'shouldRedirectToConfirmSignUp',\n actions: ['setCredentials', 'setConfirmSignUpIntent'],\n target: 'rejected',\n },\n {\n cond: 'shouldRedirectToConfirmResetPassword',\n actions: [\n 'setUsernameAuthAttributes',\n 'setConfirmResetPasswordIntent',\n ],\n target: 'rejected',\n },\n {\n actions: 'setRemoteError',\n target: 'edit',\n },\n ],\n },\n },\n verifying: {\n tags: ['pending'],\n entry: ['clearError', sendUpdate()],\n invoke: {\n src: 'checkVerifiedContact',\n onDone: [\n {\n cond: 'shouldRequestVerification',\n target: '#signInActor.verifyUser',\n actions: 'setUnverifiedAttributes',\n },\n {\n target: 'resolved',\n },\n ],\n onError: {\n actions: 'setRemoteError',\n target: 'edit',\n },\n },\n },\n resolved: { always: '#signInActor.resolved' },\n rejected: { always: '#signInActor.rejected' },\n },\n },\n confirmSignIn: {\n initial: 'edit',\n exit: ['clearFormValues', 'clearError', 'clearTouched'],\n states: {\n edit: {\n entry: sendUpdate(),\n on: {\n SUBMIT: { actions: 'handleSubmit', target: 'submit' },\n SIGN_IN: '#signInActor.signIn',\n CHANGE: { actions: 'handleInput' },\n },\n },\n submit: {\n tags: ['pending'],\n entry: ['clearError', sendUpdate()],\n invoke: {\n src: 'confirmSignIn',\n onDone: {\n target: '#signInActor.resolved',\n actions: [\n 'setUser',\n 'clearChallengeName',\n 'clearRequiredAttributes',\n ],\n },\n onError: {\n target: 'edit',\n actions: 'setRemoteError',\n },\n },\n },\n },\n },\n forceNewPassword: {\n type: 'parallel',\n exit: ['clearFormValues', 'clearError', 'clearTouched'],\n states: {\n validation: {\n initial: 'pending',\n states: {\n pending: {\n invoke: {\n src: 'validateFields',\n onDone: {\n target: 'valid',\n actions: 'clearValidationError',\n },\n onError: {\n target: 'invalid',\n actions: 'setFieldErrors',\n },\n },\n },\n valid: { entry: sendUpdate() },\n invalid: { entry: sendUpdate() },\n },\n on: {\n SIGN_IN: '#signInActor.signIn',\n CHANGE: {\n actions: 'handleInput',\n target: '.pending',\n },\n BLUR: {\n actions: 'handleBlur',\n target: '.pending',\n },\n },\n },\n submit: {\n initial: 'idle',\n entry: 'clearError',\n states: {\n idle: {\n entry: sendUpdate(),\n on: {\n SUBMIT: { actions: 'handleSubmit', target: 'validate' },\n },\n },\n validate: {\n entry: sendUpdate(),\n invoke: {\n src: 'validateFields',\n onDone: {\n target: 'pending',\n actions: 'clearValidationError',\n },\n onError: {\n target: 'idle',\n actions: 'setFieldErrors',\n },\n },\n },\n pending: {\n tags: ['pending'],\n entry: [sendUpdate(), 'clearError'],\n invoke: {\n src: 'forceNewPassword',\n onDone: [\n {\n cond: 'shouldConfirmSignIn',\n actions: ['setUser', 'setChallengeName'],\n target: '#signInActor.confirmSignIn',\n },\n {\n cond: 'shouldSetupTOTP',\n actions: ['setUser', 'setChallengeName'],\n\n target: '#signInActor.setupTOTP',\n },\n {\n target: 'resolved',\n actions: ['setUser', 'setCredentials'],\n },\n ],\n onError: {\n target: 'idle',\n actions: 'setRemoteError',\n },\n },\n },\n resolved: { type: 'final', always: '#signInActor.resolved' },\n },\n },\n },\n },\n setupTOTP: {\n initial: 'edit',\n exit: ['clearFormValues', 'clearError', 'clearTouched'],\n states: {\n edit: {\n entry: sendUpdate(),\n on: {\n SUBMIT: { actions: 'handleSubmit', target: 'submit' },\n SIGN_IN: '#signInActor.signIn',\n CHANGE: { actions: 'handleInput' },\n },\n },\n submit: {\n tags: ['pending'],\n entry: [sendUpdate(), 'clearError'],\n invoke: {\n src: 'verifyTotpToken',\n onDone: {\n actions: [\n 'setUser',\n 'clearChallengeName',\n 'clearRequiredAttributes',\n ],\n target: '#signInActor.resolved',\n },\n onError: {\n actions: 'setRemoteError',\n target: 'edit',\n },\n },\n },\n },\n },\n verifyUser: {\n initial: 'edit',\n exit: ['clearFormValues', 'clearError', 'clearTouched'],\n states: {\n edit: {\n entry: sendUpdate(),\n on: {\n SUBMIT: { actions: 'handleSubmit', target: 'submit' },\n SKIP: '#signInActor.resolved',\n CHANGE: { actions: 'handleInput' },\n },\n },\n submit: {\n tags: ['pending'],\n entry: 'clearError',\n invoke: {\n src: 'verifyUser',\n onDone: {\n target: '#signInActor.confirmVerifyUser',\n },\n onError: {\n actions: 'setRemoteError',\n target: 'edit',\n },\n },\n },\n },\n },\n confirmVerifyUser: {\n initial: 'edit',\n exit: [\n 'clearFormValues',\n 'clearError',\n 'clearUnverifiedAttributes',\n 'clearAttributeToVerify',\n 'clearTouched',\n ],\n states: {\n edit: {\n entry: sendUpdate(),\n on: {\n SUBMIT: { actions: 'handleSubmit', target: 'submit' },\n SKIP: '#signInActor.resolved',\n CHANGE: { actions: 'handleInput' },\n },\n },\n submit: {\n tags: ['pending'],\n entry: 'clearError',\n invoke: {\n src: 'confirmVerifyUser',\n onDone: {\n target: '#signInActor.resolved',\n },\n onError: {\n actions: 'setRemoteError',\n target: 'edit',\n },\n },\n },\n },\n },\n resolved: {\n type: 'final',\n data: (context) => ({\n user: context.user,\n }),\n },\n rejected: {\n type: 'final',\n data: (context, event) => {\n return {\n intent: context.redirectIntent,\n authAttributes: context.authAttributes,\n };\n },\n },\n },\n },\n {\n actions: {\n clearAttributeToVerify,\n clearChallengeName,\n clearRequiredAttributes,\n clearError,\n clearFormValues,\n clearTouched,\n clearUnverifiedAttributes,\n clearValidationError,\n handleInput,\n handleSubmit,\n handleBlur,\n parsePhoneNumber,\n setChallengeName,\n setConfirmResetPasswordIntent,\n setConfirmSignUpIntent,\n setRequiredAttributes,\n setCredentials,\n setFieldErrors,\n setRemoteError,\n setUnverifiedAttributes,\n setUser,\n setUsernameAuthAttributes,\n },\n guards: {\n shouldConfirmSignIn: (_, event): boolean => {\n const challengeName = get(event, 'data.challengeName');\n const validChallengeNames = [\n AuthChallengeNames.SMS_MFA,\n AuthChallengeNames.SOFTWARE_TOKEN_MFA,\n ];\n\n return validChallengeNames.includes(challengeName);\n },\n shouldRedirectToConfirmSignUp: (_, event): boolean => {\n return event.data.code === 'UserNotConfirmedException';\n },\n shouldRedirectToConfirmResetPassword: (_, event): boolean => {\n return event.data.code === 'PasswordResetRequiredException';\n },\n shouldSetupTOTP: (_, event): boolean => {\n const challengeName = get(event, 'data.challengeName');\n\n return challengeName === AuthChallengeNames.MFA_SETUP;\n },\n shouldForceChangePassword: (_, event): boolean => {\n const challengeName = get(event, 'data.challengeName');\n\n return challengeName === AuthChallengeNames.NEW_PASSWORD_REQUIRED;\n },\n shouldRequestVerification: (_, event): boolean => {\n const { unverified, verified } = event.data;\n\n return isEmpty(verified) && !isEmpty(unverified);\n },\n },\n services: {\n async signIn(context) {\n const { username, password } = context.formValues;\n\n return await services.handleSignIn({\n username,\n password,\n });\n },\n async confirmSignIn(context, event) {\n const { challengeName, user } = context;\n const { confirmation_code: code } = context.formValues;\n\n let mfaType;\n if (\n challengeName === AuthChallengeNames.SMS_MFA ||\n challengeName === AuthChallengeNames.SOFTWARE_TOKEN_MFA\n ) {\n mfaType = challengeName;\n }\n\n await services.handleConfirmSignIn({ user, code, mfaType });\n return await Auth.currentAuthenticatedUser();\n },\n async forceNewPassword(context, event) {\n const { user, formValues } = context;\n let {\n password,\n confirm_password,\n phone_number,\n country_code,\n ...rest\n } = formValues;\n\n let phoneNumberWithCountryCode;\n if (phone_number) {\n phoneNumberWithCountryCode =\n `${country_code}${phone_number}`.replace(/[^A-Z0-9+]/gi, '');\n rest = { ...rest, phone_number: phoneNumberWithCountryCode };\n }\n\n return Auth.completeNewPassword(user, password, rest);\n },\n async verifyTotpToken(context, event) {\n const { user } = context;\n const { confirmation_code } = context.formValues;\n\n return Auth.verifyTotpToken(user, confirmation_code);\n },\n async federatedSignIn(_, event) {\n const { provider } = event.data;\n\n return await Auth.federatedSignIn({ provider });\n },\n async checkVerifiedContact(context, event) {\n const { user } = context;\n const result = await Auth.verifiedContact(user);\n\n return result;\n },\n async verifyUser(context, event) {\n const { unverifiedAttr } = context.formValues;\n const result = await Auth.verifyCurrentUserAttribute(unverifiedAttr);\n\n context.attributeToVerify = unverifiedAttr;\n\n return result;\n },\n async confirmVerifyUser(context, event) {\n const { attributeToVerify } = context;\n const { confirmation_code } = context.formValues;\n\n return await Auth.verifyCurrentUserAttributeSubmit(\n attributeToVerify,\n confirmation_code\n );\n },\n async validateFields(context, event) {\n return runValidators(context.formValues, context.touched, [\n defaultServices.validateConfirmPassword,\n ]);\n },\n },\n }\n );\n}\n","import { AuthFormData, Validator } from '../types';\nimport isEmpty from 'lodash/isEmpty';\nimport merge from 'lodash/merge';\n\n// Runs all validators given. Resolves if there are no error. Rejects otherwise.\nexport const runValidators = async (\n formData: AuthFormData,\n touchData: AuthFormData,\n validators: Validator[]\n) => {\n const errors = await Promise.all(\n validators.map((validator) => validator(formData, touchData))\n );\n const mergedError = merge({}, ...errors);\n\n if (isEmpty(mergedError)) {\n // no errors were found\n return Promise.resolve();\n } else {\n return Promise.reject(mergedError);\n }\n};\n","import { Amplify, Auth } from 'aws-amplify';\n\nimport { AuthChallengeNames, SignInResult, ValidatorResult } from '../../types';\n\nexport const defaultServices = {\n async getAmplifyConfig() {\n return Amplify.configure();\n },\n\n async getCurrentUser() {\n return Auth.currentAuthenticatedUser();\n },\n\n async handleSignUp(formData): Promise<any> {\n return Auth.signUp(formData);\n },\n async handleSignIn({\n username,\n password,\n }: {\n username: string;\n password: string;\n }): Promise<any> {\n return Auth.signIn(username, password);\n },\n async handleConfirmSignIn({\n user,\n code,\n mfaType,\n }: {\n user: any;\n code: string;\n mfaType: AuthChallengeNames.SMS_MFA | AuthChallengeNames.SOFTWARE_TOKEN_MFA;\n }): Promise<any> {\n return Auth.confirmSignIn(user, code, mfaType);\n },\n async handleConfirmSignUp({\n username,\n code,\n }: {\n username: string;\n code: string;\n }): Promise<any> {\n return await Auth.confirmSignUp(username, code);\n },\n async handleForgotPasswordSubmit({\n username,\n code,\n password,\n }: {\n username: string;\n code: string;\n password: string;\n }): Promise<SignInResult> {\n return Auth.forgotPasswordSubmit(username, code, password);\n },\n async handleForgotPassword(formData): Promise<any> {\n return Auth.forgotPassword(formData);\n },\n\n // Validation hooks for overriding\n async validateCustomSignUp(formData, touchData): Promise<ValidatorResult> {},\n async validateConfirmPassword<Validator>(\n formData,\n touchData\n ): Promise<ValidatorResult> {\n const { password, confirm_password } = formData;\n\n const {\n confirm_password: touched_confirm_password,\n password: touched_password,\n } = touchData;\n\n if (!password && !confirm_password) {\n // these inputs are clean, don't complain yet\n return null;\n } else if (\n (password || confirm_password) &&\n password !== confirm_password &&\n ((touched_confirm_password && touched_password) ||\n (password.length >= 6 && confirm_password.length >= 6))\n ) {\n // Only return an error if both fields have text entered,\n // the passwords do not match, and the fields have been\n // touched or the password and confirm password is longer then or equal to 6.\n\n return {\n confirm_password: 'Your passwords must match',\n };\n }\n },\n async validatePreferredUsername(\n formData,\n touchData\n ): Promise<ValidatorResult> {},\n};\n","import { createMachine } from 'xstate';\n\nimport { AuthEvent, SignOutContext } from '../../../types';\nimport { Auth } from 'aws-amplify';\n\nexport const signOutActor = createMachine<SignOutContext, AuthEvent>(\n {\n initial: 'pending',\n id: 'signOutActor',\n states: {\n pending: {\n tags: ['pending'],\n invoke: {\n src: 'signOut',\n onDone: 'resolved',\n onError: 'rejected',\n },\n },\n resolved: { type: 'final' },\n rejected: { type: 'final' },\n },\n },\n {\n services: {\n signOut: () => Auth.signOut(/* global? */),\n },\n }\n);\n","import { createMachine, sendUpdate } from 'xstate';\nimport { AuthEvent, ResetPasswordContext } from '../../../types';\nimport { runValidators } from '../../../validators';\nimport {\n clearError,\n clearFormValues,\n clearTouched,\n clearUsername,\n clearValidationError,\n handleInput,\n handleSubmit,\n handleBlur,\n setFieldErrors,\n setRemoteError,\n setUsername,\n} from '../actions';\nimport { defaultServices } from '../defaultServices';\n\nexport type ResetPasswordMachineOptions = {\n services?: Partial<typeof defaultServices>;\n};\n\nexport function resetPasswordActor({ services }: ResetPasswordMachineOptions) {\n return createMachine<ResetPasswordContext, AuthEvent>(\n {\n id: 'resetPasswordActor',\n initial: 'init',\n states: {\n init: {\n always: [\n { target: 'confirmResetPassword', cond: 'shouldAutoConfirmReset' },\n { target: 'resetPassword' },\n ],\n },\n resetPassword: {\n initial: 'edit',\n exit: ['clearFormValues', 'clearError', 'clearTouched'],\n states: {\n edit: {\n entry: sendUpdate(),\n on: {\n SUBMIT: { actions: 'handleSubmit', target: 'submit' },\n CHANGE: { actions: 'handleInput' },\n BLUR: { actions: 'handleBlur' },\n },\n },\n submit: {\n tags: ['pending'],\n entry: [sendUpdate(), 'setUsername', 'clearError'],\n invoke: {\n src: 'resetPassword',\n onDone: {\n target: '#resetPasswordActor.confirmResetPassword',\n },\n onError: {\n actions: ['setRemoteError'],\n target: 'edit',\n },\n },\n },\n },\n },\n confirmResetPassword: {\n type: 'parallel',\n exit: [\n 'clearFormValues',\n 'clearError',\n 'clearUsername',\n 'clearTouched',\n ],\n states: {\n validation: {\n initial: 'pending',\n states: {\n pending: {\n invoke: {\n src: 'validateFields',\n onDone: {\n target: 'valid',\n actions: 'clearValidationError',\n },\n onError: {\n target: 'invalid',\n actions: 'setFieldErrors',\n },\n },\n },\n valid: { entry: sendUpdate() },\n invalid: { entry: sendUpdate() },\n },\n on: {\n CHANGE: {\n actions: 'handleInput',\n target: '.pending',\n },\n BLUR: {\n actions: 'handleBlur',\n target: '.pending',\n },\n },\n },\n submission: {\n initial: 'idle',\n states: {\n idle: {\n entry: sendUpdate(),\n on: {\n SUBMIT: { actions: 'handleSubmit', target: 'validate' },\n RESEND: 'resendCode',\n CHANGE: { actions: 'handleInput' },\n BLUR: { actions: 'handleBlur' },\n },\n },\n validate: {\n entry: sendUpdate(),\n invoke: {\n src: 'validateFields',\n onDone: {\n target: 'pending',\n actions: 'clearValidationError',\n },\n onError: {\n target: 'idle',\n actions: 'setFieldErrors',\n },\n },\n },\n resendCode: {\n tags: ['pending'],\n entry: ['clearError', sendUpdate()],\n invoke: {\n src: 'resetPassword',\n onDone: { target: 'idle' },\n onError: {\n actions: 'setRemoteError',\n target: 'idle',\n },\n },\n },\n pending: {\n tags: ['pending'],\n entry: ['clearError', sendUpdate()],\n invoke: {\n src: 'confirmResetPassword',\n onDone: {\n actions: 'clearUsername',\n target: '#resetPasswordActor.resolved',\n },\n onError: {\n actions: 'setRemoteError',\n target: 'idle',\n },\n },\n },\n },\n },\n },\n },\n resolved: { type: 'final' },\n },\n },\n {\n actions: {\n clearError,\n clearFormValues,\n clearTouched,\n clearUsername,\n clearValidationError,\n handleInput,\n handleSubmit,\n handleBlur,\n setFieldErrors,\n setRemoteError,\n setUsername,\n },\n guards: {\n shouldAutoConfirmReset: (context, event): boolean => {\n return !!(\n context.intent && context.intent === 'confirmPasswordReset'\n );\n },\n },\n services: {\n async resetPassword(context) {\n const username = context.formValues?.username ?? context.username;\n\n return services.handleForgotPassword(username);\n },\n async confirmResetPassword(context) {\n const { username } = context;\n const { confirmation_code: code, password } = context.formValues;\n\n return services.handleForgotPasswordSubmit({\n username,\n code,\n password,\n });\n },\n async validateFields(context, event) {\n return runValidators(context.formValues, context.touched, [\n defaultServices.validateConfirmPassword,\n ]);\n },\n },\n }\n );\n}\n","import { Auth } from 'aws-amplify';\nimport get from 'lodash/get';\nimport pickBy from 'lodash/pickBy';\nimport { createMachine, sendUpdate } from 'xstate';\n\nimport { AuthEvent, SignUpContext } from '../../types';\nimport { runValidators } from '../../validators';\nimport {\n clearError,\n clearFormValues,\n clearTouched,\n clearValidationError,\n handleInput,\n handleBlur,\n parsePhoneNumber,\n setCredentials,\n setFieldErrors,\n setRemoteError,\n setCodeDeliveryDetails,\n setUser,\n handleSubmit,\n} from './actions';\nimport { defaultServices } from './defaultServices';\n\nexport type SignUpMachineOptions = {\n services?: Partial<typeof defaultServices>;\n};\n\nexport function createSignUpMachine({ services }: SignUpMachineOptions) {\n return createMachine<SignUpContext, AuthEvent>(\n {\n id: 'signUpActor',\n initial: 'init',\n states: {\n init: {\n always: [\n { target: 'confirmSignUp', cond: 'shouldInitConfirmSignUp' },\n { target: 'signUp' },\n ],\n },\n signUp: {\n type: 'parallel',\n exit: ['clearError', 'clearFormValues', 'clearTouched'],\n states: {\n validation: {\n initial: 'pending',\n states: {\n pending: {\n invoke: {\n src: 'validateSignUp',\n onDone: {\n target: 'valid',\n actions: 'clearValidationError',\n },\n onError: {\n target: 'invalid',\n actions: 'setFieldErrors',\n },\n },\n },\n valid: { entry: sendUpdate() },\n invalid: { entry: sendUpdate() },\n },\n on: {\n CHANGE: {\n actions: 'handleInput',\n target: '.pending',\n },\n BLUR: {\n actions: 'handleBlur',\n target: '.pending',\n },\n },\n },\n submission: {\n initial: 'idle',\n states: {\n idle: {\n entry: sendUpdate(),\n on: {\n SUBMIT: { actions: 'handleSubmit', target: 'validate' },\n FEDERATED_SIGN_IN: 'federatedSignIn',\n },\n },\n federatedSignIn: {\n tags: ['pending'],\n entry: [sendUpdate(), 'clearError'],\n invoke: {\n src: 'federatedSignIn',\n onDone: '#signUpActor.resolved',\n onError: { actions: 'setRemoteError' },\n },\n },\n validate: {\n entry: sendUpdate(),\n invoke: {\n src: 'validateSignUp',\n onDone: {\n target: 'pending',\n actions: 'clearValidationError',\n },\n onError: {\n target: 'idle',\n actions: 'setFieldErrors',\n },\n },\n },\n pending: {\n tags: ['pending'],\n entry: ['parsePhoneNumber', sendUpdate(), 'clearError'],\n invoke: {\n src: 'signUp',\n onDone: [\n {\n cond: 'shouldSkipConfirm',\n target: 'skipConfirm',\n actions: ['setUser'],\n },\n {\n target: 'resolved',\n actions: [\n 'setUser',\n 'setCredentials',\n 'setCodeDeliveryDetails',\n ],\n },\n ],\n onError: {\n target: 'idle',\n actions: 'setRemoteError',\n },\n },\n },\n skipConfirm: {\n invoke: {\n src: 'signIn',\n onDone: {\n target: '#signUpActor.resolved',\n actions: 'setUser',\n },\n onError: {\n target: 'idle',\n actions: 'setRemoteError',\n },\n },\n },\n\n resolved: {\n type: 'final',\n always: '#signUpActor.confirmSignUp',\n },\n },\n },\n },\n },\n confirmSignUp: {\n initial: 'edit',\n states: {\n edit: {\n entry: sendUpdate(),\n on: {\n SUBMIT: { actions: 'handleSubmit', target: 'submit' },\n CHANGE: { actions: 'handleInput' },\n BLUR: { actions: 'handleBlur' },\n RESEND: 'resend',\n },\n },\n resend: {\n tags: ['pending'],\n entry: sendUpdate(),\n invoke: {\n src: 'resendConfirmationCode',\n onDone: { target: 'edit' },\n onError: [\n {\n target: '#signUpActor.resolved',\n actions: 'setUser',\n cond: 'isUserAlreadyConfirmed',\n },\n { target: 'edit', actions: 'setRemoteError' },\n ],\n },\n },\n submit: {\n tags: ['pending'],\n entry: [sendUpdate(), 'clearError'],\n invoke: {\n src: 'confirmSignUp',\n onDone: {\n target: '#signUpActor.resolved',\n actions: ['setUser'],\n },\n onError: { target: 'edit', actions: 'setRemoteError' },\n },\n },\n },\n },\n resolved: {\n type: 'final',\n data: (context, event) => {\n const { username, password } = context.authAttributes;\n\n return {\n user: get(event, 'data.user') || context.user,\n authAttributes: { username, password },\n };\n },\n },\n },\n },\n {\n guards: {\n /**\n * This guard covers an edge case that exists in the current state of the UI.\n * As of now, our ConfirmSignUp screen only supports showing an input for a\n * confirmation code. However, a Cognito UserPool can instead verify users\n * through a link that gets emailed to them. If a user verifies through the\n * link and then they click on the \"Resend Code\" button, they will get an error\n * saying that the user has already been confirmed. If we encounter that error,\n * we want to just funnel them through the rest of the flow. In the future, we will\n * want to update our UI to support both confirmation codes and links.\n *\n * https://github.com/aws-amplify/amplify-ui/issues/219\n */\n isUserAlreadyConfirmed: (context, event) => {\n return event.data.message === 'User is already confirmed.';\n },\n shouldInitConfirmSignUp: (context) => {\n return context.intent && context.intent === 'confirmSignUp';\n },\n shouldSkipConfirm: (context, event) => {\n return event.data.userConfirmed;\n },\n },\n actions: {\n clearError,\n clearFormValues,\n clearTouched,\n clearValidationError,\n handleInput,\n handleSubmit,\n handleBlur,\n parsePhoneNumber,\n setCredentials,\n setFieldErrors,\n setRemoteError,\n setCodeDeliveryDetails,\n setUser,\n },\n services: {\n async signIn(context, event) {\n const { user, authAttributes, formValues } = context;\n\n const username =\n get(user, 'username') || get(authAttributes, 'username');\n const password = get(formValues, 'password');\n\n return await Auth.signIn(username, password);\n },\n async confirmSignUp(context, event) {\n const { user, authAttributes, formValues } = context;\n const { confirmation_code: code } = formValues;\n\n const username =\n get(user, 'username') || get(authAttributes, 'username');\n const { password } = authAttributes;\n\n await services.handleConfirmSignUp({ username, code });\n\n return await Auth.signIn(username, password);\n },\n async resendConfirmationCode(context, event) {\n const { user, authAttributes } = context;\n const username =\n get(user, 'username') || get(authAttributes, 'username');\n\n return Auth.resendSignUp(username);\n },\n async federatedSignIn(_, event) {\n const { provider } = event.data;\n const result = await Auth.federatedSignIn({ provider });\n return result;\n },\n async signUp(context, _event) {\n const { formValues, loginMechanisms } = context;\n const [primaryAlias = 'username'] = loginMechanisms;\n const { [primaryAlias]: username, password } = formValues;\n\n const attributes = pickBy(formValues, (_, key) => {\n // Allowlist of Cognito User Pool Attributes (from OpenID Connect specification)\n // See: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html\n switch (key) {\n case 'address':\n case 'birthdate':\n case 'email':\n case 'family_name':\n case 'gender':\n case 'given_name':\n case 'locale':\n case 'middle_name':\n case 'name':\n case 'nickname':\n case 'phone_number':\n case 'picture':\n case 'preferred_username':\n case 'profile':\n case 'updated_at':\n case 'website':\n case 'zoneinfo':\n return true;\n\n // Otherwise, it's a custom attribute\n default:\n return key.startsWith('custom:');\n }\n });\n\n return await services.handleSignUp({\n username,\n password,\n attributes,\n });\n },\n async validateSignUp(context, event) {\n // This needs to exist in the machine to reference new `services`\n\n return runValidators(context.formValues, context.touched, [\n // Validation for default form fields\n services.validateConfirmPassword,\n services.validatePreferredUsername,\n // Validation for any custom Sign Up fields\n services.validateCustomSignUp,\n ]);\n },\n },\n }\n );\n}\n","import { createTheme } from './createTheme';\nimport { baseTheme } from './baseTheme';\n\nexport { createTheme };\nexport * from './types';\n\nexport const defaultTheme = createTheme(\n {\n name: 'default-theme',\n },\n baseTheme\n);\n","// Internal Style Dictionary methods\nimport deepExtend from 'style-dictionary/lib/utils/deepExtend';\nimport flattenProperties from 'style-dictionary/lib/utils/flattenProperties';\n\nimport { baseTheme as _baseTheme } from './baseTheme';\nimport { Theme, BaseTheme, WebTheme, Override } from './types';\nimport { cssValue, cssNameTransform } from './utils';\nimport { WebTokens } from './tokens';\nimport { DesignToken, WebDesignToken } from './tokens/types/designToken';\n\n/**\n * This will take a design token and add some data to it for it\n * to be used in JS/CSS. It will create its CSS var name and update\n * the value to use a CSS var if it is a reference. It will also\n * add a `.toString()` method to make it easier to use in JS.\n *\n * We should see if there is a way to share this logic with style dictionary...\n */\nfunction setupToken(token: DesignToken, path: Array<string>): WebDesignToken {\n const name = `--${cssNameTransform({ path })}`;\n const { value } = token;\n\n return {\n name,\n path,\n value: cssValue(token),\n original: value,\n toString: () => `var(${name})`,\n };\n}\n\n/**\n * Recursive function that will walk down the token object\n * and perform the setupToken function on each token.\n * Similar to what Style Dictionary does.\n */\nfunction setupTokens(obj: any, path = []) {\n let tokens = {};\n\n if (obj.hasOwnProperty('value')) {\n return setupToken(obj, path);\n } else {\n for (const name in obj) {\n if (obj.hasOwnProperty(name)) {\n tokens[name] = setupTokens(obj[name], path.concat(name));\n }\n }\n }\n\n return tokens;\n}\n\n/**\n * This will be used like `const myTheme = createTheme({})`\n * `myTheme` can then be passed to a Provider or the generated CSS\n * can be passed to a stylesheet at build-time or run-time.\n * const myTheme = createTheme({})\n * const myOtherTheme = createTheme({}, myTheme);\n */\nexport function createTheme(\n theme?: Theme,\n baseTheme: BaseTheme = _baseTheme\n): WebTheme {\n // merge theme and baseTheme to get a complete theme\n // deepExtend is an internal Style Dictionary method\n // that performs a deep merge on n objects. We could change\n // this to another 3p deep merge solution too.\n const mergedTheme: BaseTheme = deepExtend([{}, baseTheme, theme]);\n\n // Setting up the tokens. This is similar to what Style Dictionary\n // does. At the end of this, each token should have:\n // - CSS variable name of itself\n // - its value (reference to another CSS variable or raw value)\n const tokens = setupTokens(mergedTheme.tokens) as WebTokens; // Setting the type here because setupTokens is recursive\n\n const { breakpoints, name } = mergedTheme;\n\n // flattenProperties is another internal Style Dictionary function\n // that creates an array of all tokens.\n let cssText =\n `[data-amplify-theme=\"${name}\"] {\\n` +\n flattenProperties(tokens)\n .map((token) => `${token.name}: ${token.value};`)\n .join('\\n') +\n `\\n}\\n`;\n\n let overrides: Array<Override> = [];\n\n /**\n * For each override, we setup the tokens and then generate the CSS.\n * This allows us to have one single CSS string for all possible overrides\n * and avoid re-renders in React, but also support other frameworks as well.\n */\n if (mergedTheme.overrides) {\n overrides = mergedTheme.overrides.map((override) => {\n const tokens = setupTokens(override.tokens);\n const customProperties = flattenProperties(tokens)\n .map((token) => `${token.name}: ${token.value};`)\n .join('\\n');\n // Overrides can have a selector, media query, breakpoint, or color mode\n // for creating the selector\n if ('selector' in override) {\n cssText += `\\n${override.selector} {\\n${customProperties}\\n}\\n`;\n }\n if ('mediaQuery' in override) {\n cssText += `\\n@media (${override.mediaQuery}) {\n [data-amplify-theme=\"${name}\"] {\n ${customProperties}\n }\n}\\n`;\n }\n if ('breakpoint' in override) {\n const breakpoint = mergedTheme.breakpoints.values[override.breakpoint];\n cssText += `\\n@media (min-width: ${breakpoint}px) {\n [data-amplify-theme=\"${name}\"] {\n ${customProperties}\n }\n}\\n`;\n }\n if ('colorMode' in override) {\n cssText += `\\n@media (prefers-color-scheme: ${override.colorMode}) {\n [data-amplify-theme=\"${name}\"][data-amplify-color-mode=\"system\"] {\\n${customProperties}\\n}\n }\\n`;\n cssText += `\\n[data-amplify-theme=\"${name}\"][data-amplify-color-mode=\"${override.colorMode}\"] {\\n${customProperties}\\n}\\n`;\n }\n\n return {\n ...override,\n tokens,\n };\n });\n }\n\n return {\n tokens,\n breakpoints,\n name,\n cssText,\n // keep overrides separate from base theme\n // this allows web platforms to use plain CSS scoped to a\n // selector and only override the CSS vars needed. This\n // means we could generate CSS at build-time in a postcss\n // plugin, or do it at runtime and inject the CSS into a\n // style tag.\n // This also allows RN to dynamically switch themes in a\n // provider.\n overrides,\n };\n}\n","import { tokens } from './tokens';\nimport { breakpoints } from './breakpoints';\nimport { BaseTheme } from './types';\n\nexport const baseTheme: BaseTheme = {\n tokens,\n breakpoints,\n name: 'base-theme',\n};\n","import { borderWidths, BorderWidths, WebBorderWidths } from './borderWidths';\nimport { colors, Colors, WebColors } from './colors';\nimport { fonts, Fonts, WebFonts } from './fonts';\nimport { fontSizes, FontSizes, WebFontSizes } from './fontSizes';\nimport { fontWeights, FontWeights, WebFontWeights } from './fontWeights';\nimport { lineHeights, LineHeights, WebLineHeights } from './lineHeights';\nimport { opacities, Opacities, WebOpacities } from './opacities';\nimport {\n outlineOffsets,\n OutlineOffsets,\n WebOutlineOffsets,\n} from './outlineOffsets';\nimport {\n outlineWidths,\n OutlineWidths,\n WebOutlineWidths,\n} from './outlineWidths';\nimport { radii, Radii, WebRadii } from './radii';\nimport { shadows, Shadows, WebShadows } from './shadows';\nimport { space, Space, WebSpace } from './space';\nimport { time, Time, WebTime } from './time';\nimport { transforms, Transforms, WebTransforms } from './transforms';\n\nexport interface Tokens {\n components: any; // TODO type this\n borderWidths: BorderWidths;\n colors: Colors;\n fonts: Fonts;\n fontSizes: FontSizes;\n fontWeights: FontWeights;\n lineHeights: LineHeights;\n opacities: Opacities;\n outlineOffsets: OutlineOffsets;\n outlineWidths: OutlineWidths;\n radii: Radii;\n shadows: Shadows;\n space: Space;\n time: Time;\n transforms: Transforms;\n}\n\n/**\n * The fully setup theme tokens. It has the same shape as Tokens\n * but each token has added fields.\n */\nexport interface WebTokens extends Tokens {\n borderWidths: WebBorderWidths;\n colors: WebColors;\n fonts: WebFonts;\n fontSizes: WebFontSizes;\n fontWeights: WebFontWeights;\n lineHeights: WebLineHeights;\n opacities: WebOpacities;\n outlineOffsets: WebOutlineOffsets;\n outlineWidths: WebOutlineWidths;\n radii: WebRadii;\n shadows: WebShadows;\n space: WebSpace;\n time: WebTime;\n transform: WebTransforms;\n}\n\nexport const tokens: Tokens = {\n // TODO: convert component theme files to typescript\n components: require('./components'),\n borderWidths,\n colors,\n fonts,\n fontSizes,\n fontWeights,\n lineHeights,\n opacities,\n outlineOffsets,\n outlineWidths,\n radii,\n shadows,\n space,\n time,\n transforms,\n};\n","import {\n DesignToken,\n WebDesignToken,\n BorderWidthValue,\n} from './types/designToken';\n\nexport type BorderWidths = {\n /**\n * Small border, used for inputs and such\n */\n small: DesignToken<BorderWidthValue>;\n /**\n * Medium border, used for\n */\n medium: DesignToken<BorderWidthValue>;\n /**\n * Large border\n */\n large: DesignToken<BorderWidthValue>;\n};\n\nexport type WebBorderWidths = {\n [Property in keyof BorderWidths]: WebDesignToken<BorderWidthValue>;\n};\n\nexport const borderWidths: BorderWidths = {\n small: { value: '1px' },\n medium: { value: '2px' },\n large: { value: '3px' },\n};\n","import { DesignToken, WebDesignToken, ColorValue } from './types/designToken';\nimport { OrdinalScale, OrdinalVariation } from './types/scales';\n\ntype ScaleKeys = 10 | 20 | 40 | 60 | 80 | 90 | 100;\ntype OverlayKeys = 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90;\n\ntype ColorScale<DesignTokenType = DesignToken<ColorValue>> = {\n [key in ScaleKeys]: DesignTokenType;\n};\n\ntype OverlayColors<DesignTokenType = DesignToken<ColorValue>> = {\n [key in OverlayKeys]: DesignTokenType;\n};\n\ntype FontColors<DesignTokenType = DesignToken<ColorValue>> = {\n inverse: DesignTokenType;\n interactive: DesignTokenType;\n hover: DesignTokenType;\n focus: DesignTokenType;\n active: DesignTokenType;\n disabled: DesignTokenType;\n} & OrdinalScale<DesignTokenType> &\n OrdinalVariation<DesignTokenType>;\n\ntype BackgroundColors<DesignTokenType = DesignToken<ColorValue>> = {\n disabled: DesignTokenType;\n} & OrdinalScale<DesignTokenType> &\n OrdinalVariation<DesignTokenType>;\n\ntype BorderColors<DesignTokenType = DesignToken<ColorValue>> = {\n disabled: DesignTokenType;\n focus: DesignTokenType;\n error: DesignTokenType;\n} & OrdinalScale<DesignTokenType>;\n\ntype ColorTypes<DesignTokenType = DesignToken<ColorValue>> =\n | { [key in ScaleKeys]: DesignTokenType }\n | FontColors\n | BackgroundColors\n | DesignTokenType\n | BorderColors;\n\ntype WebColorTypes = ColorTypes<WebDesignToken<ColorValue>>;\n\nexport type Colors = {\n // base color palette\n red: ColorScale;\n orange: ColorScale;\n yellow: ColorScale;\n green: ColorScale;\n teal: ColorScale;\n blue: ColorScale;\n purple: ColorScale;\n pink: ColorScale;\n neutral: ColorScale;\n white: DesignToken<ColorValue>;\n black: DesignToken<ColorValue>;\n\n // Semantic colors\n font: FontColors;\n background: BackgroundColors;\n border: BorderColors;\n brand: {\n primary: ColorScale;\n secondary: ColorScale;\n };\n\n overlay: OverlayColors;\n\n [key: string]: ColorTypes | Record<string, ColorTypes>;\n};\n\nexport type WebColors = {\n red: ColorScale<WebDesignToken<ColorValue>>;\n orange: ColorScale<WebDesignToken<ColorValue>>;\n yellow: ColorScale<WebDesignToken<ColorValue>>;\n green: ColorScale<WebDesignToken<ColorValue>>;\n teal: ColorScale<WebDesignToken<ColorValue>>;\n blue: ColorScale<WebDesignToken<ColorValue>>;\n purple: ColorScale<WebDesignToken<ColorValue>>;\n pink: ColorScale<WebDesignToken<ColorValue>>;\n neutral: ColorScale<WebDesignToken<ColorValue>>;\n white: WebDesignToken<ColorValue>;\n black: WebDesignToken<ColorValue>;\n\n font: FontColors<WebDesignToken<ColorValue>>;\n background: BackgroundColors<WebDesignToken<ColorValue>>;\n border: BorderColors<WebDesignToken<ColorValue>>;\n brand: {\n primary: ColorScale<WebDesignToken<ColorValue>>;\n secondary: ColorScale<WebDesignToken<ColorValue>>;\n };\n\n overlay: OverlayColors<WebDesignToken<ColorValue>>;\n\n [key: string]: WebColorTypes | Record<string, WebColorTypes>;\n};\n\nexport const colors: Colors = {\n red: {\n 10: { value: 'hsl(0, 75%, 95%)' },\n 20: { value: 'hsl(0, 75%, 85%)' },\n 40: { value: 'hsl(0, 75%, 75%)' },\n 60: { value: 'hsl(0, 50%, 50%)' },\n 80: { value: 'hsl(0, 95%, 30%)' },\n 90: { value: 'hsl(0, 100%, 20%)' },\n 100: { value: 'hsl(0, 100%, 15%)' },\n },\n\n orange: {\n 10: { value: 'hsl(30, 75%, 95%)' },\n 20: { value: 'hsl(30, 75%, 85%)' },\n 40: { value: 'hsl(30, 75%, 75%)' },\n 60: { value: 'hsl(30, 50%, 50%)' },\n 80: { value: 'hsl(30, 95%, 30%)' },\n 90: { value: 'hsl(30, 100%, 20%)' },\n 100: { value: 'hsl(30, 100%, 15%)' },\n },\n\n yellow: {\n 10: { value: 'hsl(60, 75%, 95%)' },\n 20: { value: 'hsl(60, 75%, 85%)' },\n 40: { value: 'hsl(60, 75%, 75%)' },\n 60: { value: 'hsl(60, 50%, 50%)' },\n 80: { value: 'hsl(60, 95%, 30%)' },\n 90: { value: 'hsl(60, 100%, 20%)' },\n 100: { value: 'hsl(60, 100%, 15%)' },\n },\n\n green: {\n 10: { value: 'hsl(130, 60%, 95%)' },\n 20: { value: 'hsl(130, 60%, 90%)' },\n 40: { value: 'hsl(130, 44%, 63%)' },\n 60: { value: 'hsl(130, 43%, 46%)' },\n 80: { value: 'hsl(130, 33%, 37%)' },\n 90: { value: 'hsl(130, 27%, 29%)' },\n 100: { value: 'hsl(130, 22%, 23%)' },\n },\n\n teal: {\n 10: { value: 'hsl(190, 75%, 95%)' },\n 20: { value: 'hsl(190, 75%, 85%)' },\n 40: { value: 'hsl(190, 70%, 70%)' },\n 60: { value: 'hsl(190, 50%, 50%)' },\n 80: { value: 'hsl(190, 95%, 30%)' },\n 90: { value: 'hsl(190, 100%, 20%)' },\n 100: { value: 'hsl(190, 100%, 15%)' },\n },\n\n blue: {\n 10: { value: 'hsl(220, 95%, 95%)' },\n 20: { value: 'hsl(220, 85%, 85%)' },\n 40: { value: 'hsl(220, 70%, 70%)' },\n 60: { value: 'hsl(220, 50%, 50%)' },\n 80: { value: 'hsl(220, 95%, 30%)' },\n 90: { value: 'hsl(220, 100%, 20%)' },\n 100: { value: 'hsl(220, 100%, 15%)' },\n },\n\n purple: {\n 10: { value: 'hsl(300, 95%, 95%)' },\n 20: { value: 'hsl(300, 85%, 85%)' },\n 40: { value: 'hsl(300, 70%, 70%)' },\n 60: { value: 'hsl(300, 50%, 50%)' },\n 80: { value: 'hsl(300, 95%, 30%)' },\n 90: { value: 'hsl(300, 100%, 20%)' },\n 100: { value: 'hsl(300, 100%, 15%)' },\n },\n\n pink: {\n 10: { value: 'hsl(340, 95%, 95%)' },\n 20: { value: 'hsl(340, 90%, 85%)' },\n 40: { value: 'hsl(340, 70%, 70%)' },\n 60: { value: 'hsl(340, 50%, 50%)' },\n 80: { value: 'hsl(340, 95%, 30%)' },\n 90: { value: 'hsl(340, 100%, 20%)' },\n 100: { value: 'hsl(340, 100%, 15%)' },\n },\n\n neutral: {\n 10: { value: 'hsl(210, 5%, 98%)' },\n 20: { value: 'hsl(210, 5%, 94%)' },\n 40: { value: 'hsl(210, 5%, 87%)' },\n 60: { value: 'hsl(210, 6%, 70%)' },\n 80: { value: 'hsl(210, 10%, 40%)' },\n 90: { value: 'hsl(210, 25%, 25%)' },\n 100: { value: 'hsl(210, 50%, 10%)' },\n },\n\n brand: {\n primary: {\n 10: { value: '{colors.teal.10.value}' },\n 20: { value: '{colors.teal.20.value}' },\n 40: { value: '{colors.teal.40.value}' },\n 60: { value: '{colors.teal.60.value}' },\n 80: { value: '{colors.teal.80.value}' },\n 90: { value: '{colors.teal.90.value}' },\n 100: { value: '{colors.teal.100.value}' },\n },\n secondary: {\n 10: { value: '{colors.purple.10.value}' },\n 20: { value: '{colors.purple.20.value}' },\n 40: { value: '{colors.purple.40.value}' },\n 60: { value: '{colors.purple.60.value}' },\n 80: { value: '{colors.purple.80.value}' },\n 90: { value: '{colors.purple.90.value}' },\n 100: { value: '{colors.purple.100.value}' },\n },\n },\n\n font: {\n primary: { value: '{colors.neutral.100.value}' },\n secondary: { value: '{colors.neutral.90.value}' },\n tertiary: { value: '{colors.neutral.80.value}' },\n disabled: { value: '{colors.font.tertiary.value}' },\n inverse: { value: '{colors.white.value}' },\n\n interactive: { value: '{colors.brand.primary.80.value}' },\n // Hover and Focus colors are intentionally different colors.\n // This allows users to distinguish between the current keyboard focus\n // and the location of their pointer\n hover: { value: '{colors.brand.primary.90.value}' },\n // Focus color is set to 100 to ensure enough contrast for accessibility\n focus: { value: '{colors.brand.primary.100.value}' },\n active: { value: '{colors.brand.primary.100.value}' },\n\n info: { value: '{colors.blue.90.value}' },\n warning: { value: '{colors.orange.90.value}' },\n error: { value: '{colors.red.90.value}' },\n success: { value: '{colors.green.90.value}' },\n },\n\n background: {\n primary: { value: '{colors.white.value}' },\n secondary: { value: '{colors.neutral.10.value}' },\n tertiary: { value: '{colors.neutral.20.value}' },\n disabled: { value: '{colors.background.tertiary.value}' },\n\n info: { value: '{colors.blue.20.value}' },\n warning: { value: '{colors.orange.20.value}' },\n error: { value: '{colors.red.20.value}' },\n success: { value: '{colors.green.20.value}' },\n },\n\n border: {\n primary: { value: '{colors.neutral.60.value}' },\n secondary: { value: '{colors.neutral.40.value}' },\n tertiary: { value: '{colors.neutral.20.value}' },\n\n disabled: { value: '{colors.border.tertiary.value}' },\n // Focus color is set to 100 to ensure enough contrast for accessibility\n focus: { value: '{colors.brand.primary.100.value}' },\n error: { value: '{colors.red.80.value}' },\n },\n\n shadow: {\n primary: { value: 'hsla(210, 50%, 10%, 0.25)' },\n secondary: { value: 'hsla(210, 50%, 10%, 0.15)' },\n tertiary: { value: 'hsla(210, 50%, 10%, 0.05)' },\n },\n\n overlay: {\n 10: { value: 'hsla(0, 0%, 0%, 0.1)' },\n 20: { value: 'hsla(0, 0%, 0%, 0.2)' },\n 30: { value: 'hsla(0, 0%, 0%, 0.3)' },\n 40: { value: 'hsla(0, 0%, 0%, 0.4)' },\n 50: { value: 'hsla(0, 0%, 0%, 0.5)' },\n 60: { value: 'hsla(0, 0%, 0%, 0.6)' },\n 70: { value: 'hsla(0, 0%, 0%, 0.7)' },\n 80: { value: 'hsla(0, 0%, 0%, 0.8)' },\n 90: { value: 'hsla(0, 0%, 0%, 0.9)' },\n },\n\n black: {\n value: 'hsl(0, 0%, 0%)',\n },\n white: { value: 'hsl(0, 0%, 100%)' },\n transparent: { value: 'transparent' },\n};\n","import { DesignToken, WebDesignToken, FontValue } from './types/designToken';\n\nexport type Fonts = {\n default: {\n variable: DesignToken<FontValue>;\n static: DesignToken<FontValue>;\n };\n};\n\nexport interface WebFonts {\n default: {\n [Property in keyof Fonts['default']]: WebDesignToken<FontValue>;\n };\n}\n\n// TODO: update the design tokens to use an array\n// export interface FontDesignToken {\n// value: Array<string>\n// }\n\nexport const fonts: Fonts = {\n default: {\n variable: {\n value: `'InterVariable', 'Inter var', 'Inter', -apple-system, BlinkMacSystemFont,\n 'Helvetica Neue', 'Segoe UI', Oxygen, Ubuntu, Cantarell, 'Open Sans',\n sans-serif`,\n },\n static: {\n value: `'Inter', -apple-system, BlinkMacSystemFont, 'Helvetica Neue',\n 'Segoe UI', Oxygen, Ubuntu, Cantarell, 'Open Sans', sans-serif`,\n },\n },\n};\n","import {\n DesignToken,\n WebDesignToken,\n FontSizeValue,\n} from './types/designToken';\n\nexport type FontSizes = {\n xxxs: DesignToken<FontSizeValue>;\n xxs: DesignToken<FontSizeValue>;\n xs: DesignToken<FontSizeValue>;\n small: DesignToken<FontSizeValue>;\n medium: DesignToken<FontSizeValue>;\n large: DesignToken<FontSizeValue>;\n xl: DesignToken<FontSizeValue>;\n xxl: DesignToken<FontSizeValue>;\n xxxl: DesignToken<FontSizeValue>;\n xxxxl: DesignToken<FontSizeValue>;\n};\n\nexport type WebFontSizes = {\n [Property in keyof FontSizes]: WebDesignToken<FontSizeValue>;\n};\n\nexport const fontSizes: FontSizes = {\n xxxs: { value: '0.375rem' },\n xxs: { value: '0.5rem' },\n xs: { value: '0.75rem' },\n small: { value: '0.875rem' },\n medium: { value: '1rem' },\n large: { value: '1.25rem' },\n xl: { value: '1.5rem' },\n xxl: { value: '2rem' },\n xxxl: { value: '2.5rem' },\n xxxxl: { value: '3rem' },\n};\n","import {\n DesignToken,\n WebDesignToken,\n FontWeightValue,\n} from './types/designToken';\n\nexport type FontWeights = {\n hairline: DesignToken<FontWeightValue>;\n thin: DesignToken<FontWeightValue>;\n light: DesignToken<FontWeightValue>;\n normal: DesignToken<FontWeightValue>;\n medium: DesignToken<FontWeightValue>;\n semibold: DesignToken<FontWeightValue>;\n bold: DesignToken<FontWeightValue>;\n extrabold: DesignToken<FontWeightValue>;\n black: DesignToken<FontWeightValue>;\n};\n\nexport type WebFontWeights = {\n [Property in keyof FontWeights]: WebDesignToken<FontWeightValue>;\n};\n\nexport const fontWeights: FontWeights = {\n hairline: { value: 100 },\n thin: { value: 200 },\n light: { value: 300 },\n normal: { value: 400 },\n medium: { value: 500 },\n semibold: { value: 600 },\n bold: { value: 700 },\n extrabold: { value: 800 },\n black: { value: 900 },\n};\n","import {\n DesignToken,\n WebDesignToken,\n LineHeightValue,\n} from './types/designToken';\n\nexport type LineHeights = {\n small: DesignToken<LineHeightValue>;\n medium: DesignToken<LineHeightValue>;\n large: DesignToken<LineHeightValue>;\n};\n\nexport type WebLineHeights = {\n [Property in keyof LineHeights]: WebDesignToken<LineHeightValue>;\n};\n\nexport const lineHeights: LineHeights = {\n small: { value: '1.25' },\n medium: { value: '1.5' },\n large: { value: '2' },\n};\n","import { DesignToken, WebDesignToken, OpacityValue } from './types/designToken';\n\nexport type Opacities = {\n // TODO: Update these so the values aren't directly tied to the names\n 0: DesignToken<OpacityValue>;\n 10: DesignToken<OpacityValue>;\n 20: DesignToken<OpacityValue>;\n 30: DesignToken<OpacityValue>;\n 40: DesignToken<OpacityValue>;\n 50: DesignToken<OpacityValue>;\n 60: DesignToken<OpacityValue>;\n 70: DesignToken<OpacityValue>;\n 80: DesignToken<OpacityValue>;\n 90: DesignToken<OpacityValue>;\n 100: DesignToken<OpacityValue>;\n};\n\nexport type WebOpacities = {\n [Property in keyof Opacities]: WebDesignToken<OpacityValue>;\n};\n\nexport const opacities: Opacities = {\n 0: {\n value: '0',\n },\n 10: {\n value: '0.1',\n },\n 20: {\n value: '0.2',\n },\n 30: {\n value: '0.3',\n },\n 40: {\n value: '0.4',\n },\n 50: {\n value: '0.5',\n },\n 60: {\n value: '0.6',\n },\n 70: {\n value: '0.7',\n },\n 80: {\n value: '0.8',\n },\n 90: {\n value: '0.9',\n },\n 100: {\n value: '1',\n },\n};\n","import {\n DesignToken,\n WebDesignToken,\n OutlineOffsetValue,\n} from './types/designToken';\n\nexport type OutlineOffsets = {\n small: DesignToken<OutlineOffsetValue>;\n medium: DesignToken<OutlineOffsetValue>;\n large: DesignToken<OutlineOffsetValue>;\n};\n\nexport type WebOutlineOffsets = {\n [Property in keyof OutlineOffsets]: WebDesignToken<OutlineOffsetValue>;\n};\n\nexport const outlineOffsets: OutlineOffsets = {\n small: { value: '1px' },\n medium: { value: '2px' },\n large: { value: '3px' },\n};\n","import {\n DesignToken,\n WebDesignToken,\n OutlineWidthValue,\n} from './types/designToken';\n\nexport type OutlineWidths = {\n small: DesignToken<OutlineWidthValue>;\n medium: DesignToken<OutlineWidthValue>;\n large: DesignToken<OutlineWidthValue>;\n};\n\nexport type WebOutlineWidths = {\n [Property in keyof OutlineWidths]: WebDesignToken<OutlineWidthValue>;\n};\n\nexport const outlineWidths: OutlineWidths = {\n small: { value: '1px' },\n medium: { value: '2px' },\n large: { value: '3px' },\n};\n","import { DesignToken, WebDesignToken, RadiusValue } from './types/designToken';\n\nexport type Radii = {\n xs: DesignToken<RadiusValue>;\n small: DesignToken<RadiusValue>;\n medium: DesignToken<RadiusValue>;\n large: DesignToken<RadiusValue>;\n xl: DesignToken<RadiusValue>;\n xxl: DesignToken<RadiusValue>;\n xxxl: DesignToken<RadiusValue>;\n};\n\nexport type WebRadii = {\n [Property in keyof Radii]: WebDesignToken<RadiusValue>;\n};\n\nexport const radii: Radii = {\n xs: { value: '0.125rem' },\n small: { value: '0.25rem' },\n medium: { value: '0.5rem' },\n large: { value: '1rem' },\n xl: { value: '2rem' },\n xxl: { value: '4rem' },\n xxxl: { value: '8rem' },\n};\n","import { DesignToken, WebDesignToken, ShadowValue } from './types/designToken';\n\nexport type Shadows = {\n small: DesignToken<ShadowValue>;\n medium: DesignToken<ShadowValue>;\n large: DesignToken<ShadowValue>;\n};\n\nexport type WebShadows = {\n [Property in keyof Shadows]: WebDesignToken<ShadowValue>;\n};\n\nexport const shadows: Shadows = {\n small: {\n value: {\n offsetX: '0px',\n offsetY: '2px',\n blurRadius: '4px',\n color: '{colors.shadow.tertiary.value}',\n },\n },\n medium: {\n value: {\n offsetX: '0px',\n offsetY: '2px',\n blurRadius: '6px',\n color: '{colors.shadow.secondary.value}',\n },\n },\n large: {\n value: {\n offsetX: '0px',\n offsetY: '4px',\n blurRadius: '12px',\n color: '{colors.shadow.primary.value}',\n },\n },\n};\n","import { DesignToken, WebDesignToken, SpaceValue } from './types/designToken';\n\nexport type Space = {\n xxxs: DesignToken<SpaceValue>;\n xxs: DesignToken<SpaceValue>;\n xs: DesignToken<SpaceValue>;\n small: DesignToken<SpaceValue>;\n medium: DesignToken<SpaceValue>;\n large: DesignToken<SpaceValue>;\n xl: DesignToken<SpaceValue>;\n xxl: DesignToken<SpaceValue>;\n xxxl: DesignToken<SpaceValue>;\n relative: {\n xxxs: DesignToken<SpaceValue>;\n xxs: DesignToken<SpaceValue>;\n xs: DesignToken<SpaceValue>;\n small: DesignToken<SpaceValue>;\n medium: DesignToken<SpaceValue>;\n large: DesignToken<SpaceValue>;\n xl: DesignToken<SpaceValue>;\n xxl: DesignToken<SpaceValue>;\n xxxl: DesignToken<SpaceValue>;\n };\n};\n\nexport type WebSpace = {\n [Property in keyof Omit<Space, 'relative'>]: WebDesignToken<SpaceValue>;\n} & {\n relative: {\n [Property in keyof Space['relative']]: WebDesignToken<SpaceValue>;\n };\n};\n\nexport const space: Space = {\n xxxs: { value: '0.25rem' },\n xxs: { value: '0.375rem' },\n xs: { value: '0.5rem' },\n small: { value: '0.75rem' },\n medium: { value: '1rem' },\n large: { value: '1.5rem' },\n xl: { value: '2.0rem' },\n xxl: { value: '3.0rem' },\n xxxl: { value: '4.5rem' },\n relative: {\n //creating a second set of sizes using em which will be sized relative to a parent instead of the root\n xxxs: { value: '0.25em' },\n xxs: { value: '0.375rem' },\n xs: { value: '0.5em' },\n small: { value: '0.75em' },\n medium: { value: '1em' },\n large: { value: '1.5em' },\n xl: { value: '2.0em' },\n xxl: { value: '3.0em' },\n xxxl: { value: '4.5em' },\n },\n};\n","import { DesignToken, WebDesignToken, TimeValue } from './types/designToken';\n\nexport type Time = {\n short: DesignToken<TimeValue>;\n medium: DesignToken<TimeValue>;\n long: DesignToken<TimeValue>;\n};\n\nexport type WebTime = {\n [Property in keyof Time]: WebDesignToken<TimeValue>;\n};\n\nexport const time: Time = {\n short: { value: '100ms' },\n medium: { value: '250ms' },\n long: { value: '500ms' },\n};\n","import {\n DesignToken,\n WebDesignToken,\n TransformValue,\n} from './types/designToken';\n\nexport type Transforms = {\n slideX: {\n small: DesignToken<TransformValue>;\n medium: DesignToken<TransformValue>;\n large: DesignToken<TransformValue>;\n };\n};\n\nexport type WebTransforms = {\n slideX: {\n [Property in keyof Transforms['slideX']]: WebDesignToken<TransformValue>;\n };\n};\n\nexport const transforms: Transforms = {\n // TODO: make this more generic and cross-platform\n slideX: {\n small: { value: 'translateX(0.5em)' },\n medium: { value: 'translateX(1em)' },\n large: { value: 'translateX(2em)' },\n },\n};\n","export interface Breakpoints {\n values: {\n base: number;\n small: number;\n medium: number;\n large: number;\n xl: number;\n xxl: number;\n };\n defaultBreakpoint: string;\n}\n\n// Breakpoint unit is in pixels\nexport const breakpoints: Breakpoints = {\n values: {\n base: 0,\n small: 480, // breakpoint unit is px\n medium: 768,\n large: 992,\n xl: 1280,\n xxl: 1536,\n },\n defaultBreakpoint: 'base',\n};\n","import kebabCase from 'lodash/kebabCase';\n// internal style dictionary function\nimport usesReference from 'style-dictionary/lib/utils/references/usesReference';\n\nimport { DesignToken } from './tokens/types/designToken';\n\nexport const CSS_VARIABLE_PREFIX = 'amplify';\n\nfunction referenceValue(value: string) {\n if (usesReference(value)) {\n const path = value.replace(/\\{|\\}/g, '').replace('.value', '').split('.');\n return `var(--${cssNameTransform({ path })})`;\n }\n return value;\n}\n\nexport function cssValue(token: DesignToken) {\n const { value } = token;\n if (typeof value === 'string') {\n return referenceValue(value);\n }\n if (typeof value === 'object') {\n if ('offsetX' in value) {\n const {\n offsetX = '',\n offsetY = '',\n blurRadius = '',\n spreadRadius = '',\n color = '',\n } = value;\n return [\n referenceValue(offsetX),\n referenceValue(offsetY),\n referenceValue(blurRadius),\n referenceValue(spreadRadius),\n referenceValue(color),\n ].join(' ');\n }\n }\n\n return value;\n}\n\ninterface NameTransformProps {\n path?: Array<string>;\n}\n\nexport function cssNameTransform({ path = [] }: NameTransformProps): string {\n return `${kebabCase([CSS_VARIABLE_PREFIX, ...path].join(' '))}`;\n}\n","import { PartialDeep } from 'type-fest';\nimport { Tokens, WebTokens } from './tokens';\nimport { Breakpoints } from './breakpoints';\n\nexport * from './tokens/types/designToken';\n\n/**\n * An override is a set of tokens that override others\n * in certain contexts. On Android, these are like resource\n * qualifiers. On the web, these are like media queries with\n * a set of CSS variables in it. A theme should contain\n * everything it needs to render\n */\nexport type Override =\n | SelectorOverride\n | MediaQueryOverride\n | BreakpointOverride\n | ColorModeOverride;\n\ninterface BaseOverride {\n tokens?: PartialDeep<Tokens>;\n}\n\n/**\n * This override takes a breakpoint name and creates a media-query for that\n * breakpoint\n * ```css\n * @media (min-width: 20em) {\n * [data-amplify-theme] {\n * --amplify-font-size-large: 2rem;\n * }\n * }\n * ```\n */\ninterface BreakpointOverride extends BaseOverride {\n breakpoint: keyof Breakpoints['values'];\n}\n\n/**\n * ```css\n * @media (prefers-color-scheme: dark) {\n * --amplify-colors-background-primary: black;\n * --amplify-colors-font-primary: white;\n * }\n * ```\n */\nexport interface MediaQueryOverride extends BaseOverride {\n mediaQuery: string;\n}\n\n/**\n * ```css\n * .disco-theme {\n * --amplify-colors-background-primary: pink;\n * }\n * [data-my-cool-theme] {\n * --amplify-colors-font-primary: purple;\n * }\n * ```\n */\nexport interface SelectorOverride extends BaseOverride {\n selector: string;\n}\n\ntype ColorMode = 'light' | 'dark';\n\n/**\n * This creates a color mode override, where the color mode is 'light' or 'dark'.\n * Note: there is no 'system' here.\n *\n * ```css\n * @media(prefers-color-scheme: dark) {\n * [data-amplify-color-mode=\"system\"] {\n * }\n * }\n *\n * [data-amplify-color-mode=\"dark\"] {\n *\n * }\n * ```\n */\nexport interface ColorModeOverride extends BaseOverride {\n colorMode: ColorMode;\n}\n\n/**\n * A Theme just needs a name. This is what a user would generally deal with.\n * They can define any tokens or breakpoints they need, but they don't need a\n * complete theme with all tokens.\n */\nexport interface Theme {\n /**\n * The name of the theme. This is used to create scoped CSS to allow for\n * multiple themes on a page.\n */\n name: string;\n tokens?: PartialDeep<Tokens>;\n breakpoints?: PartialDeep<Breakpoints>;\n /**\n * Overrides allow you to change design tokens in different contexts, like\n * light and dark mode. You can also have other media query overrides as well\n * as breakpoint overrides which correspond to the Breakpoints on a theme,\n * and a generic selector override.\n */\n overrides?: Array<Override>;\n}\n\n/**\n * A BaseTheme has all tokens and breakpoints required\n */\nexport interface BaseTheme extends Theme {\n tokens: Tokens;\n breakpoints: Breakpoints;\n overrides?: Array<Override>;\n}\n\n/**\n * WebTheme is a fully built theme that has cssText based\n * on the design tokens and all design tokens have added fields\n * to be used in Javascript/Typescript.\n */\nexport interface WebTheme extends BaseTheme {\n tokens: WebTokens;\n cssText: string;\n}\n","/**\n * Helper function to test if something is a design token or not.\n * Used in the React component style props.\n *\n * @param arg - thing to test if it is a design token or not\n * @returns boolean\n */\nexport function isDesignToken(arg: unknown): arg is WebDesignToken {\n if (typeof arg === 'object') {\n return arg.hasOwnProperty('value');\n } else {\n return false;\n }\n}\n\n/**\n *\n */\nexport type DesignToken<ValueType = any> = {\n value: ValueType;\n};\n\n/**\n * A fully setup design token ready to be used in web platform.\n */\nexport type WebDesignToken<ValueType = any> = {\n /**\n * Name of the design token\n */\n name: string;\n /**\n * Object path of the design token. Used for constructing the name\n */\n path: Array<string>;\n /**\n * Original (unresolved, untransformed) value of the design token\n */\n original: ValueType;\n /**\n * The wrapped CSS variable name of this design token, for example\n * `var(--amplify-colors-font-primary)`\n */\n toString(): string;\n} & DesignToken<ValueType>;\n\nexport type ColorValue = string;\nexport type BorderWidthValue = string;\nexport type FontValue = string;\nexport type FontSizeValue = string;\nexport type FontWeightValue = number;\nexport type LineHeightValue = string;\nexport type OpacityValue = string;\nexport type OutlineOffsetValue = string;\nexport type OutlineWidthValue = string;\nexport type RadiusValue = string;\nexport type ShadowValue = {\n offsetX: string;\n offsetY: string;\n blurRadius: string;\n spreadRadius?: string;\n color: string;\n};\nexport type SpaceValue = string;\nexport type TimeValue = string;\nexport type TransformValue = string;\n"],"mappings":"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ACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QC9MF,IAYA,oCCZA,ICAA,ICAA,IAAO,GAAM,IAAS,CACpB,yDACE,sEACF,kDACE,kDACF,kBAAmB,0BACnB,kBAAmB,qBACnB,KAAM,OACN,QAAS,gBACT,mBAAoB,yBACpB,iBAAkB,qBAClB,kBAAmB,0BACnB,kBAAmB,8BACnB,mBAAoB,yBACpB,oBAAqB,0BA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","names":[]}