@synthex-engineers/refined-tech 0.0.0-stage → 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.
Files changed (45) hide show
  1. package/README.md +187 -2
  2. package/dist/angular/index.cjs +1476 -0
  3. package/dist/angular/index.cjs.map +1 -0
  4. package/dist/angular/index.d.cts +237 -0
  5. package/dist/angular/index.d.ts +237 -0
  6. package/dist/angular/index.js +1463 -0
  7. package/dist/angular/index.js.map +1 -0
  8. package/dist/astro/components/ButtonOutline.astro +36 -0
  9. package/dist/astro/components/ButtonPrimary.astro +36 -0
  10. package/dist/astro/components/ButtonSecondary.astro +36 -0
  11. package/dist/astro/components/ClientTrustCard.astro +79 -0
  12. package/dist/astro/components/HelpTooltip.astro +119 -0
  13. package/dist/astro/components/LanguageSelectorPill.astro +35 -0
  14. package/dist/astro/components/ProcessStepCard.astro +68 -0
  15. package/dist/astro/components/SolutionBentoCard.astro +90 -0
  16. package/dist/astro/components/WavyUnderlineHeading.astro +90 -0
  17. package/dist/astro/index.d.ts +9 -0
  18. package/dist/astro/index.js +9 -0
  19. package/dist/chunk-EUXUH3YW.js +14 -0
  20. package/dist/chunk-EUXUH3YW.js.map +1 -0
  21. package/dist/chunk-PAHBEY3T.js +73 -0
  22. package/dist/chunk-PAHBEY3T.js.map +1 -0
  23. package/dist/index.cjs +910 -0
  24. package/dist/index.cjs.map +1 -0
  25. package/dist/index.d.cts +82 -0
  26. package/dist/index.d.ts +82 -0
  27. package/dist/index.js +833 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/react/index.cjs +1171 -0
  30. package/dist/react/index.cjs.map +1 -0
  31. package/dist/react/index.d.cts +239 -0
  32. package/dist/react/index.d.ts +239 -0
  33. package/dist/react/index.js +1138 -0
  34. package/dist/react/index.js.map +1 -0
  35. package/dist/registry/components.json +791 -0
  36. package/dist/tokens/index.cjs +85 -0
  37. package/dist/tokens/index.cjs.map +1 -0
  38. package/dist/tokens/index.d.cts +133 -0
  39. package/dist/tokens/index.d.ts +133 -0
  40. package/dist/tokens/index.js +4 -0
  41. package/dist/tokens/index.js.map +1 -0
  42. package/dist/tokens/refined-tech.css +73 -0
  43. package/dist/tokens/tailwind-preset.d.ts +46 -0
  44. package/dist/tokens/tailwind-preset.js +74 -0
  45. package/package.json +93 -4
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/library/animated-dropdown/react/AnimatedDropdown.tsx","../../src/components/library/badge-status/react/BadgeStatus.tsx","../../src/components/library/bento-grid-card/react/BentoGridCard.tsx","../../src/components/library/button-outline/react/ButtonOutline.tsx","../../src/components/library/button-primary/react/ButtonPrimary.tsx","../../src/components/library/button-secondary/react/ButtonSecondary.tsx","../../src/components/library/client-trust-card/react/ClientTrustCard.tsx","../../src/components/library/command-k-trigger/react/CommandKTrigger.tsx","../../src/components/library/dropdown-select/react/dropdown-select.tsx","../../src/components/library/gsap-footer-bounce/react/FooterBounce.tsx","../../src/components/library/gsap-magnetic-button/react/MagneticButton.tsx","../../src/components/library/gsap-preloader/react/Preloader.tsx","../../src/components/library/help-tooltip/react/HelpTooltip.tsx","../../src/components/library/input-text/react/InputText.tsx","../../src/components/library/language-selector-dropdown/react/LanguageSelectorDropdown.tsx","../../src/components/library/language-selector-pill/react/LanguageSelectorPill.tsx","../../src/components/library/magic-link-card/react/MagicLinkCard.tsx","../../src/components/library/manifesto-icon-box/react/ManifestoIconBox.tsx","../../src/components/library/metric-card/react/MetricCard.tsx","../../src/components/library/modal-dialog/react/modal-dialog.tsx","../../src/components/library/process-step-card/react/ProcessStepCard.tsx","../../src/components/library/role-view-switcher/react/RoleViewSwitcher.tsx","../../src/components/library/solution-bento-card/react/SolutionBentoCard.tsx","../../src/components/library/table-ledger-row/react/TableLedgerRow.tsx","../../src/components/library/timer-widget/react/TimerWidget.tsx","../../src/components/library/toggle-switch/react/ToggleSwitch.tsx","../../src/components/library/wavy-underline-heading/react/WavyUnderlineHeading.tsx","../../src/components/library/workspace-switcher/react/WorkspaceSwitcher.tsx"],"names":["useState","useRef","useEffect","jsxs","jsx","gsap","MorphSVGPlugin","useMemo"],"mappings":"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","file":"index.cjs","sourcesContent":["import React, { useState, useRef, useEffect } from 'react';\n\nexport interface DropdownItem<T = any> {\n value: T;\n label: string;\n disabled?: boolean;\n}\n\nexport interface AnimatedDropdownProps {\n items: DropdownItem[];\n value: any;\n onChange: (value: any) => void;\n placeholder?: string;\n header?: string;\n disabled?: boolean;\n}\n\nexport const AnimatedDropdown: React.FC<AnimatedDropdownProps> = ({\n items,\n value,\n onChange,\n placeholder = 'Seleccionar...',\n header = 'Opciones Disponibles',\n disabled = false,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const handleOutsideClick = (e: MouseEvent) => {\n if (containerRef.current && !containerRef.current.contains(e.target as Node)) {\n setIsOpen(false);\n }\n };\n document.addEventListener('click', handleOutsideClick);\n return () => document.removeEventListener('click', handleOutsideClick);\n }, []);\n\n const selectedItem = items.find((it) => it.value === value);\n\n return (\n <div ref={containerRef} className=\"relative inline-block w-full font-sans text-left\">\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => setIsOpen(!isOpen)}\n className=\"w-full flex items-center justify-between gap-3 bg-charcoal border border-slateBorder hover:border-slateBorder-focus px-4 py-2.5 rounded-xl text-sm text-white focus:outline-none focus:border-pistachio disabled:opacity-60 disabled:cursor-not-allowed transition-all cursor-pointer shadow-inner group\"\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n >\n <div className=\"flex items-center gap-2 truncate\">\n <span className=\"w-2 h-2 rounded-full bg-pistachio shrink-0\"></span>\n <span className=\"truncate\">{selectedItem ? selectedItem.label : placeholder}</span>\n </div>\n <svg\n className={`w-4 h-4 text-muted transition-transform duration-200 ease-out group-hover:text-white shrink-0 ${\n isOpen ? 'rotate-180' : ''\n }`}\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n viewBox=\"0 0 24 24\"\n >\n <path d=\"M19 9l-7 7-7-7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </button>\n\n <div\n className={`absolute left-0 mt-2 w-full bg-slateSurface-card border border-slateBorder rounded-xl shadow-2xl py-1.5 z-40 overflow-hidden transition-all duration-200 ease-out origin-top ${\n isOpen\n ? 'opacity-100 scale-100 pointer-events-auto'\n : 'opacity-0 scale-95 pointer-events-none'\n }`}\n role=\"listbox\"\n >\n {header && (\n <div className=\"px-3.5 py-1.5 text-xs font-mono text-muted uppercase tracking-wider border-b border-slateBorder/50\">\n {header}\n </div>\n )}\n {items.map((item) => (\n <button\n key={String(item.value)}\n type=\"button\"\n disabled={item.disabled}\n onClick={() => {\n onChange(item.value);\n setIsOpen(false);\n }}\n className=\"w-full text-left px-3.5 py-2.5 hover:bg-slateBorder text-white flex items-center justify-between text-xs transition-colors cursor-pointer disabled:opacity-40\"\n >\n <span className={item.value === value ? 'font-medium text-white' : 'text-muted'}>\n {item.label}\n </span>\n {item.value === value && <span className=\"text-pistachio font-bold\">✓</span>}\n </button>\n ))}\n </div>\n </div>\n );\n};\n","import React from 'react';\r\n\r\nexport interface BadgeStatusProps {\r\n label: string;\r\n status?: 'success' | 'warning' | 'error' | 'neutral';\r\n className?: string;\r\n}\r\n\r\nexport const BadgeStatus: React.FC<BadgeStatusProps> = ({\r\n label,\r\n status = 'success',\r\n className = '',\r\n}) => {\r\n const dotColor = {\r\n success: 'bg-pistachio',\r\n warning: 'bg-amber-500',\r\n error: 'bg-red-500',\r\n neutral: 'bg-muted',\r\n }[status];\r\n\r\n return (\r\n <span className={`inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-mono bg-slateSurface text-pistachio border border-slateBorder ${className}`}>\r\n <span className={`w-1.5 h-1.5 rounded-full ${dotColor}`}></span>\r\n {label}\r\n </span>\r\n );\r\n};\r\n","import React from 'react';\n\nexport interface BentoGridCardProps {\n title: string;\n description: string;\n icon?: React.ReactNode;\n className?: string;\n}\n\nexport const BentoGridCard: React.FC<BentoGridCardProps> = ({\n title,\n description,\n icon,\n className = '',\n}) => {\n return (\n <div className={`p-5 rounded-2xl bg-slateSurface-card border border-slateBorder hover:border-pistachio/40 transition-all flex flex-col gap-2 w-64 font-sans ${className}`}>\n <div className=\"w-7 h-7 rounded-lg bg-pistachio/10 border border-pistachio/20 flex items-center justify-center text-pistachio\">\n {icon || (\n <svg className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" viewBox=\"0 0 24 24\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z\"/></svg>\n )}\n </div>\n <h4 className=\"text-xs font-semibold text-white\">{title}</h4>\n <p className=\"text-xs text-muted leading-relaxed\">{description}</p>\n </div>\n );\n};\n","import React from 'react';\r\n\r\nexport interface ButtonOutlineProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n children: React.ReactNode;\r\n}\r\n\r\nexport const ButtonOutline: React.FC<ButtonOutlineProps> = ({\r\n children,\r\n className = '',\r\n type = 'button',\r\n disabled = false,\r\n ...props\r\n}) => {\r\n return (\r\n <button\r\n type={type}\r\n disabled={disabled}\r\n className={`bg-transparent text-pistachio border border-pistachio/70 hover:bg-pistachio/10 hover:border-pistachio disabled:opacity-50 disabled:cursor-not-allowed px-4 py-2 rounded-md font-medium text-xs transition-colors shadow-sm inline-flex items-center justify-center gap-1.5 cursor-pointer font-sans ${className}`}\r\n {...props}\r\n >\r\n {children}\r\n </button>\r\n );\r\n};\r\n\r\nexport default ButtonOutline;\r\n","import React from 'react';\r\n\r\nexport interface ButtonPrimaryProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n children: React.ReactNode;\r\n}\r\n\r\nexport const ButtonPrimary: React.FC<ButtonPrimaryProps> = ({\r\n children,\r\n className = '',\r\n type = 'button',\r\n disabled = false,\r\n ...props\r\n}) => {\r\n return (\r\n <button\r\n type={type}\r\n disabled={disabled}\r\n className={`bg-pistachio text-charcoal hover:bg-pistachio-hover disabled:opacity-50 disabled:cursor-not-allowed px-4 py-2 rounded-md font-medium text-xs transition-colors shadow-sm active:scale-95 inline-flex items-center justify-center gap-1.5 cursor-pointer font-sans ${className}`}\r\n {...props}\r\n >\r\n {children}\r\n </button>\r\n );\r\n};\r\n","import React from 'react';\r\n\r\nexport interface ButtonSecondaryProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n children: React.ReactNode;\r\n}\r\n\r\nexport const ButtonSecondary: React.FC<ButtonSecondaryProps> = ({\r\n children,\r\n className = '',\r\n type = 'button',\r\n disabled = false,\r\n ...props\r\n}) => {\r\n return (\r\n <button\r\n type={type}\r\n disabled={disabled}\r\n className={`bg-slateSurface text-white border border-slateBorder hover:bg-slateBorder hover:border-slateBorder-focus disabled:opacity-50 disabled:cursor-not-allowed px-4 py-2 rounded-md font-medium text-xs transition-colors shadow-sm inline-flex items-center justify-center gap-1.5 cursor-pointer font-sans ${className}`}\r\n {...props}\r\n >\r\n {children}\r\n </button>\r\n );\r\n};\r\n\r\nexport default ButtonSecondary;\r\n","import React from 'react';\r\n\r\nexport interface ClientTrustCardProps {\r\n clientName?: string;\r\n location?: string;\r\n href?: string;\r\n logoSrc?: string;\r\n className?: string;\r\n}\r\n\r\nexport const ClientTrustCard: React.FC<ClientTrustCardProps> = ({\r\n clientName = 'SD-M GmbH',\r\n location = 'Alemania',\r\n href = 'https://sd-kpi.com/',\r\n logoSrc = '/brand/sd-m-logo-dark.png',\r\n className = '',\r\n}) => {\r\n return (\r\n <a\r\n href={href}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n className={`group inline-flex items-center gap-4 sm:gap-5 px-6 sm:px-8 py-3.5 sm:py-4 rounded-2xl bg-slateSurface/60 border border-slateBorder hover:border-pistachio/50 hover:bg-slateCard/80 hover:scale-105 active:scale-95 transition-all duration-300 shadow-sm cursor-pointer font-sans ${className}`}\r\n aria-label={`${clientName}${location ? ` - ${location}` : ''}`}\r\n >\r\n {logoSrc ? (\r\n <img\r\n src={logoSrc}\r\n alt={clientName}\r\n className=\"h-7 sm:h-8 w-auto object-contain opacity-90 group-hover:opacity-100 transition-opacity\"\r\n width=\"120\"\r\n height=\"44\"\r\n loading=\"lazy\"\r\n />\r\n ) : (\r\n <div className=\"w-8 h-8 rounded-lg bg-slateSurface border border-slateBorder flex items-center justify-center text-pistachio shrink-0\">\r\n <svg className=\"w-5 h-5 text-pistachio transition-transform duration-300 group-hover:scale-105\" viewBox=\"0 0 32 32\" fill=\"none\">\r\n <path d=\"M7 21L12 16L16 19L24 10\" stroke=\"#E0F9B5\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <circle cx=\"24\" cy=\"10\" r=\"2\" fill=\"#E0F9B5\" />\r\n <path d=\"M19 10H24V15\" stroke=\"#E0F9B5\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n )}\r\n\r\n <div className=\"text-left border-l border-slateBorder/60 pl-4 sm:pl-5\">\r\n <span className=\"block font-display font-bold text-base sm:text-lg text-white group-hover:text-pistachio transition-colors leading-tight\">\r\n {clientName}\r\n </span>\r\n {location && (\r\n <span className=\"block text-sm font-sans text-muted leading-tight mt-0.5\">\r\n {location}\r\n </span>\r\n )}\r\n </div>\r\n </a>\r\n );\r\n};\r\n","import React from 'react';\n\nexport interface CommandKTriggerProps {\n placeholder?: string;\n shortcut?: string;\n onOpen?: () => void;\n className?: string;\n}\n\nexport const CommandKTrigger: React.FC<CommandKTriggerProps> = ({\n placeholder = 'Buscar o ejecutar...',\n shortcut = 'Ctrl K',\n onOpen,\n className = '',\n}) => {\n return (\n <button\n type=\"button\"\n onClick={onOpen}\n className={`flex items-center justify-between gap-3 bg-slateSurface text-muted border border-slateBorder px-3 py-1.5 rounded-md text-xs hover:border-pistachio/40 transition-colors w-48 cursor-pointer font-sans ${className}`}\n >\n <span className=\"flex items-center gap-1.5\">\n <svg className=\"w-3.5 h-3.5\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" viewBox=\"0 0 24 24\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\"/></svg>\n <span>{placeholder}</span>\n </span>\n <kbd className=\"bg-charcoal border border-slateBorder text-xs px-1.5 py-0.5 rounded text-white font-mono\">{shortcut}</kbd>\n </button>\n );\n};\n","import React from 'react';\r\n\r\nexport interface DropdownOption<T = any> {\r\n value: T;\r\n label: string;\r\n disabled?: boolean;\r\n}\r\n\r\nexport interface DropdownSelectProps {\r\n id?: string;\r\n label?: string;\r\n placeholder?: string;\r\n required?: boolean;\r\n disabled?: boolean;\r\n errorText?: string;\r\n options: DropdownOption[];\r\n value: any;\r\n onChange: (val: any) => void;\r\n}\r\n\r\nexport const DropdownSelect: React.FC<DropdownSelectProps> = ({\r\n id,\r\n label,\r\n placeholder,\r\n required,\r\n disabled,\r\n errorText,\r\n options,\r\n value,\r\n onChange,\r\n}) => {\r\n return (\r\n <div className=\"w-full space-y-1.5\">\r\n {label && (\r\n <label htmlFor={id} className=\"block text-xs font-medium text-white/80\">\r\n {label}\r\n {required && <span className=\"text-pistachio ml-0.5\">*</span>}\r\n </label>\r\n )}\r\n <div className=\"relative\">\r\n <select\r\n id={id}\r\n disabled={disabled}\r\n value={value}\r\n onChange={(e) => onChange(e.target.value)}\r\n className=\"w-full appearance-none bg-charcoal border border-slateBorder hover:border-slateBorder-focus rounded-xl px-4 py-2.5 pr-10 text-sm text-white focus:outline-none focus:border-pistachio disabled:opacity-60 disabled:cursor-not-allowed transition-colors cursor-pointer\"\r\n >\r\n {placeholder && (\r\n <option value=\"\" disabled className=\"bg-charcoal-card text-muted\">\r\n {placeholder}\r\n </option>\r\n )}\r\n {options.map((opt) => (\r\n <option\r\n key={String(opt.value)}\r\n value={opt.value}\r\n disabled={opt.disabled}\r\n className=\"bg-charcoal-card text-white\"\r\n >\r\n {opt.label}\r\n </option>\r\n ))}\r\n </select>\r\n <div className=\"pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3.5 text-muted\">\r\n <svg className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" strokeWidth={2} viewBox=\"0 0 24 24\">\r\n <path d=\"M19 9l-7 7-7-7\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\r\n </svg>\r\n </div>\r\n </div>\r\n {errorText && <p className=\"text-xs text-red-400 mt-1\">{errorText}</p>}\r\n </div>\r\n );\r\n};\r\n","import React, { useRef, useEffect } from 'react';\r\nimport gsap from 'gsap';\r\n\r\nexport interface FooterBounceProps {\r\n color?: string;\r\n className?: string;\r\n}\r\n\r\nexport const FooterBounce: React.FC<FooterBounceProps> = ({\r\n color = '#E0F9B5',\r\n className = '',\r\n}) => {\r\n const pathRef = useRef<SVGPathElement>(null);\r\n\r\n const triggerBounce = () => {\r\n if (!pathRef.current) return;\r\n gsap.fromTo(\r\n pathRef.current,\r\n { attr: { d: 'M 0,160 Q 720,310 1440,160 L 1440,320 L 0,320 Z' } },\r\n {\r\n duration: 2.2,\r\n attr: { d: 'M 0,160 Q 720,160 1440,160 L 1440,320 L 0,320 Z' },\r\n ease: 'elastic.out(1.8, 0.22)',\r\n overwrite: 'auto',\r\n }\r\n );\r\n };\r\n\r\n useEffect(() => {\r\n triggerBounce();\r\n }, []);\r\n\r\n return (\r\n <div\r\n className={`relative w-full overflow-hidden bg-charcoal border border-slateBorder rounded-xl p-4 flex flex-col items-center justify-center gap-3 ${className}`}\r\n >\r\n <svg className=\"w-full h-16\" viewBox=\"0 0 1440 320\" preserveAspectRatio=\"none\">\r\n <path\r\n ref={pathRef}\r\n fill={color}\r\n d=\"M 0,160 Q 720,160 1440,160 L 1440,320 L 0,320 Z\"\r\n />\r\n </svg>\r\n <button\r\n type=\"button\"\r\n onClick={triggerBounce}\r\n className=\"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg bg-slateSurface hover:bg-slateBorder text-white border border-slateBorder text-xs font-mono transition-colors cursor-pointer\"\r\n >\r\n <svg className=\"w-3.5 h-3.5 text-pistachio\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" viewBox=\"0 0 24 24\">\r\n <path\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n d=\"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15\"\r\n />\r\n </svg>\r\n <span>Recargar animación</span>\r\n </button>\r\n </div>\r\n );\r\n};\r\n\r\nexport default FooterBounce;\r\n","import React, { useRef, useEffect } from 'react';\r\nimport gsap from 'gsap';\r\n\r\nexport interface MagneticButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n children: React.ReactNode;\r\n strength?: number;\r\n}\r\n\r\nexport const MagneticButton: React.FC<MagneticButtonProps> = ({\r\n children,\r\n strength = 0.35,\r\n className = '',\r\n type = 'button',\r\n disabled = false,\r\n ...props\r\n}) => {\r\n const btnRef = useRef<HTMLButtonElement>(null);\r\n\r\n useEffect(() => {\r\n const el = btnRef.current;\r\n if (!el) return;\r\n\r\n const xTo = gsap.quickTo(el, 'x', { duration: 0.3, ease: 'power2.out' });\r\n const yTo = gsap.quickTo(el, 'y', { duration: 0.3, ease: 'power2.out' });\r\n\r\n const handleMouseMove = (e: MouseEvent) => {\r\n const { left, top, width, height } = el.getBoundingClientRect();\r\n const x = (e.clientX - (left + width / 2)) * strength;\r\n const y = (e.clientY - (top + height / 2)) * strength;\r\n xTo(x);\r\n yTo(y);\r\n };\r\n\r\n const handleMouseLeave = () => {\r\n xTo(0);\r\n yTo(0);\r\n };\r\n\r\n el.addEventListener('mousemove', handleMouseMove);\r\n el.addEventListener('mouseleave', handleMouseLeave);\r\n\r\n return () => {\r\n el.removeEventListener('mousemove', handleMouseMove);\r\n el.removeEventListener('mouseleave', handleMouseLeave);\r\n };\r\n }, [strength]);\r\n\r\n return (\r\n <button\r\n ref={btnRef}\r\n type={type}\r\n disabled={disabled}\r\n className={`px-4 py-2.5 rounded-lg bg-slateSurface text-white border border-slateBorder text-sm font-medium hover:border-pistachio transition-colors relative cursor-pointer font-sans inline-flex items-center justify-center gap-2 select-none shadow-sm active:scale-95 disabled:opacity-50 disabled:cursor-not-allowed ${className}`}\r\n {...props}\r\n >\r\n {children}\r\n </button>\r\n );\r\n};\r\n\r\nexport default MagneticButton;\r\n","import React, { useRef, useEffect } from 'react';\r\nimport gsap from 'gsap';\r\nimport { MorphSVGPlugin } from 'gsap/MorphSVGPlugin';\r\n\r\nexport interface PreloaderProps {\r\n onFinish?: () => void;\r\n className?: string;\r\n}\r\n\r\nexport const Preloader: React.FC<PreloaderProps> = ({ onFinish, className = '' }) => {\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n\r\n const initialPaths = [\r\n 'M 18 50 L 44 32 L 44 68 Z',\r\n 'M 54 30 L 63 30 L 63 70 L 54 70 Z',\r\n 'M 96 50 L 70 68 L 70 32 Z',\r\n 'M 135 34 A 16 16 0 1 0 135 66 A 16 16 0 1 0 135 34 Z',\r\n 'M 152 40 L 180 40 L 166 75 Z',\r\n 'M 183 41 L 209 41 L 209 67 L 183 67 Z',\r\n 'M 215 31 L 229 31 L 229 68 L 215 68 Z',\r\n 'M 235 29 L 261 29 L 261 68 L 235 68 Z',\r\n 'M 278 41 A 14 14 0 1 0 278 69 A 14 14 0 1 0 278 41 Z',\r\n 'M 308 41 L 322 55 L 308 69 L 294 55 Z',\r\n ];\r\n\r\n const targets = [\r\n '#st-target-bracket-left',\r\n '#st-target-slash',\r\n '#st-target-bracket-right',\r\n '#st-target-char-s',\r\n '#st-target-char-y',\r\n '#st-target-char-n',\r\n '#st-target-char-t',\r\n '#st-target-char-h',\r\n '#st-target-char-e',\r\n '#st-target-char-x',\r\n ];\r\n\r\n const restart = () => {\r\n const el = containerRef.current;\r\n if (!el) return;\r\n\r\n try {\r\n gsap.registerPlugin(MorphSVGPlugin);\r\n } catch {\r\n // plugin may already be registered\r\n }\r\n\r\n initialPaths.forEach((path, i) => {\r\n const shape = el.querySelector(`.st-shape-${i}`);\r\n if (shape) {\r\n shape.setAttribute('d', path);\r\n }\r\n });\r\n\r\n const group = el.querySelector('.st-morph-group');\r\n const tl = gsap.timeline({\r\n onComplete: () => onFinish?.(),\r\n overwrite: 'auto',\r\n });\r\n\r\n tl.fromTo(group, { opacity: 0 }, { opacity: 1, duration: 0.3, ease: 'power2.out' });\r\n\r\n targets.forEach((targetSelector, i) => {\r\n tl.to(\r\n el.querySelector(`.st-shape-${i}`),\r\n {\r\n morphSVG: targetSelector,\r\n duration: 0.85,\r\n ease: 'power2.inOut',\r\n },\r\n 0.15 + i * 0.035\r\n );\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n restart();\r\n }, []);\r\n\r\n return (\r\n <div\r\n ref={containerRef}\r\n className={`p-6 bg-charcoal border border-slateBorder rounded-xl flex flex-col items-center justify-center gap-4 w-full ${className}`}\r\n >\r\n <svg viewBox=\"0 0 350 100\" className=\"w-full max-w-[360px] overflow-visible select-none\">\r\n <defs>\r\n <path id=\"st-target-bracket-left\" d=\"M 40 29 L 18 50 L 40 71 L 44.5 66.5 L 27 50 L 44.5 33.5 Z\" />\r\n <path id=\"st-target-slash\" d=\"M 50.5 70 L 64.5 30 L 68.5 31.5 L 54.5 71.5 Z\" />\r\n <path id=\"st-target-bracket-right\" d=\"M 74 29 L 96 50 L 74 71 L 69.5 66.5 L 87 50 L 69.5 33.5 Z\" />\r\n <path\r\n id=\"st-target-char-s\"\r\n d=\"M135.12 68.59L135.12 68.59Q130.42 68.59 127.02 67.08Q123.62 65.57 120.86 62.38L120.86 62.38L126.37 56.93Q128.21 59.09 130.42 60.22Q132.64 61.36 135.66 61.36L135.66 61.36Q138.36 61.36 139.84 60.39Q141.33 59.41 141.33 57.69L141.33 57.69Q141.33 55.90 140.03 54.82Q138.74 53.74 136.71 53.02Q134.69 52.29 132.39 51.45Q130.10 50.61 128.05 49.34Q125.99 48.07 124.72 45.97Q123.46 43.86 123.46 40.51L123.46 40.51Q123.46 37.00 125.16 34.49Q126.86 31.98 129.88 30.63Q132.91 29.28 136.85 29.28L136.85 29.28Q140.84 29.28 144.16 30.71Q147.49 32.14 149.65 34.52L149.65 34.52L144.14 39.97Q142.41 38.19 140.66 37.33Q138.90 36.46 136.69 36.46L136.69 36.46Q134.42 36.46 133.15 37.30Q131.88 38.14 131.88 39.70L131.88 39.70Q131.88 41.38 133.15 42.35Q134.42 43.32 136.47 44.05Q138.52 44.78 140.82 45.62Q143.11 46.45 145.14 47.78Q147.16 49.10 148.46 51.29Q149.75 53.47 149.75 56.93L149.75 56.93Q149.75 62.44 145.87 65.52Q141.98 68.59 135.12 68.59Z\"\r\n />\r\n <path id=\"st-target-char-y\" d=\"M164.23 79.07L155.75 79.07L161.69 66.22L151.70 41.76L160.61 41.76L165.85 57.74L171.19 41.76L180.10 41.76L168.87 68.11L164.23 79.07Z\" />\r\n <path\r\n id=\"st-target-char-n\"\r\n d=\"M191.50 68L183.23 68L183.23 41.76L191.50 41.76L191.50 43.86Q194.41 41.22 198.84 41.22L198.84 41.22Q201.70 41.22 203.97 42.59Q206.24 43.97 207.53 46.24Q208.83 48.51 208.83 51.21L208.83 51.21L208.83 68L200.57 68L200.57 53.04Q200.57 50.99 199.30 49.72Q198.03 48.45 196.09 48.45L196.09 48.45Q194.09 48.45 192.79 49.72Q191.50 50.99 191.50 53.04L191.50 53.04L191.50 68Z\"\r\n />\r\n <path\r\n id=\"st-target-char-t\"\r\n d=\"M226.11 68L217.85 68L217.85 48.78L211.91 48.78L211.91 41.76L217.85 41.76L217.85 30.90L226.11 30.90L226.11 41.76L232.05 41.76L232.05 48.78L226.11 48.78L226.11 68Z\"\r\n />\r\n <path\r\n id=\"st-target-char-h\"\r\n d=\"M243.93 68L235.67 68L235.67 28.80L243.93 28.80L243.93 43.70Q246.74 41.22 251.00 41.22L251.00 41.22Q254.03 41.22 256.35 42.48Q258.67 43.75 259.97 46.02Q261.26 48.29 261.26 51.21L261.26 51.21L261.26 68L253.00 68L253.00 53.04Q253.00 50.99 251.73 49.72Q250.46 48.45 248.52 48.45L248.52 48.45Q246.52 48.45 245.23 49.72Q243.93 50.99 243.93 53.04L243.93 53.04L243.93 68Z\"\r\n />\r\n <path\r\n id=\"st-target-char-e\"\r\n d=\"M279.52 68.59L279.52 68.59Q275.25 68.59 271.93 66.84Q268.61 65.08 266.72 61.98Q264.83 58.87 264.83 54.88L264.83 54.88Q264.83 50.94 266.69 47.86Q268.55 44.78 271.74 42.97Q274.93 41.16 278.92 41.16L278.92 41.16Q282.76 41.16 285.75 42.86Q288.75 44.56 290.45 47.51Q292.15 50.45 292.15 54.28L292.15 54.28Q292.15 55.74 291.77 57.58L291.77 57.58L272.98 57.63Q273.63 59.85 275.30 61.03Q276.98 62.22 279.46 62.22L279.46 62.22Q283.40 62.22 285.73 59.52L285.73 59.52L290.26 64.06Q288.32 66.33 285.56 67.46Q282.81 68.59 279.52 68.59ZM278.98 47.48L278.98 47.48Q276.71 47.48 275.14 48.67Q273.58 49.86 272.98 51.96L272.98 51.96L284.43 51.91Q283.40 47.48 278.98 47.48Z\"\r\n />\r\n <path id=\"st-target-char-x\" d=\"M302.52 68L293.50 68L302.90 54.61L293.99 41.76L303.65 41.76L308.03 48.88L312.46 41.76L321.42 41.76L312.67 54.45L321.96 68L312.40 68L307.54 60.17L302.52 68Z\" />\r\n </defs>\r\n\r\n <g className=\"st-morph-group\">\r\n <path className=\"st-shape-0\" d=\"M 18 50 L 44 32 L 44 68 Z\" fill=\"#E0F9B5\" />\r\n <path className=\"st-shape-1\" d=\"M 54 30 L 63 30 L 63 70 L 54 70 Z\" fill=\"#E0F9B5\" />\r\n <path className=\"st-shape-2\" d=\"M 96 50 L 70 68 L 70 32 Z\" fill=\"#E0F9B5\" />\r\n <path className=\"st-shape-3\" d=\"M 135 34 A 16 16 0 1 0 135 66 A 16 16 0 1 0 135 34 Z\" fill=\"#FFFFFF\" />\r\n <path className=\"st-shape-4\" d=\"M 152 40 L 180 40 L 166 75 Z\" fill=\"#FFFFFF\" />\r\n <path className=\"st-shape-5\" d=\"M 183 41 L 209 41 L 209 67 L 183 67 Z\" fill=\"#FFFFFF\" />\r\n <path className=\"st-shape-6\" d=\"M 215 31 L 229 31 L 229 68 L 215 68 Z\" fill=\"#FFFFFF\" />\r\n <path className=\"st-shape-7\" d=\"M 235 29 L 261 29 L 261 68 L 235 68 Z\" fill=\"#FFFFFF\" />\r\n <path className=\"st-shape-8\" d=\"M 278 41 A 14 14 0 1 0 278 69 A 14 14 0 1 0 278 41 Z\" fill=\"#FFFFFF\" />\r\n <path className=\"st-shape-9\" d=\"M 308 41 L 322 55 L 308 69 L 294 55 Z\" fill=\"#FFFFFF\" />\r\n </g>\r\n </svg>\r\n <button\r\n type=\"button\"\r\n onClick={restart}\r\n className=\"inline-flex items-center gap-2 px-3.5 py-1.5 rounded-lg bg-slateSurface hover:bg-slateBorder text-white border border-slateBorder hover:border-pistachio/50 text-xs font-mono transition-all cursor-pointer shadow-sm active:scale-95\"\r\n >\r\n <svg className=\"w-3.5 h-3.5 text-pistachio\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" viewBox=\"0 0 24 24\">\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15\" />\r\n </svg>\r\n <span>Recargar animación</span>\r\n </button>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Preloader;\r\n","import React from 'react';\n\nexport interface HelpTooltipProps {\n text: string;\n title?: string;\n ariaLabel?: string;\n}\n\nexport const HelpTooltip: React.FC<HelpTooltipProps> = ({\n text,\n title = 'Información',\n ariaLabel,\n}) => {\n return (\n <div className=\"relative inline-flex items-center group/tooltip font-sans select-none\">\n <button\n type=\"button\"\n className=\"w-5 h-5 rounded-full bg-slateSurface border border-slateBorder text-muted hover:text-pistachio hover:border-pistachio/50 flex items-center justify-center text-xs font-mono transition-colors cursor-help focus:outline-none focus:border-pistachio\"\n aria-label={ariaLabel || text}\n >\n ?\n </button>\n\n <div\n className=\"absolute bottom-full left-1/2 -translate-x-1/2 mb-2 px-3 py-2 rounded-xl bg-charcoal border border-slateBorder shadow-2xl text-xs text-white/90 whitespace-normal w-56 text-center opacity-0 scale-95 pointer-events-none group-hover/tooltip:opacity-100 group-hover/tooltip:scale-100 group-focus-within/tooltip:opacity-100 group-focus-within/tooltip:scale-100 transition-all duration-200 ease-out z-50 origin-bottom\"\n role=\"tooltip\"\n >\n {title && (\n <div className=\"flex items-center justify-center gap-1.5 mb-1 text-pistachio font-semibold font-mono text-xs\">\n <span className=\"w-1.5 h-1.5 rounded-full bg-pistachio\"></span>\n <span>{title}</span>\n </div>\n )}\n <p className=\"text-xs text-muted leading-relaxed\">{text}</p>\n <div className=\"absolute top-full left-1/2 -translate-x-1/2 -mt-1 w-2 h-2 bg-charcoal border-r border-b border-slateBorder rotate-45\"></div>\n </div>\n </div>\n );\n};\n","import React from 'react';\r\n\r\nexport interface InputTextProps extends React.InputHTMLAttributes<HTMLInputElement> {}\r\n\r\nexport const InputText: React.FC<InputTextProps> = ({\r\n className = '',\r\n placeholder = '',\r\n ...props\r\n}) => {\r\n return (\r\n <input\r\n type=\"text\"\r\n placeholder={placeholder}\r\n className={`bg-charcoal border border-slateBorder focus:border-pistachio focus:outline-none focus:ring-1 focus:ring-pistachio text-white px-3 py-1.5 rounded-md text-xs font-mono transition-all w-48 placeholder-muted disabled:opacity-50 ${className}`}\r\n {...props}\r\n />\r\n );\r\n};\r\n","import React, { useState, useRef, useEffect } from 'react';\n\nexport interface LanguageSelectorDropdownProps {\n currentLang?: 'es' | 'en';\n onLangChange?: (lang: 'es' | 'en') => void;\n className?: string;\n}\n\nexport const LanguageSelectorDropdown: React.FC<LanguageSelectorDropdownProps> = ({\n currentLang = 'es',\n onLangChange,\n className = '',\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const handleClickOutside = (e: MouseEvent) => {\n if (containerRef.current && !containerRef.current.contains(e.target as Node)) {\n setIsOpen(false);\n }\n };\n if (isOpen) {\n document.addEventListener('click', handleClickOutside);\n }\n return () => document.removeEventListener('click', handleClickOutside);\n }, [isOpen]);\n\n const selectLang = (lang: 'es' | 'en') => {\n setIsOpen(false);\n if (lang !== currentLang) {\n onLangChange?.(lang);\n }\n };\n\n return (\n <div ref={containerRef} className={`relative inline-block text-left shrink-0 font-sans ${className}`}>\n <button\n type=\"button\"\n onClick={() => setIsOpen(!isOpen)}\n className=\"flex items-center gap-2 px-3 py-1.5 rounded-lg text-xs font-code font-medium text-white/80 hover:text-white bg-slateSurface hover:bg-slateBorder/80 border border-slateBorder hover:border-pistachio/50 transition-all cursor-pointer shadow-sm group select-none\"\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n aria-label={`Idioma: ${currentLang.toUpperCase()}`}\n >\n <span className=\"w-1.5 h-1.5 rounded-full bg-pistachio shrink-0\"></span>\n <span className=\"tracking-wider uppercase text-pistachio font-bold\">\n {currentLang}\n </span>\n <svg\n className={`w-3.5 h-3.5 text-white/50 transition-transform duration-200 ease-out group-hover:text-white shrink-0 ${isOpen ? 'rotate-180' : ''}`}\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n viewBox=\"0 0 24 24\"\n >\n <path d=\"M19 9l-7 7-7-7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </button>\n\n {isOpen && (\n <div\n className=\"absolute right-0 mt-2 w-44 bg-charcoal border border-slateBorder rounded-xl shadow-2xl py-1.5 z-50 overflow-hidden origin-top\"\n role=\"listbox\"\n >\n <div className=\"px-3 py-1 text-xs font-mono text-muted uppercase tracking-wider border-b border-slateBorder/50\">\n Idioma / Language\n </div>\n\n <button\n type=\"button\"\n onClick={() => selectLang('es')}\n className=\"w-full text-left px-3 py-2 hover:bg-slateBorder flex items-center justify-between text-xs font-code transition-colors cursor-pointer text-white\"\n >\n <div className=\"flex items-center gap-2\">\n <span className=\"text-white/60 font-mono text-xs\">ES</span>\n <span className={currentLang === 'es' ? 'font-medium text-white' : 'text-white/70'}>\n Español\n </span>\n </div>\n {currentLang === 'es' && <span className=\"text-pistachio font-bold\">✓</span>}\n </button>\n\n <button\n type=\"button\"\n onClick={() => selectLang('en')}\n className=\"w-full text-left px-3 py-2 hover:bg-slateBorder flex items-center justify-between text-xs font-code transition-colors cursor-pointer text-white\"\n >\n <div className=\"flex items-center gap-2\">\n <span className=\"text-white/60 font-mono text-xs\">EN</span>\n <span className={currentLang === 'en' ? 'font-medium text-white' : 'text-white/70'}>\n English\n </span>\n </div>\n {currentLang === 'en' && <span className=\"text-pistachio font-bold\">✓</span>}\n </button>\n </div>\n )}\n </div>\n );\n};\n","import React from 'react';\n\nexport interface LanguageSelectorPillProps {\n currentLang?: 'es' | 'en';\n onLangChange?: (lang: 'es' | 'en') => void;\n className?: string;\n}\n\nexport const LanguageSelectorPill: React.FC<LanguageSelectorPillProps> = ({\n currentLang = 'es',\n onLangChange,\n className = '',\n}) => {\n const nextLang = currentLang === 'es' ? 'en' : 'es';\n\n return (\n <button\n type=\"button\"\n onClick={() => onLangChange?.(nextLang)}\n className={`inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-xs font-code font-medium text-white/80 hover:text-white bg-slateSurface hover:bg-slateBorder/80 border border-slateBorder hover:border-pistachio/50 transition-all cursor-pointer shadow-sm group active:scale-95 select-none ${className}`}\n aria-label={`Idioma: ${currentLang.toUpperCase()} - Cambiar a ${nextLang.toUpperCase()}`}\n >\n <span className=\"w-1.5 h-1.5 rounded-full bg-pistachio shrink-0\"></span>\n <span className={currentLang === 'es' ? 'text-pistachio font-bold' : 'text-white/40 group-hover:text-white transition-colors'}>\n ES\n </span>\n <span className=\"text-white/30 font-light\">/</span>\n <span className={currentLang === 'en' ? 'text-pistachio font-bold' : 'text-white/40 group-hover:text-white transition-colors'}>\n EN\n </span>\n </button>\n );\n};\n","import React from 'react';\r\n\r\nexport interface MagicLinkCardProps {\r\n email: string;\r\n onResend?: () => void;\r\n className?: string;\r\n}\r\n\r\nexport const MagicLinkCard: React.FC<MagicLinkCardProps> = ({\r\n email,\r\n onResend,\r\n className = '',\r\n}) => {\r\n return (\r\n <div\r\n className={`p-6 rounded-2xl bg-slateSurface-card border border-slateBorder max-w-sm w-full text-center flex flex-col items-center gap-3 font-sans ${className}`}\r\n >\r\n <div className=\"w-10 h-10 rounded-xl bg-pistachio/10 border border-pistachio/20 flex items-center justify-center text-pistachio\">\r\n <svg className=\"w-5 h-5\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" viewBox=\"0 0 24 24\">\r\n <path\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n d=\"M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z\"\r\n />\r\n </svg>\r\n </div>\r\n\r\n <h3 className=\"text-sm font-semibold text-white\">Revisa tu bandeja de entrada</h3>\r\n <p className=\"text-xs text-muted leading-relaxed\">\r\n Hemos enviado un enlace de acceso seguro a <span className=\"text-white font-mono\">{email}</span>.\r\n </p>\r\n\r\n <button\r\n type=\"button\"\r\n onClick={onResend}\r\n className=\"mt-2 text-xs text-pistachio hover:underline cursor-pointer\"\r\n >\r\n Reenviar enlace de acceso\r\n </button>\r\n </div>\r\n );\r\n};\r\n\r\nexport default MagicLinkCard;\r\n","import React from 'react';\r\n\r\nexport interface ManifestoIconBoxProps {\r\n size?: number;\r\n className?: string;\r\n}\r\n\r\nexport const ManifestoIconBox: React.FC<ManifestoIconBoxProps> = ({\r\n size = 40,\r\n className = '',\r\n}) => {\r\n return (\r\n <div\r\n style={{ width: `${size}px`, height: `${size}px` }}\r\n className={`rounded-xl bg-pistachio flex items-center justify-center shadow-sm ${className}`}\r\n >\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 200 200\"\r\n style={{ width: `${size * 0.6}px`, height: `${size * 0.6}px` }}\r\n >\r\n <g stroke=\"#111111\" strokeWidth=\"14\" strokeLinecap=\"round\" strokeLinejoin=\"round\" fill=\"none\" transform=\"translate(41, 56)\">\r\n <polyline points=\"40,24 14,46 40,68\" />\r\n <line x1=\"53\" y1=\"72\" x2=\"69\" y2=\"20\" />\r\n <polyline points=\"82,24 108,46 82,68\" />\r\n </g>\r\n </svg>\r\n </div>\r\n );\r\n};\r\n","import React from 'react';\n\nexport interface MetricCardProps {\n label: string;\n value: string;\n trend?: string;\n className?: string;\n}\n\nexport const MetricCard: React.FC<MetricCardProps> = ({\n label,\n value,\n trend,\n className = '',\n}) => {\n return (\n <div className={`p-4 rounded-xl bg-slateSurface border border-slateBorder flex flex-col gap-1 w-56 font-sans ${className}`}>\n <span className=\"text-xs text-muted uppercase font-mono tracking-wider\">{label}</span>\n <span className=\"text-2xl font-bold text-white font-mono\">{value}</span>\n {trend && <span className=\"text-xs text-pistachio font-mono\">↑ {trend}</span>}\n </div>\n );\n};\n","import React from 'react';\r\n\r\nexport interface ModalDialogProps {\r\n isOpen: boolean;\r\n onClose: () => void;\r\n title: string;\r\n subtitle?: string;\r\n size?: 'sm' | 'md' | 'lg' | 'xl' | '2xl';\r\n showCloseButton?: boolean;\r\n closeOnBackdrop?: boolean;\r\n children: React.ReactNode;\r\n footer?: React.ReactNode;\r\n}\r\n\r\nexport const ModalDialog: React.FC<ModalDialogProps> = ({\r\n isOpen,\r\n onClose,\r\n title,\r\n subtitle,\r\n size = 'md',\r\n showCloseButton = true,\r\n closeOnBackdrop = true,\r\n children,\r\n footer,\r\n}) => {\r\n if (!isOpen) return null;\r\n\r\n const sizeClasses = {\r\n sm: 'max-w-md',\r\n md: 'max-w-lg',\r\n lg: 'max-w-2xl',\r\n xl: 'max-w-3xl',\r\n '2xl': 'max-w-4xl',\r\n };\r\n\r\n return (\r\n <div\r\n className=\"fixed inset-0 w-screen h-screen min-h-screen z-50 flex items-center justify-center p-4 bg-black/80 backdrop-blur-md\"\r\n onClick={(e) => {\r\n if (closeOnBackdrop && e.target === e.currentTarget) {\r\n onClose();\r\n }\r\n }}\r\n >\r\n <div\r\n className={`w-full bg-charcoal-card border border-slateBorder rounded-2xl shadow-2xl overflow-hidden flex flex-col max-h-[90vh] ${sizeClasses[size] || 'max-w-lg'}`}\r\n onClick={(e) => e.stopPropagation()}\r\n >\r\n <div className=\"px-6 py-4 sm:px-7 sm:py-5 border-b border-slateBorder-subtle flex items-center justify-between gap-4\">\r\n <div className=\"min-w-0\">\r\n <h2 className=\"text-lg sm:text-xl font-bold text-white font-display tracking-tight truncate\">\r\n {title}\r\n </h2>\r\n {subtitle && <p className=\"text-xs text-muted mt-0.5 truncate\">{subtitle}</p>}\r\n </div>\r\n\r\n {showCloseButton && (\r\n <button\r\n type=\"button\"\r\n onClick={onClose}\r\n className=\"w-8 h-8 rounded-lg text-muted hover:text-white hover:bg-slateBorder-subtle transition-colors flex items-center justify-center cursor-pointer flex-shrink-0\"\r\n title=\"Cerrar modal\"\r\n aria-label=\"Cerrar modal\"\r\n >\r\n <svg className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" strokeWidth={2} viewBox=\"0 0 24 24\">\r\n <path d=\"M18 6L6 18M6 6l12 12\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\r\n </svg>\r\n </button>\r\n )}\r\n </div>\r\n\r\n <div className=\"p-6 sm:p-7 overflow-y-auto flex-1 space-y-4\">\r\n {children}\r\n </div>\r\n\r\n {footer && <div className=\"px-6 py-4 border-t border-slateBorder-subtle bg-charcoal\">{footer}</div>}\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React from 'react';\n\nexport interface ProcessStepCardProps {\n stepNumber?: string;\n title: string;\n description: string;\n badge?: string;\n icon?: React.ReactNode;\n className?: string;\n}\n\nexport const ProcessStepCard: React.FC<ProcessStepCardProps> = ({\n stepNumber = '01',\n title,\n description,\n badge,\n icon,\n className = '',\n}) => {\n return (\n <article className={`p-8 rounded-3xl bg-slateSurface/80 border border-slateBorder hover:border-pistachio/40 transition-all duration-300 flex flex-col justify-between group shadow-sm font-sans h-full ${className}`}>\n <div>\n <div className=\"flex items-center justify-between mb-6\">\n <span className=\"text-2xl sm:text-3xl font-mono font-bold text-pistachio tracking-tight\">\n {stepNumber}\n </span>\n <div className=\"w-8 h-8 rounded-lg bg-pistachio/10 border border-pistachio/20 flex items-center justify-center text-pistachio\">\n {icon || (\n <svg className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\" />\n </svg>\n )}\n </div>\n </div>\n\n <h3 className=\"text-xl font-display font-bold text-white mb-3 group-hover:text-pistachio transition-colors\">\n {title}\n </h3>\n\n <p className=\"text-sm text-muted font-sans leading-relaxed\">\n {description}\n </p>\n </div>\n\n {badge && (\n <div className=\"mt-8 pt-4 border-t border-slateBorder/50 text-sm font-mono text-muted\">\n {badge}\n </div>\n )}\n </article>\n );\n};\n","import React from 'react';\n\nexport type SystemRoleView = 'ADMIN' | 'USER';\n\nexport interface RoleViewSwitcherProps {\n activeRole?: SystemRoleView;\n onRoleChange?: (role: SystemRoleView) => void;\n className?: string;\n}\n\nexport const RoleViewSwitcher: React.FC<RoleViewSwitcherProps> = ({\n activeRole = 'ADMIN',\n onRoleChange,\n className = '',\n}) => {\n return (\n <div className={`inline-flex items-center bg-charcoal-surface border border-slateBorder p-0.5 rounded-xl text-xs select-none shadow-xs font-sans ${className}`}>\n <button\n type=\"button\"\n onClick={() => onRoleChange?.('ADMIN')}\n className={`inline-flex items-center gap-1.5 px-2.5 py-1 rounded-lg transition-all cursor-pointer ${\n activeRole === 'ADMIN'\n ? 'bg-pistachio text-charcoal font-semibold'\n : 'text-muted hover:text-white'\n }`}\n title=\"Ver como Administrador\"\n >\n <svg className=\"w-3.5 h-3.5\" fill=\"none\" stroke=\"currentColor\" strokeWidth={2} viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z\" />\n </svg>\n <span>Admin</span>\n </button>\n\n <button\n type=\"button\"\n onClick={() => onRoleChange?.('USER')}\n className={`inline-flex items-center gap-1.5 px-2.5 py-1 rounded-lg transition-all cursor-pointer ${\n activeRole === 'USER'\n ? 'bg-slateBorder text-white font-medium'\n : 'text-muted hover:text-white'\n }`}\n title=\"Ver como Colaborador\"\n >\n <svg className=\"w-3.5 h-3.5\" fill=\"none\" stroke=\"currentColor\" strokeWidth={2} viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z\" />\n </svg>\n <span>Colaborador</span>\n </button>\n </div>\n );\n};\n","import React from 'react';\n\nexport interface SolutionBentoCardProps {\n title: string;\n description: string;\n badge?: string;\n bulletPoints?: string[];\n ctaText?: string;\n ctaHref?: string;\n icon?: React.ReactNode;\n className?: string;\n}\n\nexport const SolutionBentoCard: React.FC<SolutionBentoCardProps> = ({\n title,\n description,\n badge,\n bulletPoints = [],\n ctaText = 'Ver tarifas',\n ctaHref = '/servicios/',\n icon,\n className = '',\n}) => {\n return (\n <article className={`p-8 sm:p-10 rounded-3xl bg-slateSurface/80 border border-slateBorder hover:border-pistachio/40 transition-all duration-300 flex flex-col justify-between group shadow-sm font-sans h-full ${className}`}>\n <div>\n <div className=\"flex items-center justify-between mb-6\">\n <div className=\"w-12 h-12 rounded-xl bg-pistachio/10 border border-pistachio/20 flex items-center justify-center text-pistachio group-hover:scale-105 transition-transform\">\n {icon || (\n <svg className=\"w-6 h-6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4\" />\n </svg>\n )}\n </div>\n {badge && (\n <span className=\"px-3 py-1 rounded-full bg-slateCard text-pistachio text-sm font-mono font-semibold border border-slateBorder\">\n {badge}\n </span>\n )}\n </div>\n\n <h3 className=\"text-2xl sm:text-3xl font-display font-bold text-white mb-4 group-hover:text-pistachio transition-colors\">\n {title}\n </h3>\n\n <p className=\"text-sm sm:text-base text-muted font-sans leading-relaxed mb-8\">\n {description}\n </p>\n\n {bulletPoints.length > 0 && (\n <ul className=\"space-y-3 mb-10 text-sm font-sans text-white/80\">\n {bulletPoints.map((point, idx) => (\n <li key={idx} className=\"flex items-start gap-3\">\n <span className=\"w-1.5 h-1.5 rounded-full bg-pistachio mt-2 shrink-0\"></span>\n <span>{point}</span>\n </li>\n ))}\n </ul>\n )}\n </div>\n\n <div>\n <a\n href={ctaHref}\n className=\"inline-flex items-center justify-between w-full px-5 py-3.5 rounded-xl bg-slateCard hover:bg-slateBorder/80 text-white hover:text-pistachio border border-slateBorder hover:border-pistachio/50 font-display font-semibold text-sm transition-all duration-200 group/btn\"\n >\n <span>{ctaText}</span>\n <svg className=\"w-4 h-4 text-pistachio transform group-hover/btn:translate-x-1 transition-transform\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M14 5l7 7m0 0l-7 7m7-7H3\" />\n </svg>\n </a>\n </div>\n </article>\n );\n};\n","import React, { useMemo } from 'react';\n\nexport interface TableLedgerRowProps {\n index: number;\n hash: string;\n timestamp: string;\n verified?: boolean;\n onCopyHash?: (hash: string) => void;\n className?: string;\n}\n\nexport const TableLedgerRow: React.FC<TableLedgerRowProps> = ({\n index,\n hash,\n timestamp,\n verified = true,\n onCopyHash,\n className = '',\n}) => {\n const truncatedHash = useMemo(() => {\n if (!hash || hash.length <= 16) return hash;\n return `${hash.slice(0, 8)}...${hash.slice(-8)}`;\n }, [hash]);\n\n const handleCopy = () => {\n if (onCopyHash) {\n onCopyHash(hash);\n } else if (navigator.clipboard) {\n navigator.clipboard.writeText(hash);\n }\n };\n\n return (\n <div\n className={`flex items-center justify-between py-2 px-3 bg-charcoal hover:bg-charcoal-surface border-b border-slateBorder text-xs font-mono transition-colors ${className}`}\n >\n <div className=\"flex items-center gap-3\">\n <span className=\"text-muted w-12 font-medium\">#{index}</span>\n <button\n type=\"button\"\n onClick={handleCopy}\n className=\"text-pistachio hover:underline cursor-pointer select-none font-medium\"\n title=\"Copiar hash completo\"\n >\n {truncatedHash}\n </button>\n </div>\n\n <div className=\"flex items-center gap-4\">\n <span className=\"text-muted text-xs\">{timestamp}</span>\n {verified ? (\n <span className=\"inline-flex items-center gap-1.5 text-xs text-pistachio\">\n <span className=\"w-1.5 h-1.5 rounded-full bg-pistachio\"></span>\n Sellado\n </span>\n ) : (\n <span className=\"inline-flex items-center gap-1.5 text-xs text-amber-500\">\n <span className=\"w-1.5 h-1.5 rounded-full bg-amber-500\"></span>\n Pendiente\n </span>\n )}\n </div>\n </div>\n );\n};\n\nexport default TableLedgerRow;\n","import React from 'react';\n\nexport interface TimerWidgetProps {\n time?: string;\n active?: boolean;\n onToggle?: () => void;\n className?: string;\n}\n\nexport const TimerWidget: React.FC<TimerWidgetProps> = ({\n time = '00:00:00',\n active = false,\n onToggle,\n className = '',\n}) => {\n return (\n <div className={`inline-flex items-center gap-3 bg-charcoal border border-slateBorder px-3 py-1.5 rounded-lg font-mono text-xs ${className}`}>\n <span className={`w-2 h-2 rounded-full ${active ? 'bg-pistachio' : 'bg-muted'}`}></span>\n <span className=\"text-white font-bold tracking-wider\">{time}</span>\n {onToggle && (\n <button\n onClick={onToggle}\n className=\"text-xs text-pistachio hover:underline cursor-pointer font-mono\"\n >\n {active ? 'Pausar' : 'Reanudar'}\n </button>\n )}\n </div>\n );\n};\n","import React from 'react';\r\n\r\nexport interface ToggleSwitchProps {\r\n label?: string;\r\n checked?: boolean;\r\n onChange?: (checked: boolean) => void;\r\n className?: string;\r\n}\r\n\r\nexport const ToggleSwitch: React.FC<ToggleSwitchProps> = ({\r\n label = '',\r\n checked = false,\r\n onChange,\r\n className = '',\r\n}) => {\r\n return (\r\n <label className={`inline-flex items-center gap-2 cursor-pointer font-sans ${className}`}>\r\n <input\r\n type=\"checkbox\"\r\n checked={checked}\r\n onChange={e => onChange?.(e.target.checked)}\r\n className=\"sr-only peer\"\r\n />\r\n <div className=\"w-8 h-4 bg-slateBorder rounded-full peer peer-checked:after:translate-x-full after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-charcoal after:rounded-full after:h-3 after:w-3 after:transition-all peer-checked:bg-pistachio relative\"></div>\r\n {label && <span className=\"text-xs text-white font-medium\">{label}</span>}\r\n </label>\r\n );\r\n};\r\n","import React, { useRef, useEffect } from 'react';\nimport gsap from 'gsap';\n\nexport interface WavyUnderlineHeadingProps {\n prefixText?: string;\n highlightText?: string;\n strokeColor?: string;\n className?: string;\n showReload?: boolean;\n}\n\nexport const WavyUnderlineHeading: React.FC<WavyUnderlineHeadingProps> = ({\n prefixText = 'Ingeniería con',\n highlightText = 'total transparencia.',\n strokeColor = '#E0F9B5',\n className = '',\n showReload = true,\n}) => {\n const pathRef = useRef<SVGPathElement>(null);\n\n const triggerAnimation = () => {\n if (!pathRef.current) return;\n const length = Math.ceil(pathRef.current.getTotalLength()) + 20;\n\n gsap.fromTo(\n pathRef.current,\n {\n strokeDasharray: length,\n strokeDashoffset: length,\n opacity: 1,\n },\n {\n strokeDashoffset: 0,\n duration: 0.8,\n ease: 'power2.inOut',\n overwrite: 'auto',\n }\n );\n };\n\n useEffect(() => {\n triggerAnimation();\n }, []);\n\n return (\n <div className={`w-full flex flex-col items-center justify-center gap-3 p-4 bg-charcoal border border-slateBorder rounded-xl font-display text-center ${className}`}>\n <h2 className=\"text-xl sm:text-2xl md:text-3xl font-bold text-white tracking-tight leading-snug\">\n {prefixText && <span>{prefixText} </span>}\n <span className=\"relative inline-block text-pistachio\">\n <span className=\"relative z-10\">{highlightText}</span>\n <svg\n className=\"absolute left-0 -bottom-2 w-full h-3 overflow-visible pointer-events-none\"\n viewBox=\"0 0 300 16\"\n preserveAspectRatio=\"none\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n ref={pathRef}\n d=\"M2 10 Q 35 2, 75 9 T 150 9 T 225 9 T 298 9\"\n stroke={strokeColor}\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n />\n </svg>\n </span>\n </h2>\n\n {showReload && (\n <button\n type=\"button\"\n onClick={triggerAnimation}\n className=\"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg bg-slateSurface hover:bg-slateBorder text-white border border-slateBorder text-xs font-mono transition-colors cursor-pointer mt-2\"\n >\n <svg className=\"w-3.5 h-3.5 text-pistachio\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15\" />\n </svg>\n <span>Recargar animación</span>\n </button>\n )}\n </div>\n );\n};\n\nexport default WavyUnderlineHeading;\n","import React, { useState, useRef, useEffect } from 'react';\n\nexport interface WorkspaceItem {\n id: string;\n name: string;\n isMain?: boolean;\n}\n\nexport interface WorkspaceSwitcherProps {\n workspaces?: WorkspaceItem[];\n currentWorkspace?: WorkspaceItem;\n onSelect?: (workspace: WorkspaceItem) => void;\n className?: string;\n}\n\nexport const WorkspaceSwitcher: React.FC<WorkspaceSwitcherProps> = ({\n workspaces = [\n { id: 'synthex', name: 'Synthex Matriz', isMain: true },\n { id: 'filial-de', name: 'Synthex GmbH (Alemania)' },\n ],\n currentWorkspace,\n onSelect,\n className = '',\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const [selected, setSelected] = useState<WorkspaceItem>(\n currentWorkspace || workspaces[0] || { id: 'synthex', name: 'Synthex Matriz', isMain: true }\n );\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (currentWorkspace) {\n setSelected(currentWorkspace);\n }\n }, [currentWorkspace]);\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (containerRef.current && !containerRef.current.contains(event.target as Node)) {\n setIsOpen(false);\n }\n };\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, []);\n\n const handleSelect = (item: WorkspaceItem) => {\n setSelected(item);\n setIsOpen(false);\n onSelect?.(item);\n };\n\n return (\n <div ref={containerRef} className={`relative inline-block font-sans text-xs ${className}`}>\n <button\n type=\"button\"\n onClick={() => setIsOpen(!isOpen)}\n className=\"flex items-center gap-2 bg-charcoal border border-slateBorder hover:border-pistachio/40 px-3 py-1.5 rounded-lg text-white transition-colors cursor-pointer\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 200 200\" width=\"18\" height=\"18\">\n <rect x=\"10\" y=\"10\" width=\"180\" height=\"180\" rx=\"52\" fill=\"#E0F9B5\" />\n <g stroke=\"#111111\" strokeWidth=\"14\" strokeLinecap=\"round\" strokeLinejoin=\"round\" fill=\"none\" transform=\"translate(41, 56)\">\n <polyline points=\"40,24 14,46 40,68\" />\n <line x1=\"53\" y1=\"72\" x2=\"69\" y2=\"20\" />\n <polyline points=\"82,24 108,46 82,68\" />\n </g>\n </svg>\n <span className=\"font-medium text-white\">{selected?.name || 'Seleccionar Empresa'}</span>\n <span className={`text-muted text-xs font-mono transition-transform ${isOpen ? 'rotate-180' : ''}`}>▾</span>\n </button>\n\n {isOpen && (\n <div className=\"absolute left-0 mt-1 w-52 bg-slateSurface-card border border-slateBorder rounded-lg shadow-xl z-50 py-1 overflow-hidden\">\n {workspaces.map((item) => (\n <button\n key={item.id}\n type=\"button\"\n onClick={() => handleSelect(item)}\n className=\"w-full text-left px-3 py-2 hover:bg-slateBorder text-white flex items-center justify-between text-xs transition-colors cursor-pointer\"\n >\n <span>{item.name}</span>\n {item.id === selected?.id && <span className=\"text-pistachio\">✓</span>}\n </button>\n ))}\n </div>\n )}\n </div>\n );\n};\n\nexport default WorkspaceSwitcher;\n"]}
@@ -0,0 +1,239 @@
1
+ import React from 'react';
2
+
3
+ interface DropdownItem<T = any> {
4
+ value: T;
5
+ label: string;
6
+ disabled?: boolean;
7
+ }
8
+ interface AnimatedDropdownProps {
9
+ items: DropdownItem[];
10
+ value: any;
11
+ onChange: (value: any) => void;
12
+ placeholder?: string;
13
+ header?: string;
14
+ disabled?: boolean;
15
+ }
16
+ declare const AnimatedDropdown: React.FC<AnimatedDropdownProps>;
17
+
18
+ interface BadgeStatusProps {
19
+ label: string;
20
+ status?: 'success' | 'warning' | 'error' | 'neutral';
21
+ className?: string;
22
+ }
23
+ declare const BadgeStatus: React.FC<BadgeStatusProps>;
24
+
25
+ interface BentoGridCardProps {
26
+ title: string;
27
+ description: string;
28
+ icon?: React.ReactNode;
29
+ className?: string;
30
+ }
31
+ declare const BentoGridCard: React.FC<BentoGridCardProps>;
32
+
33
+ interface ButtonOutlineProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
34
+ children: React.ReactNode;
35
+ }
36
+ declare const ButtonOutline: React.FC<ButtonOutlineProps>;
37
+
38
+ interface ButtonPrimaryProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
39
+ children: React.ReactNode;
40
+ }
41
+ declare const ButtonPrimary: React.FC<ButtonPrimaryProps>;
42
+
43
+ interface ButtonSecondaryProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
44
+ children: React.ReactNode;
45
+ }
46
+ declare const ButtonSecondary: React.FC<ButtonSecondaryProps>;
47
+
48
+ interface ClientTrustCardProps {
49
+ clientName?: string;
50
+ location?: string;
51
+ href?: string;
52
+ logoSrc?: string;
53
+ className?: string;
54
+ }
55
+ declare const ClientTrustCard: React.FC<ClientTrustCardProps>;
56
+
57
+ interface CommandKTriggerProps {
58
+ placeholder?: string;
59
+ shortcut?: string;
60
+ onOpen?: () => void;
61
+ className?: string;
62
+ }
63
+ declare const CommandKTrigger: React.FC<CommandKTriggerProps>;
64
+
65
+ interface DropdownOption<T = any> {
66
+ value: T;
67
+ label: string;
68
+ disabled?: boolean;
69
+ }
70
+ interface DropdownSelectProps {
71
+ id?: string;
72
+ label?: string;
73
+ placeholder?: string;
74
+ required?: boolean;
75
+ disabled?: boolean;
76
+ errorText?: string;
77
+ options: DropdownOption[];
78
+ value: any;
79
+ onChange: (val: any) => void;
80
+ }
81
+ declare const DropdownSelect: React.FC<DropdownSelectProps>;
82
+
83
+ interface FooterBounceProps {
84
+ color?: string;
85
+ className?: string;
86
+ }
87
+ declare const FooterBounce: React.FC<FooterBounceProps>;
88
+
89
+ interface MagneticButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
90
+ children: React.ReactNode;
91
+ strength?: number;
92
+ }
93
+ declare const MagneticButton: React.FC<MagneticButtonProps>;
94
+
95
+ interface PreloaderProps {
96
+ onFinish?: () => void;
97
+ className?: string;
98
+ }
99
+ declare const Preloader: React.FC<PreloaderProps>;
100
+
101
+ interface HelpTooltipProps {
102
+ text: string;
103
+ title?: string;
104
+ ariaLabel?: string;
105
+ }
106
+ declare const HelpTooltip: React.FC<HelpTooltipProps>;
107
+
108
+ interface InputTextProps extends React.InputHTMLAttributes<HTMLInputElement> {
109
+ }
110
+ declare const InputText: React.FC<InputTextProps>;
111
+
112
+ interface LanguageSelectorDropdownProps {
113
+ currentLang?: 'es' | 'en';
114
+ onLangChange?: (lang: 'es' | 'en') => void;
115
+ className?: string;
116
+ }
117
+ declare const LanguageSelectorDropdown: React.FC<LanguageSelectorDropdownProps>;
118
+
119
+ interface LanguageSelectorPillProps {
120
+ currentLang?: 'es' | 'en';
121
+ onLangChange?: (lang: 'es' | 'en') => void;
122
+ className?: string;
123
+ }
124
+ declare const LanguageSelectorPill: React.FC<LanguageSelectorPillProps>;
125
+
126
+ interface MagicLinkCardProps {
127
+ email: string;
128
+ onResend?: () => void;
129
+ className?: string;
130
+ }
131
+ declare const MagicLinkCard: React.FC<MagicLinkCardProps>;
132
+
133
+ interface ManifestoIconBoxProps {
134
+ size?: number;
135
+ className?: string;
136
+ }
137
+ declare const ManifestoIconBox: React.FC<ManifestoIconBoxProps>;
138
+
139
+ interface MetricCardProps {
140
+ label: string;
141
+ value: string;
142
+ trend?: string;
143
+ className?: string;
144
+ }
145
+ declare const MetricCard: React.FC<MetricCardProps>;
146
+
147
+ interface ModalDialogProps {
148
+ isOpen: boolean;
149
+ onClose: () => void;
150
+ title: string;
151
+ subtitle?: string;
152
+ size?: 'sm' | 'md' | 'lg' | 'xl' | '2xl';
153
+ showCloseButton?: boolean;
154
+ closeOnBackdrop?: boolean;
155
+ children: React.ReactNode;
156
+ footer?: React.ReactNode;
157
+ }
158
+ declare const ModalDialog: React.FC<ModalDialogProps>;
159
+
160
+ interface ProcessStepCardProps {
161
+ stepNumber?: string;
162
+ title: string;
163
+ description: string;
164
+ badge?: string;
165
+ icon?: React.ReactNode;
166
+ className?: string;
167
+ }
168
+ declare const ProcessStepCard: React.FC<ProcessStepCardProps>;
169
+
170
+ type SystemRoleView = 'ADMIN' | 'USER';
171
+ interface RoleViewSwitcherProps {
172
+ activeRole?: SystemRoleView;
173
+ onRoleChange?: (role: SystemRoleView) => void;
174
+ className?: string;
175
+ }
176
+ declare const RoleViewSwitcher: React.FC<RoleViewSwitcherProps>;
177
+
178
+ interface SolutionBentoCardProps {
179
+ title: string;
180
+ description: string;
181
+ badge?: string;
182
+ bulletPoints?: string[];
183
+ ctaText?: string;
184
+ ctaHref?: string;
185
+ icon?: React.ReactNode;
186
+ className?: string;
187
+ }
188
+ declare const SolutionBentoCard: React.FC<SolutionBentoCardProps>;
189
+
190
+ interface TableLedgerRowProps {
191
+ index: number;
192
+ hash: string;
193
+ timestamp: string;
194
+ verified?: boolean;
195
+ onCopyHash?: (hash: string) => void;
196
+ className?: string;
197
+ }
198
+ declare const TableLedgerRow: React.FC<TableLedgerRowProps>;
199
+
200
+ interface TimerWidgetProps {
201
+ time?: string;
202
+ active?: boolean;
203
+ onToggle?: () => void;
204
+ className?: string;
205
+ }
206
+ declare const TimerWidget: React.FC<TimerWidgetProps>;
207
+
208
+ interface ToggleSwitchProps {
209
+ label?: string;
210
+ checked?: boolean;
211
+ onChange?: (checked: boolean) => void;
212
+ className?: string;
213
+ }
214
+ declare const ToggleSwitch: React.FC<ToggleSwitchProps>;
215
+
216
+ interface WavyUnderlineHeadingProps {
217
+ prefixText?: string;
218
+ highlightText?: string;
219
+ strokeColor?: string;
220
+ className?: string;
221
+ showReload?: boolean;
222
+ }
223
+ declare const WavyUnderlineHeading: React.FC<WavyUnderlineHeadingProps>;
224
+
225
+ interface WorkspaceItem {
226
+ id: string;
227
+ name: string;
228
+ isMain?: boolean;
229
+ }
230
+ interface WorkspaceSwitcherProps {
231
+ workspaces?: WorkspaceItem[];
232
+ currentWorkspace?: WorkspaceItem;
233
+ onSelect?: (workspace: WorkspaceItem) => void;
234
+ className?: string;
235
+ }
236
+ declare const WorkspaceSwitcher: React.FC<WorkspaceSwitcherProps>;
237
+
238
+ export { AnimatedDropdown, BadgeStatus, BentoGridCard, ButtonOutline, ButtonPrimary, ButtonSecondary, ClientTrustCard, CommandKTrigger, DropdownSelect, FooterBounce, HelpTooltip, InputText, LanguageSelectorDropdown, LanguageSelectorPill, MagicLinkCard, MagneticButton, ManifestoIconBox, MetricCard, ModalDialog, Preloader, ProcessStepCard, RoleViewSwitcher, SolutionBentoCard, TableLedgerRow, TimerWidget, ToggleSwitch, WavyUnderlineHeading, WorkspaceSwitcher };
239
+ export type { AnimatedDropdownProps, BadgeStatusProps, BentoGridCardProps, ButtonOutlineProps, ButtonPrimaryProps, ButtonSecondaryProps, ClientTrustCardProps, CommandKTriggerProps, DropdownItem, DropdownOption, DropdownSelectProps, FooterBounceProps, HelpTooltipProps, InputTextProps, LanguageSelectorDropdownProps, LanguageSelectorPillProps, MagicLinkCardProps, MagneticButtonProps, ManifestoIconBoxProps, MetricCardProps, ModalDialogProps, PreloaderProps, ProcessStepCardProps, RoleViewSwitcherProps, SolutionBentoCardProps, SystemRoleView, TableLedgerRowProps, TimerWidgetProps, ToggleSwitchProps, WavyUnderlineHeadingProps, WorkspaceItem, WorkspaceSwitcherProps };