@salesmind-ai/design-system 1.8.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.
Files changed (52) hide show
  1. package/dist/ChangeEmail-BuUhjW0o.d.cts +226 -0
  2. package/dist/ChangeEmail-BuUhjW0o.d.ts +226 -0
  3. package/dist/chunk-AI2YEYT4.js +1368 -0
  4. package/dist/chunk-AI2YEYT4.js.map +1 -0
  5. package/dist/{chunk-4QQKREVH.cjs → chunk-LM3UJILC.cjs} +3 -3
  6. package/dist/{chunk-4QQKREVH.cjs.map → chunk-LM3UJILC.cjs.map} +1 -1
  7. package/dist/{chunk-K7NQ7TQG.cjs → chunk-M4MLGT4B.cjs} +84 -27
  8. package/dist/chunk-M4MLGT4B.cjs.map +1 -0
  9. package/dist/{chunk-25TUCNN6.js → chunk-QVGDMAZY.js} +84 -27
  10. package/dist/chunk-QVGDMAZY.js.map +1 -0
  11. package/dist/{chunk-2TC5EVSJ.js → chunk-TPZ3PKSF.js} +3 -3
  12. package/dist/{chunk-2TC5EVSJ.js.map → chunk-TPZ3PKSF.js.map} +1 -1
  13. package/dist/chunk-YWJKSY5C.cjs +1381 -0
  14. package/dist/chunk-YWJKSY5C.cjs.map +1 -0
  15. package/dist/index.cjs +47 -30
  16. package/dist/index.cjs.map +1 -1
  17. package/dist/index.css +2372 -0
  18. package/dist/index.css.map +1 -1
  19. package/dist/index.d.cts +1 -0
  20. package/dist/index.d.ts +1 -0
  21. package/dist/index.js +2 -1
  22. package/dist/index.js.map +1 -1
  23. package/dist/marketing/index.cjs +27 -27
  24. package/dist/marketing/index.js +1 -1
  25. package/dist/onboarding/index.cjs +5870 -0
  26. package/dist/onboarding/index.cjs.map +1 -0
  27. package/dist/onboarding/index.css +557 -0
  28. package/dist/onboarding/index.css.map +1 -0
  29. package/dist/onboarding/index.d.cts +1589 -0
  30. package/dist/onboarding/index.d.ts +1589 -0
  31. package/dist/onboarding/index.js +5736 -0
  32. package/dist/onboarding/index.js.map +1 -0
  33. package/dist/styles/styles.css +2539 -0
  34. package/dist/v2-auth/index.cjs +59 -0
  35. package/dist/v2-auth/index.cjs.map +1 -0
  36. package/dist/v2-auth/index.css +3360 -0
  37. package/dist/v2-auth/index.css.map +1 -0
  38. package/dist/v2-auth/index.d.cts +76 -0
  39. package/dist/v2-auth/index.d.ts +76 -0
  40. package/dist/v2-auth/index.js +24 -0
  41. package/dist/v2-auth/index.js.map +1 -0
  42. package/dist/web/index.cjs +7 -7
  43. package/dist/web/index.d.cts +1 -1
  44. package/dist/web/index.d.ts +1 -1
  45. package/dist/web/index.js +1 -1
  46. package/dist/web/server/index.cjs +7 -7
  47. package/dist/web/server/index.d.cts +91 -27
  48. package/dist/web/server/index.d.ts +91 -27
  49. package/dist/web/server/index.js +1 -1
  50. package/package.json +14 -2
  51. package/dist/chunk-25TUCNN6.js.map +0 -1
  52. 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"]}
package/dist/index.cjs CHANGED
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
 
3
+ var chunkYWJKSY5C_cjs = require('./chunk-YWJKSY5C.cjs');
3
4
  var chunkOMP6FAZ6_cjs = require('./chunk-OMP6FAZ6.cjs');
4
5
  var chunkMQDEE7HC_cjs = require('./chunk-MQDEE7HC.cjs');
5
6
  var chunkFVSL5YMB_cjs = require('./chunk-FVSL5YMB.cjs');
@@ -10,7 +11,7 @@ var chunk5EIBL6DQ_cjs = require('./chunk-5EIBL6DQ.cjs');
10
11
  var chunkNT4LBP7D_cjs = require('./chunk-NT4LBP7D.cjs');
11
12
  var chunkFXYOSA4E_cjs = require('./chunk-FXYOSA4E.cjs');
12
13
  var chunkSR4QRXRR_cjs = require('./chunk-SR4QRXRR.cjs');
13
- var chunk4QQKREVH_cjs = require('./chunk-4QQKREVH.cjs');
14
+ var chunkLM3UJILC_cjs = require('./chunk-LM3UJILC.cjs');
14
15
  var chunk6WQKRQEE_cjs = require('./chunk-6WQKRQEE.cjs');
15
16
  var chunk7EUR3AKV_cjs = require('./chunk-7EUR3AKV.cjs');
16
17
  var chunkDP74LUXG_cjs = require('./chunk-DP74LUXG.cjs');
@@ -349,6 +350,22 @@ FlowchartCardTitle.displayName = "FlowchartCardTitle";
349
350
  var FlowchartCardContent = React5__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx9__default.default("ds-flowchart-card__content", className), ...props }));
350
351
  FlowchartCardContent.displayName = "FlowchartCardContent";
351
352
 
