arkada-widgets 1.0.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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/shared/config/index.ts","../src/shared/hooks/useTheme.ts","../src/shared/utils/cn.ts","../src/widgets/verify-wallet-button/model/types.ts","../src/widgets/verify-wallet-button/components/icons.tsx","../src/widgets/verify-wallet-button/components/VerifyWalletButton.tsx","../src/shared/api/types.ts","../src/shared/api/client.ts","../src/widgets/wallet-verification-button/hooks/useWalletVerification.ts","../src/widgets/wallet-verification-button/components/WalletVerificationButton.tsx"],"sourcesContent":["// Public React package API for arkada-widgets.\n// Only production-ready widgets are exported here.\n// Internal hooks, API client, and web component wrappers are intentionally excluded.\nexport { WalletVerificationButton } from \"./widgets/wallet-verification-button\";\nexport type { WalletVerificationButtonProps } from \"./widgets/wallet-verification-button\";\nexport { VerifyWalletVariants } from \"./widgets/verify-wallet-button\";\nexport type { VerifyWalletVariant, VerifyWalletState } from \"./widgets/verify-wallet-button\";\n","export type WidgetTheme = \"light\" | \"dark\";\nexport type WidgetSize = \"sm\" | \"lg\";\n\nexport const DEFAULT_THEME: WidgetTheme = \"dark\";\nexport const DEFAULT_SIZE: WidgetSize = \"lg\";\n\nexport const ARKADA_PUBLIC_API_URL = \"https://app-api.arkada.gg\";\n// export const ARKADA_PUBLIC_API_URL = \"http://localhost:3001\";\n","import { useEffect, useRef } from \"react\";\nimport type { WidgetTheme } from \"@/shared/config\";\nimport { DEFAULT_THEME } from \"@/shared/config\";\n\nexport function useTheme(theme: WidgetTheme = DEFAULT_THEME) {\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (ref.current) {\n ref.current.setAttribute(\"data-theme\", theme);\n }\n }, [theme]);\n\n return ref;\n}\n","import { clsx, type ClassValue } from \"clsx\";\n\nexport function cn(...inputs: ClassValue[]) {\n return clsx(inputs);\n}\n","/**\n * Verify Wallet Button — Variant & State Types\n *\n * Naming convention:\n * variant = structural layout (how elements are arranged)\n * theme = dark | light (inherited from parent context)\n * state = verified | unverified (wallet verification status)\n */\n\nexport const VerifyWalletVariants = {\n /** Chain icon group + gradient text, gradient border */\n COMPACT: \"compact\",\n /** Toggle icon + gradient text, flat solid bg */\n COMPACT_MINIMAL: \"compact-minimal\",\n /** Full gradient background — premium look */\n COMPACT_GRADIENT: \"compact-gradient\",\n /** Icon + full-width CTA gradient bar */\n BANNER: \"banner\",\n /** 60px circle overlapping a solid-color bar, gradient text */\n FLOATING: \"floating\",\n /** 60px circle overlapping a gradient CTA bar */\n FLOATING_GRADIENT: \"floating-gradient\",\n /** Gradient icon zone left + text right */\n PILL: \"pill\",\n /** Full-width gradient with chevrons */\n PILL_WIDE: \"pill-wide\",\n /** Pill with status-colored border */\n OUTLINED: \"outlined\",\n /** Full gradient bar inside status border */\n OUTLINED_WIDE: \"outlined-wide\",\n} as const;\n\nexport type VerifyWalletVariant =\n (typeof VerifyWalletVariants)[keyof typeof VerifyWalletVariants];\n\nexport type VerifyWalletState = \"verified\" | \"unverified\";\n","import type { SVGProps } from \"react\";\n\ntype IconProps = SVGProps<SVGSVGElement>;\n\nexport function ChainGroupIcon({\n verified = false,\n ...props\n}: IconProps & { verified?: boolean }) {\n return (\n <svg\n viewBox=\"0 0 72 48\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n {/* Left circle — red-to-blue gradient with triangle logo */}\n <circle cx={20} cy={24} r={20} fill=\"url(#cg-left-grad)\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M20.5 13L34 31H7L20.5 13ZM14.4384 27.2704H26.5616L20.5 19.1882L14.4384 27.2704Z\"\n fill=\"white\"\n />\n\n {/* Right circle — gray (unverified) or green (verified), with drop shadow */}\n <g filter=\"url(#cg-right-shadow)\">\n <circle\n cx={48}\n cy={24}\n r={20}\n fill={verified ? \"url(#cg-right-grad)\" : \"url(#cg-right-grad)\"}\n />\n </g>\n\n {verified ? (\n <>\n <path\n opacity={0.25}\n d=\"M62 24C62 31.732 55.732 38 48 38C40.268 38 34 31.732 34 24C34 16.268 40.268 10 48 10C55.732 10 62 16.268 62 24Z\"\n fill=\"#093217\"\n />\n <g filter=\"url(#cg-check-blur-lg)\">\n <path\n d=\"M54.6382 18.4055C55.1206 18.9463 55.1206 19.823 54.6382 20.3637L46.4029 29.5945C45.9205 30.1352 45.1383 30.1352 44.6559 29.5945L41.3618 25.9021C40.8794 25.3614 40.8794 24.4847 41.3618 23.944C41.8442 23.4033 42.6264 23.4033 43.1088 23.944L45.5294 26.6572L49.2103 22.5314L52.8912 18.4055C53.3736 17.8648 54.1558 17.8648 54.6382 18.4055Z\"\n fill=\"white\"\n />\n </g>\n <g filter=\"url(#cg-check-blur-sm)\">\n <path\n d=\"M54.6382 18.4055C55.1206 18.9463 55.1206 19.823 54.6382 20.3637L46.4029 29.5945C45.9205 30.1352 45.1383 30.1352 44.6559 29.5945L41.3618 25.9021C40.8794 25.3614 40.8794 24.4847 41.3618 23.944C41.8442 23.4033 42.6264 23.4033 43.1088 23.944L45.5294 26.6572L49.2103 22.5314L52.8912 18.4055C53.3736 17.8648 54.1558 17.8648 54.6382 18.4055Z\"\n fill=\"white\"\n />\n </g>\n <path\n d=\"M54.6382 18.4055C55.1206 18.9463 55.1206 19.823 54.6382 20.3637L46.4029 29.5945C45.9205 30.1352 45.1383 30.1352 44.6559 29.5945L41.3618 25.9021C40.8794 25.3614 40.8794 24.4847 41.3618 23.944C41.8442 23.4033 42.6264 23.4033 43.1088 23.944L45.5294 26.6572L49.2103 22.5314L52.8912 18.4055C53.3736 17.8648 54.1558 17.8648 54.6382 18.4055Z\"\n fill=\"white\"\n />\n </>\n ) : (\n <g filter=\"url(#cg-wallet-shadow)\">\n <path\n d=\"M58.8708 28.06C58.6068 31.0441 56.4834 33 53.4028 33H43.501C40.4645 33 38 30.4965 38 27.4118V19.5882C38 16.5482 39.8043 14.4247 42.6099 14.0671C42.8959 14.0224 43.193 14 43.501 14H53.4028C53.6889 14 53.9639 14.0112 54.228 14.0559C56.8575 14.3688 58.6398 16.2353 58.8708 18.94C58.9039 19.2641 58.6398 19.5324 58.3207 19.5324H56.6154C55.5592 19.5324 54.5801 19.9459 53.8759 20.6835C53.0398 21.5106 52.6217 22.6729 52.7207 23.8353C52.8967 25.8694 54.6571 27.4676 56.7475 27.4676H58.3207C58.6398 27.4676 58.9039 27.7359 58.8708 28.06Z\"\n fill=\"white\"\n />\n <path\n d=\"M60 22.349V24.6514C60 25.2661 59.5159 25.769 58.8998 25.7914H56.7434C55.5552 25.7914 54.466 24.9085 54.367 23.7014C54.3009 22.9973 54.565 22.3379 55.0271 21.8796C55.4342 21.4549 55.9953 21.209 56.6114 21.209H58.8998C59.5159 21.2314 60 21.7343 60 22.349Z\"\n fill=\"white\"\n />\n </g>\n )}\n\n <defs>\n <filter\n id=\"cg-right-shadow\"\n x={24}\n y={0}\n width={48}\n height={48}\n filterUnits=\"userSpaceOnUse\"\n colorInterpolationFilters=\"sRGB\"\n >\n <feFlood floodOpacity={0} result=\"BackgroundImageFix\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feOffset />\n <feGaussianBlur stdDeviation={2} />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"BackgroundImageFix\"\n result=\"effect1_dropShadow\"\n />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"effect1_dropShadow\"\n result=\"shape\"\n />\n </filter>\n\n {verified ? (\n <>\n <filter\n id=\"cg-check-blur-lg\"\n x={33}\n y={10}\n width={30}\n height={28}\n filterUnits=\"userSpaceOnUse\"\n colorInterpolationFilters=\"sRGB\"\n >\n <feFlood floodOpacity={0} result=\"BackgroundImageFix\" />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"BackgroundImageFix\"\n result=\"shape\"\n />\n <feGaussianBlur\n stdDeviation={4}\n result=\"effect1_foregroundBlur\"\n />\n </filter>\n <filter\n id=\"cg-check-blur-sm\"\n x={37}\n y={14}\n width={22}\n height={20}\n filterUnits=\"userSpaceOnUse\"\n colorInterpolationFilters=\"sRGB\"\n >\n <feFlood floodOpacity={0} result=\"BackgroundImageFix\" />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"BackgroundImageFix\"\n result=\"shape\"\n />\n <feGaussianBlur\n stdDeviation={2}\n result=\"effect1_foregroundBlur\"\n />\n </filter>\n <linearGradient\n id=\"cg-right-grad\"\n x1={28}\n y1={4}\n x2={68}\n y2={44}\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#88F9AD\" />\n <stop offset={1} stopColor=\"#41BD6A\" />\n </linearGradient>\n </>\n ) : (\n <>\n <filter\n id=\"cg-wallet-shadow\"\n x={34}\n y={12}\n width={30}\n height={27}\n filterUnits=\"userSpaceOnUse\"\n colorInterpolationFilters=\"sRGB\"\n >\n <feFlood floodOpacity={0} result=\"BackgroundImageFix\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feOffset dy={2} />\n <feGaussianBlur stdDeviation={2} />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"BackgroundImageFix\"\n result=\"effect1_dropShadow\"\n />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"effect1_dropShadow\"\n result=\"shape\"\n />\n </filter>\n <linearGradient\n id=\"cg-right-grad\"\n x1={28}\n y1={4}\n x2={68}\n y2={44}\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#BFBFBF\" />\n <stop offset={1} stopColor=\"#696969\" />\n </linearGradient>\n </>\n )}\n\n <linearGradient\n id=\"cg-left-grad\"\n x1={-5.577}\n y1={44.571}\n x2={49.84}\n y2={36.854}\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#FF6A59\" />\n <stop offset={1} stopColor=\"#5377FF\" />\n </linearGradient>\n </defs>\n </svg>\n );\n}\n\n/**\n * Toggle switch icon for compact-minimal variant.\n * Unverified: gray pill + white circle on left (off).\n * Verified: green pill + white checkmark circle on right (on).\n * Proportions: 58w × 32h (matching Figma).\n */\nexport function ToggleIcon({\n verified = false,\n ...props\n}: IconProps & { verified?: boolean }) {\n return (\n <svg\n viewBox=\"0 0 59 34\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n {verified ? (\n <>\n <rect y={1} width={58} height={32} rx={16} fill=\"#50C978\" />\n <g filter=\"url(#ti-circle-shadow)\">\n <circle cx={42} cy={17} r={13} fill=\"white\" />\n </g>\n <path\n d=\"M47.6899 12.338C48.1034 12.7886 48.1034 13.5191 47.6899 13.9697L40.6311 21.662C40.2176 22.1127 39.5471 22.1127 39.1337 21.662L36.3101 18.5851C35.8966 18.1345 35.8966 17.4039 36.3101 16.9533C36.7236 16.5027 37.394 16.5027 37.8075 16.9533L39.8824 19.2144L43.0374 15.7762L46.1925 12.338C46.606 11.8873 47.2764 11.8873 47.6899 12.338Z\"\n fill=\"#50C978\"\n />\n <defs>\n <filter\n id=\"ti-circle-shadow\"\n x={25}\n y={0}\n width={34}\n height={34}\n filterUnits=\"userSpaceOnUse\"\n colorInterpolationFilters=\"sRGB\"\n >\n <feFlood floodOpacity={0} result=\"BackgroundImageFix\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feOffset />\n <feGaussianBlur stdDeviation={2} />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"BackgroundImageFix\"\n result=\"effect1_dropShadow\"\n />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"effect1_dropShadow\"\n result=\"shape\"\n />\n </filter>\n </defs>\n </>\n ) : (\n <>\n <rect x={1} y={1} width={58} height={32} rx={16} fill=\"#535353\" />\n <g filter=\"url(#ti-circle-shadow)\">\n <circle cx={17} cy={17} r={13} fill=\"white\" />\n </g>\n <defs>\n <filter\n id=\"ti-circle-shadow\"\n x={0}\n y={0}\n width={34}\n height={34}\n filterUnits=\"userSpaceOnUse\"\n colorInterpolationFilters=\"sRGB\"\n >\n <feFlood floodOpacity={0} result=\"BackgroundImageFix\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feOffset />\n <feGaussianBlur stdDeviation={2} />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"BackgroundImageFix\"\n result=\"effect1_dropShadow\"\n />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"effect1_dropShadow\"\n result=\"shape\"\n />\n </filter>\n </defs>\n </>\n )}\n </svg>\n );\n}\n\n/**\n * Large wallet circle icon for floating variants.\n * 60×60 metallic gray circle with wallet silhouette.\n */\nexport function WalletCircleIcon(props: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"40\"\n height=\"40\"\n viewBox=\"0 0 40 40\"\n fill=\"none\"\n {...props}\n >\n <circle cx=\"20\" cy=\"20\" r=\"20\" fill=\"url(#paint0_linear_8567_93038)\" />\n <g filter=\"url(#filter0_d_8567_93038)\">\n <path\n d=\"M30.8708 24.06C30.6068 27.0441 28.4834 29 25.4028 29H15.501C12.4645 29 10 26.4965 10 23.4118V15.5882C10 12.5482 11.8043 10.4247 14.6099 10.0671C14.8959 10.0224 15.193 10 15.501 10H25.4028C25.6889 10 25.9639 10.0112 26.228 10.0559C28.8575 10.3688 30.6398 12.2353 30.8708 14.94C30.9039 15.2641 30.6398 15.5324 30.3207 15.5324H28.6154C27.5592 15.5324 26.5801 15.9459 25.8759 16.6835C25.0398 17.5106 24.6217 18.6729 24.7207 19.8353C24.8967 21.8694 26.6571 23.4676 28.7475 23.4676H30.3207C30.6398 23.4676 30.9039 23.7359 30.8708 24.06Z\"\n fill=\"white\"\n />\n <path\n d=\"M32 18.349V20.6514C32 21.2661 31.5159 21.769 30.8998 21.7914H28.7434C27.5552 21.7914 26.466 20.9085 26.367 19.7014C26.3009 18.9973 26.565 18.3379 27.0271 17.8796C27.4342 17.4549 27.9953 17.209 28.6114 17.209H30.8998C31.5159 17.2314 32 17.7343 32 18.349Z\"\n fill=\"white\"\n />\n </g>\n <defs>\n <filter\n id=\"filter0_d_8567_93038\"\n x=\"6\"\n y=\"8\"\n width=\"30\"\n height=\"27\"\n filterUnits=\"userSpaceOnUse\"\n color-interpolation-filters=\"sRGB\"\n >\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feOffset dy=\"2\" />\n <feGaussianBlur stdDeviation=\"2\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"BackgroundImageFix\"\n result=\"effect1_dropShadow_8567_93038\"\n />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"effect1_dropShadow_8567_93038\"\n result=\"shape\"\n />\n </filter>\n <linearGradient\n id=\"paint0_linear_8567_93038\"\n x1=\"0\"\n y1=\"0\"\n x2=\"40\"\n y2=\"40\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#BFBFBF\" />\n <stop offset=\"1\" stop-color=\"#696969\" />\n </linearGradient>\n </defs>\n </svg>\n );\n}\n/**\n * Large wallet circle icon for floating variants.\n * 60×60 colorfull circle with wallet silhouette.\n */\nexport function WalletCircleGradientIcon(props: IconProps) {\n return (\n <svg\n width=\"48\"\n height=\"48\"\n viewBox=\"0 0 48 48\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <circle cx=\"24\" cy=\"24\" r=\"24\" fill=\"url(#paint0_linear_10313_34517)\" />\n <g filter=\"url(#filter0_d_10313_34517)\">\n <path\n d=\"M33.8708 28.06C33.6068 31.0441 31.4834 33 28.4028 33H18.501C15.4645 33 13 30.4965 13 27.4118V19.5882C13 16.5482 14.8043 14.4247 17.6099 14.0671C17.8959 14.0224 18.193 14 18.501 14H28.4028C28.6889 14 28.9639 14.0112 29.228 14.0559C31.8575 14.3688 33.6398 16.2353 33.8708 18.94C33.9039 19.2641 33.6398 19.5324 33.3207 19.5324H31.6154C30.5592 19.5324 29.5801 19.9459 28.8759 20.6835C28.0398 21.5106 27.6217 22.6729 27.7207 23.8353C27.8967 25.8694 29.6571 27.4676 31.7475 27.4676H33.3207C33.6398 27.4676 33.9039 27.7359 33.8708 28.06Z\"\n fill=\"white\"\n />\n <path\n d=\"M35 22.349V24.6514C35 25.2661 34.5159 25.769 33.8998 25.7914H31.7434C30.5552 25.7914 29.466 24.9085 29.367 23.7014C29.3009 22.9973 29.565 22.3379 30.0271 21.8796C30.4342 21.4549 30.9953 21.209 31.6114 21.209H33.8998C34.5159 21.2314 35 21.7343 35 22.349Z\"\n fill=\"white\"\n />\n </g>\n <defs>\n <filter\n id=\"filter0_d_10313_34517\"\n x=\"9\"\n y=\"12\"\n width=\"30\"\n height=\"27\"\n filterUnits=\"userSpaceOnUse\"\n color-interpolation-filters=\"sRGB\"\n >\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feOffset dy=\"2\" />\n <feGaussianBlur stdDeviation=\"2\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"BackgroundImageFix\"\n result=\"effect1_dropShadow_10313_34517\"\n />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"effect1_dropShadow_10313_34517\"\n result=\"shape\"\n />\n </filter>\n <linearGradient\n id=\"paint0_linear_10313_34517\"\n x1=\"-6.69231\"\n y1=\"48.6857\"\n x2=\"59.8085\"\n y2=\"39.4246\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FF6A59\" />\n <stop offset=\"1\" stop-color=\"#5377FF\" />\n </linearGradient>\n </defs>\n </svg>\n );\n}\n\n/** Green circle checkmark — 60×60 for floating, scaled for others */\nexport function CheckCircleIcon(props: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"40\"\n height=\"40\"\n viewBox=\"0 0 40 40\"\n fill=\"none\"\n {...props}\n >\n <circle cx=\"20\" cy=\"20\" r=\"20\" fill=\"url(#paint0_linear_8567_93055)\" />\n <path\n opacity=\"0.25\"\n d=\"M34 20C34 27.732 27.732 34 20 34C12.268 34 6 27.732 6 20C6 12.268 12.268 6 20 6C27.732 6 34 12.268 34 20Z\"\n fill=\"#093217\"\n />\n <g filter=\"url(#filter0_f_8567_93055)\">\n <path\n d=\"M26.6382 14.4055C27.1206 14.9463 27.1206 15.823 26.6382 16.3637L18.4029 25.5945C17.9205 26.1352 17.1383 26.1352 16.6559 25.5945L13.3618 21.9021C12.8794 21.3614 12.8794 20.4847 13.3618 19.944C13.8442 19.4033 14.6264 19.4033 15.1088 19.944L17.5294 22.6572L21.2103 18.5314L24.8912 14.4055C25.3736 13.8648 26.1558 13.8648 26.6382 14.4055Z\"\n fill=\"white\"\n />\n </g>\n <g filter=\"url(#filter1_f_8567_93055)\">\n <path\n d=\"M26.6382 14.4055C27.1206 14.9463 27.1206 15.823 26.6382 16.3637L18.4029 25.5945C17.9205 26.1352 17.1383 26.1352 16.6559 25.5945L13.3618 21.9021C12.8794 21.3614 12.8794 20.4847 13.3618 19.944C13.8442 19.4033 14.6264 19.4033 15.1088 19.944L17.5294 22.6572L21.2103 18.5314L24.8912 14.4055C25.3736 13.8648 26.1558 13.8648 26.6382 14.4055Z\"\n fill=\"white\"\n />\n </g>\n <path\n d=\"M26.6382 14.4055C27.1206 14.9463 27.1206 15.823 26.6382 16.3637L18.4029 25.5945C17.9205 26.1352 17.1383 26.1352 16.6559 25.5945L13.3618 21.9021C12.8794 21.3614 12.8794 20.4847 13.3618 19.944C13.8442 19.4033 14.6264 19.4033 15.1088 19.944L17.5294 22.6572L21.2103 18.5314L24.8912 14.4055C25.3736 13.8648 26.1558 13.8648 26.6382 14.4055Z\"\n fill=\"white\"\n />\n <defs>\n <filter\n id=\"filter0_f_8567_93055\"\n x=\"5\"\n y=\"6\"\n width=\"30\"\n height=\"28\"\n filterUnits=\"userSpaceOnUse\"\n color-interpolation-filters=\"sRGB\"\n >\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"BackgroundImageFix\"\n result=\"shape\"\n />\n <feGaussianBlur\n stdDeviation=\"4\"\n result=\"effect1_foregroundBlur_8567_93055\"\n />\n </filter>\n <filter\n id=\"filter1_f_8567_93055\"\n x=\"9\"\n y=\"10\"\n width=\"22\"\n height=\"20\"\n filterUnits=\"userSpaceOnUse\"\n color-interpolation-filters=\"sRGB\"\n >\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"BackgroundImageFix\"\n result=\"shape\"\n />\n <feGaussianBlur\n stdDeviation=\"2\"\n result=\"effect1_foregroundBlur_8567_93055\"\n />\n </filter>\n <linearGradient\n id=\"paint0_linear_8567_93055\"\n x1=\"0\"\n y1=\"0\"\n x2=\"40\"\n y2=\"40\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#88F9AD\" />\n <stop offset=\"1\" stop-color=\"#41BD6A\" />\n </linearGradient>\n </defs>\n </svg>\n );\n}\n\n/** Green circle checkmark — 60×60 for floating, scaled for others */\nexport function CheckCircleFilledIcon(props: IconProps) {\n return (\n <svg\n width=\"48\"\n height=\"48\"\n viewBox=\"0 0 48 48\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <circle cx=\"24\" cy=\"24\" r=\"24\" fill=\"url(#paint0_linear_10312_34504)\" />\n <g filter=\"url(#filter0_f_10312_34504)\">\n <path\n d=\"M33.4831 16.0081C34.1723 16.7805 34.1723 18.0329 33.4831 18.8054L21.7184 31.9922C21.0293 32.7647 19.9119 32.7647 19.2228 31.9922L14.5169 26.7175C13.8277 25.945 13.8277 24.6926 14.5169 23.9201C15.206 23.1477 16.3234 23.1477 17.0125 23.9201L20.4706 27.7962L25.729 21.9021L30.9875 16.0081C31.6766 15.2356 32.794 15.2356 33.4831 16.0081Z\"\n fill=\"white\"\n />\n </g>\n <g filter=\"url(#filter1_f_10312_34504)\">\n <path\n d=\"M33.4831 16.0081C34.1723 16.7805 34.1723 18.0329 33.4831 18.8054L21.7184 31.9922C21.0293 32.7647 19.9119 32.7647 19.2228 31.9922L14.5169 26.7175C13.8277 25.945 13.8277 24.6926 14.5169 23.9201C15.206 23.1477 16.3234 23.1477 17.0125 23.9201L20.4706 27.7962L25.729 21.9021L30.9875 16.0081C31.6766 15.2356 32.794 15.2356 33.4831 16.0081Z\"\n fill=\"white\"\n />\n </g>\n <path\n d=\"M33.4831 16.0081C34.1723 16.7805 34.1723 18.0329 33.4831 18.8054L21.7184 31.9922C21.0293 32.7647 19.9119 32.7647 19.2228 31.9922L14.5169 26.7175C13.8277 25.945 13.8277 24.6926 14.5169 23.9201C15.206 23.1477 16.3234 23.1477 17.0125 23.9201L20.4706 27.7962L25.729 21.9021L30.9875 16.0081C31.6766 15.2356 32.794 15.2356 33.4831 16.0081Z\"\n fill=\"white\"\n />\n <defs>\n <filter\n id=\"filter0_f_10312_34504\"\n x=\"6\"\n y=\"7.42871\"\n width=\"36\"\n height=\"33.1426\"\n filterUnits=\"userSpaceOnUse\"\n color-interpolation-filters=\"sRGB\"\n >\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"BackgroundImageFix\"\n result=\"shape\"\n />\n <feGaussianBlur\n stdDeviation=\"4\"\n result=\"effect1_foregroundBlur_10312_34504\"\n />\n </filter>\n <filter\n id=\"filter1_f_10312_34504\"\n x=\"10\"\n y=\"11.4287\"\n width=\"28\"\n height=\"25.1426\"\n filterUnits=\"userSpaceOnUse\"\n color-interpolation-filters=\"sRGB\"\n >\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"BackgroundImageFix\"\n result=\"shape\"\n />\n <feGaussianBlur\n stdDeviation=\"2\"\n result=\"effect1_foregroundBlur_10312_34504\"\n />\n </filter>\n <linearGradient\n id=\"paint0_linear_10312_34504\"\n x1=\"0\"\n y1=\"0\"\n x2=\"48\"\n y2=\"48\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#7DEFA3\" />\n <stop offset=\"1\" stop-color=\"#00A236\" />\n </linearGradient>\n </defs>\n </svg>\n );\n}\n\n/** Small green check for inline use (pill/outlined verified icon zone) */\nexport function CheckSmallIcon(props: IconProps) {\n return (\n <svg\n width=\"36\"\n height=\"34\"\n viewBox=\"0 0 36 34\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <g filter=\"url(#filter0_f_8567_93098)\">\n <path\n d=\"M27.4831 8.57935C28.1723 9.35181 28.1723 10.6042 27.4831 11.3767L15.7184 24.5635C15.0293 25.336 13.9119 25.336 13.2228 24.5635L8.51687 19.2888C7.82771 18.5163 7.82771 17.2639 8.51687 16.4914C9.20603 15.719 10.3234 15.719 11.0125 16.4914L14.4706 20.3675L19.729 14.4734L24.9875 8.57935C25.6766 7.80688 26.794 7.80688 27.4831 8.57935Z\"\n fill=\"white\"\n />\n </g>\n <g filter=\"url(#filter1_f_8567_93098)\">\n <path\n d=\"M27.4831 8.57935C28.1723 9.35181 28.1723 10.6042 27.4831 11.3767L15.7184 24.5635C15.0293 25.336 13.9119 25.336 13.2228 24.5635L8.51687 19.2888C7.82771 18.5163 7.82771 17.2639 8.51687 16.4914C9.20603 15.719 10.3234 15.719 11.0125 16.4914L14.4706 20.3675L19.729 14.4734L24.9875 8.57935C25.6766 7.80688 26.794 7.80688 27.4831 8.57935Z\"\n fill=\"white\"\n />\n </g>\n <path\n d=\"M27.4831 8.57935C28.1723 9.35181 28.1723 10.6042 27.4831 11.3767L15.7184 24.5635C15.0293 25.336 13.9119 25.336 13.2228 24.5635L8.51687 19.2888C7.82771 18.5163 7.82771 17.2639 8.51687 16.4914C9.20603 15.719 10.3234 15.719 11.0125 16.4914L14.4706 20.3675L19.729 14.4734L24.9875 8.57935C25.6766 7.80688 26.794 7.80688 27.4831 8.57935Z\"\n fill=\"white\"\n />\n <defs>\n <filter\n id=\"filter0_f_8567_93098\"\n x=\"0\"\n y=\"0\"\n width=\"36\"\n height=\"33.1426\"\n filterUnits=\"userSpaceOnUse\"\n color-interpolation-filters=\"sRGB\"\n >\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"BackgroundImageFix\"\n result=\"shape\"\n />\n <feGaussianBlur\n stdDeviation=\"4\"\n result=\"effect1_foregroundBlur_8567_93098\"\n />\n </filter>\n <filter\n id=\"filter1_f_8567_93098\"\n x=\"4\"\n y=\"4\"\n width=\"28\"\n height=\"25.1426\"\n filterUnits=\"userSpaceOnUse\"\n color-interpolation-filters=\"sRGB\"\n >\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"BackgroundImageFix\"\n result=\"shape\"\n />\n <feGaussianBlur\n stdDeviation=\"2\"\n result=\"effect1_foregroundBlur_8567_93098\"\n />\n </filter>\n </defs>\n </svg>\n );\n}\n\n/** Double chevron right for pill/pill-wide unverified icon zone */\nexport function ChevronsRightIcon(props: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"32\"\n height=\"32\"\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n {...props}\n >\n <mask\n id=\"mask0_8568_93157\"\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"32\"\n height=\"32\"\n >\n <rect width=\"32\" height=\"32\" fill=\"#D9D9D9\" />\n </mask>\n <g mask=\"url(#mask0_8568_93157)\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M14.1257 7.13058C14.6787 6.57757 15.5746 6.57757 16.1277 7.13058L24.1384 15.1403C24.6914 15.6934 24.6914 16.5903 24.1384 17.1433L16.1277 25.154C15.5747 25.7067 14.6786 25.7068 14.1257 25.154C13.5727 24.601 13.5727 23.7041 14.1257 23.1511L21.1345 16.1413L14.1257 9.13253C13.5727 8.57956 13.5728 7.68361 14.1257 7.13058Z\"\n fill=\"url(#paint0_linear_8568_93157)\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7.12556 7.12947C7.67849 6.57655 8.57545 6.57672 9.12849 7.12947L17.1392 15.1402L17.2369 15.2476C17.6905 15.8038 17.6577 16.6247 17.1392 17.1431L9.12849 25.1539C8.57546 25.7067 7.67852 25.7068 7.12556 25.1539C6.57271 24.6009 6.57275 23.704 7.12556 23.151L14.1343 16.1412L7.12556 9.1324C6.57281 8.57937 6.57265 7.6824 7.12556 7.12947Z\"\n fill=\"url(#paint1_linear_8568_93157)\"\n />\n </g>\n <defs>\n <linearGradient\n id=\"paint0_linear_8568_93157\"\n x1=\"24.4996\"\n y1=\"15.9999\"\n x2=\"14.9999\"\n y2=\"15.9999\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"white\" />\n <stop offset=\"1\" stop-color=\"white\" stop-opacity=\"0.5\" />\n </linearGradient>\n <linearGradient\n id=\"paint1_linear_8568_93157\"\n x1=\"17.501\"\n y1=\"15.9995\"\n x2=\"5.99994\"\n y2=\"15.9995\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"white\" stop-opacity=\"0.5\" />\n <stop offset=\"1\" stop-color=\"white\" stop-opacity=\"0\" />\n </linearGradient>\n </defs>\n </svg>\n );\n}\n\n/** Wallet icon for outlined variant unverified icon zone */\nexport function WalletSmallIcon(props: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"30\"\n height=\"27\"\n viewBox=\"0 0 30 27\"\n fill=\"none\"\n {...props}\n >\n <g filter=\"url(#filter0_d_8570_93260)\">\n <path\n d=\"M24.8708 16.06C24.6068 19.0441 22.4834 21 19.4028 21H9.50101C6.46445 21 4 18.4965 4 15.4118V7.58824C4 4.54824 5.80433 2.42471 8.60985 2.06706C8.8959 2.02235 9.19296 2 9.50101 2H19.4028C19.6889 2 19.9639 2.01118 20.228 2.05588C22.8575 2.36882 24.6398 4.23529 24.8708 6.94C24.9039 7.26412 24.6398 7.53235 24.3207 7.53235H22.6154C21.5592 7.53235 20.5801 7.94588 19.8759 8.68353C19.0398 9.51059 18.6217 10.6729 18.7207 11.8353C18.8967 13.8694 20.6571 15.4676 22.7475 15.4676H24.3207C24.6398 15.4676 24.9039 15.7359 24.8708 16.06Z\"\n fill=\"white\"\n />\n <path\n d=\"M26 10.349V12.6514C26 13.2661 25.5159 13.769 24.8998 13.7914H22.7434C21.5552 13.7914 20.466 12.9085 20.367 11.7014C20.3009 10.9973 20.565 10.3379 21.0271 9.87963C21.4342 9.45492 21.9953 9.20904 22.6114 9.20904H24.8998C25.5159 9.23139 26 9.73434 26 10.349Z\"\n fill=\"white\"\n />\n </g>\n <defs>\n <filter\n id=\"filter0_d_8570_93260\"\n x=\"0\"\n y=\"0\"\n width=\"30\"\n height=\"27\"\n filterUnits=\"userSpaceOnUse\"\n color-interpolation-filters=\"sRGB\"\n >\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feOffset dy=\"2\" />\n <feGaussianBlur stdDeviation=\"2\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"BackgroundImageFix\"\n result=\"effect1_dropShadow_8570_93260\"\n />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"effect1_dropShadow_8570_93260\"\n result=\"shape\"\n />\n </filter>\n </defs>\n </svg>\n );\n}\n","import type { WidgetTheme } from \"@/shared/config\";\nimport { DEFAULT_THEME } from \"@/shared/config\";\nimport { useTheme } from \"@/shared/hooks/useTheme\";\nimport { cn } from \"@/shared/utils/cn\";\nimport type { ButtonHTMLAttributes } from \"react\";\nimport {\n VerifyWalletVariants,\n type VerifyWalletState,\n type VerifyWalletVariant,\n} from \"../model/types\";\nimport \"../styles/verify-wallet-button.css\";\nimport {\n ChainGroupIcon,\n CheckCircleFilledIcon,\n CheckCircleIcon,\n CheckSmallIcon,\n ChevronsRightIcon,\n ToggleIcon,\n WalletCircleGradientIcon,\n WalletCircleIcon,\n WalletSmallIcon,\n} from \"./icons\";\n\nexport interface VerifyWalletButtonProps extends Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n \"children\"\n> {\n /** Wallet verification status */\n state?: VerifyWalletState;\n /** Visual layout variant */\n variant?: VerifyWalletVariant;\n /** Color theme */\n theme?: WidgetTheme;\n /** Fired when user clicks the unverified button */\n onVerify?: () => void;\n}\n\n/* ------------------------------------------------------------------ */\n/* Variant inner renderers — each matches Figma pixel-for-pixel */\n/* ------------------------------------------------------------------ */\n\ntype InnerProps = { state: VerifyWalletState; theme: WidgetTheme };\n\n/**\n * Compact\n */\nfunction CompactInner({ state, theme }: InnerProps) {\n return (\n <div\n className={cn(\"rounded-2xl\", theme === \"dark\" ? \"bg-black\" : \"bg-white\")}\n >\n <div\n className={cn(\n \"rounded-2xl p-px\",\n theme === \"dark\"\n ? \"vwb-gradient-border-dark\"\n : \"vwb-gradient-border-light\",\n )}\n >\n <div\n className={cn(\n \"flex items-center gap-[12px] rounded-[15px] px-[12px] py-[8px]\",\n theme === \"dark\" ? \"vwb-border-dark\" : \"vwb-border-light-compact\",\n )}\n >\n <ChainGroupIcon\n verified={state === \"verified\"}\n className=\"h-[40px] w-[68px] shrink-0\"\n />\n <span className=\"vwb-gradient-text font-semibold font-sans text-[18px] leading-none whitespace-nowrap\">\n Verify Wallet\n </span>\n </div>\n </div>\n </div>\n );\n}\n\n/**\n * Compact Minimal\n */\nfunction CompactMinimalInner({ state, theme }: InnerProps) {\n return (\n <div\n className={cn(\"rounded-2xl\", theme === \"dark\" ? \"bg-black\" : \"bg-white\")}\n >\n <div\n className={cn(\n \"rounded-2xl p-px\",\n theme === \"dark\"\n ? \"vwb-gradient-border-dark\"\n : \"vwb-gradient-border-light\",\n )}\n >\n <div\n className={cn(\n \"flex items-center gap-[12px] rounded-[15px] p-[12px]\",\n theme === \"dark\" ? \"bg-[#1f1f1f]\" : \"bg-white\",\n )}\n >\n <ToggleIcon\n verified={state === \"verified\"}\n className=\"h-[32px] w-[58px] shrink-0\"\n />\n <span className=\"vwb-gradient-text font-semibold font-sans text-[18px] leading-none whitespace-nowrap\">\n Verify Wallet\n </span>\n </div>\n </div>\n </div>\n );\n}\n\n/**\n * Gradient Compact\n */\nfunction GradientCompactInner({ state }: InnerProps) {\n const isVerified = state === \"verified\";\n return (\n <div className={cn(\"rounded-2xl vwb-full-gradient\")}>\n <div className={cn(\"rounded-2xl p-px\", \"vwb-gradient-border-dark\")}>\n <div\n className={cn(\n \"flex items-center gap-[12px] rounded-[15px] px-[12px] py-[8px]\",\n \"vwb-full-gradient\",\n )}\n >\n <ChainGroupIcon\n verified={isVerified}\n className=\"h-[40px] w-[68px] shrink-0\"\n />\n <span className=\"font-semibold font-sans text-[18px] leading-none text-white whitespace-nowrap\">\n Verify Wallet\n </span>\n </div>\n </div>\n </div>\n );\n}\n\n/**\n * Banner\n */\nfunction BannerInner({ state, theme }: InnerProps) {\n const isVerified = state === \"verified\";\n return (\n <div\n className={cn(\"rounded-2xl\", theme === \"dark\" ? \"bg-black\" : \"bg-white\")}\n >\n <div\n className={cn(\n \"rounded-2xl p-px\",\n theme === \"dark\"\n ? \"vwb-gradient-border-dark\"\n : \"vwb-gradient-border-light\",\n )}\n >\n <div\n className={cn(\n \"flex w-[260px] items-center gap-[6px] rounded-[15px] p-[6px]\",\n theme === \"dark\" ? \"vwb-border-dark\" : \"vwb-border-light-banner\",\n )}\n >\n {/* Icon */}\n <div className=\"shrink-0 shadow-2xl\">\n {isVerified ? (\n <CheckCircleIcon className=\"size-[40px]\" />\n ) : (\n <WalletCircleIcon className=\"size-[40px]\" />\n )}\n </div>\n {/* CTA bar */}\n <div\n className={cn(\n \"flex flex-1 items-center justify-center self-stretch rounded-xl\",\n isVerified ? \"vwb-verified-gradient\" : \"vwb-cta-gradient\",\n )}\n >\n <span className=\"font-semibold font-sans text-[18px] leading-none text-white whitespace-nowrap\">\n {isVerified ? \"Wallet Verified\" : \"Verify Wallet\"}\n </span>\n </div>\n </div>\n </div>\n </div>\n );\n}\n\n/**\n * Floating\n */\nfunction FloatingGradientInner({ state }: InnerProps) {\n const isVerified = state === \"verified\";\n return (\n <div className=\"flex h-[60px] w-[224px] items-center justify-end\">\n {/* CTA bar — behind the icon */}\n <div\n className={cn(\n \"relative flex h-[40px] w-[203px] items-center rounded-xl pl-[53px] shadow-none!\",\n \"vwb-cta-gradient\",\n )}\n >\n <span className=\"font-semibold font-sans text-[18px] leading-none text-white whitespace-nowrap\">\n {isVerified ? \"Wallet Verified\" : \"Verify Wallet\"}\n </span>\n {/* Icon circle — overlaps bar on left */}\n <div\n className={cn(\n \"absolute left-0 z-10 rounded-[60px] size-[60px] -translate-x-[34%] p-[6px]\",\n isVerified ? \"vwb-floating-v-gradient\" : \"vwb-floating-nv-gradient\",\n )}\n >\n {isVerified ? (\n <CheckCircleFilledIcon className=\"size-full\" />\n ) : (\n <WalletCircleIcon className=\"size-full\" />\n )}\n </div>\n </div>\n </div>\n );\n}\n\n/**\n * Floating\n */\nfunction FloatingInner({ state }: InnerProps) {\n const isVerified = state === \"verified\";\n return (\n <div className=\"flex h-[60px] w-[224px] items-center justify-end\">\n {/* CTA bar — behind the icon */}\n <div\n className={cn(\n \"relative flex h-[40px] w-[203px] items-center rounded-xl pl-[53px] shadow-none! bg-(--arkada-bg-accent)\",\n )}\n >\n <span className=\"font-semibold font-sans text-[18px] leading-none vwb-gradient-text whitespace-nowrap\">\n {isVerified ? \"Wallet Verified\" : \"Verify Wallet\"}\n </span>\n {/* Icon circle — overlaps bar on left */}\n <div\n className={cn(\n \"absolute left-0 z-10 rounded-[60px] size-[60px] -translate-x-[34%] p-[6px]\",\n isVerified\n ? \"vwb-floating-v-gradient\"\n : \"vwb-floating-nvc-gradient\",\n )}\n >\n {isVerified ? (\n <CheckCircleFilledIcon className=\"size-full\" />\n ) : (\n <WalletCircleGradientIcon className=\"size-full\" />\n )}\n </div>\n </div>\n </div>\n );\n}\n\n/**\n * Pill\n * bg solid, rounded-16, h-54, w-220.\n * Left: 60w×46h icon zone at 4px inset, rounded-16.\n * Unverified: gradient bg + white chevrons.\n * Verified: green gradient bg + white check.\n * Right: label.\n * Unverified: white (dark) or black (light) text.\n * Verified: #14bd47 green text \"Wallet Verified\".\n */\nfunction PillInner({ state, theme }: InnerProps) {\n const isVerified = state === \"verified\";\n return (\n <div\n className={cn(\n \"relative flex h-[54px] w-[220px] items-center rounded-2xl\",\n theme === \"dark\" ? \"bg-black\" : \"bg-white\",\n )}\n >\n {/* Icon zone */}\n <div\n className={cn(\n \"absolute left-[4px] top-[4px] flex h-[46px] w-[60px] items-center justify-center rounded-2xl\",\n isVerified ? \"vwb-verified-gradient\" : \"vwb-full-gradient\",\n )}\n >\n {isVerified ? (\n <CheckSmallIcon className=\"h-[18px] w-[21px] scale-150\" />\n ) : (\n <ChevronsRightIcon className=\"size-[32px] text-white\" />\n )}\n </div>\n {/* Label */}\n <div className=\"flex flex-1 items-center justify-center pl-[64px]\">\n <span\n className={cn(\n \"font-semibold font-sans text-[18px] leading-none whitespace-nowrap\",\n isVerified\n ? \"text-[#14bd47]\"\n : theme === \"dark\"\n ? \"text-white\"\n : \"text-black\",\n )}\n >\n {isVerified ? \"Wallet Verified\" : \"Verify Wallet\"}\n </span>\n </div>\n </div>\n );\n}\n\n/**\n * Pill Wide\n * bg black, rounded-16, h-54, w-220.\n * Unverified: full-width gradient bar (inset 4px, w-212, h-46),\n * text \"Verify Wallet\" centered, chevrons icon on RIGHT.\n * Verified: check icon LEFT (inset), gradient bar RIGHT (h-46 w-148 from right),\n * text \"Wallet Verified\" centered in gradient bar.\n */\nfunction PillWideInner({ state }: InnerProps) {\n const isVerified = state === \"verified\";\n return (\n <div className=\"relative flex h-[54px] w-[220px] items-center rounded-2xl bg-black p-1\">\n {isVerified ? (\n <>\n {/* Check icon left */}\n <div className=\"absolute left-[24px] top-1/2 -translate-y-1/2 z-10\">\n <CheckSmallIcon className=\"h-[18px] w-[21px] text-white scale-150\" />\n </div>\n {/* Gradient bar right */}\n <div className=\"absolute right-[4px] top-[4px] flex h-[46px] w-[148px] items-center justify-center rounded-xl vwb-verified-gradient\">\n <span className=\"font-semibold font-sans text-[18px] leading-none text-white whitespace-nowrap\">\n Wallet Verified\n </span>\n </div>\n </>\n ) : (\n <>\n {/* Full gradient bar */}\n <div className=\"flex h-[46px] w-full items-center justify-between rounded-xl vwb-full-gradient pl-4 pr-[8px]\">\n <p className=\"font-semibold font-sans text-[18px] leading-none text-white text-center whitespace-nowrap w-fit\">\n Verify Wallet\n </p>\n <ChevronsRightIcon className=\"size-[32px] text-white shrink-0\" />\n </div>\n </>\n )}\n </div>\n );\n}\n\n/**\n * Outlined\n * Same pill layout but with status-colored border.\n * Unverified: border #ff6a59 (red), shield icon in gradient zone.\n * Verified: border #13b343 (green), check in green gradient zone.\n */\nfunction OutlinedInner({ state, theme }: InnerProps) {\n const isVerified = state === \"verified\";\n return (\n <div\n className={cn(\n \"relative flex h-[54px] w-[220px] items-center rounded-2xl p-px\",\n isVerified ? \"bg-[#13b343]\" : \"vwb-full-gradient\",\n )}\n >\n <div\n className={cn(\n \"relative flex h-full w-full items-center rounded-[15px]\",\n theme === \"dark\" ? \"bg-black\" : \"bg-white\",\n )}\n >\n {/* Icon zone */}\n <div\n className={cn(\n \"absolute left-[3px] top-[3px] flex h-[46px] w-[60px] items-center justify-center rounded-xl\",\n isVerified ? \"vwb-verified-gradient\" : \"vwb-full-gradient\",\n )}\n >\n {isVerified ? (\n <CheckSmallIcon className=\"h-[18px] w-[21px] scale-150\" />\n ) : (\n <WalletSmallIcon className=\"size-[32px] text-white mt-[4px]\" />\n )}\n </div>\n {/* Label */}\n <div className=\"flex flex-1 items-center justify-center pl-[64px]\">\n <span\n className={cn(\n \"font-semibold font-sans text-[18px] leading-none whitespace-nowrap\",\n isVerified\n ? \"text-[#14bd47]\"\n : theme === \"dark\"\n ? \"text-white\"\n : \"text-black\",\n )}\n >\n {isVerified ? \"Wallet Verified\" : \"Verify Wallet\"}\n </span>\n </div>\n </div>\n </div>\n );\n}\n\n/**\n * Outlined Wide\n * Status border + icon on left side + gradient bar on right.\n * Unverified: shield icon left, gradient bar right, white text.\n * Verified: check icon left, gradient bar right, white text.\n */\nfunction OutlinedWideInner({ state }: InnerProps) {\n const isVerified = state === \"verified\";\n return (\n <div\n className={cn(\n \"relative flex h-[54px] w-[220px] items-center rounded-2xl p-px\",\n isVerified ? \"bg-[#13b343]\" : \"vwb-full-gradient\",\n )}\n >\n <div\n className={cn(\n \"relative flex h-full w-full items-center rounded-[15px] bg-black\",\n )}\n >\n {/* Icon left */}\n <div className=\"absolute left-6 top-1/2 z-10 -translate-y-1/2\">\n {isVerified ? (\n <CheckSmallIcon className=\"h-[18px] w-[21px] text-white scale-150\" />\n ) : (\n <WalletSmallIcon className=\"h-[19px] w-[22px] text-white scale-150 mt-1\" />\n )}\n </div>\n {/* Gradient bar right */}\n <div\n className={cn(\n \"absolute right-[3px] top-[3px] flex h-[46px] w-[148px] items-center justify-center rounded-xl\",\n isVerified ? \"vwb-verified-gradient\" : \"vwb-full-gradient\",\n )}\n >\n <span className=\"font-semibold font-sans text-[18px] leading-none text-white whitespace-nowrap\">\n {isVerified ? \"Wallet Verified\" : \"Verify Wallet\"}\n </span>\n </div>\n </div>\n </div>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Variant → renderer map */\n/* ------------------------------------------------------------------ */\n\nconst VARIANT_MAP: Record<\n VerifyWalletVariant,\n React.ComponentType<InnerProps>\n> = {\n [VerifyWalletVariants.COMPACT]: CompactInner,\n [VerifyWalletVariants.COMPACT_MINIMAL]: CompactMinimalInner,\n [VerifyWalletVariants.COMPACT_GRADIENT]: GradientCompactInner,\n [VerifyWalletVariants.BANNER]: BannerInner,\n [VerifyWalletVariants.FLOATING]: FloatingInner,\n [VerifyWalletVariants.FLOATING_GRADIENT]: FloatingGradientInner,\n [VerifyWalletVariants.PILL]: PillInner,\n [VerifyWalletVariants.PILL_WIDE]: PillWideInner,\n [VerifyWalletVariants.OUTLINED]: OutlinedInner,\n [VerifyWalletVariants.OUTLINED_WIDE]: OutlinedWideInner,\n};\n\n/* ------------------------------------------------------------------ */\n/* Public component */\n/* ------------------------------------------------------------------ */\n\nexport function VerifyWalletButton({\n state = \"unverified\",\n variant = \"compact\",\n theme = DEFAULT_THEME,\n onVerify,\n className,\n onClick,\n ...props\n}: VerifyWalletButtonProps) {\n const themeRef = useTheme(theme);\n const VariantRenderer = VARIANT_MAP[variant];\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n if (state === \"unverified\") {\n onVerify?.();\n }\n onClick?.(e);\n };\n\n return (\n <button\n ref={themeRef as React.Ref<HTMLButtonElement>}\n type=\"button\"\n data-theme={theme}\n aria-label={state === \"verified\" ? \"Wallet verified\" : \"Verify wallet\"}\n className={cn(\n \"inline-flex cursor-pointer border-none bg-transparent p-0 vwb-interactive\",\n className,\n )}\n onClick={handleClick}\n {...props}\n >\n <VariantRenderer state={state} theme={theme} />\n </button>\n );\n}\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-nocheck\n/*\n * ---------------------------------------------------------------\n * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ##\n * ## ##\n * ## AUTHOR: acacode ##\n * ## SOURCE: https://github.com/acacode/swagger-typescript-api ##\n * ---------------------------------------------------------------\n */\n\nexport interface VerifyWalletDto {\n /** @example \"0xabc123...\" */\n address: string;\n /** @example 1868 */\n chainId: number;\n}\n\nexport interface VerifyWalletDataDto {\n /**\n * Normalized wallet address\n * @example \"0xabc123...\"\n */\n user: string;\n /**\n * Nonce (timestamp in ms)\n * @example 1710000000000\n */\n nonce: number;\n /**\n * Status rank to set\n * @example 5\n */\n newStatus: number;\n /**\n * Price in native token\n * @example 100\n */\n price: string;\n}\n\nexport interface VerifyWalletResponseDto {\n data: VerifyWalletDataDto;\n /**\n * EIP-712 typed data signature\n * @example \"0x...\"\n */\n signature: string;\n}\n\nexport interface WalletNetworkStatusDto {\n /** @example 1868 */\n chainId: number;\n /** @example \"Soneium\" */\n networkName: string;\n /** @example \"https://cdn.example.com/chains/soneium.png\" */\n image?: object | null;\n /** @example \"https://bridge.example.com\" */\n bridgeUrl?: object | null;\n /** @example \"Gold Badge\" */\n badgeName?: object | null;\n /** @example 5 */\n statusRank: number;\n /** @example \"Gold\" */\n statusName: string;\n /** @example 40 */\n statusScore: number;\n /** @example false */\n isOutdated: boolean;\n /** @example false */\n notGlobal: boolean;\n /** @example 123.45 */\n actualResult: number;\n /** @example \"2026-03-10T10:00:00.000Z\" */\n statusUpdatedAt: object | null;\n}\n\nexport interface WalletGlobalStatusDto {\n /** @example 400 */\n score: number;\n /** @example 5 */\n rank: number;\n /** @example 400 */\n avgScore: number;\n}\n\nexport interface WalletStatusResponseDto {\n /** @example \"0xabc123...\" */\n address: string;\n networks: WalletNetworkStatusDto[];\n global: WalletGlobalStatusDto;\n}\n\nexport type QueryParamsType = Record<string | number, any>;\nexport type ResponseFormat = keyof Omit<Body, \"body\" | \"bodyUsed\">;\n\nexport interface FullRequestParams extends Omit<RequestInit, \"body\"> {\n /** set parameter to `true` for call `securityWorker` for this request */\n secure?: boolean;\n /** request path */\n path: string;\n /** content type of request body */\n type?: ContentType;\n /** query params */\n query?: QueryParamsType;\n /** format of response (i.e. response.json() -> format: \"json\") */\n format?: ResponseFormat;\n /** request body */\n body?: unknown;\n /** base url */\n baseUrl?: string;\n /** request cancellation token */\n cancelToken?: CancelToken;\n}\n\nexport type RequestParams = Omit<\n FullRequestParams,\n \"body\" | \"method\" | \"query\" | \"path\"\n>;\n\nexport interface ApiConfig<SecurityDataType = unknown> {\n baseUrl?: string;\n baseApiParams?: Omit<RequestParams, \"baseUrl\" | \"cancelToken\" | \"signal\">;\n securityWorker?: (\n securityData: SecurityDataType | null,\n ) => Promise<RequestParams | void> | RequestParams | void;\n customFetch?: typeof fetch;\n}\n\nexport interface HttpResponse<D extends unknown, E extends unknown = unknown>\n extends Response {\n data: D;\n error: E;\n}\n\ntype CancelToken = Symbol | string | number;\n\nexport enum ContentType {\n Json = \"application/json\",\n JsonApi = \"application/vnd.api+json\",\n FormData = \"multipart/form-data\",\n UrlEncoded = \"application/x-www-form-urlencoded\",\n Text = \"text/plain\",\n}\n\nexport class HttpClient<SecurityDataType = unknown> {\n public baseUrl: string = \"\";\n private securityData: SecurityDataType | null = null;\n private securityWorker?: ApiConfig<SecurityDataType>[\"securityWorker\"];\n private abortControllers = new Map<CancelToken, AbortController>();\n private customFetch = (...fetchParams: Parameters<typeof fetch>) =>\n fetch(...fetchParams);\n\n private baseApiParams: RequestParams = {\n credentials: \"same-origin\",\n headers: {},\n redirect: \"follow\",\n referrerPolicy: \"no-referrer\",\n };\n\n constructor(apiConfig: ApiConfig<SecurityDataType> = {}) {\n Object.assign(this, apiConfig);\n }\n\n public setSecurityData = (data: SecurityDataType | null) => {\n this.securityData = data;\n };\n\n protected encodeQueryParam(key: string, value: any) {\n const encodedKey = encodeURIComponent(key);\n return `${encodedKey}=${encodeURIComponent(typeof value === \"number\" ? value : `${value}`)}`;\n }\n\n protected addQueryParam(query: QueryParamsType, key: string) {\n return this.encodeQueryParam(key, query[key]);\n }\n\n protected addArrayQueryParam(query: QueryParamsType, key: string) {\n const value = query[key];\n return value.map((v: any) => this.encodeQueryParam(key, v)).join(\"&\");\n }\n\n protected toQueryString(rawQuery?: QueryParamsType): string {\n const query = rawQuery || {};\n const keys = Object.keys(query).filter(\n (key) => \"undefined\" !== typeof query[key],\n );\n return keys\n .map((key) =>\n Array.isArray(query[key])\n ? this.addArrayQueryParam(query, key)\n : this.addQueryParam(query, key),\n )\n .join(\"&\");\n }\n\n protected addQueryParams(rawQuery?: QueryParamsType): string {\n const queryString = this.toQueryString(rawQuery);\n return queryString ? `?${queryString}` : \"\";\n }\n\n private contentFormatters: Record<ContentType, (input: any) => any> = {\n [ContentType.Json]: (input: any) =>\n input !== null && (typeof input === \"object\" || typeof input === \"string\")\n ? JSON.stringify(input)\n : input,\n [ContentType.JsonApi]: (input: any) =>\n input !== null && (typeof input === \"object\" || typeof input === \"string\")\n ? JSON.stringify(input)\n : input,\n [ContentType.Text]: (input: any) =>\n input !== null && typeof input !== \"string\"\n ? JSON.stringify(input)\n : input,\n [ContentType.FormData]: (input: any) => {\n if (input instanceof FormData) {\n return input;\n }\n\n return Object.keys(input || {}).reduce((formData, key) => {\n const property = input[key];\n formData.append(\n key,\n property instanceof Blob\n ? property\n : typeof property === \"object\" && property !== null\n ? JSON.stringify(property)\n : `${property}`,\n );\n return formData;\n }, new FormData());\n },\n [ContentType.UrlEncoded]: (input: any) => this.toQueryString(input),\n };\n\n protected mergeRequestParams(\n params1: RequestParams,\n params2?: RequestParams,\n ): RequestParams {\n return {\n ...this.baseApiParams,\n ...params1,\n ...(params2 || {}),\n headers: {\n ...(this.baseApiParams.headers || {}),\n ...(params1.headers || {}),\n ...((params2 && params2.headers) || {}),\n },\n };\n }\n\n protected createAbortSignal = (\n cancelToken: CancelToken,\n ): AbortSignal | undefined => {\n if (this.abortControllers.has(cancelToken)) {\n const abortController = this.abortControllers.get(cancelToken);\n if (abortController) {\n return abortController.signal;\n }\n return void 0;\n }\n\n const abortController = new AbortController();\n this.abortControllers.set(cancelToken, abortController);\n return abortController.signal;\n };\n\n public abortRequest = (cancelToken: CancelToken) => {\n const abortController = this.abortControllers.get(cancelToken);\n\n if (abortController) {\n abortController.abort();\n this.abortControllers.delete(cancelToken);\n }\n };\n\n public request = async <T = any, E = any>({\n body,\n secure,\n path,\n type,\n query,\n format,\n baseUrl,\n cancelToken,\n ...params\n }: FullRequestParams): Promise<HttpResponse<T, E>> => {\n const secureParams =\n ((typeof secure === \"boolean\" ? secure : this.baseApiParams.secure) &&\n this.securityWorker &&\n (await this.securityWorker(this.securityData))) ||\n {};\n const requestParams = this.mergeRequestParams(params, secureParams);\n const queryString = query && this.toQueryString(query);\n const payloadFormatter = this.contentFormatters[type || ContentType.Json];\n const responseFormat = format || requestParams.format;\n\n return this.customFetch(\n `${baseUrl || this.baseUrl || \"\"}${path}${queryString ? `?${queryString}` : \"\"}`,\n {\n ...requestParams,\n headers: {\n ...(requestParams.headers || {}),\n ...(type && type !== ContentType.FormData\n ? { \"Content-Type\": type }\n : {}),\n },\n signal:\n (cancelToken\n ? this.createAbortSignal(cancelToken)\n : requestParams.signal) || null,\n body:\n typeof body === \"undefined\" || body === null\n ? null\n : payloadFormatter(body),\n },\n ).then(async (response) => {\n const r = response as HttpResponse<T, E>;\n r.data = null as unknown as T;\n r.error = null as unknown as E;\n\n const responseToParse = responseFormat ? response.clone() : response;\n const data = !responseFormat\n ? r\n : await responseToParse[responseFormat]()\n .then((data) => {\n if (r.ok) {\n r.data = data;\n } else {\n r.error = data;\n }\n return r;\n })\n .catch((e) => {\n r.error = e;\n return r;\n });\n\n if (cancelToken) {\n this.abortControllers.delete(cancelToken);\n }\n\n if (!response.ok) throw data;\n return data;\n });\n };\n}\n\n/**\n * @title Arkada Widget API\n * @version 1.0\n * @contact\n *\n * Public API for the embeddable wallet verification widget\n */\nexport class Api<\n SecurityDataType extends unknown,\n> extends HttpClient<SecurityDataType> {\n public = {\n /**\n * No description\n *\n * @tags Widget — Wallet Verification\n * @name WalletWidgetControllerVerify\n * @summary Get signing data for wallet verification (widget, no auth)\n * @request POST:/public/wallet/verify\n */\n walletWidgetControllerVerify: (\n data: VerifyWalletDto,\n params: RequestParams = {},\n ) =>\n this.request<VerifyWalletResponseDto, any>({\n path: `/public/wallet/verify`,\n method: \"POST\",\n body: data,\n type: ContentType.Json,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Widget — Wallet Verification\n * @name WalletWidgetControllerStatus\n * @summary Get wallet verification status (widget, no auth)\n * @request GET:/public/wallet/status/{address}\n */\n walletWidgetControllerStatus: (\n address: string,\n params: RequestParams = {},\n ) =>\n this.request<WalletStatusResponseDto, any>({\n path: `/public/wallet/status/${address}`,\n method: \"GET\",\n format: \"json\",\n ...params,\n }),\n };\n}\n","import { ARKADA_PUBLIC_API_URL } from \"@/shared/config\";\nimport { Api } from \"./types\";\n\n// Single shared instance — all widgets share one underlying fetch client.\n// Instantiated here (not inside hooks/components) so base URL config\n// lives in one place and no duplicate instances are created.\nexport const apiClient = new Api({ baseUrl: ARKADA_PUBLIC_API_URL });\n","import { apiClient } from \"@/shared/api/client\";\nimport { useEffect, useState } from \"react\";\n\ninterface WalletVerificationState {\n isVerified: boolean;\n isLoading: boolean;\n error: Error | null;\n}\n\n/**\n * Fetches wallet verification status once on mount (re-fetches if address changes).\n *\n * someVerified === true:\n * some network in response has rank > 0\n *\n * someVerified === false:\n * global.rank > 0\n */\nexport function useWalletVerification(\n walletAddress: string,\n someVerified?: boolean,\n): WalletVerificationState {\n const [state, setState] = useState<WalletVerificationState>({\n isVerified: false,\n isLoading: true,\n error: null,\n });\n\n useEffect(() => {\n if (!walletAddress) {\n setState({ isVerified: false, isLoading: false, error: null });\n return;\n }\n\n // Reset to loading before every fetch — prevents stale state flash\n // when walletAddress prop changes between renders.\n setState({ isVerified: false, isLoading: true, error: null });\n\n const controller = new AbortController();\n\n apiClient.public\n .walletWidgetControllerStatus(walletAddress, {\n signal: controller.signal,\n })\n .then((res) => {\n const isVerified = someVerified\n ? res.data?.networks.some((network) => network.statusRank > 0)\n : res.data?.global?.rank > 0;\n setState({\n isVerified,\n isLoading: false,\n error: null,\n });\n })\n .catch((err: unknown) => {\n // Ignore abort — component unmounted or address changed mid-flight\n if (err instanceof Error && err.name === \"AbortError\") return;\n setState({\n isVerified: false,\n isLoading: false,\n error: err instanceof Error ? err : new Error(String(err)),\n });\n });\n\n return () => controller.abort();\n }, [walletAddress]);\n\n return state;\n}\n","import type { WidgetTheme } from \"@/shared/config\";\nimport {\n VerifyWalletButton,\n type VerifyWalletVariant,\n} from \"@/widgets/verify-wallet-button\";\nimport { useWalletVerification } from \"../hooks/useWalletVerification\";\n\nconst VERIFICATION_URL = \"https://app.arkada.gg/en/wallet\";\n\nexport interface WalletVerificationButtonProps {\n walletAddress: string;\n referralCode?: string;\n someVerified?: boolean;\n theme?: WidgetTheme;\n variant?: VerifyWalletVariant;\n}\n\n/**\n * Smart wallet verification button.\n *\n * Fetches verification status for the given address on mount,\n * then delegates all visual rendering to VerifyWalletButton.\n */\nexport function WalletVerificationButton({\n walletAddress,\n referralCode,\n someVerified,\n theme,\n variant,\n}: WalletVerificationButtonProps) {\n const { isVerified, isLoading, error } = useWalletVerification(\n walletAddress,\n someVerified,\n );\n\n if (process.env.NODE_ENV !== \"production\" && error) {\n console.warn(\"[WalletVerificationButton] Failed to fetch status:\", error);\n }\n\n const handleVerify = () => {\n window.open(\n `${VERIFICATION_URL}/${walletAddress}${referralCode ? `?ref=${referralCode}` : \"\"}`,\n \"_blank\",\n \"noopener,noreferrer\",\n );\n };\n\n return (\n <VerifyWalletButton\n state={isVerified ? \"verified\" : \"unverified\"}\n theme={theme}\n variant={variant}\n onVerify={handleVerify}\n disabled={isLoading}\n aria-busy={isLoading}\n style={{\n opacity: isLoading ? 0.6 : 1,\n cursor: isLoading ? \"not-allowed\" : \"pointer\",\n }}\n />\n );\n}\n"],"mappings":"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","names":["import_jsx_runtime","abortController","data","import_react","import_jsx_runtime"]}
package/dist/index.css ADDED
@@ -0,0 +1,123 @@
1
+ /* src/widgets/verify-wallet-button/styles/verify-wallet-button.css */
2
+ :host {
3
+ --wvb-gradient-start: #ff6a59;
4
+ --wvb-gradient-end: #5377ff;
5
+ --wvb-verified-start: #0e9035;
6
+ --wvb-verified-end: #14be47;
7
+ --wvb-container-gradient-dark-sides: #000000;
8
+ --wvb-container-gradient-dark-middle: #2d2d2d;
9
+ --wvb-container-gradient-light-sides: #d2d2d2;
10
+ --wvb-container-gradient-light-middle: #ffffff;
11
+ --wvb-container-gradient-light-banner-sides: #efefef;
12
+ --wvb-glow: #be66b3;
13
+ --wvb-focus: #00b17e;
14
+ }
15
+ .vwb-gradient-border-dark {
16
+ background:
17
+ linear-gradient(
18
+ 135deg,
19
+ #ffffff80,
20
+ #ffffff40,
21
+ #ffffff40,
22
+ #ffffff1a);
23
+ }
24
+ .vwb-gradient-border-light {
25
+ background:
26
+ linear-gradient(
27
+ 135deg,
28
+ #6b6b6b80,
29
+ #6b6b6b40,
30
+ #6b6b6b40,
31
+ #6b6b6b1a);
32
+ }
33
+ .vwb-gradient-text {
34
+ background:
35
+ linear-gradient(
36
+ 82deg,
37
+ var(--wvb-gradient-start, #ff6a59) -12.41%,
38
+ var(--wvb-gradient-end, #5377ff) 111.55%);
39
+ -webkit-background-clip: text;
40
+ background-clip: text;
41
+ -webkit-text-fill-color: transparent;
42
+ }
43
+ .vwb-cta-gradient {
44
+ background:
45
+ linear-gradient(
46
+ 82deg,
47
+ var(--wvb-gradient-start, #ff6a59) -12.41%,
48
+ var(--wvb-gradient-end, #5377ff) 111.55%);
49
+ box-shadow: 0px 0px 6px 0px var(--wvb-glow, #be66b3);
50
+ }
51
+ .vwb-floating-nv-gradient {
52
+ background:
53
+ linear-gradient(
54
+ 135deg,
55
+ rgba(217, 217, 217, 0.5) 0%,
56
+ rgba(115, 115, 115, 0.5) 100%);
57
+ box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
58
+ }
59
+ .vwb-floating-nvc-gradient {
60
+ background: var( --Gradient-base, linear-gradient( 82deg, rgba(255, 106, 89, 0.5) -12.41%, rgba(83, 119, 255, 0.5) 111.55% ) );
61
+ box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
62
+ }
63
+ .vwb-floating-v-gradient {
64
+ background:
65
+ linear-gradient(
66
+ 135deg,
67
+ rgba(125, 239, 163, 0.5) 0%,
68
+ rgba(43, 180, 89, 0.5) 100%);
69
+ box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
70
+ }
71
+ .vwb-verified-gradient {
72
+ background:
73
+ linear-gradient(
74
+ 90deg,
75
+ var(--wvb-verified-start, #0e9035) 0%,
76
+ var(--wvb-verified-end, #14be47) 100%);
77
+ }
78
+ .vwb-border-dark {
79
+ background:
80
+ linear-gradient(
81
+ 90deg,
82
+ var(--wvb-container-gradient-dark-sides, #000000) 0%,
83
+ var(--wvb-container-gradient-dark-middle, #2d2d2d) 50%,
84
+ var(--wvb-container-gradient-dark-sides, #000000) 100%);
85
+ }
86
+ .vwb-border-light-compact {
87
+ background:
88
+ linear-gradient(
89
+ 90deg,
90
+ var(--wvb-container-gradient-light-sides, #d2d2d2) 0%,
91
+ var(--wvb-container-gradient-light-middle, #ffffff) 50%,
92
+ var(--wvb-container-gradient-light-sides, #d2d2d2) 100%);
93
+ }
94
+ .vwb-border-light-banner {
95
+ background:
96
+ linear-gradient(
97
+ 90deg,
98
+ var(--wvb-container-gradient-light-banner-sides, #efefef) 0%,
99
+ var(--wvb-container-gradient-light-middle, #ffffff) 50%,
100
+ var(--wvb-container-gradient-light-banner-sides, #efefef) 100%);
101
+ }
102
+ .vwb-full-gradient {
103
+ background:
104
+ linear-gradient(
105
+ 82deg,
106
+ var(--wvb-gradient-start, #ff6a59) -12.41%,
107
+ var(--wvb-gradient-end, #5377ff) 111.55%);
108
+ }
109
+ .vwb-interactive {
110
+ transition: filter 150ms ease, transform 150ms ease;
111
+ }
112
+ .vwb-interactive:hover {
113
+ filter: brightness(1.08);
114
+ }
115
+ .vwb-interactive:active {
116
+ filter: brightness(0.95);
117
+ transform: scale(0.98);
118
+ }
119
+ .vwb-interactive:focus-visible {
120
+ outline: 2px solid var(--wvb-focus, #00b17e);
121
+ outline-offset: 2px;
122
+ }
123
+ /*# sourceMappingURL=index.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/widgets/verify-wallet-button/styles/verify-wallet-button.css"],"sourcesContent":["/* ===========================\n Verify Wallet Button — Gradients & effects\n Exact values extracted from Figma designs.\n =========================== */\n\n/* Widget-specific variable defaults.\n :host applies in Shadow DOM (Web Component) context — consumer can override:\n arkada-wvbs-widget { --wvb-gradient-start: #custom; --wvb-gradient-end: #custom }\n In plain React / Storybook, :host is ignored and var() fallbacks apply. */\n:host {\n --wvb-gradient-start: #ff6a59;\n --wvb-gradient-end: #5377ff;\n --wvb-verified-start: #0e9035;\n --wvb-verified-end: #14be47;\n --wvb-container-gradient-dark-sides: #000000;\n --wvb-container-gradient-dark-middle: #2d2d2d;\n --wvb-container-gradient-light-sides: #d2d2d2;\n --wvb-container-gradient-light-middle: #ffffff;\n --wvb-container-gradient-light-banner-sides: #efefef;\n --wvb-glow: #be66b3;\n --wvb-focus: #00b17e;\n}\n\n.vwb-gradient-border-dark {\n background: linear-gradient(\n 135deg,\n #ffffff80,\n #ffffff40,\n #ffffff40,\n #ffffff1a\n );\n}\n\n.vwb-gradient-border-light {\n background: linear-gradient(\n 135deg,\n #6b6b6b80,\n #6b6b6b40,\n #6b6b6b40,\n #6b6b6b1a\n );\n}\n\n/* ---- Text gradient ---- */\n.vwb-gradient-text {\n background: linear-gradient(\n 82deg,\n var(--wvb-gradient-start, #ff6a59) -12.41%,\n var(--wvb-gradient-end, #5377ff) 111.55%\n );\n -webkit-background-clip: text;\n background-clip: text;\n -webkit-text-fill-color: transparent;\n}\n\n/* ---- CTA bar gradient ---- */\n.vwb-cta-gradient {\n background: linear-gradient(\n 82deg,\n var(--wvb-gradient-start, #ff6a59) -12.41%,\n var(--wvb-gradient-end, #5377ff) 111.55%\n );\n box-shadow: 0px 0px 6px 0px var(--wvb-glow, #be66b3);\n}\n\n/* ---- Floating gradients ---- */\n.vwb-floating-nv-gradient {\n background: linear-gradient(\n 135deg,\n rgba(217, 217, 217, 0.5) 0%,\n rgba(115, 115, 115, 0.5) 100%\n );\n box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);\n}\n.vwb-floating-nvc-gradient {\n background: var(\n --Gradient-base,\n linear-gradient(\n 82deg,\n rgba(255, 106, 89, 0.5) -12.41%,\n rgba(83, 119, 255, 0.5) 111.55%\n )\n );\n box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);\n}\n.vwb-floating-v-gradient {\n background: linear-gradient(\n 135deg,\n rgba(125, 239, 163, 0.5) 0%,\n rgba(43, 180, 89, 0.5) 100%\n );\n box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);\n}\n\n/* ---- Verified green gradient ---- */\n.vwb-verified-gradient {\n background: linear-gradient(\n 90deg,\n var(--wvb-verified-start, #0e9035) 0%,\n var(--wvb-verified-end, #14be47) 100%\n );\n}\n\n/* ---- Container gradient bg — dark ---- */\n.vwb-border-dark {\n background: linear-gradient(\n 90deg,\n var(--wvb-container-gradient-dark-sides, #000000) 0%,\n var(--wvb-container-gradient-dark-middle, #2d2d2d) 50%,\n var(--wvb-container-gradient-dark-sides, #000000) 100%\n );\n}\n\n/* ---- Container gradient bg — light ---- */\n.vwb-border-light-compact {\n background: linear-gradient(\n 90deg,\n var(--wvb-container-gradient-light-sides, #d2d2d2) 0%,\n var(--wvb-container-gradient-light-middle, #ffffff) 50%,\n var(--wvb-container-gradient-light-sides, #d2d2d2) 100%\n );\n}\n\n/* ---- Container gradient border — light banner ---- */\n.vwb-border-light-banner {\n background: linear-gradient(\n 90deg,\n var(--wvb-container-gradient-light-banner-sides, #efefef) 0%,\n var(--wvb-container-gradient-light-middle, #ffffff) 50%,\n var(--wvb-container-gradient-light-banner-sides, #efefef) 100%\n );\n}\n\n/* ---- Full gradient background inactive ---- */\n.vwb-full-gradient {\n background: linear-gradient(\n 82deg,\n var(--wvb-gradient-start, #ff6a59) -12.41%,\n var(--wvb-gradient-end, #5377ff) 111.55%\n );\n}\n\n/* ---- Hover / press feedback ---- */\n.vwb-interactive {\n transition:\n filter 150ms ease,\n transform 150ms ease;\n}\n\n.vwb-interactive:hover {\n filter: brightness(1.08);\n}\n\n.vwb-interactive:active {\n filter: brightness(0.95);\n transform: scale(0.98);\n}\n\n.vwb-interactive:focus-visible {\n outline: 2px solid var(--wvb-focus, #00b17e);\n outline-offset: 2px;\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,53 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ type WidgetTheme = "light" | "dark";
4
+
5
+ /**
6
+ * Verify Wallet Button — Variant & State Types
7
+ *
8
+ * Naming convention:
9
+ * variant = structural layout (how elements are arranged)
10
+ * theme = dark | light (inherited from parent context)
11
+ * state = verified | unverified (wallet verification status)
12
+ */
13
+ declare const VerifyWalletVariants: {
14
+ /** Chain icon group + gradient text, gradient border */
15
+ readonly COMPACT: "compact";
16
+ /** Toggle icon + gradient text, flat solid bg */
17
+ readonly COMPACT_MINIMAL: "compact-minimal";
18
+ /** Full gradient background — premium look */
19
+ readonly COMPACT_GRADIENT: "compact-gradient";
20
+ /** Icon + full-width CTA gradient bar */
21
+ readonly BANNER: "banner";
22
+ /** 60px circle overlapping a solid-color bar, gradient text */
23
+ readonly FLOATING: "floating";
24
+ /** 60px circle overlapping a gradient CTA bar */
25
+ readonly FLOATING_GRADIENT: "floating-gradient";
26
+ /** Gradient icon zone left + text right */
27
+ readonly PILL: "pill";
28
+ /** Full-width gradient with chevrons */
29
+ readonly PILL_WIDE: "pill-wide";
30
+ /** Pill with status-colored border */
31
+ readonly OUTLINED: "outlined";
32
+ /** Full gradient bar inside status border */
33
+ readonly OUTLINED_WIDE: "outlined-wide";
34
+ };
35
+ type VerifyWalletVariant = (typeof VerifyWalletVariants)[keyof typeof VerifyWalletVariants];
36
+ type VerifyWalletState = "verified" | "unverified";
37
+
38
+ interface WalletVerificationButtonProps {
39
+ walletAddress: string;
40
+ referralCode?: string;
41
+ someVerified?: boolean;
42
+ theme?: WidgetTheme;
43
+ variant?: VerifyWalletVariant;
44
+ }
45
+ /**
46
+ * Smart wallet verification button.
47
+ *
48
+ * Fetches verification status for the given address on mount,
49
+ * then delegates all visual rendering to VerifyWalletButton.
50
+ */
51
+ declare function WalletVerificationButton({ walletAddress, referralCode, someVerified, theme, variant, }: WalletVerificationButtonProps): react_jsx_runtime.JSX.Element;
52
+
53
+ export { type VerifyWalletState, type VerifyWalletVariant, VerifyWalletVariants, WalletVerificationButton, type WalletVerificationButtonProps };
@@ -0,0 +1,53 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ type WidgetTheme = "light" | "dark";
4
+
5
+ /**
6
+ * Verify Wallet Button — Variant & State Types
7
+ *
8
+ * Naming convention:
9
+ * variant = structural layout (how elements are arranged)
10
+ * theme = dark | light (inherited from parent context)
11
+ * state = verified | unverified (wallet verification status)
12
+ */
13
+ declare const VerifyWalletVariants: {
14
+ /** Chain icon group + gradient text, gradient border */
15
+ readonly COMPACT: "compact";
16
+ /** Toggle icon + gradient text, flat solid bg */
17
+ readonly COMPACT_MINIMAL: "compact-minimal";
18
+ /** Full gradient background — premium look */
19
+ readonly COMPACT_GRADIENT: "compact-gradient";
20
+ /** Icon + full-width CTA gradient bar */
21
+ readonly BANNER: "banner";
22
+ /** 60px circle overlapping a solid-color bar, gradient text */
23
+ readonly FLOATING: "floating";
24
+ /** 60px circle overlapping a gradient CTA bar */
25
+ readonly FLOATING_GRADIENT: "floating-gradient";
26
+ /** Gradient icon zone left + text right */
27
+ readonly PILL: "pill";
28
+ /** Full-width gradient with chevrons */
29
+ readonly PILL_WIDE: "pill-wide";
30
+ /** Pill with status-colored border */
31
+ readonly OUTLINED: "outlined";
32
+ /** Full gradient bar inside status border */
33
+ readonly OUTLINED_WIDE: "outlined-wide";
34
+ };
35
+ type VerifyWalletVariant = (typeof VerifyWalletVariants)[keyof typeof VerifyWalletVariants];
36
+ type VerifyWalletState = "verified" | "unverified";
37
+
38
+ interface WalletVerificationButtonProps {
39
+ walletAddress: string;
40
+ referralCode?: string;
41
+ someVerified?: boolean;
42
+ theme?: WidgetTheme;
43
+ variant?: VerifyWalletVariant;
44
+ }
45
+ /**
46
+ * Smart wallet verification button.
47
+ *
48
+ * Fetches verification status for the given address on mount,
49
+ * then delegates all visual rendering to VerifyWalletButton.
50
+ */
51
+ declare function WalletVerificationButton({ walletAddress, referralCode, someVerified, theme, variant, }: WalletVerificationButtonProps): react_jsx_runtime.JSX.Element;
52
+
53
+ export { type VerifyWalletState, type VerifyWalletVariant, VerifyWalletVariants, WalletVerificationButton, type WalletVerificationButtonProps };