{"version":3,"sources":["jsdelivr-header.js","/npm/@aws-amplify/ui@6.15.1/dist/index.js"],"names":[],"mappings":"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A,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QAGE,SAAW,CACb,yDAA0D,iEAC1D,mBAAoB,wBACpB,mBAAoB,0BACpB,2BAA4B,6BAC5B,kBAAmB,uBACnB,kBAAmB,kBACnB,SAAU,aACV,KAAM,OACN,qBAAsB,yBACtB,mBAAoB,sBACpB,+BAAgC,oCAChC,kBAAmB,2BACnB,mBAAoB,sBACpB,oBAAqB,uBACrB,QAAS,aACT,oBAAqB,oBACrB,WAAY,iBACZ,uBAAwB,gCACxB,iBAAkB,oBAClB,mBAAoB,wBACpB,gBAAiB,oBACjB,MAAO,SACP,gBAAiB,mBACjB,uBAAwB,iCACxB,kBAAmB,2BACnB,+BAAgC,wCAChC,mBAAoB,4BACpB,yBAA0B,gCAC1B,wBAAyB,+BACzB,yBAA0B,uCAC1B,kBAAmB,4BACnB,sBAAuB,iCACvB,sBAAuB,6BACvB,sBAAuB,6BACvB,mBAAoB,4BACpB,0BAA2B,mCAC3B,gCAAiC,gDACjC,sBAAuB,oCACvB,mBAAoB,sBACpB,wBAAyB,uBACzB,gBAAiB,qBACjB,iCAAkC,6CAClC,QAAS,eACT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","file":"/npm/@aws-amplify/ui@6.15.1/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@aws-amplify/ui@6.15.1/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar utils = require('@aws-amplify/core/internals/utils');\nvar utils$1 = require('aws-amplify/utils');\nvar auth = require('aws-amplify/auth');\nvar awsAmplify = require('aws-amplify');\nvar xstate = require('xstate');\nvar pickBy = require('lodash/pickBy.js');\nvar merge = require('lodash/merge.js');\nvar kebabCase = require('lodash/kebabCase.js');\n\nfunction _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }\n\nvar pickBy__default = /*#__PURE__*/_interopDefault(pickBy);\nvar merge__default = /*#__PURE__*/_interopDefault(merge);\nvar kebabCase__default = /*#__PURE__*/_interopDefault(kebabCase);\n\n/**\n * This file contains helpers that lets you easily access current actor's state\n * and context.\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 */\nconst getActorState = (state) => {\n    return state.context.actorRef?.getSnapshot();\n};\n/**\n * Get the context of current actor. Useful for getting any nested context\n * like remoteError.\n */\nconst getActorContext$1 = (state) => {\n    return getActorState(state)?.context;\n};\n\nconst AI_INPUT_BASE = {\n    category: utils.Category.AI,\n    apis: [\n        utils.AiAction.CreateConversation,\n        utils.AiAction.DeleteConversation,\n        utils.AiAction.ListConversations,\n        utils.AiAction.UpdateConversation,\n        utils.AiAction.OnMessage,\n        utils.AiAction.SendMessage,\n        utils.AiAction.Generation,\n    ],\n};\nconst ACCOUNT_SETTINGS_INPUT_BASE = {\n    apis: [utils.AuthAction.DeleteUser, utils.AuthAction.UpdatePassword],\n    category: utils.Category.Auth,\n};\nconst AUTHENTICATOR_INPUT_BASE = {\n    apis: [\n        utils.AuthAction.SignUp,\n        utils.AuthAction.ConfirmSignUp,\n        utils.AuthAction.ResendSignUpCode,\n        utils.AuthAction.SignIn,\n        utils.AuthAction.ConfirmSignIn,\n        utils.AuthAction.FetchUserAttributes,\n        utils.AuthAction.SignOut,\n        utils.AuthAction.ResetPassword,\n        utils.AuthAction.ConfirmResetPassword,\n        utils.AuthAction.SignInWithRedirect,\n    ],\n    category: utils.Category.Auth,\n};\nconst FILE_UPLOADER_BASE_INPUT = {\n    apis: [utils.StorageAction.UploadData],\n    category: utils.Category.Storage,\n};\nconst IN_APP_MESSAGING_INPUT_BASE = {\n    apis: [utils.InAppMessagingAction.NotifyMessageInteraction],\n    category: utils.Category.InAppMessaging,\n};\nconst LOCATION_SEARCH_INPUT_BASE = {\n    category: utils.Category.Geo,\n    apis: [\n        utils.GeoAction.SearchByText,\n        utils.GeoAction.SearchForSuggestions,\n        utils.GeoAction.SearchByPlaceId,\n    ],\n};\nconst MAP_VIEW_INPUT_BASE = {\n    category: utils.Category.Geo,\n    apis: [],\n};\nconst STORAGE_MANAGER_INPUT_BASE = {\n    apis: [utils.StorageAction.UploadData],\n    category: utils.Category.Storage,\n};\nconst STORAGE_BROWSER_INPUT_BASE = {\n    apis: [\n        utils.StorageAction.UploadData,\n        utils.StorageAction.Copy,\n        utils.StorageAction.GetUrl,\n        utils.StorageAction.List,\n        utils.StorageAction.Remove,\n        utils.StorageAction.GetDataAccess,\n        utils.StorageAction.ListCallerAccessGrants,\n    ],\n    category: utils.Category.Storage,\n};\n\n/**\n * @deprecated - will be removed in a future major version\n *\n * Some libraries may not follow Node ES module spec and could be loaded as CommonJS modules,\n * To ensure the interoperability between ESM and CJS, modules from those libraries have to be loaded via namespace import\n * And sanitized by the function below because unlike ESM namespace, CJS namespace set `module.exports` object on the `default` key\n * https://nodejs.org/api/esm.html#interoperability-with-commonjs\n */\nconst sanitizeNamespaceImport = (namespaceModule) => {\n    const sanitizedNamespaceModule = { default: undefined, ...namespaceModule };\n    return sanitizedNamespaceModule.default ?? sanitizedNamespaceModule;\n};\n/**\n * Checks if `value` is an Object (non-primitive, non-array, non-function)\n * Will return false for Arrays and functions\n *\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is an object, `false` otherwise\n */\nfunction isObject(value) {\n    return value != null && !Array.isArray(value) && typeof value === 'object';\n}\n/**\n * Checks if `value` is a string primitive or object\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is a string, `false` otherwise\n */\nfunction isString(value) {\n    return (typeof value === 'string' ||\n        (typeof value === 'object' &&\n            Object.prototype.toString.call(value) === '[object String]'));\n}\n/**\n * Checks if `value` is a Map\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is a Map, `false` otherwise\n */\nfunction isMap(value) {\n    return (isObject(value) && Object.prototype.toString.call(value) === '[object Map]');\n}\n/**\n * Checks if `value` is a Set\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is a Set, `false` otherwise\n */\nfunction isSet(value) {\n    return (isObject(value) && Object.prototype.toString.call(value) === '[object Set]');\n}\n/**\n * Checks if `value` is undefined\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is undefined, `false` otherwise\n */\nfunction isUndefined(value) {\n    return value === undefined;\n}\n/**\n * Checks if `value` is nullish\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is nullish, `false` otherwise\n */\nfunction isNil(value) {\n    return value == null;\n}\n/**\n * Checks if `value` is empty\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is empty, `false` otherwise\n */\nfunction isEmpty(value) {\n    if (value === null || value === undefined)\n        return true;\n    if (isObject(value) && (isMap(value) || isSet(value))) {\n        return !value.size;\n    }\n    if (isObject(value) && (isString(value) || Array.isArray(value))) {\n        return !value.length;\n    }\n    for (const key in value) {\n        if (has(value, key)) {\n            return false;\n        }\n    }\n    return true;\n}\n/**\n * Checks if `value` is an empty array\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is a empty, `false` otherwise\n */\nfunction isEmptyArray(value) {\n    return Array.isArray(value) && isEmpty(value);\n}\n/**\n * Checks if all members of the `values` param are empty arrays\n *\n * @param {unknown} value The values to check\n * @returns {boolean} Returns `true` if all members of `values` are empty, `false` otherwise\n */\nfunction areEmptyArrays(...values) {\n    return values.every(isEmptyArray);\n}\n/**\n * Checks if `value` is an empty object\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is empty, `false` otherwise\n */\nfunction isEmptyObject(value) {\n    return isObject(value) && isEmpty(value);\n}\n/**\n * Checks if all members of the `values` param are empty objects\n *\n * @param {unknown} values The values to check\n * @returns {boolean} Returns `true` if all members of the `values` param are empty, `false` otherwise\n */\nfunction areEmptyObjects(...values) {\n    return values.every(isEmptyObject);\n}\n/**\n * Capitalizes `value` and its return type\n *\n * @param {string} value string to capitalize\n * @returns {string} capitalized string\n */\nfunction capitalize(value) {\n    return (isString(value) ? value.charAt(0).toUpperCase() + value.slice(1) : '');\n}\n/**\n * Checks if `key` is a direct property of `value`\n *\n * @param {unknown} value `object` potentially containing property\n * @param {string} key property key\n * @returns whether `key` param is a property of the `obj` param\n */\nfunction has(value, key) {\n    return value != null && Object.prototype.hasOwnProperty.call(value, key);\n}\n/**\n * Checks if `value` is a function\n *\n * @param {unknown} value param to check\n * @returns {boolean} whether `value` is a function\n */\nfunction isFunction(value) {\n    return typeof value === 'function';\n}\n/**\n * This helper function creates modifier class names that are used for our flat BEM styling\n * it takes in a base and modifier and returns the modified class if a modifier was passed in and null otherwise\n * @param base The base class of the output\n * @param modifier The modifier to add onto the base\n * @returns the modified class name or empty string\n */\nconst classNameModifier = (base, modifier) => {\n    return modifier ? `${base}--${modifier}` : '';\n};\n/**\n * This helper function creates modified class names that are used for our flat BEM styling\n * it takes in a base, modifier, and flag and returns the modified class name if the flag is true and null if the flag is false\n * @param base\n * @param modifier\n * @param flag\n * @returns the modified class name or empty string\n */\nconst classNameModifierByFlag = (base, modifier, flag) => {\n    return flag ? `${base}--${modifier}` : '';\n};\n/**\n * Similar to `Array.join`, with an optional callback/template param\n * for formatting returned string values\n *\n * @param {string[]} values string array\n * @param {(value: string) => string} template callback format param\n * @returns formatted string array\n */\nfunction templateJoin(values, template) {\n    return values.reduce((acc, curr, index) => `${acc}${isString(curr) ? template(curr, index, values) : ''}`, '');\n}\n/**\n * A function that does nothing\n *\n * @param {any[]} _ accepts any parameters\n * @returns nothing\n */\nfunction noop(..._) {\n    return;\n}\n/**\n * @param {string} groupName name of group\n * @param events string values related to group\n */\nfunction groupLog(groupName, ...events) {\n    const hasEvents = !!events?.length;\n    if (hasEvents) {\n        // eslint-disable-next-line no-console\n        console.groupCollapsed(groupName);\n        events?.forEach((event) => {\n            // eslint-disable-next-line no-console\n            console.log(event);\n        });\n        // eslint-disable-next-line no-console\n        console.groupEnd();\n    }\n    else {\n        // eslint-disable-next-line no-console\n        console.log(groupName);\n    }\n}\n/**\n * Splits an object into 2 objects based on a predicate\n *\n * @param {object} obj an object to split into two\n * @param {function} predicate function to determin where an element should go\n * @returns\n */\nfunction splitObject(obj, predicate) {\n    const left = {};\n    const right = {};\n    Object.entries(obj).forEach(([key, value]) => {\n        if (predicate(key)) {\n            left[key] = value;\n        }\n        else {\n            right[key] = value;\n        }\n    });\n    return [left, right];\n}\nconst cloneDeep = (obj) => {\n    if (obj === null || obj === undefined || typeof obj !== 'object') {\n        return obj;\n    }\n    if (obj instanceof Array) {\n        return obj.reduce((arr, item, i) => {\n            arr[i] = cloneDeep(item);\n            return arr;\n        }, []);\n    }\n    if (obj instanceof Object) {\n        return Object.keys(obj || {}).reduce((cpObj, key) => {\n            cpObj[key] = cloneDeep(obj[key]);\n            return cpObj;\n        }, {});\n    }\n};\n\n/**\n * @example\n * ```ts\n * // set user agent options\n * const clear = setUserAgent(input);\n *\n * // clear user agent options\n * clear();\n * ```\n */\nconst setUserAgent = ({ componentName, packageName, version, }) => {\n    const packageData = [`ui-${packageName}`, version];\n    switch (componentName) {\n        case 'AIConversation': {\n            utils.setCustomUserAgent({\n                ...AI_INPUT_BASE,\n                additionalDetails: [[componentName], packageData],\n            });\n            break;\n        }\n        case 'Authenticator': {\n            utils.setCustomUserAgent({\n                ...AUTHENTICATOR_INPUT_BASE,\n                additionalDetails: [[componentName], packageData],\n            });\n            break;\n        }\n        case 'ChangePassword':\n        case 'DeleteUser': {\n            utils.setCustomUserAgent({\n                ...ACCOUNT_SETTINGS_INPUT_BASE,\n                additionalDetails: [['AccountSettings'], packageData],\n            });\n            break;\n        }\n        case 'FileUploader': {\n            utils.setCustomUserAgent({\n                ...FILE_UPLOADER_BASE_INPUT,\n                additionalDetails: [[componentName], packageData],\n            });\n            break;\n        }\n        case 'InAppMessaging': {\n            utils.setCustomUserAgent({\n                ...IN_APP_MESSAGING_INPUT_BASE,\n                additionalDetails: [[componentName], packageData],\n            });\n            break;\n        }\n        case 'LocationSearch': {\n            utils.setCustomUserAgent({\n                ...LOCATION_SEARCH_INPUT_BASE,\n                additionalDetails: [[componentName], packageData],\n            });\n            break;\n        }\n        case 'MapView': {\n            utils.setCustomUserAgent({\n                ...MAP_VIEW_INPUT_BASE,\n                additionalDetails: [[componentName], packageData],\n            });\n            break;\n        }\n        case 'StorageManager': {\n            utils.setCustomUserAgent({\n                ...STORAGE_MANAGER_INPUT_BASE,\n                additionalDetails: [[componentName], packageData],\n            });\n            break;\n        }\n        case 'StorageBrowser': {\n            utils.setCustomUserAgent({\n                ...STORAGE_BROWSER_INPUT_BASE,\n                additionalDetails: [[componentName], packageData],\n            });\n            break;\n        }\n    }\n    return noop;\n};\n\nconst classNames = (...args) => {\n    const classes = [];\n    for (const arg of args) {\n        // skip falsey values\n        if (!arg) {\n            continue;\n        }\n        if (isString(arg)) {\n            classes.push(arg);\n            continue;\n        }\n        if (typeof arg === 'number') {\n            classes.push(arg.toString());\n            continue;\n        }\n        if (Array.isArray(arg)) {\n            classes.push(classNames(...arg));\n            continue;\n        }\n        if (isObject(arg)) {\n            // check if the object has a valid .toString() method\n            if (arg.toString !== Object.prototype.toString &&\n                arg.toString() !== '[object Object]') {\n                classes.push(arg.toString());\n                continue;\n            }\n            for (const key in arg) {\n                if (has(arg, key) && arg[key]) {\n                    classes.push(key);\n                }\n            }\n        }\n    }\n    return classes.join(' ');\n};\n\n/**\n * Format bytes as human-readable text.\n *\n * @param bytes Number of bytes.\n * @param si True to use metric (SI) units, aka powers of 1000. False to use\n *           binary (IEC), aka powers of 1024.\n * @param dp Number of decimal places to display.\n *\n * @return Formatted string.\n */\nfunction humanFileSize(bytes, si = false, dp = 1) {\n    const thresh = si ? 1000 : 1024;\n    if (Math.abs(bytes) < thresh) {\n        return `${bytes} B`;\n    }\n    const units = si\n        ? ['kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']\n        : ['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'];\n    let unit = -1;\n    const range = 10 ** dp;\n    do {\n        bytes /= thresh;\n        ++unit;\n    } while (Math.round(Math.abs(bytes) * range) / range >= thresh &&\n        unit < units.length - 1);\n    return bytes.toFixed(dp) + ' ' + units[unit];\n}\n\nconst OPTIONS = {\n    separator: '.',\n};\nconst REFERENCE_REGEX = /\\{([^}]+)\\}/g;\n\n/**\n * Checks if the value uses a value reference.\n * @param {string} value\n * @returns {boolean} - True, if the value uses a value reference\n */\nfunction usesReference(value) {\n    const regex = new RegExp(REFERENCE_REGEX);\n    if (typeof value === 'string') {\n        return regex.test(value);\n    }\n    if (typeof value === 'object') {\n        let hasReference = false;\n        // iterate over each property in the object,\n        // if any element passes the regex test,\n        // the whole thing should be true\n        for (const key in value) {\n            if (has(value, key)) {\n                const element = value[key];\n                let reference = usesReference(element);\n                if (reference) {\n                    hasReference = true;\n                    break;\n                }\n            }\n        }\n        return hasReference;\n    }\n    return false;\n}\nfunction resolveReference(path, obj) {\n    let ref = obj;\n    if (!Array.isArray(path)) {\n        return;\n    }\n    for (let i = 0; i < path.length; i++) {\n        // Check for undefined as 0 is a valid, truthy value\n        if (typeof ref[path[i]] !== 'undefined') {\n            ref = ref[path[i]];\n        }\n        else {\n            // set the reference as undefined if we don't find anything\n            ref = undefined;\n            break;\n        }\n    }\n    return ref;\n}\n/**\n * Returns the path from a path name be splitting the name by a given separator.\n */\nfunction getPathFromName(pathName) {\n    if (typeof pathName !== 'string') {\n        throw new Error('Getting path from name failed. Name must be a string');\n    }\n    return pathName.split(OPTIONS.separator);\n}\n/**\n * Returns the paths name be joining its parts with a given separator.\n */\nfunction getName(path) {\n    if (!path || !(path instanceof Array)) {\n        throw new Error('Getting name for path failed. Path must be an array');\n    }\n    return path.join(OPTIONS.separator);\n}\n\n/**\n * Handles Amplify JS Auth hub events, by forwarding hub events as appropriate\n * xstate events.\n */\nconst defaultAuthHubHandler = ({ payload }, service, options) => {\n    const { data, event } = payload;\n    const { send } = service;\n    const { onSignIn, onSignOut } = options ?? {};\n    switch (event) {\n        case 'signedIn': {\n            if (isFunction(onSignIn)) {\n                onSignIn(payload);\n            }\n            break;\n        }\n        case 'signInWithRedirect': {\n            send('SIGN_IN_WITH_REDIRECT');\n            break;\n        }\n        case 'signedOut': {\n            if (isFunction(onSignOut)) {\n                onSignOut();\n            }\n            send('SIGN_OUT');\n            break;\n        }\n        case 'tokenRefresh_failure': {\n            if (data?.error?.name === utils.AmplifyErrorCode.NetworkError) {\n                return;\n            }\n            send('SIGN_OUT');\n            break;\n        }\n    }\n};\n/**\n * Listens to external auth Hub events and sends corresponding event to\n * the `service.send` of interest\n *\n * @param service - contains state machine `send` function\n * @param handler - auth event handler\n * @returns function that unsubscribes to the hub evenmt\n */\nconst listenToAuthHub = (service, handler = defaultAuthHubHandler) => {\n    const eventHandler = (data) => handler(data, service);\n    return utils$1.Hub.listen('auth', eventHandler, 'authenticator-hub-handler');\n};\n\nconst 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\nconst deDict$1 = {\n    'Account recovery requires verified contact information': 'Zurücksetzen des Accounts benötigt einen verifizierten Account',\n    'Add your Profile': 'Ihr Profil hinzufügen',\n    'Add your Website': 'Ihre Website hinzufügen',\n    'Authenticator App (TOTP)': 'Authentifikator-App (TOTP)',\n    'Back to Sign In': 'Zurück zur Anmeldung',\n    'Change Password': 'Passwort ändern',\n    Changing: 'Ändern von',\n    Code: 'Code',\n    'Confirm Email Code': 'E-Mail-Code bestätigen',\n    'Confirm Password': 'Passwort bestätigen',\n    'Please confirm your Password': 'Bitte bestätigen Sie Ihr Passwort',\n    'Confirm Sign Up': 'Registrierung bestätigen',\n    'Confirm SMS Code': 'SMS-Code bestätigen',\n    'Confirm TOTP Code': 'TOTP-Code bestätigen',\n    Confirm: 'Bestätigen',\n    'Confirmation Code': 'Bestätigungs-Code',\n    Confirming: 'Wird bestätigt',\n    'Create a new account': 'Einen neuen Account erstellen',\n    'Create Account': 'Account erstellen',\n    'Creating Account': 'Account wird erstellt',\n    'Dismiss alert': 'Warnung verwerfen',\n    Email: 'E-Mail',\n    'Email Message': 'E-Mail-Nachricht',\n    'Enter your Birthdate': 'Geben Sie Ihr Geburtsdatum ein',\n    'Enter your code': 'Geben Sie Ihren Code ein',\n    'Enter your Confirmation Code': 'Geben Sie Ihren Bestätigungs-Code ein',\n    'Enter your Email': 'Geben Sie Ihre E-Mail ein',\n    'Enter your Family Name': 'Geben Sie Ihren Nachnamen ein',\n    'Enter your Given Name': 'Geben Sie Ihren Vornamen ein',\n    'Enter your Middle Name': 'Geben Sie Ihren zweiten Vornamen ein',\n    'Enter your Name': 'Geben Sie Ihren Namen ein',\n    'Enter your Nickname': 'Geben Sie Ihren Spitznamen ein',\n    'Enter your Password': 'Geben Sie Ihr Passwort ein',\n    'Enter your password': 'Geben Sie Ihr Passwort ein',\n    'Enter your email': 'Geben Sie Ihre E-Mail ein',\n    'Enter your phone number': 'Geben Sie Ihre Telefonnummer ein',\n    'Enter your Preferred Username': 'Geben Sie Ihren bevorzugten Benutzernamen ein',\n    'Enter your username': 'Geben Sie Ihren Benutzernamen ein',\n    'Forgot password?': 'Passwort vergessen?',\n    'Forgot your password?': 'Passwort vergessen? ',\n    'Hide password': 'Passwort verbergen',\n    'It may take a minute to arrive': 'Es kann eine Minute dauern, bis er ankommt',\n    Loading: 'Wird geladen',\n    'Multi-Factor Authentication': 'Multifaktor-Authentifizierung',\n    'Multi-Factor Authentication Setup': 'Einrichtung der Multifaktor-Authentifizierung',\n    'New password': 'Neues Passwort',\n    or: 'oder',\n    Password: 'Passwort',\n    'Phone Number': 'Telefonnummer',\n    'Resend Code': 'Code erneut senden',\n    'Reset your Password': 'Zurücksetzen des Passworts',\n    'Reset your password': 'Zurücksetzen des passworts',\n    'Select MFA Type': 'MFA-Typ auswählen',\n    'Send code': 'Code senden',\n    'Send Code': 'Code senden',\n    Sending: 'Wird gesendet',\n    'Setup Email': 'E-Mail einrichten',\n    'Setup TOTP': 'TOTP einrichten',\n    'Show password': 'Passwort anzeigen',\n    'Sign in to your account': 'Melden Sie sich mit Ihrem Account an',\n    'Sign In with Amazon': 'Mit Amazon anmelden',\n    'Sign In with Apple': 'Mit Apple anmelden',\n    'Sign In with Facebook': 'Mit Facebook anmelden',\n    'Sign In with Google': 'Mit Google anmelden',\n    'Sign in': 'Anmelden',\n    'Sign In': 'Anmelden',\n    'Signing in': 'Wird angemeldet',\n    Skip: 'Überspringen',\n    Submit: 'Abschicken',\n    Submitting: 'Wird gesendet',\n    'Text Message (SMS)': 'Textnachricht (SMS)',\n    Username: 'Benutzername',\n    'Verify Contact': 'Kontakt verifizieren',\n    Verify: 'Verifizieren',\n    'We Emailed You': 'E-Mail wurde versendet',\n    'We Sent A Code': 'Wir haben einen Code gesendet',\n    'We Texted You': 'Wir haben Ihnen eine SMS gesendet',\n    'Your code is on the way. To log in, enter the code we emailed to': 'Ihr Bestätigungscode ist unterwegs. Um sich einzuloggen geben Sie den Code ein, den wir per E-Mail verschickt haben',\n    'Your code is on the way. To log in, enter the code we sent you': 'Ihr Code ist unterwegs. Um sich anzumelden, geben Sie den Code ein, den wir Ihnen gesendet haben',\n    'Your code is on the way. To log in, enter the code we texted to': 'Ihr Bestätigungscode ist unterwegs. Um sich einzuloggen geben Sie den Code ein, den wir per SMS verschickt haben',\n    // Additional translations provided by customers\n    'An account with the given email already exists.': 'Ein Account mit dieser E-Mail existiert bereits.',\n    'Confirm a Code': 'Code bestätigen',\n    'Confirm Sign In': 'Anmeldung bestätigen',\n    'Create account': 'Hier registrieren',\n    'Sign Up with Facebook': 'Mit Facebook registrieren',\n    'Sign Up with Google': 'Mit Google registrieren',\n    'Forgot Password': 'Passwort vergessen',\n    'Have an account? ': 'Schon registriert? ',\n    'Incorrect username or password': 'Falscher Benutzername oder falsches Passwort',\n    'Incorrect username or password.': '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    'It may take a minute to arrive.': 'Es könnte eine Minute dauern, bis der Code eintrifft.',\n    'Lost your code? ': 'Code verloren? ',\n    'New Password': 'Neues Passwort',\n    'No account? ': 'Kein Account? ',\n    'Password attempts exceeded': 'Die maximale Anzahl der fehlerhaften Anmeldeversuche wurde erreicht',\n    'Reset password': 'Passwort zurücksetzen',\n    'Reset Password': 'Passwort Zurücksetzen',\n    'Sign Out': 'Abmelden',\n    'Sign Up': 'Registrieren',\n    'User already exists': 'Dieser Benutzer existiert bereits',\n    'User does not exist': 'Dieser Benutzer existiert nicht',\n    'Username cannot be empty': 'Benutzername darf nicht leer sein',\n};\n\nconst enDict$1 = {\n    'Account recovery requires verified contact information': 'Account recovery requires verified contact information',\n    'Add your Profile': 'Add your Profile',\n    'Add your Website': 'Add your Website',\n    'Authenticator App (TOTP)': 'Authenticator App (TOTP)',\n    'Back to Sign In': 'Back to Sign In',\n    'Change Password': 'Change Password',\n    Changing: 'Changing',\n    Code: 'Code',\n    'Confirm Email Code': 'Confirm Email Code',\n    'Confirm Password': 'Confirm Password',\n    'Confirm Sign Up': 'Confirm Sign Up',\n    'Confirm SMS Code': 'Confirm SMS Code',\n    'Confirm MFA Code': 'Confirm MFA Code',\n    'Confirm TOTP Code': 'Confirm TOTP Code',\n    Confirm: 'Confirm',\n    'Confirmation Code': 'Confirmation Code',\n    Confirming: 'Confirming',\n    'Create a new account': 'Create a new account',\n    'Create Account': 'Create Account',\n    'Creating Account': 'Creating Account',\n    'Dismiss alert': 'Dismiss alert',\n    Email: 'Email',\n    'Email Message': 'Email Message',\n    'Enter your Birthdate': 'Enter your Birthdate',\n    'Enter your code': 'Enter your code',\n    'Enter your Confirmation Code': 'Enter your Confirmation Code',\n    'Enter your Email': 'Enter your Email',\n    'Enter your Family Name': 'Enter your Family Name',\n    'Enter your Given Name': 'Enter your Given Name',\n    'Enter your Middle Name': 'Enter your Middle Name',\n    'Enter your Name': 'Enter your Name',\n    'Enter your Nickname': 'Enter your Nickname',\n    'Enter your Password': 'Enter your Password',\n    'Enter your phone number': 'Enter your phone number',\n    'Enter your Preferred Username': 'Enter your Preferred Username',\n    'Enter your username': 'Enter your username',\n    'Forgot password?': 'Forgot password?',\n    'Forgot your password?': 'Forgot your password?',\n    'Hide password': 'Hide password',\n    'It may take a minute to arrive': 'It may take a minute to arrive',\n    Loading: 'Loading',\n    'Multi-Factor Authentication': 'Multi-Factor Authentication',\n    'Multi-Factor Authentication Setup': 'Multi-Factor Authentication Setup',\n    'New password': 'New password',\n    or: 'or',\n    Password: 'Password',\n    'Phone Number': 'Phone Number',\n    'Please confirm your Password': 'Please confirm your Password',\n    'Resend Code': 'Resend Code',\n    'Reset your password': 'Reset your password',\n    'Reset your Password': 'Reset your Password',\n    'Select MFA Type': 'Select MFA Type',\n    'Send code': 'Send code',\n    'Send Code': 'Send Code',\n    Sending: 'Sending',\n    'Setup Email': 'Setup Email',\n    'Setup TOTP': 'Setup TOTP',\n    'Show password': 'Show password',\n    'Sign in to your account': 'Sign in to your account',\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',\n    'Sign In': 'Sign In',\n    'Signing in': 'Signing in',\n    Skip: 'Skip',\n    Submit: 'Submit',\n    Submitting: 'Submitting',\n    'Text Message (SMS)': 'Text Message (SMS)',\n    Username: 'Username',\n    'Verify Contact': 'Verify Contact',\n    Verify: 'Verify',\n    'We Emailed You': 'We Emailed You',\n    'We Sent A Code': 'We Sent A Code',\n    'We Texted You': 'We Texted You',\n    'Your code is on the way. To log in, enter the code we emailed to': 'Your code is on the way. To log in, enter the code we emailed to',\n    'Your code is on the way. To log in, enter the code we sent you': 'Your code is on the way. To log in, enter the code we sent you',\n    'Your code is on the way. To log in, enter the code we texted to': 'Your code is on the way. To log in, enter the code we texted to',\n};\n\nconst esDict$1 = {\n    'Account recovery requires verified contact information': 'La recuperación de la cuenta requiere información de contacto verificada',\n    'Authenticator App (TOTP)': 'Aplicación de autenticación (TOTP)',\n    'Back to Sign In': 'Volver a inicio de sesión',\n    'Cannot reset password for the user as there is no registered/verified email or phone_number': 'No se puede restablecer la contraseña para el usuario debido a que no hay Email registrado / verificado o número de teléfono',\n    'Change Password': 'Cambiar contraseña',\n    Changing: 'Cambiando',\n    Code: 'Código',\n    'Code *': 'Código *',\n    'Confirm Email Code': 'Confirmar el código de correo electrónico',\n    'Confirm Password': 'Confirmar contraseña',\n    'Confirm Sign Up': 'Confirmar registro',\n    'Confirm SMS Code': 'Confirmar el código de SMS',\n    'Confirm TOTP Code': 'Confirmar código TOTP',\n    Confirm: 'Confirmar',\n    'Confirmation Code': 'Código de confirmación',\n    Confirming: 'Confirmando',\n    'Create a new account': 'Crear una cuenta nueva',\n    'Create Account': 'Crear cuenta',\n    'Creating Account': 'Creando cuenta',\n    'Dismiss alert': 'Descartar alerta',\n    Email: 'Email',\n    'Email Message': 'Mensaje de correo electrónico',\n    'Enter your code': 'Ingrese el código',\n    'Enter your Email': 'Escriba su Email',\n    'Enter your email': 'Escriba su email',\n    'Enter your Password': 'Escriba su Contraseña',\n    'Enter your phone number': 'Ingrese el número de teléfono',\n    'Enter your username': 'Ingrese el nombre de usuario',\n    'Forgot your password?': '¿Olvidó su contraseña?',\n    'Hide password': 'Ocultar contraseña',\n    'It may take a minute to arrive': 'Es posible que tarde un minuto en llegar',\n    Loading: 'Cargando',\n    'Multi-Factor Authentication': 'Autenticación multifactor',\n    'Multi-Factor Authentication Setup': 'Configuración de autenticación multifactor',\n    'New password': 'Nueva contraseña',\n    or: 'o',\n    Password: 'Contraseña',\n    'Phone Number': 'Número de teléfono',\n    'Resend Code': 'Reenviar código',\n    'Reset your password': 'Restablecer su contraseña',\n    'Reset your Password': 'Restablecer su Contraseña',\n    'Select MFA Type': 'Seleccionar el tipo de MFA',\n    'Send code': 'Enviar código',\n    'Send Code': 'Enviar código',\n    Sending: 'Enviando',\n    'Setup Email': 'Configurar correo electrónico',\n    'Setup TOTP': 'Configurar TOTP',\n    'Show password': 'Mostrar contraseña',\n    'Sign in to your account': 'Iniciar sesión en tu cuenta',\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': 'Iniciar sesión',\n    'Sign In': 'Iniciar Sesión',\n    'Signing in': 'Iniciando sesión',\n    Skip: 'Omitir',\n    Submit: 'Enviar',\n    Submitting: 'Enviando',\n    'Text Message (SMS)': 'Mensaje de texto (SMS)',\n    Username: 'Nombre de usuario',\n    'Verify Contact': 'Verificar contacto',\n    Verify: 'Verificar',\n    'We Emailed You': 'Le hemos enviado un correo electrónico',\n    'We Sent A Code': 'Hemos enviado un código',\n    'We Texted You': 'Le hemos enviado un mensaje de texto',\n    'Your code is on the way. To log in, enter the code we emailed to': 'El código está en camino. Para iniciar sesión, escriba el código que hemos enviado por correo electrónico a',\n    'Your code is on the way. To log in, enter the code we sent you': 'El código está en camino. Para iniciar sesión, escriba el código que le hemos enviado',\n    'Your code is on the way. To log in, enter the code we texted to': 'El código está en camino. Para iniciar sesión, escriba el código que hemos enviado por mensaje de texto a',\n    // Additional translations provided by customers\n    'An account with the given email already exists.': 'Ya existe una cuenta con el correo ingresado.',\n    'Confirm a Code': 'Confirmar un código',\n    'Confirm Sign In': 'Confirmar inicio de sesión',\n    'Forgot Password': 'Olvidé mi contraseña',\n    'Incorrect username or password.': 'Nombre de usuario o contraseña incorrecta',\n    'Enter your Family Name': 'Escriba su apellido',\n    'Enter your Given Name': 'Escriba su nombre',\n    'Given Name': 'Nombre',\n    'Family Name': 'Apellido',\n    'Reset Password': 'Restablecer contraseña',\n    'Please confirm your Password': 'Confirme su contraseña',\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    'Resend a Code': 'Reenviar un código',\n    'Sign Out': 'Cerrar sesión',\n    'Sign Up with Amazon': 'Crear cuenta con Amazon',\n    'Sign Up with Apple': 'Crear cuenta con Apple',\n    'Sign Up with Facebook': 'Crear cuenta con Facebook',\n    'Sign Up with Google': 'Crear cuenta con Google',\n    'Sign Up': 'Crear cuenta',\n    'User already exists': 'El usuario ya existe',\n    'User does not exist.': 'El usuario no existe',\n    'Username/client id combination not found.': 'El usuario no existe',\n    'Username cannot be empty': 'El nombre de usuario no puede estar vacío',\n    'Your passwords must match': 'Las contraseñas deben coincidir',\n    'Password must have at least 8 characters': 'La contraseña debe tener al menos 8 caracteres',\n    'Password must have upper case letters': 'La contraseña debe tener al menos un carácter en mayúscula',\n    'Password must have numbers': 'La contraseña debe tener al menos un carácter numérico',\n    'Password must have special characters': 'La contraseña debe tener al menos un símbolo',\n    'Password must have lower case letters': 'La contraseña debe tener al menos un carácter en minúsculas',\n    'Invalid verification code provided, please try again.': 'Código de verificación no válido, inténtelo de nuevo.',\n    'Attempt limit exceeded, please try after some time.': 'Número máximo de intentos excedido, por favor inténtelo de nuevo más tarde.',\n    'A network error has occurred.': 'Se ha producido un error de red.',\n};\n\nconst frDict$1 = {\n    'Account recovery requires verified contact information': 'La récupération du compte nécessite des informations de contact vérifiées',\n    'Authenticator App (TOTP)': 'Application d’authentification (TOTP)',\n    'Back to Sign In': 'Retour à la connexion',\n    'Cannot reset password for the user as there is no registered/verified email or phone_number': \"Impossible de réinitialiser le mot de passe pour l'utilisateur car il n'a pas d'adresse e-mail ou de numéro de téléphone enregistré / vérifié\",\n    'Change Password': 'Modifier le mot de passe',\n    Changing: 'Modification en cours',\n    Code: 'Code',\n    'Confirm Email Code': 'Confirmer le code e-mail',\n    'Confirm Password': 'Confirmez le mot de passe',\n    'Confirm Sign Up': \"Confirmer l'inscription\",\n    'Confirm SMS Code': 'Confirmer le code SMS',\n    'Confirm TOTP Code': 'Confirmer le code TOTP',\n    Confirm: 'Confirmer',\n    'Confirmation Code': 'Code de confirmation',\n    Confirming: 'Confirmation',\n    'Create a new account': 'Créer un nouveau compte',\n    'Create Account': 'Créer un compte',\n    'Creating Account': `Création d'un compte`,\n    'Dismiss alert': `Supprimer l'alerte`,\n    Email: 'Email',\n    'Email Message': 'Message de l’e-mail',\n    'Enter your code': 'Saisissez cotre code de confirmation',\n    'Enter your Email': 'Saisissez votre adresse e-mail',\n    'Enter your email': 'Saisissez votre adresse e-mail',\n    'Enter your phone number': 'Saisissez votre numéro de téléphone',\n    'Enter your username': \"Saisissez votre nom d'utilisateur\",\n    'Forgot your password?': 'Mot de passe oublié ? ',\n    'Hide password': 'Masquer le mot de passe',\n    'It may take a minute to arrive': 'Cela peut prendre une minute',\n    Loading: 'Chargement en cours',\n    'Multi-Factor Authentication': 'Authentification multifactorielle',\n    'Multi-Factor Authentication Setup': 'Configuration de l’authentification multifactorielle',\n    'New password': 'Nouveau mot de passe',\n    or: 'ou',\n    Password: 'Mot de passe',\n    'Phone Number': 'Numéro de téléphone',\n    'Resend Code': 'Renvoyer le code',\n    'Reset your Password': 'Réinitialiser votre mot de passe',\n    'Reset your password': 'Réinitialisez votre mot de passe',\n    'Select MFA Type': 'Sélectionner le type de MFA',\n    'Send code': 'Envoyer le code',\n    'Send Code': \"M'envoyer un code\",\n    Sending: 'Envoi en cours',\n    'Setup Email': 'E-mail de configuration',\n    'Setup TOTP': 'Configuration de TOTP',\n    'Show password': 'Afficher le mot de passe',\n    'Sign in to your account': 'Connexion à votre compte',\n    'Sign In with Amazon': 'Se connecter avec Amazon',\n    'Sign In with Apple': 'Se connecter avec Apple',\n    'Sign In with Facebook': 'Se connecter avec Facebook',\n    'Sign In with Google': 'Se connecter avec Google',\n    'Sign in': 'Se connecter',\n    'Sign In': 'Se connecter',\n    'Signing in': 'Connexion en cours',\n    Skip: 'Passer',\n    Submit: 'Soumettre',\n    Submitting: 'Envoi en cours',\n    'Text Message (SMS)': 'Message texte (SMS)',\n    Username: \"Nom d'utilisateur\",\n    'Verify Contact': 'Vérifier le contact',\n    Verify: 'Vérifier',\n    'We Sent A Code': 'Nous avons envoyé un code',\n    'We Texted You': 'Nous vous avons envoyé un SMS',\n    'Your code is on the way. To log in, enter the code we sent you': `Votre code est en cours d'envoi. Pour vous connecter, saisissez le code que nous vous avons envoyé`,\n    // Additional translations provided by customers\n    'Add your Profile': 'Ajoutez votre profil',\n    'Add your Website': 'Ajoutez votre site web',\n    'An account with the given email already exists.': 'Un utilisateur avec cette adresse email existe déjà.',\n    Birthdate: 'Date de naissance',\n    Change: 'Modifier',\n    'Confirm a Code': 'Confirmer un code',\n    'Confirm Sign In': 'Confirmer la connexion',\n    'Create account': 'Créer un compte',\n    'Enter your Birthdate': 'Saisissez votre date de naissance',\n    'Enter your Confirmation Code': 'Saisissez votre code de confirmation',\n    'Enter your Family Name': 'Saisissez votre nom de famille',\n    'Enter your Given Name': 'Saisissez votre prénom',\n    'Enter your Middle Name': 'Saisissez votre deuxième prénom',\n    'Enter your Name': 'Saisissez votre nom',\n    'Enter your Nickname': 'Saisissez votre surnom',\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 Preferred Username': \"Saisissez votre nom d'utilisateur\",\n    'Enter your password': 'Saisissez votre mot de passe',\n    'Given Name': 'Prénom',\n    'Family Name': 'Nom de famille',\n    'Forgot Password': 'Mot de passe oublié',\n    'Forgot Password?': 'Mot de passe oublié ?',\n    'Incorrect username or password': 'Identifiant ou mot de passe incorrect',\n    'Incorrect username or password.': 'Identifiant ou mot de passe incorrect.',\n    'Have an account? ': 'Déjà un compte ? ',\n    Hello: 'Bonjour',\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    Name: 'Nom',\n    'No account? ': 'Pas de compte ? ',\n    'Please confirm your Password': 'Confirmez votre mot de passe',\n    'Preferred Username': \"Nom d'utilisateur préféré\",\n    Profile: 'Profil',\n    'Resend a Code': 'Renvoyer un code',\n    'Reset password': 'Réinitialiser le mot de passe',\n    'Reset Password': 'Réinitialiser le mot de passe',\n    Send: 'Envoyer',\n    'Sign In with AWS': 'Se connecter avec AWS',\n    'Sign Out': 'Déconnexion',\n    'Sign Up': \"S'inscrire\",\n    SMS: 'SMS',\n    'User already exists': \"L'utilisateur existe déjà\",\n    'User does not exist.': \"L'utilisateur n'existe pas\",\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    'We Emailed You': 'Nous vous avons envoyé un code',\n    'Your code is on the way. To log in, enter the code we emailed to': 'Votre code est en route. Pour vous connecter entrez le code reçu sur cette adresse email',\n    'Your code is on the way. To log in, enter the code we texted to': 'Votre code est en route. Pour vous connecter entrez le code reçu sur ce numéro de téléphone',\n    'Your passwords must match': 'Vos mots de passe doivent être identiques',\n    'It may take a minute to arrive.': 'Cela peut prendre quelques minutes.',\n    Website: 'Site web',\n    'Password must have at least 8 characters': 'Le mot de passe doit comporter au moins 8 caractères',\n    'Password must have upper case letters': 'Le mot de passe doit comporter des caractères majuscules',\n    'Password must have numbers': 'Le mot de passe doit comporter des caractères numériques',\n    'Password must have special characters': 'Le mot de passe doit comporter des symboles',\n    'Password must have lower case letters': 'Le mot de passe doit comporter des caractères minuscules',\n    'Invalid verification code provided, please try again.': 'Code de vérification invalide, veuillez réessayer.',\n    'Attempt limit exceeded, please try after some time.': 'Nombre maximum de tentatives dépassé, veuillez réessayer plus tard.',\n    'A network error has occurred.': \"Une erreur de réseau s'est produite.\",\n};\n\nconst huDict$1 = {\n    'A network error has occurred.': 'Hálózati hiba történt.',\n    'Account recovery requires verified contact information': 'A fiók helyreállításához hitelesített kapcsolattartási adatok szükségesek',\n    'Add your Profile': 'Profil hozzáadása',\n    'Add your Website': 'Weboldal hozzáadása',\n    'An account with the given email already exists.': 'Ezzel az e-mail címmel már létezik fiók.',\n    'Attempt limit exceeded, please try after some time.': 'Próbálkozási limit túllépve, kérjük próbálja újra később.',\n    'Authenticator App (TOTP)': 'Hitelesítő alkalmazás (TOTP)',\n    'Back to Sign In': 'Vissza a bejelentkezéshez',\n    Birthdate: 'Születési dátum',\n    'Change Password': 'Jelszó módosítása',\n    Changing: 'Módosítás',\n    Code: 'Kód',\n    Confirm: 'Megerősítés',\n    'Confirm a Code': 'Kód megerősítése',\n    'Confirm Email Code': 'E-mail kód megerősítése',\n    'Confirm MFA Code': 'MFA kód megerősítése',\n    'Confirm Password': 'Jelszó megerősítése',\n    'Confirm Sign In': 'Bejelentkezés megerősítése',\n    'Confirm Sign Up': 'Regisztráció megerősítése',\n    'Confirm SMS Code': 'SMS kód megerősítése',\n    'Confirm TOTP Code': 'TOTP kód megerősítése',\n    'Confirmation Code': 'Megerősítő kód',\n    Confirming: 'Megerősítés',\n    'Create a new account': 'Új fiók létrehozása',\n    'Create Account': 'Fiók létrehozása',\n    'Create account': 'Fiók létrehozása',\n    'Creating Account': 'Fiók létrehozása',\n    'Dismiss alert': 'Figyelmeztetés ignorálása',\n    Email: 'E-mail',\n    'Email Message': 'E-mail üzenet',\n    'Enter your Birthdate': 'Adja meg a születési dátumát',\n    'Enter your code': 'Adja meg a kódot',\n    'Enter your Confirmation Code': 'Adja meg a megerősítő kódot',\n    'Enter your email': 'Adja meg az e-mail címét',\n    'Enter your Email': 'Adja meg az e-mail címét',\n    'Enter your Family Name': 'Adja meg a vezetéknevét',\n    'Enter your Given Name': 'Adja meg a keresztnevét',\n    'Enter your Middle Name': 'Adja meg második keresztnevét (ha van)',\n    'Enter your Name': 'Adja meg a nevét',\n    'Enter your Nickname': 'Adja meg a becenevét',\n    'Enter your password': 'Adja meg a jelszavát',\n    'Enter your Password': 'Adja meg a jelszavát',\n    'Enter your phone number': 'Adja meg a telefonszámát',\n    'Enter your Phone Number': 'Adja meg a telefonszámát',\n    'Enter your Preferred Username': 'Adja meg a preferált felhasználónevét',\n    'Enter your username': 'Adja meg a felhasználónevét',\n    'Enter your Username': 'Adja meg a felhasználónevét',\n    'Family Name': 'Vezetéknév',\n    'Forgot Password': 'Elfelejtett jelszó',\n    'Forgot password?': 'Elfelejtette a jelszavát?',\n    'Forgot your password?': 'Elfelejtette a jelszavát?',\n    'Given Name': 'Keresztnév',\n    'Have an account? ': 'Van már fiókja? ',\n    Hello: 'Üdvözöljük',\n    'Hide password': 'Jelszó elrejtése',\n    'Incorrect username or password': 'Helytelen felhasználónév vagy jelszó',\n    'Incorrect username or password.': 'Helytelen felhasználónév vagy jelszó.',\n    'Invalid password format': 'Érvénytelen jelszó formátum',\n    'Invalid phone number format': 'Érvénytelen telefonszám formátum',\n    'It may take a minute to arrive': 'Egy percet igénybe vehet, amíg megérkezik',\n    'It may take a minute to arrive.': 'Egy percet igénybe vehet, amíg megérkezik.',\n    Loading: 'Betöltés',\n    'Loading...': 'Betöltés...',\n    'Lost your code? ': 'Elvesztette a kódot? ',\n    'Middle Name': 'Második keresztnév',\n    'Multi-Factor Authentication': 'Többfaktoros hitelesítés',\n    'Multi-Factor Authentication Setup': 'Többfaktoros hitelesítés felállítása',\n    Name: 'Név',\n    'Network error': 'Hálózati hiba',\n    'New Password': 'Új jelszó',\n    'New password': 'Új jelszó',\n    Nickname: 'Becenév',\n    'No account? ': 'Nincs még fiókja? ',\n    or: 'vagy',\n    Password: 'Jelszó',\n    'Password attempts exceeded': 'Jelszó próbálkozási limit túllépve',\n    'Password did not conform with policy': 'A jelszónak tartalmaznia kell kisbetűket',\n    'Password must have lower case letters': 'A jelszónak tartalmaznia kell kisbetűket',\n    'Password must have numbers': 'A jelszónak tartalmaznia kell számokat',\n    'Password must have special characters': 'A jelszónak tartalmaznia kell szimbólumokat',\n    'Password must have upper case letters': 'A jelszónak tartalmaznia kell nagybetűket',\n    'Password not long enough': 'Jelszó nem elég hosszú',\n    'Password must have at least 8 characters': 'A jelszónak legalább 8 karakterből kell állnia',\n    'Phone Number': 'Telefonszám',\n    'Please confirm your Password': 'Kérjük, erősítse meg a jelszavát',\n    'Preferred Username': 'Preferált felhasználónév',\n    Profile: 'Profil',\n    'Resend a Code': 'Kód újraküldése',\n    'Resend Code': 'Kód újraküldése',\n    'Reset Password': 'Új jelszó felállítása',\n    'Reset password': 'Új jelszó felállítása',\n    'Reset your password': 'Új jelszó felállítása',\n    'Reset your Password': 'Új jelszó felállítása',\n    'Select MFA Type': 'MFA típus kiválasztása',\n    Send: 'Küldés',\n    'Send code': 'Kód küldése',\n    'Send Code': 'Kód küldése',\n    Sending: 'Küldés',\n    'Setup Email': 'E-mail cím beállítása',\n    'Setup TOTP': 'TOTP beállítása',\n    'Show password': 'Jelszó megjelenítése',\n    'Sign In': 'Bejelentkezés',\n    'Sign in': 'Bejelentkezés',\n    'Sign in to your account': 'Jelentkezzen be a fiókjába',\n    'Sign In with Amazon': 'Bejelentkezés Amazon-nal',\n    'Sign In with Apple': 'Bejelentkezés Apple-lel',\n    'Sign In with AWS': 'Bejelentkezés AWS-sel',\n    'Sign In with Facebook': 'Bejelentkezés Facebook-kal',\n    'Sign In with Google': 'Bejelentkezés Google-lal',\n    'Sign out': 'Kijelentkezés',\n    'Sign Out': 'Kijelentkezés',\n    'Sign up': 'Regisztráció',\n    'Sign Up': 'Regisztráció',\n    'Sign Up with Amazon': 'Regisztráció Amazon-nal',\n    'Sign Up with Apple': 'Regisztráció Apple-lel',\n    'Sign Up with Facebook': 'Regisztráció Facebook-kal',\n    'Sign Up with Google': 'Regisztráció Google-lal',\n    'Signing in': 'Bejelentkezés',\n    Skip: 'Kihagyás',\n    SMS: 'SMS',\n    Submit: 'Küldés',\n    Submitting: 'Küldés',\n    'Text Message (SMS)': 'SMS üzenet',\n    'User already exists': 'A felhasználó már létezik',\n    'User does not exist': 'Felhasználó nem található',\n    'User is disabled.': 'A felhasználó le van tiltva.',\n    Username: 'Felhasználónév',\n    'Username cannot be empty': 'A felhasználónév mező nem lehet üres',\n    'Username/client id combination not found.': 'Felhasználónév/kliens azonosító kombináció nem található.',\n    Verify: 'Ellenőrzés',\n    'Verify Contact': 'Kapcsolat ellenőrzése',\n    'We Emailed You': 'Küldtünk Önnek egy e-mailt',\n    'We Sent A Code': 'Küldtünk Önnek egy kódot',\n    'We Texted You': 'Küldtünk Önnek egy SMS-t',\n    Website: 'Weboldal',\n    'Your code is on the way. To log in, enter the code we emailed to': 'A bejelentkezéshez szükséges kód küldése folyamatban van, amelyet a következő e-mail címre küldtünk:',\n    'Your code is on the way. To log in, enter the code we sent you': 'A bejelentkezéshez szükséges kód küldése folyamatban van',\n    'Your code is on the way. To log in, enter the code we texted to': 'A bejelentkezéshez szükséges kód küldése folyamatban van, amelyet SMS-ben küldtünk a következő számra:',\n    'Your passwords must match': 'A jelszavaknak meg kell egyezniük',\n};\n\nconst itDict$1 = {\n    'Account recovery requires verified contact information': \"Il ripristino dell'account richiede informazioni di contatto verificate\",\n    'Authenticator App (TOTP)': 'App di autenticazione (TOTP)',\n    'Back to Sign In': 'Torna alla schermata di accesso',\n    'Change Password': 'Cambia la password',\n    Changing: 'Modifica in corso',\n    Code: 'Codice',\n    'Confirm Email Code': 'Conferma codice e-mail',\n    'Confirm Password': 'Conferma la password',\n    'Confirm Sign Up': 'Conferma registrazione',\n    'Confirm SMS Code': 'Conferma codice SMS',\n    'Confirm TOTP Code': 'Conferma codice TOTP',\n    Confirm: 'Conferma',\n    'Confirmation Code': 'Codice di verifica',\n    Confirming: 'Conferma in corso',\n    'Create a new account': 'Crea un nuovo account',\n    'Create Account': 'Crea Account',\n    'Creating Account': 'Creazione account in corso',\n    'Dismiss alert': `Ignora l'avviso`,\n    Email: 'Email',\n    'Email Message': 'Messaggio e-mail',\n    'Enter your code': 'Inserisci il tuo codice',\n    'Enter your Email': 'Inserisci la tua e-mail',\n    'Enter your phone number': 'Inserisci il tuo numero di telefono\"',\n    'Enter your username': 'Inserisci il tuo nome utente',\n    'Forgot your password?': 'Password dimenticata?',\n    'Hide password': 'Nascondi password',\n    'It may take a minute to arrive': \"L'arrivo potrebbe richiedere qualche minuto\",\n    Loading: 'Caricamento in corso',\n    'Multi-Factor Authentication': 'Autenticazione a più fattori',\n    'Multi-Factor Authentication Setup': \"Configurazione dell'autenticazione a più fattori\",\n    'New password': 'Nuova password',\n    or: 'oppure',\n    Password: 'Password',\n    'Phone Number': 'Numero di telefono',\n    'Resend Code': 'Invia nuovamente il codice',\n    'Reset your Password': 'Reimposta la tua Password',\n    'Reset your password': 'Reimposta la tua password',\n    'Select MFA Type': 'Seleziona il tipo di MFA',\n    'Send code': 'Invia codice',\n    'Send Code': 'Invia codice',\n    Sending: 'Invio in corso',\n    'Setup Email': \"Configura l'e-mail\",\n    'Setup TOTP': 'Configura TOTP',\n    'Show password': 'Mostra password',\n    'Sign in to your account': 'Accedi al tuo account',\n    'Sign In with Amazon': 'Accedi con Amazon',\n    'Sign In with Apple': 'Accedi con Apple',\n    'Sign In with Facebook': 'Accedi con Facebook',\n    'Sign In with Google': 'Accedi con Google',\n    'Sign in': 'Accedi',\n    'Sign In': 'Accedi',\n    'Signing in': 'Accesso in corso',\n    Skip: 'Salta',\n    Submit: 'Invia',\n    Submitting: 'Invio in corso',\n    'Text Message (SMS)': 'Messaggio di testo (SMS)',\n    Username: 'Nome utente',\n    'Verify Contact': 'Verifica contatto',\n    Verify: 'Verifica',\n    'We Emailed You': \"Ti abbiamo inviato un'e-mail\",\n    'We Sent A Code': 'Ti abbiamo inviato un codice',\n    'We Texted You': 'Ti abbiamo inviato un SMS',\n    'Your code is on the way. To log in, enter the code we emailed to': \"Il codice è in arrivo. Per effettuare l'accesso, immetti il codice che ti abbiamo inviato via e-mail\",\n    'Your code is on the way. To log in, enter the code we sent you': 'Il codice è in arrivo. Per accedere, immetti il codice che ti abbiamo inviato',\n    'Your code is on the way. To log in, enter the code we texted to': 'Il codice è in arrivo. Per accedere, immetti il codice che abbiamo inviato tramite SMS',\n    // Additional translations provided by customers\n    'An account with the given email already exists.': 'Questa email è già utilizzata da un altro account.',\n    'Confirm a Code': 'Conferma un codice',\n    'Confirm Sign In': \"Conferma l'accesso\",\n    'Create account': 'Crea account',\n    'Enter your password': 'Inserisci la tua password',\n    'Forgot Password?': 'Password dimenticata?',\n    'Have an account? ': 'Già registrato?',\n    'Incorrect username or password': 'Nome utente o password errati',\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    'No account? ': 'Non hai un account?',\n    'Password attempts exceeded': 'Il numero massimo di tentativi di accesso falliti è stato raggiunto',\n    'Reset password': 'Reimposta password',\n    'Sign Out': 'Esci',\n    'Sign Up': 'Registrati',\n    'User already exists': 'Utente già esistente',\n    'User does not exist': 'Utente inesistente',\n    'Username cannot be empty': 'Il nome utente non può essere vuoto',\n};\n\nconst jaDict$1 = {\n    'Account recovery requires verified contact information': 'アカウントの復旧には確認済みの連絡先が必要です',\n    'Authenticator App (TOTP)': '認証アプリ (TOTP)',\n    'Back to Sign In': 'サインインに戻る',\n    'Change Password': 'パスワードを変える ',\n    Changing: '変更中',\n    Code: 'コード',\n    'Confirm Email Code': 'E メールコードを確認',\n    'Confirm Password': 'パスワードの確認',\n    'Confirm Sign Up': '登録する',\n    'Confirm SMS Code': 'SMS コードを確認',\n    'Confirm TOTP Code': 'TOTP コードを確認',\n    Confirm: '確定',\n    'Confirmation Code': '確認コード',\n    Confirming: '確認中',\n    'Create a new account': '新しいアカウントを作る',\n    'Create Account': 'アカウントを作る',\n    'Creating Account': 'アカウントの作成中',\n    'Dismiss alert': 'アラートを閉じる',\n    Email: 'メールアドレス',\n    'Email Message': 'E メールメッセージ',\n    'Enter your code': 'コードを入力',\n    'Enter your Email': 'メールアドレスを入力',\n    'Enter your phone number': '電話番号を入力',\n    'Enter your username': 'ユーザー名を入力 ',\n    'Enter your Username': 'ユーザー名を入力 ',\n    'Forgot your password?': 'パスワードを忘れましたか？ ',\n    'Hide password': 'パスワードを非表示',\n    'It may take a minute to arrive': '到着するまでに 1 分かかることがあります',\n    Loading: 'ロード中',\n    'Multi-Factor Authentication': '多要素認証',\n    'Multi-Factor Authentication Setup': '多要素認証のセットアップ',\n    'New password': '新しいパスワード',\n    or: '又は',\n    Password: 'パスワード ',\n    'Phone Number': '電話番号',\n    'Resend Code': 'コードを再送信',\n    'Reset your Password': 'パスワードをリセット',\n    'Reset your password': 'パスワードをリセットする',\n    'Select MFA Type': 'MFA タイプを選択',\n    'Send code': 'コードを送信',\n    'Send Code': 'コードを送信',\n    Sending: '送信中',\n    'Setup Email': 'E メールをセットアップ',\n    'Setup TOTP': 'TOTP をセットアップ',\n    'Show password': 'パスワードを表示',\n    'Sign in to your account': 'アカウントにサインイン ',\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': 'サインイン ',\n    'Sign in': 'サインイン',\n    'Signing in': 'サインイン中',\n    Skip: 'スキップ',\n    Submit: '送信',\n    Submitting: '送信中',\n    'Text Message (SMS)': 'テキストメッセージ (SMS)',\n    Username: 'ユーザー名 ',\n    'Verify Contact': '連絡先を確認',\n    Verify: '確認',\n    'We Sent A Code': 'コードが送信されました',\n    'We Texted You': 'テキストが送信されました',\n    'Your code is on the way. To log in, enter the code we sent you': 'コードが途中です。ログインするには、送信したコードを入力してください',\n    // Additional translations provided by customers\n    'An account with the given email already exists.': '入力されたメールアドレスのアカウントが既に存在します',\n    'Confirm a Code': 'コードを確認',\n    'Confirm Sign In': 'サインインする',\n    'Create account': 'アカウントを作る ',\n    'Enter your password': 'パスワードを入力 ',\n    'Enter your Password': 'パスワードを入力',\n    'Please confirm your Password': 'パスワードを入力',\n    'Forgot Password': 'パスワードを忘れた ',\n    'Have an account? ': 'アカウントを持っていますか？',\n    'Incorrect username or password': 'ユーザー名かパスワードが異なります ',\n    'Incorrect username or password.': 'ユーザー名かパスワードが異なります ',\n    'Invalid password format': 'パスワードの形式が無効です ',\n    'Invalid phone number format': '不正な電話番号の形式です。\\n+12345678900 の形式で入力してください',\n    'It may take a minute to arrive.': 'コードを受信するまで数分かかる場合があります。',\n    'Lost your code? ': 'コードを失くしましたか？',\n    'New Password': '新しいパスワード',\n    'No account? ': 'アカウントが無いとき ',\n    'Password attempts exceeded': 'サインインの試行回数が上限に達しました',\n    'Reset password': 'パスワードをリセット ',\n    'Reset Password': 'パスワードをリセット',\n    'Sign Out': 'サインアウト ',\n    'Sign Up': '登録 ',\n    'User already exists': '既にユーザーが存在しています ',\n    'User does not exist': 'ユーザーが存在しません ',\n    'Username cannot be empty': 'ユーザー名は入力必須です',\n    'We Emailed You': 'コードを送信しました',\n    'Your code is on the way. To log in, enter the code we emailed to': 'ログインするには、メールに記載されたコードを入力してください。送信先:',\n    'Your code is on the way. To log in, enter the code we texted to': 'ログインするには、テキストメッセージに記載されたコードを入力してください。送信先:',\n};\n\nconst krDict$1 = {\n    'Account recovery requires verified contact information': '계정 복구를 위해 연락처 확인이 필요합니다',\n    'Authenticator App (TOTP)': '인증 앱(TOTP)',\n    'Back to Sign In': '로그인으로 돌아가기',\n    'Change Password': '비밀번호 변경하기',\n    Changing: '변경중',\n    Code: '코드',\n    'Confirm Email Code': '이메일 코드 확인',\n    'Confirm Password': '비밀번호 재확인',\n    'Confirm Sign Up': '회원가입 확인',\n    'Confirm SMS Code': '휴대폰 본인 확인',\n    'Confirm TOTP Code': 'TOTP 인증번호 확인',\n    Confirm: '확인',\n    'Confirmation Code': '인증번호',\n    Confirming: '확인중',\n    'Create a new account': '회원가입',\n    'Create Account': '회원가입',\n    'Creating Account': '회원가입중',\n    'Dismiss alert': '알림 무시',\n    Email: '이메일',\n    'Email Message': '이메일 메시지',\n    'Enter your Birthdate': '생년월일 입력',\n    'Enter your code': '인증번호를 입력해주세요',\n    'Enter your Confirmation Code': '확인 코드 입력',\n    'Enter your Email': '이메일 입력',\n    'Enter your Family Name': '성 입력',\n    'Enter your Given Name': '사용장 이름 입력',\n    'Enter your Name': '이름 입력',\n    'Enter your Nickname': '닉네임 입력',\n    'Enter your Password': '비밀번호 입력',\n    'Enter your phone number': '전화번호 입력',\n    'Enter your Preferred Username': '선호하는 아이디 입력',\n    'Enter your username': '아이디를 입력해주세요',\n    'Forgot password?': '비밀번호를 잊으셨나요?',\n    'Hide password': '비밀번호 숨기기',\n    'It may take a minute to arrive': '도착하는 데 1분 정도 걸릴 수 있습니다',\n    Loading: '로딩중',\n    'Multi-Factor Authentication': '다중 인증',\n    'Multi-Factor Authentication Setup': '다중 인증 설정',\n    'New password': '새 비밀번호',\n    or: '또는',\n    Password: '비밀번호',\n    'Phone Number': '전화번호',\n    'Please confirm your Password': '비밀번호를 확인해 주세요.',\n    'Resend Code': '인증번호 재전송',\n    'Reset your password': '비밀번호 재설정',\n    'Reset your Password': '비밀번호 재설정',\n    'Select MFA Type': 'MFA 유형 선택',\n    'Send code': '인증코드 보내기',\n    'Send Code': '코드 전송',\n    Sending: '전송중',\n    'Setup Email': '이메일 설정',\n    'Setup TOTP': 'TOTP 설정하기',\n    'Show password': '비밀번호 보이기',\n    'Sign in to your account': '로그인',\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': '로그인',\n    'Sign In': '로그인',\n    'Signing in': '로그인중',\n    Skip: '다음에 하기',\n    Submit: '확인',\n    Submitting: '확인중',\n    'Text Message (SMS)': '문자 메시지(SMS)',\n    Username: '아이디',\n    'Verify Contact': '연락처 확인',\n    Verify: '인증',\n    'We Emailed You': '이메일을 보냄',\n    'We Sent A Code': '코드를 보냄',\n    'We Texted You': '문자 메시지를 보냄',\n    'Your code is on the way. To log in, enter the code we emailed to': '코드가 전송 중입니다. 로그인하려면 이메일로 전송한 코드를 입력하세요',\n    'Your code is on the way. To log in, enter the code we sent you': '코드가 전송 중입니다. 로그인하려면 전송한 코드를 입력하세요',\n    'Your code is on the way. To log in, enter the code we texted to': '코드가 전송 중입니다. 로그인하려면 문자 메시지로 전송한 코드를 입력하세요',\n    // Additional translations provided by customers\n    Birthdate: '생년월일',\n    'Family Name': '성',\n    'Forgot your password?': '비밀번호를 잊으셨나요?',\n    'Given Name': '이름',\n    Name: '성함',\n    Nickname: '닉네임',\n    'Preferred Username': '닉네임',\n    Profile: '프로필',\n    'Reset Password': '비밀번호 재설정',\n    Website: '웹사이트',\n};\n\nconst nbDict$1 = {\n    'Account recovery requires verified contact information': 'Gjenoppretting av konto krever verifisert kontaktinformajson',\n    'Add your Profile': 'Legg til profilen din',\n    'Add your Website': 'Legg til nettsiden din',\n    'Authenticator App (TOTP)': 'Autentiseringsapp (TOTP)',\n    'Back to Sign In': 'Tilbake til innlogging',\n    'Change Password': 'Bytt passord',\n    Changing: 'Endre',\n    Code: 'Kode',\n    'Confirm Email Code': 'Bekreft e-postkode',\n    'Confirm Password': 'Bekreft passordet',\n    'Confirm Sign Up': 'Bekreft registrering',\n    'Confirm SMS Code': 'Bekreft SMS-kode',\n    'Confirm TOTP Code': 'Bekreft TOTP-kode',\n    Confirm: 'Bekreft',\n    'Confirmation Code': 'Bekreftelseskode',\n    Confirming: 'Bekrefter',\n    'Create a new account': 'Opprett en ny konto',\n    'Create Account': 'Opprett konto',\n    'Creating Account': 'Oppretter konto',\n    'Dismiss alert': 'Avvis varsel',\n    Email: 'E-post',\n    'Email Message': 'E-postmelding',\n    'Enter your Birthdate': 'Skriv inn fødselsdatoen din',\n    'Enter your code': 'Skriv inn koden din',\n    'Enter your Confirmation Code': 'Skriv inn bekreftelseskoden din',\n    'Enter your Email': 'Skriv inn e-postadressen din',\n    'Enter your Family Name': 'Skriv inn etternavnet ditt',\n    'Enter your Given Name': 'Skriv inn fornavnet ditt',\n    'Enter your Middle Name': 'Skriv inn mellomnavnet ditt',\n    'Enter your Name': 'Skriv inn navnet ditt',\n    'Enter your Nickname': 'Skriv inn kallenavnet ditt',\n    'Enter your Password': 'Skriv inn passordet ditt',\n    'Enter your phone number': 'Skriv inn telefonnummeret ditt',\n    'Enter your Preferred Username': 'Skriv inn det foretrukne brukernavnet ditt',\n    'Enter your username': 'Skriv inn brukernavnet ditt',\n    'Forgot password?': 'Glemt passord?',\n    'Forgot your password?': 'Glemt passordet ditt?',\n    'Hide password': 'Skjul passordet',\n    'It may take a minute to arrive': 'Det kan ta et minutt for å komme frem',\n    Loading: 'Laster inn',\n    'Multi-Factor Authentication': 'Flerfaktorautentisering',\n    'Multi-Factor Authentication Setup': 'Oppsett av flerfaktorautentisering',\n    'New password': 'Nytt passord',\n    or: 'eller',\n    Password: 'Passord',\n    'Phone Number': 'Telefonnummer',\n    'Please confirm your Password': 'Vennligst bekreft passordet ditt',\n    'Resend Code': 'Send koden på nytt',\n    'Reset your password': 'Nullstill passordet ditt',\n    'Reset your Password': 'Nullstill passordet ditt',\n    'Select MFA Type': 'Velg MFA-type',\n    'Send code': 'Send kode',\n    'Send Code': 'Send kode',\n    Sending: 'Sender',\n    'Setup Email': 'Konfigurer e-post',\n    'Setup TOTP': 'Konfigurer TOTP',\n    'Show password': 'Vis passordet',\n    'Sign in to your account': 'Logg inn på kontoen din',\n    'Sign In with Amazon': 'Logg inn med Amazon',\n    'Sign In with Apple': 'Logg inn med Apple',\n    'Sign In with Facebook': 'Logg inn med Facebook',\n    'Sign In with Google': 'Logg inn med Google',\n    'Sign in': 'Logg inn',\n    'Sign In': 'Logg inn',\n    'Signing in': 'Logger inn',\n    Skip: 'Hopp over',\n    Submit: 'Send inn',\n    Submitting: 'Sender inn',\n    'Text Message (SMS)': 'Tekstmelding (SMS)',\n    Username: 'Brukernavn',\n    'Verify Contact': 'Bekreft kontakt',\n    Verify: 'Bekreft',\n    'We Emailed You': 'Vi sendte deg en e-post',\n    'We Sent A Code': 'Vi sendte en kode',\n    'We Texted You': 'Vi sendte deg en tekstmelding',\n    'Your code is on the way. To log in, enter the code we emailed to': 'Koden din er på vei. For å logge inn, skriv inn koden vi sendte e-post til',\n    'Your code is on the way. To log in, enter the code we sent you': 'Koden din er på vei. For å logge inn, skriv inn koden vi sendte deg',\n    'Your code is on the way. To log in, enter the code we texted to': 'Koden din er på vei. For å logge inn, skriv inn koden vi sendte tekstmelding til',\n    // Additional translations provided by customers\n    'An account with the given email already exists.': 'Det finnes allerede en konto med denne e-postadressen',\n    'Confirm a Code': 'Bekreft koden',\n    'Confirm Sign In': 'Bekreft innlogging',\n    'Create account': 'Opprett konto',\n    'Enter your password': 'Skriv inn passordet ditt',\n    'Forgot Password': 'Glemt passordet',\n    'Have an account? ': 'Har en konto allerede? ',\n    'Incorrect username or password': 'Feil brukernavn eller passord',\n    'Incorrect username or password.': 'Feil brukernavn eller passord',\n    'Invalid password format': 'Ugyldig passordformat',\n    'Invalid phone number format': 'Ugyldig telefonnummerformat',\n    'Lost your code? ': 'Mistet koden? ',\n    'New Password': 'Nytt passord',\n    'No account? ': 'Ingen konto? ',\n    'Password attempts exceeded': 'For mange mislykkede passordforsøk',\n    'Reset password': 'Nullstill passord',\n    'Sign Out': 'Logg ut',\n    'Sign Up': 'Registrering',\n    'User already exists': 'Brukeren finnes allerede',\n    'User does not exist': 'Brukeren finnes ikke',\n    'Username cannot be empty': 'Brukernavnet kan ikke være tomt',\n};\n\nconst nlDict$1 = {\n    'Account recovery requires verified contact information': 'Accountherstel vereist geverifieerde contactgegevens',\n    'Authenticator App (TOTP)': 'Authenticator-app (TOTP)',\n    'Back to Sign In': 'Terug naar inloggen',\n    'Change Password': 'Wachtwoord wijzigen',\n    Changing: 'Wordt aangepast',\n    Code: 'Code',\n    'Confirm Email Code': 'E-mailcode bevestigen',\n    'Confirm Password': 'Bevestig Wachtwoord',\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 a new account': 'Nieuw account aanmaken',\n    'Create Account': 'Account aanmaken',\n    'Creating Account': 'Account wordt aangemaakt',\n    'Dismiss alert': 'Waarschuwing sluiten',\n    Email: 'E-mail',\n    'Email Message': 'E-mailbericht',\n    'Enter your code': 'Vul je code in',\n    'Enter your Email': 'Vul je e-mail in',\n    'Enter your Password': 'Vul je wachtwoord in',\n    'Enter your phone number': 'Vul je telefoonnummer in',\n    'Enter your username': 'Vul je gebruikersnaam in',\n    'Enter your Username': 'Vul je gebruikersnaam in',\n    'Forgot your password?': 'Wachtwoord vergeten? ',\n    'Hide password': 'Verberg wachtwoord',\n    'It may take a minute to arrive': 'Het kan even duren voordat deze aankomt',\n    Loading: 'Laden',\n    'Multi-Factor Authentication': 'Multi-Factor Authentication',\n    'Multi-Factor Authentication Setup': 'Multi-Factor Authentication instellen',\n    'New password': 'Nieuw wachtwoord',\n    'New Password': 'Nieuw Wachtwoord',\n    or: 'of',\n    Password: 'Wachtwoord',\n    'Phone Number': 'Telefoonnummer',\n    'Please confirm your Password': 'Bevestig je wachtwoord',\n    'Resend Code': 'Verstuur code nogmaals',\n    'Reset Password': 'Wachtwoord resetten',\n    'Reset your password': 'Reset je wachtwoord',\n    'Reset your Password': 'Wachtwoord resetten',\n    'Select MFA Type': 'MFA-type kiezen',\n    'Send code': 'Verstuur code',\n    'Send Code': 'Verstuur Code',\n    Sending: 'Versturen',\n    'Setup Email': 'E-mailadres instellen',\n    'Setup TOTP': 'TOTP Instellingen',\n    'Show password': 'Toon wachtwoord',\n    'Sign in to your account': 'Inloggen op je account',\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': 'Inloggen',\n    'Sign In': 'Inloggen',\n    'Signing in': 'Inloggen',\n    Skip: 'Overslaan',\n    Submit: 'Versturen',\n    Submitting: 'Wordt verstuurd',\n    'Text Message (SMS)': 'Tekstbericht (sms)',\n    Username: 'Gebruikersnaam',\n    'Verify Contact': 'Verifieer Contact',\n    Verify: 'Verifieer',\n    'We Emailed You': 'We hebben u een e-mail gestuurd',\n    'We Sent A Code': 'We hebben een code gestuurd',\n    'We Texted You': 'We hebben u een sms gestuurd',\n    'Your code is on the way. To log in, enter the code we emailed to': 'Uw code is onderweg. Om in te loggen, voer de code in die we gemaild hebben naar',\n    'Your code is on the way. To log in, enter the code we sent you': 'Uw code is onderweg. Om in te loggen, voer de code in die we u hebben gestuurd',\n    'Your code is on the way. To log in, enter the code we texted to': 'Uw code is onderweg. Om in te loggen, voer de code in die we hebben gestuurd naar',\n    'Your passwords must match': 'Je wachtwoorden moeten overeenkomen',\n};\n\nconst plDict$1 = {\n    'Account recovery requires verified contact information': 'Odzyskanie konta wymaga zweryfikowanych danych kontaktowych',\n    'Authenticator App (TOTP)': 'Aplikacja uwierzytelniania (TOTP)',\n    'Back to Sign In': 'Powrót do logowania',\n    'Change Password': 'Zmień hasło',\n    Changing: 'Zmienianie',\n    Code: 'Kod',\n    'Confirm Email Code': 'Potwierdź kod e-mail',\n    'Confirm Password': 'Potwierdź 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 a new account': 'Utwórz nowe konto',\n    'Create Account': 'Utwórz konto',\n    'Creating Account': 'Tworzenie konta',\n    'Dismiss alert': 'Odrzuć alert',\n    Email: 'E-mail',\n    'Email Message': 'Wiadomość e-mail',\n    'Enter your code': 'Wprowadź swój kod',\n    'Enter your Email': 'Wpisz swój adres e-mail',\n    'Enter your phone number': 'Wpisz swój numer telefonu',\n    'Enter your username': 'Wprowadź swoją nazwę użytkownika',\n    'Forgot your password?': 'Zapomniałeś hasła? ',\n    'Hide password': 'Ukryj hasło',\n    'It may take a minute to arrive': 'Może to chwilę potrwać',\n    Loading: 'Ładowanie',\n    'Multi-Factor Authentication': 'Uwierzytelnianie wieloskładnikowe',\n    'Multi-Factor Authentication Setup': 'Konfigurowanie uwierzytelniania wieloskładnikowego',\n    'New password': 'Nowe hasło',\n    or: 'albo',\n    Password: 'Hasło',\n    'Phone Number': 'Numer telefonu',\n    'Resend Code': 'Wyślij kod ponownie',\n    'Reset your password': 'Zresetuj swoje hasło',\n    'Reset your Password': 'Zresetuj swoje hasło',\n    'Select MFA Type': 'Wybierz typ MFA',\n    'Send code': 'Wyślij kod',\n    'Send Code': 'Zresetuj hasło',\n    Sending: 'Wysyłanie',\n    'Setup Email': 'Konfiguracja poczty e-mail',\n    'Setup TOTP': 'Konfiguruj TOTP',\n    'Show password': 'Pokaż hasło',\n    'Sign in to your account': 'Zaloguj się na swoje konto',\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': 'Logowanie',\n    'Sign in': 'Zaloguj',\n    'Signing in': 'Logowanie',\n    Skip: 'Pomiń',\n    Submit: 'Wyślij',\n    Submitting: 'Wysyłanie',\n    'Text Message (SMS)': 'Wiadomość tekstowa (SMS)',\n    Username: 'Nazwa użytkownika',\n    'Verify Contact': 'Weryfikacja danych kontaktowych',\n    Verify: 'Zweryfikuj',\n    // Additional translations provided by customers\n    Birthdate: 'Data urodzenia',\n    'Family Name': 'Nazwisko',\n    'Given Name': 'Pierwsze imię',\n    'Middle Name': 'Drugie imię',\n    Name: 'Imię i nazwisko',\n    Nickname: 'Pseudonim',\n    'Preferred Username': 'Preferowana nazwa użytkownika',\n    Profile: 'Profil',\n    Website: 'Strona internetowa',\n    'We Emailed You': 'Wysłaliśmy Ci wiadomość e-mail',\n    'We Sent A Code': 'Wysłaliśmy kod',\n    'We Texted You': 'Wysłaliśmy Ci wiadomość SMS',\n    'Your code is on the way. To log in, enter the code we emailed to': 'Twój kod został wysłany. Aby się zalogować, wprowadź kod wysłany na adres e-mail',\n    'Your code is on the way. To log in, enter the code we sent you': 'Twój kod został wysłany. Aby się zalogować, wprowadź wysłany do Ciebie kod',\n    'Your code is on the way. To log in, enter the code we texted to': 'Twój kod został wysłany. Aby się zalogować, wprowadź kod wysłany do Ciebie w wiadomości SMS pod numer',\n};\n\nconst ptDict$1 = {\n    'Account recovery requires verified contact information': 'A recuperação da conta requer informações de contato verificadas',\n    'Authenticator App (TOTP)': 'Aplicativo autenticador (TOTP)',\n    'Add your Profile': 'Adicione seu Perfil',\n    'Add your Website': 'Adicione seu Website',\n    'Back to Sign In': 'Voltar para Entrar',\n    'Change Password': 'Mudar senha',\n    Changing: 'Mudando',\n    Code: 'Código',\n    'Confirm Email Code': 'Confirmar código de e-mail',\n    'Confirm Password': 'Confirme a Senha',\n    'Confirm Sign Up': 'Confirmar inscrição',\n    'Confirm SMS Code': 'Confirme o código SMS',\n    'Confirm MFA Code': 'Confirme o código MFA',\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 a new account': 'Criar uma nova conta',\n    'Create Account': 'Criar Conta',\n    'Creating Account': 'Criando conta',\n    'Dismiss alert': 'Descartar alerta',\n    Email: 'O email',\n    'Email Message': 'Mensagem de e-mail',\n    'Enter your Birthdate': 'Digite sua Data de Nascimento',\n    'Enter your code': 'Insira seu código',\n    'Enter your Confirmation Code': 'Digite seu código de confirmação',\n    'Enter your Email': 'Digite seu e-mail',\n    'Enter your Family Name': 'Digite seu Sobrenome',\n    'Enter your Given Name': 'Digite seu Primeiro Nome',\n    'Enter your Middle Name': 'Digite seu Nome do Meio',\n    'Enter your Name': 'Digite seu Nome',\n    'Enter your Nickname': 'Digite seu Apelido',\n    'Enter your Password': 'Digite sua senha',\n    'Enter your phone number': 'Digite seu número de telefone',\n    'Enter your Preferred Username': 'Digite seu nome de usuário preferido',\n    'Enter your username': 'Digite seu nome de usuário',\n    'Forgot password?': 'Esqueceu a senha?',\n    'Forgot your password?': 'Esqueceu sua senha?',\n    'Hide password': 'Esconder a senha',\n    'It may take a minute to arrive': 'Pode levar um minuto para chegar',\n    Loading: 'Carregando',\n    'Multi-Factor Authentication': 'Autenticação multifator',\n    'Multi-Factor Authentication Setup': 'Configuração da autenticação multifator',\n    'New password': 'Nova Senha',\n    or: 'ou',\n    Password: 'Senha',\n    'Phone Number': 'Número de telefone',\n    'Please confirm your Password': 'Por favor confirme sua Senha',\n    'Resend Code': 'Reenviar código',\n    'Reset your password': 'Redefina sua senha',\n    'Reset your Password': 'Redefina sua senha',\n    'Select MFA Type': 'Selecionar tipo de MFA',\n    'Send code': 'Enviar código',\n    'Send Code': 'Enviar código',\n    Sending: 'Enviando',\n    'Setup Email': 'Configurar e-mail',\n    'Setup TOTP': 'Configurar TOTP',\n    'Show password': 'Mostrar senha',\n    'Sign in to your account': 'Faça login em sua conta',\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': 'Entrar',\n    'Sign In': 'Entrar',\n    'Signing in': 'Entrando',\n    Skip: 'Pular',\n    Submit: 'Enviar',\n    Submitting: 'Enviando',\n    'Text Message (SMS)': 'Mensagem de texto (SMS)',\n    Username: 'Nome do usuário',\n    'Verify Contact': 'Verificar contato',\n    Verify: 'Verificar',\n    'We Emailed You': 'Enviamos um e-mail para você',\n    'We Sent A Code': 'Enviamos um código',\n    'We Texted You': 'Enviamos um SMS para você',\n    'Your code is on the way. To log in, enter the code we emailed to': 'Seu código está a caminho. Para fazer login, insira o código para o qual enviamos um e-mail',\n    'Your code is on the way. To log in, enter the code we sent you': 'Seu código está a caminho. Para fazer login, insira o código que enviamos para você',\n    'Your code is on the way. To log in, enter the code we texted to': 'Seu código está a caminho. Para fazer login, insira o código para o qual enviamos uma mensagem de texto',\n    // Additional translations provided by customers\n    'An account with the given email already exists.': 'Já existe uma conta com o email utilizado.',\n    'Confirm a Code': 'Confirmar um Código',\n    'Confirm Sign In': 'Confirmar Início de Sessão',\n    'Forgot Password': 'Esqueci Minha Senha',\n    'Incorrect username or password.': 'Nome de usuário ou senha incorreta',\n    'Invalid password format': 'Formato de senha inválido',\n    'Invalid phone number format': 'Formato de número de telefone inválido',\n    'Loading...': 'Carregando...',\n    'New Password': 'Nova Senha',\n    'Resend a Code': 'Reenviar um Código',\n    'Sign Out': 'Sair',\n    'Sign Up with Amazon': 'Criar Conta com a Amazon',\n    'Sign Up with Apple': 'Criar Conta com a Apple',\n    'Sign Up with Facebook': 'Criar Conta com o Facebook',\n    'Sign Up with Google': 'Criar Conta com o Google',\n    'Sign Up': 'Criar Conta',\n    'User already exists': 'Usuário já existe',\n    'User does not exist': 'Usuário não existe',\n    'Username cannot be empty': 'Nome de usuário não pode estar vazio',\n    'Your passwords must match': 'Suas senhas devem ser iguais',\n};\n\nconst zhDict$1 = {\n    'Account recovery requires verified contact information': '账户恢复需要验证过的联系方式',\n    'Authenticator App (TOTP)': 'Authenticator 应用程序（TOTP）',\n    'Back to Sign In': '回到登录',\n    'Change Password': '更改密码',\n    Changing: '正在修改',\n    Code: '确认码',\n    'Confirm Email Code': '确认电子邮件代码',\n    'Confirm Password': '确认密码',\n    'Confirm Sign Up': '确认注册',\n    'Confirm SMS Code': '确认短信验证码',\n    'Confirm TOTP Code': '确认 TOTP 代码',\n    Confirm: '确认',\n    'Confirmation Code': '确认码',\n    Confirming: '正在确认',\n    'Create a new account': '创建新账户',\n    'Create Account': '创建账户',\n    'Creating Account': '正在创建账户',\n    'Dismiss alert': '关闭警报',\n    Email: '邮箱',\n    'Email Message': '电子邮件消息',\n    'Enter your code': '输入验证码',\n    'Enter your Email': '输入电子邮件',\n    'Enter your Password': '输入密码',\n    'Enter your phone number': '输入电话号码',\n    'Enter your username': '输入用户名',\n    'Forgot your password?': '忘记密码了？',\n    'Hide password': '隐藏密码',\n    'It may take a minute to arrive': '可能需要一分钟才能到达',\n    Loading: '正在加载',\n    'Multi-Factor Authentication': '多重身份验证',\n    'Multi-Factor Authentication Setup': '多重身份验证设置',\n    'New password': '新密码',\n    or: '或者',\n    Password: '密码',\n    'Phone Number': '电话',\n    'Please confirm your Password': '请再次输入密码',\n    'Resend Code': '重发验证码',\n    'Reset your password': '重置密码',\n    'Reset your Password': '重置密码',\n    'Select MFA Type': '选择 MFA 类型',\n    'Send Code': '发送确认码',\n    'Send code': '发送验证码',\n    Sending: '正在发送',\n    'Setup Email': '设置电子邮件',\n    'Setup TOTP': '设置 TOTP',\n    'Show password': '显示密码',\n    'Sign in to your account': '登录账户',\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': '登录',\n    'Sign In': '登录',\n    'Signing in': '正在登录',\n    Skip: '跳过',\n    Submit: '提交',\n    Submitting: '正在提交',\n    'Text Message (SMS)': '短信（SMS）',\n    Username: '用户名',\n    'Verify Contact': '验证联系方式',\n    Verify: '验证',\n    'We Emailed You': '我们给您发送了电子邮件',\n    'We Sent A Code': '我们发送了代码',\n    'We Texted You': '我们给您发送了短信',\n    'Your code is on the way. To log in, enter the code we emailed to': '您的代码正在发送中。要登录，请输入我们通过电子邮件发送给以下人员的代码：',\n    'Your code is on the way. To log in, enter the code we sent you': '您的代码正在发送中。要登录，请输入我们发送给您的代码',\n    'Your code is on the way. To log in, enter the code we texted to': '您的代码正在发送中。要登录，请输入我们通过短信发送给以下人员的代码：',\n    // Additional translations provided by customers\n    'Confirm a Code': '确认码',\n    'Confirm Sign In': '确认登录',\n    'Forgot Password': '忘记密码',\n    'Incorrect username or password': '用户名或密码错误',\n    'Incorrect username or password.': '用户名或密码错误',\n    'Invalid password format': '密码格式错误',\n    'Invalid phone number format': '电话格式错误，请使用格式 +12345678900',\n    'New Password': '新密码',\n    'Resend a Code': '重发确认码',\n    'Sign Out': '退出',\n    'Sign Up': '注册',\n    'User already exists': '用户已经存在',\n    'User does not exist': '用户不存在',\n};\n\nconst svDict$1 = {\n    'Account recovery requires verified contact information': 'För att återställa kontot behöver du ett verifierat konto',\n    'Authenticator App (TOTP)': 'Autentiseringsapp (TOTP)',\n    'Back to Sign In': 'Tillbaka till inloggningen',\n    'Change Password': 'Byt lösenord',\n    Changing: 'Ändra',\n    Code: 'Kod',\n    'Confirm Email Code': 'Bekräfta e-postkod',\n    'Confirm Password': 'Bekräfta lösenord',\n    'Confirm Sign Up': 'Bekräfta registrering',\n    'Confirm SMS Code': 'Bekräfta SMS-kod',\n    'Confirm TOTP Code': 'Bekräfta TOTP-kod',\n    Confirm: 'Bekräfta',\n    'Confirmation Code': 'Verifikationskod',\n    Confirming: 'Bekräftar',\n    'Create a new account': 'Skapa ett nytt konto',\n    'Create Account': 'Skapa konto',\n    'Creating Account': 'Skapar konto',\n    'Dismiss alert': 'Avvisa varning',\n    Email: 'E-post',\n    'Email Message': 'E-postmeddelande',\n    'Enter your code': 'Skriv din kod',\n    'Enter your Email': 'Ange din e-post',\n    'Enter your phone number': 'Ange ditt telefonnummer',\n    'Enter your username': 'Ange ditt användarnamn',\n    'Forgot your password?': 'Glömt ditt lösenord? ',\n    'Hide password': 'Dölj lösenord',\n    'It may take a minute to arrive': 'Det kan ta en minut att komma fram',\n    Loading: 'Laddar',\n    'Multi-Factor Authentication': 'Multifaktorautentisering',\n    'Multi-Factor Authentication Setup': 'Konfigurering av multifaktorautentisering',\n    'New password': 'Nytt lösenord',\n    or: 'eller',\n    Password: 'Lösenord',\n    'Phone Number': 'Telefonnummer',\n    'Resend Code': 'Skicka koden igen',\n    'Reset your password': 'Återställ ditt lösenord',\n    'Reset your Password': 'Återställ ditt lösenord',\n    'Select MFA Type': 'Välj MFA-typ',\n    'Send code': 'Skicka kod',\n    'Send Code': 'Skicka kod',\n    Sending: 'Skickar',\n    'Setup Email': 'Konfigurera e-post',\n    'Setup TOTP': 'Konfigurera TOTP',\n    'Show password': 'Visa lösenord',\n    'Sign in to your account': 'Logga in till ditt konto',\n    'Sign In with Amazon': 'Logga in med Amazon',\n    'Sign In with Apple': 'Logga in med Apple',\n    'Sign In with Facebook': 'Logga in med Facebook',\n    'Sign In with Google': 'Logga in med Google',\n    'Sign in': 'Logga in',\n    'Sign In': 'Logga in',\n    'Signing in': 'Loggar in',\n    Skip: 'Hoppa över',\n    Submit: 'Skicka',\n    Submitting: 'Skickar in',\n    'Text Message (SMS)': 'Textmeddelande (SMS)',\n    Username: 'Användarnamn',\n    'Verify Contact': 'Verifiera kontakt',\n    Verify: 'Verifiera',\n    'We Sent A Code': 'Vi skickade en kod',\n    'We Texted You': 'Vi sms:ade dig',\n    'Your code is on the way. To log in, enter the code we emailed to': 'Din kod är på väg. För att logga in, ange koden vi mejlade till',\n    'Your code is on the way. To log in, enter the code we sent you': 'Din kod är på väg. För att logga in, ange koden vi skickade till dig',\n    'Your code is on the way. To log in, enter the code we texted to': 'Din kod är på väg. För att logga in, ange koden vi sms:ade till',\n    // Additional translations provided by customers\n    'An account with the given email already exists.': 'Det finns redan ett konto med denna e-postadress',\n    'Confirm a Code': 'Bekräfta koden',\n    'Confirm Sign In': 'Bekräfta inloggning',\n    'Create account': 'Skapa konto',\n    'Enter your Password': 'Ange ditt lösenord',\n    'Forgot Password?': 'Glömt lösenord?',\n    'Have an account? ': 'Redan registrerad? ',\n    'Incorrect username or password': 'Felaktigt användarnamn eller lösenord',\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    'Password attempts exceeded': 'Maximalt antal felaktiga inloggningsförsök har uppnåtts',\n    'Reset Password': 'Återställ lösenord',\n    'Sign Out': 'Logga ut',\n    'Sign Up': 'Registrering',\n    'User already exists': 'Användaren finns redan',\n    'User does not exist': 'Användaren finns inte',\n    'Username cannot be empty': 'Användarnamnet kan inte vara tomt',\n    'We Emailed You': 'Vi har skickat e-post till dig',\n    'Please confirm your Password': 'Bekräfta ditt lösenord',\n};\n\nconst idDict$1 = {\n    'Account recovery requires verified contact information': 'Pemulihan akun memerlukan informasi kontak terverifikasi',\n    'Authenticator App (TOTP)': 'Aplikasi Pengauntentikasi (TOTP)',\n    'Back to Sign In': 'Kembali ke Masuk',\n    'Change Password': 'Ubah kata sandi',\n    Changing: 'Mengubah',\n    Code: 'Kode',\n    'Confirm Email Code': 'Konfirmasi Kode Email',\n    'Confirm Password': 'Konfirmasi kata sandi',\n    'Confirm Sign Up': 'Konfirmasi Pendaftaran',\n    'Confirm SMS Code': 'Konfirmasi Kode SMS',\n    'Confirm TOTP Code': 'Konfirmasi Kode TOTP',\n    Confirm: 'Konfirmasi',\n    'Confirmation Code': 'Kode Konfirmasi',\n    Confirming: 'Mengkonfirmasi',\n    'Create a new account': 'Buat akun baru',\n    'Create Account': 'Buat Akun',\n    'Creating Account': 'Membuat Akun',\n    'Dismiss alert': 'Hentikan pemberitahuan',\n    Email: 'Email',\n    'Email Message': 'Pesan Email',\n    'Enter your code': 'Masukkan kode anda',\n    'Enter your Email': 'Masukkan email anda',\n    'Enter your phone number': 'Masukkan nomor telepon anda',\n    'Enter your username': 'Masukkan nama akun anda',\n    'Forgot your password?': 'Lupa kata sandi? ',\n    'Hide password': 'Sembunyikan kata sandi',\n    'It may take a minute to arrive': 'Mungkin perlu waktu satu menit untuk tiba',\n    Loading: 'Memuat',\n    'Multi-Factor Authentication': 'Autentikasi Multifaktor',\n    'Multi-Factor Authentication Setup': 'Pengaturan Autentikasi Multifaktor',\n    'New password': 'Kata sandi baru',\n    or: 'atau',\n    Password: 'Kata sandi',\n    'Phone Number': 'Nomor telepon',\n    'Resend Code': 'Kirim ulang kodenya',\n    'Reset your Password': 'Reset Kata Sandi',\n    'Reset your password': 'Ubah kata sandi anda',\n    'Select MFA Type': 'Pilih tipe MFA',\n    'Send code': 'Kirim kode',\n    'Send Code': 'Kirim Kode',\n    Sending: 'Mengirim',\n    'Setup Email': 'Atur Email',\n    'Setup TOTP': 'Siapkan TOTP',\n    'Show password': 'Tampilkan kata sandi',\n    'Sign in to your account': 'Masuk akun anda',\n    'Sign In with Amazon': 'Masuk dengan Amazon',\n    'Sign In with Apple': 'Masuk dengan Apple',\n    'Sign In with Facebook': 'Masuk dengan Facebook',\n    'Sign In with Google': 'Masuk dengan Google',\n    'Sign in': 'Masuk',\n    'Sign In': 'Masuk',\n    'Signing in': 'Memasuki',\n    Skip: 'Lewati',\n    Submit: 'Ajukan',\n    Submitting: 'Mengajukan',\n    'Text Message (SMS)': 'Pesan Teks (SMS)',\n    Username: 'Nama akun',\n    'Verify Contact': 'Verifikasi Kontak',\n    Verify: 'Verifikasi',\n    'We Sent A Code': 'Kami Mengirim Kode',\n    'We Texted You': 'Kami mengirim SMS kepada Anda',\n    'Your code is on the way. To log in, enter the code we sent you': 'Kode Anda segera hadir. Untuk masuk, masukkan kode yang kami kirimkan kepada Anda',\n    // Additional translations provided by customers\n    'An account with the given email already exists.': 'Akun dengan email tersebut sudah terdaftar.',\n    'Attempt limit exceeded, please try after some time.': 'Batas percobaan terlampaui, mohon coba lagi setelah beberapa waktu.',\n    'Cannot reset password for the user as there is no registered/verified email or phone_number': 'Tidak dapat mengatur ulang kata sandi karena tidak ada email terdaftar / terverifikasi atau nomor telepon',\n    Change: 'Ubah',\n    'Confirm a Code': 'Konfirmasi kode',\n    'Create account': 'Buat akun',\n    'Enter your password': 'Masukkan kata sandi anda',\n    'Forgot Password': 'Lupa kata sandi',\n    'Have an account? ': 'Sudah punya akun? ',\n    Hello: 'Halo',\n    'Incorrect username or password.': 'Nama akun atau kata sandi salah.',\n    'Invalid phone number format': 'Nomor telepon tidak sesuai dengan format.',\n    'Invalid verification code provided, please try again.': 'Kode verifikasi tidak sesuai, mohon coba lagi.',\n    'It may take a minute to arrive.': 'Mungkin perlu beberapa waktu untuk tiba.',\n    'Lost your code? ': 'Kode anda hilang?',\n    Name: 'Nama',\n    'Network error': 'Galat jaringan',\n    'No account? ': 'Tidak ada akun?',\n    'Password did not conform with policy: Password not long enough': 'Kata sandi tidak sesuai dengan aturan: Kata sandi kurang panjang',\n    'Resend a Code': 'Renvoyer un code',\n    'Reset password': 'Ubah kata sandi anda',\n    Send: 'Kirim',\n    'Sign In with AWS': 'Masuk dengan AWS',\n    'Sign Up with Amazon': 'Daftar dengan Amazon',\n    'Sign Up with AWS': 'Daftar dengan AWS',\n    'Sign Up with Facebook': 'Daftar dengan Facebook',\n    'Sign Up with Google': 'Daftar dengan Google',\n    SMS: 'SMS',\n    'User already exists': 'Akun sudah terdaftar',\n    'User does not exist.': 'Akun tidak terdaftar.',\n    'User is disabled.': 'Akun dinonaktifkan.',\n    'Username cannot be empty': 'Nama akun tidak boleh kosong',\n    'Username/client id combination not found.': 'Nama akun atau id tidak ditemukan.',\n    'We Emailed You': 'Kami mengirimkanmu email',\n    'Your code is on the way. To log in, enter the code we emailed to': 'Kode anda dalam pengiriman. Untuk masuk, masukkan kode yang kami emailkan ke',\n    'Your code is on the way. To log in, enter the code we texted to': 'Kode anda dalam pengiriman. Untuk masuk, masukkan kode yang kami tuliskan ke',\n    'Your passwords must match': 'Kata sandi harus sama',\n};\n\nconst trDict$1 = {\n    'Account recovery requires verified contact information': 'Hesap kurtarma, doğrulanmış iletişim bilgilerini gerektirir',\n    'Authenticator App (TOTP)': 'Kimlik Doğrulayıcı Uygulaması (TOTP)',\n    'Add your Profile': 'Profilinizi ekleyin',\n    'Add your Website': 'Web sitenizi ekleyin',\n    'Back to Sign In': 'Oturum Açmaya Geri Dön',\n    'Change Password': 'Şifreyi Değiştir',\n    Changing: 'Değiştiriliyor',\n    Code: 'Kod',\n    'Confirm Email Code': 'E-posta Kodunu Onayla',\n    'Confirm Password': 'Şifreyi Doğrula',\n    'Confirm Sign Up': 'Kayıt İşlemini Doğrula',\n    'Confirm SMS Code': 'SMS Kodunu Doğrula',\n    'Confirm MFA Code': 'Çoklu Faktörlü Doğrulama Kodunu Doğrula',\n    'Confirm TOTP Code': 'Tek Kullanımlık Şifreyi Doğrula',\n    Confirm: 'Doğrula',\n    'Confirmation Code': 'Doğrulama Kodu',\n    Confirming: 'Doğrulanıyor',\n    'Create a new account': 'Yeni bir hesap oluştur',\n    'Create Account': 'Hesap Oluştur',\n    'Creating Account': 'Hesap Oluşturuluyor',\n    'Dismiss alert': 'Uyarıyı reddet',\n    Email: 'E-posta',\n    'Email Message': 'E-posta Mesajı',\n    'Enter your Birthdate': 'Doğum gününüzü girin',\n    'Enter your code': 'Kodu girin',\n    'Enter your Confirmation Code': 'Doğrulama Kodunuzu Girin',\n    'Enter your Email': 'E-posta adresinizi girin',\n    'Enter your email': 'E-posta adresinizi girin',\n    'Enter your Family Name': 'Ad Soyadınızı girin',\n    'Enter your Given Name': 'Adınızı girin',\n    'Enter your Middle Name': 'Soyadınızı girin',\n    'Enter your Name': 'Adınızı girin',\n    'Enter your Nickname': 'Takma adınızı girin',\n    'Enter your Password': 'Şifrenizi girin',\n    'Enter your phone number': 'Telefon numaranızı girin',\n    'Enter your Preferred Username': 'Tercih ettiğiniz kullanıcı adınızı girin',\n    'Enter your username': 'Kullanıcı adınızı girin',\n    'Forgot Password?': 'Şifrenizi Mi Unuttunuz?',\n    'Forgot password?': 'Şifrenizi mi unuttunuz?',\n    'Forgot your password?': 'Şifrenizi mi unuttunuz?',\n    'Hide password': 'Şifreyi gizle',\n    'It may take a minute to arrive': 'Kodun gelmesi bir dakika sürebilir',\n    Loading: 'Yükleniyor',\n    'Multi-Factor Authentication': 'Çok Faktörlü Kimlik Doğrulama',\n    'Multi-Factor Authentication Setup': 'Çok Faktörlü Kimlik Doğrulama Kurulumu',\n    'New password': 'Yeni şifre',\n    or: 'veya',\n    Password: 'Şifre',\n    'Phone Number': 'Telefon Numarası',\n    'Please confirm your Password': 'Lütfen şifrenizi doğrulayın',\n    'Resend Code': 'Kodu Yeniden Gönder',\n    'Reset your password': 'Şifrenizi sıfırlayın',\n    'Reset your Password': 'Şifrenizi Sıfırlayın',\n    'Reset Password': 'Şifreyi Sıfırla',\n    'Select MFA Type': 'MFA türünü seçin',\n    'Send code': 'Kod gönder',\n    'Send Code': 'Kod Gönder',\n    Sending: 'Gönderiliyor',\n    'Setup Email': 'E-postayı ayarla',\n    'Setup TOTP': 'Tek kullanımlık şifre kurulumu yap',\n    'Show password': 'Şifreyi göster',\n    'Sign in to your account': 'Hesabınızda oturum açın',\n    'Sign In with Amazon': 'Amazon ile Oturum Aç',\n    'Sign In with Apple': 'Apple ile Oturum Aç',\n    'Sign In with Facebook': 'Facebook ile Oturum Aç',\n    'Sign In with Google': 'Google ile Oturum Aç',\n    'Sign in': 'Oturum aç',\n    'Sign In': 'Oturum Aç',\n    'Sign Up with Facebook': 'Facebook ile Kayıt Ol',\n    'Sign Up with Google': 'Google ile Kayıt Ol',\n    'Signing in': 'Oturum açılıyor',\n    Skip: 'Atla',\n    Submit: 'Gönder',\n    Submitting: 'Gönderiliyor',\n    'Text Message (SMS)': 'Kısa Mesaj (SMS)',\n    Username: 'Kullanıcı adı',\n    'Verify Contact': 'Kişiyi Doğrula',\n    Verify: 'Doğrula',\n    'We Emailed You': 'Size E-posta Gönderdik',\n    'We Sent A Code': 'Bir Kod Gönderdik',\n    'We Texted You': 'Size Mesaj Gönderdik',\n    'Your code is on the way. To log in, enter the code we emailed to': 'Kodunuz yolda. Oturum açmak için, gönderdiğimiz e-postadaki kodu girin',\n    'Your code is on the way. To log in, enter the code we sent you': 'Kodunuz yolda. Oturum açmak için, size gönderdiğimiz kodu girin',\n    'Your code is on the way. To log in, enter the code we texted to': 'Kodunuz yolda. Oturum açmak için, gönderdiğimiz mesajdaki kodu girin',\n    // Additional translations provided by customers\n    'An account with the given email already exists.': 'Bu e-postaya ait zaten bir hesap var.',\n    'Confirm Sign In': 'Oturum Açmayı Doğrula',\n    'Have an account? ': 'Hesabınız var mı? ',\n    'Incorrect username or password': 'Yanlış kullanıcı adı ya da şifre',\n    'Incorrect username or password.': 'Yanlış kullanıcı adı ya da şifre',\n    'Invalid password format': 'Geçersiz parola formatı',\n    'Invalid phone number format': 'Geçersiz telefon numarası formatı',\n    'Lost your code? ': 'Kodu mu kaybettiniz? ',\n    'No account? ': 'Hesabınız yok mu? ',\n    'Password attempts exceeded': 'Maksimum oturum açma girişimi aşıldı',\n    'Sign Out': 'Çıkış yap',\n    'Sign Up': 'Kayıt Ol',\n    'User already exists': 'Bu kullanıcı zaten var',\n    'User does not exist': 'Böyle bir kullanıcı mevcut değil',\n    'Username cannot be empty': 'Kullanıcı adı boş olamaz',\n};\n\nconst ruDict$1 = {\n    'Account recovery requires verified contact information': 'Восстановление учетной записи требует проверки контактной информации',\n    'Authenticator App (TOTP)': 'Приложение для аутентификации (TOTP)',\n    'Back to Sign In': 'Назад, чтобы войти',\n    'Change Password': 'изменять пароль',\n    Changing: 'Изменение',\n    Code: 'Код',\n    'Confirm Email Code': 'Подтвердите код электронной почты',\n    'Confirm Password': 'Подтверждение пароля',\n    'Confirm Sign Up': 'Подтверждение зарегистрироваться',\n    'Confirm SMS Code': 'Подтверждение CMC-Код',\n    'Confirm TOTP Code': 'Подтверждение TOTP-Код',\n    Confirm: 'Подтверждать',\n    'Confirmation Code': 'код подтверждения',\n    Confirming: 'подтверждение',\n    'Create a new account': 'Создавать новую учетную запись',\n    'Create Account': 'Создать учетную запись',\n    'Creating Account': 'создание учетная запись',\n    'Dismiss alert': 'Закрыть оповещение',\n    Email: 'электронная почта',\n    'Email Message': 'Сообщение по электронной почте',\n    'Enter your code': 'ввести ваш Код',\n    'Enter your Email': 'ввести ваш электронная почта',\n    'Enter your phone number': 'ввести ваш номер телефона',\n    'Enter your username': 'ввести ваш имя пользователя',\n    'Forgot your password?': 'Забыли ваш пароль?',\n    'Hide password': 'Скрывать пароль',\n    'It may take a minute to arrive': 'Доставка может занять некоторое время',\n    Loading: 'Загрузка',\n    'Multi-Factor Authentication': 'Многофакторная аутентификация',\n    'Multi-Factor Authentication Setup': 'Настройка многофакторной аутентификации',\n    'New password': 'Новый пароль',\n    or: 'или',\n    Password: 'Пароль',\n    'Phone Number': 'Номер телефона',\n    'Resend Code': 'Отправь еще раз Код',\n    'Reset your password': 'сброс ваш пароль',\n    'Reset your Password': 'сброс ваш Пароль',\n    'Select MFA Type': 'Выберите тип МФА',\n    'Send code': 'Отправлять Код',\n    'Send Code': 'Отправлять Код',\n    Sending: 'отправка',\n    'Setup Email': 'Настроить электронную почту',\n    'Setup TOTP': 'Настраивать TOTP',\n    'Show password': 'Показывать пароль',\n    'Sign in to your account': 'знак в свой аккаунт',\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': 'знак в',\n    'Sign In': 'знак в',\n    'Signing in': 'подписание в',\n    Skip: 'Пропускать',\n    Submit: 'Представлять на рассмотрение',\n    Submitting: 'Представив',\n    'Text Message (SMS)': 'Текстовое сообщение (SMS)',\n    Username: 'Имя пользователя',\n    'Verify Contact': 'Проверить контакт',\n    Verify: 'Проверить',\n    'We Emailed You': 'Мы отправили вам электронное письмо',\n    'We Sent A Code': 'Мы отправили код',\n    'We Texted You': 'Мы отправили вам текстовое сообщение',\n    'Your code is on the way. To log in, enter the code we emailed to': 'Ваш код отправлен. Чтобы войти в систему, введите код, который мы отправили по электронной почте',\n    'Your code is on the way. To log in, enter the code we sent you': 'Ваш код отправлен. Чтобы войти в систему, введите код, который мы послали вам',\n    'Your code is on the way. To log in, enter the code we texted to': 'Ваш код отправлен. Чтобы войти в систему, введите код, который мы отправили текстовым сообщением',\n};\n\nconst heDict$1 = {\n    'Account recovery requires verified contact information': 'שחזור לקוח דורש עוד מידע',\n    'Authenticator App (TOTP)': 'אפליקציית אימות (TOTP)',\n    'Back to Sign In': 'חזור להרשמה',\n    'Change Password': 'עדכון סיסמא',\n    Changing: 'מעדכן',\n    Code: 'קוד',\n    'Confirm Email Code': 'אמת קוד אימייל',\n    'Confirm Password': 'אשר סיסמא',\n    'Confirm Sign Up': 'אשר הרשמה',\n    'Confirm SMS Code': 'אשר sms קוד',\n    'Confirm TOTP Code': 'אשר totp קוד',\n    Confirm: 'אישור',\n    'Confirmation Code': 'אישור קוד',\n    Confirming: 'מאשר',\n    'Create a new account': 'צור משתמש חדש',\n    'Create Account': 'צור משתמש',\n    'Creating Account': 'יצירת משתמש',\n    'Dismiss alert': 'הסר התראה',\n    Email: 'אימייל',\n    'Email Message': 'הודעת אימייל',\n    'Enter your code': 'הכנס את הקוד',\n    'Enter your Email': 'הכנס את המייל שלך',\n    'Enter your phone number': 'הכנס את מספר הטלפון שלך',\n    'Enter your username': 'הכנס את שם המתמש שלך',\n    'Forgot your password?': 'שכחת סיסמא ?',\n    'Hide password': 'הסתר סיסמא',\n    Loading: 'טוען',\n    'Multi-Factor Authentication': 'אימות רב-גורמי',\n    'Multi-Factor Authentication Setup': 'הגדרת אימות רב-גורמי',\n    'New password': 'סיסמא חדשה',\n    or: 'אוֹ',\n    Password: 'סיסמא',\n    'Phone Number': 'מספר טלפון',\n    'Resend Code': 'שלח קוד שוב',\n    'Reset your password': 'אפס סיסמא',\n    'Reset your Password': 'אפס סיסמא',\n    'Select MFA Type': 'בחר סוג אימות רב-גורמי',\n    'Send code': 'שלח קוד',\n    'Send Code': 'שלח קוד',\n    Sending: 'שולח',\n    'Setup Email': 'הגדר אימייל',\n    'Setup TOTP': 'Setup TOTP',\n    'Show password': 'הצג סיסמא',\n    'Sign in to your account': 'התחבר לחשבון שלך',\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': 'התחבר',\n    'Sign In': 'התחבר',\n    'Signing in': 'מתחבר',\n    Skip: 'דלג',\n    Submit: 'שלח',\n    Submitting: 'שולח',\n    'Text Message (SMS)': 'הודעת טקסט (SMS)',\n    Username: 'שם משתמש',\n    'Verify Contact': 'אמת איש קשר',\n    Verify: 'אמת',\n};\n\nconst uaDict$1 = {\n    'Account recovery requires verified contact information': 'Відновлення облікового запису потребує контактної інформації',\n    'Authenticator App (TOTP)': 'Додаток автентифікації (TOTP)',\n    'Back to Sign In': 'Назад на сторінку входу',\n    'Change Password': 'Змінити пароль',\n    Changing: 'Змінюємо',\n    Code: 'Код',\n    'Confirm Email Code': 'Підтвердити код електронної пошти',\n    'Confirm Password': 'Підтвердіть пароль',\n    'Confirm Sign Up': 'Підтвердіть реєстрацію',\n    'Confirm SMS Code': 'Підтвердіть SMS код',\n    'Confirm TOTP Code': 'Підтвердіть TOTP код',\n    Confirm: 'Підтвердити',\n    'Confirmation Code': 'Код підтвердження',\n    Confirming: 'Підтверджуємо',\n    'Create a new account': 'Зареєструватися',\n    'Create Account': 'Зареєструватися',\n    'Creating Account': 'Реєструємо',\n    'Dismiss alert': 'Відхилити сповіщення',\n    Email: 'Email',\n    'Email Message': 'Повідомлення електронної пошти',\n    'Enter your code': 'Введіть код',\n    'Enter your Email': 'Введіть ваш email',\n    'Enter your phone number': 'Введіть ваш номер телефону',\n    'Enter your username': 'Введіть ваше імʼя користувача',\n    'Forgot password?': 'Забули пароль?',\n    'Forgot your password?': 'Забули ваш пароль?',\n    'Hide password': 'Сховати пароль',\n    'It may take a minute to arrive': 'Доставка може тривати хвилину',\n    Loading: 'Загружаємо',\n    'Multi-Factor Authentication': 'Багатофакторна автентифікація',\n    'Multi-Factor Authentication Setup': 'Налаштування багатофакторної автентифікації',\n    'New password': 'Новий пароль',\n    or: 'або',\n    Password: 'Пароль',\n    'Phone Number': 'Номер Телефону',\n    'Resend Code': 'Відправити код повторно',\n    'Reset your password': 'Скинути пароль',\n    'Reset your Password': 'Скинути пароль',\n    'Select MFA Type': 'Виберіть тип MFA',\n    'Send code': 'Відправити код',\n    'Send Code': 'Відправити код',\n    Sending: 'Відправляємо',\n    'Setup Email': 'Налаштувати електронну пошту',\n    'Setup TOTP': 'Налаштувати TOTP',\n    'Show password': 'Показати пароль',\n    'Sign in to your account': 'Увійти у ваш обліковий запис',\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': 'Увійти',\n    'Sign In': 'Увійти',\n    'Signing in': 'Входимо',\n    Skip: 'Пропустити',\n    Submit: 'Відправити',\n    Submitting: 'Відправляємо',\n    'Text Message (SMS)': 'Текстове повідомлення (SMS)',\n    Username: 'Імʼя користувача',\n    'Verify Contact': 'Підтвердити Контакт',\n    Verify: 'Підтвердити',\n    'We Emailed You': 'Ми відправили вам Email',\n    'We Sent A Code': 'Ми відправили код',\n    'We Texted You': 'Ми відправили вам текстове повідомлення',\n    'Your code is on the way. To log in, enter the code we emailed to': 'Ваш код вже в дорозі. Щоб увійти, введіть код, що ми відправили вам на Email',\n    'Your code is on the way. To log in, enter the code we sent you': 'Ваш код вже в дорозі. Щоб увійти, введіть код, що ми вам відправили',\n    'Your code is on the way. To log in, enter the code we texted to': 'Ваш код вже в дорозі. Щоб увійти, введіть код, що ми відправили вам текстовим повідомленням',\n    // Additional translations\n    'An account with the given email already exists.': 'Обліковий запис з цим Email вже існує.',\n    'Confirm a Code': 'Підтвердіть код',\n    'Confirm Sign In': 'Підтвердіть вхід',\n    'Forgot Password': 'Забули пароль',\n    'Incorrect username or password.': 'Невірне імʼя користувача або пароль',\n    'Invalid password format': 'Невірний формат паролю',\n    'Invalid phone number format': 'Невірний формат номеру телефону',\n    'Loading...': 'Загружаємо...',\n    'New Password': 'Новий пароль',\n    'Resend a Code': 'Відправити код повторно',\n    'Reset Password': 'Скинути пароль',\n    'Sign Out': 'Вийти',\n    'Sign Up with Amazon': 'Зареєструватися з Amazon',\n    'Sign Up with Apple': 'Зареєструватися з Apple',\n    'Sign Up with Facebook': 'Зареєструватися з Facebook',\n    'Sign Up with Google': 'Зареєструватися з Google',\n    'Sign Up': 'Зареєструватися',\n    'User already exists': 'Користувач вже існує',\n    'User does not exist': 'Такий користувач не існує',\n    'Username cannot be empty': 'Імʼя користувача не може бути пустим',\n    'Your passwords must match': 'Паролі мають збігатися',\n};\n\nconst thDict$1 = {\n    'Account recovery requires verified contact information': 'การกู้คืนบัญชีต้องมีข้อมูลติดต่อที่ได้รับการยืนยันแล้ว',\n    'Add your Profile': 'เพิ่มโปรไฟล์ของคุณ',\n    'Add your Website': 'เพิ่มเว็บไซต์ของคุณ',\n    'Authenticator App (TOTP)': 'แอปพลิเคชันยืนยันตัวตน (TOTP)',\n    'Back to Sign In': 'กลับไปที่การเข้าสู่ระบบ',\n    'Change Password': 'เปลี่ยนรหัสผ่าน',\n    Changing: 'กำลังเปลี่ยน',\n    Code: 'รหัส',\n    'Confirm Email Code': 'ยืนยันรหัสอีเมล',\n    'Confirm Password': 'ยืนยันรหัสผ่าน',\n    'Please confirm your Password': 'กรุณายืนยันรหัสผ่านของคุณ',\n    'Confirm Sign Up': 'ยืนยันการลงทะเบียน',\n    'Confirm SMS Code': 'ยืนยันรหัส SMS',\n    'Confirm MFA Code': 'ยืนยันรหัส MFA',\n    'Confirm TOTP Code': 'ยืนยันรหัส TOTP',\n    Confirm: 'ยืนยัน',\n    'Confirmation Code': 'รหัสยืนยัน',\n    Confirming: 'กำลังยืนยัน',\n    'Create a new account': 'สร้างบัญชีใหม่',\n    'Create Account': 'สร้างบัญชี',\n    'Creating Account': 'กำลังสร้างบัญชี',\n    'Dismiss alert': 'ปิดการแจ้งเตือน',\n    Email: 'อีเมล',\n    'Email Message': 'ข้อความอีเมล',\n    'Enter your Birthdate': 'กรอกวันเกิดของคุณ',\n    'Enter your code': 'กรอกรหัสของคุณ',\n    'Enter your Confirmation Code': 'กรอกรหัสยืนยันของคุณ',\n    'Enter your Email': 'กรอกอีเมลของคุณ',\n    'Enter your Family Name': 'กรอกนามสกุลของคุณ',\n    'Enter your Given Name': 'กรอกชื่อของคุณ',\n    'Enter your Middle Name': 'กรอกชื่อกลางของคุณ',\n    'Enter your Name': 'กรอกชื่อของคุณ',\n    'Enter your Nickname': 'กรอกชื่อเล่นของคุณ',\n    'Enter your Password': 'กรอกรหัสผ่านของคุณ',\n    'Enter your email': 'กรอกอีเมลของคุณ',\n    'Enter your phone number': 'กรอกหมายเลขโทรศัพท์ของคุณ',\n    'Enter your Preferred Username': 'กรอกชื่อผู้ใช้ที่ต้องการ',\n    'Enter your username': 'กรอกชื่อผู้ใช้ของคุณ',\n    'Forgot password?': 'ลืมรหัสผ่าน?',\n    'Forgot your password?': 'ลืมรหัสผ่านใช่หรือไม่?',\n    'Hide password': 'ซ่อนรหัสผ่าน',\n    'It may take a minute to arrive': 'อาจใช้เวลาสักครู่',\n    Loading: 'กำลังโหลด',\n    'Multi-Factor Authentication': 'การยืนยันตัวตนหลายขั้นตอน',\n    'Multi-Factor Authentication Setup': 'ตั้งค่าการยืนยันตัวตนแบบหลายขั้นตอน',\n    'New password': 'รหัสผ่านใหม่',\n    or: 'หรือ',\n    Password: 'รหัสผ่าน',\n    'Phone Number': 'หมายเลขโทรศัพท์',\n    'Resend Code': 'ส่งรหัสอีกครั้ง',\n    'Reset your Password': 'รีเซ็ตรหัสผ่านของคุณ',\n    'Reset your password': 'รีเซ็ตรหัสผ่านของคุณ',\n    'Select MFA Type': 'เลือกประเภท MFA',\n    'Send code': 'ส่งรหัส',\n    'Send Code': 'ส่งรหัส',\n    Sending: 'กำลังส่ง',\n    'Setup Email': 'ตั้งค่าอีเมล',\n    'Setup TOTP': 'ตั้งค่า TOTP',\n    'Show password': 'แสดงรหัสผ่าน',\n    'Sign in to your account': 'เข้าสู่ระบบบัญชีของคุณ',\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': 'เข้าสู่ระบบ',\n    'Sign In': 'เข้าสู่ระบบ',\n    'Signing in': 'กำลังเข้าสู่ระบบ',\n    Skip: 'ข้าม',\n    Submit: 'ส่ง',\n    Submitting: 'กำลังส่ง',\n    'Text Message (SMS)': 'ข้อความตัวอักษร (SMS)',\n    Username: 'ชื่อผู้ใช้',\n    'Verify Contact': 'ยืนยันการติดต่อ',\n    Verify: 'ยืนยัน',\n    'We Emailed You': 'เราได้ส่งอีเมลถึงคุณแล้ว',\n    'We Sent A Code': 'เราได้ส่งรหัสแล้ว',\n    'We Texted You': 'เราได้ส่ง SMS ถึงคุณแล้ว',\n    'Your code is on the way. To log in, enter the code we emailed to': 'รหัสของคุณกำลังมา เพื่อเข้าสู่ระบบ กรุณากรอกรหัสที่เราส่งไปยังอีเมล',\n    'Your code is on the way. To log in, enter the code we sent you': 'รหัสของคุณกำลังมา เพื่อเข้าสู่ระบบ กรุณากรอกรหัสที่เราส่งให้คุณ',\n    'Your code is on the way. To log in, enter the code we texted to': 'รหัสของคุณกำลังมา เพื่อเข้าสู่ระบบ กรุณากรอกรหัสที่เราส่งไปยัง SMS',\n    // Additional translations\n    'An account with the given email already exists.': 'บัญชีที่ใช้อีเมลนี้มีอยู่แล้ว',\n    'Confirm a Code': 'ยืนยันรหัส',\n    'Confirm Sign In': 'ยืนยันการเข้าสู่ระบบ',\n    'Create account': 'สร้างบัญชี',\n    'Sign Up with Facebook': 'ลงทะเบียนด้วย Facebook',\n    'Sign Up with Google': 'ลงทะเบียนด้วย Google',\n    'Sign Up with Apple': 'ลงทะเบียนด้วย Apple',\n    'Sign Up with Line': 'ลงทะเบียนด้วย Line',\n    'Forgot Password': 'ลืมรหัสผ่าน',\n    'Have an account? ': 'มีบัญชีอยู่แล้ว? ',\n    'Incorrect username or password': 'ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง',\n    'Incorrect username or password.': 'ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง',\n    'Invalid password format': 'รูปแบบรหัสผ่านไม่ถูกต้อง',\n    'It may take a minute to arrive.': 'อาจใช้เวลาสักครู่ในการมาถึง',\n    'Lost your code? ': 'หารหัสไม่เจอ? ',\n    'New Password': 'รหัสผ่านใหม่',\n    'No account? ': 'ไม่มีบัญชี? ',\n    'Password attempts exceeded': 'เกินจำนวนครั้งที่อนุญาตให้ใส่รหัสผ่าน',\n    'Reset password': 'รีเซ็ตรหัสผ่าน',\n    'Reset Password': 'รีเซ็ตรหัสผ่าน',\n    'Sign Out': 'ออกจากระบบ',\n    'Sign Up': 'ลงทะเบียน',\n    'User already exists': 'ผู้ใช้นี้มีอยู่แล้ว',\n    'User does not exist': 'ไม่มีผู้ใช้นี้',\n    'Username cannot be empty': 'ต้องใส่ชื่อผู้ใช้งาน',\n};\n\nconst defaultTexts$1 = {\n    ADD_PROFILE: 'Add your Profile',\n    ADD_WEBSITE: 'Add your Website',\n    BACK_SIGN_IN: 'Back to Sign In',\n    BIRTHDATE: 'Birthdate',\n    CHANGE_PASSWORD: 'Change Password',\n    CHANGING_PASSWORD: 'Changing',\n    CODE: 'Code',\n    CODE_ARRIVAL: 'It may take a minute to arrive',\n    CODE_EMAILED: 'Your code is on the way. To log in, enter the code we emailed to',\n    CODE_SENT: 'Your code is on the way. To log in, enter the code we sent you',\n    CODE_TEXTED: 'Your code is on the way. To log in, enter the code we texted to',\n    CONFIRM_PASSWORD: 'Confirm Password',\n    CONFIRM_PASSWORD_PLACEHOLDER: 'Please confirm your Password',\n    CONFIRM_RESET_PASSWORD_HEADING: 'Reset your Password',\n    CONFIRM_SIGNUP_HEADING: 'Confirm Sign Up',\n    CONFIRM_SMS: 'Confirm SMS Code',\n    CONFIRM_EMAIL: 'Confirm Email Code',\n    // If challenge name is not returned\n    CONFIRM_MFA_DEFAULT: 'Confirm MFA Code',\n    CONFIRM_TOTP: 'Confirm TOTP Code',\n    CONFIRM: 'Confirm',\n    CONFIRMATION_CODE: 'Confirmation Code',\n    CONFIRMING: 'Confirming',\n    CONTINUE: 'Continue',\n    CONTINUE_WITHOUT_PASSKEY: 'Continue without a Passkey',\n    CREATE_ACCOUNT: 'Create Account',\n    CREATE_ACCOUNT_WITH_EMAIL_OTP: 'Create account with Email OTP',\n    CREATE_ACCOUNT_WITH_PASSWORD: 'Create account with Password',\n    CREATE_ACCOUNT_WITH_SMS_OTP: 'Create account with SMS OTP',\n    CREATE_PASSKEY: 'Create a Passkey',\n    CREATING_ACCOUNT: 'Creating Account',\n    EMAIL_ADDRESS: 'Email',\n    EMAIL_OTP: 'Email Message',\n    ENTER_BIRTHDATE: 'Enter your Birthdate',\n    ENTER_CODE: 'Enter your code',\n    ENTER_CONFIRMATION_CODE: 'Enter your Confirmation Code',\n    ENTER_EMAIL: 'Enter your Email',\n    ENTER_FAMILY_NAME: 'Enter your Family Name',\n    ENTER_GIVEN_NAME: 'Enter your Given Name',\n    ENTER_MIDDLE_NAME: 'Enter your Middle Name',\n    ENTER_NAME: 'Enter your Name',\n    ENTER_NICK_NAME: 'Enter your Nickname',\n    ENTER_PASSWORD: 'Enter your Password',\n    ENTER_PHONE_NUMBER: 'Enter your Phone Number',\n    ENTER_PREFERRED_USERNAME: 'Enter your Preferred Username',\n    ENTER_USERNAME: 'Enter your username',\n    ENTER_USERNAME_FIRST: 'Please enter your username first',\n    EXISTING_PASSKEYS: 'Existing Passkeys',\n    FAMILY_NAME: 'Family Name',\n    GIVEN_NAME: 'Given Name',\n    FORGOT_PASSWORD: 'Forgot Password?',\n    FORGOT_YOUR_PASSWORD: 'Forgot your password?',\n    HIDE_PASSWORD: 'Hide password',\n    LOADING: 'Loading',\n    LOGIN_NAME: 'Username',\n    MIDDLE_NAME: 'Middle Name',\n    MFA_SETUP_SELECTION: 'Multi-Factor Authentication Setup',\n    MFA_SELECTION: 'Multi-Factor Authentication',\n    NAME: 'Name',\n    NICKNAME: 'Nickname',\n    NEW_PASSWORD: 'New password',\n    OR: 'or',\n    OTHER_SIGN_IN_OPTIONS: 'Other sign-in options',\n    PASSKEY_AUTHENTICATION_CANCELED: 'Passkey authentication was canceled. Please try again or use a different sign-in method.',\n    PASSKEY_CREATED_SUCCESS: 'Passkey created successfully!',\n    PASSKEY_LABEL: 'Passkey',\n    PASSKEY_PROMPT_DESCRIPTION: 'Passkeys are WebAuthn credentials that validate your identity using biometric data like touch or facial recognition or device authentication like passwords or PINs, serving as a secure password replacement.',\n    PASSKEY_PROMPT_HEADING: 'Sign in faster with Passkey',\n    PASSKEY_REGISTERED: 'Your passkey has been successfully registered.',\n    PASSKEY_REGISTRATION_FAILED: 'Failed to create passkey. Please try again.',\n    PASSWORD: 'Password',\n    PASSWORDLESS_NOT_ENABLED: 'Passwordless authentication is not enabled for this account. Please contact your administrator or use password sign-in.',\n    PHONE_NUMBER: 'Phone Number',\n    PREFERRED_USERNAME: 'Preferred Username',\n    PROFILE: 'Profile',\n    REGISTERING: 'Registering',\n    RESEND_CODE: 'Resend Code',\n    RESET_PASSWORD_HEADING: 'Reset your password',\n    RESET_PASSWORD: 'Reset Password',\n    SEND_CODE: 'Send code',\n    CODE_DELIVERY_FAILED: 'Unable to send verification code. Please try again.',\n    VERIFICATION_CODE_EXPIRED: 'Your verification code has expired. Please request a new code.',\n    VERIFICATION_CODE_INVALID: 'The verification code you entered is incorrect. Please try again.',\n    SENDING: 'Sending',\n    SELECT_MFA_TYPE: 'Select MFA Type',\n    SETUP_ANOTHER_PASSKEY: 'Setup another Passkey',\n    SETUP_EMAIL: 'Setup Email',\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_EMAIL: 'Sign In with Email',\n    SIGN_IN_WITH_FACEBOOK: 'Sign In with Facebook',\n    SIGN_IN_WITH_GOOGLE: 'Sign In with Google',\n    SIGN_IN_WITH_PASSKEY: 'Sign In with Passkey',\n    SIGN_IN_WITH_PASSWORD: 'Sign In with Password',\n    SIGN_IN_WITH_SMS: 'Sign In with SMS',\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    SMS_MFA: 'Text Message (SMS)',\n    SUBMIT: 'Submit',\n    SUBMITTING: 'Submitting',\n    SOFTWARE_TOKEN_MFA: 'Authenticator App (TOTP)',\n    UPPERCASE_COPY: 'COPY',\n    USERNAME: 'Username',\n    VERIFY_CONTACT: 'Verify Contact',\n    VERIFY_HEADING: 'Account recovery requires verified contact information',\n    VERIFY: 'Verify',\n    WE_EMAILED: 'We Emailed You',\n    WE_SENT_CODE: 'We Sent A Code',\n    WE_TEXTED: 'We Texted You',\n    WEBSITE: 'Website',\n};\n\n//merge all the new module translations in respective locale constants\nconst deDict = { ...deDict$1 };\nconst enDict = {\n    ...enDict$1,\n};\nconst esDict = { ...esDict$1 };\nconst frDict = { ...frDict$1 };\nconst huDict = { ...huDict$1 };\nconst itDict = { ...itDict$1 };\nconst jaDict = { ...jaDict$1 };\nconst krDict = { ...krDict$1 };\nconst nbDict = { ...nbDict$1 };\nconst nlDict = { ...nlDict$1 };\nconst plDict = { ...plDict$1 };\nconst ptDict = { ...ptDict$1 };\nconst zhDict = { ...zhDict$1 };\nconst svDict = { ...svDict$1 };\nconst idDict = { ...idDict$1 };\nconst trDict = { ...trDict$1 };\nconst ruDict = { ...ruDict$1 };\nconst heDict = { ...heDict$1 };\nconst uaDict = { ...uaDict$1 };\nconst thDict = { ...thDict$1 };\nconst defaultTexts = {\n    ...defaultTexts$1,\n    // new module related default texts goes here\n};\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 */\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 */\nconst DefaultTexts = { ...defaultTexts };\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 */\nfunction translate(phrase) {\n    return utils$1.I18n.get(phrase);\n}\n/**\n * Whether I18n has a translation entry for given phrase\n */\nfunction hasTranslation(phrase) {\n    return utils$1.I18n.get(phrase) !== phrase;\n}\nconst translations = {\n    de: deDict,\n    en: enDict,\n    es: esDict,\n    fr: frDict,\n    hu: huDict,\n    id: idDict,\n    it: itDict,\n    ja: jaDict,\n    // TODO: remove kr in next major release\n    kr: krDict,\n    ko: krDict,\n    nb: nbDict,\n    nl: nlDict,\n    pl: plDict,\n    pt: ptDict,\n    zh: zhDict,\n    sv: svDict,\n    tr: trDict,\n    ru: ruDict,\n    he: heDict,\n    ua: uaDict,\n    th: thDict,\n};\n\n/**\n * This file contains helpers related to forms and input attributes.\n */\nconst defaultFormFieldOptions = {\n    birthdate: {\n        label: 'Birthdate',\n        placeholder: 'Enter your Birthdate',\n        type: 'date',\n        autocomplete: 'bday',\n        isRequired: true,\n    },\n    confirmation_code: {\n        label: 'Confirmation Code',\n        placeholder: 'Enter your Confirmation Code',\n        type: 'text',\n        autocomplete: 'one-time-code',\n        isRequired: true,\n    },\n    confirm_password: {\n        label: 'Confirm Password',\n        placeholder: 'Please confirm your Password',\n        type: 'password',\n        autocomplete: 'new-password',\n        isRequired: true,\n    },\n    email: {\n        label: 'Email',\n        placeholder: 'Enter your Email',\n        type: 'email',\n        autocomplete: 'username',\n        isRequired: true,\n    },\n    family_name: {\n        label: 'Family Name',\n        placeholder: 'Enter your Family Name',\n        type: 'text',\n        autocomplete: 'family-name',\n        isRequired: true,\n    },\n    given_name: {\n        label: 'Given Name',\n        placeholder: 'Enter your Given Name',\n        type: 'text',\n        autocomplete: 'given-name',\n        isRequired: true,\n    },\n    middle_name: {\n        label: 'Middle Name',\n        placeholder: 'Enter your Middle Name',\n        type: 'text',\n        autocomplete: 'additional-name',\n        isRequired: true,\n    },\n    name: {\n        label: 'Name',\n        placeholder: 'Enter your Name',\n        type: 'text',\n        autocomplete: 'name',\n        isRequired: true,\n    },\n    nickname: {\n        label: 'Nickname',\n        placeholder: 'Enter your Nickname',\n        type: 'text',\n        autocomplete: 'tel',\n        isRequired: true,\n    },\n    password: {\n        label: 'Password',\n        placeholder: 'Enter your Password',\n        type: 'password',\n        autocomplete: 'new-password',\n        isRequired: true,\n    },\n    phone_number: {\n        label: 'Phone Number',\n        placeholder: 'Enter your Phone Number',\n        type: 'tel',\n        autocomplete: 'tel',\n        dialCode: '+1',\n        dialCodeList: countryDialCodes,\n        isRequired: true,\n    },\n    preferred_username: {\n        label: 'Preferred Username',\n        placeholder: 'Enter your Preferred Username',\n        type: 'text',\n        isRequired: true,\n    },\n    profile: {\n        label: 'Profile',\n        placeholder: 'Add your Profile',\n        type: 'url',\n        autocomplete: 'url',\n        isRequired: true,\n    },\n    website: {\n        label: 'Website',\n        placeholder: 'Add your Website',\n        type: 'url',\n        autocomplete: 'url',\n        isRequired: true,\n    },\n    username: {\n        label: 'Username',\n        placeholder: 'Enter your Username',\n        type: 'text',\n        autocomplete: 'username',\n        isRequired: true,\n    },\n};\n/**\n * List of special characters that Cognito allows.\n *\n * Adapted from https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-policies.html\n */\n// prettier-ignore\nconst ALLOWED_SPECIAL_CHARACTERS = [\n    '^', '$', '*', '.', '[', ']',\n    '{', '}', '(', ')', '?', '\"',\n    '!', '@', '#', '%', '&', '/',\n    '\\\\', ',', '>', '<', \"'\", ':',\n    ';', '|', '_', '~', '`', '=',\n    '+', '-', ' '\n];\n/**\n * Email validation regex\n *\n * source: HTML5 spec https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address\n */\nconst emailRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n/**\n+ * map navigable route keys to auth event names\n+ */\nconst NAVIGABLE_ROUTE_EVENT = {\n    forgotPassword: 'FORGOT_PASSWORD',\n    signIn: 'SIGN_IN',\n    signUp: 'SIGN_UP',\n};\n\nconst getRoute = (state, actorState) => {\n    // 'federatedSignIn' exists as a state on both the 'signInActor' and 'signUpActor',\n    // match against the `actorState` initially to determine if the federated sign in flow\n    // has begun, then which actor has begun the flow and return the corresponding `route`\n    if (actorState?.matches('federatedSignIn')) {\n        if (state.matches('signUpActor')) {\n            return 'signUp';\n        }\n        if (state.matches('signInActor')) {\n            return 'signIn';\n        }\n    }\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        case actorState?.matches('resendSignUpCode'):\n            return 'confirmSignUp';\n        case actorState?.matches('confirmSignIn'):\n            return 'confirmSignIn';\n        case actorState?.matches('setupTotp.edit'):\n        case actorState?.matches('setupTotp.submit'):\n            return 'setupTotp';\n        case actorState?.matches('signIn.submit'):\n            return actorState?.context.selectedAuthMethod != null\n                ? 'signInSelectAuthFactor'\n                : 'signIn';\n        case actorState?.matches('signIn.selectMethod'):\n            return 'signInSelectAuthFactor';\n        case actorState?.matches('passkeyPrompt'):\n            return 'passkeyPrompt';\n        case actorState?.matches('signIn'):\n            return 'signIn';\n        case actorState?.matches('signUp'):\n        case actorState?.matches('autoSignIn'):\n            return 'signUp';\n        case actorState?.matches('forceChangePassword'):\n            return 'forceNewPassword';\n        case actorState?.matches('forgotPassword'):\n            return 'forgotPassword';\n        case actorState?.matches('confirmResetPassword'):\n            return 'confirmResetPassword';\n        case actorState?.matches('selectUserAttributes'):\n            return 'verifyUser';\n        case actorState?.matches('confirmVerifyUserAttribute'):\n            return 'confirmVerifyUser';\n        case actorState?.matches('setupEmail'):\n            return 'setupEmail';\n        case actorState?.matches('selectMfaType'):\n            return 'selectMfaType';\n        case state.matches('getCurrentUser'):\n        case actorState?.matches('fetchUserAttributes'):\n            /**\n             * This route is needed for autoSignIn to capture both the\n             * autoSignIn.pending and the resolved states when the\n             * signIn actor is running.\n             */\n            return 'transition';\n        default:\n            return null;\n    }\n};\n\n/**\n * This file contains helpers that translates xstate internals to more\n * understandable authenticator contexts. We provide these contexts with\n * `useAuthenticator` hook/composable/service.\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 */\nconst getSendEventAliases = (send) => {\n    const sendToMachine = (type) => {\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) => send({ type, data });\n    };\n    return {\n        initializeMachine: sendToMachine('INIT'),\n        resendCode: sendToMachine('RESEND'),\n        selectAuthMethod: sendToMachine('SELECT_METHOD'),\n        signOut: sendToMachine('SIGN_OUT'),\n        submitForm: sendToMachine('SUBMIT'),\n        toShowAuthMethods: sendToMachine('SHOW_AUTH_METHODS'),\n        updateForm: sendToMachine('CHANGE'),\n        updateBlur: sendToMachine('BLUR'),\n        // Actions that don't immediately invoke a service but instead transition to a screen\n        // are prefixed with `to*`\n        toFederatedSignIn: sendToMachine('FEDERATED_SIGN_IN'),\n        toForgotPassword: sendToMachine('FORGOT_PASSWORD'),\n        toSignIn: sendToMachine('SIGN_IN'),\n        toSignUp: sendToMachine('SIGN_UP'),\n        skipVerification: sendToMachine('SKIP'),\n    };\n};\nconst getNextSendEventAliases = (send) => {\n    const { toFederatedSignIn, submitForm, resendCode, skipVerification } = getSendEventAliases(send);\n    return {\n        handleSubmit: submitForm,\n        resendConfirmationCode: resendCode,\n        // manual \"route\" navigation\n        setRoute: (route) => send({ type: NAVIGABLE_ROUTE_EVENT[route] }),\n        skipAttributeVerification: skipVerification,\n        toFederatedSignIn,\n    };\n};\nconst getServiceContextFacade = (state) => {\n    const actorContext = (getActorContext$1(state) ?? {});\n    const { allowedMfaTypes, availableAuthMethods, challengeName, codeDeliveryDetails, preferredChallenge, remoteError: error, selectedAuthMethod, validationError: validationErrors, totpSecretCode = null, unverifiedUserAttributes, username, } = actorContext;\n    const { socialProviders = [], loginMechanisms } = state.context?.config ?? {};\n    const loginMechanism = loginMechanisms?.[0];\n    // check for user in actorContext prior to state context. actorContext is more \"up to date\",\n    // but is not available on all states\n    const user = actorContext?.user ?? state.context?.user;\n    const hasValidationErrors = !!(validationErrors && Object.keys(validationErrors).length > 0);\n    const actorState = getActorState(state);\n    const isPending = state.hasTag('pending') || actorState?.hasTag('pending');\n    const route = getRoute(state, actorState);\n    // Auth status represents the current state of the auth flow\n    // The `configuring` state is used to indicate when the xState machine is loading\n    const authStatus = ((route) => {\n        switch (route) {\n            case 'idle':\n            case 'setup':\n                return 'configuring';\n            case 'authenticated':\n                return 'authenticated';\n            default:\n                return 'unauthenticated';\n        }\n    })(route);\n    const facade = {\n        allowedMfaTypes,\n        authStatus,\n        availableAuthMethods,\n        challengeName,\n        codeDeliveryDetails,\n        error,\n        hasValidationErrors,\n        isPending,\n        loginMechanism,\n        preferredChallenge,\n        route,\n        selectedAuthMethod,\n        socialProviders,\n        totpSecretCode,\n        unverifiedUserAttributes,\n        user,\n        username,\n        validationErrors,\n        // @v6-migration-note\n        // While most of the properties\n        // on `AuthenticatorServiceContextFacade` can resolve to `undefined`, updating\n        // the interface requires material changes in consumers (namely `useAuthenticator`)\n        // which will have implications on the UI layer as typeguards and non-null checks\n        // are required to pass type checking. As the `Authenticator` is behaving as expected\n        // with the `AuthenticatorServiceContextFacade` interface, prefer to cast\n    };\n    return facade;\n};\nconst getNextServiceContextFacade = (state) => {\n    const actorContext = (getActorContext$1(state) ?? {});\n    const { allowedMfaTypes, challengeName, codeDeliveryDetails, remoteError: errorMessage, totpSecretCode, unverifiedUserAttributes, username, } = actorContext;\n    const { socialProviders: federatedProviders, loginMechanisms } = state.context?.config ?? {};\n    const loginMechanism = loginMechanisms?.[0];\n    const actorState = getActorState(state);\n    const isPending = state.hasTag('pending') || actorState?.hasTag('pending');\n    // @todo-migration remove this cast for Authenticator.Next\n    const route = getRoute(state, actorState);\n    return {\n        allowedMfaTypes,\n        challengeName,\n        codeDeliveryDetails,\n        errorMessage,\n        federatedProviders,\n        isPending,\n        loginMechanism,\n        route,\n        totpSecretCode,\n        unverifiedUserAttributes,\n        username,\n    };\n};\nconst getServiceFacade = ({ send, state, }) => {\n    const sendEventAliases = getSendEventAliases(send);\n    const serviceContext = getServiceContextFacade(state);\n    return {\n        ...sendEventAliases,\n        ...serviceContext,\n    };\n};\nconst getNextServiceFacade = ({ send, state, }) => ({\n    ...getNextSendEventAliases(send),\n    ...getNextServiceContextFacade(state),\n});\n\n/** Federated IDPs that Authenticator supports */\nexports.FederatedIdentityProviders = void 0;\n(function (FederatedIdentityProviders) {\n    FederatedIdentityProviders[\"Apple\"] = \"Apple\";\n    FederatedIdentityProviders[\"Amazon\"] = \"Amazon\";\n    FederatedIdentityProviders[\"Facebook\"] = \"Facebook\";\n    FederatedIdentityProviders[\"Google\"] = \"Google\";\n})(exports.FederatedIdentityProviders || (exports.FederatedIdentityProviders = {}));\n/**\n * Cognito user contact method types that have not been verified as valid\n */\nexports.UnverifiedContactMethodType = void 0;\n(function (UnverifiedContactMethodType) {\n    UnverifiedContactMethodType[\"Email\"] = \"email\";\n    UnverifiedContactMethodType[\"PhoneNumber\"] = \"phone_number\";\n})(exports.UnverifiedContactMethodType || (exports.UnverifiedContactMethodType = {}));\n\nconst isUnverifiedContactMethodType = (value) => Object.values(exports.UnverifiedContactMethodType).findIndex((val) => val === value) >= 0;\n\n/** Array of auth fields that we supply defaults with */\nconst 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];\n/** Array of auth fields that we do not supply defaults with */\nconst signUpFieldsWithoutDefault = [\n    'address',\n    'gender',\n    'locale',\n    'picture',\n    'updated_at',\n    'zoneinfo',\n];\n/** Array of known login mechanisms */\nconst LoginMechanismArray = [\n    'username',\n    'email',\n    'phone_number',\n];\nconst authFieldsWithDefaults = [\n    ...LoginMechanismArray,\n    ...signUpFieldsWithDefault,\n    'confirmation_code',\n    'password',\n    'confirm_password',\n];\nconst isAuthFieldsWithDefaults = (field) => {\n    return authFieldsWithDefaults.includes(field);\n};\n\nconst ComponentClassName = {\n    Accordion: 'amplify-accordion',\n    AccordionItem: 'amplify-accordion__item',\n    AccordionItemTrigger: 'amplify-accordion__item__trigger',\n    AccordionItemContent: 'amplify-accordion__item__content',\n    AccordionItemIcon: 'amplify-accordion__item__icon',\n    Alert: 'amplify-alert',\n    AlertIcon: 'amplify-alert__icon',\n    AlertHeading: 'amplify-alert__heading',\n    AlertBody: 'amplify-alert__body',\n    AlertDismiss: 'amplify-alert__dismiss',\n    Autocomplete: 'amplify-autocomplete',\n    AutocompleteMenu: 'amplify-autocomplete__menu',\n    AutocompleteMenuEmpty: 'amplify-autocomplete__menu--empty',\n    AutocompleteMenuFooter: 'amplify-autocomplete__menu__footer',\n    AutocompleteMenuHeader: 'amplify-autocomplete__menu__header',\n    AutocompleteMenuLoading: 'amplify-autocomplete__menu--loading',\n    AutocompleteMenuOption: 'amplify-autocomplete__menu__option',\n    AutocompleteMenuOptions: 'amplify-autocomplete__menu__options',\n    Avatar: 'amplify-avatar',\n    AvatarIcon: 'amplify-avatar__icon',\n    AvatarImage: 'amplify-avatar__image',\n    AvatarLoader: 'amplify-avatar__loader',\n    AIConversation: 'amplify-ai-conversation',\n    AIConversationScrollView: 'amplify-ai-conversation__scrollview',\n    AIConversationAttachment: 'amplify-ai-conversation__attachment',\n    AIConversationAttachmentList: 'amplify-ai-conversation__attachment__list',\n    AIConversationAttachmentImage: 'amplify-ai-conversation__attachment__image',\n    AIConversationAttachmentName: 'amplify-ai-conversation__attachment__name',\n    AIConversationAttachmentSize: 'amplify-ai-conversation__attachment__size',\n    AIConversationAttachmentRemove: 'amplify-ai-conversation__attachment__remove',\n    AIConversationForm: 'amplify-ai-conversation__form',\n    AIConversationFormAttach: 'amplify-ai-conversation__form__attach',\n    AIConversationFormError: 'amplify-ai-conversation__form__error',\n    AIConversationFormSend: 'amplify-ai-conversation__form__send',\n    AIConversationFormField: 'amplify-ai-conversation__form__field',\n    AIConversationFormDropzone: 'amplify-ai-conversation__form__dropzone',\n    AIConversationMessage: 'amplify-ai-conversation__message',\n    AIConversationMessageAvatar: 'amplify-ai-conversation__message__avatar',\n    AIConversationMessageSender: 'amplify-ai-conversation__message__sender',\n    AIConversationMessageSenderUsername: 'amplify-ai-conversation__message__sender__username',\n    AIConversationMessageSenderTimestamp: 'amplify-ai-conversation__message__sender__timestamp',\n    AIConversationMessageBody: 'amplify-ai-conversation__message__body',\n    AIConversationMessageContent: 'amplify-ai-conversation__message__content',\n    AIConversationMessageActions: 'amplify-ai-conversation__message__actions',\n    AIConversationMessageList: 'amplify-ai-conversation__message__list',\n    AIConversationPrompt: 'amplify-ai-conversation__prompt',\n    Badge: 'amplify-badge',\n    Breadcrumbs: 'amplify-breadcrumbs',\n    BreadcrumbsList: 'amplify-breadcrumbs__list',\n    BreadcrumbsItem: 'amplify-breadcrumbs__item',\n    BreadcrumbsSeparator: 'amplify-breadcrumbs__separator',\n    BreadcrumbsLink: 'amplify-breadcrumbs__link',\n    Button: 'amplify-button',\n    ButtonGroup: 'amplify-buttongroup',\n    ButtonLoaderWrapper: 'amplify-button__loader-wrapper',\n    Card: 'amplify-card',\n    Checkbox: 'amplify-checkbox',\n    CheckboxButton: 'amplify-checkbox__button',\n    CheckboxIcon: 'amplify-checkbox__icon',\n    CheckboxInput: 'amplify-checkbox__input',\n    CheckboxLabel: 'amplify-checkbox__label',\n    CheckboxField: 'amplify-checkboxfield',\n    Collection: 'amplify-collection',\n    CollectionItems: 'amplify-collection-items',\n    CollectionSearch: 'amplify-collection-search',\n    CollectionPagination: 'amplify-collection-pagination',\n    CountryCodeSelect: 'amplify-countrycodeselect',\n    DialCodeSelect: 'amplify-dialcodeselect',\n    Divider: 'amplify-divider',\n    DividerLabel: 'amplify-divider--label',\n    DropZone: 'amplify-dropzone',\n    Field: 'amplify-field',\n    FieldDescription: 'amplify-field__description',\n    FieldErrorMessage: 'amplify-field__error-message',\n    FieldGroup: 'amplify-field-group',\n    FieldGroupControl: 'amplify-field-group__control',\n    FieldGroupOuterEnd: 'amplify-field-group__outer-end',\n    FieldGroupOuterStart: 'amplify-field-group__outer-start',\n    FieldGroupInnerEnd: 'amplify-field-group__inner-end',\n    FieldGroupInnerStart: 'amplify-field-group__inner-start',\n    FieldGroupIcon: 'amplify-field-group__icon',\n    FieldGroupIconButton: 'amplify-field-group__icon-button',\n    FieldGroupHasInnerEnd: 'amplify-field-group--has-inner-end',\n    FieldGroupHasInnerStart: 'amplify-field-group--has-inner-start',\n    FieldShowPassword: 'amplify-field__show-password',\n    FieldGroupFieldWrapper: 'amplify-field-group__field-wrapper',\n    Fieldset: 'amplify-fieldset',\n    FieldsetLegend: 'amplify-fieldset__legend',\n    FileUploader: 'amplify-fileuploader',\n    FileUploaderDropZone: 'amplify-fileuploader__dropzone',\n    FileUploaderDropZoneIcon: 'amplify-fileuploader__dropzone__icon',\n    FileUploaderDropZoneText: 'amplify-fileuploader__dropzone__text',\n    FileUploaderFilePicker: 'amplify-fileuploader__file__picker',\n    FileUploaderFile: 'amplify-fileuploader__file',\n    FileUploaderFileWrapper: 'amplify-fileuploader__file__wrapper',\n    FileUploaderFileList: 'amplify-fileuploader__file__list',\n    FileUploaderFileName: 'amplify-fileuploader__file__name',\n    FileUploaderFileSize: 'amplify-fileuploader__file__size',\n    FileUploaderFileInfo: 'amplify-fileuploader__file__info',\n    FileUploaderFileImage: 'amplify-fileuploader__file__image',\n    FileUploaderFileMain: 'amplify-fileuploader__file__main',\n    FileUploaderFileStatus: 'amplify-fileuploader__file__status',\n    FileUploaderLoader: 'amplify-fileuploader__loader',\n    FileUploaderPreviewer: 'amplify-fileuploader__previewer',\n    FileUploaderPreviewerText: 'amplify-fileuploader__previewer__text',\n    FileUploaderPreviewerActions: 'amplify-fileuploader__previewer__actions',\n    FileUploaderPreviewerFooter: 'amplify-fileuploader__previewer__footer',\n    Flex: 'amplify-flex',\n    Grid: 'amplify-grid',\n    Heading: 'amplify-heading',\n    HighlightMatch: 'amplify-highlightmatch',\n    HighlightMatchHighlighted: 'amplify-highlightmatch__highlighted',\n    Icon: 'amplify-icon',\n    Image: 'amplify-image',\n    Input: 'amplify-input',\n    Label: 'amplify-label',\n    Link: 'amplify-link',\n    Loader: 'amplify-loader',\n    LoaderLabel: 'amplify-loader__label',\n    MenuContent: 'amplify-menu__content',\n    MenuItem: 'amplify-menu__content__item',\n    MenuTrigger: 'amplify-menu__trigger',\n    MenuWrapper: 'amplify-menu__wrapper',\n    Message: 'amplify-message',\n    MessageIcon: 'amplify-message__icon',\n    MessageHeading: 'amplify-message__heading',\n    MessageBody: 'amplify-message__body',\n    MessageContent: 'amplify-message__content',\n    MessageDismiss: 'amplify-message__dismiss',\n    Pagination: 'amplify-pagination',\n    PaginationItem: 'amplify-pagination__item',\n    PasswordField: 'amplify-passwordfield',\n    PhoneNumberField: 'amplify-phonenumberfield',\n    Placeholder: 'amplify-placeholder',\n    Radio: 'amplify-radio',\n    RadioButton: 'amplify-radio__button',\n    RadioInput: 'amplify-radio__input',\n    RadioLabel: 'amplify-radio__label',\n    RadioGroupField: 'amplify-radiogroupfield',\n    RadioGroup: 'amplify-radiogroup',\n    Rating: 'amplify-rating',\n    RatingItem: 'amplify-rating__item',\n    RatingIcon: 'amplify-rating__icon',\n    RatingLabel: 'amplify-rating__label',\n    ScrollView: 'amplify-scrollview',\n    SearchField: 'amplify-searchfield',\n    SearchFieldClear: 'amplify-searchfield__clear',\n    SearchFieldSearch: 'amplify-searchfield__search',\n    Select: 'amplify-select',\n    SelectField: 'amplify-selectfield',\n    SelectWrapper: 'amplify-select__wrapper',\n    SelectIcon: 'amplify-select__icon',\n    SliderField: 'amplify-sliderfield',\n    SliderFieldGroup: 'amplify-sliderfield__group',\n    SliderFieldLabel: 'amplify-sliderfield__label',\n    SliderFieldRange: 'amplify-sliderfield__range',\n    SliderFieldRoot: 'amplify-sliderfield__root',\n    SliderFieldThumb: 'amplify-sliderfield__thumb',\n    SliderFieldTrack: 'amplify-sliderfield__track',\n    StepperField: 'amplify-stepperfield',\n    StepperFieldButtonDecrease: 'amplify-stepperfield__button--decrease',\n    StepperFieldButtonIncrease: 'amplify-stepperfield__button--increase',\n    StepperFieldInput: 'amplify-stepperfield__input',\n    StorageImage: 'amplify-storageimage',\n    StorageManager: 'amplify-storagemanager',\n    StorageManagerDropZone: 'amplify-storagemanager__dropzone',\n    StorageManagerDropZoneIcon: 'amplify-storagemanager__dropzone__icon',\n    StorageManagerDropZoneText: 'amplify-storagemanager__dropzone__text',\n    StorageManagerFilePicker: 'amplify-storagemanager__file__picker',\n    StorageManagerFile: 'amplify-storagemanager__file',\n    StorageManagerFileWrapper: 'amplify-storagemanager__file__wrapper',\n    StorageManagerFileList: 'amplify-storagemanager__file__list',\n    StorageManagerFileName: 'amplify-storagemanager__file__name',\n    StorageManagerFileSize: 'amplify-storagemanager__file__size',\n    StorageManagerFileInfo: 'amplify-storagemanager__file__info',\n    StorageManagerFileImage: 'amplify-storagemanager__file__image',\n    StorageManagerFileMain: 'amplify-storagemanager__file__main',\n    StorageManagerFileStatus: 'amplify-storagemanager__file__status',\n    StorageManagerLoader: 'amplify-storagemanager__loader',\n    StorageManagerPreviewer: 'amplify-storagemanager__previewer',\n    StorageManagerPreviewerText: 'amplify-storagemanager__previewer__text',\n    StorageManagerPreviewerActions: 'amplify-storagemanager__previewer__actions',\n    StorageManagerPreviewerFooter: 'amplify-storagemanager__previewer__footer',\n    SwitchField: 'amplify-switchfield',\n    SwitchLabel: 'amplify-switch__label',\n    SwitchThumb: 'amplify-switch__thumb',\n    SwitchTrack: 'amplify-switch__track',\n    SwitchWrapper: 'amplify-switch__wrapper',\n    Table: 'amplify-table',\n    TableCaption: 'amplify-table__caption',\n    TableBody: 'amplify-table__body',\n    TableTd: 'amplify-table__td',\n    TableTh: 'amplify-table__th',\n    TableFoot: 'amplify-table__foot',\n    TableHead: 'amplify-table__head',\n    TableRow: 'amplify-table__row',\n    Tabs: 'amplify-tabs',\n    TabsList: 'amplify-tabs__list',\n    TabsItem: 'amplify-tabs__item',\n    TabsPanel: 'amplify-tabs__panel',\n    Text: 'amplify-text',\n    Textarea: 'amplify-textarea',\n    TextAreaField: 'amplify-textareafield',\n    TextField: 'amplify-textfield',\n    ToggleButton: 'amplify-togglebutton',\n    ToggleButtonGroup: 'amplify-togglebuttongroup',\n    VisuallyHidden: 'amplify-visually-hidden',\n};\n\nconst getFormDataFromEvent = (event) => {\n    const formData = new FormData(event.target);\n    return Object.fromEntries(formData);\n};\nconst setFormOrder = (formOverrides, fieldNames) => {\n    let orderedKeys = [];\n    if (formOverrides) {\n        orderedKeys = Object.keys(formOverrides)\n            .reduce((prev, key) => {\n            // reduce to array that can be sorted\n            prev.push([key, formOverrides[key]?.order]);\n            return prev;\n        }, [])\n            .sort((a, b) => \n        //sort them based on order\n        a[1] - b[1]) // returned just key\n            .filter((a) => a[1] !== undefined)\n            .map((a) => a[0]);\n    }\n    // remove duplicates\n    return Array.from(new Set([...orderedKeys, ...fieldNames]));\n};\nconst isAuthFieldWithDefaults = (field) => {\n    return authFieldsWithDefaults.includes(field);\n};\nconst isArray = (val) => {\n    return Array.isArray(val);\n};\nconst getErrors = (errors) => {\n    if (!errors)\n        return null;\n    if (isArray(errors)) {\n        return errors;\n    }\n    else {\n        return [errors];\n    }\n};\n\n// replaces all characters in a string with '*', except for the first and last char\nconst censorAllButFirstAndLast = (value) => {\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    return split.join('');\n};\n// censors all but the last four characters of a phone number\nconst censorPhoneNumber = (val) => {\n    if (val.length < 4) {\n        return val;\n    }\n    const split = val.split('');\n    for (let i = 0; i < split.length - 4; i++) {\n        split[i] = '*';\n    }\n    return split.join('');\n};\n// censors all but the first and last of the name of an email and keeps domain\nconst censorEmail = (val) => {\n    const splitEmail = val.split('@');\n    const censoredName = censorAllButFirstAndLast(splitEmail[0]);\n    return `${censoredName}@${splitEmail[1]}`;\n};\n// based on the ContactMethod type, returns a censored contact value\nconst censorContactMethod = (type, value) => {\n    return type === 'Phone Number'\n        ? censorPhoneNumber(value)\n        : censorEmail(value);\n};\nconst hasSpecialChars = (password) => ALLOWED_SPECIAL_CHARACTERS.some((char) => password.includes(char));\nconst getTotpCodeURL = (issuer, username, secret) => encodeURI(`otpauth://totp/${issuer}:${username}?secret=${secret}&issuer=${issuer}`);\nfunction trimValues(values, ...ignored) {\n    return Object.entries(values).reduce((acc, [name, value]) => ({\n        ...acc,\n        [name]: ignored.includes(name) ? value : value?.trim(),\n    }), {});\n}\nconst isValidEmail = (value) => {\n    if (!value)\n        return false;\n    return emailRegex.test(value);\n};\n\nconst getPrimaryAlias = (state) => {\n    const loginMechanisms = state?.context.config?.loginMechanisms;\n    /**\n     * @migration this is where we grab only the first index of `aws_cognito_username_attributes`\n     */\n    const [primaryAlias] = loginMechanisms ?? ['username'];\n    return primaryAlias;\n};\n/** Applies translations to label and placeholder */\nconst applyTranslation = (formFields) => {\n    const newFormFields = { ...formFields };\n    for (const [name, options] of Object.entries(formFields)) {\n        const { label, placeholder } = options;\n        newFormFields[name] = {\n            ...options,\n            label: label ? translate(label) : undefined,\n            placeholder: placeholder ? translate(placeholder) : undefined,\n        };\n    }\n    return newFormFields;\n};\n/** Sorts formFields according to their `order`.  */\nconst sortFormFields = (formFields) => {\n    return Object.entries(formFields)\n        .sort((a, b) => {\n        const orderA = a[1].order || Number.MAX_VALUE;\n        const orderB = b[1].order || Number.MAX_VALUE;\n        return orderA - orderB;\n    })\n        .filter((formFieldEntry) => formFieldEntry[1] !== undefined);\n};\n\n/**\n * This file contains helpers that generate default formFields for each screen\n */\nconst DEFAULT_COUNTRY_CODE = '+1';\n/** Helper function that gets the default formField for given field name */\nconst getDefaultFormField = (fieldName) => {\n    let options = defaultFormFieldOptions[fieldName];\n    const { type } = options;\n    if (type === 'tel') {\n        options = { ...options, dialCode: DEFAULT_COUNTRY_CODE };\n    }\n    return options;\n};\n// Helper function that returns default form field for configured primary alias\nconst getAliasDefaultFormField = (state) => {\n    const primaryAlias = getPrimaryAlias(state);\n    return {\n        ...getDefaultFormField(primaryAlias),\n        autocomplete: 'username',\n    };\n};\n/** Reusable confirmation code form fields. */\nconst getConfirmationCodeFormFields = (_) => ({\n    confirmation_code: {\n        ...getDefaultFormField('confirmation_code'),\n        label: 'Code *',\n        placeholder: 'Code',\n    },\n});\nconst getSignInFormFields = (state) => {\n    const actorContext = state.context.actorRef?.getSnapshot()?.context;\n    const availableAuthMethods = actorContext?.availableAuthMethods;\n    const preferredChallenge = actorContext?.preferredChallenge;\n    const shouldShowPassword = !availableAuthMethods?.length ||\n        (availableAuthMethods.length === 1 &&\n            availableAuthMethods[0] === 'PASSWORD') ||\n        (availableAuthMethods.length > 1 &&\n            (!preferredChallenge || preferredChallenge === 'PASSWORD'));\n    const fields = {\n        username: { ...getAliasDefaultFormField(state) },\n    };\n    if (shouldShowPassword) {\n        fields.password = {\n            ...getDefaultFormField('password'),\n            autocomplete: 'current-password',\n        };\n    }\n    return fields;\n};\nconst getSignUpFormFields = (state) => {\n    const { loginMechanisms, signUpAttributes } = state.context.config;\n    const primaryAlias = getPrimaryAlias(state);\n    const actorContext = state.context.actorRef?.getSnapshot()?.context;\n    const availableAuthMethods = actorContext?.availableAuthMethods;\n    const hasMultipleMethods = availableAuthMethods && availableAuthMethods.length > 1;\n    /**\n     * @migration signUp Fields created here\n     */\n    const fieldNames = Array.from(new Set([\n        ...loginMechanisms,\n        'password',\n        'confirm_password',\n        ...signUpAttributes,\n    ]));\n    const formField = {};\n    for (const fieldName of fieldNames) {\n        if (isAuthFieldWithDefaults(fieldName)) {\n            const fieldAttrs = fieldName === primaryAlias\n                ? getAliasDefaultFormField(state)\n                : getDefaultFormField(fieldName);\n            // Make email, phone_number, password, and confirm_password optional when multiple auth methods available\n            // Validation will check based on selected method\n            const isOptional = hasMultipleMethods &&\n                (fieldName === 'email' ||\n                    fieldName === 'phone_number' ||\n                    fieldName === 'password' ||\n                    fieldName === 'confirm_password');\n            formField[fieldName] = {\n                ...fieldAttrs,\n                ...(isOptional && { isRequired: false }),\n            };\n        }\n        else {\n            // There's a `custom:*` attribute or one we don't already have an implementation for\n            // eslint-disable-next-line no-console\n            console.debug(`Authenticator does not have a default implementation for ${fieldName}. Customize SignUp FormFields to add your own.`);\n        }\n    }\n    return formField;\n};\nconst getConfirmSignUpFormFields = (_) => ({\n    confirmation_code: {\n        ...getDefaultFormField('confirmation_code'),\n        placeholder: 'Enter your code',\n    },\n});\nconst getForgotPasswordFormFields = (state) => {\n    const primaryAlias = getPrimaryAlias(state);\n    const { label } = defaultFormFieldOptions[primaryAlias];\n    return {\n        username: {\n            ...getAliasDefaultFormField(state),\n            label: `Enter your ${label.toLowerCase()}`,\n            placeholder: `Enter your ${label.toLowerCase()}`,\n        },\n    };\n};\nconst getConfirmResetPasswordFormFields = (state) => ({\n    ...getConfirmationCodeFormFields(),\n    password: {\n        ...getDefaultFormField('password'),\n        label: 'New Password',\n        placeholder: 'New Password',\n    },\n    confirm_password: {\n        ...getDefaultFormField('confirm_password'),\n        label: 'Confirm Password',\n        placeholder: 'Confirm Password',\n    },\n});\nconst getForceNewPasswordFormFields = (state) => {\n    const actorState = getActorState(state);\n    const { missingAttributes } = actorState.context;\n    const fieldNames = Array.from(new Set([\n        'password',\n        'confirm_password',\n        ...(missingAttributes ?? []),\n    ]));\n    const formField = {};\n    for (const fieldName of fieldNames) {\n        if (isAuthFieldWithDefaults(fieldName)) {\n            formField[fieldName] = { ...getDefaultFormField(fieldName) };\n        }\n        else {\n            // There's a `custom:*` attribute or one we don't already have an implementation for\n            // eslint-disable-next-line no-console\n            console.debug(`Authenticator does not have a default implementation for ${fieldName}. Customize ForceNewPassword FormFields to add your own.`);\n        }\n    }\n    return formField;\n};\nconst getSetupEmailFormFields = (_) => ({\n    email: getDefaultFormField('email'),\n});\n/** Collect all the defaultFormFields getters */\nconst defaultFormFieldsGetters = {\n    signIn: getSignInFormFields,\n    signUp: getSignUpFormFields,\n    confirmSignUp: getConfirmSignUpFormFields,\n    confirmSignIn: getConfirmationCodeFormFields,\n    forceNewPassword: getForceNewPasswordFormFields,\n    forgotPassword: getForgotPasswordFormFields,\n    confirmResetPassword: getConfirmResetPasswordFormFields,\n    confirmVerifyUser: getConfirmationCodeFormFields,\n    setupEmail: getSetupEmailFormFields,\n    setupTotp: getConfirmationCodeFormFields,\n};\n\n// Gets the default formFields for given route\nconst getDefaultFormFields = (route, state) => {\n    const formFieldGetter = defaultFormFieldsGetters[route];\n    return formFieldGetter(state);\n};\n// Gets custom formFields, and applies default values\nconst getCustomFormFields = (route, state) => {\n    const customFormFields = getActorContext$1(state)?.formFields?.[route];\n    if (!customFormFields || Object.keys(customFormFields).length === 0) {\n        return {};\n    }\n    return Object.entries(customFormFields).reduce((acc, [fieldName, customOptions]) => {\n        if ((route === 'signIn' || route === 'forgotPassword') &&\n            fieldName === 'username') {\n            // Unlike other screens, `signIn` and `forgotPassword` screens default login\n            // alias field names to \"username\", even if it's a phone number or email.\n            // In this case, we get the default formFieldOptions based on loginMechanism.\n            const defaultOptions = getAliasDefaultFormField(state);\n            // apply default to fill any gaps that are not present in customOptions\n            const mergedOptions = { ...defaultOptions, ...customOptions };\n            return { ...acc, [fieldName]: mergedOptions };\n        }\n        else if (isAuthFieldsWithDefaults(fieldName)) {\n            // if this field is a known auth attribute that we have defaults for,\n            // apply defaults to customOptions.\n            const defaultOptions = defaultFormFieldOptions[fieldName];\n            const mergedOptions = { ...defaultOptions, ...customOptions };\n            return { ...acc, [fieldName]: mergedOptions };\n        }\n        else {\n            // if this is not a known field, use customOptions as is.\n            return { ...acc, [fieldName]: customOptions };\n        }\n    }, {});\n};\nconst getFormFields = (route, state) => {\n    const defaultFormFields = getDefaultFormFields(route, state);\n    const customFormFields = getCustomFormFields(route, state);\n    const formFields = { ...defaultFormFields, ...customFormFields };\n    delete formFields['QR'];\n    return applyTranslation(formFields);\n};\nconst removeOrderKeys = (formFields) => formFields.map((field) => {\n    const key = field[0];\n    // Drop order key to prevent passing to form field UI components\n    const values = { ...field[1], order: undefined };\n    return [key, values];\n});\n/** Calls `getFormFields` above, then sorts it into an indexed array */\nconst getSortedFormFields = (route, state) => {\n    const formFields = getFormFields(route, state);\n    return removeOrderKeys(sortFormFields(formFields));\n};\n\n/**\n * ConfirmSignIn\n */\nconst getChallengeText = (challengeName) => {\n    switch (challengeName) {\n        case 'EMAIL_OTP':\n            return translate(DefaultTexts.CONFIRM_EMAIL);\n        case 'SMS_MFA':\n            return translate(DefaultTexts.CONFIRM_SMS);\n        case 'SOFTWARE_TOKEN_MFA':\n            return translate(DefaultTexts.CONFIRM_TOTP);\n        default:\n            return translate(DefaultTexts.CONFIRM_MFA_DEFAULT);\n    }\n};\n/**\n * ConfirmSignUp\n */\nconst getDeliveryMessageText = (codeDeliveryDetails) => {\n    const { DeliveryMedium, Destination } = codeDeliveryDetails ?? {};\n    const isEmailMessage = DeliveryMedium === 'EMAIL';\n    const isTextMessage = DeliveryMedium === 'SMS';\n    const arrivalMessage = translate(DefaultTexts.CODE_ARRIVAL);\n    if (!(isEmailMessage || isTextMessage)) {\n        return `${translate(DefaultTexts.CODE_SENT)}. ${arrivalMessage}.`;\n    }\n    const instructionMessage = isEmailMessage\n        ? translate(DefaultTexts.CODE_EMAILED)\n        : translate(DefaultTexts.CODE_TEXTED);\n    return `${instructionMessage} ${Destination}. ${arrivalMessage}.`;\n};\nconst getDeliveryMethodText = (codeDeliveryDetails) => {\n    const { DeliveryMedium } = codeDeliveryDetails ?? {};\n    const isEmailMessage = DeliveryMedium === 'EMAIL';\n    const isTextMessage = DeliveryMedium === 'SMS';\n    if (!isEmailMessage && isTextMessage) {\n        return translate(DefaultTexts.WE_SENT_CODE);\n    }\n    return isEmailMessage\n        ? translate(DefaultTexts.WE_EMAILED)\n        : translate(DefaultTexts.WE_TEXTED);\n};\n/**\n * FederatedSignIn\n */\nconst providerNameMap = {\n    amazon: 'Amazon',\n    apple: 'Apple',\n    facebook: 'Facebook',\n    google: 'Google',\n};\nconst getSignInWithFederationText = (route, provider) => {\n    const isSignIn = route === 'signIn';\n    return translate(`Sign ${isSignIn ? 'In' : 'Up'} with ${providerNameMap[provider]}`);\n};\n/**\n * SelectMfaType\n */\nconst getSelectMfaTypeByChallengeName = (challengeName) => {\n    if (challengeName === 'MFA_SETUP') {\n        return translate(DefaultTexts.MFA_SETUP_SELECTION);\n    }\n    return translate(DefaultTexts.MFA_SELECTION);\n};\nconst getUsernameLabelByLoginMechanism = (loginMechanism) => {\n    switch (loginMechanism) {\n        case 'email':\n            return translate(DefaultTexts.EMAIL_ADDRESS);\n        case 'phone_number':\n            return translate(DefaultTexts.PHONE_NUMBER);\n        case 'username':\n        default:\n            return translate(DefaultTexts.USERNAME);\n    }\n};\nconst getMfaTypeLabelByValue = (mfaType) => {\n    switch (mfaType) {\n        case 'EMAIL':\n            return translate(defaultTexts.EMAIL_OTP);\n        case 'SMS':\n            return translate(defaultTexts.SMS_MFA);\n        case 'TOTP':\n            return translate(defaultTexts.SOFTWARE_TOKEN_MFA);\n        default:\n            return translate(mfaType);\n    }\n};\nconst authenticatorTextUtil = {\n    /** Shared */\n    getBackToSignInText: () => translate(DefaultTexts.BACK_SIGN_IN),\n    getChangePasswordText: () => translate(DefaultTexts.CHANGE_PASSWORD),\n    getChangingText: () => translate(DefaultTexts.CHANGING_PASSWORD),\n    getConfirmText: () => translate(DefaultTexts.CONFIRM),\n    getConfirmingText: () => translate(DefaultTexts.CONFIRMING),\n    getContinueText: () => translate(DefaultTexts.CONTINUE),\n    getCopyText: () => translate(DefaultTexts.UPPERCASE_COPY),\n    getHidePasswordText: () => translate(DefaultTexts.HIDE_PASSWORD),\n    getLoadingText: () => translate(DefaultTexts.LOADING),\n    getOrText: () => translate(DefaultTexts.OR),\n    getResendCodeText: () => translate(DefaultTexts.RESEND_CODE),\n    getSendCodeText: () => translate(DefaultTexts.SEND_CODE),\n    getSendingText: () => translate(DefaultTexts.SENDING),\n    getShowPasswordText: () => translate(DefaultTexts.SHOW_PASSWORD),\n    getSubmitText: () => translate(DefaultTexts.SUBMIT),\n    getSubmittingText: () => translate(DefaultTexts.SUBMITTING),\n    /** SignInSignUpTabs */\n    getSignInTabText: () => translate(DefaultTexts.SIGN_IN_TAB),\n    getSignUpTabText: () => translate(DefaultTexts.CREATE_ACCOUNT),\n    /** SignIn */\n    getForgotPasswordText: (shortVersion) => translate(shortVersion\n        ? DefaultTexts.FORGOT_PASSWORD\n        : DefaultTexts.FORGOT_YOUR_PASSWORD),\n    getSigningInText: () => translate(DefaultTexts.SIGNING_IN_BUTTON),\n    getSignInText: () => translate(DefaultTexts.SIGN_IN_BUTTON),\n    /** SignUp */\n    getCreatingAccountText: () => translate(DefaultTexts.CREATING_ACCOUNT),\n    getCreateAccountText: () => translate(DefaultTexts.CREATE_ACCOUNT),\n    getCreateAccountWithEmailText: () => translate(DefaultTexts.CREATE_ACCOUNT_WITH_EMAIL_OTP),\n    getCreateAccountWithPasswordText: () => translate(DefaultTexts.CREATE_ACCOUNT_WITH_PASSWORD),\n    getCreateAccountWithSmsText: () => translate(DefaultTexts.CREATE_ACCOUNT_WITH_SMS_OTP),\n    /** ConfirmSignUp */\n    getDeliveryMessageText,\n    getDeliveryMethodText,\n    /** ConfirmSignIn */\n    getChallengeText,\n    /** ForgotPassword */\n    getResetYourPasswordText: () => translate(DefaultTexts.RESET_PASSWORD),\n    /** SetupEmail */\n    getSetupEmailText: () => translate(DefaultTexts.SETUP_EMAIL),\n    /** SetupTotp */\n    getSetupTotpText: () => translate(DefaultTexts.SETUP_TOTP),\n    // TODO: add defaultText for below\n    getSetupTotpInstructionsText: () => translate('Copy and paste the secret key below into an authenticator app and then enter the code in the text field below.'),\n    // TODO: add defaultText for \"COPIED\"\n    getCopiedText: () => translate('COPIED'),\n    /** FederatedSignIn */\n    getSignInWithFederationText,\n    /** SelectMfaType */\n    getMfaTypeLabelByValue,\n    getSelectMfaTypeByChallengeName,\n    getSelectMfaTypeText: () => translate(DefaultTexts.SELECT_MFA_TYPE),\n    /** VerifyUser */\n    getSkipText: () => translate(DefaultTexts.SKIP),\n    getVerifyText: () => translate(DefaultTexts.VERIFY),\n    getVerifyContactText: () => translate(DefaultTexts.VERIFY_CONTACT),\n    getAccountRecoveryInfoText: () => translate(DefaultTexts.VERIFY_HEADING),\n    /** Passwordless */\n    getPasskeyPromptHeadingText: () => translate(DefaultTexts.PASSKEY_PROMPT_HEADING),\n    getPasskeyPromptDescriptionText: () => translate(DefaultTexts.PASSKEY_PROMPT_DESCRIPTION),\n    getCreatePasskeyText: () => translate(DefaultTexts.CREATE_PASSKEY),\n    getRegisteringText: () => translate(DefaultTexts.REGISTERING),\n    getContinueWithoutPasskeyText: () => translate(DefaultTexts.CONTINUE_WITHOUT_PASSKEY),\n    getPasskeyCreatedSuccessText: () => translate(DefaultTexts.PASSKEY_CREATED_SUCCESS),\n    getPasskeyRegisteredText: () => translate(DefaultTexts.PASSKEY_REGISTERED),\n    getPasskeyRegistrationFailedText: () => translate(DefaultTexts.PASSKEY_REGISTRATION_FAILED),\n    getPasskeyLabelText: () => translate(DefaultTexts.PASSKEY_LABEL),\n    getExistingPasskeysText: () => translate(DefaultTexts.EXISTING_PASSKEYS),\n    getSetupAnotherPasskeyText: () => translate(DefaultTexts.SETUP_ANOTHER_PASSKEY),\n    getSignInWithPasswordText: () => translate(DefaultTexts.SIGN_IN_WITH_PASSWORD),\n    getSignInWithEmailText: () => translate(DefaultTexts.SIGN_IN_WITH_EMAIL),\n    getSignInWithSmsText: () => translate(DefaultTexts.SIGN_IN_WITH_SMS),\n    getSignInWithPasskeyText: () => translate(DefaultTexts.SIGN_IN_WITH_PASSKEY),\n    getOtherSignInOptionsText: () => translate(DefaultTexts.OTHER_SIGN_IN_OPTIONS),\n    getEnterUsernameFirstText: () => translate(DefaultTexts.ENTER_USERNAME_FIRST),\n    getUsernameLabelByLoginMechanism,\n    /** Validations */\n    // TODO: add defaultText\n    getInvalidEmailText: () => translate('Please enter a valid email'),\n    // TODO: add defaultText\n    getRequiredFieldText: () => translate('This field is required'),\n}; // using `as const` so that keys are strongly typed\n\nconst getLogger = (category) => new utils$1.ConsoleLogger(`AmplifyUI:${category}`);\n\nconst logger = getLogger('Auth');\nconst changePassword = async ({ currentPassword, newPassword, }) => {\n    try {\n        logger.debug('calling Auth.updatePassword');\n        await auth.updatePassword({\n            oldPassword: currentPassword,\n            newPassword,\n        });\n        logger.debug('Auth.updatePassword was successful');\n        return Promise.resolve();\n    }\n    catch (e) {\n        logger.debug('Auth.updatePassword failed with error', e);\n        return Promise.reject(e);\n    }\n};\nconst deleteUser = async () => {\n    try {\n        logger.debug('calling Auth.deleteUser');\n        await auth.deleteUser();\n        logger.debug('Auth.deleteUser was successful');\n        return Promise.resolve();\n    }\n    catch (e) {\n        logger.debug('Auth.deleteUser failed with error', e);\n        return Promise.reject(e);\n    }\n};\n\n// gets password requirement from Amplify.configure data\nconst getPasswordRequirement = () => {\n    const config = awsAmplify.Amplify.getConfig();\n    const passwordSettings = config?.Auth?.Cognito\n        .passwordFormat;\n    if (!passwordSettings) {\n        return null;\n    }\n    return {\n        minLength: passwordSettings.minLength,\n        needsLowerCase: passwordSettings.requireLowercase ?? false,\n        needsUpperCase: passwordSettings.requireUppercase ?? false,\n        needsNumber: passwordSettings.requireNumbers ?? false,\n        needsSpecialChar: passwordSettings.requireSpecialCharacters ?? false,\n    };\n};\nconst getHasMinLength = (minLength) => ({\n    validationMode: 'onTouched',\n    validator: (field) => field.length >= minLength,\n    message: `Password must have at least ${minLength} characters`,\n});\nconst hasLowerCase = {\n    validationMode: 'onTouched',\n    validator: (field) => /[a-z]/.test(field),\n    message: 'Password must have lower case letters',\n};\nconst hasUpperCase = {\n    validationMode: 'onTouched',\n    validator: (field) => /[A-Z]/.test(field),\n    message: 'Password must have upper case letters',\n};\nconst hasNumber = {\n    validationMode: 'onTouched',\n    validator: (field) => /[0-9]/.test(field),\n    message: 'Password must have numbers',\n};\nconst hasSpecialChar = {\n    validationMode: 'onTouched',\n    validator: (field) => hasSpecialChars(field),\n    message: 'Password must have special characters',\n};\nconst getMatchesConfirmPassword = (password) => {\n    return {\n        validationMode: 'onTouched',\n        validator: (confirmPassword) => password === confirmPassword,\n        message: 'Your passwords must match',\n    };\n};\nconst getDefaultPasswordValidators = () => {\n    const requirement = getPasswordRequirement();\n    if (!requirement)\n        return [];\n    const validators = [];\n    const { minLength, needsLowerCase, needsUpperCase, needsNumber, needsSpecialChar, } = requirement;\n    if (minLength) {\n        validators.push(getHasMinLength(minLength));\n    }\n    if (needsLowerCase) {\n        validators.push(hasLowerCase);\n    }\n    if (needsUpperCase) {\n        validators.push(hasUpperCase);\n    }\n    if (needsNumber) {\n        validators.push(hasNumber);\n    }\n    if (needsSpecialChar) {\n        validators.push(hasSpecialChar);\n    }\n    return validators;\n};\nconst getDefaultConfirmPasswordValidators = (password) => {\n    return [getMatchesConfirmPassword(password)];\n};\n/*\n * `shouldValidate` determines whether validator should be run, based on validation mode,\n * input event type, and whether it has been blurred yet.\n */\nconst shouldValidate = ({ validationMode, eventType, hasBlurred, }) => {\n    switch (validationMode) {\n        case 'onBlur': {\n            // only run validator on blur event\n            return eventType === 'blur';\n        }\n        case 'onChange': {\n            // only run validator on change event\n            return eventType === 'change';\n        }\n        case 'onTouched': {\n            /**\n             * run validator on first blur event, and then every subsequent\n             * blur/change event.\n             */\n            return eventType === 'blur' || hasBlurred;\n        }\n    }\n};\n// `runFieldValidator` runs all validators, and returns error messages.\nconst runFieldValidators = ({ value, validators, eventType, hasBlurred, }) => {\n    if (!value)\n        return [];\n    return validators.reduce((prevErrors, validatorSpec) => {\n        const { validator, validationMode, message } = validatorSpec;\n        if (shouldValidate({ validationMode, eventType, hasBlurred })) {\n            const hasError = !validator(value);\n            return hasError ? [...prevErrors, message] : prevErrors;\n        }\n        return prevErrors;\n    }, []);\n};\n\n// default `autoSignIn` flag is `true`\nconst DEFAULT_AUTO_SIGN_IN = true;\nconst EMPTY_STRING = '';\nconst sanitizePhoneNumber = (dialCode, phoneNumber) => `${dialCode}${phoneNumber}`.replace(/[^A-Z0-9+]/gi, '');\nconst selectUserAttributes = (_, 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        // Otherwise, it's a custom attribute\n        default:\n            return key.startsWith('custom:');\n    }\n};\nconst getUserAttributes = (formValues) => {\n    const { phone_number, ...userAttributes } = pickBy__default[\"default\"](formValues, selectUserAttributes);\n    // only include `phone_number` attribute in `userAttributes` if it has a value\n    if (isString(phone_number) && phone_number !== EMPTY_STRING) {\n        const { country_code } = formValues;\n        return {\n            ...userAttributes,\n            phone_number: sanitizePhoneNumber(country_code, phone_number),\n        };\n    }\n    return userAttributes;\n};\nconst getSignUpInput = (username, formValues, loginMechanism, authMethod) => {\n    const { password, ...values } = formValues;\n    const attributes = getUserAttributes(values);\n    const isPasswordless = authMethod && authMethod !== 'PASSWORD';\n    // For SMS OTP, set the email channel to empty string if present to force account creation with phone number\n    let userAttributes = attributes;\n    if (authMethod === 'SMS_OTP' && attributes.email) {\n        userAttributes = { ...attributes, email: '' };\n    }\n    const options = {\n        autoSignIn: isPasswordless\n            ? {\n                enabled: true,\n                authFlowType: 'USER_AUTH',\n                preferredChallenge: authMethod,\n            }\n            : DEFAULT_AUTO_SIGN_IN,\n        userAttributes: {\n            // use `username` value for `phone_number`\n            ...(loginMechanism === 'phone_number'\n                ? { ...userAttributes, phone_number: username }\n                : userAttributes),\n        },\n    };\n    return { username, password: isPasswordless ? undefined : password, options };\n};\nconst getUsernameSignUp = ({ formValues, loginMechanisms, }) => {\n    // Check if a specific auth method was selected via form data\n    const authMethod = formValues.__authMethod;\n    // For SMS_OTP, always use phone_number as username\n    if (authMethod === 'SMS_OTP') {\n        const { country_code, phone_number } = formValues;\n        return sanitizePhoneNumber(country_code, phone_number);\n    }\n    // For EMAIL_OTP, always use email as username\n    if (authMethod === 'EMAIL_OTP') {\n        return formValues.email;\n    }\n    // When 'username' is in loginMechanisms, always use the username field for the Username parameter.\n    // This handles both username-only mode and alias mode (username + email/phone as sign-in options).\n    // See: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#user-pool-settings-aliases\n    if (loginMechanisms.includes('username')) {\n        return formValues.username;\n    }\n    const loginMechanism = loginMechanisms[0];\n    if (loginMechanism === 'phone_number') {\n        const { country_code, phone_number } = formValues;\n        return sanitizePhoneNumber(country_code, phone_number);\n    }\n    // Otherwise, use the primary login mechanism (email as username)\n    return formValues[loginMechanism];\n};\n/**\n * Get available authentication methods based on backend capabilities and hidden methods\n */\nconst getAvailableAuthMethods = (passwordlessCapabilities, hiddenAuthMethods) => {\n    const allMethods = [];\n    // If hiddenAuthMethods is explicitly provided (even as empty array),\n    // assume all methods are available and let hiddenAuthMethods filter them\n    const assumeAllAvailable = hiddenAuthMethods !== undefined;\n    // PASSWORD is always available by default\n    allMethods.push('PASSWORD');\n    // Add passwordless methods if backend supports them OR if hiddenAuthMethods is explicitly set\n    if (assumeAllAvailable || passwordlessCapabilities?.emailOtpEnabled) {\n        allMethods.push('EMAIL_OTP');\n    }\n    if (assumeAllAvailable || passwordlessCapabilities?.smsOtpEnabled) {\n        allMethods.push('SMS_OTP');\n    }\n    if (assumeAllAvailable || passwordlessCapabilities?.webAuthnEnabled) {\n        allMethods.push('WEB_AUTHN');\n    }\n    // Filter out hidden methods\n    const hidden = hiddenAuthMethods ?? [];\n    const availableMethods = allMethods.filter((method) => !hidden.includes(method));\n    // Validate that at least one method remains\n    if (availableMethods.length === 0) {\n        throw new Error('InvalidPasswordlessSettings: All authentication methods are hidden');\n    }\n    return availableMethods;\n};\n\nconst { assign } = xstate.actions;\nconst clearActorDoneData = assign({ actorDoneData: undefined });\nconst clearChallengeName = assign({ challengeName: undefined });\nconst clearMissingAttributes = assign({ missingAttributes: undefined });\nconst clearError = assign({ remoteError: undefined });\nconst clearFormValues = assign({\n    formValues: (context) => ({\n        // Preserve username for passwordless flows to avoid \"username is required\" errors\n        username: context.formValues?.username,\n    }),\n});\nconst clearTouched = assign({ touched: {} });\nconst clearUser = assign({ user: undefined });\nconst clearValidationError = assign({ validationError: {} });\n/**\n * \"set\" actions\n */\nconst setTotpSecretCode = assign({\n    totpSecretCode: (_, { data }) => {\n        const { sharedSecret } = (data.nextStep?.totpSetupDetails ??\n            {});\n        return sharedSecret;\n    },\n});\nconst setAllowedMfaTypes = assign({\n    allowedMfaTypes: (_, { data }) => {\n        return data.nextStep?.allowedMFATypes;\n    },\n});\nconst setSignInStep = assign({ step: 'SIGN_IN' });\nconst setShouldVerifyUserAttributeStep = assign({\n    step: 'SHOULD_CONFIRM_USER_ATTRIBUTE',\n});\nconst setConfirmAttributeCompleteStep = assign({\n    step: 'CONFIRM_ATTRIBUTE_COMPLETE',\n});\n// map v6 `signInStep` to v5 `challengeName`\nconst setChallengeName = assign({\n    challengeName: (_, { data }) => {\n        const { signInStep } = data.nextStep;\n        switch (signInStep) {\n            case 'CONFIRM_SIGN_IN_WITH_SMS_CODE':\n                return 'SMS_MFA';\n            case 'CONFIRM_SIGN_IN_WITH_TOTP_CODE':\n                return 'SOFTWARE_TOKEN_MFA';\n            case 'CONFIRM_SIGN_IN_WITH_EMAIL_CODE':\n                return 'EMAIL_OTP';\n            case 'CONTINUE_SIGN_IN_WITH_MFA_SETUP_SELECTION':\n            case 'CONTINUE_SIGN_IN_WITH_EMAIL_SETUP':\n            case 'CONTINUE_SIGN_IN_WITH_TOTP_SETUP':\n                return 'MFA_SETUP';\n            case 'CONTINUE_SIGN_IN_WITH_MFA_SELECTION':\n                return 'SELECT_MFA_TYPE';\n            default:\n                return undefined;\n        }\n    },\n});\nconst setUsernameForgotPassword = assign({\n    username: ({ formValues, loginMechanisms }) => {\n        const loginMechanism = loginMechanisms[0];\n        const { username, country_code } = formValues;\n        if (loginMechanism === 'phone_number') {\n            // forgot password `formValues` uses `username` for base phone number value\n            // prefix `country_code` for full `username`\n            return sanitizePhoneNumber(country_code, username);\n        }\n        // default username field for loginMechanism === 'email' is \"username\" for SignIn\n        return username;\n    },\n});\nconst setUsernameSignUp = assign({ username: getUsernameSignUp });\nconst setUsernameSignIn = assign({\n    username: ({ formValues, loginMechanisms }) => {\n        const loginMechanism = loginMechanisms[0];\n        const { username, country_code } = formValues;\n        if (loginMechanism === 'phone_number') {\n            // sign in `formValues` uses `username` for base phone number value\n            // prefix `country_code` for full `username`\n            return sanitizePhoneNumber(country_code, username);\n        }\n        // return `email` and `username`\n        return username;\n    },\n});\nconst setNextSignInStep = assign({\n    step: (_, { data }) => data.nextStep.signInStep === 'DONE'\n        ? 'SIGN_IN_COMPLETE'\n        : data.nextStep.signInStep,\n});\nconst setNextSignUpStep = assign({\n    step: (_, { data }) => data.nextStep.signUpStep === 'DONE'\n        ? 'SIGN_UP_COMPLETE'\n        : data.nextStep.signUpStep,\n});\nconst setNextResetPasswordStep = assign({\n    step: (_, { data }) => data.nextStep.resetPasswordStep === 'DONE'\n        ? 'RESET_PASSWORD_COMPLETE'\n        : data.nextStep.resetPasswordStep,\n});\nconst setMissingAttributes = assign({\n    missingAttributes: (_, { data }) => data.nextStep?.missingAttributes,\n});\nconst setFieldErrors = assign({\n    validationError: (_, { data }) => data,\n});\nconst setRemoteError = assign({\n    remoteError: (_, { data }) => {\n        if (data.name === 'NoUserPoolError') {\n            return `Configuration error (see console) – please contact the administrator`;\n        }\n        const message = data?.message || '';\n        // Handle USER_AUTH flow not enabled error\n        if (message.includes('USER_AUTH flow not enabled')) {\n            return translate(DefaultTexts.PASSWORDLESS_NOT_ENABLED);\n        }\n        // Handle cannot send code error\n        if (message.includes('Cannot send code to either')) {\n            return translate(DefaultTexts.CODE_DELIVERY_FAILED);\n        }\n        // Handle invalid/wrong verification code\n        if (message.includes('Invalid code or auth state')) {\n            return translate(DefaultTexts.VERIFICATION_CODE_INVALID);\n        }\n        // Handle expired verification code\n        if (message.includes('session is expired')) {\n            return translate(DefaultTexts.VERIFICATION_CODE_EXPIRED);\n        }\n        // Handle passkey authentication canceled\n        if (message.includes('ceremony has been canceled')) {\n            return translate(DefaultTexts.PASSKEY_AUTHENTICATION_CANCELED);\n        }\n        return message || data;\n    },\n});\nconst setUser = assign({ user: (_, { data }) => data });\nconst resolveCodeDeliveryDetails = (details) => ({\n    Destination: details.destination,\n    DeliveryMedium: details.deliveryMedium,\n    AttributeName: details.attributName,\n});\nconst setCodeDeliveryDetails = assign({\n    codeDeliveryDetails: (_, { data }) => {\n        if (data\n            ?.nextStep?.codeDeliveryDetails) {\n            return resolveCodeDeliveryDetails(data\n                .nextStep.codeDeliveryDetails);\n        }\n        return resolveCodeDeliveryDetails(data);\n    },\n});\nconst handleInput = assign({\n    formValues: (context, { data }) => {\n        const { name, value } = data;\n        return { ...context['formValues'], [name]: value };\n    },\n});\nconst handleSubmit = assign({\n    formValues: (context, { data }) => \n    // do not trim password\n    trimValues({ ...context['formValues'], ...data }, 'password'),\n});\nconst handleBlur = assign({\n    touched: (context, { data }) => ({\n        ...context['touched'],\n        [data.name]: true,\n    }),\n});\nconst setUnverifiedUserAttributes = assign({\n    unverifiedUserAttributes: (context, { data }) => {\n        // Use fetchedUserAttributes from context if data is not provided\n        const attributes = data || context.fetchedUserAttributes;\n        if (!attributes)\n            return {};\n        const { email, phone_number } = attributes;\n        const unverifiedUserAttributes = {\n            ...(email && { email }),\n            ...(phone_number && { phone_number }),\n        };\n        return unverifiedUserAttributes;\n    },\n});\nconst clearSelectedUserAttribute = assign({ selectedUserAttribute: undefined });\nconst setSelectedUserAttribute = assign({\n    selectedUserAttribute: (context) => context.formValues?.unverifiedAttr,\n});\n// Maps to unexposed `ConfirmSignUpSignUpStep`\nconst setConfirmSignUpSignUpStep = assign({ step: 'CONFIRM_SIGN_UP' });\n// Passwordless actions\nconst setSelectedAuthMethod = assign({\n    selectedAuthMethod: (_, { data }) => data.method,\n});\nconst setSelectedAuthMethodFromForm = assign({\n    selectedAuthMethod: (_, { data }) => {\n        // Extract method from form data if present, default to PASSWORD for form submissions\n        return data?.__authMethod || 'PASSWORD';\n    },\n});\nconst setSelectAuthMethodStep = assign({\n    step: 'SELECT_AUTH_METHOD',\n});\nconst setFetchedUserAttributes = assign({\n    fetchedUserAttributes: (_, event) => event.data,\n});\nconst setHasExistingPasskeys = assign({\n    hasExistingPasskeys: (_, event) => event.data,\n});\nconst clearHasExistingPasskeys = assign({\n    hasExistingPasskeys: false,\n});\nconst ACTIONS = {\n    clearActorDoneData,\n    clearChallengeName,\n    clearError,\n    clearFormValues,\n    clearHasExistingPasskeys,\n    clearMissingAttributes,\n    clearSelectedUserAttribute,\n    clearTouched,\n    clearUser,\n    clearValidationError,\n    handleBlur,\n    handleInput,\n    handleSubmit,\n    setAllowedMfaTypes,\n    setChallengeName,\n    setCodeDeliveryDetails,\n    setFetchedUserAttributes,\n    setFieldErrors,\n    setHasExistingPasskeys,\n    setMissingAttributes,\n    setNextResetPasswordStep,\n    setNextSignInStep,\n    setNextSignUpStep,\n    setRemoteError,\n    setConfirmAttributeCompleteStep,\n    setConfirmSignUpSignUpStep,\n    setSelectAuthMethodStep,\n    setSelectedAuthMethod,\n    setSelectedAuthMethodFromForm,\n    setShouldVerifyUserAttributeStep,\n    setSelectedUserAttribute,\n    setSignInStep,\n    setTotpSecretCode,\n    setUser,\n    setUnverifiedUserAttributes,\n    setUsernameForgotPassword,\n    setUsernameSignIn,\n    setUsernameSignUp,\n};\n\nconst SIGN_IN_STEP_MFA_CONFIRMATION = [\n    'CONFIRM_SIGN_IN_WITH_SMS_CODE',\n    'CONFIRM_SIGN_IN_WITH_TOTP_CODE',\n    'CONFIRM_SIGN_IN_WITH_EMAIL_CODE',\n];\n// response next step guards\nconst shouldConfirmSignInWithNewPassword = (_, { data }) => data?.nextStep.signInStep ===\n    'CONFIRM_SIGN_IN_WITH_NEW_PASSWORD_REQUIRED';\nconst shouldResetPasswordFromSignIn = (_, { data }) => data?.nextStep?.signInStep === 'RESET_PASSWORD';\nconst shouldConfirmSignUpFromSignIn = (_, { data }) => data?.nextStep.signInStep === 'CONFIRM_SIGN_UP';\nconst shouldAutoSignIn = (_, { data }) => data?.nextStep.signUpStep === 'COMPLETE_AUTO_SIGN_IN';\nconst hasCompletedSignIn = (_, { data }) => data?.nextStep.signInStep === 'DONE';\nconst hasCompletedSignUp = (_, { data }) => data?.nextStep.signUpStep === 'DONE';\nconst hasCompletedResetPassword = (_, { data }) => data?.nextStep.resetPasswordStep === 'DONE';\n// actor done guards read `step` from actor exit event\nconst hasCompletedAttributeConfirmation = (_, { data }) => data?.step === 'CONFIRM_ATTRIBUTE_COMPLETE';\nconst isConfirmUserAttributeStep = (_, { data }) => data?.step === 'CONFIRM_ATTRIBUTE_WITH_CODE';\nconst isShouldConfirmUserAttributeStep = (_, { data }) => data?.step === 'SHOULD_CONFIRM_USER_ATTRIBUTE';\nconst isResetPasswordStep = (_, { data }) => data?.step === 'RESET_PASSWORD';\nconst isConfirmSignUpStep = (_, { data }) => data?.step === 'CONFIRM_SIGN_UP';\n// actor entry guards read `step` from actor context\nconst shouldConfirmSignIn = ({ step }) => SIGN_IN_STEP_MFA_CONFIRMATION.includes(step);\nconst shouldSetupTotp = ({ step }) => step === 'CONTINUE_SIGN_IN_WITH_TOTP_SETUP';\nconst shouldSetupEmail = ({ step }) => step === 'CONTINUE_SIGN_IN_WITH_EMAIL_SETUP';\nconst shouldSelectMfaType = ({ step }) => [\n    'CONTINUE_SIGN_IN_WITH_MFA_SELECTION',\n    'CONTINUE_SIGN_IN_WITH_MFA_SETUP_SELECTION',\n].includes(step);\nconst shouldResetPassword = ({ step }) => step === 'RESET_PASSWORD';\nconst shouldConfirmResetPassword = ({ step }) => step === 'CONFIRM_RESET_PASSWORD_WITH_CODE';\nconst shouldConfirmSignUp = ({ step }) => step === 'CONFIRM_SIGN_UP';\n// miscellaneous guards\nconst shouldVerifyAttribute = (context, event) => {\n    // Try to get data from event first (for backward compatibility), then from context\n    const data = (event.data || context.fetchedUserAttributes);\n    if (!data)\n        return false;\n    const { email, phone_number, phone_number_verified, email_verified } = data;\n    // if neither email nor phone_number exist\n    // there is nothing to verify\n    if (!email && !phone_number)\n        return false;\n    // email/phone_verified is returned as a string\n    const emailNotVerified = email_verified === undefined || email_verified === 'false';\n    const phoneNotVerified = phone_number_verified === undefined || phone_number_verified === 'false';\n    // only request verification if both email and phone are not verified\n    return emailNotVerified && phoneNotVerified;\n};\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 */\nconst isUserAlreadyConfirmed = (_, { data }) => data.message === 'User is already confirmed.';\n// passwordless guards\nconst shouldSelectAuthMethod = ({ availableAuthMethods, preferredChallenge, selectedAuthMethod, }) => {\n    // Show selection if:\n    // 1. Multiple methods available\n    // 2. AND either no preferredChallenge OR selectedAuthMethod is explicitly cleared (null)\n    const hasMultipleMethods = availableAuthMethods && availableAuthMethods.length > 1;\n    const shouldShowSelection = !preferredChallenge || selectedAuthMethod === null;\n    return hasMultipleMethods && shouldShowSelection;\n};\nconst shouldPromptPasskeyRegistration = ({ passwordless, hasExistingPasskeys, }) => {\n    const { passkeyRegistrationPrompts } = passwordless || {};\n    if (!passkeyRegistrationPrompts) {\n        return false;\n    }\n    // Don't prompt if user already has passkeys\n    if (hasExistingPasskeys) {\n        return false;\n    }\n    if (typeof passkeyRegistrationPrompts === 'boolean') {\n        return passkeyRegistrationPrompts;\n    }\n    return passkeyRegistrationPrompts.afterSignin === 'ALWAYS';\n};\nconst shouldPromptPasskeyRegistrationAfterSignup = ({ passwordless, hasExistingPasskeys, }) => {\n    const { passkeyRegistrationPrompts } = passwordless || {};\n    if (!passkeyRegistrationPrompts) {\n        return false;\n    }\n    // Don't prompt if user already has passkeys\n    if (hasExistingPasskeys) {\n        return false;\n    }\n    if (typeof passkeyRegistrationPrompts === 'boolean') {\n        return passkeyRegistrationPrompts;\n    }\n    return passkeyRegistrationPrompts.afterSignup === 'ALWAYS';\n};\nconst hasPasskeyRegistrationPrompts = ({ passwordless }) => passwordless?.passkeyRegistrationPrompts != null;\nconst shouldReturnToSelectMethod = ({ selectedAuthMethod, step, }) => selectedAuthMethod != null && step === 'SELECT_AUTH_METHOD';\nconst GUARDS = {\n    hasCompletedAttributeConfirmation,\n    hasCompletedResetPassword,\n    hasCompletedSignIn,\n    hasCompletedSignUp,\n    hasPasskeyRegistrationPrompts,\n    isConfirmSignUpStep,\n    isConfirmUserAttributeStep,\n    isResetPasswordStep,\n    isShouldConfirmUserAttributeStep,\n    isUserAlreadyConfirmed,\n    shouldAutoSignIn,\n    shouldConfirmResetPassword,\n    shouldConfirmSignIn,\n    shouldConfirmSignInWithNewPassword,\n    shouldConfirmSignUp,\n    shouldConfirmSignUpFromSignIn,\n    shouldResetPassword,\n    shouldResetPasswordFromSignIn,\n    shouldReturnToSelectMethod,\n    shouldSelectAuthMethod,\n    shouldSetupTotp,\n    shouldSetupEmail,\n    shouldSelectMfaType,\n    shouldVerifyAttribute,\n    shouldPromptPasskeyRegistration,\n    shouldPromptPasskeyRegistrationAfterSignup,\n};\n\n// Runs all validators given. Resolves if there are no error. Rejects otherwise.\nconst runValidators = async (formData, touchData, passwordSettings, validators) => {\n    const errors = await Promise.all(validators.map((validator) => validator(formData, touchData, passwordSettings)));\n    const mergedError = merge__default[\"default\"]({}, ...errors);\n    if (isEmpty(mergedError)) {\n        // no errors were found\n        return Promise.resolve();\n    }\n    else {\n        return Promise.reject(mergedError);\n    }\n};\n\n// Cognito does not allow a password length less then 8 characters\nconst DEFAULT_COGNITO_PASSWORD_MIN_LENGTH = 8;\nconst isInvalidUserAtributes = (userAttributes) => Array.isArray(userAttributes);\nconst parseUserAttributes = (userAttributes) => {\n    if (!userAttributes) {\n        return undefined;\n    }\n    // `aws-amplify` versions <= 6.0.5 return an array of `userAttributes` rather than an object\n    if (isInvalidUserAtributes(userAttributes)) {\n        return Object.entries(userAttributes).map(([_, value]) => Object.keys(value)[0]);\n    }\n    return Object.keys(userAttributes);\n};\nconst defaultServices = {\n    async getAmplifyConfig() {\n        const result = awsAmplify.Amplify.getConfig();\n        const cliConfig = result.Auth?.Cognito;\n        const { loginWith, userAttributes } = result.Auth?.Cognito ?? {};\n        const parsedLoginMechanisms = loginWith\n            ? Object.entries(loginWith)\n                .filter(([key, _value]) => key !== 'oauth')\n                .filter(([_key, value]) => !!value)\n                .map((keyValueArray) => {\n                return keyValueArray[0] === 'phone' // the key for phone_number is phone in getConfig but everywhere else we treat is as phone_number\n                    ? 'phone_number'\n                    : keyValueArray[0];\n            })\n            : undefined;\n        const parsedSignupAttributes = parseUserAttributes(userAttributes);\n        const parsedSocialProviders = loginWith?.oauth?.providers\n            ? loginWith.oauth.providers?.map((provider) => provider.toString().toLowerCase())\n            : undefined;\n        // Detect passwordless capabilities from amplify_outputs.json\n        // Support both snake_case (legacy) and camelCase (current) formats\n        const passwordlessConfig = result.Auth?.Cognito?.passwordless;\n        const passwordlessCapabilities = {\n            emailOtpEnabled: passwordlessConfig?.emailOtpEnabled ??\n                passwordlessConfig?.email_otp_enabled === true,\n            smsOtpEnabled: passwordlessConfig?.smsOtpEnabled ??\n                passwordlessConfig?.sms_otp_enabled === true,\n            webAuthnEnabled: !!(passwordlessConfig?.webAuthn ?? passwordlessConfig?.web_authn),\n            preferredChallenge: passwordlessConfig?.preferredChallenge ??\n                passwordlessConfig?.preferred_challenge,\n        };\n        return {\n            ...cliConfig,\n            loginMechanisms: parsedLoginMechanisms,\n            signUpAttributes: parsedSignupAttributes,\n            socialProviders: parsedSocialProviders,\n            passwordlessCapabilities,\n        };\n    },\n    getCurrentUser: auth.getCurrentUser,\n    handleSignIn: auth.signIn,\n    handleSignUp: auth.signUp,\n    handleConfirmSignIn: auth.confirmSignIn,\n    handleConfirmSignUp: auth.confirmSignUp,\n    handleForgotPasswordSubmit: auth.confirmResetPassword,\n    handleForgotPassword: auth.resetPassword,\n    handleResendSignUpCode: auth.resendSignUpCode,\n    // Validation hooks for overriding\n    async validateCustomSignUp(_, __) { },\n    async validateFormPassword(formData, touchData, passwordSettings) {\n        const { password } = formData;\n        const { password: touched_password } = touchData;\n        /**\n         * If the password is not touched,\n         * or if the password settings are not set, we don't need to validate it.\n         */\n        if (!touched_password || !passwordSettings)\n            return null;\n        const password_complexity = [];\n        const policyMinLength = passwordSettings.minLength ?? DEFAULT_COGNITO_PASSWORD_MIN_LENGTH;\n        if (password.length < policyMinLength) {\n            password_complexity.push(`Password must have at least ${policyMinLength} characters`);\n        }\n        if (passwordSettings.requireLowercase && !/[a-z]/.test(password))\n            password_complexity.push('Password must have lower case letters');\n        if (passwordSettings.requireUppercase && !/[A-Z]/.test(password))\n            password_complexity.push('Password must have upper case letters');\n        if (passwordSettings.requireNumbers && !/[0-9]/.test(password))\n            password_complexity.push('Password must have numbers');\n        // https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-policies.html\n        if (passwordSettings.requireSpecialCharacters && !hasSpecialChars(password))\n            password_complexity.push('Password must have special characters');\n        /**\n         * Only return an error if there is at least one error.\n         */\n        return password_complexity.length !== 0\n            ? { password: password_complexity }\n            : null;\n    },\n    async validateConfirmPassword(formData, touchData) {\n        const { password, confirm_password } = formData;\n        const { confirm_password: touched_confirm_password, password: touched_password, } = touchData;\n        if (!password && !confirm_password) {\n            // these inputs are clean, don't complain yet\n            return null;\n        }\n        else if ((password || confirm_password) &&\n            password !== confirm_password &&\n            ((touched_confirm_password && touched_password) ||\n                (password?.length >= 6 && confirm_password?.length >= 6))) {\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            return {\n                confirm_password: 'Your passwords must match',\n            };\n        }\n    },\n    async validatePreferredUsername(_, __) { },\n    async validateRequiredFieldsForAuthMethod(formData) {\n        const authMethod = formData.__authMethod;\n        // If no auth method specified, skip validation (will use default required fields)\n        if (!authMethod)\n            return null;\n        // Check required fields based on auth method\n        if (authMethod === 'EMAIL_OTP' && !formData.email) {\n            return { email: 'Email is required for Email OTP sign up' };\n        }\n        if (authMethod === 'SMS_OTP' && !formData.phone_number) {\n            return { phone_number: 'Phone number is required for SMS OTP sign up' };\n        }\n        if (authMethod === 'PASSWORD') {\n            const errors = {};\n            if (!formData.password) {\n                errors.password = 'Password is required';\n            }\n            if (!formData.confirm_password) {\n                errors.confirm_password = 'Confirm Password is required';\n            }\n            return Object.keys(errors).length > 0 ? errors : null;\n        }\n        return null;\n    },\n};\n\nfunction forgotPasswordActor({ services, }) {\n    return xstate.createMachine({\n        id: 'forgotPasswordActor',\n        initial: 'init',\n        predictableActionArguments: true,\n        states: {\n            init: {\n                always: [\n                    {\n                        cond: 'shouldResetPassword',\n                        target: 'confirmResetPassword',\n                    },\n                    {\n                        cond: 'shouldConfirmResetPassword',\n                        target: 'confirmResetPassword',\n                    },\n                    {\n                        target: 'forgotPassword',\n                    },\n                ],\n            },\n            forgotPassword: {\n                initial: 'edit',\n                entry: 'sendUpdate',\n                exit: ['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', 'clearError', 'setUsernameForgotPassword'],\n                        invoke: {\n                            src: 'handleResetPassword',\n                            onDone: {\n                                actions: [\n                                    'setCodeDeliveryDetails',\n                                    'setNextResetPasswordStep',\n                                ],\n                                target: '#forgotPasswordActor.confirmResetPassword',\n                            },\n                            onError: {\n                                actions: 'setRemoteError',\n                                target: 'edit',\n                            },\n                        },\n                    },\n                },\n            },\n            confirmResetPassword: {\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                    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: 'handleResetPassword',\n                                    onDone: { target: 'idle' },\n                                    onError: { actions: 'setRemoteError', target: 'idle' },\n                                },\n                            },\n                            pending: {\n                                tags: 'pending',\n                                entry: ['clearError', 'sendUpdate'],\n                                invoke: {\n                                    src: 'handleConfirmResetPassword',\n                                    onDone: [\n                                        {\n                                            cond: 'hasCompletedResetPassword',\n                                            actions: 'setNextResetPasswordStep',\n                                            target: '#forgotPasswordActor.resolved',\n                                        },\n                                        {\n                                            actions: 'setSignInStep',\n                                            target: '#forgotPasswordActor.resolved',\n                                        },\n                                    ],\n                                    onError: { actions: 'setRemoteError', target: 'idle' },\n                                },\n                            },\n                        },\n                    },\n                },\n            },\n            resolved: {\n                type: 'final',\n                data: ({ step }) => ({ step }),\n            },\n        },\n    }, {\n        // sendUpdate is a HOC\n        actions: { ...ACTIONS, sendUpdate: xstate.sendUpdate() },\n        guards: GUARDS,\n        services: {\n            handleResetPassword({ username }) {\n                return services.handleForgotPassword({ username });\n            },\n            handleConfirmResetPassword({ formValues, username }) {\n                const { confirmation_code: confirmationCode, password: newPassword } = formValues;\n                return services.handleForgotPasswordSubmit({\n                    confirmationCode,\n                    newPassword,\n                    username,\n                });\n            },\n            validateFields(context) {\n                return runValidators(context.formValues, context.touched, context.passwordSettings, [\n                    defaultServices.validateFormPassword,\n                    defaultServices.validateConfirmPassword,\n                ]);\n            },\n        },\n    });\n}\n\nconst getFederatedSignInState = (target) => ({\n    entry: ['sendUpdate', 'clearError'],\n    invoke: {\n        src: 'signInWithRedirect',\n        onDone: { target },\n        onError: { actions: 'setRemoteError', target },\n    },\n});\nconst getConfirmSignInFormValuesKey = (signInStep) => {\n    if ([\n        'CONTINUE_SIGN_IN_WITH_MFA_SELECTION',\n        'CONTINUE_SIGN_IN_WITH_MFA_SETUP_SELECTION',\n    ].includes(signInStep)) {\n        return 'mfa_type';\n    }\n    if (signInStep === 'CONTINUE_SIGN_IN_WITH_EMAIL_SETUP') {\n        return 'email';\n    }\n    return 'confirmation_code';\n};\n\nconst handleSignInResponse = {\n    onDone: [\n        {\n            cond: 'hasCompletedSignIn',\n            actions: 'setNextSignInStep',\n            target: '#signInActor.fetchUserAttributes',\n        },\n        {\n            cond: 'shouldConfirmSignInWithNewPassword',\n            actions: ['setMissingAttributes', 'setNextSignInStep'],\n            target: '#signInActor.forceChangePassword',\n        },\n        {\n            cond: 'shouldResetPasswordFromSignIn',\n            actions: 'setNextSignInStep',\n            target: '#signInActor.resetPassword',\n        },\n        {\n            cond: 'shouldConfirmSignUpFromSignIn',\n            actions: 'setNextSignInStep',\n            target: '#signInActor.resendSignUpCode',\n        },\n        {\n            actions: [\n                'setChallengeName',\n                'setMissingAttributes',\n                'setNextSignInStep',\n                'setTotpSecretCode',\n                'setAllowedMfaTypes',\n                'setCodeDeliveryDetails',\n            ],\n            target: '#signInActor.init',\n        },\n    ],\n    onError: { actions: 'setRemoteError', target: 'edit' },\n};\nconst getDefaultConfirmSignInState = (exit) => ({\n    initial: 'edit',\n    exit,\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                RESEND: { target: 'resend' },\n            },\n        },\n        submit: {\n            tags: 'pending',\n            entry: ['sendUpdate', 'clearError'],\n            invoke: { src: 'confirmSignIn', ...handleSignInResponse },\n        },\n        resend: {\n            tags: 'pending',\n            entry: ['sendUpdate', 'clearError'],\n            invoke: {\n                src: 'resendSignInCode',\n                onDone: {\n                    actions: ['setCodeDeliveryDetails', 'sendUpdate'],\n                    target: 'edit',\n                },\n                onError: {\n                    actions: 'setRemoteError',\n                    target: 'edit',\n                },\n            },\n        },\n    },\n});\nfunction signInActor({ services }) {\n    return xstate.createMachine({\n        id: 'signInActor',\n        initial: 'init',\n        predictableActionArguments: true,\n        states: {\n            init: {\n                always: [\n                    {\n                        cond: 'shouldConfirmSignIn',\n                        target: 'confirmSignIn',\n                    },\n                    {\n                        cond: 'shouldSetupTotp',\n                        target: 'setupTotp',\n                    },\n                    {\n                        cond: 'shouldSetupEmail',\n                        target: 'setupEmail',\n                    },\n                    {\n                        cond: 'shouldSelectMfaType',\n                        target: 'selectMfaType',\n                    },\n                    {\n                        cond: ({ step }) => step === 'CONFIRM_SIGN_IN_WITH_NEW_PASSWORD_REQUIRED',\n                        actions: 'setActorDoneData',\n                        target: 'forceChangePassword',\n                    },\n                    { target: 'signIn' },\n                ],\n            },\n            federatedSignIn: { ...getFederatedSignInState('signIn') },\n            fetchUserAttributes: {\n                invoke: {\n                    src: 'fetchUserAttributes',\n                    onDone: [\n                        {\n                            cond: 'hasPasskeyRegistrationPrompts',\n                            actions: 'setFetchedUserAttributes',\n                            target: 'checkPasskeys',\n                        },\n                        {\n                            actions: 'setFetchedUserAttributes',\n                            target: 'evaluatePasskeyPrompt',\n                        },\n                    ],\n                    onError: {\n                        actions: 'setConfirmAttributeCompleteStep',\n                        target: '#signInActor.resolved',\n                    },\n                },\n            },\n            checkPasskeys: {\n                invoke: {\n                    src: async () => {\n                        try {\n                            const result = await auth.listWebAuthnCredentials();\n                            return result.credentials && result.credentials.length > 0;\n                        }\n                        catch {\n                            return false;\n                        }\n                    },\n                    onDone: {\n                        actions: 'setHasExistingPasskeys',\n                        target: 'evaluatePasskeyPrompt',\n                    },\n                    onError: {\n                        actions: 'clearHasExistingPasskeys',\n                        target: 'evaluatePasskeyPrompt',\n                    },\n                },\n            },\n            evaluatePasskeyPrompt: {\n                always: [\n                    {\n                        cond: 'shouldPromptPasskeyRegistration',\n                        target: '#signInActor.passkeyPrompt',\n                    },\n                    {\n                        cond: 'shouldVerifyAttribute',\n                        actions: [\n                            'setShouldVerifyUserAttributeStep',\n                            'setUnverifiedUserAttributes',\n                        ],\n                        target: '#signInActor.resolved',\n                    },\n                    {\n                        actions: 'setConfirmAttributeCompleteStep',\n                        target: '#signInActor.resolved',\n                    },\n                ],\n            },\n            resendSignUpCode: {\n                invoke: {\n                    src: 'handleResendSignUpCode',\n                    onDone: {\n                        actions: 'setCodeDeliveryDetails',\n                        target: '#signInActor.resolved',\n                    },\n                    onError: {\n                        actions: 'setRemoteError',\n                        target: '#signInActor.signIn',\n                    },\n                },\n            },\n            resetPassword: {\n                invoke: {\n                    src: 'resetPassword',\n                    onDone: [\n                        {\n                            actions: 'setCodeDeliveryDetails',\n                            target: '#signInActor.resolved',\n                        },\n                    ],\n                    onError: { actions: ['setRemoteError', 'sendUpdate'] },\n                },\n            },\n            signIn: {\n                initial: 'edit',\n                exit: 'clearTouched',\n                states: {\n                    edit: {\n                        entry: 'sendUpdate',\n                        on: {\n                            CHANGE: { actions: 'handleInput' },\n                            FEDERATED_SIGN_IN: { target: '#signInActor.federatedSignIn' },\n                            SHOW_AUTH_METHODS: {\n                                actions: 'setUsernameSignIn',\n                                target: 'selectMethod',\n                            },\n                            SUBMIT: [\n                                {\n                                    cond: 'shouldSelectAuthMethod',\n                                    actions: 'handleSubmit',\n                                    target: 'selectMethod',\n                                },\n                                {\n                                    actions: 'handleSubmit',\n                                    target: 'submit',\n                                },\n                            ],\n                        },\n                    },\n                    selectMethod: {\n                        entry: [\n                            'sendUpdate',\n                            'setSelectAuthMethodStep',\n                            'setUsernameSignIn',\n                        ],\n                        on: {\n                            SELECT_METHOD: {\n                                actions: 'setSelectedAuthMethod',\n                                target: 'submit',\n                            },\n                            SUBMIT: {\n                                actions: ['handleSubmit', 'setSelectedAuthMethodFromForm'],\n                                target: 'submit',\n                            },\n                            SIGN_IN: {\n                                target: 'edit',\n                            },\n                        },\n                    },\n                    submit: {\n                        tags: 'pending',\n                        entry: ['clearError', 'sendUpdate', 'setUsernameSignIn'],\n                        exit: 'clearFormValues',\n                        invoke: {\n                            src: 'handleSignIn',\n                            onDone: handleSignInResponse.onDone,\n                            onError: [\n                                {\n                                    cond: 'shouldReturnToSelectMethod',\n                                    actions: 'setRemoteError',\n                                    target: 'selectMethod',\n                                },\n                                handleSignInResponse.onError,\n                            ],\n                        },\n                    },\n                },\n            },\n            confirmSignIn: {\n                ...getDefaultConfirmSignInState([\n                    'clearChallengeName',\n                    'clearFormValues',\n                    'clearError',\n                    'clearTouched',\n                ]),\n            },\n            forceChangePassword: {\n                entry: 'sendUpdate',\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: {\n                                actions: 'setSignInStep',\n                                target: '#signInActor.resolved',\n                            },\n                            CHANGE: {\n                                actions: 'handleInput',\n                                target: '.pending',\n                            },\n                            BLUR: {\n                                actions: 'handleBlur',\n                                target: '.pending',\n                            },\n                        },\n                    },\n                    submit: {\n                        initial: 'edit',\n                        entry: 'clearError',\n                        states: {\n                            edit: {\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                                        actions: 'clearValidationError',\n                                        target: 'pending',\n                                    },\n                                    onError: { actions: 'setFieldErrors', target: 'edit' },\n                                },\n                            },\n                            pending: {\n                                tags: 'pending',\n                                entry: ['sendUpdate', 'clearError'],\n                                invoke: {\n                                    src: 'handleForceChangePassword',\n                                    ...handleSignInResponse,\n                                },\n                            },\n                        },\n                    },\n                },\n            },\n            setupTotp: {\n                ...getDefaultConfirmSignInState([\n                    'clearFormValues',\n                    'clearError',\n                    'clearTouched',\n                ]),\n            },\n            setupEmail: {\n                ...getDefaultConfirmSignInState([\n                    'clearFormValues',\n                    'clearError',\n                    'clearTouched',\n                ]),\n            },\n            selectMfaType: {\n                ...getDefaultConfirmSignInState([\n                    'clearFormValues',\n                    'clearError',\n                    'clearTouched',\n                ]),\n            },\n            passkeyPrompt: {\n                entry: 'sendUpdate',\n                on: {\n                    SUBMIT: {\n                        actions: 'setConfirmAttributeCompleteStep',\n                        target: 'resolved',\n                    },\n                    SKIP: {\n                        actions: 'setConfirmAttributeCompleteStep',\n                        target: 'resolved',\n                    },\n                },\n            },\n            resolved: {\n                type: 'final',\n                data: (context) => ({\n                    codeDeliveryDetails: context.codeDeliveryDetails,\n                    remoteError: context.remoteError,\n                    step: context.step,\n                    unverifiedUserAttributes: context.unverifiedUserAttributes,\n                    username: context.username,\n                }),\n            },\n        },\n    }, {\n        // sendUpdate is a HOC\n        actions: { ...ACTIONS, sendUpdate: xstate.sendUpdate() },\n        guards: GUARDS,\n        services: {\n            async fetchUserAttributes() {\n                return auth.fetchUserAttributes();\n            },\n            resetPassword({ username }) {\n                return auth.resetPassword({ username });\n            },\n            handleResendSignUpCode({ username }) {\n                return services.handleResendSignUpCode({ username });\n            },\n            resendSignInCode({ username, selectedAuthMethod, availableAuthMethods, preferredChallenge, }) {\n                // Resend code by calling signIn again with the same parameters\n                const method = selectedAuthMethod ??\n                    preferredChallenge ??\n                    availableAuthMethods?.[0] ??\n                    'PASSWORD';\n                return services.handleSignIn({\n                    username,\n                    options: {\n                        authFlowType: 'USER_AUTH',\n                        preferredChallenge: method,\n                    },\n                });\n            },\n            handleSignIn({ formValues, username, selectedAuthMethod, availableAuthMethods, preferredChallenge, }) {\n                // Determine which method to use\n                const method = selectedAuthMethod ??\n                    preferredChallenge ??\n                    availableAuthMethods?.[0] ??\n                    'PASSWORD';\n                if (method === 'PASSWORD') {\n                    // Traditional password flow\n                    const { password } = formValues;\n                    return services.handleSignIn({ username, password });\n                }\n                else {\n                    // Passwordless flow using USER_AUTH\n                    return services.handleSignIn({\n                        username,\n                        options: {\n                            authFlowType: 'USER_AUTH',\n                            preferredChallenge: method,\n                        },\n                    });\n                }\n            },\n            confirmSignIn({ formValues, step }) {\n                const formValuesKey = getConfirmSignInFormValuesKey(step);\n                const { [formValuesKey]: challengeResponse } = formValues;\n                return services.handleConfirmSignIn({ challengeResponse });\n            },\n            async handleForceChangePassword({ formValues }) {\n                let { password: challengeResponse, phone_number, country_code, \n                // destructure and toss UI confirm_password field\n                // to prevent error from sending to confirmSignIn\n                confirm_password, username, ...userAttributes } = formValues;\n                let phoneNumberWithCountryCode;\n                if (phone_number) {\n                    phoneNumberWithCountryCode =\n                        `${country_code}${phone_number}`.replace(/[^A-Z0-9+]/gi, '');\n                    userAttributes = {\n                        ...userAttributes,\n                        phone_number: phoneNumberWithCountryCode,\n                    };\n                }\n                const input = {\n                    challengeResponse,\n                    options: { userAttributes },\n                };\n                return auth.confirmSignIn(input);\n            },\n            signInWithRedirect(_, { data }) {\n                return auth.signInWithRedirect(data);\n            },\n            async validateFields(context) {\n                return runValidators(context.formValues, context.touched, context.passwordSettings, [\n                    defaultServices.validateFormPassword,\n                    defaultServices.validateConfirmPassword,\n                ]);\n            },\n        },\n    });\n}\n\nconst handleResetPasswordResponse = {\n    onDone: [\n        { actions: 'setCodeDeliveryDetails', target: '#signUpActor.resolved' },\n    ],\n    onError: { actions: ['setRemoteError', 'sendUpdate'] },\n};\nconst handleAutoSignInResponse = {\n    onDone: [\n        {\n            cond: 'hasCompletedSignIn',\n            actions: 'setNextSignInStep',\n            target: '#signUpActor.fetchUserAttributes',\n        },\n        {\n            cond: 'shouldConfirmSignInWithNewPassword',\n            actions: 'setNextSignInStep',\n            target: '#signUpActor.resolved',\n        },\n        {\n            cond: 'shouldResetPasswordFromSignIn',\n            actions: 'setNextSignInStep',\n            target: '#signUpActor.resetPassword',\n        },\n        {\n            cond: 'shouldConfirmSignUpFromSignIn',\n            actions: 'setNextSignInStep',\n            target: '#signUpActor.resendSignUpCode',\n        },\n        {\n            actions: [\n                'setNextSignInStep',\n                'setChallengeName',\n                'setMissingAttributes',\n                'setTotpSecretCode',\n                'setAllowedMfaTypes',\n            ],\n            target: '#signUpActor.resolved',\n        },\n    ],\n    onError: {\n        actions: 'setRemoteError',\n        target: '#signUpActor.resolved',\n    },\n};\nfunction signUpActor({ services }) {\n    return xstate.createMachine({\n        id: 'signUpActor',\n        initial: 'init',\n        predictableActionArguments: true,\n        states: {\n            init: {\n                always: [\n                    { cond: 'shouldConfirmSignUp', target: 'confirmSignUp' },\n                    { target: 'signUp' },\n                ],\n            },\n            autoSignIn: {\n                tags: 'pending',\n                invoke: { src: 'autoSignIn', ...handleAutoSignInResponse },\n            },\n            fetchUserAttributes: {\n                invoke: {\n                    src: 'fetchUserAttributes',\n                    onDone: [\n                        {\n                            cond: 'hasPasskeyRegistrationPrompts',\n                            actions: 'setFetchedUserAttributes',\n                            target: 'checkPasskeys',\n                        },\n                        {\n                            actions: 'setFetchedUserAttributes',\n                            target: 'evaluatePasskeyPrompt',\n                        },\n                    ],\n                    onError: {\n                        actions: 'setConfirmAttributeCompleteStep',\n                        target: '#signUpActor.resolved',\n                    },\n                },\n            },\n            checkPasskeys: {\n                invoke: {\n                    src: async () => {\n                        try {\n                            const result = await auth.listWebAuthnCredentials();\n                            return result.credentials && result.credentials.length > 0;\n                        }\n                        catch {\n                            return false;\n                        }\n                    },\n                    onDone: {\n                        actions: 'setHasExistingPasskeys',\n                        target: 'evaluatePasskeyPrompt',\n                    },\n                    onError: {\n                        actions: 'clearHasExistingPasskeys',\n                        target: 'evaluatePasskeyPrompt',\n                    },\n                },\n            },\n            evaluatePasskeyPrompt: {\n                always: [\n                    {\n                        cond: 'shouldPromptPasskeyRegistrationAfterSignup',\n                        target: '#signUpActor.passkeyPrompt',\n                    },\n                    {\n                        cond: 'shouldVerifyAttribute',\n                        actions: [\n                            'setShouldVerifyUserAttributeStep',\n                            'setUnverifiedUserAttributes',\n                        ],\n                        target: '#signUpActor.resolved',\n                    },\n                    {\n                        actions: 'setConfirmAttributeCompleteStep',\n                        target: '#signUpActor.resolved',\n                    },\n                ],\n            },\n            federatedSignIn: { ...getFederatedSignInState('signUp') },\n            resetPassword: {\n                invoke: { src: 'resetPassword', ...handleResetPasswordResponse },\n            },\n            resendSignUpCode: {\n                tags: 'pending',\n                entry: 'sendUpdate',\n                exit: 'sendUpdate',\n                invoke: {\n                    src: 'resendSignUpCode',\n                    onDone: {\n                        actions: ['setCodeDeliveryDetails', 'sendUpdate'],\n                        target: '#signUpActor.confirmSignUp',\n                    },\n                    onError: [\n                        {\n                            cond: 'isUserAlreadyConfirmed',\n                            target: '#signUpActor.resolved',\n                        },\n                        {\n                            actions: ['setRemoteError', 'sendUpdate'],\n                            target: '#signUpActor.confirmSignUp',\n                        },\n                    ],\n                },\n            },\n            signUp: {\n                type: 'parallel',\n                exit: 'clearTouched',\n                on: {\n                    FEDERATED_SIGN_IN: { target: 'federatedSignIn' },\n                },\n                states: {\n                    validation: {\n                        initial: 'pending',\n                        states: {\n                            pending: {\n                                invoke: {\n                                    src: 'validateSignUp',\n                                    onDone: {\n                                        actions: 'clearValidationError',\n                                        target: 'valid',\n                                    },\n                                    onError: { actions: 'setFieldErrors', target: 'invalid' },\n                                },\n                            },\n                            valid: { entry: 'sendUpdate' },\n                            invalid: { entry: 'sendUpdate' },\n                        },\n                        on: {\n                            BLUR: { actions: 'handleBlur', target: '.pending' },\n                            CHANGE: { actions: 'handleInput', target: '.pending' },\n                        },\n                    },\n                    submission: {\n                        initial: 'idle',\n                        states: {\n                            idle: {\n                                entry: ['sendUpdate'],\n                                on: {\n                                    SUBMIT: {\n                                        actions: [\n                                            'setSelectedAuthMethodFromForm',\n                                            'handleSubmit',\n                                        ],\n                                        target: 'validate',\n                                    },\n                                },\n                            },\n                            validate: {\n                                entry: 'sendUpdate',\n                                invoke: {\n                                    src: 'validateSignUp',\n                                    onDone: {\n                                        target: 'handleSignUp',\n                                        actions: 'clearValidationError',\n                                    },\n                                    onError: { actions: 'setFieldErrors', target: 'idle' },\n                                },\n                            },\n                            handleSignUp: {\n                                tags: 'pending',\n                                entry: ['setUsernameSignUp', 'clearError'],\n                                exit: 'sendUpdate',\n                                invoke: {\n                                    src: 'handleSignUp',\n                                    onDone: [\n                                        {\n                                            cond: 'hasCompletedSignUp',\n                                            actions: 'setNextSignUpStep',\n                                            target: '#signUpActor.resolved',\n                                        },\n                                        {\n                                            cond: 'shouldAutoSignIn',\n                                            actions: 'setNextSignUpStep',\n                                            target: '#signUpActor.autoSignIn',\n                                        },\n                                        {\n                                            actions: [\n                                                'setCodeDeliveryDetails',\n                                                'setNextSignUpStep',\n                                            ],\n                                            target: '#signUpActor.init',\n                                        },\n                                    ],\n                                    onError: {\n                                        actions: ['sendUpdate', 'setRemoteError'],\n                                        target: 'idle',\n                                    },\n                                },\n                            },\n                        },\n                    },\n                },\n            },\n            confirmSignUp: {\n                initial: 'edit',\n                entry: 'sendUpdate',\n                states: {\n                    edit: {\n                        on: {\n                            SUBMIT: { actions: 'handleSubmit', target: 'submit' },\n                            CHANGE: { actions: 'handleInput' },\n                            BLUR: { actions: 'handleBlur' },\n                            RESEND: '#signUpActor.resendSignUpCode',\n                        },\n                    },\n                    submit: {\n                        tags: 'pending',\n                        entry: ['clearError', 'sendUpdate'],\n                        invoke: {\n                            src: 'confirmSignUp',\n                            onDone: [\n                                {\n                                    cond: 'shouldAutoSignIn',\n                                    actions: ['setNextSignUpStep', 'clearFormValues'],\n                                    target: '#signUpActor.autoSignIn',\n                                },\n                                {\n                                    actions: 'setNextSignUpStep',\n                                    target: '#signUpActor.init',\n                                },\n                            ],\n                            onError: {\n                                actions: ['setRemoteError', 'sendUpdate'],\n                                target: 'edit',\n                            },\n                        },\n                    },\n                },\n            },\n            passkeyPrompt: {\n                entry: 'sendUpdate',\n                on: {\n                    SKIP: { target: 'resolved' },\n                    SUBMIT: { target: 'resolved' },\n                },\n            },\n            resolved: {\n                type: 'final',\n                data: (context) => ({\n                    challengeName: context.challengeName,\n                    missingAttributes: context.missingAttributes,\n                    remoteError: context.remoteError,\n                    step: context.step,\n                    totpSecretCode: context.totpSecretCode,\n                    username: context.username,\n                    unverifiedUserAttributes: context.unverifiedUserAttributes,\n                    allowedMfaTypes: context.allowedMfaTypes,\n                }),\n            },\n        },\n    }, {\n        // sendUpdate is a HOC\n        actions: { ...ACTIONS, sendUpdate: xstate.sendUpdate() },\n        guards: GUARDS,\n        services: {\n            autoSignIn() {\n                return auth.autoSignIn();\n            },\n            async fetchUserAttributes() {\n                return auth.fetchUserAttributes();\n            },\n            confirmSignUp({ formValues, username }) {\n                const { confirmation_code: confirmationCode } = formValues;\n                const input = { username, confirmationCode };\n                return services.handleConfirmSignUp(input);\n            },\n            resendSignUpCode({ username }) {\n                return services.handleResendSignUpCode({ username });\n            },\n            signInWithRedirect(_, { data }) {\n                return auth.signInWithRedirect(data);\n            },\n            handleSignUp(context) {\n                const { formValues, loginMechanisms, username, selectedAuthMethod, preferredChallenge, } = context;\n                const loginMechanism = loginMechanisms[0];\n                const authMethod = selectedAuthMethod ?? preferredChallenge;\n                const input = getSignUpInput(username, formValues, loginMechanism, authMethod);\n                return services.handleSignUp(input);\n            },\n            async validateSignUp(context) {\n                // This needs to exist in the machine to reference new `services`\n                return runValidators(context.formValues, context.touched, context.passwordSettings, [\n                    // Validation of password\n                    services.validateFormPassword,\n                    // Validation for default form fields\n                    services.validateConfirmPassword,\n                    services.validatePreferredUsername,\n                    // Validation for required fields based on auth method\n                    services.validateRequiredFieldsForAuthMethod,\n                    // Validation for any custom Sign Up fields\n                    services.validateCustomSignUp,\n                ]);\n            },\n        },\n    });\n}\n\nconst signOutActor = () => {\n    return xstate.createMachine({\n        initial: 'pending',\n        id: 'signOutActor',\n        predictableActionArguments: true,\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        services: {\n            signOut: () => auth.signOut(),\n        },\n    });\n};\n\nfunction verifyUserAttributesActor() {\n    return xstate.createMachine({\n        id: 'verifyUserAttributesActor',\n        initial: 'selectUserAttributes',\n        predictableActionArguments: true,\n        states: {\n            selectUserAttributes: {\n                initial: 'edit',\n                exit: ['clearError', 'clearTouched', 'sendUpdate'],\n                states: {\n                    edit: {\n                        entry: 'sendUpdate',\n                        on: {\n                            SUBMIT: { actions: 'handleSubmit', target: 'submit' },\n                            SKIP: { target: '#verifyUserAttributesActor.resolved' },\n                            CHANGE: { actions: 'handleInput' },\n                        },\n                    },\n                    submit: {\n                        tags: 'pending',\n                        entry: ['clearError', 'sendUpdate'],\n                        invoke: {\n                            src: 'sendUserAttributeVerificationCode',\n                            onDone: {\n                                actions: [\n                                    'setSelectedUserAttribute',\n                                    'setCodeDeliveryDetails',\n                                ],\n                                target: '#verifyUserAttributesActor.confirmVerifyUserAttribute',\n                            },\n                            onError: {\n                                actions: 'setRemoteError',\n                                target: 'edit',\n                            },\n                        },\n                    },\n                },\n            },\n            confirmVerifyUserAttribute: {\n                initial: 'edit',\n                exit: ['clearError', 'clearFormValues', 'clearTouched'],\n                states: {\n                    edit: {\n                        entry: 'sendUpdate',\n                        on: {\n                            SUBMIT: { actions: 'handleSubmit', target: 'submit' },\n                            SKIP: '#verifyUserAttributesActor.resolved',\n                            CHANGE: { actions: 'handleInput' },\n                        },\n                    },\n                    submit: {\n                        tags: 'pending',\n                        entry: ['clearError', 'sendUpdate'],\n                        invoke: {\n                            src: 'confirmVerifyUserAttribute',\n                            onDone: {\n                                actions: [\n                                    'setConfirmAttributeCompleteStep',\n                                    'clearSelectedUserAttribute',\n                                ],\n                                target: '#verifyUserAttributesActor.resolved',\n                            },\n                            onError: {\n                                actions: 'setRemoteError',\n                                target: 'edit',\n                            },\n                        },\n                    },\n                },\n            },\n            resolved: { type: 'final', data: ({ step }) => ({ step }) },\n        },\n    }, {\n        // sendUpdate is a HOC\n        actions: { ...ACTIONS, sendUpdate: xstate.sendUpdate() },\n        services: {\n            sendUserAttributeVerificationCode({ formValues: { unverifiedAttr } }) {\n                const input = {\n                    userAttributeKey: unverifiedAttr,\n                };\n                return auth.sendUserAttributeVerificationCode(input);\n            },\n            async confirmVerifyUserAttribute({ formValues: { confirmation_code: confirmationCode }, selectedUserAttribute, }) {\n                const input = {\n                    confirmationCode,\n                    userAttributeKey: selectedUserAttribute,\n                };\n                return auth.confirmUserAttribute(input);\n            },\n            async validateFields(context) {\n                return runValidators(context.formValues, context.touched, context.passwordSettings, [\n                    defaultServices.validateFormPassword,\n                    defaultServices.validateConfirmPassword,\n                ]);\n            },\n        },\n    });\n}\n\nconst getActorContext = (context, defaultStep) => {\n    const availableAuthMethods = getAvailableAuthMethods(context.passwordlessCapabilities, context.config?.passwordless?.hiddenAuthMethods);\n    // Determine effective preferred challenge: component prop takes precedence over backend config\n    const preferredChallenge = context.config?.passwordless?.preferredAuthMethod ??\n        context.passwordlessCapabilities?.preferredChallenge;\n    return {\n        ...context.actorDoneData,\n        step: context?.actorDoneData?.step ?? defaultStep,\n        // initialize empty objects on actor start\n        formValues: {},\n        touched: {},\n        validationError: {},\n        // values included on `context.config` that should be available in actors\n        formFields: context.config?.formFields,\n        loginMechanisms: context.config?.loginMechanisms,\n        passwordSettings: context.config?.passwordSettings,\n        signUpAttributes: context.config?.signUpAttributes,\n        socialProviders: context.config?.socialProviders,\n        availableAuthMethods,\n        preferredChallenge,\n        passwordless: context.config?.passwordless,\n    };\n};\nconst { choose, stop } = xstate.actions;\nconst stopActor = (machineId) => stop(machineId);\n// setup step waits for ui to emit INIT action to proceed to configure\nconst LEGACY_WAIT_CONFIG = {\n    on: {\n        INIT: {\n            actions: 'configure',\n            target: 'getConfig',\n        },\n        SIGN_OUT: '#authenticator.signOut',\n    },\n};\n// setup step proceeds directly to configure\nconst NEXT_WAIT_CONFIG = {\n    always: { actions: 'configure', target: 'getConfig' },\n};\nfunction createAuthenticatorMachine(options) {\n    const { useNextWaitConfig, ...overrideConfigServices } = options ?? {};\n    const initConfig = useNextWaitConfig ? NEXT_WAIT_CONFIG : LEGACY_WAIT_CONFIG;\n    return xstate.createMachine({\n        id: 'authenticator',\n        initial: 'idle',\n        context: {\n            user: undefined,\n            config: {},\n            services: defaultServices,\n            actorRef: undefined,\n            hasSetup: false,\n        },\n        predictableActionArguments: true,\n        states: {\n            // See: https://xstate.js.org/docs/guides/communication.html#invoking-promises\n            idle: {\n                invoke: {\n                    src: 'handleGetCurrentUser',\n                    onDone: { actions: 'setUser', target: 'setup' },\n                    onError: { target: 'setup' },\n                },\n            },\n            setup: {\n                initial: 'initConfig',\n                states: {\n                    initConfig,\n                    getConfig: {\n                        invoke: {\n                            src: 'getAmplifyConfig',\n                            onDone: [\n                                {\n                                    actions: ['applyAmplifyConfig', 'setHasSetup'],\n                                    cond: 'hasUser',\n                                    target: '#authenticator.authenticated',\n                                },\n                                {\n                                    actions: ['applyAmplifyConfig', 'setHasSetup'],\n                                    target: 'goToInitialState',\n                                },\n                            ],\n                        },\n                    },\n                    goToInitialState: {\n                        always: [\n                            {\n                                cond: 'isInitialStateSignUp',\n                                target: '#authenticator.signUpActor',\n                            },\n                            {\n                                cond: 'isInitialStateResetPassword',\n                                target: '#authenticator.forgotPasswordActor',\n                            },\n                            { target: '#authenticator.signInActor' },\n                        ],\n                    },\n                },\n            },\n            getCurrentUser: {\n                invoke: {\n                    src: 'handleGetCurrentUser',\n                    onDone: {\n                        actions: 'setUser',\n                        target: '#authenticator.authenticated',\n                    },\n                    onError: { target: '#authenticator.setup' },\n                },\n            },\n            signInActor: {\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                    FORGOT_PASSWORD: 'forgotPasswordActor',\n                    SELECT_METHOD: { actions: 'forwardToActor' },\n                    SHOW_AUTH_METHODS: { actions: 'forwardToActor' },\n                    SIGN_IN: 'signInActor',\n                    SIGN_UP: 'signUpActor',\n                    'done.invoke.signInActor': [\n                        {\n                            cond: 'hasCompletedAttributeConfirmation',\n                            target: '#authenticator.getCurrentUser',\n                        },\n                        {\n                            cond: 'isShouldConfirmUserAttributeStep',\n                            actions: 'setActorDoneData',\n                            target: '#authenticator.verifyUserAttributesActor',\n                        },\n                        {\n                            cond: 'isResetPasswordStep',\n                            actions: 'setActorDoneData',\n                            target: '#authenticator.forgotPasswordActor',\n                        },\n                        {\n                            cond: 'isConfirmSignUpStep',\n                            actions: 'setActorDoneData',\n                            target: '#authenticator.signUpActor',\n                        },\n                    ],\n                },\n            },\n            signUpActor: {\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: 'signInActor',\n                    'done.invoke.signUpActor': [\n                        {\n                            cond: 'hasCompletedAttributeConfirmation',\n                            target: '#authenticator.getCurrentUser',\n                        },\n                        {\n                            cond: 'isShouldConfirmUserAttributeStep',\n                            actions: 'setActorDoneData',\n                            target: '#authenticator.verifyUserAttributesActor',\n                        },\n                        {\n                            cond: 'isConfirmUserAttributeStep',\n                            target: '#authenticator.verifyUserAttributesActor',\n                        },\n                        {\n                            actions: 'setActorDoneData',\n                            target: '#authenticator.signInActor',\n                        },\n                    ],\n                },\n            },\n            forgotPasswordActor: {\n                initial: 'spawnActor',\n                states: {\n                    spawnActor: {\n                        always: {\n                            actions: 'spawnForgotPasswordActor',\n                            target: 'runActor',\n                        },\n                    },\n                    runActor: {\n                        entry: 'clearActorDoneData',\n                        exit: stopActor('forgotPasswordActor'),\n                    },\n                },\n                on: {\n                    SIGN_IN: 'signInActor',\n                    'done.invoke.forgotPasswordActor': [\n                        { target: '#authenticator.signInActor' },\n                    ],\n                },\n            },\n            verifyUserAttributesActor: {\n                initial: 'spawnActor',\n                states: {\n                    spawnActor: {\n                        always: {\n                            actions: 'spawnVerifyUserAttributesActor',\n                            target: 'runActor',\n                        },\n                    },\n                    runActor: {\n                        entry: 'clearActorDoneData',\n                        exit: stopActor('verifyUserAttributesActor'),\n                    },\n                },\n                on: {\n                    'done.invoke.verifyUserAttributesActor': [\n                        {\n                            actions: 'setActorDoneData',\n                            target: '#authenticator.getCurrentUser',\n                        },\n                    ],\n                },\n            },\n            authenticated: {\n                initial: 'idle',\n                states: {\n                    idle: { on: { TOKEN_REFRESH: 'refreshUser' } },\n                    refreshUser: {\n                        invoke: {\n                            src: '#authenticator.getCurrentUser',\n                            onDone: { actions: 'setUser', target: 'idle' },\n                            onError: { target: '#authenticator.signOut' },\n                        },\n                    },\n                },\n                on: { SIGN_OUT: 'signOut' },\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'),\n                    },\n                },\n                on: {\n                    'done.invoke.signOutActor': {\n                        actions: 'clearUser',\n                        target: 'setup.getConfig',\n                    },\n                },\n            },\n        },\n        on: {\n            SIGN_IN_WITH_REDIRECT: { target: '#authenticator.getCurrentUser' },\n            CHANGE: { actions: 'forwardToActor' },\n            BLUR: { actions: 'forwardToActor' },\n            SUBMIT: { actions: 'forwardToActor' },\n            FEDERATED_SIGN_IN: { actions: 'forwardToActor' },\n            RESEND: { actions: 'forwardToActor' },\n            SIGN_IN: { actions: 'forwardToActor' },\n            SKIP: { actions: 'forwardToActor' },\n        },\n    }, {\n        actions: {\n            ...ACTIONS,\n            forwardToActor: choose([\n                { cond: 'hasActor', actions: xstate.forwardTo(({ actorRef }) => actorRef) },\n            ]),\n            setActorDoneData: xstate.assign({\n                actorDoneData: (_, event) => ({\n                    challengeName: event.data.challengeName,\n                    codeDeliveryDetails: event.data.codeDeliveryDetails,\n                    missingAttributes: event.data.missingAttributes,\n                    remoteError: event.data.remoteError,\n                    username: event.data.username,\n                    step: event.data.step,\n                    totpSecretCode: event.data.totpSecretCode,\n                    unverifiedUserAttributes: event.data.unverifiedUserAttributes,\n                    allowedMfaTypes: event.data.allowedMfaTypes,\n                }),\n            }),\n            applyAmplifyConfig: xstate.assign({\n                passwordlessCapabilities: (_, { data: cliConfig }) => cliConfig.passwordlessCapabilities,\n                config(context, { data: cliConfig }) {\n                    // Prefer explicitly configured settings over default CLI values\\\n                    const { loginMechanisms = cliConfig.loginMechanisms ?? [], signUpAttributes = cliConfig.signUpAttributes ?? [], socialProviders = cliConfig.socialProviders ?? [], initialState, formFields: _formFields, passwordSettings = cliConfig.passwordFormat ??\n                        {}, passwordless, } = context.config;\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 (loginMechanisms.length === 0) {\n                        loginMechanisms.push('username');\n                    }\n                    const formFields = convertFormFields(_formFields) ?? {};\n                    return {\n                        formFields,\n                        initialState,\n                        loginMechanisms,\n                        passwordSettings,\n                        passwordless,\n                        signUpAttributes,\n                        socialProviders,\n                    };\n                },\n            }),\n            spawnSignInActor: xstate.assign({\n                actorRef: (context, _) => {\n                    const { services } = context;\n                    const actor = signInActor({ services }).withContext(getActorContext(context, 'SIGN_IN'));\n                    return xstate.spawn(actor, { name: 'signInActor' });\n                },\n            }),\n            spawnSignUpActor: xstate.assign({\n                actorRef: (context, _) => {\n                    const { services } = context;\n                    const actor = signUpActor({ services }).withContext(getActorContext(context, 'SIGN_UP'));\n                    return xstate.spawn(actor, { name: 'signUpActor' });\n                },\n            }),\n            spawnForgotPasswordActor: xstate.assign({\n                actorRef: (context, _) => {\n                    const { services } = context;\n                    const actor = forgotPasswordActor({ services }).withContext(getActorContext(context, 'FORGOT_PASSWORD'));\n                    return xstate.spawn(actor, { name: 'forgotPasswordActor' });\n                },\n            }),\n            spawnVerifyUserAttributesActor: xstate.assign({\n                actorRef: (context) => {\n                    const actor = verifyUserAttributesActor().withContext(getActorContext(context));\n                    return xstate.spawn(actor, { name: 'verifyUserAttributesActor' });\n                },\n            }),\n            spawnSignOutActor: xstate.assign({\n                actorRef: (context) => {\n                    const actor = signOutActor().withContext({ user: context?.user });\n                    return xstate.spawn(actor, { name: 'signOutActor' });\n                },\n            }),\n            configure: xstate.assign((_, event) => {\n                const { services: customServices, ...config } = !isEmptyObject(overrideConfigServices)\n                    ? overrideConfigServices\n                    : event.data ?? {};\n                return {\n                    services: { ...defaultServices, ...customServices },\n                    config,\n                };\n            }),\n            setHasSetup: xstate.assign({ hasSetup: true }),\n        },\n        guards: {\n            ...GUARDS,\n            hasActor: ({ actorRef }) => !!actorRef,\n            isInitialStateSignUp: ({ config }) => config.initialState === 'signUp',\n            isInitialStateResetPassword: ({ config }) => config.initialState === 'forgotPassword',\n            shouldSetup: ({ hasSetup }) => !hasSetup,\n            hasUser: ({ user }) => {\n                return !!user;\n            },\n        },\n        services: {\n            getAmplifyConfig: ({ services }) => services.getAmplifyConfig(),\n            handleGetCurrentUser: ({ services }) => services.getCurrentUser(),\n        },\n    });\n}\nfunction convertFormFields(formFields) {\n    if (formFields) {\n        Object.keys(formFields).forEach((component) => {\n            Object.keys(formFields[component]).forEach((inputName) => {\n                let ff = formFields[component][inputName];\n                ff.required = ff.isRequired;\n            });\n        });\n    }\n    return formFields;\n}\n\nconst borderWidths = {\n    small: { value: '1px' },\n    medium: { value: '2px' },\n    large: { value: '3px' },\n};\n\nconst 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    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    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    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    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    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    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    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    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, 10%, 58%)' },\n        80: { value: 'hsl(210, 10%, 40%)' },\n        90: { value: 'hsl(210, 25%, 25%)' },\n        100: { value: 'hsl(210, 50%, 10%)' },\n    },\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    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.neutral.60.value}' },\n        inverse: { value: '{colors.white.value}' },\n        interactive: { value: '{colors.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.primary.90.value}' },\n        // Focus color is set to 100 to ensure enough contrast for accessibility\n        focus: { value: '{colors.primary.100.value}' },\n        active: { value: '{colors.primary.100.value}' },\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    background: {\n        primary: { value: '{colors.white.value}' },\n        secondary: { value: '{colors.neutral.10.value}' },\n        tertiary: { value: '{colors.neutral.20.value}' },\n        quaternary: { value: '{colors.neutral.60.value}' },\n        disabled: { value: '{colors.background.tertiary.value}' },\n        info: { value: '{colors.blue.10.value}' },\n        warning: { value: '{colors.orange.10.value}' },\n        error: { value: '{colors.red.10.value}' },\n        success: { value: '{colors.green.10.value}' },\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        disabled: { value: '{colors.border.tertiary.value}' },\n        pressed: { value: '{colors.primary.100.value}' },\n        // Focus color is set to 100 to ensure enough contrast for accessibility\n        focus: { value: '{colors.primary.100.value}' },\n        error: { value: '{colors.red.80.value}' },\n        info: { value: '{colors.blue.80.value}' },\n        success: { value: '{colors.green.80.value}' },\n        warning: { value: '{colors.orange.80.value}' },\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    overlay: {\n        5: { value: 'hsla(0, 0%, 0%, 0.05)' },\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    black: { value: 'hsl(0, 0%, 0%)' },\n    white: { value: 'hsl(0, 0%, 100%)' },\n    transparent: { value: 'transparent' },\n};\n\nconst alert = {\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    icon: {\n        size: { value: '{fontSizes.xl.value}' },\n    },\n    heading: {\n        fontSize: { value: '{fontSizes.medium.value}' },\n        fontWeight: { value: '{fontWeights.bold.value}' },\n    },\n    // Variations\n    info: {\n        color: { value: '{colors.font.info.value}' },\n        backgroundColor: { value: '{colors.background.info.value}' },\n    },\n    error: {\n        color: { value: '{colors.font.error.value}' },\n        backgroundColor: { value: '{colors.background.error.value}' },\n    },\n    warning: {\n        color: { value: '{colors.font.warning.value}' },\n        backgroundColor: { value: '{colors.background.warning.value}' },\n    },\n    success: {\n        color: { value: '{colors.font.success.value}' },\n        backgroundColor: { value: '{colors.background.success.value}' },\n    },\n};\n\nconst aiConversation = {\n    message: {\n        backgroundColor: { value: '{colors.background.secondary.value}' },\n        borderRadius: { value: '{radii.large.value}' },\n        gap: { value: '{space.small.value}' },\n        paddingBlock: { value: '{space.small.value}' },\n        paddingInline: { value: '{space.small.value}' },\n        user: {\n            backgroundColor: { value: '{colors.background.secondary.value}' },\n        },\n        assistant: {\n            backgroundColor: { value: '{colors.primary.10.value}' },\n        },\n        sender: {\n            gap: { value: '{space.small.value}' },\n            username: {\n                color: { value: '{colors.font.primary.value}' },\n                fontSize: { value: 'inherit' },\n                fontWeight: { value: '{fontWeights.bold.value}' },\n            },\n            timestamp: {\n                color: { value: '{colors.font.tertiary.value}' },\n                fontSize: { value: 'inherit' },\n                fontWeight: { value: 'inherit' },\n            },\n        },\n        body: { gap: { value: '{space.xs.value}' } },\n        actions: { gap: { value: '{space.xs.value}' } },\n    },\n    form: {\n        gap: { value: '{space.small.value}' },\n        padding: { value: '{space.small.value}' },\n    },\n    attachment: {\n        borderColor: { value: '{colors.border.secondary.value}' },\n        borderWidth: { value: '{borderWidths.small.value}' },\n        borderRadius: { value: '{radii.small.value}' },\n        fontSize: { value: '{fontSizes.small.value}' },\n        paddingBlock: { value: '{space.xxxs.value}' },\n        paddingInline: { value: '{space.xs.value}' },\n        gap: { value: '{space.xs.value}' },\n        list: {\n            padding: { value: '{space.xs.value}' },\n            paddingBlockStart: { value: '0' },\n            gap: { value: '{space.xxs.value}' },\n        },\n        name: {\n            color: { value: '{colors.font.primary.value}' },\n            fontSize: { value: '{fontSizes.small.value}' },\n            fontWeight: { value: '{fontWeights.normal.value}' },\n        },\n        size: {\n            color: { value: '{colors.font.tertiary.value}' },\n            fontSize: { value: '{fontSizes.small.value}' },\n            fontWeight: { value: '{fontWeights.normal.value}' },\n        },\n        remove: {\n            padding: { value: '{space.xxs.value}' },\n        },\n        image: {\n            width: { value: '{fontSizes.medium.value}' },\n            height: { value: '{fontSizes.medium.value}' },\n        },\n    },\n};\n\nconst autocomplete = {\n    menu: {\n        width: { value: '100%' },\n        marginBlockStart: { value: '{space.xxxs}' },\n        backgroundColor: { value: '{colors.background.primary}' },\n        borderColor: { value: '{colors.border.primary}' },\n        borderWidth: { value: '{borderWidths.small}' },\n        borderStyle: { value: 'solid' },\n        borderRadius: { value: '{radii.small}' },\n        options: {\n            display: { value: 'flex' },\n            flexDirection: { value: 'column' },\n            maxHeight: { value: '300px' },\n        },\n        option: {\n            backgroundColor: { value: '{colors.background.primary}' },\n            color: { value: 'currentcolor' },\n            cursor: { value: 'pointer' },\n            transitionDuration: { value: '{time.short}' },\n            transitionProperty: { value: 'background-color, color' },\n            transitionTimingFunction: { value: 'ease' },\n            _active: {\n                backgroundColor: { value: '{colors.primary.80}' },\n                color: { value: '{colors.white}' },\n            },\n        },\n        _empty: {\n            display: { value: 'flex' },\n        },\n        _loading: {\n            alignItems: { value: 'center' },\n            display: { value: 'flex' },\n            gap: { value: '{space.xxxs}' },\n        },\n        spaceShared: {\n            paddingBlock: { value: '{space.xs}' },\n            paddingInline: { value: '{space.small}' },\n        },\n    },\n};\n\nconst authenticator = {\n    maxWidth: { value: '60rem' },\n    modal: {\n        width: { value: '{space.relative.full}' },\n        height: { value: '{space.relative.full}' },\n        backgroundColor: { value: '{colors.overlay.50.value}' },\n        top: { value: '{space.zero}' },\n        left: { value: '{space.zero}' },\n    },\n    container: {\n        widthMax: { value: '30rem' },\n    },\n    router: {\n        borderWidth: { value: '{borderWidths.small.value}' },\n        borderStyle: { value: 'solid' },\n        borderColor: { value: '{colors.border.primary.value}' },\n        backgroundColor: { value: '{colors.background.primary.value}' },\n        boxShadow: { value: '{shadows.medium.value}' },\n    },\n    footer: {\n        paddingBottom: { value: '{space.medium.value}' },\n    },\n    form: {\n        padding: { value: '{space.xl.value}' },\n    },\n    state: {\n        inactive: {\n            backgroundColor: { value: '{colors.background.secondary.value}' },\n        },\n    },\n    orContainer: {\n        color: { value: '{colors.neutral.80.value}' },\n        orLine: {\n            backgroundColor: { value: '{colors.background.primary.value}' },\n        },\n    },\n};\n\nconst avatar = {\n    // Default styles\n    color: { value: '{colors.font.tertiary.value}' },\n    lineHeight: { value: 1 },\n    fontWeight: { value: '{fontWeights.semibold.value}' },\n    fontSize: { value: '{fontSizes.small.value}' },\n    textAlign: { value: 'center' },\n    width: { value: '{fontSizes.xxl.value}' },\n    height: { value: '{fontSizes.xxl.value}' },\n    backgroundColor: { value: '{colors.background.tertiary}' },\n    borderRadius: { value: '100%' },\n    borderColor: { value: '{colors.border.primary.value}' },\n    borderWidth: { value: '{borderWidths.medium.value}' },\n    // Color Theme Variations\n    info: {\n        color: { value: '{colors.font.info.value}' },\n        backgroundColor: { value: '{colors.background.info.value}' },\n        borderColor: { value: '{colors.border.info.value}' },\n    },\n    warning: {\n        color: { value: '{colors.font.warning.value}' },\n        backgroundColor: { value: '{colors.background.warning.value}' },\n        borderColor: { value: '{colors.border.warning.value}' },\n    },\n    success: {\n        color: { value: '{colors.font.success.value}' },\n        backgroundColor: { value: '{colors.background.success.value}' },\n        borderColor: { value: '{colors.border.success.value}' },\n    },\n    error: {\n        color: { value: '{colors.font.error.value}' },\n        backgroundColor: { value: '{colors.background.error.value}' },\n        borderColor: { value: '{colors.border.error.value}' },\n    },\n    // Sizes\n    small: {\n        fontSize: { value: '{fontSizes.xs.value}' },\n        width: { value: '{fontSizes.xl.value}' },\n        height: { value: '{fontSizes.xl.value}' },\n    },\n    // medium is the default size\n    large: {\n        fontSize: { value: '{fontSizes.medium.value}' },\n        width: { value: '{fontSizes.xxxl.value}' },\n        height: { value: '{fontSizes.xxxl.value}' },\n    },\n};\n\nconst badge = {\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    // Variations\n    info: {\n        color: { value: '{colors.font.info.value}' },\n        backgroundColor: { value: '{colors.background.info.value}' },\n    },\n    warning: {\n        color: { value: '{colors.font.warning.value}' },\n        backgroundColor: { value: '{colors.background.warning.value}' },\n    },\n    success: {\n        color: { value: '{colors.font.success.value}' },\n        backgroundColor: { value: '{colors.background.success.value}' },\n    },\n    error: {\n        color: { value: '{colors.font.error.value}' },\n        backgroundColor: { value: '{colors.background.error.value}' },\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\nconst breadcrumbs = {\n    flexDirection: { value: 'row' },\n    flexWrap: { value: 'wrap' },\n    gap: { value: '0' },\n    color: { value: '{colors.font.tertiary}' },\n    item: {\n        flexDirection: { value: 'row' },\n        color: { value: 'inherit' },\n        fontSize: { value: 'inherit' },\n        alignItems: { value: 'center' },\n        lineHeight: { value: '1' },\n    },\n    separator: {\n        color: { value: 'inherit' },\n        fontSize: { value: 'inherit' },\n        paddingInline: { value: '{space.xxs}' },\n    },\n    link: {\n        color: { value: '{components.link.color}' },\n        fontSize: { value: 'inherit' },\n        fontWeight: { value: 'normal' },\n        textDecoration: { value: 'none' },\n        paddingInline: { value: '{space.xs}' },\n        paddingBlock: { value: '{space.xxs}' },\n        current: {\n            color: { value: 'inherit' },\n            fontSize: { value: 'inherit' },\n            fontWeight: { value: 'normal' },\n            textDecoration: { value: 'none' },\n        },\n    },\n};\n\nconst button = {\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    backgroundColor: { value: 'transparent' },\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    _hover: {\n        color: { value: '{colors.font.focus.value}' },\n        backgroundColor: { value: '{colors.primary.10.value}' },\n        borderColor: { value: '{colors.primary.60.value}' },\n    },\n    _focus: {\n        color: { value: '{colors.font.focus.value}' },\n        backgroundColor: { value: '{colors.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.primary.20.value}' },\n        borderColor: { value: '{colors.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    // variations\n    outlined: {\n        info: {\n            borderColor: { value: '{colors.blue.60.value}' },\n            backgroundColor: { value: 'transparent' },\n            color: { value: '{colors.blue.100}' },\n            _hover: {\n                borderColor: { value: '{colors.blue.60.value}' },\n                backgroundColor: { value: '{colors.blue.10.value}' },\n                color: { value: '{colors.blue.100.value}' },\n            },\n            _focus: {\n                borderColor: { value: '{colors.blue.100.value}' },\n                backgroundColor: { value: '{colors.blue.10.value}' },\n                color: { value: '{colors.blue.100.value}' },\n                boxShadow: {\n                    value: '{components.fieldcontrol.info._focus.boxShadow.value}',\n                },\n            },\n            _active: {\n                borderColor: { value: '{colors.blue.100.value}' },\n                backgroundColor: { value: '{colors.blue.20.value}' },\n                color: { value: '{colors.blue.100.value}' },\n            },\n        },\n        warning: {\n            borderColor: { value: '{colors.orange.60.value}' },\n            backgroundColor: { value: 'transparent' },\n            color: { value: '{colors.orange.100}' },\n            _hover: {\n                borderColor: { value: '{colors.orange.60.value}' },\n                backgroundColor: { value: '{colors.orange.10.value}' },\n                color: { value: '{colors.orange.100.value}' },\n            },\n            _focus: {\n                borderColor: { value: '{colors.orange.100.value}' },\n                backgroundColor: { value: '{colors.orange.10.value}' },\n                color: { value: '{colors.orange.100.value}' },\n                boxShadow: {\n                    value: '{components.fieldcontrol.warning._focus.boxShadow.value}',\n                },\n            },\n            _active: {\n                borderColor: { value: '{colors.orange.100.value}' },\n                backgroundColor: { value: '{colors.orange.20.value}' },\n                color: { value: '{colors.orange.100.value}' },\n            },\n        },\n        success: {\n            borderColor: { value: '{colors.green.60.value}' },\n            backgroundColor: { value: 'transparent' },\n            color: { value: '{colors.green.100}' },\n            _hover: {\n                borderColor: { value: '{colors.green.60.value}' },\n                backgroundColor: { value: '{colors.green.10.value}' },\n                color: { value: '{colors.green.100.value}' },\n            },\n            _focus: {\n                borderColor: { value: '{colors.green.100.value}' },\n                backgroundColor: { value: '{colors.green.10.value}' },\n                color: { value: '{colors.green.100.value}' },\n                boxShadow: {\n                    value: '{components.fieldcontrol.success._focus.boxShadow.value}',\n                },\n            },\n            _active: {\n                borderColor: { value: '{colors.green.100.value}' },\n                backgroundColor: { value: '{colors.green.20.value}' },\n                color: { value: '{colors.green.100.value}' },\n            },\n        },\n        error: {\n            borderColor: { value: '{colors.red.80.value}' },\n            backgroundColor: { value: 'transparent' },\n            color: { value: '{colors.red.100}' },\n            _hover: {\n                borderColor: { value: '{colors.red.80.value}' },\n                backgroundColor: { value: '{colors.red.10.value}' },\n                color: { value: '{colors.red.100.value}' },\n            },\n            _focus: {\n                borderColor: { value: '{colors.red.100.value}' },\n                backgroundColor: { value: '{colors.red.10.value}' },\n                color: { value: '{colors.red.100.value}' },\n                boxShadow: {\n                    value: '{components.fieldcontrol._error._focus.boxShadow.value}',\n                },\n            },\n            _active: {\n                borderColor: { value: '{colors.red.100.value}' },\n                backgroundColor: { value: '{colors.red.20.value}' },\n                color: { value: '{colors.red.100.value}' },\n            },\n        },\n        overlay: {\n            borderColor: { value: '{colors.overlay.60.value}' },\n            backgroundColor: { value: 'transparent' },\n            color: { value: '{colors.font.primary.value}' },\n            _hover: {\n                borderColor: { value: '{colors.overlay.60.value}' },\n                backgroundColor: { value: '{colors.overlay.5.value}' },\n                color: { value: '{colors.neutral.90.value}' },\n            },\n            _focus: {\n                borderColor: { value: '{colors.overlay.90.value}' },\n                backgroundColor: { value: '{colors.overlay.5.value}' },\n                color: { value: '{colors.neutral.90.value}' },\n                boxShadow: {\n                    value: '{components.fieldcontrol.overlay._focus.boxShadow.value}',\n                },\n            },\n            _active: {\n                borderColor: { value: '{colors.overlay.90.value}' },\n                backgroundColor: { value: '{colors.overlay.10.value}' },\n                color: { value: '{colors.neutral.100.value}' },\n            },\n        },\n    },\n    primary: {\n        borderColor: { value: 'transparent' },\n        borderWidth: { value: '{borderWidths.small.value}' },\n        borderStyle: { value: 'solid' },\n        backgroundColor: { value: '{colors.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.primary.90.value}' },\n            color: { value: '{colors.font.inverse.value}' },\n        },\n        _focus: {\n            borderColor: { value: 'transparent' },\n            backgroundColor: { value: '{colors.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.primary.100.value}' },\n            color: { value: '{colors.font.inverse.value}' },\n        },\n        info: {\n            borderColor: { value: 'transparent' },\n            backgroundColor: { value: '{colors.blue.80}' },\n            color: { value: '{colors.font.inverse.value}' },\n            _hover: {\n                borderColor: { value: 'transparent' },\n                backgroundColor: { value: '{colors.blue.90.value}' },\n                color: { value: '{colors.font.inverse.value}' },\n            },\n            _focus: {\n                borderColor: { value: 'transparent' },\n                backgroundColor: { value: '{colors.blue.90.value}' },\n                color: { value: '{colors.font.inverse.value}' },\n                boxShadow: {\n                    value: '{components.fieldcontrol.info._focus.boxShadow.value}',\n                },\n            },\n            _active: {\n                borderColor: { value: 'transparent' },\n                backgroundColor: { value: '{colors.blue.100.value}' },\n                color: { value: '{colors.font.inverse.value}' },\n            },\n        },\n        warning: {\n            borderColor: { value: 'transparent' },\n            backgroundColor: { value: '{colors.orange.80}' },\n            color: { value: '{colors.font.inverse.value}' },\n            _hover: {\n                borderColor: { value: 'transparent' },\n                backgroundColor: { value: '{colors.orange.90.value}' },\n                color: { value: '{colors.font.inverse.value}' },\n            },\n            _focus: {\n                borderColor: { value: 'transparent' },\n                backgroundColor: { value: '{colors.orange.90.value}' },\n                color: { value: '{colors.font.inverse.value}' },\n                boxShadow: {\n                    value: '{components.fieldcontrol.overlay._focus.boxShadow.value}',\n                },\n            },\n            _active: {\n                borderColor: { value: 'transparent' },\n                backgroundColor: { value: '{colors.orange.100.value}' },\n                color: { value: '{colors.font.inverse.value}' },\n            },\n        },\n        error: {\n            borderColor: { value: 'transparent' },\n            backgroundColor: { value: '{colors.red.80}' },\n            color: { value: '{colors.font.inverse.value}' },\n            _hover: {\n                borderColor: { value: 'transparent' },\n                backgroundColor: { value: '{colors.red.90.value}' },\n                color: { value: '{colors.font.inverse.value}' },\n            },\n            _focus: {\n                borderColor: { value: 'transparent' },\n                backgroundColor: { value: '{colors.red.90.value}' },\n                color: { value: '{colors.font.inverse.value}' },\n                boxShadow: {\n                    value: '{components.fieldcontrol._error._focus.boxShadow.value}',\n                },\n            },\n            _active: {\n                borderColor: { value: 'transparent' },\n                backgroundColor: { value: '{colors.red.100.value}' },\n                color: { value: '{colors.font.inverse.value}' },\n            },\n        },\n        success: {\n            borderColor: { value: 'transparent' },\n            backgroundColor: { value: '{colors.green.80}' },\n            color: { value: '{colors.font.inverse.value}' },\n            _hover: {\n                borderColor: { value: 'transparent' },\n                backgroundColor: { value: '{colors.green.90.value}' },\n                color: { value: '{colors.font.inverse.value}' },\n            },\n            _focus: {\n                borderColor: { value: 'transparent' },\n                backgroundColor: { value: '{colors.green.90.value}' },\n                color: { value: '{colors.font.inverse.value}' },\n                boxShadow: {\n                    value: '{components.fieldcontrol.success._focus.boxShadow.value}',\n                },\n            },\n            _active: {\n                borderColor: { value: 'transparent' },\n                backgroundColor: { value: '{colors.green.100.value}' },\n                color: { value: '{colors.font.inverse.value}' },\n            },\n        },\n        overlay: {\n            borderColor: { value: 'transparent' },\n            backgroundColor: { value: '{colors.overlay.70}' },\n            color: { value: '{colors.font.inverse.value}' },\n            _hover: {\n                borderColor: { value: 'transparent' },\n                backgroundColor: { value: '{colors.overlay.90.value}' },\n                color: { value: '{colors.font.inverse.value}' },\n            },\n            _focus: {\n                borderColor: { value: 'transparent' },\n                backgroundColor: { value: '{colors.overlay.90.value}' },\n                color: { value: '{colors.font.inverse.value}' },\n                boxShadow: {\n                    value: '{components.fieldcontrol.overlay._focus.boxShadow.value}',\n                },\n            },\n            _active: {\n                borderColor: { value: 'transparent' },\n                backgroundColor: { value: '{colors.overlay.90.value}' },\n                color: { value: '{colors.font.inverse.value}' },\n            },\n        },\n    },\n    menu: {\n        borderWidth: { value: '{space.zero.value}' },\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.primary.80.value}' },\n        },\n        _focus: {\n            color: { value: '{colors.font.inverse.value}' },\n            backgroundColor: { value: '{colors.primary.80.value}' },\n        },\n        _active: {\n            color: { value: '{colors.font.inverse.value}' },\n            backgroundColor: { value: '{colors.primary.90.value}' },\n        },\n        _disabled: {\n            color: { value: '{colors.font.disabled.value}' },\n        },\n    },\n    link: {\n        backgroundColor: { value: 'transparent' },\n        borderColor: { value: 'transparent' },\n        borderWidth: { value: '{borderWidths.small.value}' },\n        color: { value: '{colors.font.interactive.value}' },\n        _hover: {\n            borderColor: { value: 'transparent' },\n            backgroundColor: { value: '{colors.primary.10.value}' },\n            color: { value: '{colors.font.hover.value}' },\n        },\n        _focus: {\n            borderColor: { value: 'transparent' },\n            backgroundColor: { value: '{colors.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.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        info: {\n            borderColor: { value: 'transparent' },\n            backgroundColor: { value: 'transparent' },\n            color: { value: '{colors.blue.100}' },\n            _hover: {\n                borderColor: { value: 'transparent' },\n                backgroundColor: { value: '{colors.blue.10.value}' },\n                color: { value: '{colors.blue.90.value}' },\n            },\n            _focus: {\n                borderColor: { value: 'transparent' },\n                backgroundColor: { value: '{colors.blue.10.value}' },\n                color: { value: '{colors.blue.100.value}' },\n                boxShadow: {\n                    value: '{components.fieldcontrol.info._focus.boxShadow.value}',\n                },\n            },\n            _active: {\n                borderColor: { value: 'transparent' },\n                backgroundColor: { value: '{colors.blue.20.value}' },\n                color: { value: '{colors.blue.100.value}' },\n            },\n        },\n        warning: {\n            borderColor: { value: 'transparent' },\n            backgroundColor: { value: 'transparent' },\n            color: { value: '{colors.orange.100}' },\n            _hover: {\n                borderColor: { value: 'transparent' },\n                backgroundColor: { value: '{colors.orange.10.value}' },\n                color: { value: '{colors.orange.90.value}' },\n            },\n            _focus: {\n                borderColor: { value: 'transparent' },\n                backgroundColor: { value: '{colors.orange.10.value}' },\n                color: { value: '{colors.orange.100.value}' },\n                boxShadow: {\n                    value: '{components.fieldcontrol.warning._focus.boxShadow.value}',\n                },\n            },\n            _active: {\n                borderColor: { value: 'transparent' },\n                backgroundColor: { value: '{colors.orange.20.value}' },\n                color: { value: '{colors.orange.100.value}' },\n            },\n        },\n        success: {\n            borderColor: { value: 'transparent' },\n            backgroundColor: { value: 'transparent' },\n            color: { value: '{colors.green.100}' },\n            _hover: {\n                borderColor: { value: 'transparent' },\n                backgroundColor: { value: '{colors.green.10.value}' },\n                color: { value: '{colors.green.90.value}' },\n            },\n            _focus: {\n                borderColor: { value: 'transparent' },\n                backgroundColor: { value: '{colors.green.10.value}' },\n                color: { value: '{colors.green.100.value}' },\n                boxShadow: {\n                    value: '{components.fieldcontrol.success._focus.boxShadow.value}',\n                },\n            },\n            _active: {\n                borderColor: { value: 'transparent' },\n                backgroundColor: { value: '{colors.green.20.value}' },\n                color: { value: '{colors.green.100.value}' },\n            },\n        },\n        error: {\n            borderColor: { value: 'transparent' },\n            backgroundColor: { value: 'transparent' },\n            color: { value: '{colors.red.100}' },\n            _hover: {\n                borderColor: { value: 'transparent' },\n                backgroundColor: { value: '{colors.red.10.value}' },\n                color: { value: '{colors.red.90.value}' },\n            },\n            _focus: {\n                borderColor: { value: 'transparent' },\n                backgroundColor: { value: '{colors.red.10.value}' },\n                color: { value: '{colors.red.100.value}' },\n                boxShadow: {\n                    value: '{components.fieldcontrol._error._focus.boxShadow.value}',\n                },\n            },\n            _active: {\n                borderColor: { value: 'transparent' },\n                backgroundColor: { value: '{colors.red.20.value}' },\n                color: { value: '{colors.red.100.value}' },\n            },\n        },\n        overlay: {\n            borderColor: { value: 'transparent' },\n            backgroundColor: { value: 'transparent' },\n            color: { value: '{colors.neutral.100}' },\n            _hover: {\n                borderColor: { value: 'transparent' },\n                backgroundColor: { value: '{colors.overlay.5.value}' },\n                color: { value: '{colors.overlay.80.value}' },\n            },\n            _focus: {\n                borderColor: { value: 'transparent' },\n                backgroundColor: { value: '{colors.overlay.5.value}' },\n                color: { value: '{colors.overlay.90.value}' },\n                boxShadow: {\n                    value: '{components.fieldcontrol.overlay._focus.boxShadow.value}',\n                },\n            },\n            _active: {\n                borderColor: { value: 'transparent' },\n                backgroundColor: { value: '{colors.overlay.10.value}' },\n                color: { value: '{colors.overlay.90.value}' },\n            },\n        },\n    },\n    warning: {\n        backgroundColor: { value: 'transparent' },\n        borderColor: { value: '{colors.red.60}' },\n        borderWidth: { value: '{borderWidths.small}' },\n        color: { value: '{colors.red.60}' },\n        _hover: {\n            borderColor: { value: '{colors.red.80}' },\n            backgroundColor: { value: '{colors.red.10}' },\n            color: { value: '{colors.font.error}' },\n        },\n        _focus: {\n            borderColor: { value: '{colors.red.80}' },\n            backgroundColor: { value: '{colors.red.10}' },\n            color: { value: '{colors.red.80}' },\n            boxShadow: { value: '{components.fieldcontrol._error._focus.boxShadow}' },\n        },\n        _active: {\n            borderColor: { value: '{colors.red.100}' },\n            backgroundColor: { value: '{colors.red.20}' },\n            color: { value: '{colors.red.100}' },\n        },\n        _disabled: {\n            borderColor: { value: '{colors.border.tertiary}' },\n            backgroundColor: { value: 'transparent' },\n            color: { value: '{colors.font.disabled}' },\n        },\n        _loading: {\n            borderColor: { value: '{colors.border.tertiary}' },\n            backgroundColor: { value: 'transparent' },\n            color: { value: '{colors.font.disabled}' },\n        },\n    },\n    destructive: {\n        borderColor: { value: 'transparent' },\n        borderWidth: { value: '{borderWidths.small}' },\n        borderStyle: { value: 'solid' },\n        backgroundColor: { value: '{colors.red.60}' },\n        color: { value: '{colors.font.inverse}' },\n        _disabled: {\n            borderColor: { value: 'transparent' },\n            backgroundColor: { value: '{colors.background.disabled}' },\n            color: { value: '{colors.font.disabled}' },\n        },\n        _loading: {\n            borderColor: { value: 'transparent' },\n            backgroundColor: { value: '{colors.background.disabled}' },\n            color: { value: '{colors.font.disabled}' },\n        },\n        _hover: {\n            borderColor: { value: 'transparent' },\n            backgroundColor: { value: '{colors.red.80}' },\n            color: { value: '{colors.font.inverse}' },\n        },\n        _focus: {\n            borderColor: { value: 'transparent' },\n            backgroundColor: { value: '{colors.red.80}' },\n            color: { value: '{colors.font.inverse}' },\n            boxShadow: { value: '{components.fieldcontrol._error._focus.boxShadow}' },\n        },\n        _active: {\n            borderColor: { value: 'transparent' },\n            backgroundColor: { value: '{colors.red.100}' },\n            color: { value: '{colors.font.inverse}' },\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    loaderWrapper: {\n        alignItems: {\n            value: 'center',\n        },\n        gap: {\n            value: '{space.xs.value}',\n        },\n    },\n};\n\nconst card = {\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    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    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\nconst checkbox = {\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.font.inverse.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.border.focus.value}' },\n            boxShadow: { value: '{components.fieldcontrol._focus.boxShadow.value}' },\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.border.error.value}' },\n                boxShadow: {\n                    value: '{components.fieldcontrol._error._focus.boxShadow.value}',\n                },\n            },\n        },\n    },\n    icon: {\n        backgroundColor: { value: '{colors.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        _indeterminate: {\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        color: { value: '{components.text.color.value}' },\n        _disabled: {\n            color: {\n                value: '{colors.font.disabled.value}',\n            },\n        },\n    },\n};\n\nconst checkboxfield = {\n    alignItems: { value: 'flex-start' },\n    alignContent: { value: 'center' },\n    flexDirection: { value: 'column' },\n    justifyContent: { value: 'center' },\n};\n\n//we are reusing the types from the nested components but new tokens need to be created that reference the previous tokens so that they can inherit the needed values but can be overwritten and only effect the collection component.\n//only a subset of the design tokens of the nested components are being exposed, this can be expanded later.\nconst collection = {\n    pagination: {\n        current: {\n            color: { value: '{components.pagination.current.color}' },\n            backgroundColor: {\n                value: '{components.pagination.current.backgroundColor}',\n            },\n        },\n        button: {\n            color: { value: '{components.pagination.button.color}' },\n            _hover: {\n                backgroundColor: {\n                    value: '{components.pagination.button.hover.backgroundColor}',\n                },\n                color: { value: '{components.pagination.button.hover.color}' },\n            },\n            _disabled: {\n                color: { value: '{components.pagination.button.disabled.color}' },\n            },\n        },\n    },\n    search: {\n        input: {\n            color: { value: '{components.searchfield.color}' },\n        },\n        button: {\n            color: { value: '{components.searchfield.button.color}' },\n            _active: {\n                backgroundColor: {\n                    value: '{components.searchfield.button._active.backgroundColor}',\n                },\n                borderColor: {\n                    value: '{components.searchfield.button._active.borderColor}',\n                },\n                color: { value: '{components.searchfield.button._active.color}' },\n            },\n            _disabled: {\n                backgroundColor: {\n                    value: '{components.searchfield.button._disabled.backgroundColor}',\n                },\n                borderColor: {\n                    value: '{components.searchfield.button._disabled.borderColor}',\n                },\n                color: {\n                    value: '{components.searchfield.button._disabled.color}',\n                },\n            },\n            _focus: {\n                backgroundColor: {\n                    value: '{components.searchfield.button._focus.backgroundColor}',\n                },\n                borderColor: {\n                    value: '{components.searchfield.button._focus.borderColor}',\n                },\n                color: { value: '{components.searchfield.button._focus.color}' },\n            },\n            _hover: {\n                backgroundColor: {\n                    value: '{components.searchfield.button._hover.backgroundColor}',\n                },\n                borderColor: {\n                    value: '{components.searchfield.button._hover.borderColor}',\n                },\n                color: { value: '{components.searchfield.button._hover.color}' },\n            },\n        },\n    },\n};\n\nconst copy = {\n    fontSize: { value: '{fontSizes.xs}' },\n    gap: { value: '{space.relative.medium}' },\n    svg: {\n        path: {\n            fill: {\n                value: '{colors.font.primary}',\n            },\n        },\n    },\n    toolTip: {\n        bottom: { value: '{space.large}' },\n        color: { value: '{colors.teal.100}' },\n        fontSize: { value: '{fontSizes.xxs}' },\n    },\n};\n\nconst dialcodeselect = {\n    height: {\n        value: '{space.relative.full.value}',\n    },\n};\n\nconst divider = {\n    borderStyle: { value: 'solid' },\n    borderColor: { value: '{colors.border.primary.value}' },\n    borderWidth: { value: '{borderWidths.medium.value}' },\n    label: {\n        color: { value: '{colors.font.tertiary.value}' },\n        paddingInline: { value: '{space.medium.value}' },\n        fontSize: { value: '{fontSizes.small.value}' },\n        backgroundColor: { value: '{colors.background.primary.value}' },\n    },\n    small: {\n        borderWidth: { value: '{borderWidths.small.value}' },\n    },\n    large: {\n        borderWidth: { value: '{borderWidths.large.value}' },\n    },\n    opacity: {\n        value: '{opacities.60.value}',\n    },\n};\n\nconst dropzone = {\n    backgroundColor: { value: '{colors.background.primary}' },\n    borderRadius: { value: '{radii.small}' },\n    borderColor: { value: '{colors.border.primary}' },\n    borderStyle: { value: 'dashed' },\n    borderWidth: { value: '{borderWidths.small}' },\n    color: { value: '{colors.font.primary}' },\n    gap: { value: '{space.small}' },\n    paddingBlock: { value: '{space.xl}' },\n    paddingInline: { value: '{space.large}' },\n    textAlign: { value: 'center' },\n    _active: {\n        backgroundColor: { value: '{colors.primary.10}' },\n        borderRadius: { value: '{components.dropzone.borderRadius}' },\n        borderColor: { value: '{colors.border.pressed}' },\n        borderStyle: { value: '{components.dropzone.borderStyle}' },\n        borderWidth: { value: '{components.dropzone.borderWidth}' },\n        color: { value: '{colors.font.primary}' },\n    },\n    _disabled: {\n        backgroundColor: { value: '{colors.background.disabled}' },\n        borderRadius: { value: '{components.dropzone.borderRadius}' },\n        borderColor: { value: '{colors.border.disabled}' },\n        borderStyle: { value: '{components.dropzone.borderStyle}' },\n        borderWidth: { value: '{components.dropzone.borderWidth}' },\n        color: { value: '{colors.font.disabled}' },\n    },\n    accepted: {\n        backgroundColor: { value: '{colors.background.success}' },\n        borderRadius: { value: '{components.dropzone.borderRadius}' },\n        borderColor: { value: '{colors.border.success}' },\n        borderStyle: { value: '{components.dropzone.borderStyle}' },\n        borderWidth: { value: '{components.dropzone.borderWidth}' },\n        color: { value: '{colors.font.success}' },\n    },\n    rejected: {\n        backgroundColor: { value: '{colors.background.error}' },\n        borderRadius: { value: '{components.dropzone.borderRadius}' },\n        borderColor: { value: '{colors.border.pressed}' },\n        borderStyle: { value: '{components.dropzone.borderStyle}' },\n        borderWidth: { value: '{components.dropzone.borderWidth}' },\n        color: { value: '{colors.font.error}' },\n    },\n};\n\nconst accordion = {\n    backgroundColor: { value: '{colors.background.primary.value}' },\n    item: {\n        borderColor: { value: '{colors.border.secondary.value}' },\n        borderWidth: { value: '{borderWidths.small.value}' },\n        borderStyle: { value: 'solid' },\n        borderRadius: { value: '{radii.small.value}' },\n        trigger: {\n            alignItems: { value: 'center' },\n            backgroundColor: { value: '{colors.background.primary.value}' },\n            color: { value: 'inherit' },\n            gap: { value: '{space.small.value}' },\n            justifyContent: { value: 'space-between' },\n            paddingBlock: { value: '{space.xs.value}' },\n            paddingInline: { value: '{space.small.value}' },\n            _hover: {\n                color: { value: 'inherit' },\n                backgroundColor: { value: '{colors.overlay.5.value}' },\n            },\n            _focus: {\n                borderColor: { value: '{colors.border.focus.value}' },\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        content: {\n            color: { value: 'inherit' },\n            paddingInline: { value: '{space.small.value}' },\n            paddingBlockEnd: { value: '{space.small.value}' },\n            paddingBlockStart: { value: '{space.xxxs.value}' },\n        },\n        icon: {\n            color: { value: '{colors.font.tertiary.value}' },\n            transitionDuration: { value: '{time.medium.value}' },\n            transitionTimingFunction: { value: 'cubic-bezier(0.87, 0, 0.13, 1)' },\n        },\n    },\n};\n\nconst field = {\n    // default styles\n    gap: { value: '{space.xs.value}' },\n    fontSize: { value: '{fontSizes.medium.value}' },\n    flexDirection: { value: 'column' },\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    label: {\n        color: { value: '{colors.font.secondary.value}' },\n    },\n};\n\nconst fieldcontrol = {\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    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    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    quiet: {\n        borderStyle: { value: 'none' },\n        borderInlineStart: { value: 'none' },\n        borderInlineEnd: { value: 'none' },\n        borderBlockStart: { value: 'none' },\n        borderRadius: { value: '0' },\n        _focus: {\n            borderBlockEndColor: { value: 'transparent' },\n            boxShadow: {\n                value: '{components.fieldcontrol._focus.boxShadow.value}',\n            },\n        },\n        _error: {\n            borderBlockEndColor: { value: '{colors.border.error.value}' },\n            _focus: {\n                borderBlockEndColor: { value: 'transparent' },\n                boxShadow: {\n                    value: '{components.fieldcontrol._error._focus.boxShadow.value}',\n                },\n            },\n        },\n    },\n    _focus: {\n        // These focus styles have been calibrated to create\n        // a highly visible focus indicator per WCAG 2.2 guidlines:\n        // See: https://www.w3.org/TR/WCAG22/#focus-appearance\n        //\n        // Key features:\n        // * Focus indicator area is at least the 2 CSS px perimeter around the component.\n        // * Contrast between focused and unfocused area of contrast has a ratio of 3:1\n        //\n        // IMPORTANT: Must recalibrate if `colors.border.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: '2px',\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        color: { value: '{colors.font.error.value}' },\n        _focus: {\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    info: {\n        _focus: {\n            boxShadow: {\n                value: {\n                    offsetX: '0px',\n                    offsetY: '0px',\n                    blurRadius: '0px',\n                    spreadRadius: '2px',\n                    color: '{colors.blue.100.value}',\n                },\n            },\n        },\n    },\n    warning: {\n        _focus: {\n            boxShadow: {\n                value: {\n                    offsetX: '0px',\n                    offsetY: '0px',\n                    blurRadius: '0px',\n                    spreadRadius: '2px',\n                    color: '{colors.orange.100.value}',\n                },\n            },\n        },\n    },\n    success: {\n        _focus: {\n            boxShadow: {\n                value: {\n                    offsetX: '0px',\n                    offsetY: '0px',\n                    blurRadius: '0px',\n                    spreadRadius: '2px',\n                    color: '{colors.green.100.value}',\n                },\n            },\n        },\n    },\n    overlay: {\n        _focus: {\n            boxShadow: {\n                value: {\n                    offsetX: '0px',\n                    offsetY: '0px',\n                    blurRadius: '0px',\n                    spreadRadius: '2px',\n                    color: '{colors.overlay.90.value}',\n                },\n            },\n        },\n    },\n};\n\nconst fieldgroup = {\n    gap: { value: '{space.zero.value}' },\n    vertical: {\n        alignItems: { value: 'center' },\n    },\n    outer: {\n        alignItems: { value: 'center' },\n    },\n};\n\nconst fieldset = {\n    backgroundColor: { value: 'transparent' },\n    borderRadius: { value: '{radii.xs.value}' },\n    flexDirection: {\n        value: 'column',\n    },\n    gap: { value: '{components.field.gap.value}' },\n    legend: {\n        color: { value: '{colors.font.primary.value}' },\n        fontSize: { value: '{components.field.fontSize.value}' },\n        fontWeight: { value: '{fontWeights.bold.value}' },\n        lineHeight: { value: '{lineHeights.medium.value}' },\n        small: {\n            fontSize: '{components.field.small.fontSize.value}',\n        },\n        large: {\n            fontSize: '{components.field.large.fontSize.value}',\n        },\n    },\n    outlined: {\n        padding: '{space.medium.value}',\n        borderColor: '{colors.neutral.40.value}',\n        borderWidth: '{borderWidths.small.value}',\n        borderStyle: 'solid',\n        small: {\n            padding: '{space.small.value}',\n        },\n        large: {\n            padding: '{space.large.value}',\n        },\n    },\n    small: {\n        gap: '{components.field.small.gap.value}',\n    },\n    large: {\n        gap: '{components.field.large.gap.value}',\n    },\n};\n\nconst fieldmessages = {\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\nconst fileuploader = {\n    dropzone: {\n        backgroundColor: { value: '{colors.background.primary}' },\n        borderRadius: { value: '{radii.small}' },\n        borderColor: { value: '{colors.border.primary}' },\n        borderStyle: { value: 'dashed' },\n        borderWidth: { value: '{borderWidths.small}' },\n        gap: { value: '{space.small}' },\n        paddingBlock: { value: '{space.xl}' },\n        paddingInline: { value: '{space.large}' },\n        textAlign: { value: 'center' },\n        _active: {\n            backgroundColor: { value: '{colors.primary.10}' },\n            borderRadius: {\n                value: '{components.fileuploader.dropzone.borderRadius}',\n            },\n            borderColor: { value: '{colors.border.pressed}' },\n            borderStyle: {\n                value: '{components.fileuploader.dropzone.borderStyle}',\n            },\n            borderWidth: { value: '{borderWidths.medium}' },\n        },\n        icon: {\n            color: { value: '{colors.border.primary}' },\n            fontSize: { value: '{fontSizes.xxl}' },\n        },\n        text: {\n            color: { value: '{colors.font.tertiary}' },\n            fontSize: { value: '{fontSizes.medium}' },\n            fontWeight: { value: '{fontWeights.bold}' },\n        },\n    },\n    file: {\n        backgroundColor: { value: '{colors.background.primary}' },\n        borderRadius: { value: '{radii.small}' },\n        borderColor: { value: '{colors.border.primary}' },\n        borderStyle: { value: 'solid' },\n        borderWidth: { value: '{borderWidths.small}' },\n        paddingBlock: { value: '{space.xs}' },\n        paddingInline: { value: '{space.small}' },\n        gap: { value: '{space.small}' },\n        alignItems: { value: 'baseline' },\n        name: {\n            fontSize: { value: '{fontSizes.medium}' },\n            fontWeight: { value: '{fontWeights.bold}' },\n            color: { value: '{colors.font.primary}' },\n        },\n        size: {\n            fontSize: { value: '{fontSizes.small}' },\n            fontWeight: { value: '{fontWeights.normal}' },\n            color: { value: '{colors.font.tertiary}' },\n        },\n        image: {\n            width: { value: '{space.xxl}' },\n            height: { value: '{space.xxl}' },\n            backgroundColor: { value: '{colors.background.secondary}' },\n            color: { value: '{colors.font.tertiary}' },\n            borderRadius: { value: '{radii.small}' },\n        },\n    },\n    filelist: {\n        flexDirection: { value: 'column' },\n        gap: { value: '{space.small}' },\n    },\n    loader: {\n        strokeLinecap: { value: 'round' },\n        strokeEmpty: { value: '{colors.border.secondary}' },\n        strokeFilled: { value: '{components.loader.strokeFilled}' },\n        strokeWidth: { value: '{borderWidths.large}' },\n    },\n    previewer: {\n        backgroundColor: { value: '{colors.background.primary}' },\n        borderColor: { value: '{colors.border.primary}' },\n        borderStyle: { value: 'solid' },\n        borderWidth: { value: '{borderWidths.small}' },\n        borderRadius: { value: '{radii.small}' },\n        paddingBlock: { value: '{space.zero}' },\n        paddingInline: { value: '{space.zero}' },\n        maxHeight: { value: '40rem' },\n        maxWidth: { value: 'auto' },\n        text: {\n            fontSize: { value: '{fontSizes.medium}' },\n            fontWeight: { value: '{fontWeights.bold}' },\n            color: { value: '{colors.font.primary}' },\n        },\n        body: {\n            paddingBlock: { value: '{space.medium}' },\n            paddingInline: { value: '{space.medium}' },\n            gap: { value: '{space.small}' },\n        },\n        footer: {\n            justifyContent: { value: 'flex-end' },\n        },\n    },\n};\n\nconst flex = {\n    gap: { value: '{space.medium.value}' },\n    justifyContent: { value: 'normal' },\n    alignItems: { value: 'stretch' },\n    alignContent: { value: 'normal' },\n    flexWrap: { value: 'nowrap' },\n};\n\nconst heading = {\n    color: { value: '{colors.font.primary.value}' },\n    lineHeight: { value: '{lineHeights.small.value}' },\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\nconst highlightmatch = {\n    highlighted: {\n        fontWeight: { value: '{fontWeights.bold}' },\n    },\n};\n\nconst icon = {\n    lineHeight: { value: 1 },\n    height: { value: '1em' }, // Should match height of parent container font-size\n};\n\nconst input = {\n    color: { value: '{components.fieldcontrol.color.value}' },\n    borderColor: { value: '{components.fieldcontrol.borderColor.value}' },\n    fontSize: { value: '{components.fieldcontrol.fontSize.value}' },\n    _focus: {\n        borderColor: {\n            value: '{components.fieldcontrol._focus.borderColor.value}',\n        },\n    },\n};\n\nconst image = {\n    maxWidth: { value: '100%' },\n    height: { value: 'auto' },\n    objectFit: { value: 'initial' },\n    objectPosition: { value: 'initial' },\n};\n\nconst inappmessaging = {\n    banner: {\n        height: { value: '150px ' },\n        width: { value: '400px ' },\n    },\n    button: {\n        backgroundColor: { value: '#e8e8e8' },\n        borderRadius: { value: '5px' },\n        color: { value: 'black' },\n    },\n    dialog: {\n        height: { value: '50vh' },\n        minHeight: { value: '400px' },\n        minWidth: { value: '400px' },\n        width: { value: '30vw' },\n    },\n    header: {\n        fontSize: { value: '{fontSizes.medium.value}' },\n        fontWeight: { value: '{fontWeights.extrabold.value}' },\n    },\n};\n\nconst link = {\n    active: { color: { value: '{colors.font.active.value}' } },\n    color: { value: '{colors.font.interactive.value}' },\n    focus: { color: { value: '{colors.font.focus.value}' } },\n    hover: { color: { value: '{colors.font.hover.value}' } },\n    visited: { color: { value: '{colors.font.interactive.value}' } },\n};\n\nconst liveness = {\n    cameraModule: {\n        backgroundColor: { value: '{colors.background.primary.value}' },\n    },\n};\n\nconst loader = {\n    width: { value: '{fontSizes.medium.value}' },\n    height: { value: '{fontSizes.medium.value}' },\n    fontSize: { value: '{fontSizes.xs.value}' },\n    strokeEmpty: { value: '{colors.neutral.20.value}' },\n    strokeFilled: { value: '{colors.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        fontSize: { value: '{fontSizes.xxs.value}' },\n    },\n    large: {\n        width: { value: '{fontSizes.large.value}' },\n        height: { value: '{fontSizes.large.value}' },\n        fontSize: { value: '{fontSizes.small.value}' },\n    },\n    linear: {\n        width: { value: '100%' },\n        minWidth: { value: '5rem' },\n        fontSize: { value: '{fontSizes.xxs.value}' },\n        strokeWidth: { value: '{fontSizes.xxs.value}' },\n        strokeFilled: { value: '{colors.primary.80.value}' },\n        strokeEmpty: { value: '{colors.neutral.20.value}' },\n        strokeLinecap: { value: 'round' },\n        animationDuration: { value: '1s' },\n        small: {\n            strokeWidth: { value: '{fontSizes.xxxs.value}' },\n            fontSize: { value: '{fontSizes.xxxs.value}' },\n        },\n        large: {\n            strokeWidth: { value: '{fontSizes.xs.value}' },\n            fontSize: { value: '{fontSizes.xs.value}' },\n        },\n    },\n    text: {\n        fill: { value: '{colors.font.primary.value}' },\n    },\n};\n\nconst menu = {\n    backgroundColor: { value: '{colors.background.primary.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: '{space.zero.value}' },\n    maxWidth: { value: '30rem' },\n    minWidth: { value: '14rem' },\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\nconst message = {\n    // Default styles\n    alignItems: { value: 'center' },\n    backgroundColor: { value: '{colors.background.tertiary.value}' },\n    borderColor: { value: 'transparent' },\n    borderStyle: { value: 'solid' },\n    borderWidth: { value: '{borderWidths.small.value}' },\n    borderRadius: { value: '{radii.xs.value}' },\n    color: { value: '{colors.font.primary.value}' },\n    justifyContent: { value: 'flex-start' },\n    paddingBlock: { value: '{space.small.value}' },\n    paddingInline: { value: '{space.medium.value}' },\n    lineHeight: { value: '{lineHeights.small.value}' },\n    icon: {\n        size: { value: '{fontSizes.xl.value}' },\n    },\n    heading: {\n        fontSize: { value: '{fontSizes.medium.value}' },\n        fontWeight: { value: '{fontWeights.bold.value}' },\n    },\n    dismiss: {\n        gap: { value: '{space.xxs.value}' },\n    },\n    // Variations\n    plain: {\n        color: { value: '{colors.font.primary.value}' },\n        backgroundColor: { value: '{colors.background.primary.value}' },\n        borderColor: { value: 'transparent' },\n        info: {\n            color: { value: '{colors.font.info.value}' },\n            backgroundColor: { value: '{colors.background.primary.value}' },\n            borderColor: { value: 'transparent' },\n        },\n        error: {\n            color: { value: '{colors.font.error.value}' },\n            backgroundColor: { value: '{colors.background.primary.value}' },\n            borderColor: { value: 'transparent' },\n        },\n        success: {\n            color: { value: '{colors.font.success.value}' },\n            backgroundColor: { value: '{colors.background.primary.value}' },\n            borderColor: { value: 'transparent' },\n        },\n        warning: {\n            color: { value: '{colors.font.warning.value}' },\n            backgroundColor: { value: '{colors.background.primary.value}' },\n            borderColor: { value: 'transparent' },\n        },\n    },\n    outlined: {\n        color: { value: '{colors.font.primary.value}' },\n        backgroundColor: { value: '{colors.background.primary.value}' },\n        borderColor: { value: '{colors.border.primary.value}' },\n        info: {\n            color: { value: '{colors.font.info.value}' },\n            backgroundColor: { value: '{colors.background.primary.value}' },\n            borderColor: { value: '{colors.border.info.value}' },\n        },\n        error: {\n            color: { value: '{colors.font.error.value}' },\n            backgroundColor: { value: '{colors.background.primary.value}' },\n            borderColor: { value: '{colors.border.error.value}' },\n        },\n        success: {\n            color: { value: '{colors.font.success.value}' },\n            backgroundColor: { value: '{colors.background.primary.value}' },\n            borderColor: { value: '{colors.border.success.value}' },\n        },\n        warning: {\n            color: { value: '{colors.font.warning.value}' },\n            backgroundColor: { value: '{colors.background.primary.value}' },\n            borderColor: { value: '{colors.border.warning.value}' },\n        },\n    },\n    filled: {\n        color: { value: '{colors.font.primary.value}' },\n        backgroundColor: { value: '{colors.background.secondary.value}' },\n        borderColor: { value: 'transparent' },\n        info: {\n            color: { value: '{colors.font.info.value}' },\n            backgroundColor: { value: '{colors.background.info.value}' },\n            borderColor: { value: 'transparent' },\n        },\n        error: {\n            color: { value: '{colors.font.error.value}' },\n            backgroundColor: { value: '{colors.background.error.value}' },\n            borderColor: { value: 'transparent' },\n        },\n        success: {\n            color: { value: '{colors.font.success.value}' },\n            backgroundColor: { value: '{colors.background.success.value}' },\n            borderColor: { value: 'transparent' },\n        },\n        warning: {\n            color: { value: '{colors.font.warning.value}' },\n            backgroundColor: { value: '{colors.background.warning.value}' },\n            borderColor: { value: 'transparent' },\n        },\n    },\n};\n\nconst pagination = {\n    current: {\n        alignItems: { value: 'center' },\n        justifyContent: { value: 'center' },\n        color: { value: '{colors.font.inverse.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\nconst passwordfield = {\n    color: { value: '{components.fieldcontrol.color.value}' },\n    button: {\n        color: { value: '{components.button.color.value}' },\n        _active: {\n            backgroundColor: {\n                value: '{components.button._active.backgroundColor.value}',\n            },\n            borderColor: { value: '{components.button._active.borderColor.value}' },\n            color: { value: '{components.button._active.color.value}' },\n        },\n        _disabled: {\n            backgroundColor: {\n                value: '{components.button._disabled.backgroundColor.value}',\n            },\n            borderColor: {\n                value: '{components.button._disabled.borderColor.value}',\n            },\n            color: { value: '{components.button._disabled.color.value}' },\n        },\n        _error: {\n            color: { value: '{components.button.outlined.error.color.value}' },\n            backgroundColor: {\n                value: '{components.button.outlined.error.backgroundColor.value}',\n            },\n            borderColor: {\n                value: '{components.button.outlined.error.borderColor.value}',\n            },\n            _active: {\n                borderColor: {\n                    value: '{components.button.outlined.error._active.borderColor.value}',\n                },\n                backgroundColor: {\n                    value: '{components.button.outlined.error._active.backgroundColor.value}',\n                },\n                color: {\n                    value: '{components.button.outlined.error._active.color.value}',\n                },\n            },\n            _focus: {\n                borderColor: {\n                    value: '{components.button.outlined.error._focus.borderColor.value}',\n                },\n                backgroundColor: {\n                    value: '{components.button.outlined.error._focus.backgroundColor.value}',\n                },\n                color: {\n                    value: '{components.button.outlined.error._focus.color.value}',\n                },\n                boxShadow: {\n                    value: '{components.button.outlined.error._focus.boxShadow.value}',\n                },\n            },\n            _hover: {\n                borderColor: {\n                    value: '{components.button.outlined.error._hover.borderColor.value}',\n                },\n                backgroundColor: {\n                    value: '{components.button.outlined.error._hover.backgroundColor.value}',\n                },\n                color: {\n                    value: '{components.button.outlined.error._hover.color.value}',\n                },\n            },\n        },\n        _focus: {\n            backgroundColor: {\n                value: '{components.button._focus.backgroundColor.value}',\n            },\n            borderColor: { value: '{components.button._focus.borderColor.value}' },\n            color: { value: '{components.button._focus.color.value}' },\n        },\n        _hover: {\n            backgroundColor: {\n                value: '{components.button._hover.backgroundColor.value}',\n            },\n            borderColor: { value: '{components.button._hover.borderColor.value}' },\n            color: { value: '{components.button._hover.color.value}' },\n        },\n    },\n};\n\nconst phonenumberfield = {\n    color: { value: '{components.fieldcontrol.color}' },\n    borderColor: { value: '{components.fieldcontrol.borderColor}' },\n    fontSize: { value: '{components.fieldcontrol.fontSize}' },\n    _focus: {\n        borderColor: { value: '{components.fieldcontrol._focus.borderColor}' },\n    },\n};\n\nconst placeholder = {\n    borderRadius: { value: '{radii.small.value}' },\n    transitionDuration: { value: '{time.long.value}' },\n    startColor: { value: '{colors.background.secondary.value}' },\n    endColor: { value: '{colors.background.tertiary.value}' },\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\nconst radio = {\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.background.primary.value}' },\n        backgroundColor: { value: '{colors.background.primary.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        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        _checked: {\n            color: {\n                value: '{colors.primary.80.value}',\n            },\n            _disabled: { color: { value: '{colors.background.disabled.value}' } },\n        },\n        _focus: {\n            borderColor: { value: '{colors.border.focus.value}' },\n            boxShadow: { value: '{components.fieldcontrol._focus.boxShadow.value}' },\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        _disabled: {\n            borderColor: { value: '{colors.border.disabled.value}' },\n            backgroundColor: { value: '{colors.background.primary.value}' },\n        },\n    },\n    label: {\n        color: { value: '{components.text.color.value}' },\n        _disabled: {\n            color: {\n                value: '{colors.font.disabled.value}',\n            },\n        },\n    },\n};\n\nconst radiogroup = {\n    radio: {\n        borderWidth: { value: '{components.radio.button.borderWidth}' },\n        borderColor: { value: '{components.radio.button.borderColor}' },\n        backgroundColor: { value: '{components.radio.button.backgroundColor}' },\n        _checked: {\n            color: { value: '{components.radio.button._checked.color}' },\n        },\n        label: {\n            color: { value: '{components.radio.label.color}' },\n        },\n    },\n    legend: {\n        color: { value: '{components.fieldset.legend.color}' },\n        fontWeight: { value: '{fontWeights.normal}' },\n    },\n};\n\nconst rating = {\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.secondary.80.value}' } },\n    empty: { color: { value: '{colors.background.tertiary.value}' } },\n};\n\nconst searchfield = {\n    color: { value: '{components.fieldcontrol.color.value}' },\n    button: {\n        color: { value: '{components.button.color.value}' },\n        backgroundColor: { value: '{colors.background.primary.value}' },\n        _active: {\n            backgroundColor: {\n                value: '{components.button._active.backgroundColor.value}',\n            },\n            borderColor: { value: '{components.button._active.borderColor.value}' },\n            color: { value: '{components.button._active.color.value}' },\n        },\n        _disabled: {\n            backgroundColor: {\n                value: '{components.button._disabled.backgroundColor.value}',\n            },\n            borderColor: {\n                value: '{components.button._disabled.borderColor.value}',\n            },\n            color: { value: '{components.button._disabled.color.value}' },\n        },\n        _focus: {\n            backgroundColor: {\n                value: '{components.button._focus.backgroundColor.value}',\n            },\n            borderColor: { value: '{components.button._focus.borderColor.value}' },\n            color: { value: '{components.button._focus.color.value}' },\n        },\n        _hover: {\n            backgroundColor: {\n                value: '{components.button._hover.backgroundColor.value}',\n            },\n            borderColor: { value: '{components.button._hover.borderColor.value}' },\n            color: { value: '{components.button._hover.color.value}' },\n        },\n    },\n};\n\nconst select = {\n    color: { value: '{components.fieldcontrol.color}' },\n    backgroundColor: { value: '{colors.background.primary.value}' },\n    paddingInlineEnd: { value: '{space.xxl.value}' },\n    _disabled: {\n        color: { value: '{colors.font.disabled.value}' },\n        backgroundColor: { value: '{colors.background.disabled.value}' },\n    },\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        small: {\n            right: { value: '{space.xs.value}' },\n        },\n        large: {\n            right: { value: '{space.medium.value}' },\n        },\n    },\n    // It's important to test these option values on Chrome/FireFox/Edge\n    // on Windows because they allow styling of the option element.\n    // Chrome/Safari/Firefox on Mac uses the system ui.\n    option: {\n        backgroundColor: { value: 'transparent' },\n        color: { value: '{colors.font.primary.value}' },\n        _disabled: {\n            color: { value: '{colors.font.disabled.value}' },\n            backgroundColor: {\n                value: 'transparent',\n            },\n        },\n    },\n    whiteSpace: { value: 'nowrap' },\n    minWidth: { value: '6.5rem' },\n    small: {\n        minWidth: { value: '5.5rem' },\n        paddingInlineEnd: { value: '{space.xl.value}' },\n    },\n    large: {\n        minWidth: { value: '7.5rem' },\n        paddingInlineEnd: { value: '{space.xxl.value}' },\n    },\n    expanded: {\n        paddingBlock: { value: '{space.xs.value}' },\n        paddingInline: { value: '{space.small.value}' },\n        option: {\n            paddingBlock: { value: '{space.xs.value}' },\n            paddingInline: { value: '{space.small.value}' },\n        },\n    },\n};\n\nconst selectfield = {\n    borderColor: { value: '{components.fieldcontrol.borderColor}' },\n    color: { value: '{components.fieldcontrol.color}' },\n    flexDirection: {\n        value: 'column',\n    },\n    fontSize: { value: '{components.fieldcontrol.fontSize}' },\n    _focus: {\n        borderColor: { value: '{components.fieldcontrol._focus.borderColor}' },\n    },\n    label: {\n        color: { value: '{components.field.label.color}' },\n    },\n};\n\nconst sliderfield = {\n    paddingBlock: { value: '{space.xs.value}' },\n    // The track is the thin background of the slider\n    track: {\n        backgroundColor: { value: '{colors.background.quaternary.value}' },\n        borderRadius: { value: '9999px' },\n        height: { value: '0.375rem' },\n        minWidth: { value: '10rem' },\n    },\n    // The range is the filled part of the track\n    range: {\n        backgroundColor: { value: '{colors.primary.80.value}' },\n        borderRadius: { value: '9999px' },\n        _disabled: {\n            backgroundColor: { value: '{colors.background.disabled.value}' },\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.medium.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            borderColor: { value: '{colors.border.focus.value}' },\n            boxShadow: { value: '{components.fieldcontrol._focus.boxShadow.value}' },\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    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\nconst stepperfield = {\n    borderColor: { value: '{components.fieldcontrol.borderColor}' },\n    flexDirection: { value: 'column' },\n    input: {\n        color: { value: '{components.fieldcontrol.color}' },\n        fontSize: { value: '{components.fieldcontrol.fontSize}' },\n        textAlign: { value: 'center' },\n    },\n    button: {\n        color: { value: '{components.button.color}' },\n        backgroundColor: { value: '{colors.transparent}' },\n        _active: {\n            color: { value: '{components.button._active.color}' },\n            backgroundColor: { value: '{components.button._active.backgroundColor}' },\n        },\n        _focus: {\n            color: { value: '{components.button._focus.color}' },\n            backgroundColor: { value: '{components.button._focus.backgroundColor}' },\n        },\n        _disabled: {\n            color: { value: '{components.button._disabled.color}' },\n            backgroundColor: {\n                value: '{components.fieldcontrol._disabled.backgroundColor}',\n            },\n        },\n        _hover: {\n            color: { value: '{components.button._hover.color}' },\n            backgroundColor: { value: '{components.button._hover.backgroundColor}' },\n        },\n    },\n};\n\nconst storagemanager = {\n    dropzone: {\n        backgroundColor: { value: '{colors.background.primary}' },\n        borderRadius: { value: '{radii.small}' },\n        borderColor: { value: '{colors.border.primary}' },\n        borderStyle: { value: 'dashed' },\n        borderWidth: { value: '{borderWidths.small}' },\n        gap: { value: '{space.small}' },\n        paddingBlock: { value: '{space.xl}' },\n        paddingInline: { value: '{space.large}' },\n        textAlign: { value: 'center' },\n        _active: {\n            backgroundColor: { value: '{colors.primary.10}' },\n            borderRadius: {\n                value: '{components.storagemanager.dropzone.borderRadius}',\n            },\n            borderColor: { value: '{colors.border.pressed}' },\n            borderStyle: {\n                value: '{components.storagemanager.dropzone.borderStyle}',\n            },\n            borderWidth: { value: '{borderWidths.medium}' },\n        },\n        icon: {\n            color: { value: '{colors.border.primary}' },\n            fontSize: { value: '{fontSizes.xxl}' },\n        },\n        text: {\n            color: { value: '{colors.font.tertiary}' },\n            fontSize: { value: '{fontSizes.medium}' },\n            fontWeight: { value: '{fontWeights.bold}' },\n        },\n    },\n    file: {\n        backgroundColor: { value: '{colors.background.primary}' },\n        borderRadius: { value: '{radii.small}' },\n        borderColor: { value: '{colors.border.primary}' },\n        borderStyle: { value: 'solid' },\n        borderWidth: { value: '{borderWidths.small}' },\n        paddingBlock: { value: '{space.xs}' },\n        paddingInline: { value: '{space.small}' },\n        gap: { value: '{space.small}' },\n        alignItems: { value: 'baseline' },\n        name: {\n            fontSize: { value: '{fontSizes.medium}' },\n            fontWeight: { value: '{fontWeights.bold}' },\n            color: { value: '{colors.font.primary}' },\n        },\n        size: {\n            fontSize: { value: '{fontSizes.small}' },\n            fontWeight: { value: '{fontWeights.normal}' },\n            color: { value: '{colors.font.tertiary}' },\n        },\n        image: {\n            width: { value: '{space.xxl}' },\n            height: { value: '{space.xxl}' },\n            backgroundColor: { value: '{colors.background.secondary}' },\n            color: { value: '{colors.font.tertiary}' },\n            borderRadius: { value: '{radii.small}' },\n        },\n    },\n    filelist: {\n        flexDirection: { value: 'column' },\n        gap: { value: '{space.small}' },\n    },\n    loader: {\n        strokeLinecap: { value: 'round' },\n        strokeEmpty: { value: '{colors.border.secondary}' },\n        strokeFilled: { value: '{components.loader.strokeFilled}' },\n        strokeWidth: { value: '{borderWidths.large}' },\n    },\n    previewer: {\n        backgroundColor: { value: '{colors.background.primary}' },\n        borderColor: { value: '{colors.border.primary}' },\n        borderStyle: { value: 'solid' },\n        borderWidth: { value: '{borderWidths.small}' },\n        borderRadius: { value: '{radii.small}' },\n        paddingBlock: { value: '{space.zero}' },\n        paddingInline: { value: '{space.zero}' },\n        maxHeight: { value: '40rem' },\n        maxWidth: { value: 'auto' },\n        text: {\n            fontSize: { value: '{fontSizes.medium}' },\n            fontWeight: { value: '{fontWeights.bold}' },\n            color: { value: '{colors.font.primary}' },\n        },\n        body: {\n            paddingBlock: { value: '{space.medium}' },\n            paddingInline: { value: '{space.medium}' },\n            gap: { value: '{space.small}' },\n        },\n        footer: {\n            justifyContent: { value: 'flex-end' },\n        },\n    },\n};\n\nconst switchfield = {\n    // States\n    _disabled: {\n        opacity: { value: '{opacities.60.value}' },\n    },\n    _focused: {\n        shadow: {\n            value: '{components.fieldcontrol._focus.boxShadow.value}',\n        },\n    },\n    // Sizes\n    fontSize: { value: '{fontSizes.medium.value}' },\n    large: {\n        fontSize: { value: '{fontSizes.large.value}' },\n    },\n    small: {\n        fontSize: { value: '{fontSizes.small.value}' },\n    },\n    // Child elements\n    label: {\n        padding: { value: '{space.xs.value}' },\n    },\n    thumb: {\n        backgroundColor: { value: '{colors.background.primary.value}' },\n        borderColor: { value: 'transparent' },\n        borderWidth: { value: '{borderWidths.small.value}' },\n        borderStyle: { value: 'solid' },\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.quaternary.value}' },\n        borderRadius: { value: '{radii.xxxl.value}' },\n        checked: {\n            backgroundColor: { value: '{colors.primary.80.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        _error: {\n            backgroundColor: { value: '{colors.background.error.value}' },\n        },\n    },\n};\n\nconst table = {\n    /**\n     * Default table styles\n     */\n    borderCollapse: { value: 'collapse' },\n    display: { value: 'table' },\n    width: { value: '100%' },\n    /**\n     * Default table head styles\n     */\n    head: {\n        display: { value: 'table-header-group' },\n        verticalAlign: { value: 'middle' },\n    },\n    /**\n     * Default table body styles\n     */\n    body: {\n        display: { value: 'table-row-group' },\n        verticalAlign: { value: 'middle' },\n    },\n    /**\n     * Default table foot styles\n     */\n    foot: {\n        display: { value: 'table-footer-group' },\n        verticalAlign: { value: 'middle' },\n    },\n    /**\n     * Default table row styles\n     */\n    row: {\n        display: { value: 'table-row' },\n        verticalAlign: { value: 'middle' },\n        hover: {\n            backgroundColor: { value: '{colors.background.tertiary.value}' },\n        },\n        striped: {\n            backgroundColor: { value: '{colors.background.secondary.value}' },\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        large: {\n            fontSize: { value: '{fontSizes.large.value}' },\n            padding: { value: '{space.large.value}' },\n        },\n        small: {\n            fontSize: { value: '{fontSizes.small.value}' },\n            padding: { value: '{space.xs.value}' },\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        large: {\n            fontSize: { value: '{fontSizes.large.value}' },\n            padding: { value: '{space.large.value}' },\n        },\n        small: {\n            fontSize: { value: '{fontSizes.small.value}' },\n            padding: { value: '{space.xs.value}' },\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        large: {\n            fontSize: { value: '{fontSizes.large.value}' },\n        },\n        small: {\n            fontSize: { value: '{fontSizes.small.value}' },\n        },\n    },\n};\n\nconst tabs = {\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    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        _hover: {\n            backgroundColor: { value: 'transparent' },\n            borderColor: { value: '{colors.border.focus.value}' },\n            boxShadow: { value: 'none' },\n            color: { value: '{colors.font.hover.value}' },\n        },\n        _focus: {\n            backgroundColor: { value: 'transparent' },\n            borderColor: { value: '{colors.border.focus.value}' },\n            boxShadow: {\n                value: {\n                    offsetX: '0px',\n                    offsetY: '0px',\n                    blurRadius: '0px',\n                    spreadRadius: '{borderWidths.medium}',\n                    color: '{colors.border.focus.value}',\n                },\n            },\n            color: { value: '{colors.font.focus.value}' },\n        },\n        _active: {\n            backgroundColor: { value: 'transparent' },\n            borderColor: { value: '{colors.font.interactive.value}' },\n            boxShadow: { value: 'none' },\n            color: { value: '{colors.font.interactive.value}' },\n        },\n        _disabled: {\n            backgroundColor: { value: 'transparent' },\n            borderColor: { value: '{colors.border.tertiary.value}' },\n            boxShadow: { value: 'none' },\n            color: { value: '{colors.font.disabled.value}' },\n        },\n    },\n    panel: {\n        backgroundColor: { value: 'transparent' },\n        paddingInline: { value: '0' },\n        paddingBlock: { value: '{space.small.value}' },\n    },\n};\n\nconst text = {\n    // default styles\n    color: { value: '{colors.font.primary.value}' },\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\nconst textareafield = {\n    color: { value: '{components.fieldcontrol.color.value}' },\n    borderColor: { value: '{components.fieldcontrol.borderColor.value}' },\n    _focus: {\n        borderColor: {\n            value: '{components.fieldcontrol._focus.borderColor.value}',\n        },\n    },\n};\n\nconst textfield = {\n    color: { value: '{components.fieldcontrol.color.value}' },\n    borderColor: { value: '{components.fieldcontrol.borderColor.value}' },\n    fontSize: { value: '{components.fieldcontrol.fontSize.value}' },\n    _focus: {\n        borderColor: {\n            value: '{components.fieldcontrol._focus.borderColor.value}',\n        },\n    },\n};\n\nconst togglebutton = {\n    borderColor: { value: '{colors.border.primary.value}' },\n    color: { value: '{colors.font.primary.value}' },\n    _hover: {\n        backgroundColor: { value: '{colors.overlay.10.value}' },\n    },\n    _focus: {\n        borderColor: { value: '{colors.border.focus.value}' },\n        color: { value: '{colors.font.primary.value}' },\n    },\n    _active: {\n        backgroundColor: { value: '{colors.transparent.value}' },\n    },\n    _disabled: {\n        backgroundColor: { value: '{colors.transparent.value}' },\n        borderColor: { value: '{colors.border.disabled.value}' },\n        color: { value: '{colors.font.disabled.value}' },\n    },\n    _pressed: {\n        borderColor: { value: '{colors.border.pressed.value}' },\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.font.primary.value}' },\n        },\n        _hover: {\n            backgroundColor: { value: '{colors.overlay.10.value}' },\n            color: { value: '{colors.font.primary.value}' },\n        },\n        _disabled: {\n            borderColor: { value: '{colors.border.disabled.value}' },\n            backgroundColor: { value: '{colors.background.disabled.value}' },\n            color: { value: '{colors.font.disabled.value}' },\n        },\n        _pressed: {\n            backgroundColor: { value: '{colors.primary.80.value}' },\n            borderColor: { value: '{colors.primary.80.value}' },\n            color: { value: '{colors.background.primary.value}' },\n            _focus: {\n                backgroundColor: {\n                    value: '{colors.border.focus.value}',\n                },\n                borderColor: { value: '{colors.border.focus.value}' },\n                color: { value: '{colors.background.primary.value}' },\n            },\n            _hover: {\n                borderColor: { value: '{colors.primary.60.value}' },\n                backgroundColor: {\n                    value: '{colors.primary.60.value}',\n                },\n                boxShadow: { value: '{colors.primary.60.value}' },\n                color: { value: '{colors.background.primary.value}' },\n            },\n        },\n    },\n    link: {\n        backgroundColor: { value: '{colors.transparent.value}' },\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            backgroundColor: { value: '{colors.transparent.value}' },\n            color: { value: '{colors.font.disabled.value}' },\n        },\n        _pressed: {\n            backgroundColor: { value: '{colors.transparent.value}' },\n            color: { value: '{colors.overlay.90.value}' },\n            _focus: {\n                backgroundColor: { value: '{colors.transparent.value}' },\n                color: { value: '{colors.overlay.90.value}' },\n            },\n            _hover: {\n                color: { value: '{colors.overlay.90.value}' },\n                backgroundColor: { value: '{colors.transparent.value}' },\n            },\n        },\n    },\n};\n\nconst togglebuttongroup = {\n    alignItems: { value: 'center' },\n    alignContent: { value: 'center' },\n    justifyContent: { value: 'flex-start' },\n};\n\nconst components = {\n    accordion,\n    aiConversation,\n    alert,\n    authenticator,\n    autocomplete,\n    avatar,\n    badge,\n    breadcrumbs,\n    button,\n    card,\n    checkbox,\n    checkboxfield,\n    collection,\n    copy,\n    countrycodeselect: dialcodeselect,\n    divider,\n    dropzone,\n    field,\n    fieldcontrol,\n    fieldgroup,\n    fieldmessages,\n    fieldset,\n    fileuploader,\n    flex,\n    heading,\n    icon,\n    highlightmatch,\n    image,\n    inappmessaging,\n    input,\n    link,\n    liveness,\n    loader,\n    menu,\n    message,\n    pagination,\n    passwordfield,\n    phonenumberfield,\n    placeholder,\n    radio,\n    radiogroup,\n    rating,\n    searchfield,\n    select,\n    selectfield,\n    sliderfield,\n    stepperfield,\n    storagemanager,\n    switchfield,\n    table,\n    tabs,\n    text,\n    textareafield,\n    textfield,\n    togglebutton,\n    togglebuttongroup,\n};\n\n// TODO: update the design tokens to use an array\n// export interface FontDesignToken {\n//   value: Array<string>\n// }\nconst 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\nconst 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\nconst 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\nconst lineHeights = {\n    small: { value: '1.25' },\n    medium: { value: '1.5' },\n    large: { value: '2' },\n};\n\nconst opacities = {\n    0: { value: '0' },\n    10: { value: '0.1' },\n    20: { value: '0.2' },\n    30: { value: '0.3' },\n    40: { value: '0.4' },\n    50: { value: '0.5' },\n    60: { value: '0.6' },\n    70: { value: '0.7' },\n    80: { value: '0.8' },\n    90: { value: '0.9' },\n    100: { value: '1' },\n};\n\nconst outlineOffsets = {\n    small: { value: '1px' },\n    medium: { value: '2px' },\n    large: { value: '3px' },\n};\n\nconst outlineWidths = {\n    small: { value: '1px' },\n    medium: { value: '2px' },\n    large: { value: '3px' },\n};\n\nconst 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\nconst 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\nconst space = {\n    zero: { value: '0' },\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.375em' },\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        full: { value: '100%' },\n    },\n};\n// I want to be able to pass in a Theme object that has extra tokens\n// and it returns that same object type WITH the extra tokens\n\nconst time = {\n    short: { value: '100ms' },\n    medium: { value: '250ms' },\n    long: { value: '500ms' },\n};\n\nconst 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\nconst tokens = {\n    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};\nconst reactNativeTokens = {\n    colors,\n    borderWidths,\n    fontSizes: {\n        xxs: fontSizes.xxs,\n        xs: fontSizes.xs,\n        small: fontSizes.small,\n        medium: fontSizes.medium,\n        large: fontSizes.large,\n        xl: fontSizes.xl,\n        xxl: fontSizes.xxl,\n        xxxl: fontSizes.xxxl,\n    },\n    fontWeights,\n    opacities,\n    // React Native doesn't need the relative space values\n    space: {\n        // use `space.xxxs` to output a value of `2` and avoid odd space numbers\n        xxs: space.xxxs,\n        xs: space.xs,\n        small: space.small,\n        medium: space.medium,\n        large: space.large,\n        xl: space.xl,\n        xxl: space.xxl,\n        xxxl: space.xxxl,\n    },\n    radii,\n    time,\n};\n\n// Breakpoint unit is in pixels\nconst breakpoints = {\n    values: {\n        base: 0,\n        small: 480,\n        medium: 768,\n        large: 992,\n        xl: 1280,\n        xxl: 1536,\n    },\n    defaultBreakpoint: 'base',\n};\n\nconst defaultTheme = {\n    tokens,\n    breakpoints,\n    name: 'default-theme',\n};\n\nconst CSS_VARIABLE_PREFIX = 'amplify';\n/**\n * This will take an object like:\n * {paddingTop:'20px',color:'{colors.font.primary}'}\n * and turn it into a CSS string:\n * `padding-top:20px; color: var(--colors-font-primary);`\n */\nfunction propsToString(props) {\n    return Object.entries(props)\n        .map(([key, value]) => {\n        const _value = isDesignToken(value)\n            ? value.toString()\n            : // @ts-ignore\n                cssValue({ value });\n        return `${kebabCase__default[\"default\"](key)}:${_value}; `;\n    })\n        .join(' ');\n}\nfunction cssNameTransform({ path = [] }) {\n    return `${kebabCase__default[\"default\"]([CSS_VARIABLE_PREFIX, ...path].join(' '))}`;\n}\n// Important: these properties should not be altered in\n// order to maintain the expected order of the CSS `box-shadow` property\nconst SHADOW_PROPERTIES = [\n    'offsetX',\n    'offsetY',\n    'blurRadius',\n    'spreadRadius',\n    'color',\n];\n/**\n * Will take a design token in a theme and return its value as CSS\n *\n * @param token\n * @returns\n */\nfunction cssValue(token) {\n    const { value } = token;\n    if (isString(value)) {\n        return referenceValue(value);\n    }\n    if (isShadowTokenObject(value)) {\n        return SHADOW_PROPERTIES.map((property) => {\n            return referenceValue(\n            // lookup property against `token` first for custom non-nested value, then lookup\n            // property against `value` for design token value\n            isShadowTokenObject(token) ? token[property] : value[property]);\n        }).join(' ');\n    }\n    return value;\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 value - thing to test if it is a design token or not\n * @returns boolean\n */\nfunction isDesignToken(value) {\n    return isObject(value) && has(value, 'value');\n}\nfunction isShadowTokenObject(value) {\n    return isObject(value) && has(value, 'offsetX');\n}\n/**\n * Function that sees if a string contains a design token reference\n * and if so will turn that into a CSS variable.\n *\n * @param {string} value\n * @returns string\n */\nfunction referenceValue(value) {\n    if (!value)\n        return '';\n    if (usesReference(value)) {\n        const path = value.replace(/\\{|\\}/g, '').replace('.value', '').split('.');\n        return `var(--${cssNameTransform({ path })})`;\n    }\n    return value;\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 */\nconst setupToken = ({ token, path }) => {\n    const name = `--${cssNameTransform({ path })}`;\n    const { value: original } = token;\n    const value = cssValue(token);\n    return { name, original, path, value, toString: () => `var(${name})` };\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({ tokens, path = [], setupToken, }) {\n    if (has(tokens, 'value')) {\n        return setupToken({ token: tokens, path });\n    }\n    const output = {};\n    for (const name in tokens) {\n        if (has(tokens, name)) {\n            const value = tokens[name];\n            const nextTokens = isObject(value) ? value : { value };\n            output[name] = setupTokens({\n                tokens: nextTokens,\n                path: path.concat(name),\n                setupToken,\n            });\n        }\n    }\n    return output;\n}\n// Internal Style Dictionary methods\n// copied from amzn/style-dictionary with the owner's permission\n/**\n * Takes an plain javascript object and will make a flat array of all the leaf nodes.\n * A leaf node in this context has a 'value' property. Potentially refactor this to\n * be more generic.\n * @private\n * @param  {Object} properties - The plain object you want flattened into an array.\n * @param  {Array} [to_ret=[]] - Properties array. This function is recursive therefore this is what gets passed along.\n * @return {Array}\n */\nfunction flattenProperties(properties, to_ret) {\n    to_ret = to_ret || [];\n    for (var name in properties) {\n        if (has(properties, name)) {\n            if (isObject(properties[name]) && 'value' in properties[name]) {\n                to_ret.push(properties[name]);\n            }\n            else if (isObject(properties[name])) {\n                flattenProperties(properties[name], to_ret);\n            }\n        }\n    }\n    return to_ret;\n}\n/**\n * Performs an deep extend on the objects, from right to left.\n * @private\n * @param {Object[]} objects - An array of JS objects\n * @param {Function} collision - A function to be called when a merge collision happens.\n * @param {string[]} path - (for internal use) An array of strings which is the current path down the object when this is called recursively.\n * @returns {Object}\n */\nfunction deepExtend(objects, collision, path) {\n    if (objects == null)\n        return {};\n    var src, copyIsArray, copy, name, options, clone, target = objects[0] || {}, i = 1, length = objects.length;\n    path = path || [];\n    // Handle case when target is a string or something (possible in deep copy)\n    if (typeof target !== 'object') {\n        target = {};\n    }\n    for (; i < length; i++) {\n        // Only deal with non-null/undefined values\n        if ((options = objects[i]) != null) {\n            // Extend the base object\n            for (name in options) {\n                if (!has(options, name))\n                    continue;\n                if (name === '__proto__')\n                    continue;\n                src = target[name];\n                copy = options[name];\n                // Prevent never-ending loop\n                if (target === copy) {\n                    continue;\n                }\n                // Recurse if we're merging plain objects or arrays\n                if (copy && (isObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n                    if (copyIsArray) {\n                        copyIsArray = false;\n                        clone = src && Array.isArray(src) ? src : [];\n                    }\n                    else {\n                        clone = src && isObject(src) ? src : {};\n                    }\n                    var nextPath = path.slice(0);\n                    nextPath.push(name);\n                    // Never move original objects, clone them\n                    target[name] = deepExtend([clone, copy], collision, nextPath);\n                    // Don't bring in undefined values\n                }\n                else if (copy !== undefined) {\n                    if (src != null && typeof collision == 'function') {\n                        collision({ target: target, copy: options, path: path, key: name });\n                    }\n                    target[name] = copy;\n                }\n            }\n        }\n    }\n    return target;\n}\n\nfunction addVars(selector, vars) {\n    if (!vars)\n        return '';\n    return `${selector} { ${Object.entries(vars)\n        .map(([key, value]) => {\n        return `--${key}:${value}; `;\n    })\n        .join(' ')}}\\n`;\n}\nfunction recursiveComponentCSS(baseSelector, theme) {\n    let str = '';\n    const { _modifiers = {}, _element = {}, _vars, ...props } = theme;\n    // if there are no props, skip\n    if (Object.keys(props).length) {\n        // separate psuedo/attribute selectors\n        const [selectors, other] = splitObject(props, (key) => key.startsWith(':') || key.startsWith('['));\n        Object.entries(selectors).forEach(([selector, value]) => {\n            // need to remove nested things like vars and elements\n            const { _modifiers = {}, _element = {}, _vars, ...props } = value;\n            str += `${baseSelector}${selector} { ${propsToString(props)} }\\n`;\n            str += addVars(`${baseSelector}${selector}`, _vars);\n        });\n        str += `${baseSelector} { ${propsToString(other)} }\\n`;\n    }\n    str += addVars(baseSelector, _vars);\n    Object.entries(_modifiers).forEach(([key, value]) => {\n        if (value && Object.keys(value).length) {\n            str += recursiveComponentCSS(`${baseSelector}--${key}`, value);\n        }\n    });\n    Object.entries(_element).forEach(([key, value]) => {\n        if (value && Object.keys(value).length) {\n            str += recursiveComponentCSS(`${baseSelector}__${key}`, value);\n        }\n    });\n    return str;\n}\n/**\n * This will take a component theme and create the appropriate CSS for it.\n *\n */\nfunction createComponentCSS({ theme, components, }) {\n    let cssText = '';\n    const { tokens, name: themeName, breakpoints } = theme;\n    components.forEach(({ name, theme, overrides }) => {\n        const baseComponentClassName = `amplify-${name}`;\n        const componentClassName = `[data-amplify-theme=\"${themeName}\"] .${baseComponentClassName}`;\n        // unwrap the component theme\n        // if it is a function: call it with the defaultTheme to get a static object\n        const componentTheme = isFunction(theme)\n            ? theme(tokens)\n            : theme;\n        cssText += recursiveComponentCSS(componentClassName, componentTheme);\n        // if the component theme has overrides\n        // generate the appropriate CSS for each of them\n        if (overrides) {\n            overrides.forEach((override) => {\n                // unwrap the override component theme just like above\n                const componentTheme = isFunction(override.theme)\n                    ? override.theme(tokens)\n                    : override.theme;\n                if ('mediaQuery' in override) {\n                    cssText += `@media (${override.mediaQuery}) {\\n ${recursiveComponentCSS(componentClassName, componentTheme)} \\n}`;\n                }\n                if ('breakpoint' in override) {\n                    const breakpoint = breakpoints.values[override.breakpoint];\n                    cssText += `\\n@media (min-width: ${breakpoint}px) {\\n ${recursiveComponentCSS(componentClassName, componentTheme)} \\n}`;\n                }\n                if ('selector' in override) {\n                    cssText += recursiveComponentCSS(`${override.selector} .${baseComponentClassName}`, componentTheme);\n                }\n                if ('colorMode' in override) {\n                    cssText += `\\n@media (prefers-color-scheme: ${override.colorMode}) {\\n${recursiveComponentCSS(`[data-amplify-theme=\"${themeName}\"][data-amplify-color-mode=\"system\"] .${baseComponentClassName}`, componentTheme)}\\n}\\n`;\n                    cssText += recursiveComponentCSS(`[data-amplify-theme=\"${themeName}\"][data-amplify-color-mode=\"${override.colorMode}\"] .${baseComponentClassName}`, componentTheme);\n                }\n            });\n        }\n    });\n    return cssText;\n}\n\n/**\n * Takes a set of keys and a color name and returns an object of design tokens,\n * used for applying a primary color at the theme level to our tokens.\n *\n * createColorPalette({keys: ['10','20',...], value: 'red'})\n * returns {\n *   10: { value: '{colors.red.10.value}' },\n *   20: { value: '{colors.red.20.value}' },\n *   ...\n * }\n */\nfunction createColorPalette({ keys, value }) {\n    return keys.reduce((acc, key) => {\n        return {\n            ...acc,\n            [key]: { value: `{colors.${value}.${key}.value}` },\n        };\n    }, {});\n}\n\nfunction createAnimationCSS({ animations, tokens, }) {\n    let cssText = '';\n    Object.entries(animations).forEach(([key, value]) => {\n        cssText += `\\n  @keyframes ${key} {`;\n        Object.entries(value).forEach(([step, properties]) => {\n            cssText += `\\n    ${step} {\\n`;\n            const animationProperties = isFunction(properties)\n                ? properties(tokens)\n                : properties;\n            cssText += propsToString(animationProperties);\n            cssText += `\\n    }`;\n        });\n        cssText += `\\n  }`;\n    });\n    return cssText;\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 */\nfunction createTheme(theme, DefaultTheme = defaultTheme) {\n    // merge theme and DefaultTheme 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 = deepExtend([\n        {},\n        DefaultTheme,\n        {\n            ...theme,\n            components: {},\n        },\n    ]);\n    const { primaryColor, secondaryColor } = mergedTheme;\n    // apply primaryColor and secondaryColor if present\n    if (isString(primaryColor)) {\n        mergedTheme.tokens.colors.primary = createColorPalette({\n            keys: Object.keys(mergedTheme.tokens.colors[primaryColor]),\n            value: primaryColor,\n        });\n    }\n    if (isString(secondaryColor)) {\n        mergedTheme.tokens.colors.secondary = createColorPalette({\n            keys: Object.keys(mergedTheme.tokens.colors[secondaryColor]),\n            value: secondaryColor,\n        });\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({\n        tokens: mergedTheme.tokens,\n        setupToken,\n    }); // Setting the type here because setupTokens is recursive\n    const { breakpoints, name } = mergedTheme;\n    // flattenProperties is another internal Style Dictionary function\n    // that creates an array of all tokens.\n    let cssText = `[data-amplify-theme=\"${name}\"] {\\n` +\n        flattenProperties(tokens)\n            .map((token) => `${token.name}: ${token.value};`)\n            .join('\\n') +\n        `\\n}\\n`;\n    if (theme?.components) {\n        cssText += createComponentCSS({\n            theme: {\n                ...mergedTheme,\n                tokens,\n            },\n            components: theme.components,\n        });\n    }\n    let overrides = [];\n    if (mergedTheme.animations) {\n        cssText += createAnimationCSS({\n            animations: mergedTheme.animations,\n            tokens,\n        });\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 overrideTokens = setupTokens({\n                tokens: override.tokens,\n                setupToken,\n            });\n            const customProperties = flattenProperties(overrideTokens)\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            color-scheme: ${override.colorMode};\n          }\n        }\\n`;\n                cssText += `\\n[data-amplify-theme=\"${name}\"][data-amplify-color-mode=\"${override.colorMode}\"] {\n          ${customProperties}\n          color-scheme: ${override.colorMode};\n        }\\n`;\n            }\n            return {\n                ...override,\n                tokens: overrideTokens,\n            };\n        });\n    }\n    return {\n        tokens,\n        breakpoints,\n        name,\n        cssText,\n        containerProps: ({ colorMode } = {}) => {\n            return {\n                'data-amplify-theme': name,\n                'data-amplify-color-mode': colorMode,\n            };\n        },\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\nfunction createComponentClasses({ name, prefix = 'amplify-' }) {\n    const className = (props = {}, extraClassnames = []) => {\n        const baseComponentClassName = `${prefix}${name}`;\n        // get the element if there is one\n        // the _element argument can be a string\n        // like { _element: 'icon' }\n        // or it could be an object where the key is\n        // the element name and the value is the modifiers\n        // like { _element: { icon: [size] } }\n        const element = isString(props._element)\n            ? props._element\n            : isObject(props._element)\n                ? Object.keys(props._element)[0]\n                : undefined;\n        const className = element\n            ? `${baseComponentClassName}__${element}`\n            : baseComponentClassName;\n        const names = [className];\n        if (element) {\n            const modifiers = props._element[element];\n            names.push(...modifierClassnames({ className, modifiers }));\n        }\n        else {\n            names.push(...modifierClassnames({\n                className,\n                modifiers: props._modifiers,\n            }));\n        }\n        return classNames([...names, ...extraClassnames]);\n    };\n    return className;\n}\nfunction modifierClassnames({ className, modifiers, }) {\n    if (Array.isArray(modifiers)) {\n        return modifiers.map((modifier) => {\n            if (!modifier || !isString(modifier)) {\n                return;\n            }\n            return `${className}--${modifier}`;\n        });\n    }\n    if (isObject(modifiers)) {\n        return Object.entries(modifiers).map(([key, value]) => {\n            if (value) {\n                return `${className}--${key}`;\n            }\n        });\n    }\n    if (isString(modifiers)) {\n        return [`${className}--${modifiers}`];\n    }\n    return [];\n}\n\n/**\n * Use this to create the theme of a component. You can use this\n * to both completely customize built-in components and\n * build your own components!\n *\n *\n * ```ts\n * // built-in component styling\n * const alertTheme = defineComponentTheme({\n *   name: 'alert',\n *   theme: (tokens) => {\n *     return {\n *       padding: tokens.space.large\n *     }\n *   }\n * });\n *\n * // custom component styling\n * const avatarTheme = defineComponentTheme({\n *   name: 'avatar',\n *   theme: (tokens) => {\n *     return {\n *       padding: tokens.space.large\n *     }\n *   }\n * })\n *\n * const theme = createTheme({\n *   name: 'my-theme',\n *   components: [alertTheme, avatarTheme]\n * })\n * ```\n *\n * @param {Object} params\n * @param {string} params.name  - The name of the component. Use a built-in component name like button to theme buttons.\n * @returns\n */\nfunction defineComponentTheme({ name, theme, overrides, }) {\n    const prefix = 'amplify-';\n    const className = createComponentClasses({\n        name,\n        prefix,\n    });\n    const cssText = (props) => {\n        return createComponentCSS({\n            theme: props.theme,\n            components: [{ name, theme }],\n        });\n    };\n    return {\n        className,\n        theme,\n        overrides,\n        name,\n        cssText,\n    };\n}\n\nfunction createGlobalCSS(css) {\n    let cssText = ``;\n    for (const [selector, styles] of Object.entries(css)) {\n        cssText += recursiveComponentCSS(selector, styles);\n    }\n    return cssText;\n}\n\nconst DEFAULTS = {\n    ignoreKeys: ['original'],\n};\nfunction resolveObject(object) {\n    const foundCirc = {};\n    const clone = cloneDeep(object); // This object will be edited\n    const currentContext = []; // To maintain the context to be able to test for circular definitions\n    if (typeof object === 'object') {\n        return traverseObject({\n            slice: clone,\n            fullObj: clone,\n            currentContext,\n            foundCirc,\n        });\n    }\n    else {\n        throw new Error('Please pass an object in');\n    }\n}\n/**\n * Recursively traverses an object (slice) to resolve and uses\n * compileValue to replace any string references found within it\n */\nfunction traverseObject({ slice, fullObj, currentContext, foundCirc, }) {\n    for (let key in slice) {\n        if (!has(slice, key)) {\n            continue;\n        }\n        const prop = slice[key];\n        // We want to check for ignoredKeys, this is to\n        // skip over attributes that should not be\n        // mutated, like a copy of the original property.\n        if (DEFAULTS.ignoreKeys && DEFAULTS.ignoreKeys.indexOf(key) !== -1) {\n            continue;\n        }\n        currentContext.push(key);\n        if (typeof prop === 'object') {\n            traverseObject({ currentContext, slice: prop, fullObj, foundCirc });\n        }\n        else {\n            if (typeof prop === 'string' && prop.indexOf('{') > -1) {\n                slice[key] = compileValue({\n                    value: prop,\n                    stack: [getName(currentContext)],\n                    foundCirc,\n                    fullObj,\n                });\n            }\n        }\n        currentContext.pop();\n    }\n    return fullObj;\n}\n/**\n * Resolves references in a value, performing recursive lookups when references are nested.\n * value: The string that may contain references (e.g., {color.border.light}) that need to be replaced\n * stack: keeps track of the current chain of references to detect circular references\n * foundCirc: stores any detected circular references\n * fullObj: The full object where references are looked up, essentially the source of all values\n */\nfunction compileValue({ value, stack, foundCirc, fullObj }) {\n    let toRet = value, ref;\n    const regex = new RegExp(REFERENCE_REGEX);\n    // Replace the reference inline, but don't replace the whole string because\n    // references can be part of the value such as \"1px solid {color.border.light}\"\n    value.replace(regex, function (match, variable) {\n        variable = variable.trim();\n        // Find what the value is referencing\n        const pathName = getPathFromName(variable);\n        const refHasValue = pathName[pathName.length - 1] === 'value';\n        stack.push(variable);\n        ref = resolveReference(pathName, fullObj);\n        // If the reference doesn't end in 'value'\n        // and\n        // the reference points to someplace that has a `value` attribute\n        // we should take the '.value' of the reference\n        // per the W3C draft spec where references do not have .value\n        // https://design-tokens.github.io/community-group/format/#aliases-references\n        if (!refHasValue && ref && has(ref, 'value')) {\n            ref = ref.value;\n        }\n        if (typeof ref !== 'undefined') {\n            if (typeof ref === 'string' || typeof ref === 'number') {\n                toRet = value.replace(match, ref);\n                // Recursive, therefore we can compute multi-layer variables like a = b, b = c, eventually a = c\n                if (usesReference(toRet)) {\n                    var reference = toRet.slice(1, -1);\n                    // Compare to found circular references\n                    if (has(foundCirc, reference)) ;\n                    else if (stack.indexOf(reference) !== -1) {\n                        // If the current stack already contains the current reference, we found a new circular reference\n                        // chop down only the circular part, save it to our circular reference info, and spit out an error\n                        // Get the position of the existing reference in the stack\n                        var stackIndexReference = stack.indexOf(reference);\n                        // Get the portion of the stack that starts at the circular reference and brings you through until the end\n                        var circStack = stack.slice(stackIndexReference);\n                        // For all the references in this list, add them to the list of references that end up in a circular reference\n                        circStack.forEach(function (key) {\n                            foundCirc[key] = true;\n                        });\n                        // Add our found circular reference to the end of the cycle\n                        circStack.push(reference);\n                    }\n                    else {\n                        toRet = compileValue({ value: toRet, stack, foundCirc, fullObj });\n                    }\n                }\n                // if evaluated value is a number and equal to the reference, we want to keep the type\n                if (typeof ref === 'number' && ref.toString() === toRet) {\n                    toRet = ref;\n                }\n            }\n            else {\n                // if evaluated value is not a string or number, we want to keep the type\n                toRet = ref;\n            }\n        }\n        else {\n            toRet = ref;\n        }\n        stack.pop(variable);\n        return toRet;\n    });\n    return toRet;\n}\n\nconst darkModeTokens = {\n    colors: {\n        red: {\n            10: tokens.colors.red[100],\n            20: tokens.colors.red[90],\n            40: tokens.colors.red[80],\n            // 60 doesn't change\n            80: tokens.colors.red[40],\n            90: tokens.colors.red[20],\n            100: tokens.colors.red[10],\n        },\n        orange: {\n            10: tokens.colors.orange[100],\n            20: tokens.colors.orange[90],\n            40: tokens.colors.orange[80],\n            // 60 doesn't change\n            80: tokens.colors.orange[40],\n            90: tokens.colors.orange[20],\n            100: tokens.colors.orange[10],\n        },\n        yellow: {\n            10: tokens.colors.yellow[100],\n            20: tokens.colors.yellow[90],\n            40: tokens.colors.yellow[80],\n            // 60 doesn't change\n            80: tokens.colors.yellow[40],\n            90: tokens.colors.yellow[20],\n            100: tokens.colors.yellow[10],\n        },\n        green: {\n            10: tokens.colors.green[100],\n            20: tokens.colors.green[90],\n            40: tokens.colors.green[80],\n            // 60 doesn't change\n            80: tokens.colors.green[40],\n            90: tokens.colors.green[20],\n            100: tokens.colors.green[10],\n        },\n        teal: {\n            10: tokens.colors.teal[100],\n            20: tokens.colors.teal[90],\n            40: tokens.colors.teal[80],\n            // 60 doesn't change\n            80: tokens.colors.teal[40],\n            90: tokens.colors.teal[20],\n            100: tokens.colors.teal[10],\n        },\n        blue: {\n            10: tokens.colors.blue[100],\n            20: tokens.colors.blue[90],\n            40: tokens.colors.blue[80],\n            // 60 doesn't change\n            80: tokens.colors.blue[40],\n            90: tokens.colors.blue[20],\n            100: tokens.colors.blue[10],\n        },\n        purple: {\n            10: tokens.colors.purple[100],\n            20: tokens.colors.purple[90],\n            40: tokens.colors.purple[80],\n            // 60 doesn't change\n            80: tokens.colors.purple[40],\n            90: tokens.colors.purple[20],\n            100: tokens.colors.purple[10],\n        },\n        pink: {\n            10: tokens.colors.pink[100],\n            20: tokens.colors.pink[90],\n            40: tokens.colors.pink[80],\n            // 60 doesn't change\n            80: tokens.colors.pink[40],\n            90: tokens.colors.pink[20],\n            100: tokens.colors.pink[10],\n        },\n        neutral: {\n            10: tokens.colors.neutral[100],\n            20: tokens.colors.neutral[90],\n            40: tokens.colors.neutral[80],\n            // 60 doesn't change\n            80: tokens.colors.neutral[40],\n            90: tokens.colors.neutral[20],\n            100: tokens.colors.neutral[10],\n        },\n        font: {\n            primary: '{colors.white}',\n            secondary: '{colors.neutral.100}',\n            tertiary: '{colors.neutral.90}',\n            inverse: '{colors.neutral.10}',\n        },\n        background: {\n            primary: '{colors.neutral.10}',\n            secondary: '{colors.neutral.20}',\n            tertiary: '{colors.neutral.40}',\n        },\n        border: {\n            primary: '{colors.neutral.60}',\n            secondary: '{colors.neutral.40}',\n            tertiary: '{colors.neutral.20}',\n        },\n        shadow: {\n            primary: { value: 'hsla(100, 100%, 100%, 0.25)' },\n            secondary: { value: 'hsla(100, 100%, 100%, 0.15)' },\n            tertiary: { value: 'hsla(100, 100%, 100%, 0.05)' },\n        },\n        overlay: {\n            5: 'hsla(0, 0%, 100%, 0.05)',\n            10: 'hsla(0, 0%, 100%, 0.1)',\n            20: 'hsla(0, 0%, 100%, 0.2)',\n            30: 'hsla(0, 0%, 100%, 0.3)',\n            40: 'hsla(0, 0%, 100%, 0.4)',\n            50: 'hsla(0, 0%, 100%, 0.5)',\n            60: 'hsla(0, 0%, 100%, 0.6)',\n            70: 'hsla(0, 0%, 100%, 0.7)',\n            80: 'hsla(0, 0%, 100%, 0.8)',\n            90: 'hsla(0, 0%, 100%, 0.9)',\n        },\n    },\n};\n/**\n * A basic dark mode that just flips the base color\n * palette.\n */\nconst defaultDarkModeOverride = {\n    colorMode: 'dark',\n    tokens: darkModeTokens,\n};\nconst reactNativeDarkTokens = {\n    ...darkModeTokens,\n};\n\nexports.ALLOWED_SPECIAL_CHARACTERS = ALLOWED_SPECIAL_CHARACTERS;\nexports.ComponentClassName = ComponentClassName;\nexports.DEFAULT_COUNTRY_CODE = DEFAULT_COUNTRY_CODE;\nexports.DefaultTexts = DefaultTexts;\nexports.LoginMechanismArray = LoginMechanismArray;\nexports.NAVIGABLE_ROUTE_EVENT = NAVIGABLE_ROUTE_EVENT;\nexports.applyTranslation = applyTranslation;\nexports.areEmptyArrays = areEmptyArrays;\nexports.areEmptyObjects = areEmptyObjects;\nexports.authFieldsWithDefaults = authFieldsWithDefaults;\nexports.authenticatorTextUtil = authenticatorTextUtil;\nexports.capitalize = capitalize;\nexports.censorAllButFirstAndLast = censorAllButFirstAndLast;\nexports.censorContactMethod = censorContactMethod;\nexports.censorEmail = censorEmail;\nexports.censorPhoneNumber = censorPhoneNumber;\nexports.changePassword = changePassword;\nexports.classNameModifier = classNameModifier;\nexports.classNameModifierByFlag = classNameModifierByFlag;\nexports.classNames = classNames;\nexports.cloneDeep = cloneDeep;\nexports.countryDialCodes = countryDialCodes;\nexports.createAuthenticatorMachine = createAuthenticatorMachine;\nexports.createComponentCSS = createComponentCSS;\nexports.createComponentClasses = createComponentClasses;\nexports.createGlobalCSS = createGlobalCSS;\nexports.createTheme = createTheme;\nexports.cssNameTransform = cssNameTransform;\nexports.deepExtend = deepExtend;\nexports.defaultAuthHubHandler = defaultAuthHubHandler;\nexports.defaultDarkModeOverride = defaultDarkModeOverride;\nexports.defaultFormFieldOptions = defaultFormFieldOptions;\nexports.defaultFormFieldsGetters = defaultFormFieldsGetters;\nexports.defaultTheme = defaultTheme;\nexports.defineComponentTheme = defineComponentTheme;\nexports.deleteUser = deleteUser;\nexports.emailRegex = emailRegex;\nexports.getActorContext = getActorContext$1;\nexports.getActorState = getActorState;\nexports.getAliasDefaultFormField = getAliasDefaultFormField;\nexports.getCustomFormFields = getCustomFormFields;\nexports.getDefaultConfirmPasswordValidators = getDefaultConfirmPasswordValidators;\nexports.getDefaultFormFields = getDefaultFormFields;\nexports.getDefaultPasswordValidators = getDefaultPasswordValidators;\nexports.getErrors = getErrors;\nexports.getFormDataFromEvent = getFormDataFromEvent;\nexports.getFormFields = getFormFields;\nexports.getLogger = getLogger;\nexports.getName = getName;\nexports.getNextServiceContextFacade = getNextServiceContextFacade;\nexports.getNextServiceFacade = getNextServiceFacade;\nexports.getPathFromName = getPathFromName;\nexports.getPrimaryAlias = getPrimaryAlias;\nexports.getSendEventAliases = getSendEventAliases;\nexports.getServiceContextFacade = getServiceContextFacade;\nexports.getServiceFacade = getServiceFacade;\nexports.getSortedFormFields = getSortedFormFields;\nexports.getTotpCodeURL = getTotpCodeURL;\nexports.groupLog = groupLog;\nexports.has = has;\nexports.hasSpecialChars = hasSpecialChars;\nexports.hasTranslation = hasTranslation;\nexports.humanFileSize = humanFileSize;\nexports.isAuthFieldWithDefaults = isAuthFieldWithDefaults;\nexports.isAuthFieldsWithDefaults = isAuthFieldsWithDefaults;\nexports.isDesignToken = isDesignToken;\nexports.isEmpty = isEmpty;\nexports.isEmptyObject = isEmptyObject;\nexports.isFunction = isFunction;\nexports.isMap = isMap;\nexports.isNil = isNil;\nexports.isObject = isObject;\nexports.isSet = isSet;\nexports.isString = isString;\nexports.isUndefined = isUndefined;\nexports.isUnverifiedContactMethodType = isUnverifiedContactMethodType;\nexports.isValidEmail = isValidEmail;\nexports.listenToAuthHub = listenToAuthHub;\nexports.noop = noop;\nexports.reactNativeDarkTokens = reactNativeDarkTokens;\nexports.reactNativeTokens = reactNativeTokens;\nexports.removeOrderKeys = removeOrderKeys;\nexports.resolveObject = resolveObject;\nexports.resolveReference = resolveReference;\nexports.runFieldValidators = runFieldValidators;\nexports.sanitizeNamespaceImport = sanitizeNamespaceImport;\nexports.setFormOrder = setFormOrder;\nexports.setUserAgent = setUserAgent;\nexports.setupTokens = setupTokens;\nexports.signUpFieldsWithDefault = signUpFieldsWithDefault;\nexports.signUpFieldsWithoutDefault = signUpFieldsWithoutDefault;\nexports.sortFormFields = sortFormFields;\nexports.splitObject = splitObject;\nexports.templateJoin = templateJoin;\nexports.translate = translate;\nexports.translations = translations;\nexports.trimValues = trimValues;\nexports.usesReference = usesReference;\n"]}