353
+ Object.defineProperty(exports, "ChangeEmail", {
354
+ enumerable: true,
355
+ get: function () { return chunkYWJKSY5C_cjs.ChangeEmail; }
356
+ });
357
+ Object.defineProperty(exports, "ForgotPassword", {
358
+ enumerable: true,
359
+ get: function () { return chunkYWJKSY5C_cjs.ForgotPassword; }
360
+ });
361
+ Object.defineProperty(exports, "Login", {
362
+ enumerable: true,
363
+ get: function () { return chunkYWJKSY5C_cjs.Login; }
364
+ });
365
+ Object.defineProperty(exports, "Signup", {
366
+ enumerable: true,
367
+ get: function () { return chunkYWJKSY5C_cjs.Signup; }
368
+ });
352
369
  Object.defineProperty(exports, "Shell", {
353
370
  enumerable: true,
354
371
  get: function () { return chunkOMP6FAZ6_cjs.Shell; }
@@ -759,119 +776,119 @@ Object.defineProperty(exports, "VideoLightbox", {
759
776
  });
760
777
  Object.defineProperty(exports, "ArchitectureDiagram", {
761
778
  enumerable: true,
762
- get: function () { return chunk4QQKREVH_cjs.ArchitectureDiagram; }
779
+ get: function () { return chunkLM3UJILC_cjs.ArchitectureDiagram; }
763
780
  });
764
781
  Object.defineProperty(exports, "AuroraVoid", {
765
782
  enumerable: true,
766
- get: function () { return chunk4QQKREVH_cjs.AuroraVoid; }
783
+ get: function () { return chunkLM3UJILC_cjs.AuroraVoid; }
767
784
  });
768
785
  Object.defineProperty(exports, "BeforeAfterBlock", {
769
786
  enumerable: true,
770
- get: function () { return chunk4QQKREVH_cjs.BeforeAfterBlock; }
787
+ get: function () { return chunkLM3UJILC_cjs.BeforeAfterBlock; }
771
788
  });
772
789
  Object.defineProperty(exports, "BookingEmbed", {
773
790
  enumerable: true,
774
- get: function () { return chunk4QQKREVH_cjs.BookingEmbed; }
791
+ get: function () { return chunkLM3UJILC_cjs.BookingEmbed; }
775
792
  });
776
793
  Object.defineProperty(exports, "CaseStudyCard", {
777
794
  enumerable: true,
778
- get: function () { return chunk4QQKREVH_cjs.CaseStudyCard; }
795
+ get: function () { return chunkLM3UJILC_cjs.CaseStudyCard; }
779
796
  });
780
797
  Object.defineProperty(exports, "ComparisonTable", {
781
798
  enumerable: true,
782
- get: function () { return chunk4QQKREVH_cjs.ComparisonTable; }
799
+ get: function () { return chunkLM3UJILC_cjs.ComparisonTable; }
783
800
  });
784
801
  Object.defineProperty(exports, "CompetitorDiff", {
785
802
  enumerable: true,
786
- get: function () { return chunk4QQKREVH_cjs.CompetitorDiff; }
803
+ get: function () { return chunkLM3UJILC_cjs.CompetitorDiff; }
787
804
  });
788
805
  Object.defineProperty(exports, "ComplianceGrid", {
789
806
  enumerable: true,
790
- get: function () { return chunk4QQKREVH_cjs.ComplianceGrid; }
807
+ get: function () { return chunkLM3UJILC_cjs.ComplianceGrid; }
791
808
  });
792
809
  Object.defineProperty(exports, "EcosystemDiagram", {
793
810
  enumerable: true,
794
- get: function () { return chunk4QQKREVH_cjs.EcosystemDiagram; }
811
+ get: function () { return chunkLM3UJILC_cjs.EcosystemDiagram; }
795
812
  });
796
813
  Object.defineProperty(exports, "EnterpriseSignaling", {
797
814
  enumerable: true,
798
- get: function () { return chunk4QQKREVH_cjs.EnterpriseSignaling; }
815
+ get: function () { return chunkLM3UJILC_cjs.EnterpriseSignaling; }
799
816
  });
800
817
  Object.defineProperty(exports, "EvolutionTimeline", {
801
818
  enumerable: true,
802
- get: function () { return chunk4QQKREVH_cjs.EvolutionTimeline; }
819
+ get: function () { return chunkLM3UJILC_cjs.EvolutionTimeline; }
803
820
  });
804
821
  Object.defineProperty(exports, "GridOverlay", {
805
822
  enumerable: true,
806
- get: function () { return chunk4QQKREVH_cjs.GridOverlay; }
823
+ get: function () { return chunkLM3UJILC_cjs.GridOverlay; }
807
824
  });
808
825
  Object.defineProperty(exports, "GuaranteeHighlight", {
809
826
  enumerable: true,
810
- get: function () { return chunk4QQKREVH_cjs.GuaranteeHighlight; }
827
+ get: function () { return chunkLM3UJILC_cjs.GuaranteeHighlight; }
811
828
  });
812
829
  Object.defineProperty(exports, "HeroComposition", {
813
830
  enumerable: true,
814
- get: function () { return chunk4QQKREVH_cjs.HeroComposition; }
831
+ get: function () { return chunkLM3UJILC_cjs.HeroComposition; }
815
832
  });
816
833
  Object.defineProperty(exports, "ICPFilter", {
817
834
  enumerable: true,
818
- get: function () { return chunk4QQKREVH_cjs.ICPFilter; }
835
+ get: function () { return chunkLM3UJILC_cjs.ICPFilter; }
819
836
  });
820
837
  Object.defineProperty(exports, "IntelligenceBlock", {
821
838
  enumerable: true,
822
- get: function () { return chunk4QQKREVH_cjs.IntelligenceBlock; }
839
+ get: function () { return chunkLM3UJILC_cjs.IntelligenceBlock; }
823
840
  });
824
841
  Object.defineProperty(exports, "IntentCTA", {
825
842
  enumerable: true,
826
- get: function () { return chunk4QQKREVH_cjs.IntentCTA; }
843
+ get: function () { return chunkLM3UJILC_cjs.IntentCTA; }
827
844
  });
828
845
  Object.defineProperty(exports, "KPIPanel", {
829
846
  enumerable: true,
830
- get: function () { return chunk4QQKREVH_cjs.KPIPanel; }
847
+ get: function () { return chunkLM3UJILC_cjs.KPIPanel; }
831
848
  });
832
849
  Object.defineProperty(exports, "MarketingHero", {
833
850
  enumerable: true,
834
- get: function () { return chunk4QQKREVH_cjs.MarketingHero; }
851
+ get: function () { return chunkLM3UJILC_cjs.MarketingHero; }
835
852
  });
836
853
  Object.defineProperty(exports, "MarketingSection", {
837
854
  enumerable: true,
838
- get: function () { return chunk4QQKREVH_cjs.MarketingSection; }
855
+ get: function () { return chunkLM3UJILC_cjs.MarketingSection; }
839
856
  });
840
857
  Object.defineProperty(exports, "ObjectionFAQ", {
841
858
  enumerable: true,
842
- get: function () { return chunk4QQKREVH_cjs.ObjectionFAQ; }
859
+ get: function () { return chunkLM3UJILC_cjs.ObjectionFAQ; }
843
860
  });
844
861
  Object.defineProperty(exports, "PartnerValueProp", {
845
862
  enumerable: true,
846
- get: function () { return chunk4QQKREVH_cjs.PartnerValueProp; }
863
+ get: function () { return chunkLM3UJILC_cjs.PartnerValueProp; }
847
864
  });
848
865
  Object.defineProperty(exports, "PricingCard", {
849
866
  enumerable: true,
850
- get: function () { return chunk4QQKREVH_cjs.PricingCard; }
867
+ get: function () { return chunkLM3UJILC_cjs.PricingCard; }
851
868
  });
852
869
  Object.defineProperty(exports, "ProblemAgitation", {
853
870
  enumerable: true,
854
- get: function () { return chunk4QQKREVH_cjs.ProblemAgitation; }
871
+ get: function () { return chunkLM3UJILC_cjs.ProblemAgitation; }
855
872
  });
856
873
  Object.defineProperty(exports, "ROICalculator", {
857
874
  enumerable: true,
858
- get: function () { return chunk4QQKREVH_cjs.ROICalculator; }
875
+ get: function () { return chunkLM3UJILC_cjs.ROICalculator; }
859
876
  });
860
877
  Object.defineProperty(exports, "SegmentSwitch", {
861
878
  enumerable: true,
862
- get: function () { return chunk4QQKREVH_cjs.SegmentSwitch; }
879
+ get: function () { return chunkLM3UJILC_cjs.SegmentSwitch; }
863
880
  });
864
881
  Object.defineProperty(exports, "StickyActionBar", {
865
882
  enumerable: true,
866
- get: function () { return chunk4QQKREVH_cjs.StickyActionBar; }
883
+ get: function () { return chunkLM3UJILC_cjs.StickyActionBar; }
867
884
  });
868
885
  Object.defineProperty(exports, "ValueAnchor", {
869
886
  enumerable: true,
870
- get: function () { return chunk4QQKREVH_cjs.ValueAnchor; }
887
+ get: function () { return chunkLM3UJILC_cjs.ValueAnchor; }
871
888
  });
872
889
  Object.defineProperty(exports, "Vignette", {
873
890
  enumerable: true,
874
- get: function () { return chunk4QQKREVH_cjs.Vignette; }
891
+ get: function () { return chunkLM3UJILC_cjs.Vignette; }
875
892
  });
876
893
  Object.defineProperty(exports, "Badge", {
877
894
  enumerable: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/GradientText/GradientText.tsx","../src/components/StatusBadge/StatusBadge.tsx","../src/components/Chip/Chip.tsx","../src/components/LeadNotification/LeadNotification.tsx","../src/components/MarkLockup/MarkLockup.tsx","../src/components/MarkLockup/_markSvg.tsx","../src/components/Logo/Logo.tsx","../src/components/FlowchartBadge/FlowchartBadge.tsx","../src/components/FlowchartConnector/FlowchartConnector.tsx","../src/components/FlowchartCard/FlowchartCard.tsx"],"names":["React","clsx","jsx","forwardRef","jsxs"],"mappings":"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","sourcesContent":["import React, { forwardRef } from 'react'\nimport clsx from 'clsx'\nimport './GradientText.css'\n\nexport type GradientPreset = 'brand' | 'rainbow' | 'sunset' | 'aurora-pink-gold' | 'aurora-plum-pink' | 'display-headline'\n\nexport interface GradientTextProps extends React.HTMLAttributes<HTMLSpanElement> {\n /** Gradient color preset. Default: 'brand' (SalesMind pink→gold) */\n gradient?: GradientPreset\n /** HTML element tag. Default: 'span' */\n as?: 'span' | 'em' | 'strong' | 'mark'\n children: React.ReactNode\n}\n\nconst GradientText = forwardRef<HTMLSpanElement, GradientTextProps>(\n ({ gradient = 'brand', as: Tag = 'span', className, children, ...props }, ref) => {\n return (\n <Tag\n ref={ref}\n className={clsx('ds-gradient-text', `ds-gradient-text--${gradient}`, className)}\n {...props}\n >\n {children}\n </Tag>\n )\n }\n)\nGradientText.displayName = 'GradientText'\n\nexport { GradientText }\n","import React from 'react';\nimport clsx from 'clsx';\nimport './StatusBadge.css';\n\n/** Semantic tone values shared across Badge, Chip, and StatusBadge. */\nexport type BadgeTone =\n | 'aurora-pink'\n | 'aurora-gold'\n | 'aurora-plum'\n | 'status-success'\n | 'status-warning'\n | 'status-error'\n | 'neutral';\n\nexport interface StatusBadgeProps extends React.HTMLAttributes<HTMLSpanElement> {\n /**\n * Semantic tone — maps to a colour family.\n * - `'aurora-pink'` / `'aurora-gold'` / `'aurora-plum'` — aurora colour tones\n * - `'status-success'` — green; used for \"Lead replied\", positive states\n * - `'status-warning'` — amber; used for \"Pending\", needs-attention states\n * - `'status-error'` — red; used for failure or critical states\n * - `'neutral'` — muted glass, no colour association\n * @default 'neutral'\n */\n tone?: BadgeTone;\n /**\n * When true, renders a small colour dot before the label.\n * Useful for \"online\" or state indicators.\n * @default false\n */\n dot?: boolean;\n}\n\n/**\n * StatusBadge — state indicator with optional dot and tone system.\n *\n * **Semantic distinction:**\n * - `Badge` = static metadata (e.g. \"NEW\", \"BETA\")\n * - `StatusBadge` = dynamic state indicator (success/warning/error/info)\n * - `Chip` = removable selection token\n *\n * @example\n * <StatusBadge tone=\"status-success\" dot>Lead replied</StatusBadge>\n * <StatusBadge tone=\"status-warning\">Pending</StatusBadge>\n */\nexport const StatusBadge = React.forwardRef<HTMLSpanElement, StatusBadgeProps>(\n ({ className, tone = 'neutral', dot = false, children, ...props }, ref) => {\n return (\n <span\n ref={ref}\n className={clsx(\n 'ds-status-badge',\n `ds-status-badge--${tone}`,\n dot && 'ds-status-badge--dot',\n className,\n )}\n {...props}\n >\n {dot && <span className=\"ds-status-badge__dot\" aria-hidden=\"true\" />}\n {children}\n </span>\n );\n },\n);\n\nStatusBadge.displayName = 'StatusBadge';\n","import { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport './Chip.css';\n\nimport type { BadgeTone } from '../StatusBadge/StatusBadge';\n\nexport type { BadgeTone };\n\nexport interface ChipProps {\n /**\n * Display label of the chip.\n * @example 'KEEN: AURORA'\n */\n label: string;\n /**\n * Callback invoked when the dismiss (×) button is clicked.\n * When provided, a dismiss button is rendered.\n */\n onRemove?: () => void;\n /**\n * Semantic tone — maps to a colour family.\n * - `'aurora-pink'` / `'aurora-gold'` / `'aurora-plum'` — aurora palette\n * - `'status-success'` / `'status-warning'` / `'status-error'` — state colours\n * - `'neutral'` — muted glass (default)\n * @default 'neutral'\n */\n tone?: BadgeTone;\n /**\n * When true, the chip is non-interactive and shows reduced opacity.\n * @default false\n */\n disabled?: boolean;\n /**\n * Size variant.\n * - `'sm'` = compact pill, 0.6875rem text\n * - `'md'` = standard pill, 0.75rem text (default)\n * @default 'md'\n */\n size?: 'sm' | 'md';\n /** Additional CSS class names. */\n className?: string;\n}\n\n/**\n * Chip — removable selection token (filter pill).\n *\n * **Semantic distinction:**\n * - `Badge` = static metadata (e.g. \"NEW\", \"BETA\")\n * - `StatusBadge` = dynamic state indicator (success/warning/error)\n * - `Chip` = removable selection token with dismiss action\n *\n * @example\n * <Chip label=\"KEEN: AURORA\" tone=\"aurora-pink\" onRemove={() => remove('aurora')} />\n * <Chip label=\"Glass\" tone=\"neutral\" />\n */\nexport const Chip = forwardRef<HTMLSpanElement, ChipProps>(\n (\n {\n label,\n onRemove,\n tone = 'neutral',\n disabled = false,\n size = 'md',\n className,\n },\n ref,\n ) => {\n return (\n <span\n ref={ref}\n className={clsx(\n 'ds-chip',\n `ds-chip--${tone}`,\n `ds-chip--${size}`,\n disabled && 'ds-chip--disabled',\n className,\n )}\n aria-disabled={disabled || undefined}\n >\n <span className=\"ds-chip__label\">{label}</span>\n {onRemove && (\n <button\n type=\"button\"\n className=\"ds-chip__dismiss\"\n onClick={disabled ? undefined : onRemove}\n disabled={disabled}\n aria-label={`Remove ${label}`}\n >\n ×\n </button>\n )}\n </span>\n );\n },\n);\n\nChip.displayName = 'Chip';\n","import { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { Card } from '../Card/Card';\nimport { StatusBadge } from '../StatusBadge/StatusBadge';\nimport { Button } from '../Button/Button';\nimport './LeadNotification.css';\n\n/* ============================================================================\n D7 — Fictional brands ONLY in demo data:\n Acme, Northwind, Examplco, Initech, Globex, Stark\n NEVER: Vercel, Stripe, Linear, Notion, Airbnb\n ============================================================================ */\n\nexport type LeadStatus = 'replied' | 'opened' | 'pending';\n\nexport interface LeadAction {\n /** Button label. */\n label: string;\n /** Callback invoked on click. */\n onClick: () => void;\n}\n\nexport interface LeadNotificationProps {\n /**\n * Lead first + last name.\n * @example 'Sarah Patel'\n */\n name?: string;\n /**\n * Lead company name. Use fictional brands only (D7: Acme, Northwind, Examplco, etc.)\n * @example 'Acme'\n */\n company?: string;\n /**\n * Quoted excerpt from the lead's reply.\n * @example 'This looks promising — can we hop on a 15-minute call this week?'\n */\n quote?: string;\n /**\n * Current lead status — determines StatusBadge tone and label.\n * - `'replied'` → success tone (\"Lead replied\")\n * - `'opened'` → warning tone (\"Email opened\")\n * - `'pending'` → neutral tone (\"Awaiting reply\")\n * @default 'replied'\n */\n status?: LeadStatus;\n /**\n * Primary CTA button (accept, schedule, etc.).\n * @default { label: 'Accept', onClick: noop }\n */\n primaryAction?: LeadAction;\n /**\n * Secondary CTA button (snooze, dismiss, etc.).\n * @default { label: 'Snooze 1h', onClick: noop }\n */\n secondaryAction?: LeadAction;\n /** Additional CSS class names. */\n className?: string;\n}\n\nconst noop = () => {};\n\nconst STATUS_CONFIG: Record<\n LeadStatus,\n { label: string; tone: 'status-success' | 'status-warning' | 'neutral' }\n> = {\n replied: { label: 'Lead replied', tone: 'status-success' },\n opened: { label: 'Email opened', tone: 'status-warning' },\n pending: { label: 'Awaiting reply', tone: 'neutral' },\n};\n\n/**\n * LeadNotification — hero notification card for an active lead reply.\n *\n * Composes Card v2 (tier=1, aurora=true) + StatusBadge + Button v2.\n * Fictional demo brands only (D7): Acme, Northwind, Examplco, Initech, Globex.\n *\n * @example\n * <LeadNotification\n * name=\"Sarah Patel\"\n * company=\"Acme\"\n * quote=\"This looks promising — can we hop on a 15-minute call?\"\n * status=\"replied\"\n * primaryAction={{ label: 'Accept', onClick: handleAccept }}\n * secondaryAction={{ label: 'Snooze 1h', onClick: handleSnooze }}\n * />\n */\nexport const LeadNotification = forwardRef<HTMLDivElement, LeadNotificationProps>(\n (\n {\n name = 'Sarah Patel',\n company = 'Acme',\n quote = 'This looks promising — can we hop on a 15-minute call this week?',\n status = 'replied',\n primaryAction = { label: 'Accept', onClick: noop },\n secondaryAction = { label: 'Snooze 1h', onClick: noop },\n className,\n },\n ref,\n ) => {\n const { label: statusLabel, tone } = STATUS_CONFIG[status];\n\n return (\n <Card\n ref={ref}\n tier={1}\n aurora\n radius=\"card\"\n className={clsx('ds-lead-notification', className)}\n >\n {/* Status indicator row */}\n <div className=\"ds-lead-notification__status\">\n <StatusBadge tone={tone} dot>\n {statusLabel}\n </StatusBadge>\n </div>\n\n {/* Headline */}\n <h3 className=\"ds-lead-notification__headline\">\n <span className=\"ds-lead-notification__name\">{name}</span>\n {' from '}\n <span className=\"ds-lead-notification__company\">{company}</span>\n </h3>\n\n {/* Quote */}\n <blockquote className=\"ds-lead-notification__quote\">\n &ldquo;{quote}&rdquo;\n </blockquote>\n\n {/* Actions */}\n <div className=\"ds-lead-notification__actions\">\n <Button\n variant=\"primary\"\n size=\"sm\"\n onClick={primaryAction.onClick}\n >\n {primaryAction.label}\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={secondaryAction.onClick}\n >\n {secondaryAction.label}\n </Button>\n </div>\n </Card>\n );\n },\n);\n\nLeadNotification.displayName = 'LeadNotification';\n","import { forwardRef } from 'react';\nimport type { ComponentPropsWithRef } from 'react';\nimport clsx from 'clsx';\nimport { MarkSvg, MARK_SIZES } from './_markSvg';\nimport './MarkLockup.css';\n\nexport interface MarkLockupOwnProps {\n /**\n * Size scale of the lockup.\n * - `'sm'` = 20px ellipse mark, 14px wordmark\n * - `'md'` = 28px ellipse mark, 16px wordmark (default)\n * - `'lg'` = 40px ellipse mark, 18px wordmark\n * @default 'md'\n */\n size?: keyof typeof MARK_SIZES;\n /**\n * When true, renders the wordmark in light colour (--text-primary at full opacity).\n * Use on aurora-gradient or dark backgrounds.\n * @default false\n */\n inverted?: boolean;\n /** Additional CSS class names. */\n className?: string;\n}\n\n// Merge own props with HTML div attributes\nexport type MarkLockupProps = MarkLockupOwnProps &\n Omit<ComponentPropsWithRef<'div'>, keyof MarkLockupOwnProps>;\n\n\n/**\n * MarkLockup — SalesMind AI brand mark + wordmark.\n *\n * Renders an inline SVG ellipse mark (aurora-pink → aurora-gold gradient)\n * alongside the \"SalesMind AI\" wordmark in Anton (--font-family-display).\n *\n * @example\n * <MarkLockup />\n * <MarkLockup size=\"lg\" inverted />\n */\nexport const MarkLockup = forwardRef<HTMLDivElement, MarkLockupProps>(\n ({ size = 'md', inverted = false, className, ...props }, ref) => {\n const gradientId = `aurora-mark-gradient-${size}`;\n\n return (\n <div\n ref={ref}\n className={clsx(\n 'ds-mark-lockup',\n `ds-mark-lockup--${size}`,\n inverted && 'ds-mark-lockup--inverted',\n className,\n )}\n {...props}\n >\n <MarkSvg size={size} gradientId={gradientId} className=\"ds-mark-lockup__mark\" />\n {/* Wordmark */}\n <span className=\"ds-mark-lockup__wordmark\">SalesMind AI</span>\n </div>\n );\n },\n);\n\nMarkLockup.displayName = 'MarkLockup';\n","/**\n * _markSvg — internal shared SVG ellipse mark.\n *\n * Single source of truth for the SalesMind AI aurora ellipse mark.\n * Used by MarkLockup and Logo to avoid duplication.\n *\n * @internal — not exported from the barrel; import via relative path only.\n */\n\nexport const MARK_SIZES = {\n sm: 20,\n md: 28,\n lg: 40,\n} as const;\n\nexport type MarkSize = keyof typeof MARK_SIZES;\n\nexport interface MarkSvgProps {\n size: MarkSize;\n /** Unique SVG gradient id — caller is responsible for uniqueness in the page. */\n gradientId: string;\n /** Gradient start colour (stop 0%). Defaults to aurora-pink-raw. */\n stopStart?: string;\n /** Gradient end colour (stop 100%). Defaults to aurora-gold-raw. */\n stopEnd?: string;\n className?: string;\n}\n\n/**\n * MarkSvg — the aurora ellipse SVG mark with a configurable linear gradient.\n */\nexport function MarkSvg({\n size,\n gradientId,\n stopStart = 'var(--aurora-pink-raw)',\n stopEnd = 'var(--aurora-gold-raw)',\n className,\n}: MarkSvgProps) {\n const markSize = MARK_SIZES[size];\n return (\n <svg\n className={className}\n width={markSize}\n height={markSize}\n viewBox=\"0 0 40 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <defs>\n <linearGradient id={gradientId} x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\">\n <stop offset=\"0%\" stopColor={stopStart} />\n <stop offset=\"100%\" stopColor={stopEnd} />\n </linearGradient>\n </defs>\n {/* Ellipse mark — aurora-pink to aurora-gold diagonal */}\n <ellipse\n cx=\"20\"\n cy=\"20\"\n rx=\"18\"\n ry=\"14\"\n fill={`url(#${gradientId})`}\n transform=\"rotate(-20 20 20)\"\n />\n </svg>\n );\n}\n","import { forwardRef } from 'react';\nimport type { HTMLAttributes } from 'react';\nimport clsx from 'clsx';\nimport { MarkSvg } from '../MarkLockup/_markSvg';\nimport './Logo.css';\n\nexport type LogoVariant = 'mark-only' | 'wordmark-only' | 'lockup';\nexport type LogoTone = 'aurora' | 'mono-light' | 'mono-dark';\nexport type LogoSize = 'sm' | 'md' | 'lg';\n\nexport interface LogoOwnProps {\n /**\n * Visual variant.\n * - `'lockup'` — mark + wordmark side by side (default)\n * - `'mark-only'` — aurora ellipse mark alone\n * - `'wordmark-only'` — \"SalesMind AI\" text alone\n * @default 'lockup'\n */\n variant?: LogoVariant;\n /**\n * Colour tone for surface adaptation.\n * - `'aurora'` — coloured aurora gradient mark, dark wordmark (default)\n * - `'mono-light'` — white mark + white wordmark (for dark/coloured backgrounds)\n * - `'mono-dark'` — dark-tone mark + dark wordmark (for light backgrounds)\n * @default 'aurora'\n */\n tone?: LogoTone;\n /**\n * Size scale.\n * - `'sm'` = 20px mark, 14px wordmark\n * - `'md'` = 28px mark, 16px wordmark (default)\n * - `'lg'` = 40px mark, 18px wordmark\n * @default 'md'\n */\n size?: LogoSize;\n /** Additional CSS class names. */\n className?: string;\n}\n\nexport type LogoProps = LogoOwnProps &\n Omit<HTMLAttributes<HTMLDivElement>, 'children' | keyof LogoOwnProps>;\n\nconst MARK_COLORS: Record<LogoTone, { stopStart: string; stopEnd: string }> = {\n aurora: {\n stopStart: 'var(--aurora-pink-raw)',\n stopEnd: 'var(--aurora-gold-raw)',\n },\n 'mono-light': {\n stopStart: 'rgba(255, 255, 255, 0.95)',\n stopEnd: 'rgba(255, 255, 255, 0.75)',\n },\n 'mono-dark': {\n stopStart: 'var(--text-primary)',\n stopEnd: 'var(--aurora-plum-raw)',\n },\n};\n\n/**\n * Logo — SalesMind AI brand identity component.\n *\n * Composes the aurora ellipse mark and/or \"SalesMind AI\" wordmark.\n * Uses the same mark SVG as MarkLockup (single source of truth).\n *\n * @example\n * <Logo />\n * <Logo variant=\"mark-only\" size=\"lg\" />\n * <Logo variant=\"wordmark-only\" tone=\"mono-light\" />\n */\nexport const Logo = forwardRef<HTMLDivElement, LogoProps>(\n ({ variant = 'lockup', tone = 'aurora', size = 'md', className, ...props }, ref) => {\n const gradientId = `logo-mark-gradient-${size}-${tone}`;\n const colors = MARK_COLORS[tone];\n const showMark = variant === 'lockup' || variant === 'mark-only';\n const showWordmark = variant === 'lockup' || variant === 'wordmark-only';\n\n return (\n <div\n ref={ref}\n className={clsx(\n 'ds-logo',\n `ds-logo--${variant}`,\n `ds-logo--tone-${tone}`,\n `ds-logo--${size}`,\n className,\n )}\n {...props}\n >\n {showMark && (\n <MarkSvg\n size={size}\n gradientId={gradientId}\n stopStart={colors.stopStart}\n stopEnd={colors.stopEnd}\n className=\"ds-logo__mark\"\n />\n )}\n {showWordmark && (\n <span className=\"ds-logo__wordmark\">SalesMind AI</span>\n )}\n </div>\n );\n },\n);\n\nLogo.displayName = 'Logo';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './FlowchartBadge.css';\n\nexport interface FlowchartBadgeProps extends React.ComponentPropsWithoutRef<'div'> {\n icon?: React.ReactNode;\n color?: 'default' | 'accent' | 'success' | 'warning';\n size?: 'sm' | 'md';\n}\n\nexport const FlowchartBadge = React.forwardRef<HTMLDivElement, FlowchartBadgeProps>(\n ({ className, icon, color = 'default', size = 'md', children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={clsx('ds-flowchart-badge', `ds-flowchart-badge--${color}`, `ds-flowchart-badge--${size}`, className)}\n {...props}\n >\n {icon}\n {children}\n </div>\n );\n },\n);\n\nFlowchartBadge.displayName = 'FlowchartBadge';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './FlowchartConnector.css';\n\nexport interface FlowchartConnectorProps extends React.ComponentPropsWithoutRef<'div'> {\n direction?: 'down' | 'up';\n showArrow?: boolean;\n showJunction?: boolean;\n length?: 'sm' | 'md' | 'lg';\n}\n\nexport const FlowchartConnector = React.forwardRef<HTMLDivElement, FlowchartConnectorProps>(\n (\n {\n className,\n direction = 'down',\n showArrow = true,\n showJunction = false,\n length = 'md',\n ...props\n },\n ref,\n ) => {\n const classes = clsx(\n 'ds-flowchart-connector',\n `ds-flowchart-connector--${direction}`,\n `ds-flowchart-connector--${length}`,\n showArrow && 'ds-flowchart-connector--arrow',\n showJunction && 'ds-flowchart-connector--junction',\n className,\n );\n\n return <div ref={ref} className={classes} {...props} aria-hidden=\"true\" />;\n },\n);\n\nFlowchartConnector.displayName = 'FlowchartConnector';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './FlowchartCard.css';\n\n/* ============================================================================\n FLOWCHART CARD — Compound component for flowchart step cards\n ============================================================================ */\n\nexport interface FlowchartCardProps extends React.ComponentPropsWithoutRef<'div'> {\n /** Highlights the card as the currently active step */\n active?: boolean;\n /** Visual density variant */\n variant?: 'default' | 'compact';\n}\n\nexport const FlowchartCard = React.forwardRef<HTMLDivElement, FlowchartCardProps>(\n ({ className, active, variant, ...props }, ref) => (\n <div\n ref={ref}\n className={clsx(\n 'ds-flowchart-card',\n active && 'ds-flowchart-card--active',\n variant === 'compact' && 'ds-flowchart-card--compact',\n className,\n )}\n {...props}\n />\n ),\n);\nFlowchartCard.displayName = 'FlowchartCard';\n\nexport const FlowchartCardHeader = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<'div'>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={clsx('ds-flowchart-card__header', className)} {...props} />\n));\nFlowchartCardHeader.displayName = 'FlowchartCardHeader';\n\nexport const FlowchartCardTitle = React.forwardRef<\n HTMLHeadingElement,\n React.ComponentPropsWithoutRef<'h3'>\n>(({ className, ...props }, ref) => (\n <h3 ref={ref} className={clsx('ds-flowchart-card__title', className)} {...props} />\n));\nFlowchartCardTitle.displayName = 'FlowchartCardTitle';\n\nexport const FlowchartCardContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<'div'>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={clsx('ds-flowchart-card__content', className)} {...props} />\n));\nFlowchartCardContent.displayName = 'FlowchartCardContent';\n"]}
1
+ {"version":3,"sources":["../src/components/GradientText/GradientText.tsx","../src/components/StatusBadge/StatusBadge.tsx","../src/components/Chip/Chip.tsx","../src/components/LeadNotification/LeadNotification.tsx","../src/components/MarkLockup/MarkLockup.tsx","../src/components/MarkLockup/_markSvg.tsx","../src/components/Logo/Logo.tsx","../src/components/FlowchartBadge/FlowchartBadge.tsx","../src/components/FlowchartConnector/FlowchartConnector.tsx","../src/components/FlowchartCard/FlowchartCard.tsx"],"names":["React","clsx","jsx","forwardRef","jsxs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAgB,kBAAkB;AAClC,OAAO,UAAU;AAgBX;AAHN,IAAM,eAAe;AAAA,EACnB,CAAC,EAAE,WAAW,SAAS,IAAI,MAAM,QAAQ,WAAW,UAAU,GAAG,MAAM,GAAG,QAAQ;AAChF,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW,KAAK,oBAAoB,qBAAqB,QAAQ,IAAI,SAAS;AAAA,QAC7E,GAAG;AAAA,QAEH;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AACA,aAAa,cAAc;;;AC3B3B,OAAOA,YAAW;AAClB,OAAOC,WAAU;AA+CX,SAUU,OAAAC,MAVV;AAHC,IAAM,cAAcF,OAAM;AAAA,EAC/B,CAAC,EAAE,WAAW,OAAO,WAAW,MAAM,OAAO,UAAU,GAAG,MAAM,GAAG,QAAQ;AACzE,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAWC;AAAA,UACT;AAAA,UACA,oBAAoB,IAAI;AAAA,UACxB,OAAO;AAAA,UACP;AAAA,QACF;AAAA,QACC,GAAG;AAAA,QAEH;AAAA,iBAAO,gBAAAC,KAAC,UAAK,WAAU,wBAAuB,eAAY,QAAO;AAAA,UACjE;AAAA;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AAEA,YAAY,cAAc;;;ACjE1B,SAAS,cAAAC,mBAAkB;AAC3B,OAAOF,WAAU;AAmEX,SAWE,OAAAC,MAXF,QAAAE,aAAA;AAbC,IAAM,OAAOD;AAAA,EAClB,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP,WAAW;AAAA,IACX,OAAO;AAAA,IACP;AAAA,EACF,GACA,QACG;AACH,WACE,gBAAAC;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAWH;AAAA,UACT;AAAA,UACA,YAAY,IAAI;AAAA,UAChB,YAAY,IAAI;AAAA,UAChB,YAAY;AAAA,UACZ;AAAA,QACF;AAAA,QACA,iBAAe,YAAY;AAAA,QAE3B;AAAA,0BAAAC,KAAC,UAAK,WAAU,kBAAkB,iBAAM;AAAA,UACvC,YACC,gBAAAA;AAAA,YAAC;AAAA;AAAA,cACC,MAAK;AAAA,cACL,WAAU;AAAA,cACV,SAAS,WAAW,SAAY;AAAA,cAChC;AAAA,cACA,cAAY,UAAU,KAAK;AAAA,cAC5B;AAAA;AAAA,UAED;AAAA;AAAA;AAAA,IAEJ;AAAA,EAEJ;AACF;AAEA,KAAK,cAAc;;;AChGnB,SAAS,cAAAC,mBAAkB;AAC3B,OAAOF,WAAU;AA+GP,gBAAAC,MAMF,QAAAE,aANE;AApDV,IAAM,OAAO,MAAM;AAAC;AAEpB,IAAM,gBAGF;AAAA,EACF,SAAS,EAAE,OAAO,gBAAgB,MAAM,iBAAiB;AAAA,EACzD,QAAQ,EAAE,OAAO,gBAAgB,MAAM,iBAAiB;AAAA,EACxD,SAAS,EAAE,OAAO,kBAAkB,MAAM,UAAU;AACtD;AAkBO,IAAM,mBAAmBD;AAAA,EAC9B,CACE;AAAA,IACE,OAAO;AAAA,IACP,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,gBAAgB,EAAE,OAAO,UAAU,SAAS,KAAK;AAAA,IACjD,kBAAkB,EAAE,OAAO,aAAa,SAAS,KAAK;AAAA,IACtD;AAAA,EACF,GACA,QACG;AACH,UAAM,EAAE,OAAO,aAAa,KAAK,IAAI,cAAc,MAAM;AAEzD,WACE,gBAAAC;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,MAAM;AAAA,QACN,QAAM;AAAA,QACN,QAAO;AAAA,QACP,WAAWH,MAAK,wBAAwB,SAAS;AAAA,QAGjD;AAAA,0BAAAC,KAAC,SAAI,WAAU,gCACb,0BAAAA,KAAC,eAAY,MAAY,KAAG,MACzB,uBACH,GACF;AAAA,UAGA,gBAAAE,MAAC,QAAG,WAAU,kCACZ;AAAA,4BAAAF,KAAC,UAAK,WAAU,8BAA8B,gBAAK;AAAA,YAClD;AAAA,YACD,gBAAAA,KAAC,UAAK,WAAU,iCAAiC,mBAAQ;AAAA,aAC3D;AAAA,UAGA,gBAAAE,MAAC,gBAAW,WAAU,+BAA8B;AAAA;AAAA,YAC1C;AAAA,YAAM;AAAA,aAChB;AAAA,UAGA,gBAAAA,MAAC,SAAI,WAAU,iCACb;AAAA,4BAAAF;AAAA,cAAC;AAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,MAAK;AAAA,gBACL,SAAS,cAAc;AAAA,gBAEtB,wBAAc;AAAA;AAAA,YACjB;AAAA,YACA,gBAAAA;AAAA,cAAC;AAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,MAAK;AAAA,gBACL,SAAS,gBAAgB;AAAA,gBAExB,0BAAgB;AAAA;AAAA,YACnB;AAAA,aACF;AAAA;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AAEA,iBAAiB,cAAc;;;ACvJ/B,SAAS,cAAAC,mBAAkB;AAE3B,OAAOF,WAAU;;;ACiDT,SACE,OAAAC,MADF,QAAAE,aAAA;AA1CD,IAAM,aAAa;AAAA,EACxB,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAkBO,SAAS,QAAQ;AAAA,EACtB;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ,UAAU;AAAA,EACV;AACF,GAAiB;AACf,QAAM,WAAW,WAAW,IAAI;AAChC,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA,MACN,eAAY;AAAA,MACZ,WAAU;AAAA,MAEV;AAAA,wBAAAF,KAAC,UACC,0BAAAE,MAAC,oBAAe,IAAI,YAAY,IAAG,MAAK,IAAG,MAAK,IAAG,QAAO,IAAG,QAC3D;AAAA,0BAAAF,KAAC,UAAK,QAAO,MAAK,WAAW,WAAW;AAAA,UACxC,gBAAAA,KAAC,UAAK,QAAO,QAAO,WAAW,SAAS;AAAA,WAC1C,GACF;AAAA,QAEA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,IAAG;AAAA,YACH,IAAG;AAAA,YACH,IAAG;AAAA,YACH,IAAG;AAAA,YACH,MAAM,QAAQ,UAAU;AAAA,YACxB,WAAU;AAAA;AAAA,QACZ;AAAA;AAAA;AAAA,EACF;AAEJ;;;ADtBM,SAUE,OAAAA,MAVF,QAAAE,aAAA;AALC,IAAM,aAAaD;AAAA,EACxB,CAAC,EAAE,OAAO,MAAM,WAAW,OAAO,WAAW,GAAG,MAAM,GAAG,QAAQ;AAC/D,UAAM,aAAa,wBAAwB,IAAI;AAE/C,WACE,gBAAAC;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAWH;AAAA,UACT;AAAA,UACA,mBAAmB,IAAI;AAAA,UACvB,YAAY;AAAA,UACZ;AAAA,QACF;AAAA,QACC,GAAG;AAAA,QAEJ;AAAA,0BAAAC,KAAC,WAAQ,MAAY,YAAwB,WAAU,wBAAuB;AAAA,UAE9E,gBAAAA,KAAC,UAAK,WAAU,4BAA2B,0BAAY;AAAA;AAAA;AAAA,IACzD;AAAA,EAEJ;AACF;AAEA,WAAW,cAAc;;;AE/DzB,SAAS,cAAAC,mBAAkB;AAE3B,OAAOF,WAAU;AA0EX,SAYI,OAAAC,MAZJ,QAAAE,aAAA;AAlCN,IAAM,cAAwE;AAAA,EAC5E,QAAQ;AAAA,IACN,WAAW;AAAA,IACX,SAAS;AAAA,EACX;AAAA,EACA,cAAc;AAAA,IACZ,WAAW;AAAA,IACX,SAAS;AAAA,EACX;AAAA,EACA,aAAa;AAAA,IACX,WAAW;AAAA,IACX,SAAS;AAAA,EACX;AACF;AAaO,IAAM,OAAOD;AAAA,EAClB,CAAC,EAAE,UAAU,UAAU,OAAO,UAAU,OAAO,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ;AAClF,UAAM,aAAa,sBAAsB,IAAI,IAAI,IAAI;AACrD,UAAM,SAAS,YAAY,IAAI;AAC/B,UAAM,WAAW,YAAY,YAAY,YAAY;AACrD,UAAM,eAAe,YAAY,YAAY,YAAY;AAEzD,WACE,gBAAAC;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAWH;AAAA,UACT;AAAA,UACA,YAAY,OAAO;AAAA,UACnB,iBAAiB,IAAI;AAAA,UACrB,YAAY,IAAI;AAAA,UAChB;AAAA,QACF;AAAA,QACC,GAAG;AAAA,QAEH;AAAA,sBACC,gBAAAC;AAAA,YAAC;AAAA;AAAA,cACC;AAAA,cACA;AAAA,cACA,WAAW,OAAO;AAAA,cAClB,SAAS,OAAO;AAAA,cAChB,WAAU;AAAA;AAAA,UACZ;AAAA,UAED,gBACC,gBAAAA,KAAC,UAAK,WAAU,qBAAoB,0BAAY;AAAA;AAAA;AAAA,IAEpD;AAAA,EAEJ;AACF;AAEA,KAAK,cAAc;;;ACxGnB,OAAOF,YAAW;AAClB,OAAOC,WAAU;AAYX,iBAAAG,aAAA;AAHC,IAAM,iBAAiBJ,OAAM;AAAA,EAClC,CAAC,EAAE,WAAW,MAAM,QAAQ,WAAW,OAAO,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ;AAChF,WACE,gBAAAI;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAWH,MAAK,sBAAsB,uBAAuB,KAAK,IAAI,uBAAuB,IAAI,IAAI,SAAS;AAAA,QAC7G,GAAG;AAAA,QAEH;AAAA;AAAA,UACA;AAAA;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AAEA,eAAe,cAAc;;;ACzB7B,OAAOD,YAAW;AAClB,OAAOC,WAAU;AA+BN,gBAAAC,YAAA;AArBJ,IAAM,qBAAqBF,OAAM;AAAA,EACtC,CACE;AAAA,IACE;AAAA,IACA,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,GAAG;AAAA,EACL,GACA,QACG;AACH,UAAM,UAAUC;AAAA,MACd;AAAA,MACA,2BAA2B,SAAS;AAAA,MACpC,2BAA2B,MAAM;AAAA,MACjC,aAAa;AAAA,MACb,gBAAgB;AAAA,MAChB;AAAA,IACF;AAEA,WAAO,gBAAAC,KAAC,SAAI,KAAU,WAAW,SAAU,GAAG,OAAO,eAAY,QAAO;AAAA,EAC1E;AACF;AAEA,mBAAmB,cAAc;;;ACpCjC,OAAOF,YAAW;AAClB,OAAOC,WAAU;AAgBb,gBAAAC,YAAA;AAFG,IAAM,gBAAgBF,OAAM;AAAA,EACjC,CAAC,EAAE,WAAW,QAAQ,SAAS,GAAG,MAAM,GAAG,QACzC,gBAAAE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAWD;AAAA,QACT;AAAA,QACA,UAAU;AAAA,QACV,YAAY,aAAa;AAAA,QACzB;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,cAAc,cAAc;AAErB,IAAM,sBAAsBD,OAAM,WAGvC,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAE,KAAC,SAAI,KAAU,WAAWD,MAAK,6BAA6B,SAAS,GAAI,GAAG,OAAO,CACpF;AACD,oBAAoB,cAAc;AAE3B,IAAM,qBAAqBD,OAAM,WAGtC,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAE,KAAC,QAAG,KAAU,WAAWD,MAAK,4BAA4B,SAAS,GAAI,GAAG,OAAO,CAClF;AACD,mBAAmB,cAAc;AAE1B,IAAM,uBAAuBD,OAAM,WAGxC,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAE,KAAC,SAAI,KAAU,WAAWD,MAAK,8BAA8B,SAAS,GAAI,GAAG,OAAO,CACrF;AACD,qBAAqB,cAAc","sourcesContent":["import React, { forwardRef } from 'react'\nimport clsx from 'clsx'\nimport './GradientText.css'\n\nexport type GradientPreset = 'brand' | 'rainbow' | 'sunset' | 'aurora-pink-gold' | 'aurora-plum-pink' | 'display-headline'\n\nexport interface GradientTextProps extends React.HTMLAttributes<HTMLSpanElement> {\n /** Gradient color preset. Default: 'brand' (SalesMind pink→gold) */\n gradient?: GradientPreset\n /** HTML element tag. Default: 'span' */\n as?: 'span' | 'em' | 'strong' | 'mark'\n children: React.ReactNode\n}\n\nconst GradientText = forwardRef<HTMLSpanElement, GradientTextProps>(\n ({ gradient = 'brand', as: Tag = 'span', className, children, ...props }, ref) => {\n return (\n <Tag\n ref={ref}\n className={clsx('ds-gradient-text', `ds-gradient-text--${gradient}`, className)}\n {...props}\n >\n {children}\n </Tag>\n )\n }\n)\nGradientText.displayName = 'GradientText'\n\nexport { GradientText }\n","import React from 'react';\nimport clsx from 'clsx';\nimport './StatusBadge.css';\n\n/** Semantic tone values shared across Badge, Chip, and StatusBadge. */\nexport type BadgeTone =\n | 'aurora-pink'\n | 'aurora-gold'\n | 'aurora-plum'\n | 'status-success'\n | 'status-warning'\n | 'status-error'\n | 'neutral';\n\nexport interface StatusBadgeProps extends React.HTMLAttributes<HTMLSpanElement> {\n /**\n * Semantic tone — maps to a colour family.\n * - `'aurora-pink'` / `'aurora-gold'` / `'aurora-plum'` — aurora colour tones\n * - `'status-success'` — green; used for \"Lead replied\", positive states\n * - `'status-warning'` — amber; used for \"Pending\", needs-attention states\n * - `'status-error'` — red; used for failure or critical states\n * - `'neutral'` — muted glass, no colour association\n * @default 'neutral'\n */\n tone?: BadgeTone;\n /**\n * When true, renders a small colour dot before the label.\n * Useful for \"online\" or state indicators.\n * @default false\n */\n dot?: boolean;\n}\n\n/**\n * StatusBadge — state indicator with optional dot and tone system.\n *\n * **Semantic distinction:**\n * - `Badge` = static metadata (e.g. \"NEW\", \"BETA\")\n * - `StatusBadge` = dynamic state indicator (success/warning/error/info)\n * - `Chip` = removable selection token\n *\n * @example\n * <StatusBadge tone=\"status-success\" dot>Lead replied</StatusBadge>\n * <StatusBadge tone=\"status-warning\">Pending</StatusBadge>\n */\nexport const StatusBadge = React.forwardRef<HTMLSpanElement, StatusBadgeProps>(\n ({ className, tone = 'neutral', dot = false, children, ...props }, ref) => {\n return (\n <span\n ref={ref}\n className={clsx(\n 'ds-status-badge',\n `ds-status-badge--${tone}`,\n dot && 'ds-status-badge--dot',\n className,\n )}\n {...props}\n >\n {dot && <span className=\"ds-status-badge__dot\" aria-hidden=\"true\" />}\n {children}\n </span>\n );\n },\n);\n\nStatusBadge.displayName = 'StatusBadge';\n","import { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport './Chip.css';\n\nimport type { BadgeTone } from '../StatusBadge/StatusBadge';\n\nexport type { BadgeTone };\n\nexport interface ChipProps {\n /**\n * Display label of the chip.\n * @example 'KEEN: AURORA'\n */\n label: string;\n /**\n * Callback invoked when the dismiss (×) button is clicked.\n * When provided, a dismiss button is rendered.\n */\n onRemove?: () => void;\n /**\n * Semantic tone — maps to a colour family.\n * - `'aurora-pink'` / `'aurora-gold'` / `'aurora-plum'` — aurora palette\n * - `'status-success'` / `'status-warning'` / `'status-error'` — state colours\n * - `'neutral'` — muted glass (default)\n * @default 'neutral'\n */\n tone?: BadgeTone;\n /**\n * When true, the chip is non-interactive and shows reduced opacity.\n * @default false\n */\n disabled?: boolean;\n /**\n * Size variant.\n * - `'sm'` = compact pill, 0.6875rem text\n * - `'md'` = standard pill, 0.75rem text (default)\n * @default 'md'\n */\n size?: 'sm' | 'md';\n /** Additional CSS class names. */\n className?: string;\n}\n\n/**\n * Chip — removable selection token (filter pill).\n *\n * **Semantic distinction:**\n * - `Badge` = static metadata (e.g. \"NEW\", \"BETA\")\n * - `StatusBadge` = dynamic state indicator (success/warning/error)\n * - `Chip` = removable selection token with dismiss action\n *\n * @example\n * <Chip label=\"KEEN: AURORA\" tone=\"aurora-pink\" onRemove={() => remove('aurora')} />\n * <Chip label=\"Glass\" tone=\"neutral\" />\n */\nexport const Chip = forwardRef<HTMLSpanElement, ChipProps>(\n (\n {\n label,\n onRemove,\n tone = 'neutral',\n disabled = false,\n size = 'md',\n className,\n },\n ref,\n ) => {\n return (\n <span\n ref={ref}\n className={clsx(\n 'ds-chip',\n `ds-chip--${tone}`,\n `ds-chip--${size}`,\n disabled && 'ds-chip--disabled',\n className,\n )}\n aria-disabled={disabled || undefined}\n >\n <span className=\"ds-chip__label\">{label}</span>\n {onRemove && (\n <button\n type=\"button\"\n className=\"ds-chip__dismiss\"\n onClick={disabled ? undefined : onRemove}\n disabled={disabled}\n aria-label={`Remove ${label}`}\n >\n ×\n </button>\n )}\n </span>\n );\n },\n);\n\nChip.displayName = 'Chip';\n","import { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { Card } from '../Card/Card';\nimport { StatusBadge } from '../StatusBadge/StatusBadge';\nimport { Button } from '../Button/Button';\nimport './LeadNotification.css';\n\n/* ============================================================================\n D7 — Fictional brands ONLY in demo data:\n Acme, Northwind, Examplco, Initech, Globex, Stark\n NEVER: Vercel, Stripe, Linear, Notion, Airbnb\n ============================================================================ */\n\nexport type LeadStatus = 'replied' | 'opened' | 'pending';\n\nexport interface LeadAction {\n /** Button label. */\n label: string;\n /** Callback invoked on click. */\n onClick: () => void;\n}\n\nexport interface LeadNotificationProps {\n /**\n * Lead first + last name.\n * @example 'Sarah Patel'\n */\n name?: string;\n /**\n * Lead company name. Use fictional brands only (D7: Acme, Northwind, Examplco, etc.)\n * @example 'Acme'\n */\n company?: string;\n /**\n * Quoted excerpt from the lead's reply.\n * @example 'This looks promising — can we hop on a 15-minute call this week?'\n */\n quote?: string;\n /**\n * Current lead status — determines StatusBadge tone and label.\n * - `'replied'` → success tone (\"Lead replied\")\n * - `'opened'` → warning tone (\"Email opened\")\n * - `'pending'` → neutral tone (\"Awaiting reply\")\n * @default 'replied'\n */\n status?: LeadStatus;\n /**\n * Primary CTA button (accept, schedule, etc.).\n * @default { label: 'Accept', onClick: noop }\n */\n primaryAction?: LeadAction;\n /**\n * Secondary CTA button (snooze, dismiss, etc.).\n * @default { label: 'Snooze 1h', onClick: noop }\n */\n secondaryAction?: LeadAction;\n /** Additional CSS class names. */\n className?: string;\n}\n\nconst noop = () => {};\n\nconst STATUS_CONFIG: Record<\n LeadStatus,\n { label: string; tone: 'status-success' | 'status-warning' | 'neutral' }\n> = {\n replied: { label: 'Lead replied', tone: 'status-success' },\n opened: { label: 'Email opened', tone: 'status-warning' },\n pending: { label: 'Awaiting reply', tone: 'neutral' },\n};\n\n/**\n * LeadNotification — hero notification card for an active lead reply.\n *\n * Composes Card v2 (tier=1, aurora=true) + StatusBadge + Button v2.\n * Fictional demo brands only (D7): Acme, Northwind, Examplco, Initech, Globex.\n *\n * @example\n * <LeadNotification\n * name=\"Sarah Patel\"\n * company=\"Acme\"\n * quote=\"This looks promising — can we hop on a 15-minute call?\"\n * status=\"replied\"\n * primaryAction={{ label: 'Accept', onClick: handleAccept }}\n * secondaryAction={{ label: 'Snooze 1h', onClick: handleSnooze }}\n * />\n */\nexport const LeadNotification = forwardRef<HTMLDivElement, LeadNotificationProps>(\n (\n {\n name = 'Sarah Patel',\n company = 'Acme',\n quote = 'This looks promising — can we hop on a 15-minute call this week?',\n status = 'replied',\n primaryAction = { label: 'Accept', onClick: noop },\n secondaryAction = { label: 'Snooze 1h', onClick: noop },\n className,\n },\n ref,\n ) => {\n const { label: statusLabel, tone } = STATUS_CONFIG[status];\n\n return (\n <Card\n ref={ref}\n tier={1}\n aurora\n radius=\"card\"\n className={clsx('ds-lead-notification', className)}\n >\n {/* Status indicator row */}\n <div className=\"ds-lead-notification__status\">\n <StatusBadge tone={tone} dot>\n {statusLabel}\n </StatusBadge>\n </div>\n\n {/* Headline */}\n <h3 className=\"ds-lead-notification__headline\">\n <span className=\"ds-lead-notification__name\">{name}</span>\n {' from '}\n <span className=\"ds-lead-notification__company\">{company}</span>\n </h3>\n\n {/* Quote */}\n <blockquote className=\"ds-lead-notification__quote\">\n &ldquo;{quote}&rdquo;\n </blockquote>\n\n {/* Actions */}\n <div className=\"ds-lead-notification__actions\">\n <Button\n variant=\"primary\"\n size=\"sm\"\n onClick={primaryAction.onClick}\n >\n {primaryAction.label}\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={secondaryAction.onClick}\n >\n {secondaryAction.label}\n </Button>\n </div>\n </Card>\n );\n },\n);\n\nLeadNotification.displayName = 'LeadNotification';\n","import { forwardRef } from 'react';\nimport type { ComponentPropsWithRef } from 'react';\nimport clsx from 'clsx';\nimport { MarkSvg, MARK_SIZES } from './_markSvg';\nimport './MarkLockup.css';\n\nexport interface MarkLockupOwnProps {\n /**\n * Size scale of the lockup.\n * - `'sm'` = 20px ellipse mark, 14px wordmark\n * - `'md'` = 28px ellipse mark, 16px wordmark (default)\n * - `'lg'` = 40px ellipse mark, 18px wordmark\n * @default 'md'\n */\n size?: keyof typeof MARK_SIZES;\n /**\n * When true, renders the wordmark in light colour (--text-primary at full opacity).\n * Use on aurora-gradient or dark backgrounds.\n * @default false\n */\n inverted?: boolean;\n /** Additional CSS class names. */\n className?: string;\n}\n\n// Merge own props with HTML div attributes\nexport type MarkLockupProps = MarkLockupOwnProps &\n Omit<ComponentPropsWithRef<'div'>, keyof MarkLockupOwnProps>;\n\n\n/**\n * MarkLockup — SalesMind AI brand mark + wordmark.\n *\n * Renders an inline SVG ellipse mark (aurora-pink → aurora-gold gradient)\n * alongside the \"SalesMind AI\" wordmark in Anton (--font-family-display).\n *\n * @example\n * <MarkLockup />\n * <MarkLockup size=\"lg\" inverted />\n */\nexport const MarkLockup = forwardRef<HTMLDivElement, MarkLockupProps>(\n ({ size = 'md', inverted = false, className, ...props }, ref) => {\n const gradientId = `aurora-mark-gradient-${size}`;\n\n return (\n <div\n ref={ref}\n className={clsx(\n 'ds-mark-lockup',\n `ds-mark-lockup--${size}`,\n inverted && 'ds-mark-lockup--inverted',\n className,\n )}\n {...props}\n >\n <MarkSvg size={size} gradientId={gradientId} className=\"ds-mark-lockup__mark\" />\n {/* Wordmark */}\n <span className=\"ds-mark-lockup__wordmark\">SalesMind AI</span>\n </div>\n );\n },\n);\n\nMarkLockup.displayName = 'MarkLockup';\n","/**\n * _markSvg — internal shared SVG ellipse mark.\n *\n * Single source of truth for the SalesMind AI aurora ellipse mark.\n * Used by MarkLockup and Logo to avoid duplication.\n *\n * @internal — not exported from the barrel; import via relative path only.\n */\n\nexport const MARK_SIZES = {\n sm: 20,\n md: 28,\n lg: 40,\n} as const;\n\nexport type MarkSize = keyof typeof MARK_SIZES;\n\nexport interface MarkSvgProps {\n size: MarkSize;\n /** Unique SVG gradient id — caller is responsible for uniqueness in the page. */\n gradientId: string;\n /** Gradient start colour (stop 0%). Defaults to aurora-pink-raw. */\n stopStart?: string;\n /** Gradient end colour (stop 100%). Defaults to aurora-gold-raw. */\n stopEnd?: string;\n className?: string;\n}\n\n/**\n * MarkSvg — the aurora ellipse SVG mark with a configurable linear gradient.\n */\nexport function MarkSvg({\n size,\n gradientId,\n stopStart = 'var(--aurora-pink-raw)',\n stopEnd = 'var(--aurora-gold-raw)',\n className,\n}: MarkSvgProps) {\n const markSize = MARK_SIZES[size];\n return (\n <svg\n className={className}\n width={markSize}\n height={markSize}\n viewBox=\"0 0 40 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <defs>\n <linearGradient id={gradientId} x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\">\n <stop offset=\"0%\" stopColor={stopStart} />\n <stop offset=\"100%\" stopColor={stopEnd} />\n </linearGradient>\n </defs>\n {/* Ellipse mark — aurora-pink to aurora-gold diagonal */}\n <ellipse\n cx=\"20\"\n cy=\"20\"\n rx=\"18\"\n ry=\"14\"\n fill={`url(#${gradientId})`}\n transform=\"rotate(-20 20 20)\"\n />\n </svg>\n );\n}\n","import { forwardRef } from 'react';\nimport type { HTMLAttributes } from 'react';\nimport clsx from 'clsx';\nimport { MarkSvg } from '../MarkLockup/_markSvg';\nimport './Logo.css';\n\nexport type LogoVariant = 'mark-only' | 'wordmark-only' | 'lockup';\nexport type LogoTone = 'aurora' | 'mono-light' | 'mono-dark';\nexport type LogoSize = 'sm' | 'md' | 'lg';\n\nexport interface LogoOwnProps {\n /**\n * Visual variant.\n * - `'lockup'` — mark + wordmark side by side (default)\n * - `'mark-only'` — aurora ellipse mark alone\n * - `'wordmark-only'` — \"SalesMind AI\" text alone\n * @default 'lockup'\n */\n variant?: LogoVariant;\n /**\n * Colour tone for surface adaptation.\n * - `'aurora'` — coloured aurora gradient mark, dark wordmark (default)\n * - `'mono-light'` — white mark + white wordmark (for dark/coloured backgrounds)\n * - `'mono-dark'` — dark-tone mark + dark wordmark (for light backgrounds)\n * @default 'aurora'\n */\n tone?: LogoTone;\n /**\n * Size scale.\n * - `'sm'` = 20px mark, 14px wordmark\n * - `'md'` = 28px mark, 16px wordmark (default)\n * - `'lg'` = 40px mark, 18px wordmark\n * @default 'md'\n */\n size?: LogoSize;\n /** Additional CSS class names. */\n className?: string;\n}\n\nexport type LogoProps = LogoOwnProps &\n Omit<HTMLAttributes<HTMLDivElement>, 'children' | keyof LogoOwnProps>;\n\nconst MARK_COLORS: Record<LogoTone, { stopStart: string; stopEnd: string }> = {\n aurora: {\n stopStart: 'var(--aurora-pink-raw)',\n stopEnd: 'var(--aurora-gold-raw)',\n },\n 'mono-light': {\n stopStart: 'rgba(255, 255, 255, 0.95)',\n stopEnd: 'rgba(255, 255, 255, 0.75)',\n },\n 'mono-dark': {\n stopStart: 'var(--text-primary)',\n stopEnd: 'var(--aurora-plum-raw)',\n },\n};\n\n/**\n * Logo — SalesMind AI brand identity component.\n *\n * Composes the aurora ellipse mark and/or \"SalesMind AI\" wordmark.\n * Uses the same mark SVG as MarkLockup (single source of truth).\n *\n * @example\n * <Logo />\n * <Logo variant=\"mark-only\" size=\"lg\" />\n * <Logo variant=\"wordmark-only\" tone=\"mono-light\" />\n */\nexport const Logo = forwardRef<HTMLDivElement, LogoProps>(\n ({ variant = 'lockup', tone = 'aurora', size = 'md', className, ...props }, ref) => {\n const gradientId = `logo-mark-gradient-${size}-${tone}`;\n const colors = MARK_COLORS[tone];\n const showMark = variant === 'lockup' || variant === 'mark-only';\n const showWordmark = variant === 'lockup' || variant === 'wordmark-only';\n\n return (\n <div\n ref={ref}\n className={clsx(\n 'ds-logo',\n `ds-logo--${variant}`,\n `ds-logo--tone-${tone}`,\n `ds-logo--${size}`,\n className,\n )}\n {...props}\n >\n {showMark && (\n <MarkSvg\n size={size}\n gradientId={gradientId}\n stopStart={colors.stopStart}\n stopEnd={colors.stopEnd}\n className=\"ds-logo__mark\"\n />\n )}\n {showWordmark && (\n <span className=\"ds-logo__wordmark\">SalesMind AI</span>\n )}\n </div>\n );\n },\n);\n\nLogo.displayName = 'Logo';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './FlowchartBadge.css';\n\nexport interface FlowchartBadgeProps extends React.ComponentPropsWithoutRef<'div'> {\n icon?: React.ReactNode;\n color?: 'default' | 'accent' | 'success' | 'warning';\n size?: 'sm' | 'md';\n}\n\nexport const FlowchartBadge = React.forwardRef<HTMLDivElement, FlowchartBadgeProps>(\n ({ className, icon, color = 'default', size = 'md', children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={clsx('ds-flowchart-badge', `ds-flowchart-badge--${color}`, `ds-flowchart-badge--${size}`, className)}\n {...props}\n >\n {icon}\n {children}\n </div>\n );\n },\n);\n\nFlowchartBadge.displayName = 'FlowchartBadge';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './FlowchartConnector.css';\n\nexport interface FlowchartConnectorProps extends React.ComponentPropsWithoutRef<'div'> {\n direction?: 'down' | 'up';\n showArrow?: boolean;\n showJunction?: boolean;\n length?: 'sm' | 'md' | 'lg';\n}\n\nexport const FlowchartConnector = React.forwardRef<HTMLDivElement, FlowchartConnectorProps>(\n (\n {\n className,\n direction = 'down',\n showArrow = true,\n showJunction = false,\n length = 'md',\n ...props\n },\n ref,\n ) => {\n const classes = clsx(\n 'ds-flowchart-connector',\n `ds-flowchart-connector--${direction}`,\n `ds-flowchart-connector--${length}`,\n showArrow && 'ds-flowchart-connector--arrow',\n showJunction && 'ds-flowchart-connector--junction',\n className,\n );\n\n return <div ref={ref} className={classes} {...props} aria-hidden=\"true\" />;\n },\n);\n\nFlowchartConnector.displayName = 'FlowchartConnector';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './FlowchartCard.css';\n\n/* ============================================================================\n FLOWCHART CARD — Compound component for flowchart step cards\n ============================================================================ */\n\nexport interface FlowchartCardProps extends React.ComponentPropsWithoutRef<'div'> {\n /** Highlights the card as the currently active step */\n active?: boolean;\n /** Visual density variant */\n variant?: 'default' | 'compact';\n}\n\nexport const FlowchartCard = React.forwardRef<HTMLDivElement, FlowchartCardProps>(\n ({ className, active, variant, ...props }, ref) => (\n <div\n ref={ref}\n className={clsx(\n 'ds-flowchart-card',\n active && 'ds-flowchart-card--active',\n variant === 'compact' && 'ds-flowchart-card--compact',\n className,\n )}\n {...props}\n />\n ),\n);\nFlowchartCard.displayName = 'FlowchartCard';\n\nexport const FlowchartCardHeader = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<'div'>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={clsx('ds-flowchart-card__header', className)} {...props} />\n));\nFlowchartCardHeader.displayName = 'FlowchartCardHeader';\n\nexport const FlowchartCardTitle = React.forwardRef<\n HTMLHeadingElement,\n React.ComponentPropsWithoutRef<'h3'>\n>(({ className, ...props }, ref) => (\n <h3 ref={ref} className={clsx('ds-flowchart-card__title', className)} {...props} />\n));\nFlowchartCardTitle.displayName = 'FlowchartCardTitle';\n\nexport const FlowchartCardContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<'div'>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={clsx('ds-flowchart-card__content', className)} {...props} />\n));\nFlowchartCardContent.displayName = 'FlowchartCardContent';\n"]}