@agentiffai/design 0.1.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 (82) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/LICENSE +21 -0
  3. package/README.md +187 -0
  4. package/assets/layout/main-pane-section.png +0 -0
  5. package/assets/layout/nav-complete.png +0 -0
  6. package/assets/layout/nav-horizontal-section.png +0 -0
  7. package/assets/layout/nav-vertical-section.png +0 -0
  8. package/assets/layout/pane-section-dropdowns.png +0 -0
  9. package/assets/layout/pane-section-header.png +0 -0
  10. package/dist/Window-B6e_UfLV.d.ts +429 -0
  11. package/dist/Window-CgGFIYHS.d.cts +429 -0
  12. package/dist/chunk-CNVJ5UF2.js +2069 -0
  13. package/dist/chunk-CNVJ5UF2.js.map +1 -0
  14. package/dist/chunk-CVHHTWDQ.cjs +72 -0
  15. package/dist/chunk-CVHHTWDQ.cjs.map +1 -0
  16. package/dist/chunk-H4VHCHCP.cjs +1268 -0
  17. package/dist/chunk-H4VHCHCP.cjs.map +1 -0
  18. package/dist/chunk-JQ6Q7MDQ.js +67 -0
  19. package/dist/chunk-JQ6Q7MDQ.js.map +1 -0
  20. package/dist/chunk-KNSPBTTJ.cjs +2158 -0
  21. package/dist/chunk-KNSPBTTJ.cjs.map +1 -0
  22. package/dist/chunk-MNXQDDWP.js +2143 -0
  23. package/dist/chunk-MNXQDDWP.js.map +1 -0
  24. package/dist/chunk-P4Q3MHIY.cjs +2093 -0
  25. package/dist/chunk-P4Q3MHIY.cjs.map +1 -0
  26. package/dist/chunk-PAOXD7DF.js +1253 -0
  27. package/dist/chunk-PAOXD7DF.js.map +1 -0
  28. package/dist/copilotkit/index.cjs +611 -0
  29. package/dist/copilotkit/index.cjs.map +1 -0
  30. package/dist/copilotkit/index.d.cts +162 -0
  31. package/dist/copilotkit/index.d.ts +162 -0
  32. package/dist/copilotkit/index.js +538 -0
  33. package/dist/copilotkit/index.js.map +1 -0
  34. package/dist/icons/index.cjs +48 -0
  35. package/dist/icons/index.cjs.map +1 -0
  36. package/dist/icons/index.d.cts +375 -0
  37. package/dist/icons/index.d.ts +375 -0
  38. package/dist/icons/index.js +3 -0
  39. package/dist/icons/index.js.map +1 -0
  40. package/dist/index.cjs +536 -0
  41. package/dist/index.cjs.map +1 -0
  42. package/dist/index.d-DYU1eVeb.d.cts +252 -0
  43. package/dist/index.d-DYU1eVeb.d.ts +252 -0
  44. package/dist/index.d.cts +185 -0
  45. package/dist/index.d.ts +185 -0
  46. package/dist/index.js +358 -0
  47. package/dist/index.js.map +1 -0
  48. package/dist/layout/index.cjs +48 -0
  49. package/dist/layout/index.cjs.map +1 -0
  50. package/dist/layout/index.d.cts +206 -0
  51. package/dist/layout/index.d.ts +206 -0
  52. package/dist/layout/index.js +3 -0
  53. package/dist/layout/index.js.map +1 -0
  54. package/dist/theme/index.cjs +24 -0
  55. package/dist/theme/index.cjs.map +1 -0
  56. package/dist/theme/index.d.cts +95 -0
  57. package/dist/theme/index.d.ts +95 -0
  58. package/dist/theme/index.js +3 -0
  59. package/dist/theme/index.js.map +1 -0
  60. package/package.json +148 -0
  61. package/public/assets/bg-set/brand-logos/Google.svg +1 -0
  62. package/public/assets/bg-set/brand-logos/Google2.svg +1 -0
  63. package/public/assets/bg-set/brand-logos/Microsoft.svg +1 -0
  64. package/public/assets/bg-set/brand-logos/Microsoft2.svg +1 -0
  65. package/public/assets/bg-set/brand-logos/Slack.svg +1 -0
  66. package/public/assets/bg-set/brand-logos/Slack2.svg +1 -0
  67. package/public/assets/bg-set/brand-logos/YouTube.svg +1 -0
  68. package/public/assets/bg-set/brand-logos/YouTube2.svg +1 -0
  69. package/public/assets/bg-set/pattern/Size=lg, Type=Waves Rays2.svg +1 -0
  70. package/public/assets/bg-set/pattern/Size=md, Type=Waves Rays2.svg +1 -0
  71. package/public/assets/bg-set/pattern/Size=sm, Type=Waves Rays2.svg +1 -0
  72. package/public/assets/bg-set/pattern/Size=xl, Type=Waves Rays2.svg +1 -0
  73. package/public/assets/bg-set/pattern/Size=xs, Type=Waves Rays2.svg +1 -0
  74. package/public/assets/icon-set/Icon-add-circle-fill.svg +1 -0
  75. package/public/assets/icon-set/Icon-calendar-fill.svg +1 -0
  76. package/public/assets/icon-set/Icon-chat-1-fill.svg +1 -0
  77. package/public/assets/icon-set/Icon-download-2-fill.svg +1 -0
  78. package/public/assets/icon-set/Icon-home-fill.svg +1 -0
  79. package/public/assets/icon-set/Icon-mic-fill.svg +1 -0
  80. package/public/assets/icon-set/Icon-settings-3-fill.svg +1 -0
  81. package/public/assets/icon-set/Icon-settings-fill.svg +1 -0
  82. package/public/assets/icon-set/Icon-settings-line.svg +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/icons/FacebookIcon/FacebookIcon.tsx","../src/components/icons/GmailIcon/GmailIcon.styles.ts","../src/components/icons/GmailIcon/GmailIcon.tsx","../src/components/icons/InstagramIcon/InstagramIcon.styles.ts","../src/components/icons/InstagramIcon/InstagramIcon.tsx","../src/components/icons/LinkedInIcon/LinkedInIcon.styles.ts","../src/components/icons/LinkedInIcon/LinkedInIcon.tsx","../src/components/icons/RedditIcon/RedditIcon.tsx","../src/components/icons/SlackIcon/SlackIcon.tsx","../src/components/icons/TelegramIcon/TelegramIcon.tsx","../src/components/icons/WhatsAppIcon/WhatsAppIcon.tsx","../src/components/icons/XIcon/XIcon.styles.ts","../src/components/icons/XIcon/XIcon.tsx","../src/components/icons/YouTubeIcon/YouTubeIcon.tsx"],"names":["useId","jsxs","jsx","styled","useRef","useButton","Fragment","StyledIconWrapper","SVG_CONTENT"],"mappings":"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","file":"chunk-H4VHCHCP.cjs","sourcesContent":["import { type SVGAttributes, useId } from 'react';\n\nexport type FacebookIconVariant = 'colored' | 'black' | 'white';\n\nexport interface FacebookIconProps extends Omit<SVGAttributes<SVGSVGElement>, 'viewBox' | 'xmlns'> {\n /**\n * Visual variant of the icon\n * - colored: Facebook brand colors (blue gradient)\n * - black: Solid black\n * - white: Solid white\n */\n variant?: FacebookIconVariant;\n /**\n * Size of the icon in pixels\n */\n size?: number;\n /**\n * Additional CSS class name\n */\n className?: string;\n /**\n * Accessible label for the icon\n * Required for interactive icons, optional for decorative\n */\n 'aria-label'?: string;\n /**\n * Whether the icon is decorative (hidden from screen readers)\n */\n 'aria-hidden'?: boolean;\n /**\n * Click handler for interactive icons\n */\n onClick?: () => void;\n}\n\n/**\n * Facebook brand icon component with three variants\n *\n * @example\n * // Colored variant (default)\n * <FacebookIcon />\n *\n * @example\n * // Black variant with custom size\n * <FacebookIcon variant=\"black\" size={32} />\n *\n * @example\n * // Interactive icon with click handler\n * <FacebookIcon\n * onClick={handleClick}\n * aria-label=\"Share on Facebook\"\n * style={{ cursor: 'pointer' }}\n * />\n *\n * @example\n * // Decorative icon (hidden from screen readers)\n * <FacebookIcon aria-hidden=\"true\" />\n */\nexport function FacebookIcon({\n variant = 'colored',\n size = 24,\n className,\n 'aria-label': ariaLabel,\n 'aria-hidden': ariaHidden,\n onClick,\n ...svgProps\n}: FacebookIconProps) {\n // Generate unique ID for gradient to avoid conflicts when multiple icons are rendered\n const gradientId = useId();\n\n // Determine if icon is interactive\n const isInteractive = !!onClick;\n\n // Set appropriate ARIA attributes\n const ariaAttributes = {\n 'aria-label': ariaLabel,\n 'aria-hidden': ariaHidden !== undefined ? ariaHidden : !ariaLabel && !isInteractive,\n role: isInteractive ? 'button' : undefined,\n tabIndex: isInteractive ? 0 : undefined,\n };\n\n // Handle keyboard interaction for interactive icons\n const handleKeyDown = (event: React.KeyboardEvent<SVGSVGElement>) => {\n if (isInteractive && (event.key === 'Enter' || event.key === ' ')) {\n event.preventDefault();\n onClick?.();\n }\n };\n\n const commonProps = {\n width: size,\n height: size,\n viewBox: '0 0 24 24',\n fill: 'none',\n xmlns: 'http://www.w3.org/2000/svg',\n className,\n onClick,\n onKeyDown: isInteractive ? handleKeyDown : undefined,\n ...ariaAttributes,\n ...svgProps,\n };\n\n // Colored variant (Facebook brand gradient)\n if (variant === 'colored') {\n return (\n <svg {...commonProps}>\n <path\n d=\"M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12Z\"\n fill=\"white\"\n />\n <path\n d=\"M22 12.0611C22 6.50451 17.5229 2 12 2C6.47715 2 2 6.50451 2 12.0611C2 17.0828 5.65684 21.2452 10.4375 22V14.9694H7.89844V12.0611H10.4375V9.84452C10.4375 7.32296 11.9305 5.93012 14.2146 5.93012C15.3084 5.93012 16.4531 6.12663 16.4531 6.12663V8.60261H15.1922C13.95 8.60261 13.5625 9.37822 13.5625 10.1747V12.0611H16.3359L15.8926 14.9694H13.5625V22C18.3432 21.2452 22 17.0828 22 12.0611Z\"\n fill={`url(#${gradientId})`}\n />\n <defs>\n <linearGradient\n id={gradientId}\n x1=\"12\"\n y1=\"2\"\n x2=\"12\"\n y2=\"22\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#50AAF7\" />\n <stop offset=\"1\" stopColor=\"#2961D8\" />\n </linearGradient>\n </defs>\n </svg>\n );\n }\n\n // Black variant\n if (variant === 'black') {\n return (\n <svg {...commonProps}>\n <path\n d=\"M22 12.0611C22 6.50451 17.5229 2 12 2C6.47715 2 2 6.50451 2 12.0611C2 17.0828 5.65684 21.2452 10.4375 22V14.9694H7.89844V12.0611H10.4375V9.84452C10.4375 7.32296 11.9305 5.93012 14.2146 5.93012C15.3084 5.93012 16.4531 6.12663 16.4531 6.12663V8.60261H15.1922C13.95 8.60261 13.5625 9.37822 13.5625 10.1747V12.0611H16.3359L15.8926 14.9694H13.5625V22C18.3432 21.2452 22 17.0828 22 12.0611Z\"\n fill=\"black\"\n />\n </svg>\n );\n }\n\n // White variant\n return (\n <svg {...commonProps}>\n <path\n d=\"M22 12.0611C22 6.50451 17.5229 2 12 2C6.47715 2 2 6.50451 2 12.0611C2 17.0828 5.65684 21.2452 10.4375 22V14.9694H7.89844V12.0611H10.4375V9.84452C10.4375 7.32296 11.9305 5.93012 14.2146 5.93012C15.3084 5.93012 16.4531 6.12663 16.4531 6.12663V8.60261H15.1922C13.95 8.60261 13.5625 9.37822 13.5625 10.1747V12.0611H16.3359L15.8926 14.9694H13.5625V22C18.3432 21.2452 22 17.0828 22 12.0611Z\"\n fill=\"white\"\n />\n </svg>\n );\n}\n\nFacebookIcon.displayName = 'FacebookIcon';\n","import styled from 'styled-components';\n\ninterface StyledIconWrapperProps {\n $size: number;\n}\n\nexport const StyledIconWrapper = styled.button<StyledIconWrapperProps>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: none;\n padding: 0;\n cursor: pointer;\n transition: all 0.2s ease-in-out;\n width: ${({ $size }) => `${$size}px`};\n height: ${({ $size }) => `${$size}px`};\n border-radius: ${({ theme }) => theme?.radii?.sm ?? '4px'};\n\n &:hover:not(:disabled) {\n opacity: 0.8;\n transform: scale(1.05);\n }\n\n &:active:not(:disabled) {\n opacity: 0.6;\n transform: scale(0.95);\n }\n\n &:focus-visible {\n outline: 2px solid ${({ theme }) => (theme?.colors?.primary && typeof theme.colors.primary === 'object' ? theme.colors.primary.light : theme?.colors?.primary) ?? '#0066FF'};\n outline-offset: 2px;\n }\n\n &:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n /* Remove default focus outline, using focus-visible instead */\n &:focus {\n outline: none;\n }\n\n svg {\n display: block;\n width: 100%;\n height: 100%;\n }\n`;\n","import { useButton } from '@react-aria/button';\nimport { useRef } from 'react';\nimport { StyledIconWrapper } from './GmailIcon.styles';\nimport type { GmailIconProps } from './GmailIcon.types';\n\nconst SVG_CONTENT = {\n colored: {\n viewBox: '0 0 24 24',\n paths: [\n {\n d: 'M3.36364 20H6.54545V11.7596L2 8.1242V18.5458C2 19.3505 2.61136 20 3.36364 20Z',\n fill: '#4285F4',\n },\n {\n d: 'M17.4545 20H20.6364C21.3909 20 22 19.348 22 18.5458V8.1242L17.4545 11.7596',\n fill: '#34A853',\n },\n {\n d: 'M17.4545 5.45831V11.7596L22 8.1242V6.1854C22 4.38706 20.075 3.36186 18.7273 4.44038',\n fill: '#FBBC04',\n },\n {\n d: 'M6.54545 11.7596L6.54545 5.4582L12 9.82074L17.4545 5.45831V11.7596L12 16.1222',\n fill: '#EA4335',\n },\n {\n d: 'M2 6.1854V8.1242L6.54545 11.7596L6.54545 5.4582L5.27273 4.44038C3.92273 3.36186 2 4.38706 2 6.1854Z',\n fill: '#C5221F',\n },\n ],\n },\n black: {\n viewBox: '0 0 24 24',\n paths: [\n {\n d: 'M3.36364 20H6.54545V11.7596L2 8.1242V18.5458C2 19.3505 2.61136 20 3.36364 20Z',\n fill: 'black',\n },\n {\n d: 'M17.4545 20H20.6364C21.3909 20 22 19.348 22 18.5458V8.1242L17.4545 11.7596',\n fill: 'black',\n },\n {\n d: 'M17.4545 5.45831V11.7596L22 8.1242V6.1854C22 4.38706 20.075 3.36186 18.7273 4.44038',\n fill: 'black',\n },\n {\n d: 'M6.54545 11.7596L6.54545 5.4582L12 9.82074L17.4545 5.45831V11.7596L12 16.1222',\n fill: 'black',\n },\n {\n d: 'M2 6.1854V8.1242L6.54545 11.7596L6.54545 5.4582L5.27273 4.44038C3.92273 3.36186 2 4.38706 2 6.1854Z',\n fill: 'black',\n },\n ],\n },\n white: {\n viewBox: '0 0 24 24',\n paths: [\n {\n d: 'M3.36364 20H6.54545V11.7596L2 8.1242V18.5458C2 19.3505 2.61136 20 3.36364 20Z',\n fill: 'white',\n },\n {\n d: 'M17.4545 20H20.6364C21.3909 20 22 19.348 22 18.5458V8.1242L17.4545 11.7596',\n fill: 'white',\n },\n {\n d: 'M17.4545 5.45831V11.7596L22 8.1242V6.1854C22 4.38706 20.075 3.36186 18.7273 4.44038',\n fill: 'white',\n },\n {\n d: 'M6.54545 11.7596L6.54545 5.4582L12 9.82074L17.4545 5.45831V11.7596L12 16.1222',\n fill: 'white',\n },\n {\n d: 'M2 6.1854V8.1242L6.54545 11.7596L6.54545 5.4582L5.27273 4.44038C3.92273 3.36186 2 4.38706 2 6.1854Z',\n fill: 'white',\n },\n ],\n },\n};\n\nexport function GmailIcon({\n variant = 'colored',\n size = 24,\n className,\n style,\n 'aria-label': ariaLabel = 'Gmail',\n onPress,\n ...ariaProps\n}: GmailIconProps) {\n const ref = useRef<HTMLButtonElement>(null);\n const isInteractive = Boolean(onPress);\n\n // Only use button semantics if onPress is provided\n const { buttonProps } = useButton(\n {\n ...ariaProps,\n onPress,\n 'aria-label': ariaLabel,\n isDisabled: !isInteractive,\n },\n ref\n );\n\n const svgContent = SVG_CONTENT[variant];\n const role = isInteractive ? 'button' : 'img';\n const ariaHidden = !isInteractive && !ariaLabel;\n\n const svgElement = (\n <svg\n width={size}\n height={size}\n viewBox={svgContent.viewBox}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role={role}\n aria-label={ariaLabel}\n aria-hidden={ariaHidden}\n >\n {svgContent.paths.map((pathProps, index) => (\n <path\n key={`${pathProps.d.substring(0, 20)}-${index}`}\n d={pathProps.d}\n fill={pathProps.fill}\n />\n ))}\n </svg>\n );\n\n if (isInteractive) {\n return (\n <StyledIconWrapper\n {...buttonProps}\n ref={ref}\n className={className}\n style={style}\n $size={size}\n >\n {svgElement}\n </StyledIconWrapper>\n );\n }\n\n return (\n <span\n className={className}\n style={{ display: 'inline-flex', width: size, height: size, ...style }}\n >\n {svgElement}\n </span>\n );\n}\n\nGmailIcon.displayName = 'GmailIcon';\n","import styled from 'styled-components';\n\ninterface StyledInstagramIconProps {\n $size: number;\n}\n\nexport const StyledInstagramIcon = styled.button<StyledInstagramIconProps>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n margin: 0;\n background: transparent;\n border: none;\n cursor: pointer;\n width: ${(props) => props.$size}px;\n height: ${(props) => props.$size}px;\n border-radius: ${(props) => props.theme.radii?.sm || '4px'};\n transition: all 0.2s ease;\n\n /* Focus visible state for accessibility */\n &:focus-visible {\n outline: 2px solid ${(props) => props.theme.colors?.primary || '#007bff'};\n outline-offset: 2px;\n }\n\n /* Hover state */\n &:hover:not(:disabled) {\n opacity: 0.8;\n transform: scale(1.05);\n }\n\n /* Active/pressed state */\n &:active:not(:disabled) {\n transform: scale(0.95);\n }\n\n /* Disabled state */\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n /* Remove default button styles */\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n\n /* Ensure SVG is properly displayed */\n svg {\n display: block;\n pointer-events: none;\n }\n`;\n","import type { AriaButtonProps } from '@react-aria/button';\nimport { useButton } from '@react-aria/button';\nimport { useId, useRef } from 'react';\nimport { StyledInstagramIcon } from './InstagramIcon.styles';\n\nexport type InstagramVariant = 'colored' | 'black' | 'white';\n\nexport interface InstagramIconProps extends Omit<AriaButtonProps, 'children'> {\n /**\n * The variant of the Instagram icon\n * - 'colored': Instagram brand gradient (purple to yellow)\n * - 'black': Solid black icon\n * - 'white': Solid white icon\n * @default 'colored'\n */\n variant?: InstagramVariant;\n /**\n * Size of the icon in pixels\n * @default 24\n */\n size?: number;\n /**\n * Additional CSS class name\n */\n className?: string;\n /**\n * Accessible label for the icon\n * @default 'Instagram'\n */\n 'aria-label'?: string;\n}\n\n/**\n * InstagramIcon component - Displays the Instagram logo with multiple variants\n *\n * This component renders the Instagram logo with three visual variants:\n * colored (brand gradient), black, and white. It uses React ARIA for\n * accessibility and can function as both a decorative icon and an\n * interactive button.\n *\n * @example\n * ```tsx\n * // Colored variant (default)\n * <InstagramIcon />\n *\n * // Black variant with custom size\n * <InstagramIcon variant=\"black\" size={32} />\n *\n * // Interactive icon with click handler\n * <InstagramIcon\n * variant=\"colored\"\n * onPress={() => window.open('https://instagram.com')}\n * aria-label=\"Follow us on Instagram\"\n * />\n * ```\n */\nexport function InstagramIcon({\n variant = 'colored',\n size = 24,\n className,\n 'aria-label': ariaLabel = 'Instagram',\n onPress,\n ...ariaProps\n}: InstagramIconProps) {\n const ref = useRef<HTMLButtonElement>(null);\n const gradientId = useId();\n const isInteractive = Boolean(onPress || ariaProps.onPressStart || ariaProps.onPressEnd);\n\n const { buttonProps } = useButton(\n {\n ...ariaProps,\n onPress,\n 'aria-label': ariaLabel,\n // If not interactive, mark as presentation\n ...(isInteractive ? {} : { 'aria-hidden': true }),\n },\n ref\n );\n\n const renderSvgContent = () => {\n const paths = {\n path1:\n 'M12.0053 7.37695C9.45144 7.37695 7.37952 9.44766 7.37952 12C7.37952 14.5523 9.45144 16.623 12.0053 16.623C14.5591 16.623 16.631 14.5523 16.631 12C16.631 9.44766 14.5591 7.37695 12.0053 7.37695ZM12.0053 14.9988C10.3484 14.9988 9.00469 13.6559 9.00469 12C9.00469 10.3441 10.3484 9.00117 12.0053 9.00117C13.6621 9.00117 15.0059 10.3441 15.0059 12C15.0059 13.6559 13.6621 14.9988 12.0053 14.9988Z',\n path2:\n 'M16.814 8.27345C17.4084 8.27345 17.8939 7.79181 17.8939 7.19415C17.8939 6.60001 17.4084 6.11485 16.814 6.11485C16.2195 6.11485 15.734 6.59649 15.734 7.19415C15.734 7.78829 16.2159 8.27345 16.814 8.27345Z',\n path3:\n 'M12.0053 3C9.56048 3 9.25445 3.01055 8.29412 3.05273C7.33731 3.09492 6.6795 3.24961 6.10963 3.47109C5.51515 3.70312 5.01212 4.00898 4.51261 4.51172C4.00958 5.01094 3.70354 5.51367 3.47137 6.1043C3.24976 6.67734 3.09498 7.33125 3.05277 8.2875C3.01055 9.25078 3 9.55664 3 12C3 14.4434 3.01055 14.7492 3.05277 15.709C3.09498 16.6652 3.24976 17.3227 3.47137 17.8922C3.70354 18.4863 4.00958 18.9891 4.51261 19.4883C5.01212 19.9875 5.51515 20.2969 6.10612 20.5254C6.6795 20.7469 7.33379 20.9016 8.2906 20.9437C9.25093 20.9859 9.55697 20.9965 12.0018 20.9965C14.4465 20.9965 14.7526 20.9859 15.7129 20.9437C16.6697 20.9016 17.3275 20.7469 17.8974 20.5254C18.4884 20.2969 18.9914 19.9875 19.4909 19.4883C19.9904 18.9891 20.3 18.4863 20.5286 17.8957C20.7502 17.3227 20.905 16.6687 20.9472 15.7125C20.9894 14.7527 21 14.4469 21 12.0035C21 9.56016 20.9894 9.2543 20.9472 8.29453C20.905 7.33828 20.7502 6.68086 20.5286 6.11133C20.307 5.51367 20.001 5.01094 19.4979 4.51172C18.9984 4.0125 18.4954 3.70312 17.9044 3.47461C17.3311 3.25312 16.6768 3.09844 15.72 3.05625C14.7561 3.01055 14.4501 3 12.0053 3ZM12.0053 4.6207C14.4114 4.6207 14.6963 4.63125 15.6426 4.67344C16.522 4.71211 16.9969 4.85977 17.3135 4.98281C17.7321 5.14453 18.0346 5.34141 18.3477 5.6543C18.6643 5.9707 18.8577 6.26953 19.0195 6.68789C19.1427 7.0043 19.2904 7.48242 19.3291 8.35781C19.3713 9.30703 19.3819 9.5918 19.3819 11.993C19.3819 14.3977 19.3713 14.6824 19.3291 15.6281C19.2904 16.507 19.1427 16.9816 19.0195 17.298C18.8577 17.7164 18.6607 18.0188 18.3477 18.3316C18.0311 18.648 17.7321 18.8414 17.3135 19.0031C16.9969 19.1262 16.5185 19.2738 15.6426 19.3125C14.6928 19.3547 14.4079 19.3652 12.0053 19.3652C9.59918 19.3652 9.31425 19.3547 8.36799 19.3125C7.48857 19.2738 7.01368 19.1262 6.69709 19.0031C6.27848 18.8414 5.97596 18.6445 5.66289 18.3316C5.3463 18.0152 5.15282 17.7164 4.99101 17.298C4.86789 16.9816 4.72015 16.5035 4.68145 15.6281C4.63924 14.6789 4.62869 14.3941 4.62869 11.993C4.62869 9.58828 4.63924 9.30351 4.68145 8.35781C4.72015 7.47891 4.86789 7.0043 4.99101 6.68789C5.15282 6.26953 5.34981 5.96719 5.66289 5.6543C5.97948 5.33789 6.27848 5.14453 6.69709 4.98281C7.01368 4.85977 7.49209 4.71211 8.36799 4.67344C9.31425 4.63125 9.59918 4.6207 12.0053 4.6207Z',\n };\n\n switch (variant) {\n case 'colored':\n return (\n <>\n <defs>\n <linearGradient\n id={gradientId}\n x1=\"16\"\n y1=\"3\"\n x2=\"6.5\"\n y2=\"21\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#6E3BF1\" />\n <stop offset=\"0.241314\" stopColor=\"#C128BF\" />\n <stop offset=\"0.475694\" stopColor=\"#EA336B\" />\n <stop offset=\"0.715281\" stopColor=\"#EE8131\" />\n <stop offset=\"0.913202\" stopColor=\"#F8D849\" />\n </linearGradient>\n </defs>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d={paths.path1}\n fill={`url(#${gradientId})`}\n />\n <path d={paths.path2} fill={`url(#${gradientId})`} />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d={paths.path3}\n fill={`url(#${gradientId})`}\n />\n </>\n );\n case 'black':\n return (\n <>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d={paths.path1} fill=\"black\" />\n <path d={paths.path2} fill=\"black\" />\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d={paths.path3} fill=\"black\" />\n </>\n );\n case 'white':\n return (\n <>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d={paths.path1} fill=\"white\" />\n <path d={paths.path2} fill=\"white\" />\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d={paths.path3} fill=\"white\" />\n </>\n );\n default:\n return null;\n }\n };\n\n // If not interactive, render as a span instead of button\n if (!isInteractive) {\n return (\n <span className={className} aria-hidden=\"true\">\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{ display: 'block' }}\n role=\"img\"\n aria-label={ariaLabel}\n >\n <title>{ariaLabel}</title>\n {renderSvgContent()}\n </svg>\n </span>\n );\n }\n\n return (\n <StyledInstagramIcon\n {...buttonProps}\n ref={ref}\n className={className}\n $size={size}\n role=\"button\"\n tabIndex={0}\n >\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{ display: 'block' }}\n role=\"img\"\n aria-label={ariaLabel}\n >\n <title>{ariaLabel}</title>\n {renderSvgContent()}\n </svg>\n </StyledInstagramIcon>\n );\n}\n\nInstagramIcon.displayName = 'InstagramIcon';\n","import styled from 'styled-components';\n\ninterface StyledIconWrapperProps {\n $size: number;\n}\n\nexport const StyledIconWrapper = styled.button<StyledIconWrapperProps>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: none;\n padding: 0;\n cursor: pointer;\n transition: all 0.2s ease-in-out;\n width: ${({ $size }) => `${$size}px`};\n height: ${({ $size }) => `${$size}px`};\n border-radius: ${({ theme }) => theme?.radii?.sm ?? '4px'};\n\n &:hover:not(:disabled) {\n opacity: 0.8;\n transform: scale(1.05);\n }\n\n &:active:not(:disabled) {\n opacity: 0.6;\n transform: scale(0.95);\n }\n\n &:focus-visible {\n outline: 2px solid ${({ theme }) => (theme?.colors?.primary && typeof theme.colors.primary === 'object' ? theme.colors.primary.light : theme?.colors?.primary) ?? '#0066FF'};\n outline-offset: 2px;\n }\n\n &:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n /* Remove default focus outline, using focus-visible instead */\n &:focus {\n outline: none;\n }\n\n svg {\n display: block;\n width: 100%;\n height: 100%;\n }\n`;\n","import type { AriaButtonProps } from '@react-aria/button';\nimport { useButton } from '@react-aria/button';\nimport { useRef } from 'react';\nimport { StyledIconWrapper } from './LinkedInIcon.styles';\n\nexport type LinkedInIconVariant = 'colored' | 'black' | 'white';\n\nexport interface LinkedInIconProps extends Partial<AriaButtonProps> {\n variant?: LinkedInIconVariant;\n size?: number;\n className?: string;\n 'aria-label'?: string;\n}\n\nconst SVG_CONTENT = {\n colored: {\n viewBox: '0 0 24 24',\n paths: [\n {\n d: 'M9.85714 9.60714H12.2803V10.8423H12.3069C12.6763 10.1763 13.7674 9.5 15.1166 9.5C17.706 9.5 18.4286 10.8749 18.4286 13.4214V18.1786H15.8571V13.8903C15.8571 12.7503 15.402 11.75 14.3374 11.75C13.0449 11.75 12.4286 12.6251 12.4286 14.0617V18.1786H9.85714V9.60714ZM5.57143 18.1786H8.14286V9.60714H5.57143V18.1786ZM8.46429 6.60714C8.46429 7.49514 7.74514 8.21429 6.85714 8.21429C5.96914 8.21429 5.25 7.49514 5.25 6.60714C5.25 5.71914 5.96914 5 6.85714 5C7.74514 5 8.46429 5.71914 8.46429 6.60714Z',\n fill: 'white',\n fillRule: 'evenodd',\n clipRule: 'evenodd',\n },\n {\n d: 'M19.6963 3H4.35686C3.62314 3 3 3.58029 3 4.29514V19.704C3 20.4197 3.40886 21 4.14257 21H19.482C20.2166 21 21 20.4197 21 19.704V4.29514C21 3.58029 20.4309 3 19.6963 3ZM9.85714 9.85714H12.2803V11.0923H12.3069C12.6763 10.4263 13.7674 9.75 15.1166 9.75C17.706 9.75 18.4286 11.1249 18.4286 13.6714V18.4286H15.8571V14.1403C15.8571 13.0003 15.402 12 14.3374 12C13.0449 12 12.4286 12.8751 12.4286 14.3117V18.4286H9.85714V9.85714ZM5.57143 18.4286H8.14286V9.85714H5.57143V18.4286ZM8.46429 6.85714C8.46429 7.74514 7.74514 8.46429 6.85714 8.46429C5.96914 8.46429 5.25 7.74514 5.25 6.85714C5.25 5.96914 5.96914 5.25 6.85714 5.25C7.74514 5.25 8.46429 5.96914 8.46429 6.85714Z',\n fill: '#2D64BC',\n fillRule: 'evenodd',\n clipRule: 'evenodd',\n },\n ],\n },\n black: {\n viewBox: '0 0 24 24',\n paths: [\n {\n d: 'M19.6963 3H4.35686C3.62314 3 3 3.58029 3 4.29514V19.704C3 20.4197 3.40886 21 4.14257 21H19.482C20.2166 21 21 20.4197 21 19.704V4.29514C21 3.58029 20.4309 3 19.6963 3ZM9.85714 9.85714H12.2803V11.0923H12.3069C12.6763 10.4263 13.7674 9.75 15.1166 9.75C17.706 9.75 18.4286 11.1249 18.4286 13.6714V18.4286H15.8571V14.1403C15.8571 13.0003 15.402 12 14.3374 12C13.0449 12 12.4286 12.8751 12.4286 14.3117V18.4286H9.85714V9.85714ZM5.57143 18.4286H8.14286V9.85714H5.57143V18.4286ZM8.46429 6.85714C8.46429 7.74514 7.74514 8.46429 6.85714 8.46429C5.96914 8.46429 5.25 7.74514 5.25 6.85714C5.25 5.96914 5.96914 5.25 6.85714 5.25C7.74514 5.25 8.46429 5.96914 8.46429 6.85714Z',\n fill: 'black',\n fillRule: 'evenodd',\n clipRule: 'evenodd',\n },\n ],\n },\n white: {\n viewBox: '0 0 24 24',\n paths: [\n {\n d: 'M19.6963 3H4.35686C3.62314 3 3 3.58029 3 4.29514V19.704C3 20.4197 3.40886 21 4.14257 21H19.482C20.2166 21 21 20.4197 21 19.704V4.29514C21 3.58029 20.4309 3 19.6963 3ZM9.85714 9.85714H12.2803V11.0923H12.3069C12.6763 10.4263 13.7674 9.75 15.1166 9.75C17.706 9.75 18.4286 11.1249 18.4286 13.6714V18.4286H15.8571V14.1403C15.8571 13.0003 15.402 12 14.3374 12C13.0449 12 12.4286 12.8751 12.4286 14.3117V18.4286H9.85714V9.85714ZM5.57143 18.4286H8.14286V9.85714H5.57143V18.4286ZM8.46429 6.85714C8.46429 7.74514 7.74514 8.46429 6.85714 8.46429C5.96914 8.46429 5.25 7.74514 5.25 6.85714C5.25 5.96914 5.96914 5.25 6.85714 5.25C7.74514 5.25 8.46429 5.96914 8.46429 6.85714Z',\n fill: 'white',\n fillRule: 'evenodd',\n clipRule: 'evenodd',\n },\n ],\n },\n};\n\nexport function LinkedInIcon({\n variant = 'colored',\n size = 24,\n className,\n 'aria-label': ariaLabel = 'LinkedIn',\n onPress,\n ...ariaProps\n}: LinkedInIconProps) {\n const ref = useRef<HTMLButtonElement>(null);\n const isInteractive = Boolean(onPress);\n\n // Only use button semantics if onPress is provided\n const { buttonProps } = useButton(\n {\n ...ariaProps,\n onPress,\n 'aria-label': ariaLabel,\n isDisabled: !isInteractive,\n },\n ref\n );\n\n const svgContent = SVG_CONTENT[variant];\n const role = isInteractive ? 'button' : 'img';\n const ariaHidden = !isInteractive && !ariaLabel;\n\n const svgElement = (\n <svg\n width={size}\n height={size}\n viewBox={svgContent.viewBox}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role={role}\n aria-label={ariaLabel}\n aria-hidden={ariaHidden}\n >\n {svgContent.paths.map((pathProps) => (\n <path\n key={`${pathProps.d.substring(0, 20)}-${pathProps.fill}`}\n d={pathProps.d}\n fill={pathProps.fill}\n fillRule={pathProps.fillRule as 'evenodd' | 'nonzero' | 'inherit' | undefined}\n clipRule={pathProps.clipRule as 'evenodd' | 'nonzero' | 'inherit' | undefined}\n />\n ))}\n </svg>\n );\n\n if (isInteractive) {\n return (\n <StyledIconWrapper {...buttonProps} ref={ref} className={className} $size={size}>\n {svgElement}\n </StyledIconWrapper>\n );\n }\n\n return (\n <span className={className} style={{ display: 'inline-flex', width: size, height: size }}>\n {svgElement}\n </span>\n );\n}\n\nLinkedInIcon.displayName = 'LinkedInIcon';\n","import type { SVGAttributes } from 'react';\n\nexport type RedditIconVariant = 'colored' | 'black' | 'white';\n\nexport interface RedditIconProps\n extends Omit<SVGAttributes<SVGSVGElement>, 'viewBox' | 'fill' | 'xmlns'> {\n /** Visual variant of the icon */\n variant?: RedditIconVariant;\n /** Size of the icon in pixels */\n size?: number;\n /** Additional CSS class */\n className?: string;\n /** Click handler for interactive icons */\n onClick?: () => void;\n /** Accessible label for screen readers */\n 'aria-label'?: string;\n}\n\nconst ColoredVariant = () => (\n <>\n <path\n d=\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\"\n fill=\"#FF4500\"\n />\n <path\n d=\"M18.67 12C18.672 12.137 18.655 12.2738 18.619 12.406C18.583 12.5383 18.5285 12.665 18.457 12.782C18.3858 12.899 18.2983 13.0055 18.1973 13.0983C18.0963 13.191 17.9828 13.269 17.86 13.33C17.8628 13.3665 17.865 13.4033 17.8663 13.44C17.8693 13.5133 17.8693 13.5867 17.8663 13.66C17.865 13.6968 17.8628 13.7335 17.86 13.77C17.86 16.01 15.25 17.83 12.03 17.83C8.81003 17.83 6.20003 16.01 6.20003 13.77C6.19728 13.7335 6.19503 13.6968 6.19378 13.66C6.19077 13.5867 6.19077 13.5133 6.19378 13.44C6.19503 13.4033 6.19728 13.3665 6.20003 13.33C6.00772 13.2416 5.83691 13.1125 5.69943 12.9516C5.56194 12.7906 5.46107 12.6018 5.40378 12.398C5.34658 12.1942 5.3344 11.9803 5.36807 11.7713C5.40174 11.5623 5.48046 11.3631 5.59878 11.1875C5.71699 11.012 5.87197 10.8642 6.05299 10.7546C6.234 10.6449 6.4367 10.576 6.64703 10.5525C6.85738 10.5289 7.07035 10.5514 7.27117 10.6183C7.47199 10.6852 7.65585 10.795 7.81003 10.94C8.09624 10.746 8.3961 10.573 8.70728 10.4223C9.01853 10.2718 9.34028 10.1438 9.67003 10.0398C9.99978 9.93576 10.3368 9.85601 10.678 9.80076C11.0193 9.74551 11.3643 9.71526 11.71 9.71001L12.45 6.24001C12.4583 6.19976 12.4745 6.16176 12.4978 6.12776C12.5208 6.09401 12.5505 6.06501 12.5848 6.04276C12.6193 6.02051 12.6578 6.00526 12.6983 5.99776C12.7385 5.99051 12.78 5.99126 12.82 6.00001L15.27 6.49001C15.5173 6.06526 16.0363 5.88326 16.4945 6.06026C16.9528 6.23726 17.2148 6.72101 17.1123 7.20151C17.01 7.68201 16.5735 8.01701 16.083 7.99176C15.5923 7.96651 15.1925 7.58851 15.14 7.10001L13 6.65001L12.35 9.77001C12.6915 9.77726 13.0323 9.80926 13.3693 9.86551C14.0441 9.978 14.6992 10.1873 15.3143 10.487C15.6215 10.6365 15.9175 10.8079 16.2 11C16.4032 10.805 16.6585 10.6729 16.935 10.6198C17.2116 10.5664 17.4977 10.5943 17.7588 10.7C18.0199 10.8057 18.2449 10.9846 18.4065 11.2153C18.5683 11.4459 18.6598 11.7185 18.67 12ZM8.74603 13.3828C8.79653 13.504 8.87003 13.6143 8.96303 13.707C9.05578 13.8 9.16603 13.8735 9.28728 13.924C9.40864 13.9742 9.53869 14 9.67003 14C10.0745 14 10.439 13.7563 10.594 13.3828C10.7488 13.009 10.663 12.579 10.377 12.293C10.091 12.007 9.66103 11.9213 9.28728 12.076C8.91378 12.231 8.67003 12.5955 8.67003 13C8.67003 13.1313 8.69578 13.2613 8.74603 13.3828ZM14.4735 15.7833C14.5248 15.7333 14.554 15.665 14.555 15.5935C14.556 15.5218 14.5283 15.4528 14.4783 15.4015C14.4283 15.3503 14.36 15.321 14.2885 15.32C14.2168 15.319 14.1478 15.3468 14.09 15.39C13.9397 15.4979 13.7804 15.5928 13.614 15.6738C13.4476 15.7548 13.2747 15.8216 13.097 15.8735C12.9195 15.9253 12.7378 15.962 12.554 15.9833C12.37 16.0045 12.1848 16.01 12 16C11.8155 16.0083 11.6305 16.0008 11.4473 15.9778C11.264 15.955 11.083 15.9165 10.9063 15.8628C10.7293 15.8093 10.5575 15.7408 10.3923 15.6583C10.227 15.5758 10.069 15.4793 9.92003 15.37C9.86828 15.3275 9.80253 15.3058 9.73553 15.309C9.66853 15.3123 9.60528 15.3405 9.55778 15.3878C9.51053 15.4353 9.48228 15.4985 9.47903 15.5655C9.47578 15.6325 9.49753 15.6983 9.54003 15.75C9.71578 15.8825 9.90253 15.9995 10.0983 16.1C10.294 16.2005 10.4983 16.2838 10.7083 16.3493C10.9183 16.4148 11.1335 16.462 11.3518 16.4908C11.57 16.5193 11.7903 16.529 12.01 16.52C12.2298 16.529 12.45 16.5193 12.6683 16.4908C13.1054 16.4333 13.5294 16.3011 13.9218 16.1C14.1175 15.9995 14.3043 15.8825 14.48 15.75L14.4735 15.7833ZM14.29 14.08C14.4255 14.0815 14.56 14.0553 14.6853 14.0033C14.8105 13.951 14.9238 13.874 15.0183 13.7768C15.1128 13.6795 15.1863 13.564 15.2348 13.4373C15.2833 13.3107 15.3055 13.1755 15.3 13.04C15.3 12.6355 15.0563 12.271 14.6828 12.116C14.309 11.9613 13.879 12.047 13.593 12.333C13.307 12.619 13.2213 13.049 13.376 13.4228C13.531 13.7963 13.8955 14.04 14.3 14.04L14.29 14.08Z\"\n fill=\"white\"\n />\n </>\n);\n\nconst BlackVariant = () => (\n <>\n <path\n d=\"M8.96303 13.707C8.87003 13.6143 8.79653 13.504 8.74603 13.3828C8.69578 13.2613 8.67003 13.1313 8.67003 13C8.67003 12.5955 8.91378 12.231 9.28728 12.076C9.66103 11.9213 10.091 12.007 10.377 12.293C10.663 12.579 10.7488 13.009 10.594 13.3828C10.439 13.7563 10.0745 14 9.67003 14C9.53869 14 9.40864 13.9742 9.28728 13.924C9.16603 13.8735 9.05578 13.8 8.96303 13.707Z\"\n fill=\"black\"\n />\n <path\n d=\"M14.555 15.5935C14.554 15.665 14.5248 15.7333 14.4735 15.7833L14.48 15.75C14.3043 15.8825 14.1175 15.9995 13.9218 16.1C13.5294 16.3011 13.1054 16.4333 12.6683 16.4908C12.45 16.5193 12.2298 16.529 12.01 16.52C11.7903 16.529 11.57 16.5193 11.3518 16.4908C11.1335 16.462 10.9183 16.4148 10.7083 16.3493C10.4983 16.2838 10.294 16.2005 10.0983 16.1C9.90253 15.9995 9.71578 15.8825 9.54003 15.75C9.49753 15.6983 9.47578 15.6325 9.47903 15.5655C9.48228 15.4985 9.51053 15.4353 9.55778 15.3878C9.60528 15.3405 9.66853 15.3123 9.73553 15.309C9.80253 15.3058 9.86828 15.3275 9.92003 15.37C10.069 15.4793 10.227 15.5758 10.3923 15.6583C10.5575 15.7408 10.7293 15.8093 10.9063 15.8628C11.083 15.9165 11.264 15.955 11.4473 15.9778C11.6305 16.0008 11.8155 16.0083 12 16C12.1848 16.01 12.37 16.0045 12.554 15.9833C12.7378 15.962 12.9195 15.9253 13.097 15.8735C13.2747 15.8216 13.4476 15.7548 13.614 15.6738C13.7804 15.5928 13.9397 15.4979 14.09 15.39C14.1478 15.3468 14.2168 15.319 14.2885 15.32C14.36 15.321 14.4283 15.3503 14.4783 15.4015C14.5283 15.4528 14.556 15.5218 14.555 15.5935Z\"\n fill=\"black\"\n />\n <path\n d=\"M14.6853 14.0033C14.56 14.0553 14.4255 14.0815 14.29 14.08L14.3 14.04C13.8955 14.04 13.531 13.7963 13.376 13.4228C13.2213 13.049 13.307 12.619 13.593 12.333C13.879 12.047 14.309 11.9613 14.6828 12.116C15.0563 12.271 15.3 12.6355 15.3 13.04C15.3055 13.1755 15.2833 13.3107 15.2348 13.4373C15.1863 13.564 15.1128 13.6795 15.0183 13.7768C14.9238 13.874 14.8105 13.951 14.6853 14.0033Z\"\n fill=\"black\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM18.619 12.406C18.655 12.2738 18.672 12.137 18.67 12C18.6598 11.7185 18.5683 11.4459 18.4065 11.2153C18.2449 10.9846 18.0199 10.8057 17.7588 10.7C17.4977 10.5943 17.2116 10.5664 16.935 10.6198C16.6585 10.6729 16.4032 10.805 16.2 11C15.9175 10.8079 15.6215 10.6365 15.3143 10.487C14.6992 10.1873 14.0441 9.978 13.3693 9.86551C13.0323 9.80926 12.6915 9.77726 12.35 9.77001L13 6.65001L15.14 7.10001C15.1925 7.58851 15.5923 7.96651 16.083 7.99176C16.5735 8.01701 17.01 7.68201 17.1123 7.20151C17.2148 6.72101 16.9528 6.23726 16.4945 6.06026C16.0363 5.88326 15.5173 6.06526 15.27 6.49001L12.82 6.00001C12.78 5.99126 12.7385 5.99051 12.6983 5.99776C12.6578 6.00526 12.6193 6.02051 12.5848 6.04276C12.5505 6.06501 12.5208 6.09401 12.4978 6.12776C12.4745 6.16176 12.4583 6.19976 12.45 6.24001L11.71 9.71001C11.3643 9.71526 11.0193 9.74551 10.678 9.80076C10.3368 9.85601 9.99978 9.93576 9.67003 10.0398C9.34028 10.1438 9.01853 10.2718 8.70728 10.4223C8.3961 10.573 8.09624 10.746 7.81003 10.94C7.65585 10.795 7.47198 10.6852 7.27117 10.6183C7.07035 10.5514 6.85738 10.5289 6.64703 10.5525C6.4367 10.576 6.234 10.6449 6.05299 10.7546C5.87197 10.8642 5.71699 11.012 5.59878 11.1875C5.48046 11.3631 5.40174 11.5623 5.36807 11.7713C5.3344 11.9803 5.34658 12.1942 5.40378 12.398C5.46107 12.6018 5.56194 12.7906 5.69943 12.9516C5.83691 13.1125 6.00772 13.2416 6.20003 13.33C6.19728 13.3665 6.19503 13.4033 6.19378 13.44C6.19077 13.5133 6.19077 13.5867 6.19378 13.66C6.19503 13.6968 6.19728 13.7335 6.20003 13.77C6.20003 16.01 8.81003 17.83 12.03 17.83C15.25 17.83 17.86 16.01 17.86 13.77C17.8628 13.7335 17.865 13.6968 17.8663 13.66C17.8693 13.5867 17.8693 13.5133 17.8663 13.44C17.865 13.4033 17.8628 13.3665 17.86 13.33C17.9828 13.269 18.0963 13.191 18.1973 13.0983C18.2983 13.0055 18.3858 12.899 18.457 12.782C18.5285 12.665 18.583 12.5383 18.619 12.406Z\"\n fill=\"black\"\n />\n </>\n);\n\nconst WhiteVariant = () => (\n <>\n <path\n d=\"M8.96303 13.707C8.87003 13.6143 8.79653 13.504 8.74603 13.3828C8.69578 13.2613 8.67003 13.1313 8.67003 13C8.67003 12.5955 8.91378 12.231 9.28728 12.076C9.66103 11.9213 10.091 12.007 10.377 12.293C10.663 12.579 10.7488 13.009 10.594 13.3828C10.439 13.7563 10.0745 14 9.67003 14C9.53869 14 9.40864 13.9742 9.28728 13.924C9.16603 13.8735 9.05578 13.8 8.96303 13.707Z\"\n fill=\"white\"\n />\n <path\n d=\"M14.555 15.5935C14.554 15.665 14.5248 15.7333 14.4735 15.7833L14.48 15.75C14.3043 15.8825 14.1175 15.9995 13.9218 16.1C13.5294 16.3011 13.1054 16.4333 12.6683 16.4908C12.45 16.5193 12.2298 16.529 12.01 16.52C11.7903 16.529 11.57 16.5193 11.3518 16.4908C11.1335 16.462 10.9183 16.4148 10.7083 16.3493C10.4983 16.2838 10.294 16.2005 10.0983 16.1C9.90253 15.9995 9.71578 15.8825 9.54003 15.75C9.49753 15.6983 9.47578 15.6325 9.47903 15.5655C9.48228 15.4985 9.51053 15.4353 9.55778 15.3878C9.60528 15.3405 9.66853 15.3123 9.73553 15.309C9.80253 15.3058 9.86828 15.3275 9.92003 15.37C10.069 15.4793 10.227 15.5758 10.3923 15.6583C10.5575 15.7408 10.7293 15.8093 10.9063 15.8628C11.083 15.9165 11.264 15.955 11.4473 15.9778C11.6305 16.0008 11.8155 16.0083 12 16C12.1848 16.01 12.37 16.0045 12.554 15.9833C12.7378 15.962 12.9195 15.9253 13.097 15.8735C13.2747 15.8216 13.4476 15.7548 13.614 15.6738C13.7804 15.5928 13.9397 15.4979 14.09 15.39C14.1478 15.3468 14.2168 15.319 14.2885 15.32C14.36 15.321 14.4283 15.3503 14.4783 15.4015C14.5283 15.4528 14.556 15.5218 14.555 15.5935Z\"\n fill=\"white\"\n />\n <path\n d=\"M14.6853 14.0033C14.56 14.0553 14.4255 14.0815 14.29 14.08L14.3 14.04C13.8955 14.04 13.531 13.7963 13.376 13.4228C13.2213 13.049 13.307 12.619 13.593 12.333C13.879 12.047 14.309 11.9613 14.6828 12.116C15.0563 12.271 15.3 12.6355 15.3 13.04C15.3055 13.1755 15.2833 13.3107 15.2348 13.4373C15.1863 13.564 15.1128 13.6795 15.0183 13.7768C14.9238 13.874 14.8105 13.951 14.6853 14.0033Z\"\n fill=\"white\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM18.619 12.406C18.655 12.2738 18.672 12.137 18.67 12C18.6598 11.7185 18.5683 11.4459 18.4065 11.2153C18.2449 10.9846 18.0199 10.8057 17.7588 10.7C17.4977 10.5943 17.2116 10.5664 16.935 10.6198C16.6585 10.6729 16.4032 10.805 16.2 11C15.9175 10.8079 15.6215 10.6365 15.3143 10.487C14.6992 10.1873 14.0441 9.978 13.3693 9.86551C13.0323 9.80926 12.6915 9.77726 12.35 9.77001L13 6.65001L15.14 7.10001C15.1925 7.58851 15.5923 7.96651 16.083 7.99176C16.5735 8.01701 17.01 7.68201 17.1123 7.20151C17.2148 6.72101 16.9528 6.23726 16.4945 6.06026C16.0363 5.88326 15.5173 6.06526 15.27 6.49001L12.82 6.00001C12.78 5.99126 12.7385 5.99051 12.6983 5.99776C12.6578 6.00526 12.6193 6.02051 12.5848 6.04276C12.5505 6.06501 12.5208 6.09401 12.4978 6.12776C12.4745 6.16176 12.4583 6.19976 12.45 6.24001L11.71 9.71001C11.3643 9.71526 11.0193 9.74551 10.678 9.80076C10.3368 9.85601 9.99978 9.93576 9.67003 10.0398C9.34028 10.1438 9.01853 10.2718 8.70728 10.4223C8.3961 10.573 8.09624 10.746 7.81003 10.94C7.65585 10.795 7.47198 10.6852 7.27117 10.6183C7.07035 10.5514 6.85738 10.5289 6.64703 10.5525C6.4367 10.576 6.234 10.6449 6.05299 10.7546C5.87197 10.8642 5.71699 11.012 5.59878 11.1875C5.48046 11.3631 5.40174 11.5623 5.36807 11.7713C5.3344 11.9803 5.34658 12.1942 5.40378 12.398C5.46107 12.6018 5.56194 12.7906 5.69943 12.9516C5.83691 13.1125 6.00772 13.2416 6.20003 13.33C6.19728 13.3665 6.19503 13.4033 6.19378 13.44C6.19077 13.5133 6.19077 13.5867 6.19378 13.66C6.19503 13.6968 6.19728 13.7335 6.20003 13.77C6.20003 16.01 8.81003 17.83 12.03 17.83C15.25 17.83 17.86 16.01 17.86 13.77C17.8628 13.7335 17.865 13.6968 17.8663 13.66C17.8693 13.5867 17.8693 13.5133 17.8663 13.44C17.865 13.4033 17.8628 13.3665 17.86 13.33C17.9828 13.269 18.0963 13.191 18.1973 13.0983C18.2983 13.0055 18.3858 12.899 18.457 12.782C18.5285 12.665 18.583 12.5383 18.619 12.406Z\"\n fill=\"white\"\n />\n </>\n);\n\nexport function RedditIcon({\n variant = 'colored',\n size = 24,\n className,\n onClick,\n 'aria-label': ariaLabel,\n ...svgProps\n}: RedditIconProps) {\n const role = onClick ? 'button' : 'img';\n const tabIndex = onClick ? 0 : undefined;\n const cursor = onClick ? 'pointer' : undefined;\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (onClick && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n onClick();\n }\n };\n\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n onClick={onClick}\n onKeyDown={onClick ? handleKeyDown : undefined}\n role={role}\n tabIndex={tabIndex}\n aria-label={ariaLabel || 'Reddit icon'}\n style={{ cursor, ...svgProps.style }}\n {...svgProps}\n >\n {variant === 'colored' && <ColoredVariant />}\n {variant === 'black' && <BlackVariant />}\n {variant === 'white' && <WhiteVariant />}\n </svg>\n );\n}\n\nRedditIcon.displayName = 'RedditIcon';\n","import type React from 'react';\n\nexport type SlackIconVariant = 'colored' | 'black' | 'white';\n\nexport interface SlackIconProps {\n variant?: SlackIconVariant;\n size?: number;\n className?: string;\n onClick?: (event: React.MouseEvent<SVGSVGElement>) => void;\n 'aria-label'?: string;\n}\n\nconst SlackIconColored: React.FC<Omit<SlackIconProps, 'variant'>> = ({\n size = 24,\n className,\n onClick,\n 'aria-label': ariaLabel,\n}) => (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n onClick={onClick}\n role={onClick ? 'button' : ariaLabel ? 'img' : 'presentation'}\n aria-label={ariaLabel}\n tabIndex={onClick ? 0 : undefined}\n onKeyDown={\n onClick\n ? (e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onClick(e as unknown as React.MouseEvent<SVGSVGElement>);\n }\n }\n : undefined\n }\n >\n <path\n d=\"M6.79552 14.379C6.79552 15.4252 5.95068 16.2707 4.90538 16.2707C3.86007 16.2707 3.01523 15.4252 3.01523 14.379C3.01523 13.3328 3.86007 12.4873 4.90538 12.4873H6.79552V14.379ZM7.74059 14.379C7.74059 13.3328 8.58542 12.4873 9.63073 12.4873C10.676 12.4873 11.5209 13.3328 11.5209 14.379V19.1083C11.5209 20.1545 10.676 21 9.63073 21C8.58542 21 7.74059 20.1545 7.74059 19.1083V14.379Z\"\n fill=\"#DF1D5A\"\n />\n <path\n d=\"M9.62982 6.78342C8.58451 6.78342 7.73967 5.93788 7.73967 4.89171C7.73967 3.84554 8.58451 3 9.62982 3C10.6751 3 11.52 3.84554 11.52 4.89171V6.78342H9.62982ZM9.62982 7.7436C10.6751 7.7436 11.52 8.58914 11.52 9.63531C11.52 10.6815 10.6751 11.527 9.62982 11.527H4.89014C3.84484 11.527 3 10.6815 3 9.63531C3 8.58914 3.84484 7.7436 4.89014 7.7436H9.62982Z\"\n fill=\"#36C5F1\"\n />\n <path\n d=\"M17.2054 9.63531C17.2054 8.58914 18.0502 7.7436 19.0955 7.7436C20.1408 7.7436 20.9857 8.58914 20.9857 9.63531C20.9857 10.6815 20.1408 11.527 19.0955 11.527H17.2054V9.63531ZM16.2603 9.63531C16.2603 10.6815 15.4155 11.527 14.3702 11.527C13.3249 11.527 12.48 10.6815 12.48 9.63531V4.89171C12.48 3.84554 13.3249 3 14.3702 3C15.4155 3 16.2603 3.84554 16.2603 4.89171V9.63531Z\"\n fill=\"#2DB67E\"\n />\n <path\n d=\"M14.3702 17.2166C15.4155 17.2166 16.2603 18.0621 16.2603 19.1083C16.2603 20.1545 15.4155 21 14.3702 21C13.3249 21 12.48 20.1545 12.48 19.1083V17.2166H14.3702ZM14.3702 16.2707C13.3249 16.2707 12.48 15.4252 12.48 14.379C12.48 13.3328 13.3249 12.4873 14.3702 12.4873H19.1099C20.1552 12.4873 21 13.3328 21 14.379C21 15.4252 20.1552 16.2707 19.1099 16.2707H14.3702Z\"\n fill=\"#EBB22D\"\n />\n </svg>\n);\n\nconst SlackIconBlack: React.FC<Omit<SlackIconProps, 'variant'>> = ({\n size = 24,\n className,\n onClick,\n 'aria-label': ariaLabel,\n}) => (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n onClick={onClick}\n role={onClick ? 'button' : ariaLabel ? 'img' : 'presentation'}\n aria-label={ariaLabel}\n tabIndex={onClick ? 0 : undefined}\n onKeyDown={\n onClick\n ? (e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onClick(e as unknown as React.MouseEvent<SVGSVGElement>);\n }\n }\n : undefined\n }\n >\n <path\n d=\"M6.79552 14.379C6.79552 15.4252 5.95068 16.2707 4.90538 16.2707C3.86007 16.2707 3.01523 15.4252 3.01523 14.379C3.01523 13.3328 3.86007 12.4873 4.90538 12.4873H6.79552V14.379ZM7.74059 14.379C7.74059 13.3328 8.58542 12.4873 9.63073 12.4873C10.676 12.4873 11.5209 13.3328 11.5209 14.379V19.1083C11.5209 20.1545 10.676 21 9.63073 21C8.58542 21 7.74059 20.1545 7.74059 19.1083V14.379Z\"\n fill=\"black\"\n />\n <path\n d=\"M9.62982 6.78342C8.58451 6.78342 7.73967 5.93788 7.73967 4.89171C7.73967 3.84554 8.58451 3 9.62982 3C10.6751 3 11.52 3.84554 11.52 4.89171V6.78342H9.62982ZM9.62982 7.7436C10.6751 7.7436 11.52 8.58914 11.52 9.63531C11.52 10.6815 10.6751 11.527 9.62982 11.527H4.89014C3.84484 11.527 3 10.6815 3 9.63531C3 8.58914 3.84484 7.7436 4.89014 7.7436H9.62982Z\"\n fill=\"black\"\n />\n <path\n d=\"M17.2054 9.63531C17.2054 8.58914 18.0502 7.7436 19.0955 7.7436C20.1408 7.7436 20.9857 8.58914 20.9857 9.63531C20.9857 10.6815 20.1408 11.527 19.0955 11.527H17.2054V9.63531ZM16.2603 9.63531C16.2603 10.6815 15.4155 11.527 14.3702 11.527C13.3249 11.527 12.48 10.6815 12.48 9.63531V4.89171C12.48 3.84554 13.3249 3 14.3702 3C15.4155 3 16.2603 3.84554 16.2603 4.89171V9.63531Z\"\n fill=\"black\"\n />\n <path\n d=\"M14.3702 17.2166C15.4155 17.2166 16.2603 18.0621 16.2603 19.1083C16.2603 20.1545 15.4155 21 14.3702 21C13.3249 21 12.48 20.1545 12.48 19.1083V17.2166H14.3702ZM14.3702 16.2707C13.3249 16.2707 12.48 15.4252 12.48 14.379C12.48 13.3328 13.3249 12.4873 14.3702 12.4873H19.1099C20.1552 12.4873 21 13.3328 21 14.379C21 15.4252 20.1552 16.2707 19.1099 16.2707H14.3702Z\"\n fill=\"black\"\n />\n </svg>\n);\n\nconst SlackIconWhite: React.FC<Omit<SlackIconProps, 'variant'>> = ({\n size = 24,\n className,\n onClick,\n 'aria-label': ariaLabel,\n}) => (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n onClick={onClick}\n role={onClick ? 'button' : ariaLabel ? 'img' : 'presentation'}\n aria-label={ariaLabel}\n tabIndex={onClick ? 0 : undefined}\n onKeyDown={\n onClick\n ? (e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onClick(e as unknown as React.MouseEvent<SVGSVGElement>);\n }\n }\n : undefined\n }\n >\n <path\n d=\"M6.79552 14.379C6.79552 15.4252 5.95068 16.2707 4.90538 16.2707C3.86007 16.2707 3.01523 15.4252 3.01523 14.379C3.01523 13.3328 3.86007 12.4873 4.90538 12.4873H6.79552V14.379ZM7.74059 14.379C7.74059 13.3328 8.58542 12.4873 9.63073 12.4873C10.676 12.4873 11.5209 13.3328 11.5209 14.379V19.1083C11.5209 20.1545 10.676 21 9.63073 21C8.58542 21 7.74059 20.1545 7.74059 19.1083V14.379Z\"\n fill=\"white\"\n />\n <path\n d=\"M9.62982 6.78342C8.58451 6.78342 7.73967 5.93788 7.73967 4.89171C7.73967 3.84554 8.58451 3 9.62982 3C10.6751 3 11.52 3.84554 11.52 4.89171V6.78342H9.62982ZM9.62982 7.7436C10.6751 7.7436 11.52 8.58914 11.52 9.63531C11.52 10.6815 10.6751 11.527 9.62982 11.527H4.89014C3.84484 11.527 3 10.6815 3 9.63531C3 8.58914 3.84484 7.7436 4.89014 7.7436H9.62982Z\"\n fill=\"white\"\n />\n <path\n d=\"M17.2054 9.63531C17.2054 8.58914 18.0502 7.7436 19.0955 7.7436C20.1408 7.7436 20.9857 8.58914 20.9857 9.63531C20.9857 10.6815 20.1408 11.527 19.0955 11.527H17.2054V9.63531ZM16.2603 9.63531C16.2603 10.6815 15.4155 11.527 14.3702 11.527C13.3249 11.527 12.48 10.6815 12.48 9.63531V4.89171C12.48 3.84554 13.3249 3 14.3702 3C15.4155 3 16.2603 3.84554 16.2603 4.89171V9.63531Z\"\n fill=\"white\"\n />\n <path\n d=\"M14.3702 17.2166C15.4155 17.2166 16.2603 18.0621 16.2603 19.1083C16.2603 20.1545 15.4155 21 14.3702 21C13.3249 21 12.48 20.1545 12.48 19.1083V17.2166H14.3702ZM14.3702 16.2707C13.3249 16.2707 12.48 15.4252 12.48 14.379C12.48 13.3328 13.3249 12.4873 14.3702 12.4873H19.1099C20.1552 12.4873 21 13.3328 21 14.379C21 15.4252 20.1552 16.2707 19.1099 16.2707H14.3702Z\"\n fill=\"white\"\n />\n </svg>\n);\n\nexport function SlackIcon({\n variant = 'colored',\n size = 24,\n className,\n onClick,\n 'aria-label': ariaLabel = 'Slack icon',\n}: SlackIconProps) {\n const iconProps = {\n size,\n className,\n onClick,\n 'aria-label': ariaLabel,\n };\n\n switch (variant) {\n case 'black':\n return <SlackIconBlack {...iconProps} />;\n case 'white':\n return <SlackIconWhite {...iconProps} />;\n default:\n return <SlackIconColored {...iconProps} />;\n }\n}\n\nSlackIcon.displayName = 'SlackIcon';\n","import { type SVGAttributes, useId } from 'react';\n\nexport type TelegramIconVariant = 'colored' | 'black' | 'white';\n\nexport interface TelegramIconProps extends Omit<SVGAttributes<SVGSVGElement>, 'viewBox' | 'xmlns'> {\n /**\n * Visual variant of the icon\n * - colored: Telegram brand colors (blue gradient)\n * - black: Solid black\n * - white: Solid white\n */\n variant?: TelegramIconVariant;\n /**\n * Size of the icon in pixels\n */\n size?: number;\n /**\n * Additional CSS class name\n */\n className?: string;\n /**\n * Accessible label for the icon\n * Required for interactive icons, optional for decorative\n */\n 'aria-label'?: string;\n /**\n * Whether the icon is decorative (hidden from screen readers)\n */\n 'aria-hidden'?: boolean;\n /**\n * Click handler for interactive icons\n */\n onClick?: () => void;\n}\n\n/**\n * Telegram brand icon component with three variants\n *\n * Features:\n * - Three variants: colored (gradient), black, and white\n * - Customizable size (default 24px)\n * - Accessible with proper ARIA attributes\n * - Works as both decorative and interactive elements\n * - Inline SVG for optimal performance\n *\n * @example\n * // Colored variant (default)\n * <TelegramIcon />\n *\n * @example\n * // Black variant with custom size\n * <TelegramIcon variant=\"black\" size={32} />\n *\n * @example\n * // Interactive icon with click handler\n * <TelegramIcon\n * onClick={handleClick}\n * aria-label=\"Share on Telegram\"\n * style={{ cursor: 'pointer' }}\n * />\n *\n * @example\n * // Decorative icon (hidden from screen readers)\n * <TelegramIcon aria-hidden=\"true\" />\n */\nexport function TelegramIcon({\n variant = 'colored',\n size = 24,\n className,\n 'aria-label': ariaLabel,\n 'aria-hidden': ariaHidden,\n onClick,\n ...svgProps\n}: TelegramIconProps) {\n // Generate unique ID for gradient to avoid conflicts when multiple icons are rendered\n const gradientId = useId();\n\n // Determine if icon is interactive\n const isInteractive = !!onClick;\n\n // Set appropriate ARIA attributes\n const ariaAttributes = {\n 'aria-label': ariaLabel,\n 'aria-hidden': ariaHidden !== undefined ? ariaHidden : !ariaLabel && !isInteractive,\n role: isInteractive ? 'button' : undefined,\n tabIndex: isInteractive ? 0 : undefined,\n };\n\n // Handle keyboard interaction for interactive icons\n const handleKeyDown = (event: React.KeyboardEvent<SVGSVGElement>) => {\n if (isInteractive && (event.key === 'Enter' || event.key === ' ')) {\n event.preventDefault();\n onClick?.();\n }\n };\n\n const commonProps = {\n width: size,\n height: size,\n viewBox: '0 0 20 20',\n fill: 'none',\n xmlns: 'http://www.w3.org/2000/svg',\n className,\n onClick,\n onKeyDown: isInteractive ? handleKeyDown : undefined,\n ...ariaAttributes,\n ...svgProps,\n };\n\n // Colored variant (Telegram brand gradient)\n if (variant === 'colored') {\n return (\n <svg {...commonProps}>\n <path\n d=\"M18 10C18 14.4183 14.4183 18 10 18C5.58172 18 2 14.4183 2 10C2 5.58172 5.58172 2 10 2C14.4183 2 18 5.58172 18 10Z\"\n fill=\"white\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M20 10C20 15.5228 15.5228 20 10 20C4.47715 20 0 15.5228 0 10C0 4.47715 4.47715 0 10 0C15.5228 0 20 4.47715 20 10ZM10.3583 7.38245C9.38569 7.78701 7.44176 8.62434 4.52656 9.89445C4.05318 10.0827 3.8052 10.2669 3.78262 10.4469C3.74447 10.7513 4.12558 10.8711 4.64454 11.0343C4.71513 11.0565 4.78828 11.0795 4.86326 11.1039C5.37385 11.2698 6.06067 11.464 6.41772 11.4717C6.7416 11.4787 7.10309 11.3452 7.50218 11.0711C10.2259 9.23251 11.632 8.30319 11.7202 8.28315C11.7825 8.26902 11.8688 8.25125 11.9273 8.30322C11.9858 8.35519 11.98 8.45361 11.9738 8.48002C11.9361 8.64096 10.4401 10.0318 9.66592 10.7515C9.42457 10.9759 9.25338 11.135 9.21838 11.1714C9.13998 11.2528 9.06009 11.3298 8.9833 11.4039C8.50895 11.8611 8.15324 12.204 9.00299 12.764C9.41134 13.0331 9.7381 13.2556 10.0641 13.4776C10.4201 13.7201 10.7752 13.9619 11.2347 14.2631C11.3517 14.3398 11.4635 14.4195 11.5724 14.4971C11.9867 14.7925 12.3589 15.0579 12.8188 15.0155C13.086 14.991 13.362 14.7397 13.5022 13.9903C13.8335 12.2193 14.4847 8.38206 14.6352 6.80082C14.6483 6.66229 14.6318 6.48499 14.6184 6.40716C14.6051 6.32932 14.5773 6.21843 14.4761 6.13634C14.3563 6.03912 14.1713 6.01862 14.0886 6.02008C13.7125 6.0267 13.1354 6.22736 10.3583 7.38245Z\"\n fill={`url(#${gradientId})`}\n />\n <defs>\n <linearGradient\n id={gradientId}\n x1=\"20\"\n y1=\"-1.19209e-06\"\n x2=\"1.19209e-06\"\n y2=\"20\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#29AAEB\" />\n <stop offset=\"1\" stopColor=\"#23A0DC\" />\n </linearGradient>\n </defs>\n </svg>\n );\n }\n\n // Black variant\n if (variant === 'black') {\n return (\n <svg {...commonProps}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M20 10C20 15.5228 15.5228 20 10 20C4.47715 20 0 15.5228 0 10C0 4.47715 4.47715 0 10 0C15.5228 0 20 4.47715 20 10ZM10.3583 7.38245C9.38569 7.78701 7.44176 8.62434 4.52656 9.89445C4.05318 10.0827 3.8052 10.2669 3.78262 10.4469C3.74447 10.7513 4.12558 10.8711 4.64454 11.0343C4.71513 11.0565 4.78828 11.0795 4.86326 11.1039C5.37385 11.2698 6.06067 11.464 6.41772 11.4717C6.7416 11.4787 7.10309 11.3452 7.50218 11.0711C10.2259 9.23251 11.632 8.30319 11.7202 8.28315C11.7825 8.26902 11.8688 8.25125 11.9273 8.30322C11.9858 8.35519 11.98 8.45361 11.9738 8.48002C11.9361 8.64096 10.4401 10.0318 9.66592 10.7515C9.42457 10.9759 9.25338 11.135 9.21838 11.1714C9.13998 11.2528 9.06009 11.3298 8.9833 11.4039C8.50895 11.8611 8.15324 12.204 9.00299 12.764C9.41134 13.0331 9.7381 13.2556 10.0641 13.4776C10.4201 13.7201 10.7752 13.9619 11.2347 14.2631C11.3517 14.3398 11.4635 14.4195 11.5724 14.4971C11.9867 14.7925 12.3589 15.0579 12.8188 15.0155C13.086 14.991 13.362 14.7397 13.5022 13.9903C13.8335 12.2193 14.4847 8.38206 14.6352 6.80082C14.6483 6.66229 14.6318 6.48499 14.6184 6.40716C14.6051 6.32932 14.5773 6.21843 14.4761 6.13634C14.3563 6.03912 14.1713 6.01862 14.0886 6.02008C13.7125 6.0267 13.1354 6.22736 10.3583 7.38245Z\"\n fill=\"black\"\n />\n </svg>\n );\n }\n\n // White variant\n return (\n <svg {...commonProps}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M20 10C20 15.5228 15.5228 20 10 20C4.47715 20 0 15.5228 0 10C0 4.47715 4.47715 0 10 0C15.5228 0 20 4.47715 20 10ZM10.3583 7.38245C9.38569 7.78701 7.44176 8.62434 4.52656 9.89445C4.05318 10.0827 3.8052 10.2669 3.78262 10.4469C3.74447 10.7513 4.12558 10.8711 4.64454 11.0343C4.71513 11.0565 4.78828 11.0795 4.86326 11.1039C5.37385 11.2698 6.06067 11.464 6.41772 11.4717C6.7416 11.4787 7.10309 11.3452 7.50218 11.0711C10.2259 9.23251 11.632 8.30319 11.7202 8.28315C11.7825 8.26902 11.8688 8.25125 11.9273 8.30322C11.9858 8.35519 11.98 8.45361 11.9738 8.48002C11.9361 8.64096 10.4401 10.0318 9.66592 10.7515C9.42457 10.9759 9.25338 11.135 9.21838 11.1714C9.13998 11.2528 9.06009 11.3298 8.9833 11.4039C8.50895 11.8611 8.15324 12.204 9.00299 12.764C9.41134 13.0331 9.7381 13.2556 10.0641 13.4776C10.4201 13.7201 10.7752 13.9619 11.2347 14.2631C11.3517 14.3398 11.4635 14.4195 11.5724 14.4971C11.9867 14.7925 12.3589 15.0579 12.8188 15.0155C13.086 14.991 13.362 14.7397 13.5022 13.9903C13.8335 12.2193 14.4847 8.38206 14.6352 6.80082C14.6483 6.66229 14.6318 6.48499 14.6184 6.40716C14.6051 6.32932 14.5773 6.21843 14.4761 6.13634C14.3563 6.03912 14.1713 6.01862 14.0886 6.02008C13.7125 6.0267 13.1354 6.22736 10.3583 7.38245Z\"\n fill=\"white\"\n />\n </svg>\n );\n}\n\nTelegramIcon.displayName = 'TelegramIcon';\n","import type { SVGProps } from 'react';\n\nexport type WhatsAppIconVariant = 'colored' | 'black' | 'white';\n\nexport interface WhatsAppIconProps extends Omit<SVGProps<SVGSVGElement>, 'children'> {\n /**\n * Visual variant of the icon\n * - colored: Green WhatsApp brand color (#25D366) on white background\n * - black: Solid black icon\n * - white: Solid white icon\n * @default 'colored'\n */\n variant?: WhatsAppIconVariant;\n /**\n * Size of the icon in pixels\n * @default 24\n */\n size?: number;\n /**\n * Additional CSS class name\n */\n className?: string;\n /**\n * Accessible label for the icon\n * Required for interactive icons, optional for decorative ones\n */\n 'aria-label'?: string;\n /**\n * Whether the icon is decorative only (hidden from screen readers)\n * @default false\n */\n 'aria-hidden'?: boolean;\n /**\n * Click handler for interactive icons\n */\n onClick?: () => void;\n}\n\n/**\n * WhatsApp brand icon component with three visual variants.\n * Built with accessibility in mind - supports both decorative and interactive use cases.\n *\n * @example\n * ```tsx\n * // Decorative icon\n * <WhatsAppIcon variant=\"colored\" aria-hidden />\n *\n * // Interactive icon (button/link)\n * <WhatsAppIcon\n * variant=\"white\"\n * aria-label=\"Share on WhatsApp\"\n * onClick={handleShare}\n * />\n *\n * // Custom size\n * <WhatsAppIcon size={32} variant=\"black\" />\n * ```\n */\nexport function WhatsAppIcon({\n variant = 'colored',\n size = 24,\n className,\n 'aria-label': ariaLabel,\n 'aria-hidden': ariaHidden = false,\n onClick,\n ...svgProps\n}: WhatsAppIconProps) {\n const isInteractive = Boolean(onClick || svgProps.role === 'button');\n\n // Ensure accessibility: interactive icons must have a label\n const finalAriaLabel = isInteractive && !ariaLabel ? 'WhatsApp' : ariaLabel;\n const finalAriaHidden = isInteractive ? false : ariaHidden;\n\n const commonProps: SVGProps<SVGSVGElement> = {\n width: size,\n height: size,\n viewBox: '0 0 24 24',\n fill: 'none',\n xmlns: 'http://www.w3.org/2000/svg',\n className,\n 'aria-label': finalAriaLabel,\n 'aria-hidden': finalAriaHidden,\n onClick,\n role: isInteractive ? 'button' : undefined,\n tabIndex: isInteractive ? 0 : undefined,\n style: {\n cursor: isInteractive ? 'pointer' : undefined,\n ...svgProps.style,\n },\n ...svgProps,\n };\n\n // Colored variant: Green WhatsApp brand color on white background\n if (variant === 'colored') {\n return (\n // biome-ignore lint/a11y/noSvgWithoutTitle: aria-label and aria-hidden are handled via props\n <svg {...commonProps}>\n <path\n d=\"M16.6687 14.01C16.4678 13.9101 15.1616 13.3109 14.9607 13.211C14.7598 13.1111 14.5588 13.1111 14.3579 13.3109C14.157 13.5106 13.7551 14.1099 13.5542 14.3096C13.4536 14.5094 13.2527 14.5094 13.0518 14.4095C12.3484 14.1099 11.6452 13.7104 11.0424 13.211C10.54 12.7116 10.0376 12.1124 9.63577 11.5131C9.53529 11.3134 9.63577 11.1136 9.73623 11.0137C9.8367 10.9138 9.93717 10.7141 10.1381 10.6142C10.2386 10.5144 10.3391 10.3146 10.3391 10.2147C10.4395 10.1149 10.4395 9.91511 10.3391 9.81523C10.2386 9.71535 9.73623 8.51685 9.53529 8.01748C9.43482 7.31835 9.23388 7.31835 9.03294 7.31835C8.93247 7.31835 8.73153 7.31835 8.53059 7.31835C8.32964 7.31835 8.02823 7.51811 7.92776 7.61798C7.32494 8.21722 7.02353 8.91635 7.02353 9.71535C7.124 10.6142 7.42541 11.5131 8.02823 12.3121C9.13341 13.9101 10.54 15.2085 12.248 16.0075C12.7503 16.2073 13.1522 16.407 13.6546 16.5069C14.157 16.7066 14.6592 16.7066 15.2622 16.6067C15.9654 16.5069 16.5682 16.0075 16.9701 15.4083C17.1711 15.0087 17.1711 14.6093 17.0706 14.2097C17.0706 14.2097 16.8696 14.1099 16.6687 14.01ZM19.1805 4.92135C15.2622 1.02622 8.93247 1.02622 5.01412 4.92135C1.79906 8.11735 1.19624 13.0113 3.40659 16.9064L2 22L7.32494 20.6017C8.832 21.4007 10.4395 21.8003 12.0471 21.8003C17.573 21.8003 21.9937 17.4057 21.9937 11.9126C22.0941 9.31585 20.989 6.81898 19.1805 4.92135ZM16.4678 18.9039C15.1616 19.7029 13.6546 20.2023 12.0471 20.2023C10.54 20.2023 9.13341 19.8027 7.8273 19.1036L7.52588 18.9039L4.4113 19.7029L5.21506 16.7066L5.01412 16.407C2.60282 12.412 3.80847 7.41822 7.72682 4.92135C11.6452 2.42447 16.6687 3.72284 19.08 7.51811C21.4913 11.4133 20.3861 16.5069 16.4678 18.9039Z\"\n fill=\"white\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M16.4678 18.9039C15.1616 19.7029 13.6546 20.2023 12.0471 20.2023C10.54 20.2023 9.13341 19.8027 7.8273 19.1036L7.52588 18.9039L4.4113 19.7029L5.21506 16.7066L5.01412 16.407C2.60282 12.412 3.80847 7.41822 7.72682 4.92135C11.6452 2.42447 16.6687 3.72284 19.08 7.51811C21.4913 11.4133 20.3861 16.5069 16.4678 18.9039ZM14.9607 13.211C15.1616 13.3109 16.4678 13.9101 16.6687 14.01C16.8696 14.1099 17.0706 14.2097 17.0706 14.2097C17.1711 14.6093 17.1711 15.0087 16.9701 15.4083C16.5682 16.0075 15.9654 16.5069 15.2622 16.6067C14.6592 16.7066 14.157 16.7066 13.6546 16.5069C13.1522 16.407 12.7503 16.2073 12.248 16.0075C10.54 15.2085 9.13341 13.9101 8.02823 12.3121C7.42541 11.5131 7.124 10.6142 7.02353 9.71535C7.02353 8.91635 7.32494 8.21722 7.92776 7.61798C8.02823 7.51811 8.32964 7.31835 8.53059 7.31835H9.03294C9.23388 7.31835 9.43482 7.31835 9.53529 8.01748C9.73623 8.51685 10.2386 9.71535 10.3391 9.81523C10.4395 9.91511 10.4395 10.1149 10.3391 10.2147C10.3391 10.3146 10.2386 10.5144 10.1381 10.6142C9.93717 10.7141 9.8367 10.9138 9.73623 11.0137C9.63577 11.1136 9.53529 11.3134 9.63577 11.5131C10.0376 12.1124 10.54 12.7116 11.0424 13.211C11.6452 13.7104 12.3484 14.1099 13.0518 14.4095C13.2527 14.5094 13.4536 14.5094 13.5542 14.3096C13.7551 14.1099 14.157 13.5106 14.3579 13.3109C14.5588 13.1111 14.7598 13.1111 14.9607 13.211Z\"\n fill=\"#25D366\"\n />\n </svg>\n );\n }\n\n // Black variant: Solid black icon\n if (variant === 'black') {\n return (\n // biome-ignore lint/a11y/noSvgWithoutTitle: aria-label and aria-hidden are handled via props\n <svg {...commonProps}>\n <path\n d=\"M12.0419 2C6.5529 2 2.08581 6.446 2.08387 11.91C2.08258 13.6573 2.54194 15.3627 3.4129 16.8647L2 22L7.27935 20.622C8.74788 21.4158 10.3808 21.8298 12.0381 21.8287H12.0419C17.531 21.8287 21.9981 17.382 22 11.918C22.0013 9.27133 20.9665 6.78 19.0858 4.90733C17.2058 3.034 14.7058 2.00067 12.0419 2ZM12.0419 20.1547H12.0387C10.5535 20.1547 9.09677 19.7573 7.82581 19.0067L7.52258 18.828L4.39097 19.6453L5.2271 16.6053L5.03032 16.294C4.20381 14.9914 3.76383 13.4676 3.76452 11.91C3.76645 7.368 7.48 3.674 12.0452 3.674C14.2555 3.67467 16.3335 4.53267 17.8968 6.08933C19.46 7.646 20.32 9.716 20.3187 11.9173C20.3168 16.4593 16.6039 20.1547 12.0413 20.1547H12.0419ZM16.5819 13.9847C16.3329 13.8613 15.1097 13.262 14.8813 13.1787C14.6535 13.0967 14.4877 13.054 14.3219 13.302C14.1568 13.55 13.6794 14.108 13.5348 14.2727C13.389 14.438 13.2439 14.458 12.9948 14.3347C12.7458 14.2107 11.9439 13.9493 10.9942 13.1053C10.2542 12.4493 9.75484 11.6387 9.60968 11.39C9.46452 11.1427 9.59419 11.0087 9.71871 10.8853C9.83032 10.7753 9.96774 10.5967 10.0916 10.452C10.2155 10.3073 10.2568 10.204 10.3406 10.0387C10.4232 9.874 10.3819 9.72867 10.3194 9.60533C10.2568 9.48067 9.76 8.262 9.55161 7.76667C9.35032 7.284 9.14516 7.34867 8.99226 7.34067C8.8471 7.334 8.68193 7.332 8.51484 7.332C8.35032 7.332 8.08 7.394 7.85161 7.642C7.62387 7.89 6.98064 8.48867 6.98064 9.70733C6.98064 10.9267 7.87226 12.104 7.99677 12.2693C8.12129 12.434 9.75161 14.936 12.2477 16.0093C12.8413 16.2633 13.3045 16.416 13.6665 16.5307C14.2626 16.7193 14.8052 16.692 15.2335 16.6287C15.711 16.5573 16.7058 16.03 16.9123 15.452C17.12 14.874 17.12 14.378 17.0581 14.2747C16.9974 14.1713 16.831 14.1093 16.5819 13.9847Z\"\n fill=\"black\"\n />\n </svg>\n );\n }\n\n // White variant: Solid white icon\n return (\n // biome-ignore lint/a11y/noSvgWithoutTitle: aria-label and aria-hidden are handled via props\n <svg {...commonProps}>\n <path\n d=\"M12.0419 2C6.5529 2 2.08581 6.446 2.08387 11.91C2.08258 13.6573 2.54194 15.3627 3.4129 16.8647L2 22L7.27935 20.622C8.74788 21.4158 10.3808 21.8298 12.0381 21.8287H12.0419C17.531 21.8287 21.9981 17.382 22 11.918C22.0013 9.27133 20.9665 6.78 19.0858 4.90733C17.2058 3.034 14.7058 2.00067 12.0419 2ZM12.0419 20.1547H12.0387C10.5535 20.1547 9.09677 19.7573 7.82581 19.0067L7.52258 18.828L4.39097 19.6453L5.2271 16.6053L5.03032 16.294C4.20381 14.9914 3.76383 13.4676 3.76452 11.91C3.76645 7.368 7.48 3.674 12.0452 3.674C14.2555 3.67467 16.3335 4.53267 17.8968 6.08933C19.46 7.646 20.32 9.716 20.3187 11.9173C20.3168 16.4593 16.6039 20.1547 12.0413 20.1547H12.0419ZM16.5819 13.9847C16.3329 13.8613 15.1097 13.262 14.8813 13.1787C14.6535 13.0967 14.4877 13.054 14.3219 13.302C14.1568 13.55 13.6794 14.108 13.5348 14.2727C13.389 14.438 13.2439 14.458 12.9948 14.3347C12.7458 14.2107 11.9439 13.9493 10.9942 13.1053C10.2542 12.4493 9.75484 11.6387 9.60968 11.39C9.46452 11.1427 9.59419 11.0087 9.71871 10.8853C9.83032 10.7753 9.96774 10.5967 10.0916 10.452C10.2155 10.3073 10.2568 10.204 10.3406 10.0387C10.4232 9.874 10.3819 9.72867 10.3194 9.60533C10.2568 9.48067 9.76 8.262 9.55161 7.76667C9.35032 7.284 9.14516 7.34867 8.99226 7.34067C8.8471 7.334 8.68193 7.332 8.51484 7.332C8.35032 7.332 8.08 7.394 7.85161 7.642C7.62387 7.89 6.98064 8.48867 6.98064 9.70733C6.98064 10.9267 7.87226 12.104 7.99677 12.2693C8.12129 12.434 9.75161 14.936 12.2477 16.0093C12.8413 16.2633 13.3045 16.416 13.6665 16.5307C14.2626 16.7193 14.8052 16.692 15.2335 16.6287C15.711 16.5573 16.7058 16.03 16.9123 15.452C17.12 14.874 17.12 14.378 17.0581 14.2747C16.9974 14.1713 16.831 14.1093 16.5819 13.9847Z\"\n fill=\"white\"\n />\n </svg>\n );\n}\n\nWhatsAppIcon.displayName = 'WhatsAppIcon';\n","import styled from 'styled-components';\n\ninterface StyledXIconProps {\n $isInteractive?: boolean;\n}\n\nexport const StyledXIcon = styled.svg<StyledXIconProps>`\n display: inline-block;\n vertical-align: middle;\n flex-shrink: 0;\n\n ${({ $isInteractive, theme }) =>\n $isInteractive &&\n `\n cursor: pointer;\n transition: opacity 0.2s ease;\n\n &:hover {\n opacity: 0.8;\n }\n\n &:active {\n opacity: 0.6;\n }\n\n &:focus-visible {\n outline: 2px solid ${theme?.colors?.primary ?? '#007bff'};\n outline-offset: 2px;\n border-radius: 2px;\n }\n `}\n`;\n","import type React from 'react';\nimport { StyledXIcon } from './XIcon.styles';\n\nexport type XIconVariant = 'colored' | 'black' | 'white';\n\nexport interface XIconProps {\n /**\n * The variant of the X icon to display\n * @default 'colored'\n */\n variant?: XIconVariant;\n /**\n * The size of the icon in pixels\n * @default 24\n */\n size?: number;\n /**\n * Additional CSS class name\n */\n className?: string;\n /**\n * Click handler for interactive icons\n */\n onClick?: (event: React.MouseEvent<SVGSVGElement>) => void;\n /**\n * Accessible label for the icon\n * If not provided and icon is interactive, defaults to \"X (formerly Twitter) icon\"\n */\n 'aria-label'?: string;\n /**\n * Whether the icon is purely decorative (will hide from screen readers)\n * @default false\n */\n decorative?: boolean;\n}\n\n// SVG path data for the X icon (same shape for all variants, only fill changes)\nconst X_PATH =\n 'M13.8593 10.4694L21.135 2.00513H19.4109L13.0935 9.35455L8.0477 2.00513H2.22803L9.85819 13.1188L2.22803 21.9949H3.95223L10.6236 14.2336L15.9523 21.9949H21.772L13.8589 10.4694H13.8593ZM11.4978 13.2167L10.7247 12.11L4.57348 3.30414H7.22176L12.1859 10.4108L12.959 11.5174L19.4117 20.7549H16.7635L11.4978 13.2171V13.2167Z';\n\n/**\n * XIcon component - Displays the X (formerly Twitter) icon with three variants\n *\n * This component renders the X social media icon with support for colored (black),\n * explicit black, and white variants. It's fully accessible and can be used as both\n * a decorative element and an interactive button.\n *\n * @example\n * ```tsx\n * // Colored variant (default, black)\n * <XIcon />\n *\n * // White variant for dark backgrounds\n * <XIcon variant=\"white\" size={32} />\n *\n * // Interactive icon with click handler\n * <XIcon\n * variant=\"colored\"\n * onClick={() => window.open('https://x.com/yourhandle')}\n * aria-label=\"Visit our X profile\"\n * />\n *\n * // Decorative icon (hidden from screen readers)\n * <XIcon decorative />\n * ```\n */\nexport function XIcon({\n variant = 'colored',\n size = 24,\n className,\n onClick,\n 'aria-label': ariaLabel,\n decorative = false,\n}: XIconProps) {\n // Determine the fill color based on variant\n const getFillColor = () => {\n switch (variant) {\n case 'white':\n return 'white';\n case 'black':\n return '#121619';\n default:\n return 'black';\n }\n };\n\n // If interactive but no aria-label provided, use default\n const accessibilityProps = decorative\n ? {\n 'aria-hidden': true,\n role: 'presentation',\n }\n : {\n 'aria-label': ariaLabel || 'X (formerly Twitter) icon',\n role: onClick ? 'button' : 'img',\n };\n\n return (\n <StyledXIcon\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n onClick={onClick}\n $isInteractive={!!onClick}\n {...accessibilityProps}\n >\n <path d={X_PATH} fill={getFillColor()} />\n </StyledXIcon>\n );\n}\n\nXIcon.displayName = 'XIcon';\n","import type React from 'react';\n\nexport type YouTubeIconVariant = 'colored' | 'black' | 'white';\n\nexport interface YouTubeIconProps {\n variant?: YouTubeIconVariant;\n size?: number;\n className?: string;\n onClick?: () => void;\n 'aria-label'?: string;\n}\n\nexport function YouTubeIcon({\n variant = 'colored',\n size = 24,\n className,\n onClick,\n 'aria-label': ariaLabel,\n}: YouTubeIconProps) {\n const role = onClick ? 'button' : 'img';\n const tabIndex = onClick ? 0 : undefined;\n const cursor = onClick ? 'pointer' : undefined;\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (onClick && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n onClick();\n }\n };\n\n // Colored variant (red YouTube color)\n if (variant === 'colored') {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n onClick={onClick}\n onKeyDown={handleKeyDown}\n role={role}\n aria-label={ariaLabel || 'YouTube'}\n tabIndex={tabIndex}\n style={{ cursor }}\n >\n <path\n d=\"M21.8008 7.7366C21.8008 7.7366 21.6055 6.26618 21.0039 5.62052C20.2422 4.77076 19.3906 4.76659 19 4.71661C16.2031 4.5 12.0039 4.5 12.0039 4.5H11.9961C11.9961 4.5 7.79688 4.5 5 4.71661C4.60938 4.76659 3.75781 4.77076 2.99609 5.62052C2.39453 6.26618 2.20312 7.7366 2.20312 7.7366C2.20312 7.7366 2 9.46529 2 11.1898V12.806C2 14.5305 2.19922 16.2592 2.19922 16.2592C2.19922 16.2592 2.39453 17.7297 2.99219 18.3753C3.75391 19.2251 4.75391 19.1959 5.19922 19.2876C6.80078 19.45 12 19.5 12 19.5C12 19.5 16.2031 19.4917 19 19.2792C19.3906 19.2292 20.2422 19.2251 21.0039 18.3753C21.6055 17.7297 21.8008 16.2592 21.8008 16.2592C21.8008 16.2592 22 14.5347 22 12.806V11.1898C22 9.46529 21.8008 7.7366 21.8008 7.7366Z\"\n fill=\"white\"\n />\n <path\n d=\"M21.8008 7.7366C21.8008 7.7366 21.6055 6.26618 21.0039 5.62052C20.2422 4.77076 19.3906 4.76659 19 4.71661C16.2031 4.5 12.0039 4.5 12.0039 4.5H11.9961C11.9961 4.5 7.79688 4.5 5 4.71661C4.60938 4.76659 3.75781 4.77076 2.99609 5.62052C2.39453 6.26618 2.20312 7.7366 2.20312 7.7366C2.20312 7.7366 2 9.46529 2 11.1898V12.806C2 14.5305 2.19922 16.2592 2.19922 16.2592C2.19922 16.2592 2.39453 17.7297 2.99219 18.3753C3.75391 19.2251 4.75391 19.1959 5.19922 19.2876C6.80078 19.45 12 19.5 12 19.5C12 19.5 16.2031 19.4917 19 19.2792C19.3906 19.2292 20.2422 19.2251 21.0039 18.3753C21.6055 17.7297 21.8008 16.2592 21.8008 16.2592C21.8008 16.2592 22 14.5347 22 12.806V11.1898C22 9.46529 21.8008 7.7366 21.8008 7.7366ZM9.93359 14.768V8.77381L15.3359 11.7813L9.93359 14.768Z\"\n fill=\"#FE0000\"\n />\n </svg>\n );\n }\n\n // Black variant\n if (variant === 'black') {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n onClick={onClick}\n onKeyDown={handleKeyDown}\n role={role}\n aria-label={ariaLabel || 'YouTube'}\n tabIndex={tabIndex}\n style={{ cursor }}\n >\n <path\n d=\"M21.8008 7.7366C21.8008 7.7366 21.6055 6.26618 21.0039 5.62052C20.2422 4.77076 19.3906 4.76659 19 4.71661C16.2031 4.5 12.0039 4.5 12.0039 4.5H11.9961C11.9961 4.5 7.79688 4.5 5 4.71661C4.60938 4.76659 3.75781 4.77076 2.99609 5.62052C2.39453 6.26618 2.20312 7.7366 2.20312 7.7366C2.20312 7.7366 2 9.46529 2 11.1898V12.806C2 14.5305 2.19922 16.2592 2.19922 16.2592C2.19922 16.2592 2.39453 17.7297 2.99219 18.3753C3.75391 19.2251 4.75391 19.1959 5.19922 19.2876C6.80078 19.45 12 19.5 12 19.5C12 19.5 16.2031 19.4917 19 19.2792C19.3906 19.2292 20.2422 19.2251 21.0039 18.3753C21.6055 17.7297 21.8008 16.2592 21.8008 16.2592C21.8008 16.2592 22 14.5347 22 12.806V11.1898C22 9.46529 21.8008 7.7366 21.8008 7.7366ZM9.93359 14.768V8.77381L15.3359 11.7813L9.93359 14.768Z\"\n fill=\"black\"\n />\n </svg>\n );\n }\n\n // White variant\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n onClick={onClick}\n onKeyDown={handleKeyDown}\n role={role}\n aria-label={ariaLabel || 'YouTube'}\n tabIndex={tabIndex}\n style={{ cursor }}\n >\n <path\n d=\"M21.8008 7.7366C21.8008 7.7366 21.6055 6.26618 21.0039 5.62052C20.2422 4.77076 19.3906 4.76659 19 4.71661C16.2031 4.5 12.0039 4.5 12.0039 4.5H11.9961C11.9961 4.5 7.79688 4.5 5 4.71661C4.60938 4.76659 3.75781 4.77076 2.99609 5.62052C2.39453 6.26618 2.20312 7.7366 2.20312 7.7366C2.20312 7.7366 2 9.46529 2 11.1898V12.806C2 14.5305 2.19922 16.2592 2.19922 16.2592C2.19922 16.2592 2.39453 17.7297 2.99219 18.3753C3.75391 19.2251 4.75391 19.1959 5.19922 19.2876C6.80078 19.45 12 19.5 12 19.5C12 19.5 16.2031 19.4917 19 19.2792C19.3906 19.2292 20.2422 19.2251 21.0039 18.3753C21.6055 17.7297 21.8008 16.2592 21.8008 16.2592C21.8008 16.2592 22 14.5347 22 12.806V11.1898C22 9.46529 21.8008 7.7366 21.8008 7.7366ZM9.93359 14.768V8.77381L15.3359 11.7813L9.93359 14.768Z\"\n fill=\"white\"\n />\n </svg>\n );\n}\n\nYouTubeIcon.displayName = 'YouTubeIcon';\n"]}
@@ -0,0 +1,67 @@
1
+ import { createGlobalStyle } from 'styled-components';
2
+
3
+ // src/theme/tokens.ts
4
+ var tokens = {
5
+ colors: {
6
+ primary: { light: "#0066FF", dark: "#4D94FF" },
7
+ surface: { light: "#FFFFFF", dark: "#1A1A1A" },
8
+ text: { light: "#000000", dark: "#FFFFFF" },
9
+ border: { light: "#E0E0E0", dark: "#333333" }
10
+ },
11
+ spacing: { xs: "4px", sm: "8px", md: "16px", lg: "24px", xl: "32px" },
12
+ radii: { sm: "4px", md: "8px", lg: "12px" },
13
+ fonts: { body: "system-ui, sans-serif", mono: "monospace" }
14
+ };
15
+
16
+ // src/theme/darkTheme.ts
17
+ var darkTheme = {
18
+ name: "dark",
19
+ colors: {
20
+ primary: tokens.colors.primary.dark,
21
+ surface: tokens.colors.surface.dark,
22
+ text: tokens.colors.text.dark,
23
+ border: tokens.colors.border.dark
24
+ },
25
+ spacing: tokens.spacing,
26
+ radii: tokens.radii,
27
+ fonts: tokens.fonts
28
+ };
29
+ var GlobalStyle = createGlobalStyle`
30
+ *,
31
+ *::before,
32
+ *::after {
33
+ box-sizing: border-box;
34
+ }
35
+
36
+ body {
37
+ margin: 0;
38
+ padding: 0;
39
+ font-family: ${({ theme }) => theme.fonts.body};
40
+ color: ${({ theme }) => theme.colors.text};
41
+ background-color: ${({ theme }) => theme.colors.surface};
42
+ -webkit-font-smoothing: antialiased;
43
+ -moz-osx-font-smoothing: grayscale;
44
+ }
45
+
46
+ button {
47
+ font-family: inherit;
48
+ }
49
+ `;
50
+
51
+ // src/theme/lightTheme.ts
52
+ var lightTheme = {
53
+ name: "light",
54
+ colors: {
55
+ primary: tokens.colors.primary.light,
56
+ surface: tokens.colors.surface.light,
57
+ text: tokens.colors.text.light,
58
+ border: tokens.colors.border.light
59
+ },
60
+ spacing: tokens.spacing,
61
+ radii: tokens.radii,
62
+ fonts: tokens.fonts
63
+ };
64
+
65
+ export { GlobalStyle, darkTheme, lightTheme, tokens };
66
+ //# sourceMappingURL=chunk-JQ6Q7MDQ.js.map
67
+ //# sourceMappingURL=chunk-JQ6Q7MDQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/theme/tokens.ts","../src/theme/darkTheme.ts","../src/theme/GlobalStyle.tsx","../src/theme/lightTheme.ts"],"names":[],"mappings":";;;AAAO,IAAM,MAAA,GAAS;AAAA,EACpB,MAAA,EAAQ;AAAA,IACN,OAAA,EAAS,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,SAAA,EAAU;AAAA,IAC7C,OAAA,EAAS,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,SAAA,EAAU;AAAA,IAC7C,IAAA,EAAM,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,SAAA,EAAU;AAAA,IAC1C,MAAA,EAAQ,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,SAAA;AAAU,GAC9C;AAAA,EACA,OAAA,EAAS,EAAE,EAAA,EAAI,KAAA,EAAO,EAAA,EAAI,KAAA,EAAO,EAAA,EAAI,MAAA,EAAQ,EAAA,EAAI,MAAA,EAAQ,EAAA,EAAI,MAAA,EAAO;AAAA,EACpE,OAAO,EAAE,EAAA,EAAI,OAAO,EAAA,EAAI,KAAA,EAAO,IAAI,MAAA,EAAO;AAAA,EAC1C,KAAA,EAAO,EAAE,IAAA,EAAM,uBAAA,EAAyB,MAAM,WAAA;AAChD;;;ACRO,IAAM,SAAA,GAAY;AAAA,EACvB,IAAA,EAAM,MAAA;AAAA,EACN,MAAA,EAAQ;AAAA,IACN,OAAA,EAAS,MAAA,CAAO,MAAA,CAAO,OAAA,CAAQ,IAAA;AAAA,IAC/B,OAAA,EAAS,MAAA,CAAO,MAAA,CAAO,OAAA,CAAQ,IAAA;AAAA,IAC/B,IAAA,EAAM,MAAA,CAAO,MAAA,CAAO,IAAA,CAAK,IAAA;AAAA,IACzB,MAAA,EAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO;AAAA,GAC/B;AAAA,EACA,SAAS,MAAA,CAAO,OAAA;AAAA,EAChB,OAAO,MAAA,CAAO,KAAA;AAAA,EACd,OAAO,MAAA,CAAO;AAChB;ACXO,IAAM,WAAA,GAAc,iBAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA,iBAAA,EAUR,CAAC,EAAE,KAAA,EAAM,KAAM,KAAA,CAAM,MAAM,IAAI,CAAA;AAAA,WAAA,EACrC,CAAC,EAAE,KAAA,EAAM,KAAM,KAAA,CAAM,OAAO,IAAI,CAAA;AAAA,sBAAA,EACrB,CAAC,EAAE,KAAA,EAAM,KAAM,KAAA,CAAM,OAAO,OAAO,CAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;;ACZpD,IAAM,UAAA,GAAa;AAAA,EACxB,IAAA,EAAM,OAAA;AAAA,EACN,MAAA,EAAQ;AAAA,IACN,OAAA,EAAS,MAAA,CAAO,MAAA,CAAO,OAAA,CAAQ,KAAA;AAAA,IAC/B,OAAA,EAAS,MAAA,CAAO,MAAA,CAAO,OAAA,CAAQ,KAAA;AAAA,IAC/B,IAAA,EAAM,MAAA,CAAO,MAAA,CAAO,IAAA,CAAK,KAAA;AAAA,IACzB,MAAA,EAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO;AAAA,GAC/B;AAAA,EACA,SAAS,MAAA,CAAO,OAAA;AAAA,EAChB,OAAO,MAAA,CAAO,KAAA;AAAA,EACd,OAAO,MAAA,CAAO;AAChB","file":"chunk-JQ6Q7MDQ.js","sourcesContent":["export const tokens = {\n colors: {\n primary: { light: '#0066FF', dark: '#4D94FF' },\n surface: { light: '#FFFFFF', dark: '#1A1A1A' },\n text: { light: '#000000', dark: '#FFFFFF' },\n border: { light: '#E0E0E0', dark: '#333333' },\n },\n spacing: { xs: '4px', sm: '8px', md: '16px', lg: '24px', xl: '32px' },\n radii: { sm: '4px', md: '8px', lg: '12px' },\n fonts: { body: 'system-ui, sans-serif', mono: 'monospace' },\n};\n","import { tokens } from './tokens';\n\nexport const darkTheme = {\n name: 'dark',\n colors: {\n primary: tokens.colors.primary.dark,\n surface: tokens.colors.surface.dark,\n text: tokens.colors.text.dark,\n border: tokens.colors.border.dark,\n },\n spacing: tokens.spacing,\n radii: tokens.radii,\n fonts: tokens.fonts,\n};\n","import { createGlobalStyle } from 'styled-components';\n\nexport const GlobalStyle = createGlobalStyle`\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n body {\n margin: 0;\n padding: 0;\n font-family: ${({ theme }) => theme.fonts.body};\n color: ${({ theme }) => theme.colors.text};\n background-color: ${({ theme }) => theme.colors.surface};\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n\n button {\n font-family: inherit;\n }\n`;\n","import { tokens } from './tokens';\n\nexport const lightTheme = {\n name: 'light',\n colors: {\n primary: tokens.colors.primary.light,\n surface: tokens.colors.surface.light,\n text: tokens.colors.text.light,\n border: tokens.colors.border.light,\n },\n spacing: tokens.spacing,\n radii: tokens.radii,\n fonts: tokens.fonts,\n};\n"]}