@salesmind-ai/design-system 1.7.0 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ChangeEmail-BuUhjW0o.d.cts +226 -0
- package/dist/ChangeEmail-BuUhjW0o.d.ts +226 -0
- package/dist/{chunk-3NS6X2R4.cjs → chunk-5EIBL6DQ.cjs} +133 -38
- package/dist/chunk-5EIBL6DQ.cjs.map +1 -0
- package/dist/chunk-AI2YEYT4.js +1368 -0
- package/dist/chunk-AI2YEYT4.js.map +1 -0
- package/dist/{chunk-4QQKREVH.cjs → chunk-LM3UJILC.cjs} +3 -3
- package/dist/{chunk-4QQKREVH.cjs.map → chunk-LM3UJILC.cjs.map} +1 -1
- package/dist/{chunk-K7NQ7TQG.cjs → chunk-M4MLGT4B.cjs} +84 -27
- package/dist/chunk-M4MLGT4B.cjs.map +1 -0
- package/dist/{chunk-6BUS7RMS.js → chunk-Q3YVBUKQ.js} +133 -38
- package/dist/chunk-Q3YVBUKQ.js.map +1 -0
- package/dist/{chunk-25TUCNN6.js → chunk-QVGDMAZY.js} +84 -27
- package/dist/chunk-QVGDMAZY.js.map +1 -0
- package/dist/{chunk-2TC5EVSJ.js → chunk-TPZ3PKSF.js} +3 -3
- package/dist/{chunk-2TC5EVSJ.js.map → chunk-TPZ3PKSF.js.map} +1 -1
- package/dist/chunk-YWJKSY5C.cjs +1381 -0
- package/dist/chunk-YWJKSY5C.cjs.map +1 -0
- package/dist/index.cjs +57 -40
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +2426 -0
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/marketing/index.cjs +27 -27
- package/dist/marketing/index.js +1 -1
- package/dist/nav/index.cjs +10 -10
- package/dist/nav/index.css +54 -0
- package/dist/nav/index.css.map +1 -1
- package/dist/nav/index.d.cts +9 -0
- package/dist/nav/index.d.ts +9 -0
- package/dist/nav/index.js +1 -1
- package/dist/onboarding/index.cjs +5870 -0
- package/dist/onboarding/index.cjs.map +1 -0
- package/dist/onboarding/index.css +557 -0
- package/dist/onboarding/index.css.map +1 -0
- package/dist/onboarding/index.d.cts +1589 -0
- package/dist/onboarding/index.d.ts +1589 -0
- package/dist/onboarding/index.js +5736 -0
- package/dist/onboarding/index.js.map +1 -0
- package/dist/styles/styles.css +2593 -0
- package/dist/v2-auth/index.cjs +59 -0
- package/dist/v2-auth/index.cjs.map +1 -0
- package/dist/v2-auth/index.css +3360 -0
- package/dist/v2-auth/index.css.map +1 -0
- package/dist/v2-auth/index.d.cts +76 -0
- package/dist/v2-auth/index.d.ts +76 -0
- package/dist/v2-auth/index.js +24 -0
- package/dist/v2-auth/index.js.map +1 -0
- package/dist/web/index.cjs +7 -7
- package/dist/web/index.d.cts +1 -1
- package/dist/web/index.d.ts +1 -1
- package/dist/web/index.js +1 -1
- package/dist/web/server/index.cjs +7 -7
- package/dist/web/server/index.d.cts +91 -27
- package/dist/web/server/index.d.ts +91 -27
- package/dist/web/server/index.js +1 -1
- package/package.json +14 -2
- package/dist/chunk-25TUCNN6.js.map +0 -1
- package/dist/chunk-3NS6X2R4.cjs.map +0 -1
- package/dist/chunk-6BUS7RMS.js.map +0 -1
- package/dist/chunk-K7NQ7TQG.cjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/v2-auth/Button/Button.tsx","../src/v2-auth/TextField/TextField.tsx","../src/v2-auth/Checkbox/Checkbox.tsx","../src/v2-auth/Login/Login.tsx","../src/v2-auth/Signup/Signup.tsx","../src/v2-auth/ForgotPassword/ForgotPassword.tsx","../src/v2-auth/ChangeEmail/ChangeEmail.tsx"],"names":["React","clsx","jsx","jsxs","useState"],"mappings":"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","sourcesContent":["import React from 'react';\r\nimport { Slot } from '@radix-ui/react-slot';\r\nimport clsx from 'clsx';\r\nimport './Button.css';\r\n\r\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n /** Visual style variant of the button */\r\n variant?: 'primary' | 'secondary' | 'outline' | 'ghost' | 'link' | 'destructive';\r\n /** Size of the button */\r\n size?: 'sm' | 'md' | 'lg' | 'icon';\r\n /** Shows a loading spinner and disables the button */\r\n isLoading?: boolean;\r\n /**\r\n * When true, the button renders its child as the root element via Radix Slot.\r\n * Use this to compose with routing Link components or anchors.\r\n *\r\n * @example\r\n * <Button asChild>\r\n * <a href=\"/about\">About</a>\r\n * </Button>\r\n */\r\n asChild?: boolean;\r\n}\r\n\r\n/**\r\n * Primary UI action component with multiple visual variants and polymorphic rendering.\r\n *\r\n * Supports `asChild` for rendering as any element (Link, anchor, etc.)\r\n * while preserving button styling.\r\n */\r\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\r\n ({ className, variant = 'primary', size = 'md', asChild = false, isLoading = false, children, disabled, ...props }, ref) => {\r\n const buttonClass = clsx(\r\n 'ds-button',\r\n `ds-button--${variant}`,\r\n size === 'icon' ? 'ds-button--icon ds-button--md' : `ds-button--${size}`,\r\n isLoading && 'ds-button--loading',\r\n className,\r\n );\r\n\r\n // When asChild, Slot must receive exactly one child element.\r\n // Loading state is handled via the ds-button--loading CSS class.\r\n if (asChild) {\r\n return (\r\n <Slot\r\n ref={ref}\r\n aria-disabled={isLoading || disabled || undefined}\r\n className={buttonClass}\r\n {...props}\r\n >\r\n {children}\r\n </Slot>\r\n );\r\n }\r\n\r\n return (\r\n <button\r\n ref={ref}\r\n disabled={isLoading || disabled}\r\n className={buttonClass}\r\n {...props}\r\n >\r\n {isLoading && (\r\n <svg\r\n className=\"ds-button__spinner\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"1em\"\r\n height=\"1em\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n >\r\n <path d=\"M21 12a9 9 0 1 1-6.219-8.56\" />\r\n </svg>\r\n )}\r\n <span className={clsx(\"ds-button__content\", isLoading && \"ds-button__content--hidden\")}>\r\n {children}\r\n </span>\r\n </button>\r\n );\r\n },\r\n);\r\n\r\nButton.displayName = 'Button';\r\n","import React from 'react';\r\nimport { Input as BaseInput } from '@base-ui/react/input';\r\nimport clsx from 'clsx';\r\nimport './TextField.css';\r\n\r\nexport interface TextFieldProps extends React.InputHTMLAttributes<HTMLInputElement> {\r\n label?: string;\r\n error?: boolean;\r\n helperText?: string;\r\n endAdornment?: React.ReactNode;\r\n}\r\n\r\nexport const TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(\r\n ({ className, label, error, helperText, endAdornment, id, ...props }, ref) => {\r\n const generatedId = React.useId();\r\n const inputId = id || generatedId;\r\n\r\n return (\r\n <div className={clsx('ds-textfield', className)}>\r\n {label && (\r\n <label htmlFor={inputId} className=\"ds-textfield__label\">\r\n {label}\r\n </label>\r\n )}\r\n <div className=\"ds-textfield__input-wrapper\">\r\n <BaseInput\r\n id={inputId}\r\n ref={ref}\r\n className={clsx(\r\n 'ds-textfield__input',\r\n error && 'ds-textfield__input--error',\r\n endAdornment && 'ds-textfield__input--adorned',\r\n )}\r\n {...props}\r\n />\r\n {endAdornment && <div className=\"ds-textfield__adornment\">{endAdornment}</div>}\r\n </div>\r\n {helperText && (\r\n <span className={clsx('ds-textfield__helper', error && 'ds-textfield__helper--error')}>\r\n {helperText}\r\n </span>\r\n )}\r\n </div>\r\n );\r\n },\r\n);\r\n\r\nTextField.displayName = 'TextField';\r\n","import React from 'react';\r\nimport { Checkbox as BaseCheckbox } from '@base-ui/react/checkbox';\r\nimport clsx from 'clsx';\r\nimport './Checkbox.css';\r\n\r\nexport interface CheckboxProps {\r\n checked?: boolean;\r\n defaultChecked?: boolean;\r\n onCheckedChange?: (checked: boolean) => void;\r\n disabled?: boolean;\r\n required?: boolean;\r\n readOnly?: boolean;\r\n name?: string;\r\n value?: string;\r\n id?: string;\r\n label?: string;\r\n className?: string;\r\n}\r\n\r\nexport const Checkbox = React.forwardRef<HTMLButtonElement, CheckboxProps>(\r\n ({ className, label, id, ...props }, ref) => {\r\n const generatedId = React.useId();\r\n const checkboxId = id || generatedId;\r\n const labelId = `${checkboxId}-label`;\r\n\r\n return (\r\n <div className={clsx('ds-checkbox-wrapper', className)}>\r\n <BaseCheckbox.Root\r\n id={checkboxId}\r\n ref={ref}\r\n className=\"ds-checkbox\"\r\n // a11y: base-ui renders role=\"checkbox\" on an internal element the\r\n // sibling <label htmlFor> cannot target, so associate the name here.\r\n aria-labelledby={label ? labelId : undefined}\r\n aria-label={label ? undefined : 'Checkbox'}\r\n {...props}\r\n >\r\n <BaseCheckbox.Indicator className=\"ds-checkbox__indicator\">\r\n <svg\r\n viewBox=\"0 0 14 14\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n className=\"ds-checkbox__icon\"\r\n >\r\n <path\r\n d=\"M11.6666 3.5L5.24992 9.91667L2.33325 7\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n </svg>\r\n </BaseCheckbox.Indicator>\r\n </BaseCheckbox.Root>\r\n {label && (\r\n <label id={labelId} htmlFor={checkboxId} className=\"ds-checkbox__label\">\r\n {label}\r\n </label>\r\n )}\r\n </div>\r\n );\r\n },\r\n);\r\n\r\nCheckbox.displayName = 'Checkbox';\r\n","import React, { useState } from 'react';\r\nimport clsx from 'clsx';\r\nimport { Button } from '../Button/Button';\r\nimport { TextField } from '../TextField/TextField';\r\nimport { Checkbox } from '../Checkbox/Checkbox';\r\nimport './Login.css';\r\n\r\n/* ============================================================================\r\n LOGIN PAGE — Signature Glass Treatment with Animations\r\n ============================================================================ */\r\n\r\nexport interface LoginLabels {\r\n continueWithGoogleLabel?: string;\r\n orContinueWithEmailLabel?: string;\r\n emailPlaceholder?: string;\r\n passwordPlaceholder?: string;\r\n signInLabel?: string;\r\n doNotHaveAnAccountLabel?: string;\r\n emailLabel?: string;\r\n passwordLabel?: string;\r\n rememberMeLabel?: string;\r\n forgotPasswordLabel?: string;\r\n signUpLabel?: string;\r\n trustedByLabel?: string;\r\n}\r\n\r\nexport interface LoginProps {\r\n /** Company/Product name */\r\n brandName?: string;\r\n /** Tagline or description */\r\n tagline?: string;\r\n /** Translation strings */\r\n labels?: LoginLabels;\r\n /** Show social login options */\r\n showSocialLogin?: boolean;\r\n /** Show \"Remember me\" checkbox */\r\n showRememberMe?: boolean;\r\n /** Show \"Forgot password\" link */\r\n showForgotPassword?: boolean;\r\n /** Show sign up link */\r\n showSignUp?: boolean;\r\n /** Language selector component */\r\n localeSelector?: React.ReactNode;\r\n\r\n /** Custom logo element */\r\n logo?: React.ReactNode;\r\n /** Form submit handler */\r\n onSubmit?: (data: { email: string; password: string; rememberMe: boolean }) => void;\r\n /** Social login handlers */\r\n onGoogleLogin?: () => void;\r\n /** Link handlers */\r\n onForgotPassword?: () => void;\r\n onSignUp?: () => void;\r\n /** Loading state */\r\n isLoading?: boolean;\r\n /** Error message */\r\n error?: string;\r\n /** Custom class name */\r\n className?: string;\r\n /** Custom styles */\r\n style?: React.CSSProperties;\r\n}\r\n\r\nconst defaultLoginLabels: LoginLabels = {\r\n continueWithGoogleLabel: 'Continue with Google',\r\n orContinueWithEmailLabel: 'or continue with email',\r\n emailPlaceholder: 'you@company.com',\r\n passwordPlaceholder: 'Enter your password',\r\n signInLabel: 'Sign in',\r\n doNotHaveAnAccountLabel: \"Don't have an account?\",\r\n emailLabel: 'Email',\r\n passwordLabel: 'Password',\r\n rememberMeLabel: 'Remember me',\r\n forgotPasswordLabel: 'Forgot password?',\r\n signUpLabel: 'Sign up',\r\n trustedByLabel: 'Trusted by 500+ sales teams worldwide',\r\n};\r\n\r\nexport const Login: React.FC<LoginProps> = ({\r\n brandName,\r\n tagline = 'AI Sales Agents that automate your pipeline',\r\n labels: customLabels,\r\n showSocialLogin = true,\r\n showRememberMe = true,\r\n showForgotPassword = true,\r\n showSignUp = true,\r\n logo,\r\n onSubmit,\r\n onGoogleLogin,\r\n onForgotPassword,\r\n onSignUp,\r\n isLoading = false,\r\n error,\r\n className,\r\n style,\r\n}) => {\r\n const l = { ...defaultLoginLabels, ...customLabels };\r\n const [email, setEmail] = useState('');\r\n const [password, setPassword] = useState('');\r\n const [showPassword, setShowPassword] = useState(false);\r\n const [rememberMe, setRememberMe] = useState(false);\r\n\r\n const handleSubmit = (e: React.FormEvent) => {\r\n e.preventDefault();\r\n onSubmit?.({ email, password, rememberMe });\r\n };\r\n\r\n return (\r\n <div className={clsx('ds-login', className)} style={style}>\r\n {/* Animated Background Accents Container */}\r\n <div className=\"ds-login__background\">\r\n <div className=\"ds-login__accent ds-login__accent--1\" aria-hidden=\"true\" />\r\n <div className=\"ds-login__accent ds-login__accent--2\" aria-hidden=\"true\" />\r\n </div>\r\n\r\n {/* Main Card */}\r\n <div className=\"ds-login__card\">\r\n {/* Header */}\r\n <div className=\"ds-login__header\">\r\n {logo ? (\r\n <div className=\"ds-login__logo\">{logo}</div>\r\n ) : (\r\n <div className=\"ds-login__logo ds-login__logo--default\">\r\n <div className=\"ds-login__logo-icon\">\r\n <svg viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect width=\"32\" height=\"32\" rx=\"8\" fill=\"url(#logo-gradient)\" />\r\n <path\r\n d=\"M10 16L14 20L22 12\"\r\n stroke=\"white\"\r\n strokeWidth=\"2.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n <defs>\r\n <linearGradient id=\"logo-gradient\" x1=\"0\" y1=\"0\" x2=\"32\" y2=\"32\">\r\n <stop stopColor=\"rgb(var(--accent-rgb))\" />\r\n <stop offset=\"1\" stopColor=\"rgb(var(--accent2-rgb))\" />\r\n </linearGradient>\r\n </defs>\r\n </svg>\r\n </div>\r\n </div>\r\n )}\r\n\r\n <h1 className=\"ds-login__title\">{brandName}</h1>\r\n <p className=\"ds-login__tagline\">{tagline}</p>\r\n </div>\r\n\r\n {/* Error Message */}\r\n {error && (\r\n <div className=\"ds-login__error\">\r\n <svg\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 16 16\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\r\n <path d=\"M8 4.5V8.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\r\n <circle cx=\"8\" cy=\"11\" r=\"0.75\" fill=\"currentColor\" />\r\n </svg>\r\n <span>{error}</span>\r\n </div>\r\n )}\r\n\r\n {/* Social Login */}\r\n {showSocialLogin && (\r\n <div className=\"ds-login__social\">\r\n <button\r\n type=\"button\"\r\n className=\"ds-login__social-btn\"\r\n onClick={onGoogleLogin}\r\n disabled={isLoading}\r\n >\r\n <svg viewBox=\"0 0 24 24\" width=\"20\" height=\"20\">\r\n <path\r\n fill=\"#4285F4\"\r\n d=\"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z\"\r\n />\r\n <path\r\n fill=\"#34A853\"\r\n d=\"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z\"\r\n />\r\n <path\r\n fill=\"#FBBC05\"\r\n d=\"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z\"\r\n />\r\n <path\r\n fill=\"#EA4335\"\r\n d=\"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z\"\r\n />\r\n </svg>\r\n <span>{l.continueWithGoogleLabel}</span>\r\n </button>\r\n\r\n <div className=\"ds-login__divider\">\r\n <span>{l.orContinueWithEmailLabel}</span>\r\n </div>\r\n </div>\r\n )}\r\n\r\n {/* Form */}\r\n <form className=\"ds-login__form\" onSubmit={handleSubmit}>\r\n <div className=\"ds-login__field\">\r\n <TextField\r\n label={l.emailLabel}\r\n type=\"email\"\r\n placeholder={l.emailPlaceholder}\r\n value={email}\r\n onChange={(e) => setEmail(e.target.value)}\r\n disabled={isLoading}\r\n autoComplete=\"email\"\r\n />\r\n </div>\r\n\r\n <div className=\"ds-login__field\">\r\n <TextField\r\n label={l.passwordLabel}\r\n type={showPassword ? 'text' : 'password'}\r\n placeholder={l.passwordPlaceholder}\r\n value={password}\r\n onChange={(e) => setPassword(e.target.value)}\r\n disabled={isLoading}\r\n autoComplete=\"current-password\"\r\n endAdornment={\r\n <button\r\n type=\"button\"\r\n className=\"ds-login__password-toggle\"\r\n onClick={() => setShowPassword(!showPassword)}\r\n aria-label={showPassword ? 'Hide password' : 'Show password'}\r\n >\r\n {showPassword ? (\r\n <svg\r\n width=\"20\"\r\n height=\"20\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n >\r\n <path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\" />\r\n <line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\" />\r\n </svg>\r\n ) : (\r\n <svg\r\n width=\"20\"\r\n height=\"20\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n >\r\n <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\" />\r\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\r\n </svg>\r\n )}\r\n </button>\r\n }\r\n />\r\n </div>\r\n\r\n <div className=\"ds-login__options\">\r\n {showRememberMe && (\r\n <Checkbox\r\n label={l.rememberMeLabel}\r\n checked={rememberMe}\r\n onCheckedChange={(checked) => setRememberMe(checked === true)}\r\n disabled={isLoading}\r\n />\r\n )}\r\n\r\n {showForgotPassword && (\r\n <button\r\n type=\"button\"\r\n className=\"ds-login__link\"\r\n onClick={onForgotPassword}\r\n disabled={isLoading}\r\n >\r\n {l.forgotPasswordLabel}\r\n </button>\r\n )}\r\n </div>\r\n\r\n <Button\r\n type=\"submit\"\r\n variant=\"primary\"\r\n size=\"lg\"\r\n disabled={isLoading || !email || !password}\r\n className=\"ds-login__submit\"\r\n >\r\n {isLoading ? <span className=\"ds-login__spinner\" /> : l.signInLabel}\r\n </Button>\r\n </form>\r\n\r\n {/* Footer */}\r\n {showSignUp && (\r\n <div className=\"ds-login__footer\">\r\n <span>{l.doNotHaveAnAccountLabel}</span>\r\n <button\r\n type=\"button\"\r\n className=\"ds-login__link ds-login__link--accent\"\r\n onClick={onSignUp}\r\n disabled={isLoading}\r\n >\r\n {l.signUpLabel}\r\n </button>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nLogin.displayName = 'Login';\r\n","import React, { useState, useMemo } from 'react';\r\nimport clsx from 'clsx';\r\nimport { Button } from '../Button/Button';\r\nimport { TextField } from '../TextField/TextField';\r\nimport { Checkbox } from '../Checkbox/Checkbox';\r\nimport './Signup.css';\r\n\r\n/* ============================================================================\r\n SIGNUP PAGE — Full Registration Flow with Password Strength\r\n ============================================================================ */\r\n\r\nexport interface SignupLabels {\r\n formTitle?: string;\r\n googleButtonLabel?: string;\r\n dividerText?: string;\r\n nameLabel?: string;\r\n namePlaceholder?: string;\r\n emailLabel?: string;\r\n emailPlaceholder?: string;\r\n passwordLabel?: string;\r\n passwordPlaceholder?: string;\r\n phoneLabel?: string;\r\n phonePlaceholder?: string;\r\n hidePasswordLabel?: string;\r\n showPasswordLabel?: string;\r\n passwordStrengthLabels?: [string, string, string, string, string];\r\n termsAgreementPrefix?: string;\r\n termsLabel?: string;\r\n termsConjunction?: string;\r\n privacyLabel?: string;\r\n submitLabel?: string;\r\n loginPrompt?: string;\r\n loginLabel?: string;\r\n successTitle?: string;\r\n continueToLoginLabel?: string;\r\n}\r\n\r\nexport interface SignupProps {\r\n /** Company/Product name */\r\n brandName?: string;\r\n /** Tagline or description */\r\n tagline?: string;\r\n /** Show social signup options */\r\n showSocialSignup?: boolean;\r\n /** Custom logo element */\r\n logo?: React.ReactNode;\r\n /** Form submit handler */\r\n onSubmit?: (data: {\r\n name: string;\r\n email: string;\r\n phone: string;\r\n password: string;\r\n acceptedTerms: boolean;\r\n }) => void;\r\n /** Social signup handlers */\r\n onGoogleSignup?: () => void;\r\n /** Link handlers */\r\n onLogin?: () => void;\r\n onTermsClick?: () => void;\r\n onPrivacyClick?: () => void;\r\n /** Loading state */\r\n isLoading?: boolean;\r\n /** Error message */\r\n error?: string;\r\n /** Success state */\r\n isSuccess?: boolean;\r\n /** Success message — accepts a string or React nodes (e.g. with <br />) */\r\n successMessage?: React.ReactNode;\r\n /** Custom class name */\r\n className?: string;\r\n /** Custom styles */\r\n style?: React.CSSProperties;\r\n /** i18n labels — every key falls back to its English default */\r\n labels?: SignupLabels;\r\n /** Default country (ISO code, e.g. TH) */\r\n defaultCountry?: string;\r\n /** Array of countries to populate the dropdown */\r\n countries?: { code: string; dial: string; flag: string; name: string }[];\r\n /** Custom render for phone input */\r\n renderPhoneInput?: (props: {\r\n value: string;\r\n onChange: (val: string) => void;\r\n placeholder?: string;\r\n disabled?: boolean;\r\n className?: string;\r\n id?: string;\r\n }) => React.ReactNode;\r\n}\r\n\r\nconst defaultSignupLabels: SignupLabels = {\r\n formTitle: 'Create your account',\r\n googleButtonLabel: 'Sign up with Google',\r\n dividerText: 'or sign up with email',\r\n nameLabel: 'Full name',\r\n namePlaceholder: 'John Doe',\r\n emailLabel: 'Work email',\r\n emailPlaceholder: 'you@company.com',\r\n passwordLabel: 'Password',\r\n passwordPlaceholder: 'Create a strong password',\r\n phoneLabel: 'Phone',\r\n phonePlaceholder: 'Phone number',\r\n hidePasswordLabel: 'Hide password',\r\n showPasswordLabel: 'Show password',\r\n passwordStrengthLabels: ['Very Weak', 'Weak', 'Fair', 'Strong', 'Very Strong'],\r\n termsAgreementPrefix: 'I agree to the ',\r\n termsLabel: 'Terms of Service ',\r\n termsConjunction: 'and ',\r\n privacyLabel: 'Privacy Policy',\r\n submitLabel: 'Create account',\r\n loginPrompt: 'Already have an account?',\r\n loginLabel: 'Sign in',\r\n successTitle: 'Welcome!',\r\n continueToLoginLabel: 'Go to Application',\r\n};\r\n\r\n/**\r\n * Calculate password strength (0-4)\r\n */\r\nfunction calculatePasswordStrength(\r\n password: string,\r\n strengthLabels?: [string, string, string, string, string],\r\n): {\r\n score: number;\r\n label: string;\r\n color: string;\r\n} {\r\n let score = 0;\r\n\r\n if (password.length >= 8) score++;\r\n if (password.length >= 12) score++;\r\n if (/[a-z]/.test(password) && /[A-Z]/.test(password)) score++;\r\n if (/\\d/.test(password)) score++;\r\n if (/[!@#$%^&*(),.?\":{}|<>]/.test(password)) score++;\r\n\r\n // Normalize to 0-4\r\n score = Math.min(4, score);\r\n\r\n const labels = strengthLabels ?? defaultSignupLabels.passwordStrengthLabels!;\r\n const colors = [\r\n 'var(--status-error)',\r\n 'var(--status-warning)',\r\n '#ffd000',\r\n 'var(--status-success)',\r\n 'var(--status-success)',\r\n ];\r\n\r\n return {\r\n score,\r\n label: labels[score],\r\n color: colors[score],\r\n };\r\n}\r\n\r\nexport const Signup: React.FC<SignupProps> = ({\r\n brandName,\r\n showSocialSignup = true,\r\n logo,\r\n onSubmit,\r\n onGoogleSignup,\r\n onLogin,\r\n onTermsClick,\r\n onPrivacyClick,\r\n isLoading = false,\r\n error,\r\n isSuccess = false,\r\n successMessage = (\r\n <>\r\n {\"You're all set!\"}\r\n <br />\r\n {\"Check your email to verify your account.\"}\r\n </>\r\n ),\r\n className,\r\n style,\r\n labels: customLabels,\r\n defaultCountry = 'TH',\r\n countries = [],\r\n renderPhoneInput,\r\n}) => {\r\n const l = { ...defaultSignupLabels, ...customLabels };\r\n const [name, setName] = useState('');\r\n const [email, setEmail] = useState('');\r\n\r\n // Phone logic\r\n const defaultCountryData = countries.find(c => c.code === defaultCountry) || countries[0] || { code: 'TH', dial: '+66', flag: '🇹🇭', name: 'Thailand' };\r\n const [countryDial, setCountryDial] = useState(defaultCountryData.dial);\r\n const [phone, setPhone] = useState('');\r\n\r\n const [password, setPassword] = useState('');\r\n const [showPassword, setShowPassword] = useState(false);\r\n const [acceptedTerms, setAcceptedTerms] = useState(false);\r\n\r\n const passwordStrength = useMemo(\r\n () => calculatePasswordStrength(password, l.passwordStrengthLabels),\r\n [password, l.passwordStrengthLabels],\r\n );\r\n\r\n const handleSubmit = (e: React.FormEvent) => {\r\n e.preventDefault();\r\n const fullPhone = phone\r\n ? (phone.trim().startsWith('+') ? phone.trim() : `${countryDial} ${phone}`.trim())\r\n : '';\r\n onSubmit?.({ name, email, phone: fullPhone, password, acceptedTerms });\r\n };\r\n\r\n const isFormValid = name && email && password.length >= 8 && acceptedTerms;\r\n\r\n // Success State\r\n if (isSuccess) {\r\n return (\r\n <div className={clsx('ds-signup', className)} style={style}>\r\n {/* Animated Background Accents Container */}\r\n <div className=\"ds-signup__background\">\r\n <div className=\"ds-signup__accent ds-signup__accent--1\" aria-hidden=\"true\" />\r\n <div className=\"ds-signup__accent ds-signup__accent--2\" aria-hidden=\"true\" />\r\n </div>\r\n\r\n <div className=\"ds-signup__card ds-signup__card--success\">\r\n <div className=\"ds-signup__success-icon\">\r\n <svg viewBox=\"0 0 64 64\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <circle cx=\"32\" cy=\"32\" r=\"30\" stroke=\"var(--status-success)\" strokeWidth=\"2\" />\r\n <path\r\n d=\"M20 32L28 40L44 24\"\r\n stroke=\"var(--status-success)\"\r\n strokeWidth=\"3\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n <h1 className=\"ds-signup__success-title\">\r\n {l.successTitle === 'Welcome!'\r\n ? brandName\r\n ? `Welcome to ${brandName}!`\r\n : 'Welcome!'\r\n : l.successTitle}\r\n </h1>\r\n <p className=\"ds-signup__success-message\">{successMessage}</p>\r\n <Button variant=\"primary\" size=\"lg\" onClick={onLogin} className=\"ds-signup__success-btn\">\r\n {l.continueToLoginLabel}\r\n </Button>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className={clsx('ds-signup', className)} style={style}>\r\n {/* Animated Background Accents Container */}\r\n <div className=\"ds-signup__background\">\r\n <div className=\"ds-signup__accent ds-signup__accent--1\" aria-hidden=\"true\" />\r\n <div className=\"ds-signup__accent ds-signup__accent--2\" aria-hidden=\"true\" />\r\n </div>\r\n\r\n {/* Main Card */}\r\n <div className=\"ds-signup__card\">\r\n {/* Header */}\r\n <div className=\"ds-signup__header\">\r\n {logo ? (\r\n <div className=\"ds-signup__logo\">{logo}</div>\r\n ) : (\r\n <div className=\"ds-signup__logo ds-signup__logo--default\">\r\n <div className=\"ds-signup__logo-icon\">\r\n <svg viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect width=\"32\" height=\"32\" rx=\"8\" fill=\"url(#signup-logo-gradient)\" />\r\n <path\r\n d=\"M16 8V24M8 16H24\"\r\n stroke=\"white\"\r\n strokeWidth=\"2.5\"\r\n strokeLinecap=\"round\"\r\n />\r\n <defs>\r\n <linearGradient id=\"signup-logo-gradient\" x1=\"0\" y1=\"0\" x2=\"32\" y2=\"32\">\r\n <stop stopColor=\"rgb(var(--accent-rgb))\" />\r\n <stop offset=\"1\" stopColor=\"rgb(var(--accent2-rgb))\" />\r\n </linearGradient>\r\n </defs>\r\n </svg>\r\n </div>\r\n </div>\r\n )}\r\n\r\n <h1 className=\"ds-signup__title\">{l.formTitle}</h1>\r\n </div>\r\n\r\n {/* Error Message */}\r\n {error && (\r\n <div className=\"ds-signup__error\">\r\n <svg\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 16 16\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\r\n <path d=\"M8 4.5V8.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\r\n <circle cx=\"8\" cy=\"11\" r=\"0.75\" fill=\"currentColor\" />\r\n </svg>\r\n <span>{error}</span>\r\n </div>\r\n )}\r\n\r\n {/* Social Signup */}\r\n {showSocialSignup && (\r\n <div className=\"ds-signup__social\">\r\n <button\r\n type=\"button\"\r\n className=\"ds-signup__social-btn\"\r\n onClick={onGoogleSignup}\r\n disabled={isLoading}\r\n >\r\n <svg viewBox=\"0 0 24 24\" width=\"20\" height=\"20\">\r\n <path\r\n fill=\"#4285F4\"\r\n d=\"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z\"\r\n />\r\n <path\r\n fill=\"#34A853\"\r\n d=\"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z\"\r\n />\r\n <path\r\n fill=\"#FBBC05\"\r\n d=\"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z\"\r\n />\r\n <path\r\n fill=\"#EA4335\"\r\n d=\"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z\"\r\n />\r\n </svg>\r\n <span>{l.googleButtonLabel}</span>\r\n </button>\r\n\r\n <div className=\"ds-signup__divider\">\r\n <span>{l.dividerText}</span>\r\n </div>\r\n </div>\r\n )}\r\n\r\n {/* Form */}\r\n <form className=\"ds-signup__form\" onSubmit={handleSubmit}>\r\n <div className=\"ds-signup__field\">\r\n <TextField\r\n label={l.nameLabel}\r\n type=\"text\"\r\n placeholder={l.namePlaceholder}\r\n value={name}\r\n onChange={(e) => setName(e.target.value)}\r\n disabled={isLoading}\r\n autoComplete=\"name\"\r\n />\r\n </div>\r\n\r\n <div className=\"ds-signup__field\">\r\n <TextField\r\n label={l.emailLabel}\r\n type=\"email\"\r\n placeholder={l.emailPlaceholder}\r\n value={email}\r\n onChange={(e) => setEmail(e.target.value)}\r\n disabled={isLoading}\r\n autoComplete=\"email\"\r\n />\r\n </div>\r\n\r\n <div className=\"ds-signup__field ds-signup__phone-field\">\r\n <div className=\"ds-textfield\">\r\n <label className=\"ds-textfield__label\" htmlFor=\"phone-input\">\r\n {l.phoneLabel}\r\n </label>\r\n <div className=\"ds-textfield__input-wrapper\">\r\n {renderPhoneInput ? (\r\n renderPhoneInput({\r\n value: phone,\r\n onChange: setPhone,\r\n placeholder: l.phonePlaceholder,\r\n disabled: isLoading,\r\n className: \"ds-signup__phone-container ds-textfield__input\",\r\n id: \"phone-input\"\r\n })\r\n ) : (\r\n <div className={clsx(\"ds-signup__phone-container\", \"ds-textfield__input\")}>\r\n <div className=\"ds-signup__flag-select-wrapper\">\r\n <select\r\n className=\"ds-signup__flag-select-native\"\r\n value={countryDial}\r\n onChange={(e) => {\r\n const newDial = e.target.value;\r\n setCountryDial(newDial);\r\n setPhone(newDial + ' ');\r\n }}\r\n disabled={isLoading}\r\n aria-label=\"Select country code\"\r\n >\r\n {countries.map((c) => (\r\n <option key={c.code} value={c.dial}>\r\n {c.name}\r\n </option>\r\n ))}\r\n </select>\r\n <div className=\"ds-signup__flag-display\" aria-hidden=\"true\">\r\n <span className=\"ds-signup__flag-icon\">\r\n {countries.find((c) => c.dial === countryDial)?.flag || '🌐'}\r\n </span>\r\n <svg width=\"10\" height=\"6\" viewBox=\"0 0 10 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M1 1L5 5L9 1\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\r\n </svg>\r\n </div>\r\n </div>\r\n <input\r\n id=\"phone-input\"\r\n type=\"tel\"\r\n placeholder={l.phonePlaceholder}\r\n value={phone}\r\n onChange={(e) => setPhone(e.target.value)}\r\n disabled={isLoading}\r\n className=\"ds-signup__phone-input ds-signup__phone-input-native\"\r\n autoComplete=\"tel\"\r\n />\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"ds-signup__field\">\r\n <div className=\"ds-signup__password-wrapper\">\r\n <TextField\r\n label={l.passwordLabel}\r\n type={showPassword ? 'text' : 'password'}\r\n placeholder={l.passwordPlaceholder}\r\n value={password}\r\n onChange={(e) => setPassword(e.target.value)}\r\n disabled={isLoading}\r\n autoComplete=\"new-password\"\r\n />\r\n <button\r\n type=\"button\"\r\n className=\"ds-signup__password-toggle\"\r\n onClick={() => setShowPassword(!showPassword)}\r\n aria-label={showPassword ? l.hidePasswordLabel : l.showPasswordLabel}\r\n >\r\n {showPassword ? (\r\n <svg\r\n width=\"20\"\r\n height=\"20\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n >\r\n <path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\" />\r\n <line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\" />\r\n </svg>\r\n ) : (\r\n <svg\r\n width=\"20\"\r\n height=\"20\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n >\r\n <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\" />\r\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\r\n </svg>\r\n )}\r\n </button>\r\n </div>\r\n\r\n {/* Password Strength Meter */}\r\n {password && (\r\n <div className=\"ds-signup__strength\">\r\n <div className=\"ds-signup__strength-bar\">\r\n {[0, 1, 2, 3].map((i) => (\r\n <div\r\n key={i}\r\n className={clsx(\r\n 'ds-signup__strength-segment',\r\n i < passwordStrength.score && 'ds-signup__strength-segment--active',\r\n )}\r\n style={\r\n i < passwordStrength.score\r\n ? { backgroundColor: passwordStrength.color }\r\n : {}\r\n }\r\n />\r\n ))}\r\n </div>\r\n <span\r\n className=\"ds-signup__strength-label\"\r\n style={{ color: passwordStrength.color }}\r\n >\r\n {passwordStrength.label}\r\n </span>\r\n </div>\r\n )}\r\n </div>\r\n\r\n {/* Terms Checkbox */}\r\n <div className=\"ds-signup__terms\">\r\n <Checkbox\r\n label=\"\"\r\n checked={acceptedTerms}\r\n onCheckedChange={(checked) => setAcceptedTerms(checked === true)}\r\n disabled={isLoading}\r\n />\r\n <span className=\"ds-signup__terms-text\">\r\n {(l.termsAgreementPrefix || '').endsWith(' ') ? (l.termsAgreementPrefix || '') : `${l.termsAgreementPrefix || ''} `}\r\n <button\r\n type=\"button\"\r\n className=\"ds-signup__link\"\r\n onClick={onTermsClick}\r\n disabled={isLoading}\r\n >\r\n {l.termsLabel}\r\n </button>\r\n {(l.termsConjunction || ' ').startsWith(' ') && (l.termsConjunction || ' ').endsWith(' ')\r\n ? (l.termsConjunction || ' ')\r\n : ` ${(l.termsConjunction || '').trim()} `}\r\n <button\r\n type=\"button\"\r\n className=\"ds-signup__link\"\r\n onClick={onPrivacyClick}\r\n disabled={isLoading}\r\n >\r\n {l.privacyLabel}\r\n </button>\r\n </span>\r\n </div>\r\n\r\n <Button\r\n type=\"submit\"\r\n variant=\"primary\"\r\n size=\"lg\"\r\n disabled={isLoading || !isFormValid}\r\n className=\"ds-signup__submit\"\r\n >\r\n {isLoading ? <span className=\"ds-signup__spinner\" /> : l.submitLabel}\r\n </Button>\r\n </form>\r\n\r\n {/* Footer */}\r\n <div className=\"ds-signup__footer\">\r\n <span>{l.loginPrompt}</span>\r\n <button\r\n type=\"button\"\r\n className=\"ds-signup__link ds-signup__link--accent\"\r\n onClick={onLogin}\r\n disabled={isLoading}\r\n >\r\n {l.loginLabel}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nSignup.displayName = 'Signup';\r\n","import React, { useState, useEffect } from 'react';\r\nimport clsx from 'clsx';\r\nimport { Button } from '../Button/Button';\r\nimport { TextField } from '../TextField/TextField';\r\nimport './ForgotPassword.css';\r\n\r\n/* ============================================================================\r\n FORGOT PASSWORD PAGE — Email Entry and Reset Flow\r\n ============================================================================ */\r\n\r\nexport interface ForgotPasswordLabels {\r\n forgotPasswordTitle?: string;\r\n resetInstructionsTagline?: string;\r\n emailLabel?: string;\r\n emailPlaceholder?: string;\r\n resetPasswordButton?: string;\r\n backToLoginButton?: string;\r\n checkYourEmailTitle?: string;\r\n passwordResetLinkTagline?: string;\r\n didNotReceiveEmailHint?: string;\r\n clickToResendButton?: string;\r\n setNewPasswordTitle?: string;\r\n mustBeCharactersTagline?: string;\r\n passwordLabel?: string;\r\n enterNewPasswordPlaceholder?: string;\r\n confirmPasswordLabel?: string;\r\n confirmNewPasswordPlaceholder?: string;\r\n passwordsDontMatchError?: string;\r\n passwordResetTitle?: string;\r\n passwordSuccessfullyResetTagline?: string;\r\n clickBelowLogInHint?: string;\r\n continueToLoginButton?: string;\r\n showPasswordLabel?: string;\r\n hidePasswordLabel?: string;\r\n}\r\n\r\nexport interface ForgotPasswordProps {\r\n /** Translation strings */\r\n labels?: ForgotPasswordLabels;\r\n /** Custom logo element */\r\n logo?: React.ReactNode;\r\n /** Form submit handler for email entry */\r\n onSubmit?: (email: string) => void;\r\n /** Form submit handler for password reset */\r\n onResetPassword?: (data: { password: string; confirmPassword: string }) => void;\r\n /** Back to login handler */\r\n onBackToLogin?: () => void;\r\n /** Loading state */\r\n isLoading?: boolean;\r\n /** Error message */\r\n error?: string;\r\n /** Current step: 'email' | 'sent' | 'reset' | 'success' */\r\n step?: 'email' | 'sent' | 'reset' | 'success';\r\n /** Email address (for display in sent state). */\r\n email?: string;\r\n /** Custom class name */\r\n className?: string;\r\n}\r\n\r\nconst defaultForgotPasswordLabels: Required<ForgotPasswordLabels> = {\r\n forgotPasswordTitle: 'Forgot password?',\r\n resetInstructionsTagline: \"No worries, we'll send you reset instructions.\",\r\n emailLabel: 'Email',\r\n emailPlaceholder: 'Enter your email',\r\n resetPasswordButton: 'Reset password',\r\n backToLoginButton: 'Back to login',\r\n checkYourEmailTitle: 'Check your email',\r\n passwordResetLinkTagline: 'We sent a password reset link to',\r\n didNotReceiveEmailHint: \"Didn't receive the email? \",\r\n clickToResendButton: 'Click to resend',\r\n setNewPasswordTitle: 'Set new password',\r\n mustBeCharactersTagline: 'Must be at least 8 characters.',\r\n passwordLabel: 'Password',\r\n enterNewPasswordPlaceholder: 'Enter new password',\r\n confirmPasswordLabel: 'Confirm password',\r\n confirmNewPasswordPlaceholder: 'Confirm new password',\r\n passwordsDontMatchError: \"Passwords don't match\",\r\n passwordResetTitle: 'Password reset',\r\n passwordSuccessfullyResetTagline: 'Your password has been successfully reset.',\r\n clickBelowLogInHint: 'Click below to log in.',\r\n continueToLoginButton: 'Continue to login',\r\n showPasswordLabel: 'Show password',\r\n hidePasswordLabel: 'Hide password',\r\n};\r\n\r\nexport const ForgotPassword: React.FC<ForgotPasswordProps> = ({\r\n logo,\r\n labels: customLabels,\r\n onSubmit,\r\n onResetPassword,\r\n onBackToLogin,\r\n isLoading = false,\r\n error,\r\n step = 'email',\r\n email: initialEmail = '',\r\n className,\r\n}) => {\r\n const l = { ...defaultForgotPasswordLabels, ...customLabels };\r\n const [email, setEmail] = useState(initialEmail);\r\n const [password, setPassword] = useState('');\r\n const [confirmPassword, setConfirmPassword] = useState('');\r\n const [showPassword, setShowPassword] = useState(false);\r\n const [resendTimer, setResendTimer] = useState(0);\r\n const hasStartedTimer = React.useRef(false);\r\n\r\n useEffect(() => {\r\n if (step === 'sent' && !hasStartedTimer.current) {\r\n hasStartedTimer.current = true;\r\n setResendTimer(60);\r\n } else if (step !== 'sent') {\r\n hasStartedTimer.current = false;\r\n }\r\n }, [step]);\r\n\r\n useEffect(() => {\r\n let timerId: NodeJS.Timeout;\r\n if (resendTimer > 0) {\r\n timerId = setInterval(() => {\r\n setResendTimer((prev) => prev - 1);\r\n }, 1000);\r\n }\r\n return () => {\r\n if (timerId) clearInterval(timerId);\r\n };\r\n }, [resendTimer]);\r\n\r\n const handleResendClick = () => {\r\n if (resendTimer === 0) {\r\n onSubmit?.(email || initialEmail);\r\n setResendTimer(60);\r\n }\r\n };\r\n\r\n const handleEmailSubmit = (e: React.FormEvent) => {\r\n e.preventDefault();\r\n onSubmit?.(email);\r\n };\r\n\r\n const handleResetSubmit = (e: React.FormEvent) => {\r\n e.preventDefault();\r\n onResetPassword?.({ password, confirmPassword });\r\n };\r\n\r\n const renderLogo = () =>\r\n logo ? (\r\n <div className=\"ds-forgot__logo\">{logo}</div>\r\n ) : (\r\n <div className=\"ds-forgot__logo ds-forgot__logo--default\">\r\n <div className=\"ds-forgot__logo-icon\">\r\n <svg viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect width=\"32\" height=\"32\" rx=\"8\" fill=\"url(#forgot-logo-gradient)\" />\r\n <path\r\n d=\"M16 10V14M16 22V22.01M16 26C21.5228 26 26 21.5228 26 16C26 10.4772 21.5228 6 16 6C10.4772 6 6 10.4772 6 16C6 21.5228 10.4772 26 16 26Z\"\r\n stroke=\"white\"\r\n strokeWidth=\"2\"\r\n strokeLinecap=\"round\"\r\n />\r\n <defs>\r\n <linearGradient id=\"forgot-logo-gradient\" x1=\"0\" y1=\"0\" x2=\"32\" y2=\"32\">\r\n <stop stopColor=\"rgb(var(--accent-rgb))\" />\r\n <stop offset=\"1\" stopColor=\"rgb(var(--accent2-rgb))\" />\r\n </linearGradient>\r\n </defs>\r\n </svg>\r\n </div>\r\n </div>\r\n );\r\n\r\n // Email Entry Step\r\n if (step === 'email') {\r\n return (\r\n <div className={clsx('ds-forgot', className)}>\r\n <div className=\"ds-forgot__accent ds-forgot__accent--1\" aria-hidden=\"true\" />\r\n <div className=\"ds-forgot__accent ds-forgot__accent--2\" aria-hidden=\"true\" />\r\n\r\n <div className=\"ds-forgot__card\">\r\n <div className=\"ds-forgot__header\">\r\n {renderLogo()}\r\n <h1 className=\"ds-forgot__title\">{l.forgotPasswordTitle}</h1>\r\n <p className=\"ds-forgot__tagline\">{l.resetInstructionsTagline}</p>\r\n </div>\r\n\r\n {error && (\r\n <div className=\"ds-forgot__error\">\r\n <svg\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 16 16\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\r\n <path\r\n d=\"M8 4.5V8.5\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n />\r\n <circle cx=\"8\" cy=\"11\" r=\"0.75\" fill=\"currentColor\" />\r\n </svg>\r\n <span>{error}</span>\r\n </div>\r\n )}\r\n\r\n <form className=\"ds-forgot__form\" onSubmit={handleEmailSubmit}>\r\n <div className=\"ds-forgot__field\">\r\n <TextField\r\n label={l.emailLabel}\r\n type=\"email\"\r\n placeholder={l.emailPlaceholder}\r\n value={email}\r\n onChange={(e) => setEmail(e.target.value)}\r\n disabled={isLoading}\r\n autoComplete=\"email\"\r\n />\r\n </div>\r\n\r\n <Button\r\n type=\"submit\"\r\n variant=\"primary\"\r\n size=\"lg\"\r\n disabled={isLoading || !email}\r\n className=\"ds-forgot__submit\"\r\n >\r\n {isLoading ? <span className=\"ds-forgot__spinner\" /> : l.resetPasswordButton}\r\n </Button>\r\n </form>\r\n\r\n <div className=\"ds-forgot__footer\">\r\n <button\r\n type=\"button\"\r\n className=\"ds-forgot__back\"\r\n onClick={onBackToLogin}\r\n disabled={isLoading}\r\n >\r\n <svg\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 16 16\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n >\r\n <path d=\"M10 12L6 8L10 4\" />\r\n </svg>\r\n {l.backToLoginButton}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n // Email Sent Step\r\n if (step === 'sent') {\r\n return (\r\n <div className={clsx('ds-forgot', className)}>\r\n <div className=\"ds-forgot__accent ds-forgot__accent--1\" aria-hidden=\"true\" />\r\n <div className=\"ds-forgot__accent ds-forgot__accent--2\" aria-hidden=\"true\" />\r\n\r\n <div className=\"ds-forgot__card ds-forgot__card--centered\">\r\n <div className=\"ds-forgot__success-icon\">\r\n <svg viewBox=\"0 0 64 64\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <circle cx=\"32\" cy=\"32\" r=\"30\" stroke=\"rgb(var(--accent-rgb))\" strokeWidth=\"2\" />\r\n <path\r\n d=\"M20 32L44 32M44 32L36 24M44 32L36 40\"\r\n stroke=\"rgb(var(--accent-rgb))\"\r\n strokeWidth=\"3\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n <h1 className=\"ds-forgot__title\">{l.checkYourEmailTitle}</h1>\r\n <p className=\"ds-forgot__tagline\">\r\n {l.passwordResetLinkTagline}\r\n <br />\r\n <strong>{email || initialEmail}</strong>\r\n </p>\r\n\r\n <div className=\"ds-forgot__hint\">\r\n <span>{l.didNotReceiveEmailHint}</span>\r\n <button\r\n type=\"button\"\r\n className=\"ds-forgot__link\"\r\n onClick={handleResendClick}\r\n disabled={isLoading || resendTimer > 0}\r\n >\r\n {resendTimer > 0 ? `${l.clickToResendButton} ${resendTimer}s` : l.clickToResendButton}\r\n </button>\r\n </div>\r\n\r\n <div className=\"ds-forgot__footer\">\r\n <button\r\n type=\"button\"\r\n className=\"ds-forgot__back\"\r\n onClick={onBackToLogin}\r\n disabled={isLoading}\r\n >\r\n <svg\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 16 16\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n >\r\n <path d=\"M10 12L6 8L10 4\" />\r\n </svg>\r\n {l.backToLoginButton}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n // Reset Password Step\r\n if (step === 'reset') {\r\n const passwordsMatch = password === confirmPassword;\r\n const isValid = password.length >= 8 && passwordsMatch;\r\n\r\n return (\r\n <div className={clsx('ds-forgot', className)}>\r\n <div className=\"ds-forgot__accent ds-forgot__accent--1\" aria-hidden=\"true\" />\r\n <div className=\"ds-forgot__accent ds-forgot__accent--2\" aria-hidden=\"true\" />\r\n\r\n <div className=\"ds-forgot__card\">\r\n <div className=\"ds-forgot__header\">\r\n {renderLogo()}\r\n <h1 className=\"ds-forgot__title\">{l.setNewPasswordTitle}</h1>\r\n <p className=\"ds-forgot__tagline\">{l.mustBeCharactersTagline}</p>\r\n </div>\r\n\r\n {error && (\r\n <div className=\"ds-forgot__error\">\r\n <svg\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 16 16\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\r\n <path\r\n d=\"M8 4.5V8.5\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n />\r\n <circle cx=\"8\" cy=\"11\" r=\"0.75\" fill=\"currentColor\" />\r\n </svg>\r\n <span>{error}</span>\r\n </div>\r\n )}\r\n\r\n <form className=\"ds-forgot__form\" onSubmit={handleResetSubmit}>\r\n <div className=\"ds-forgot__field\">\r\n <div className=\"ds-forgot__password-wrapper\">\r\n <TextField\r\n label={l.passwordLabel}\r\n type={showPassword ? 'text' : 'password'}\r\n placeholder={l.enterNewPasswordPlaceholder}\r\n value={password}\r\n onChange={(e) => setPassword(e.target.value)}\r\n disabled={isLoading}\r\n autoComplete=\"new-password\"\r\n />\r\n <button\r\n type=\"button\"\r\n className=\"ds-forgot__password-toggle\"\r\n onClick={() => setShowPassword(!showPassword)}\r\n aria-label={showPassword ? l.hidePasswordLabel : l.showPasswordLabel}\r\n >\r\n {showPassword ? (\r\n <svg\r\n width=\"20\"\r\n height=\"20\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n >\r\n <path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\" />\r\n <line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\" />\r\n </svg>\r\n ) : (\r\n <svg\r\n width=\"20\"\r\n height=\"20\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n >\r\n <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\" />\r\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\r\n </svg>\r\n )}\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div className=\"ds-forgot__field\">\r\n <TextField\r\n label={l.confirmPasswordLabel}\r\n type={showPassword ? 'text' : 'password'}\r\n placeholder={l.confirmNewPasswordPlaceholder}\r\n value={confirmPassword}\r\n onChange={(e) => setConfirmPassword(e.target.value)}\r\n disabled={isLoading}\r\n autoComplete=\"new-password\"\r\n error={confirmPassword.length > 0 && !passwordsMatch}\r\n helperText={\r\n confirmPassword.length > 0 && !passwordsMatch\r\n ? l.passwordsDontMatchError\r\n : undefined\r\n }\r\n />\r\n </div>\r\n\r\n <Button\r\n type=\"submit\"\r\n variant=\"primary\"\r\n size=\"lg\"\r\n disabled={isLoading || !isValid}\r\n className=\"ds-forgot__submit\"\r\n >\r\n {isLoading ? <span className=\"ds-forgot__spinner\" /> : l.resetPasswordButton}\r\n </Button>\r\n </form>\r\n\r\n <div className=\"ds-forgot__footer\">\r\n <button\r\n type=\"button\"\r\n className=\"ds-forgot__back\"\r\n onClick={onBackToLogin}\r\n disabled={isLoading}\r\n >\r\n <svg\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 16 16\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n >\r\n <path d=\"M10 12L6 8L10 4\" />\r\n </svg>\r\n {l.backToLoginButton}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n // Success Step\r\n return (\r\n <div className={clsx('ds-forgot', className)}>\r\n <div className=\"ds-forgot__accent ds-forgot__accent--1\" aria-hidden=\"true\" />\r\n <div className=\"ds-forgot__accent ds-forgot__accent--2\" aria-hidden=\"true\" />\r\n\r\n <div className=\"ds-forgot__card ds-forgot__card--centered\">\r\n <div className=\"ds-forgot__success-icon ds-forgot__success-icon--check\">\r\n <svg viewBox=\"0 0 64 64\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <circle cx=\"32\" cy=\"32\" r=\"30\" stroke=\"var(--status-success)\" strokeWidth=\"2\" />\r\n <path\r\n d=\"M20 32L28 40L44 24\"\r\n stroke=\"var(--status-success)\"\r\n strokeWidth=\"3\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n <h1 className=\"ds-forgot__title\">{l.passwordResetTitle}</h1>\r\n <p className=\"ds-forgot__tagline\">\r\n {l.passwordSuccessfullyResetTagline}\r\n <br />\r\n {l.clickBelowLogInHint}\r\n </p>\r\n\r\n <Button variant=\"primary\" size=\"lg\" onClick={onBackToLogin} className=\"ds-forgot__submit\">\r\n {l.continueToLoginButton}\r\n </Button>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nForgotPassword.displayName = 'ForgotPassword';\r\n","import React, { useState } from 'react';\nimport clsx from 'clsx';\nimport { Button } from '../Button/Button';\nimport { TextField } from '../TextField/TextField';\nimport './ChangeEmail.css';\n\n/* ============================================================================\n CHANGE EMAIL PAGE — apps.sales-mind.ai/v2/auth/change-email\n New email + current password entry. Mirrors the production dark-glass \"Void\"\n layout (same header / accent / card structure as ForgotPassword).\n ============================================================================ */\n\nexport interface ChangeEmailLabels {\n changeEmailTitle?: string;\n changeEmailTagline?: string;\n newEmailLabel?: string;\n newEmailPlaceholder?: string;\n currentPasswordLabel?: string;\n currentPasswordPlaceholder?: string;\n forgotPasswordButton?: string;\n continueButton?: string;\n backToLoginButton?: string;\n showPasswordLabel?: string;\n hidePasswordLabel?: string;\n successTitle?: string;\n successTagline?: string;\n continueToLoginButton?: string;\n}\n\nexport interface ChangeEmailProps {\n labels?: ChangeEmailLabels;\n logo?: React.ReactNode;\n onSubmit?: (data: { email: string; password: string }) => void;\n onForgotPassword?: () => void;\n onBackToLogin?: () => void;\n isLoading?: boolean;\n error?: string;\n /** Current step: 'form' | 'success' */\n step?: 'form' | 'success';\n className?: string;\n}\n\nconst defaultLabels: Required<ChangeEmailLabels> = {\n changeEmailTitle: 'Change Email',\n changeEmailTagline: 'Enter you new email and the current password.',\n newEmailLabel: 'New Email',\n newEmailPlaceholder: '',\n currentPasswordLabel: 'Current Password',\n currentPasswordPlaceholder: '',\n forgotPasswordButton: 'Forgot password?',\n continueButton: 'Continue',\n backToLoginButton: 'Back to login',\n showPasswordLabel: 'Show password',\n hidePasswordLabel: 'Hide password',\n successTitle: 'Email updated',\n successTagline: 'Your email address has been successfully changed.',\n continueToLoginButton: 'Continue to login',\n};\n\nconst EyeOpen = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n);\n\nconst EyeOff = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\" />\n <line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\" />\n </svg>\n);\n\nexport const ChangeEmail: React.FC<ChangeEmailProps> = ({\n logo,\n labels: customLabels,\n onSubmit,\n onForgotPassword,\n onBackToLogin,\n isLoading = false,\n error,\n step = 'form',\n className,\n}) => {\n const l = { ...defaultLabels, ...customLabels };\n const [email, setEmail] = useState('');\n const [password, setPassword] = useState('');\n const [showPassword, setShowPassword] = useState(false);\n\n const renderLogo = () =>\n logo ? <div className=\"ds-change-email__logo\">{logo}</div> : <div className=\"ds-change-email__logo\" />;\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n onSubmit?.({ email, password });\n };\n\n // Success Step\n if (step === 'success') {\n return (\n <div className={clsx('ds-change-email', className)}>\n <div className=\"ds-change-email__container\">\n <div className=\"ds-change-email__accent ds-change-email__accent--1\" aria-hidden=\"true\" />\n <div className=\"ds-change-email__accent ds-change-email__accent--2\" aria-hidden=\"true\" />\n <div className=\"ds-change-email__card\">\n <div className=\"ds-change-email__header\">\n {renderLogo()}\n <h1 className=\"ds-change-email__title\">{l.successTitle}</h1>\n <p className=\"ds-change-email__tagline\">{l.successTagline}</p>\n </div>\n <Button variant=\"primary\" size=\"lg\" onClick={onBackToLogin} className=\"ds-change-email__submit\">\n {l.continueToLoginButton}\n </Button>\n </div>\n </div>\n </div>\n );\n }\n\n // Form Step\n return (\n <div className={clsx('ds-change-email', className)}>\n <div className=\"ds-change-email__container\">\n <div className=\"ds-change-email__accent ds-change-email__accent--1\" aria-hidden=\"true\" />\n <div className=\"ds-change-email__accent ds-change-email__accent--2\" aria-hidden=\"true\" />\n\n <div className=\"ds-change-email__card\">\n <div className=\"ds-change-email__header\">\n {renderLogo()}\n <h1 className=\"ds-change-email__title\">{l.changeEmailTitle}</h1>\n <p className=\"ds-change-email__tagline\">{l.changeEmailTagline}</p>\n </div>\n\n {error && (\n <div className=\"ds-change-email__error\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M8 4.5V8.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <circle cx=\"8\" cy=\"11\" r=\"0.75\" fill=\"currentColor\" />\n </svg>\n <span>{error}</span>\n </div>\n )}\n\n <form className=\"ds-change-email__form\" onSubmit={handleSubmit}>\n <div className=\"ds-change-email__field\">\n <TextField\n label={l.newEmailLabel}\n type=\"email\"\n placeholder={l.newEmailPlaceholder}\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n disabled={isLoading}\n autoComplete=\"email\"\n />\n </div>\n\n <div className=\"ds-change-email__field\">\n <TextField\n label={l.currentPasswordLabel}\n type={showPassword ? 'text' : 'password'}\n placeholder={l.currentPasswordPlaceholder}\n value={password}\n onChange={(e) => setPassword(e.target.value)}\n disabled={isLoading}\n autoComplete=\"current-password\"\n endAdornment={\n <button\n type=\"button\"\n className=\"ds-change-email__password-toggle\"\n onClick={() => setShowPassword(!showPassword)}\n aria-label={showPassword ? l.hidePasswordLabel : l.showPasswordLabel}\n >\n {showPassword ? <EyeOff /> : <EyeOpen />}\n </button>\n }\n />\n </div>\n\n <div\n className=\"ds-change-email__options\"\n style={{ display: 'flex', justifyContent: 'flex-end', marginTop: -8 }}\n >\n <button\n type=\"button\"\n className=\"ds-change-email__link\"\n onClick={onForgotPassword}\n disabled={isLoading}\n >\n {l.forgotPasswordButton}\n </button>\n </div>\n\n <div style={{ marginTop: 24 }}>\n <Button\n type=\"submit\"\n variant=\"primary\"\n size=\"lg\"\n disabled={isLoading || !email || !password}\n className=\"ds-change-email__submit\"\n >\n {isLoading ? <span className=\"ds-change-email__spinner\" /> : l.continueButton}\n </Button>\n </div>\n </form>\n\n </div>\n </div>\n </div>\n );\n};\n\nChangeEmail.displayName = 'ChangeEmail';\n"]}
|
|
@@ -917,7 +917,7 @@ var EcosystemDiagram = React24.forwardRef(
|
|
|
917
917
|
/* @__PURE__ */ jsxRuntime.jsx("ul", { className: "ds-ecosystem__capabilities", children: layer.capabilities.map((cap, j) => /* @__PURE__ */ jsxRuntime.jsx("li", { className: "ds-ecosystem__capability", children: cap }, j)) })
|
|
918
918
|
] }, i)) }),
|
|
919
919
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-ecosystem__connections", "aria-hidden": "true", children: connections.map((conn, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-ecosystem__connection", children: [
|
|
920
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-ecosystem__connection-arrow", children: "
|
|
920
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-ecosystem__connection-arrow", children: "\u2192" }),
|
|
921
921
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-ecosystem__connection-label", children: conn.label })
|
|
922
922
|
] }, i)) })
|
|
923
923
|
] })
|
|
@@ -1142,7 +1142,7 @@ var IntelligenceBlock = React24.forwardRef(
|
|
|
1142
1142
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-intelligence__compound-label", children: "Before" }),
|
|
1143
1143
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-intelligence__compound-text", children: cap.compoundingExample.before })
|
|
1144
1144
|
] }),
|
|
1145
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-intelligence__compound-arrow", "aria-hidden": "true", children: "
|
|
1145
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-intelligence__compound-arrow", "aria-hidden": "true", children: "\u2192" }),
|
|
1146
1146
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-intelligence__compound-after", children: [
|
|
1147
1147
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-intelligence__compound-label", children: cap.compoundingExample.timeframe }),
|
|
1148
1148
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-intelligence__compound-text", children: cap.compoundingExample.after })
|
|
@@ -1916,4 +1916,4 @@ exports.StickyActionBar = StickyActionBar;
|
|
|
1916
1916
|
exports.ValueAnchor = ValueAnchor;
|
|
1917
1917
|
exports.Vignette = Vignette;
|
|
1918
1918
|
//# sourceMappingURL=out.js.map
|
|
1919
|
-
//# sourceMappingURL=chunk-
|
|
1919
|
+
//# sourceMappingURL=chunk-LM3UJILC.cjs.map
|