bynana-ui 1.7.0 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai-text-loading/index.js +2 -0
- package/dist/ai-text-loading/index.js.map +1 -0
- package/dist/ai-text-loading/index.mjs +2 -0
- package/dist/ai-text-loading/index.mjs.map +1 -0
- package/dist/ai-voice/index.js +3 -0
- package/dist/ai-voice/index.js.map +1 -0
- package/dist/ai-voice/index.mjs +3 -0
- package/dist/ai-voice/index.mjs.map +1 -0
- package/dist/background-paths/index.js +2 -0
- package/dist/background-paths/index.js.map +1 -0
- package/dist/background-paths/index.mjs +2 -0
- package/dist/background-paths/index.mjs.map +1 -0
- package/dist/floating-paths/index.js +2 -0
- package/dist/floating-paths/index.js.map +1 -0
- package/dist/floating-paths/index.mjs +2 -0
- package/dist/floating-paths/index.mjs.map +1 -0
- package/dist/folder/index.js +2 -0
- package/dist/folder/index.js.map +1 -0
- package/dist/folder/index.mjs +2 -0
- package/dist/folder/index.mjs.map +1 -0
- package/dist/glare-hover/index.js +32 -0
- package/dist/glare-hover/index.js.map +1 -0
- package/dist/glare-hover/index.mjs +32 -0
- package/dist/glare-hover/index.mjs.map +1 -0
- package/dist/index.js +44 -14
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +44 -14
- package/dist/index.mjs.map +1 -1
- package/dist/logo-loop/index.js +2 -0
- package/dist/logo-loop/index.js.map +1 -0
- package/dist/logo-loop/index.mjs +2 -0
- package/dist/logo-loop/index.mjs.map +1 -0
- package/dist/magnet/index.js +2 -0
- package/dist/magnet/index.js.map +1 -0
- package/dist/magnet/index.mjs +2 -0
- package/dist/magnet/index.mjs.map +1 -0
- package/dist/magnet-lines/index.js +2 -0
- package/dist/magnet-lines/index.js.map +1 -0
- package/dist/magnet-lines/index.mjs +2 -0
- package/dist/magnet-lines/index.mjs.map +1 -0
- package/dist/team-selector/index.js +3 -0
- package/dist/team-selector/index.js.map +1 -0
- package/dist/team-selector/index.mjs +3 -0
- package/dist/team-selector/index.mjs.map +1 -0
- package/dist/testimonials-stars/index.js +3 -0
- package/dist/testimonials-stars/index.js.map +1 -0
- package/dist/testimonials-stars/index.mjs +3 -0
- package/dist/testimonials-stars/index.mjs.map +1 -0
- package/dist/text-type/index.js +2 -0
- package/dist/text-type/index.js.map +1 -0
- package/dist/text-type/index.mjs +2 -0
- package/dist/text-type/index.mjs.map +1 -0
- package/dist/tooltip-interactive/index.js +2 -0
- package/dist/tooltip-interactive/index.js.map +1 -0
- package/dist/tooltip-interactive/index.mjs +2 -0
- package/dist/tooltip-interactive/index.mjs.map +1 -0
- package/dist/tooltip-magnetic/index.js +2 -0
- package/dist/tooltip-magnetic/index.js.map +1 -0
- package/dist/tooltip-magnetic/index.mjs +2 -0
- package/dist/tooltip-magnetic/index.mjs.map +1 -0
- package/dist/tooltip-rich/index.js +2 -0
- package/dist/tooltip-rich/index.js.map +1 -0
- package/dist/tooltip-rich/index.mjs +2 -0
- package/dist/tooltip-rich/index.mjs.map +1 -0
- package/package.json +17 -2
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/cn.ts","../src/shine-button/index.tsx","../src/ripple-button/index.tsx","../src/magnetic-button/index.tsx","../src/bounce-button/index.tsx","../src/glow-button/index.tsx","../src/pulse-button/index.tsx","../src/neon-button/index.tsx","../src/liquid-button/index.tsx","../src/slide-button/index.tsx","../src/gradient-button/index.tsx","../src/hold-button/index.tsx","../src/threed-button/index.tsx","../src/copy-button/index.tsx","../src/particle-button/index.tsx","../src/attract-button/index.tsx","../src/command-button/index.tsx","../src/gradient-text/index.tsx","../src/shimmer-text/index.tsx","../src/glitch-text/index.tsx","../src/bounce-text/index.tsx","../src/blur-text/index.tsx","../src/typewriter/index.tsx","../src/wave-text/index.tsx","../src/flip-text/index.tsx","../src/shiny-text/index.tsx","../src/fuzzy-text/index.tsx","../src/matrix-text/index.tsx","../src/liquid-text/index.tsx","../src/swoosh-text/index.tsx","../src/scrambled-text/index.tsx","../src/magnetic-text/index.tsx","../src/dynamic-text/index.tsx","../src/rotating-text/index.tsx","../src/stagger-text/index.tsx","../src/rainbow-text/index.tsx","../src/count-up/index.tsx","../src/reveal-text/index.tsx","../src/split-text/index.tsx","../src/morph-text/index.tsx","../src/perspective-text/index.tsx","../src/elastic-text/index.tsx","../src/circular-text/index.tsx","../src/glowing-text/index.tsx","../src/sliced-text/index.tsx","../src/decrypted-text/index.tsx","../src/true-focus/index.tsx","../src/glass-card/index.tsx","../src/hover-card/index.tsx","../src/card-flip/index.tsx","../src/card/index.tsx","../src/loading-dots/index.tsx","../src/loading-spinner/index.tsx","../src/loading-bar/index.tsx","../src/loading-pulse/index.tsx","../src/loading-bounce/index.tsx","../src/loading-flower/index.tsx","../src/loading-geometric/index.tsx","../src/loading-morph/index.tsx","../src/loading-rings/index.tsx","../src/loading-text/index.tsx","../src/loading-words/index.tsx","../src/animated-list/index.tsx","../src/skeleton/index.tsx","../src/tooltip/index.tsx","../src/tooltip-minimal/index.tsx","../src/tooltip-animated/index.tsx","../src/badge/index.tsx","../src/avatar/index.tsx","../src/progress/index.tsx","../src/switch/index.tsx","../src/accordion/index.tsx","../src/tabs/index.tsx","../src/modal/index.tsx","../src/drawer/index.tsx","../src/alert/index.tsx","../src/terminal/index.tsx","../src/stepper/index.tsx","../src/file-tree/index.tsx","../src/counter/index.tsx","../src/toolbar/index.tsx","../src/dock/index.tsx","../src/input/index.tsx","../src/textarea/index.tsx","../src/checkbox/index.tsx","../src/radio/index.tsx","../src/select/index.tsx","../src/input-otp/index.tsx","../src/hamburger-basic/index.tsx","../src/hamburger-spin/index.tsx","../src/hamburger-morph/index.tsx","../src/hamburger-spring/index.tsx","../src/hamburger-wave/index.tsx","../src/hamburger-stagger/index.tsx","../src/hamburger-3d/index.tsx","../src/hamburger-elastic/index.tsx","../src/click-spark/index.tsx","../src/smooth-cursor/index.tsx","../src/float-effect/index.tsx","../src/glow-effect/index.tsx","../src/blur-fade/index.tsx","../src/pixel-card/index.tsx","../src/tilted-card/index.tsx","../src/infinite-scroll/index.tsx","../src/multi-step-loader/index.tsx","../src/ascii-text/index.tsx","../src/falling-text/index.tsx","../src/animated-circular-progress/index.tsx","../src/loading-invert/index.tsx","../src/loader/index.tsx","../src/theme-toggler/index.tsx","../src/shimmer-effect/index.tsx","../src/scroll-velocity/index.tsx","../src/text-cursor/index.tsx","../src/social-button/index.tsx","../src/v0-button/index.tsx","../src/contribution-graph/index.tsx","../src/elastic-slider/index.tsx","../src/flowing-menu/index.tsx","../src/gooey-nav/index.tsx","../src/pill-nav/index.tsx","../src/smooth-drawer/index.tsx","../src/smooth-tab/index.tsx","../src/decay-card/index.tsx","../src/liquid-glass-card/index.tsx","../src/target-cursor/index.tsx","../src/crosshair/index.tsx","../src/scroll-text/index.tsx","../src/card-stack/index.tsx","../src/apple-activity-card/index.tsx","../src/tweet-card/index.tsx","../src/stats-cards/index.tsx","../src/stats-grid/index.tsx","../src/bento-grid/index.tsx","../src/aurora/index.tsx","../src/threads/index.tsx","../src/squares/index.tsx","../src/waves/index.tsx","../../../node_modules/shared/src/utils.ts","../../../node_modules/lucide-react/src/defaultAttributes.ts","../../../node_modules/lucide-react/src/Icon.ts","../../../node_modules/lucide-react/src/createLucideIcon.ts","../../../node_modules/lucide-react/src/icons/arrow-down-right.ts","../../../node_modules/lucide-react/src/icons/briefcase.ts","../../../node_modules/lucide-react/src/icons/check.ts","../../../node_modules/lucide-react/src/icons/chevron-down.ts","../../../node_modules/lucide-react/src/icons/chevron-left.ts","../../../node_modules/lucide-react/src/icons/chevron-right.ts","../../../node_modules/lucide-react/src/icons/clock.ts","../../../node_modules/lucide-react/src/icons/command.ts","../../../node_modules/lucide-react/src/icons/dollar-sign.ts","../../../node_modules/lucide-react/src/icons/external-link.ts","../../../node_modules/lucide-react/src/icons/map-pin.ts","../../../node_modules/lucide-react/src/icons/mic.ts","../../../node_modules/lucide-react/src/icons/paperclip.ts","../../../node_modules/lucide-react/src/icons/search.ts","../../../node_modules/lucide-react/src/icons/send.ts","../../../node_modules/lucide-react/src/icons/sparkles.ts","../../../node_modules/lucide-react/src/icons/star.ts","../../../node_modules/lucide-react/src/icons/x.ts","../src/hero-grid/index.tsx","../src/hero-showcase/index.tsx","../src/testimonials-simple/index.tsx","../src/testimonials-grid/index.tsx","../src/pricing-modern/index.tsx","../src/footer-simple/index.tsx","../src/footer-complex/index.tsx","../src/logo-cloud/index.tsx","../src/faqs-accordion/index.tsx","../src/faqs-grid/index.tsx","../src/team-carousel/index.tsx","../src/job-listing/index.tsx","../src/elastic-search/index.tsx","../src/action-search-bar/index.tsx","../src/ai-loading/index.tsx","../src/ai-prompt/index.tsx","../src/ai-bar/index.tsx","../src/scroll-reveal/index.tsx","../src/scroll-float/index.tsx","../src/scroll-stack/index.tsx"],"names":["cn","inputs","twMerge","clsx","ShineButton","children","className","props","jsxs","jsx","RippleButton","onClick","ripples","setRipples","useState","handleClick","e","rect","x","y","newRipple","prev","r","AnimatePresence","ripple","motion","MagneticButton","strength","radius","ref","useRef","isHovered","setIsHovered","useMotionValue","springConfig","xSpring","useSpring","ySpring","centerX","centerY","distanceX","distanceY","distance","factor","BounceButton","isBouncing","setIsBouncing","GlowButton","glowColor","isGlowing","setIsGlowing","PulseButton","pulseColor","colorVariants","sizeVariants","NeonButton","color","size","colors","LiquidButton","variant","isFilling","setIsFilling","sizeClasses","variantClasses","Fragment","_","i","SlideButton","slideText","gradients","sizes","GradientButton","HoldButton","holdDuration","onHoldComplete","progress","setProgress","isHolding","setIsHolding","intervalRef","variants","progressColors","startHold","startTime","elapsed","newProgress","stopHold","ThreeDButton","CopyButton","text","value","onCopy","copied","setCopied","error","SuccessParticles","buttonRef","ParticleButton","onSuccess","successDuration","showParticles","setShowParticles","AttractButton","particleCount","isAttracting","setIsAttracting","particles","setParticles","particlesControl","useAnimation","useEffect","newParticles","handleInteractionStart","useCallback","handleInteractionEnd","index","CommandButton","shortcut","GradientText","animationSpeed","ShimmerText","GlitchText","glitchIntensity","isStatic","selectedScheme","settings","sizeMap","glitchAnimation","BounceText","delay","duration","letters","letter","BlurText","animateBy","direction","elements","inView","setInView","observer","entry","fromAnimation","useMemo","toAnimation","segment","Typewriter","speed","cursor","loop","displayText","setDisplayText","isTyping","setIsTyping","timeout","isDeleting","type","WaveText","amplitude","frequency","FlipText","ShinyText","disabled","FuzzyText","fontSize","fontWeight","fontFamily","enableHover","baseIntensity","hoverIntensity","canvasRef","animationFrameId","isCancelled","canvas","ctx","computedFontFamily","fontSizeStr","numericFontSize","temp","React","offscreen","offCtx","metrics","actualLeft","actualRight","actualAscent","actualDescent","textBoundingWidth","tightHeight","extraWidthBuffer","offscreenWidth","xOffset","horizontalMargin","verticalMargin","interactiveLeft","interactiveTop","interactiveRight","interactiveBottom","isHovering","fuzzRange","run","intensity","j","dx","isInsideTextArea","handleMouseMove","handleMouseLeave","MatrixText","containerRef","container","chars","originalText","iteration","animate","char","LiquidText","words","child","word","SwooshText","ScrambledText","scrambleChars","interval","MagneticText","position","setPosition","handleMouse","clientX","clientY","height","width","left","top","middleX","middleY","reset","DynamicText","setIndex","timer","RotatingText","StaggerText","staggerDelay","RainbowText","CountUp","end","start","prefix","suffix","decimals","count","setCount","animationFrame","timestamp","easeOutQuart","currentCount","RevealText","stagger","SplitText","splitType","textAlign","element","MorphText","PerspectiveText","ElasticText","CircularText","spinDuration","onHover","controls","rotation","handleHoverStart","scale","handleHoverEnd","rotationDeg","angle","GlowingText","hoverColor","currentColor","SlicedText","containerClassName","splitSpacing","DecryptedText","maxIterations","sequential","revealDirection","useOriginalCharsOnly","characters","parentClassName","encryptedClassName","animateOn","setIsHovering","isScrambling","setIsScrambling","revealedIndices","setRevealedIndices","hasAnimated","setHasAnimated","currentIteration","getNextIndex","revealedSet","textLength","middle","offset","nextIndex","availableChars","shuffleText","currentRevealed","positions","nonSpaceChars","p","charIndex","prevRevealed","newRevealed","observerCallback","entries","currentRef","hoverProps","isRevealedOrDone","TrueFocus","sentence","manualMode","blurAmount","borderColor","animationDuration","pauseBetweenAnimations","currentIndex","setCurrentIndex","lastActiveIndex","setLastActiveIndex","wordRefs","focusRect","setFocusRect","updateFocusRect","parentRect","activeRect","isActive","el","GlassCard","HoverCard","CardFlip","frontContent","backContent","isFlipped","setIsFlipped","Card","hover","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","LoadingDots","LoadingSpinner","LoadingBar","LoadingPulse","LoadingBounce","LoadingFlower","LoadingGeometric","LoadingMorph","LoadingRings","LoadingText","LoadingWords","AnimatedList","childrenArray","prevIndex","itemsToShow","item","idx","AnimatedListItem","Skeleton","Tooltip","content","isVisible","setIsVisible","animations","TooltipMinimal","timeoutRef","showTooltip","hideTooltip","getPositionClasses","TooltipAnimated","animation","getAnimationProps","offsets","Badge","Avatar","src","alt","fallback","initials","n","Progress","max","showLabel","percentage","Switch","checked","onChange","sizeConfig","Accordion","items","allowMultiple","openItems","setOpenItems","toggleItem","Tabs","tabs","defaultIndex","activeIndex","setActiveIndex","tab","Modal","isOpen","onClose","title","handleEscape","Drawer","positionClasses","Alert","close","handleClose","AlertIcon","AlertTitle","AlertToolbar","Terminal","TypingAnimation","displayedText","setDisplayedText","isComplete","setIsComplete","AnimatedSpan","Stepper","initialStep","onStepChange","onFinalStepCompleted","backButtonText","nextButtonText","disableStepIndicators","rest","currentStep","setCurrentStep","setDirection","stepsArray","Children","totalSteps","isCompleted","isLastStep","updateStep","newStep","handleBack","handleNext","handleComplete","stepNumber","isNotLastStep","StepIndicator","clicked","StepConnector","StepContentWrapper","parentHeight","setParentHeight","SlideTransition","h","onHeightReady","useLayoutEffect","stepVariants","dir","Step","step","onClickStep","status","TreeContext","createContext","useTree","context","useContext","Tree","forwardRef","data","initialSelectedId","onSelectChange","initialExpandedItems","selectedId","setSelectedId","expandedItems","setExpandedItems","handleExpand","id","handleSelect","treeData","dataArray","findItem","found","selectedItem","Folder","isSelectable","File","Number","mv","number","useTransform","latest","placeValue","memo","Digit","place","digitStyle","valueRoundedToPlace","animatedValue","Counter","padding","places","gap","textColor","containerStyle","buttonVariants","isSelected","spanVariants","transition","Toolbar","defaultSelected","onItemClick","selected","setSelected","handleItemClick","itemId","Dock","directionClasses","DockIcon","magnification","mouseX","Input","label","icon","Textarea","Checkbox","RadioGroup","options","name","option","Select","placeholder","setIsOpen","selectedOption","opt","handleClickOutside","InputOTP","maxLength","onComplete","values","setValues","inputRefs","currentValue","handleChange","pastedValues","newValues","val","handleKeyDown","handleFocus","HamburgerBasic","handleToggle","newState","HamburgerSpin","classes","HamburgerMorph","HamburgerSpring","HamburgerWave","HamburgerStagger","Hamburger3D","HamburgerElastic","ClickSpark","sparkColor","sparkSize","sparkRadius","sparkCount","easing","extraScale","sparksRef","startTimeRef","parent","resizeTimeout","resizeCanvas","handleResize","ro","easeFunc","t","animationId","draw","spark","eased","lineLength","x1","y1","x2","y2","now","newSparks","SmoothCursor","cursorX","cursorY","cursorXSpring","cursorYSpring","moveCursor","hideCursor","FloatEffect","GlowEffect","BlurFade","blur","inViewMargin","yOffset","Pixel","min","centerOffset","VARIANTS","getEffectiveSpeed","reducedMotion","PixelCard","noFocus","pixelsRef","animationRef","timePreviousRef","variantCfg","finalGap","finalSpeed","finalColors","finalNoFocus","initPixels","colorsArray","c","pxs","gapValue","dy","doAnimate","fnName","timeNow","timePassed","timeInterval","allIdle","pixel","handleAnimation","onMouseEnter","onMouseLeave","onFocus","onBlur","springValues","TiltedCard","imageSrc","altText","captionText","containerHeight","containerWidth","imageHeight","imageWidth","scaleOnHover","rotateAmplitude","showMobileWarning","overlayContent","displayOverlayContent","rotateX","rotateY","opacity","rotateFigcaption","lastY","setLastY","offsetX","offsetY","rotationX","rotationY","velocityY","handleMouseEnter","InfiniteScroll","pauseOnHover","scrollerRef","scrollerInnerRef","duplicatedItem","MultiStepLoader","loadingStates","loading","currentState","setCurrentState","prevState","ASCII_CHARS","ASCIIText","enableWaves","asciiFontSize","textFontSize","planeBaseHeight","asciiArt","setAsciiArt","pixels","cols","rows","ascii","px","brightness","charIdx","FallingText","highlightWords","highlightClass","trigger","handleInteraction","isHighlighted","AnimatedCircularProgressBar","gaugePrimaryColor","gaugeSecondaryColor","strokeWidth","showValue","autoAnimate","setCurrentValue","circumference","motionValue","springValue","strokeDasharray","displayValue","next","LoadingInvert","Loader","subtitle","config","AnimatedThemeToggler","isDark","setIsDark","prefersDark","toggleTheme","newTheme","iconSizes","ShimmerEffect","useElementWidth","setWidth","updateWidth","ScrollVelocity","scrollContainerRef","texts","velocity","damping","stiffness","numCopies","velocityMapping","VelocityText","baseVelocity","baseX","scrollOptions","scrollY","useScroll","scrollVelocity","useVelocity","smoothVelocity","velocityFactor","copyRef","copyWidth","wrap","v","range","directionFactor","useAnimationFrame","delta","moveBy","spans","TextCursor","spacing","followMouseDirection","randomFloat","exitDuration","removalInterval","maxPoints","trail","setTrail","lastMoveTimeRef","idCounter","mouseY","newTrail","last","rawAngle","computedAngle","steps","SocialButton","href","Component","V0Button","ContributionGraph","weeks","contributions","getColor","level","weekIndex","dayIndex","ElasticSlider","defaultValue","trackClassName","thumbClassName","setValue","isDragging","setIsDragging","newValue","DEFAULT_ITEMS","FlowingMenu","hoveredIndex","setHoveredIndex","GooeyNav","activeColor","inactiveColor","backgroundColor","event","PillNav","logo","logoAlt","activeHref","baseColor","pillColor","hoveredPillTextColor","pillTextColor","onMobileMenuClick","resolvedPillTextColor","isMobileMenuOpen","setIsMobileMenuOpen","toggleMobileMenu","SmoothDrawer","description","side","DEFAULT_TABS","SmoothTab","defaultTabId","dimensions","setDimensions","buttonRefs","updateDimensions","selectedButton","containerRect","handleTabClick","tabId","DecayCard","image","displacementMapRef","cachedCursor","imgTransforms","displacementScale","lerp","a","b","map","d","ev","render","winWidth","winHeight","targetX","targetY","targetRz","bound","cursorTravelledDistance","filterId","GLASS_SHADOW","GlassFilter","LiquidGlassCard","glassSize","glassEffect","useId","TargetCursor","targetSelector","hideDefaultCursor","cursorRef","dotRef","setRotation","originalCursor","handleMouseOver","target","handleMouseOut","newRotation","cornerSize","borderWidth","corner","isTop","isLeft","Crosshair","lineHorizontalRef","lineVerticalRef","mouseRef","renderedRef","getMousePos","bounds","isOutside","onFirstMove","ScrollText","itemsRef","totalCards","isExpanded","defaultX","defaultY","defaultRotate","cardWidth","cardOverlap","expandedCenterOffset","spreadX","spreadRotate","spec","CardStack","defaultExpanded","setIsExpanded","CircleProgress","gradientId","defaultActivities","AppleActivityCard","activities","activity","VerifiedIcon","XIcon","TweetCard","authorName","authorHandle","authorImage","isVerified","reply","StatsCards","stats","isInView","useInView","stat","StatsGrid","BentoGrid","BentoCard","background","Icon","cta","Aurora","colorStops","blend","time","resize","gradient","noise","alpha","Threads","lineCount","lineColor","lineWidth","animationIdRef","lines","line","wave","Squares","squareSize","hoverFillColor","requestRef","gridOffset","hoveredSquare","drawGrid","startX","startY","squareX","squareY","updateAnimation","effectiveSpeed","Waves","waveSpeedX","waveSpeedY","waveAmpX","waveAmpY","xGap","yGap","friction","tension","maxCursorMove","style","frameIdRef","waveX","waveY","toKebabCase","string","toCamelCase","match","p1","p2","toPascalCase","camelCase","mergeClasses","array","hasA11yProp","prop","defaultAttributes","absoluteStrokeWidth","iconNode","createElement","tag","attrs","createLucideIcon","iconName","__iconNode","ArrowDownRight","Briefcase","Check","ChevronDown","ChevronLeft","ChevronRight","Clock","Command","DollarSign","ExternalLink","MapPin","Mic","Paperclip","Search","Send","Sparkles","Star","X","HeroGrid","heading","highlightedText","primaryButton","secondaryButton","HeroShowcase","buttons","reviews","avatar","star","TestimonialsSimple","testimonials","TestimonialsGrid","autoplay","active","setActive","handlePrev","testimonial","PricingModern","plans","isAnnual","setIsAnnual","plan","feature","FooterSimple","companyName","links","copyright","link","FooterComplex","newsletter","LogoCloud","logos","FaqsAccordion","faqs","openIndex","setOpenIndex","toggleAccordion","faq","FaqsGrid","categories","activeTab","setActiveTab","category","faqIndex","TeamCarousel","members","isAutoPlaying","setIsAutoPlaying","cardsPerView","nextSlide","maxIndex","prevSlide","member","JobListing","jobs","job","ElasticSearch","results","onSearch","onSelect","query","setQuery","selectedIndex","setSelectedIndex","inputRef","result","ActionSearchBar","actions","filteredActions","action","AILoading","AIPrompt","suggestions","onSubmit","handleSubmit","handleSuggestion","suggestion","AIBar","showMic","showAttach","isFocused","setIsFocused","ScrollReveal","ScrollFloat","ScrollStack"],"mappings":"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","file":"index.mjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface ShineButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n children: React.ReactNode;\r\n}\r\n\r\nexport function ShineButton({ children, className, ...props }: ShineButtonProps) {\r\n return (\r\n <button\r\n className={cn(\r\n \"relative overflow-hidden px-6 py-3 rounded-xl font-medium\",\r\n \"bg-zinc-900 text-white hover:bg-zinc-800\",\r\n \"dark:bg-zinc-800 dark:hover:bg-zinc-700 dark:text-white\",\r\n \"transition-colors duration-200\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <span\r\n className={cn(\r\n \"absolute inset-0 overflow-hidden rounded-[inherit]\",\r\n \"before:absolute before:inset-0\",\r\n \"before:-translate-x-full\",\r\n \"before:animate-shimmer\",\r\n \"before:bg-gradient-to-r\",\r\n \"before:from-transparent before:via-white/40 before:to-transparent\",\r\n \"before:skew-x-[-20deg]\"\r\n )}\r\n />\r\n <span className=\"relative z-10\">{children}</span>\r\n </button>\r\n );\r\n}\r\n\r\nexport default ShineButton;\r\n","\"use client\";\r\n\r\nimport React, { useState } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface RippleButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n children: React.ReactNode;\r\n}\r\n\r\nexport function RippleButton({ children, className, onClick, ...props }: RippleButtonProps) {\r\n const [ripples, setRipples] = useState<Array<{ x: number; y: number; id: number }>>([]);\r\n\r\n function handleClick(e: React.MouseEvent<HTMLButtonElement>) {\r\n const button = e.currentTarget;\r\n const rect = button.getBoundingClientRect();\r\n const x = e.clientX - rect.left;\r\n const y = e.clientY - rect.top;\r\n const newRipple = { x, y, id: Date.now() };\r\n\r\n setRipples((prev) => [...prev, newRipple]);\r\n setTimeout(() => {\r\n setRipples((prev) => prev.filter((r) => r.id !== newRipple.id));\r\n }, 1000);\r\n\r\n onClick?.(e);\r\n }\r\n\r\n return (\r\n <button\r\n className={cn(\r\n \"relative overflow-hidden px-6 py-3 rounded-xl font-medium\",\r\n \"bg-zinc-900 text-white hover:bg-zinc-800\",\r\n \"dark:bg-zinc-100 dark:text-black dark:hover:bg-zinc-200\",\r\n \"transition-colors duration-200\",\r\n className\r\n )}\r\n onClick={handleClick}\r\n {...props}\r\n >\r\n <AnimatePresence>\r\n {ripples.map((ripple) => (\r\n <motion.span\r\n key={ripple.id}\r\n className=\"absolute rounded-full pointer-events-none border-2 border-white/50 dark:border-black/50\"\r\n style={{\r\n left: ripple.x,\r\n top: ripple.y,\r\n transform: \"translate(-50%, -50%)\",\r\n }}\r\n initial={{ width: 0, height: 0, opacity: 0.9 }}\r\n animate={{ width: 500, height: 500, opacity: 0 }}\r\n exit={{ opacity: 0 }}\r\n transition={{ duration: 1, ease: [0.4, 0, 0.2, 1] }}\r\n />\r\n ))}\r\n </AnimatePresence>\r\n <span className=\"relative z-10\">{children}</span>\r\n </button>\r\n );\r\n}\r\n\r\nexport default RippleButton;\r\n","\"use client\";\r\n\r\nimport React, { useRef, useState } from \"react\";\r\nimport { motion, useMotionValue, useSpring } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface MagneticButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n children: React.ReactNode;\r\n strength?: number;\r\n radius?: number;\r\n}\r\n\r\nexport function MagneticButton({\r\n children,\r\n className,\r\n strength = 0.5,\r\n radius = 200,\r\n ...props\r\n}: MagneticButtonProps) {\r\n const ref = useRef<HTMLDivElement>(null);\r\n const [isHovered, setIsHovered] = useState(false);\r\n\r\n const x = useMotionValue(0);\r\n const y = useMotionValue(0);\r\n\r\n const springConfig = { damping: 20, stiffness: 300, mass: 0.5 };\r\n const xSpring = useSpring(x, springConfig);\r\n const ySpring = useSpring(y, springConfig);\r\n\r\n const handleMouseMove = (e: React.MouseEvent) => {\r\n if (!ref.current) return;\r\n const rect = ref.current.getBoundingClientRect();\r\n const centerX = rect.left + rect.width / 2;\r\n const centerY = rect.top + rect.height / 2;\r\n const distanceX = e.clientX - centerX;\r\n const distanceY = e.clientY - centerY;\r\n const distance = Math.sqrt(distanceX * distanceX + distanceY * distanceY);\r\n\r\n if (distance < radius) {\r\n const factor = 1 - distance / radius;\r\n x.set(distanceX * strength * factor);\r\n y.set(distanceY * strength * factor);\r\n }\r\n };\r\n\r\n const handleMouseLeave = () => {\r\n setIsHovered(false);\r\n x.set(0);\r\n y.set(0);\r\n };\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className=\"relative inline-flex items-center justify-center\"\r\n onMouseMove={handleMouseMove}\r\n onMouseLeave={handleMouseLeave}\r\n onMouseEnter={() => setIsHovered(true)}\r\n style={{ padding: radius / 2, margin: -radius / 2 }}\r\n >\r\n <motion.div style={{ x: xSpring, y: ySpring }}>\r\n <button\r\n className={cn(\r\n \"px-6 py-3 rounded-xl font-medium\",\r\n \"bg-zinc-900 text-white hover:bg-zinc-800\",\r\n \"dark:bg-zinc-100 dark:text-black dark:hover:bg-zinc-200\",\r\n \"transition-shadow duration-300\",\r\n isHovered && \"shadow-lg\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </button>\r\n </motion.div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default MagneticButton;\r\n","\"use client\";\r\n\r\nimport React, { useState } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface BounceButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n children: React.ReactNode;\r\n}\r\n\r\nexport function BounceButton({ children, className, onClick, ...props }: BounceButtonProps) {\r\n const [isBouncing, setIsBouncing] = useState(false);\r\n\r\n function handleClick(e: React.MouseEvent<HTMLButtonElement>) {\r\n setIsBouncing(true);\r\n setTimeout(() => setIsBouncing(false), 1500);\r\n onClick?.(e);\r\n }\r\n\r\n return (\r\n <div className=\"relative inline-block\">\r\n <motion.div\r\n className=\"absolute -bottom-2 left-1/2 w-16 h-2 bg-black/20 rounded-full blur-sm\"\r\n animate={isBouncing ? {\r\n scaleX: [1, 0.8, 1.2, 0.9, 1.1, 0.95, 1],\r\n opacity: [0.3, 0.6, 0.2, 0.5, 0.3, 0.4, 0.3],\r\n } : {}}\r\n style={{ x: \"-50%\" }}\r\n transition={{ duration: 1.5, ease: \"easeOut\" }}\r\n />\r\n\r\n <motion.div\r\n animate={isBouncing ? {\r\n y: [0, -40, -20, -35, -10, -25, -5, -15, 0],\r\n rotate: [0, -5, 2, -3, 1, -2, 0.5, -1, 0],\r\n } : {}}\r\n transition={{\r\n duration: 1.5,\r\n ease: \"easeOut\",\r\n times: [0, 0.2, 0.35, 0.5, 0.65, 0.75, 0.85, 0.95, 1],\r\n }}\r\n whileHover={!isBouncing ? { y: [0, -8, 0] } : {}}\r\n >\r\n <button\r\n className={cn(\r\n \"px-6 py-3 rounded-xl font-medium\",\r\n \"bg-orange-500 hover:bg-orange-600 text-white\",\r\n \"transition-colors duration-200\",\r\n className\r\n )}\r\n onClick={handleClick}\r\n disabled={isBouncing}\r\n {...props}\r\n >\r\n {children}\r\n </button>\r\n </motion.div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default BounceButton;\r\n","\"use client\";\r\n\r\nimport React, { useState } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface GlowButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n children: React.ReactNode;\r\n glowColor?: string;\r\n}\r\n\r\nexport function GlowButton({\r\n children,\r\n className,\r\n glowColor = \"rgba(59, 130, 246, 0.8)\",\r\n ...props\r\n}: GlowButtonProps) {\r\n const [isGlowing, setIsGlowing] = useState(false);\r\n\r\n return (\r\n <motion.div\r\n className=\"relative inline-block\"\r\n onMouseEnter={() => setIsGlowing(true)}\r\n onMouseLeave={() => setIsGlowing(false)}\r\n animate={{\r\n filter: isGlowing\r\n ? [\r\n `drop-shadow(0 0 10px ${glowColor})`,\r\n `drop-shadow(0 0 25px ${glowColor})`,\r\n `drop-shadow(0 0 10px ${glowColor})`,\r\n ]\r\n : \"drop-shadow(0 0 0px transparent)\",\r\n }}\r\n transition={{\r\n duration: isGlowing ? 1.5 : 0.3,\r\n repeat: isGlowing ? Infinity : 0,\r\n }}\r\n >\r\n <motion.div\r\n className=\"absolute inset-0 rounded-xl\"\r\n animate={isGlowing ? {\r\n boxShadow: [\r\n `0 0 20px ${glowColor}`,\r\n `0 0 40px ${glowColor}`,\r\n `0 0 20px ${glowColor}`,\r\n ],\r\n scale: [1, 1.05, 1],\r\n } : {\r\n boxShadow: \"0 0 0px transparent\",\r\n scale: 1,\r\n }}\r\n transition={{\r\n duration: 2,\r\n repeat: isGlowing ? Infinity : 0,\r\n ease: \"easeInOut\",\r\n }}\r\n />\r\n\r\n <button\r\n className={cn(\r\n \"relative px-6 py-3 rounded-xl font-medium\",\r\n \"bg-blue-600 hover:bg-blue-700 text-white\",\r\n \"transition-all duration-300\",\r\n isGlowing && \"bg-blue-500\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </button>\r\n </motion.div>\r\n );\r\n}\r\n\r\nexport default GlowButton;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface PulseButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n children: React.ReactNode;\r\n pulseColor?: string;\r\n}\r\n\r\nexport function PulseButton({\r\n children,\r\n className,\r\n pulseColor = \"rgba(239, 68, 68, 0.5)\",\r\n ...props\r\n}: PulseButtonProps) {\r\n return (\r\n <div className=\"relative inline-block\">\r\n <motion.div\r\n className=\"absolute inset-0 rounded-xl\"\r\n style={{ backgroundColor: pulseColor }}\r\n animate={{\r\n scale: [1, 1.3, 1, 1.2, 1],\r\n opacity: [0.6, 0, 0.6, 0, 0.6],\r\n }}\r\n transition={{\r\n duration: 1.2,\r\n repeat: Infinity,\r\n ease: \"easeInOut\",\r\n times: [0, 0.2, 0.4, 0.6, 1],\r\n }}\r\n />\r\n\r\n <motion.div\r\n className=\"absolute inset-0 rounded-xl\"\r\n style={{ backgroundColor: pulseColor }}\r\n animate={{\r\n scale: [1, 1.5, 1, 1.4, 1],\r\n opacity: [0.4, 0, 0.4, 0, 0.4],\r\n }}\r\n transition={{\r\n duration: 1.2,\r\n delay: 0.1,\r\n repeat: Infinity,\r\n ease: \"easeInOut\",\r\n times: [0, 0.2, 0.4, 0.6, 1],\r\n }}\r\n />\r\n\r\n <motion.div\r\n animate={{\r\n scale: [1, 1.05, 1, 1.03, 1],\r\n }}\r\n transition={{\r\n duration: 1.2,\r\n repeat: Infinity,\r\n ease: \"easeInOut\",\r\n times: [0, 0.2, 0.4, 0.6, 1],\r\n }}\r\n >\r\n <button\r\n className={cn(\r\n \"relative px-6 py-3 rounded-xl font-medium\",\r\n \"bg-red-500 hover:bg-red-600 text-white\",\r\n \"transition-colors duration-200\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </button>\r\n </motion.div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default PulseButton;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface NeonButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n color?: \"pink\" | \"cyan\" | \"green\" | \"purple\" | \"orange\";\r\n size?: \"sm\" | \"default\" | \"lg\";\r\n}\r\n\r\nconst colorVariants = {\r\n pink: {\r\n border: \"border-pink-500\",\r\n text: \"text-pink-400\",\r\n shadow: \"shadow-pink-500/50\",\r\n glow: \"rgba(236, 72, 153, 0.6)\",\r\n bg: \"hover:bg-pink-500/10\",\r\n },\r\n cyan: {\r\n border: \"border-cyan-500\",\r\n text: \"text-cyan-400\",\r\n shadow: \"shadow-cyan-500/50\",\r\n glow: \"rgba(6, 182, 212, 0.6)\",\r\n bg: \"hover:bg-cyan-500/10\",\r\n },\r\n green: {\r\n border: \"border-green-500\",\r\n text: \"text-green-400\",\r\n shadow: \"shadow-green-500/50\",\r\n glow: \"rgba(34, 197, 94, 0.6)\",\r\n bg: \"hover:bg-green-500/10\",\r\n },\r\n purple: {\r\n border: \"border-purple-500\",\r\n text: \"text-purple-400\",\r\n shadow: \"shadow-purple-500/50\",\r\n glow: \"rgba(168, 85, 247, 0.6)\",\r\n bg: \"hover:bg-purple-500/10\",\r\n },\r\n orange: {\r\n border: \"border-orange-500\",\r\n text: \"text-orange-400\",\r\n shadow: \"shadow-orange-500/50\",\r\n glow: \"rgba(249, 115, 22, 0.6)\",\r\n bg: \"hover:bg-orange-500/10\",\r\n },\r\n};\r\n\r\nconst sizeVariants = {\r\n sm: \"h-8 px-3 text-xs\",\r\n default: \"h-10 px-6 text-sm\",\r\n lg: \"h-12 px-8 text-base\",\r\n};\r\n\r\nexport function NeonButton({\r\n children,\r\n className,\r\n color = \"cyan\",\r\n size = \"default\",\r\n ...props\r\n}: NeonButtonProps) {\r\n const colors = colorVariants[color];\r\n\r\n return (\r\n <motion.button\r\n className={cn(\r\n \"relative inline-flex items-center justify-center\",\r\n \"font-semibold tracking-wide uppercase\",\r\n \"border-2 rounded-lg\",\r\n \"bg-transparent\",\r\n \"transition-colors duration-200\",\r\n colors.border,\r\n colors.text,\r\n colors.bg,\r\n sizeVariants[size],\r\n className\r\n )}\r\n whileHover={{\r\n boxShadow: `0 0 20px ${colors.glow}, 0 0 40px ${colors.glow}, 0 0 60px ${colors.glow}`,\r\n }}\r\n whileTap={{ scale: 0.98 }}\r\n transition={{ duration: 0.2 }}\r\n {...props}\r\n >\r\n <motion.span\r\n className={cn(\"absolute inset-0 rounded-lg opacity-0\", colors.border)}\r\n animate={{ opacity: [0.5, 1, 0.5] }}\r\n transition={{ duration: 2, repeat: Infinity, ease: \"easeInOut\" }}\r\n style={{ boxShadow: `inset 0 0 10px ${colors.glow}` }}\r\n />\r\n <span className=\"relative z-10\">{children}</span>\r\n </motion.button>\r\n );\r\n}\r\n\r\nexport default NeonButton;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LiquidButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n variant?: \"primary\" | \"secondary\" | \"outline\";\r\n size?: \"sm\" | \"md\" | \"lg\";\r\n}\r\n\r\nexport function LiquidButton({\r\n children,\r\n className,\r\n variant = \"primary\",\r\n size = \"md\",\r\n onClick,\r\n ...props\r\n}: LiquidButtonProps) {\r\n const [isFilling, setIsFilling] = useState(false);\r\n\r\n function handleClick(e: React.MouseEvent<HTMLButtonElement>) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n setIsFilling(true);\r\n setTimeout(() => setIsFilling(false), 800);\r\n if (onClick) onClick(e);\r\n }\r\n\r\n const sizeClasses = {\r\n sm: \"px-4 py-2 text-sm\",\r\n md: \"px-6 py-3 text-base\",\r\n lg: \"px-8 py-4 text-lg\"\r\n };\r\n\r\n const variantClasses = {\r\n primary: \"bg-zinc-900 text-white border-zinc-900 dark:bg-white dark:text-zinc-900 dark:border-white\",\r\n secondary: \"bg-zinc-100 text-zinc-900 border-zinc-200 dark:bg-zinc-800 dark:text-white dark:border-zinc-700\",\r\n outline: \"bg-transparent text-zinc-900 border-zinc-300 dark:text-white dark:border-zinc-600\"\r\n };\r\n\r\n return (\r\n <button\r\n className={cn(\r\n \"relative overflow-hidden rounded-lg font-medium border-2 transition-colors\",\r\n sizeClasses[size],\r\n variantClasses[variant],\r\n className\r\n )}\r\n onClick={handleClick}\r\n {...props}\r\n >\r\n <AnimatePresence>\r\n {isFilling && (\r\n <motion.div\r\n key=\"liquid-fill\"\r\n className={cn(\r\n \"absolute inset-0 origin-bottom\",\r\n variant === \"primary\" ? \"bg-blue-500 dark:bg-blue-400\" : \"bg-zinc-900 dark:bg-white\"\r\n )}\r\n initial={{ scaleY: 0 }}\r\n animate={{ scaleY: 1 }}\r\n exit={{ scaleY: 0, transition: { duration: 0.3 } }}\r\n transition={{ duration: 0.5, ease: [0.4, 0, 0.2, 1] }}\r\n style={{ transformOrigin: \"bottom\" }}\r\n />\r\n )}\r\n </AnimatePresence>\r\n \r\n <AnimatePresence>\r\n {isFilling && (\r\n <>\r\n {[...Array(5)].map((_, i) => (\r\n <motion.div\r\n key={i}\r\n className=\"absolute w-1.5 h-1.5 bg-white/60 rounded-full\"\r\n style={{ left: `${20 + i * 15}%`, bottom: \"10%\" }}\r\n initial={{ y: 0, opacity: 0, scale: 0 }}\r\n animate={{ y: -60, opacity: [0, 1, 0], scale: [0, 1, 0.5] }}\r\n transition={{ duration: 0.6, delay: i * 0.08, ease: \"easeOut\" }}\r\n />\r\n ))}\r\n </>\r\n )}\r\n </AnimatePresence>\r\n\r\n <span className={cn(\r\n \"relative flex items-center justify-center gap-2 transition-colors duration-200 z-10\",\r\n isFilling && (variant === \"outline\" || variant === \"secondary\" ? \"text-white dark:text-zinc-900\" : \"text-white\")\r\n )}>\r\n {children}\r\n </span>\r\n </button>\r\n );\r\n}\r\n\r\nexport default LiquidButton;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface SlideButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n variant?: \"primary\" | \"secondary\" | \"outline\";\r\n size?: \"sm\" | \"md\" | \"lg\";\r\n slideText?: string;\r\n}\r\n\r\nexport function SlideButton({\r\n children,\r\n className,\r\n variant = \"primary\",\r\n size = \"md\",\r\n slideText = \"Go!\",\r\n onClick,\r\n ...props\r\n}: SlideButtonProps) {\r\n const [isHovered, setIsHovered] = useState(false);\r\n\r\n const sizeClasses = {\r\n sm: \"px-4 py-2 text-sm\",\r\n md: \"px-6 py-3 text-base\",\r\n lg: \"px-8 py-4 text-lg\"\r\n };\r\n\r\n const variantClasses = {\r\n primary: \"bg-zinc-900 text-white dark:bg-white dark:text-zinc-900\",\r\n secondary: \"bg-zinc-100 text-zinc-900 dark:bg-zinc-800 dark:text-white\",\r\n outline: \"bg-transparent text-zinc-900 border-2 border-zinc-300 dark:text-white dark:border-zinc-600\"\r\n };\r\n\r\n return (\r\n <button\r\n className={cn(\r\n \"relative overflow-hidden rounded-lg font-medium transition-all\",\r\n sizeClasses[size],\r\n variantClasses[variant],\r\n className\r\n )}\r\n onMouseEnter={() => setIsHovered(true)}\r\n onMouseLeave={() => setIsHovered(false)}\r\n onClick={onClick}\r\n {...props}\r\n >\r\n <motion.div\r\n className={cn(\r\n \"absolute inset-0\",\r\n variant === \"primary\" ? \"bg-blue-600 dark:bg-blue-500\" : \"bg-zinc-900 dark:bg-white\"\r\n )}\r\n initial={{ x: \"-100%\" }}\r\n animate={{ x: isHovered ? \"0%\" : \"-100%\" }}\r\n transition={{ duration: 0.3, ease: \"easeInOut\" }}\r\n />\r\n \r\n <motion.span\r\n className=\"relative flex items-center justify-center gap-2 z-10\"\r\n animate={{ x: isHovered ? 20 : 0, opacity: isHovered ? 0 : 1 }}\r\n transition={{ duration: 0.2 }}\r\n >\r\n {children}\r\n </motion.span>\r\n \r\n <motion.span\r\n className={cn(\r\n \"absolute inset-0 flex items-center justify-center gap-2 z-10\",\r\n variant === \"outline\" || variant === \"secondary\" ? \"text-white dark:text-zinc-900\" : \"text-white\"\r\n )}\r\n initial={{ x: -20, opacity: 0 }}\r\n animate={{ x: isHovered ? 0 : -20, opacity: isHovered ? 1 : 0 }}\r\n transition={{ duration: 0.2 }}\r\n >\r\n {slideText}\r\n <svg className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M14 5l7 7m0 0l-7 7m7-7H3\" />\r\n </svg>\r\n </motion.span>\r\n </button>\r\n );\r\n}\r\n\r\nexport default SlideButton;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface GradientButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n variant?: \"sunset\" | \"ocean\" | \"forest\" | \"purple\" | \"fire\";\r\n size?: \"sm\" | \"md\" | \"lg\";\r\n}\r\n\r\nconst gradients = {\r\n sunset: \"from-orange-500 via-pink-500 to-purple-500\",\r\n ocean: \"from-cyan-500 via-blue-500 to-purple-500\",\r\n forest: \"from-green-500 via-emerald-500 to-teal-500\",\r\n purple: \"from-purple-500 via-violet-500 to-indigo-500\",\r\n fire: \"from-yellow-500 via-orange-500 to-red-500\",\r\n};\r\n\r\nconst sizes = {\r\n sm: \"px-4 py-2 text-sm\",\r\n md: \"px-6 py-3 text-base\",\r\n lg: \"px-8 py-4 text-lg\",\r\n};\r\n\r\nexport function GradientButton({\r\n children,\r\n className,\r\n variant = \"ocean\",\r\n size = \"md\",\r\n ...props\r\n}: GradientButtonProps) {\r\n return (\r\n <motion.button\r\n className={cn(\r\n \"relative overflow-hidden rounded-lg font-semibold text-white\",\r\n \"bg-gradient-to-r\",\r\n gradients[variant],\r\n sizes[size],\r\n className\r\n )}\r\n whileHover={{ scale: 1.02 }}\r\n whileTap={{ scale: 0.98 }}\r\n {...props}\r\n >\r\n <motion.div\r\n className=\"absolute inset-0 bg-gradient-to-r from-white/0 via-white/25 to-white/0\"\r\n initial={{ x: \"-100%\" }}\r\n whileHover={{ x: \"100%\" }}\r\n transition={{ duration: 0.5 }}\r\n />\r\n <span className=\"relative z-10\">{children}</span>\r\n </motion.button>\r\n );\r\n}\r\n\r\nexport default GradientButton;\r\n","\"use client\";\r\n\r\nimport { useState, useRef } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface HoldButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n holdDuration?: number;\r\n onHoldComplete?: () => void;\r\n variant?: \"primary\" | \"danger\" | \"success\";\r\n}\r\n\r\nexport function HoldButton({\r\n children,\r\n className,\r\n holdDuration = 1000,\r\n onHoldComplete,\r\n variant = \"primary\",\r\n ...props\r\n}: HoldButtonProps) {\r\n const [progress, setProgress] = useState(0);\r\n const [isHolding, setIsHolding] = useState(false);\r\n const intervalRef = useRef<NodeJS.Timeout | null>(null);\r\n\r\n const variants = {\r\n primary: \"bg-zinc-900 dark:bg-white\",\r\n danger: \"bg-red-500\",\r\n success: \"bg-green-500\",\r\n };\r\n\r\n const progressColors = {\r\n primary: \"bg-blue-500\",\r\n danger: \"bg-red-700\",\r\n success: \"bg-green-700\",\r\n };\r\n\r\n const startHold = () => {\r\n setIsHolding(true);\r\n const startTime = Date.now();\r\n \r\n intervalRef.current = setInterval(() => {\r\n const elapsed = Date.now() - startTime;\r\n const newProgress = Math.min((elapsed / holdDuration) * 100, 100);\r\n setProgress(newProgress);\r\n \r\n if (newProgress >= 100) {\r\n stopHold();\r\n onHoldComplete?.();\r\n }\r\n }, 16);\r\n };\r\n\r\n const stopHold = () => {\r\n setIsHolding(false);\r\n setProgress(0);\r\n if (intervalRef.current) {\r\n clearInterval(intervalRef.current);\r\n intervalRef.current = null;\r\n }\r\n };\r\n\r\n return (\r\n <motion.button\r\n className={cn(\r\n \"relative overflow-hidden rounded-lg px-6 py-3 font-medium text-white dark:text-zinc-900\",\r\n variants[variant],\r\n className\r\n )}\r\n onMouseDown={startHold}\r\n onMouseUp={stopHold}\r\n onMouseLeave={stopHold}\r\n onTouchStart={startHold}\r\n onTouchEnd={stopHold}\r\n whileTap={{ scale: 0.98 }}\r\n {...props}\r\n >\r\n <motion.div\r\n className={cn(\"absolute inset-0 origin-left\", progressColors[variant])}\r\n style={{ scaleX: progress / 100 }}\r\n transition={{ duration: 0 }}\r\n />\r\n <span className=\"relative z-10\">{children}</span>\r\n </motion.button>\r\n );\r\n}\r\n\r\nexport default HoldButton;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface ThreeDButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n variant?: \"primary\" | \"secondary\" | \"danger\";\r\n size?: \"sm\" | \"md\" | \"lg\";\r\n}\r\n\r\nconst variants = {\r\n primary: {\r\n bg: \"bg-blue-500\",\r\n shadow: \"shadow-blue-700\",\r\n hover: \"hover:bg-blue-600\",\r\n },\r\n secondary: {\r\n bg: \"bg-zinc-700\",\r\n shadow: \"shadow-zinc-900\",\r\n hover: \"hover:bg-zinc-800\",\r\n },\r\n danger: {\r\n bg: \"bg-red-500\",\r\n shadow: \"shadow-red-700\",\r\n hover: \"hover:bg-red-600\",\r\n },\r\n};\r\n\r\nconst sizes = {\r\n sm: \"px-4 py-2 text-sm\",\r\n md: \"px-6 py-3 text-base\",\r\n lg: \"px-8 py-4 text-lg\",\r\n};\r\n\r\nexport function ThreeDButton({\r\n children,\r\n className,\r\n variant = \"primary\",\r\n size = \"md\",\r\n ...props\r\n}: ThreeDButtonProps) {\r\n const colors = variants[variant];\r\n\r\n return (\r\n <motion.button\r\n className={cn(\r\n \"relative rounded-lg font-semibold text-white\",\r\n \"shadow-[0_6px_0_0]\",\r\n colors.bg,\r\n colors.shadow,\r\n colors.hover,\r\n sizes[size],\r\n className\r\n )}\r\n whileHover={{ y: -2 }}\r\n whileTap={{ y: 4, boxShadow: \"0 2px 0 0\" }}\r\n transition={{ duration: 0.1 }}\r\n {...props}\r\n >\r\n {children}\r\n </motion.button>\r\n );\r\n}\r\n\r\nexport default ThreeDButton;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface CopyButtonProps {\r\n text?: string;\r\n value?: string;\r\n onCopy?: () => void;\r\n className?: string;\r\n}\r\n\r\nexport function CopyButton({ \r\n text = \"Copy\",\r\n value,\r\n onCopy,\r\n className \r\n}: CopyButtonProps) {\r\n const [copied, setCopied] = useState(false);\r\n\r\n const handleCopy = async () => {\r\n try {\r\n if (value) {\r\n await navigator.clipboard.writeText(value);\r\n }\r\n onCopy?.();\r\n setCopied(true);\r\n setTimeout(() => setCopied(false), 2000);\r\n } catch (error) {\r\n console.error(\"Failed to copy:\", error);\r\n }\r\n };\r\n\r\n return (\r\n <button\r\n onClick={handleCopy}\r\n className={cn(\r\n \"inline-flex items-center gap-2 px-4 py-2\",\r\n \"bg-transparent hover:bg-zinc-100 dark:hover:bg-zinc-800\",\r\n \"text-zinc-900 dark:text-zinc-100\",\r\n \"border border-zinc-300 dark:border-zinc-700\",\r\n \"rounded-md transition-all duration-200 font-medium text-sm\",\r\n className\r\n )}\r\n >\r\n {copied ? (\r\n <>\r\n <svg className=\"w-4 h-4 text-green-600\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M5 13l4 4L19 7\" />\r\n </svg>\r\n Copied!\r\n </>\r\n ) : (\r\n <>\r\n <svg className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\" />\r\n </svg>\r\n {text}\r\n </>\r\n )}\r\n </button>\r\n );\r\n}\r\n\r\nexport default CopyButton;\r\n","\"use client\";\r\n\r\nimport { useState, useRef } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface ParticleButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n onSuccess?: () => void;\r\n successDuration?: number;\r\n}\r\n\r\nfunction SuccessParticles({ buttonRef }: { buttonRef: React.RefObject<HTMLButtonElement> }) {\r\n const rect = buttonRef.current?.getBoundingClientRect();\r\n if (!rect) return null;\r\n\r\n const centerX = rect.left + rect.width / 2;\r\n const centerY = rect.top + rect.height / 2;\r\n\r\n return (\r\n <AnimatePresence>\r\n {[...Array(6)].map((_, i) => (\r\n <motion.div\r\n key={i}\r\n className=\"fixed w-1 h-1 bg-black dark:bg-white rounded-full\"\r\n style={{ left: centerX, top: centerY }}\r\n initial={{ scale: 0, x: 0, y: 0 }}\r\n animate={{ scale: [0, 1, 0], x: [0, (i % 2 ? 1 : -1) * (Math.random() * 50 + 20)], y: [0, -Math.random() * 50 - 20] }}\r\n transition={{ duration: 0.6, delay: i * 0.1, ease: \"easeOut\" }}\r\n />\r\n ))}\r\n </AnimatePresence>\r\n );\r\n}\r\n\r\nexport function ParticleButton({\r\n children,\r\n onClick,\r\n onSuccess,\r\n successDuration = 1000,\r\n className,\r\n ...props\r\n}: ParticleButtonProps) {\r\n const [showParticles, setShowParticles] = useState(false);\r\n const buttonRef = useRef<HTMLButtonElement>(null);\r\n\r\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\r\n setShowParticles(true);\r\n onClick?.(e);\r\n onSuccess?.();\r\n setTimeout(() => setShowParticles(false), successDuration);\r\n };\r\n\r\n return (\r\n <>\r\n {showParticles && <SuccessParticles buttonRef={buttonRef} />}\r\n <button\r\n ref={buttonRef}\r\n onClick={handleClick}\r\n className={cn(\r\n \"relative px-4 py-2 rounded-md bg-primary text-primary-foreground\",\r\n showParticles && \"scale-95\",\r\n \"transition-transform duration-100\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </button>\r\n </>\r\n );\r\n}\r\n\r\nexport default ParticleButton;\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\nimport { motion, useAnimation } from \"framer-motion\";\r\nimport { useEffect, useState, useCallback } from \"react\";\r\n\r\ninterface AttractButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n particleCount?: number;\r\n attractRadius?: number;\r\n children?: React.ReactNode;\r\n}\r\n\r\ninterface Particle {\r\n id: number;\r\n x: number;\r\n y: number;\r\n}\r\n\r\nexport function AttractButton({\r\n className,\r\n particleCount = 12,\r\n children,\r\n ...props\r\n}: AttractButtonProps) {\r\n const [isAttracting, setIsAttracting] = useState(false);\r\n const [particles, setParticles] = useState<Particle[]>([]);\r\n const particlesControl = useAnimation();\r\n\r\n useEffect(() => {\r\n const newParticles = Array.from({ length: particleCount }, (_, i) => ({\r\n id: i,\r\n x: Math.random() * 360 - 180,\r\n y: Math.random() * 360 - 180,\r\n }));\r\n setParticles(newParticles);\r\n }, [particleCount]);\r\n\r\n const handleInteractionStart = useCallback(async () => {\r\n setIsAttracting(true);\r\n await particlesControl.start({ x: 0, y: 0, transition: { type: \"spring\", stiffness: 50, damping: 10 } });\r\n }, [particlesControl]);\r\n\r\n const handleInteractionEnd = useCallback(async () => {\r\n setIsAttracting(false);\r\n await particlesControl.start((i) => ({\r\n x: particles[i].x,\r\n y: particles[i].y,\r\n transition: { type: \"spring\", stiffness: 100, damping: 15 },\r\n }));\r\n }, [particlesControl, particles]);\r\n\r\n return (\r\n <button\r\n className={cn(\r\n \"min-w-40 relative touch-none px-4 py-2 rounded-md\",\r\n \"bg-violet-100 dark:bg-violet-900\",\r\n \"hover:bg-violet-200 dark:hover:bg-violet-800\",\r\n \"text-violet-600 dark:text-violet-300\",\r\n \"border border-violet-300 dark:border-violet-700\",\r\n \"transition-all duration-300\",\r\n className\r\n )}\r\n onMouseEnter={handleInteractionStart}\r\n onMouseLeave={handleInteractionEnd}\r\n onTouchStart={handleInteractionStart}\r\n onTouchEnd={handleInteractionEnd}\r\n {...props}\r\n >\r\n {particles.map((_, index) => (\r\n <motion.div\r\n key={index}\r\n custom={index}\r\n initial={{ x: particles[index].x, y: particles[index].y }}\r\n animate={particlesControl}\r\n className={cn(\"absolute w-1.5 h-1.5 rounded-full bg-violet-400 dark:bg-violet-300 transition-opacity duration-300\", isAttracting ? \"opacity-100\" : \"opacity-40\")}\r\n />\r\n ))}\r\n <span className=\"relative w-full flex items-center justify-center gap-2\">\r\n {children || (isAttracting ? \"Attracting\" : \"Hover me\")}\r\n </span>\r\n </button>\r\n );\r\n}\r\n\r\nexport default AttractButton;\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface CommandButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n shortcut?: string;\r\n}\r\n\r\nexport function CommandButton({ className, children, shortcut = \"CMD + K\", ...props }: CommandButtonProps) {\r\n return (\r\n <button\r\n {...props}\r\n className={cn(\r\n \"relative p-2 rounded-lg overflow-hidden\",\r\n \"bg-gradient-to-b from-zinc-50 to-zinc-100 dark:from-zinc-800 dark:to-zinc-900\",\r\n \"border border-zinc-200 dark:border-zinc-800\",\r\n \"hover:border-zinc-300 dark:hover:border-zinc-700\",\r\n \"transition-all duration-300 ease-out group\",\r\n \"inline-flex items-center justify-center gap-2\",\r\n className\r\n )}\r\n >\r\n <svg\r\n className={cn(\r\n \"w-4 h-4 text-zinc-600 dark:text-zinc-400\",\r\n \"transition-all duration-300\",\r\n \"group-hover:scale-110 group-hover:rotate-[-4deg] group-active:scale-95\"\r\n )}\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n >\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M18 3a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3H6a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3V6a3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3h12a3 3 0 0 0 3-3 3 3 0 0 0-3-3z\" />\r\n </svg>\r\n <span className=\"text-sm text-zinc-600 dark:text-zinc-400\">{children || shortcut}</span>\r\n <span className=\"absolute inset-0 bg-gradient-to-r from-indigo-500/0 via-indigo-500/10 to-indigo-500/0 translate-x-[-100%] group-hover:translate-x-[100%] transition-transform duration-500 ease-out\" />\r\n </button>\r\n );\r\n}\r\n\r\nexport default CommandButton;\r\n","\"use client\";\r\n\r\nimport React, { ReactNode } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface GradientTextProps {\r\n children: ReactNode;\r\n className?: string;\r\n colors?: string[];\r\n animationSpeed?: number;\r\n}\r\n\r\nexport function GradientText({\r\n children,\r\n className = \"\",\r\n colors = [\"#40ffaa\", \"#4079ff\", \"#40ffaa\", \"#4079ff\", \"#40ffaa\"],\r\n animationSpeed = 8,\r\n}: GradientTextProps) {\r\n return (\r\n <span\r\n className={cn(\r\n \"bg-clip-text text-transparent bg-[length:200%_auto] animate-gradient\",\r\n className\r\n )}\r\n style={{\r\n backgroundImage: `linear-gradient(to right, ${colors.join(\", \")})`,\r\n animationDuration: `${animationSpeed}s`,\r\n }}\r\n >\r\n {children}\r\n </span>\r\n );\r\n}\r\n\r\nexport default GradientText;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface ShimmerTextProps {\r\n text?: string;\r\n className?: string;\r\n}\r\n\r\nexport function ShimmerText({ text = \"Text Shimmer\", className }: ShimmerTextProps) {\r\n return (\r\n <div className=\"flex items-center justify-center p-8\">\r\n <motion.div\r\n className=\"relative px-4 py-2 overflow-hidden\"\r\n initial={{ opacity: 0, y: 20 }}\r\n animate={{ opacity: 1, y: 0 }}\r\n transition={{ duration: 0.5 }}\r\n >\r\n <motion.h1\r\n className={cn(\r\n \"text-3xl font-bold bg-gradient-to-r from-neutral-950 via-neutral-400 to-neutral-950 dark:from-white dark:via-neutral-600 dark:to-white bg-[length:200%_100%] bg-clip-text text-transparent\",\r\n className\r\n )}\r\n animate={{\r\n backgroundPosition: [\"200% center\", \"-200% center\"],\r\n }}\r\n transition={{\r\n duration: 2.5,\r\n ease: \"linear\",\r\n repeat: Infinity,\r\n }}\r\n >\r\n {text}\r\n </motion.h1>\r\n </motion.div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default ShimmerText;\r\n","\"use client\";\r\n\r\nimport React, { useRef } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface GlitchTextProps {\r\n text?: string;\r\n className?: string;\r\n glitchIntensity?: \"light\" | \"medium\" | \"heavy\" | \"extreme\";\r\n color?: \"rainbow\" | \"blue\" | \"purple\" | \"cyan\" | \"pink\" | \"orange\";\r\n isStatic?: boolean;\r\n size?: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\";\r\n}\r\n\r\nexport function GlitchText({\r\n text = \"Glitch Text\",\r\n className,\r\n glitchIntensity = \"medium\",\r\n color = \"orange\",\r\n isStatic = false,\r\n size = \"md\",\r\n}: GlitchTextProps) {\r\n const colorSchemes = {\r\n rainbow: { primary: \"#a855f7\", before: \"#22d3ee\", after: \"#f472b6\" },\r\n blue: { primary: \"#3b82f6\", before: \"#60a5fa\", after: \"#1d4ed8\" },\r\n purple: { primary: \"#8b5cf6\", before: \"#a78bfa\", after: \"#6d28d9\" },\r\n cyan: { primary: \"#06b6d4\", before: \"#22d3ee\", after: \"#0891b2\" },\r\n pink: { primary: \"#ec4899\", before: \"#f472b6\", after: \"#db2777\" },\r\n orange: { primary: \"#f97316\", before: \"#fb923c\", after: \"#ea580c\" },\r\n };\r\n\r\n const selectedScheme = colorSchemes[color];\r\n\r\n const intensitySettings = {\r\n light: { translateRange: 2, skewRange: 0.5 },\r\n medium: { translateRange: 3, skewRange: 1 },\r\n heavy: { translateRange: 5, skewRange: 2 },\r\n extreme: { translateRange: 8, skewRange: 3 },\r\n };\r\n\r\n const settings = intensitySettings[glitchIntensity];\r\n\r\n const sizeMap = {\r\n sm: \"text-2xl\",\r\n md: \"text-4xl\",\r\n lg: \"text-5xl\",\r\n xl: \"text-6xl\",\r\n \"2xl\": \"text-7xl\",\r\n \"3xl\": \"text-8xl\",\r\n };\r\n\r\n const glitchAnimation = {\r\n animate: {\r\n x: [0, settings.translateRange, -settings.translateRange, 0],\r\n y: [0, -settings.translateRange, settings.translateRange, 0],\r\n skewX: [0, settings.skewRange, -settings.skewRange, 0],\r\n },\r\n transition: {\r\n duration: 0.5,\r\n repeat: Infinity,\r\n ease: \"easeInOut\",\r\n },\r\n };\r\n\r\n return (\r\n <div className={cn(\"relative flex items-center justify-center p-8\", className)}>\r\n <motion.div\r\n className={cn(\"relative font-bold tracking-wider\", sizeMap[size])}\r\n style={{ color: selectedScheme.primary }}\r\n animate={!isStatic ? glitchAnimation.animate : undefined}\r\n transition={glitchAnimation.transition}\r\n >\r\n {text}\r\n <motion.span\r\n className=\"absolute inset-0 pointer-events-none\"\r\n style={{ color: selectedScheme.before, opacity: 0.8 }}\r\n animate={!isStatic ? {\r\n x: [-settings.translateRange, settings.translateRange, 0],\r\n y: [settings.translateRange, -settings.translateRange, 0],\r\n } : undefined}\r\n transition={{ duration: 0.5, repeat: Infinity }}\r\n >\r\n {text}\r\n </motion.span>\r\n <motion.span\r\n className=\"absolute inset-0 pointer-events-none\"\r\n style={{ color: selectedScheme.after, opacity: 0.8 }}\r\n animate={!isStatic ? {\r\n x: [settings.translateRange, -settings.translateRange, 0],\r\n y: [-settings.translateRange, settings.translateRange, 0],\r\n } : undefined}\r\n transition={{ duration: 0.5, repeat: Infinity }}\r\n >\r\n {text}\r\n </motion.span>\r\n </motion.div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default GlitchText;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface BounceTextProps {\r\n text: string;\r\n className?: string;\r\n delay?: number;\r\n duration?: number;\r\n}\r\n\r\nexport function BounceText({\r\n text,\r\n className,\r\n delay = 0,\r\n duration = 0.4,\r\n}: BounceTextProps) {\r\n const letters = Array.from(text);\r\n\r\n return (\r\n <div className={cn(\"flex\", className)}>\r\n {letters.map((letter, index) => (\r\n <motion.span\r\n key={`${letter}-${index}`}\r\n className=\"inline-block\"\r\n style={{ whiteSpace: letter === \" \" ? \"pre\" : \"normal\" }}\r\n animate={{\r\n y: [0, -20, 0],\r\n }}\r\n transition={{\r\n delay: delay + index * 0.03,\r\n duration: duration,\r\n ease: \"easeInOut\",\r\n repeat: Infinity,\r\n repeatDelay: 0.5,\r\n }}\r\n >\r\n {letter}\r\n </motion.span>\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport default BounceText;\r\n","\"use client\";\r\n\r\nimport React, { useEffect, useRef, useState, useMemo } from \"react\";\r\nimport { motion, Transition } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface BlurTextProps {\r\n text?: string;\r\n delay?: number;\r\n className?: string;\r\n animateBy?: \"words\" | \"letters\";\r\n direction?: \"top\" | \"bottom\";\r\n}\r\n\r\nexport function BlurText({\r\n text = \"\",\r\n delay = 200,\r\n className = \"\",\r\n animateBy = \"words\",\r\n direction = \"top\",\r\n}: BlurTextProps) {\r\n const elements = animateBy === \"words\" ? text.split(\" \") : text.split(\"\");\r\n const [inView, setInView] = useState(false);\r\n const ref = useRef<HTMLParagraphElement>(null);\r\n\r\n useEffect(() => {\r\n if (!ref.current) return;\r\n const observer = new IntersectionObserver(\r\n ([entry]) => {\r\n if (entry.isIntersecting) {\r\n setInView(true);\r\n observer.unobserve(ref.current as Element);\r\n }\r\n },\r\n { threshold: 0.1 }\r\n );\r\n observer.observe(ref.current);\r\n return () => observer.disconnect();\r\n }, []);\r\n\r\n const fromAnimation = useMemo(\r\n () =>\r\n direction === \"top\"\r\n ? { filter: \"blur(10px)\", opacity: 0, y: -50 }\r\n : { filter: \"blur(10px)\", opacity: 0, y: 50 },\r\n [direction]\r\n );\r\n\r\n const toAnimation = { filter: \"blur(0px)\", opacity: 1, y: 0 };\r\n\r\n return (\r\n <p ref={ref} className={cn(\"flex flex-wrap\", className)}>\r\n {elements.map((segment, index) => (\r\n <motion.span\r\n key={index}\r\n initial={fromAnimation}\r\n animate={inView ? toAnimation : fromAnimation}\r\n transition={{\r\n duration: 0.5,\r\n delay: (index * delay) / 1000,\r\n ease: \"easeOut\",\r\n }}\r\n className=\"inline-block\"\r\n style={{ willChange: \"transform, filter, opacity\" }}\r\n >\r\n {segment === \" \" ? \"\\u00A0\" : segment}\r\n {animateBy === \"words\" && index < elements.length - 1 && \"\\u00A0\"}\r\n </motion.span>\r\n ))}\r\n </p>\r\n );\r\n}\r\n\r\nexport default BlurText;\r\n","\"use client\";\r\n\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface TypewriterProps {\r\n text?: string;\r\n className?: string;\r\n speed?: number;\r\n delay?: number;\r\n cursor?: boolean;\r\n loop?: boolean;\r\n}\r\n\r\nexport function Typewriter({\r\n text = \"Hello World\",\r\n className,\r\n speed = 50,\r\n delay = 0,\r\n cursor = true,\r\n loop = false,\r\n}: TypewriterProps) {\r\n const [displayText, setDisplayText] = useState(\"\");\r\n const [isTyping, setIsTyping] = useState(false);\r\n\r\n useEffect(() => {\r\n let timeout: NodeJS.Timeout;\r\n let i = 0;\r\n let isDeleting = false;\r\n\r\n const type = () => {\r\n setIsTyping(true);\r\n\r\n if (!isDeleting) {\r\n if (i < text.length) {\r\n setDisplayText(text.slice(0, i + 1));\r\n i++;\r\n timeout = setTimeout(type, speed);\r\n } else {\r\n setIsTyping(false);\r\n if (loop) {\r\n timeout = setTimeout(() => {\r\n isDeleting = true;\r\n type();\r\n }, 2000);\r\n }\r\n }\r\n } else {\r\n if (i > 0) {\r\n setDisplayText(text.slice(0, i - 1));\r\n i--;\r\n timeout = setTimeout(type, speed / 2);\r\n } else {\r\n isDeleting = false;\r\n timeout = setTimeout(type, 500);\r\n }\r\n }\r\n };\r\n\r\n timeout = setTimeout(type, delay);\r\n\r\n return () => clearTimeout(timeout);\r\n }, [text, speed, delay, loop]);\r\n\r\n return (\r\n <span className={cn(\"inline-block font-mono\", className)}>\r\n {displayText}\r\n {cursor && (\r\n <span\r\n className={cn(\r\n \"ml-0.5 inline-block w-[2px] h-[1em] bg-current\",\r\n isTyping ? \"animate-blink\" : \"\"\r\n )}\r\n />\r\n )}\r\n </span>\r\n );\r\n}\r\n\r\nexport default Typewriter;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface WaveTextProps {\r\n text: string;\r\n className?: string;\r\n amplitude?: number;\r\n frequency?: number;\r\n}\r\n\r\nexport function WaveText({\r\n text,\r\n className,\r\n amplitude = 10,\r\n frequency = 1.5,\r\n}: WaveTextProps) {\r\n const letters = Array.from(text);\r\n\r\n return (\r\n <div className={cn(\"flex\", className)}>\r\n {letters.map((letter, index) => (\r\n <motion.span\r\n key={`${letter}-${index}`}\r\n className=\"inline-block\"\r\n style={{ whiteSpace: letter === \" \" ? \"pre\" : \"normal\" }}\r\n animate={{\r\n y: [0, -amplitude, 0, amplitude, 0],\r\n }}\r\n transition={{\r\n duration: frequency,\r\n repeat: Infinity,\r\n delay: index * 0.08,\r\n ease: \"easeInOut\",\r\n }}\r\n >\r\n {letter}\r\n </motion.span>\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport default WaveText;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface FlipTextProps {\r\n text: string;\r\n className?: string;\r\n delay?: number;\r\n}\r\n\r\nexport function FlipText({ text, className, delay = 0 }: FlipTextProps) {\r\n const letters = Array.from(text);\r\n\r\n return (\r\n <div className={cn(\"flex\", className)} style={{ perspective: \"1000px\" }}>\r\n {letters.map((letter, index) => (\r\n <motion.span\r\n key={`${letter}-${index}`}\r\n className=\"inline-block origin-center\"\r\n style={{ whiteSpace: letter === \" \" ? \"pre\" : \"normal\" }}\r\n animate={{ rotateX: [0, 360] }}\r\n transition={{\r\n duration: 1.5,\r\n repeat: Infinity,\r\n delay: delay + index * 0.08,\r\n ease: \"easeInOut\",\r\n repeatDelay: 0.8,\r\n }}\r\n >\r\n {letter}\r\n </motion.span>\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport default FlipText;\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface ShinyTextProps {\r\n text: string;\r\n disabled?: boolean;\r\n speed?: number;\r\n className?: string;\r\n}\r\n\r\nexport function ShinyText({ \r\n text, \r\n disabled = false, \r\n speed = 5, \r\n className = \"\" \r\n}: ShinyTextProps) {\r\n return (\r\n <span \r\n className={cn(\r\n \"inline-block bg-gradient-to-r from-gray-900 via-gray-100 to-gray-900 bg-clip-text text-transparent bg-[length:200%_100%]\",\r\n !disabled && \"animate-[shine_var(--shine-speed)_linear_infinite]\",\r\n className\r\n )}\r\n style={{ \r\n \"--shine-speed\": `${speed}s`,\r\n backgroundImage: \"linear-gradient(90deg, #374151 25%, #f3f4f6 50%, #374151 75%)\"\r\n } as React.CSSProperties}\r\n >\r\n {text}\r\n <style>{`\r\n @keyframes shine {\r\n 0% { background-position: -200% 0; }\r\n 100% { background-position: 200% 0; }\r\n }\r\n `}</style>\r\n </span>\r\n );\r\n}\r\n\r\nexport default ShinyText;\r\n","\"use client\";\r\n\r\nimport React, { useEffect, useRef } from \"react\";\r\n\r\ninterface FuzzyTextProps {\r\n children: React.ReactNode;\r\n fontSize?: number | string;\r\n fontWeight?: string | number;\r\n fontFamily?: string;\r\n color?: string;\r\n enableHover?: boolean;\r\n baseIntensity?: number;\r\n hoverIntensity?: number;\r\n}\r\n\r\nexport function FuzzyText({\r\n children,\r\n fontSize = \"clamp(2rem, 8vw, 8rem)\",\r\n fontWeight = 900,\r\n fontFamily = \"inherit\",\r\n color = \"#fff\",\r\n enableHover = true,\r\n baseIntensity = 0.18,\r\n hoverIntensity = 0.5\r\n}: FuzzyTextProps) {\r\n const canvasRef = useRef<HTMLCanvasElement & { cleanupFuzzyText?: () => void }>(null);\r\n\r\n useEffect(() => {\r\n let animationFrameId: number;\r\n let isCancelled = false;\r\n const canvas = canvasRef.current;\r\n if (!canvas) return;\r\n\r\n const init = async () => {\r\n if (document.fonts?.ready) await document.fonts.ready;\r\n if (isCancelled) return;\r\n\r\n const ctx = canvas.getContext(\"2d\");\r\n if (!ctx) return;\r\n\r\n const computedFontFamily = fontFamily === \"inherit\" \r\n ? window.getComputedStyle(canvas).fontFamily || \"sans-serif\" \r\n : fontFamily;\r\n\r\n const fontSizeStr = typeof fontSize === \"number\" ? `${fontSize}px` : fontSize;\r\n let numericFontSize: number;\r\n if (typeof fontSize === \"number\") {\r\n numericFontSize = fontSize;\r\n } else {\r\n const temp = document.createElement(\"span\");\r\n temp.style.fontSize = fontSize;\r\n document.body.appendChild(temp);\r\n numericFontSize = parseFloat(window.getComputedStyle(temp).fontSize);\r\n document.body.removeChild(temp);\r\n }\r\n\r\n const text = React.Children.toArray(children).join(\"\");\r\n const offscreen = document.createElement(\"canvas\");\r\n const offCtx = offscreen.getContext(\"2d\");\r\n if (!offCtx) return;\r\n\r\n offCtx.font = `${fontWeight} ${fontSizeStr} ${computedFontFamily}`;\r\n offCtx.textBaseline = \"alphabetic\";\r\n const metrics = offCtx.measureText(text);\r\n\r\n const actualLeft = metrics.actualBoundingBoxLeft ?? 0;\r\n const actualRight = metrics.actualBoundingBoxRight ?? metrics.width;\r\n const actualAscent = metrics.actualBoundingBoxAscent ?? numericFontSize;\r\n const actualDescent = metrics.actualBoundingBoxDescent ?? numericFontSize * 0.2;\r\n\r\n const textBoundingWidth = Math.ceil(actualLeft + actualRight);\r\n const tightHeight = Math.ceil(actualAscent + actualDescent);\r\n const extraWidthBuffer = 10;\r\n const offscreenWidth = textBoundingWidth + extraWidthBuffer;\r\n\r\n offscreen.width = offscreenWidth;\r\n offscreen.height = tightHeight;\r\n\r\n const xOffset = extraWidthBuffer / 2;\r\n offCtx.font = `${fontWeight} ${fontSizeStr} ${computedFontFamily}`;\r\n offCtx.textBaseline = \"alphabetic\";\r\n offCtx.fillStyle = color;\r\n offCtx.fillText(text, xOffset - actualLeft, actualAscent);\r\n\r\n const horizontalMargin = 50;\r\n const verticalMargin = 0;\r\n canvas.width = offscreenWidth + horizontalMargin * 2;\r\n canvas.height = tightHeight + verticalMargin * 2;\r\n ctx.translate(horizontalMargin, verticalMargin);\r\n\r\n const interactiveLeft = horizontalMargin + xOffset;\r\n const interactiveTop = verticalMargin;\r\n const interactiveRight = interactiveLeft + textBoundingWidth;\r\n const interactiveBottom = interactiveTop + tightHeight;\r\n\r\n let isHovering = false;\r\n const fuzzRange = 30;\r\n\r\n const run = () => {\r\n if (isCancelled) return;\r\n ctx.clearRect(-fuzzRange, -fuzzRange, offscreenWidth + 2 * fuzzRange, tightHeight + 2 * fuzzRange);\r\n const intensity = isHovering ? hoverIntensity : baseIntensity;\r\n for (let j = 0; j < tightHeight; j++) {\r\n const dx = Math.floor(intensity * (Math.random() - 0.5) * fuzzRange);\r\n ctx.drawImage(offscreen, 0, j, offscreenWidth, 1, dx, j, offscreenWidth, 1);\r\n }\r\n animationFrameId = window.requestAnimationFrame(run);\r\n };\r\n\r\n run();\r\n\r\n const isInsideTextArea = (x: number, y: number) =>\r\n x >= interactiveLeft && x <= interactiveRight && y >= interactiveTop && y <= interactiveBottom;\r\n\r\n const handleMouseMove = (e: MouseEvent) => {\r\n if (!enableHover) return;\r\n const rect = canvas.getBoundingClientRect();\r\n isHovering = isInsideTextArea(e.clientX - rect.left, e.clientY - rect.top);\r\n };\r\n\r\n const handleMouseLeave = () => { isHovering = false; };\r\n\r\n if (enableHover) {\r\n canvas.addEventListener(\"mousemove\", handleMouseMove);\r\n canvas.addEventListener(\"mouseleave\", handleMouseLeave);\r\n }\r\n\r\n canvas.cleanupFuzzyText = () => {\r\n window.cancelAnimationFrame(animationFrameId);\r\n if (enableHover) {\r\n canvas.removeEventListener(\"mousemove\", handleMouseMove);\r\n canvas.removeEventListener(\"mouseleave\", handleMouseLeave);\r\n }\r\n };\r\n };\r\n\r\n init();\r\n\r\n return () => {\r\n isCancelled = true;\r\n window.cancelAnimationFrame(animationFrameId);\r\n if (canvas?.cleanupFuzzyText) canvas.cleanupFuzzyText();\r\n };\r\n }, [children, fontSize, fontWeight, fontFamily, color, enableHover, baseIntensity, hoverIntensity]);\r\n\r\n return <canvas ref={canvasRef} className=\"max-w-full\" />;\r\n}\r\n\r\nexport default FuzzyText;\r\n","\"use client\";\r\n\r\nimport { useEffect, useRef } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface MatrixTextProps {\r\n text: string;\r\n className?: string;\r\n speed?: number;\r\n color?: string;\r\n}\r\n\r\nexport function MatrixText({ \r\n text, \r\n className,\r\n speed = 50,\r\n color = \"#22c55e\"\r\n}: MatrixTextProps) {\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const intervalRef = useRef<NodeJS.Timeout | null>(null);\r\n\r\n useEffect(() => {\r\n const container = containerRef.current;\r\n if (!container) return;\r\n\r\n const chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789@#$%^&*\";\r\n const originalText = text;\r\n let iteration = 0;\r\n\r\n const animate = () => {\r\n container.innerText = originalText\r\n .split(\"\")\r\n .map((char, index) => {\r\n if (index < iteration) return originalText[index];\r\n return chars[Math.floor(Math.random() * chars.length)];\r\n })\r\n .join(\"\");\r\n\r\n if (iteration >= originalText.length) {\r\n if (intervalRef.current) clearInterval(intervalRef.current);\r\n return;\r\n }\r\n\r\n iteration += 1 / 3;\r\n };\r\n\r\n intervalRef.current = setInterval(animate, speed);\r\n\r\n return () => {\r\n if (intervalRef.current) clearInterval(intervalRef.current);\r\n };\r\n }, [text, speed]);\r\n\r\n return (\r\n <div\r\n ref={containerRef}\r\n className={cn(\"font-mono\", className)}\r\n style={{ color }}\r\n >\r\n {text}\r\n </div>\r\n );\r\n}\r\n\r\nexport default MatrixText;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LiquidTextProps {\r\n text: string;\r\n className?: string;\r\n delay?: number;\r\n}\r\n\r\nexport function LiquidText({ text, className, delay = 0 }: LiquidTextProps) {\r\n const words = text.split(\" \");\r\n\r\n const container = {\r\n hidden: { opacity: 0 },\r\n visible: (i = 1) => ({\r\n opacity: 1,\r\n transition: { staggerChildren: 0.12, delayChildren: delay * i },\r\n }),\r\n };\r\n\r\n const child = {\r\n visible: {\r\n opacity: 1,\r\n y: 0,\r\n filter: \"blur(0px)\",\r\n transition: {\r\n type: \"spring\",\r\n damping: 12,\r\n stiffness: 100,\r\n },\r\n },\r\n hidden: {\r\n opacity: 0,\r\n y: 20,\r\n filter: \"blur(10px)\",\r\n transition: {\r\n type: \"spring\",\r\n damping: 12,\r\n stiffness: 100,\r\n },\r\n },\r\n };\r\n\r\n return (\r\n <motion.div\r\n className={cn(\"flex flex-wrap\", className)}\r\n variants={container}\r\n initial=\"hidden\"\r\n animate=\"visible\"\r\n >\r\n {words.map((word, index) => (\r\n <motion.span\r\n variants={child}\r\n key={index}\r\n className=\"mr-2\"\r\n >\r\n {word}\r\n </motion.span>\r\n ))}\r\n </motion.div>\r\n );\r\n}\r\n\r\nexport default LiquidText;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface SwooshTextProps {\r\n text: string;\r\n className?: string;\r\n delay?: number;\r\n}\r\n\r\nexport function SwooshText({ text, className, delay = 0 }: SwooshTextProps) {\r\n const letters = text.split(\"\");\r\n\r\n const container = {\r\n hidden: { opacity: 0 },\r\n visible: {\r\n opacity: 1,\r\n transition: { staggerChildren: 0.03, delayChildren: delay },\r\n },\r\n };\r\n\r\n const child = {\r\n hidden: {\r\n opacity: 0,\r\n x: -20,\r\n y: 10,\r\n rotate: -10,\r\n },\r\n visible: {\r\n opacity: 1,\r\n x: 0,\r\n y: 0,\r\n rotate: 0,\r\n transition: {\r\n type: \"spring\",\r\n damping: 12,\r\n stiffness: 200,\r\n },\r\n },\r\n };\r\n\r\n return (\r\n <motion.span\r\n className={cn(\"inline-flex\", className)}\r\n variants={container}\r\n initial=\"hidden\"\r\n animate=\"visible\"\r\n >\r\n {letters.map((letter, index) => (\r\n <motion.span\r\n key={index}\r\n variants={child}\r\n className=\"inline-block\"\r\n style={{ whiteSpace: letter === \" \" ? \"pre\" : \"normal\" }}\r\n >\r\n {letter === \" \" ? \"\\u00A0\" : letter}\r\n </motion.span>\r\n ))}\r\n </motion.span>\r\n );\r\n}\r\n\r\nexport default SwooshText;\r\n","\"use client\";\r\n\r\nimport { useEffect, useState } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface ScrambledTextProps {\r\n text: string;\r\n className?: string;\r\n speed?: number;\r\n scrambleChars?: string;\r\n}\r\n\r\nexport function ScrambledText({\r\n text,\r\n className,\r\n speed = 50,\r\n scrambleChars = \"!<>-_\\\\/[]{}—=+*^?#________\"\r\n}: ScrambledTextProps) {\r\n const [displayText, setDisplayText] = useState(text);\r\n\r\n useEffect(() => {\r\n let iteration = 0;\r\n const interval = setInterval(() => {\r\n setDisplayText(\r\n text\r\n .split(\"\")\r\n .map((char, index) => {\r\n if (index < iteration) return text[index];\r\n return scrambleChars[Math.floor(Math.random() * scrambleChars.length)];\r\n })\r\n .join(\"\")\r\n );\r\n\r\n if (iteration >= text.length) {\r\n clearInterval(interval);\r\n }\r\n\r\n iteration += 1 / 3;\r\n }, speed);\r\n\r\n return () => clearInterval(interval);\r\n }, [text, speed, scrambleChars]);\r\n\r\n return (\r\n <span className={cn(\"font-mono\", className)}>\r\n {displayText}\r\n </span>\r\n );\r\n}\r\n\r\nexport default ScrambledText;\r\n","\"use client\";\r\n\r\nimport { useRef, useState } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface MagneticTextProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n strength?: number;\r\n}\r\n\r\nexport function MagneticText({ children, className, strength = 0.5 }: MagneticTextProps) {\r\n const ref = useRef<HTMLDivElement>(null);\r\n const [position, setPosition] = useState({ x: 0, y: 0 });\r\n\r\n const handleMouse = (e: React.MouseEvent<HTMLDivElement>) => {\r\n const { clientX, clientY } = e;\r\n const { height, width, left, top } = ref.current!.getBoundingClientRect();\r\n const middleX = clientX - (left + width / 2);\r\n const middleY = clientY - (top + height / 2);\r\n setPosition({ x: middleX * strength, y: middleY * strength });\r\n };\r\n\r\n const reset = () => {\r\n setPosition({ x: 0, y: 0 });\r\n };\r\n\r\n const { x, y } = position;\r\n\r\n return (\r\n <motion.div\r\n ref={ref}\r\n onMouseMove={handleMouse}\r\n onMouseLeave={reset}\r\n animate={{ x, y }}\r\n transition={{ type: \"spring\", stiffness: 150, damping: 15, mass: 0.1 }}\r\n className={cn(\"inline-block cursor-pointer\", className)}\r\n >\r\n {children}\r\n </motion.div>\r\n );\r\n}\r\n\r\nexport default MagneticText;\r\n","\"use client\";\r\n\r\nimport { useEffect, useState } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface DynamicTextProps {\r\n words: string[];\r\n className?: string;\r\n interval?: number;\r\n}\r\n\r\nexport function DynamicText({ words, className, interval = 3000 }: DynamicTextProps) {\r\n const [index, setIndex] = useState(0);\r\n\r\n useEffect(() => {\r\n const timer = setInterval(() => {\r\n setIndex((prev) => (prev + 1) % words.length);\r\n }, interval);\r\n return () => clearInterval(timer);\r\n }, [words.length, interval]);\r\n\r\n return (\r\n <div className={cn(\"relative inline-block overflow-hidden\", className)}>\r\n <AnimatePresence mode=\"wait\">\r\n <motion.span\r\n key={words[index]}\r\n initial={{ y: 20, opacity: 0 }}\r\n animate={{ y: 0, opacity: 1 }}\r\n exit={{ y: -20, opacity: 0 }}\r\n transition={{ duration: 0.3 }}\r\n className=\"inline-block\"\r\n >\r\n {words[index]}\r\n </motion.span>\r\n </AnimatePresence>\r\n </div>\r\n );\r\n}\r\n\r\nexport default DynamicText;\r\n","\"use client\";\r\n\r\nimport { useEffect, useState } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface RotatingTextProps {\r\n words: string[];\r\n className?: string;\r\n interval?: number;\r\n}\r\n\r\nexport function RotatingText({ words, className, interval = 2000 }: RotatingTextProps) {\r\n const [index, setIndex] = useState(0);\r\n\r\n useEffect(() => {\r\n const timer = setInterval(() => {\r\n setIndex((prev) => (prev + 1) % words.length);\r\n }, interval);\r\n return () => clearInterval(timer);\r\n }, [words.length, interval]);\r\n\r\n return (\r\n <span className={cn(\"inline-block relative\", className)}>\r\n <AnimatePresence mode=\"wait\">\r\n <motion.span\r\n key={words[index]}\r\n initial={{ rotateX: -90, opacity: 0 }}\r\n animate={{ rotateX: 0, opacity: 1 }}\r\n exit={{ rotateX: 90, opacity: 0 }}\r\n transition={{ duration: 0.4 }}\r\n className=\"inline-block\"\r\n style={{ transformStyle: \"preserve-3d\" }}\r\n >\r\n {words[index]}\r\n </motion.span>\r\n </AnimatePresence>\r\n </span>\r\n );\r\n}\r\n\r\nexport default RotatingText;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface StaggerTextProps {\r\n text: string;\r\n className?: string;\r\n delay?: number;\r\n staggerDelay?: number;\r\n}\r\n\r\nexport function StaggerText({ \r\n text, \r\n className, \r\n delay = 0,\r\n staggerDelay = 0.05 \r\n}: StaggerTextProps) {\r\n const letters = text.split(\"\");\r\n\r\n const container = {\r\n hidden: { opacity: 0 },\r\n visible: {\r\n opacity: 1,\r\n transition: {\r\n staggerChildren: staggerDelay,\r\n delayChildren: delay,\r\n },\r\n },\r\n };\r\n\r\n const child = {\r\n hidden: { opacity: 0, y: 20 },\r\n visible: {\r\n opacity: 1,\r\n y: 0,\r\n transition: { type: \"spring\", damping: 12, stiffness: 200 },\r\n },\r\n };\r\n\r\n return (\r\n <motion.span\r\n className={cn(\"inline-flex\", className)}\r\n variants={container}\r\n initial=\"hidden\"\r\n animate=\"visible\"\r\n >\r\n {letters.map((letter, index) => (\r\n <motion.span\r\n key={index}\r\n variants={child}\r\n className=\"inline-block\"\r\n style={{ whiteSpace: letter === \" \" ? \"pre\" : \"normal\" }}\r\n >\r\n {letter === \" \" ? \"\\u00A0\" : letter}\r\n </motion.span>\r\n ))}\r\n </motion.span>\r\n );\r\n}\r\n\r\nexport default StaggerText;\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface RainbowTextProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n speed?: number;\r\n}\r\n\r\nexport function RainbowText({ children, className, speed = 3 }: RainbowTextProps) {\r\n return (\r\n <span\r\n className={cn(\r\n \"inline-block bg-gradient-to-r from-red-500 via-yellow-500 via-green-500 via-blue-500 to-purple-500 bg-clip-text text-transparent bg-[length:200%_auto] animate-[rainbow_var(--rainbow-speed)_linear_infinite]\",\r\n className\r\n )}\r\n style={{ \"--rainbow-speed\": `${speed}s` } as React.CSSProperties}\r\n >\r\n {children}\r\n <style>{`\r\n @keyframes rainbow {\r\n 0% { background-position: 0% center; }\r\n 100% { background-position: 200% center; }\r\n }\r\n `}</style>\r\n </span>\r\n );\r\n}\r\n\r\nexport default RainbowText;\r\n","\"use client\";\r\n\r\nimport { useEffect, useState } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface CountUpProps {\r\n end: number;\r\n start?: number;\r\n duration?: number;\r\n className?: string;\r\n prefix?: string;\r\n suffix?: string;\r\n decimals?: number;\r\n}\r\n\r\nexport function CountUp({\r\n end,\r\n start = 0,\r\n duration = 2000,\r\n className,\r\n prefix = \"\",\r\n suffix = \"\",\r\n decimals = 0,\r\n}: CountUpProps) {\r\n const [count, setCount] = useState(start);\r\n\r\n useEffect(() => {\r\n let startTime: number | null = null;\r\n let animationFrame: number;\r\n\r\n const animate = (timestamp: number) => {\r\n if (!startTime) startTime = timestamp;\r\n const progress = Math.min((timestamp - startTime) / duration, 1);\r\n \r\n const easeOutQuart = 1 - Math.pow(1 - progress, 4);\r\n const currentCount = start + (end - start) * easeOutQuart;\r\n \r\n setCount(currentCount);\r\n\r\n if (progress < 1) {\r\n animationFrame = requestAnimationFrame(animate);\r\n }\r\n };\r\n\r\n animationFrame = requestAnimationFrame(animate);\r\n\r\n return () => cancelAnimationFrame(animationFrame);\r\n }, [start, end, duration]);\r\n\r\n return (\r\n <span className={cn(\"tabular-nums\", className)}>\r\n {prefix}\r\n {count.toFixed(decimals)}\r\n {suffix}\r\n </span>\r\n );\r\n}\r\n\r\nexport default CountUp;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface RevealTextProps {\r\n text: string;\r\n className?: string;\r\n stagger?: number;\r\n}\r\n\r\nexport function RevealText({ text, className, stagger = 0.04 }: RevealTextProps) {\r\n const letters = Array.from(text);\r\n\r\n const container = {\r\n hidden: { opacity: 0 },\r\n visible: {\r\n opacity: 1,\r\n transition: { staggerChildren: stagger, delayChildren: 0.02 },\r\n },\r\n };\r\n\r\n const child = {\r\n hidden: { opacity: 0, y: 20 },\r\n visible: {\r\n opacity: 1,\r\n y: 0,\r\n transition: { type: \"spring\", damping: 12, stiffness: 100 },\r\n },\r\n };\r\n\r\n return (\r\n <motion.div\r\n className={cn(\"flex overflow-hidden\", className)}\r\n variants={container}\r\n initial=\"hidden\"\r\n animate=\"visible\"\r\n >\r\n {letters.map((letter, index) => (\r\n <motion.span\r\n key={`${letter}-${index}`}\r\n variants={child}\r\n className=\"inline-block\"\r\n style={{ whiteSpace: letter === \" \" ? \"pre\" : \"normal\" }}\r\n >\r\n {letter === \" \" ? \"\\u00A0\" : letter}\r\n </motion.span>\r\n ))}\r\n </motion.div>\r\n );\r\n}\r\n\r\nexport default RevealText;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { useEffect, useRef, useState } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface SplitTextProps {\r\n text: string;\r\n className?: string;\r\n delay?: number;\r\n duration?: number;\r\n splitType?: \"chars\" | \"words\";\r\n textAlign?: \"left\" | \"center\" | \"right\";\r\n}\r\n\r\nexport function SplitText({\r\n text,\r\n className = \"\",\r\n delay = 100,\r\n duration = 0.6,\r\n splitType = \"chars\",\r\n textAlign = \"center\",\r\n}: SplitTextProps) {\r\n const [inView, setInView] = useState(false);\r\n const ref = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n if (!ref.current) return;\r\n\r\n const observer = new IntersectionObserver(\r\n ([entry]) => {\r\n if (entry.isIntersecting) {\r\n setInView(true);\r\n observer.unobserve(ref.current as Element);\r\n }\r\n },\r\n { threshold: 0.1, rootMargin: \"-100px\" }\r\n );\r\n\r\n observer.observe(ref.current);\r\n return () => observer.disconnect();\r\n }, []);\r\n\r\n const elements = splitType === \"words\" ? text.split(\" \") : text.split(\"\");\r\n\r\n return (\r\n <div ref={ref} className={cn(\"overflow-hidden\", className)} style={{ textAlign }}>\r\n {elements.map((element, index) => (\r\n <motion.span\r\n key={index}\r\n initial={{ opacity: 0, y: 40 }}\r\n animate={inView ? { opacity: 1, y: 0 } : { opacity: 0, y: 40 }}\r\n transition={{ duration, delay: (index * delay) / 1000, ease: \"easeOut\" }}\r\n className=\"inline-block\"\r\n style={{ marginRight: splitType === \"words\" ? \"0.25em\" : \"0\" }}\r\n >\r\n {element === \" \" ? \"\\u00A0\" : element}\r\n </motion.span>\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport default SplitText;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface MorphTextProps {\r\n text: string;\r\n className?: string;\r\n}\r\n\r\nexport function MorphText({ text, className }: MorphTextProps) {\r\n const letters = Array.from(text);\r\n\r\n return (\r\n <div className={cn(\"flex\", className)}>\r\n {letters.map((letter, index) => (\r\n <motion.span\r\n key={`${letter}-${index}`}\r\n className=\"inline-block\"\r\n style={{ whiteSpace: letter === \" \" ? \"pre\" : \"normal\" }}\r\n animate={{\r\n scaleY: [1, 0.5, 1.5, 0.8, 1],\r\n scaleX: [1, 1.5, 0.5, 1.2, 1],\r\n }}\r\n transition={{\r\n duration: 1.5,\r\n repeat: Infinity,\r\n delay: index * 0.08,\r\n ease: \"easeInOut\",\r\n repeatDelay: 0.3,\r\n }}\r\n >\r\n {letter === \" \" ? \"\\u00A0\" : letter}\r\n </motion.span>\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport default MorphText;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface PerspectiveTextProps {\r\n text: string;\r\n className?: string;\r\n}\r\n\r\nexport function PerspectiveText({ text, className }: PerspectiveTextProps) {\r\n const letters = Array.from(text);\r\n\r\n return (\r\n <div className={cn(\"flex\", className)} style={{ perspective: \"500px\" }}>\r\n {letters.map((letter, index) => (\r\n <motion.span\r\n key={`${letter}-${index}`}\r\n className=\"inline-block\"\r\n style={{ whiteSpace: letter === \" \" ? \"pre\" : \"normal\" }}\r\n initial={{ rotateY: 90, opacity: 0 }}\r\n animate={{ rotateY: 0, opacity: 1 }}\r\n transition={{\r\n delay: index * 0.04,\r\n duration: 0.5,\r\n type: \"spring\",\r\n stiffness: 120,\r\n }}\r\n whileHover={{ rotateY: 180, transition: { duration: 0.3 } }}\r\n >\r\n {letter === \" \" ? \"\\u00A0\" : letter}\r\n </motion.span>\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport default PerspectiveText;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface ElasticTextProps {\r\n text: string;\r\n className?: string;\r\n}\r\n\r\nexport function ElasticText({ text, className }: ElasticTextProps) {\r\n const letters = Array.from(text);\r\n\r\n return (\r\n <div className={cn(\"flex\", className)}>\r\n {letters.map((letter, index) => (\r\n <motion.span\r\n key={`${letter}-${index}`}\r\n className=\"inline-block cursor-pointer\"\r\n style={{ whiteSpace: letter === \" \" ? \"pre\" : \"normal\" }}\r\n whileHover={{\r\n scale: [1, 1.5, 0.8, 1.2, 1],\r\n rotate: [0, 10, -10, 0],\r\n transition: { duration: 0.6, ease: \"easeInOut\" },\r\n }}\r\n >\r\n {letter === \" \" ? \"\\u00A0\" : letter}\r\n </motion.span>\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport default ElasticText;\r\n","\"use client\";\r\n\r\nimport { useEffect } from \"react\";\r\nimport { motion, useAnimation, useMotionValue } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface CircularTextProps {\r\n text: string;\r\n spinDuration?: number;\r\n onHover?: \"slowDown\" | \"speedUp\" | \"pause\" | \"goBonkers\";\r\n className?: string;\r\n}\r\n\r\nexport function CircularText({\r\n text,\r\n spinDuration = 20,\r\n onHover = \"speedUp\",\r\n className = \"\",\r\n}: CircularTextProps) {\r\n const letters = Array.from(text);\r\n const controls = useAnimation();\r\n const rotation = useMotionValue(0);\r\n\r\n useEffect(() => {\r\n const start = rotation.get();\r\n controls.start({\r\n rotate: start + 360,\r\n scale: 1,\r\n transition: {\r\n rotate: { from: start, to: start + 360, ease: \"linear\", duration: spinDuration, repeat: Infinity },\r\n scale: { type: \"spring\", damping: 20, stiffness: 300 },\r\n },\r\n });\r\n }, [spinDuration, controls, rotation]);\r\n\r\n const handleHoverStart = () => {\r\n const start = rotation.get();\r\n let duration = spinDuration;\r\n let scale = 1;\r\n\r\n switch (onHover) {\r\n case \"slowDown\": duration = spinDuration * 2; break;\r\n case \"speedUp\": duration = spinDuration / 4; break;\r\n case \"pause\": duration = 0; break;\r\n case \"goBonkers\": duration = spinDuration / 20; scale = 0.8; break;\r\n }\r\n\r\n if (onHover === \"pause\") {\r\n controls.stop();\r\n } else {\r\n controls.start({\r\n rotate: start + 360,\r\n scale,\r\n transition: {\r\n rotate: { from: start, to: start + 360, ease: \"linear\", duration, repeat: Infinity },\r\n scale: { type: \"spring\", damping: 20, stiffness: 300 },\r\n },\r\n });\r\n }\r\n };\r\n\r\n const handleHoverEnd = () => {\r\n const start = rotation.get();\r\n controls.start({\r\n rotate: start + 360,\r\n scale: 1,\r\n transition: {\r\n rotate: { from: start, to: start + 360, ease: \"linear\", duration: spinDuration, repeat: Infinity },\r\n scale: { type: \"spring\", damping: 20, stiffness: 300 },\r\n },\r\n });\r\n };\r\n\r\n return (\r\n <motion.div\r\n className={cn(\"relative w-32 h-32 cursor-pointer\", className)}\r\n style={{ rotate: rotation }}\r\n initial={{ rotate: 0 }}\r\n animate={controls}\r\n onMouseEnter={handleHoverStart}\r\n onMouseLeave={handleHoverEnd}\r\n >\r\n {letters.map((letter, i) => {\r\n const rotationDeg = (360 / letters.length) * i;\r\n const radius = 60;\r\n const angle = (rotationDeg * Math.PI) / 180;\r\n const x = Math.cos(angle) * radius;\r\n const y = Math.sin(angle) * radius;\r\n\r\n return (\r\n <span\r\n key={i}\r\n className=\"absolute text-lg font-bold\"\r\n style={{\r\n transform: `translate(-50%, -50%) translate(${x}px, ${y}px) rotate(${rotationDeg + 90}deg)`,\r\n left: \"50%\",\r\n top: \"50%\",\r\n }}\r\n >\r\n {letter}\r\n </span>\r\n );\r\n })}\r\n </motion.div>\r\n );\r\n}\r\n\r\nexport default CircularText;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface GlowingTextProps {\r\n text: string;\r\n className?: string;\r\n glowColor?: string;\r\n hoverColor?: string;\r\n}\r\n\r\nexport function GlowingText({\r\n text,\r\n className,\r\n glowColor = \"#3b82f6\",\r\n hoverColor = \"#ec4899\",\r\n}: GlowingTextProps) {\r\n const [isHovered, setIsHovered] = useState(false);\r\n const currentColor = isHovered ? hoverColor : glowColor;\r\n\r\n return (\r\n <motion.div\r\n className={cn(\"font-bold cursor-pointer select-none\", className)}\r\n onMouseEnter={() => setIsHovered(true)}\r\n onMouseLeave={() => setIsHovered(false)}\r\n animate={{\r\n color: currentColor,\r\n textShadow: `0 0 10px ${currentColor}, 0 0 20px ${currentColor}, 0 0 30px ${currentColor}, 0 0 50px ${currentColor}`,\r\n }}\r\n transition={{ duration: 0.4, ease: \"easeInOut\" }}\r\n >\r\n {text}\r\n </motion.div>\r\n );\r\n}\r\n\r\nexport default GlowingText;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface SlicedTextProps {\r\n text: string;\r\n className?: string;\r\n containerClassName?: string;\r\n splitSpacing?: number;\r\n}\r\n\r\nexport function SlicedText({\r\n text = \"Sliced Text\",\r\n className = \"\",\r\n containerClassName = \"\",\r\n splitSpacing = 2,\r\n}: SlicedTextProps) {\r\n return (\r\n <motion.div\r\n className={cn(\"w-full text-center relative inline-block\", containerClassName)}\r\n whileHover=\"hover\"\r\n initial=\"default\"\r\n >\r\n <motion.div\r\n className={cn(\"absolute w-full text-4xl -ml-0.5\", className)}\r\n variants={{\r\n default: { clipPath: \"inset(0 0 50% 0)\", y: -splitSpacing / 2, opacity: 1 },\r\n hover: { clipPath: \"inset(0 0 0 0)\", y: 0, opacity: 0 },\r\n }}\r\n transition={{ duration: 0.1 }}\r\n >\r\n {text}\r\n </motion.div>\r\n <motion.div\r\n className={cn(\"absolute w-full text-4xl\", className)}\r\n variants={{\r\n default: { clipPath: \"inset(50% 0 0 0)\", y: splitSpacing / 2, opacity: 1 },\r\n hover: { clipPath: \"inset(0 0 0 0)\", y: 0, opacity: 1 },\r\n }}\r\n transition={{ duration: 0.1 }}\r\n >\r\n {text}\r\n </motion.div>\r\n <div className={cn(\"invisible text-4xl\", className)}>{text}</div>\r\n </motion.div>\r\n );\r\n}\r\n\r\nexport default SlicedText;\r\n","\"use client\";\r\n\r\nimport { useEffect, useState, useRef } from \"react\";\r\nimport { motion, HTMLMotionProps } from \"framer-motion\";\r\n\r\ninterface DecryptedTextProps extends HTMLMotionProps<\"span\"> {\r\n text: string;\r\n speed?: number;\r\n maxIterations?: number;\r\n sequential?: boolean;\r\n revealDirection?: \"start\" | \"end\" | \"center\";\r\n useOriginalCharsOnly?: boolean;\r\n characters?: string;\r\n className?: string;\r\n parentClassName?: string;\r\n encryptedClassName?: string;\r\n animateOn?: \"view\" | \"hover\" | \"both\";\r\n}\r\n\r\nexport function DecryptedText({\r\n text,\r\n speed = 50,\r\n maxIterations = 10,\r\n sequential = false,\r\n revealDirection = \"start\",\r\n useOriginalCharsOnly = false,\r\n characters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!@#$%^&*()_+\",\r\n className = \"\",\r\n parentClassName = \"\",\r\n encryptedClassName = \"\",\r\n animateOn = \"hover\",\r\n ...props\r\n}: DecryptedTextProps) {\r\n const [displayText, setDisplayText] = useState<string>(text);\r\n const [isHovering, setIsHovering] = useState<boolean>(false);\r\n const [isScrambling, setIsScrambling] = useState<boolean>(false);\r\n const [revealedIndices, setRevealedIndices] = useState<Set<number>>(new Set());\r\n const [hasAnimated, setHasAnimated] = useState<boolean>(false);\r\n const containerRef = useRef<HTMLSpanElement>(null);\r\n\r\n useEffect(() => {\r\n let interval: NodeJS.Timeout;\r\n let currentIteration = 0;\r\n\r\n const getNextIndex = (revealedSet: Set<number>): number => {\r\n const textLength = text.length;\r\n switch (revealDirection) {\r\n case \"start\":\r\n return revealedSet.size;\r\n case \"end\":\r\n return textLength - 1 - revealedSet.size;\r\n case \"center\": {\r\n const middle = Math.floor(textLength / 2);\r\n const offset = Math.floor(revealedSet.size / 2);\r\n const nextIndex = revealedSet.size % 2 === 0 ? middle + offset : middle - offset - 1;\r\n if (nextIndex >= 0 && nextIndex < textLength && !revealedSet.has(nextIndex)) {\r\n return nextIndex;\r\n }\r\n for (let i = 0; i < textLength; i++) {\r\n if (!revealedSet.has(i)) return i;\r\n }\r\n return 0;\r\n }\r\n default:\r\n return revealedSet.size;\r\n }\r\n };\r\n\r\n const availableChars = useOriginalCharsOnly\r\n ? Array.from(new Set(text.split(\"\"))).filter((char) => char !== \" \")\r\n : characters.split(\"\");\r\n\r\n const shuffleText = (originalText: string, currentRevealed: Set<number>): string => {\r\n if (useOriginalCharsOnly) {\r\n const positions = originalText.split(\"\").map((char, i) => ({\r\n char,\r\n isSpace: char === \" \",\r\n index: i,\r\n isRevealed: currentRevealed.has(i),\r\n }));\r\n\r\n const nonSpaceChars = positions.filter((p) => !p.isSpace && !p.isRevealed).map((p) => p.char);\r\n\r\n for (let i = nonSpaceChars.length - 1; i > 0; i--) {\r\n const j = Math.floor(Math.random() * (i + 1));\r\n [nonSpaceChars[i], nonSpaceChars[j]] = [nonSpaceChars[j], nonSpaceChars[i]];\r\n }\r\n\r\n let charIndex = 0;\r\n return positions\r\n .map((p) => {\r\n if (p.isSpace) return \" \";\r\n if (p.isRevealed) return originalText[p.index];\r\n return nonSpaceChars[charIndex++];\r\n })\r\n .join(\"\");\r\n } else {\r\n return originalText\r\n .split(\"\")\r\n .map((char, i) => {\r\n if (char === \" \") return \" \";\r\n if (currentRevealed.has(i)) return originalText[i];\r\n return availableChars[Math.floor(Math.random() * availableChars.length)];\r\n })\r\n .join(\"\");\r\n }\r\n };\r\n\r\n if (isHovering) {\r\n setIsScrambling(true);\r\n interval = setInterval(() => {\r\n setRevealedIndices((prevRevealed) => {\r\n if (sequential) {\r\n if (prevRevealed.size < text.length) {\r\n const nextIndex = getNextIndex(prevRevealed);\r\n const newRevealed = new Set(prevRevealed);\r\n newRevealed.add(nextIndex);\r\n setDisplayText(shuffleText(text, newRevealed));\r\n return newRevealed;\r\n } else {\r\n clearInterval(interval);\r\n setIsScrambling(false);\r\n return prevRevealed;\r\n }\r\n } else {\r\n setDisplayText(shuffleText(text, prevRevealed));\r\n currentIteration++;\r\n if (currentIteration >= maxIterations) {\r\n clearInterval(interval);\r\n setIsScrambling(false);\r\n setDisplayText(text);\r\n }\r\n return prevRevealed;\r\n }\r\n });\r\n }, speed);\r\n } else {\r\n setDisplayText(text);\r\n setRevealedIndices(new Set());\r\n setIsScrambling(false);\r\n }\r\n\r\n return () => {\r\n if (interval) clearInterval(interval);\r\n };\r\n }, [isHovering, text, speed, maxIterations, sequential, revealDirection, characters, useOriginalCharsOnly]);\r\n\r\n useEffect(() => {\r\n if (animateOn !== \"view\" && animateOn !== \"both\") return;\r\n\r\n const observerCallback = (entries: IntersectionObserverEntry[]) => {\r\n entries.forEach((entry) => {\r\n if (entry.isIntersecting && !hasAnimated) {\r\n setIsHovering(true);\r\n setHasAnimated(true);\r\n }\r\n });\r\n };\r\n\r\n const observer = new IntersectionObserver(observerCallback, { threshold: 0.1 });\r\n const currentRef = containerRef.current;\r\n if (currentRef) {\r\n observer.observe(currentRef);\r\n }\r\n\r\n return () => {\r\n if (currentRef) {\r\n observer.unobserve(currentRef);\r\n }\r\n };\r\n }, [animateOn, hasAnimated]);\r\n\r\n const hoverProps =\r\n animateOn === \"hover\" || animateOn === \"both\"\r\n ? {\r\n onMouseEnter: () => setIsHovering(true),\r\n onMouseLeave: () => setIsHovering(false),\r\n }\r\n : {};\r\n\r\n return (\r\n <motion.span\r\n className={parentClassName}\r\n ref={containerRef}\r\n style={{ display: \"inline-block\", whiteSpace: \"pre-wrap\" }}\r\n {...hoverProps}\r\n {...props}\r\n >\r\n <span className=\"sr-only\">{displayText}</span>\r\n <span aria-hidden=\"true\">\r\n {displayText.split(\"\").map((char, index) => {\r\n const isRevealedOrDone = revealedIndices.has(index) || !isScrambling || !isHovering;\r\n return (\r\n <span key={index} className={isRevealedOrDone ? className : encryptedClassName}>\r\n {char}\r\n </span>\r\n );\r\n })}\r\n </span>\r\n </motion.span>\r\n );\r\n}\r\n\r\nexport default DecryptedText;\r\n","\"use client\";\r\n\r\nimport { useEffect, useRef, useState } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface TrueFocusProps {\r\n sentence?: string;\r\n manualMode?: boolean;\r\n blurAmount?: number;\r\n borderColor?: string;\r\n glowColor?: string;\r\n animationDuration?: number;\r\n pauseBetweenAnimations?: number;\r\n className?: string;\r\n}\r\n\r\ninterface FocusRect {\r\n x: number;\r\n y: number;\r\n width: number;\r\n height: number;\r\n}\r\n\r\nexport function TrueFocus({\r\n sentence = \"True Focus\",\r\n manualMode = false,\r\n blurAmount = 5,\r\n borderColor = \"green\",\r\n glowColor = \"rgba(0, 255, 0, 0.6)\",\r\n animationDuration = 0.5,\r\n pauseBetweenAnimations = 1,\r\n className,\r\n}: TrueFocusProps) {\r\n const words = sentence.split(\" \");\r\n const [currentIndex, setCurrentIndex] = useState<number>(0);\r\n const [lastActiveIndex, setLastActiveIndex] = useState<number | null>(null);\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const wordRefs = useRef<(HTMLSpanElement | null)[]>([]);\r\n const [focusRect, setFocusRect] = useState<FocusRect>({ x: 0, y: 0, width: 0, height: 0 });\r\n\r\n useEffect(() => {\r\n if (!manualMode) {\r\n const interval = setInterval(() => {\r\n setCurrentIndex((prev) => (prev + 1) % words.length);\r\n }, (animationDuration + pauseBetweenAnimations) * 1000);\r\n return () => clearInterval(interval);\r\n }\r\n }, [manualMode, animationDuration, pauseBetweenAnimations, words.length]);\r\n\r\n useEffect(() => {\r\n const updateFocusRect = () => {\r\n if (currentIndex === null || currentIndex === -1) return;\r\n if (!wordRefs.current[currentIndex] || !containerRef.current) return;\r\n const parentRect = containerRef.current.getBoundingClientRect();\r\n const activeRect = wordRefs.current[currentIndex]!.getBoundingClientRect();\r\n setFocusRect({\r\n x: activeRect.left - parentRect.left,\r\n y: activeRect.top - parentRect.top,\r\n width: activeRect.width,\r\n height: activeRect.height,\r\n });\r\n };\r\n updateFocusRect();\r\n window.addEventListener(\"resize\", updateFocusRect);\r\n return () => window.removeEventListener(\"resize\", updateFocusRect);\r\n }, [currentIndex, words.length]);\r\n\r\n return (\r\n <div ref={containerRef} className={cn(\"relative flex flex-wrap gap-3 p-12 items-center justify-center\", className)}>\r\n {words.map((word, index) => {\r\n const isActive = index === currentIndex;\r\n return (\r\n <span\r\n key={index}\r\n ref={(el) => { wordRefs.current[index] = el; }}\r\n className=\"text-4xl font-bold relative z-10\"\r\n style={{\r\n filter: isActive ? \"blur(0px)\" : `blur(${blurAmount}px)`,\r\n transition: `all ${animationDuration}s ease`,\r\n color: isActive ? \"#000\" : \"#666\",\r\n transform: isActive ? \"scale(1.05)\" : \"scale(1)\",\r\n }}\r\n onMouseEnter={() => manualMode && (setLastActiveIndex(index), setCurrentIndex(index))}\r\n onMouseLeave={() => manualMode && setCurrentIndex(lastActiveIndex ?? 0)}\r\n >\r\n {word}\r\n </span>\r\n );\r\n })}\r\n <motion.div\r\n className=\"absolute pointer-events-none\"\r\n animate={{ x: focusRect.x, y: focusRect.y, width: focusRect.width, height: focusRect.height, opacity: currentIndex >= 0 ? 1 : 0 }}\r\n transition={{ duration: animationDuration }}\r\n style={{ border: `2px solid ${borderColor}`, boxShadow: `0 0 10px ${glowColor}`, borderRadius: 4 }}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport default TrueFocus;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface GlassCardProps extends React.HTMLAttributes<HTMLDivElement> {\r\n children: React.ReactNode;\r\n}\r\n\r\nexport function GlassCard({ children, className, ...props }: GlassCardProps) {\r\n return (\r\n <div\r\n className={cn(\r\n \"rounded-2xl p-6\",\r\n \"bg-white/10 dark:bg-black/10\",\r\n \"backdrop-blur-xl\",\r\n \"border border-white/20 dark:border-white/10\",\r\n \"shadow-xl\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </div>\r\n );\r\n}\r\n\r\nexport default GlassCard;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface HoverCardProps extends React.HTMLAttributes<HTMLDivElement> {\r\n children: React.ReactNode;\r\n}\r\n\r\nexport function HoverCard({ children, className, ...props }: HoverCardProps) {\r\n return (\r\n <div\r\n className={cn(\r\n \"rounded-2xl p-6\",\r\n \"bg-white dark:bg-zinc-900\",\r\n \"border border-zinc-200 dark:border-zinc-800\",\r\n \"shadow-lg\",\r\n \"transition-all duration-300 ease-out\",\r\n \"hover:shadow-2xl hover:-translate-y-1\",\r\n \"hover:border-zinc-300 dark:hover:border-zinc-700\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </div>\r\n );\r\n}\r\n\r\nexport default HoverCard;\r\n","\"use client\";\r\n\r\nimport React, { useState } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface CardFlipProps {\r\n frontContent: React.ReactNode;\r\n backContent: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\nexport function CardFlip({ frontContent, backContent, className }: CardFlipProps) {\r\n const [isFlipped, setIsFlipped] = useState(false);\r\n\r\n return (\r\n <div\r\n className={cn(\"relative w-full h-full [perspective:1000px]\", className)}\r\n onMouseEnter={() => setIsFlipped(true)}\r\n onMouseLeave={() => setIsFlipped(false)}\r\n >\r\n <div\r\n className={cn(\r\n \"relative w-full h-full [transform-style:preserve-3d] transition-transform duration-700\",\r\n isFlipped ? \"[transform:rotateY(180deg)]\" : \"\"\r\n )}\r\n >\r\n {/* Front */}\r\n <div\r\n className={cn(\r\n \"absolute inset-0 w-full h-full [backface-visibility:hidden]\",\r\n \"rounded-2xl bg-white dark:bg-zinc-900\",\r\n \"border border-zinc-200 dark:border-zinc-800\",\r\n \"shadow-lg p-6\"\r\n )}\r\n >\r\n {frontContent}\r\n </div>\r\n\r\n {/* Back */}\r\n <div\r\n className={cn(\r\n \"absolute inset-0 w-full h-full [backface-visibility:hidden] [transform:rotateY(180deg)]\",\r\n \"rounded-2xl bg-zinc-100 dark:bg-zinc-800\",\r\n \"border border-zinc-200 dark:border-zinc-700\",\r\n \"shadow-lg p-6\"\r\n )}\r\n >\r\n {backContent}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default CardFlip;\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface CardProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n hover?: boolean;\r\n}\r\n\r\nexport function Card({ children, className, hover = false }: CardProps) {\r\n return (\r\n <div\r\n className={cn(\r\n \"rounded-xl p-6\",\r\n \"bg-white dark:bg-zinc-900\",\r\n \"border border-zinc-200 dark:border-zinc-800\",\r\n hover && \"transition-all duration-200 hover:shadow-lg hover:-translate-y-1\",\r\n className\r\n )}\r\n >\r\n {children}\r\n </div>\r\n );\r\n}\r\n\r\ninterface CardHeaderProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\nexport function CardHeader({ children, className }: CardHeaderProps) {\r\n return <div className={cn(\"mb-4\", className)}>{children}</div>;\r\n}\r\n\r\ninterface CardTitleProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\nexport function CardTitle({ children, className }: CardTitleProps) {\r\n return <h3 className={cn(\"text-lg font-semibold\", className)}>{children}</h3>;\r\n}\r\n\r\ninterface CardDescriptionProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\nexport function CardDescription({ children, className }: CardDescriptionProps) {\r\n return <p className={cn(\"text-sm text-zinc-500 dark:text-zinc-400\", className)}>{children}</p>;\r\n}\r\n\r\ninterface CardContentProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\nexport function CardContent({ children, className }: CardContentProps) {\r\n return <div className={cn(\"\", className)}>{children}</div>;\r\n}\r\n\r\ninterface CardFooterProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\nexport function CardFooter({ children, className }: CardFooterProps) {\r\n return <div className={cn(\"mt-4 pt-4 border-t border-zinc-200 dark:border-zinc-800\", className)}>{children}</div>;\r\n}\r\n\r\nexport default Card;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingDotsProps {\r\n className?: string;\r\n size?: \"sm\" | \"md\" | \"lg\";\r\n}\r\n\r\nexport function LoadingDots({ className, size = \"md\" }: LoadingDotsProps) {\r\n const sizeClasses = {\r\n sm: \"w-1.5 h-1.5\",\r\n md: \"w-2.5 h-2.5\",\r\n lg: \"w-4 h-4\",\r\n };\r\n\r\n return (\r\n <div className={cn(\"flex items-center justify-center gap-1\", className)}>\r\n {[0, 1, 2].map((i) => (\r\n <div\r\n key={i}\r\n className={cn(\r\n sizeClasses[size],\r\n \"rounded-full bg-current animate-bounce\"\r\n )}\r\n style={{ animationDelay: `${i * 0.15}s` }}\r\n />\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingDots;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingSpinnerProps {\r\n className?: string;\r\n size?: \"sm\" | \"md\" | \"lg\";\r\n}\r\n\r\nexport function LoadingSpinner({ className, size = \"md\" }: LoadingSpinnerProps) {\r\n const sizeClasses = {\r\n sm: \"w-4 h-4 border-2\",\r\n md: \"w-8 h-8 border-3\",\r\n lg: \"w-12 h-12 border-4\",\r\n };\r\n\r\n return (\r\n <div\r\n className={cn(\r\n sizeClasses[size],\r\n \"rounded-full border-current border-t-transparent animate-spin\",\r\n className\r\n )}\r\n />\r\n );\r\n}\r\n\r\nexport default LoadingSpinner;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingBarProps {\r\n className?: string;\r\n color?: string;\r\n}\r\n\r\nexport function LoadingBar({ className, color = \"bg-blue-500\" }: LoadingBarProps) {\r\n return (\r\n <div className={cn(\"h-1 w-full overflow-hidden rounded-full bg-zinc-200 dark:bg-zinc-800\", className)}>\r\n <motion.div\r\n className={cn(\"h-full rounded-full\", color)}\r\n initial={{ x: \"-100%\" }}\r\n animate={{ x: \"100%\" }}\r\n transition={{\r\n repeat: Infinity,\r\n duration: 1.5,\r\n ease: \"easeInOut\",\r\n }}\r\n style={{ width: \"50%\" }}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingBar;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingPulseProps {\r\n className?: string;\r\n size?: \"sm\" | \"md\" | \"lg\";\r\n color?: string;\r\n}\r\n\r\nconst sizes = {\r\n sm: \"w-8 h-8\",\r\n md: \"w-12 h-12\",\r\n lg: \"w-16 h-16\",\r\n};\r\n\r\nexport function LoadingPulse({ className, size = \"md\", color = \"bg-blue-500\" }: LoadingPulseProps) {\r\n return (\r\n <div className={cn(\"relative\", sizes[size], className)}>\r\n <motion.div\r\n className={cn(\"absolute inset-0 rounded-full\", color)}\r\n animate={{\r\n scale: [1, 1.5, 1],\r\n opacity: [0.5, 0, 0.5],\r\n }}\r\n transition={{\r\n duration: 1.5,\r\n repeat: Infinity,\r\n ease: \"easeInOut\",\r\n }}\r\n />\r\n <div className={cn(\"absolute inset-2 rounded-full\", color)} />\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingPulse;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingBounceProps {\r\n className?: string;\r\n color?: string;\r\n}\r\n\r\nexport function LoadingBounce({ className, color = \"bg-zinc-900 dark:bg-white\" }: LoadingBounceProps) {\r\n return (\r\n <div className={cn(\"flex gap-1\", className)}>\r\n {[0, 1, 2].map((i) => (\r\n <motion.div\r\n key={i}\r\n className={cn(\"w-3 h-3 rounded-full\", color)}\r\n animate={{ y: [0, -10, 0] }}\r\n transition={{\r\n duration: 0.6,\r\n repeat: Infinity,\r\n delay: i * 0.1,\r\n ease: \"easeInOut\",\r\n }}\r\n />\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingBounce;\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingFlowerProps {\r\n className?: string;\r\n}\r\n\r\nexport function LoadingFlower({ className = \"\" }: LoadingFlowerProps) {\r\n return (\r\n <div className={cn(\"w-full h-full min-h-[400px] flex items-center justify-center\", className)}>\r\n <div className=\"relative\">\r\n <div className=\"flex items-center justify-center\">\r\n {[...Array(8)].map((_, i) => (\r\n <div\r\n key={i}\r\n className=\"absolute w-3 h-3 rounded-full bg-black dark:bg-white\"\r\n style={{\r\n transform: `rotate(${i * 45}deg) translateY(-20px)`,\r\n animation: `flower-pulse 1.5s ease-in-out infinite`,\r\n animationDelay: `${i * 0.1}s`,\r\n }}\r\n />\r\n ))}\r\n <div className=\"w-4 h-4 rounded-full bg-zinc-400\" />\r\n </div>\r\n </div>\r\n <style jsx>{`\r\n @keyframes flower-pulse {\r\n 0%, 100% { opacity: 0.3; scale: 0.8; }\r\n 50% { opacity: 1; scale: 1.2; }\r\n }\r\n `}</style>\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingFlower;\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingGeometricProps {\r\n className?: string;\r\n}\r\n\r\nexport function LoadingGeometric({ className = \"\" }: LoadingGeometricProps) {\r\n return (\r\n <div className={cn(\"w-full h-full min-h-[400px] flex items-center justify-center\", className)}>\r\n <div className=\"flex justify-center items-center\">\r\n <div className=\"w-36 h-36 flex justify-center items-center relative\">\r\n <div className=\"w-4 h-16 absolute bg-zinc-600 dark:bg-zinc-400 animate-[move-h_1.2s_infinite_cubic-bezier(0.65,0.05,0.36,1)]\" />\r\n <div className=\"w-4 h-16 absolute bg-zinc-800 dark:bg-zinc-200 rotate-90 animate-[move-v_1.2s_infinite_cubic-bezier(0.65,0.05,0.36,1)]\" />\r\n <div className=\"absolute top-4 left-5 font-black text-lg text-black dark:text-white animate-[rot_0.8s_infinite_cubic-bezier(0.65,0.05,0.36,1)]\">X</div>\r\n <div className=\"absolute bottom-0 right-0 font-black text-3xl text-black dark:text-white animate-[scale_0.8s_infinite_cubic-bezier(0.65,0.05,0.36,1)]\">*</div>\r\n </div>\r\n </div>\r\n <style jsx>{`\r\n @keyframes move-h { 0% { top: 0; opacity: 0; } 25% { opacity: 1; } 50% { top: 30%; opacity: 1; } 75% { opacity: 1; } 100% { top: 100%; opacity: 0; } }\r\n @keyframes move-v { 0% { left: 0; opacity: 0; } 25% { opacity: 1; } 50% { left: 45%; opacity: 1; } 75% { opacity: 1; } 100% { left: 100%; opacity: 0; } }\r\n @keyframes rot { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }\r\n @keyframes scale { 0% { scale: 1; } 50% { scale: 1.9; } 100% { scale: 1; } }\r\n `}</style>\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingGeometric;\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingMorphProps {\r\n className?: string;\r\n}\r\n\r\nexport function LoadingMorph({ className = \"\" }: LoadingMorphProps) {\r\n return (\r\n <div className={cn(\"w-full h-full min-h-[400px] flex items-center justify-center\", className)}>\r\n <div className=\"w-20 h-20 rounded-full border-8 border-transparent border-t-black dark:border-t-white border-r-zinc-600 dark:border-r-zinc-400 border-b-zinc-400 dark:border-b-zinc-600 border-l-zinc-200 dark:border-l-zinc-800 animate-[morph_2s_ease-in-out_infinite,rotate-color_2s_linear_infinite]\">\r\n <style jsx>{`\r\n @keyframes rotate-color { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }\r\n @keyframes morph { 0%, 100% { border-radius: 50%; width: 80px; height: 80px; } 50% { border-radius: 10%; width: 100px; height: 100px; } }\r\n `}</style>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingMorph;\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingRingsProps {\r\n className?: string;\r\n}\r\n\r\nexport function LoadingRings({ className = \"\" }: LoadingRingsProps) {\r\n return (\r\n <div className={cn(\"w-full h-full min-h-[400px] flex items-center justify-center\", className)}>\r\n <div className=\"w-16 h-16\">\r\n <div className=\"box-border w-full h-full border-[10px] border-zinc-300 dark:border-zinc-800 border-t-zinc-700 dark:border-t-zinc-200 border-b-zinc-500 rounded-full animate-[rotate_5s_linear_infinite]\">\r\n <div className=\"box-border w-full h-full border-[10px] border-zinc-300 dark:border-zinc-800 border-t-zinc-600 dark:border-t-zinc-400 border-b-black dark:border-b-white rounded-full animate-[rotate_2.5s_linear_infinite]\" />\r\n </div>\r\n <style jsx>{`\r\n @keyframes rotate { 0% { transform: scale(1) rotate(360deg); } 50% { transform: scale(0.8) rotate(-360deg); } 100% { transform: scale(1) rotate(360deg); } }\r\n `}</style>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingRings;\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingTextProps {\r\n text?: string;\r\n className?: string;\r\n}\r\n\r\nexport function LoadingText({ text = \"loading\", className = \"\" }: LoadingTextProps) {\r\n return (\r\n <div className={cn(\"w-full h-full min-h-[400px] flex items-center justify-center\", className)}>\r\n <div className=\"relative w-20 h-12\">\r\n <span className=\"absolute top-0 left-0 m-0 p-0 text-black dark:text-white text-sm tracking-wider animate-[loading-text_3.5s_ease_both_infinite]\">\r\n {text}\r\n </span>\r\n <span className=\"absolute bottom-0 left-0 block h-4 w-4 rounded-full bg-black dark:bg-white animate-[loading-bar_3.5s_ease_both_infinite]\">\r\n <span className=\"absolute inset-0 rounded-full bg-zinc-400 dark:bg-zinc-500 animate-[loading-bar-before_3.5s_ease_both_infinite]\" />\r\n </span>\r\n <style jsx>{`\r\n @keyframes loading-text { 0% { letter-spacing: 1px; transform: translateX(0px); } 40% { letter-spacing: 2px; transform: translateX(26px); } 80% { letter-spacing: 1px; transform: translateX(32px); } 90% { letter-spacing: 2px; transform: translateX(0px); } 100% { letter-spacing: 1px; transform: translateX(0px); } }\r\n @keyframes loading-bar { 0% { width: 16px; transform: translateX(0px); } 40% { width: 100%; transform: translateX(0px); } 80% { width: 16px; transform: translateX(64px); } 90% { width: 100%; transform: translateX(0px); } 100% { width: 16px; transform: translateX(0px); } }\r\n @keyframes loading-bar-before { 0% { transform: translateX(0px); width: 16px; } 40% { transform: translateX(0%); width: 80%; } 80% { width: 100%; transform: translateX(0px); } 90% { width: 80%; transform: translateX(15px); } 100% { transform: translateX(0px); width: 16px; } }\r\n `}</style>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingText;\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingWordsProps {\r\n words?: string[];\r\n className?: string;\r\n}\r\n\r\nexport function LoadingWords({\r\n words = [\"buttons\", \"forms\", \"switches\", \"cards\", \"loaders\"],\r\n className = \"\",\r\n}: LoadingWordsProps) {\r\n return (\r\n <div className={cn(\"w-full h-full min-h-[400px] flex items-center justify-center\", className)}>\r\n <div className=\"text-zinc-400 dark:text-zinc-500 font-medium text-2xl box-border h-10 px-2.5 py-2 flex items-center rounded-lg\">\r\n <span className=\"mr-2\">loading</span>\r\n <div className=\"overflow-hidden relative h-full\">\r\n <div className=\"absolute inset-0 bg-gradient-to-b from-white via-transparent to-white dark:from-zinc-950 dark:via-transparent dark:to-zinc-950 z-10\" />\r\n {words.map((word, index) => (\r\n <span\r\n key={index}\r\n className=\"block h-full pl-1.5 text-black dark:text-white animate-[spin-words_4s_infinite]\"\r\n style={{ animationDelay: `${index * 0.8}s` }}\r\n >\r\n {word}\r\n </span>\r\n ))}\r\n </div>\r\n </div>\r\n <style jsx>{`\r\n @keyframes spin-words { 10% { transform: translateY(-102%); } 25% { transform: translateY(-100%); } 35% { transform: translateY(-202%); } 50% { transform: translateY(-200%); } 60% { transform: translateY(-302%); } 75% { transform: translateY(-300%); } 85% { transform: translateY(-402%); } 100% { transform: translateY(-400%); } }\r\n `}</style>\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingWords;\r\n","\"use client\";\r\n\r\nimport React, { useEffect, useMemo, useState } from \"react\";\r\nimport { AnimatePresence, motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\nexport interface AnimatedListProps {\r\n className?: string;\r\n children: React.ReactNode;\r\n delay?: number;\r\n}\r\n\r\nexport function AnimatedList({\r\n className,\r\n children,\r\n delay = 1000,\r\n}: AnimatedListProps) {\r\n const [index, setIndex] = useState(0);\r\n const childrenArray = React.Children.toArray(children);\r\n\r\n useEffect(() => {\r\n const interval = setInterval(() => {\r\n setIndex((prevIndex) => (prevIndex + 1) % childrenArray.length);\r\n }, delay);\r\n return () => clearInterval(interval);\r\n }, [childrenArray.length, delay]);\r\n\r\n const itemsToShow = useMemo(\r\n () => childrenArray.slice(0, index + 1).reverse(),\r\n [index, childrenArray]\r\n );\r\n\r\n return (\r\n <div className={cn(\"flex flex-col items-center gap-4\", className)}>\r\n <AnimatePresence>\r\n {itemsToShow.map((item, idx) => (\r\n <AnimatedListItem key={idx}>\r\n {item}\r\n </AnimatedListItem>\r\n ))}\r\n </AnimatePresence>\r\n </div>\r\n );\r\n}\r\n\r\nexport function AnimatedListItem({ children }: { children: React.ReactNode }) {\r\n return (\r\n <motion.div\r\n initial={{ scale: 0, opacity: 0 }}\r\n animate={{ scale: 1, opacity: 1 }}\r\n exit={{ scale: 0, opacity: 0 }}\r\n transition={{ type: \"spring\", stiffness: 350, damping: 40 }}\r\n layout\r\n className=\"mx-auto w-full\"\r\n >\r\n {children}\r\n </motion.div>\r\n );\r\n}\r\n\r\nexport default AnimatedList;\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface SkeletonProps {\r\n className?: string;\r\n variant?: \"text\" | \"circular\" | \"rectangular\";\r\n width?: string | number;\r\n height?: string | number;\r\n}\r\n\r\nexport function Skeleton({ \r\n className, \r\n variant = \"text\",\r\n width,\r\n height \r\n}: SkeletonProps) {\r\n const variants = {\r\n text: \"h-4 rounded\",\r\n circular: \"rounded-full\",\r\n rectangular: \"rounded-lg\",\r\n };\r\n\r\n return (\r\n <div\r\n className={cn(\r\n \"animate-pulse bg-zinc-200 dark:bg-zinc-800\",\r\n variants[variant],\r\n className\r\n )}\r\n style={{ width, height }}\r\n />\r\n );\r\n}\r\n\r\nexport default Skeleton;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface TooltipProps {\r\n children: React.ReactNode;\r\n content: string;\r\n position?: \"top\" | \"bottom\" | \"left\" | \"right\";\r\n className?: string;\r\n}\r\n\r\nexport function Tooltip({ \r\n children, \r\n content, \r\n position = \"top\",\r\n className \r\n}: TooltipProps) {\r\n const [isVisible, setIsVisible] = useState(false);\r\n\r\n const positions = {\r\n top: \"bottom-full left-1/2 -translate-x-1/2 mb-2\",\r\n bottom: \"top-full left-1/2 -translate-x-1/2 mt-2\",\r\n left: \"right-full top-1/2 -translate-y-1/2 mr-2\",\r\n right: \"left-full top-1/2 -translate-y-1/2 ml-2\",\r\n };\r\n\r\n const animations = {\r\n top: { initial: { opacity: 0, y: 5 }, animate: { opacity: 1, y: 0 } },\r\n bottom: { initial: { opacity: 0, y: -5 }, animate: { opacity: 1, y: 0 } },\r\n left: { initial: { opacity: 0, x: 5 }, animate: { opacity: 1, x: 0 } },\r\n right: { initial: { opacity: 0, x: -5 }, animate: { opacity: 1, x: 0 } },\r\n };\r\n\r\n return (\r\n <div\r\n className=\"relative inline-block\"\r\n onMouseEnter={() => setIsVisible(true)}\r\n onMouseLeave={() => setIsVisible(false)}\r\n >\r\n {children}\r\n <AnimatePresence>\r\n {isVisible && (\r\n <motion.div\r\n className={cn(\r\n \"absolute z-50 px-2 py-1 text-sm text-white bg-zinc-900 dark:bg-zinc-100 dark:text-zinc-900 rounded whitespace-nowrap\",\r\n positions[position],\r\n className\r\n )}\r\n initial={animations[position].initial}\r\n animate={animations[position].animate}\r\n exit={animations[position].initial}\r\n transition={{ duration: 0.15 }}\r\n >\r\n {content}\r\n </motion.div>\r\n )}\r\n </AnimatePresence>\r\n </div>\r\n );\r\n}\r\n\r\nexport default Tooltip;\r\n","\"use client\";\r\n\r\nimport { useState, useRef } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface TooltipMinimalProps {\r\n content: string;\r\n children: React.ReactNode;\r\n position?: \"top\" | \"bottom\" | \"left\" | \"right\";\r\n delay?: number;\r\n className?: string;\r\n}\r\n\r\nexport function TooltipMinimal({\r\n content,\r\n children,\r\n position = \"top\",\r\n delay = 300,\r\n className,\r\n}: TooltipMinimalProps) {\r\n const [isVisible, setIsVisible] = useState(false);\r\n const timeoutRef = useRef<NodeJS.Timeout>(undefined);\r\n\r\n const showTooltip = () => {\r\n timeoutRef.current = setTimeout(() => setIsVisible(true), delay);\r\n };\r\n\r\n const hideTooltip = () => {\r\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\r\n setIsVisible(false);\r\n };\r\n\r\n const getPositionClasses = () => {\r\n const positions = {\r\n top: \"bottom-full left-1/2 -translate-x-1/2 mb-2\",\r\n bottom: \"top-full left-1/2 -translate-x-1/2 mt-2\",\r\n left: \"right-full top-1/2 -translate-y-1/2 mr-2\",\r\n right: \"left-full top-1/2 -translate-y-1/2 ml-2\",\r\n };\r\n return positions[position];\r\n };\r\n\r\n return (\r\n <div className={cn(\"relative inline-block\", className)} onMouseEnter={showTooltip} onMouseLeave={hideTooltip}>\r\n {children}\r\n <AnimatePresence>\r\n {isVisible && (\r\n <motion.div\r\n initial={{ opacity: 0, scale: 0.95 }}\r\n animate={{ opacity: 1, scale: 1 }}\r\n exit={{ opacity: 0, scale: 0.95 }}\r\n transition={{ duration: 0.15 }}\r\n className={cn(\"absolute z-50 px-3 py-2 text-sm bg-popover border border-border rounded-lg shadow-md whitespace-nowrap\", getPositionClasses())}\r\n >\r\n {content}\r\n </motion.div>\r\n )}\r\n </AnimatePresence>\r\n </div>\r\n );\r\n}\r\n\r\nexport default TooltipMinimal;\r\n","\"use client\";\r\n\r\nimport { useState, useRef } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface TooltipAnimatedProps {\r\n content: string;\r\n children: React.ReactNode;\r\n position?: \"top\" | \"bottom\" | \"left\" | \"right\";\r\n delay?: number;\r\n animation?: \"fade\" | \"slide\" | \"bounce\" | \"scale\";\r\n className?: string;\r\n}\r\n\r\nexport function TooltipAnimated({\r\n content,\r\n children,\r\n position = \"top\",\r\n delay = 200,\r\n animation = \"slide\",\r\n className,\r\n}: TooltipAnimatedProps) {\r\n const [isVisible, setIsVisible] = useState(false);\r\n const timeoutRef = useRef<NodeJS.Timeout>(undefined);\r\n\r\n const showTooltip = () => {\r\n timeoutRef.current = setTimeout(() => setIsVisible(true), delay);\r\n };\r\n\r\n const hideTooltip = () => {\r\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\r\n setIsVisible(false);\r\n };\r\n\r\n const getPositionClasses = () => {\r\n const positions = {\r\n top: \"bottom-full left-1/2 -translate-x-1/2 mb-3\",\r\n bottom: \"top-full left-1/2 -translate-x-1/2 mt-3\",\r\n left: \"right-full top-1/2 -translate-y-1/2 mr-3\",\r\n right: \"left-full top-1/2 -translate-y-1/2 ml-3\",\r\n };\r\n return positions[position];\r\n };\r\n\r\n const getAnimationProps = () => {\r\n const slideOffset = 10;\r\n const offsets = { top: { y: slideOffset }, bottom: { y: -slideOffset }, left: { x: slideOffset }, right: { x: -slideOffset } };\r\n const { x = 0, y = 0 } = offsets[position];\r\n\r\n const animations = {\r\n fade: { initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 } },\r\n scale: { initial: { opacity: 0, scale: 0.8 }, animate: { opacity: 1, scale: 1 }, exit: { opacity: 0, scale: 0.8 } },\r\n bounce: { initial: { opacity: 0, scale: 0.3, y: position === \"top\" ? 10 : -10 }, animate: { opacity: 1, scale: 1, y: 0 }, exit: { opacity: 0, scale: 0.3, y: position === \"top\" ? 10 : -10 } },\r\n slide: { initial: { opacity: 0, x, y }, animate: { opacity: 1, x: 0, y: 0 }, exit: { opacity: 0, x, y } },\r\n };\r\n return { ...animations[animation], transition: { type: \"spring\", stiffness: 300, damping: 25 } };\r\n };\r\n\r\n return (\r\n <div className={cn(\"relative inline-block\", className)} onMouseEnter={showTooltip} onMouseLeave={hideTooltip}>\r\n {children}\r\n <AnimatePresence>\r\n {isVisible && (\r\n <motion.div {...getAnimationProps()} className={cn(\"absolute z-50 px-4 py-2 text-sm bg-popover border border-border rounded-xl shadow-lg whitespace-nowrap backdrop-blur-sm\", getPositionClasses())}>\r\n {content}\r\n </motion.div>\r\n )}\r\n </AnimatePresence>\r\n </div>\r\n );\r\n}\r\n\r\nexport default TooltipAnimated;\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface BadgeProps {\r\n children: React.ReactNode;\r\n variant?: \"default\" | \"success\" | \"warning\" | \"danger\" | \"info\";\r\n size?: \"sm\" | \"md\" | \"lg\";\r\n className?: string;\r\n}\r\n\r\nconst variants = {\r\n default: \"bg-zinc-100 text-zinc-900 dark:bg-zinc-800 dark:text-zinc-100\",\r\n success: \"bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400\",\r\n warning: \"bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-400\",\r\n danger: \"bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400\",\r\n info: \"bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-400\",\r\n};\r\n\r\nconst sizes = {\r\n sm: \"px-2 py-0.5 text-xs\",\r\n md: \"px-2.5 py-1 text-sm\",\r\n lg: \"px-3 py-1.5 text-base\",\r\n};\r\n\r\nexport function Badge({ \r\n children, \r\n variant = \"default\", \r\n size = \"md\",\r\n className \r\n}: BadgeProps) {\r\n return (\r\n <span\r\n className={cn(\r\n \"inline-flex items-center font-medium rounded-full\",\r\n variants[variant],\r\n sizes[size],\r\n className\r\n )}\r\n >\r\n {children}\r\n </span>\r\n );\r\n}\r\n\r\nexport default Badge;\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface AvatarProps {\r\n src?: string;\r\n alt?: string;\r\n fallback?: string;\r\n size?: \"sm\" | \"md\" | \"lg\" | \"xl\";\r\n className?: string;\r\n}\r\n\r\nconst sizes = {\r\n sm: \"w-8 h-8 text-xs\",\r\n md: \"w-10 h-10 text-sm\",\r\n lg: \"w-12 h-12 text-base\",\r\n xl: \"w-16 h-16 text-lg\",\r\n};\r\n\r\nexport function Avatar({ \r\n src, \r\n alt = \"\", \r\n fallback,\r\n size = \"md\",\r\n className \r\n}: AvatarProps) {\r\n const initials = fallback || alt.split(\" \").map(n => n[0]).join(\"\").slice(0, 2).toUpperCase();\r\n\r\n return (\r\n <div\r\n className={cn(\r\n \"relative inline-flex items-center justify-center rounded-full bg-zinc-200 dark:bg-zinc-800 overflow-hidden\",\r\n sizes[size],\r\n className\r\n )}\r\n >\r\n {src ? (\r\n <img src={src} alt={alt} className=\"w-full h-full object-cover\" />\r\n ) : (\r\n <span className=\"font-medium text-zinc-600 dark:text-zinc-400\">\r\n {initials}\r\n </span>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nexport default Avatar;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface ProgressProps {\r\n value: number;\r\n max?: number;\r\n className?: string;\r\n color?: string;\r\n showLabel?: boolean;\r\n}\r\n\r\nexport function Progress({ \r\n value, \r\n max = 100, \r\n className,\r\n color = \"bg-blue-500\",\r\n showLabel = false\r\n}: ProgressProps) {\r\n const percentage = Math.min(Math.max((value / max) * 100, 0), 100);\r\n\r\n return (\r\n <div className={cn(\"w-full\", className)}>\r\n <div className=\"h-2 w-full overflow-hidden rounded-full bg-zinc-200 dark:bg-zinc-800\">\r\n <motion.div\r\n className={cn(\"h-full rounded-full\", color)}\r\n initial={{ width: 0 }}\r\n animate={{ width: `${percentage}%` }}\r\n transition={{ duration: 0.5, ease: \"easeOut\" }}\r\n />\r\n </div>\r\n {showLabel && (\r\n <span className=\"mt-1 text-sm text-zinc-600 dark:text-zinc-400\">\r\n {Math.round(percentage)}%\r\n </span>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nexport default Progress;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface SwitchProps {\r\n checked?: boolean;\r\n onChange?: (checked: boolean) => void;\r\n disabled?: boolean;\r\n size?: \"sm\" | \"md\" | \"lg\";\r\n className?: string;\r\n}\r\n\r\nconst sizes = {\r\n sm: { track: \"w-8 h-4\", thumb: \"w-3 h-3\", translate: 16 },\r\n md: { track: \"w-11 h-6\", thumb: \"w-5 h-5\", translate: 20 },\r\n lg: { track: \"w-14 h-7\", thumb: \"w-6 h-6\", translate: 28 },\r\n};\r\n\r\nexport function Switch({ \r\n checked = false, \r\n onChange, \r\n disabled = false,\r\n size = \"md\",\r\n className \r\n}: SwitchProps) {\r\n const sizeConfig = sizes[size];\r\n\r\n return (\r\n <button\r\n type=\"button\"\r\n role=\"switch\"\r\n aria-checked={checked}\r\n disabled={disabled}\r\n onClick={() => onChange?.(!checked)}\r\n className={cn(\r\n \"relative inline-flex shrink-0 cursor-pointer rounded-full transition-colors\",\r\n checked ? \"bg-blue-500\" : \"bg-zinc-300 dark:bg-zinc-700\",\r\n disabled && \"opacity-50 cursor-not-allowed\",\r\n sizeConfig.track,\r\n className\r\n )}\r\n >\r\n <motion.span\r\n className={cn(\r\n \"pointer-events-none inline-block rounded-full bg-white shadow-lg\",\r\n sizeConfig.thumb\r\n )}\r\n animate={{ x: checked ? sizeConfig.translate : 2 }}\r\n transition={{ type: \"spring\", stiffness: 500, damping: 30 }}\r\n style={{ marginTop: 2 }}\r\n />\r\n </button>\r\n );\r\n}\r\n\r\nexport default Switch;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface AccordionItem {\r\n title: string;\r\n content: React.ReactNode;\r\n}\r\n\r\ninterface AccordionProps {\r\n items: AccordionItem[];\r\n className?: string;\r\n allowMultiple?: boolean;\r\n}\r\n\r\nexport function Accordion({ items, className, allowMultiple = false }: AccordionProps) {\r\n const [openItems, setOpenItems] = useState<number[]>([]);\r\n\r\n const toggleItem = (index: number) => {\r\n if (allowMultiple) {\r\n setOpenItems((prev) =>\r\n prev.includes(index) ? prev.filter((i) => i !== index) : [...prev, index]\r\n );\r\n } else {\r\n setOpenItems((prev) => (prev.includes(index) ? [] : [index]));\r\n }\r\n };\r\n\r\n return (\r\n <div className={cn(\"w-full space-y-2\", className)}>\r\n {items.map((item, index) => (\r\n <div\r\n key={index}\r\n className=\"border border-zinc-200 dark:border-zinc-800 rounded-lg overflow-hidden\"\r\n >\r\n <button\r\n onClick={() => toggleItem(index)}\r\n className=\"w-full px-4 py-3 flex items-center justify-between text-left bg-zinc-50 dark:bg-zinc-900 hover:bg-zinc-100 dark:hover:bg-zinc-800 transition-colors\"\r\n >\r\n <span className=\"font-medium\">{item.title}</span>\r\n <motion.svg\r\n animate={{ rotate: openItems.includes(index) ? 180 : 0 }}\r\n transition={{ duration: 0.2 }}\r\n className=\"w-5 h-5\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n viewBox=\"0 0 24 24\"\r\n >\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M19 9l-7 7-7-7\" />\r\n </motion.svg>\r\n </button>\r\n <AnimatePresence>\r\n {openItems.includes(index) && (\r\n <motion.div\r\n initial={{ height: 0, opacity: 0 }}\r\n animate={{ height: \"auto\", opacity: 1 }}\r\n exit={{ height: 0, opacity: 0 }}\r\n transition={{ duration: 0.2 }}\r\n >\r\n <div className=\"px-4 py-3 bg-white dark:bg-zinc-950\">{item.content}</div>\r\n </motion.div>\r\n )}\r\n </AnimatePresence>\r\n </div>\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport default Accordion;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface Tab {\r\n label: string;\r\n content: React.ReactNode;\r\n}\r\n\r\ninterface TabsProps {\r\n tabs: Tab[];\r\n className?: string;\r\n defaultIndex?: number;\r\n}\r\n\r\nexport function Tabs({ tabs, className, defaultIndex = 0 }: TabsProps) {\r\n const [activeIndex, setActiveIndex] = useState(defaultIndex);\r\n\r\n return (\r\n <div className={cn(\"w-full\", className)}>\r\n <div className=\"relative flex border-b border-zinc-200 dark:border-zinc-800\">\r\n {tabs.map((tab, index) => (\r\n <button\r\n key={index}\r\n onClick={() => setActiveIndex(index)}\r\n className={cn(\r\n \"px-4 py-2 text-sm font-medium transition-colors relative\",\r\n activeIndex === index\r\n ? \"text-zinc-900 dark:text-white\"\r\n : \"text-zinc-500 hover:text-zinc-700 dark:text-zinc-400 dark:hover:text-zinc-200\"\r\n )}\r\n >\r\n {tab.label}\r\n {activeIndex === index && (\r\n <motion.div\r\n layoutId=\"activeTab\"\r\n className=\"absolute bottom-0 left-0 right-0 h-0.5 bg-zinc-900 dark:bg-white\"\r\n transition={{ type: \"spring\", stiffness: 500, damping: 30 }}\r\n />\r\n )}\r\n </button>\r\n ))}\r\n </div>\r\n <motion.div\r\n key={activeIndex}\r\n initial={{ opacity: 0, y: 10 }}\r\n animate={{ opacity: 1, y: 0 }}\r\n transition={{ duration: 0.2 }}\r\n className=\"py-4\"\r\n >\r\n {tabs[activeIndex].content}\r\n </motion.div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default Tabs;\r\n","\"use client\";\r\n\r\nimport { useEffect } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface ModalProps {\r\n isOpen: boolean;\r\n onClose: () => void;\r\n children: React.ReactNode;\r\n className?: string;\r\n title?: string;\r\n}\r\n\r\nexport function Modal({ isOpen, onClose, children, className, title }: ModalProps) {\r\n useEffect(() => {\r\n const handleEscape = (e: KeyboardEvent) => {\r\n if (e.key === \"Escape\") onClose();\r\n };\r\n if (isOpen) {\r\n document.addEventListener(\"keydown\", handleEscape);\r\n document.body.style.overflow = \"hidden\";\r\n }\r\n return () => {\r\n document.removeEventListener(\"keydown\", handleEscape);\r\n document.body.style.overflow = \"unset\";\r\n };\r\n }, [isOpen, onClose]);\r\n\r\n return (\r\n <AnimatePresence>\r\n {isOpen && (\r\n <>\r\n <motion.div\r\n initial={{ opacity: 0 }}\r\n animate={{ opacity: 1 }}\r\n exit={{ opacity: 0 }}\r\n onClick={onClose}\r\n className=\"fixed inset-0 bg-black/50 z-50\"\r\n />\r\n <motion.div\r\n initial={{ opacity: 0, scale: 0.95, y: 20 }}\r\n animate={{ opacity: 1, scale: 1, y: 0 }}\r\n exit={{ opacity: 0, scale: 0.95, y: 20 }}\r\n transition={{ type: \"spring\", damping: 25, stiffness: 300 }}\r\n className={cn(\r\n \"fixed left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-50\",\r\n \"w-full max-w-md p-6 rounded-xl\",\r\n \"bg-white dark:bg-zinc-900\",\r\n \"shadow-xl\",\r\n className\r\n )}\r\n >\r\n {title && (\r\n <div className=\"flex items-center justify-between mb-4\">\r\n <h2 className=\"text-lg font-semibold\">{title}</h2>\r\n <button\r\n onClick={onClose}\r\n className=\"p-1 rounded-lg hover:bg-zinc-100 dark:hover:bg-zinc-800 transition-colors\"\r\n >\r\n <svg className=\"w-5 h-5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n )}\r\n {children}\r\n </motion.div>\r\n </>\r\n )}\r\n </AnimatePresence>\r\n );\r\n}\r\n\r\nexport default Modal;\r\n","\"use client\";\r\n\r\nimport { useEffect } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface DrawerProps {\r\n isOpen: boolean;\r\n onClose: () => void;\r\n children: React.ReactNode;\r\n className?: string;\r\n position?: \"left\" | \"right\" | \"bottom\";\r\n}\r\n\r\nexport function Drawer({ isOpen, onClose, children, className, position = \"right\" }: DrawerProps) {\r\n useEffect(() => {\r\n const handleEscape = (e: KeyboardEvent) => {\r\n if (e.key === \"Escape\") onClose();\r\n };\r\n if (isOpen) {\r\n document.addEventListener(\"keydown\", handleEscape);\r\n document.body.style.overflow = \"hidden\";\r\n }\r\n return () => {\r\n document.removeEventListener(\"keydown\", handleEscape);\r\n document.body.style.overflow = \"unset\";\r\n };\r\n }, [isOpen, onClose]);\r\n\r\n const variants = {\r\n left: { initial: { x: \"-100%\" }, animate: { x: 0 }, exit: { x: \"-100%\" } },\r\n right: { initial: { x: \"100%\" }, animate: { x: 0 }, exit: { x: \"100%\" } },\r\n bottom: { initial: { y: \"100%\" }, animate: { y: 0 }, exit: { y: \"100%\" } },\r\n };\r\n\r\n const positionClasses = {\r\n left: \"left-0 top-0 h-full w-80\",\r\n right: \"right-0 top-0 h-full w-80\",\r\n bottom: \"bottom-0 left-0 right-0 h-auto max-h-[80vh]\",\r\n };\r\n\r\n return (\r\n <AnimatePresence>\r\n {isOpen && (\r\n <>\r\n <motion.div\r\n initial={{ opacity: 0 }}\r\n animate={{ opacity: 1 }}\r\n exit={{ opacity: 0 }}\r\n onClick={onClose}\r\n className=\"fixed inset-0 bg-black/50 z-50\"\r\n />\r\n <motion.div\r\n initial={variants[position].initial}\r\n animate={variants[position].animate}\r\n exit={variants[position].exit}\r\n transition={{ type: \"spring\", damping: 25, stiffness: 300 }}\r\n className={cn(\r\n \"fixed z-50 p-6\",\r\n \"bg-white dark:bg-zinc-900\",\r\n \"shadow-xl\",\r\n positionClasses[position],\r\n className\r\n )}\r\n >\r\n <button\r\n onClick={onClose}\r\n className=\"absolute top-4 right-4 p-1 rounded-lg hover:bg-zinc-100 dark:hover:bg-zinc-800 transition-colors\"\r\n >\r\n <svg className=\"w-5 h-5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n {children}\r\n </motion.div>\r\n </>\r\n )}\r\n </AnimatePresence>\r\n );\r\n}\r\n\r\nexport default Drawer;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface AlertProps {\r\n className?: string;\r\n close?: boolean;\r\n children?: React.ReactNode;\r\n onClose?: () => void;\r\n}\r\n\r\ninterface AlertIconProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\ninterface AlertTitleProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\ninterface AlertToolbarProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\nexport function Alert({ className = \"\", close = false, children, onClose }: AlertProps) {\r\n const [isVisible, setIsVisible] = React.useState(true);\r\n\r\n if (!isVisible) return null;\r\n\r\n const handleClose = () => {\r\n setIsVisible(false);\r\n onClose?.();\r\n };\r\n\r\n return (\r\n <div className={cn(\"min-h-[400px] w-full flex items-center justify-center p-4\", className)}>\r\n <div className=\"flex flex-col items-center w-full lg:max-w-[75%] gap-6\">\r\n <div className=\"relative flex items-center gap-3 rounded-lg border border-zinc-300 dark:border-zinc-700 bg-transparent px-4 py-3 shadow-sm w-full max-w-md transition-all duration-200\">\r\n {children}\r\n {close && (\r\n <button\r\n onClick={handleClose}\r\n className=\"absolute top-2 right-2 text-gray-500 hover:text-gray-700 dark:text-white/60 dark:hover:text-white transition-colors\"\r\n >\r\n <svg className=\"h-4 w-4\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport function AlertIcon({ children, className }: AlertIconProps) {\r\n return <div className={cn(\"text-primary flex-shrink-0\", className)}>{children}</div>;\r\n}\r\n\r\nexport function AlertTitle({ children, className }: AlertTitleProps) {\r\n return <span className={cn(\"text-foreground font-medium text-sm flex-1\", className)}>{children}</span>;\r\n}\r\n\r\nexport function AlertToolbar({ children, className }: AlertToolbarProps) {\r\n return <div className={cn(\"flex items-center gap-2\", className)}>{children}</div>;\r\n}\r\n","\"use client\";\r\n\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface TerminalProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n title?: string;\r\n}\r\n\r\ninterface TypingAnimationProps {\r\n children: string;\r\n className?: string;\r\n delay?: number;\r\n speed?: number;\r\n}\r\n\r\ninterface AnimatedSpanProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n delay?: number;\r\n}\r\n\r\nexport function Terminal({ children, className, title = \"Terminal\" }: TerminalProps) {\r\n return (\r\n <div\r\n className={cn(\r\n \"relative w-full max-w-2xl mx-auto bg-zinc-100 dark:bg-black rounded-lg overflow-hidden shadow-2xl\",\r\n \"border border-zinc-300 dark:border-gray-800\",\r\n className\r\n )}\r\n >\r\n <div className=\"flex items-center justify-between px-4 py-3 bg-zinc-200 dark:bg-gray-800 border-b border-zinc-300 dark:border-gray-700\">\r\n <div className=\"flex items-center space-x-2\">\r\n <div className=\"w-3 h-3 bg-red-500 rounded-full\"></div>\r\n <div className=\"w-3 h-3 bg-yellow-500 rounded-full\"></div>\r\n <div className=\"w-3 h-3 bg-green-500 rounded-full\"></div>\r\n </div>\r\n <div className=\"text-zinc-600 dark:text-gray-400 text-sm font-mono\">{title}</div>\r\n <div className=\"w-16\"></div>\r\n </div>\r\n\r\n <div className=\"p-4 font-mono text-sm leading-relaxed space-y-2 min-h-[300px] bg-zinc-100 dark:bg-black text-zinc-900 dark:text-white\">\r\n {children}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport function TypingAnimation({ children, className, delay = 0, speed = 50 }: TypingAnimationProps) {\r\n const [displayedText, setDisplayedText] = useState(\"\");\r\n const [isComplete, setIsComplete] = useState(false);\r\n\r\n useEffect(() => {\r\n const timer = setTimeout(() => {\r\n let currentIndex = 0;\r\n const interval = setInterval(() => {\r\n if (currentIndex <= children.length) {\r\n setDisplayedText(children.slice(0, currentIndex));\r\n currentIndex++;\r\n } else {\r\n setIsComplete(true);\r\n clearInterval(interval);\r\n }\r\n }, speed);\r\n\r\n return () => clearInterval(interval);\r\n }, delay);\r\n\r\n return () => clearTimeout(timer);\r\n }, [children, delay, speed]);\r\n\r\n return (\r\n <div className={cn(\"flex items-center\", className)}>\r\n <span>{displayedText}</span>\r\n {!isComplete && <span className=\"ml-1 animate-pulse bg-white w-2 h-4 inline-block\"></span>}\r\n </div>\r\n );\r\n}\r\n\r\nexport function AnimatedSpan({ children, className, delay = 0 }: AnimatedSpanProps) {\r\n const [isVisible, setIsVisible] = useState(false);\r\n\r\n useEffect(() => {\r\n const timer = setTimeout(() => {\r\n setIsVisible(true);\r\n }, delay);\r\n\r\n return () => clearTimeout(timer);\r\n }, [delay]);\r\n\r\n return (\r\n <div\r\n className={cn(\r\n \"transition-all duration-500 transform\",\r\n isVisible ? \"opacity-100 translate-y-0\" : \"opacity-0 translate-y-2\",\r\n className\r\n )}\r\n >\r\n {children}\r\n </div>\r\n );\r\n}\r\n","\"use client\";\r\n\r\nimport React, { useState, Children, useRef, useLayoutEffect, HTMLAttributes, ReactNode } from \"react\";\r\nimport { motion, AnimatePresence, Variants } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\nexport interface StepperProps extends HTMLAttributes<HTMLDivElement> {\r\n children: ReactNode;\r\n initialStep?: number;\r\n onStepChange?: (step: number) => void;\r\n onFinalStepCompleted?: () => void;\r\n backButtonText?: string;\r\n nextButtonText?: string;\r\n disableStepIndicators?: boolean;\r\n}\r\n\r\nexport function Stepper({\r\n children,\r\n initialStep = 1,\r\n onStepChange = () => {},\r\n onFinalStepCompleted = () => {},\r\n backButtonText = \"Back\",\r\n nextButtonText = \"Continue\",\r\n disableStepIndicators = false,\r\n className,\r\n ...rest\r\n}: StepperProps) {\r\n const [currentStep, setCurrentStep] = useState<number>(initialStep);\r\n const [direction, setDirection] = useState<number>(0);\r\n const stepsArray = Children.toArray(children);\r\n const totalSteps = stepsArray.length;\r\n const isCompleted = currentStep > totalSteps;\r\n const isLastStep = currentStep === totalSteps;\r\n\r\n const updateStep = (newStep: number) => {\r\n setCurrentStep(newStep);\r\n if (newStep > totalSteps) {\r\n onFinalStepCompleted();\r\n } else {\r\n onStepChange(newStep);\r\n }\r\n };\r\n\r\n const handleBack = () => {\r\n if (currentStep > 1) {\r\n setDirection(-1);\r\n updateStep(currentStep - 1);\r\n }\r\n };\r\n\r\n const handleNext = () => {\r\n if (!isLastStep) {\r\n setDirection(1);\r\n updateStep(currentStep + 1);\r\n }\r\n };\r\n\r\n const handleComplete = () => {\r\n setDirection(1);\r\n updateStep(totalSteps + 1);\r\n };\r\n\r\n return (\r\n <div className={cn(\"w-full max-w-md mx-auto\", className)} {...rest}>\r\n <div className=\"flex items-center justify-between mb-8\">\r\n {stepsArray.map((_, index) => {\r\n const stepNumber = index + 1;\r\n const isNotLastStep = index < totalSteps - 1;\r\n return (\r\n <React.Fragment key={stepNumber}>\r\n <StepIndicator\r\n step={stepNumber}\r\n disableStepIndicators={disableStepIndicators}\r\n currentStep={currentStep}\r\n onClickStep={(clicked) => {\r\n setDirection(clicked > currentStep ? 1 : -1);\r\n updateStep(clicked);\r\n }}\r\n />\r\n {isNotLastStep && <StepConnector isComplete={currentStep > stepNumber} />}\r\n </React.Fragment>\r\n );\r\n })}\r\n </div>\r\n\r\n <StepContentWrapper isCompleted={isCompleted} currentStep={currentStep} direction={direction}>\r\n {stepsArray[currentStep - 1]}\r\n </StepContentWrapper>\r\n\r\n {!isCompleted && (\r\n <div className={cn(\"flex mt-8\", currentStep !== 1 ? \"justify-between\" : \"justify-end\")}>\r\n {currentStep !== 1 && (\r\n <button\r\n onClick={handleBack}\r\n className=\"px-4 py-2 text-sm font-medium text-zinc-400 hover:text-white transition-colors rounded-lg hover:bg-zinc-800\"\r\n >\r\n {backButtonText}\r\n </button>\r\n )}\r\n <button\r\n onClick={isLastStep ? handleComplete : handleNext}\r\n className=\"px-4 py-2 text-sm font-medium bg-white text-black rounded-lg hover:bg-zinc-200 transition-colors\"\r\n >\r\n {isLastStep ? \"Complete\" : nextButtonText}\r\n </button>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\ninterface StepContentWrapperProps {\r\n isCompleted: boolean;\r\n currentStep: number;\r\n direction: number;\r\n children: ReactNode;\r\n}\r\n\r\nfunction StepContentWrapper({ isCompleted, currentStep, direction, children }: StepContentWrapperProps) {\r\n const [parentHeight, setParentHeight] = useState<number>(0);\r\n\r\n return (\r\n <motion.div\r\n className=\"relative overflow-hidden\"\r\n animate={{ height: isCompleted ? 0 : parentHeight }}\r\n transition={{ type: \"spring\", duration: 0.4 }}\r\n >\r\n <AnimatePresence initial={false} mode=\"sync\" custom={direction}>\r\n {!isCompleted && (\r\n <SlideTransition key={currentStep} direction={direction} onHeightReady={(h) => setParentHeight(h)}>\r\n {children}\r\n </SlideTransition>\r\n )}\r\n </AnimatePresence>\r\n </motion.div>\r\n );\r\n}\r\n\r\ninterface SlideTransitionProps {\r\n children: ReactNode;\r\n direction: number;\r\n onHeightReady: (h: number) => void;\r\n}\r\n\r\nfunction SlideTransition({ children, direction, onHeightReady }: SlideTransitionProps) {\r\n const containerRef = useRef<HTMLDivElement | null>(null);\r\n\r\n useLayoutEffect(() => {\r\n if (containerRef.current) {\r\n onHeightReady(containerRef.current.offsetHeight);\r\n }\r\n }, [children, onHeightReady]);\r\n\r\n const stepVariants: Variants = {\r\n enter: (dir: number) => ({ x: dir >= 0 ? \"-100%\" : \"100%\", opacity: 0 }),\r\n center: { x: \"0%\", opacity: 1 },\r\n exit: (dir: number) => ({ x: dir >= 0 ? \"50%\" : \"-50%\", opacity: 0 }),\r\n };\r\n\r\n return (\r\n <motion.div\r\n ref={containerRef}\r\n custom={direction}\r\n variants={stepVariants}\r\n initial=\"enter\"\r\n animate=\"center\"\r\n exit=\"exit\"\r\n transition={{ duration: 0.4 }}\r\n className=\"absolute left-0 right-0 top-0\"\r\n >\r\n {children}\r\n </motion.div>\r\n );\r\n}\r\n\r\ninterface StepProps {\r\n children: ReactNode;\r\n}\r\n\r\nexport function Step({ children }: StepProps): React.JSX.Element {\r\n return <div className=\"p-4 rounded-lg bg-zinc-900 border border-zinc-800\">{children}</div>;\r\n}\r\n\r\ninterface StepIndicatorProps {\r\n step: number;\r\n currentStep: number;\r\n onClickStep: (step: number) => void;\r\n disableStepIndicators?: boolean;\r\n}\r\n\r\nfunction StepIndicator({ step, currentStep, onClickStep, disableStepIndicators }: StepIndicatorProps) {\r\n const status = currentStep === step ? \"active\" : currentStep < step ? \"inactive\" : \"complete\";\r\n\r\n const handleClick = () => {\r\n if (step !== currentStep && !disableStepIndicators) {\r\n onClickStep(step);\r\n }\r\n };\r\n\r\n return (\r\n <motion.button\r\n onClick={handleClick}\r\n disabled={disableStepIndicators}\r\n className={cn(\r\n \"relative flex items-center justify-center w-10 h-10 rounded-full text-sm font-medium transition-all\",\r\n status === \"inactive\" && \"bg-zinc-800 text-zinc-500 border border-zinc-700\",\r\n status === \"active\" && \"bg-white text-black border-2 border-white\",\r\n status === \"complete\" && \"bg-white text-black border-2 border-white\",\r\n !disableStepIndicators && \"cursor-pointer hover:opacity-80\"\r\n )}\r\n animate={status}\r\n initial={false}\r\n >\r\n {status === \"complete\" ? (\r\n <svg className=\"w-5 h-5\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={2.5}>\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M5 13l4 4L19 7\" />\r\n </svg>\r\n ) : (\r\n <span>{step}</span>\r\n )}\r\n </motion.button>\r\n );\r\n}\r\n\r\ninterface StepConnectorProps {\r\n isComplete: boolean;\r\n}\r\n\r\nfunction StepConnector({ isComplete }: StepConnectorProps) {\r\n return (\r\n <div className=\"flex-1 h-[2px] mx-2 bg-zinc-800 rounded-full overflow-hidden\">\r\n <motion.div\r\n className=\"h-full bg-white rounded-full\"\r\n initial={{ width: 0 }}\r\n animate={{ width: isComplete ? \"100%\" : \"0%\" }}\r\n transition={{ duration: 0.4 }}\r\n />\r\n </div>\r\n );\r\n}\r\n","\"use client\";\r\n\r\nimport React, { createContext, forwardRef, useCallback, useContext, useState } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface TreeDataItem {\r\n id: string;\r\n name: string;\r\n icon?: React.ReactNode;\r\n children?: TreeDataItem[];\r\n isSelectable?: boolean;\r\n}\r\n\r\ntype TreeProps = React.HTMLAttributes<HTMLDivElement> & {\r\n data?: TreeDataItem[] | TreeDataItem;\r\n initialSelectedId?: string;\r\n onSelectChange?: (item: TreeDataItem | undefined) => void;\r\n initialExpandedItems?: string[];\r\n elements?: TreeDataItem[];\r\n};\r\n\r\nconst TreeContext = createContext<{\r\n selectedId: string | undefined;\r\n expandedItems: string[];\r\n handleExpand: (id: string) => void;\r\n handleSelect: (id: string) => void;\r\n data: TreeDataItem[] | TreeDataItem;\r\n} | null>(null);\r\n\r\nconst useTree = () => {\r\n const context = useContext(TreeContext);\r\n if (!context) {\r\n throw new Error(\"useTree must be used within a TreeProvider\");\r\n }\r\n return context;\r\n};\r\n\r\nconst Tree = forwardRef<HTMLDivElement, TreeProps>(\r\n ({ data, initialSelectedId, onSelectChange, initialExpandedItems = [], elements, className, ...props }, ref) => {\r\n const [selectedId, setSelectedId] = useState<string | undefined>(initialSelectedId);\r\n const [expandedItems, setExpandedItems] = useState<string[]>(initialExpandedItems);\r\n\r\n const handleExpand = useCallback((id: string) => {\r\n setExpandedItems((prev) => {\r\n if (prev.includes(id)) {\r\n return prev.filter((item) => item !== id);\r\n }\r\n return [...prev, id];\r\n });\r\n }, []);\r\n\r\n const handleSelect = useCallback(\r\n (id: string) => {\r\n const treeData = data || elements || [];\r\n const dataArray = Array.isArray(treeData) ? treeData : [treeData];\r\n\r\n const findItem = (items: TreeDataItem[]): TreeDataItem | undefined => {\r\n for (const item of items) {\r\n if (item.id === id) return item;\r\n if (item.children) {\r\n const found = findItem(item.children);\r\n if (found) return found;\r\n }\r\n }\r\n };\r\n\r\n const selectedItem = findItem(dataArray);\r\n if (selectedItem?.isSelectable) {\r\n setSelectedId(id);\r\n onSelectChange?.(selectedItem);\r\n }\r\n },\r\n [data, elements, onSelectChange]\r\n );\r\n\r\n const value = {\r\n selectedId,\r\n expandedItems,\r\n handleExpand,\r\n handleSelect,\r\n data: data || elements || [],\r\n };\r\n\r\n return (\r\n <TreeContext.Provider value={value}>\r\n <div className={cn(\"relative overflow-hidden\", className)} ref={ref} {...props}>\r\n {React.Children.map(props.children, (child) => child)}\r\n </div>\r\n </TreeContext.Provider>\r\n );\r\n }\r\n);\r\n\r\nTree.displayName = \"Tree\";\r\n\r\nconst Folder = forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement> & {\r\n element: string;\r\n value: string;\r\n isSelectable?: boolean;\r\n }\r\n>(({ className, element, value, isSelectable = true, children, ...props }, ref) => {\r\n const { selectedId, expandedItems, handleExpand, handleSelect } = useTree();\r\n\r\n return (\r\n <div ref={ref} className=\"relative\" {...props}>\r\n <div\r\n className={cn(\r\n \"flex cursor-pointer items-center gap-1 rounded-md px-2 py-1 text-sm hover:bg-muted\",\r\n selectedId === value && \"bg-muted\",\r\n className\r\n )}\r\n onClick={() => {\r\n handleExpand(value);\r\n if (isSelectable) {\r\n handleSelect(value);\r\n }\r\n }}\r\n >\r\n <svg\r\n className={cn(\"h-4 w-4 shrink-0 transition-transform duration-200\", expandedItems.includes(value) && \"rotate-90\")}\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n >\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M9 5l7 7-7 7\" />\r\n </svg>\r\n <svg className=\"h-4 w-4 shrink-0\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\r\n <path\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n strokeWidth={2}\r\n d=\"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z\"\r\n />\r\n </svg>\r\n <span className=\"truncate\">{element}</span>\r\n </div>\r\n {expandedItems.includes(value) && <div className=\"ml-4 border-l border-muted pl-2\">{children}</div>}\r\n </div>\r\n );\r\n});\r\n\r\nFolder.displayName = \"Folder\";\r\n\r\nconst File = forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement> & {\r\n value: string;\r\n isSelectable?: boolean;\r\n }\r\n>(({ className, value, isSelectable = true, children, ...props }, ref) => {\r\n const { selectedId, handleSelect } = useTree();\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className={cn(\r\n \"flex cursor-pointer items-center gap-1 rounded-md px-2 py-1 text-sm hover:bg-muted\",\r\n selectedId === value && \"bg-muted\",\r\n className\r\n )}\r\n onClick={() => isSelectable && handleSelect(value)}\r\n {...props}\r\n >\r\n <svg className=\"h-4 w-4 shrink-0\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\r\n <path\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n strokeWidth={2}\r\n d=\"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z\"\r\n />\r\n </svg>\r\n <div className=\"truncate\">{children}</div>\r\n </div>\r\n );\r\n});\r\n\r\nFile.displayName = \"File\";\r\n\r\nexport { Tree, Folder, File, type TreeDataItem };\r\n","\"use client\";\r\n\r\nimport { MotionValue, motion, useSpring, useTransform } from \"framer-motion\";\r\nimport { useEffect } from \"react\";\r\n\r\ninterface NumberProps {\r\n mv: MotionValue<number>;\r\n number: number;\r\n height: number;\r\n}\r\n\r\nfunction Number({ mv, number, height }: NumberProps) {\r\n const y = useTransform(mv, (latest) => {\r\n const placeValue = latest % 10;\r\n let offset = (10 + number - placeValue) % 10;\r\n let memo = offset * height;\r\n if (offset > 5) {\r\n memo -= 10 * height;\r\n }\r\n return memo;\r\n });\r\n\r\n return (\r\n <motion.span style={{ y, position: \"absolute\", inset: 0, display: \"flex\", justifyContent: \"center\" }}>\r\n {number}\r\n </motion.span>\r\n );\r\n}\r\n\r\ninterface DigitProps {\r\n place: number;\r\n value: number;\r\n height: number;\r\n digitStyle?: React.CSSProperties;\r\n}\r\n\r\nfunction Digit({ place, value, height, digitStyle }: DigitProps) {\r\n const valueRoundedToPlace = Math.floor(value / place);\r\n const animatedValue = useSpring(valueRoundedToPlace, { stiffness: 200, damping: 25 });\r\n\r\n useEffect(() => {\r\n animatedValue.set(valueRoundedToPlace);\r\n }, [animatedValue, valueRoundedToPlace]);\r\n\r\n return (\r\n <div style={{ height, position: \"relative\", overflow: \"hidden\", ...digitStyle }}>\r\n {Array.from({ length: 10 }, (_, i) => (\r\n <Number key={i} mv={animatedValue} number={i} height={height} />\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport interface CounterProps {\r\n value: number;\r\n fontSize?: number;\r\n padding?: number;\r\n places?: number[];\r\n gap?: number;\r\n textColor?: string;\r\n fontWeight?: React.CSSProperties[\"fontWeight\"];\r\n containerStyle?: React.CSSProperties;\r\n digitStyle?: React.CSSProperties;\r\n}\r\n\r\nexport function Counter({\r\n value,\r\n fontSize = 100,\r\n padding = 0,\r\n places = [100, 10, 1],\r\n gap = 8,\r\n textColor = \"#000000\",\r\n fontWeight = 900,\r\n containerStyle,\r\n digitStyle,\r\n}: CounterProps) {\r\n const height = fontSize + padding;\r\n\r\n return (\r\n <div style={{ display: \"flex\", gap, fontSize, color: textColor, fontWeight, ...containerStyle }}>\r\n {places.map((place) => (\r\n <Digit key={place} place={place} value={value} height={height} digitStyle={digitStyle} />\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport default Counter;\r\n","\"use client\";\r\n\r\nimport React, { useState, useRef } from \"react\";\r\nimport { AnimatePresence, motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface ToolbarItem {\r\n id: string;\r\n title: string;\r\n icon: React.ReactNode;\r\n}\r\n\r\ninterface ToolbarProps {\r\n className?: string;\r\n items: ToolbarItem[];\r\n defaultSelected?: string;\r\n onItemClick?: (itemId: string) => void;\r\n}\r\n\r\nconst buttonVariants = {\r\n initial: { gap: 0, paddingLeft: \".5rem\", paddingRight: \".5rem\" },\r\n animate: (isSelected: boolean) => ({\r\n gap: isSelected ? \".5rem\" : 0,\r\n paddingLeft: isSelected ? \"1rem\" : \".5rem\",\r\n paddingRight: isSelected ? \"1rem\" : \".5rem\",\r\n }),\r\n};\r\n\r\nconst spanVariants = {\r\n initial: { width: 0, opacity: 0 },\r\n animate: { width: \"auto\", opacity: 1 },\r\n exit: { width: 0, opacity: 0 },\r\n};\r\n\r\nconst transition = { type: \"spring\", bounce: 0, duration: 0.4 };\r\n\r\nexport function Toolbar({ className, items, defaultSelected, onItemClick }: ToolbarProps) {\r\n const [selected, setSelected] = useState<string | null>(defaultSelected || null);\r\n\r\n const handleItemClick = (itemId: string) => {\r\n setSelected(selected === itemId ? null : itemId);\r\n onItemClick?.(itemId);\r\n };\r\n\r\n return (\r\n <div\r\n className={cn(\r\n \"flex items-center gap-3 p-2 relative\",\r\n \"bg-background border rounded-xl transition-all duration-200\",\r\n className\r\n )}\r\n >\r\n <div className=\"flex items-center gap-2\">\r\n {items.map((item) => (\r\n <motion.button\r\n key={item.id}\r\n variants={buttonVariants}\r\n initial={false}\r\n animate=\"animate\"\r\n custom={selected === item.id}\r\n onClick={() => handleItemClick(item.id)}\r\n transition={transition}\r\n className={cn(\r\n \"relative flex items-center rounded-none px-3 py-2\",\r\n \"text-sm font-medium transition-colors duration-300\",\r\n selected === item.id\r\n ? \"bg-[#1F9CFE] text-white rounded-lg\"\r\n : \"text-muted-foreground hover:bg-muted hover:text-foreground\"\r\n )}\r\n >\r\n {item.icon}\r\n <AnimatePresence initial={false}>\r\n {selected === item.id && (\r\n <motion.span\r\n variants={spanVariants}\r\n initial=\"initial\"\r\n animate=\"animate\"\r\n exit=\"exit\"\r\n transition={transition}\r\n className=\"overflow-hidden\"\r\n >\r\n {item.title}\r\n </motion.span>\r\n )}\r\n </AnimatePresence>\r\n </motion.button>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default Toolbar;\r\n","\"use client\";\r\n\r\nimport React, { useRef } from \"react\";\r\nimport { motion, useMotionValue, useSpring, useTransform } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\nexport interface DockProps {\r\n className?: string;\r\n children: React.ReactNode;\r\n direction?: \"top\" | \"middle\" | \"bottom\";\r\n}\r\n\r\nexport function Dock({ className, children, direction = \"middle\" }: DockProps) {\r\n const directionClasses = {\r\n top: \"items-start\",\r\n middle: \"items-center\",\r\n bottom: \"items-end\",\r\n };\r\n\r\n return (\r\n <motion.div\r\n className={cn(\r\n \"mx-auto w-max mt-8 h-[58px] p-2 flex gap-2 rounded-2xl border\",\r\n \"supports-backdrop-blur:bg-white/10 supports-backdrop-blur:dark:bg-black/10 backdrop-blur-md\",\r\n \"border-gray-200 bg-gray-50/80 dark:border-gray-800 dark:bg-gray-900/80\",\r\n directionClasses[direction],\r\n className\r\n )}\r\n >\r\n {children}\r\n </motion.div>\r\n );\r\n}\r\n\r\nexport interface DockIconProps {\r\n size?: number;\r\n magnification?: number;\r\n distance?: number;\r\n children?: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\nexport function DockIcon({\r\n size = 40,\r\n magnification = 60,\r\n distance = 140,\r\n children,\r\n className,\r\n}: DockIconProps) {\r\n const ref = useRef<HTMLDivElement>(null);\r\n const mouseX = useMotionValue(Infinity);\r\n\r\n const width = useSpring(\r\n useTransform(mouseX, [-distance, 0, distance], [size, magnification, size]),\r\n { mass: 0.1, stiffness: 150, damping: 12 }\r\n );\r\n\r\n return (\r\n <motion.div\r\n ref={ref}\r\n style={{ width }}\r\n onMouseMove={(e) => mouseX.set(e.pageX - ref.current!.offsetLeft - width.get() / 2)}\r\n onMouseLeave={() => mouseX.set(Infinity)}\r\n className={cn(\"flex aspect-square cursor-pointer items-center justify-center rounded-full\", className)}\r\n >\r\n {children}\r\n </motion.div>\r\n );\r\n}\r\n","\"use client\";\r\n\r\nimport { forwardRef } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {\r\n label?: string;\r\n error?: string;\r\n icon?: React.ReactNode;\r\n}\r\n\r\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\r\n ({ className, label, error, icon, ...props }, ref) => {\r\n return (\r\n <div className=\"w-full\">\r\n {label && (\r\n <label className=\"block text-sm font-medium text-zinc-700 dark:text-zinc-300 mb-1\">\r\n {label}\r\n </label>\r\n )}\r\n <div className=\"relative\">\r\n {icon && (\r\n <div className=\"absolute left-3 top-1/2 -translate-y-1/2 text-zinc-400\">\r\n {icon}\r\n </div>\r\n )}\r\n <input\r\n ref={ref}\r\n className={cn(\r\n \"w-full px-4 py-2 rounded-lg\",\r\n \"bg-white dark:bg-zinc-900\",\r\n \"border border-zinc-300 dark:border-zinc-700\",\r\n \"text-zinc-900 dark:text-zinc-100\",\r\n \"placeholder:text-zinc-400 dark:placeholder:text-zinc-500\",\r\n \"focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent\",\r\n \"transition-all duration-200\",\r\n icon && \"pl-10\",\r\n error && \"border-red-500 focus:ring-red-500\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n </div>\r\n {error && <p className=\"mt-1 text-sm text-red-500\">{error}</p>}\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nInput.displayName = \"Input\";\r\n\r\nexport default Input;\r\n","\"use client\";\r\n\r\nimport { forwardRef } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\r\n label?: string;\r\n error?: string;\r\n}\r\n\r\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(\r\n ({ className, label, error, ...props }, ref) => {\r\n return (\r\n <div className=\"w-full\">\r\n {label && (\r\n <label className=\"block text-sm font-medium text-zinc-700 dark:text-zinc-300 mb-1\">\r\n {label}\r\n </label>\r\n )}\r\n <textarea\r\n ref={ref}\r\n className={cn(\r\n \"w-full px-4 py-2 rounded-lg min-h-[100px] resize-y\",\r\n \"bg-white dark:bg-zinc-900\",\r\n \"border border-zinc-300 dark:border-zinc-700\",\r\n \"text-zinc-900 dark:text-zinc-100\",\r\n \"placeholder:text-zinc-400 dark:placeholder:text-zinc-500\",\r\n \"focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent\",\r\n \"transition-all duration-200\",\r\n error && \"border-red-500 focus:ring-red-500\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n {error && <p className=\"mt-1 text-sm text-red-500\">{error}</p>}\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nTextarea.displayName = \"Textarea\";\r\n\r\nexport default Textarea;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface CheckboxProps {\r\n checked?: boolean;\r\n onChange?: (checked: boolean) => void;\r\n label?: string;\r\n disabled?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport function Checkbox({ checked = false, onChange, label, disabled = false, className }: CheckboxProps) {\r\n return (\r\n <label\r\n className={cn(\r\n \"inline-flex items-center gap-2 cursor-pointer\",\r\n disabled && \"opacity-50 cursor-not-allowed\",\r\n className\r\n )}\r\n >\r\n <button\r\n type=\"button\"\r\n role=\"checkbox\"\r\n aria-checked={checked}\r\n disabled={disabled}\r\n onClick={() => onChange?.(!checked)}\r\n className={cn(\r\n \"w-5 h-5 rounded border-2 flex items-center justify-center transition-colors\",\r\n checked\r\n ? \"bg-blue-500 border-blue-500\"\r\n : \"bg-transparent border-zinc-300 dark:border-zinc-600\"\r\n )}\r\n >\r\n <motion.svg\r\n initial={false}\r\n animate={{ scale: checked ? 1 : 0, opacity: checked ? 1 : 0 }}\r\n transition={{ duration: 0.15 }}\r\n className=\"w-3 h-3 text-white\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n viewBox=\"0 0 24 24\"\r\n >\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={3} d=\"M5 13l4 4L19 7\" />\r\n </motion.svg>\r\n </button>\r\n {label && <span className=\"text-sm\">{label}</span>}\r\n </label>\r\n );\r\n}\r\n\r\nexport default Checkbox;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface RadioOption {\r\n value: string;\r\n label: string;\r\n}\r\n\r\ninterface RadioGroupProps {\r\n options: RadioOption[];\r\n value?: string;\r\n onChange?: (value: string) => void;\r\n name: string;\r\n className?: string;\r\n direction?: \"horizontal\" | \"vertical\";\r\n}\r\n\r\nexport function RadioGroup({\r\n options,\r\n value,\r\n onChange,\r\n name,\r\n className,\r\n direction = \"vertical\",\r\n}: RadioGroupProps) {\r\n return (\r\n <div\r\n className={cn(\r\n \"flex gap-3\",\r\n direction === \"vertical\" ? \"flex-col\" : \"flex-row flex-wrap\",\r\n className\r\n )}\r\n >\r\n {options.map((option) => (\r\n <label\r\n key={option.value}\r\n className=\"inline-flex items-center gap-2 cursor-pointer\"\r\n >\r\n <button\r\n type=\"button\"\r\n role=\"radio\"\r\n aria-checked={value === option.value}\r\n onClick={() => onChange?.(option.value)}\r\n className={cn(\r\n \"w-5 h-5 rounded-full border-2 flex items-center justify-center transition-colors\",\r\n value === option.value\r\n ? \"border-blue-500\"\r\n : \"border-zinc-300 dark:border-zinc-600\"\r\n )}\r\n >\r\n <motion.div\r\n initial={false}\r\n animate={{\r\n scale: value === option.value ? 1 : 0,\r\n opacity: value === option.value ? 1 : 0,\r\n }}\r\n transition={{ duration: 0.15 }}\r\n className=\"w-2.5 h-2.5 rounded-full bg-blue-500\"\r\n />\r\n </button>\r\n <span className=\"text-sm\">{option.label}</span>\r\n </label>\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport default RadioGroup;\r\n","\"use client\";\r\n\r\nimport { useState, useRef, useEffect } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface SelectOption {\r\n value: string;\r\n label: string;\r\n}\r\n\r\ninterface SelectProps {\r\n options: SelectOption[];\r\n value?: string;\r\n onChange?: (value: string) => void;\r\n placeholder?: string;\r\n className?: string;\r\n label?: string;\r\n}\r\n\r\nexport function Select({ options, value, onChange, placeholder = \"Select...\", className, label }: SelectProps) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const ref = useRef<HTMLDivElement>(null);\r\n\r\n const selectedOption = options.find((opt) => opt.value === value);\r\n\r\n useEffect(() => {\r\n const handleClickOutside = (e: MouseEvent) => {\r\n if (ref.current && !ref.current.contains(e.target as Node)) {\r\n setIsOpen(false);\r\n }\r\n };\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => document.removeEventListener(\"mousedown\", handleClickOutside);\r\n }, []);\r\n\r\n return (\r\n <div className=\"w-full\">\r\n {label && (\r\n <label className=\"block text-sm font-medium text-zinc-700 dark:text-zinc-300 mb-1\">\r\n {label}\r\n </label>\r\n )}\r\n <div ref={ref} className={cn(\"relative\", className)}>\r\n <button\r\n type=\"button\"\r\n onClick={() => setIsOpen(!isOpen)}\r\n className={cn(\r\n \"w-full px-4 py-2 rounded-lg text-left\",\r\n \"bg-white dark:bg-zinc-900\",\r\n \"border border-zinc-300 dark:border-zinc-700\",\r\n \"flex items-center justify-between\",\r\n \"focus:outline-none focus:ring-2 focus:ring-blue-500\",\r\n \"transition-all duration-200\"\r\n )}\r\n >\r\n <span className={selectedOption ? \"\" : \"text-zinc-400\"}>\r\n {selectedOption?.label || placeholder}\r\n </span>\r\n <motion.svg\r\n animate={{ rotate: isOpen ? 180 : 0 }}\r\n transition={{ duration: 0.2 }}\r\n className=\"w-5 h-5\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n viewBox=\"0 0 24 24\"\r\n >\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M19 9l-7 7-7-7\" />\r\n </motion.svg>\r\n </button>\r\n <AnimatePresence>\r\n {isOpen && (\r\n <motion.div\r\n initial={{ opacity: 0, y: -10 }}\r\n animate={{ opacity: 1, y: 0 }}\r\n exit={{ opacity: 0, y: -10 }}\r\n transition={{ duration: 0.15 }}\r\n className={cn(\r\n \"absolute z-50 w-full mt-1 rounded-lg overflow-hidden\",\r\n \"bg-white dark:bg-zinc-900\",\r\n \"border border-zinc-300 dark:border-zinc-700\",\r\n \"shadow-lg\"\r\n )}\r\n >\r\n {options.map((option) => (\r\n <button\r\n key={option.value}\r\n type=\"button\"\r\n onClick={() => {\r\n onChange?.(option.value);\r\n setIsOpen(false);\r\n }}\r\n className={cn(\r\n \"w-full px-4 py-2 text-left\",\r\n \"hover:bg-zinc-100 dark:hover:bg-zinc-800\",\r\n \"transition-colors\",\r\n value === option.value && \"bg-blue-50 dark:bg-blue-900/20 text-blue-600\"\r\n )}\r\n >\r\n {option.label}\r\n </button>\r\n ))}\r\n </motion.div>\r\n )}\r\n </AnimatePresence>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default Select;\r\n","\"use client\";\r\n\r\nimport { useState, useRef, useEffect } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface InputOTPProps {\r\n maxLength?: number;\r\n onComplete?: (value: string) => void;\r\n onChange?: (value: string) => void;\r\n className?: string;\r\n}\r\n\r\nexport function InputOTP({\r\n maxLength = 6,\r\n onComplete,\r\n onChange,\r\n className = \"\",\r\n}: InputOTPProps) {\r\n const [values, setValues] = useState<string[]>(new Array(maxLength).fill(\"\"));\r\n const inputRefs = useRef<(HTMLInputElement | null)[]>([]);\r\n\r\n useEffect(() => {\r\n const currentValue = values.join(\"\");\r\n onChange?.(currentValue);\r\n\r\n if (currentValue.length === maxLength) {\r\n onComplete?.(currentValue);\r\n }\r\n }, [values, maxLength, onChange, onComplete]);\r\n\r\n const handleChange = (index: number, value: string) => {\r\n if (value.length > 1) {\r\n const pastedValues = value.slice(0, maxLength).split(\"\");\r\n const newValues = [...values];\r\n pastedValues.forEach((val, i) => {\r\n if (index + i < maxLength) {\r\n newValues[index + i] = val;\r\n }\r\n });\r\n setValues(newValues);\r\n\r\n const nextIndex = Math.min(index + pastedValues.length, maxLength - 1);\r\n inputRefs.current[nextIndex]?.focus();\r\n return;\r\n }\r\n\r\n if (/^\\d*$/.test(value)) {\r\n const newValues = [...values];\r\n newValues[index] = value;\r\n setValues(newValues);\r\n\r\n if (value && index < maxLength - 1) {\r\n inputRefs.current[index + 1]?.focus();\r\n }\r\n }\r\n };\r\n\r\n const handleKeyDown = (\r\n index: number,\r\n e: React.KeyboardEvent<HTMLInputElement>\r\n ) => {\r\n if (e.key === \"Backspace\") {\r\n if (!values[index] && index > 0) {\r\n inputRefs.current[index - 1]?.focus();\r\n } else {\r\n const newValues = [...values];\r\n newValues[index] = \"\";\r\n setValues(newValues);\r\n }\r\n } else if (e.key === \"ArrowLeft\" && index > 0) {\r\n inputRefs.current[index - 1]?.focus();\r\n } else if (e.key === \"ArrowRight\" && index < maxLength - 1) {\r\n inputRefs.current[index + 1]?.focus();\r\n }\r\n };\r\n\r\n const handleFocus = (index: number) => {\r\n inputRefs.current[index]?.select();\r\n };\r\n\r\n return (\r\n <div className={cn(\"flex items-center gap-2\", className)}>\r\n {values.map((value, index) => (\r\n <input\r\n key={index}\r\n ref={(el) => {\r\n inputRefs.current[index] = el;\r\n }}\r\n type=\"text\"\r\n inputMode=\"numeric\"\r\n maxLength={1}\r\n value={value}\r\n onChange={(e) => handleChange(index, e.target.value)}\r\n onKeyDown={(e) => handleKeyDown(index, e)}\r\n onFocus={() => handleFocus(index)}\r\n className={cn(\r\n \"w-12 h-12 text-center text-lg font-semibold\",\r\n \"border-2 border-zinc-300 dark:border-zinc-600 rounded-md\",\r\n \"focus:border-zinc-900 dark:focus:border-white focus:outline-none\",\r\n \"bg-white dark:bg-zinc-800 text-zinc-900 dark:text-white\",\r\n \"transition-colors\"\r\n )}\r\n />\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport default InputOTP;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface HamburgerBasicProps {\r\n className?: string;\r\n onChange?: (isOpen: boolean) => void;\r\n}\r\n\r\nexport function HamburgerBasic({ className, onChange }: HamburgerBasicProps) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const handleToggle = () => {\r\n const newState = !isOpen;\r\n setIsOpen(newState);\r\n onChange?.(newState);\r\n };\r\n\r\n return (\r\n <label\r\n className={cn(\r\n \"relative w-10 h-8 bg-transparent cursor-pointer block\",\r\n className\r\n )}\r\n htmlFor=\"burger-basic\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n id=\"burger-basic\"\r\n className=\"hidden\"\r\n checked={isOpen}\r\n onChange={handleToggle}\r\n />\r\n <span\r\n className={cn(\r\n \"block absolute h-1 w-full bg-black dark:bg-white rounded-lg opacity-100 left-0 transition-all duration-250 ease-in-out\",\r\n \"top-0 origin-left\",\r\n isOpen && \"rotate-45 top-0 left-1.5\"\r\n )}\r\n />\r\n <span\r\n className={cn(\r\n \"block absolute h-1 w-full bg-black dark:bg-white rounded-lg opacity-100 left-0 transition-all duration-250 ease-in-out\",\r\n \"top-1/2 -translate-y-1/2 origin-left\",\r\n isOpen && \"w-0 opacity-0\"\r\n )}\r\n />\r\n <span\r\n className={cn(\r\n \"block absolute h-1 w-full bg-black dark:bg-white rounded-lg opacity-100 left-0 transition-all duration-250 ease-in-out\",\r\n \"top-full -translate-y-full origin-left\",\r\n isOpen && \"-rotate-45 top-7 left-1.5\"\r\n )}\r\n />\r\n </label>\r\n );\r\n}\r\n\r\nexport default HamburgerBasic;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface HamburgerSpinProps {\r\n className?: string;\r\n onChange?: (isOpen: boolean) => void;\r\n}\r\n\r\nexport function HamburgerSpin({ className, onChange }: HamburgerSpinProps) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const handleToggle = () => {\r\n const newState = !isOpen;\r\n setIsOpen(newState);\r\n onChange?.(newState);\r\n };\r\n\r\n return (\r\n <div className={cn(\"inline-block\", className)}>\r\n <input\r\n type=\"checkbox\"\r\n id=\"checkbox-spin\"\r\n className=\"hidden\"\r\n checked={isOpen}\r\n onChange={handleToggle}\r\n />\r\n <label\r\n htmlFor=\"checkbox-spin\"\r\n className={cn(\r\n \"relative w-10 h-10 cursor-pointer flex flex-col items-center justify-center gap-2.5 transition-all duration-500\",\r\n isOpen && \"rotate-180\"\r\n )}\r\n >\r\n <div\r\n className={cn(\r\n \"w-full h-1 bg-black dark:bg-white rounded-md transition-all duration-500 origin-center\",\r\n isOpen && \"scale-x-[0.6] translate-y-[1px]\"\r\n )}\r\n />\r\n <div\r\n className={cn(\r\n \"w-full h-1 bg-black dark:bg-white rounded-md transition-all duration-500 origin-center\",\r\n isOpen && \"rotate-90 scale-x-[1.2]\"\r\n )}\r\n />\r\n <div\r\n className={cn(\r\n \"w-full h-1 bg-black dark:bg-white rounded-md transition-all duration-500 origin-center\",\r\n isOpen && \"scale-x-[0.6] -translate-y-[1px]\"\r\n )}\r\n />\r\n </label>\r\n </div>\r\n );\r\n}\r\n\r\nexport default HamburgerSpin;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\n\r\nfunction cn(...classes: (string | undefined | false)[]) {\r\n return classes.filter(Boolean).join(\" \");\r\n}\r\n\r\ninterface HamburgerMorphProps {\r\n className?: string;\r\n onChange?: (isOpen: boolean) => void;\r\n}\r\n\r\nexport function HamburgerMorph({ className, onChange }: HamburgerMorphProps) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const handleToggle = () => {\r\n const newState = !isOpen;\r\n setIsOpen(newState);\r\n onChange?.(newState);\r\n };\r\n\r\n return (\r\n <button\r\n onClick={handleToggle}\r\n className={cn(\r\n \"relative w-12 h-12 bg-transparent cursor-pointer flex flex-col items-center justify-center gap-2\",\r\n className\r\n )}\r\n aria-label=\"Toggle menu\"\r\n >\r\n <motion.div\r\n className=\"w-full h-1 bg-black dark:bg-white rounded-full origin-center\"\r\n animate={isOpen ? { scaleX: 0 } : { scaleX: 1 }}\r\n transition={{ duration: 0.3, type: \"spring\", stiffness: 400, damping: 30 }}\r\n />\r\n <motion.div\r\n className=\"w-full h-1 bg-black dark:bg-white rounded-full origin-center\"\r\n animate={isOpen ? { scaleX: 1.2 } : { scaleX: 1 }}\r\n transition={{ duration: 0.4, type: \"spring\", stiffness: 200, damping: 20 }}\r\n />\r\n <motion.div\r\n className=\"w-full h-1 bg-black dark:bg-white rounded-full origin-center\"\r\n animate={isOpen ? { scaleX: 0 } : { scaleX: 1 }}\r\n transition={{ duration: 0.3, delay: 0.05, type: \"spring\", stiffness: 400, damping: 30 }}\r\n />\r\n </button>\r\n );\r\n}\r\n\r\nexport default HamburgerMorph;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\n\r\nfunction cn(...classes: (string | undefined | false)[]) {\r\n return classes.filter(Boolean).join(\" \");\r\n}\r\n\r\ninterface HamburgerSpringProps {\r\n className?: string;\r\n onChange?: (isOpen: boolean) => void;\r\n}\r\n\r\nexport function HamburgerSpring({ className, onChange }: HamburgerSpringProps) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const handleToggle = () => {\r\n const newState = !isOpen;\r\n setIsOpen(newState);\r\n onChange?.(newState);\r\n };\r\n\r\n return (\r\n <button\r\n onClick={handleToggle}\r\n className={cn(\r\n \"relative w-12 h-12 bg-transparent cursor-pointer flex flex-col items-center justify-center gap-2 p-2\",\r\n className\r\n )}\r\n aria-label=\"Toggle menu\"\r\n >\r\n <motion.div\r\n className=\"w-full h-1 bg-black dark:bg-white rounded-full origin-center\"\r\n animate={isOpen ? { y: -12, rotation: 90, scaleX: 0.8 } : { y: 0, rotation: 0, scaleX: 1 }}\r\n transition={{ duration: 0.5, type: \"spring\", stiffness: 200, damping: 15 }}\r\n />\r\n <motion.div\r\n className=\"w-full h-1 bg-black dark:bg-white rounded-full origin-center\"\r\n animate={isOpen ? { rotation: 90, scaleX: 0.8 } : { rotation: 0, scaleX: 1 }}\r\n transition={{ duration: 0.5, type: \"spring\", stiffness: 200, damping: 15 }}\r\n />\r\n <motion.div\r\n className=\"w-full h-1 bg-black dark:bg-white rounded-full origin-center\"\r\n animate={isOpen ? { y: 12, rotation: 90, scaleX: 0.8 } : { y: 0, rotation: 0, scaleX: 1 }}\r\n transition={{ duration: 0.5, type: \"spring\", stiffness: 200, damping: 15 }}\r\n />\r\n </button>\r\n );\r\n}\r\n\r\nexport default HamburgerSpring;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\n\r\nfunction cn(...classes: (string | undefined | false)[]) {\r\n return classes.filter(Boolean).join(\" \");\r\n}\r\n\r\ninterface HamburgerWaveProps {\r\n className?: string;\r\n onChange?: (isOpen: boolean) => void;\r\n}\r\n\r\nexport function HamburgerWave({ className, onChange }: HamburgerWaveProps) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const handleToggle = () => {\r\n const newState = !isOpen;\r\n setIsOpen(newState);\r\n onChange?.(newState);\r\n };\r\n\r\n return (\r\n <button\r\n onClick={handleToggle}\r\n className={cn(\r\n \"relative w-12 h-12 bg-transparent cursor-pointer flex items-center justify-center\",\r\n className\r\n )}\r\n aria-label=\"Toggle menu\"\r\n >\r\n <div className=\"relative w-8 h-8\">\r\n <span\r\n className={cn(\r\n \"absolute w-2 h-2 bg-black dark:bg-white rounded-sm transition-all duration-300 ease-out\",\r\n isOpen \r\n ? \"top-0 left-0\" \r\n : \"top-0 left-1/2 -translate-x-1/2 w-8 h-0.5 rounded-full\"\r\n )}\r\n />\r\n <span\r\n className={cn(\r\n \"absolute w-2 h-2 bg-black dark:bg-white rounded-sm transition-all duration-300 ease-out delay-75\",\r\n isOpen \r\n ? \"top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2\" \r\n : \"top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-8 h-0.5 rounded-full\"\r\n )}\r\n />\r\n <span\r\n className={cn(\r\n \"absolute w-2 h-2 bg-black dark:bg-white rounded-sm transition-all duration-300 ease-out delay-150\",\r\n isOpen \r\n ? \"bottom-0 right-0\" \r\n : \"bottom-0 left-1/2 -translate-x-1/2 w-8 h-0.5 rounded-full\"\r\n )}\r\n />\r\n </div>\r\n </button>\r\n );\r\n}\r\n\r\nexport default HamburgerWave;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\n\r\nfunction cn(...classes: (string | undefined | false)[]) {\r\n return classes.filter(Boolean).join(\" \");\r\n}\r\n\r\ninterface HamburgerStaggerProps {\r\n className?: string;\r\n onChange?: (isOpen: boolean) => void;\r\n}\r\n\r\nexport function HamburgerStagger({ className, onChange }: HamburgerStaggerProps) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const handleToggle = () => {\r\n const newState = !isOpen;\r\n setIsOpen(newState);\r\n onChange?.(newState);\r\n };\r\n\r\n return (\r\n <label\r\n className={cn(\r\n \"w-12 h-8 cursor-pointer relative block\",\r\n className\r\n )}\r\n htmlFor=\"burger-stagger\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n id=\"burger-stagger\"\r\n className=\"hidden w-full h-full\"\r\n checked={isOpen}\r\n onChange={handleToggle}\r\n />\r\n <span\r\n className={cn(\r\n \"block absolute w-full rounded-lg border-[3px] border-black dark:border-white bg-black dark:bg-white transition-all duration-150 ease-in-out\",\r\n \"top-0 right-0 origin-right\",\r\n isOpen && \"w-1/2 top-1/2 -translate-y-[30%] rotate-[40deg]\"\r\n )}\r\n />\r\n <span\r\n className={cn(\r\n \"block absolute w-full rounded-lg border-[3px] border-black dark:border-white bg-black dark:bg-white transition-all duration-150 ease-in-out\",\r\n \"top-1/2 -translate-y-1/2\"\r\n )}\r\n />\r\n <span\r\n className={cn(\r\n \"block absolute w-full rounded-lg border-[3px] border-black dark:border-white bg-black dark:bg-white transition-all duration-150 ease-in-out\",\r\n \"top-full right-0 origin-right -translate-y-full\",\r\n isOpen && \"w-1/2 top-1/2 -translate-y-[70%] -rotate-[40deg]\"\r\n )}\r\n />\r\n </label>\r\n );\r\n}\r\n\r\nexport default HamburgerStagger;\r\n","\"use client\";\r\n\r\nimport { useState, useEffect, useRef } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\n\r\nfunction cn(...classes: (string | undefined | false)[]) {\r\n return classes.filter(Boolean).join(\" \");\r\n}\r\n\r\ninterface Hamburger3DProps {\r\n className?: string;\r\n onChange?: (isOpen: boolean) => void;\r\n}\r\n\r\nexport function Hamburger3D({ className, onChange }: Hamburger3DProps) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const handleToggle = () => {\r\n const newState = !isOpen;\r\n setIsOpen(newState);\r\n onChange?.(newState);\r\n };\r\n\r\n return (\r\n <button\r\n onClick={handleToggle}\r\n className={cn(\r\n \"relative w-12 h-12 bg-transparent cursor-pointer flex flex-col items-center justify-center gap-2 p-2\",\r\n className\r\n )}\r\n style={{ transformStyle: \"preserve-3d\", perspective: \"800px\" }}\r\n aria-label=\"Toggle menu\"\r\n >\r\n <motion.div\r\n className=\"w-8 h-0.5 bg-black dark:bg-white rounded\"\r\n animate={isOpen ? { \r\n width: 10, \r\n height: 10, \r\n borderRadius: \"50%\",\r\n y: -6 \r\n } : { \r\n width: 32, \r\n height: 2, \r\n borderRadius: \"4px\",\r\n y: 0 \r\n }}\r\n transition={{ duration: 0.3, ease: \"easeInOut\" }}\r\n />\r\n <motion.div\r\n className=\"w-8 h-0.5 bg-black dark:bg-white rounded\"\r\n animate={isOpen ? { \r\n width: 10, \r\n height: 10, \r\n borderRadius: \"50%\",\r\n x: -8,\r\n y: 6 \r\n } : { \r\n width: 32, \r\n height: 2, \r\n borderRadius: \"4px\",\r\n x: 0,\r\n y: 0 \r\n }}\r\n transition={{ duration: 0.35, ease: \"easeInOut\" }}\r\n />\r\n <motion.div\r\n className=\"w-8 h-0.5 bg-black dark:bg-white rounded\"\r\n animate={isOpen ? { \r\n width: 10, \r\n height: 10, \r\n borderRadius: \"50%\",\r\n x: 8,\r\n y: 6 \r\n } : { \r\n width: 32, \r\n height: 2, \r\n borderRadius: \"4px\",\r\n x: 0,\r\n y: 0 \r\n }}\r\n transition={{ duration: 0.4, ease: \"easeInOut\" }}\r\n />\r\n </button>\r\n );\r\n}\r\n\r\nexport default Hamburger3D;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\n\r\nfunction cn(...classes: (string | undefined | false)[]) {\r\n return classes.filter(Boolean).join(\" \");\r\n}\r\n\r\ninterface HamburgerElasticProps {\r\n className?: string;\r\n onChange?: (isOpen: boolean) => void;\r\n}\r\n\r\nexport function HamburgerElastic({ className, onChange }: HamburgerElasticProps) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const handleToggle = () => {\r\n const newState = !isOpen;\r\n setIsOpen(newState);\r\n onChange?.(newState);\r\n };\r\n\r\n return (\r\n <button\r\n onClick={handleToggle}\r\n className={cn(\r\n \"relative w-12 h-12 bg-transparent cursor-pointer flex flex-col items-center justify-center gap-2\",\r\n className\r\n )}\r\n aria-label=\"Toggle menu\"\r\n >\r\n <motion.div\r\n className=\"w-full h-1 bg-black dark:bg-white rounded-full origin-center\"\r\n animate={isOpen ? { rotateX: 90, y: 0, opacity: 0 } : { rotateX: 0, y: 0, opacity: 1 }}\r\n transition={{ duration: 0.3, type: \"spring\", stiffness: 300, damping: 30 }}\r\n />\r\n <motion.div\r\n className=\"w-full h-1 bg-black dark:bg-white rounded-full origin-center\"\r\n animate={isOpen ? { scaleY: 3 } : { scaleY: 1 }}\r\n transition={{ duration: 0.6, type: \"spring\", stiffness: 200, damping: 15 }}\r\n />\r\n <motion.div\r\n className=\"w-full h-1 bg-black dark:bg-white rounded-full origin-center\"\r\n animate={isOpen ? { rotateX: 90, y: 0, opacity: 0 } : { rotateX: 0, y: 0, opacity: 1 }}\r\n transition={{ duration: 0.3, type: \"spring\", stiffness: 300, damping: 30 }}\r\n />\r\n </button>\r\n );\r\n}\r\n\r\nexport default HamburgerElastic;\r\n","\"use client\";\r\n\r\nimport { useRef, useEffect, useCallback, ReactNode } from \"react\";\r\n\r\ninterface ClickSparkProps {\r\n sparkColor?: string;\r\n sparkSize?: number;\r\n sparkRadius?: number;\r\n sparkCount?: number;\r\n duration?: number;\r\n easing?: string;\r\n extraScale?: number;\r\n children: ReactNode;\r\n}\r\n\r\nexport function ClickSpark({\r\n sparkColor = \"#000000\",\r\n sparkSize = 10,\r\n sparkRadius = 15,\r\n sparkCount = 8,\r\n duration = 400,\r\n easing = \"ease-out\",\r\n extraScale = 1.0,\r\n children,\r\n}: ClickSparkProps) {\r\n const canvasRef = useRef<HTMLCanvasElement>(null);\r\n const sparksRef = useRef<\r\n Array<{\r\n x: number;\r\n y: number;\r\n angle: number;\r\n startTime: number;\r\n }>\r\n >([]);\r\n const startTimeRef = useRef<number | null>(null);\r\n\r\n useEffect(() => {\r\n const canvas = canvasRef.current;\r\n if (!canvas) return;\r\n\r\n const parent = canvas.parentElement;\r\n if (!parent) return;\r\n\r\n let resizeTimeout: ReturnType<typeof setTimeout>;\r\n\r\n const resizeCanvas = () => {\r\n const { width, height } = parent.getBoundingClientRect();\r\n if (canvas.width !== width || canvas.height !== height) {\r\n canvas.width = width;\r\n canvas.height = height;\r\n }\r\n };\r\n\r\n const handleResize = () => {\r\n clearTimeout(resizeTimeout);\r\n resizeTimeout = setTimeout(resizeCanvas, 100);\r\n };\r\n\r\n const ro = new ResizeObserver(handleResize);\r\n ro.observe(parent);\r\n\r\n resizeCanvas();\r\n\r\n return () => {\r\n ro.disconnect();\r\n clearTimeout(resizeTimeout);\r\n };\r\n }, []);\r\n\r\n const easeFunc = useCallback(\r\n (t: number) => {\r\n switch (easing) {\r\n case \"linear\":\r\n return t;\r\n case \"ease-in\":\r\n return t * t;\r\n case \"ease-in-out\":\r\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\r\n default:\r\n return t * (2 - t);\r\n }\r\n },\r\n [easing]\r\n );\r\n\r\n useEffect(() => {\r\n const canvas = canvasRef.current;\r\n if (!canvas) return;\r\n const ctx = canvas.getContext(\"2d\");\r\n if (!ctx) return;\r\n\r\n let animationId: number;\r\n\r\n const draw = (timestamp: number) => {\r\n if (!startTimeRef.current) {\r\n startTimeRef.current = timestamp;\r\n }\r\n ctx.clearRect(0, 0, canvas.width, canvas.height);\r\n\r\n sparksRef.current = sparksRef.current.filter((spark) => {\r\n const elapsed = timestamp - spark.startTime;\r\n if (elapsed >= duration) {\r\n return false;\r\n }\r\n\r\n const progress = elapsed / duration;\r\n const eased = easeFunc(progress);\r\n\r\n const distance = eased * sparkRadius * extraScale;\r\n const lineLength = sparkSize * (1 - eased);\r\n\r\n const x1 = spark.x + distance * Math.cos(spark.angle);\r\n const y1 = spark.y + distance * Math.sin(spark.angle);\r\n const x2 = spark.x + (distance + lineLength) * Math.cos(spark.angle);\r\n const y2 = spark.y + (distance + lineLength) * Math.sin(spark.angle);\r\n\r\n ctx.strokeStyle = sparkColor;\r\n ctx.lineWidth = 2;\r\n ctx.beginPath();\r\n ctx.moveTo(x1, y1);\r\n ctx.lineTo(x2, y2);\r\n ctx.stroke();\r\n\r\n return true;\r\n });\r\n\r\n animationId = requestAnimationFrame(draw);\r\n };\r\n\r\n animationId = requestAnimationFrame(draw);\r\n\r\n return () => {\r\n cancelAnimationFrame(animationId);\r\n };\r\n }, [sparkColor, sparkSize, sparkRadius, duration, easeFunc, extraScale]);\r\n\r\n const handleClick = (e: React.MouseEvent) => {\r\n const canvas = canvasRef.current;\r\n if (!canvas) return;\r\n const rect = canvas.getBoundingClientRect();\r\n const x = e.clientX - rect.left;\r\n const y = e.clientY - rect.top;\r\n\r\n const now = performance.now();\r\n const newSparks = Array.from({ length: sparkCount }, (_, i) => ({\r\n x,\r\n y,\r\n angle: (2 * Math.PI * i) / sparkCount,\r\n startTime: now,\r\n }));\r\n\r\n sparksRef.current.push(...newSparks);\r\n };\r\n\r\n return (\r\n <div\r\n style={{\r\n position: \"relative\",\r\n width: \"100%\",\r\n height: \"100%\",\r\n }}\r\n onClick={handleClick}\r\n >\r\n <canvas\r\n ref={canvasRef}\r\n style={{\r\n width: \"100%\",\r\n height: \"100%\",\r\n display: \"block\",\r\n userSelect: \"none\",\r\n position: \"absolute\",\r\n top: 0,\r\n left: 0,\r\n pointerEvents: \"none\",\r\n }}\r\n />\r\n {children}\r\n </div>\r\n );\r\n}\r\n\r\nexport default ClickSpark;\r\n","\"use client\";\r\n\r\nimport { useEffect, useState } from \"react\";\r\nimport { motion, useMotionValue, useSpring } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface SmoothCursorProps {\r\n className?: string;\r\n}\r\n\r\nexport function SmoothCursor({ className }: SmoothCursorProps) {\r\n const [isVisible, setIsVisible] = useState(false);\r\n const cursorX = useMotionValue(-100);\r\n const cursorY = useMotionValue(-100);\r\n\r\n const springConfig = { damping: 25, stiffness: 700 };\r\n const cursorXSpring = useSpring(cursorX, springConfig);\r\n const cursorYSpring = useSpring(cursorY, springConfig);\r\n\r\n useEffect(() => {\r\n const moveCursor = (e: MouseEvent) => {\r\n cursorX.set(e.clientX - 16);\r\n cursorY.set(e.clientY - 16);\r\n setIsVisible(true);\r\n };\r\n\r\n const hideCursor = () => {\r\n setIsVisible(false);\r\n };\r\n\r\n window.addEventListener(\"mousemove\", moveCursor);\r\n window.addEventListener(\"mouseleave\", hideCursor);\r\n\r\n return () => {\r\n window.removeEventListener(\"mousemove\", moveCursor);\r\n window.removeEventListener(\"mouseleave\", hideCursor);\r\n };\r\n }, [cursorX, cursorY]);\r\n\r\n return (\r\n <motion.div\r\n className={cn(\r\n \"pointer-events-none fixed left-0 top-0 z-50 h-8 w-8 rounded-full bg-zinc-400 mix-blend-difference\",\r\n isVisible ? \"opacity-100\" : \"opacity-0\",\r\n className\r\n )}\r\n style={{\r\n x: cursorXSpring,\r\n y: cursorYSpring,\r\n }}\r\n transition={{\r\n type: \"spring\",\r\n stiffness: 500,\r\n damping: 28,\r\n }}\r\n />\r\n );\r\n}\r\n\r\nexport default SmoothCursor;\r\n","\"use client\";\r\n\r\nimport { ReactNode } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface FloatEffectProps {\r\n children?: ReactNode;\r\n className?: string;\r\n duration?: number;\r\n distance?: number;\r\n}\r\n\r\nexport function FloatEffect({\r\n children,\r\n className,\r\n duration = 5,\r\n distance = 50,\r\n}: FloatEffectProps) {\r\n return (\r\n <motion.div\r\n className={cn(\"relative\", className)}\r\n animate={{\r\n y: [0, -distance, 0],\r\n }}\r\n transition={{\r\n duration,\r\n repeat: Infinity,\r\n ease: \"easeInOut\",\r\n }}\r\n >\r\n {children}\r\n </motion.div>\r\n );\r\n}\r\n\r\nexport default FloatEffect;\r\n","\"use client\";\r\n\r\nimport { ReactNode } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface GlowEffectProps {\r\n children?: ReactNode;\r\n className?: string;\r\n glowColor?: string;\r\n duration?: number;\r\n}\r\n\r\nexport function GlowEffect({\r\n children,\r\n className,\r\n glowColor = \"rgba(255, 255, 255, 0.4)\",\r\n duration = 3,\r\n}: GlowEffectProps) {\r\n return (\r\n <motion.div\r\n className={cn(\r\n \"relative p-8 rounded-3xl border-2 border-white/30\",\r\n className\r\n )}\r\n style={{\r\n background:\r\n \"radial-gradient(circle at center, rgba(255,255,255,0.05) 0%, transparent 70%)\",\r\n }}\r\n animate={{\r\n boxShadow: [\r\n `0 0 40px ${glowColor}, 0 0 80px ${glowColor.replace(\"0.4\", \"0.2\")}`,\r\n `0 0 80px ${glowColor.replace(\"0.4\", \"0.8\")}, 0 0 160px ${glowColor.replace(\"0.4\", \"0.5\")}`,\r\n `0 0 40px ${glowColor}, 0 0 80px ${glowColor.replace(\"0.4\", \"0.2\")}`,\r\n ],\r\n borderColor: [\r\n \"rgba(255, 255, 255, 0.3)\",\r\n \"rgba(255, 255, 255, 0.6)\",\r\n \"rgba(255, 255, 255, 0.3)\",\r\n ],\r\n }}\r\n transition={{\r\n duration,\r\n repeat: Infinity,\r\n ease: \"easeInOut\",\r\n }}\r\n >\r\n {children}\r\n </motion.div>\r\n );\r\n}\r\n\r\nexport default GlowEffect;\r\n","\"use client\";\r\n\r\nimport { ReactNode } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface BlurFadeProps {\r\n children: ReactNode;\r\n className?: string;\r\n delay?: number;\r\n duration?: number;\r\n blur?: number;\r\n inView?: boolean;\r\n inViewMargin?: string;\r\n yOffset?: number;\r\n}\r\n\r\nexport function BlurFade({\r\n children,\r\n className,\r\n delay = 0,\r\n duration = 0.8,\r\n blur = 10,\r\n inView = false,\r\n inViewMargin = \"-50px\",\r\n yOffset = 6,\r\n}: BlurFadeProps) {\r\n const variants = {\r\n hidden: {\r\n opacity: 0,\r\n filter: `blur(${blur}px)`,\r\n y: yOffset,\r\n },\r\n visible: {\r\n opacity: 1,\r\n filter: \"blur(0px)\",\r\n y: 0,\r\n },\r\n };\r\n\r\n return (\r\n <motion.div\r\n className={cn(className)}\r\n initial=\"hidden\"\r\n animate={inView ? undefined : \"visible\"}\r\n whileInView={inView ? \"visible\" : undefined}\r\n viewport={{ once: true, margin: inViewMargin }}\r\n variants={variants}\r\n transition={{\r\n duration,\r\n delay,\r\n ease: [0.25, 0.1, 0.25, 1],\r\n }}\r\n >\r\n {children}\r\n </motion.div>\r\n );\r\n}\r\n\r\nexport default BlurFade;\r\n","\"use client\";\r\n\r\nimport { useEffect, useRef, ReactNode } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\nclass Pixel {\r\n width: number;\r\n height: number;\r\n ctx: CanvasRenderingContext2D;\r\n x: number;\r\n y: number;\r\n color: string;\r\n speed: number;\r\n size: number;\r\n sizeStep: number;\r\n minSize: number;\r\n maxSizeInteger: number;\r\n maxSize: number;\r\n delay: number;\r\n counter: number;\r\n counterStep: number;\r\n isIdle: boolean;\r\n isReverse: boolean;\r\n isShimmer: boolean;\r\n\r\n constructor(\r\n canvas: HTMLCanvasElement,\r\n context: CanvasRenderingContext2D,\r\n x: number,\r\n y: number,\r\n color: string,\r\n speed: number,\r\n delay: number\r\n ) {\r\n this.width = canvas.width;\r\n this.height = canvas.height;\r\n this.ctx = context;\r\n this.x = x;\r\n this.y = y;\r\n this.color = color;\r\n this.speed = this.getRandomValue(0.1, 0.9) * speed;\r\n this.size = 0;\r\n this.sizeStep = Math.random() * 0.4;\r\n this.minSize = 0.5;\r\n this.maxSizeInteger = 2;\r\n this.maxSize = this.getRandomValue(this.minSize, this.maxSizeInteger);\r\n this.delay = delay;\r\n this.counter = 0;\r\n this.counterStep = Math.random() * 4 + (this.width + this.height) * 0.01;\r\n this.isIdle = false;\r\n this.isReverse = false;\r\n this.isShimmer = false;\r\n }\r\n\r\n getRandomValue(min: number, max: number) {\r\n return Math.random() * (max - min) + min;\r\n }\r\n\r\n draw() {\r\n const centerOffset = this.maxSizeInteger * 0.5 - this.size * 0.5;\r\n this.ctx.fillStyle = this.color;\r\n this.ctx.fillRect(\r\n this.x + centerOffset,\r\n this.y + centerOffset,\r\n this.size,\r\n this.size\r\n );\r\n }\r\n\r\n appear() {\r\n this.isIdle = false;\r\n if (this.counter <= this.delay) {\r\n this.counter += this.counterStep;\r\n return;\r\n }\r\n if (this.size >= this.maxSize) {\r\n this.isShimmer = true;\r\n }\r\n if (this.isShimmer) {\r\n this.shimmer();\r\n } else {\r\n this.size += this.sizeStep;\r\n }\r\n this.draw();\r\n }\r\n\r\n disappear() {\r\n this.isShimmer = false;\r\n this.counter = 0;\r\n if (this.size <= 0) {\r\n this.isIdle = true;\r\n return;\r\n } else {\r\n this.size -= 0.1;\r\n }\r\n this.draw();\r\n }\r\n\r\n shimmer() {\r\n if (this.size >= this.maxSize) {\r\n this.isReverse = true;\r\n } else if (this.size <= this.minSize) {\r\n this.isReverse = false;\r\n }\r\n if (this.isReverse) {\r\n this.size -= this.speed;\r\n } else {\r\n this.size += this.speed;\r\n }\r\n }\r\n}\r\n\r\nconst VARIANTS = {\r\n default: {\r\n gap: 5,\r\n speed: 35,\r\n colors: \"#71717a,#a1a1aa,#d4d4d8\",\r\n noFocus: false,\r\n },\r\n blue: {\r\n gap: 10,\r\n speed: 25,\r\n colors: \"#0ea5e9,#38bdf8,#7dd3fc\",\r\n noFocus: false,\r\n },\r\n yellow: {\r\n gap: 3,\r\n speed: 20,\r\n colors: \"#ca8a04,#eab308,#facc15\",\r\n noFocus: false,\r\n },\r\n pink: {\r\n gap: 6,\r\n speed: 80,\r\n colors: \"#be123c,#e11d48,#f43f5e\",\r\n noFocus: true,\r\n },\r\n};\r\n\r\ninterface PixelCardProps {\r\n variant?: \"default\" | \"blue\" | \"yellow\" | \"pink\";\r\n gap?: number;\r\n speed?: number;\r\n colors?: string;\r\n noFocus?: boolean;\r\n className?: string;\r\n children: ReactNode;\r\n}\r\n\r\nfunction getEffectiveSpeed(value: number, reducedMotion: boolean) {\r\n const min = 0;\r\n const max = 100;\r\n const throttle = 0.001;\r\n\r\n if (value <= min || reducedMotion) {\r\n return min;\r\n } else if (value >= max) {\r\n return max * throttle;\r\n } else {\r\n return value * throttle;\r\n }\r\n}\r\n\r\nexport function PixelCard({\r\n variant = \"default\",\r\n gap,\r\n speed,\r\n colors,\r\n noFocus,\r\n className = \"\",\r\n children,\r\n}: PixelCardProps) {\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const canvasRef = useRef<HTMLCanvasElement>(null);\r\n const pixelsRef = useRef<Pixel[]>([]);\r\n const animationRef = useRef<ReturnType<typeof requestAnimationFrame> | null>(\r\n null\r\n );\r\n const timePreviousRef = useRef(\r\n typeof performance !== \"undefined\" ? performance.now() : 0\r\n );\r\n const reducedMotion = useRef(\r\n typeof window !== \"undefined\"\r\n ? window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches\r\n : false\r\n ).current;\r\n\r\n const variantCfg = VARIANTS[variant] || VARIANTS.default;\r\n const finalGap = gap ?? variantCfg.gap;\r\n const finalSpeed = speed ?? variantCfg.speed;\r\n const finalColors = colors ?? variantCfg.colors;\r\n const finalNoFocus = noFocus ?? variantCfg.noFocus;\r\n\r\n const initPixels = () => {\r\n if (!containerRef.current || !canvasRef.current) return;\r\n\r\n const rect = containerRef.current.getBoundingClientRect();\r\n const width = Math.floor(rect.width) || 300;\r\n const height = Math.floor(rect.height) || 400;\r\n const ctx = canvasRef.current.getContext(\"2d\");\r\n if (!ctx) return;\r\n\r\n canvasRef.current.width = width;\r\n canvasRef.current.height = height;\r\n canvasRef.current.style.width = `${width}px`;\r\n canvasRef.current.style.height = `${height}px`;\r\n\r\n const colorsArray = finalColors.split(\",\").map((c) => c.trim());\r\n const pxs: Pixel[] = [];\r\n const gapValue = Math.max(parseInt(finalGap.toString(), 10), 3);\r\n\r\n for (let x = 0; x < width; x += gapValue) {\r\n for (let y = 0; y < height; y += gapValue) {\r\n const color = colorsArray[Math.floor(Math.random() * colorsArray.length)];\r\n const dx = x - width / 2;\r\n const dy = y - height / 2;\r\n const distance = Math.sqrt(dx * dx + dy * dy);\r\n const delay = reducedMotion ? 0 : distance;\r\n pxs.push(\r\n new Pixel(\r\n canvasRef.current!,\r\n ctx,\r\n x,\r\n y,\r\n color,\r\n getEffectiveSpeed(finalSpeed, reducedMotion),\r\n delay\r\n )\r\n );\r\n }\r\n }\r\n pixelsRef.current = pxs;\r\n };\r\n\r\n const doAnimate = (fnName: \"appear\" | \"disappear\") => {\r\n animationRef.current = requestAnimationFrame(() => doAnimate(fnName));\r\n const timeNow = performance.now();\r\n const timePassed = timeNow - timePreviousRef.current;\r\n const timeInterval = 1000 / 60;\r\n\r\n if (timePassed < timeInterval) return;\r\n timePreviousRef.current = timeNow - (timePassed % timeInterval);\r\n\r\n const ctx = canvasRef.current?.getContext(\"2d\");\r\n if (!ctx || !canvasRef.current) return;\r\n\r\n ctx.clearRect(0, 0, canvasRef.current.width, canvasRef.current.height);\r\n\r\n let allIdle = true;\r\n for (let i = 0; i < pixelsRef.current.length; i++) {\r\n const pixel = pixelsRef.current[i];\r\n pixel[fnName]();\r\n if (!pixel.isIdle) {\r\n allIdle = false;\r\n }\r\n }\r\n if (allIdle && animationRef.current) {\r\n cancelAnimationFrame(animationRef.current);\r\n }\r\n };\r\n\r\n const handleAnimation = (name: \"appear\" | \"disappear\") => {\r\n if (animationRef.current !== null) {\r\n cancelAnimationFrame(animationRef.current);\r\n }\r\n animationRef.current = requestAnimationFrame(() => doAnimate(name));\r\n };\r\n\r\n const onMouseEnter = () => handleAnimation(\"appear\");\r\n const onMouseLeave = () => handleAnimation(\"disappear\");\r\n const onFocus: React.FocusEventHandler<HTMLDivElement> = (e) => {\r\n if (e.currentTarget.contains(e.relatedTarget as Node)) return;\r\n handleAnimation(\"appear\");\r\n };\r\n const onBlur: React.FocusEventHandler<HTMLDivElement> = (e) => {\r\n if (e.currentTarget.contains(e.relatedTarget as Node)) return;\r\n handleAnimation(\"disappear\");\r\n };\r\n\r\n useEffect(() => {\r\n initPixels();\r\n const observer = new ResizeObserver(() => {\r\n initPixels();\r\n });\r\n if (containerRef.current) {\r\n observer.observe(containerRef.current);\r\n }\r\n return () => {\r\n observer.disconnect();\r\n if (animationRef.current !== null) {\r\n cancelAnimationFrame(animationRef.current);\r\n }\r\n };\r\n }, [finalGap, finalSpeed, finalColors, finalNoFocus]);\r\n\r\n return (\r\n <div\r\n ref={containerRef}\r\n className={cn(\r\n \"relative overflow-hidden rounded-xl border border-zinc-200 dark:border-zinc-800 bg-zinc-100 dark:bg-zinc-900\",\r\n className\r\n )}\r\n onMouseEnter={onMouseEnter}\r\n onMouseLeave={onMouseLeave}\r\n onFocus={finalNoFocus ? undefined : onFocus}\r\n onBlur={finalNoFocus ? undefined : onBlur}\r\n tabIndex={finalNoFocus ? -1 : 0}\r\n >\r\n <canvas\r\n className=\"absolute inset-0 w-full h-full pointer-events-none\"\r\n ref={canvasRef}\r\n />\r\n <div className=\"relative z-10\">{children}</div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default PixelCard;\r\n","\"use client\";\r\n\r\nimport { useRef, useState, ReactNode, CSSProperties } from \"react\";\r\nimport { motion, useMotionValue, useSpring, SpringOptions } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface TiltedCardProps {\r\n imageSrc: string;\r\n altText?: string;\r\n captionText?: string;\r\n containerHeight?: CSSProperties[\"height\"];\r\n containerWidth?: CSSProperties[\"width\"];\r\n imageHeight?: CSSProperties[\"height\"];\r\n imageWidth?: CSSProperties[\"width\"];\r\n scaleOnHover?: number;\r\n rotateAmplitude?: number;\r\n showMobileWarning?: boolean;\r\n showTooltip?: boolean;\r\n overlayContent?: ReactNode;\r\n displayOverlayContent?: boolean;\r\n className?: string;\r\n}\r\n\r\nconst springValues: SpringOptions = {\r\n damping: 30,\r\n stiffness: 100,\r\n mass: 2,\r\n};\r\n\r\nexport function TiltedCard({\r\n imageSrc,\r\n altText = \"Tilted card image\",\r\n captionText = \"\",\r\n containerHeight = \"300px\",\r\n containerWidth = \"100%\",\r\n imageHeight = \"300px\",\r\n imageWidth = \"300px\",\r\n scaleOnHover = 1.1,\r\n rotateAmplitude = 14,\r\n showMobileWarning = false,\r\n showTooltip = true,\r\n overlayContent = null,\r\n displayOverlayContent = false,\r\n className,\r\n}: TiltedCardProps) {\r\n const ref = useRef<HTMLElement>(null);\r\n\r\n const x = useMotionValue(0);\r\n const y = useMotionValue(0);\r\n const rotateX = useSpring(useMotionValue(0), springValues);\r\n const rotateY = useSpring(useMotionValue(0), springValues);\r\n const scale = useSpring(1, springValues);\r\n const opacity = useSpring(0);\r\n const rotateFigcaption = useSpring(0, {\r\n stiffness: 350,\r\n damping: 30,\r\n mass: 1,\r\n });\r\n\r\n const [lastY, setLastY] = useState<number>(0);\r\n\r\n function handleMouse(e: React.MouseEvent<HTMLElement>) {\r\n if (!ref.current) return;\r\n\r\n const rect = ref.current.getBoundingClientRect();\r\n const offsetX = e.clientX - rect.left - rect.width / 2;\r\n const offsetY = e.clientY - rect.top - rect.height / 2;\r\n\r\n const rotationX = (offsetY / (rect.height / 2)) * -rotateAmplitude;\r\n const rotationY = (offsetX / (rect.width / 2)) * rotateAmplitude;\r\n\r\n rotateX.set(rotationX);\r\n rotateY.set(rotationY);\r\n\r\n x.set(e.clientX - rect.left);\r\n y.set(e.clientY - rect.top);\r\n\r\n const velocityY = offsetY - lastY;\r\n rotateFigcaption.set(-velocityY * 0.6);\r\n setLastY(offsetY);\r\n }\r\n\r\n function handleMouseEnter() {\r\n scale.set(scaleOnHover);\r\n opacity.set(1);\r\n }\r\n\r\n function handleMouseLeave() {\r\n opacity.set(0);\r\n scale.set(1);\r\n rotateX.set(0);\r\n rotateY.set(0);\r\n rotateFigcaption.set(0);\r\n }\r\n\r\n return (\r\n <figure\r\n ref={ref}\r\n className={cn(\r\n \"relative flex items-center justify-center [perspective:800px]\",\r\n className\r\n )}\r\n style={{\r\n height: containerHeight,\r\n width: containerWidth,\r\n }}\r\n onMouseMove={handleMouse}\r\n onMouseEnter={handleMouseEnter}\r\n onMouseLeave={handleMouseLeave}\r\n >\r\n {showMobileWarning && (\r\n <div className=\"absolute top-2 left-2 text-xs text-muted-foreground md:hidden\">\r\n Best viewed on desktop\r\n </div>\r\n )}\r\n\r\n <motion.div\r\n className=\"relative [transform-style:preserve-3d]\"\r\n style={{\r\n width: imageWidth,\r\n height: imageHeight,\r\n rotateX,\r\n rotateY,\r\n scale,\r\n }}\r\n >\r\n <motion.img\r\n src={imageSrc}\r\n alt={altText}\r\n className=\"absolute inset-0 w-full h-full object-cover rounded-lg\"\r\n style={{\r\n width: imageWidth,\r\n height: imageHeight,\r\n }}\r\n />\r\n\r\n {displayOverlayContent && overlayContent && (\r\n <motion.div className=\"absolute inset-0 flex items-center justify-center bg-black/50 rounded-lg\">\r\n {overlayContent}\r\n </motion.div>\r\n )}\r\n </motion.div>\r\n\r\n {showTooltip && captionText && (\r\n <motion.figcaption\r\n className=\"pointer-events-none absolute px-3 py-1.5 text-sm bg-white dark:bg-zinc-900 rounded-full shadow-lg whitespace-nowrap\"\r\n style={{\r\n x,\r\n y,\r\n opacity,\r\n rotate: rotateFigcaption,\r\n }}\r\n >\r\n {captionText}\r\n </motion.figcaption>\r\n )}\r\n </figure>\r\n );\r\n}\r\n\r\nexport default TiltedCard;\r\n","\"use client\";\r\n\r\nimport { useEffect, useRef, ReactNode } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface InfiniteScrollProps {\r\n children: ReactNode;\r\n speed?: number;\r\n direction?: \"left\" | \"right\";\r\n pauseOnHover?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport function InfiniteScroll({\r\n children,\r\n speed = 30,\r\n direction = \"left\",\r\n pauseOnHover = true,\r\n className,\r\n}: InfiniteScrollProps) {\r\n const scrollerRef = useRef<HTMLDivElement>(null);\r\n const scrollerInnerRef = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n if (!scrollerRef.current || !scrollerInnerRef.current) return;\r\n\r\n const scrollerContent = Array.from(scrollerInnerRef.current.children);\r\n\r\n scrollerContent.forEach((item) => {\r\n const duplicatedItem = item.cloneNode(true);\r\n if (scrollerInnerRef.current) {\r\n scrollerInnerRef.current.appendChild(duplicatedItem);\r\n }\r\n });\r\n\r\n scrollerRef.current.style.setProperty(\"--animation-duration\", `${speed}s`);\r\n scrollerRef.current.style.setProperty(\r\n \"--animation-direction\",\r\n direction === \"left\" ? \"forwards\" : \"reverse\"\r\n );\r\n }, [speed, direction]);\r\n\r\n return (\r\n <div\r\n ref={scrollerRef}\r\n className={cn(\r\n \"group relative flex overflow-hidden [mask-image:linear-gradient(to_right,transparent,white_20%,white_80%,transparent)]\",\r\n className\r\n )}\r\n >\r\n <div\r\n ref={scrollerInnerRef}\r\n className={cn(\r\n \"flex min-w-full shrink-0 gap-4 py-4 w-max flex-nowrap\",\r\n \"animate-scroll\",\r\n pauseOnHover && \"group-hover:[animation-play-state:paused]\"\r\n )}\r\n style={{\r\n animation: `scroll var(--animation-duration, 30s) var(--animation-direction, forwards) linear infinite`,\r\n }}\r\n >\r\n {children}\r\n </div>\r\n <style jsx>{`\r\n @keyframes scroll {\r\n from {\r\n transform: translateX(0);\r\n }\r\n to {\r\n transform: translateX(calc(-50% - 0.5rem));\r\n }\r\n }\r\n `}</style>\r\n </div>\r\n );\r\n}\r\n\r\nexport default InfiniteScroll;\r\n","\"use client\";\r\n\r\nimport { useState, useEffect } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingState {\r\n text: string;\r\n}\r\n\r\ninterface MultiStepLoaderProps {\r\n loadingStates: LoadingState[];\r\n loading: boolean;\r\n duration?: number;\r\n loop?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport function MultiStepLoader({\r\n loadingStates,\r\n loading,\r\n duration = 2000,\r\n loop = true,\r\n className,\r\n}: MultiStepLoaderProps) {\r\n const [currentState, setCurrentState] = useState(0);\r\n\r\n useEffect(() => {\r\n if (!loading) {\r\n setCurrentState(0);\r\n return;\r\n }\r\n\r\n const interval = setInterval(() => {\r\n setCurrentState((prevState) => {\r\n if (prevState === loadingStates.length - 1) {\r\n return loop ? 0 : prevState;\r\n }\r\n return prevState + 1;\r\n });\r\n }, duration / loadingStates.length);\r\n\r\n return () => clearInterval(interval);\r\n }, [loading, loadingStates.length, duration, loop]);\r\n\r\n return (\r\n <AnimatePresence>\r\n {loading && (\r\n <motion.div\r\n initial={{ opacity: 0 }}\r\n animate={{ opacity: 1 }}\r\n exit={{ opacity: 0 }}\r\n className={cn(\r\n \"fixed inset-0 z-[100] flex items-center justify-center bg-black/80 backdrop-blur-sm\",\r\n className\r\n )}\r\n >\r\n <div className=\"bg-white dark:bg-zinc-900 rounded-lg p-8 shadow-2xl max-w-md w-full mx-4\">\r\n <div className=\"text-center\">\r\n <div className=\"mb-4\">\r\n <div className=\"inline-flex items-center justify-center w-16 h-16 bg-blue-100 dark:bg-blue-900/20 rounded-full mb-4\">\r\n <div className=\"w-8 h-8 border-4 border-blue-600 border-t-transparent rounded-full animate-spin\" />\r\n </div>\r\n </div>\r\n\r\n <AnimatePresence mode=\"wait\">\r\n <motion.p\r\n key={currentState}\r\n initial={{ opacity: 0, y: 10 }}\r\n animate={{ opacity: 1, y: 0 }}\r\n exit={{ opacity: 0, y: -10 }}\r\n transition={{ duration: 0.2 }}\r\n className=\"text-lg font-medium text-zinc-900 dark:text-white\"\r\n >\r\n {loadingStates[currentState]?.text}\r\n </motion.p>\r\n </AnimatePresence>\r\n\r\n <div className=\"mt-6 flex justify-center\">\r\n <div className=\"flex space-x-1\">\r\n {loadingStates.map((_, index) => (\r\n <div\r\n key={index}\r\n className={cn(\r\n \"h-2 w-2 rounded-full transition-colors duration-200\",\r\n index === currentState\r\n ? \"bg-blue-600\"\r\n : index < currentState\r\n ? \"bg-green-500\"\r\n : \"bg-zinc-300 dark:bg-zinc-600\"\r\n )}\r\n />\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </motion.div>\r\n )}\r\n </AnimatePresence>\r\n );\r\n}\r\n\r\nexport default MultiStepLoader;\r\n","\"use client\";\r\n\r\nimport { useEffect, useRef, useState } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface ASCIITextProps {\r\n text: string;\r\n enableWaves?: boolean;\r\n asciiFontSize?: number;\r\n textFontSize?: number;\r\n textColor?: string;\r\n planeBaseHeight?: number;\r\n className?: string;\r\n}\r\n\r\nconst ASCII_CHARS = ' .:-=+*#%@';\r\n\r\nexport function ASCIIText({\r\n text,\r\n enableWaves = true,\r\n asciiFontSize = 8,\r\n textFontSize = 200,\r\n textColor = \"#ffffff\",\r\n planeBaseHeight = 0.2,\r\n className,\r\n}: ASCIITextProps) {\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const [asciiArt, setAsciiArt] = useState<string>(\"\");\r\n\r\n useEffect(() => {\r\n const canvas = document.createElement(\"canvas\");\r\n const ctx = canvas.getContext(\"2d\");\r\n if (!ctx) return;\r\n\r\n // Set canvas size based on text\r\n ctx.font = `bold ${textFontSize}px monospace`;\r\n const metrics = ctx.measureText(text);\r\n const width = Math.ceil(metrics.width);\r\n const height = textFontSize * 1.2;\r\n\r\n canvas.width = width;\r\n canvas.height = height;\r\n\r\n // Draw text\r\n ctx.fillStyle = textColor;\r\n ctx.font = `bold ${textFontSize}px monospace`;\r\n ctx.textBaseline = \"middle\";\r\n ctx.fillText(text, 0, height / 2);\r\n\r\n // Get image data\r\n const imageData = ctx.getImageData(0, 0, width, height);\r\n const pixels = imageData.data;\r\n\r\n // Convert to ASCII\r\n const cols = Math.floor(width / asciiFontSize);\r\n const rows = Math.floor(height / asciiFontSize);\r\n let ascii = \"\";\r\n\r\n for (let y = 0; y < rows; y++) {\r\n for (let x = 0; x < cols; x++) {\r\n const px = x * asciiFontSize;\r\n const py = y * asciiFontSize;\r\n const idx = (py * width + px) * 4;\r\n const brightness = (pixels[idx] + pixels[idx + 1] + pixels[idx + 2]) / 3;\r\n const charIdx = Math.floor((brightness / 255) * (ASCII_CHARS.length - 1));\r\n ascii += ASCII_CHARS[charIdx];\r\n }\r\n ascii += \"\\n\";\r\n }\r\n\r\n setAsciiArt(ascii);\r\n }, [text, asciiFontSize, textFontSize, textColor]);\r\n\r\n return (\r\n <div ref={containerRef} className={cn(\"font-mono whitespace-pre\", className)}>\r\n <pre\r\n style={{\r\n fontSize: `${asciiFontSize}px`,\r\n lineHeight: 1,\r\n color: textColor,\r\n }}\r\n >\r\n {asciiArt}\r\n </pre>\r\n </div>\r\n );\r\n}\r\n\r\nexport default ASCIIText;\r\n","\"use client\";\r\n\r\nimport { useEffect, useRef, useState } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface FallingTextProps {\r\n text: string;\r\n highlightWords?: string[];\r\n highlightClass?: string;\r\n trigger?: \"auto\" | \"hover\" | \"click\" | \"scroll\";\r\n delay?: number;\r\n staggerDelay?: number;\r\n className?: string;\r\n}\r\n\r\nexport function FallingText({\r\n text,\r\n highlightWords = [],\r\n highlightClass = \"text-primary\",\r\n trigger = \"auto\",\r\n delay = 0,\r\n staggerDelay = 0.05,\r\n className,\r\n}: FallingTextProps) {\r\n const [isVisible, setIsVisible] = useState(trigger === \"auto\");\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const words = text.split(\" \");\r\n\r\n useEffect(() => {\r\n if (trigger === \"scroll\" && containerRef.current) {\r\n const observer = new IntersectionObserver(\r\n ([entry]) => {\r\n if (entry.isIntersecting) {\r\n setIsVisible(true);\r\n }\r\n },\r\n { threshold: 0.1 }\r\n );\r\n observer.observe(containerRef.current);\r\n return () => observer.disconnect();\r\n }\r\n }, [trigger]);\r\n\r\n const handleInteraction = () => {\r\n if (trigger === \"hover\" || trigger === \"click\") {\r\n setIsVisible(true);\r\n }\r\n };\r\n\r\n return (\r\n <div\r\n ref={containerRef}\r\n className={cn(\"flex flex-wrap gap-2\", className)}\r\n onMouseEnter={trigger === \"hover\" ? handleInteraction : undefined}\r\n onClick={trigger === \"click\" ? handleInteraction : undefined}\r\n >\r\n <AnimatePresence>\r\n {words.map((word, index) => {\r\n const isHighlighted = highlightWords.includes(word.toLowerCase());\r\n return (\r\n <motion.span\r\n key={`${word}-${index}`}\r\n initial={{ opacity: 0, y: -50, rotateX: -90 }}\r\n animate={\r\n isVisible\r\n ? { opacity: 1, y: 0, rotateX: 0 }\r\n : { opacity: 0, y: -50, rotateX: -90 }\r\n }\r\n transition={{\r\n duration: 0.5,\r\n delay: delay + index * staggerDelay,\r\n ease: [0.25, 0.46, 0.45, 0.94],\r\n }}\r\n className={cn(isHighlighted && highlightClass)}\r\n >\r\n {word}\r\n </motion.span>\r\n );\r\n })}\r\n </AnimatePresence>\r\n </div>\r\n );\r\n}\r\n\r\nexport default FallingText;\r\n","\"use client\";\r\n\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { motion, useMotionValue, useSpring, useTransform } from \"framer-motion\";\r\n\r\nfunction cn(...classes: (string | undefined | false)[]) {\r\n return classes.filter(Boolean).join(\" \");\r\n}\r\n\r\ninterface AnimatedCircularProgressBarProps {\r\n max?: number;\r\n min?: number;\r\n value?: number;\r\n gaugePrimaryColor?: string;\r\n gaugeSecondaryColor?: string;\r\n className?: string;\r\n size?: number;\r\n strokeWidth?: number;\r\n showValue?: boolean;\r\n duration?: number;\r\n autoAnimate?: boolean;\r\n}\r\n\r\nexport function AnimatedCircularProgressBar({\r\n max = 100,\r\n min = 0,\r\n value = 0,\r\n gaugePrimaryColor = \"#a1a1aa\",\r\n gaugeSecondaryColor = \"#27272a\",\r\n className,\r\n size = 200,\r\n strokeWidth = 8,\r\n showValue = true,\r\n duration = 2,\r\n autoAnimate = true,\r\n}: AnimatedCircularProgressBarProps) {\r\n const [currentValue, setCurrentValue] = useState(autoAnimate ? min : value);\r\n \r\n const radius = (size - strokeWidth) / 2;\r\n const circumference = 2 * Math.PI * radius;\r\n \r\n const motionValue = useMotionValue(currentValue);\r\n const springValue = useSpring(motionValue, {\r\n damping: 30,\r\n stiffness: 100,\r\n });\r\n \r\n const strokeDasharray = useTransform(\r\n springValue,\r\n [min, max],\r\n [0, circumference]\r\n );\r\n \r\n const displayValue = useTransform(springValue, (latest) => Math.round(latest));\r\n\r\n useEffect(() => {\r\n if (autoAnimate) {\r\n const interval = setInterval(() => {\r\n setCurrentValue(prev => {\r\n const next = prev + 1;\r\n if (next > max) {\r\n return min;\r\n }\r\n return next;\r\n });\r\n }, duration * 10);\r\n\r\n return () => clearInterval(interval);\r\n } else {\r\n setCurrentValue(value);\r\n }\r\n }, [autoAnimate, value, max, min, duration]);\r\n\r\n useEffect(() => {\r\n motionValue.set(currentValue);\r\n }, [currentValue, motionValue]);\r\n\r\n return (\r\n <div \r\n className={cn(\"relative flex items-center justify-center\", className)}\r\n style={{ width: size, height: size }}\r\n >\r\n <svg\r\n width={size}\r\n height={size}\r\n className=\"transform -rotate-90\"\r\n >\r\n <circle\r\n cx={size / 2}\r\n cy={size / 2}\r\n r={radius}\r\n stroke={gaugeSecondaryColor}\r\n strokeWidth={strokeWidth}\r\n fill=\"none\"\r\n className=\"opacity-20\"\r\n />\r\n \r\n <motion.circle\r\n cx={size / 2}\r\n cy={size / 2}\r\n r={radius}\r\n stroke={gaugePrimaryColor}\r\n strokeWidth={strokeWidth}\r\n fill=\"none\"\r\n strokeLinecap=\"round\"\r\n strokeDasharray={circumference}\r\n strokeDashoffset={useTransform(strokeDasharray, (latest) => circumference - latest)}\r\n className=\"transition-all duration-300 ease-in-out\"\r\n style={{\r\n filter: \"drop-shadow(0 0 6px rgba(59, 130, 246, 0.4))\",\r\n }}\r\n />\r\n \r\n <motion.circle\r\n cx={size / 2}\r\n cy={size / 2}\r\n r={radius}\r\n stroke={gaugePrimaryColor}\r\n strokeWidth={strokeWidth / 2}\r\n fill=\"none\"\r\n strokeLinecap=\"round\"\r\n strokeDasharray={circumference}\r\n strokeDashoffset={useTransform(strokeDasharray, (latest) => circumference - latest)}\r\n className=\"opacity-50 blur-sm\"\r\n />\r\n </svg>\r\n \r\n {showValue && (\r\n <div className=\"absolute inset-0 flex flex-col items-center justify-center\">\r\n <motion.span \r\n className=\"text-3xl font-semibold text-zinc-900 dark:text-zinc-100\"\r\n style={{ fontSize: size / 8 }}\r\n >\r\n {displayValue}\r\n </motion.span>\r\n <span \r\n className=\"text-sm text-zinc-500\"\r\n style={{ fontSize: size / 16 }}\r\n >\r\n {autoAnimate ? \"Auto\" : \"%\"}\r\n </span>\r\n </div>\r\n )}\r\n \r\n <div className=\"absolute inset-0\">\r\n {[...Array(8)].map((_, i) => {\r\n const angle = (i * 45) - 90;\r\n const x = size / 2 + (radius + strokeWidth) * Math.cos((angle * Math.PI) / 180);\r\n const y = size / 2 + (radius + strokeWidth) * Math.sin((angle * Math.PI) / 180);\r\n \r\n return (\r\n <motion.div\r\n key={i}\r\n className=\"absolute w-1 h-1 bg-zinc-500 rounded-full\"\r\n style={{\r\n left: x - 2,\r\n top: y - 2,\r\n }}\r\n animate={{\r\n opacity: [0.3, 1, 0.3],\r\n scale: [0.8, 1.2, 0.8],\r\n }}\r\n transition={{\r\n duration: 2,\r\n repeat: Infinity,\r\n delay: i * 0.2,\r\n }}\r\n />\r\n );\r\n })}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default AnimatedCircularProgressBar;\r\n","\"use client\";\r\n\r\ninterface LoadingInvertProps {\r\n text?: string;\r\n className?: string;\r\n}\r\n\r\nexport function LoadingInvert({ text = \"Loading...\", className = \"\" }: LoadingInvertProps) {\r\n return (\r\n <div className={`w-full h-full min-h-[400px] flex items-center justify-center ${className}`}>\r\n <div className=\"relative h-fit min-w-12 w-fit text-4xl font-bold tracking-wider text-black dark:text-white\">\r\n <p className=\"relative z-0\">{text}</p>\r\n <div \r\n className=\"absolute h-full aspect-square left-0 top-0 rounded-[20%] bg-foreground/10 backdrop-invert\"\r\n style={{\r\n animation: \"invert-move 2s ease-in-out infinite\"\r\n }}\r\n />\r\n <style dangerouslySetInnerHTML={{\r\n __html: `\r\n @keyframes invert-move { 50% { left: calc(100% - 3rem); } }\r\n `\r\n }} />\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingInvert;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\n\r\nfunction cn(...classes: (string | undefined | false)[]) {\r\n return classes.filter(Boolean).join(\" \");\r\n}\r\n\r\ninterface LoaderProps extends React.HTMLAttributes<HTMLDivElement> {\r\n title?: string;\r\n subtitle?: string;\r\n size?: \"sm\" | \"md\" | \"lg\";\r\n}\r\n\r\nexport function Loader({\r\n title = \"Configuring your account...\",\r\n subtitle = \"Please wait while we prepare everything for you\",\r\n size = \"md\",\r\n className,\r\n ...props\r\n}: LoaderProps) {\r\n const sizeConfig = {\r\n sm: {\r\n container: \"size-20\",\r\n titleClass: \"text-sm/tight font-medium\",\r\n subtitleClass: \"text-xs/relaxed\",\r\n spacing: \"space-y-2\",\r\n maxWidth: \"max-w-48\",\r\n },\r\n md: {\r\n container: \"size-32\",\r\n titleClass: \"text-base/snug font-medium\",\r\n subtitleClass: \"text-sm/relaxed\",\r\n spacing: \"space-y-3\",\r\n maxWidth: \"max-w-56\",\r\n },\r\n lg: {\r\n container: \"size-40\",\r\n titleClass: \"text-lg/tight font-semibold\",\r\n subtitleClass: \"text-base/relaxed\",\r\n spacing: \"space-y-4\",\r\n maxWidth: \"max-w-64\",\r\n },\r\n };\r\n\r\n const config = sizeConfig[size];\r\n\r\n return (\r\n <div\r\n className={cn(\r\n \"flex flex-col items-center justify-center gap-8 p-8\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <motion.div\r\n className={cn(\"relative\", config.container)}\r\n animate={{\r\n scale: [1, 1.02, 1],\r\n }}\r\n transition={{\r\n duration: 4,\r\n repeat: Infinity,\r\n ease: [0.4, 0, 0.6, 1],\r\n }}\r\n >\r\n <motion.div\r\n className=\"absolute inset-0 rounded-full\"\r\n style={{\r\n background: `conic-gradient(from 0deg, transparent 0deg, rgb(0, 0, 0) 90deg, transparent 180deg)`,\r\n mask: `radial-gradient(circle at 50% 50%, transparent 35%, black 37%, black 39%, transparent 41%)`,\r\n WebkitMask: `radial-gradient(circle at 50% 50%, transparent 35%, black 37%, black 39%, transparent 41%)`,\r\n opacity: 0.8,\r\n }}\r\n animate={{\r\n rotate: [0, 360],\r\n }}\r\n transition={{\r\n duration: 3,\r\n repeat: Infinity,\r\n ease: \"linear\",\r\n }}\r\n />\r\n\r\n <motion.div\r\n className=\"absolute inset-0 rounded-full\"\r\n style={{\r\n background: `conic-gradient(from 0deg, transparent 0deg, rgb(0, 0, 0) 120deg, rgba(0, 0, 0, 0.5) 240deg, transparent 360deg)`,\r\n mask: `radial-gradient(circle at 50% 50%, transparent 42%, black 44%, black 48%, transparent 50%)`,\r\n WebkitMask: `radial-gradient(circle at 50% 50%, transparent 42%, black 44%, black 48%, transparent 50%)`,\r\n opacity: 0.9,\r\n }}\r\n animate={{\r\n rotate: [0, 360],\r\n }}\r\n transition={{\r\n duration: 2.5,\r\n repeat: Infinity,\r\n ease: [0.4, 0, 0.6, 1],\r\n }}\r\n />\r\n\r\n <motion.div\r\n className=\"absolute inset-0 rounded-full dark:block hidden\"\r\n style={{\r\n background: `conic-gradient(from 0deg, transparent 0deg, rgb(255, 255, 255) 90deg, transparent 180deg)`,\r\n mask: `radial-gradient(circle at 50% 50%, transparent 35%, black 37%, black 39%, transparent 41%)`,\r\n WebkitMask: `radial-gradient(circle at 50% 50%, transparent 35%, black 37%, black 39%, transparent 41%)`,\r\n opacity: 0.8,\r\n }}\r\n animate={{\r\n rotate: [0, 360],\r\n }}\r\n transition={{\r\n duration: 3,\r\n repeat: Infinity,\r\n ease: \"linear\",\r\n }}\r\n />\r\n\r\n <motion.div\r\n className=\"absolute inset-0 rounded-full dark:block hidden\"\r\n style={{\r\n background: `conic-gradient(from 0deg, transparent 0deg, rgb(255, 255, 255) 120deg, rgba(255, 255, 255, 0.5) 240deg, transparent 360deg)`,\r\n mask: `radial-gradient(circle at 50% 50%, transparent 42%, black 44%, black 48%, transparent 50%)`,\r\n WebkitMask: `radial-gradient(circle at 50% 50%, transparent 42%, black 44%, black 48%, transparent 50%)`,\r\n opacity: 0.9,\r\n }}\r\n animate={{\r\n rotate: [0, 360],\r\n }}\r\n transition={{\r\n duration: 2.5,\r\n repeat: Infinity,\r\n ease: [0.4, 0, 0.6, 1],\r\n }}\r\n />\r\n </motion.div>\r\n\r\n <motion.div\r\n className={cn(\"text-center\", config.spacing, config.maxWidth)}\r\n initial={{ opacity: 0, y: 12 }}\r\n animate={{\r\n opacity: 1,\r\n y: 0,\r\n }}\r\n transition={{\r\n delay: 0.4,\r\n duration: 1,\r\n ease: [0.4, 0, 0.2, 1],\r\n }}\r\n >\r\n <motion.h1\r\n className={cn(\r\n config.titleClass,\r\n \"text-black/90 dark:text-white/90 font-medium tracking-[-0.02em] leading-[1.15] antialiased\"\r\n )}\r\n initial={{ opacity: 0, y: 12 }}\r\n animate={{\r\n opacity: 1,\r\n y: 0,\r\n }}\r\n transition={{\r\n delay: 0.6,\r\n duration: 0.8,\r\n ease: [0.4, 0, 0.2, 1],\r\n }}\r\n >\r\n <motion.span\r\n animate={{\r\n opacity: [0.9, 0.7, 0.9],\r\n }}\r\n transition={{\r\n duration: 3,\r\n repeat: Infinity,\r\n ease: [0.4, 0, 0.6, 1],\r\n }}\r\n >\r\n {title}\r\n </motion.span>\r\n </motion.h1>\r\n\r\n <motion.p\r\n className={cn(\r\n config.subtitleClass,\r\n \"text-black/60 dark:text-white/60 font-normal tracking-[-0.01em] leading-[1.45] antialiased\"\r\n )}\r\n initial={{ opacity: 0, y: 8 }}\r\n animate={{\r\n opacity: 1,\r\n y: 0,\r\n }}\r\n transition={{\r\n delay: 0.8,\r\n duration: 0.8,\r\n ease: [0.4, 0, 0.2, 1],\r\n }}\r\n >\r\n <motion.span\r\n animate={{\r\n opacity: [0.6, 0.4, 0.6],\r\n }}\r\n transition={{\r\n duration: 4,\r\n repeat: Infinity,\r\n ease: [0.4, 0, 0.6, 1],\r\n }}\r\n >\r\n {subtitle}\r\n </motion.span>\r\n </motion.p>\r\n </motion.div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default Loader;\r\n","\"use client\";\r\n\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\n\r\nfunction cn(...classes: (string | undefined | false)[]) {\r\n return classes.filter(Boolean).join(\" \");\r\n}\r\n\r\ninterface AnimatedThemeTogglerProps {\r\n className?: string;\r\n size?: \"sm\" | \"md\" | \"lg\";\r\n onChange?: (isDark: boolean) => void;\r\n}\r\n\r\nexport function AnimatedThemeToggler({ \r\n className, \r\n size = \"md\",\r\n onChange \r\n}: AnimatedThemeTogglerProps) {\r\n const [isDark, setIsDark] = useState(false);\r\n\r\n useEffect(() => {\r\n const prefersDark = window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\r\n setIsDark(prefersDark);\r\n }, []);\r\n\r\n const toggleTheme = () => {\r\n const newTheme = !isDark;\r\n setIsDark(newTheme);\r\n \r\n if (newTheme) {\r\n document.documentElement.classList.add(\"dark\");\r\n } else {\r\n document.documentElement.classList.remove(\"dark\");\r\n }\r\n \r\n onChange?.(newTheme);\r\n };\r\n\r\n const sizeClasses = {\r\n sm: \"w-12 h-6\",\r\n md: \"w-14 h-7\",\r\n lg: \"w-16 h-8\"\r\n };\r\n\r\n const iconSizes = {\r\n sm: \"w-4 h-4\",\r\n md: \"w-5 h-5\",\r\n lg: \"w-6 h-6\"\r\n };\r\n\r\n return (\r\n <motion.button\r\n onClick={toggleTheme}\r\n className={cn(\r\n \"relative rounded-full border transition-all duration-300 ease-in-out focus:outline-none focus:ring-2 focus:ring-zinc-500 focus:ring-offset-2 focus:ring-offset-zinc-900\",\r\n sizeClasses[size],\r\n isDark \r\n ? \"bg-zinc-800 border-zinc-700\" \r\n : \"bg-zinc-700 border-zinc-600\",\r\n className\r\n )}\r\n whileTap={{ scale: 0.95 }}\r\n initial={false}\r\n >\r\n <motion.div\r\n className=\"absolute inset-0 rounded-full\"\r\n animate={{\r\n background: isDark \r\n ? \"linear-gradient(135deg, #27272a 0%, #18181b 100%)\"\r\n : \"linear-gradient(135deg, #3f3f46 0%, #27272a 100%)\"\r\n }}\r\n transition={{ duration: 0.3 }}\r\n />\r\n \r\n <motion.div\r\n className={cn(\r\n \"absolute top-0.5 rounded-full shadow-lg flex items-center justify-center\",\r\n size === \"sm\" ? \"w-5 h-5\" : size === \"md\" ? \"w-6 h-6\" : \"w-7 h-7\",\r\n isDark ? \"bg-zinc-300\" : \"bg-zinc-100\"\r\n )}\r\n animate={{\r\n x: isDark ? (size === \"sm\" ? 24 : size === \"md\" ? 28 : 32) : 2,\r\n }}\r\n transition={{\r\n type: \"spring\",\r\n stiffness: 500,\r\n damping: 30\r\n }}\r\n >\r\n <AnimatePresence mode=\"wait\">\r\n {isDark ? (\r\n <motion.svg\r\n key=\"moon\"\r\n className={cn(\"text-zinc-700\", iconSizes[size])}\r\n fill=\"currentColor\"\r\n viewBox=\"0 0 24 24\"\r\n initial={{ opacity: 0, rotate: -90 }}\r\n animate={{ opacity: 1, rotate: 0 }}\r\n exit={{ opacity: 0, rotate: 90 }}\r\n transition={{ duration: 0.2 }}\r\n >\r\n <path d=\"M21.752 15.002A9.718 9.718 0 0118 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 003 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 009.002-5.998z\" />\r\n </motion.svg>\r\n ) : (\r\n <motion.svg\r\n key=\"sun\"\r\n className={cn(\"text-zinc-600\", iconSizes[size])}\r\n fill=\"currentColor\"\r\n viewBox=\"0 0 24 24\"\r\n initial={{ opacity: 0, rotate: -90 }}\r\n animate={{ opacity: 1, rotate: 0 }}\r\n exit={{ opacity: 0, rotate: 90 }}\r\n transition={{ duration: 0.2 }}\r\n >\r\n <path d=\"M12 2.25a.75.75 0 01.75.75v2.25a.75.75 0 01-1.5 0V3a.75.75 0 01.75-.75zM7.5 12a4.5 4.5 0 119 0 4.5 4.5 0 01-9 0zM18.894 6.166a.75.75 0 00-1.06-1.06l-1.591 1.59a.75.75 0 101.06 1.061l1.591-1.59zM21.75 12a.75.75 0 01-.75.75h-2.25a.75.75 0 010-1.5H21a.75.75 0 01.75.75zM17.834 18.894a.75.75 0 001.06-1.06l-1.59-1.591a.75.75 0 10-1.061 1.06l1.59 1.591zM12 18a.75.75 0 01.75.75V21a.75.75 0 01-1.5 0v-2.25A.75.75 0 0112 18zM7.758 17.303a.75.75 0 00-1.061-1.06l-1.591 1.59a.75.75 0 001.06 1.061l1.591-1.59zM6 12a.75.75 0 01-.75.75H3a.75.75 0 010-1.5h2.25A.75.75 0 016 12zM6.697 7.757a.75.75 0 001.06-1.06l-1.59-1.591a.75.75 0 00-1.061 1.06l1.59 1.591z\" />\r\n </motion.svg>\r\n )}\r\n </AnimatePresence>\r\n </motion.div>\r\n \r\n <motion.div\r\n className=\"absolute inset-0 rounded-full opacity-20\"\r\n animate={{\r\n boxShadow: isDark \r\n ? \"0 0 20px rgba(161, 161, 170, 0.2)\" \r\n : \"0 0 20px rgba(161, 161, 170, 0.3)\"\r\n }}\r\n transition={{ duration: 0.3 }}\r\n />\r\n </motion.button>\r\n );\r\n}\r\n\r\nexport default AnimatedThemeToggler;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\n\r\nfunction cn(...classes: (string | undefined | false)[]) {\r\n return classes.filter(Boolean).join(\" \");\r\n}\r\n\r\ninterface ShimmerEffectProps {\r\n children?: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\nexport function ShimmerEffect({\r\n children,\r\n className,\r\n}: ShimmerEffectProps) {\r\n return (\r\n <div className={cn(\"relative w-full min-h-[500px] flex items-center justify-center overflow-hidden bg-white dark:bg-zinc-900 rounded-xl border border-zinc-200 dark:border-zinc-800\", className)}>\r\n <motion.div\r\n className=\"absolute inset-0\"\r\n style={{\r\n background: \"linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.08) 50%, transparent 100%)\",\r\n }}\r\n animate={{\r\n x: [\"-200%\", \"200%\"],\r\n }}\r\n transition={{\r\n duration: 2.5,\r\n repeat: Infinity,\r\n ease: \"linear\",\r\n }}\r\n />\r\n \r\n <motion.div\r\n className=\"absolute inset-0\"\r\n style={{\r\n background: \"linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.05) 50%, transparent 100%)\",\r\n }}\r\n animate={{\r\n x: [\"-200%\", \"200%\"],\r\n }}\r\n transition={{\r\n duration: 3,\r\n delay: 0.5,\r\n repeat: Infinity,\r\n ease: \"linear\",\r\n }}\r\n />\r\n \r\n <motion.div\r\n className=\"absolute inset-0\"\r\n style={{\r\n background: \"linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.03) 50%, transparent 100%)\",\r\n }}\r\n animate={{\r\n x: [\"-200%\", \"200%\"],\r\n }}\r\n transition={{\r\n duration: 3.5,\r\n delay: 1,\r\n repeat: Infinity,\r\n ease: \"linear\",\r\n }}\r\n />\r\n \r\n <motion.div\r\n className=\"absolute inset-0 hidden dark:block\"\r\n style={{\r\n background: \"linear-gradient(90deg, transparent 0%, rgba(161,161,170,0.15) 50%, transparent 100%)\",\r\n }}\r\n animate={{\r\n x: [\"-200%\", \"200%\"],\r\n }}\r\n transition={{\r\n duration: 2.5,\r\n repeat: Infinity,\r\n ease: \"linear\",\r\n }}\r\n />\r\n \r\n <div className=\"absolute inset-0 opacity-10 dark:opacity-5\" style={{\r\n backgroundImage: \"radial-gradient(circle at 2px 2px, #71717a 1px, transparent 0)\",\r\n backgroundSize: \"40px 40px\"\r\n }} />\r\n \r\n <div className=\"relative z-10 text-center px-8\">\r\n {children || (\r\n <motion.div\r\n initial={{ opacity: 0, y: 20 }}\r\n animate={{ opacity: 1, y: 0 }}\r\n transition={{ duration: 0.8 }}\r\n >\r\n <h2 className=\"text-7xl font-bold text-zinc-900 dark:text-zinc-100 mb-4 tracking-tight\" style={{\r\n fontFamily: \"system-ui, -apple-system, sans-serif\",\r\n letterSpacing: \"-0.02em\"\r\n }}>\r\n SHIMMER WAVE\r\n </h2>\r\n <p className=\"text-xl text-zinc-500 font-light tracking-wide\">\r\n Advanced Shimmer Effect\r\n </p>\r\n </motion.div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default ShimmerEffect;\r\n","\"use client\";\r\n\r\nimport React, { useRef, useLayoutEffect, useState } from \"react\";\r\nimport {\r\n motion,\r\n useScroll,\r\n useSpring,\r\n useTransform,\r\n useMotionValue,\r\n useVelocity,\r\n useAnimationFrame\r\n} from \"framer-motion\";\r\n\r\ninterface VelocityMapping {\r\n input: [number, number];\r\n output: [number, number];\r\n}\r\n\r\ninterface ScrollVelocityProps {\r\n scrollContainerRef?: React.RefObject<HTMLElement>;\r\n texts?: string[];\r\n velocity?: number;\r\n className?: string;\r\n damping?: number;\r\n stiffness?: number;\r\n numCopies?: number;\r\n velocityMapping?: VelocityMapping;\r\n}\r\n\r\nfunction useElementWidth<T extends HTMLElement>(ref: React.RefObject<T | null>): number {\r\n const [width, setWidth] = useState(0);\r\n\r\n useLayoutEffect(() => {\r\n function updateWidth() {\r\n if (ref.current) {\r\n setWidth(ref.current.offsetWidth);\r\n }\r\n }\r\n updateWidth();\r\n window.addEventListener(\"resize\", updateWidth);\r\n return () => window.removeEventListener(\"resize\", updateWidth);\r\n }, [ref]);\r\n\r\n return width;\r\n}\r\n\r\nexport function ScrollVelocity({\r\n scrollContainerRef,\r\n texts = [\"Scroll Velocity\", \"Bynana UI\"],\r\n velocity = 100,\r\n className = \"\",\r\n damping = 50,\r\n stiffness = 400,\r\n numCopies = 6,\r\n velocityMapping = { input: [0, 1000], output: [0, 5] },\r\n}: ScrollVelocityProps) {\r\n function VelocityText({\r\n children,\r\n baseVelocity,\r\n }: {\r\n children: React.ReactNode;\r\n baseVelocity: number;\r\n }) {\r\n const baseX = useMotionValue(0);\r\n const scrollOptions = scrollContainerRef ? { container: scrollContainerRef } : {};\r\n const { scrollY } = useScroll(scrollOptions);\r\n const scrollVelocity = useVelocity(scrollY);\r\n const smoothVelocity = useSpring(scrollVelocity, { damping, stiffness });\r\n const velocityFactor = useTransform(\r\n smoothVelocity,\r\n velocityMapping.input,\r\n velocityMapping.output,\r\n { clamp: false }\r\n );\r\n\r\n const copyRef = useRef<HTMLSpanElement>(null);\r\n const copyWidth = useElementWidth(copyRef);\r\n\r\n function wrap(min: number, max: number, v: number): number {\r\n const range = max - min;\r\n const mod = (((v - min) % range) + range) % range;\r\n return mod + min;\r\n }\r\n\r\n const x = useTransform(baseX, v => {\r\n if (copyWidth === 0) return \"0px\";\r\n return `${wrap(-copyWidth, 0, v)}px`;\r\n });\r\n\r\n const directionFactor = useRef<number>(1);\r\n useAnimationFrame((t, delta) => {\r\n let moveBy = directionFactor.current * baseVelocity * (delta / 1000);\r\n if (velocityFactor.get() < 0) directionFactor.current = -1;\r\n else if (velocityFactor.get() > 0) directionFactor.current = 1;\r\n moveBy += directionFactor.current * moveBy * velocityFactor.get();\r\n baseX.set(baseX.get() + moveBy);\r\n });\r\n\r\n const spans = [];\r\n for (let i = 0; i < numCopies; i++) {\r\n spans.push(\r\n <span className={className} key={i} ref={i === 0 ? copyRef : null}>\r\n {children}\r\n </span>\r\n );\r\n }\r\n\r\n return (\r\n <div className=\"overflow-hidden whitespace-nowrap\">\r\n <motion.div className=\"flex\" style={{ x }}>\r\n {spans}\r\n </motion.div>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <section>\r\n {texts.map((text, index) => (\r\n <VelocityText key={index} baseVelocity={index % 2 !== 0 ? -velocity : velocity}>\r\n {text} \r\n </VelocityText>\r\n ))}\r\n </section>\r\n );\r\n}\r\n\r\nexport default ScrollVelocity;\r\n","\"use client\";\r\n\r\nimport React, { useState, useEffect, useRef } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\n\r\ninterface TrailItem {\r\n id: number;\r\n x: number;\r\n y: number;\r\n angle: number;\r\n randomX?: number;\r\n randomY?: number;\r\n randomRotate?: number;\r\n}\r\n\r\ninterface TextCursorProps {\r\n text?: string;\r\n delay?: number;\r\n spacing?: number;\r\n followMouseDirection?: boolean;\r\n randomFloat?: boolean;\r\n exitDuration?: number;\r\n removalInterval?: number;\r\n maxPoints?: number;\r\n}\r\n\r\nexport function TextCursor({\r\n text = \"⚛️\",\r\n delay = 0.01,\r\n spacing = 100,\r\n followMouseDirection = true,\r\n randomFloat = true,\r\n exitDuration = 0.5,\r\n removalInterval = 30,\r\n maxPoints = 5\r\n}: TextCursorProps) {\r\n const [trail, setTrail] = useState<TrailItem[]>([]);\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const lastMoveTimeRef = useRef<number>(Date.now());\r\n const idCounter = useRef<number>(0);\r\n\r\n const handleMouseMove = (e: MouseEvent) => {\r\n if (!containerRef.current) return;\r\n const rect = containerRef.current.getBoundingClientRect();\r\n const mouseX = e.clientX - rect.left;\r\n const mouseY = e.clientY - rect.top;\r\n\r\n setTrail(prev => {\r\n let newTrail = [...prev];\r\n if (newTrail.length === 0) {\r\n newTrail.push({\r\n id: idCounter.current++,\r\n x: mouseX,\r\n y: mouseY,\r\n angle: 0,\r\n ...(randomFloat && {\r\n randomX: Math.random() * 10 - 5,\r\n randomY: Math.random() * 10 - 5,\r\n randomRotate: Math.random() * 10 - 5\r\n })\r\n });\r\n } else {\r\n const last = newTrail[newTrail.length - 1];\r\n const dx = mouseX - last.x;\r\n const dy = mouseY - last.y;\r\n const distance = Math.sqrt(dx * dx + dy * dy);\r\n if (distance >= spacing) {\r\n let rawAngle = (Math.atan2(dy, dx) * 180) / Math.PI;\r\n if (rawAngle > 90) rawAngle -= 180;\r\n else if (rawAngle < -90) rawAngle += 180;\r\n const computedAngle = followMouseDirection ? rawAngle : 0;\r\n const steps = Math.floor(distance / spacing);\r\n for (let i = 1; i <= steps; i++) {\r\n const t = (spacing * i) / distance;\r\n newTrail.push({\r\n id: idCounter.current++,\r\n x: last.x + dx * t,\r\n y: last.y + dy * t,\r\n angle: computedAngle,\r\n ...(randomFloat && {\r\n randomX: Math.random() * 10 - 5,\r\n randomY: Math.random() * 10 - 5,\r\n randomRotate: Math.random() * 10 - 5\r\n })\r\n });\r\n }\r\n }\r\n }\r\n if (newTrail.length > maxPoints) {\r\n newTrail = newTrail.slice(newTrail.length - maxPoints);\r\n }\r\n return newTrail;\r\n });\r\n lastMoveTimeRef.current = Date.now();\r\n };\r\n\r\n useEffect(() => {\r\n const container = containerRef.current;\r\n if (!container) return;\r\n container.addEventListener(\"mousemove\", handleMouseMove);\r\n return () => container.removeEventListener(\"mousemove\", handleMouseMove);\r\n }, []);\r\n\r\n useEffect(() => {\r\n const interval = setInterval(() => {\r\n if (Date.now() - lastMoveTimeRef.current > 100) {\r\n setTrail(prev => (prev.length > 0 ? prev.slice(1) : prev));\r\n }\r\n }, removalInterval);\r\n return () => clearInterval(interval);\r\n }, [removalInterval]);\r\n\r\n return (\r\n <div ref={containerRef} className=\"w-full h-full min-h-[200px] relative rounded-lg bg-zinc-50 dark:bg-zinc-900/50\">\r\n <div className=\"absolute inset-0 flex items-center justify-center text-zinc-400 text-sm pointer-events-none\">\r\n Move your mouse around\r\n </div>\r\n <AnimatePresence>\r\n {trail.map(item => (\r\n <motion.div\r\n key={item.id}\r\n initial={{ opacity: 0, scale: 1, rotate: item.angle }}\r\n animate={{ opacity: 1, scale: 1, rotate: item.angle }}\r\n exit={{ opacity: 0, scale: 0 }}\r\n transition={{ opacity: { duration: exitDuration, ease: \"easeOut\", delay } }}\r\n className=\"absolute text-2xl pointer-events-none\"\r\n style={{ left: item.x, top: item.y, transform: \"translate(-50%, -50%)\" }}\r\n >\r\n {text}\r\n </motion.div>\r\n ))}\r\n </AnimatePresence>\r\n </div>\r\n );\r\n}\r\n\r\nexport default TextCursor;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\n\r\nfunction cn(...classes: (string | undefined | false)[]) {\r\n return classes.filter(Boolean).join(\" \");\r\n}\r\n\r\ninterface SocialButtonProps {\r\n icon: React.ReactNode;\r\n label: string;\r\n href?: string;\r\n onClick?: () => void;\r\n className?: string;\r\n variant?: \"default\" | \"outline\" | \"ghost\";\r\n}\r\n\r\nexport function SocialButton({\r\n icon,\r\n label,\r\n href,\r\n onClick,\r\n className,\r\n variant = \"default\",\r\n}: SocialButtonProps) {\r\n const variants = {\r\n default: \"bg-zinc-900 dark:bg-zinc-100 text-white dark:text-zinc-900 hover:bg-zinc-800 dark:hover:bg-zinc-200\",\r\n outline: \"border border-zinc-300 dark:border-zinc-700 hover:bg-zinc-100 dark:hover:bg-zinc-800\",\r\n ghost: \"hover:bg-zinc-100 dark:hover:bg-zinc-800\",\r\n };\r\n\r\n const Component = href ? \"a\" : \"button\";\r\n\r\n return (\r\n <motion.div whileHover={{ scale: 1.05 }} whileTap={{ scale: 0.95 }}>\r\n <Component\r\n href={href}\r\n onClick={onClick}\r\n className={cn(\r\n \"inline-flex items-center gap-2 px-4 py-2 rounded-lg font-medium transition-colors\",\r\n variants[variant],\r\n className\r\n )}\r\n target={href ? \"_blank\" : undefined}\r\n rel={href ? \"noopener noreferrer\" : undefined}\r\n >\r\n {icon}\r\n <span>{label}</span>\r\n </Component>\r\n </motion.div>\r\n );\r\n}\r\n\r\nexport default SocialButton;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\n\r\nfunction cn(...classes: (string | undefined | false)[]) {\r\n return classes.filter(Boolean).join(\" \");\r\n}\r\n\r\ninterface V0ButtonProps {\r\n children: React.ReactNode;\r\n onClick?: () => void;\r\n className?: string;\r\n disabled?: boolean;\r\n}\r\n\r\nexport function V0Button({\r\n children,\r\n onClick,\r\n className,\r\n disabled = false,\r\n}: V0ButtonProps) {\r\n return (\r\n <motion.button\r\n onClick={onClick}\r\n disabled={disabled}\r\n className={cn(\r\n \"relative inline-flex items-center justify-center px-6 py-3 overflow-hidden font-medium rounded-xl\",\r\n \"bg-gradient-to-r from-zinc-900 to-zinc-800 dark:from-zinc-100 dark:to-zinc-200\",\r\n \"text-white dark:text-zinc-900\",\r\n \"border border-zinc-700 dark:border-zinc-300\",\r\n \"shadow-lg shadow-zinc-900/20 dark:shadow-zinc-100/20\",\r\n \"transition-all duration-300\",\r\n \"hover:shadow-xl hover:shadow-zinc-900/30 dark:hover:shadow-zinc-100/30\",\r\n \"disabled:opacity-50 disabled:cursor-not-allowed\",\r\n className\r\n )}\r\n whileHover={{ scale: disabled ? 1 : 1.02 }}\r\n whileTap={{ scale: disabled ? 1 : 0.98 }}\r\n >\r\n <motion.span\r\n className=\"absolute inset-0 bg-gradient-to-r from-transparent via-white/10 to-transparent\"\r\n initial={{ x: \"-100%\" }}\r\n whileHover={{ x: \"100%\" }}\r\n transition={{ duration: 0.6, ease: \"easeInOut\" }}\r\n />\r\n <span className=\"relative z-10 flex items-center gap-2\">\r\n {children}\r\n </span>\r\n </motion.button>\r\n );\r\n}\r\n\r\nexport default V0Button;\r\n","\"use client\";\r\n\r\nimport { useMemo } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\n\r\nfunction cn(...classes: (string | undefined | false)[]) {\r\n return classes.filter(Boolean).join(\" \");\r\n}\r\n\r\ninterface ContributionGraphProps {\r\n data?: number[];\r\n weeks?: number;\r\n className?: string;\r\n colors?: string[];\r\n}\r\n\r\nexport function ContributionGraph({\r\n data,\r\n weeks = 52,\r\n className,\r\n colors = [\r\n \"bg-zinc-100 dark:bg-zinc-800\",\r\n \"bg-emerald-200 dark:bg-emerald-900\",\r\n \"bg-emerald-300 dark:bg-emerald-700\",\r\n \"bg-emerald-400 dark:bg-emerald-500\",\r\n \"bg-emerald-500 dark:bg-emerald-400\",\r\n ],\r\n}: ContributionGraphProps) {\r\n const contributions = useMemo(() => {\r\n if (data) return data;\r\n return Array.from({ length: weeks * 7 }, () => Math.floor(Math.random() * 5));\r\n }, [data, weeks]);\r\n\r\n const getColor = (level: number) => colors[Math.min(level, colors.length - 1)];\r\n\r\n return (\r\n <div className={cn(\"overflow-x-auto\", className)}>\r\n <div className=\"flex gap-1\">\r\n {Array.from({ length: weeks }).map((_, weekIndex) => (\r\n <div key={weekIndex} className=\"flex flex-col gap-1\">\r\n {Array.from({ length: 7 }).map((_, dayIndex) => {\r\n const index = weekIndex * 7 + dayIndex;\r\n const level = contributions[index] || 0;\r\n return (\r\n <motion.div\r\n key={dayIndex}\r\n className={cn(\r\n \"w-3 h-3 rounded-sm\",\r\n getColor(level)\r\n )}\r\n initial={{ scale: 0, opacity: 0 }}\r\n animate={{ scale: 1, opacity: 1 }}\r\n transition={{\r\n delay: index * 0.002,\r\n type: \"spring\",\r\n stiffness: 300,\r\n damping: 20,\r\n }}\r\n whileHover={{ scale: 1.3 }}\r\n />\r\n );\r\n })}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default ContributionGraph;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { motion, useMotionValue, useTransform, animate } from \"framer-motion\";\r\n\r\nfunction cn(...classes: (string | undefined | false)[]) {\r\n return classes.filter(Boolean).join(\" \");\r\n}\r\n\r\ninterface ElasticSliderProps {\r\n defaultValue?: number;\r\n min?: number;\r\n max?: number;\r\n step?: number;\r\n onChange?: (value: number) => void;\r\n className?: string;\r\n trackClassName?: string;\r\n thumbClassName?: string;\r\n}\r\n\r\nexport function ElasticSlider({\r\n defaultValue = 50,\r\n min = 0,\r\n max = 100,\r\n step = 1,\r\n onChange,\r\n className,\r\n trackClassName,\r\n thumbClassName,\r\n}: ElasticSliderProps) {\r\n const [value, setValue] = useState(defaultValue);\r\n const [isDragging, setIsDragging] = useState(false);\r\n \r\n const percentage = ((value - min) / (max - min)) * 100;\r\n\r\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const newValue = Number(e.target.value);\r\n setValue(newValue);\r\n onChange?.(newValue);\r\n };\r\n\r\n return (\r\n <div className={cn(\"relative w-full h-12 flex items-center\", className)}>\r\n <div className={cn(\r\n \"absolute w-full h-2 rounded-full bg-zinc-200 dark:bg-zinc-800\",\r\n trackClassName\r\n )}>\r\n <motion.div\r\n className=\"h-full rounded-full bg-zinc-900 dark:bg-zinc-100\"\r\n style={{ width: `${percentage}%` }}\r\n animate={{ scaleY: isDragging ? 1.5 : 1 }}\r\n transition={{ type: \"spring\", stiffness: 400, damping: 25 }}\r\n />\r\n </div>\r\n \r\n <motion.div\r\n className={cn(\r\n \"absolute w-6 h-6 rounded-full bg-zinc-900 dark:bg-zinc-100 shadow-lg cursor-grab\",\r\n \"border-2 border-white dark:border-zinc-900\",\r\n thumbClassName\r\n )}\r\n style={{ left: `calc(${percentage}% - 12px)` }}\r\n animate={{ \r\n scale: isDragging ? 1.3 : 1,\r\n y: isDragging ? -4 : 0\r\n }}\r\n transition={{ type: \"spring\", stiffness: 500, damping: 30 }}\r\n />\r\n \r\n <input\r\n type=\"range\"\r\n min={min}\r\n max={max}\r\n step={step}\r\n value={value}\r\n onChange={handleChange}\r\n onMouseDown={() => setIsDragging(true)}\r\n onMouseUp={() => setIsDragging(false)}\r\n onTouchStart={() => setIsDragging(true)}\r\n onTouchEnd={() => setIsDragging(false)}\r\n className=\"absolute w-full h-full opacity-0 cursor-grab active:cursor-grabbing\"\r\n />\r\n \r\n <motion.span\r\n className=\"absolute -top-8 left-1/2 -translate-x-1/2 text-sm font-medium text-zinc-900 dark:text-zinc-100\"\r\n animate={{ opacity: isDragging ? 1 : 0, y: isDragging ? 0 : 10 }}\r\n transition={{ duration: 0.2 }}\r\n >\r\n {value}\r\n </motion.span>\r\n </div>\r\n );\r\n}\r\n\r\nexport default ElasticSlider;\r\n","\"use client\";\r\n\r\nimport React, { useState } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface FlowingMenuItem {\r\n link: string;\r\n text: string;\r\n image?: string;\r\n}\r\n\r\ninterface FlowingMenuProps {\r\n items?: FlowingMenuItem[];\r\n className?: string;\r\n}\r\n\r\nconst DEFAULT_ITEMS: FlowingMenuItem[] = [\r\n { link: \"#\", text: \"About\", image: \"https://images.unsplash.com/photo-1618005182384-a83a8bd57fbe?w=800&q=80\" },\r\n { link: \"#\", text: \"Services\", image: \"https://images.unsplash.com/photo-1618556450994-a6a128ef0d9d?w=800&q=80\" },\r\n { link: \"#\", text: \"Work\", image: \"https://images.unsplash.com/photo-1618556450991-2f1af64e8191?w=800&q=80\" },\r\n { link: \"#\", text: \"Contact\", image: \"https://images.unsplash.com/photo-1618556450783-953e03f0bb7a?w=800&q=80\" },\r\n];\r\n\r\nexport function FlowingMenu({ items = DEFAULT_ITEMS, className = \"\" }: FlowingMenuProps) {\r\n const [activeIndex, setActiveIndex] = useState<number>(-1);\r\n const [hoveredIndex, setHoveredIndex] = useState<number>(-1);\r\n\r\n return (\r\n <div className={cn(\"flex gap-8\", className)}>\r\n {/* Menu */}\r\n <div className=\"flex-1\">\r\n <div className=\"mb-6\">\r\n <h2 className=\"text-2xl font-bold text-white\">Menu</h2>\r\n <p className=\"text-sm text-zinc-400\">Explore our pages</p>\r\n </div>\r\n\r\n <nav className=\"flex flex-col gap-2\">\r\n {items.map((item, index) => (\r\n <a\r\n key={index}\r\n href={item.link}\r\n className={cn(\r\n \"group flex items-center gap-4 py-4 px-4 rounded-lg transition-all duration-300\",\r\n hoveredIndex === index\r\n ? \"bg-zinc-800 translate-x-4\"\r\n : \"bg-transparent\"\r\n )}\r\n onMouseEnter={() => setHoveredIndex(index)}\r\n onMouseLeave={() => setHoveredIndex(-1)}\r\n onClick={() => setActiveIndex(index)}\r\n >\r\n <span className=\"text-sm text-zinc-500 font-mono\">\r\n {String(index + 1).padStart(2, \"0\")}\r\n </span>\r\n <span\r\n className={cn(\r\n \"text-xl font-medium transition-colors\",\r\n hoveredIndex === index ? \"text-white\" : \"text-zinc-400\"\r\n )}\r\n >\r\n {item.text}\r\n </span>\r\n <span\r\n className={cn(\r\n \"ml-auto text-xl transition-all duration-300\",\r\n hoveredIndex === index\r\n ? \"opacity-100 translate-x-0\"\r\n : \"opacity-0 -translate-x-2\"\r\n )}\r\n >\r\n →\r\n </span>\r\n </a>\r\n ))}\r\n </nav>\r\n </div>\r\n\r\n {/* Preview */}\r\n <div\r\n className={cn(\r\n \"w-80 h-80 rounded-2xl overflow-hidden transition-all duration-500\",\r\n hoveredIndex >= 0 ? \"opacity-100 scale-100\" : \"opacity-0 scale-95\"\r\n )}\r\n >\r\n {hoveredIndex >= 0 && items[hoveredIndex]?.image && (\r\n <div className=\"relative w-full h-full\">\r\n <img\r\n src={items[hoveredIndex].image}\r\n alt={items[hoveredIndex].text}\r\n className=\"w-full h-full object-cover\"\r\n />\r\n <div className=\"absolute inset-0 bg-gradient-to-t from-black/60 to-transparent\" />\r\n <h3 className=\"absolute bottom-4 left-4 text-2xl font-bold text-white\">\r\n {items[hoveredIndex].text}\r\n </h3>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default FlowingMenu;\r\n","\"use client\";\r\n\r\nimport React, { useState } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface GooeyNavItem {\r\n label: string;\r\n href: string;\r\n}\r\n\r\nexport interface GooeyNavProps {\r\n items?: GooeyNavItem[];\r\n className?: string;\r\n activeColor?: string;\r\n inactiveColor?: string;\r\n backgroundColor?: string;\r\n}\r\n\r\nconst DEFAULT_ITEMS: GooeyNavItem[] = [\r\n { label: \"Home\", href: \"#\" },\r\n { label: \"About\", href: \"#\" },\r\n { label: \"Services\", href: \"#\" },\r\n { label: \"Contact\", href: \"#\" },\r\n];\r\n\r\nexport function GooeyNav({\r\n items = DEFAULT_ITEMS,\r\n className = \"\",\r\n activeColor = \"#8b5cf6\",\r\n inactiveColor = \"#a1a1aa\",\r\n backgroundColor = \"#18181b\",\r\n}: GooeyNavProps) {\r\n const [activeIndex, setActiveIndex] = useState<number>(0);\r\n\r\n const handleClick = (index: number, event: React.MouseEvent<HTMLAnchorElement>) => {\r\n event.preventDefault();\r\n setActiveIndex(index);\r\n };\r\n\r\n return (\r\n <div className={cn(\"relative\", className)}>\r\n <nav\r\n className=\"relative rounded-full px-2 py-2\"\r\n style={{ backgroundColor }}\r\n >\r\n <ul className=\"flex items-center gap-1\">\r\n {items.map((item, index) => (\r\n <li key={index} className=\"relative\">\r\n <a\r\n href={item.href}\r\n className={cn(\r\n \"relative z-10 block px-4 py-2 text-sm font-medium rounded-full transition-all duration-300\",\r\n activeIndex === index && \"text-white\"\r\n )}\r\n style={{\r\n color: activeIndex === index ? \"#fff\" : inactiveColor,\r\n }}\r\n onClick={(e) => handleClick(index, e)}\r\n >\r\n {item.label}\r\n {activeIndex === index && (\r\n <span\r\n className=\"absolute inset-0 rounded-full -z-10 animate-pulse\"\r\n style={{\r\n backgroundColor: activeColor,\r\n boxShadow: `0 0 20px ${activeColor}`,\r\n }}\r\n />\r\n )}\r\n </a>\r\n </li>\r\n ))}\r\n </ul>\r\n </nav>\r\n </div>\r\n );\r\n}\r\n\r\nexport default GooeyNav;\r\n","\"use client\";\r\n\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\nexport type PillNavItem = {\r\n label: string;\r\n href: string;\r\n ariaLabel?: string;\r\n};\r\n\r\nexport interface PillNavProps {\r\n logo?: string;\r\n logoAlt?: string;\r\n items: PillNavItem[];\r\n activeHref?: string;\r\n className?: string;\r\n baseColor?: string;\r\n pillColor?: string;\r\n hoveredPillTextColor?: string;\r\n pillTextColor?: string;\r\n onMobileMenuClick?: () => void;\r\n}\r\n\r\nexport function PillNav({\r\n logo,\r\n logoAlt = \"Logo\",\r\n items,\r\n activeHref,\r\n className = \"\",\r\n baseColor = \"#fff\",\r\n pillColor = \"#000000\",\r\n hoveredPillTextColor = \"#ffffff\",\r\n pillTextColor,\r\n onMobileMenuClick,\r\n}: PillNavProps) {\r\n const resolvedPillTextColor = pillTextColor ?? baseColor;\r\n const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);\r\n const [hoveredIndex, setHoveredIndex] = useState<number | null>(null);\r\n\r\n const toggleMobileMenu = () => {\r\n setIsMobileMenuOpen(!isMobileMenuOpen);\r\n onMobileMenuClick?.();\r\n };\r\n\r\n return (\r\n <div className={cn(\"relative\", className)}>\r\n <nav\r\n className=\"flex items-center gap-4 px-4 py-2 rounded-full\"\r\n style={{ backgroundColor: pillColor }}\r\n aria-label=\"Primary\"\r\n >\r\n {logo && (\r\n <a href={items?.[0]?.href || \"#\"} aria-label=\"Home\" className=\"flex-shrink-0\">\r\n <img src={logo} alt={logoAlt} className=\"h-8 w-8 object-contain\" />\r\n </a>\r\n )}\r\n\r\n {/* Desktop Navigation */}\r\n <div className=\"hidden md:flex items-center gap-1\">\r\n <ul className=\"flex items-center gap-1\" role=\"menubar\">\r\n {items.map((item, i) => (\r\n <li key={item.href} role=\"none\">\r\n <a\r\n role=\"menuitem\"\r\n href={item.href}\r\n className={cn(\r\n \"relative px-4 py-2 rounded-full text-sm font-medium transition-all duration-300\",\r\n activeHref === item.href && \"font-semibold\"\r\n )}\r\n style={{\r\n color: hoveredIndex === i ? hoveredPillTextColor : resolvedPillTextColor,\r\n backgroundColor: hoveredIndex === i ? baseColor : \"transparent\",\r\n }}\r\n aria-label={item.ariaLabel || item.label}\r\n onMouseEnter={() => setHoveredIndex(i)}\r\n onMouseLeave={() => setHoveredIndex(null)}\r\n >\r\n {item.label}\r\n </a>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n\r\n {/* Mobile Menu Button */}\r\n <button\r\n className=\"md:hidden flex flex-col gap-1 p-2\"\r\n onClick={toggleMobileMenu}\r\n aria-label=\"Toggle menu\"\r\n >\r\n <span\r\n className={cn(\r\n \"w-5 h-0.5 transition-all duration-300\",\r\n isMobileMenuOpen && \"rotate-45 translate-y-1.5\"\r\n )}\r\n style={{ backgroundColor: baseColor }}\r\n />\r\n <span\r\n className={cn(\r\n \"w-5 h-0.5 transition-all duration-300\",\r\n isMobileMenuOpen && \"-rotate-45 -translate-y-1\"\r\n )}\r\n style={{ backgroundColor: baseColor }}\r\n />\r\n </button>\r\n </nav>\r\n\r\n {/* Mobile Menu */}\r\n {isMobileMenuOpen && (\r\n <div\r\n className=\"md:hidden absolute top-full left-0 right-0 mt-2 rounded-xl p-4 shadow-lg\"\r\n style={{ backgroundColor: pillColor }}\r\n >\r\n <ul className=\"flex flex-col gap-2\">\r\n {items.map((item) => (\r\n <li key={item.href}>\r\n <a\r\n href={item.href}\r\n className={cn(\r\n \"block px-4 py-2 rounded-lg text-sm font-medium transition-colors\",\r\n activeHref === item.href && \"font-semibold\"\r\n )}\r\n style={{ color: resolvedPillTextColor }}\r\n onClick={() => setIsMobileMenuOpen(false)}\r\n >\r\n {item.label}\r\n </a>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nexport default PillNav;\r\n","\"use client\";\r\n\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface SmoothDrawerProps {\r\n trigger?: React.ReactNode;\r\n title?: string;\r\n description?: string;\r\n children?: React.ReactNode;\r\n className?: string;\r\n side?: \"left\" | \"right\" | \"top\" | \"bottom\";\r\n}\r\n\r\nexport function SmoothDrawer({\r\n trigger,\r\n title = \"Drawer Title\",\r\n description,\r\n children,\r\n className,\r\n side = \"right\",\r\n}: SmoothDrawerProps) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n useEffect(() => {\r\n if (isOpen) {\r\n document.body.style.overflow = \"hidden\";\r\n } else {\r\n document.body.style.overflow = \"\";\r\n }\r\n return () => {\r\n document.body.style.overflow = \"\";\r\n };\r\n }, [isOpen]);\r\n\r\n const sideStyles = {\r\n left: \"left-0 top-0 h-full w-80 -translate-x-full data-[open=true]:translate-x-0\",\r\n right: \"right-0 top-0 h-full w-80 translate-x-full data-[open=true]:translate-x-0\",\r\n top: \"top-0 left-0 w-full h-80 -translate-y-full data-[open=true]:translate-y-0\",\r\n bottom: \"bottom-0 left-0 w-full h-80 translate-y-full data-[open=true]:translate-y-0\",\r\n };\r\n\r\n return (\r\n <>\r\n {/* Trigger */}\r\n <div onClick={() => setIsOpen(true)} className=\"cursor-pointer\">\r\n {trigger || (\r\n <button className=\"px-4 py-2 bg-zinc-900 dark:bg-white text-white dark:text-zinc-900 rounded-lg font-medium hover:opacity-90 transition-opacity\">\r\n Open Drawer\r\n </button>\r\n )}\r\n </div>\r\n\r\n {/* Overlay */}\r\n {isOpen && (\r\n <div\r\n className=\"fixed inset-0 z-50 bg-black/50 backdrop-blur-sm transition-opacity duration-300\"\r\n onClick={() => setIsOpen(false)}\r\n />\r\n )}\r\n\r\n {/* Drawer */}\r\n <div\r\n data-open={isOpen}\r\n className={cn(\r\n \"fixed z-50 bg-white dark:bg-zinc-900 shadow-xl transition-transform duration-300 ease-out\",\r\n sideStyles[side],\r\n className\r\n )}\r\n >\r\n <div className=\"flex flex-col h-full\">\r\n {/* Header */}\r\n <div className=\"flex items-center justify-between p-4 border-b border-zinc-200 dark:border-zinc-800\">\r\n <div>\r\n <h2 className=\"text-lg font-semibold text-zinc-900 dark:text-white\">\r\n {title}\r\n </h2>\r\n {description && (\r\n <p className=\"text-sm text-zinc-500 dark:text-zinc-400\">\r\n {description}\r\n </p>\r\n )}\r\n </div>\r\n <button\r\n onClick={() => setIsOpen(false)}\r\n className=\"p-2 rounded-lg hover:bg-zinc-100 dark:hover:bg-zinc-800 transition-colors\"\r\n aria-label=\"Close drawer\"\r\n >\r\n <svg\r\n className=\"w-5 h-5 text-zinc-500\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n viewBox=\"0 0 24 24\"\r\n >\r\n <path\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n strokeWidth={2}\r\n d=\"M6 18L18 6M6 6l12 12\"\r\n />\r\n </svg>\r\n </button>\r\n </div>\r\n\r\n {/* Content */}\r\n <div className=\"flex-1 overflow-auto p-4\">{children}</div>\r\n </div>\r\n </div>\r\n </>\r\n );\r\n}\r\n\r\nexport default SmoothDrawer;\r\n","\"use client\";\r\n\r\nimport React, { useState, useRef, useLayoutEffect } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface TabItem {\r\n id: string;\r\n title: string;\r\n content?: React.ReactNode;\r\n color?: string;\r\n}\r\n\r\ninterface SmoothTabProps {\r\n items?: TabItem[];\r\n defaultTabId?: string;\r\n className?: string;\r\n activeColor?: string;\r\n onChange?: (tabId: string) => void;\r\n}\r\n\r\nconst DEFAULT_TABS: TabItem[] = [\r\n { id: \"tab1\", title: \"Tab 1\", color: \"bg-blue-500\" },\r\n { id: \"tab2\", title: \"Tab 2\", color: \"bg-purple-500\" },\r\n { id: \"tab3\", title: \"Tab 3\", color: \"bg-emerald-500\" },\r\n { id: \"tab4\", title: \"Tab 4\", color: \"bg-amber-500\" },\r\n];\r\n\r\nexport function SmoothTab({\r\n items = DEFAULT_TABS,\r\n defaultTabId,\r\n className,\r\n activeColor = \"bg-blue-500\",\r\n onChange,\r\n}: SmoothTabProps) {\r\n const [selected, setSelected] = useState<string>(defaultTabId || items[0]?.id || \"\");\r\n const [dimensions, setDimensions] = useState({ width: 0, left: 0 });\r\n const buttonRefs = useRef<Map<string, HTMLButtonElement>>(new Map());\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n\r\n useLayoutEffect(() => {\r\n const updateDimensions = () => {\r\n const selectedButton = buttonRefs.current.get(selected);\r\n const container = containerRef.current;\r\n\r\n if (selectedButton && container) {\r\n const rect = selectedButton.getBoundingClientRect();\r\n const containerRect = container.getBoundingClientRect();\r\n\r\n setDimensions({\r\n width: rect.width,\r\n left: rect.left - containerRect.left,\r\n });\r\n }\r\n };\r\n\r\n requestAnimationFrame(updateDimensions);\r\n window.addEventListener(\"resize\", updateDimensions);\r\n return () => window.removeEventListener(\"resize\", updateDimensions);\r\n }, [selected]);\r\n\r\n const handleTabClick = (tabId: string) => {\r\n setSelected(tabId);\r\n onChange?.(tabId);\r\n };\r\n\r\n const selectedItem = items.find((item) => item.id === selected);\r\n\r\n return (\r\n <div className={cn(\"flex flex-col\", className)}>\r\n {/* Content Area */}\r\n {selectedItem?.content && (\r\n <div className=\"mb-4 p-6 bg-zinc-100 dark:bg-zinc-900 rounded-lg min-h-[200px]\">\r\n {selectedItem.content}\r\n </div>\r\n )}\r\n\r\n {/* Tab Bar */}\r\n <div\r\n ref={containerRef}\r\n role=\"tablist\"\r\n className={cn(\r\n \"relative flex items-center gap-1 p-1\",\r\n \"bg-zinc-100 dark:bg-zinc-900 rounded-xl\",\r\n \"border border-zinc-200 dark:border-zinc-800\"\r\n )}\r\n >\r\n {/* Sliding Background */}\r\n <div\r\n className={cn(\r\n \"absolute rounded-lg transition-all duration-300 ease-out\",\r\n selectedItem?.color || activeColor\r\n )}\r\n style={{\r\n width: dimensions.width - 8,\r\n left: dimensions.left + 4,\r\n height: \"calc(100% - 8px)\",\r\n top: \"4px\",\r\n }}\r\n />\r\n\r\n {/* Tab Buttons */}\r\n {items.map((item) => {\r\n const isSelected = selected === item.id;\r\n return (\r\n <button\r\n key={item.id}\r\n ref={(el) => {\r\n if (el) buttonRefs.current.set(item.id, el);\r\n else buttonRefs.current.delete(item.id);\r\n }}\r\n type=\"button\"\r\n role=\"tab\"\r\n aria-selected={isSelected}\r\n onClick={() => handleTabClick(item.id)}\r\n className={cn(\r\n \"relative z-10 flex-1 px-4 py-2 rounded-lg\",\r\n \"text-sm font-medium transition-colors duration-300\",\r\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500\",\r\n isSelected\r\n ? \"text-white\"\r\n : \"text-zinc-600 dark:text-zinc-400 hover:text-zinc-900 dark:hover:text-zinc-100\"\r\n )}\r\n >\r\n {item.title}\r\n </button>\r\n );\r\n })}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default SmoothTab;\r\n","\"use client\";\r\n\r\nimport React, { useEffect, useRef, ReactNode } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface DecayCardProps {\r\n width?: number;\r\n height?: number;\r\n image?: string;\r\n children?: ReactNode;\r\n className?: string;\r\n}\r\n\r\nexport function DecayCard({\r\n width = 300,\r\n height = 400,\r\n image = \"https://picsum.photos/300/400?grayscale\",\r\n children,\r\n className,\r\n}: DecayCardProps) {\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const displacementMapRef = useRef<SVGFEDisplacementMapElement>(null);\r\n const cursor = useRef({ x: 0, y: 0 });\r\n const cachedCursor = useRef({ x: 0, y: 0 });\r\n const imgTransforms = useRef({ x: 0, y: 0, rz: 0 });\r\n const displacementScale = useRef(0);\r\n const animationRef = useRef<number>();\r\n\r\n useEffect(() => {\r\n if (typeof window === \"undefined\") return;\r\n\r\n cursor.current = { x: window.innerWidth / 2, y: window.innerHeight / 2 };\r\n cachedCursor.current = { ...cursor.current };\r\n\r\n const lerp = (a: number, b: number, n: number) => (1 - n) * a + n * b;\r\n const map = (x: number, a: number, b: number, c: number, d: number) =>\r\n ((x - a) * (d - c)) / (b - a) + c;\r\n const distance = (x1: number, x2: number, y1: number, y2: number) =>\r\n Math.hypot(x1 - x2, y1 - y2);\r\n\r\n const handleMouseMove = (ev: MouseEvent) => {\r\n cursor.current = { x: ev.clientX, y: ev.clientY };\r\n };\r\n\r\n window.addEventListener(\"mousemove\", handleMouseMove);\r\n\r\n const render = () => {\r\n const winWidth = window.innerWidth;\r\n const winHeight = window.innerHeight;\r\n\r\n let targetX = lerp(\r\n imgTransforms.current.x,\r\n map(cursor.current.x, 0, winWidth, -120, 120),\r\n 0.1\r\n );\r\n let targetY = lerp(\r\n imgTransforms.current.y,\r\n map(cursor.current.y, 0, winHeight, -120, 120),\r\n 0.1\r\n );\r\n let targetRz = lerp(\r\n imgTransforms.current.rz,\r\n map(cursor.current.x, 0, winWidth, -10, 10),\r\n 0.1\r\n );\r\n\r\n const bound = 50;\r\n if (targetX > bound) targetX = bound + (targetX - bound) * 0.2;\r\n if (targetX < -bound) targetX = -bound + (targetX + bound) * 0.2;\r\n if (targetY > bound) targetY = bound + (targetY - bound) * 0.2;\r\n if (targetY < -bound) targetY = -bound + (targetY + bound) * 0.2;\r\n\r\n imgTransforms.current = { x: targetX, y: targetY, rz: targetRz };\r\n\r\n if (containerRef.current) {\r\n containerRef.current.style.transform = `translate(${targetX}px, ${targetY}px) rotateZ(${targetRz}deg)`;\r\n }\r\n\r\n const cursorTravelledDistance = distance(\r\n cachedCursor.current.x,\r\n cursor.current.x,\r\n cachedCursor.current.y,\r\n cursor.current.y\r\n );\r\n\r\n displacementScale.current = lerp(\r\n displacementScale.current,\r\n map(cursorTravelledDistance, 0, 200, 0, 400),\r\n 0.06\r\n );\r\n\r\n if (displacementMapRef.current) {\r\n displacementMapRef.current.setAttribute(\r\n \"scale\",\r\n String(displacementScale.current)\r\n );\r\n }\r\n\r\n cachedCursor.current = { ...cursor.current };\r\n animationRef.current = requestAnimationFrame(render);\r\n };\r\n\r\n render();\r\n\r\n return () => {\r\n window.removeEventListener(\"mousemove\", handleMouseMove);\r\n if (animationRef.current) {\r\n cancelAnimationFrame(animationRef.current);\r\n }\r\n };\r\n }, []);\r\n\r\n const filterId = `imgFilter-${Math.random().toString(36).substr(2, 9)}`;\r\n\r\n return (\r\n <div\r\n className={cn(\"relative\", className)}\r\n style={{ width: `${width}px`, height: `${height}px` }}\r\n ref={containerRef}\r\n >\r\n <svg\r\n viewBox=\"-60 -75 720 900\"\r\n preserveAspectRatio=\"xMidYMid slice\"\r\n className=\"w-full h-full\"\r\n >\r\n <defs>\r\n <filter id={filterId}>\r\n <feTurbulence\r\n type=\"turbulence\"\r\n baseFrequency=\"0.015\"\r\n numOctaves=\"5\"\r\n seed=\"4\"\r\n stitchTiles=\"stitch\"\r\n x=\"0%\"\r\n y=\"0%\"\r\n width=\"100%\"\r\n height=\"100%\"\r\n result=\"turbulence1\"\r\n />\r\n <feDisplacementMap\r\n ref={displacementMapRef}\r\n in=\"SourceGraphic\"\r\n in2=\"turbulence1\"\r\n scale=\"0\"\r\n xChannelSelector=\"R\"\r\n yChannelSelector=\"B\"\r\n x=\"0%\"\r\n y=\"0%\"\r\n width=\"100%\"\r\n height=\"100%\"\r\n result=\"displacementMap3\"\r\n />\r\n </filter>\r\n </defs>\r\n <g>\r\n <image\r\n href={image}\r\n x=\"0\"\r\n y=\"0\"\r\n width=\"600\"\r\n height=\"750\"\r\n filter={`url(#${filterId})`}\r\n preserveAspectRatio=\"xMidYMid slice\"\r\n />\r\n </g>\r\n </svg>\r\n {children && (\r\n <div className=\"absolute inset-0 flex items-end p-6\">\r\n <div className=\"text-white\">{children}</div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nexport default DecayCard;\r\n","\"use client\";\r\n\r\nimport React, { useId } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\nconst GLASS_SHADOW =\r\n \"shadow-[0_0_6px_rgba(0,0,0,0.03),0_2px_6px_rgba(0,0,0,0.08),inset_3px_3px_0.5px_-3px_rgba(0,0,0,0.9),inset_-3px_-3px_0.5px_-3px_rgba(0,0,0,0.85),inset_1px_1px_1px_-0.5px_rgba(0,0,0,0.6),inset_-1px_-1px_1px_-0.5px_rgba(0,0,0,0.6),inset_0_0_6px_6px_rgba(0,0,0,0.12),inset_0_0_2px_2px_rgba(0,0,0,0.06),0_0_12px_rgba(255,255,255,0.15)] dark:shadow-[0_0_8px_rgba(0,0,0,0.03),0_2px_6px_rgba(0,0,0,0.08),inset_3px_3px_0.5px_-3.5px_rgba(255,255,255,0.09),inset_-3px_-3px_0.5px_-3.5px_rgba(255,255,255,0.85),inset_1px_1px_1px_-0.5px_rgba(255,255,255,0.6),inset_-1px_-1px_1px_-0.5px_rgba(255,255,255,0.6),inset_0_0_6px_6px_rgba(255,255,255,0.12),inset_0_0_2px_2px_rgba(255,255,255,0.06),0_0_12px_rgba(0,0,0,0.15)]\";\r\n\r\ninterface GlassFilterProps {\r\n id: string;\r\n scale?: number;\r\n}\r\n\r\nconst GlassFilter = React.memo(({ id, scale = 30 }: GlassFilterProps) => (\r\n <svg className=\"hidden\">\r\n <title>Glass Effect Filter</title>\r\n <defs>\r\n <filter\r\n colorInterpolationFilters=\"sRGB\"\r\n height=\"200%\"\r\n id={id}\r\n width=\"200%\"\r\n x=\"-50%\"\r\n y=\"-50%\"\r\n >\r\n <feTurbulence\r\n baseFrequency=\"0.05 0.05\"\r\n numOctaves=\"1\"\r\n result=\"turbulence\"\r\n seed=\"1\"\r\n type=\"fractalNoise\"\r\n />\r\n <feGaussianBlur in=\"turbulence\" result=\"blurredNoise\" stdDeviation=\"2\" />\r\n <feDisplacementMap\r\n in=\"SourceGraphic\"\r\n in2=\"blurredNoise\"\r\n result=\"displaced\"\r\n scale={scale}\r\n xChannelSelector=\"R\"\r\n yChannelSelector=\"B\"\r\n />\r\n <feGaussianBlur in=\"displaced\" result=\"finalBlur\" stdDeviation=\"4\" />\r\n <feComposite in=\"finalBlur\" in2=\"finalBlur\" operator=\"over\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n));\r\nGlassFilter.displayName = \"GlassFilter\";\r\n\r\ninterface LiquidGlassCardProps extends React.HTMLAttributes<HTMLDivElement> {\r\n glassSize?: \"sm\" | \"default\" | \"lg\";\r\n glassEffect?: boolean;\r\n}\r\n\r\nexport function LiquidGlassCard({\r\n className,\r\n glassSize = \"default\",\r\n glassEffect = true,\r\n children,\r\n ...props\r\n}: LiquidGlassCardProps) {\r\n const filterId = useId();\r\n\r\n const sizeClasses = {\r\n sm: \"p-4\",\r\n default: \"p-6\",\r\n lg: \"p-8\",\r\n };\r\n\r\n return (\r\n <div\r\n className={cn(\r\n \"group relative overflow-hidden rounded-lg border border-zinc-200 dark:border-zinc-800\",\r\n \"bg-white/20 dark:bg-zinc-900/20 backdrop-blur-[2px]\",\r\n \"transition-all duration-300\",\r\n sizeClasses[glassSize],\r\n className\r\n )}\r\n {...props}\r\n >\r\n <div\r\n className={cn(\r\n \"pointer-events-none absolute inset-0 rounded-lg transition-all\",\r\n GLASS_SHADOW\r\n )}\r\n />\r\n\r\n {glassEffect && (\r\n <>\r\n <div\r\n className=\"-z-10 pointer-events-none absolute inset-0 overflow-hidden rounded-lg\"\r\n style={{ backdropFilter: `url(\"#${filterId}\")` }}\r\n />\r\n <GlassFilter id={filterId} scale={30} />\r\n </>\r\n )}\r\n\r\n <div className=\"relative z-10\">{children}</div>\r\n\r\n <div className=\"pointer-events-none absolute inset-0 z-20 rounded-lg bg-gradient-to-r from-transparent via-black/5 to-transparent opacity-0 transition-opacity duration-200 group-hover:opacity-100 dark:via-white/5\" />\r\n </div>\r\n );\r\n}\r\n\r\ninterface LiquidButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n variant?: \"default\" | \"ghost\";\r\n}\r\n\r\nexport function LiquidButton({\r\n className,\r\n variant = \"default\",\r\n children,\r\n ...props\r\n}: LiquidButtonProps) {\r\n const filterId = useId();\r\n\r\n return (\r\n <>\r\n <button\r\n className={cn(\r\n \"relative px-4 py-2 rounded-full font-medium transition-transform duration-300 hover:scale-105\",\r\n variant === \"default\" &&\r\n \"bg-zinc-900 dark:bg-white text-white dark:text-zinc-900\",\r\n variant === \"ghost\" &&\r\n \"bg-transparent text-zinc-700 dark:text-zinc-300 hover:bg-zinc-200/80 dark:hover:bg-zinc-800/80\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <div\r\n className={cn(\r\n \"pointer-events-none absolute inset-0 rounded-full transition-all\",\r\n GLASS_SHADOW\r\n )}\r\n />\r\n <div\r\n className=\"-z-10 pointer-events-none absolute inset-0 isolate overflow-hidden rounded-full\"\r\n style={{ backdropFilter: `url(\"#${filterId}\")` }}\r\n />\r\n <span className=\"relative z-10\">{children}</span>\r\n </button>\r\n <GlassFilter id={filterId} scale={70} />\r\n </>\r\n );\r\n}\r\n\r\nexport default LiquidGlassCard;\r\n","\"use client\";\r\n\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface TargetCursorProps {\r\n targetSelector?: string;\r\n spinDuration?: number;\r\n hideDefaultCursor?: boolean;\r\n color?: string;\r\n className?: string;\r\n}\r\n\r\nexport function TargetCursor({\r\n targetSelector = \".cursor-target\",\r\n spinDuration = 2,\r\n hideDefaultCursor = true,\r\n color = \"#000000\",\r\n className,\r\n}: TargetCursorProps) {\r\n const cursorRef = useRef<HTMLDivElement>(null);\r\n const dotRef = useRef<HTMLDivElement>(null);\r\n const [position, setPosition] = useState({ x: 0, y: 0 });\r\n const [isHovering, setIsHovering] = useState(false);\r\n const [rotation, setRotation] = useState(0);\r\n const animationRef = useRef<number>();\r\n\r\n useEffect(() => {\r\n if (typeof window === \"undefined\") return;\r\n\r\n const originalCursor = document.body.style.cursor;\r\n if (hideDefaultCursor) {\r\n document.body.style.cursor = \"none\";\r\n }\r\n\r\n setPosition({ x: window.innerWidth / 2, y: window.innerHeight / 2 });\r\n\r\n const handleMouseMove = (e: MouseEvent) => {\r\n setPosition({ x: e.clientX, y: e.clientY });\r\n };\r\n\r\n const handleMouseOver = (e: MouseEvent) => {\r\n const target = e.target as Element;\r\n if (target.matches(targetSelector) || target.closest(targetSelector)) {\r\n setIsHovering(true);\r\n }\r\n };\r\n\r\n const handleMouseOut = (e: MouseEvent) => {\r\n const target = e.target as Element;\r\n if (target.matches(targetSelector) || target.closest(targetSelector)) {\r\n setIsHovering(false);\r\n }\r\n };\r\n\r\n window.addEventListener(\"mousemove\", handleMouseMove);\r\n window.addEventListener(\"mouseover\", handleMouseOver);\r\n window.addEventListener(\"mouseout\", handleMouseOut);\r\n\r\n // Rotation animation\r\n let startTime: number;\r\n const animate = (timestamp: number) => {\r\n if (!startTime) startTime = timestamp;\r\n const elapsed = timestamp - startTime;\r\n const newRotation = (elapsed / (spinDuration * 1000)) * 360;\r\n setRotation(newRotation % 360);\r\n animationRef.current = requestAnimationFrame(animate);\r\n };\r\n animationRef.current = requestAnimationFrame(animate);\r\n\r\n return () => {\r\n window.removeEventListener(\"mousemove\", handleMouseMove);\r\n window.removeEventListener(\"mouseover\", handleMouseOver);\r\n window.removeEventListener(\"mouseout\", handleMouseOut);\r\n document.body.style.cursor = originalCursor;\r\n if (animationRef.current) {\r\n cancelAnimationFrame(animationRef.current);\r\n }\r\n };\r\n }, [targetSelector, spinDuration, hideDefaultCursor]);\r\n\r\n const cornerSize = 12;\r\n const borderWidth = 3;\r\n\r\n return (\r\n <div\r\n ref={cursorRef}\r\n className={cn(\"fixed pointer-events-none z-[10000]\", className)}\r\n style={{\r\n left: position.x,\r\n top: position.y,\r\n transform: `translate(-50%, -50%) rotate(${isHovering ? 0 : rotation}deg)`,\r\n transition: isHovering ? \"transform 0.2s ease\" : \"none\",\r\n }}\r\n >\r\n {/* Center dot */}\r\n <div\r\n ref={dotRef}\r\n className=\"absolute rounded-full\"\r\n style={{\r\n width: 6,\r\n height: 6,\r\n backgroundColor: color,\r\n left: \"50%\",\r\n top: \"50%\",\r\n transform: \"translate(-50%, -50%)\",\r\n }}\r\n />\r\n\r\n {/* Corners */}\r\n {[\"tl\", \"tr\", \"br\", \"bl\"].map((corner) => {\r\n const isTop = corner.includes(\"t\");\r\n const isLeft = corner.includes(\"l\");\r\n const offset = isHovering ? 20 : cornerSize * 1.5;\r\n\r\n return (\r\n <div\r\n key={corner}\r\n className=\"absolute transition-all duration-200\"\r\n style={{\r\n width: cornerSize,\r\n height: cornerSize,\r\n borderColor: color,\r\n borderWidth: borderWidth,\r\n borderStyle: \"solid\",\r\n borderTopWidth: isTop ? borderWidth : 0,\r\n borderBottomWidth: !isTop ? borderWidth : 0,\r\n borderLeftWidth: isLeft ? borderWidth : 0,\r\n borderRightWidth: !isLeft ? borderWidth : 0,\r\n left: isLeft ? -offset : \"auto\",\r\n right: !isLeft ? -offset : \"auto\",\r\n top: isTop ? -offset : \"auto\",\r\n bottom: !isTop ? -offset : \"auto\",\r\n }}\r\n />\r\n );\r\n })}\r\n </div>\r\n );\r\n}\r\n\r\nexport default TargetCursor;\r\n","\"use client\";\r\n\r\nimport React, { useEffect, useRef } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface CrosshairProps {\r\n color?: string;\r\n containerRef?: React.RefObject<HTMLElement>;\r\n className?: string;\r\n}\r\n\r\nconst lerp = (a: number, b: number, n: number) => (1 - n) * a + n * b;\r\n\r\nexport function Crosshair({\r\n color = \"#000000\",\r\n containerRef = null,\r\n className,\r\n}: CrosshairProps) {\r\n const cursorRef = useRef<HTMLDivElement>(null);\r\n const lineHorizontalRef = useRef<HTMLDivElement>(null);\r\n const lineVerticalRef = useRef<HTMLDivElement>(null);\r\n const mouseRef = useRef({ x: 0, y: 0 });\r\n const renderedRef = useRef({ x: 0, y: 0 });\r\n const animationRef = useRef<number>();\r\n\r\n useEffect(() => {\r\n if (typeof window === \"undefined\") return;\r\n\r\n const getMousePos = (e: MouseEvent, container?: HTMLElement) => {\r\n if (container) {\r\n const bounds = container.getBoundingClientRect();\r\n return {\r\n x: e.clientX - bounds.left,\r\n y: e.clientY - bounds.top,\r\n };\r\n }\r\n return { x: e.clientX, y: e.clientY };\r\n };\r\n\r\n const handleMouseMove = (ev: MouseEvent) => {\r\n mouseRef.current = getMousePos(ev, containerRef?.current || undefined);\r\n\r\n if (containerRef?.current) {\r\n const bounds = containerRef.current.getBoundingClientRect();\r\n const isOutside =\r\n ev.clientX < bounds.left ||\r\n ev.clientX > bounds.right ||\r\n ev.clientY < bounds.top ||\r\n ev.clientY > bounds.bottom;\r\n\r\n if (lineHorizontalRef.current && lineVerticalRef.current) {\r\n lineHorizontalRef.current.style.opacity = isOutside ? \"0\" : \"1\";\r\n lineVerticalRef.current.style.opacity = isOutside ? \"0\" : \"1\";\r\n }\r\n }\r\n };\r\n\r\n const target = containerRef?.current || window;\r\n target.addEventListener(\"mousemove\", handleMouseMove as any);\r\n\r\n // Initial setup\r\n if (lineHorizontalRef.current && lineVerticalRef.current) {\r\n lineHorizontalRef.current.style.opacity = \"0\";\r\n lineVerticalRef.current.style.opacity = \"0\";\r\n }\r\n\r\n const onFirstMove = () => {\r\n renderedRef.current = { ...mouseRef.current };\r\n if (lineHorizontalRef.current && lineVerticalRef.current) {\r\n lineHorizontalRef.current.style.opacity = \"1\";\r\n lineVerticalRef.current.style.opacity = \"1\";\r\n }\r\n target.removeEventListener(\"mousemove\", onFirstMove as any);\r\n };\r\n target.addEventListener(\"mousemove\", onFirstMove as any);\r\n\r\n const render = () => {\r\n renderedRef.current.x = lerp(renderedRef.current.x, mouseRef.current.x, 0.15);\r\n renderedRef.current.y = lerp(renderedRef.current.y, mouseRef.current.y, 0.15);\r\n\r\n if (lineHorizontalRef.current && lineVerticalRef.current) {\r\n lineVerticalRef.current.style.transform = `translateX(${renderedRef.current.x}px)`;\r\n lineHorizontalRef.current.style.transform = `translateY(${renderedRef.current.y}px)`;\r\n }\r\n\r\n animationRef.current = requestAnimationFrame(render);\r\n };\r\n\r\n render();\r\n\r\n return () => {\r\n target.removeEventListener(\"mousemove\", handleMouseMove as any);\r\n if (animationRef.current) {\r\n cancelAnimationFrame(animationRef.current);\r\n }\r\n };\r\n }, [containerRef]);\r\n\r\n return (\r\n <div\r\n ref={cursorRef}\r\n className={cn(\"pointer-events-none z-[10000]\", className)}\r\n style={{\r\n position: containerRef ? \"absolute\" : \"fixed\",\r\n top: 0,\r\n left: 0,\r\n width: \"100%\",\r\n height: \"100%\",\r\n }}\r\n >\r\n <div\r\n ref={lineHorizontalRef}\r\n style={{\r\n position: \"absolute\",\r\n width: \"100%\",\r\n height: \"1px\",\r\n background: color,\r\n pointerEvents: \"none\",\r\n opacity: 0,\r\n transition: \"opacity 0.3s ease\",\r\n }}\r\n />\r\n <div\r\n ref={lineVerticalRef}\r\n style={{\r\n position: \"absolute\",\r\n height: \"100%\",\r\n width: \"1px\",\r\n background: color,\r\n pointerEvents: \"none\",\r\n opacity: 0,\r\n transition: \"opacity 0.3s ease\",\r\n }}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport default Crosshair;\r\n","\"use client\";\r\n\r\nimport React, { useRef, useState, useEffect } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface ScrollTextProps {\r\n texts?: string[];\r\n className?: string;\r\n}\r\n\r\nexport function ScrollText({\r\n texts = [\r\n \"TailwindCSS\",\r\n \"React\",\r\n \"Next.js\",\r\n \"TypeScript\",\r\n \"Vercel\",\r\n \"Motion\",\r\n ],\r\n className,\r\n}: ScrollTextProps) {\r\n const [activeIndex, setActiveIndex] = useState(0);\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const itemsRef = useRef<(HTMLDivElement | null)[]>([]);\r\n\r\n useEffect(() => {\r\n if (!containerRef.current) return;\r\n\r\n const observer = new IntersectionObserver(\r\n (entries) => {\r\n entries.forEach((entry) => {\r\n if (entry.isIntersecting) {\r\n const index = itemsRef.current.findIndex(\r\n (item) => item === entry.target\r\n );\r\n if (index !== -1) {\r\n setActiveIndex(index);\r\n }\r\n }\r\n });\r\n },\r\n {\r\n threshold: 0.7,\r\n root: containerRef.current,\r\n rootMargin: \"-45% 0px -45% 0px\",\r\n }\r\n );\r\n\r\n itemsRef.current.forEach((item) => {\r\n if (item) observer.observe(item);\r\n });\r\n\r\n return () => observer.disconnect();\r\n }, [texts]);\r\n\r\n return (\r\n <div className={cn(\"w-full max-w-3xl mx-auto\", className)}>\r\n <div\r\n ref={containerRef}\r\n className={cn(\r\n \"h-[300px] overflow-y-auto\",\r\n \"relative flex flex-col items-center\",\r\n \"[&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]\"\r\n )}\r\n >\r\n <div className=\"h-[150px]\" />\r\n <div className=\"flex flex-col items-center w-full\">\r\n {texts.map((text, index) => (\r\n <div\r\n key={`${text}-${index}`}\r\n ref={(el) => {\r\n itemsRef.current[index] = el;\r\n }}\r\n className={cn(\r\n \"text-5xl font-bold py-8 px-4 whitespace-nowrap\",\r\n \"transition-all duration-300\",\r\n activeIndex === index\r\n ? \"text-zinc-900 dark:text-white scale-100 opacity-100\"\r\n : \"text-zinc-400/50 dark:text-zinc-600 scale-95 opacity-50\"\r\n )}\r\n >\r\n {text}\r\n </div>\r\n ))}\r\n </div>\r\n <div className=\"h-[150px]\" />\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default ScrollText;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface Specification {\r\n label: string;\r\n value: string;\r\n}\r\n\r\ninterface CardStackItem {\r\n id: string;\r\n title: string;\r\n subtitle: string;\r\n image: string;\r\n specs: Specification[];\r\n description?: string;\r\n}\r\n\r\ninterface CardProps {\r\n item: CardStackItem;\r\n index: number;\r\n totalCards: number;\r\n isExpanded: boolean;\r\n}\r\n\r\nconst Card = ({ item, index, totalCards, isExpanded }: CardProps) => {\r\n const centerOffset = (totalCards - 1) * 5;\r\n const defaultX = index * 10 - centerOffset;\r\n const defaultY = index * 2;\r\n const defaultRotate = index * 1.5;\r\n\r\n const cardWidth = 320;\r\n const cardOverlap = 240;\r\n const totalExpandedWidth = cardWidth + (totalCards - 1) * (cardWidth - cardOverlap);\r\n const expandedCenterOffset = totalExpandedWidth / 2;\r\n\r\n const spreadX = index * (cardWidth - cardOverlap) - expandedCenterOffset + cardWidth / 2;\r\n const spreadRotate = index * 5 - (totalCards - 1) * 2.5;\r\n\r\n return (\r\n <motion.div\r\n initial={{ x: defaultX, y: defaultY, rotate: defaultRotate, scale: 1 }}\r\n animate={{\r\n x: isExpanded ? spreadX : defaultX,\r\n y: isExpanded ? 0 : defaultY,\r\n rotate: isExpanded ? spreadRotate : defaultRotate,\r\n scale: 1,\r\n zIndex: totalCards - index,\r\n }}\r\n transition={{ type: \"spring\", stiffness: 350, damping: 30, mass: 0.8 }}\r\n className={cn(\r\n \"absolute inset-0 rounded-2xl p-6 w-full\",\r\n \"bg-gradient-to-br from-white/40 via-neutral-50/30 to-neutral-100/20\",\r\n \"dark:from-neutral-800/40 dark:via-neutral-900/30 dark:to-black/20\",\r\n \"border border-white/20 dark:border-neutral-800/20\",\r\n \"backdrop-blur-xl backdrop-saturate-150\",\r\n \"shadow-[0_8px_20px_rgb(0,0,0,0.08)] dark:shadow-[0_8px_20px_rgb(0,0,0,0.3)]\",\r\n \"transition-all duration-500 ease-out transform-gpu overflow-hidden\"\r\n )}\r\n style={{ maxWidth: \"320px\", left: \"50%\", marginLeft: \"-160px\" }}\r\n >\r\n <div className=\"absolute inset-1 rounded-xl bg-neutral-900/50 backdrop-blur-sm border border-neutral-200/50 dark:border-neutral-700/50\" />\r\n <div className=\"relative z-10\">\r\n <dl className=\"mb-4 grid grid-cols-4 gap-2\">\r\n {item.specs.map((spec) => (\r\n <div key={spec.label} className=\"text-[10px] flex flex-col items-start\">\r\n <dd className=\"font-medium text-gray-500 dark:text-gray-400\">{spec.value}</dd>\r\n <dt className=\"text-white dark:text-gray-100\">{spec.label}</dt>\r\n </div>\r\n ))}\r\n </dl>\r\n <div className=\"aspect-[16/11] w-full overflow-hidden rounded-lg bg-neutral-100 dark:bg-neutral-900 border border-neutral-200/50 dark:border-neutral-700/50\">\r\n <img src={item.image} alt={item.title} className=\"object-cover w-full h-full\" loading=\"lazy\" />\r\n </div>\r\n <div className=\"mt-4\">\r\n <h2 className=\"text-3xl font-bold tracking-tight text-white\">{item.title}</h2>\r\n <span className=\"block text-3xl font-semibold tracking-tight bg-gradient-to-r from-gray-400 via-gray-300 to-gray-500 bg-clip-text text-transparent\">\r\n {item.subtitle}\r\n </span>\r\n {item.description && <p className=\"mt-2 text-sm text-gray-500 dark:text-gray-400\">{item.description}</p>}\r\n </div>\r\n </div>\r\n </motion.div>\r\n );\r\n};\r\n\r\ninterface CardStackProps {\r\n items: CardStackItem[];\r\n className?: string;\r\n defaultExpanded?: boolean;\r\n}\r\n\r\nexport function CardStack({ items, className, defaultExpanded = false }: CardStackProps) {\r\n const [isExpanded, setIsExpanded] = useState(defaultExpanded);\r\n\r\n return (\r\n <button\r\n className={cn(\r\n \"relative mx-auto cursor-pointer min-h-[440px] w-full max-w-[90vw] md:max-w-[1200px]\",\r\n \"appearance-none bg-transparent border-0 p-0 flex items-center justify-center mb-8\",\r\n className\r\n )}\r\n onClick={() => setIsExpanded(!isExpanded)}\r\n aria-label=\"Toggle card stack\"\r\n type=\"button\"\r\n >\r\n {items.map((item, index) => (\r\n <Card key={item.id} item={item} index={index} totalCards={items.length} isExpanded={isExpanded} />\r\n ))}\r\n </button>\r\n );\r\n}\r\n\r\nexport type { CardStackItem, Specification };\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface ActivityData {\r\n label: string;\r\n value: number;\r\n color: string;\r\n size: number;\r\n current: number;\r\n target: number;\r\n unit: string;\r\n}\r\n\r\ninterface CircleProgressProps {\r\n data: ActivityData;\r\n index: number;\r\n}\r\n\r\nconst CircleProgress = ({ data, index }: CircleProgressProps) => {\r\n const strokeWidth = 16;\r\n const radius = (data.size - strokeWidth) / 2;\r\n const circumference = radius * 2 * Math.PI;\r\n const progress = ((100 - data.value) / 100) * circumference;\r\n const gradientId = `gradient-${data.label.toLowerCase()}-${index}`;\r\n\r\n return (\r\n <motion.div\r\n className=\"absolute inset-0 flex items-center justify-center\"\r\n initial={{ opacity: 0, scale: 0.8 }}\r\n animate={{ opacity: 1, scale: 1 }}\r\n transition={{ duration: 0.8, delay: index * 0.2, ease: \"easeOut\" }}\r\n >\r\n <svg\r\n width={data.size}\r\n height={data.size}\r\n viewBox={`0 0 ${data.size} ${data.size}`}\r\n className=\"transform -rotate-90\"\r\n aria-label={`${data.label} Activity Progress - ${data.value}%`}\r\n >\r\n <title>{`${data.label} Activity Progress - ${data.value}%`}</title>\r\n <defs>\r\n <linearGradient id={gradientId} x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\">\r\n <stop offset=\"0%\" style={{ stopColor: data.color, stopOpacity: 1 }} />\r\n <stop\r\n offset=\"100%\"\r\n style={{\r\n stopColor: data.color === \"#FF2D55\" ? \"#FF6B8B\" : data.color === \"#A3F900\" ? \"#C5FF4D\" : \"#4DDFED\",\r\n stopOpacity: 1,\r\n }}\r\n />\r\n </linearGradient>\r\n </defs>\r\n <circle\r\n cx={data.size / 2}\r\n cy={data.size / 2}\r\n r={radius}\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth={strokeWidth}\r\n className=\"text-zinc-200/50 dark:text-zinc-800/50\"\r\n />\r\n <motion.circle\r\n cx={data.size / 2}\r\n cy={data.size / 2}\r\n r={radius}\r\n fill=\"none\"\r\n stroke={`url(#${gradientId})`}\r\n strokeWidth={strokeWidth}\r\n strokeDasharray={circumference}\r\n initial={{ strokeDashoffset: circumference }}\r\n animate={{ strokeDashoffset: progress }}\r\n transition={{ duration: 1.8, delay: index * 0.2, ease: \"easeInOut\" }}\r\n strokeLinecap=\"round\"\r\n style={{ filter: \"drop-shadow(0 0 6px rgba(0,0,0,0.15))\" }}\r\n />\r\n </svg>\r\n </motion.div>\r\n );\r\n};\r\n\r\ninterface AppleActivityCardProps {\r\n title?: string;\r\n className?: string;\r\n activities?: ActivityData[];\r\n}\r\n\r\nconst defaultActivities: ActivityData[] = [\r\n { label: \"MOVE\", value: 85, color: \"#FF2D55\", size: 200, current: 479, target: 800, unit: \"CAL\" },\r\n { label: \"EXERCISE\", value: 60, color: \"#A3F900\", size: 160, current: 24, target: 30, unit: \"MIN\" },\r\n { label: \"STAND\", value: 30, color: \"#04C7DD\", size: 120, current: 6, target: 12, unit: \"HR\" },\r\n];\r\n\r\nexport function AppleActivityCard({ title = \"Activity Rings\", className, activities = defaultActivities }: AppleActivityCardProps) {\r\n return (\r\n <div className={cn(\"relative w-full max-w-3xl mx-auto p-8 rounded-3xl text-zinc-900 dark:text-white\", className)}>\r\n <div className=\"flex flex-col items-center gap-8\">\r\n <motion.h2\r\n className=\"text-2xl font-medium text-zinc-900 dark:text-white\"\r\n initial={{ opacity: 0, y: -20 }}\r\n animate={{ opacity: 1, y: 0 }}\r\n transition={{ duration: 0.5 }}\r\n >\r\n {title}\r\n </motion.h2>\r\n <div className=\"flex items-center\">\r\n <div className=\"relative w-[180px] h-[180px]\">\r\n {activities.map((activity, index) => (\r\n <CircleProgress key={activity.label} data={activity} index={index} />\r\n ))}\r\n </div>\r\n <motion.div\r\n className=\"flex flex-col gap-6 ml-8\"\r\n initial={{ opacity: 0, x: 20 }}\r\n animate={{ opacity: 1, x: 0 }}\r\n transition={{ duration: 0.5, delay: 0.3 }}\r\n >\r\n {activities.map((activity) => (\r\n <div key={activity.label} className=\"flex flex-col\">\r\n <span className=\"text-sm font-medium text-zinc-600 dark:text-zinc-400\">{activity.label}</span>\r\n <span className=\"text-2xl font-semibold\" style={{ color: activity.color }}>\r\n {activity.current}/{activity.target}\r\n <span className=\"text-base ml-1 text-zinc-600 dark:text-zinc-400\">{activity.unit}</span>\r\n </span>\r\n </div>\r\n ))}\r\n </motion.div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport type { ActivityData };\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface ReplyProps {\r\n authorName: string;\r\n authorHandle: string;\r\n authorImage: string;\r\n content: string;\r\n isVerified?: boolean;\r\n timestamp: string;\r\n}\r\n\r\ninterface TweetCardProps {\r\n authorName: string;\r\n authorHandle: string;\r\n authorImage: string;\r\n content: string[];\r\n isVerified?: boolean;\r\n timestamp: string;\r\n reply?: ReplyProps;\r\n href?: string;\r\n className?: string;\r\n}\r\n\r\nconst VerifiedIcon = ({ className }: { className?: string }) => (\r\n <svg className={className} viewBox=\"0 0 22 22\" fill=\"currentColor\">\r\n <path d=\"M20.396 11c-.018-.646-.215-1.275-.57-1.816-.354-.54-.852-.972-1.438-1.246.223-.607.27-1.264.14-1.897-.131-.634-.437-1.218-.882-1.687-.47-.445-1.053-.75-1.687-.882-.633-.13-1.29-.083-1.897.14-.273-.587-.704-1.086-1.245-1.44S11.647 1.62 11 1.604c-.646.017-1.273.213-1.813.568s-.969.854-1.24 1.44c-.608-.223-1.267-.272-1.902-.14-.635.13-1.22.436-1.69.882-.445.47-.749 1.055-.878 1.688-.13.633-.08 1.29.144 1.896-.587.274-1.087.705-1.443 1.245-.356.54-.555 1.17-.574 1.817.02.647.218 1.276.574 1.817.356.54.856.972 1.443 1.245-.224.606-.274 1.263-.144 1.896.13.634.433 1.218.877 1.688.47.443 1.054.747 1.687.878.633.132 1.29.084 1.897-.136.274.586.705 1.084 1.246 1.439.54.354 1.17.551 1.816.569.647-.016 1.276-.213 1.817-.567s.972-.854 1.245-1.44c.604.239 1.266.296 1.903.164.636-.132 1.22-.447 1.68-.907.46-.46.776-1.044.908-1.681s.075-1.299-.165-1.903c.586-.274 1.084-.705 1.439-1.246.354-.54.551-1.17.569-1.816zM9.662 14.85l-3.429-3.428 1.293-1.302 2.072 2.072 4.4-4.794 1.347 1.246z\" />\r\n </svg>\r\n);\r\n\r\nconst XIcon = ({ className }: { className?: string }) => (\r\n <svg className={className} viewBox=\"0 0 1200 1227\" fill=\"none\">\r\n <title>X</title>\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M714.163 519.284 1160.89 0h-105.86L667.137 450.887 357.328 0H0l468.492 681.821L0 1226.37h105.866l409.625-476.152 327.181 476.152H1200L714.137 519.284h.026ZM569.165 687.828l-47.468-67.894-377.686-540.24h162.604l304.797 435.991 47.468 67.894 396.2 566.721H892.476L569.165 687.854v-.026Z\"\r\n />\r\n </svg>\r\n);\r\n\r\nexport function TweetCard({\r\n authorName,\r\n authorHandle,\r\n authorImage,\r\n content,\r\n isVerified = false,\r\n timestamp,\r\n reply,\r\n href,\r\n className,\r\n}: TweetCardProps) {\r\n const Wrapper = href ? \"a\" : \"div\";\r\n const wrapperProps = href ? { href, target: \"_blank\", rel: \"noopener noreferrer\" } : {};\r\n\r\n return (\r\n <Wrapper\r\n {...wrapperProps}\r\n className={cn(\r\n \"block w-full min-w-[400px] md:min-w-[500px] max-w-xl p-1.5 rounded-2xl relative isolate overflow-hidden\",\r\n \"bg-black/90 dark:bg-black/90\",\r\n \"backdrop-blur-xl backdrop-saturate-[180%]\",\r\n \"border border-black/10 dark:border-white/10\",\r\n \"shadow-[0_8px_16px_rgb(0_0_0_/_0.15)] dark:shadow-[0_8px_16px_rgb(0_0_0_/_0.25)]\",\r\n className\r\n )}\r\n >\r\n <div\r\n className={cn(\r\n \"w-full p-5 rounded-xl relative\",\r\n \"bg-gradient-to-br from-black/[0.05] to-transparent dark:from-white/[0.08] dark:to-transparent\",\r\n \"backdrop-blur-md backdrop-saturate-150\",\r\n \"border border-black/[0.05] dark:border-white/[0.08]\",\r\n \"text-white/90 dark:text-white\"\r\n )}\r\n >\r\n <div className=\"flex gap-3\">\r\n <div className=\"shrink-0\">\r\n <div className=\"h-10 w-10 rounded-full overflow-hidden\">\r\n <img src={authorImage} alt={authorName} className=\"h-full w-full object-cover\" />\r\n </div>\r\n </div>\r\n <div className=\"flex-1\">\r\n <div className=\"flex justify-between items-start\">\r\n <div className=\"flex flex-col\">\r\n <div className=\"flex items-center gap-1\">\r\n <span className=\"font-semibold text-white dark:text-white/90 hover:underline cursor-pointer\">\r\n {authorName}\r\n </span>\r\n {isVerified && <VerifiedIcon className=\"h-4 w-4 text-blue-400\" />}\r\n </div>\r\n <span className=\"text-white/60 text-sm\">@{authorHandle}</span>\r\n </div>\r\n <div className=\"h-8 w-8 text-white/80 hover:text-white hover:bg-white/10 rounded-lg p-1 flex items-center justify-center\">\r\n <XIcon className=\"w-4 h-4\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"mt-2\">\r\n {content.map((item, index) => (\r\n <p key={index} className=\"text-white dark:text-white/90 text-base\">\r\n {item}\r\n </p>\r\n ))}\r\n <span className=\"text-white/50 text-sm mt-2 block\">{timestamp}</span>\r\n </div>\r\n {reply && (\r\n <div className=\"mt-4 pt-4 border-t border-white/[0.08]\">\r\n <div className=\"flex gap-3\">\r\n <div className=\"shrink-0\">\r\n <div className=\"h-10 w-10 rounded-full overflow-hidden\">\r\n <img src={reply.authorImage} alt={reply.authorName} className=\"h-full w-full object-cover\" />\r\n </div>\r\n </div>\r\n <div className=\"flex-1\">\r\n <div className=\"flex items-center gap-1\">\r\n <span className=\"font-semibold text-white/90 hover:underline cursor-pointer\">{reply.authorName}</span>\r\n {reply.isVerified && <VerifiedIcon className=\"h-4 w-4 text-blue-400\" />}\r\n <span className=\"text-white/60 text-sm\">@{reply.authorHandle}</span>\r\n <span className=\"text-white/60 text-sm\">·</span>\r\n <span className=\"text-white/60 text-sm\">{reply.timestamp}</span>\r\n </div>\r\n <p className=\"text-white/80 text-sm mt-1\">{reply.content}</p>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n </Wrapper>\r\n );\r\n}\r\n\r\nexport type { TweetCardProps, ReplyProps };\r\n","\"use client\";\r\n\r\nimport React, { useRef } from \"react\";\r\nimport { motion, useInView } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface StatItem {\r\n value: string;\r\n label: string;\r\n description?: string;\r\n icon?: React.ReactNode;\r\n trend?: {\r\n value: string;\r\n direction: \"up\" | \"down\";\r\n };\r\n}\r\n\r\ninterface StatsCardsProps {\r\n title?: string;\r\n description?: string;\r\n stats: StatItem[];\r\n className?: string;\r\n}\r\n\r\nexport function StatsCards({\r\n title = \"Key Metrics\",\r\n description = \"Track your success with these important numbers\",\r\n stats,\r\n className,\r\n}: StatsCardsProps) {\r\n const ref = useRef(null);\r\n const isInView = useInView(ref, { once: true });\r\n\r\n return (\r\n <div className={cn(\"min-h-[400px] w-full\", className)}>\r\n <section className=\"py-20\">\r\n <div className=\"mx-auto max-w-7xl px-6\">\r\n <motion.div\r\n initial={{ opacity: 0, y: 20 }}\r\n whileInView={{ opacity: 1, y: 0 }}\r\n transition={{ duration: 0.6 }}\r\n viewport={{ once: true }}\r\n className=\"mb-16 text-center\"\r\n >\r\n <h2 className=\"text-zinc-900 dark:text-zinc-100 mb-4 text-3xl font-bold lg:text-4xl\">{title}</h2>\r\n <p className=\"text-zinc-600 dark:text-zinc-400 mx-auto max-w-2xl text-lg\">{description}</p>\r\n </motion.div>\r\n\r\n <div ref={ref} className=\"grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-4\">\r\n {stats.map((stat, index) => (\r\n <motion.div\r\n key={stat.label}\r\n initial={{ opacity: 0, y: 30, scale: 0.9 }}\r\n animate={isInView ? { opacity: 1, y: 0, scale: 1 } : { opacity: 0, y: 30, scale: 0.9 }}\r\n transition={{ duration: 0.6, delay: index * 0.1, type: \"spring\", stiffness: 100 }}\r\n className=\"group border-zinc-300 dark:border-zinc-700 bg-transparent hover:border-zinc-500 dark:hover:border-zinc-600 relative overflow-hidden rounded-2xl border p-6 transition-all hover:scale-105 hover:shadow-xl\"\r\n >\r\n {stat.icon && (\r\n <motion.div\r\n className=\"mb-4 text-3xl text-zinc-900 dark:text-zinc-100\"\r\n initial={{ rotate: -10, scale: 0.8 }}\r\n animate={isInView ? { rotate: 0, scale: 1 } : { rotate: -10, scale: 0.8 }}\r\n transition={{ duration: 0.6, delay: index * 0.1 + 0.2, type: \"spring\", stiffness: 200 }}\r\n >\r\n {stat.icon}\r\n </motion.div>\r\n )}\r\n <motion.div\r\n className=\"text-zinc-900 dark:text-zinc-100 mb-1 text-2xl font-bold lg:text-3xl\"\r\n initial={{ scale: 0.5 }}\r\n animate={isInView ? { scale: 1 } : { scale: 0.5 }}\r\n transition={{ duration: 0.8, delay: index * 0.1 + 0.3, type: \"spring\", stiffness: 200 }}\r\n >\r\n {stat.value}\r\n </motion.div>\r\n <h3 className=\"text-zinc-900 dark:text-zinc-100 mb-2 text-sm font-semibold tracking-wide uppercase\">\r\n {stat.label}\r\n </h3>\r\n {stat.description && <p className=\"text-zinc-600 dark:text-zinc-400 mb-3 text-xs\">{stat.description}</p>}\r\n {stat.trend && (\r\n <motion.div\r\n className={cn(\r\n \"inline-flex items-center rounded-full px-2 py-1 text-xs font-medium\",\r\n stat.trend.direction === \"up\" ? \"bg-green-900/20 text-green-400\" : \"bg-red-900/20 text-red-400\"\r\n )}\r\n initial={{ opacity: 0, x: -10 }}\r\n animate={isInView ? { opacity: 1, x: 0 } : { opacity: 0, x: -10 }}\r\n transition={{ duration: 0.4, delay: index * 0.1 + 0.5 }}\r\n >\r\n <span className=\"mr-1\">{stat.trend.direction === \"up\" ? \"↗\" : \"↘\"}</span>\r\n {stat.trend.value}\r\n </motion.div>\r\n )}\r\n </motion.div>\r\n ))}\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n );\r\n}\r\n\r\nexport type { StatsCardsProps, StatItem };\r\n","\"use client\";\r\n\r\nimport { useRef } from \"react\";\r\nimport { motion, useInView } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface StatGridItem {\r\n value: string;\r\n label: string;\r\n description?: string;\r\n}\r\n\r\ninterface StatsGridProps {\r\n title?: string;\r\n description?: string;\r\n stats: StatGridItem[];\r\n className?: string;\r\n}\r\n\r\nexport function StatsGrid({\r\n title = \"Our Impact in Numbers\",\r\n description = \"See how we're making a difference across the globe\",\r\n stats,\r\n className,\r\n}: StatsGridProps) {\r\n const ref = useRef(null);\r\n const isInView = useInView(ref, { once: true });\r\n\r\n return (\r\n <div className={cn(\"min-h-[400px] w-full\", className)}>\r\n <section className=\"py-20\">\r\n <div className=\"mx-auto max-w-7xl px-6\">\r\n <motion.div\r\n initial={{ opacity: 0, y: 20 }}\r\n whileInView={{ opacity: 1, y: 0 }}\r\n transition={{ duration: 0.6 }}\r\n viewport={{ once: true }}\r\n className=\"mb-16 text-center\"\r\n >\r\n <h2 className=\"text-zinc-900 dark:text-zinc-100 mb-4 text-3xl font-bold lg:text-4xl\">{title}</h2>\r\n <p className=\"text-zinc-600 dark:text-zinc-400 mx-auto max-w-2xl text-lg\">{description}</p>\r\n </motion.div>\r\n\r\n <div ref={ref} className=\"grid grid-cols-1 gap-8 md:grid-cols-2 lg:grid-cols-4\">\r\n {stats.map((stat, index) => (\r\n <motion.div\r\n key={stat.label}\r\n initial={{ opacity: 0, y: 30 }}\r\n animate={isInView ? { opacity: 1, y: 0 } : { opacity: 0, y: 30 }}\r\n transition={{ duration: 0.6, delay: index * 0.1 }}\r\n className=\"group bg-transparent hover:border-zinc-500 dark:hover:border-zinc-600 relative overflow-hidden rounded-2xl border border-zinc-300 dark:border-zinc-700 p-8 text-center transition-all hover:shadow-lg\"\r\n >\r\n <motion.div\r\n className=\"text-zinc-900 dark:text-zinc-100 mb-2 text-4xl font-bold lg:text-5xl\"\r\n initial={{ scale: 0.5 }}\r\n animate={isInView ? { scale: 1 } : { scale: 0.5 }}\r\n transition={{ duration: 0.8, delay: index * 0.1 + 0.2, type: \"spring\", stiffness: 200 }}\r\n >\r\n {stat.value}\r\n </motion.div>\r\n <h3 className=\"text-zinc-900 dark:text-zinc-100 mb-2 text-lg font-semibold\">{stat.label}</h3>\r\n {stat.description && <p className=\"text-zinc-600 dark:text-zinc-400 text-sm\">{stat.description}</p>}\r\n </motion.div>\r\n ))}\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n );\r\n}\r\n\r\nexport type { StatsGridProps, StatGridItem };\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface BentoCardProps {\r\n name: string;\r\n className?: string;\r\n background?: React.ReactNode | string;\r\n Icon?: React.ComponentType<{ className?: string }>;\r\n description: string;\r\n href?: string;\r\n cta?: string;\r\n onClick?: () => void;\r\n}\r\n\r\ninterface BentoGridProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\nexport function BentoGrid({ children, className }: BentoGridProps) {\r\n return <div className={cn(\"grid w-full auto-rows-[22rem] grid-cols-3 gap-4\", className)}>{children}</div>;\r\n}\r\n\r\nexport function BentoCard({ name, className, background, Icon, description, href, cta, onClick }: BentoCardProps) {\r\n const Wrapper = href ? \"a\" : \"div\";\r\n const wrapperProps = href ? { href, target: \"_blank\", rel: \"noopener noreferrer\" } : {};\r\n\r\n return (\r\n <Wrapper\r\n {...wrapperProps}\r\n onClick={onClick}\r\n className={cn(\r\n \"group relative col-span-3 flex flex-col justify-between overflow-hidden rounded-xl cursor-pointer\",\r\n \"bg-white [box-shadow:0_0_0_1px_rgba(0,0,0,.03),0_2px_4px_rgba(0,0,0,.05),0_12px_24px_rgba(0,0,0,.05)]\",\r\n \"transform-gpu dark:bg-black dark:[border:1px_solid_rgba(255,255,255,.1)] dark:[box-shadow:0_-20px_80px_-20px_#ffffff1f_inset]\",\r\n className\r\n )}\r\n >\r\n {typeof background === \"string\" ? (\r\n <div className={cn(\"absolute inset-0\", background)} />\r\n ) : (\r\n <div className=\"absolute inset-0\">{background}</div>\r\n )}\r\n\r\n <div className=\"pointer-events-none z-10 flex transform-gpu flex-col gap-1 p-6 transition-all duration-300 group-hover:-translate-y-10\">\r\n {Icon && (\r\n <Icon className=\"h-12 w-12 origin-left transform-gpu text-neutral-700 transition-all duration-300 ease-in-out group-hover:scale-75 dark:text-neutral-300\" />\r\n )}\r\n <h3 className=\"text-xl font-semibold text-neutral-700 dark:text-neutral-300\">{name}</h3>\r\n <p className=\"max-w-lg text-neutral-400\">{description}</p>\r\n </div>\r\n\r\n {cta && (\r\n <div className=\"pointer-events-none absolute bottom-0 flex w-full translate-y-10 transform-gpu flex-row items-center p-4 opacity-0 transition-all duration-300 group-hover:translate-y-0 group-hover:opacity-100\">\r\n <span className=\"pointer-events-auto ml-auto flex items-center gap-2 rounded-lg bg-black px-4 py-2 text-white dark:bg-white dark:text-black\">\r\n {cta}\r\n <svg className=\"ml-2 h-4 w-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M9 5l7 7-7 7\" />\r\n </svg>\r\n </span>\r\n </div>\r\n )}\r\n <div className=\"pointer-events-none absolute inset-0 transform-gpu transition-all duration-300 group-hover:bg-black/[.03] group-hover:dark:bg-neutral-800/10\" />\r\n </Wrapper>\r\n );\r\n}\r\n\r\nexport type { BentoCardProps, BentoGridProps };\r\n","\"use client\";\r\n\r\nimport { useEffect, useRef } from \"react\";\r\n\r\ninterface AuroraProps {\r\n colorStops?: string[];\r\n amplitude?: number;\r\n blend?: number;\r\n speed?: number;\r\n className?: string;\r\n}\r\n\r\nexport function Aurora({\r\n colorStops = [\"#5227FF\", \"#7cff67\", \"#5227FF\"],\r\n amplitude = 1.0,\r\n blend = 0.5,\r\n speed = 1.0,\r\n className = \"\",\r\n}: AuroraProps) {\r\n const canvasRef = useRef<HTMLCanvasElement>(null);\r\n\r\n useEffect(() => {\r\n const canvas = canvasRef.current;\r\n if (!canvas) return;\r\n\r\n const ctx = canvas.getContext(\"2d\");\r\n if (!ctx) return;\r\n\r\n let animationId: number;\r\n let time = 0;\r\n\r\n const resize = () => {\r\n canvas.width = canvas.offsetWidth;\r\n canvas.height = canvas.offsetHeight;\r\n };\r\n\r\n const hexToRgb = (hex: string) => {\r\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\r\n return result\r\n ? {\r\n r: parseInt(result[1], 16),\r\n g: parseInt(result[2], 16),\r\n b: parseInt(result[3], 16),\r\n }\r\n : { r: 0, g: 0, b: 0 };\r\n };\r\n\r\n const draw = () => {\r\n if (!ctx || !canvas) return;\r\n\r\n ctx.clearRect(0, 0, canvas.width, canvas.height);\r\n\r\n const gradient = ctx.createLinearGradient(0, 0, canvas.width, 0);\r\n colorStops.forEach((color, i) => {\r\n gradient.addColorStop(i / (colorStops.length - 1), color);\r\n });\r\n\r\n for (let y = 0; y < canvas.height; y++) {\r\n const noise = Math.sin(y * 0.02 + time * speed * 0.1) * amplitude * 50;\r\n const alpha = Math.max(0, Math.min(1, (y / canvas.height) * blend + noise * 0.01));\r\n\r\n ctx.fillStyle = gradient;\r\n ctx.globalAlpha = alpha * 0.3;\r\n ctx.fillRect(0, y, canvas.width, 1);\r\n }\r\n\r\n ctx.globalAlpha = 1;\r\n time += 1;\r\n animationId = requestAnimationFrame(draw);\r\n };\r\n\r\n resize();\r\n window.addEventListener(\"resize\", resize);\r\n draw();\r\n\r\n return () => {\r\n window.removeEventListener(\"resize\", resize);\r\n cancelAnimationFrame(animationId);\r\n };\r\n }, [colorStops, amplitude, blend, speed]);\r\n\r\n return (\r\n <canvas\r\n ref={canvasRef}\r\n className={`absolute inset-0 w-full h-full ${className}`}\r\n />\r\n );\r\n}\r\n\r\nexport default Aurora;\r\n","\"use client\";\r\n\r\nimport { useEffect, useRef } from \"react\";\r\n\r\ninterface ThreadsProps {\r\n lineCount?: number;\r\n lineColor?: string;\r\n lineWidth?: number;\r\n speed?: number;\r\n amplitude?: number;\r\n className?: string;\r\n}\r\n\r\nexport function Threads({\r\n lineCount = 50,\r\n lineColor = \"rgba(255, 255, 255, 0.1)\",\r\n lineWidth = 1,\r\n speed = 0.5,\r\n amplitude = 100,\r\n className = \"\",\r\n}: ThreadsProps) {\r\n const canvasRef = useRef<HTMLCanvasElement>(null);\r\n const animationIdRef = useRef<number | null>(null);\r\n\r\n useEffect(() => {\r\n const canvas = canvasRef.current;\r\n if (!canvas) return;\r\n\r\n const ctx = canvas.getContext(\"2d\");\r\n if (!ctx) return;\r\n\r\n const resizeCanvas = () => {\r\n canvas.width = canvas.offsetWidth;\r\n canvas.height = canvas.offsetHeight;\r\n };\r\n\r\n window.addEventListener(\"resize\", resizeCanvas);\r\n resizeCanvas();\r\n\r\n const lines: Array<{ y: number; offset: number; speed: number }> = [];\r\n\r\n for (let i = 0; i < lineCount; i++) {\r\n lines.push({\r\n y: (canvas.height / lineCount) * i,\r\n offset: Math.random() * Math.PI * 2,\r\n speed: 0.5 + Math.random() * speed,\r\n });\r\n }\r\n\r\n let time = 0;\r\n\r\n const animate = () => {\r\n if (!ctx || !canvas) return;\r\n\r\n ctx.clearRect(0, 0, canvas.width, canvas.height);\r\n ctx.strokeStyle = lineColor;\r\n ctx.lineWidth = lineWidth;\r\n\r\n lines.forEach((line) => {\r\n ctx.beginPath();\r\n\r\n for (let x = 0; x <= canvas.width; x += 5) {\r\n const wave = Math.sin(x * 0.01 + time * line.speed + line.offset) * amplitude;\r\n const y = line.y + wave;\r\n\r\n if (x === 0) {\r\n ctx.moveTo(x, y);\r\n } else {\r\n ctx.lineTo(x, y);\r\n }\r\n }\r\n\r\n ctx.stroke();\r\n });\r\n\r\n time += 0.01;\r\n animationIdRef.current = requestAnimationFrame(animate);\r\n };\r\n\r\n animate();\r\n\r\n return () => {\r\n window.removeEventListener(\"resize\", resizeCanvas);\r\n if (animationIdRef.current) {\r\n cancelAnimationFrame(animationIdRef.current);\r\n }\r\n };\r\n }, [lineCount, lineColor, lineWidth, speed, amplitude]);\r\n\r\n return <canvas ref={canvasRef} className={`w-full h-full ${className}`} />;\r\n}\r\n\r\nexport default Threads;\r\n","\"use client\";\r\n\r\nimport { useRef, useEffect } from \"react\";\r\n\r\ninterface SquaresProps {\r\n direction?: \"diagonal\" | \"up\" | \"right\" | \"down\" | \"left\";\r\n speed?: number;\r\n borderColor?: string;\r\n squareSize?: number;\r\n hoverFillColor?: string;\r\n className?: string;\r\n}\r\n\r\nexport function Squares({\r\n direction = \"right\",\r\n speed = 1,\r\n borderColor = \"#999\",\r\n squareSize = 40,\r\n hoverFillColor = \"#222\",\r\n className = \"\",\r\n}: SquaresProps) {\r\n const canvasRef = useRef<HTMLCanvasElement>(null);\r\n const requestRef = useRef<number | null>(null);\r\n const gridOffset = useRef({ x: 0, y: 0 });\r\n const hoveredSquare = useRef<{ x: number; y: number } | null>(null);\r\n\r\n useEffect(() => {\r\n const canvas = canvasRef.current;\r\n if (!canvas) return;\r\n const ctx = canvas.getContext(\"2d\");\r\n\r\n const resizeCanvas = () => {\r\n canvas.width = canvas.offsetWidth;\r\n canvas.height = canvas.offsetHeight;\r\n };\r\n\r\n window.addEventListener(\"resize\", resizeCanvas);\r\n resizeCanvas();\r\n\r\n const drawGrid = () => {\r\n if (!ctx) return;\r\n ctx.clearRect(0, 0, canvas.width, canvas.height);\r\n\r\n const startX = Math.floor(gridOffset.current.x / squareSize) * squareSize;\r\n const startY = Math.floor(gridOffset.current.y / squareSize) * squareSize;\r\n\r\n for (let x = startX; x < canvas.width + squareSize; x += squareSize) {\r\n for (let y = startY; y < canvas.height + squareSize; y += squareSize) {\r\n const squareX = x - (gridOffset.current.x % squareSize);\r\n const squareY = y - (gridOffset.current.y % squareSize);\r\n\r\n if (\r\n hoveredSquare.current &&\r\n Math.floor((x - startX) / squareSize) === hoveredSquare.current.x &&\r\n Math.floor((y - startY) / squareSize) === hoveredSquare.current.y\r\n ) {\r\n ctx.fillStyle = hoverFillColor;\r\n ctx.fillRect(squareX, squareY, squareSize, squareSize);\r\n }\r\n\r\n ctx.strokeStyle = borderColor;\r\n ctx.strokeRect(squareX, squareY, squareSize, squareSize);\r\n }\r\n }\r\n };\r\n\r\n const updateAnimation = () => {\r\n const effectiveSpeed = Math.max(speed, 0.1);\r\n switch (direction) {\r\n case \"right\":\r\n gridOffset.current.x = (gridOffset.current.x - effectiveSpeed + squareSize) % squareSize;\r\n break;\r\n case \"left\":\r\n gridOffset.current.x = (gridOffset.current.x + effectiveSpeed + squareSize) % squareSize;\r\n break;\r\n case \"up\":\r\n gridOffset.current.y = (gridOffset.current.y + effectiveSpeed + squareSize) % squareSize;\r\n break;\r\n case \"down\":\r\n gridOffset.current.y = (gridOffset.current.y - effectiveSpeed + squareSize) % squareSize;\r\n break;\r\n case \"diagonal\":\r\n gridOffset.current.x = (gridOffset.current.x - effectiveSpeed + squareSize) % squareSize;\r\n gridOffset.current.y = (gridOffset.current.y - effectiveSpeed + squareSize) % squareSize;\r\n break;\r\n }\r\n\r\n drawGrid();\r\n requestRef.current = requestAnimationFrame(updateAnimation);\r\n };\r\n\r\n const handleMouseMove = (event: MouseEvent) => {\r\n const rect = canvas.getBoundingClientRect();\r\n const mouseX = event.clientX - rect.left;\r\n const mouseY = event.clientY - rect.top;\r\n\r\n const startX = Math.floor(gridOffset.current.x / squareSize) * squareSize;\r\n const startY = Math.floor(gridOffset.current.y / squareSize) * squareSize;\r\n\r\n hoveredSquare.current = {\r\n x: Math.floor((mouseX + gridOffset.current.x - startX) / squareSize),\r\n y: Math.floor((mouseY + gridOffset.current.y - startY) / squareSize),\r\n };\r\n };\r\n\r\n const handleMouseLeave = () => {\r\n hoveredSquare.current = null;\r\n };\r\n\r\n canvas.addEventListener(\"mousemove\", handleMouseMove);\r\n canvas.addEventListener(\"mouseleave\", handleMouseLeave);\r\n requestRef.current = requestAnimationFrame(updateAnimation);\r\n\r\n return () => {\r\n window.removeEventListener(\"resize\", resizeCanvas);\r\n if (requestRef.current) cancelAnimationFrame(requestRef.current);\r\n canvas.removeEventListener(\"mousemove\", handleMouseMove);\r\n canvas.removeEventListener(\"mouseleave\", handleMouseLeave);\r\n };\r\n }, [direction, speed, borderColor, hoverFillColor, squareSize]);\r\n\r\n return <canvas ref={canvasRef} className={`w-full h-full ${className}`} />;\r\n}\r\n\r\nexport default Squares;\r\n","\"use client\";\r\n\r\nimport { useRef, useEffect, CSSProperties } from \"react\";\r\n\r\ninterface WavesProps {\r\n lineColor?: string;\r\n backgroundColor?: string;\r\n waveSpeedX?: number;\r\n waveSpeedY?: number;\r\n waveAmpX?: number;\r\n waveAmpY?: number;\r\n xGap?: number;\r\n yGap?: number;\r\n friction?: number;\r\n tension?: number;\r\n maxCursorMove?: number;\r\n style?: CSSProperties;\r\n className?: string;\r\n}\r\n\r\nexport function Waves({\r\n lineColor = \"black\",\r\n backgroundColor = \"transparent\",\r\n waveSpeedX = 0.0125,\r\n waveSpeedY = 0.005,\r\n waveAmpX = 32,\r\n waveAmpY = 16,\r\n xGap = 10,\r\n yGap = 32,\r\n friction = 0.925,\r\n tension = 0.005,\r\n maxCursorMove = 100,\r\n style = {},\r\n className = \"\",\r\n}: WavesProps) {\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const canvasRef = useRef<HTMLCanvasElement>(null);\r\n const frameIdRef = useRef<number | null>(null);\r\n\r\n useEffect(() => {\r\n const canvas = canvasRef.current;\r\n const container = containerRef.current;\r\n if (!canvas || !container) return;\r\n\r\n const ctx = canvas.getContext(\"2d\");\r\n if (!ctx) return;\r\n\r\n let time = 0;\r\n\r\n const resize = () => {\r\n const rect = container.getBoundingClientRect();\r\n canvas.width = rect.width;\r\n canvas.height = rect.height;\r\n };\r\n\r\n const draw = () => {\r\n if (!ctx || !canvas) return;\r\n\r\n ctx.clearRect(0, 0, canvas.width, canvas.height);\r\n ctx.strokeStyle = lineColor;\r\n ctx.lineWidth = 1;\r\n\r\n const cols = Math.ceil(canvas.width / xGap);\r\n const rows = Math.ceil(canvas.height / yGap);\r\n\r\n for (let i = 0; i <= cols; i++) {\r\n ctx.beginPath();\r\n for (let j = 0; j <= rows; j++) {\r\n const x = i * xGap;\r\n const y = j * yGap;\r\n const waveX = Math.sin(y * 0.01 + time * waveSpeedX) * waveAmpX;\r\n const waveY = Math.cos(x * 0.01 + time * waveSpeedY) * waveAmpY;\r\n\r\n if (j === 0) {\r\n ctx.moveTo(x + waveX, y + waveY);\r\n } else {\r\n ctx.lineTo(x + waveX, y + waveY);\r\n }\r\n }\r\n ctx.stroke();\r\n }\r\n\r\n time += 1;\r\n frameIdRef.current = requestAnimationFrame(draw);\r\n };\r\n\r\n resize();\r\n window.addEventListener(\"resize\", resize);\r\n draw();\r\n\r\n return () => {\r\n window.removeEventListener(\"resize\", resize);\r\n if (frameIdRef.current !== null) {\r\n cancelAnimationFrame(frameIdRef.current);\r\n }\r\n };\r\n }, [lineColor, waveSpeedX, waveSpeedY, waveAmpX, waveAmpY, xGap, yGap]);\r\n\r\n return (\r\n <div\r\n ref={containerRef}\r\n className={`absolute inset-0 overflow-hidden ${className}`}\r\n style={{ backgroundColor, ...style }}\r\n >\r\n <canvas ref={canvasRef} className=\"w-full h-full\" />\r\n </div>\r\n );\r\n}\r\n\r\nexport default Waves;\r\n","import { CamelToPascal } from './utility-types';\n\n/**\n * Converts string to kebab case\n *\n * @param {string} string\n * @returns {string} A kebabized string\n */\nexport const toKebabCase = (string: string) =>\n string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n\n/**\n * Converts string to camel case\n *\n * @param {string} string\n * @returns {string} A camelized string\n */\nexport const toCamelCase = <T extends string>(string: T) =>\n string.replace(/^([A-Z])|[\\s-_]+(\\w)/g, (match, p1, p2) =>\n p2 ? p2.toUpperCase() : p1.toLowerCase(),\n );\n\n/**\n * Converts string to pascal case\n *\n * @param {string} string\n * @returns {string} A pascalized string\n */\nexport const toPascalCase = <T extends string>(string: T): CamelToPascal<T> => {\n const camelCase = toCamelCase(string);\n\n return (camelCase.charAt(0).toUpperCase() + camelCase.slice(1)) as CamelToPascal<T>;\n};\n\n/**\n * Merges classes into a single string\n *\n * @param {array} classes\n * @returns {string} A string of classes\n */\nexport const mergeClasses = <ClassType = string | undefined | null>(...classes: ClassType[]) =>\n classes\n .filter((className, index, array) => {\n return (\n Boolean(className) &&\n (className as string).trim() !== '' &&\n array.indexOf(className) === index\n );\n })\n .join(' ')\n .trim();\n\n/**\n * Is empty string\n *\n * @param {unknown} value\n * @returns {boolean} Whether the value is an empty string\n */\nexport const isEmptyString = (value: unknown): boolean => value === '';\n\n/**\n * Check if a component has an accessibility prop\n *\n * @param {object} props\n * @returns {boolean} Whether the component has an accessibility prop\n */\nexport const hasA11yProp = (props: Record<string, any>) => {\n for (const prop in props) {\n if (prop.startsWith('aria-') || prop === 'role' || prop === 'title') {\n return true;\n }\n }\n};\n","export default {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n};\n","import { createElement, forwardRef } from 'react';\nimport defaultAttributes from './defaultAttributes';\nimport { IconNode, LucideProps } from './types';\nimport { mergeClasses, hasA11yProp } from '@lucide/shared';\n\ninterface IconComponentProps extends LucideProps {\n iconNode: IconNode;\n}\n\n/**\n * Lucide icon component\n *\n * @component Icon\n * @param {object} props\n * @param {string} props.color - The color of the icon\n * @param {number} props.size - The size of the icon\n * @param {number} props.strokeWidth - The stroke width of the icon\n * @param {boolean} props.absoluteStrokeWidth - Whether to use absolute stroke width\n * @param {string} props.className - The class name of the icon\n * @param {IconNode} props.children - The children of the icon\n * @param {IconNode} props.iconNode - The icon node of the icon\n *\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst Icon = forwardRef<SVGSVGElement, IconComponentProps>(\n (\n {\n color = 'currentColor',\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = '',\n children,\n iconNode,\n ...rest\n },\n ref,\n ) =>\n createElement(\n 'svg',\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? (Number(strokeWidth) * 24) / Number(size) : strokeWidth,\n className: mergeClasses('lucide', className),\n ...(!children && !hasA11yProp(rest) && { 'aria-hidden': 'true' }),\n ...rest,\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]),\n ],\n ),\n);\n\nexport default Icon;\n","import { createElement, forwardRef } from 'react';\nimport { mergeClasses, toKebabCase, toPascalCase } from '@lucide/shared';\nimport { IconNode, LucideProps } from './types';\nimport Icon from './Icon';\n\n/**\n * Create a Lucide icon component\n * @param {string} iconName\n * @param {array} iconNode\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst createLucideIcon = (iconName: string, iconNode: IconNode) => {\n const Component = forwardRef<SVGSVGElement, LucideProps>(({ className, ...props }, ref) =>\n createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(\n `lucide-${toKebabCase(toPascalCase(iconName))}`,\n `lucide-${iconName}`,\n className,\n ),\n ...props,\n }),\n );\n\n Component.displayName = toPascalCase(iconName);\n\n return Component;\n};\n\nexport default createLucideIcon;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'm7 7 10 10', key: '1fmybs' }],\n ['path', { d: 'M17 7v10H7', key: '6fjiku' }],\n];\n\n/**\n * @component @name ArrowDownRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/arrow-down-right\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowDownRight = createLucideIcon('arrow-down-right', __iconNode);\n\nexport default ArrowDownRight;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16', key: 'jecpp' }],\n ['rect', { width: '20', height: '14', x: '2', y: '6', rx: '2', key: 'i6l2r4' }],\n];\n\n/**\n * @component @name Briefcase\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/briefcase\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Briefcase = createLucideIcon('briefcase', __iconNode);\n\nexport default Briefcase;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'M20 6 9 17l-5-5', key: '1gmf2c' }]];\n\n/**\n * @component @name Check\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/check\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Check = createLucideIcon('check', __iconNode);\n\nexport default Check;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'm6 9 6 6 6-6', key: 'qrunsl' }]];\n\n/**\n * @component @name ChevronDown\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/chevron-down\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronDown = createLucideIcon('chevron-down', __iconNode);\n\nexport default ChevronDown;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'm15 18-6-6 6-6', key: '1wnfg3' }]];\n\n/**\n * @component @name ChevronLeft\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/chevron-left\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronLeft = createLucideIcon('chevron-left', __iconNode);\n\nexport default ChevronLeft;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'm9 18 6-6-6-6', key: 'mthhwq' }]];\n\n/**\n * @component @name ChevronRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/chevron-right\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronRight = createLucideIcon('chevron-right', __iconNode);\n\nexport default ChevronRight;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 6v6l4 2', key: 'mmk7yg' }],\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n];\n\n/**\n * @component @name Clock\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/clock\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Clock = createLucideIcon('clock', __iconNode);\n\nexport default Clock;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n { d: 'M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3', key: '11bfej' },\n ],\n];\n\n/**\n * @component @name Command\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/command\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Command = createLucideIcon('command', __iconNode);\n\nexport default Command;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['line', { x1: '12', x2: '12', y1: '2', y2: '22', key: '7eqyqh' }],\n ['path', { d: 'M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6', key: '1b0p4s' }],\n];\n\n/**\n * @component @name DollarSign\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/dollar-sign\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst DollarSign = createLucideIcon('dollar-sign', __iconNode);\n\nexport default DollarSign;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M15 3h6v6', key: '1q9fwt' }],\n ['path', { d: 'M10 14 21 3', key: 'gplh6r' }],\n ['path', { d: 'M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6', key: 'a6xqqp' }],\n];\n\n/**\n * @component @name ExternalLink\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/external-link\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ExternalLink = createLucideIcon('external-link', __iconNode);\n\nexport default ExternalLink;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0',\n key: '1r0f0z',\n },\n ],\n ['circle', { cx: '12', cy: '10', r: '3', key: 'ilqhr7' }],\n];\n\n/**\n * @component @name MapPin\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/map-pin\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst MapPin = createLucideIcon('map-pin', __iconNode);\n\nexport default MapPin;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 19v3', key: 'npa21l' }],\n ['path', { d: 'M19 10v2a7 7 0 0 1-14 0v-2', key: '1vc78b' }],\n ['rect', { x: '9', y: '2', width: '6', height: '13', rx: '3', key: 's6n7sd' }],\n];\n\n/**\n * @component @name Mic\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/mic\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Mic = createLucideIcon('mic', __iconNode);\n\nexport default Mic;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'm16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551',\n key: '1miecu',\n },\n ],\n];\n\n/**\n * @component @name Paperclip\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/paperclip\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Paperclip = createLucideIcon('paperclip', __iconNode);\n\nexport default Paperclip;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'm21 21-4.34-4.34', key: '14j7rj' }],\n ['circle', { cx: '11', cy: '11', r: '8', key: '4ej97u' }],\n];\n\n/**\n * @component @name Search\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/search\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Search = createLucideIcon('search', __iconNode);\n\nexport default Search;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z',\n key: '1ffxy3',\n },\n ],\n ['path', { d: 'm21.854 2.147-10.94 10.939', key: '12cjpa' }],\n];\n\n/**\n * @component @name Send\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/send\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Send = createLucideIcon('send', __iconNode);\n\nexport default Send;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z',\n key: '1s2grr',\n },\n ],\n ['path', { d: 'M20 2v4', key: '1rf3ol' }],\n ['path', { d: 'M22 4h-4', key: 'gwowj6' }],\n ['circle', { cx: '4', cy: '20', r: '2', key: '6kqj1y' }],\n];\n\n/**\n * @component @name Sparkles\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/sparkles\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Sparkles = createLucideIcon('sparkles', __iconNode);\n\nexport default Sparkles;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z',\n key: 'r04s7s',\n },\n ],\n];\n\n/**\n * @component @name Star\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/star\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Star = createLucideIcon('star', __iconNode);\n\nexport default Star;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M18 6 6 18', key: '1bl5f8' }],\n ['path', { d: 'm6 6 12 12', key: 'd8bk6v' }],\n];\n\n/**\n * @component @name X\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/x\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst X = createLucideIcon('x', __iconNode);\n\nexport default X;\n","\"use client\";\r\n\r\nimport { ExternalLink } from \"lucide-react\";\r\n\r\ninterface HeroGridProps {\r\n heading?: string;\r\n highlightedText?: string;\r\n description?: string;\r\n primaryButton?: { text: string; url: string };\r\n secondaryButton?: { text: string; url: string };\r\n className?: string;\r\n}\r\n\r\nexport function HeroGrid({\r\n heading = \"Build your next project with\",\r\n highlightedText = \"Bynana UI\",\r\n description = \"Create stunning, animated interfaces in minutes.\",\r\n primaryButton = { text: \"Get Started\", url: \"#\" },\r\n secondaryButton = { text: \"Learn more\", url: \"#\" },\r\n className = \"\",\r\n}: HeroGridProps) {\r\n return (\r\n <section className={`relative overflow-hidden py-36 ${className}`}>\r\n <div className=\"relative z-10 flex flex-col items-center gap-6 text-center px-6\">\r\n <div>\r\n <h1 className=\"mb-6 text-2xl font-bold tracking-tight lg:text-5xl\">\r\n {heading}{\" \"}\r\n <span className=\"text-transparent bg-gradient-to-r from-pink-400 to-purple-400 bg-clip-text\">\r\n {highlightedText}\r\n </span>\r\n </h1>\r\n <p className=\"text-muted-foreground mx-auto max-w-3xl lg:text-xl\">{description}</p>\r\n </div>\r\n\r\n <div className=\"mt-6 flex justify-center gap-3\">\r\n <a\r\n href={primaryButton.url}\r\n className=\"border border-input hover:bg-accent px-6 py-3 rounded-md font-medium\"\r\n >\r\n {primaryButton.text}\r\n </a>\r\n <a\r\n href={secondaryButton.url}\r\n className=\"bg-primary text-primary-foreground hover:bg-primary/90 px-6 py-3 rounded-md font-medium inline-flex items-center gap-2\"\r\n >\r\n {secondaryButton.text}\r\n <ExternalLink className=\"w-4 h-4\" />\r\n </a>\r\n </div>\r\n </div>\r\n </section>\r\n );\r\n}\r\n\r\nexport default HeroGrid;\r\n","\"use client\";\r\n\r\nimport { Star, ArrowDownRight } from \"lucide-react\";\r\n\r\ninterface HeroShowcaseProps {\r\n heading?: string;\r\n description?: string;\r\n buttons?: {\r\n primary?: { text: string; url: string };\r\n secondary?: { text: string; url: string };\r\n };\r\n reviews?: {\r\n count: number;\r\n avatars: { src: string; alt: string }[];\r\n rating?: number;\r\n };\r\n className?: string;\r\n}\r\n\r\nexport function HeroShowcase({\r\n heading = \"Build beautiful UIs, effortlessly.\",\r\n description = \"Create stunning, animated interfaces in minutes.\",\r\n buttons = {\r\n primary: { text: \"Get Started\", url: \"#\" },\r\n secondary: { text: \"Watch demo\", url: \"#\" },\r\n },\r\n reviews = {\r\n count: 200,\r\n rating: 5.0,\r\n avatars: [\r\n { src: \"https://i.pravatar.cc/150?img=1\", alt: \"User 1\" },\r\n { src: \"https://i.pravatar.cc/150?img=2\", alt: \"User 2\" },\r\n { src: \"https://i.pravatar.cc/150?img=3\", alt: \"User 3\" },\r\n ],\r\n },\r\n className = \"\",\r\n}: HeroShowcaseProps) {\r\n return (\r\n <section className={`py-24 ${className}`}>\r\n <div className=\"mx-auto max-w-5xl px-6\">\r\n <div className=\"flex flex-col items-center text-center\">\r\n <h1 className=\"my-6 text-4xl font-bold lg:text-6xl\">{heading}</h1>\r\n <p className=\"text-muted-foreground mb-8 max-w-xl lg:text-xl\">{description}</p>\r\n\r\n <div className=\"mb-12 flex items-center gap-4\">\r\n <span className=\"inline-flex -space-x-4\">\r\n {reviews.avatars.map((avatar, index) => (\r\n <img\r\n key={index}\r\n src={avatar.src}\r\n alt={avatar.alt}\r\n className=\"size-12 rounded-full border-2 border-background\"\r\n />\r\n ))}\r\n </span>\r\n <div>\r\n <div className=\"flex items-center gap-1\">\r\n {[1, 2, 3, 4, 5].map((star) => (\r\n <Star key={star} className=\"size-5 fill-yellow-400 text-yellow-400\" />\r\n ))}\r\n <span className=\"ml-1 font-semibold\">{reviews.rating?.toFixed(1)}</span>\r\n </div>\r\n <p className=\"text-muted-foreground text-sm\">from {reviews.count}+ reviews</p>\r\n </div>\r\n </div>\r\n\r\n <div className=\"flex gap-4\">\r\n {buttons.primary && (\r\n <a\r\n href={buttons.primary.url}\r\n className=\"bg-primary text-primary-foreground hover:bg-primary/90 px-6 py-3 rounded-md font-medium\"\r\n >\r\n {buttons.primary.text}\r\n </a>\r\n )}\r\n {buttons.secondary && (\r\n <a\r\n href={buttons.secondary.url}\r\n className=\"border border-input hover:bg-accent px-6 py-3 rounded-md font-medium inline-flex items-center gap-2\"\r\n >\r\n {buttons.secondary.text}\r\n <ArrowDownRight className=\"size-4\" />\r\n </a>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n );\r\n}\r\n\r\nexport default HeroShowcase;\r\n","\"use client\";\r\n\r\nimport { useEffect, useRef, useState } from \"react\";\r\n\r\ninterface Testimonial {\r\n quote: string;\r\n avatar: string;\r\n name: string;\r\n role: string;\r\n}\r\n\r\ninterface TestimonialsSimpleProps {\r\n testimonials?: Testimonial[];\r\n duration?: number;\r\n className?: string;\r\n}\r\n\r\nexport function TestimonialsSimple({\r\n testimonials = [\r\n {\r\n quote: \"This has revolutionized how we build user interfaces. The animations are buttery smooth.\",\r\n avatar: \"https://i.pravatar.cc/150?img=1\",\r\n name: \"Eduardo Calvo\",\r\n role: \"CEO & Founder\",\r\n },\r\n {\r\n quote: \"The design system is incredibly well thought out. Every component feels intentional.\",\r\n avatar: \"https://i.pravatar.cc/150?img=2\",\r\n name: \"Drew Cano\",\r\n role: \"Head of Design\",\r\n },\r\n {\r\n quote: \"Best UI library I've used. The TypeScript support is excellent.\",\r\n avatar: \"https://i.pravatar.cc/150?img=3\",\r\n name: \"Marcus Johnson\",\r\n role: \"Lead Developer\",\r\n },\r\n ],\r\n duration = 5000,\r\n className = \"\",\r\n}: TestimonialsSimpleProps) {\r\n const [index, setIndex] = useState(0);\r\n const timeoutRef = useRef<NodeJS.Timeout | null>(null);\r\n\r\n useEffect(() => {\r\n timeoutRef.current = setTimeout(() => {\r\n setIndex((prev) => (prev + 1) % testimonials.length);\r\n }, duration);\r\n return () => {\r\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\r\n };\r\n }, [index, testimonials.length, duration]);\r\n\r\n return (\r\n <div className={`flex flex-col items-center justify-center py-16 ${className}`}>\r\n <div className=\"flex w-full max-w-5xl flex-col items-center justify-center px-4\">\r\n <blockquote className=\"mb-8 text-center text-2xl leading-tight font-semibold md:text-4xl transition-all duration-500\">\r\n \"{testimonials[index].quote}\"\r\n </blockquote>\r\n\r\n <div className=\"flex items-center gap-4\">\r\n <img\r\n src={testimonials[index].avatar}\r\n alt={testimonials[index].name}\r\n className=\"h-12 w-12 rounded-full border object-cover\"\r\n />\r\n <div className=\"border-l mx-4 h-8\" />\r\n <div className=\"text-left\">\r\n <div className=\"text-lg font-medium italic\">{testimonials[index].name}</div>\r\n <div className=\"text-muted-foreground text-base\">{testimonials[index].role}</div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"mx-auto mt-8 flex gap-3\">\r\n {testimonials.map((_, i) => (\r\n <span\r\n key={i}\r\n className={`block h-3 rounded-full transition-all duration-400 ${\r\n i === index ? \"w-12 bg-primary\" : \"w-3 bg-muted\"\r\n }`}\r\n />\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default TestimonialsSimple;\r\n","\"use client\";\r\n\r\nimport { useCallback, useEffect, useState } from \"react\";\r\nimport { ChevronLeft, ChevronRight } from \"lucide-react\";\r\n\r\ninterface Testimonial {\r\n content: string;\r\n avatar: string;\r\n name: string;\r\n role: string;\r\n}\r\n\r\ninterface TestimonialsGridProps {\r\n title?: string;\r\n description?: string;\r\n testimonials?: Testimonial[];\r\n autoplay?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport function TestimonialsGrid({\r\n title = \"What Developers Say\",\r\n description = \"See what developers are saying about their experience.\",\r\n testimonials = [\r\n {\r\n content: \"This has revolutionized how we build user interfaces.\",\r\n avatar: \"https://i.pravatar.cc/150?img=1\",\r\n name: \"Eduardo Calvo\",\r\n role: \"CEO & Founder\",\r\n },\r\n {\r\n content: \"The design system is incredibly well thought out.\",\r\n avatar: \"https://i.pravatar.cc/150?img=2\",\r\n name: \"Drew Cano\",\r\n role: \"Head of Design\",\r\n },\r\n {\r\n content: \"Best UI library I've used. Excellent TypeScript support.\",\r\n avatar: \"https://i.pravatar.cc/150?img=3\",\r\n name: \"Marcus Johnson\",\r\n role: \"Lead Developer\",\r\n },\r\n ],\r\n autoplay = false,\r\n className = \"\",\r\n}: TestimonialsGridProps) {\r\n const [active, setActive] = useState(0);\r\n\r\n const handleNext = useCallback(() => {\r\n setActive((prev) => (prev + 1) % testimonials.length);\r\n }, [testimonials.length]);\r\n\r\n const handlePrev = () => {\r\n setActive((prev) => (prev - 1 + testimonials.length) % testimonials.length);\r\n };\r\n\r\n useEffect(() => {\r\n if (autoplay) {\r\n const interval = setInterval(handleNext, 5000);\r\n return () => clearInterval(interval);\r\n }\r\n }, [autoplay, handleNext]);\r\n\r\n return (\r\n <div className={`py-24 ${className}`}>\r\n <div className=\"container mx-auto max-w-6xl px-6\">\r\n <div className=\"grid grid-cols-1 gap-8 lg:grid-cols-2 lg:gap-12\">\r\n <div className=\"flex flex-col justify-center\">\r\n <h2 className=\"mb-4 text-4xl font-semibold\">{title}</h2>\r\n <p className=\"text-muted-foreground text-lg\">{description}</p>\r\n </div>\r\n\r\n <div className=\"relative flex flex-col items-end\">\r\n <div className=\"mb-4 flex gap-2\">\r\n <button\r\n onClick={handlePrev}\r\n className=\"flex h-8 w-8 items-center justify-center rounded-full border hover:bg-accent\"\r\n >\r\n <ChevronLeft className=\"h-5 w-5\" />\r\n </button>\r\n <button\r\n onClick={handleNext}\r\n className=\"flex h-8 w-8 items-center justify-center rounded-full border hover:bg-accent\"\r\n >\r\n <ChevronRight className=\"h-5 w-5\" />\r\n </button>\r\n </div>\r\n\r\n <div className=\"relative h-full w-full max-w-md\">\r\n {testimonials.map((testimonial, index) => (\r\n <div\r\n key={testimonial.name}\r\n className={`absolute inset-0 transition-all duration-400 ${\r\n index === active ? \"opacity-100 scale-100 z-10\" : \"opacity-0 scale-95 z-0\"\r\n }`}\r\n >\r\n <div className=\"rounded-2xl border px-6 py-6 shadow-lg\">\r\n <p className=\"mb-6 text-lg\">{testimonial.content}</p>\r\n <div className=\"flex items-center gap-3\">\r\n <img\r\n src={testimonial.avatar}\r\n alt={testimonial.name}\r\n className=\"size-8 rounded-full border object-cover\"\r\n />\r\n <div>\r\n <div className=\"font-semibold\">{testimonial.name}</div>\r\n <span className=\"text-muted-foreground text-sm\">{testimonial.role}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default TestimonialsGrid;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { Check } from \"lucide-react\";\r\n\r\ninterface PricingPlan {\r\n name: string;\r\n price: { monthly: number; annually: number } | \"custom\";\r\n description: string;\r\n features: string[];\r\n featured?: boolean;\r\n buttonText?: string;\r\n}\r\n\r\ninterface PricingModernProps {\r\n title?: string;\r\n description?: string;\r\n plans?: PricingPlan[];\r\n className?: string;\r\n}\r\n\r\nexport function PricingModern({\r\n title = \"Choose your perfect plan\",\r\n description = \"Modern pricing plans designed for teams of all sizes.\",\r\n plans = [\r\n {\r\n name: \"Basic\",\r\n price: { monthly: 15, annually: 10 },\r\n description: \"Perfect for startups\",\r\n features: [\"1 Project\", \"Email Support\", \"Core Features\", \"Basic Analytics\"],\r\n },\r\n {\r\n name: \"Pro\",\r\n price: { monthly: 35, annually: 25 },\r\n description: \"Best for teams\",\r\n features: [\"Unlimited Projects\", \"Priority Support\", \"Team Collaboration\", \"Advanced Analytics\"],\r\n featured: true,\r\n },\r\n {\r\n name: \"Enterprise\",\r\n price: \"custom\",\r\n description: \"Tailored solutions\",\r\n features: [\"Everything in Pro\", \"Dedicated Manager\", \"Custom Integrations\", \"SLA & Support\"],\r\n buttonText: \"Contact Sales\",\r\n },\r\n ],\r\n className = \"\",\r\n}: PricingModernProps) {\r\n const [isAnnual, setIsAnnual] = useState(true);\r\n\r\n return (\r\n <section className={`py-16 md:py-32 ${className}`}>\r\n <div className=\"mx-auto max-w-5xl px-6\">\r\n <div className=\"mx-auto max-w-2xl text-center\">\r\n <h2 className=\"text-3xl font-bold md:text-4xl lg:text-5xl\">{title}</h2>\r\n <p className=\"text-muted-foreground mx-auto mt-4 max-w-xl text-lg\">{description}</p>\r\n\r\n <div className=\"my-12\">\r\n <div className=\"relative mx-auto grid w-fit grid-cols-2 rounded-full border p-1\">\r\n <div\r\n className={`pointer-events-none absolute inset-1 w-1/2 rounded-full bg-primary transition-transform duration-500 ${\r\n isAnnual ? \"translate-x-full\" : \"translate-x-0\"\r\n }`}\r\n />\r\n <button\r\n onClick={() => setIsAnnual(false)}\r\n className={`relative h-8 w-24 rounded-full text-sm ${!isAnnual ? \"text-primary-foreground font-medium\" : \"\"}`}\r\n >\r\n Monthly\r\n </button>\r\n <button\r\n onClick={() => setIsAnnual(true)}\r\n className={`relative h-8 w-24 rounded-full text-sm ${isAnnual ? \"text-primary-foreground font-medium\" : \"\"}`}\r\n >\r\n Annually\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"grid grid-cols-1 gap-6 md:grid-cols-3\">\r\n {plans.map((plan) => (\r\n <div\r\n key={plan.name}\r\n className={`relative flex flex-col rounded-2xl border p-8 ${\r\n plan.featured ? \"border-2 border-primary\" : \"\"\r\n }`}\r\n >\r\n {plan.featured && (\r\n <div className=\"absolute top-0 right-0 bg-primary text-primary-foreground rounded-full px-2 py-1 text-xs font-bold m-4\">\r\n Most Popular\r\n </div>\r\n )}\r\n\r\n <h3 className=\"mb-4 text-2xl font-bold\">{plan.name}</h3>\r\n\r\n <div className=\"mb-6\">\r\n <span className=\"text-3xl font-semibold\">\r\n {plan.price === \"custom\"\r\n ? \"Custom\"\r\n : `${isAnnual ? plan.price.annually : plan.price.monthly}€`}\r\n </span>\r\n <span className=\"text-muted-foreground mx-2\">•</span>\r\n <span className=\"text-muted-foreground\">{plan.description}</span>\r\n </div>\r\n\r\n <button className=\"bg-primary text-primary-foreground hover:bg-primary/90 mb-6 h-10 w-full rounded-md px-4 py-2 text-sm font-medium\">\r\n {plan.buttonText || \"Get Started\"}\r\n </button>\r\n\r\n <ul className=\"space-y-3\">\r\n {plan.features.map((feature) => (\r\n <li key={feature} className=\"flex items-center gap-3 text-sm\">\r\n <div className=\"flex h-4 w-4 items-center justify-center rounded-full bg-primary\">\r\n <Check className=\"h-2 w-2 text-primary-foreground\" />\r\n </div>\r\n {feature}\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </section>\r\n );\r\n}\r\n\r\nexport default PricingModern;\r\n","\"use client\";\r\n\r\ninterface FooterLink {\r\n name: string;\r\n url: string;\r\n}\r\n\r\ninterface FooterSimpleProps {\r\n companyName?: string;\r\n description?: string;\r\n links?: {\r\n product?: FooterLink[];\r\n company?: FooterLink[];\r\n support?: FooterLink[];\r\n };\r\n social?: {\r\n twitter?: string;\r\n linkedin?: string;\r\n github?: string;\r\n discord?: string;\r\n };\r\n copyright?: string;\r\n className?: string;\r\n}\r\n\r\nexport function FooterSimple({\r\n companyName = \"Bynana UI\",\r\n description = \"Build beautiful UIs, effortlessly.\",\r\n links = {\r\n product: [\r\n { name: \"Features\", url: \"#\" },\r\n { name: \"Pricing\", url: \"#\" },\r\n { name: \"Documentation\", url: \"#\" },\r\n ],\r\n company: [\r\n { name: \"About\", url: \"#\" },\r\n { name: \"Blog\", url: \"#\" },\r\n { name: \"Careers\", url: \"#\" },\r\n ],\r\n support: [\r\n { name: \"Help Center\", url: \"#\" },\r\n { name: \"Community\", url: \"#\" },\r\n { name: \"Status\", url: \"#\" },\r\n ],\r\n },\r\n copyright = \"© 2024 Bynana UI. All rights reserved.\",\r\n className = \"\",\r\n}: FooterSimpleProps) {\r\n return (\r\n <footer className={`border-t ${className}`}>\r\n <div className=\"mx-auto max-w-7xl px-6 py-12\">\r\n <div className=\"grid grid-cols-1 gap-8 md:grid-cols-2 lg:grid-cols-5\">\r\n <div className=\"lg:col-span-2\">\r\n <h3 className=\"mb-4 text-2xl font-bold\">{companyName}</h3>\r\n <p className=\"text-muted-foreground mb-6 max-w-md text-sm\">{description}</p>\r\n </div>\r\n\r\n <div className=\"grid grid-cols-1 gap-8 sm:grid-cols-3 lg:col-span-3\">\r\n {links.product && (\r\n <div>\r\n <h4 className=\"mb-4 text-sm font-semibold uppercase tracking-wide\">Product</h4>\r\n <ul className=\"space-y-3\">\r\n {links.product.map((link) => (\r\n <li key={link.name}>\r\n <a href={link.url} className=\"text-muted-foreground hover:text-foreground text-sm\">\r\n {link.name}\r\n </a>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n\r\n {links.company && (\r\n <div>\r\n <h4 className=\"mb-4 text-sm font-semibold uppercase tracking-wide\">Company</h4>\r\n <ul className=\"space-y-3\">\r\n {links.company.map((link) => (\r\n <li key={link.name}>\r\n <a href={link.url} className=\"text-muted-foreground hover:text-foreground text-sm\">\r\n {link.name}\r\n </a>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n\r\n {links.support && (\r\n <div>\r\n <h4 className=\"mb-4 text-sm font-semibold uppercase tracking-wide\">Support</h4>\r\n <ul className=\"space-y-3\">\r\n {links.support.map((link) => (\r\n <li key={link.name}>\r\n <a href={link.url} className=\"text-muted-foreground hover:text-foreground text-sm\">\r\n {link.name}\r\n </a>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n\r\n <div className=\"mt-12 border-t pt-8 text-center\">\r\n <p className=\"text-muted-foreground text-sm\">{copyright}</p>\r\n </div>\r\n </div>\r\n </footer>\r\n );\r\n}\r\n\r\nexport default FooterSimple;\r\n","\"use client\";\r\n\r\ninterface FooterLink {\r\n name: string;\r\n url: string;\r\n}\r\n\r\ninterface FooterComplexProps {\r\n companyName?: string;\r\n description?: string;\r\n newsletter?: {\r\n title: string;\r\n description: string;\r\n placeholder: string;\r\n buttonText: string;\r\n };\r\n links?: {\r\n product?: FooterLink[];\r\n company?: FooterLink[];\r\n support?: FooterLink[];\r\n legal?: FooterLink[];\r\n };\r\n copyright?: string;\r\n className?: string;\r\n}\r\n\r\nexport function FooterComplex({\r\n companyName = \"Bynana UI\",\r\n description = \"Build beautiful UIs, effortlessly. The modern way to create stunning interfaces.\",\r\n newsletter = {\r\n title: \"Stay updated\",\r\n description: \"Get the latest news delivered to your inbox.\",\r\n placeholder: \"Enter your email\",\r\n buttonText: \"Subscribe\",\r\n },\r\n links = {\r\n product: [\r\n { name: \"Features\", url: \"#\" },\r\n { name: \"Pricing\", url: \"#\" },\r\n { name: \"Documentation\", url: \"#\" },\r\n ],\r\n company: [\r\n { name: \"About Us\", url: \"#\" },\r\n { name: \"Blog\", url: \"#\" },\r\n { name: \"Careers\", url: \"#\" },\r\n ],\r\n support: [\r\n { name: \"Help Center\", url: \"#\" },\r\n { name: \"Community\", url: \"#\" },\r\n { name: \"Status Page\", url: \"#\" },\r\n ],\r\n legal: [\r\n { name: \"Privacy Policy\", url: \"#\" },\r\n { name: \"Terms of Service\", url: \"#\" },\r\n { name: \"Cookie Policy\", url: \"#\" },\r\n ],\r\n },\r\n copyright = \"© 2024 Bynana UI. All rights reserved.\",\r\n className = \"\",\r\n}: FooterComplexProps) {\r\n return (\r\n <footer className={`border-t ${className}`}>\r\n <div className=\"mx-auto max-w-7xl px-6 py-16\">\r\n <div className=\"grid grid-cols-1 gap-12 lg:grid-cols-12\">\r\n <div className=\"lg:col-span-5\">\r\n <h3 className=\"mb-4 text-2xl font-bold\">{companyName}</h3>\r\n <p className=\"text-muted-foreground mb-8 max-w-md text-sm leading-relaxed\">{description}</p>\r\n\r\n <div className=\"mb-8\">\r\n <h4 className=\"mb-2 text-lg font-semibold\">{newsletter.title}</h4>\r\n <p className=\"text-muted-foreground mb-4 text-sm\">{newsletter.description}</p>\r\n <div className=\"flex gap-2\">\r\n <input\r\n type=\"email\"\r\n placeholder={newsletter.placeholder}\r\n className=\"flex-1 rounded-lg border bg-background px-4 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring\"\r\n />\r\n <button className=\"bg-primary text-primary-foreground hover:bg-primary/90 rounded-lg px-6 py-2 text-sm font-medium\">\r\n {newsletter.buttonText}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"grid grid-cols-2 gap-8 lg:col-span-7 lg:grid-cols-4\">\r\n {links.product && (\r\n <div>\r\n <h4 className=\"mb-4 text-sm font-semibold uppercase tracking-wide\">Product</h4>\r\n <ul className=\"space-y-3\">\r\n {links.product.map((link) => (\r\n <li key={link.name}>\r\n <a href={link.url} className=\"text-muted-foreground hover:text-foreground text-sm\">\r\n {link.name}\r\n </a>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n\r\n {links.company && (\r\n <div>\r\n <h4 className=\"mb-4 text-sm font-semibold uppercase tracking-wide\">Company</h4>\r\n <ul className=\"space-y-3\">\r\n {links.company.map((link) => (\r\n <li key={link.name}>\r\n <a href={link.url} className=\"text-muted-foreground hover:text-foreground text-sm\">\r\n {link.name}\r\n </a>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n\r\n {links.support && (\r\n <div>\r\n <h4 className=\"mb-4 text-sm font-semibold uppercase tracking-wide\">Support</h4>\r\n <ul className=\"space-y-3\">\r\n {links.support.map((link) => (\r\n <li key={link.name}>\r\n <a href={link.url} className=\"text-muted-foreground hover:text-foreground text-sm\">\r\n {link.name}\r\n </a>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n\r\n {links.legal && (\r\n <div>\r\n <h4 className=\"mb-4 text-sm font-semibold uppercase tracking-wide\">Legal</h4>\r\n <ul className=\"space-y-3\">\r\n {links.legal.map((link) => (\r\n <li key={link.name}>\r\n <a href={link.url} className=\"text-muted-foreground hover:text-foreground text-sm\">\r\n {link.name}\r\n </a>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n\r\n <div className=\"mt-12 border-t pt-8 text-center\">\r\n <p className=\"text-muted-foreground text-sm\">{copyright}</p>\r\n </div>\r\n </div>\r\n </footer>\r\n );\r\n}\r\n\r\nexport default FooterComplex;\r\n","\"use client\";\r\n\r\nimport { ReactNode } from \"react\";\r\n\r\ninterface LogoCloudProps {\r\n title?: string;\r\n description?: string;\r\n logos?: Array<{\r\n name: string;\r\n logo: ReactNode;\r\n url?: string;\r\n }>;\r\n className?: string;\r\n}\r\n\r\nexport function LogoCloud({\r\n title = \"Trusted by the world's most innovative teams\",\r\n description = \"Join thousands of developers building with us\",\r\n logos = [],\r\n className = \"\",\r\n}: LogoCloudProps) {\r\n return (\r\n <div className={`overflow-hidden py-20 ${className}`}>\r\n <div className=\"mx-auto max-w-7xl px-6\">\r\n <div className=\"mb-16 text-center\">\r\n <h2 className=\"mb-4 text-2xl font-bold lg:text-3xl\">{title}</h2>\r\n <p className=\"text-muted-foreground text-lg\">{description}</p>\r\n </div>\r\n\r\n <div\r\n className=\"relative overflow-hidden\"\r\n style={{\r\n maskImage:\r\n \"linear-gradient(to right, transparent, black 20%, black 80%, transparent)\",\r\n WebkitMaskImage:\r\n \"linear-gradient(to right, transparent, black 20%, black 80%, transparent)\",\r\n }}\r\n >\r\n <div className=\"flex animate-scroll gap-8\">\r\n {[...logos, ...logos, ...logos].map((logo, index) => (\r\n <a\r\n key={`${logo.name}-${index}`}\r\n href={logo.url}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n className=\"flex flex-shrink-0 items-center justify-center p-6 transition-all hover:scale-105\"\r\n >\r\n <div className=\"text-4xl hover:scale-110 transition-transform\">{logo.logo}</div>\r\n </a>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <style jsx>{`\r\n @keyframes scroll {\r\n 0% {\r\n transform: translateX(0);\r\n }\r\n 100% {\r\n transform: translateX(-33.333%);\r\n }\r\n }\r\n .animate-scroll {\r\n animation: scroll 25s linear infinite;\r\n }\r\n `}</style>\r\n </div>\r\n );\r\n}\r\n\r\nexport default LogoCloud;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { ChevronDown } from \"lucide-react\";\r\n\r\ninterface FAQ {\r\n question: string;\r\n answer: string;\r\n}\r\n\r\ninterface FaqsAccordionProps {\r\n title?: string;\r\n description?: string;\r\n faqs?: FAQ[];\r\n className?: string;\r\n}\r\n\r\nexport function FaqsAccordion({\r\n title = \"Frequently Asked Questions\",\r\n description = \"Find answers to common questions about our product and services\",\r\n faqs = [\r\n {\r\n question: \"What is Bynana UI?\",\r\n answer:\r\n \"Bynana UI is a modern UI component library that provides beautiful, animated components for building stunning user interfaces.\",\r\n },\r\n {\r\n question: \"How do I get started?\",\r\n answer:\r\n \"Getting started is easy! Simply install the package via npm or yarn, import the components you need, and start building.\",\r\n },\r\n {\r\n question: \"Is it free to use?\",\r\n answer:\r\n \"Yes! Bynana UI is completely free. You can use it in both personal and commercial projects without any restrictions.\",\r\n },\r\n ],\r\n className = \"\",\r\n}: FaqsAccordionProps) {\r\n const [openIndex, setOpenIndex] = useState<number | null>(0);\r\n\r\n const toggleAccordion = (index: number) => {\r\n setOpenIndex(openIndex === index ? null : index);\r\n };\r\n\r\n return (\r\n <section className={`py-20 ${className}`}>\r\n <div className=\"mx-auto max-w-4xl px-6\">\r\n <div className=\"text-center mb-16\">\r\n <h2 className=\"mb-4 text-3xl font-bold lg:text-4xl\">{title}</h2>\r\n <p className=\"text-muted-foreground text-lg max-w-2xl mx-auto\">{description}</p>\r\n </div>\r\n\r\n <div className=\"space-y-4\">\r\n {faqs.map((faq, index) => (\r\n <div\r\n key={index}\r\n className=\"overflow-hidden rounded-2xl border transition-all hover:border-primary/50\"\r\n >\r\n <button\r\n onClick={() => toggleAccordion(index)}\r\n className=\"flex w-full items-center justify-between p-6 text-left hover:bg-accent/50\"\r\n >\r\n <h3 className=\"text-lg font-semibold pr-4\">{faq.question}</h3>\r\n <ChevronDown\r\n className={`h-5 w-5 text-muted-foreground transition-transform duration-300 ${\r\n openIndex === index ? \"rotate-180\" : \"\"\r\n }`}\r\n />\r\n </button>\r\n\r\n <div\r\n className={`overflow-hidden transition-all duration-300 ${\r\n openIndex === index ? \"max-h-96\" : \"max-h-0\"\r\n }`}\r\n >\r\n <div className=\"px-6 pb-6\">\r\n <p className=\"text-muted-foreground leading-relaxed\">{faq.answer}</p>\r\n </div>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </section>\r\n );\r\n}\r\n\r\nexport default FaqsAccordion;\r\n","\"use client\";\r\n\r\nimport { useState, ReactNode } from \"react\";\r\n\r\ninterface FAQ {\r\n question: string;\r\n answer: string;\r\n icon?: ReactNode;\r\n}\r\n\r\ninterface FaqCategory {\r\n name: string;\r\n id: string;\r\n faqs: FAQ[];\r\n}\r\n\r\ninterface FaqsGridProps {\r\n title?: string;\r\n description?: string;\r\n categories?: FaqCategory[];\r\n className?: string;\r\n}\r\n\r\nexport function FaqsGrid({\r\n title = \"FAQs\",\r\n description = \"Discover quick and comprehensive answers to common questions.\",\r\n categories = [\r\n {\r\n name: \"General\",\r\n id: \"general\",\r\n faqs: [\r\n {\r\n question: \"How do I install?\",\r\n answer: \"You can install using npm or yarn. Run `npm install bynana-ui` in your project.\",\r\n },\r\n {\r\n question: \"What are the requirements?\",\r\n answer: \"Works with React 16.8+ and supports all modern browsers.\",\r\n },\r\n {\r\n question: \"Is it free to use?\",\r\n answer: \"Yes! Completely free for personal and commercial projects.\",\r\n },\r\n ],\r\n },\r\n {\r\n name: \"Components\",\r\n id: \"components\",\r\n faqs: [\r\n {\r\n question: \"How many components?\",\r\n answer: \"Over 150+ pre-built components including buttons, forms, navigation, and more.\",\r\n },\r\n {\r\n question: \"Can I customize styling?\",\r\n answer: \"Absolutely! All components are fully customizable using CSS variables or Tailwind.\",\r\n },\r\n {\r\n question: \"Are they accessible?\",\r\n answer: \"Yes, all components follow WCAG guidelines with proper ARIA attributes.\",\r\n },\r\n ],\r\n },\r\n ],\r\n className = \"\",\r\n}: FaqsGridProps) {\r\n const [activeTab, setActiveTab] = useState(0);\r\n\r\n return (\r\n <section className={`py-16 md:py-24 ${className}`}>\r\n <div className=\"mx-auto max-w-5xl px-6\">\r\n <div className=\"max-w-lg\">\r\n <h2 className=\"text-4xl font-semibold\">{title}</h2>\r\n <p className=\"text-muted-foreground mt-4 text-lg\">{description}</p>\r\n </div>\r\n\r\n <div className=\"mt-8 md:mt-12\">\r\n <div className=\"flex flex-wrap gap-2 border-b\">\r\n {categories.map((category, index) => (\r\n <button\r\n key={category.id}\r\n onClick={() => setActiveTab(index)}\r\n className={`relative rounded-t-lg px-4 py-2 text-sm font-medium transition-all ${\r\n activeTab === index ? \"text-foreground\" : \"text-muted-foreground hover:text-foreground\"\r\n }`}\r\n >\r\n {category.name}\r\n {activeTab === index && (\r\n <div className=\"absolute right-0 bottom-0 left-0 h-0.5 rounded-t-full bg-primary\" />\r\n )}\r\n </button>\r\n ))}\r\n </div>\r\n </div>\r\n\r\n <div className=\"mt-8\">\r\n <dl className=\"grid gap-12 sm:grid-cols-2 lg:grid-cols-3\">\r\n {categories[activeTab].faqs.map((faq, faqIndex) => (\r\n <div key={faqIndex} className=\"space-y-3\">\r\n <dt className=\"font-semibold\">{faq.question}</dt>\r\n <dd className=\"text-muted-foreground\">{faq.answer}</dd>\r\n </div>\r\n ))}\r\n </dl>\r\n </div>\r\n </div>\r\n </section>\r\n );\r\n}\r\n\r\nexport default FaqsGrid;\r\n","\"use client\";\r\n\r\nimport { useEffect, useState } from \"react\";\r\nimport { ChevronLeft, ChevronRight } from \"lucide-react\";\r\n\r\ninterface TeamMember {\r\n name: string;\r\n role: string;\r\n experience: string;\r\n avatar: string;\r\n}\r\n\r\ninterface TeamCarouselProps {\r\n title?: string;\r\n subtitle?: string;\r\n description?: string;\r\n members?: TeamMember[];\r\n className?: string;\r\n}\r\n\r\nexport function TeamCarousel({\r\n title = \"Tech Pioneers\",\r\n subtitle = \"building the future\",\r\n description = \"We bring together brilliant developers and innovators.\",\r\n members = [\r\n {\r\n name: \"Emily Rodriguez\",\r\n role: \"Product Manager\",\r\n experience: \"6+ years\",\r\n avatar: \"https://i.pravatar.cc/160?img=1\",\r\n },\r\n {\r\n name: \"Mollie Hall\",\r\n role: \"CTO\",\r\n experience: \"12+ years\",\r\n avatar: \"https://i.pravatar.cc/160?img=2\",\r\n },\r\n {\r\n name: \"Alec Whitten\",\r\n role: \"UX Researcher\",\r\n experience: \"5+ years\",\r\n avatar: \"https://i.pravatar.cc/160?img=3\",\r\n },\r\n ],\r\n className = \"\",\r\n}: TeamCarouselProps) {\r\n const [currentIndex, setCurrentIndex] = useState(0);\r\n const [isAutoPlaying, setIsAutoPlaying] = useState(true);\r\n const cardsPerView = 3;\r\n\r\n useEffect(() => {\r\n if (!isAutoPlaying) return;\r\n\r\n const interval = setInterval(() => {\r\n setCurrentIndex((prev) => (prev + 1) % Math.max(1, members.length - cardsPerView + 1));\r\n }, 5000);\r\n\r\n return () => clearInterval(interval);\r\n }, [members.length, isAutoPlaying]);\r\n\r\n const nextSlide = () => {\r\n const maxIndex = Math.max(0, members.length - cardsPerView);\r\n if (currentIndex >= maxIndex) return;\r\n setCurrentIndex((prev) => Math.min(prev + 1, maxIndex));\r\n setIsAutoPlaying(false);\r\n setTimeout(() => setIsAutoPlaying(true), 1500);\r\n };\r\n\r\n const prevSlide = () => {\r\n if (currentIndex <= 0) return;\r\n setCurrentIndex((prev) => Math.max(prev - 1, 0));\r\n setIsAutoPlaying(false);\r\n setTimeout(() => setIsAutoPlaying(true), 1500);\r\n };\r\n\r\n return (\r\n <section className={`overflow-hidden py-32 ${className}`}>\r\n <div className=\"mx-auto max-w-5xl px-8 lg:px-0\">\r\n <div>\r\n <h2 className=\"text-5xl font-medium md:text-6xl\">\r\n {title} <br />\r\n <span className=\"text-muted-foreground\">{subtitle}</span>\r\n </h2>\r\n <p className=\"text-muted-foreground mt-6 max-w-md\">{description}</p>\r\n </div>\r\n\r\n <div className=\"relative\">\r\n <div className=\"mt-4 hidden items-center justify-end gap-4 md:flex\">\r\n <button\r\n onClick={prevSlide}\r\n disabled={currentIndex === 0}\r\n className=\"flex h-11 w-11 items-center justify-center rounded-full border hover:bg-accent disabled:opacity-50\"\r\n >\r\n <ChevronLeft className=\"h-5 w-5\" />\r\n </button>\r\n <button\r\n onClick={nextSlide}\r\n disabled={currentIndex >= members.length - cardsPerView}\r\n className=\"flex h-11 w-11 items-center justify-center rounded-full border hover:bg-accent disabled:opacity-50\"\r\n >\r\n <ChevronRight className=\"h-5 w-5\" />\r\n </button>\r\n </div>\r\n\r\n <div className=\"mt-16 overflow-hidden\">\r\n <div\r\n className=\"flex gap-4 transition-transform duration-500\"\r\n style={{ transform: `translateX(-${currentIndex * 304}px)` }}\r\n >\r\n {members.map((member) => (\r\n <div key={member.name} className=\"w-72 flex-shrink-0 rounded-2xl border p-7 text-center\">\r\n <img\r\n src={member.avatar}\r\n alt={member.name}\r\n className=\"mx-auto h-20 w-20 rounded-full border\"\r\n />\r\n <div className=\"mt-6\">\r\n <p className=\"text-lg font-medium\">{member.name}</p>\r\n <p className=\"text-muted-foreground text-sm\">{member.role}</p>\r\n </div>\r\n <div className=\"my-6 h-px bg-border\" />\r\n <p className=\"text-muted-foreground text-sm\">{member.experience}</p>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n );\r\n}\r\n\r\nexport default TeamCarousel;\r\n","\"use client\";\r\n\r\nimport { MapPin, Clock, DollarSign, Briefcase } from \"lucide-react\";\r\n\r\ninterface Job {\r\n title: string;\r\n department: string;\r\n location: string;\r\n type: string;\r\n salary?: string;\r\n url?: string;\r\n}\r\n\r\ninterface JobListingProps {\r\n title?: string;\r\n description?: string;\r\n jobs?: Job[];\r\n className?: string;\r\n}\r\n\r\nexport function JobListing({\r\n title = \"Open Positions\",\r\n description = \"Join our team and help build the future of UI development.\",\r\n jobs = [\r\n {\r\n title: \"Senior Frontend Engineer\",\r\n department: \"Engineering\",\r\n location: \"Remote\",\r\n type: \"Full-time\",\r\n salary: \"$120k - $180k\",\r\n url: \"#\",\r\n },\r\n {\r\n title: \"Product Designer\",\r\n department: \"Design\",\r\n location: \"San Francisco, CA\",\r\n type: \"Full-time\",\r\n salary: \"$100k - $150k\",\r\n url: \"#\",\r\n },\r\n {\r\n title: \"Developer Advocate\",\r\n department: \"Marketing\",\r\n location: \"Remote\",\r\n type: \"Full-time\",\r\n salary: \"$90k - $130k\",\r\n url: \"#\",\r\n },\r\n ],\r\n className = \"\",\r\n}: JobListingProps) {\r\n return (\r\n <section className={`py-20 ${className}`}>\r\n <div className=\"mx-auto max-w-4xl px-6\">\r\n <div className=\"text-center mb-12\">\r\n <h2 className=\"mb-4 text-3xl font-bold lg:text-4xl\">{title}</h2>\r\n <p className=\"text-muted-foreground text-lg max-w-2xl mx-auto\">{description}</p>\r\n </div>\r\n\r\n <div className=\"space-y-4\">\r\n {jobs.map((job, index) => (\r\n <a\r\n key={index}\r\n href={job.url}\r\n className=\"block rounded-xl border p-6 transition-all hover:border-primary/50 hover:shadow-md\"\r\n >\r\n <div className=\"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between\">\r\n <div>\r\n <h3 className=\"text-xl font-semibold\">{job.title}</h3>\r\n <div className=\"mt-2 flex flex-wrap items-center gap-4 text-sm text-muted-foreground\">\r\n <span className=\"flex items-center gap-1\">\r\n <Briefcase className=\"h-4 w-4\" />\r\n {job.department}\r\n </span>\r\n <span className=\"flex items-center gap-1\">\r\n <MapPin className=\"h-4 w-4\" />\r\n {job.location}\r\n </span>\r\n <span className=\"flex items-center gap-1\">\r\n <Clock className=\"h-4 w-4\" />\r\n {job.type}\r\n </span>\r\n {job.salary && (\r\n <span className=\"flex items-center gap-1\">\r\n <DollarSign className=\"h-4 w-4\" />\r\n {job.salary}\r\n </span>\r\n )}\r\n </div>\r\n </div>\r\n <button className=\"bg-primary text-primary-foreground hover:bg-primary/90 rounded-md px-4 py-2 text-sm font-medium\">\r\n Apply Now\r\n </button>\r\n </div>\r\n </a>\r\n ))}\r\n </div>\r\n </div>\r\n </section>\r\n );\r\n}\r\n\r\nexport default JobListing;\r\n","\"use client\";\r\n\r\nimport { useState, useRef, useEffect } from \"react\";\r\nimport { Search, X, Command } from \"lucide-react\";\r\n\r\ninterface SearchResult {\r\n id: string;\r\n title: string;\r\n description?: string;\r\n category?: string;\r\n}\r\n\r\ninterface ElasticSearchProps {\r\n placeholder?: string;\r\n results?: SearchResult[];\r\n onSearch?: (query: string) => void;\r\n onSelect?: (result: SearchResult) => void;\r\n className?: string;\r\n}\r\n\r\nexport function ElasticSearch({\r\n placeholder = \"Search...\",\r\n results = [],\r\n onSearch,\r\n onSelect,\r\n className = \"\",\r\n}: ElasticSearchProps) {\r\n const [query, setQuery] = useState(\"\");\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [selectedIndex, setSelectedIndex] = useState(0);\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n\r\n useEffect(() => {\r\n if (query && onSearch) {\r\n onSearch(query);\r\n }\r\n }, [query, onSearch]);\r\n\r\n const handleKeyDown = (e: React.KeyboardEvent) => {\r\n if (e.key === \"ArrowDown\") {\r\n e.preventDefault();\r\n setSelectedIndex((prev) => Math.min(prev + 1, results.length - 1));\r\n } else if (e.key === \"ArrowUp\") {\r\n e.preventDefault();\r\n setSelectedIndex((prev) => Math.max(prev - 1, 0));\r\n } else if (e.key === \"Enter\" && results[selectedIndex]) {\r\n e.preventDefault();\r\n onSelect?.(results[selectedIndex]);\r\n setIsOpen(false);\r\n } else if (e.key === \"Escape\") {\r\n setIsOpen(false);\r\n }\r\n };\r\n\r\n return (\r\n <div className={`relative w-full max-w-lg ${className}`}>\r\n <div className=\"relative\">\r\n <Search className=\"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground\" />\r\n <input\r\n ref={inputRef}\r\n type=\"text\"\r\n value={query}\r\n onChange={(e) => {\r\n setQuery(e.target.value);\r\n setIsOpen(true);\r\n setSelectedIndex(0);\r\n }}\r\n onFocus={() => setIsOpen(true)}\r\n onKeyDown={handleKeyDown}\r\n placeholder={placeholder}\r\n className=\"w-full rounded-lg border bg-background py-2 pl-10 pr-10 text-sm outline-none focus:border-primary focus:ring-2 focus:ring-primary/20\"\r\n />\r\n {query && (\r\n <button\r\n onClick={() => {\r\n setQuery(\"\");\r\n inputRef.current?.focus();\r\n }}\r\n className=\"absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground\"\r\n >\r\n <X className=\"h-4 w-4\" />\r\n </button>\r\n )}\r\n </div>\r\n\r\n {isOpen && results.length > 0 && (\r\n <div className=\"absolute top-full left-0 right-0 mt-2 rounded-lg border bg-background shadow-lg z-50\">\r\n {results.map((result, index) => (\r\n <button\r\n key={result.id}\r\n onClick={() => {\r\n onSelect?.(result);\r\n setIsOpen(false);\r\n }}\r\n className={`w-full px-4 py-3 text-left hover:bg-accent ${\r\n index === selectedIndex ? \"bg-accent\" : \"\"\r\n }`}\r\n >\r\n <div className=\"font-medium\">{result.title}</div>\r\n {result.description && (\r\n <div className=\"text-sm text-muted-foreground\">{result.description}</div>\r\n )}\r\n </button>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nexport default ElasticSearch;\r\n","\"use client\";\r\n\r\nimport { useState, useEffect, useRef } from \"react\";\r\nimport { Search, Command, ArrowRight } from \"lucide-react\";\r\n\r\ninterface Action {\r\n id: string;\r\n label: string;\r\n shortcut?: string;\r\n icon?: React.ReactNode;\r\n onSelect?: () => void;\r\n}\r\n\r\ninterface ActionSearchBarProps {\r\n placeholder?: string;\r\n actions?: Action[];\r\n onSearch?: (query: string) => void;\r\n className?: string;\r\n}\r\n\r\nexport function ActionSearchBar({\r\n placeholder = \"Type a command or search...\",\r\n actions = [],\r\n onSearch,\r\n className = \"\",\r\n}: ActionSearchBarProps) {\r\n const [query, setQuery] = useState(\"\");\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [selectedIndex, setSelectedIndex] = useState(0);\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n\r\n const filteredActions = actions.filter((action) =>\r\n action.label.toLowerCase().includes(query.toLowerCase())\r\n );\r\n\r\n useEffect(() => {\r\n const handleKeyDown = (e: KeyboardEvent) => {\r\n if ((e.metaKey || e.ctrlKey) && e.key === \"k\") {\r\n e.preventDefault();\r\n setIsOpen(true);\r\n inputRef.current?.focus();\r\n }\r\n };\r\n\r\n document.addEventListener(\"keydown\", handleKeyDown);\r\n return () => document.removeEventListener(\"keydown\", handleKeyDown);\r\n }, []);\r\n\r\n const handleKeyDown = (e: React.KeyboardEvent) => {\r\n if (e.key === \"ArrowDown\") {\r\n e.preventDefault();\r\n setSelectedIndex((prev) => Math.min(prev + 1, filteredActions.length - 1));\r\n } else if (e.key === \"ArrowUp\") {\r\n e.preventDefault();\r\n setSelectedIndex((prev) => Math.max(prev - 1, 0));\r\n } else if (e.key === \"Enter\" && filteredActions[selectedIndex]) {\r\n e.preventDefault();\r\n filteredActions[selectedIndex].onSelect?.();\r\n setIsOpen(false);\r\n setQuery(\"\");\r\n } else if (e.key === \"Escape\") {\r\n setIsOpen(false);\r\n }\r\n };\r\n\r\n return (\r\n <div className={`relative w-full max-w-lg ${className}`}>\r\n <div className=\"relative\">\r\n <Search className=\"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground\" />\r\n <input\r\n ref={inputRef}\r\n type=\"text\"\r\n value={query}\r\n onChange={(e) => {\r\n setQuery(e.target.value);\r\n setIsOpen(true);\r\n setSelectedIndex(0);\r\n onSearch?.(e.target.value);\r\n }}\r\n onFocus={() => setIsOpen(true)}\r\n onKeyDown={handleKeyDown}\r\n placeholder={placeholder}\r\n className=\"w-full rounded-lg border bg-background py-2 pl-10 pr-16 text-sm outline-none focus:border-primary focus:ring-2 focus:ring-primary/20\"\r\n />\r\n <div className=\"absolute right-3 top-1/2 -translate-y-1/2 flex items-center gap-1 text-xs text-muted-foreground\">\r\n <Command className=\"h-3 w-3\" />\r\n <span>K</span>\r\n </div>\r\n </div>\r\n\r\n {isOpen && filteredActions.length > 0 && (\r\n <div className=\"absolute top-full left-0 right-0 mt-2 rounded-lg border bg-background shadow-lg z-50 overflow-hidden\">\r\n {filteredActions.map((action, index) => (\r\n <button\r\n key={action.id}\r\n onClick={() => {\r\n action.onSelect?.();\r\n setIsOpen(false);\r\n setQuery(\"\");\r\n }}\r\n className={`w-full px-4 py-3 text-left flex items-center justify-between hover:bg-accent ${\r\n index === selectedIndex ? \"bg-accent\" : \"\"\r\n }`}\r\n >\r\n <div className=\"flex items-center gap-3\">\r\n {action.icon}\r\n <span>{action.label}</span>\r\n </div>\r\n {action.shortcut && (\r\n <span className=\"text-xs text-muted-foreground\">{action.shortcut}</span>\r\n )}\r\n </button>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nexport default ActionSearchBar;\r\n","\"use client\";\r\n\r\ninterface AILoadingProps {\r\n text?: string;\r\n className?: string;\r\n}\r\n\r\nexport function AILoading({ text = \"Thinking...\", className = \"\" }: AILoadingProps) {\r\n return (\r\n <div className={`flex items-center gap-3 ${className}`}>\r\n <div className=\"flex gap-1\">\r\n <span\r\n className=\"h-2 w-2 rounded-full bg-primary animate-bounce\"\r\n style={{ animationDelay: \"0ms\" }}\r\n />\r\n <span\r\n className=\"h-2 w-2 rounded-full bg-primary animate-bounce\"\r\n style={{ animationDelay: \"150ms\" }}\r\n />\r\n <span\r\n className=\"h-2 w-2 rounded-full bg-primary animate-bounce\"\r\n style={{ animationDelay: \"300ms\" }}\r\n />\r\n </div>\r\n <span className=\"text-sm text-muted-foreground\">{text}</span>\r\n </div>\r\n );\r\n}\r\n\r\nexport default AILoading;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { Send, Sparkles } from \"lucide-react\";\r\n\r\ninterface AIPromptProps {\r\n title?: string;\r\n placeholder?: string;\r\n suggestions?: string[];\r\n onSubmit?: (message: string) => void;\r\n className?: string;\r\n}\r\n\r\nexport function AIPrompt({\r\n title = \"How can I help you today?\",\r\n placeholder = \"Type your message...\",\r\n suggestions = [\"Write a blog post\", \"Generate code\", \"Explain a concept\", \"Create a summary\"],\r\n onSubmit,\r\n className = \"\",\r\n}: AIPromptProps) {\r\n const [value, setValue] = useState(\"\");\r\n\r\n const handleSubmit = (e: React.FormEvent) => {\r\n e.preventDefault();\r\n if (value.trim() && onSubmit) {\r\n onSubmit(value.trim());\r\n setValue(\"\");\r\n }\r\n };\r\n\r\n const handleSuggestion = (suggestion: string) => {\r\n setValue(suggestion);\r\n if (onSubmit) {\r\n onSubmit(suggestion);\r\n }\r\n };\r\n\r\n return (\r\n <div className={`w-full max-w-2xl mx-auto ${className}`}>\r\n <div className=\"text-center mb-8\">\r\n <div className=\"inline-flex items-center justify-center w-12 h-12 rounded-full bg-primary/10 mb-4\">\r\n <Sparkles className=\"h-6 w-6 text-primary\" />\r\n </div>\r\n <h2 className=\"text-2xl font-bold\">{title}</h2>\r\n </div>\r\n\r\n <form onSubmit={handleSubmit} className=\"relative mb-6\">\r\n <textarea\r\n value={value}\r\n onChange={(e) => setValue(e.target.value)}\r\n placeholder={placeholder}\r\n rows={3}\r\n className=\"w-full rounded-xl border bg-background px-4 py-3 pr-12 text-sm outline-none focus:border-primary focus:ring-2 focus:ring-primary/20 resize-none\"\r\n />\r\n <button\r\n type=\"submit\"\r\n disabled={!value.trim()}\r\n className=\"absolute right-3 bottom-3 rounded-lg bg-primary p-2 text-primary-foreground hover:bg-primary/90 disabled:opacity-50\"\r\n >\r\n <Send className=\"h-4 w-4\" />\r\n </button>\r\n </form>\r\n\r\n <div className=\"flex flex-wrap gap-2 justify-center\">\r\n {suggestions.map((suggestion, index) => (\r\n <button\r\n key={index}\r\n onClick={() => handleSuggestion(suggestion)}\r\n className=\"rounded-full border px-4 py-2 text-sm hover:bg-accent transition-colors\"\r\n >\r\n {suggestion}\r\n </button>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default AIPrompt;\r\n","\"use client\";\r\n\r\nimport { useState, useRef, useEffect } from \"react\";\r\nimport { Send, Mic, Paperclip, Sparkles } from \"lucide-react\";\r\n\r\ninterface AIBarProps {\r\n placeholder?: string;\r\n onSubmit?: (message: string) => void;\r\n showMic?: boolean;\r\n showAttach?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport function AIBar({\r\n placeholder = \"Ask me anything...\",\r\n onSubmit,\r\n showMic = true,\r\n showAttach = true,\r\n className = \"\",\r\n}: AIBarProps) {\r\n const [value, setValue] = useState(\"\");\r\n const [isFocused, setIsFocused] = useState(false);\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n\r\n const handleSubmit = (e: React.FormEvent) => {\r\n e.preventDefault();\r\n if (value.trim() && onSubmit) {\r\n onSubmit(value.trim());\r\n setValue(\"\");\r\n }\r\n };\r\n\r\n return (\r\n <form\r\n onSubmit={handleSubmit}\r\n className={`relative flex items-center gap-2 rounded-full border bg-background px-4 py-2 transition-all ${\r\n isFocused ? \"border-primary ring-2 ring-primary/20\" : \"\"\r\n } ${className}`}\r\n >\r\n <Sparkles className=\"h-5 w-5 text-primary\" />\r\n\r\n <input\r\n ref={inputRef}\r\n type=\"text\"\r\n value={value}\r\n onChange={(e) => setValue(e.target.value)}\r\n onFocus={() => setIsFocused(true)}\r\n onBlur={() => setIsFocused(false)}\r\n placeholder={placeholder}\r\n className=\"flex-1 bg-transparent text-sm outline-none placeholder:text-muted-foreground\"\r\n />\r\n\r\n <div className=\"flex items-center gap-1\">\r\n {showAttach && (\r\n <button\r\n type=\"button\"\r\n className=\"rounded-full p-2 hover:bg-accent text-muted-foreground hover:text-foreground\"\r\n >\r\n <Paperclip className=\"h-4 w-4\" />\r\n </button>\r\n )}\r\n\r\n {showMic && (\r\n <button\r\n type=\"button\"\r\n className=\"rounded-full p-2 hover:bg-accent text-muted-foreground hover:text-foreground\"\r\n >\r\n <Mic className=\"h-4 w-4\" />\r\n </button>\r\n )}\r\n\r\n <button\r\n type=\"submit\"\r\n disabled={!value.trim()}\r\n className=\"rounded-full bg-primary p-2 text-primary-foreground hover:bg-primary/90 disabled:opacity-50\"\r\n >\r\n <Send className=\"h-4 w-4\" />\r\n </button>\r\n </div>\r\n </form>\r\n );\r\n}\r\n\r\nexport default AIBar;\r\n","\"use client\";\r\n\r\nimport { useEffect, useRef, useState, ReactNode } from \"react\";\r\n\r\ninterface ScrollRevealProps {\r\n children: ReactNode;\r\n direction?: \"up\" | \"down\" | \"left\" | \"right\";\r\n distance?: number;\r\n duration?: number;\r\n delay?: number;\r\n className?: string;\r\n}\r\n\r\nexport function ScrollReveal({\r\n children,\r\n direction = \"up\",\r\n distance = 30,\r\n duration = 0.6,\r\n delay = 0,\r\n className = \"\",\r\n}: ScrollRevealProps) {\r\n const ref = useRef<HTMLDivElement>(null);\r\n const [isVisible, setIsVisible] = useState(false);\r\n\r\n useEffect(() => {\r\n const observer = new IntersectionObserver(\r\n ([entry]) => {\r\n if (entry.isIntersecting) {\r\n setIsVisible(true);\r\n observer.disconnect();\r\n }\r\n },\r\n { threshold: 0.1 }\r\n );\r\n\r\n if (ref.current) {\r\n observer.observe(ref.current);\r\n }\r\n\r\n return () => observer.disconnect();\r\n }, []);\r\n\r\n const getTransform = () => {\r\n if (isVisible) return \"translate(0, 0)\";\r\n switch (direction) {\r\n case \"up\":\r\n return `translateY(${distance}px)`;\r\n case \"down\":\r\n return `translateY(-${distance}px)`;\r\n case \"left\":\r\n return `translateX(${distance}px)`;\r\n case \"right\":\r\n return `translateX(-${distance}px)`;\r\n default:\r\n return `translateY(${distance}px)`;\r\n }\r\n };\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className={className}\r\n style={{\r\n transform: getTransform(),\r\n opacity: isVisible ? 1 : 0,\r\n transition: `transform ${duration}s ease-out ${delay}s, opacity ${duration}s ease-out ${delay}s`,\r\n }}\r\n >\r\n {children}\r\n </div>\r\n );\r\n}\r\n\r\nexport default ScrollReveal;\r\n","\"use client\";\r\n\r\nimport { useEffect, useRef, useState, ReactNode } from \"react\";\r\n\r\ninterface ScrollFloatProps {\r\n children: ReactNode;\r\n offset?: number;\r\n duration?: number;\r\n className?: string;\r\n}\r\n\r\nexport function ScrollFloat({\r\n children,\r\n offset = 50,\r\n duration = 0.6,\r\n className = \"\",\r\n}: ScrollFloatProps) {\r\n const ref = useRef<HTMLDivElement>(null);\r\n const [isVisible, setIsVisible] = useState(false);\r\n\r\n useEffect(() => {\r\n const observer = new IntersectionObserver(\r\n ([entry]) => {\r\n if (entry.isIntersecting) {\r\n setIsVisible(true);\r\n observer.disconnect();\r\n }\r\n },\r\n { threshold: 0.1 }\r\n );\r\n\r\n if (ref.current) {\r\n observer.observe(ref.current);\r\n }\r\n\r\n return () => observer.disconnect();\r\n }, []);\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className={className}\r\n style={{\r\n transform: isVisible ? \"translateY(0)\" : `translateY(${offset}px)`,\r\n opacity: isVisible ? 1 : 0,\r\n transition: `transform ${duration}s ease-out, opacity ${duration}s ease-out`,\r\n }}\r\n >\r\n {children}\r\n </div>\r\n );\r\n}\r\n\r\nexport default ScrollFloat;\r\n","\"use client\";\r\n\r\nimport { useEffect, useRef, useState, ReactNode } from \"react\";\r\n\r\ninterface ScrollStackProps {\r\n children: ReactNode[];\r\n stagger?: number;\r\n className?: string;\r\n}\r\n\r\nexport function ScrollStack({ children, stagger = 0.1, className = \"\" }: ScrollStackProps) {\r\n const ref = useRef<HTMLDivElement>(null);\r\n const [isVisible, setIsVisible] = useState(false);\r\n\r\n useEffect(() => {\r\n const observer = new IntersectionObserver(\r\n ([entry]) => {\r\n if (entry.isIntersecting) {\r\n setIsVisible(true);\r\n observer.disconnect();\r\n }\r\n },\r\n { threshold: 0.1 }\r\n );\r\n\r\n if (ref.current) {\r\n observer.observe(ref.current);\r\n }\r\n\r\n return () => observer.disconnect();\r\n }, []);\r\n\r\n return (\r\n <div ref={ref} className={className}>\r\n {children.map((child, index) => (\r\n <div\r\n key={index}\r\n style={{\r\n transform: isVisible ? \"translateY(0)\" : \"translateY(30px)\",\r\n opacity: isVisible ? 1 : 0,\r\n transition: `transform 0.6s ease-out ${index * stagger}s, opacity 0.6s ease-out ${index * stagger}s`,\r\n }}\r\n >\r\n {child}\r\n </div>\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport default ScrollStack;\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/utils/cn.ts","../src/shine-button/index.tsx","../src/ripple-button/index.tsx","../src/magnetic-button/index.tsx","../src/bounce-button/index.tsx","../src/glow-button/index.tsx","../src/pulse-button/index.tsx","../src/neon-button/index.tsx","../src/liquid-button/index.tsx","../src/slide-button/index.tsx","../src/gradient-button/index.tsx","../src/hold-button/index.tsx","../src/threed-button/index.tsx","../src/copy-button/index.tsx","../src/particle-button/index.tsx","../src/attract-button/index.tsx","../src/command-button/index.tsx","../src/gradient-text/index.tsx","../src/shimmer-text/index.tsx","../src/glitch-text/index.tsx","../src/bounce-text/index.tsx","../src/blur-text/index.tsx","../src/typewriter/index.tsx","../src/wave-text/index.tsx","../src/flip-text/index.tsx","../src/shiny-text/index.tsx","../src/fuzzy-text/index.tsx","../src/matrix-text/index.tsx","../src/liquid-text/index.tsx","../src/swoosh-text/index.tsx","../src/scrambled-text/index.tsx","../src/magnetic-text/index.tsx","../src/dynamic-text/index.tsx","../src/rotating-text/index.tsx","../src/stagger-text/index.tsx","../src/rainbow-text/index.tsx","../src/count-up/index.tsx","../src/reveal-text/index.tsx","../src/split-text/index.tsx","../src/morph-text/index.tsx","../src/perspective-text/index.tsx","../src/elastic-text/index.tsx","../src/circular-text/index.tsx","../src/glowing-text/index.tsx","../src/sliced-text/index.tsx","../src/decrypted-text/index.tsx","../src/true-focus/index.tsx","../src/glass-card/index.tsx","../src/hover-card/index.tsx","../src/card-flip/index.tsx","../src/card/index.tsx","../src/loading-dots/index.tsx","../src/loading-spinner/index.tsx","../src/loading-bar/index.tsx","../src/loading-pulse/index.tsx","../src/loading-bounce/index.tsx","../src/loading-flower/index.tsx","../src/loading-geometric/index.tsx","../src/loading-morph/index.tsx","../src/loading-rings/index.tsx","../src/loading-text/index.tsx","../src/loading-words/index.tsx","../src/animated-list/index.tsx","../src/skeleton/index.tsx","../src/tooltip/index.tsx","../src/tooltip-minimal/index.tsx","../src/tooltip-animated/index.tsx","../src/badge/index.tsx","../src/avatar/index.tsx","../src/progress/index.tsx","../src/switch/index.tsx","../src/accordion/index.tsx","../src/tabs/index.tsx","../src/modal/index.tsx","../src/drawer/index.tsx","../src/alert/index.tsx","../src/terminal/index.tsx","../src/stepper/index.tsx","../src/file-tree/index.tsx","../src/counter/index.tsx","../src/toolbar/index.tsx","../src/dock/index.tsx","../src/input/index.tsx","../src/textarea/index.tsx","../src/checkbox/index.tsx","../src/radio/index.tsx","../src/select/index.tsx","../src/input-otp/index.tsx","../src/hamburger-basic/index.tsx","../src/hamburger-spin/index.tsx","../src/hamburger-morph/index.tsx","../src/hamburger-spring/index.tsx","../src/hamburger-wave/index.tsx","../src/hamburger-stagger/index.tsx","../src/hamburger-3d/index.tsx","../src/hamburger-elastic/index.tsx","../src/click-spark/index.tsx","../src/smooth-cursor/index.tsx","../src/float-effect/index.tsx","../src/glow-effect/index.tsx","../src/blur-fade/index.tsx","../src/pixel-card/index.tsx","../src/tilted-card/index.tsx","../src/infinite-scroll/index.tsx","../src/multi-step-loader/index.tsx","../src/ascii-text/index.tsx","../src/falling-text/index.tsx","../src/animated-circular-progress/index.tsx","../src/loading-invert/index.tsx","../src/loader/index.tsx","../src/theme-toggler/index.tsx","../src/shimmer-effect/index.tsx","../src/scroll-velocity/index.tsx","../src/text-cursor/index.tsx","../src/social-button/index.tsx","../src/v0-button/index.tsx","../src/contribution-graph/index.tsx","../src/elastic-slider/index.tsx","../src/flowing-menu/index.tsx","../src/gooey-nav/index.tsx","../src/pill-nav/index.tsx","../src/smooth-drawer/index.tsx","../src/smooth-tab/index.tsx","../src/decay-card/index.tsx","../src/liquid-glass-card/index.tsx","../src/target-cursor/index.tsx","../src/crosshair/index.tsx","../src/scroll-text/index.tsx","../src/card-stack/index.tsx","../src/apple-activity-card/index.tsx","../src/tweet-card/index.tsx","../src/stats-cards/index.tsx","../src/stats-grid/index.tsx","../src/bento-grid/index.tsx","../src/aurora/index.tsx","../src/threads/index.tsx","../src/squares/index.tsx","../src/waves/index.tsx","../../../node_modules/shared/src/utils.ts","../../../node_modules/lucide-react/src/defaultAttributes.ts","../../../node_modules/lucide-react/src/Icon.ts","../../../node_modules/lucide-react/src/createLucideIcon.ts","../../../node_modules/lucide-react/src/icons/arrow-down-right.ts","../../../node_modules/lucide-react/src/icons/briefcase.ts","../../../node_modules/lucide-react/src/icons/check.ts","../../../node_modules/lucide-react/src/icons/chevron-down.ts","../../../node_modules/lucide-react/src/icons/chevron-left.ts","../../../node_modules/lucide-react/src/icons/chevron-right.ts","../../../node_modules/lucide-react/src/icons/clock.ts","../../../node_modules/lucide-react/src/icons/command.ts","../../../node_modules/lucide-react/src/icons/dollar-sign.ts","../../../node_modules/lucide-react/src/icons/external-link.ts","../../../node_modules/lucide-react/src/icons/map-pin.ts","../../../node_modules/lucide-react/src/icons/mic.ts","../../../node_modules/lucide-react/src/icons/paperclip.ts","../../../node_modules/lucide-react/src/icons/search.ts","../../../node_modules/lucide-react/src/icons/send.ts","../../../node_modules/lucide-react/src/icons/sparkles.ts","../../../node_modules/lucide-react/src/icons/star.ts","../../../node_modules/lucide-react/src/icons/x.ts","../src/hero-grid/index.tsx","../src/hero-showcase/index.tsx","../src/testimonials-simple/index.tsx","../src/testimonials-grid/index.tsx","../src/pricing-modern/index.tsx","../src/footer-simple/index.tsx","../src/footer-complex/index.tsx","../src/logo-cloud/index.tsx","../src/faqs-accordion/index.tsx","../src/faqs-grid/index.tsx","../src/team-carousel/index.tsx","../src/job-listing/index.tsx","../src/elastic-search/index.tsx","../src/action-search-bar/index.tsx","../src/ai-loading/index.tsx","../src/ai-prompt/index.tsx","../src/ai-bar/index.tsx","../src/scroll-reveal/index.tsx","../src/scroll-float/index.tsx","../src/scroll-stack/index.tsx","../src/magnet/index.tsx","../src/text-type/index.tsx","../src/ai-voice/index.tsx","../src/folder/index.tsx","../src/testimonials-stars/index.tsx","../src/logo-loop/index.tsx","../src/floating-paths/index.tsx","../src/background-paths/index.tsx","../src/team-selector/index.tsx","../src/ai-text-loading/index.tsx","../src/tooltip-interactive/index.tsx","../src/tooltip-magnetic/index.tsx","../src/tooltip-rich/index.tsx","../src/magnet-lines/index.tsx","../src/glare-hover/index.tsx"],"names":["cn","inputs","twMerge","clsx","ShineButton","children","className","props","jsxs","jsx","RippleButton","onClick","ripples","setRipples","useState","handleClick","e","rect","x","y","newRipple","prev","r","AnimatePresence","ripple","motion","MagneticButton","strength","radius","ref","useRef","isHovered","setIsHovered","useMotionValue","springConfig","xSpring","useSpring","ySpring","centerX","centerY","distanceX","distanceY","distance","factor","BounceButton","isBouncing","setIsBouncing","GlowButton","glowColor","isGlowing","setIsGlowing","PulseButton","pulseColor","colorVariants","sizeVariants","NeonButton","color","size","colors","LiquidButton","variant","isFilling","setIsFilling","sizeClasses","variantClasses","Fragment","_","i","SlideButton","slideText","gradients","sizes","GradientButton","HoldButton","holdDuration","onHoldComplete","progress","setProgress","isHolding","setIsHolding","intervalRef","variants","progressColors","startHold","startTime","elapsed","newProgress","stopHold","ThreeDButton","CopyButton","text","value","onCopy","copied","setCopied","error","SuccessParticles","buttonRef","ParticleButton","onSuccess","successDuration","showParticles","setShowParticles","AttractButton","particleCount","isAttracting","setIsAttracting","particles","setParticles","particlesControl","useAnimation","useEffect","newParticles","handleInteractionStart","useCallback","handleInteractionEnd","index","CommandButton","shortcut","GradientText","animationSpeed","ShimmerText","GlitchText","glitchIntensity","isStatic","selectedScheme","settings","sizeMap","glitchAnimation","BounceText","delay","duration","letters","letter","BlurText","animateBy","direction","elements","inView","setInView","observer","entry","fromAnimation","useMemo","toAnimation","segment","Typewriter","speed","cursor","loop","displayText","setDisplayText","isTyping","setIsTyping","timeout","isDeleting","type","WaveText","amplitude","frequency","FlipText","ShinyText","disabled","FuzzyText","fontSize","fontWeight","fontFamily","enableHover","baseIntensity","hoverIntensity","canvasRef","animationFrameId","isCancelled","canvas","ctx","computedFontFamily","fontSizeStr","numericFontSize","temp","React","offscreen","offCtx","metrics","actualLeft","actualRight","actualAscent","actualDescent","textBoundingWidth","tightHeight","extraWidthBuffer","offscreenWidth","xOffset","horizontalMargin","verticalMargin","interactiveLeft","interactiveTop","interactiveRight","interactiveBottom","isHovering","fuzzRange","run","intensity","j","dx","isInsideTextArea","handleMouseMove","handleMouseLeave","MatrixText","containerRef","container","chars","originalText","iteration","animate","char","LiquidText","words","child","word","SwooshText","ScrambledText","scrambleChars","interval","MagneticText","position","setPosition","handleMouse","clientX","clientY","height","width","left","top","middleX","middleY","reset","DynamicText","setIndex","timer","RotatingText","StaggerText","staggerDelay","RainbowText","CountUp","end","start","prefix","suffix","decimals","count","setCount","animationFrame","timestamp","easeOutQuart","currentCount","RevealText","stagger","SplitText","splitType","textAlign","element","MorphText","PerspectiveText","ElasticText","CircularText","spinDuration","onHover","controls","rotation","handleHoverStart","scale","handleHoverEnd","rotationDeg","angle","GlowingText","hoverColor","currentColor","SlicedText","containerClassName","splitSpacing","DecryptedText","maxIterations","sequential","revealDirection","useOriginalCharsOnly","characters","parentClassName","encryptedClassName","animateOn","setIsHovering","isScrambling","setIsScrambling","revealedIndices","setRevealedIndices","hasAnimated","setHasAnimated","currentIteration","getNextIndex","revealedSet","textLength","middle","offset","nextIndex","availableChars","shuffleText","currentRevealed","positions","nonSpaceChars","p","charIndex","prevRevealed","newRevealed","observerCallback","entries","currentRef","hoverProps","isRevealedOrDone","TrueFocus","sentence","manualMode","blurAmount","borderColor","animationDuration","pauseBetweenAnimations","currentIndex","setCurrentIndex","lastActiveIndex","setLastActiveIndex","wordRefs","focusRect","setFocusRect","updateFocusRect","parentRect","activeRect","isActive","el","GlassCard","HoverCard","CardFlip","frontContent","backContent","isFlipped","setIsFlipped","Card","hover","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","LoadingDots","LoadingSpinner","LoadingBar","LoadingPulse","LoadingBounce","LoadingFlower","LoadingGeometric","LoadingMorph","LoadingRings","LoadingText","LoadingWords","AnimatedList","childrenArray","prevIndex","itemsToShow","item","idx","AnimatedListItem","Skeleton","Tooltip","content","isVisible","setIsVisible","animations","TooltipMinimal","timeoutRef","showTooltip","hideTooltip","getPositionClasses","TooltipAnimated","animation","getAnimationProps","offsets","Badge","Avatar","src","alt","fallback","initials","n","Progress","max","showLabel","percentage","Switch","checked","onChange","sizeConfig","Accordion","items","allowMultiple","openItems","setOpenItems","toggleItem","Tabs","tabs","defaultIndex","activeIndex","setActiveIndex","tab","Modal","isOpen","onClose","title","handleEscape","Drawer","positionClasses","Alert","close","handleClose","AlertIcon","AlertTitle","AlertToolbar","Terminal","TypingAnimation","displayedText","setDisplayedText","isComplete","setIsComplete","AnimatedSpan","Stepper","initialStep","onStepChange","onFinalStepCompleted","backButtonText","nextButtonText","disableStepIndicators","rest","currentStep","setCurrentStep","setDirection","stepsArray","Children","totalSteps","isCompleted","isLastStep","updateStep","newStep","handleBack","handleNext","handleComplete","stepNumber","isNotLastStep","StepIndicator","clicked","StepConnector","StepContentWrapper","parentHeight","setParentHeight","SlideTransition","h","onHeightReady","useLayoutEffect","stepVariants","dir","Step","step","onClickStep","status","TreeContext","createContext","useTree","context","useContext","Tree","forwardRef","data","initialSelectedId","onSelectChange","initialExpandedItems","selectedId","setSelectedId","expandedItems","setExpandedItems","handleExpand","id","handleSelect","treeData","dataArray","findItem","found","selectedItem","Folder","isSelectable","File","Number","mv","number","useTransform","latest","placeValue","memo","Digit","place","digitStyle","valueRoundedToPlace","animatedValue","Counter","padding","places","gap","textColor","containerStyle","buttonVariants","isSelected","spanVariants","transition","Toolbar","defaultSelected","onItemClick","selected","setSelected","handleItemClick","itemId","Dock","directionClasses","DockIcon","magnification","mouseX","Input","label","icon","Textarea","Checkbox","RadioGroup","options","name","option","Select","placeholder","setIsOpen","selectedOption","opt","handleClickOutside","InputOTP","maxLength","onComplete","values","setValues","inputRefs","currentValue","handleChange","pastedValues","newValues","val","handleKeyDown","handleFocus","HamburgerBasic","handleToggle","newState","HamburgerSpin","classes","HamburgerMorph","HamburgerSpring","HamburgerWave","HamburgerStagger","Hamburger3D","HamburgerElastic","ClickSpark","sparkColor","sparkSize","sparkRadius","sparkCount","easing","extraScale","sparksRef","startTimeRef","parent","resizeTimeout","resizeCanvas","handleResize","ro","easeFunc","t","animationId","draw","spark","eased","lineLength","x1","y1","x2","y2","now","newSparks","SmoothCursor","cursorX","cursorY","cursorXSpring","cursorYSpring","moveCursor","hideCursor","FloatEffect","GlowEffect","BlurFade","blur","inViewMargin","yOffset","Pixel","min","centerOffset","VARIANTS","getEffectiveSpeed","reducedMotion","PixelCard","noFocus","pixelsRef","animationRef","timePreviousRef","variantCfg","finalGap","finalSpeed","finalColors","finalNoFocus","initPixels","colorsArray","c","pxs","gapValue","dy","doAnimate","fnName","timeNow","timePassed","timeInterval","allIdle","pixel","handleAnimation","onMouseEnter","onMouseLeave","onFocus","onBlur","springValues","TiltedCard","imageSrc","altText","captionText","containerHeight","containerWidth","imageHeight","imageWidth","scaleOnHover","rotateAmplitude","showMobileWarning","overlayContent","displayOverlayContent","rotateX","rotateY","opacity","rotateFigcaption","lastY","setLastY","offsetX","offsetY","rotationX","rotationY","velocityY","handleMouseEnter","InfiniteScroll","pauseOnHover","scrollerRef","scrollerInnerRef","duplicatedItem","MultiStepLoader","loadingStates","loading","currentState","setCurrentState","prevState","ASCII_CHARS","ASCIIText","enableWaves","asciiFontSize","textFontSize","planeBaseHeight","asciiArt","setAsciiArt","pixels","cols","rows","ascii","px","brightness","charIdx","FallingText","highlightWords","highlightClass","trigger","handleInteraction","isHighlighted","AnimatedCircularProgressBar","gaugePrimaryColor","gaugeSecondaryColor","strokeWidth","showValue","autoAnimate","setCurrentValue","circumference","motionValue","springValue","strokeDasharray","displayValue","next","LoadingInvert","Loader","subtitle","config","AnimatedThemeToggler","isDark","setIsDark","prefersDark","toggleTheme","newTheme","iconSizes","ShimmerEffect","useElementWidth","setWidth","updateWidth","ScrollVelocity","scrollContainerRef","texts","velocity","damping","stiffness","numCopies","velocityMapping","VelocityText","baseVelocity","baseX","scrollOptions","scrollY","useScroll","scrollVelocity","useVelocity","smoothVelocity","velocityFactor","copyRef","copyWidth","wrap","v","range","directionFactor","useAnimationFrame","delta","moveBy","spans","TextCursor","spacing","followMouseDirection","randomFloat","exitDuration","removalInterval","maxPoints","trail","setTrail","lastMoveTimeRef","idCounter","mouseY","newTrail","last","rawAngle","computedAngle","steps","SocialButton","href","Component","V0Button","ContributionGraph","weeks","contributions","getColor","level","weekIndex","dayIndex","ElasticSlider","defaultValue","trackClassName","thumbClassName","setValue","isDragging","setIsDragging","newValue","DEFAULT_ITEMS","FlowingMenu","hoveredIndex","setHoveredIndex","GooeyNav","activeColor","inactiveColor","backgroundColor","event","PillNav","logo","logoAlt","activeHref","baseColor","pillColor","hoveredPillTextColor","pillTextColor","onMobileMenuClick","resolvedPillTextColor","isMobileMenuOpen","setIsMobileMenuOpen","toggleMobileMenu","SmoothDrawer","description","side","DEFAULT_TABS","SmoothTab","defaultTabId","dimensions","setDimensions","buttonRefs","updateDimensions","selectedButton","containerRect","handleTabClick","tabId","DecayCard","image","displacementMapRef","cachedCursor","imgTransforms","displacementScale","lerp","a","map","b","d","ev","render","winWidth","winHeight","targetX","targetY","targetRz","bound","cursorTravelledDistance","filterId","GLASS_SHADOW","GlassFilter","LiquidGlassCard","glassSize","glassEffect","useId","TargetCursor","targetSelector","hideDefaultCursor","cursorRef","dotRef","setRotation","originalCursor","handleMouseOver","target","handleMouseOut","newRotation","cornerSize","borderWidth","corner","isTop","isLeft","Crosshair","lineHorizontalRef","lineVerticalRef","mouseRef","renderedRef","getMousePos","bounds","isOutside","onFirstMove","ScrollText","itemsRef","totalCards","isExpanded","defaultX","defaultY","defaultRotate","cardWidth","cardOverlap","expandedCenterOffset","spreadX","spreadRotate","spec","CardStack","defaultExpanded","setIsExpanded","CircleProgress","gradientId","defaultActivities","AppleActivityCard","activities","activity","VerifiedIcon","XIcon","TweetCard","authorName","authorHandle","authorImage","isVerified","reply","StatsCards","stats","isInView","useInView","stat","StatsGrid","BentoGrid","BentoCard","background","Icon","cta","Aurora","colorStops","blend","time","resize","gradient","noise","alpha","Threads","lineCount","lineColor","lineWidth","animationIdRef","lines","line","wave","Squares","squareSize","hoverFillColor","requestRef","gridOffset","hoveredSquare","drawGrid","startX","startY","squareX","squareY","updateAnimation","effectiveSpeed","Waves","waveSpeedX","waveSpeedY","waveAmpX","waveAmpY","xGap","yGap","friction","tension","maxCursorMove","style","frameIdRef","waveX","waveY","toKebabCase","string","toCamelCase","match","p1","p2","toPascalCase","camelCase","mergeClasses","array","hasA11yProp","prop","defaultAttributes","absoluteStrokeWidth","iconNode","createElement","tag","attrs","createLucideIcon","iconName","__iconNode","ArrowDownRight","Briefcase","Check","ChevronDown","ChevronLeft","ChevronRight","Clock","Command","DollarSign","ExternalLink","MapPin","Mic","Paperclip","Search","Send","Sparkles","Star","X","HeroGrid","heading","highlightedText","primaryButton","secondaryButton","HeroShowcase","buttons","reviews","avatar","star","TestimonialsSimple","testimonials","TestimonialsGrid","autoplay","active","setActive","handlePrev","testimonial","PricingModern","plans","isAnnual","setIsAnnual","plan","feature","FooterSimple","companyName","links","copyright","link","FooterComplex","newsletter","LogoCloud","logos","FaqsAccordion","faqs","openIndex","setOpenIndex","toggleAccordion","faq","FaqsGrid","categories","activeTab","setActiveTab","category","faqIndex","TeamCarousel","members","isAutoPlaying","setIsAutoPlaying","cardsPerView","nextSlide","maxIndex","prevSlide","member","JobListing","jobs","job","ElasticSearch","results","onSearch","onSelect","query","setQuery","selectedIndex","setSelectedIndex","inputRef","result","ActionSearchBar","actions","filteredActions","action","AILoading","AIPrompt","suggestions","onSubmit","handleSubmit","handleSuggestion","suggestion","AIBar","showMic","showAttach","isFocused","setIsFocused","ScrollReveal","ScrollFloat","ScrollStack","Magnet","magnetStrength","activeTransition","inactiveTransition","wrapperClassName","innerClassName","setIsActive","magnetRef","distX","distY","transitionStyle","TextType","typingSpeed","initialDelay","pauseDuration","deletingSpeed","showCursor","hideCursorWhileTyping","cursorCharacter","cursorClassName","cursorBlinkDuration","textColors","variableSpeed","onSentenceComplete","startOnVisible","reverseMode","currentCharIndex","setCurrentCharIndex","setIsDeleting","currentTextIndex","setCurrentTextIndex","cursorVisible","setCursorVisible","textArray","getRandomSpeed","getCurrentTextColor","currentText","processedText","executeTypingAnimation","shouldHideCursor","MicIcon","AIVoice","autoDemo","onListeningChange","submitted","setSubmitted","setTime","isClient","setIsClient","isDemo","setIsDemo","intervalId","formatTime","seconds","mins","secs","timeoutId","runAnimation","initialTimeout","darkenColor","hex","percent","num","g","papers","open","setOpen","paperOffsets","setPaperOffsets","folderBackColor","handlePaperMouseMove","newOffsets","handlePaperMouseLeave","StarIcon","filled","defaultTestimonials","TestimonialsStars","ANIMATION_CONFIG","LogoLoop","logoHeight","fadeOut","fadeOutColor","ariaLabel","trackRef","seqRef","seqWidth","setSeqWidth","copyCount","setCopyCount","targetVelocity","magnitude","directionMultiplier","speedMultiplier","sequenceWidth","copiesNeeded","observers","images","remainingImages","handleImageLoad","img","htmlImg","track","rafId","lastTimestamp","deltaTime","easingFactor","nextOffset","translateX","renderLogoItem","key","isNodeItem","itemAriaLabel","itemContent","logoLists","copyIndex","itemIndex","FloatingPaths","paths","path","generateAestheticPath","baseAmplitude","phase","points","segments","endX","endY","baseY","amplitudeFactor","wave1","wave2","wave3","point","prevPoint","cp1x","cp1y","cp2x","cp2y","generateUniqueId","primaryPaths","secondaryPaths","accentPaths","sharedAnimationProps","AnimatedTitle","BackgroundPaths","MAX_TEAM_SIZE","DEFAULT_TEAM_MEMBERS","TeamSelector","maxSize","peopleCount","setPeopleCount","isVibrating","setIsVibrating","handleIncrement","newCount","triggerVibration","handleDecrement","renderAvatars","AITextLoading","TooltipInteractive","persistent","tooltipRef","triggerProps","TooltipMagnetic","springX","springY","deltaX","deltaY","maxDistance","magneticStrength","TooltipRich","maxWidth","MagnetLines","columns","containerSize","lineHeight","baseAngle","onPointerMove","pointer","handlePointerMove","middleIndex","total","GlareHover","borderRadius","glareColor","glareOpacity","glareAngle","glareSize","transitionDuration","playOnce","rgba","glareStyles","vars"],"mappings":"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","file":"index.mjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface ShineButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n children: React.ReactNode;\r\n}\r\n\r\nexport function ShineButton({ children, className, ...props }: ShineButtonProps) {\r\n return (\r\n <button\r\n className={cn(\r\n \"relative overflow-hidden px-6 py-3 rounded-xl font-medium\",\r\n \"bg-zinc-900 text-white hover:bg-zinc-800\",\r\n \"dark:bg-zinc-800 dark:hover:bg-zinc-700 dark:text-white\",\r\n \"transition-colors duration-200\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <span\r\n className={cn(\r\n \"absolute inset-0 overflow-hidden rounded-[inherit]\",\r\n \"before:absolute before:inset-0\",\r\n \"before:-translate-x-full\",\r\n \"before:animate-shimmer\",\r\n \"before:bg-gradient-to-r\",\r\n \"before:from-transparent before:via-white/40 before:to-transparent\",\r\n \"before:skew-x-[-20deg]\"\r\n )}\r\n />\r\n <span className=\"relative z-10\">{children}</span>\r\n </button>\r\n );\r\n}\r\n\r\nexport default ShineButton;\r\n","\"use client\";\r\n\r\nimport React, { useState } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface RippleButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n children: React.ReactNode;\r\n}\r\n\r\nexport function RippleButton({ children, className, onClick, ...props }: RippleButtonProps) {\r\n const [ripples, setRipples] = useState<Array<{ x: number; y: number; id: number }>>([]);\r\n\r\n function handleClick(e: React.MouseEvent<HTMLButtonElement>) {\r\n const button = e.currentTarget;\r\n const rect = button.getBoundingClientRect();\r\n const x = e.clientX - rect.left;\r\n const y = e.clientY - rect.top;\r\n const newRipple = { x, y, id: Date.now() };\r\n\r\n setRipples((prev) => [...prev, newRipple]);\r\n setTimeout(() => {\r\n setRipples((prev) => prev.filter((r) => r.id !== newRipple.id));\r\n }, 1000);\r\n\r\n onClick?.(e);\r\n }\r\n\r\n return (\r\n <button\r\n className={cn(\r\n \"relative overflow-hidden px-6 py-3 rounded-xl font-medium\",\r\n \"bg-zinc-900 text-white hover:bg-zinc-800\",\r\n \"dark:bg-zinc-100 dark:text-black dark:hover:bg-zinc-200\",\r\n \"transition-colors duration-200\",\r\n className\r\n )}\r\n onClick={handleClick}\r\n {...props}\r\n >\r\n <AnimatePresence>\r\n {ripples.map((ripple) => (\r\n <motion.span\r\n key={ripple.id}\r\n className=\"absolute rounded-full pointer-events-none border-2 border-white/50 dark:border-black/50\"\r\n style={{\r\n left: ripple.x,\r\n top: ripple.y,\r\n transform: \"translate(-50%, -50%)\",\r\n }}\r\n initial={{ width: 0, height: 0, opacity: 0.9 }}\r\n animate={{ width: 500, height: 500, opacity: 0 }}\r\n exit={{ opacity: 0 }}\r\n transition={{ duration: 1, ease: [0.4, 0, 0.2, 1] }}\r\n />\r\n ))}\r\n </AnimatePresence>\r\n <span className=\"relative z-10\">{children}</span>\r\n </button>\r\n );\r\n}\r\n\r\nexport default RippleButton;\r\n","\"use client\";\r\n\r\nimport React, { useRef, useState } from \"react\";\r\nimport { motion, useMotionValue, useSpring } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface MagneticButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n children: React.ReactNode;\r\n strength?: number;\r\n radius?: number;\r\n}\r\n\r\nexport function MagneticButton({\r\n children,\r\n className,\r\n strength = 0.5,\r\n radius = 200,\r\n ...props\r\n}: MagneticButtonProps) {\r\n const ref = useRef<HTMLDivElement>(null);\r\n const [isHovered, setIsHovered] = useState(false);\r\n\r\n const x = useMotionValue(0);\r\n const y = useMotionValue(0);\r\n\r\n const springConfig = { damping: 20, stiffness: 300, mass: 0.5 };\r\n const xSpring = useSpring(x, springConfig);\r\n const ySpring = useSpring(y, springConfig);\r\n\r\n const handleMouseMove = (e: React.MouseEvent) => {\r\n if (!ref.current) return;\r\n const rect = ref.current.getBoundingClientRect();\r\n const centerX = rect.left + rect.width / 2;\r\n const centerY = rect.top + rect.height / 2;\r\n const distanceX = e.clientX - centerX;\r\n const distanceY = e.clientY - centerY;\r\n const distance = Math.sqrt(distanceX * distanceX + distanceY * distanceY);\r\n\r\n if (distance < radius) {\r\n const factor = 1 - distance / radius;\r\n x.set(distanceX * strength * factor);\r\n y.set(distanceY * strength * factor);\r\n }\r\n };\r\n\r\n const handleMouseLeave = () => {\r\n setIsHovered(false);\r\n x.set(0);\r\n y.set(0);\r\n };\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className=\"relative inline-flex items-center justify-center\"\r\n onMouseMove={handleMouseMove}\r\n onMouseLeave={handleMouseLeave}\r\n onMouseEnter={() => setIsHovered(true)}\r\n style={{ padding: radius / 2, margin: -radius / 2 }}\r\n >\r\n <motion.div style={{ x: xSpring, y: ySpring }}>\r\n <button\r\n className={cn(\r\n \"px-6 py-3 rounded-xl font-medium\",\r\n \"bg-zinc-900 text-white hover:bg-zinc-800\",\r\n \"dark:bg-zinc-100 dark:text-black dark:hover:bg-zinc-200\",\r\n \"transition-shadow duration-300\",\r\n isHovered && \"shadow-lg\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </button>\r\n </motion.div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default MagneticButton;\r\n","\"use client\";\r\n\r\nimport React, { useState } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface BounceButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n children: React.ReactNode;\r\n}\r\n\r\nexport function BounceButton({ children, className, onClick, ...props }: BounceButtonProps) {\r\n const [isBouncing, setIsBouncing] = useState(false);\r\n\r\n function handleClick(e: React.MouseEvent<HTMLButtonElement>) {\r\n setIsBouncing(true);\r\n setTimeout(() => setIsBouncing(false), 1500);\r\n onClick?.(e);\r\n }\r\n\r\n return (\r\n <div className=\"relative inline-block\">\r\n <motion.div\r\n className=\"absolute -bottom-2 left-1/2 w-16 h-2 bg-black/20 rounded-full blur-sm\"\r\n animate={isBouncing ? {\r\n scaleX: [1, 0.8, 1.2, 0.9, 1.1, 0.95, 1],\r\n opacity: [0.3, 0.6, 0.2, 0.5, 0.3, 0.4, 0.3],\r\n } : {}}\r\n style={{ x: \"-50%\" }}\r\n transition={{ duration: 1.5, ease: \"easeOut\" }}\r\n />\r\n\r\n <motion.div\r\n animate={isBouncing ? {\r\n y: [0, -40, -20, -35, -10, -25, -5, -15, 0],\r\n rotate: [0, -5, 2, -3, 1, -2, 0.5, -1, 0],\r\n } : {}}\r\n transition={{\r\n duration: 1.5,\r\n ease: \"easeOut\",\r\n times: [0, 0.2, 0.35, 0.5, 0.65, 0.75, 0.85, 0.95, 1],\r\n }}\r\n whileHover={!isBouncing ? { y: [0, -8, 0] } : {}}\r\n >\r\n <button\r\n className={cn(\r\n \"px-6 py-3 rounded-xl font-medium\",\r\n \"bg-orange-500 hover:bg-orange-600 text-white\",\r\n \"transition-colors duration-200\",\r\n className\r\n )}\r\n onClick={handleClick}\r\n disabled={isBouncing}\r\n {...props}\r\n >\r\n {children}\r\n </button>\r\n </motion.div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default BounceButton;\r\n","\"use client\";\r\n\r\nimport React, { useState } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface GlowButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n children: React.ReactNode;\r\n glowColor?: string;\r\n}\r\n\r\nexport function GlowButton({\r\n children,\r\n className,\r\n glowColor = \"rgba(59, 130, 246, 0.8)\",\r\n ...props\r\n}: GlowButtonProps) {\r\n const [isGlowing, setIsGlowing] = useState(false);\r\n\r\n return (\r\n <motion.div\r\n className=\"relative inline-block\"\r\n onMouseEnter={() => setIsGlowing(true)}\r\n onMouseLeave={() => setIsGlowing(false)}\r\n animate={{\r\n filter: isGlowing\r\n ? [\r\n `drop-shadow(0 0 10px ${glowColor})`,\r\n `drop-shadow(0 0 25px ${glowColor})`,\r\n `drop-shadow(0 0 10px ${glowColor})`,\r\n ]\r\n : \"drop-shadow(0 0 0px transparent)\",\r\n }}\r\n transition={{\r\n duration: isGlowing ? 1.5 : 0.3,\r\n repeat: isGlowing ? Infinity : 0,\r\n }}\r\n >\r\n <motion.div\r\n className=\"absolute inset-0 rounded-xl\"\r\n animate={isGlowing ? {\r\n boxShadow: [\r\n `0 0 20px ${glowColor}`,\r\n `0 0 40px ${glowColor}`,\r\n `0 0 20px ${glowColor}`,\r\n ],\r\n scale: [1, 1.05, 1],\r\n } : {\r\n boxShadow: \"0 0 0px transparent\",\r\n scale: 1,\r\n }}\r\n transition={{\r\n duration: 2,\r\n repeat: isGlowing ? Infinity : 0,\r\n ease: \"easeInOut\",\r\n }}\r\n />\r\n\r\n <button\r\n className={cn(\r\n \"relative px-6 py-3 rounded-xl font-medium\",\r\n \"bg-blue-600 hover:bg-blue-700 text-white\",\r\n \"transition-all duration-300\",\r\n isGlowing && \"bg-blue-500\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </button>\r\n </motion.div>\r\n );\r\n}\r\n\r\nexport default GlowButton;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface PulseButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n children: React.ReactNode;\r\n pulseColor?: string;\r\n}\r\n\r\nexport function PulseButton({\r\n children,\r\n className,\r\n pulseColor = \"rgba(239, 68, 68, 0.5)\",\r\n ...props\r\n}: PulseButtonProps) {\r\n return (\r\n <div className=\"relative inline-block\">\r\n <motion.div\r\n className=\"absolute inset-0 rounded-xl\"\r\n style={{ backgroundColor: pulseColor }}\r\n animate={{\r\n scale: [1, 1.3, 1, 1.2, 1],\r\n opacity: [0.6, 0, 0.6, 0, 0.6],\r\n }}\r\n transition={{\r\n duration: 1.2,\r\n repeat: Infinity,\r\n ease: \"easeInOut\",\r\n times: [0, 0.2, 0.4, 0.6, 1],\r\n }}\r\n />\r\n\r\n <motion.div\r\n className=\"absolute inset-0 rounded-xl\"\r\n style={{ backgroundColor: pulseColor }}\r\n animate={{\r\n scale: [1, 1.5, 1, 1.4, 1],\r\n opacity: [0.4, 0, 0.4, 0, 0.4],\r\n }}\r\n transition={{\r\n duration: 1.2,\r\n delay: 0.1,\r\n repeat: Infinity,\r\n ease: \"easeInOut\",\r\n times: [0, 0.2, 0.4, 0.6, 1],\r\n }}\r\n />\r\n\r\n <motion.div\r\n animate={{\r\n scale: [1, 1.05, 1, 1.03, 1],\r\n }}\r\n transition={{\r\n duration: 1.2,\r\n repeat: Infinity,\r\n ease: \"easeInOut\",\r\n times: [0, 0.2, 0.4, 0.6, 1],\r\n }}\r\n >\r\n <button\r\n className={cn(\r\n \"relative px-6 py-3 rounded-xl font-medium\",\r\n \"bg-red-500 hover:bg-red-600 text-white\",\r\n \"transition-colors duration-200\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </button>\r\n </motion.div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default PulseButton;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface NeonButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n color?: \"pink\" | \"cyan\" | \"green\" | \"purple\" | \"orange\";\r\n size?: \"sm\" | \"default\" | \"lg\";\r\n}\r\n\r\nconst colorVariants = {\r\n pink: {\r\n border: \"border-pink-500\",\r\n text: \"text-pink-400\",\r\n shadow: \"shadow-pink-500/50\",\r\n glow: \"rgba(236, 72, 153, 0.6)\",\r\n bg: \"hover:bg-pink-500/10\",\r\n },\r\n cyan: {\r\n border: \"border-cyan-500\",\r\n text: \"text-cyan-400\",\r\n shadow: \"shadow-cyan-500/50\",\r\n glow: \"rgba(6, 182, 212, 0.6)\",\r\n bg: \"hover:bg-cyan-500/10\",\r\n },\r\n green: {\r\n border: \"border-green-500\",\r\n text: \"text-green-400\",\r\n shadow: \"shadow-green-500/50\",\r\n glow: \"rgba(34, 197, 94, 0.6)\",\r\n bg: \"hover:bg-green-500/10\",\r\n },\r\n purple: {\r\n border: \"border-purple-500\",\r\n text: \"text-purple-400\",\r\n shadow: \"shadow-purple-500/50\",\r\n glow: \"rgba(168, 85, 247, 0.6)\",\r\n bg: \"hover:bg-purple-500/10\",\r\n },\r\n orange: {\r\n border: \"border-orange-500\",\r\n text: \"text-orange-400\",\r\n shadow: \"shadow-orange-500/50\",\r\n glow: \"rgba(249, 115, 22, 0.6)\",\r\n bg: \"hover:bg-orange-500/10\",\r\n },\r\n};\r\n\r\nconst sizeVariants = {\r\n sm: \"h-8 px-3 text-xs\",\r\n default: \"h-10 px-6 text-sm\",\r\n lg: \"h-12 px-8 text-base\",\r\n};\r\n\r\nexport function NeonButton({\r\n children,\r\n className,\r\n color = \"cyan\",\r\n size = \"default\",\r\n ...props\r\n}: NeonButtonProps) {\r\n const colors = colorVariants[color];\r\n\r\n return (\r\n <motion.button\r\n className={cn(\r\n \"relative inline-flex items-center justify-center\",\r\n \"font-semibold tracking-wide uppercase\",\r\n \"border-2 rounded-lg\",\r\n \"bg-transparent\",\r\n \"transition-colors duration-200\",\r\n colors.border,\r\n colors.text,\r\n colors.bg,\r\n sizeVariants[size],\r\n className\r\n )}\r\n whileHover={{\r\n boxShadow: `0 0 20px ${colors.glow}, 0 0 40px ${colors.glow}, 0 0 60px ${colors.glow}`,\r\n }}\r\n whileTap={{ scale: 0.98 }}\r\n transition={{ duration: 0.2 }}\r\n {...props}\r\n >\r\n <motion.span\r\n className={cn(\"absolute inset-0 rounded-lg opacity-0\", colors.border)}\r\n animate={{ opacity: [0.5, 1, 0.5] }}\r\n transition={{ duration: 2, repeat: Infinity, ease: \"easeInOut\" }}\r\n style={{ boxShadow: `inset 0 0 10px ${colors.glow}` }}\r\n />\r\n <span className=\"relative z-10\">{children}</span>\r\n </motion.button>\r\n );\r\n}\r\n\r\nexport default NeonButton;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LiquidButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n variant?: \"primary\" | \"secondary\" | \"outline\";\r\n size?: \"sm\" | \"md\" | \"lg\";\r\n}\r\n\r\nexport function LiquidButton({\r\n children,\r\n className,\r\n variant = \"primary\",\r\n size = \"md\",\r\n onClick,\r\n ...props\r\n}: LiquidButtonProps) {\r\n const [isFilling, setIsFilling] = useState(false);\r\n\r\n function handleClick(e: React.MouseEvent<HTMLButtonElement>) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n setIsFilling(true);\r\n setTimeout(() => setIsFilling(false), 800);\r\n if (onClick) onClick(e);\r\n }\r\n\r\n const sizeClasses = {\r\n sm: \"px-4 py-2 text-sm\",\r\n md: \"px-6 py-3 text-base\",\r\n lg: \"px-8 py-4 text-lg\"\r\n };\r\n\r\n const variantClasses = {\r\n primary: \"bg-zinc-900 text-white border-zinc-900 dark:bg-white dark:text-zinc-900 dark:border-white\",\r\n secondary: \"bg-zinc-100 text-zinc-900 border-zinc-200 dark:bg-zinc-800 dark:text-white dark:border-zinc-700\",\r\n outline: \"bg-transparent text-zinc-900 border-zinc-300 dark:text-white dark:border-zinc-600\"\r\n };\r\n\r\n return (\r\n <button\r\n className={cn(\r\n \"relative overflow-hidden rounded-lg font-medium border-2 transition-colors\",\r\n sizeClasses[size],\r\n variantClasses[variant],\r\n className\r\n )}\r\n onClick={handleClick}\r\n {...props}\r\n >\r\n <AnimatePresence>\r\n {isFilling && (\r\n <motion.div\r\n key=\"liquid-fill\"\r\n className={cn(\r\n \"absolute inset-0 origin-bottom\",\r\n variant === \"primary\" ? \"bg-blue-500 dark:bg-blue-400\" : \"bg-zinc-900 dark:bg-white\"\r\n )}\r\n initial={{ scaleY: 0 }}\r\n animate={{ scaleY: 1 }}\r\n exit={{ scaleY: 0, transition: { duration: 0.3 } }}\r\n transition={{ duration: 0.5, ease: [0.4, 0, 0.2, 1] }}\r\n style={{ transformOrigin: \"bottom\" }}\r\n />\r\n )}\r\n </AnimatePresence>\r\n \r\n <AnimatePresence>\r\n {isFilling && (\r\n <>\r\n {[...Array(5)].map((_, i) => (\r\n <motion.div\r\n key={i}\r\n className=\"absolute w-1.5 h-1.5 bg-white/60 rounded-full\"\r\n style={{ left: `${20 + i * 15}%`, bottom: \"10%\" }}\r\n initial={{ y: 0, opacity: 0, scale: 0 }}\r\n animate={{ y: -60, opacity: [0, 1, 0], scale: [0, 1, 0.5] }}\r\n transition={{ duration: 0.6, delay: i * 0.08, ease: \"easeOut\" }}\r\n />\r\n ))}\r\n </>\r\n )}\r\n </AnimatePresence>\r\n\r\n <span className={cn(\r\n \"relative flex items-center justify-center gap-2 transition-colors duration-200 z-10\",\r\n isFilling && (variant === \"outline\" || variant === \"secondary\" ? \"text-white dark:text-zinc-900\" : \"text-white\")\r\n )}>\r\n {children}\r\n </span>\r\n </button>\r\n );\r\n}\r\n\r\nexport default LiquidButton;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface SlideButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n variant?: \"primary\" | \"secondary\" | \"outline\";\r\n size?: \"sm\" | \"md\" | \"lg\";\r\n slideText?: string;\r\n}\r\n\r\nexport function SlideButton({\r\n children,\r\n className,\r\n variant = \"primary\",\r\n size = \"md\",\r\n slideText = \"Go!\",\r\n onClick,\r\n ...props\r\n}: SlideButtonProps) {\r\n const [isHovered, setIsHovered] = useState(false);\r\n\r\n const sizeClasses = {\r\n sm: \"px-4 py-2 text-sm\",\r\n md: \"px-6 py-3 text-base\",\r\n lg: \"px-8 py-4 text-lg\"\r\n };\r\n\r\n const variantClasses = {\r\n primary: \"bg-zinc-900 text-white dark:bg-white dark:text-zinc-900\",\r\n secondary: \"bg-zinc-100 text-zinc-900 dark:bg-zinc-800 dark:text-white\",\r\n outline: \"bg-transparent text-zinc-900 border-2 border-zinc-300 dark:text-white dark:border-zinc-600\"\r\n };\r\n\r\n return (\r\n <button\r\n className={cn(\r\n \"relative overflow-hidden rounded-lg font-medium transition-all\",\r\n sizeClasses[size],\r\n variantClasses[variant],\r\n className\r\n )}\r\n onMouseEnter={() => setIsHovered(true)}\r\n onMouseLeave={() => setIsHovered(false)}\r\n onClick={onClick}\r\n {...props}\r\n >\r\n <motion.div\r\n className={cn(\r\n \"absolute inset-0\",\r\n variant === \"primary\" ? \"bg-blue-600 dark:bg-blue-500\" : \"bg-zinc-900 dark:bg-white\"\r\n )}\r\n initial={{ x: \"-100%\" }}\r\n animate={{ x: isHovered ? \"0%\" : \"-100%\" }}\r\n transition={{ duration: 0.3, ease: \"easeInOut\" }}\r\n />\r\n \r\n <motion.span\r\n className=\"relative flex items-center justify-center gap-2 z-10\"\r\n animate={{ x: isHovered ? 20 : 0, opacity: isHovered ? 0 : 1 }}\r\n transition={{ duration: 0.2 }}\r\n >\r\n {children}\r\n </motion.span>\r\n \r\n <motion.span\r\n className={cn(\r\n \"absolute inset-0 flex items-center justify-center gap-2 z-10\",\r\n variant === \"outline\" || variant === \"secondary\" ? \"text-white dark:text-zinc-900\" : \"text-white\"\r\n )}\r\n initial={{ x: -20, opacity: 0 }}\r\n animate={{ x: isHovered ? 0 : -20, opacity: isHovered ? 1 : 0 }}\r\n transition={{ duration: 0.2 }}\r\n >\r\n {slideText}\r\n <svg className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M14 5l7 7m0 0l-7 7m7-7H3\" />\r\n </svg>\r\n </motion.span>\r\n </button>\r\n );\r\n}\r\n\r\nexport default SlideButton;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface GradientButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n variant?: \"sunset\" | \"ocean\" | \"forest\" | \"purple\" | \"fire\";\r\n size?: \"sm\" | \"md\" | \"lg\";\r\n}\r\n\r\nconst gradients = {\r\n sunset: \"from-orange-500 via-pink-500 to-purple-500\",\r\n ocean: \"from-cyan-500 via-blue-500 to-purple-500\",\r\n forest: \"from-green-500 via-emerald-500 to-teal-500\",\r\n purple: \"from-purple-500 via-violet-500 to-indigo-500\",\r\n fire: \"from-yellow-500 via-orange-500 to-red-500\",\r\n};\r\n\r\nconst sizes = {\r\n sm: \"px-4 py-2 text-sm\",\r\n md: \"px-6 py-3 text-base\",\r\n lg: \"px-8 py-4 text-lg\",\r\n};\r\n\r\nexport function GradientButton({\r\n children,\r\n className,\r\n variant = \"ocean\",\r\n size = \"md\",\r\n ...props\r\n}: GradientButtonProps) {\r\n return (\r\n <motion.button\r\n className={cn(\r\n \"relative overflow-hidden rounded-lg font-semibold text-white\",\r\n \"bg-gradient-to-r\",\r\n gradients[variant],\r\n sizes[size],\r\n className\r\n )}\r\n whileHover={{ scale: 1.02 }}\r\n whileTap={{ scale: 0.98 }}\r\n {...props}\r\n >\r\n <motion.div\r\n className=\"absolute inset-0 bg-gradient-to-r from-white/0 via-white/25 to-white/0\"\r\n initial={{ x: \"-100%\" }}\r\n whileHover={{ x: \"100%\" }}\r\n transition={{ duration: 0.5 }}\r\n />\r\n <span className=\"relative z-10\">{children}</span>\r\n </motion.button>\r\n );\r\n}\r\n\r\nexport default GradientButton;\r\n","\"use client\";\r\n\r\nimport { useState, useRef } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface HoldButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n holdDuration?: number;\r\n onHoldComplete?: () => void;\r\n variant?: \"primary\" | \"danger\" | \"success\";\r\n}\r\n\r\nexport function HoldButton({\r\n children,\r\n className,\r\n holdDuration = 1000,\r\n onHoldComplete,\r\n variant = \"primary\",\r\n ...props\r\n}: HoldButtonProps) {\r\n const [progress, setProgress] = useState(0);\r\n const [isHolding, setIsHolding] = useState(false);\r\n const intervalRef = useRef<NodeJS.Timeout | null>(null);\r\n\r\n const variants = {\r\n primary: \"bg-zinc-900 dark:bg-white\",\r\n danger: \"bg-red-500\",\r\n success: \"bg-green-500\",\r\n };\r\n\r\n const progressColors = {\r\n primary: \"bg-blue-500\",\r\n danger: \"bg-red-700\",\r\n success: \"bg-green-700\",\r\n };\r\n\r\n const startHold = () => {\r\n setIsHolding(true);\r\n const startTime = Date.now();\r\n \r\n intervalRef.current = setInterval(() => {\r\n const elapsed = Date.now() - startTime;\r\n const newProgress = Math.min((elapsed / holdDuration) * 100, 100);\r\n setProgress(newProgress);\r\n \r\n if (newProgress >= 100) {\r\n stopHold();\r\n onHoldComplete?.();\r\n }\r\n }, 16);\r\n };\r\n\r\n const stopHold = () => {\r\n setIsHolding(false);\r\n setProgress(0);\r\n if (intervalRef.current) {\r\n clearInterval(intervalRef.current);\r\n intervalRef.current = null;\r\n }\r\n };\r\n\r\n return (\r\n <motion.button\r\n className={cn(\r\n \"relative overflow-hidden rounded-lg px-6 py-3 font-medium text-white dark:text-zinc-900\",\r\n variants[variant],\r\n className\r\n )}\r\n onMouseDown={startHold}\r\n onMouseUp={stopHold}\r\n onMouseLeave={stopHold}\r\n onTouchStart={startHold}\r\n onTouchEnd={stopHold}\r\n whileTap={{ scale: 0.98 }}\r\n {...props}\r\n >\r\n <motion.div\r\n className={cn(\"absolute inset-0 origin-left\", progressColors[variant])}\r\n style={{ scaleX: progress / 100 }}\r\n transition={{ duration: 0 }}\r\n />\r\n <span className=\"relative z-10\">{children}</span>\r\n </motion.button>\r\n );\r\n}\r\n\r\nexport default HoldButton;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface ThreeDButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n variant?: \"primary\" | \"secondary\" | \"danger\";\r\n size?: \"sm\" | \"md\" | \"lg\";\r\n}\r\n\r\nconst variants = {\r\n primary: {\r\n bg: \"bg-blue-500\",\r\n shadow: \"shadow-blue-700\",\r\n hover: \"hover:bg-blue-600\",\r\n },\r\n secondary: {\r\n bg: \"bg-zinc-700\",\r\n shadow: \"shadow-zinc-900\",\r\n hover: \"hover:bg-zinc-800\",\r\n },\r\n danger: {\r\n bg: \"bg-red-500\",\r\n shadow: \"shadow-red-700\",\r\n hover: \"hover:bg-red-600\",\r\n },\r\n};\r\n\r\nconst sizes = {\r\n sm: \"px-4 py-2 text-sm\",\r\n md: \"px-6 py-3 text-base\",\r\n lg: \"px-8 py-4 text-lg\",\r\n};\r\n\r\nexport function ThreeDButton({\r\n children,\r\n className,\r\n variant = \"primary\",\r\n size = \"md\",\r\n ...props\r\n}: ThreeDButtonProps) {\r\n const colors = variants[variant];\r\n\r\n return (\r\n <motion.button\r\n className={cn(\r\n \"relative rounded-lg font-semibold text-white\",\r\n \"shadow-[0_6px_0_0]\",\r\n colors.bg,\r\n colors.shadow,\r\n colors.hover,\r\n sizes[size],\r\n className\r\n )}\r\n whileHover={{ y: -2 }}\r\n whileTap={{ y: 4, boxShadow: \"0 2px 0 0\" }}\r\n transition={{ duration: 0.1 }}\r\n {...props}\r\n >\r\n {children}\r\n </motion.button>\r\n );\r\n}\r\n\r\nexport default ThreeDButton;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface CopyButtonProps {\r\n text?: string;\r\n value?: string;\r\n onCopy?: () => void;\r\n className?: string;\r\n}\r\n\r\nexport function CopyButton({ \r\n text = \"Copy\",\r\n value,\r\n onCopy,\r\n className \r\n}: CopyButtonProps) {\r\n const [copied, setCopied] = useState(false);\r\n\r\n const handleCopy = async () => {\r\n try {\r\n if (value) {\r\n await navigator.clipboard.writeText(value);\r\n }\r\n onCopy?.();\r\n setCopied(true);\r\n setTimeout(() => setCopied(false), 2000);\r\n } catch (error) {\r\n console.error(\"Failed to copy:\", error);\r\n }\r\n };\r\n\r\n return (\r\n <button\r\n onClick={handleCopy}\r\n className={cn(\r\n \"inline-flex items-center gap-2 px-4 py-2\",\r\n \"bg-transparent hover:bg-zinc-100 dark:hover:bg-zinc-800\",\r\n \"text-zinc-900 dark:text-zinc-100\",\r\n \"border border-zinc-300 dark:border-zinc-700\",\r\n \"rounded-md transition-all duration-200 font-medium text-sm\",\r\n className\r\n )}\r\n >\r\n {copied ? (\r\n <>\r\n <svg className=\"w-4 h-4 text-green-600\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M5 13l4 4L19 7\" />\r\n </svg>\r\n Copied!\r\n </>\r\n ) : (\r\n <>\r\n <svg className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\" />\r\n </svg>\r\n {text}\r\n </>\r\n )}\r\n </button>\r\n );\r\n}\r\n\r\nexport default CopyButton;\r\n","\"use client\";\r\n\r\nimport { useState, useRef } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface ParticleButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n onSuccess?: () => void;\r\n successDuration?: number;\r\n}\r\n\r\nfunction SuccessParticles({ buttonRef }: { buttonRef: React.RefObject<HTMLButtonElement> }) {\r\n const rect = buttonRef.current?.getBoundingClientRect();\r\n if (!rect) return null;\r\n\r\n const centerX = rect.left + rect.width / 2;\r\n const centerY = rect.top + rect.height / 2;\r\n\r\n return (\r\n <AnimatePresence>\r\n {[...Array(6)].map((_, i) => (\r\n <motion.div\r\n key={i}\r\n className=\"fixed w-1 h-1 bg-black dark:bg-white rounded-full\"\r\n style={{ left: centerX, top: centerY }}\r\n initial={{ scale: 0, x: 0, y: 0 }}\r\n animate={{ scale: [0, 1, 0], x: [0, (i % 2 ? 1 : -1) * (Math.random() * 50 + 20)], y: [0, -Math.random() * 50 - 20] }}\r\n transition={{ duration: 0.6, delay: i * 0.1, ease: \"easeOut\" }}\r\n />\r\n ))}\r\n </AnimatePresence>\r\n );\r\n}\r\n\r\nexport function ParticleButton({\r\n children,\r\n onClick,\r\n onSuccess,\r\n successDuration = 1000,\r\n className,\r\n ...props\r\n}: ParticleButtonProps) {\r\n const [showParticles, setShowParticles] = useState(false);\r\n const buttonRef = useRef<HTMLButtonElement>(null);\r\n\r\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\r\n setShowParticles(true);\r\n onClick?.(e);\r\n onSuccess?.();\r\n setTimeout(() => setShowParticles(false), successDuration);\r\n };\r\n\r\n return (\r\n <>\r\n {showParticles && <SuccessParticles buttonRef={buttonRef} />}\r\n <button\r\n ref={buttonRef}\r\n onClick={handleClick}\r\n className={cn(\r\n \"relative px-4 py-2 rounded-md bg-primary text-primary-foreground\",\r\n showParticles && \"scale-95\",\r\n \"transition-transform duration-100\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </button>\r\n </>\r\n );\r\n}\r\n\r\nexport default ParticleButton;\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\nimport { motion, useAnimation } from \"framer-motion\";\r\nimport { useEffect, useState, useCallback } from \"react\";\r\n\r\ninterface AttractButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n particleCount?: number;\r\n attractRadius?: number;\r\n children?: React.ReactNode;\r\n}\r\n\r\ninterface Particle {\r\n id: number;\r\n x: number;\r\n y: number;\r\n}\r\n\r\nexport function AttractButton({\r\n className,\r\n particleCount = 12,\r\n children,\r\n ...props\r\n}: AttractButtonProps) {\r\n const [isAttracting, setIsAttracting] = useState(false);\r\n const [particles, setParticles] = useState<Particle[]>([]);\r\n const particlesControl = useAnimation();\r\n\r\n useEffect(() => {\r\n const newParticles = Array.from({ length: particleCount }, (_, i) => ({\r\n id: i,\r\n x: Math.random() * 360 - 180,\r\n y: Math.random() * 360 - 180,\r\n }));\r\n setParticles(newParticles);\r\n }, [particleCount]);\r\n\r\n const handleInteractionStart = useCallback(async () => {\r\n setIsAttracting(true);\r\n await particlesControl.start({ x: 0, y: 0, transition: { type: \"spring\", stiffness: 50, damping: 10 } });\r\n }, [particlesControl]);\r\n\r\n const handleInteractionEnd = useCallback(async () => {\r\n setIsAttracting(false);\r\n await particlesControl.start((i) => ({\r\n x: particles[i].x,\r\n y: particles[i].y,\r\n transition: { type: \"spring\", stiffness: 100, damping: 15 },\r\n }));\r\n }, [particlesControl, particles]);\r\n\r\n return (\r\n <button\r\n className={cn(\r\n \"min-w-40 relative touch-none px-4 py-2 rounded-md\",\r\n \"bg-violet-100 dark:bg-violet-900\",\r\n \"hover:bg-violet-200 dark:hover:bg-violet-800\",\r\n \"text-violet-600 dark:text-violet-300\",\r\n \"border border-violet-300 dark:border-violet-700\",\r\n \"transition-all duration-300\",\r\n className\r\n )}\r\n onMouseEnter={handleInteractionStart}\r\n onMouseLeave={handleInteractionEnd}\r\n onTouchStart={handleInteractionStart}\r\n onTouchEnd={handleInteractionEnd}\r\n {...props}\r\n >\r\n {particles.map((_, index) => (\r\n <motion.div\r\n key={index}\r\n custom={index}\r\n initial={{ x: particles[index].x, y: particles[index].y }}\r\n animate={particlesControl}\r\n className={cn(\"absolute w-1.5 h-1.5 rounded-full bg-violet-400 dark:bg-violet-300 transition-opacity duration-300\", isAttracting ? \"opacity-100\" : \"opacity-40\")}\r\n />\r\n ))}\r\n <span className=\"relative w-full flex items-center justify-center gap-2\">\r\n {children || (isAttracting ? \"Attracting\" : \"Hover me\")}\r\n </span>\r\n </button>\r\n );\r\n}\r\n\r\nexport default AttractButton;\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface CommandButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n shortcut?: string;\r\n}\r\n\r\nexport function CommandButton({ className, children, shortcut = \"CMD + K\", ...props }: CommandButtonProps) {\r\n return (\r\n <button\r\n {...props}\r\n className={cn(\r\n \"relative p-2 rounded-lg overflow-hidden\",\r\n \"bg-gradient-to-b from-zinc-50 to-zinc-100 dark:from-zinc-800 dark:to-zinc-900\",\r\n \"border border-zinc-200 dark:border-zinc-800\",\r\n \"hover:border-zinc-300 dark:hover:border-zinc-700\",\r\n \"transition-all duration-300 ease-out group\",\r\n \"inline-flex items-center justify-center gap-2\",\r\n className\r\n )}\r\n >\r\n <svg\r\n className={cn(\r\n \"w-4 h-4 text-zinc-600 dark:text-zinc-400\",\r\n \"transition-all duration-300\",\r\n \"group-hover:scale-110 group-hover:rotate-[-4deg] group-active:scale-95\"\r\n )}\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n >\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M18 3a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3H6a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3V6a3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3h12a3 3 0 0 0 3-3 3 3 0 0 0-3-3z\" />\r\n </svg>\r\n <span className=\"text-sm text-zinc-600 dark:text-zinc-400\">{children || shortcut}</span>\r\n <span className=\"absolute inset-0 bg-gradient-to-r from-indigo-500/0 via-indigo-500/10 to-indigo-500/0 translate-x-[-100%] group-hover:translate-x-[100%] transition-transform duration-500 ease-out\" />\r\n </button>\r\n );\r\n}\r\n\r\nexport default CommandButton;\r\n","\"use client\";\r\n\r\nimport React, { ReactNode } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface GradientTextProps {\r\n children: ReactNode;\r\n className?: string;\r\n colors?: string[];\r\n animationSpeed?: number;\r\n}\r\n\r\nexport function GradientText({\r\n children,\r\n className = \"\",\r\n colors = [\"#40ffaa\", \"#4079ff\", \"#40ffaa\", \"#4079ff\", \"#40ffaa\"],\r\n animationSpeed = 8,\r\n}: GradientTextProps) {\r\n return (\r\n <span\r\n className={cn(\r\n \"bg-clip-text text-transparent bg-[length:200%_auto] animate-gradient\",\r\n className\r\n )}\r\n style={{\r\n backgroundImage: `linear-gradient(to right, ${colors.join(\", \")})`,\r\n animationDuration: `${animationSpeed}s`,\r\n }}\r\n >\r\n {children}\r\n </span>\r\n );\r\n}\r\n\r\nexport default GradientText;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface ShimmerTextProps {\r\n text?: string;\r\n className?: string;\r\n}\r\n\r\nexport function ShimmerText({ text = \"Text Shimmer\", className }: ShimmerTextProps) {\r\n return (\r\n <div className=\"flex items-center justify-center p-8\">\r\n <motion.div\r\n className=\"relative px-4 py-2 overflow-hidden\"\r\n initial={{ opacity: 0, y: 20 }}\r\n animate={{ opacity: 1, y: 0 }}\r\n transition={{ duration: 0.5 }}\r\n >\r\n <motion.h1\r\n className={cn(\r\n \"text-3xl font-bold bg-gradient-to-r from-neutral-950 via-neutral-400 to-neutral-950 dark:from-white dark:via-neutral-600 dark:to-white bg-[length:200%_100%] bg-clip-text text-transparent\",\r\n className\r\n )}\r\n animate={{\r\n backgroundPosition: [\"200% center\", \"-200% center\"],\r\n }}\r\n transition={{\r\n duration: 2.5,\r\n ease: \"linear\",\r\n repeat: Infinity,\r\n }}\r\n >\r\n {text}\r\n </motion.h1>\r\n </motion.div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default ShimmerText;\r\n","\"use client\";\r\n\r\nimport React, { useRef } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface GlitchTextProps {\r\n text?: string;\r\n className?: string;\r\n glitchIntensity?: \"light\" | \"medium\" | \"heavy\" | \"extreme\";\r\n color?: \"rainbow\" | \"blue\" | \"purple\" | \"cyan\" | \"pink\" | \"orange\";\r\n isStatic?: boolean;\r\n size?: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\";\r\n}\r\n\r\nexport function GlitchText({\r\n text = \"Glitch Text\",\r\n className,\r\n glitchIntensity = \"medium\",\r\n color = \"orange\",\r\n isStatic = false,\r\n size = \"md\",\r\n}: GlitchTextProps) {\r\n const colorSchemes = {\r\n rainbow: { primary: \"#a855f7\", before: \"#22d3ee\", after: \"#f472b6\" },\r\n blue: { primary: \"#3b82f6\", before: \"#60a5fa\", after: \"#1d4ed8\" },\r\n purple: { primary: \"#8b5cf6\", before: \"#a78bfa\", after: \"#6d28d9\" },\r\n cyan: { primary: \"#06b6d4\", before: \"#22d3ee\", after: \"#0891b2\" },\r\n pink: { primary: \"#ec4899\", before: \"#f472b6\", after: \"#db2777\" },\r\n orange: { primary: \"#f97316\", before: \"#fb923c\", after: \"#ea580c\" },\r\n };\r\n\r\n const selectedScheme = colorSchemes[color];\r\n\r\n const intensitySettings = {\r\n light: { translateRange: 2, skewRange: 0.5 },\r\n medium: { translateRange: 3, skewRange: 1 },\r\n heavy: { translateRange: 5, skewRange: 2 },\r\n extreme: { translateRange: 8, skewRange: 3 },\r\n };\r\n\r\n const settings = intensitySettings[glitchIntensity];\r\n\r\n const sizeMap = {\r\n sm: \"text-2xl\",\r\n md: \"text-4xl\",\r\n lg: \"text-5xl\",\r\n xl: \"text-6xl\",\r\n \"2xl\": \"text-7xl\",\r\n \"3xl\": \"text-8xl\",\r\n };\r\n\r\n const glitchAnimation = {\r\n animate: {\r\n x: [0, settings.translateRange, -settings.translateRange, 0],\r\n y: [0, -settings.translateRange, settings.translateRange, 0],\r\n skewX: [0, settings.skewRange, -settings.skewRange, 0],\r\n },\r\n transition: {\r\n duration: 0.5,\r\n repeat: Infinity,\r\n ease: \"easeInOut\",\r\n },\r\n };\r\n\r\n return (\r\n <div className={cn(\"relative flex items-center justify-center p-8\", className)}>\r\n <motion.div\r\n className={cn(\"relative font-bold tracking-wider\", sizeMap[size])}\r\n style={{ color: selectedScheme.primary }}\r\n animate={!isStatic ? glitchAnimation.animate : undefined}\r\n transition={glitchAnimation.transition}\r\n >\r\n {text}\r\n <motion.span\r\n className=\"absolute inset-0 pointer-events-none\"\r\n style={{ color: selectedScheme.before, opacity: 0.8 }}\r\n animate={!isStatic ? {\r\n x: [-settings.translateRange, settings.translateRange, 0],\r\n y: [settings.translateRange, -settings.translateRange, 0],\r\n } : undefined}\r\n transition={{ duration: 0.5, repeat: Infinity }}\r\n >\r\n {text}\r\n </motion.span>\r\n <motion.span\r\n className=\"absolute inset-0 pointer-events-none\"\r\n style={{ color: selectedScheme.after, opacity: 0.8 }}\r\n animate={!isStatic ? {\r\n x: [settings.translateRange, -settings.translateRange, 0],\r\n y: [-settings.translateRange, settings.translateRange, 0],\r\n } : undefined}\r\n transition={{ duration: 0.5, repeat: Infinity }}\r\n >\r\n {text}\r\n </motion.span>\r\n </motion.div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default GlitchText;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface BounceTextProps {\r\n text: string;\r\n className?: string;\r\n delay?: number;\r\n duration?: number;\r\n}\r\n\r\nexport function BounceText({\r\n text,\r\n className,\r\n delay = 0,\r\n duration = 0.4,\r\n}: BounceTextProps) {\r\n const letters = Array.from(text);\r\n\r\n return (\r\n <div className={cn(\"flex\", className)}>\r\n {letters.map((letter, index) => (\r\n <motion.span\r\n key={`${letter}-${index}`}\r\n className=\"inline-block\"\r\n style={{ whiteSpace: letter === \" \" ? \"pre\" : \"normal\" }}\r\n animate={{\r\n y: [0, -20, 0],\r\n }}\r\n transition={{\r\n delay: delay + index * 0.03,\r\n duration: duration,\r\n ease: \"easeInOut\",\r\n repeat: Infinity,\r\n repeatDelay: 0.5,\r\n }}\r\n >\r\n {letter}\r\n </motion.span>\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport default BounceText;\r\n","\"use client\";\r\n\r\nimport React, { useEffect, useRef, useState, useMemo } from \"react\";\r\nimport { motion, Transition } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface BlurTextProps {\r\n text?: string;\r\n delay?: number;\r\n className?: string;\r\n animateBy?: \"words\" | \"letters\";\r\n direction?: \"top\" | \"bottom\";\r\n}\r\n\r\nexport function BlurText({\r\n text = \"\",\r\n delay = 200,\r\n className = \"\",\r\n animateBy = \"words\",\r\n direction = \"top\",\r\n}: BlurTextProps) {\r\n const elements = animateBy === \"words\" ? text.split(\" \") : text.split(\"\");\r\n const [inView, setInView] = useState(false);\r\n const ref = useRef<HTMLParagraphElement>(null);\r\n\r\n useEffect(() => {\r\n if (!ref.current) return;\r\n const observer = new IntersectionObserver(\r\n ([entry]) => {\r\n if (entry.isIntersecting) {\r\n setInView(true);\r\n observer.unobserve(ref.current as Element);\r\n }\r\n },\r\n { threshold: 0.1 }\r\n );\r\n observer.observe(ref.current);\r\n return () => observer.disconnect();\r\n }, []);\r\n\r\n const fromAnimation = useMemo(\r\n () =>\r\n direction === \"top\"\r\n ? { filter: \"blur(10px)\", opacity: 0, y: -50 }\r\n : { filter: \"blur(10px)\", opacity: 0, y: 50 },\r\n [direction]\r\n );\r\n\r\n const toAnimation = { filter: \"blur(0px)\", opacity: 1, y: 0 };\r\n\r\n return (\r\n <p ref={ref} className={cn(\"flex flex-wrap\", className)}>\r\n {elements.map((segment, index) => (\r\n <motion.span\r\n key={index}\r\n initial={fromAnimation}\r\n animate={inView ? toAnimation : fromAnimation}\r\n transition={{\r\n duration: 0.5,\r\n delay: (index * delay) / 1000,\r\n ease: \"easeOut\",\r\n }}\r\n className=\"inline-block\"\r\n style={{ willChange: \"transform, filter, opacity\" }}\r\n >\r\n {segment === \" \" ? \"\\u00A0\" : segment}\r\n {animateBy === \"words\" && index < elements.length - 1 && \"\\u00A0\"}\r\n </motion.span>\r\n ))}\r\n </p>\r\n );\r\n}\r\n\r\nexport default BlurText;\r\n","\"use client\";\r\n\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface TypewriterProps {\r\n text?: string;\r\n className?: string;\r\n speed?: number;\r\n delay?: number;\r\n cursor?: boolean;\r\n loop?: boolean;\r\n}\r\n\r\nexport function Typewriter({\r\n text = \"Hello World\",\r\n className,\r\n speed = 50,\r\n delay = 0,\r\n cursor = true,\r\n loop = false,\r\n}: TypewriterProps) {\r\n const [displayText, setDisplayText] = useState(\"\");\r\n const [isTyping, setIsTyping] = useState(false);\r\n\r\n useEffect(() => {\r\n let timeout: NodeJS.Timeout;\r\n let i = 0;\r\n let isDeleting = false;\r\n\r\n const type = () => {\r\n setIsTyping(true);\r\n\r\n if (!isDeleting) {\r\n if (i < text.length) {\r\n setDisplayText(text.slice(0, i + 1));\r\n i++;\r\n timeout = setTimeout(type, speed);\r\n } else {\r\n setIsTyping(false);\r\n if (loop) {\r\n timeout = setTimeout(() => {\r\n isDeleting = true;\r\n type();\r\n }, 2000);\r\n }\r\n }\r\n } else {\r\n if (i > 0) {\r\n setDisplayText(text.slice(0, i - 1));\r\n i--;\r\n timeout = setTimeout(type, speed / 2);\r\n } else {\r\n isDeleting = false;\r\n timeout = setTimeout(type, 500);\r\n }\r\n }\r\n };\r\n\r\n timeout = setTimeout(type, delay);\r\n\r\n return () => clearTimeout(timeout);\r\n }, [text, speed, delay, loop]);\r\n\r\n return (\r\n <span className={cn(\"inline-block font-mono\", className)}>\r\n {displayText}\r\n {cursor && (\r\n <span\r\n className={cn(\r\n \"ml-0.5 inline-block w-[2px] h-[1em] bg-current\",\r\n isTyping ? \"animate-blink\" : \"\"\r\n )}\r\n />\r\n )}\r\n </span>\r\n );\r\n}\r\n\r\nexport default Typewriter;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface WaveTextProps {\r\n text: string;\r\n className?: string;\r\n amplitude?: number;\r\n frequency?: number;\r\n}\r\n\r\nexport function WaveText({\r\n text,\r\n className,\r\n amplitude = 10,\r\n frequency = 1.5,\r\n}: WaveTextProps) {\r\n const letters = Array.from(text);\r\n\r\n return (\r\n <div className={cn(\"flex\", className)}>\r\n {letters.map((letter, index) => (\r\n <motion.span\r\n key={`${letter}-${index}`}\r\n className=\"inline-block\"\r\n style={{ whiteSpace: letter === \" \" ? \"pre\" : \"normal\" }}\r\n animate={{\r\n y: [0, -amplitude, 0, amplitude, 0],\r\n }}\r\n transition={{\r\n duration: frequency,\r\n repeat: Infinity,\r\n delay: index * 0.08,\r\n ease: \"easeInOut\",\r\n }}\r\n >\r\n {letter}\r\n </motion.span>\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport default WaveText;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface FlipTextProps {\r\n text: string;\r\n className?: string;\r\n delay?: number;\r\n}\r\n\r\nexport function FlipText({ text, className, delay = 0 }: FlipTextProps) {\r\n const letters = Array.from(text);\r\n\r\n return (\r\n <div className={cn(\"flex\", className)} style={{ perspective: \"1000px\" }}>\r\n {letters.map((letter, index) => (\r\n <motion.span\r\n key={`${letter}-${index}`}\r\n className=\"inline-block origin-center\"\r\n style={{ whiteSpace: letter === \" \" ? \"pre\" : \"normal\" }}\r\n animate={{ rotateX: [0, 360] }}\r\n transition={{\r\n duration: 1.5,\r\n repeat: Infinity,\r\n delay: delay + index * 0.08,\r\n ease: \"easeInOut\",\r\n repeatDelay: 0.8,\r\n }}\r\n >\r\n {letter}\r\n </motion.span>\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport default FlipText;\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface ShinyTextProps {\r\n text: string;\r\n disabled?: boolean;\r\n speed?: number;\r\n className?: string;\r\n}\r\n\r\nexport function ShinyText({ \r\n text, \r\n disabled = false, \r\n speed = 5, \r\n className = \"\" \r\n}: ShinyTextProps) {\r\n return (\r\n <span \r\n className={cn(\r\n \"inline-block bg-gradient-to-r from-gray-900 via-gray-100 to-gray-900 bg-clip-text text-transparent bg-[length:200%_100%]\",\r\n !disabled && \"animate-[shine_var(--shine-speed)_linear_infinite]\",\r\n className\r\n )}\r\n style={{ \r\n \"--shine-speed\": `${speed}s`,\r\n backgroundImage: \"linear-gradient(90deg, #374151 25%, #f3f4f6 50%, #374151 75%)\"\r\n } as React.CSSProperties}\r\n >\r\n {text}\r\n <style>{`\r\n @keyframes shine {\r\n 0% { background-position: -200% 0; }\r\n 100% { background-position: 200% 0; }\r\n }\r\n `}</style>\r\n </span>\r\n );\r\n}\r\n\r\nexport default ShinyText;\r\n","\"use client\";\r\n\r\nimport React, { useEffect, useRef } from \"react\";\r\n\r\ninterface FuzzyTextProps {\r\n children: React.ReactNode;\r\n fontSize?: number | string;\r\n fontWeight?: string | number;\r\n fontFamily?: string;\r\n color?: string;\r\n enableHover?: boolean;\r\n baseIntensity?: number;\r\n hoverIntensity?: number;\r\n}\r\n\r\nexport function FuzzyText({\r\n children,\r\n fontSize = \"clamp(2rem, 8vw, 8rem)\",\r\n fontWeight = 900,\r\n fontFamily = \"inherit\",\r\n color = \"#fff\",\r\n enableHover = true,\r\n baseIntensity = 0.18,\r\n hoverIntensity = 0.5\r\n}: FuzzyTextProps) {\r\n const canvasRef = useRef<HTMLCanvasElement & { cleanupFuzzyText?: () => void }>(null);\r\n\r\n useEffect(() => {\r\n let animationFrameId: number;\r\n let isCancelled = false;\r\n const canvas = canvasRef.current;\r\n if (!canvas) return;\r\n\r\n const init = async () => {\r\n if (document.fonts?.ready) await document.fonts.ready;\r\n if (isCancelled) return;\r\n\r\n const ctx = canvas.getContext(\"2d\");\r\n if (!ctx) return;\r\n\r\n const computedFontFamily = fontFamily === \"inherit\" \r\n ? window.getComputedStyle(canvas).fontFamily || \"sans-serif\" \r\n : fontFamily;\r\n\r\n const fontSizeStr = typeof fontSize === \"number\" ? `${fontSize}px` : fontSize;\r\n let numericFontSize: number;\r\n if (typeof fontSize === \"number\") {\r\n numericFontSize = fontSize;\r\n } else {\r\n const temp = document.createElement(\"span\");\r\n temp.style.fontSize = fontSize;\r\n document.body.appendChild(temp);\r\n numericFontSize = parseFloat(window.getComputedStyle(temp).fontSize);\r\n document.body.removeChild(temp);\r\n }\r\n\r\n const text = React.Children.toArray(children).join(\"\");\r\n const offscreen = document.createElement(\"canvas\");\r\n const offCtx = offscreen.getContext(\"2d\");\r\n if (!offCtx) return;\r\n\r\n offCtx.font = `${fontWeight} ${fontSizeStr} ${computedFontFamily}`;\r\n offCtx.textBaseline = \"alphabetic\";\r\n const metrics = offCtx.measureText(text);\r\n\r\n const actualLeft = metrics.actualBoundingBoxLeft ?? 0;\r\n const actualRight = metrics.actualBoundingBoxRight ?? metrics.width;\r\n const actualAscent = metrics.actualBoundingBoxAscent ?? numericFontSize;\r\n const actualDescent = metrics.actualBoundingBoxDescent ?? numericFontSize * 0.2;\r\n\r\n const textBoundingWidth = Math.ceil(actualLeft + actualRight);\r\n const tightHeight = Math.ceil(actualAscent + actualDescent);\r\n const extraWidthBuffer = 10;\r\n const offscreenWidth = textBoundingWidth + extraWidthBuffer;\r\n\r\n offscreen.width = offscreenWidth;\r\n offscreen.height = tightHeight;\r\n\r\n const xOffset = extraWidthBuffer / 2;\r\n offCtx.font = `${fontWeight} ${fontSizeStr} ${computedFontFamily}`;\r\n offCtx.textBaseline = \"alphabetic\";\r\n offCtx.fillStyle = color;\r\n offCtx.fillText(text, xOffset - actualLeft, actualAscent);\r\n\r\n const horizontalMargin = 50;\r\n const verticalMargin = 0;\r\n canvas.width = offscreenWidth + horizontalMargin * 2;\r\n canvas.height = tightHeight + verticalMargin * 2;\r\n ctx.translate(horizontalMargin, verticalMargin);\r\n\r\n const interactiveLeft = horizontalMargin + xOffset;\r\n const interactiveTop = verticalMargin;\r\n const interactiveRight = interactiveLeft + textBoundingWidth;\r\n const interactiveBottom = interactiveTop + tightHeight;\r\n\r\n let isHovering = false;\r\n const fuzzRange = 30;\r\n\r\n const run = () => {\r\n if (isCancelled) return;\r\n ctx.clearRect(-fuzzRange, -fuzzRange, offscreenWidth + 2 * fuzzRange, tightHeight + 2 * fuzzRange);\r\n const intensity = isHovering ? hoverIntensity : baseIntensity;\r\n for (let j = 0; j < tightHeight; j++) {\r\n const dx = Math.floor(intensity * (Math.random() - 0.5) * fuzzRange);\r\n ctx.drawImage(offscreen, 0, j, offscreenWidth, 1, dx, j, offscreenWidth, 1);\r\n }\r\n animationFrameId = window.requestAnimationFrame(run);\r\n };\r\n\r\n run();\r\n\r\n const isInsideTextArea = (x: number, y: number) =>\r\n x >= interactiveLeft && x <= interactiveRight && y >= interactiveTop && y <= interactiveBottom;\r\n\r\n const handleMouseMove = (e: MouseEvent) => {\r\n if (!enableHover) return;\r\n const rect = canvas.getBoundingClientRect();\r\n isHovering = isInsideTextArea(e.clientX - rect.left, e.clientY - rect.top);\r\n };\r\n\r\n const handleMouseLeave = () => { isHovering = false; };\r\n\r\n if (enableHover) {\r\n canvas.addEventListener(\"mousemove\", handleMouseMove);\r\n canvas.addEventListener(\"mouseleave\", handleMouseLeave);\r\n }\r\n\r\n canvas.cleanupFuzzyText = () => {\r\n window.cancelAnimationFrame(animationFrameId);\r\n if (enableHover) {\r\n canvas.removeEventListener(\"mousemove\", handleMouseMove);\r\n canvas.removeEventListener(\"mouseleave\", handleMouseLeave);\r\n }\r\n };\r\n };\r\n\r\n init();\r\n\r\n return () => {\r\n isCancelled = true;\r\n window.cancelAnimationFrame(animationFrameId);\r\n if (canvas?.cleanupFuzzyText) canvas.cleanupFuzzyText();\r\n };\r\n }, [children, fontSize, fontWeight, fontFamily, color, enableHover, baseIntensity, hoverIntensity]);\r\n\r\n return <canvas ref={canvasRef} className=\"max-w-full\" />;\r\n}\r\n\r\nexport default FuzzyText;\r\n","\"use client\";\r\n\r\nimport { useEffect, useRef } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface MatrixTextProps {\r\n text: string;\r\n className?: string;\r\n speed?: number;\r\n color?: string;\r\n}\r\n\r\nexport function MatrixText({ \r\n text, \r\n className,\r\n speed = 50,\r\n color = \"#22c55e\"\r\n}: MatrixTextProps) {\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const intervalRef = useRef<NodeJS.Timeout | null>(null);\r\n\r\n useEffect(() => {\r\n const container = containerRef.current;\r\n if (!container) return;\r\n\r\n const chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789@#$%^&*\";\r\n const originalText = text;\r\n let iteration = 0;\r\n\r\n const animate = () => {\r\n container.innerText = originalText\r\n .split(\"\")\r\n .map((char, index) => {\r\n if (index < iteration) return originalText[index];\r\n return chars[Math.floor(Math.random() * chars.length)];\r\n })\r\n .join(\"\");\r\n\r\n if (iteration >= originalText.length) {\r\n if (intervalRef.current) clearInterval(intervalRef.current);\r\n return;\r\n }\r\n\r\n iteration += 1 / 3;\r\n };\r\n\r\n intervalRef.current = setInterval(animate, speed);\r\n\r\n return () => {\r\n if (intervalRef.current) clearInterval(intervalRef.current);\r\n };\r\n }, [text, speed]);\r\n\r\n return (\r\n <div\r\n ref={containerRef}\r\n className={cn(\"font-mono\", className)}\r\n style={{ color }}\r\n >\r\n {text}\r\n </div>\r\n );\r\n}\r\n\r\nexport default MatrixText;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LiquidTextProps {\r\n text: string;\r\n className?: string;\r\n delay?: number;\r\n}\r\n\r\nexport function LiquidText({ text, className, delay = 0 }: LiquidTextProps) {\r\n const words = text.split(\" \");\r\n\r\n const container = {\r\n hidden: { opacity: 0 },\r\n visible: (i = 1) => ({\r\n opacity: 1,\r\n transition: { staggerChildren: 0.12, delayChildren: delay * i },\r\n }),\r\n };\r\n\r\n const child = {\r\n visible: {\r\n opacity: 1,\r\n y: 0,\r\n filter: \"blur(0px)\",\r\n transition: {\r\n type: \"spring\",\r\n damping: 12,\r\n stiffness: 100,\r\n },\r\n },\r\n hidden: {\r\n opacity: 0,\r\n y: 20,\r\n filter: \"blur(10px)\",\r\n transition: {\r\n type: \"spring\",\r\n damping: 12,\r\n stiffness: 100,\r\n },\r\n },\r\n };\r\n\r\n return (\r\n <motion.div\r\n className={cn(\"flex flex-wrap\", className)}\r\n variants={container}\r\n initial=\"hidden\"\r\n animate=\"visible\"\r\n >\r\n {words.map((word, index) => (\r\n <motion.span\r\n variants={child}\r\n key={index}\r\n className=\"mr-2\"\r\n >\r\n {word}\r\n </motion.span>\r\n ))}\r\n </motion.div>\r\n );\r\n}\r\n\r\nexport default LiquidText;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface SwooshTextProps {\r\n text: string;\r\n className?: string;\r\n delay?: number;\r\n}\r\n\r\nexport function SwooshText({ text, className, delay = 0 }: SwooshTextProps) {\r\n const letters = text.split(\"\");\r\n\r\n const container = {\r\n hidden: { opacity: 0 },\r\n visible: {\r\n opacity: 1,\r\n transition: { staggerChildren: 0.03, delayChildren: delay },\r\n },\r\n };\r\n\r\n const child = {\r\n hidden: {\r\n opacity: 0,\r\n x: -20,\r\n y: 10,\r\n rotate: -10,\r\n },\r\n visible: {\r\n opacity: 1,\r\n x: 0,\r\n y: 0,\r\n rotate: 0,\r\n transition: {\r\n type: \"spring\",\r\n damping: 12,\r\n stiffness: 200,\r\n },\r\n },\r\n };\r\n\r\n return (\r\n <motion.span\r\n className={cn(\"inline-flex\", className)}\r\n variants={container}\r\n initial=\"hidden\"\r\n animate=\"visible\"\r\n >\r\n {letters.map((letter, index) => (\r\n <motion.span\r\n key={index}\r\n variants={child}\r\n className=\"inline-block\"\r\n style={{ whiteSpace: letter === \" \" ? \"pre\" : \"normal\" }}\r\n >\r\n {letter === \" \" ? \"\\u00A0\" : letter}\r\n </motion.span>\r\n ))}\r\n </motion.span>\r\n );\r\n}\r\n\r\nexport default SwooshText;\r\n","\"use client\";\r\n\r\nimport { useEffect, useState } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface ScrambledTextProps {\r\n text: string;\r\n className?: string;\r\n speed?: number;\r\n scrambleChars?: string;\r\n}\r\n\r\nexport function ScrambledText({\r\n text,\r\n className,\r\n speed = 50,\r\n scrambleChars = \"!<>-_\\\\/[]{}—=+*^?#________\"\r\n}: ScrambledTextProps) {\r\n const [displayText, setDisplayText] = useState(text);\r\n\r\n useEffect(() => {\r\n let iteration = 0;\r\n const interval = setInterval(() => {\r\n setDisplayText(\r\n text\r\n .split(\"\")\r\n .map((char, index) => {\r\n if (index < iteration) return text[index];\r\n return scrambleChars[Math.floor(Math.random() * scrambleChars.length)];\r\n })\r\n .join(\"\")\r\n );\r\n\r\n if (iteration >= text.length) {\r\n clearInterval(interval);\r\n }\r\n\r\n iteration += 1 / 3;\r\n }, speed);\r\n\r\n return () => clearInterval(interval);\r\n }, [text, speed, scrambleChars]);\r\n\r\n return (\r\n <span className={cn(\"font-mono\", className)}>\r\n {displayText}\r\n </span>\r\n );\r\n}\r\n\r\nexport default ScrambledText;\r\n","\"use client\";\r\n\r\nimport { useRef, useState } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface MagneticTextProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n strength?: number;\r\n}\r\n\r\nexport function MagneticText({ children, className, strength = 0.5 }: MagneticTextProps) {\r\n const ref = useRef<HTMLDivElement>(null);\r\n const [position, setPosition] = useState({ x: 0, y: 0 });\r\n\r\n const handleMouse = (e: React.MouseEvent<HTMLDivElement>) => {\r\n const { clientX, clientY } = e;\r\n const { height, width, left, top } = ref.current!.getBoundingClientRect();\r\n const middleX = clientX - (left + width / 2);\r\n const middleY = clientY - (top + height / 2);\r\n setPosition({ x: middleX * strength, y: middleY * strength });\r\n };\r\n\r\n const reset = () => {\r\n setPosition({ x: 0, y: 0 });\r\n };\r\n\r\n const { x, y } = position;\r\n\r\n return (\r\n <motion.div\r\n ref={ref}\r\n onMouseMove={handleMouse}\r\n onMouseLeave={reset}\r\n animate={{ x, y }}\r\n transition={{ type: \"spring\", stiffness: 150, damping: 15, mass: 0.1 }}\r\n className={cn(\"inline-block cursor-pointer\", className)}\r\n >\r\n {children}\r\n </motion.div>\r\n );\r\n}\r\n\r\nexport default MagneticText;\r\n","\"use client\";\r\n\r\nimport { useEffect, useState } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface DynamicTextProps {\r\n words: string[];\r\n className?: string;\r\n interval?: number;\r\n}\r\n\r\nexport function DynamicText({ words, className, interval = 3000 }: DynamicTextProps) {\r\n const [index, setIndex] = useState(0);\r\n\r\n useEffect(() => {\r\n const timer = setInterval(() => {\r\n setIndex((prev) => (prev + 1) % words.length);\r\n }, interval);\r\n return () => clearInterval(timer);\r\n }, [words.length, interval]);\r\n\r\n return (\r\n <div className={cn(\"relative inline-block overflow-hidden\", className)}>\r\n <AnimatePresence mode=\"wait\">\r\n <motion.span\r\n key={words[index]}\r\n initial={{ y: 20, opacity: 0 }}\r\n animate={{ y: 0, opacity: 1 }}\r\n exit={{ y: -20, opacity: 0 }}\r\n transition={{ duration: 0.3 }}\r\n className=\"inline-block\"\r\n >\r\n {words[index]}\r\n </motion.span>\r\n </AnimatePresence>\r\n </div>\r\n );\r\n}\r\n\r\nexport default DynamicText;\r\n","\"use client\";\r\n\r\nimport { useEffect, useState } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface RotatingTextProps {\r\n words: string[];\r\n className?: string;\r\n interval?: number;\r\n}\r\n\r\nexport function RotatingText({ words, className, interval = 2000 }: RotatingTextProps) {\r\n const [index, setIndex] = useState(0);\r\n\r\n useEffect(() => {\r\n const timer = setInterval(() => {\r\n setIndex((prev) => (prev + 1) % words.length);\r\n }, interval);\r\n return () => clearInterval(timer);\r\n }, [words.length, interval]);\r\n\r\n return (\r\n <span className={cn(\"inline-block relative\", className)}>\r\n <AnimatePresence mode=\"wait\">\r\n <motion.span\r\n key={words[index]}\r\n initial={{ rotateX: -90, opacity: 0 }}\r\n animate={{ rotateX: 0, opacity: 1 }}\r\n exit={{ rotateX: 90, opacity: 0 }}\r\n transition={{ duration: 0.4 }}\r\n className=\"inline-block\"\r\n style={{ transformStyle: \"preserve-3d\" }}\r\n >\r\n {words[index]}\r\n </motion.span>\r\n </AnimatePresence>\r\n </span>\r\n );\r\n}\r\n\r\nexport default RotatingText;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface StaggerTextProps {\r\n text: string;\r\n className?: string;\r\n delay?: number;\r\n staggerDelay?: number;\r\n}\r\n\r\nexport function StaggerText({ \r\n text, \r\n className, \r\n delay = 0,\r\n staggerDelay = 0.05 \r\n}: StaggerTextProps) {\r\n const letters = text.split(\"\");\r\n\r\n const container = {\r\n hidden: { opacity: 0 },\r\n visible: {\r\n opacity: 1,\r\n transition: {\r\n staggerChildren: staggerDelay,\r\n delayChildren: delay,\r\n },\r\n },\r\n };\r\n\r\n const child = {\r\n hidden: { opacity: 0, y: 20 },\r\n visible: {\r\n opacity: 1,\r\n y: 0,\r\n transition: { type: \"spring\", damping: 12, stiffness: 200 },\r\n },\r\n };\r\n\r\n return (\r\n <motion.span\r\n className={cn(\"inline-flex\", className)}\r\n variants={container}\r\n initial=\"hidden\"\r\n animate=\"visible\"\r\n >\r\n {letters.map((letter, index) => (\r\n <motion.span\r\n key={index}\r\n variants={child}\r\n className=\"inline-block\"\r\n style={{ whiteSpace: letter === \" \" ? \"pre\" : \"normal\" }}\r\n >\r\n {letter === \" \" ? \"\\u00A0\" : letter}\r\n </motion.span>\r\n ))}\r\n </motion.span>\r\n );\r\n}\r\n\r\nexport default StaggerText;\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface RainbowTextProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n speed?: number;\r\n}\r\n\r\nexport function RainbowText({ children, className, speed = 3 }: RainbowTextProps) {\r\n return (\r\n <span\r\n className={cn(\r\n \"inline-block bg-gradient-to-r from-red-500 via-yellow-500 via-green-500 via-blue-500 to-purple-500 bg-clip-text text-transparent bg-[length:200%_auto] animate-[rainbow_var(--rainbow-speed)_linear_infinite]\",\r\n className\r\n )}\r\n style={{ \"--rainbow-speed\": `${speed}s` } as React.CSSProperties}\r\n >\r\n {children}\r\n <style>{`\r\n @keyframes rainbow {\r\n 0% { background-position: 0% center; }\r\n 100% { background-position: 200% center; }\r\n }\r\n `}</style>\r\n </span>\r\n );\r\n}\r\n\r\nexport default RainbowText;\r\n","\"use client\";\r\n\r\nimport { useEffect, useState } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface CountUpProps {\r\n end: number;\r\n start?: number;\r\n duration?: number;\r\n className?: string;\r\n prefix?: string;\r\n suffix?: string;\r\n decimals?: number;\r\n}\r\n\r\nexport function CountUp({\r\n end,\r\n start = 0,\r\n duration = 2000,\r\n className,\r\n prefix = \"\",\r\n suffix = \"\",\r\n decimals = 0,\r\n}: CountUpProps) {\r\n const [count, setCount] = useState(start);\r\n\r\n useEffect(() => {\r\n let startTime: number | null = null;\r\n let animationFrame: number;\r\n\r\n const animate = (timestamp: number) => {\r\n if (!startTime) startTime = timestamp;\r\n const progress = Math.min((timestamp - startTime) / duration, 1);\r\n \r\n const easeOutQuart = 1 - Math.pow(1 - progress, 4);\r\n const currentCount = start + (end - start) * easeOutQuart;\r\n \r\n setCount(currentCount);\r\n\r\n if (progress < 1) {\r\n animationFrame = requestAnimationFrame(animate);\r\n }\r\n };\r\n\r\n animationFrame = requestAnimationFrame(animate);\r\n\r\n return () => cancelAnimationFrame(animationFrame);\r\n }, [start, end, duration]);\r\n\r\n return (\r\n <span className={cn(\"tabular-nums\", className)}>\r\n {prefix}\r\n {count.toFixed(decimals)}\r\n {suffix}\r\n </span>\r\n );\r\n}\r\n\r\nexport default CountUp;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface RevealTextProps {\r\n text: string;\r\n className?: string;\r\n stagger?: number;\r\n}\r\n\r\nexport function RevealText({ text, className, stagger = 0.04 }: RevealTextProps) {\r\n const letters = Array.from(text);\r\n\r\n const container = {\r\n hidden: { opacity: 0 },\r\n visible: {\r\n opacity: 1,\r\n transition: { staggerChildren: stagger, delayChildren: 0.02 },\r\n },\r\n };\r\n\r\n const child = {\r\n hidden: { opacity: 0, y: 20 },\r\n visible: {\r\n opacity: 1,\r\n y: 0,\r\n transition: { type: \"spring\", damping: 12, stiffness: 100 },\r\n },\r\n };\r\n\r\n return (\r\n <motion.div\r\n className={cn(\"flex overflow-hidden\", className)}\r\n variants={container}\r\n initial=\"hidden\"\r\n animate=\"visible\"\r\n >\r\n {letters.map((letter, index) => (\r\n <motion.span\r\n key={`${letter}-${index}`}\r\n variants={child}\r\n className=\"inline-block\"\r\n style={{ whiteSpace: letter === \" \" ? \"pre\" : \"normal\" }}\r\n >\r\n {letter === \" \" ? \"\\u00A0\" : letter}\r\n </motion.span>\r\n ))}\r\n </motion.div>\r\n );\r\n}\r\n\r\nexport default RevealText;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { useEffect, useRef, useState } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface SplitTextProps {\r\n text: string;\r\n className?: string;\r\n delay?: number;\r\n duration?: number;\r\n splitType?: \"chars\" | \"words\";\r\n textAlign?: \"left\" | \"center\" | \"right\";\r\n}\r\n\r\nexport function SplitText({\r\n text,\r\n className = \"\",\r\n delay = 100,\r\n duration = 0.6,\r\n splitType = \"chars\",\r\n textAlign = \"center\",\r\n}: SplitTextProps) {\r\n const [inView, setInView] = useState(false);\r\n const ref = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n if (!ref.current) return;\r\n\r\n const observer = new IntersectionObserver(\r\n ([entry]) => {\r\n if (entry.isIntersecting) {\r\n setInView(true);\r\n observer.unobserve(ref.current as Element);\r\n }\r\n },\r\n { threshold: 0.1, rootMargin: \"-100px\" }\r\n );\r\n\r\n observer.observe(ref.current);\r\n return () => observer.disconnect();\r\n }, []);\r\n\r\n const elements = splitType === \"words\" ? text.split(\" \") : text.split(\"\");\r\n\r\n return (\r\n <div ref={ref} className={cn(\"overflow-hidden\", className)} style={{ textAlign }}>\r\n {elements.map((element, index) => (\r\n <motion.span\r\n key={index}\r\n initial={{ opacity: 0, y: 40 }}\r\n animate={inView ? { opacity: 1, y: 0 } : { opacity: 0, y: 40 }}\r\n transition={{ duration, delay: (index * delay) / 1000, ease: \"easeOut\" }}\r\n className=\"inline-block\"\r\n style={{ marginRight: splitType === \"words\" ? \"0.25em\" : \"0\" }}\r\n >\r\n {element === \" \" ? \"\\u00A0\" : element}\r\n </motion.span>\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport default SplitText;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface MorphTextProps {\r\n text: string;\r\n className?: string;\r\n}\r\n\r\nexport function MorphText({ text, className }: MorphTextProps) {\r\n const letters = Array.from(text);\r\n\r\n return (\r\n <div className={cn(\"flex\", className)}>\r\n {letters.map((letter, index) => (\r\n <motion.span\r\n key={`${letter}-${index}`}\r\n className=\"inline-block\"\r\n style={{ whiteSpace: letter === \" \" ? \"pre\" : \"normal\" }}\r\n animate={{\r\n scaleY: [1, 0.5, 1.5, 0.8, 1],\r\n scaleX: [1, 1.5, 0.5, 1.2, 1],\r\n }}\r\n transition={{\r\n duration: 1.5,\r\n repeat: Infinity,\r\n delay: index * 0.08,\r\n ease: \"easeInOut\",\r\n repeatDelay: 0.3,\r\n }}\r\n >\r\n {letter === \" \" ? \"\\u00A0\" : letter}\r\n </motion.span>\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport default MorphText;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface PerspectiveTextProps {\r\n text: string;\r\n className?: string;\r\n}\r\n\r\nexport function PerspectiveText({ text, className }: PerspectiveTextProps) {\r\n const letters = Array.from(text);\r\n\r\n return (\r\n <div className={cn(\"flex\", className)} style={{ perspective: \"500px\" }}>\r\n {letters.map((letter, index) => (\r\n <motion.span\r\n key={`${letter}-${index}`}\r\n className=\"inline-block\"\r\n style={{ whiteSpace: letter === \" \" ? \"pre\" : \"normal\" }}\r\n initial={{ rotateY: 90, opacity: 0 }}\r\n animate={{ rotateY: 0, opacity: 1 }}\r\n transition={{\r\n delay: index * 0.04,\r\n duration: 0.5,\r\n type: \"spring\",\r\n stiffness: 120,\r\n }}\r\n whileHover={{ rotateY: 180, transition: { duration: 0.3 } }}\r\n >\r\n {letter === \" \" ? \"\\u00A0\" : letter}\r\n </motion.span>\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport default PerspectiveText;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface ElasticTextProps {\r\n text: string;\r\n className?: string;\r\n}\r\n\r\nexport function ElasticText({ text, className }: ElasticTextProps) {\r\n const letters = Array.from(text);\r\n\r\n return (\r\n <div className={cn(\"flex\", className)}>\r\n {letters.map((letter, index) => (\r\n <motion.span\r\n key={`${letter}-${index}`}\r\n className=\"inline-block cursor-pointer\"\r\n style={{ whiteSpace: letter === \" \" ? \"pre\" : \"normal\" }}\r\n whileHover={{\r\n scale: [1, 1.5, 0.8, 1.2, 1],\r\n rotate: [0, 10, -10, 0],\r\n transition: { duration: 0.6, ease: \"easeInOut\" },\r\n }}\r\n >\r\n {letter === \" \" ? \"\\u00A0\" : letter}\r\n </motion.span>\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport default ElasticText;\r\n","\"use client\";\r\n\r\nimport { useEffect } from \"react\";\r\nimport { motion, useAnimation, useMotionValue } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface CircularTextProps {\r\n text: string;\r\n spinDuration?: number;\r\n onHover?: \"slowDown\" | \"speedUp\" | \"pause\" | \"goBonkers\";\r\n className?: string;\r\n}\r\n\r\nexport function CircularText({\r\n text,\r\n spinDuration = 20,\r\n onHover = \"speedUp\",\r\n className = \"\",\r\n}: CircularTextProps) {\r\n const letters = Array.from(text);\r\n const controls = useAnimation();\r\n const rotation = useMotionValue(0);\r\n\r\n useEffect(() => {\r\n const start = rotation.get();\r\n controls.start({\r\n rotate: start + 360,\r\n scale: 1,\r\n transition: {\r\n rotate: { from: start, to: start + 360, ease: \"linear\", duration: spinDuration, repeat: Infinity },\r\n scale: { type: \"spring\", damping: 20, stiffness: 300 },\r\n },\r\n });\r\n }, [spinDuration, controls, rotation]);\r\n\r\n const handleHoverStart = () => {\r\n const start = rotation.get();\r\n let duration = spinDuration;\r\n let scale = 1;\r\n\r\n switch (onHover) {\r\n case \"slowDown\": duration = spinDuration * 2; break;\r\n case \"speedUp\": duration = spinDuration / 4; break;\r\n case \"pause\": duration = 0; break;\r\n case \"goBonkers\": duration = spinDuration / 20; scale = 0.8; break;\r\n }\r\n\r\n if (onHover === \"pause\") {\r\n controls.stop();\r\n } else {\r\n controls.start({\r\n rotate: start + 360,\r\n scale,\r\n transition: {\r\n rotate: { from: start, to: start + 360, ease: \"linear\", duration, repeat: Infinity },\r\n scale: { type: \"spring\", damping: 20, stiffness: 300 },\r\n },\r\n });\r\n }\r\n };\r\n\r\n const handleHoverEnd = () => {\r\n const start = rotation.get();\r\n controls.start({\r\n rotate: start + 360,\r\n scale: 1,\r\n transition: {\r\n rotate: { from: start, to: start + 360, ease: \"linear\", duration: spinDuration, repeat: Infinity },\r\n scale: { type: \"spring\", damping: 20, stiffness: 300 },\r\n },\r\n });\r\n };\r\n\r\n return (\r\n <motion.div\r\n className={cn(\"relative w-32 h-32 cursor-pointer\", className)}\r\n style={{ rotate: rotation }}\r\n initial={{ rotate: 0 }}\r\n animate={controls}\r\n onMouseEnter={handleHoverStart}\r\n onMouseLeave={handleHoverEnd}\r\n >\r\n {letters.map((letter, i) => {\r\n const rotationDeg = (360 / letters.length) * i;\r\n const radius = 60;\r\n const angle = (rotationDeg * Math.PI) / 180;\r\n const x = Math.cos(angle) * radius;\r\n const y = Math.sin(angle) * radius;\r\n\r\n return (\r\n <span\r\n key={i}\r\n className=\"absolute text-lg font-bold\"\r\n style={{\r\n transform: `translate(-50%, -50%) translate(${x}px, ${y}px) rotate(${rotationDeg + 90}deg)`,\r\n left: \"50%\",\r\n top: \"50%\",\r\n }}\r\n >\r\n {letter}\r\n </span>\r\n );\r\n })}\r\n </motion.div>\r\n );\r\n}\r\n\r\nexport default CircularText;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface GlowingTextProps {\r\n text: string;\r\n className?: string;\r\n glowColor?: string;\r\n hoverColor?: string;\r\n}\r\n\r\nexport function GlowingText({\r\n text,\r\n className,\r\n glowColor = \"#3b82f6\",\r\n hoverColor = \"#ec4899\",\r\n}: GlowingTextProps) {\r\n const [isHovered, setIsHovered] = useState(false);\r\n const currentColor = isHovered ? hoverColor : glowColor;\r\n\r\n return (\r\n <motion.div\r\n className={cn(\"font-bold cursor-pointer select-none\", className)}\r\n onMouseEnter={() => setIsHovered(true)}\r\n onMouseLeave={() => setIsHovered(false)}\r\n animate={{\r\n color: currentColor,\r\n textShadow: `0 0 10px ${currentColor}, 0 0 20px ${currentColor}, 0 0 30px ${currentColor}, 0 0 50px ${currentColor}`,\r\n }}\r\n transition={{ duration: 0.4, ease: \"easeInOut\" }}\r\n >\r\n {text}\r\n </motion.div>\r\n );\r\n}\r\n\r\nexport default GlowingText;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface SlicedTextProps {\r\n text: string;\r\n className?: string;\r\n containerClassName?: string;\r\n splitSpacing?: number;\r\n}\r\n\r\nexport function SlicedText({\r\n text = \"Sliced Text\",\r\n className = \"\",\r\n containerClassName = \"\",\r\n splitSpacing = 2,\r\n}: SlicedTextProps) {\r\n return (\r\n <motion.div\r\n className={cn(\"w-full text-center relative inline-block\", containerClassName)}\r\n whileHover=\"hover\"\r\n initial=\"default\"\r\n >\r\n <motion.div\r\n className={cn(\"absolute w-full text-4xl -ml-0.5\", className)}\r\n variants={{\r\n default: { clipPath: \"inset(0 0 50% 0)\", y: -splitSpacing / 2, opacity: 1 },\r\n hover: { clipPath: \"inset(0 0 0 0)\", y: 0, opacity: 0 },\r\n }}\r\n transition={{ duration: 0.1 }}\r\n >\r\n {text}\r\n </motion.div>\r\n <motion.div\r\n className={cn(\"absolute w-full text-4xl\", className)}\r\n variants={{\r\n default: { clipPath: \"inset(50% 0 0 0)\", y: splitSpacing / 2, opacity: 1 },\r\n hover: { clipPath: \"inset(0 0 0 0)\", y: 0, opacity: 1 },\r\n }}\r\n transition={{ duration: 0.1 }}\r\n >\r\n {text}\r\n </motion.div>\r\n <div className={cn(\"invisible text-4xl\", className)}>{text}</div>\r\n </motion.div>\r\n );\r\n}\r\n\r\nexport default SlicedText;\r\n","\"use client\";\r\n\r\nimport { useEffect, useState, useRef } from \"react\";\r\nimport { motion, HTMLMotionProps } from \"framer-motion\";\r\n\r\ninterface DecryptedTextProps extends HTMLMotionProps<\"span\"> {\r\n text: string;\r\n speed?: number;\r\n maxIterations?: number;\r\n sequential?: boolean;\r\n revealDirection?: \"start\" | \"end\" | \"center\";\r\n useOriginalCharsOnly?: boolean;\r\n characters?: string;\r\n className?: string;\r\n parentClassName?: string;\r\n encryptedClassName?: string;\r\n animateOn?: \"view\" | \"hover\" | \"both\";\r\n}\r\n\r\nexport function DecryptedText({\r\n text,\r\n speed = 50,\r\n maxIterations = 10,\r\n sequential = false,\r\n revealDirection = \"start\",\r\n useOriginalCharsOnly = false,\r\n characters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!@#$%^&*()_+\",\r\n className = \"\",\r\n parentClassName = \"\",\r\n encryptedClassName = \"\",\r\n animateOn = \"hover\",\r\n ...props\r\n}: DecryptedTextProps) {\r\n const [displayText, setDisplayText] = useState<string>(text);\r\n const [isHovering, setIsHovering] = useState<boolean>(false);\r\n const [isScrambling, setIsScrambling] = useState<boolean>(false);\r\n const [revealedIndices, setRevealedIndices] = useState<Set<number>>(new Set());\r\n const [hasAnimated, setHasAnimated] = useState<boolean>(false);\r\n const containerRef = useRef<HTMLSpanElement>(null);\r\n\r\n useEffect(() => {\r\n let interval: NodeJS.Timeout;\r\n let currentIteration = 0;\r\n\r\n const getNextIndex = (revealedSet: Set<number>): number => {\r\n const textLength = text.length;\r\n switch (revealDirection) {\r\n case \"start\":\r\n return revealedSet.size;\r\n case \"end\":\r\n return textLength - 1 - revealedSet.size;\r\n case \"center\": {\r\n const middle = Math.floor(textLength / 2);\r\n const offset = Math.floor(revealedSet.size / 2);\r\n const nextIndex = revealedSet.size % 2 === 0 ? middle + offset : middle - offset - 1;\r\n if (nextIndex >= 0 && nextIndex < textLength && !revealedSet.has(nextIndex)) {\r\n return nextIndex;\r\n }\r\n for (let i = 0; i < textLength; i++) {\r\n if (!revealedSet.has(i)) return i;\r\n }\r\n return 0;\r\n }\r\n default:\r\n return revealedSet.size;\r\n }\r\n };\r\n\r\n const availableChars = useOriginalCharsOnly\r\n ? Array.from(new Set(text.split(\"\"))).filter((char) => char !== \" \")\r\n : characters.split(\"\");\r\n\r\n const shuffleText = (originalText: string, currentRevealed: Set<number>): string => {\r\n if (useOriginalCharsOnly) {\r\n const positions = originalText.split(\"\").map((char, i) => ({\r\n char,\r\n isSpace: char === \" \",\r\n index: i,\r\n isRevealed: currentRevealed.has(i),\r\n }));\r\n\r\n const nonSpaceChars = positions.filter((p) => !p.isSpace && !p.isRevealed).map((p) => p.char);\r\n\r\n for (let i = nonSpaceChars.length - 1; i > 0; i--) {\r\n const j = Math.floor(Math.random() * (i + 1));\r\n [nonSpaceChars[i], nonSpaceChars[j]] = [nonSpaceChars[j], nonSpaceChars[i]];\r\n }\r\n\r\n let charIndex = 0;\r\n return positions\r\n .map((p) => {\r\n if (p.isSpace) return \" \";\r\n if (p.isRevealed) return originalText[p.index];\r\n return nonSpaceChars[charIndex++];\r\n })\r\n .join(\"\");\r\n } else {\r\n return originalText\r\n .split(\"\")\r\n .map((char, i) => {\r\n if (char === \" \") return \" \";\r\n if (currentRevealed.has(i)) return originalText[i];\r\n return availableChars[Math.floor(Math.random() * availableChars.length)];\r\n })\r\n .join(\"\");\r\n }\r\n };\r\n\r\n if (isHovering) {\r\n setIsScrambling(true);\r\n interval = setInterval(() => {\r\n setRevealedIndices((prevRevealed) => {\r\n if (sequential) {\r\n if (prevRevealed.size < text.length) {\r\n const nextIndex = getNextIndex(prevRevealed);\r\n const newRevealed = new Set(prevRevealed);\r\n newRevealed.add(nextIndex);\r\n setDisplayText(shuffleText(text, newRevealed));\r\n return newRevealed;\r\n } else {\r\n clearInterval(interval);\r\n setIsScrambling(false);\r\n return prevRevealed;\r\n }\r\n } else {\r\n setDisplayText(shuffleText(text, prevRevealed));\r\n currentIteration++;\r\n if (currentIteration >= maxIterations) {\r\n clearInterval(interval);\r\n setIsScrambling(false);\r\n setDisplayText(text);\r\n }\r\n return prevRevealed;\r\n }\r\n });\r\n }, speed);\r\n } else {\r\n setDisplayText(text);\r\n setRevealedIndices(new Set());\r\n setIsScrambling(false);\r\n }\r\n\r\n return () => {\r\n if (interval) clearInterval(interval);\r\n };\r\n }, [isHovering, text, speed, maxIterations, sequential, revealDirection, characters, useOriginalCharsOnly]);\r\n\r\n useEffect(() => {\r\n if (animateOn !== \"view\" && animateOn !== \"both\") return;\r\n\r\n const observerCallback = (entries: IntersectionObserverEntry[]) => {\r\n entries.forEach((entry) => {\r\n if (entry.isIntersecting && !hasAnimated) {\r\n setIsHovering(true);\r\n setHasAnimated(true);\r\n }\r\n });\r\n };\r\n\r\n const observer = new IntersectionObserver(observerCallback, { threshold: 0.1 });\r\n const currentRef = containerRef.current;\r\n if (currentRef) {\r\n observer.observe(currentRef);\r\n }\r\n\r\n return () => {\r\n if (currentRef) {\r\n observer.unobserve(currentRef);\r\n }\r\n };\r\n }, [animateOn, hasAnimated]);\r\n\r\n const hoverProps =\r\n animateOn === \"hover\" || animateOn === \"both\"\r\n ? {\r\n onMouseEnter: () => setIsHovering(true),\r\n onMouseLeave: () => setIsHovering(false),\r\n }\r\n : {};\r\n\r\n return (\r\n <motion.span\r\n className={parentClassName}\r\n ref={containerRef}\r\n style={{ display: \"inline-block\", whiteSpace: \"pre-wrap\" }}\r\n {...hoverProps}\r\n {...props}\r\n >\r\n <span className=\"sr-only\">{displayText}</span>\r\n <span aria-hidden=\"true\">\r\n {displayText.split(\"\").map((char, index) => {\r\n const isRevealedOrDone = revealedIndices.has(index) || !isScrambling || !isHovering;\r\n return (\r\n <span key={index} className={isRevealedOrDone ? className : encryptedClassName}>\r\n {char}\r\n </span>\r\n );\r\n })}\r\n </span>\r\n </motion.span>\r\n );\r\n}\r\n\r\nexport default DecryptedText;\r\n","\"use client\";\r\n\r\nimport { useEffect, useRef, useState } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface TrueFocusProps {\r\n sentence?: string;\r\n manualMode?: boolean;\r\n blurAmount?: number;\r\n borderColor?: string;\r\n glowColor?: string;\r\n animationDuration?: number;\r\n pauseBetweenAnimations?: number;\r\n className?: string;\r\n}\r\n\r\ninterface FocusRect {\r\n x: number;\r\n y: number;\r\n width: number;\r\n height: number;\r\n}\r\n\r\nexport function TrueFocus({\r\n sentence = \"True Focus\",\r\n manualMode = false,\r\n blurAmount = 5,\r\n borderColor = \"green\",\r\n glowColor = \"rgba(0, 255, 0, 0.6)\",\r\n animationDuration = 0.5,\r\n pauseBetweenAnimations = 1,\r\n className,\r\n}: TrueFocusProps) {\r\n const words = sentence.split(\" \");\r\n const [currentIndex, setCurrentIndex] = useState<number>(0);\r\n const [lastActiveIndex, setLastActiveIndex] = useState<number | null>(null);\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const wordRefs = useRef<(HTMLSpanElement | null)[]>([]);\r\n const [focusRect, setFocusRect] = useState<FocusRect>({ x: 0, y: 0, width: 0, height: 0 });\r\n\r\n useEffect(() => {\r\n if (!manualMode) {\r\n const interval = setInterval(() => {\r\n setCurrentIndex((prev) => (prev + 1) % words.length);\r\n }, (animationDuration + pauseBetweenAnimations) * 1000);\r\n return () => clearInterval(interval);\r\n }\r\n }, [manualMode, animationDuration, pauseBetweenAnimations, words.length]);\r\n\r\n useEffect(() => {\r\n const updateFocusRect = () => {\r\n if (currentIndex === null || currentIndex === -1) return;\r\n if (!wordRefs.current[currentIndex] || !containerRef.current) return;\r\n const parentRect = containerRef.current.getBoundingClientRect();\r\n const activeRect = wordRefs.current[currentIndex]!.getBoundingClientRect();\r\n setFocusRect({\r\n x: activeRect.left - parentRect.left,\r\n y: activeRect.top - parentRect.top,\r\n width: activeRect.width,\r\n height: activeRect.height,\r\n });\r\n };\r\n updateFocusRect();\r\n window.addEventListener(\"resize\", updateFocusRect);\r\n return () => window.removeEventListener(\"resize\", updateFocusRect);\r\n }, [currentIndex, words.length]);\r\n\r\n return (\r\n <div ref={containerRef} className={cn(\"relative flex flex-wrap gap-3 p-12 items-center justify-center\", className)}>\r\n {words.map((word, index) => {\r\n const isActive = index === currentIndex;\r\n return (\r\n <span\r\n key={index}\r\n ref={(el) => { wordRefs.current[index] = el; }}\r\n className=\"text-4xl font-bold relative z-10\"\r\n style={{\r\n filter: isActive ? \"blur(0px)\" : `blur(${blurAmount}px)`,\r\n transition: `all ${animationDuration}s ease`,\r\n color: isActive ? \"#000\" : \"#666\",\r\n transform: isActive ? \"scale(1.05)\" : \"scale(1)\",\r\n }}\r\n onMouseEnter={() => manualMode && (setLastActiveIndex(index), setCurrentIndex(index))}\r\n onMouseLeave={() => manualMode && setCurrentIndex(lastActiveIndex ?? 0)}\r\n >\r\n {word}\r\n </span>\r\n );\r\n })}\r\n <motion.div\r\n className=\"absolute pointer-events-none\"\r\n animate={{ x: focusRect.x, y: focusRect.y, width: focusRect.width, height: focusRect.height, opacity: currentIndex >= 0 ? 1 : 0 }}\r\n transition={{ duration: animationDuration }}\r\n style={{ border: `2px solid ${borderColor}`, boxShadow: `0 0 10px ${glowColor}`, borderRadius: 4 }}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport default TrueFocus;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface GlassCardProps extends React.HTMLAttributes<HTMLDivElement> {\r\n children: React.ReactNode;\r\n}\r\n\r\nexport function GlassCard({ children, className, ...props }: GlassCardProps) {\r\n return (\r\n <div\r\n className={cn(\r\n \"rounded-2xl p-6\",\r\n \"bg-white/10 dark:bg-black/10\",\r\n \"backdrop-blur-xl\",\r\n \"border border-white/20 dark:border-white/10\",\r\n \"shadow-xl\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </div>\r\n );\r\n}\r\n\r\nexport default GlassCard;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface HoverCardProps extends React.HTMLAttributes<HTMLDivElement> {\r\n children: React.ReactNode;\r\n}\r\n\r\nexport function HoverCard({ children, className, ...props }: HoverCardProps) {\r\n return (\r\n <div\r\n className={cn(\r\n \"rounded-2xl p-6\",\r\n \"bg-white dark:bg-zinc-900\",\r\n \"border border-zinc-200 dark:border-zinc-800\",\r\n \"shadow-lg\",\r\n \"transition-all duration-300 ease-out\",\r\n \"hover:shadow-2xl hover:-translate-y-1\",\r\n \"hover:border-zinc-300 dark:hover:border-zinc-700\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </div>\r\n );\r\n}\r\n\r\nexport default HoverCard;\r\n","\"use client\";\r\n\r\nimport React, { useState } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface CardFlipProps {\r\n frontContent: React.ReactNode;\r\n backContent: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\nexport function CardFlip({ frontContent, backContent, className }: CardFlipProps) {\r\n const [isFlipped, setIsFlipped] = useState(false);\r\n\r\n return (\r\n <div\r\n className={cn(\"relative w-full h-full [perspective:1000px]\", className)}\r\n onMouseEnter={() => setIsFlipped(true)}\r\n onMouseLeave={() => setIsFlipped(false)}\r\n >\r\n <div\r\n className={cn(\r\n \"relative w-full h-full [transform-style:preserve-3d] transition-transform duration-700\",\r\n isFlipped ? \"[transform:rotateY(180deg)]\" : \"\"\r\n )}\r\n >\r\n {/* Front */}\r\n <div\r\n className={cn(\r\n \"absolute inset-0 w-full h-full [backface-visibility:hidden]\",\r\n \"rounded-2xl bg-white dark:bg-zinc-900\",\r\n \"border border-zinc-200 dark:border-zinc-800\",\r\n \"shadow-lg p-6\"\r\n )}\r\n >\r\n {frontContent}\r\n </div>\r\n\r\n {/* Back */}\r\n <div\r\n className={cn(\r\n \"absolute inset-0 w-full h-full [backface-visibility:hidden] [transform:rotateY(180deg)]\",\r\n \"rounded-2xl bg-zinc-100 dark:bg-zinc-800\",\r\n \"border border-zinc-200 dark:border-zinc-700\",\r\n \"shadow-lg p-6\"\r\n )}\r\n >\r\n {backContent}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default CardFlip;\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface CardProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n hover?: boolean;\r\n}\r\n\r\nexport function Card({ children, className, hover = false }: CardProps) {\r\n return (\r\n <div\r\n className={cn(\r\n \"rounded-xl p-6\",\r\n \"bg-white dark:bg-zinc-900\",\r\n \"border border-zinc-200 dark:border-zinc-800\",\r\n hover && \"transition-all duration-200 hover:shadow-lg hover:-translate-y-1\",\r\n className\r\n )}\r\n >\r\n {children}\r\n </div>\r\n );\r\n}\r\n\r\ninterface CardHeaderProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\nexport function CardHeader({ children, className }: CardHeaderProps) {\r\n return <div className={cn(\"mb-4\", className)}>{children}</div>;\r\n}\r\n\r\ninterface CardTitleProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\nexport function CardTitle({ children, className }: CardTitleProps) {\r\n return <h3 className={cn(\"text-lg font-semibold\", className)}>{children}</h3>;\r\n}\r\n\r\ninterface CardDescriptionProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\nexport function CardDescription({ children, className }: CardDescriptionProps) {\r\n return <p className={cn(\"text-sm text-zinc-500 dark:text-zinc-400\", className)}>{children}</p>;\r\n}\r\n\r\ninterface CardContentProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\nexport function CardContent({ children, className }: CardContentProps) {\r\n return <div className={cn(\"\", className)}>{children}</div>;\r\n}\r\n\r\ninterface CardFooterProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\nexport function CardFooter({ children, className }: CardFooterProps) {\r\n return <div className={cn(\"mt-4 pt-4 border-t border-zinc-200 dark:border-zinc-800\", className)}>{children}</div>;\r\n}\r\n\r\nexport default Card;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingDotsProps {\r\n className?: string;\r\n size?: \"sm\" | \"md\" | \"lg\";\r\n}\r\n\r\nexport function LoadingDots({ className, size = \"md\" }: LoadingDotsProps) {\r\n const sizeClasses = {\r\n sm: \"w-1.5 h-1.5\",\r\n md: \"w-2.5 h-2.5\",\r\n lg: \"w-4 h-4\",\r\n };\r\n\r\n return (\r\n <div className={cn(\"flex items-center justify-center gap-1\", className)}>\r\n {[0, 1, 2].map((i) => (\r\n <div\r\n key={i}\r\n className={cn(\r\n sizeClasses[size],\r\n \"rounded-full bg-current animate-bounce\"\r\n )}\r\n style={{ animationDelay: `${i * 0.15}s` }}\r\n />\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingDots;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingSpinnerProps {\r\n className?: string;\r\n size?: \"sm\" | \"md\" | \"lg\";\r\n}\r\n\r\nexport function LoadingSpinner({ className, size = \"md\" }: LoadingSpinnerProps) {\r\n const sizeClasses = {\r\n sm: \"w-4 h-4 border-2\",\r\n md: \"w-8 h-8 border-3\",\r\n lg: \"w-12 h-12 border-4\",\r\n };\r\n\r\n return (\r\n <div\r\n className={cn(\r\n sizeClasses[size],\r\n \"rounded-full border-current border-t-transparent animate-spin\",\r\n className\r\n )}\r\n />\r\n );\r\n}\r\n\r\nexport default LoadingSpinner;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingBarProps {\r\n className?: string;\r\n color?: string;\r\n}\r\n\r\nexport function LoadingBar({ className, color = \"bg-blue-500\" }: LoadingBarProps) {\r\n return (\r\n <div className={cn(\"h-1 w-full overflow-hidden rounded-full bg-zinc-200 dark:bg-zinc-800\", className)}>\r\n <motion.div\r\n className={cn(\"h-full rounded-full\", color)}\r\n initial={{ x: \"-100%\" }}\r\n animate={{ x: \"100%\" }}\r\n transition={{\r\n repeat: Infinity,\r\n duration: 1.5,\r\n ease: \"easeInOut\",\r\n }}\r\n style={{ width: \"50%\" }}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingBar;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingPulseProps {\r\n className?: string;\r\n size?: \"sm\" | \"md\" | \"lg\";\r\n color?: string;\r\n}\r\n\r\nconst sizes = {\r\n sm: \"w-8 h-8\",\r\n md: \"w-12 h-12\",\r\n lg: \"w-16 h-16\",\r\n};\r\n\r\nexport function LoadingPulse({ className, size = \"md\", color = \"bg-blue-500\" }: LoadingPulseProps) {\r\n return (\r\n <div className={cn(\"relative\", sizes[size], className)}>\r\n <motion.div\r\n className={cn(\"absolute inset-0 rounded-full\", color)}\r\n animate={{\r\n scale: [1, 1.5, 1],\r\n opacity: [0.5, 0, 0.5],\r\n }}\r\n transition={{\r\n duration: 1.5,\r\n repeat: Infinity,\r\n ease: \"easeInOut\",\r\n }}\r\n />\r\n <div className={cn(\"absolute inset-2 rounded-full\", color)} />\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingPulse;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingBounceProps {\r\n className?: string;\r\n color?: string;\r\n}\r\n\r\nexport function LoadingBounce({ className, color = \"bg-zinc-900 dark:bg-white\" }: LoadingBounceProps) {\r\n return (\r\n <div className={cn(\"flex gap-1\", className)}>\r\n {[0, 1, 2].map((i) => (\r\n <motion.div\r\n key={i}\r\n className={cn(\"w-3 h-3 rounded-full\", color)}\r\n animate={{ y: [0, -10, 0] }}\r\n transition={{\r\n duration: 0.6,\r\n repeat: Infinity,\r\n delay: i * 0.1,\r\n ease: \"easeInOut\",\r\n }}\r\n />\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingBounce;\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingFlowerProps {\r\n className?: string;\r\n}\r\n\r\nexport function LoadingFlower({ className = \"\" }: LoadingFlowerProps) {\r\n return (\r\n <div className={cn(\"w-full h-full min-h-[400px] flex items-center justify-center\", className)}>\r\n <div className=\"relative\">\r\n <div className=\"flex items-center justify-center\">\r\n {[...Array(8)].map((_, i) => (\r\n <div\r\n key={i}\r\n className=\"absolute w-3 h-3 rounded-full bg-black dark:bg-white\"\r\n style={{\r\n transform: `rotate(${i * 45}deg) translateY(-20px)`,\r\n animation: `flower-pulse 1.5s ease-in-out infinite`,\r\n animationDelay: `${i * 0.1}s`,\r\n }}\r\n />\r\n ))}\r\n <div className=\"w-4 h-4 rounded-full bg-zinc-400\" />\r\n </div>\r\n </div>\r\n <style jsx>{`\r\n @keyframes flower-pulse {\r\n 0%, 100% { opacity: 0.3; scale: 0.8; }\r\n 50% { opacity: 1; scale: 1.2; }\r\n }\r\n `}</style>\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingFlower;\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingGeometricProps {\r\n className?: string;\r\n}\r\n\r\nexport function LoadingGeometric({ className = \"\" }: LoadingGeometricProps) {\r\n return (\r\n <div className={cn(\"w-full h-full min-h-[400px] flex items-center justify-center\", className)}>\r\n <div className=\"flex justify-center items-center\">\r\n <div className=\"w-36 h-36 flex justify-center items-center relative\">\r\n <div className=\"w-4 h-16 absolute bg-zinc-600 dark:bg-zinc-400 animate-[move-h_1.2s_infinite_cubic-bezier(0.65,0.05,0.36,1)]\" />\r\n <div className=\"w-4 h-16 absolute bg-zinc-800 dark:bg-zinc-200 rotate-90 animate-[move-v_1.2s_infinite_cubic-bezier(0.65,0.05,0.36,1)]\" />\r\n <div className=\"absolute top-4 left-5 font-black text-lg text-black dark:text-white animate-[rot_0.8s_infinite_cubic-bezier(0.65,0.05,0.36,1)]\">X</div>\r\n <div className=\"absolute bottom-0 right-0 font-black text-3xl text-black dark:text-white animate-[scale_0.8s_infinite_cubic-bezier(0.65,0.05,0.36,1)]\">*</div>\r\n </div>\r\n </div>\r\n <style jsx>{`\r\n @keyframes move-h { 0% { top: 0; opacity: 0; } 25% { opacity: 1; } 50% { top: 30%; opacity: 1; } 75% { opacity: 1; } 100% { top: 100%; opacity: 0; } }\r\n @keyframes move-v { 0% { left: 0; opacity: 0; } 25% { opacity: 1; } 50% { left: 45%; opacity: 1; } 75% { opacity: 1; } 100% { left: 100%; opacity: 0; } }\r\n @keyframes rot { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }\r\n @keyframes scale { 0% { scale: 1; } 50% { scale: 1.9; } 100% { scale: 1; } }\r\n `}</style>\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingGeometric;\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingMorphProps {\r\n className?: string;\r\n}\r\n\r\nexport function LoadingMorph({ className = \"\" }: LoadingMorphProps) {\r\n return (\r\n <div className={cn(\"w-full h-full min-h-[400px] flex items-center justify-center\", className)}>\r\n <div className=\"w-20 h-20 rounded-full border-8 border-transparent border-t-black dark:border-t-white border-r-zinc-600 dark:border-r-zinc-400 border-b-zinc-400 dark:border-b-zinc-600 border-l-zinc-200 dark:border-l-zinc-800 animate-[morph_2s_ease-in-out_infinite,rotate-color_2s_linear_infinite]\">\r\n <style jsx>{`\r\n @keyframes rotate-color { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }\r\n @keyframes morph { 0%, 100% { border-radius: 50%; width: 80px; height: 80px; } 50% { border-radius: 10%; width: 100px; height: 100px; } }\r\n `}</style>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingMorph;\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingRingsProps {\r\n className?: string;\r\n}\r\n\r\nexport function LoadingRings({ className = \"\" }: LoadingRingsProps) {\r\n return (\r\n <div className={cn(\"w-full h-full min-h-[400px] flex items-center justify-center\", className)}>\r\n <div className=\"w-16 h-16\">\r\n <div className=\"box-border w-full h-full border-[10px] border-zinc-300 dark:border-zinc-800 border-t-zinc-700 dark:border-t-zinc-200 border-b-zinc-500 rounded-full animate-[rotate_5s_linear_infinite]\">\r\n <div className=\"box-border w-full h-full border-[10px] border-zinc-300 dark:border-zinc-800 border-t-zinc-600 dark:border-t-zinc-400 border-b-black dark:border-b-white rounded-full animate-[rotate_2.5s_linear_infinite]\" />\r\n </div>\r\n <style jsx>{`\r\n @keyframes rotate { 0% { transform: scale(1) rotate(360deg); } 50% { transform: scale(0.8) rotate(-360deg); } 100% { transform: scale(1) rotate(360deg); } }\r\n `}</style>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingRings;\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingTextProps {\r\n text?: string;\r\n className?: string;\r\n}\r\n\r\nexport function LoadingText({ text = \"loading\", className = \"\" }: LoadingTextProps) {\r\n return (\r\n <div className={cn(\"w-full h-full min-h-[400px] flex items-center justify-center\", className)}>\r\n <div className=\"relative w-20 h-12\">\r\n <span className=\"absolute top-0 left-0 m-0 p-0 text-black dark:text-white text-sm tracking-wider animate-[loading-text_3.5s_ease_both_infinite]\">\r\n {text}\r\n </span>\r\n <span className=\"absolute bottom-0 left-0 block h-4 w-4 rounded-full bg-black dark:bg-white animate-[loading-bar_3.5s_ease_both_infinite]\">\r\n <span className=\"absolute inset-0 rounded-full bg-zinc-400 dark:bg-zinc-500 animate-[loading-bar-before_3.5s_ease_both_infinite]\" />\r\n </span>\r\n <style jsx>{`\r\n @keyframes loading-text { 0% { letter-spacing: 1px; transform: translateX(0px); } 40% { letter-spacing: 2px; transform: translateX(26px); } 80% { letter-spacing: 1px; transform: translateX(32px); } 90% { letter-spacing: 2px; transform: translateX(0px); } 100% { letter-spacing: 1px; transform: translateX(0px); } }\r\n @keyframes loading-bar { 0% { width: 16px; transform: translateX(0px); } 40% { width: 100%; transform: translateX(0px); } 80% { width: 16px; transform: translateX(64px); } 90% { width: 100%; transform: translateX(0px); } 100% { width: 16px; transform: translateX(0px); } }\r\n @keyframes loading-bar-before { 0% { transform: translateX(0px); width: 16px; } 40% { transform: translateX(0%); width: 80%; } 80% { width: 100%; transform: translateX(0px); } 90% { width: 80%; transform: translateX(15px); } 100% { transform: translateX(0px); width: 16px; } }\r\n `}</style>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingText;\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingWordsProps {\r\n words?: string[];\r\n className?: string;\r\n}\r\n\r\nexport function LoadingWords({\r\n words = [\"buttons\", \"forms\", \"switches\", \"cards\", \"loaders\"],\r\n className = \"\",\r\n}: LoadingWordsProps) {\r\n return (\r\n <div className={cn(\"w-full h-full min-h-[400px] flex items-center justify-center\", className)}>\r\n <div className=\"text-zinc-400 dark:text-zinc-500 font-medium text-2xl box-border h-10 px-2.5 py-2 flex items-center rounded-lg\">\r\n <span className=\"mr-2\">loading</span>\r\n <div className=\"overflow-hidden relative h-full\">\r\n <div className=\"absolute inset-0 bg-gradient-to-b from-white via-transparent to-white dark:from-zinc-950 dark:via-transparent dark:to-zinc-950 z-10\" />\r\n {words.map((word, index) => (\r\n <span\r\n key={index}\r\n className=\"block h-full pl-1.5 text-black dark:text-white animate-[spin-words_4s_infinite]\"\r\n style={{ animationDelay: `${index * 0.8}s` }}\r\n >\r\n {word}\r\n </span>\r\n ))}\r\n </div>\r\n </div>\r\n <style jsx>{`\r\n @keyframes spin-words { 10% { transform: translateY(-102%); } 25% { transform: translateY(-100%); } 35% { transform: translateY(-202%); } 50% { transform: translateY(-200%); } 60% { transform: translateY(-302%); } 75% { transform: translateY(-300%); } 85% { transform: translateY(-402%); } 100% { transform: translateY(-400%); } }\r\n `}</style>\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingWords;\r\n","\"use client\";\r\n\r\nimport React, { useEffect, useMemo, useState } from \"react\";\r\nimport { AnimatePresence, motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\nexport interface AnimatedListProps {\r\n className?: string;\r\n children: React.ReactNode;\r\n delay?: number;\r\n}\r\n\r\nexport function AnimatedList({\r\n className,\r\n children,\r\n delay = 1000,\r\n}: AnimatedListProps) {\r\n const [index, setIndex] = useState(0);\r\n const childrenArray = React.Children.toArray(children);\r\n\r\n useEffect(() => {\r\n const interval = setInterval(() => {\r\n setIndex((prevIndex) => (prevIndex + 1) % childrenArray.length);\r\n }, delay);\r\n return () => clearInterval(interval);\r\n }, [childrenArray.length, delay]);\r\n\r\n const itemsToShow = useMemo(\r\n () => childrenArray.slice(0, index + 1).reverse(),\r\n [index, childrenArray]\r\n );\r\n\r\n return (\r\n <div className={cn(\"flex flex-col items-center gap-4\", className)}>\r\n <AnimatePresence>\r\n {itemsToShow.map((item, idx) => (\r\n <AnimatedListItem key={idx}>\r\n {item}\r\n </AnimatedListItem>\r\n ))}\r\n </AnimatePresence>\r\n </div>\r\n );\r\n}\r\n\r\nexport function AnimatedListItem({ children }: { children: React.ReactNode }) {\r\n return (\r\n <motion.div\r\n initial={{ scale: 0, opacity: 0 }}\r\n animate={{ scale: 1, opacity: 1 }}\r\n exit={{ scale: 0, opacity: 0 }}\r\n transition={{ type: \"spring\", stiffness: 350, damping: 40 }}\r\n layout\r\n className=\"mx-auto w-full\"\r\n >\r\n {children}\r\n </motion.div>\r\n );\r\n}\r\n\r\nexport default AnimatedList;\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface SkeletonProps {\r\n className?: string;\r\n variant?: \"text\" | \"circular\" | \"rectangular\";\r\n width?: string | number;\r\n height?: string | number;\r\n}\r\n\r\nexport function Skeleton({ \r\n className, \r\n variant = \"text\",\r\n width,\r\n height \r\n}: SkeletonProps) {\r\n const variants = {\r\n text: \"h-4 rounded\",\r\n circular: \"rounded-full\",\r\n rectangular: \"rounded-lg\",\r\n };\r\n\r\n return (\r\n <div\r\n className={cn(\r\n \"animate-pulse bg-zinc-200 dark:bg-zinc-800\",\r\n variants[variant],\r\n className\r\n )}\r\n style={{ width, height }}\r\n />\r\n );\r\n}\r\n\r\nexport default Skeleton;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface TooltipProps {\r\n children: React.ReactNode;\r\n content: string;\r\n position?: \"top\" | \"bottom\" | \"left\" | \"right\";\r\n className?: string;\r\n}\r\n\r\nexport function Tooltip({ \r\n children, \r\n content, \r\n position = \"top\",\r\n className \r\n}: TooltipProps) {\r\n const [isVisible, setIsVisible] = useState(false);\r\n\r\n const positions = {\r\n top: \"bottom-full left-1/2 -translate-x-1/2 mb-2\",\r\n bottom: \"top-full left-1/2 -translate-x-1/2 mt-2\",\r\n left: \"right-full top-1/2 -translate-y-1/2 mr-2\",\r\n right: \"left-full top-1/2 -translate-y-1/2 ml-2\",\r\n };\r\n\r\n const animations = {\r\n top: { initial: { opacity: 0, y: 5 }, animate: { opacity: 1, y: 0 } },\r\n bottom: { initial: { opacity: 0, y: -5 }, animate: { opacity: 1, y: 0 } },\r\n left: { initial: { opacity: 0, x: 5 }, animate: { opacity: 1, x: 0 } },\r\n right: { initial: { opacity: 0, x: -5 }, animate: { opacity: 1, x: 0 } },\r\n };\r\n\r\n return (\r\n <div\r\n className=\"relative inline-block\"\r\n onMouseEnter={() => setIsVisible(true)}\r\n onMouseLeave={() => setIsVisible(false)}\r\n >\r\n {children}\r\n <AnimatePresence>\r\n {isVisible && (\r\n <motion.div\r\n className={cn(\r\n \"absolute z-50 px-2 py-1 text-sm text-white bg-zinc-900 dark:bg-zinc-100 dark:text-zinc-900 rounded whitespace-nowrap\",\r\n positions[position],\r\n className\r\n )}\r\n initial={animations[position].initial}\r\n animate={animations[position].animate}\r\n exit={animations[position].initial}\r\n transition={{ duration: 0.15 }}\r\n >\r\n {content}\r\n </motion.div>\r\n )}\r\n </AnimatePresence>\r\n </div>\r\n );\r\n}\r\n\r\nexport default Tooltip;\r\n","\"use client\";\r\n\r\nimport { useState, useRef } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface TooltipMinimalProps {\r\n content: string;\r\n children: React.ReactNode;\r\n position?: \"top\" | \"bottom\" | \"left\" | \"right\";\r\n delay?: number;\r\n className?: string;\r\n}\r\n\r\nexport function TooltipMinimal({\r\n content,\r\n children,\r\n position = \"top\",\r\n delay = 300,\r\n className,\r\n}: TooltipMinimalProps) {\r\n const [isVisible, setIsVisible] = useState(false);\r\n const timeoutRef = useRef<NodeJS.Timeout>(undefined);\r\n\r\n const showTooltip = () => {\r\n timeoutRef.current = setTimeout(() => setIsVisible(true), delay);\r\n };\r\n\r\n const hideTooltip = () => {\r\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\r\n setIsVisible(false);\r\n };\r\n\r\n const getPositionClasses = () => {\r\n const positions = {\r\n top: \"bottom-full left-1/2 -translate-x-1/2 mb-2\",\r\n bottom: \"top-full left-1/2 -translate-x-1/2 mt-2\",\r\n left: \"right-full top-1/2 -translate-y-1/2 mr-2\",\r\n right: \"left-full top-1/2 -translate-y-1/2 ml-2\",\r\n };\r\n return positions[position];\r\n };\r\n\r\n return (\r\n <div className={cn(\"relative inline-block\", className)} onMouseEnter={showTooltip} onMouseLeave={hideTooltip}>\r\n {children}\r\n <AnimatePresence>\r\n {isVisible && (\r\n <motion.div\r\n initial={{ opacity: 0, scale: 0.95 }}\r\n animate={{ opacity: 1, scale: 1 }}\r\n exit={{ opacity: 0, scale: 0.95 }}\r\n transition={{ duration: 0.15 }}\r\n className={cn(\"absolute z-50 px-3 py-2 text-sm bg-popover border border-border rounded-lg shadow-md whitespace-nowrap\", getPositionClasses())}\r\n >\r\n {content}\r\n </motion.div>\r\n )}\r\n </AnimatePresence>\r\n </div>\r\n );\r\n}\r\n\r\nexport default TooltipMinimal;\r\n","\"use client\";\r\n\r\nimport { useState, useRef } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface TooltipAnimatedProps {\r\n content: string;\r\n children: React.ReactNode;\r\n position?: \"top\" | \"bottom\" | \"left\" | \"right\";\r\n delay?: number;\r\n animation?: \"fade\" | \"slide\" | \"bounce\" | \"scale\";\r\n className?: string;\r\n}\r\n\r\nexport function TooltipAnimated({\r\n content,\r\n children,\r\n position = \"top\",\r\n delay = 200,\r\n animation = \"slide\",\r\n className,\r\n}: TooltipAnimatedProps) {\r\n const [isVisible, setIsVisible] = useState(false);\r\n const timeoutRef = useRef<NodeJS.Timeout>(undefined);\r\n\r\n const showTooltip = () => {\r\n timeoutRef.current = setTimeout(() => setIsVisible(true), delay);\r\n };\r\n\r\n const hideTooltip = () => {\r\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\r\n setIsVisible(false);\r\n };\r\n\r\n const getPositionClasses = () => {\r\n const positions = {\r\n top: \"bottom-full left-1/2 -translate-x-1/2 mb-3\",\r\n bottom: \"top-full left-1/2 -translate-x-1/2 mt-3\",\r\n left: \"right-full top-1/2 -translate-y-1/2 mr-3\",\r\n right: \"left-full top-1/2 -translate-y-1/2 ml-3\",\r\n };\r\n return positions[position];\r\n };\r\n\r\n const getAnimationProps = () => {\r\n const slideOffset = 10;\r\n const offsets = { top: { y: slideOffset }, bottom: { y: -slideOffset }, left: { x: slideOffset }, right: { x: -slideOffset } };\r\n const { x = 0, y = 0 } = offsets[position];\r\n\r\n const animations = {\r\n fade: { initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 } },\r\n scale: { initial: { opacity: 0, scale: 0.8 }, animate: { opacity: 1, scale: 1 }, exit: { opacity: 0, scale: 0.8 } },\r\n bounce: { initial: { opacity: 0, scale: 0.3, y: position === \"top\" ? 10 : -10 }, animate: { opacity: 1, scale: 1, y: 0 }, exit: { opacity: 0, scale: 0.3, y: position === \"top\" ? 10 : -10 } },\r\n slide: { initial: { opacity: 0, x, y }, animate: { opacity: 1, x: 0, y: 0 }, exit: { opacity: 0, x, y } },\r\n };\r\n return { ...animations[animation], transition: { type: \"spring\", stiffness: 300, damping: 25 } };\r\n };\r\n\r\n return (\r\n <div className={cn(\"relative inline-block\", className)} onMouseEnter={showTooltip} onMouseLeave={hideTooltip}>\r\n {children}\r\n <AnimatePresence>\r\n {isVisible && (\r\n <motion.div {...getAnimationProps()} className={cn(\"absolute z-50 px-4 py-2 text-sm bg-popover border border-border rounded-xl shadow-lg whitespace-nowrap backdrop-blur-sm\", getPositionClasses())}>\r\n {content}\r\n </motion.div>\r\n )}\r\n </AnimatePresence>\r\n </div>\r\n );\r\n}\r\n\r\nexport default TooltipAnimated;\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface BadgeProps {\r\n children: React.ReactNode;\r\n variant?: \"default\" | \"success\" | \"warning\" | \"danger\" | \"info\";\r\n size?: \"sm\" | \"md\" | \"lg\";\r\n className?: string;\r\n}\r\n\r\nconst variants = {\r\n default: \"bg-zinc-100 text-zinc-900 dark:bg-zinc-800 dark:text-zinc-100\",\r\n success: \"bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400\",\r\n warning: \"bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-400\",\r\n danger: \"bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400\",\r\n info: \"bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-400\",\r\n};\r\n\r\nconst sizes = {\r\n sm: \"px-2 py-0.5 text-xs\",\r\n md: \"px-2.5 py-1 text-sm\",\r\n lg: \"px-3 py-1.5 text-base\",\r\n};\r\n\r\nexport function Badge({ \r\n children, \r\n variant = \"default\", \r\n size = \"md\",\r\n className \r\n}: BadgeProps) {\r\n return (\r\n <span\r\n className={cn(\r\n \"inline-flex items-center font-medium rounded-full\",\r\n variants[variant],\r\n sizes[size],\r\n className\r\n )}\r\n >\r\n {children}\r\n </span>\r\n );\r\n}\r\n\r\nexport default Badge;\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface AvatarProps {\r\n src?: string;\r\n alt?: string;\r\n fallback?: string;\r\n size?: \"sm\" | \"md\" | \"lg\" | \"xl\";\r\n className?: string;\r\n}\r\n\r\nconst sizes = {\r\n sm: \"w-8 h-8 text-xs\",\r\n md: \"w-10 h-10 text-sm\",\r\n lg: \"w-12 h-12 text-base\",\r\n xl: \"w-16 h-16 text-lg\",\r\n};\r\n\r\nexport function Avatar({ \r\n src, \r\n alt = \"\", \r\n fallback,\r\n size = \"md\",\r\n className \r\n}: AvatarProps) {\r\n const initials = fallback || alt.split(\" \").map(n => n[0]).join(\"\").slice(0, 2).toUpperCase();\r\n\r\n return (\r\n <div\r\n className={cn(\r\n \"relative inline-flex items-center justify-center rounded-full bg-zinc-200 dark:bg-zinc-800 overflow-hidden\",\r\n sizes[size],\r\n className\r\n )}\r\n >\r\n {src ? (\r\n <img src={src} alt={alt} className=\"w-full h-full object-cover\" />\r\n ) : (\r\n <span className=\"font-medium text-zinc-600 dark:text-zinc-400\">\r\n {initials}\r\n </span>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nexport default Avatar;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface ProgressProps {\r\n value: number;\r\n max?: number;\r\n className?: string;\r\n color?: string;\r\n showLabel?: boolean;\r\n}\r\n\r\nexport function Progress({ \r\n value, \r\n max = 100, \r\n className,\r\n color = \"bg-blue-500\",\r\n showLabel = false\r\n}: ProgressProps) {\r\n const percentage = Math.min(Math.max((value / max) * 100, 0), 100);\r\n\r\n return (\r\n <div className={cn(\"w-full\", className)}>\r\n <div className=\"h-2 w-full overflow-hidden rounded-full bg-zinc-200 dark:bg-zinc-800\">\r\n <motion.div\r\n className={cn(\"h-full rounded-full\", color)}\r\n initial={{ width: 0 }}\r\n animate={{ width: `${percentage}%` }}\r\n transition={{ duration: 0.5, ease: \"easeOut\" }}\r\n />\r\n </div>\r\n {showLabel && (\r\n <span className=\"mt-1 text-sm text-zinc-600 dark:text-zinc-400\">\r\n {Math.round(percentage)}%\r\n </span>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nexport default Progress;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface SwitchProps {\r\n checked?: boolean;\r\n onChange?: (checked: boolean) => void;\r\n disabled?: boolean;\r\n size?: \"sm\" | \"md\" | \"lg\";\r\n className?: string;\r\n}\r\n\r\nconst sizes = {\r\n sm: { track: \"w-8 h-4\", thumb: \"w-3 h-3\", translate: 16 },\r\n md: { track: \"w-11 h-6\", thumb: \"w-5 h-5\", translate: 20 },\r\n lg: { track: \"w-14 h-7\", thumb: \"w-6 h-6\", translate: 28 },\r\n};\r\n\r\nexport function Switch({ \r\n checked = false, \r\n onChange, \r\n disabled = false,\r\n size = \"md\",\r\n className \r\n}: SwitchProps) {\r\n const sizeConfig = sizes[size];\r\n\r\n return (\r\n <button\r\n type=\"button\"\r\n role=\"switch\"\r\n aria-checked={checked}\r\n disabled={disabled}\r\n onClick={() => onChange?.(!checked)}\r\n className={cn(\r\n \"relative inline-flex shrink-0 cursor-pointer rounded-full transition-colors\",\r\n checked ? \"bg-blue-500\" : \"bg-zinc-300 dark:bg-zinc-700\",\r\n disabled && \"opacity-50 cursor-not-allowed\",\r\n sizeConfig.track,\r\n className\r\n )}\r\n >\r\n <motion.span\r\n className={cn(\r\n \"pointer-events-none inline-block rounded-full bg-white shadow-lg\",\r\n sizeConfig.thumb\r\n )}\r\n animate={{ x: checked ? sizeConfig.translate : 2 }}\r\n transition={{ type: \"spring\", stiffness: 500, damping: 30 }}\r\n style={{ marginTop: 2 }}\r\n />\r\n </button>\r\n );\r\n}\r\n\r\nexport default Switch;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface AccordionItem {\r\n title: string;\r\n content: React.ReactNode;\r\n}\r\n\r\ninterface AccordionProps {\r\n items: AccordionItem[];\r\n className?: string;\r\n allowMultiple?: boolean;\r\n}\r\n\r\nexport function Accordion({ items, className, allowMultiple = false }: AccordionProps) {\r\n const [openItems, setOpenItems] = useState<number[]>([]);\r\n\r\n const toggleItem = (index: number) => {\r\n if (allowMultiple) {\r\n setOpenItems((prev) =>\r\n prev.includes(index) ? prev.filter((i) => i !== index) : [...prev, index]\r\n );\r\n } else {\r\n setOpenItems((prev) => (prev.includes(index) ? [] : [index]));\r\n }\r\n };\r\n\r\n return (\r\n <div className={cn(\"w-full space-y-2\", className)}>\r\n {items.map((item, index) => (\r\n <div\r\n key={index}\r\n className=\"border border-zinc-200 dark:border-zinc-800 rounded-lg overflow-hidden\"\r\n >\r\n <button\r\n onClick={() => toggleItem(index)}\r\n className=\"w-full px-4 py-3 flex items-center justify-between text-left bg-zinc-50 dark:bg-zinc-900 hover:bg-zinc-100 dark:hover:bg-zinc-800 transition-colors\"\r\n >\r\n <span className=\"font-medium\">{item.title}</span>\r\n <motion.svg\r\n animate={{ rotate: openItems.includes(index) ? 180 : 0 }}\r\n transition={{ duration: 0.2 }}\r\n className=\"w-5 h-5\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n viewBox=\"0 0 24 24\"\r\n >\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M19 9l-7 7-7-7\" />\r\n </motion.svg>\r\n </button>\r\n <AnimatePresence>\r\n {openItems.includes(index) && (\r\n <motion.div\r\n initial={{ height: 0, opacity: 0 }}\r\n animate={{ height: \"auto\", opacity: 1 }}\r\n exit={{ height: 0, opacity: 0 }}\r\n transition={{ duration: 0.2 }}\r\n >\r\n <div className=\"px-4 py-3 bg-white dark:bg-zinc-950\">{item.content}</div>\r\n </motion.div>\r\n )}\r\n </AnimatePresence>\r\n </div>\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport default Accordion;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface Tab {\r\n label: string;\r\n content: React.ReactNode;\r\n}\r\n\r\ninterface TabsProps {\r\n tabs: Tab[];\r\n className?: string;\r\n defaultIndex?: number;\r\n}\r\n\r\nexport function Tabs({ tabs, className, defaultIndex = 0 }: TabsProps) {\r\n const [activeIndex, setActiveIndex] = useState(defaultIndex);\r\n\r\n return (\r\n <div className={cn(\"w-full\", className)}>\r\n <div className=\"relative flex border-b border-zinc-200 dark:border-zinc-800\">\r\n {tabs.map((tab, index) => (\r\n <button\r\n key={index}\r\n onClick={() => setActiveIndex(index)}\r\n className={cn(\r\n \"px-4 py-2 text-sm font-medium transition-colors relative\",\r\n activeIndex === index\r\n ? \"text-zinc-900 dark:text-white\"\r\n : \"text-zinc-500 hover:text-zinc-700 dark:text-zinc-400 dark:hover:text-zinc-200\"\r\n )}\r\n >\r\n {tab.label}\r\n {activeIndex === index && (\r\n <motion.div\r\n layoutId=\"activeTab\"\r\n className=\"absolute bottom-0 left-0 right-0 h-0.5 bg-zinc-900 dark:bg-white\"\r\n transition={{ type: \"spring\", stiffness: 500, damping: 30 }}\r\n />\r\n )}\r\n </button>\r\n ))}\r\n </div>\r\n <motion.div\r\n key={activeIndex}\r\n initial={{ opacity: 0, y: 10 }}\r\n animate={{ opacity: 1, y: 0 }}\r\n transition={{ duration: 0.2 }}\r\n className=\"py-4\"\r\n >\r\n {tabs[activeIndex].content}\r\n </motion.div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default Tabs;\r\n","\"use client\";\r\n\r\nimport { useEffect } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface ModalProps {\r\n isOpen: boolean;\r\n onClose: () => void;\r\n children: React.ReactNode;\r\n className?: string;\r\n title?: string;\r\n}\r\n\r\nexport function Modal({ isOpen, onClose, children, className, title }: ModalProps) {\r\n useEffect(() => {\r\n const handleEscape = (e: KeyboardEvent) => {\r\n if (e.key === \"Escape\") onClose();\r\n };\r\n if (isOpen) {\r\n document.addEventListener(\"keydown\", handleEscape);\r\n document.body.style.overflow = \"hidden\";\r\n }\r\n return () => {\r\n document.removeEventListener(\"keydown\", handleEscape);\r\n document.body.style.overflow = \"unset\";\r\n };\r\n }, [isOpen, onClose]);\r\n\r\n return (\r\n <AnimatePresence>\r\n {isOpen && (\r\n <>\r\n <motion.div\r\n initial={{ opacity: 0 }}\r\n animate={{ opacity: 1 }}\r\n exit={{ opacity: 0 }}\r\n onClick={onClose}\r\n className=\"fixed inset-0 bg-black/50 z-50\"\r\n />\r\n <motion.div\r\n initial={{ opacity: 0, scale: 0.95, y: 20 }}\r\n animate={{ opacity: 1, scale: 1, y: 0 }}\r\n exit={{ opacity: 0, scale: 0.95, y: 20 }}\r\n transition={{ type: \"spring\", damping: 25, stiffness: 300 }}\r\n className={cn(\r\n \"fixed left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-50\",\r\n \"w-full max-w-md p-6 rounded-xl\",\r\n \"bg-white dark:bg-zinc-900\",\r\n \"shadow-xl\",\r\n className\r\n )}\r\n >\r\n {title && (\r\n <div className=\"flex items-center justify-between mb-4\">\r\n <h2 className=\"text-lg font-semibold\">{title}</h2>\r\n <button\r\n onClick={onClose}\r\n className=\"p-1 rounded-lg hover:bg-zinc-100 dark:hover:bg-zinc-800 transition-colors\"\r\n >\r\n <svg className=\"w-5 h-5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n )}\r\n {children}\r\n </motion.div>\r\n </>\r\n )}\r\n </AnimatePresence>\r\n );\r\n}\r\n\r\nexport default Modal;\r\n","\"use client\";\r\n\r\nimport { useEffect } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface DrawerProps {\r\n isOpen: boolean;\r\n onClose: () => void;\r\n children: React.ReactNode;\r\n className?: string;\r\n position?: \"left\" | \"right\" | \"bottom\";\r\n}\r\n\r\nexport function Drawer({ isOpen, onClose, children, className, position = \"right\" }: DrawerProps) {\r\n useEffect(() => {\r\n const handleEscape = (e: KeyboardEvent) => {\r\n if (e.key === \"Escape\") onClose();\r\n };\r\n if (isOpen) {\r\n document.addEventListener(\"keydown\", handleEscape);\r\n document.body.style.overflow = \"hidden\";\r\n }\r\n return () => {\r\n document.removeEventListener(\"keydown\", handleEscape);\r\n document.body.style.overflow = \"unset\";\r\n };\r\n }, [isOpen, onClose]);\r\n\r\n const variants = {\r\n left: { initial: { x: \"-100%\" }, animate: { x: 0 }, exit: { x: \"-100%\" } },\r\n right: { initial: { x: \"100%\" }, animate: { x: 0 }, exit: { x: \"100%\" } },\r\n bottom: { initial: { y: \"100%\" }, animate: { y: 0 }, exit: { y: \"100%\" } },\r\n };\r\n\r\n const positionClasses = {\r\n left: \"left-0 top-0 h-full w-80\",\r\n right: \"right-0 top-0 h-full w-80\",\r\n bottom: \"bottom-0 left-0 right-0 h-auto max-h-[80vh]\",\r\n };\r\n\r\n return (\r\n <AnimatePresence>\r\n {isOpen && (\r\n <>\r\n <motion.div\r\n initial={{ opacity: 0 }}\r\n animate={{ opacity: 1 }}\r\n exit={{ opacity: 0 }}\r\n onClick={onClose}\r\n className=\"fixed inset-0 bg-black/50 z-50\"\r\n />\r\n <motion.div\r\n initial={variants[position].initial}\r\n animate={variants[position].animate}\r\n exit={variants[position].exit}\r\n transition={{ type: \"spring\", damping: 25, stiffness: 300 }}\r\n className={cn(\r\n \"fixed z-50 p-6\",\r\n \"bg-white dark:bg-zinc-900\",\r\n \"shadow-xl\",\r\n positionClasses[position],\r\n className\r\n )}\r\n >\r\n <button\r\n onClick={onClose}\r\n className=\"absolute top-4 right-4 p-1 rounded-lg hover:bg-zinc-100 dark:hover:bg-zinc-800 transition-colors\"\r\n >\r\n <svg className=\"w-5 h-5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n {children}\r\n </motion.div>\r\n </>\r\n )}\r\n </AnimatePresence>\r\n );\r\n}\r\n\r\nexport default Drawer;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface AlertProps {\r\n className?: string;\r\n close?: boolean;\r\n children?: React.ReactNode;\r\n onClose?: () => void;\r\n}\r\n\r\ninterface AlertIconProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\ninterface AlertTitleProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\ninterface AlertToolbarProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\nexport function Alert({ className = \"\", close = false, children, onClose }: AlertProps) {\r\n const [isVisible, setIsVisible] = React.useState(true);\r\n\r\n if (!isVisible) return null;\r\n\r\n const handleClose = () => {\r\n setIsVisible(false);\r\n onClose?.();\r\n };\r\n\r\n return (\r\n <div className={cn(\"min-h-[400px] w-full flex items-center justify-center p-4\", className)}>\r\n <div className=\"flex flex-col items-center w-full lg:max-w-[75%] gap-6\">\r\n <div className=\"relative flex items-center gap-3 rounded-lg border border-zinc-300 dark:border-zinc-700 bg-transparent px-4 py-3 shadow-sm w-full max-w-md transition-all duration-200\">\r\n {children}\r\n {close && (\r\n <button\r\n onClick={handleClose}\r\n className=\"absolute top-2 right-2 text-gray-500 hover:text-gray-700 dark:text-white/60 dark:hover:text-white transition-colors\"\r\n >\r\n <svg className=\"h-4 w-4\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport function AlertIcon({ children, className }: AlertIconProps) {\r\n return <div className={cn(\"text-primary flex-shrink-0\", className)}>{children}</div>;\r\n}\r\n\r\nexport function AlertTitle({ children, className }: AlertTitleProps) {\r\n return <span className={cn(\"text-foreground font-medium text-sm flex-1\", className)}>{children}</span>;\r\n}\r\n\r\nexport function AlertToolbar({ children, className }: AlertToolbarProps) {\r\n return <div className={cn(\"flex items-center gap-2\", className)}>{children}</div>;\r\n}\r\n","\"use client\";\r\n\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface TerminalProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n title?: string;\r\n}\r\n\r\ninterface TypingAnimationProps {\r\n children: string;\r\n className?: string;\r\n delay?: number;\r\n speed?: number;\r\n}\r\n\r\ninterface AnimatedSpanProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n delay?: number;\r\n}\r\n\r\nexport function Terminal({ children, className, title = \"Terminal\" }: TerminalProps) {\r\n return (\r\n <div\r\n className={cn(\r\n \"relative w-full max-w-2xl mx-auto bg-zinc-100 dark:bg-black rounded-lg overflow-hidden shadow-2xl\",\r\n \"border border-zinc-300 dark:border-gray-800\",\r\n className\r\n )}\r\n >\r\n <div className=\"flex items-center justify-between px-4 py-3 bg-zinc-200 dark:bg-gray-800 border-b border-zinc-300 dark:border-gray-700\">\r\n <div className=\"flex items-center space-x-2\">\r\n <div className=\"w-3 h-3 bg-red-500 rounded-full\"></div>\r\n <div className=\"w-3 h-3 bg-yellow-500 rounded-full\"></div>\r\n <div className=\"w-3 h-3 bg-green-500 rounded-full\"></div>\r\n </div>\r\n <div className=\"text-zinc-600 dark:text-gray-400 text-sm font-mono\">{title}</div>\r\n <div className=\"w-16\"></div>\r\n </div>\r\n\r\n <div className=\"p-4 font-mono text-sm leading-relaxed space-y-2 min-h-[300px] bg-zinc-100 dark:bg-black text-zinc-900 dark:text-white\">\r\n {children}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport function TypingAnimation({ children, className, delay = 0, speed = 50 }: TypingAnimationProps) {\r\n const [displayedText, setDisplayedText] = useState(\"\");\r\n const [isComplete, setIsComplete] = useState(false);\r\n\r\n useEffect(() => {\r\n const timer = setTimeout(() => {\r\n let currentIndex = 0;\r\n const interval = setInterval(() => {\r\n if (currentIndex <= children.length) {\r\n setDisplayedText(children.slice(0, currentIndex));\r\n currentIndex++;\r\n } else {\r\n setIsComplete(true);\r\n clearInterval(interval);\r\n }\r\n }, speed);\r\n\r\n return () => clearInterval(interval);\r\n }, delay);\r\n\r\n return () => clearTimeout(timer);\r\n }, [children, delay, speed]);\r\n\r\n return (\r\n <div className={cn(\"flex items-center\", className)}>\r\n <span>{displayedText}</span>\r\n {!isComplete && <span className=\"ml-1 animate-pulse bg-white w-2 h-4 inline-block\"></span>}\r\n </div>\r\n );\r\n}\r\n\r\nexport function AnimatedSpan({ children, className, delay = 0 }: AnimatedSpanProps) {\r\n const [isVisible, setIsVisible] = useState(false);\r\n\r\n useEffect(() => {\r\n const timer = setTimeout(() => {\r\n setIsVisible(true);\r\n }, delay);\r\n\r\n return () => clearTimeout(timer);\r\n }, [delay]);\r\n\r\n return (\r\n <div\r\n className={cn(\r\n \"transition-all duration-500 transform\",\r\n isVisible ? \"opacity-100 translate-y-0\" : \"opacity-0 translate-y-2\",\r\n className\r\n )}\r\n >\r\n {children}\r\n </div>\r\n );\r\n}\r\n","\"use client\";\r\n\r\nimport React, { useState, Children, useRef, useLayoutEffect, HTMLAttributes, ReactNode } from \"react\";\r\nimport { motion, AnimatePresence, Variants } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\nexport interface StepperProps extends HTMLAttributes<HTMLDivElement> {\r\n children: ReactNode;\r\n initialStep?: number;\r\n onStepChange?: (step: number) => void;\r\n onFinalStepCompleted?: () => void;\r\n backButtonText?: string;\r\n nextButtonText?: string;\r\n disableStepIndicators?: boolean;\r\n}\r\n\r\nexport function Stepper({\r\n children,\r\n initialStep = 1,\r\n onStepChange = () => {},\r\n onFinalStepCompleted = () => {},\r\n backButtonText = \"Back\",\r\n nextButtonText = \"Continue\",\r\n disableStepIndicators = false,\r\n className,\r\n ...rest\r\n}: StepperProps) {\r\n const [currentStep, setCurrentStep] = useState<number>(initialStep);\r\n const [direction, setDirection] = useState<number>(0);\r\n const stepsArray = Children.toArray(children);\r\n const totalSteps = stepsArray.length;\r\n const isCompleted = currentStep > totalSteps;\r\n const isLastStep = currentStep === totalSteps;\r\n\r\n const updateStep = (newStep: number) => {\r\n setCurrentStep(newStep);\r\n if (newStep > totalSteps) {\r\n onFinalStepCompleted();\r\n } else {\r\n onStepChange(newStep);\r\n }\r\n };\r\n\r\n const handleBack = () => {\r\n if (currentStep > 1) {\r\n setDirection(-1);\r\n updateStep(currentStep - 1);\r\n }\r\n };\r\n\r\n const handleNext = () => {\r\n if (!isLastStep) {\r\n setDirection(1);\r\n updateStep(currentStep + 1);\r\n }\r\n };\r\n\r\n const handleComplete = () => {\r\n setDirection(1);\r\n updateStep(totalSteps + 1);\r\n };\r\n\r\n return (\r\n <div className={cn(\"w-full max-w-md mx-auto\", className)} {...rest}>\r\n <div className=\"flex items-center justify-between mb-8\">\r\n {stepsArray.map((_, index) => {\r\n const stepNumber = index + 1;\r\n const isNotLastStep = index < totalSteps - 1;\r\n return (\r\n <React.Fragment key={stepNumber}>\r\n <StepIndicator\r\n step={stepNumber}\r\n disableStepIndicators={disableStepIndicators}\r\n currentStep={currentStep}\r\n onClickStep={(clicked) => {\r\n setDirection(clicked > currentStep ? 1 : -1);\r\n updateStep(clicked);\r\n }}\r\n />\r\n {isNotLastStep && <StepConnector isComplete={currentStep > stepNumber} />}\r\n </React.Fragment>\r\n );\r\n })}\r\n </div>\r\n\r\n <StepContentWrapper isCompleted={isCompleted} currentStep={currentStep} direction={direction}>\r\n {stepsArray[currentStep - 1]}\r\n </StepContentWrapper>\r\n\r\n {!isCompleted && (\r\n <div className={cn(\"flex mt-8\", currentStep !== 1 ? \"justify-between\" : \"justify-end\")}>\r\n {currentStep !== 1 && (\r\n <button\r\n onClick={handleBack}\r\n className=\"px-4 py-2 text-sm font-medium text-zinc-400 hover:text-white transition-colors rounded-lg hover:bg-zinc-800\"\r\n >\r\n {backButtonText}\r\n </button>\r\n )}\r\n <button\r\n onClick={isLastStep ? handleComplete : handleNext}\r\n className=\"px-4 py-2 text-sm font-medium bg-white text-black rounded-lg hover:bg-zinc-200 transition-colors\"\r\n >\r\n {isLastStep ? \"Complete\" : nextButtonText}\r\n </button>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\ninterface StepContentWrapperProps {\r\n isCompleted: boolean;\r\n currentStep: number;\r\n direction: number;\r\n children: ReactNode;\r\n}\r\n\r\nfunction StepContentWrapper({ isCompleted, currentStep, direction, children }: StepContentWrapperProps) {\r\n const [parentHeight, setParentHeight] = useState<number>(0);\r\n\r\n return (\r\n <motion.div\r\n className=\"relative overflow-hidden\"\r\n animate={{ height: isCompleted ? 0 : parentHeight }}\r\n transition={{ type: \"spring\", duration: 0.4 }}\r\n >\r\n <AnimatePresence initial={false} mode=\"sync\" custom={direction}>\r\n {!isCompleted && (\r\n <SlideTransition key={currentStep} direction={direction} onHeightReady={(h) => setParentHeight(h)}>\r\n {children}\r\n </SlideTransition>\r\n )}\r\n </AnimatePresence>\r\n </motion.div>\r\n );\r\n}\r\n\r\ninterface SlideTransitionProps {\r\n children: ReactNode;\r\n direction: number;\r\n onHeightReady: (h: number) => void;\r\n}\r\n\r\nfunction SlideTransition({ children, direction, onHeightReady }: SlideTransitionProps) {\r\n const containerRef = useRef<HTMLDivElement | null>(null);\r\n\r\n useLayoutEffect(() => {\r\n if (containerRef.current) {\r\n onHeightReady(containerRef.current.offsetHeight);\r\n }\r\n }, [children, onHeightReady]);\r\n\r\n const stepVariants: Variants = {\r\n enter: (dir: number) => ({ x: dir >= 0 ? \"-100%\" : \"100%\", opacity: 0 }),\r\n center: { x: \"0%\", opacity: 1 },\r\n exit: (dir: number) => ({ x: dir >= 0 ? \"50%\" : \"-50%\", opacity: 0 }),\r\n };\r\n\r\n return (\r\n <motion.div\r\n ref={containerRef}\r\n custom={direction}\r\n variants={stepVariants}\r\n initial=\"enter\"\r\n animate=\"center\"\r\n exit=\"exit\"\r\n transition={{ duration: 0.4 }}\r\n className=\"absolute left-0 right-0 top-0\"\r\n >\r\n {children}\r\n </motion.div>\r\n );\r\n}\r\n\r\ninterface StepProps {\r\n children: ReactNode;\r\n}\r\n\r\nexport function Step({ children }: StepProps): React.JSX.Element {\r\n return <div className=\"p-4 rounded-lg bg-zinc-900 border border-zinc-800\">{children}</div>;\r\n}\r\n\r\ninterface StepIndicatorProps {\r\n step: number;\r\n currentStep: number;\r\n onClickStep: (step: number) => void;\r\n disableStepIndicators?: boolean;\r\n}\r\n\r\nfunction StepIndicator({ step, currentStep, onClickStep, disableStepIndicators }: StepIndicatorProps) {\r\n const status = currentStep === step ? \"active\" : currentStep < step ? \"inactive\" : \"complete\";\r\n\r\n const handleClick = () => {\r\n if (step !== currentStep && !disableStepIndicators) {\r\n onClickStep(step);\r\n }\r\n };\r\n\r\n return (\r\n <motion.button\r\n onClick={handleClick}\r\n disabled={disableStepIndicators}\r\n className={cn(\r\n \"relative flex items-center justify-center w-10 h-10 rounded-full text-sm font-medium transition-all\",\r\n status === \"inactive\" && \"bg-zinc-800 text-zinc-500 border border-zinc-700\",\r\n status === \"active\" && \"bg-white text-black border-2 border-white\",\r\n status === \"complete\" && \"bg-white text-black border-2 border-white\",\r\n !disableStepIndicators && \"cursor-pointer hover:opacity-80\"\r\n )}\r\n animate={status}\r\n initial={false}\r\n >\r\n {status === \"complete\" ? (\r\n <svg className=\"w-5 h-5\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={2.5}>\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M5 13l4 4L19 7\" />\r\n </svg>\r\n ) : (\r\n <span>{step}</span>\r\n )}\r\n </motion.button>\r\n );\r\n}\r\n\r\ninterface StepConnectorProps {\r\n isComplete: boolean;\r\n}\r\n\r\nfunction StepConnector({ isComplete }: StepConnectorProps) {\r\n return (\r\n <div className=\"flex-1 h-[2px] mx-2 bg-zinc-800 rounded-full overflow-hidden\">\r\n <motion.div\r\n className=\"h-full bg-white rounded-full\"\r\n initial={{ width: 0 }}\r\n animate={{ width: isComplete ? \"100%\" : \"0%\" }}\r\n transition={{ duration: 0.4 }}\r\n />\r\n </div>\r\n );\r\n}\r\n","\"use client\";\r\n\r\nimport React, { createContext, forwardRef, useCallback, useContext, useState } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface TreeDataItem {\r\n id: string;\r\n name: string;\r\n icon?: React.ReactNode;\r\n children?: TreeDataItem[];\r\n isSelectable?: boolean;\r\n}\r\n\r\ntype TreeProps = React.HTMLAttributes<HTMLDivElement> & {\r\n data?: TreeDataItem[] | TreeDataItem;\r\n initialSelectedId?: string;\r\n onSelectChange?: (item: TreeDataItem | undefined) => void;\r\n initialExpandedItems?: string[];\r\n elements?: TreeDataItem[];\r\n};\r\n\r\nconst TreeContext = createContext<{\r\n selectedId: string | undefined;\r\n expandedItems: string[];\r\n handleExpand: (id: string) => void;\r\n handleSelect: (id: string) => void;\r\n data: TreeDataItem[] | TreeDataItem;\r\n} | null>(null);\r\n\r\nconst useTree = () => {\r\n const context = useContext(TreeContext);\r\n if (!context) {\r\n throw new Error(\"useTree must be used within a TreeProvider\");\r\n }\r\n return context;\r\n};\r\n\r\nconst Tree = forwardRef<HTMLDivElement, TreeProps>(\r\n ({ data, initialSelectedId, onSelectChange, initialExpandedItems = [], elements, className, ...props }, ref) => {\r\n const [selectedId, setSelectedId] = useState<string | undefined>(initialSelectedId);\r\n const [expandedItems, setExpandedItems] = useState<string[]>(initialExpandedItems);\r\n\r\n const handleExpand = useCallback((id: string) => {\r\n setExpandedItems((prev) => {\r\n if (prev.includes(id)) {\r\n return prev.filter((item) => item !== id);\r\n }\r\n return [...prev, id];\r\n });\r\n }, []);\r\n\r\n const handleSelect = useCallback(\r\n (id: string) => {\r\n const treeData = data || elements || [];\r\n const dataArray = Array.isArray(treeData) ? treeData : [treeData];\r\n\r\n const findItem = (items: TreeDataItem[]): TreeDataItem | undefined => {\r\n for (const item of items) {\r\n if (item.id === id) return item;\r\n if (item.children) {\r\n const found = findItem(item.children);\r\n if (found) return found;\r\n }\r\n }\r\n };\r\n\r\n const selectedItem = findItem(dataArray);\r\n if (selectedItem?.isSelectable) {\r\n setSelectedId(id);\r\n onSelectChange?.(selectedItem);\r\n }\r\n },\r\n [data, elements, onSelectChange]\r\n );\r\n\r\n const value = {\r\n selectedId,\r\n expandedItems,\r\n handleExpand,\r\n handleSelect,\r\n data: data || elements || [],\r\n };\r\n\r\n return (\r\n <TreeContext.Provider value={value}>\r\n <div className={cn(\"relative overflow-hidden\", className)} ref={ref} {...props}>\r\n {React.Children.map(props.children, (child) => child)}\r\n </div>\r\n </TreeContext.Provider>\r\n );\r\n }\r\n);\r\n\r\nTree.displayName = \"Tree\";\r\n\r\nconst Folder = forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement> & {\r\n element: string;\r\n value: string;\r\n isSelectable?: boolean;\r\n }\r\n>(({ className, element, value, isSelectable = true, children, ...props }, ref) => {\r\n const { selectedId, expandedItems, handleExpand, handleSelect } = useTree();\r\n\r\n return (\r\n <div ref={ref} className=\"relative\" {...props}>\r\n <div\r\n className={cn(\r\n \"flex cursor-pointer items-center gap-1 rounded-md px-2 py-1 text-sm hover:bg-muted\",\r\n selectedId === value && \"bg-muted\",\r\n className\r\n )}\r\n onClick={() => {\r\n handleExpand(value);\r\n if (isSelectable) {\r\n handleSelect(value);\r\n }\r\n }}\r\n >\r\n <svg\r\n className={cn(\"h-4 w-4 shrink-0 transition-transform duration-200\", expandedItems.includes(value) && \"rotate-90\")}\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n >\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M9 5l7 7-7 7\" />\r\n </svg>\r\n <svg className=\"h-4 w-4 shrink-0\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\r\n <path\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n strokeWidth={2}\r\n d=\"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z\"\r\n />\r\n </svg>\r\n <span className=\"truncate\">{element}</span>\r\n </div>\r\n {expandedItems.includes(value) && <div className=\"ml-4 border-l border-muted pl-2\">{children}</div>}\r\n </div>\r\n );\r\n});\r\n\r\nFolder.displayName = \"Folder\";\r\n\r\nconst File = forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement> & {\r\n value: string;\r\n isSelectable?: boolean;\r\n }\r\n>(({ className, value, isSelectable = true, children, ...props }, ref) => {\r\n const { selectedId, handleSelect } = useTree();\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className={cn(\r\n \"flex cursor-pointer items-center gap-1 rounded-md px-2 py-1 text-sm hover:bg-muted\",\r\n selectedId === value && \"bg-muted\",\r\n className\r\n )}\r\n onClick={() => isSelectable && handleSelect(value)}\r\n {...props}\r\n >\r\n <svg className=\"h-4 w-4 shrink-0\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\r\n <path\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n strokeWidth={2}\r\n d=\"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z\"\r\n />\r\n </svg>\r\n <div className=\"truncate\">{children}</div>\r\n </div>\r\n );\r\n});\r\n\r\nFile.displayName = \"File\";\r\n\r\nexport { Tree, Folder, File, type TreeDataItem };\r\n","\"use client\";\r\n\r\nimport { MotionValue, motion, useSpring, useTransform } from \"framer-motion\";\r\nimport { useEffect } from \"react\";\r\n\r\ninterface NumberProps {\r\n mv: MotionValue<number>;\r\n number: number;\r\n height: number;\r\n}\r\n\r\nfunction Number({ mv, number, height }: NumberProps) {\r\n const y = useTransform(mv, (latest) => {\r\n const placeValue = latest % 10;\r\n let offset = (10 + number - placeValue) % 10;\r\n let memo = offset * height;\r\n if (offset > 5) {\r\n memo -= 10 * height;\r\n }\r\n return memo;\r\n });\r\n\r\n return (\r\n <motion.span style={{ y, position: \"absolute\", inset: 0, display: \"flex\", justifyContent: \"center\" }}>\r\n {number}\r\n </motion.span>\r\n );\r\n}\r\n\r\ninterface DigitProps {\r\n place: number;\r\n value: number;\r\n height: number;\r\n digitStyle?: React.CSSProperties;\r\n}\r\n\r\nfunction Digit({ place, value, height, digitStyle }: DigitProps) {\r\n const valueRoundedToPlace = Math.floor(value / place);\r\n const animatedValue = useSpring(valueRoundedToPlace, { stiffness: 200, damping: 25 });\r\n\r\n useEffect(() => {\r\n animatedValue.set(valueRoundedToPlace);\r\n }, [animatedValue, valueRoundedToPlace]);\r\n\r\n return (\r\n <div style={{ height, position: \"relative\", overflow: \"hidden\", ...digitStyle }}>\r\n {Array.from({ length: 10 }, (_, i) => (\r\n <Number key={i} mv={animatedValue} number={i} height={height} />\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport interface CounterProps {\r\n value: number;\r\n fontSize?: number;\r\n padding?: number;\r\n places?: number[];\r\n gap?: number;\r\n textColor?: string;\r\n fontWeight?: React.CSSProperties[\"fontWeight\"];\r\n containerStyle?: React.CSSProperties;\r\n digitStyle?: React.CSSProperties;\r\n}\r\n\r\nexport function Counter({\r\n value,\r\n fontSize = 100,\r\n padding = 0,\r\n places = [100, 10, 1],\r\n gap = 8,\r\n textColor = \"#000000\",\r\n fontWeight = 900,\r\n containerStyle,\r\n digitStyle,\r\n}: CounterProps) {\r\n const height = fontSize + padding;\r\n\r\n return (\r\n <div style={{ display: \"flex\", gap, fontSize, color: textColor, fontWeight, ...containerStyle }}>\r\n {places.map((place) => (\r\n <Digit key={place} place={place} value={value} height={height} digitStyle={digitStyle} />\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport default Counter;\r\n","\"use client\";\r\n\r\nimport React, { useState, useRef } from \"react\";\r\nimport { AnimatePresence, motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface ToolbarItem {\r\n id: string;\r\n title: string;\r\n icon: React.ReactNode;\r\n}\r\n\r\ninterface ToolbarProps {\r\n className?: string;\r\n items: ToolbarItem[];\r\n defaultSelected?: string;\r\n onItemClick?: (itemId: string) => void;\r\n}\r\n\r\nconst buttonVariants = {\r\n initial: { gap: 0, paddingLeft: \".5rem\", paddingRight: \".5rem\" },\r\n animate: (isSelected: boolean) => ({\r\n gap: isSelected ? \".5rem\" : 0,\r\n paddingLeft: isSelected ? \"1rem\" : \".5rem\",\r\n paddingRight: isSelected ? \"1rem\" : \".5rem\",\r\n }),\r\n};\r\n\r\nconst spanVariants = {\r\n initial: { width: 0, opacity: 0 },\r\n animate: { width: \"auto\", opacity: 1 },\r\n exit: { width: 0, opacity: 0 },\r\n};\r\n\r\nconst transition = { type: \"spring\", bounce: 0, duration: 0.4 };\r\n\r\nexport function Toolbar({ className, items, defaultSelected, onItemClick }: ToolbarProps) {\r\n const [selected, setSelected] = useState<string | null>(defaultSelected || null);\r\n\r\n const handleItemClick = (itemId: string) => {\r\n setSelected(selected === itemId ? null : itemId);\r\n onItemClick?.(itemId);\r\n };\r\n\r\n return (\r\n <div\r\n className={cn(\r\n \"flex items-center gap-3 p-2 relative\",\r\n \"bg-background border rounded-xl transition-all duration-200\",\r\n className\r\n )}\r\n >\r\n <div className=\"flex items-center gap-2\">\r\n {items.map((item) => (\r\n <motion.button\r\n key={item.id}\r\n variants={buttonVariants}\r\n initial={false}\r\n animate=\"animate\"\r\n custom={selected === item.id}\r\n onClick={() => handleItemClick(item.id)}\r\n transition={transition}\r\n className={cn(\r\n \"relative flex items-center rounded-none px-3 py-2\",\r\n \"text-sm font-medium transition-colors duration-300\",\r\n selected === item.id\r\n ? \"bg-[#1F9CFE] text-white rounded-lg\"\r\n : \"text-muted-foreground hover:bg-muted hover:text-foreground\"\r\n )}\r\n >\r\n {item.icon}\r\n <AnimatePresence initial={false}>\r\n {selected === item.id && (\r\n <motion.span\r\n variants={spanVariants}\r\n initial=\"initial\"\r\n animate=\"animate\"\r\n exit=\"exit\"\r\n transition={transition}\r\n className=\"overflow-hidden\"\r\n >\r\n {item.title}\r\n </motion.span>\r\n )}\r\n </AnimatePresence>\r\n </motion.button>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default Toolbar;\r\n","\"use client\";\r\n\r\nimport React, { useRef } from \"react\";\r\nimport { motion, useMotionValue, useSpring, useTransform } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\nexport interface DockProps {\r\n className?: string;\r\n children: React.ReactNode;\r\n direction?: \"top\" | \"middle\" | \"bottom\";\r\n}\r\n\r\nexport function Dock({ className, children, direction = \"middle\" }: DockProps) {\r\n const directionClasses = {\r\n top: \"items-start\",\r\n middle: \"items-center\",\r\n bottom: \"items-end\",\r\n };\r\n\r\n return (\r\n <motion.div\r\n className={cn(\r\n \"mx-auto w-max mt-8 h-[58px] p-2 flex gap-2 rounded-2xl border\",\r\n \"supports-backdrop-blur:bg-white/10 supports-backdrop-blur:dark:bg-black/10 backdrop-blur-md\",\r\n \"border-gray-200 bg-gray-50/80 dark:border-gray-800 dark:bg-gray-900/80\",\r\n directionClasses[direction],\r\n className\r\n )}\r\n >\r\n {children}\r\n </motion.div>\r\n );\r\n}\r\n\r\nexport interface DockIconProps {\r\n size?: number;\r\n magnification?: number;\r\n distance?: number;\r\n children?: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\nexport function DockIcon({\r\n size = 40,\r\n magnification = 60,\r\n distance = 140,\r\n children,\r\n className,\r\n}: DockIconProps) {\r\n const ref = useRef<HTMLDivElement>(null);\r\n const mouseX = useMotionValue(Infinity);\r\n\r\n const width = useSpring(\r\n useTransform(mouseX, [-distance, 0, distance], [size, magnification, size]),\r\n { mass: 0.1, stiffness: 150, damping: 12 }\r\n );\r\n\r\n return (\r\n <motion.div\r\n ref={ref}\r\n style={{ width }}\r\n onMouseMove={(e) => mouseX.set(e.pageX - ref.current!.offsetLeft - width.get() / 2)}\r\n onMouseLeave={() => mouseX.set(Infinity)}\r\n className={cn(\"flex aspect-square cursor-pointer items-center justify-center rounded-full\", className)}\r\n >\r\n {children}\r\n </motion.div>\r\n );\r\n}\r\n","\"use client\";\r\n\r\nimport { forwardRef } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {\r\n label?: string;\r\n error?: string;\r\n icon?: React.ReactNode;\r\n}\r\n\r\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\r\n ({ className, label, error, icon, ...props }, ref) => {\r\n return (\r\n <div className=\"w-full\">\r\n {label && (\r\n <label className=\"block text-sm font-medium text-zinc-700 dark:text-zinc-300 mb-1\">\r\n {label}\r\n </label>\r\n )}\r\n <div className=\"relative\">\r\n {icon && (\r\n <div className=\"absolute left-3 top-1/2 -translate-y-1/2 text-zinc-400\">\r\n {icon}\r\n </div>\r\n )}\r\n <input\r\n ref={ref}\r\n className={cn(\r\n \"w-full px-4 py-2 rounded-lg\",\r\n \"bg-white dark:bg-zinc-900\",\r\n \"border border-zinc-300 dark:border-zinc-700\",\r\n \"text-zinc-900 dark:text-zinc-100\",\r\n \"placeholder:text-zinc-400 dark:placeholder:text-zinc-500\",\r\n \"focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent\",\r\n \"transition-all duration-200\",\r\n icon && \"pl-10\",\r\n error && \"border-red-500 focus:ring-red-500\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n </div>\r\n {error && <p className=\"mt-1 text-sm text-red-500\">{error}</p>}\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nInput.displayName = \"Input\";\r\n\r\nexport default Input;\r\n","\"use client\";\r\n\r\nimport { forwardRef } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\r\n label?: string;\r\n error?: string;\r\n}\r\n\r\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(\r\n ({ className, label, error, ...props }, ref) => {\r\n return (\r\n <div className=\"w-full\">\r\n {label && (\r\n <label className=\"block text-sm font-medium text-zinc-700 dark:text-zinc-300 mb-1\">\r\n {label}\r\n </label>\r\n )}\r\n <textarea\r\n ref={ref}\r\n className={cn(\r\n \"w-full px-4 py-2 rounded-lg min-h-[100px] resize-y\",\r\n \"bg-white dark:bg-zinc-900\",\r\n \"border border-zinc-300 dark:border-zinc-700\",\r\n \"text-zinc-900 dark:text-zinc-100\",\r\n \"placeholder:text-zinc-400 dark:placeholder:text-zinc-500\",\r\n \"focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent\",\r\n \"transition-all duration-200\",\r\n error && \"border-red-500 focus:ring-red-500\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n {error && <p className=\"mt-1 text-sm text-red-500\">{error}</p>}\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nTextarea.displayName = \"Textarea\";\r\n\r\nexport default Textarea;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface CheckboxProps {\r\n checked?: boolean;\r\n onChange?: (checked: boolean) => void;\r\n label?: string;\r\n disabled?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport function Checkbox({ checked = false, onChange, label, disabled = false, className }: CheckboxProps) {\r\n return (\r\n <label\r\n className={cn(\r\n \"inline-flex items-center gap-2 cursor-pointer\",\r\n disabled && \"opacity-50 cursor-not-allowed\",\r\n className\r\n )}\r\n >\r\n <button\r\n type=\"button\"\r\n role=\"checkbox\"\r\n aria-checked={checked}\r\n disabled={disabled}\r\n onClick={() => onChange?.(!checked)}\r\n className={cn(\r\n \"w-5 h-5 rounded border-2 flex items-center justify-center transition-colors\",\r\n checked\r\n ? \"bg-blue-500 border-blue-500\"\r\n : \"bg-transparent border-zinc-300 dark:border-zinc-600\"\r\n )}\r\n >\r\n <motion.svg\r\n initial={false}\r\n animate={{ scale: checked ? 1 : 0, opacity: checked ? 1 : 0 }}\r\n transition={{ duration: 0.15 }}\r\n className=\"w-3 h-3 text-white\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n viewBox=\"0 0 24 24\"\r\n >\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={3} d=\"M5 13l4 4L19 7\" />\r\n </motion.svg>\r\n </button>\r\n {label && <span className=\"text-sm\">{label}</span>}\r\n </label>\r\n );\r\n}\r\n\r\nexport default Checkbox;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface RadioOption {\r\n value: string;\r\n label: string;\r\n}\r\n\r\ninterface RadioGroupProps {\r\n options: RadioOption[];\r\n value?: string;\r\n onChange?: (value: string) => void;\r\n name: string;\r\n className?: string;\r\n direction?: \"horizontal\" | \"vertical\";\r\n}\r\n\r\nexport function RadioGroup({\r\n options,\r\n value,\r\n onChange,\r\n name,\r\n className,\r\n direction = \"vertical\",\r\n}: RadioGroupProps) {\r\n return (\r\n <div\r\n className={cn(\r\n \"flex gap-3\",\r\n direction === \"vertical\" ? \"flex-col\" : \"flex-row flex-wrap\",\r\n className\r\n )}\r\n >\r\n {options.map((option) => (\r\n <label\r\n key={option.value}\r\n className=\"inline-flex items-center gap-2 cursor-pointer\"\r\n >\r\n <button\r\n type=\"button\"\r\n role=\"radio\"\r\n aria-checked={value === option.value}\r\n onClick={() => onChange?.(option.value)}\r\n className={cn(\r\n \"w-5 h-5 rounded-full border-2 flex items-center justify-center transition-colors\",\r\n value === option.value\r\n ? \"border-blue-500\"\r\n : \"border-zinc-300 dark:border-zinc-600\"\r\n )}\r\n >\r\n <motion.div\r\n initial={false}\r\n animate={{\r\n scale: value === option.value ? 1 : 0,\r\n opacity: value === option.value ? 1 : 0,\r\n }}\r\n transition={{ duration: 0.15 }}\r\n className=\"w-2.5 h-2.5 rounded-full bg-blue-500\"\r\n />\r\n </button>\r\n <span className=\"text-sm\">{option.label}</span>\r\n </label>\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport default RadioGroup;\r\n","\"use client\";\r\n\r\nimport { useState, useRef, useEffect } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface SelectOption {\r\n value: string;\r\n label: string;\r\n}\r\n\r\ninterface SelectProps {\r\n options: SelectOption[];\r\n value?: string;\r\n onChange?: (value: string) => void;\r\n placeholder?: string;\r\n className?: string;\r\n label?: string;\r\n}\r\n\r\nexport function Select({ options, value, onChange, placeholder = \"Select...\", className, label }: SelectProps) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const ref = useRef<HTMLDivElement>(null);\r\n\r\n const selectedOption = options.find((opt) => opt.value === value);\r\n\r\n useEffect(() => {\r\n const handleClickOutside = (e: MouseEvent) => {\r\n if (ref.current && !ref.current.contains(e.target as Node)) {\r\n setIsOpen(false);\r\n }\r\n };\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => document.removeEventListener(\"mousedown\", handleClickOutside);\r\n }, []);\r\n\r\n return (\r\n <div className=\"w-full\">\r\n {label && (\r\n <label className=\"block text-sm font-medium text-zinc-700 dark:text-zinc-300 mb-1\">\r\n {label}\r\n </label>\r\n )}\r\n <div ref={ref} className={cn(\"relative\", className)}>\r\n <button\r\n type=\"button\"\r\n onClick={() => setIsOpen(!isOpen)}\r\n className={cn(\r\n \"w-full px-4 py-2 rounded-lg text-left\",\r\n \"bg-white dark:bg-zinc-900\",\r\n \"border border-zinc-300 dark:border-zinc-700\",\r\n \"flex items-center justify-between\",\r\n \"focus:outline-none focus:ring-2 focus:ring-blue-500\",\r\n \"transition-all duration-200\"\r\n )}\r\n >\r\n <span className={selectedOption ? \"\" : \"text-zinc-400\"}>\r\n {selectedOption?.label || placeholder}\r\n </span>\r\n <motion.svg\r\n animate={{ rotate: isOpen ? 180 : 0 }}\r\n transition={{ duration: 0.2 }}\r\n className=\"w-5 h-5\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n viewBox=\"0 0 24 24\"\r\n >\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M19 9l-7 7-7-7\" />\r\n </motion.svg>\r\n </button>\r\n <AnimatePresence>\r\n {isOpen && (\r\n <motion.div\r\n initial={{ opacity: 0, y: -10 }}\r\n animate={{ opacity: 1, y: 0 }}\r\n exit={{ opacity: 0, y: -10 }}\r\n transition={{ duration: 0.15 }}\r\n className={cn(\r\n \"absolute z-50 w-full mt-1 rounded-lg overflow-hidden\",\r\n \"bg-white dark:bg-zinc-900\",\r\n \"border border-zinc-300 dark:border-zinc-700\",\r\n \"shadow-lg\"\r\n )}\r\n >\r\n {options.map((option) => (\r\n <button\r\n key={option.value}\r\n type=\"button\"\r\n onClick={() => {\r\n onChange?.(option.value);\r\n setIsOpen(false);\r\n }}\r\n className={cn(\r\n \"w-full px-4 py-2 text-left\",\r\n \"hover:bg-zinc-100 dark:hover:bg-zinc-800\",\r\n \"transition-colors\",\r\n value === option.value && \"bg-blue-50 dark:bg-blue-900/20 text-blue-600\"\r\n )}\r\n >\r\n {option.label}\r\n </button>\r\n ))}\r\n </motion.div>\r\n )}\r\n </AnimatePresence>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default Select;\r\n","\"use client\";\r\n\r\nimport { useState, useRef, useEffect } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface InputOTPProps {\r\n maxLength?: number;\r\n onComplete?: (value: string) => void;\r\n onChange?: (value: string) => void;\r\n className?: string;\r\n}\r\n\r\nexport function InputOTP({\r\n maxLength = 6,\r\n onComplete,\r\n onChange,\r\n className = \"\",\r\n}: InputOTPProps) {\r\n const [values, setValues] = useState<string[]>(new Array(maxLength).fill(\"\"));\r\n const inputRefs = useRef<(HTMLInputElement | null)[]>([]);\r\n\r\n useEffect(() => {\r\n const currentValue = values.join(\"\");\r\n onChange?.(currentValue);\r\n\r\n if (currentValue.length === maxLength) {\r\n onComplete?.(currentValue);\r\n }\r\n }, [values, maxLength, onChange, onComplete]);\r\n\r\n const handleChange = (index: number, value: string) => {\r\n if (value.length > 1) {\r\n const pastedValues = value.slice(0, maxLength).split(\"\");\r\n const newValues = [...values];\r\n pastedValues.forEach((val, i) => {\r\n if (index + i < maxLength) {\r\n newValues[index + i] = val;\r\n }\r\n });\r\n setValues(newValues);\r\n\r\n const nextIndex = Math.min(index + pastedValues.length, maxLength - 1);\r\n inputRefs.current[nextIndex]?.focus();\r\n return;\r\n }\r\n\r\n if (/^\\d*$/.test(value)) {\r\n const newValues = [...values];\r\n newValues[index] = value;\r\n setValues(newValues);\r\n\r\n if (value && index < maxLength - 1) {\r\n inputRefs.current[index + 1]?.focus();\r\n }\r\n }\r\n };\r\n\r\n const handleKeyDown = (\r\n index: number,\r\n e: React.KeyboardEvent<HTMLInputElement>\r\n ) => {\r\n if (e.key === \"Backspace\") {\r\n if (!values[index] && index > 0) {\r\n inputRefs.current[index - 1]?.focus();\r\n } else {\r\n const newValues = [...values];\r\n newValues[index] = \"\";\r\n setValues(newValues);\r\n }\r\n } else if (e.key === \"ArrowLeft\" && index > 0) {\r\n inputRefs.current[index - 1]?.focus();\r\n } else if (e.key === \"ArrowRight\" && index < maxLength - 1) {\r\n inputRefs.current[index + 1]?.focus();\r\n }\r\n };\r\n\r\n const handleFocus = (index: number) => {\r\n inputRefs.current[index]?.select();\r\n };\r\n\r\n return (\r\n <div className={cn(\"flex items-center gap-2\", className)}>\r\n {values.map((value, index) => (\r\n <input\r\n key={index}\r\n ref={(el) => {\r\n inputRefs.current[index] = el;\r\n }}\r\n type=\"text\"\r\n inputMode=\"numeric\"\r\n maxLength={1}\r\n value={value}\r\n onChange={(e) => handleChange(index, e.target.value)}\r\n onKeyDown={(e) => handleKeyDown(index, e)}\r\n onFocus={() => handleFocus(index)}\r\n className={cn(\r\n \"w-12 h-12 text-center text-lg font-semibold\",\r\n \"border-2 border-zinc-300 dark:border-zinc-600 rounded-md\",\r\n \"focus:border-zinc-900 dark:focus:border-white focus:outline-none\",\r\n \"bg-white dark:bg-zinc-800 text-zinc-900 dark:text-white\",\r\n \"transition-colors\"\r\n )}\r\n />\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport default InputOTP;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface HamburgerBasicProps {\r\n className?: string;\r\n onChange?: (isOpen: boolean) => void;\r\n}\r\n\r\nexport function HamburgerBasic({ className, onChange }: HamburgerBasicProps) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const handleToggle = () => {\r\n const newState = !isOpen;\r\n setIsOpen(newState);\r\n onChange?.(newState);\r\n };\r\n\r\n return (\r\n <label\r\n className={cn(\r\n \"relative w-10 h-8 bg-transparent cursor-pointer block\",\r\n className\r\n )}\r\n htmlFor=\"burger-basic\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n id=\"burger-basic\"\r\n className=\"hidden\"\r\n checked={isOpen}\r\n onChange={handleToggle}\r\n />\r\n <span\r\n className={cn(\r\n \"block absolute h-1 w-full bg-black dark:bg-white rounded-lg opacity-100 left-0 transition-all duration-250 ease-in-out\",\r\n \"top-0 origin-left\",\r\n isOpen && \"rotate-45 top-0 left-1.5\"\r\n )}\r\n />\r\n <span\r\n className={cn(\r\n \"block absolute h-1 w-full bg-black dark:bg-white rounded-lg opacity-100 left-0 transition-all duration-250 ease-in-out\",\r\n \"top-1/2 -translate-y-1/2 origin-left\",\r\n isOpen && \"w-0 opacity-0\"\r\n )}\r\n />\r\n <span\r\n className={cn(\r\n \"block absolute h-1 w-full bg-black dark:bg-white rounded-lg opacity-100 left-0 transition-all duration-250 ease-in-out\",\r\n \"top-full -translate-y-full origin-left\",\r\n isOpen && \"-rotate-45 top-7 left-1.5\"\r\n )}\r\n />\r\n </label>\r\n );\r\n}\r\n\r\nexport default HamburgerBasic;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface HamburgerSpinProps {\r\n className?: string;\r\n onChange?: (isOpen: boolean) => void;\r\n}\r\n\r\nexport function HamburgerSpin({ className, onChange }: HamburgerSpinProps) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const handleToggle = () => {\r\n const newState = !isOpen;\r\n setIsOpen(newState);\r\n onChange?.(newState);\r\n };\r\n\r\n return (\r\n <div className={cn(\"inline-block\", className)}>\r\n <input\r\n type=\"checkbox\"\r\n id=\"checkbox-spin\"\r\n className=\"hidden\"\r\n checked={isOpen}\r\n onChange={handleToggle}\r\n />\r\n <label\r\n htmlFor=\"checkbox-spin\"\r\n className={cn(\r\n \"relative w-10 h-10 cursor-pointer flex flex-col items-center justify-center gap-2.5 transition-all duration-500\",\r\n isOpen && \"rotate-180\"\r\n )}\r\n >\r\n <div\r\n className={cn(\r\n \"w-full h-1 bg-black dark:bg-white rounded-md transition-all duration-500 origin-center\",\r\n isOpen && \"scale-x-[0.6] translate-y-[1px]\"\r\n )}\r\n />\r\n <div\r\n className={cn(\r\n \"w-full h-1 bg-black dark:bg-white rounded-md transition-all duration-500 origin-center\",\r\n isOpen && \"rotate-90 scale-x-[1.2]\"\r\n )}\r\n />\r\n <div\r\n className={cn(\r\n \"w-full h-1 bg-black dark:bg-white rounded-md transition-all duration-500 origin-center\",\r\n isOpen && \"scale-x-[0.6] -translate-y-[1px]\"\r\n )}\r\n />\r\n </label>\r\n </div>\r\n );\r\n}\r\n\r\nexport default HamburgerSpin;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\n\r\nfunction cn(...classes: (string | undefined | false)[]) {\r\n return classes.filter(Boolean).join(\" \");\r\n}\r\n\r\ninterface HamburgerMorphProps {\r\n className?: string;\r\n onChange?: (isOpen: boolean) => void;\r\n}\r\n\r\nexport function HamburgerMorph({ className, onChange }: HamburgerMorphProps) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const handleToggle = () => {\r\n const newState = !isOpen;\r\n setIsOpen(newState);\r\n onChange?.(newState);\r\n };\r\n\r\n return (\r\n <button\r\n onClick={handleToggle}\r\n className={cn(\r\n \"relative w-12 h-12 bg-transparent cursor-pointer flex flex-col items-center justify-center gap-2\",\r\n className\r\n )}\r\n aria-label=\"Toggle menu\"\r\n >\r\n <motion.div\r\n className=\"w-full h-1 bg-black dark:bg-white rounded-full origin-center\"\r\n animate={isOpen ? { scaleX: 0 } : { scaleX: 1 }}\r\n transition={{ duration: 0.3, type: \"spring\", stiffness: 400, damping: 30 }}\r\n />\r\n <motion.div\r\n className=\"w-full h-1 bg-black dark:bg-white rounded-full origin-center\"\r\n animate={isOpen ? { scaleX: 1.2 } : { scaleX: 1 }}\r\n transition={{ duration: 0.4, type: \"spring\", stiffness: 200, damping: 20 }}\r\n />\r\n <motion.div\r\n className=\"w-full h-1 bg-black dark:bg-white rounded-full origin-center\"\r\n animate={isOpen ? { scaleX: 0 } : { scaleX: 1 }}\r\n transition={{ duration: 0.3, delay: 0.05, type: \"spring\", stiffness: 400, damping: 30 }}\r\n />\r\n </button>\r\n );\r\n}\r\n\r\nexport default HamburgerMorph;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\n\r\nfunction cn(...classes: (string | undefined | false)[]) {\r\n return classes.filter(Boolean).join(\" \");\r\n}\r\n\r\ninterface HamburgerSpringProps {\r\n className?: string;\r\n onChange?: (isOpen: boolean) => void;\r\n}\r\n\r\nexport function HamburgerSpring({ className, onChange }: HamburgerSpringProps) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const handleToggle = () => {\r\n const newState = !isOpen;\r\n setIsOpen(newState);\r\n onChange?.(newState);\r\n };\r\n\r\n return (\r\n <button\r\n onClick={handleToggle}\r\n className={cn(\r\n \"relative w-12 h-12 bg-transparent cursor-pointer flex flex-col items-center justify-center gap-2 p-2\",\r\n className\r\n )}\r\n aria-label=\"Toggle menu\"\r\n >\r\n <motion.div\r\n className=\"w-full h-1 bg-black dark:bg-white rounded-full origin-center\"\r\n animate={isOpen ? { y: -12, rotation: 90, scaleX: 0.8 } : { y: 0, rotation: 0, scaleX: 1 }}\r\n transition={{ duration: 0.5, type: \"spring\", stiffness: 200, damping: 15 }}\r\n />\r\n <motion.div\r\n className=\"w-full h-1 bg-black dark:bg-white rounded-full origin-center\"\r\n animate={isOpen ? { rotation: 90, scaleX: 0.8 } : { rotation: 0, scaleX: 1 }}\r\n transition={{ duration: 0.5, type: \"spring\", stiffness: 200, damping: 15 }}\r\n />\r\n <motion.div\r\n className=\"w-full h-1 bg-black dark:bg-white rounded-full origin-center\"\r\n animate={isOpen ? { y: 12, rotation: 90, scaleX: 0.8 } : { y: 0, rotation: 0, scaleX: 1 }}\r\n transition={{ duration: 0.5, type: \"spring\", stiffness: 200, damping: 15 }}\r\n />\r\n </button>\r\n );\r\n}\r\n\r\nexport default HamburgerSpring;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\n\r\nfunction cn(...classes: (string | undefined | false)[]) {\r\n return classes.filter(Boolean).join(\" \");\r\n}\r\n\r\ninterface HamburgerWaveProps {\r\n className?: string;\r\n onChange?: (isOpen: boolean) => void;\r\n}\r\n\r\nexport function HamburgerWave({ className, onChange }: HamburgerWaveProps) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const handleToggle = () => {\r\n const newState = !isOpen;\r\n setIsOpen(newState);\r\n onChange?.(newState);\r\n };\r\n\r\n return (\r\n <button\r\n onClick={handleToggle}\r\n className={cn(\r\n \"relative w-12 h-12 bg-transparent cursor-pointer flex items-center justify-center\",\r\n className\r\n )}\r\n aria-label=\"Toggle menu\"\r\n >\r\n <div className=\"relative w-8 h-8\">\r\n <span\r\n className={cn(\r\n \"absolute w-2 h-2 bg-black dark:bg-white rounded-sm transition-all duration-300 ease-out\",\r\n isOpen \r\n ? \"top-0 left-0\" \r\n : \"top-0 left-1/2 -translate-x-1/2 w-8 h-0.5 rounded-full\"\r\n )}\r\n />\r\n <span\r\n className={cn(\r\n \"absolute w-2 h-2 bg-black dark:bg-white rounded-sm transition-all duration-300 ease-out delay-75\",\r\n isOpen \r\n ? \"top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2\" \r\n : \"top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-8 h-0.5 rounded-full\"\r\n )}\r\n />\r\n <span\r\n className={cn(\r\n \"absolute w-2 h-2 bg-black dark:bg-white rounded-sm transition-all duration-300 ease-out delay-150\",\r\n isOpen \r\n ? \"bottom-0 right-0\" \r\n : \"bottom-0 left-1/2 -translate-x-1/2 w-8 h-0.5 rounded-full\"\r\n )}\r\n />\r\n </div>\r\n </button>\r\n );\r\n}\r\n\r\nexport default HamburgerWave;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\n\r\nfunction cn(...classes: (string | undefined | false)[]) {\r\n return classes.filter(Boolean).join(\" \");\r\n}\r\n\r\ninterface HamburgerStaggerProps {\r\n className?: string;\r\n onChange?: (isOpen: boolean) => void;\r\n}\r\n\r\nexport function HamburgerStagger({ className, onChange }: HamburgerStaggerProps) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const handleToggle = () => {\r\n const newState = !isOpen;\r\n setIsOpen(newState);\r\n onChange?.(newState);\r\n };\r\n\r\n return (\r\n <label\r\n className={cn(\r\n \"w-12 h-8 cursor-pointer relative block\",\r\n className\r\n )}\r\n htmlFor=\"burger-stagger\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n id=\"burger-stagger\"\r\n className=\"hidden w-full h-full\"\r\n checked={isOpen}\r\n onChange={handleToggle}\r\n />\r\n <span\r\n className={cn(\r\n \"block absolute w-full rounded-lg border-[3px] border-black dark:border-white bg-black dark:bg-white transition-all duration-150 ease-in-out\",\r\n \"top-0 right-0 origin-right\",\r\n isOpen && \"w-1/2 top-1/2 -translate-y-[30%] rotate-[40deg]\"\r\n )}\r\n />\r\n <span\r\n className={cn(\r\n \"block absolute w-full rounded-lg border-[3px] border-black dark:border-white bg-black dark:bg-white transition-all duration-150 ease-in-out\",\r\n \"top-1/2 -translate-y-1/2\"\r\n )}\r\n />\r\n <span\r\n className={cn(\r\n \"block absolute w-full rounded-lg border-[3px] border-black dark:border-white bg-black dark:bg-white transition-all duration-150 ease-in-out\",\r\n \"top-full right-0 origin-right -translate-y-full\",\r\n isOpen && \"w-1/2 top-1/2 -translate-y-[70%] -rotate-[40deg]\"\r\n )}\r\n />\r\n </label>\r\n );\r\n}\r\n\r\nexport default HamburgerStagger;\r\n","\"use client\";\r\n\r\nimport { useState, useEffect, useRef } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\n\r\nfunction cn(...classes: (string | undefined | false)[]) {\r\n return classes.filter(Boolean).join(\" \");\r\n}\r\n\r\ninterface Hamburger3DProps {\r\n className?: string;\r\n onChange?: (isOpen: boolean) => void;\r\n}\r\n\r\nexport function Hamburger3D({ className, onChange }: Hamburger3DProps) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const handleToggle = () => {\r\n const newState = !isOpen;\r\n setIsOpen(newState);\r\n onChange?.(newState);\r\n };\r\n\r\n return (\r\n <button\r\n onClick={handleToggle}\r\n className={cn(\r\n \"relative w-12 h-12 bg-transparent cursor-pointer flex flex-col items-center justify-center gap-2 p-2\",\r\n className\r\n )}\r\n style={{ transformStyle: \"preserve-3d\", perspective: \"800px\" }}\r\n aria-label=\"Toggle menu\"\r\n >\r\n <motion.div\r\n className=\"w-8 h-0.5 bg-black dark:bg-white rounded\"\r\n animate={isOpen ? { \r\n width: 10, \r\n height: 10, \r\n borderRadius: \"50%\",\r\n y: -6 \r\n } : { \r\n width: 32, \r\n height: 2, \r\n borderRadius: \"4px\",\r\n y: 0 \r\n }}\r\n transition={{ duration: 0.3, ease: \"easeInOut\" }}\r\n />\r\n <motion.div\r\n className=\"w-8 h-0.5 bg-black dark:bg-white rounded\"\r\n animate={isOpen ? { \r\n width: 10, \r\n height: 10, \r\n borderRadius: \"50%\",\r\n x: -8,\r\n y: 6 \r\n } : { \r\n width: 32, \r\n height: 2, \r\n borderRadius: \"4px\",\r\n x: 0,\r\n y: 0 \r\n }}\r\n transition={{ duration: 0.35, ease: \"easeInOut\" }}\r\n />\r\n <motion.div\r\n className=\"w-8 h-0.5 bg-black dark:bg-white rounded\"\r\n animate={isOpen ? { \r\n width: 10, \r\n height: 10, \r\n borderRadius: \"50%\",\r\n x: 8,\r\n y: 6 \r\n } : { \r\n width: 32, \r\n height: 2, \r\n borderRadius: \"4px\",\r\n x: 0,\r\n y: 0 \r\n }}\r\n transition={{ duration: 0.4, ease: \"easeInOut\" }}\r\n />\r\n </button>\r\n );\r\n}\r\n\r\nexport default Hamburger3D;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\n\r\nfunction cn(...classes: (string | undefined | false)[]) {\r\n return classes.filter(Boolean).join(\" \");\r\n}\r\n\r\ninterface HamburgerElasticProps {\r\n className?: string;\r\n onChange?: (isOpen: boolean) => void;\r\n}\r\n\r\nexport function HamburgerElastic({ className, onChange }: HamburgerElasticProps) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const handleToggle = () => {\r\n const newState = !isOpen;\r\n setIsOpen(newState);\r\n onChange?.(newState);\r\n };\r\n\r\n return (\r\n <button\r\n onClick={handleToggle}\r\n className={cn(\r\n \"relative w-12 h-12 bg-transparent cursor-pointer flex flex-col items-center justify-center gap-2\",\r\n className\r\n )}\r\n aria-label=\"Toggle menu\"\r\n >\r\n <motion.div\r\n className=\"w-full h-1 bg-black dark:bg-white rounded-full origin-center\"\r\n animate={isOpen ? { rotateX: 90, y: 0, opacity: 0 } : { rotateX: 0, y: 0, opacity: 1 }}\r\n transition={{ duration: 0.3, type: \"spring\", stiffness: 300, damping: 30 }}\r\n />\r\n <motion.div\r\n className=\"w-full h-1 bg-black dark:bg-white rounded-full origin-center\"\r\n animate={isOpen ? { scaleY: 3 } : { scaleY: 1 }}\r\n transition={{ duration: 0.6, type: \"spring\", stiffness: 200, damping: 15 }}\r\n />\r\n <motion.div\r\n className=\"w-full h-1 bg-black dark:bg-white rounded-full origin-center\"\r\n animate={isOpen ? { rotateX: 90, y: 0, opacity: 0 } : { rotateX: 0, y: 0, opacity: 1 }}\r\n transition={{ duration: 0.3, type: \"spring\", stiffness: 300, damping: 30 }}\r\n />\r\n </button>\r\n );\r\n}\r\n\r\nexport default HamburgerElastic;\r\n","\"use client\";\r\n\r\nimport { useRef, useEffect, useCallback, ReactNode } from \"react\";\r\n\r\ninterface ClickSparkProps {\r\n sparkColor?: string;\r\n sparkSize?: number;\r\n sparkRadius?: number;\r\n sparkCount?: number;\r\n duration?: number;\r\n easing?: string;\r\n extraScale?: number;\r\n children: ReactNode;\r\n}\r\n\r\nexport function ClickSpark({\r\n sparkColor = \"#000000\",\r\n sparkSize = 10,\r\n sparkRadius = 15,\r\n sparkCount = 8,\r\n duration = 400,\r\n easing = \"ease-out\",\r\n extraScale = 1.0,\r\n children,\r\n}: ClickSparkProps) {\r\n const canvasRef = useRef<HTMLCanvasElement>(null);\r\n const sparksRef = useRef<\r\n Array<{\r\n x: number;\r\n y: number;\r\n angle: number;\r\n startTime: number;\r\n }>\r\n >([]);\r\n const startTimeRef = useRef<number | null>(null);\r\n\r\n useEffect(() => {\r\n const canvas = canvasRef.current;\r\n if (!canvas) return;\r\n\r\n const parent = canvas.parentElement;\r\n if (!parent) return;\r\n\r\n let resizeTimeout: ReturnType<typeof setTimeout>;\r\n\r\n const resizeCanvas = () => {\r\n const { width, height } = parent.getBoundingClientRect();\r\n if (canvas.width !== width || canvas.height !== height) {\r\n canvas.width = width;\r\n canvas.height = height;\r\n }\r\n };\r\n\r\n const handleResize = () => {\r\n clearTimeout(resizeTimeout);\r\n resizeTimeout = setTimeout(resizeCanvas, 100);\r\n };\r\n\r\n const ro = new ResizeObserver(handleResize);\r\n ro.observe(parent);\r\n\r\n resizeCanvas();\r\n\r\n return () => {\r\n ro.disconnect();\r\n clearTimeout(resizeTimeout);\r\n };\r\n }, []);\r\n\r\n const easeFunc = useCallback(\r\n (t: number) => {\r\n switch (easing) {\r\n case \"linear\":\r\n return t;\r\n case \"ease-in\":\r\n return t * t;\r\n case \"ease-in-out\":\r\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\r\n default:\r\n return t * (2 - t);\r\n }\r\n },\r\n [easing]\r\n );\r\n\r\n useEffect(() => {\r\n const canvas = canvasRef.current;\r\n if (!canvas) return;\r\n const ctx = canvas.getContext(\"2d\");\r\n if (!ctx) return;\r\n\r\n let animationId: number;\r\n\r\n const draw = (timestamp: number) => {\r\n if (!startTimeRef.current) {\r\n startTimeRef.current = timestamp;\r\n }\r\n ctx.clearRect(0, 0, canvas.width, canvas.height);\r\n\r\n sparksRef.current = sparksRef.current.filter((spark) => {\r\n const elapsed = timestamp - spark.startTime;\r\n if (elapsed >= duration) {\r\n return false;\r\n }\r\n\r\n const progress = elapsed / duration;\r\n const eased = easeFunc(progress);\r\n\r\n const distance = eased * sparkRadius * extraScale;\r\n const lineLength = sparkSize * (1 - eased);\r\n\r\n const x1 = spark.x + distance * Math.cos(spark.angle);\r\n const y1 = spark.y + distance * Math.sin(spark.angle);\r\n const x2 = spark.x + (distance + lineLength) * Math.cos(spark.angle);\r\n const y2 = spark.y + (distance + lineLength) * Math.sin(spark.angle);\r\n\r\n ctx.strokeStyle = sparkColor;\r\n ctx.lineWidth = 2;\r\n ctx.beginPath();\r\n ctx.moveTo(x1, y1);\r\n ctx.lineTo(x2, y2);\r\n ctx.stroke();\r\n\r\n return true;\r\n });\r\n\r\n animationId = requestAnimationFrame(draw);\r\n };\r\n\r\n animationId = requestAnimationFrame(draw);\r\n\r\n return () => {\r\n cancelAnimationFrame(animationId);\r\n };\r\n }, [sparkColor, sparkSize, sparkRadius, duration, easeFunc, extraScale]);\r\n\r\n const handleClick = (e: React.MouseEvent) => {\r\n const canvas = canvasRef.current;\r\n if (!canvas) return;\r\n const rect = canvas.getBoundingClientRect();\r\n const x = e.clientX - rect.left;\r\n const y = e.clientY - rect.top;\r\n\r\n const now = performance.now();\r\n const newSparks = Array.from({ length: sparkCount }, (_, i) => ({\r\n x,\r\n y,\r\n angle: (2 * Math.PI * i) / sparkCount,\r\n startTime: now,\r\n }));\r\n\r\n sparksRef.current.push(...newSparks);\r\n };\r\n\r\n return (\r\n <div\r\n style={{\r\n position: \"relative\",\r\n width: \"100%\",\r\n height: \"100%\",\r\n }}\r\n onClick={handleClick}\r\n >\r\n <canvas\r\n ref={canvasRef}\r\n style={{\r\n width: \"100%\",\r\n height: \"100%\",\r\n display: \"block\",\r\n userSelect: \"none\",\r\n position: \"absolute\",\r\n top: 0,\r\n left: 0,\r\n pointerEvents: \"none\",\r\n }}\r\n />\r\n {children}\r\n </div>\r\n );\r\n}\r\n\r\nexport default ClickSpark;\r\n","\"use client\";\r\n\r\nimport { useEffect, useState } from \"react\";\r\nimport { motion, useMotionValue, useSpring } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface SmoothCursorProps {\r\n className?: string;\r\n}\r\n\r\nexport function SmoothCursor({ className }: SmoothCursorProps) {\r\n const [isVisible, setIsVisible] = useState(false);\r\n const cursorX = useMotionValue(-100);\r\n const cursorY = useMotionValue(-100);\r\n\r\n const springConfig = { damping: 25, stiffness: 700 };\r\n const cursorXSpring = useSpring(cursorX, springConfig);\r\n const cursorYSpring = useSpring(cursorY, springConfig);\r\n\r\n useEffect(() => {\r\n const moveCursor = (e: MouseEvent) => {\r\n cursorX.set(e.clientX - 16);\r\n cursorY.set(e.clientY - 16);\r\n setIsVisible(true);\r\n };\r\n\r\n const hideCursor = () => {\r\n setIsVisible(false);\r\n };\r\n\r\n window.addEventListener(\"mousemove\", moveCursor);\r\n window.addEventListener(\"mouseleave\", hideCursor);\r\n\r\n return () => {\r\n window.removeEventListener(\"mousemove\", moveCursor);\r\n window.removeEventListener(\"mouseleave\", hideCursor);\r\n };\r\n }, [cursorX, cursorY]);\r\n\r\n return (\r\n <motion.div\r\n className={cn(\r\n \"pointer-events-none fixed left-0 top-0 z-50 h-8 w-8 rounded-full bg-zinc-400 mix-blend-difference\",\r\n isVisible ? \"opacity-100\" : \"opacity-0\",\r\n className\r\n )}\r\n style={{\r\n x: cursorXSpring,\r\n y: cursorYSpring,\r\n }}\r\n transition={{\r\n type: \"spring\",\r\n stiffness: 500,\r\n damping: 28,\r\n }}\r\n />\r\n );\r\n}\r\n\r\nexport default SmoothCursor;\r\n","\"use client\";\r\n\r\nimport { ReactNode } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface FloatEffectProps {\r\n children?: ReactNode;\r\n className?: string;\r\n duration?: number;\r\n distance?: number;\r\n}\r\n\r\nexport function FloatEffect({\r\n children,\r\n className,\r\n duration = 5,\r\n distance = 50,\r\n}: FloatEffectProps) {\r\n return (\r\n <motion.div\r\n className={cn(\"relative\", className)}\r\n animate={{\r\n y: [0, -distance, 0],\r\n }}\r\n transition={{\r\n duration,\r\n repeat: Infinity,\r\n ease: \"easeInOut\",\r\n }}\r\n >\r\n {children}\r\n </motion.div>\r\n );\r\n}\r\n\r\nexport default FloatEffect;\r\n","\"use client\";\r\n\r\nimport { ReactNode } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface GlowEffectProps {\r\n children?: ReactNode;\r\n className?: string;\r\n glowColor?: string;\r\n duration?: number;\r\n}\r\n\r\nexport function GlowEffect({\r\n children,\r\n className,\r\n glowColor = \"rgba(255, 255, 255, 0.4)\",\r\n duration = 3,\r\n}: GlowEffectProps) {\r\n return (\r\n <motion.div\r\n className={cn(\r\n \"relative p-8 rounded-3xl border-2 border-white/30\",\r\n className\r\n )}\r\n style={{\r\n background:\r\n \"radial-gradient(circle at center, rgba(255,255,255,0.05) 0%, transparent 70%)\",\r\n }}\r\n animate={{\r\n boxShadow: [\r\n `0 0 40px ${glowColor}, 0 0 80px ${glowColor.replace(\"0.4\", \"0.2\")}`,\r\n `0 0 80px ${glowColor.replace(\"0.4\", \"0.8\")}, 0 0 160px ${glowColor.replace(\"0.4\", \"0.5\")}`,\r\n `0 0 40px ${glowColor}, 0 0 80px ${glowColor.replace(\"0.4\", \"0.2\")}`,\r\n ],\r\n borderColor: [\r\n \"rgba(255, 255, 255, 0.3)\",\r\n \"rgba(255, 255, 255, 0.6)\",\r\n \"rgba(255, 255, 255, 0.3)\",\r\n ],\r\n }}\r\n transition={{\r\n duration,\r\n repeat: Infinity,\r\n ease: \"easeInOut\",\r\n }}\r\n >\r\n {children}\r\n </motion.div>\r\n );\r\n}\r\n\r\nexport default GlowEffect;\r\n","\"use client\";\r\n\r\nimport { ReactNode } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface BlurFadeProps {\r\n children: ReactNode;\r\n className?: string;\r\n delay?: number;\r\n duration?: number;\r\n blur?: number;\r\n inView?: boolean;\r\n inViewMargin?: string;\r\n yOffset?: number;\r\n}\r\n\r\nexport function BlurFade({\r\n children,\r\n className,\r\n delay = 0,\r\n duration = 0.8,\r\n blur = 10,\r\n inView = false,\r\n inViewMargin = \"-50px\",\r\n yOffset = 6,\r\n}: BlurFadeProps) {\r\n const variants = {\r\n hidden: {\r\n opacity: 0,\r\n filter: `blur(${blur}px)`,\r\n y: yOffset,\r\n },\r\n visible: {\r\n opacity: 1,\r\n filter: \"blur(0px)\",\r\n y: 0,\r\n },\r\n };\r\n\r\n return (\r\n <motion.div\r\n className={cn(className)}\r\n initial=\"hidden\"\r\n animate={inView ? undefined : \"visible\"}\r\n whileInView={inView ? \"visible\" : undefined}\r\n viewport={{ once: true, margin: inViewMargin }}\r\n variants={variants}\r\n transition={{\r\n duration,\r\n delay,\r\n ease: [0.25, 0.1, 0.25, 1],\r\n }}\r\n >\r\n {children}\r\n </motion.div>\r\n );\r\n}\r\n\r\nexport default BlurFade;\r\n","\"use client\";\r\n\r\nimport { useEffect, useRef, ReactNode } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\nclass Pixel {\r\n width: number;\r\n height: number;\r\n ctx: CanvasRenderingContext2D;\r\n x: number;\r\n y: number;\r\n color: string;\r\n speed: number;\r\n size: number;\r\n sizeStep: number;\r\n minSize: number;\r\n maxSizeInteger: number;\r\n maxSize: number;\r\n delay: number;\r\n counter: number;\r\n counterStep: number;\r\n isIdle: boolean;\r\n isReverse: boolean;\r\n isShimmer: boolean;\r\n\r\n constructor(\r\n canvas: HTMLCanvasElement,\r\n context: CanvasRenderingContext2D,\r\n x: number,\r\n y: number,\r\n color: string,\r\n speed: number,\r\n delay: number\r\n ) {\r\n this.width = canvas.width;\r\n this.height = canvas.height;\r\n this.ctx = context;\r\n this.x = x;\r\n this.y = y;\r\n this.color = color;\r\n this.speed = this.getRandomValue(0.1, 0.9) * speed;\r\n this.size = 0;\r\n this.sizeStep = Math.random() * 0.4;\r\n this.minSize = 0.5;\r\n this.maxSizeInteger = 2;\r\n this.maxSize = this.getRandomValue(this.minSize, this.maxSizeInteger);\r\n this.delay = delay;\r\n this.counter = 0;\r\n this.counterStep = Math.random() * 4 + (this.width + this.height) * 0.01;\r\n this.isIdle = false;\r\n this.isReverse = false;\r\n this.isShimmer = false;\r\n }\r\n\r\n getRandomValue(min: number, max: number) {\r\n return Math.random() * (max - min) + min;\r\n }\r\n\r\n draw() {\r\n const centerOffset = this.maxSizeInteger * 0.5 - this.size * 0.5;\r\n this.ctx.fillStyle = this.color;\r\n this.ctx.fillRect(\r\n this.x + centerOffset,\r\n this.y + centerOffset,\r\n this.size,\r\n this.size\r\n );\r\n }\r\n\r\n appear() {\r\n this.isIdle = false;\r\n if (this.counter <= this.delay) {\r\n this.counter += this.counterStep;\r\n return;\r\n }\r\n if (this.size >= this.maxSize) {\r\n this.isShimmer = true;\r\n }\r\n if (this.isShimmer) {\r\n this.shimmer();\r\n } else {\r\n this.size += this.sizeStep;\r\n }\r\n this.draw();\r\n }\r\n\r\n disappear() {\r\n this.isShimmer = false;\r\n this.counter = 0;\r\n if (this.size <= 0) {\r\n this.isIdle = true;\r\n return;\r\n } else {\r\n this.size -= 0.1;\r\n }\r\n this.draw();\r\n }\r\n\r\n shimmer() {\r\n if (this.size >= this.maxSize) {\r\n this.isReverse = true;\r\n } else if (this.size <= this.minSize) {\r\n this.isReverse = false;\r\n }\r\n if (this.isReverse) {\r\n this.size -= this.speed;\r\n } else {\r\n this.size += this.speed;\r\n }\r\n }\r\n}\r\n\r\nconst VARIANTS = {\r\n default: {\r\n gap: 5,\r\n speed: 35,\r\n colors: \"#71717a,#a1a1aa,#d4d4d8\",\r\n noFocus: false,\r\n },\r\n blue: {\r\n gap: 10,\r\n speed: 25,\r\n colors: \"#0ea5e9,#38bdf8,#7dd3fc\",\r\n noFocus: false,\r\n },\r\n yellow: {\r\n gap: 3,\r\n speed: 20,\r\n colors: \"#ca8a04,#eab308,#facc15\",\r\n noFocus: false,\r\n },\r\n pink: {\r\n gap: 6,\r\n speed: 80,\r\n colors: \"#be123c,#e11d48,#f43f5e\",\r\n noFocus: true,\r\n },\r\n};\r\n\r\ninterface PixelCardProps {\r\n variant?: \"default\" | \"blue\" | \"yellow\" | \"pink\";\r\n gap?: number;\r\n speed?: number;\r\n colors?: string;\r\n noFocus?: boolean;\r\n className?: string;\r\n children: ReactNode;\r\n}\r\n\r\nfunction getEffectiveSpeed(value: number, reducedMotion: boolean) {\r\n const min = 0;\r\n const max = 100;\r\n const throttle = 0.001;\r\n\r\n if (value <= min || reducedMotion) {\r\n return min;\r\n } else if (value >= max) {\r\n return max * throttle;\r\n } else {\r\n return value * throttle;\r\n }\r\n}\r\n\r\nexport function PixelCard({\r\n variant = \"default\",\r\n gap,\r\n speed,\r\n colors,\r\n noFocus,\r\n className = \"\",\r\n children,\r\n}: PixelCardProps) {\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const canvasRef = useRef<HTMLCanvasElement>(null);\r\n const pixelsRef = useRef<Pixel[]>([]);\r\n const animationRef = useRef<ReturnType<typeof requestAnimationFrame> | null>(\r\n null\r\n );\r\n const timePreviousRef = useRef(\r\n typeof performance !== \"undefined\" ? performance.now() : 0\r\n );\r\n const reducedMotion = useRef(\r\n typeof window !== \"undefined\"\r\n ? window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches\r\n : false\r\n ).current;\r\n\r\n const variantCfg = VARIANTS[variant] || VARIANTS.default;\r\n const finalGap = gap ?? variantCfg.gap;\r\n const finalSpeed = speed ?? variantCfg.speed;\r\n const finalColors = colors ?? variantCfg.colors;\r\n const finalNoFocus = noFocus ?? variantCfg.noFocus;\r\n\r\n const initPixels = () => {\r\n if (!containerRef.current || !canvasRef.current) return;\r\n\r\n const rect = containerRef.current.getBoundingClientRect();\r\n const width = Math.floor(rect.width) || 300;\r\n const height = Math.floor(rect.height) || 400;\r\n const ctx = canvasRef.current.getContext(\"2d\");\r\n if (!ctx) return;\r\n\r\n canvasRef.current.width = width;\r\n canvasRef.current.height = height;\r\n canvasRef.current.style.width = `${width}px`;\r\n canvasRef.current.style.height = `${height}px`;\r\n\r\n const colorsArray = finalColors.split(\",\").map((c) => c.trim());\r\n const pxs: Pixel[] = [];\r\n const gapValue = Math.max(parseInt(finalGap.toString(), 10), 3);\r\n\r\n for (let x = 0; x < width; x += gapValue) {\r\n for (let y = 0; y < height; y += gapValue) {\r\n const color = colorsArray[Math.floor(Math.random() * colorsArray.length)];\r\n const dx = x - width / 2;\r\n const dy = y - height / 2;\r\n const distance = Math.sqrt(dx * dx + dy * dy);\r\n const delay = reducedMotion ? 0 : distance;\r\n pxs.push(\r\n new Pixel(\r\n canvasRef.current!,\r\n ctx,\r\n x,\r\n y,\r\n color,\r\n getEffectiveSpeed(finalSpeed, reducedMotion),\r\n delay\r\n )\r\n );\r\n }\r\n }\r\n pixelsRef.current = pxs;\r\n };\r\n\r\n const doAnimate = (fnName: \"appear\" | \"disappear\") => {\r\n animationRef.current = requestAnimationFrame(() => doAnimate(fnName));\r\n const timeNow = performance.now();\r\n const timePassed = timeNow - timePreviousRef.current;\r\n const timeInterval = 1000 / 60;\r\n\r\n if (timePassed < timeInterval) return;\r\n timePreviousRef.current = timeNow - (timePassed % timeInterval);\r\n\r\n const ctx = canvasRef.current?.getContext(\"2d\");\r\n if (!ctx || !canvasRef.current) return;\r\n\r\n ctx.clearRect(0, 0, canvasRef.current.width, canvasRef.current.height);\r\n\r\n let allIdle = true;\r\n for (let i = 0; i < pixelsRef.current.length; i++) {\r\n const pixel = pixelsRef.current[i];\r\n pixel[fnName]();\r\n if (!pixel.isIdle) {\r\n allIdle = false;\r\n }\r\n }\r\n if (allIdle && animationRef.current) {\r\n cancelAnimationFrame(animationRef.current);\r\n }\r\n };\r\n\r\n const handleAnimation = (name: \"appear\" | \"disappear\") => {\r\n if (animationRef.current !== null) {\r\n cancelAnimationFrame(animationRef.current);\r\n }\r\n animationRef.current = requestAnimationFrame(() => doAnimate(name));\r\n };\r\n\r\n const onMouseEnter = () => handleAnimation(\"appear\");\r\n const onMouseLeave = () => handleAnimation(\"disappear\");\r\n const onFocus: React.FocusEventHandler<HTMLDivElement> = (e) => {\r\n if (e.currentTarget.contains(e.relatedTarget as Node)) return;\r\n handleAnimation(\"appear\");\r\n };\r\n const onBlur: React.FocusEventHandler<HTMLDivElement> = (e) => {\r\n if (e.currentTarget.contains(e.relatedTarget as Node)) return;\r\n handleAnimation(\"disappear\");\r\n };\r\n\r\n useEffect(() => {\r\n initPixels();\r\n const observer = new ResizeObserver(() => {\r\n initPixels();\r\n });\r\n if (containerRef.current) {\r\n observer.observe(containerRef.current);\r\n }\r\n return () => {\r\n observer.disconnect();\r\n if (animationRef.current !== null) {\r\n cancelAnimationFrame(animationRef.current);\r\n }\r\n };\r\n }, [finalGap, finalSpeed, finalColors, finalNoFocus]);\r\n\r\n return (\r\n <div\r\n ref={containerRef}\r\n className={cn(\r\n \"relative overflow-hidden rounded-xl border border-zinc-200 dark:border-zinc-800 bg-zinc-100 dark:bg-zinc-900\",\r\n className\r\n )}\r\n onMouseEnter={onMouseEnter}\r\n onMouseLeave={onMouseLeave}\r\n onFocus={finalNoFocus ? undefined : onFocus}\r\n onBlur={finalNoFocus ? undefined : onBlur}\r\n tabIndex={finalNoFocus ? -1 : 0}\r\n >\r\n <canvas\r\n className=\"absolute inset-0 w-full h-full pointer-events-none\"\r\n ref={canvasRef}\r\n />\r\n <div className=\"relative z-10\">{children}</div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default PixelCard;\r\n","\"use client\";\r\n\r\nimport { useRef, useState, ReactNode, CSSProperties } from \"react\";\r\nimport { motion, useMotionValue, useSpring, SpringOptions } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface TiltedCardProps {\r\n imageSrc: string;\r\n altText?: string;\r\n captionText?: string;\r\n containerHeight?: CSSProperties[\"height\"];\r\n containerWidth?: CSSProperties[\"width\"];\r\n imageHeight?: CSSProperties[\"height\"];\r\n imageWidth?: CSSProperties[\"width\"];\r\n scaleOnHover?: number;\r\n rotateAmplitude?: number;\r\n showMobileWarning?: boolean;\r\n showTooltip?: boolean;\r\n overlayContent?: ReactNode;\r\n displayOverlayContent?: boolean;\r\n className?: string;\r\n}\r\n\r\nconst springValues: SpringOptions = {\r\n damping: 30,\r\n stiffness: 100,\r\n mass: 2,\r\n};\r\n\r\nexport function TiltedCard({\r\n imageSrc,\r\n altText = \"Tilted card image\",\r\n captionText = \"\",\r\n containerHeight = \"300px\",\r\n containerWidth = \"100%\",\r\n imageHeight = \"300px\",\r\n imageWidth = \"300px\",\r\n scaleOnHover = 1.1,\r\n rotateAmplitude = 14,\r\n showMobileWarning = false,\r\n showTooltip = true,\r\n overlayContent = null,\r\n displayOverlayContent = false,\r\n className,\r\n}: TiltedCardProps) {\r\n const ref = useRef<HTMLElement>(null);\r\n\r\n const x = useMotionValue(0);\r\n const y = useMotionValue(0);\r\n const rotateX = useSpring(useMotionValue(0), springValues);\r\n const rotateY = useSpring(useMotionValue(0), springValues);\r\n const scale = useSpring(1, springValues);\r\n const opacity = useSpring(0);\r\n const rotateFigcaption = useSpring(0, {\r\n stiffness: 350,\r\n damping: 30,\r\n mass: 1,\r\n });\r\n\r\n const [lastY, setLastY] = useState<number>(0);\r\n\r\n function handleMouse(e: React.MouseEvent<HTMLElement>) {\r\n if (!ref.current) return;\r\n\r\n const rect = ref.current.getBoundingClientRect();\r\n const offsetX = e.clientX - rect.left - rect.width / 2;\r\n const offsetY = e.clientY - rect.top - rect.height / 2;\r\n\r\n const rotationX = (offsetY / (rect.height / 2)) * -rotateAmplitude;\r\n const rotationY = (offsetX / (rect.width / 2)) * rotateAmplitude;\r\n\r\n rotateX.set(rotationX);\r\n rotateY.set(rotationY);\r\n\r\n x.set(e.clientX - rect.left);\r\n y.set(e.clientY - rect.top);\r\n\r\n const velocityY = offsetY - lastY;\r\n rotateFigcaption.set(-velocityY * 0.6);\r\n setLastY(offsetY);\r\n }\r\n\r\n function handleMouseEnter() {\r\n scale.set(scaleOnHover);\r\n opacity.set(1);\r\n }\r\n\r\n function handleMouseLeave() {\r\n opacity.set(0);\r\n scale.set(1);\r\n rotateX.set(0);\r\n rotateY.set(0);\r\n rotateFigcaption.set(0);\r\n }\r\n\r\n return (\r\n <figure\r\n ref={ref}\r\n className={cn(\r\n \"relative flex items-center justify-center [perspective:800px]\",\r\n className\r\n )}\r\n style={{\r\n height: containerHeight,\r\n width: containerWidth,\r\n }}\r\n onMouseMove={handleMouse}\r\n onMouseEnter={handleMouseEnter}\r\n onMouseLeave={handleMouseLeave}\r\n >\r\n {showMobileWarning && (\r\n <div className=\"absolute top-2 left-2 text-xs text-muted-foreground md:hidden\">\r\n Best viewed on desktop\r\n </div>\r\n )}\r\n\r\n <motion.div\r\n className=\"relative [transform-style:preserve-3d]\"\r\n style={{\r\n width: imageWidth,\r\n height: imageHeight,\r\n rotateX,\r\n rotateY,\r\n scale,\r\n }}\r\n >\r\n <motion.img\r\n src={imageSrc}\r\n alt={altText}\r\n className=\"absolute inset-0 w-full h-full object-cover rounded-lg\"\r\n style={{\r\n width: imageWidth,\r\n height: imageHeight,\r\n }}\r\n />\r\n\r\n {displayOverlayContent && overlayContent && (\r\n <motion.div className=\"absolute inset-0 flex items-center justify-center bg-black/50 rounded-lg\">\r\n {overlayContent}\r\n </motion.div>\r\n )}\r\n </motion.div>\r\n\r\n {showTooltip && captionText && (\r\n <motion.figcaption\r\n className=\"pointer-events-none absolute px-3 py-1.5 text-sm bg-white dark:bg-zinc-900 rounded-full shadow-lg whitespace-nowrap\"\r\n style={{\r\n x,\r\n y,\r\n opacity,\r\n rotate: rotateFigcaption,\r\n }}\r\n >\r\n {captionText}\r\n </motion.figcaption>\r\n )}\r\n </figure>\r\n );\r\n}\r\n\r\nexport default TiltedCard;\r\n","\"use client\";\r\n\r\nimport { useEffect, useRef, ReactNode } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface InfiniteScrollProps {\r\n children: ReactNode;\r\n speed?: number;\r\n direction?: \"left\" | \"right\";\r\n pauseOnHover?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport function InfiniteScroll({\r\n children,\r\n speed = 30,\r\n direction = \"left\",\r\n pauseOnHover = true,\r\n className,\r\n}: InfiniteScrollProps) {\r\n const scrollerRef = useRef<HTMLDivElement>(null);\r\n const scrollerInnerRef = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n if (!scrollerRef.current || !scrollerInnerRef.current) return;\r\n\r\n const scrollerContent = Array.from(scrollerInnerRef.current.children);\r\n\r\n scrollerContent.forEach((item) => {\r\n const duplicatedItem = item.cloneNode(true);\r\n if (scrollerInnerRef.current) {\r\n scrollerInnerRef.current.appendChild(duplicatedItem);\r\n }\r\n });\r\n\r\n scrollerRef.current.style.setProperty(\"--animation-duration\", `${speed}s`);\r\n scrollerRef.current.style.setProperty(\r\n \"--animation-direction\",\r\n direction === \"left\" ? \"forwards\" : \"reverse\"\r\n );\r\n }, [speed, direction]);\r\n\r\n return (\r\n <div\r\n ref={scrollerRef}\r\n className={cn(\r\n \"group relative flex overflow-hidden [mask-image:linear-gradient(to_right,transparent,white_20%,white_80%,transparent)]\",\r\n className\r\n )}\r\n >\r\n <div\r\n ref={scrollerInnerRef}\r\n className={cn(\r\n \"flex min-w-full shrink-0 gap-4 py-4 w-max flex-nowrap\",\r\n \"animate-scroll\",\r\n pauseOnHover && \"group-hover:[animation-play-state:paused]\"\r\n )}\r\n style={{\r\n animation: `scroll var(--animation-duration, 30s) var(--animation-direction, forwards) linear infinite`,\r\n }}\r\n >\r\n {children}\r\n </div>\r\n <style jsx>{`\r\n @keyframes scroll {\r\n from {\r\n transform: translateX(0);\r\n }\r\n to {\r\n transform: translateX(calc(-50% - 0.5rem));\r\n }\r\n }\r\n `}</style>\r\n </div>\r\n );\r\n}\r\n\r\nexport default InfiniteScroll;\r\n","\"use client\";\r\n\r\nimport { useState, useEffect } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingState {\r\n text: string;\r\n}\r\n\r\ninterface MultiStepLoaderProps {\r\n loadingStates: LoadingState[];\r\n loading: boolean;\r\n duration?: number;\r\n loop?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport function MultiStepLoader({\r\n loadingStates,\r\n loading,\r\n duration = 2000,\r\n loop = true,\r\n className,\r\n}: MultiStepLoaderProps) {\r\n const [currentState, setCurrentState] = useState(0);\r\n\r\n useEffect(() => {\r\n if (!loading) {\r\n setCurrentState(0);\r\n return;\r\n }\r\n\r\n const interval = setInterval(() => {\r\n setCurrentState((prevState) => {\r\n if (prevState === loadingStates.length - 1) {\r\n return loop ? 0 : prevState;\r\n }\r\n return prevState + 1;\r\n });\r\n }, duration / loadingStates.length);\r\n\r\n return () => clearInterval(interval);\r\n }, [loading, loadingStates.length, duration, loop]);\r\n\r\n return (\r\n <AnimatePresence>\r\n {loading && (\r\n <motion.div\r\n initial={{ opacity: 0 }}\r\n animate={{ opacity: 1 }}\r\n exit={{ opacity: 0 }}\r\n className={cn(\r\n \"fixed inset-0 z-[100] flex items-center justify-center bg-black/80 backdrop-blur-sm\",\r\n className\r\n )}\r\n >\r\n <div className=\"bg-white dark:bg-zinc-900 rounded-lg p-8 shadow-2xl max-w-md w-full mx-4\">\r\n <div className=\"text-center\">\r\n <div className=\"mb-4\">\r\n <div className=\"inline-flex items-center justify-center w-16 h-16 bg-blue-100 dark:bg-blue-900/20 rounded-full mb-4\">\r\n <div className=\"w-8 h-8 border-4 border-blue-600 border-t-transparent rounded-full animate-spin\" />\r\n </div>\r\n </div>\r\n\r\n <AnimatePresence mode=\"wait\">\r\n <motion.p\r\n key={currentState}\r\n initial={{ opacity: 0, y: 10 }}\r\n animate={{ opacity: 1, y: 0 }}\r\n exit={{ opacity: 0, y: -10 }}\r\n transition={{ duration: 0.2 }}\r\n className=\"text-lg font-medium text-zinc-900 dark:text-white\"\r\n >\r\n {loadingStates[currentState]?.text}\r\n </motion.p>\r\n </AnimatePresence>\r\n\r\n <div className=\"mt-6 flex justify-center\">\r\n <div className=\"flex space-x-1\">\r\n {loadingStates.map((_, index) => (\r\n <div\r\n key={index}\r\n className={cn(\r\n \"h-2 w-2 rounded-full transition-colors duration-200\",\r\n index === currentState\r\n ? \"bg-blue-600\"\r\n : index < currentState\r\n ? \"bg-green-500\"\r\n : \"bg-zinc-300 dark:bg-zinc-600\"\r\n )}\r\n />\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </motion.div>\r\n )}\r\n </AnimatePresence>\r\n );\r\n}\r\n\r\nexport default MultiStepLoader;\r\n","\"use client\";\r\n\r\nimport { useEffect, useRef, useState } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface ASCIITextProps {\r\n text: string;\r\n enableWaves?: boolean;\r\n asciiFontSize?: number;\r\n textFontSize?: number;\r\n textColor?: string;\r\n planeBaseHeight?: number;\r\n className?: string;\r\n}\r\n\r\nconst ASCII_CHARS = ' .:-=+*#%@';\r\n\r\nexport function ASCIIText({\r\n text,\r\n enableWaves = true,\r\n asciiFontSize = 8,\r\n textFontSize = 200,\r\n textColor = \"#ffffff\",\r\n planeBaseHeight = 0.2,\r\n className,\r\n}: ASCIITextProps) {\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const [asciiArt, setAsciiArt] = useState<string>(\"\");\r\n\r\n useEffect(() => {\r\n const canvas = document.createElement(\"canvas\");\r\n const ctx = canvas.getContext(\"2d\");\r\n if (!ctx) return;\r\n\r\n // Set canvas size based on text\r\n ctx.font = `bold ${textFontSize}px monospace`;\r\n const metrics = ctx.measureText(text);\r\n const width = Math.ceil(metrics.width);\r\n const height = textFontSize * 1.2;\r\n\r\n canvas.width = width;\r\n canvas.height = height;\r\n\r\n // Draw text\r\n ctx.fillStyle = textColor;\r\n ctx.font = `bold ${textFontSize}px monospace`;\r\n ctx.textBaseline = \"middle\";\r\n ctx.fillText(text, 0, height / 2);\r\n\r\n // Get image data\r\n const imageData = ctx.getImageData(0, 0, width, height);\r\n const pixels = imageData.data;\r\n\r\n // Convert to ASCII\r\n const cols = Math.floor(width / asciiFontSize);\r\n const rows = Math.floor(height / asciiFontSize);\r\n let ascii = \"\";\r\n\r\n for (let y = 0; y < rows; y++) {\r\n for (let x = 0; x < cols; x++) {\r\n const px = x * asciiFontSize;\r\n const py = y * asciiFontSize;\r\n const idx = (py * width + px) * 4;\r\n const brightness = (pixels[idx] + pixels[idx + 1] + pixels[idx + 2]) / 3;\r\n const charIdx = Math.floor((brightness / 255) * (ASCII_CHARS.length - 1));\r\n ascii += ASCII_CHARS[charIdx];\r\n }\r\n ascii += \"\\n\";\r\n }\r\n\r\n setAsciiArt(ascii);\r\n }, [text, asciiFontSize, textFontSize, textColor]);\r\n\r\n return (\r\n <div ref={containerRef} className={cn(\"font-mono whitespace-pre\", className)}>\r\n <pre\r\n style={{\r\n fontSize: `${asciiFontSize}px`,\r\n lineHeight: 1,\r\n color: textColor,\r\n }}\r\n >\r\n {asciiArt}\r\n </pre>\r\n </div>\r\n );\r\n}\r\n\r\nexport default ASCIIText;\r\n","\"use client\";\r\n\r\nimport { useEffect, useRef, useState } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface FallingTextProps {\r\n text: string;\r\n highlightWords?: string[];\r\n highlightClass?: string;\r\n trigger?: \"auto\" | \"hover\" | \"click\" | \"scroll\";\r\n delay?: number;\r\n staggerDelay?: number;\r\n className?: string;\r\n}\r\n\r\nexport function FallingText({\r\n text,\r\n highlightWords = [],\r\n highlightClass = \"text-primary\",\r\n trigger = \"auto\",\r\n delay = 0,\r\n staggerDelay = 0.05,\r\n className,\r\n}: FallingTextProps) {\r\n const [isVisible, setIsVisible] = useState(trigger === \"auto\");\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const words = text.split(\" \");\r\n\r\n useEffect(() => {\r\n if (trigger === \"scroll\" && containerRef.current) {\r\n const observer = new IntersectionObserver(\r\n ([entry]) => {\r\n if (entry.isIntersecting) {\r\n setIsVisible(true);\r\n }\r\n },\r\n { threshold: 0.1 }\r\n );\r\n observer.observe(containerRef.current);\r\n return () => observer.disconnect();\r\n }\r\n }, [trigger]);\r\n\r\n const handleInteraction = () => {\r\n if (trigger === \"hover\" || trigger === \"click\") {\r\n setIsVisible(true);\r\n }\r\n };\r\n\r\n return (\r\n <div\r\n ref={containerRef}\r\n className={cn(\"flex flex-wrap gap-2\", className)}\r\n onMouseEnter={trigger === \"hover\" ? handleInteraction : undefined}\r\n onClick={trigger === \"click\" ? handleInteraction : undefined}\r\n >\r\n <AnimatePresence>\r\n {words.map((word, index) => {\r\n const isHighlighted = highlightWords.includes(word.toLowerCase());\r\n return (\r\n <motion.span\r\n key={`${word}-${index}`}\r\n initial={{ opacity: 0, y: -50, rotateX: -90 }}\r\n animate={\r\n isVisible\r\n ? { opacity: 1, y: 0, rotateX: 0 }\r\n : { opacity: 0, y: -50, rotateX: -90 }\r\n }\r\n transition={{\r\n duration: 0.5,\r\n delay: delay + index * staggerDelay,\r\n ease: [0.25, 0.46, 0.45, 0.94],\r\n }}\r\n className={cn(isHighlighted && highlightClass)}\r\n >\r\n {word}\r\n </motion.span>\r\n );\r\n })}\r\n </AnimatePresence>\r\n </div>\r\n );\r\n}\r\n\r\nexport default FallingText;\r\n","\"use client\";\r\n\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { motion, useMotionValue, useSpring, useTransform } from \"framer-motion\";\r\n\r\nfunction cn(...classes: (string | undefined | false)[]) {\r\n return classes.filter(Boolean).join(\" \");\r\n}\r\n\r\ninterface AnimatedCircularProgressBarProps {\r\n max?: number;\r\n min?: number;\r\n value?: number;\r\n gaugePrimaryColor?: string;\r\n gaugeSecondaryColor?: string;\r\n className?: string;\r\n size?: number;\r\n strokeWidth?: number;\r\n showValue?: boolean;\r\n duration?: number;\r\n autoAnimate?: boolean;\r\n}\r\n\r\nexport function AnimatedCircularProgressBar({\r\n max = 100,\r\n min = 0,\r\n value = 0,\r\n gaugePrimaryColor = \"#a1a1aa\",\r\n gaugeSecondaryColor = \"#27272a\",\r\n className,\r\n size = 200,\r\n strokeWidth = 8,\r\n showValue = true,\r\n duration = 2,\r\n autoAnimate = true,\r\n}: AnimatedCircularProgressBarProps) {\r\n const [currentValue, setCurrentValue] = useState(autoAnimate ? min : value);\r\n \r\n const radius = (size - strokeWidth) / 2;\r\n const circumference = 2 * Math.PI * radius;\r\n \r\n const motionValue = useMotionValue(currentValue);\r\n const springValue = useSpring(motionValue, {\r\n damping: 30,\r\n stiffness: 100,\r\n });\r\n \r\n const strokeDasharray = useTransform(\r\n springValue,\r\n [min, max],\r\n [0, circumference]\r\n );\r\n \r\n const displayValue = useTransform(springValue, (latest) => Math.round(latest));\r\n\r\n useEffect(() => {\r\n if (autoAnimate) {\r\n const interval = setInterval(() => {\r\n setCurrentValue(prev => {\r\n const next = prev + 1;\r\n if (next > max) {\r\n return min;\r\n }\r\n return next;\r\n });\r\n }, duration * 10);\r\n\r\n return () => clearInterval(interval);\r\n } else {\r\n setCurrentValue(value);\r\n }\r\n }, [autoAnimate, value, max, min, duration]);\r\n\r\n useEffect(() => {\r\n motionValue.set(currentValue);\r\n }, [currentValue, motionValue]);\r\n\r\n return (\r\n <div \r\n className={cn(\"relative flex items-center justify-center\", className)}\r\n style={{ width: size, height: size }}\r\n >\r\n <svg\r\n width={size}\r\n height={size}\r\n className=\"transform -rotate-90\"\r\n >\r\n <circle\r\n cx={size / 2}\r\n cy={size / 2}\r\n r={radius}\r\n stroke={gaugeSecondaryColor}\r\n strokeWidth={strokeWidth}\r\n fill=\"none\"\r\n className=\"opacity-20\"\r\n />\r\n \r\n <motion.circle\r\n cx={size / 2}\r\n cy={size / 2}\r\n r={radius}\r\n stroke={gaugePrimaryColor}\r\n strokeWidth={strokeWidth}\r\n fill=\"none\"\r\n strokeLinecap=\"round\"\r\n strokeDasharray={circumference}\r\n strokeDashoffset={useTransform(strokeDasharray, (latest) => circumference - latest)}\r\n className=\"transition-all duration-300 ease-in-out\"\r\n style={{\r\n filter: \"drop-shadow(0 0 6px rgba(59, 130, 246, 0.4))\",\r\n }}\r\n />\r\n \r\n <motion.circle\r\n cx={size / 2}\r\n cy={size / 2}\r\n r={radius}\r\n stroke={gaugePrimaryColor}\r\n strokeWidth={strokeWidth / 2}\r\n fill=\"none\"\r\n strokeLinecap=\"round\"\r\n strokeDasharray={circumference}\r\n strokeDashoffset={useTransform(strokeDasharray, (latest) => circumference - latest)}\r\n className=\"opacity-50 blur-sm\"\r\n />\r\n </svg>\r\n \r\n {showValue && (\r\n <div className=\"absolute inset-0 flex flex-col items-center justify-center\">\r\n <motion.span \r\n className=\"text-3xl font-semibold text-zinc-900 dark:text-zinc-100\"\r\n style={{ fontSize: size / 8 }}\r\n >\r\n {displayValue}\r\n </motion.span>\r\n <span \r\n className=\"text-sm text-zinc-500\"\r\n style={{ fontSize: size / 16 }}\r\n >\r\n {autoAnimate ? \"Auto\" : \"%\"}\r\n </span>\r\n </div>\r\n )}\r\n \r\n <div className=\"absolute inset-0\">\r\n {[...Array(8)].map((_, i) => {\r\n const angle = (i * 45) - 90;\r\n const x = size / 2 + (radius + strokeWidth) * Math.cos((angle * Math.PI) / 180);\r\n const y = size / 2 + (radius + strokeWidth) * Math.sin((angle * Math.PI) / 180);\r\n \r\n return (\r\n <motion.div\r\n key={i}\r\n className=\"absolute w-1 h-1 bg-zinc-500 rounded-full\"\r\n style={{\r\n left: x - 2,\r\n top: y - 2,\r\n }}\r\n animate={{\r\n opacity: [0.3, 1, 0.3],\r\n scale: [0.8, 1.2, 0.8],\r\n }}\r\n transition={{\r\n duration: 2,\r\n repeat: Infinity,\r\n delay: i * 0.2,\r\n }}\r\n />\r\n );\r\n })}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default AnimatedCircularProgressBar;\r\n","\"use client\";\r\n\r\ninterface LoadingInvertProps {\r\n text?: string;\r\n className?: string;\r\n}\r\n\r\nexport function LoadingInvert({ text = \"Loading...\", className = \"\" }: LoadingInvertProps) {\r\n return (\r\n <div className={`w-full h-full min-h-[400px] flex items-center justify-center ${className}`}>\r\n <div className=\"relative h-fit min-w-12 w-fit text-4xl font-bold tracking-wider text-black dark:text-white\">\r\n <p className=\"relative z-0\">{text}</p>\r\n <div \r\n className=\"absolute h-full aspect-square left-0 top-0 rounded-[20%] bg-foreground/10 backdrop-invert\"\r\n style={{\r\n animation: \"invert-move 2s ease-in-out infinite\"\r\n }}\r\n />\r\n <style dangerouslySetInnerHTML={{\r\n __html: `\r\n @keyframes invert-move { 50% { left: calc(100% - 3rem); } }\r\n `\r\n }} />\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingInvert;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\n\r\nfunction cn(...classes: (string | undefined | false)[]) {\r\n return classes.filter(Boolean).join(\" \");\r\n}\r\n\r\ninterface LoaderProps extends React.HTMLAttributes<HTMLDivElement> {\r\n title?: string;\r\n subtitle?: string;\r\n size?: \"sm\" | \"md\" | \"lg\";\r\n}\r\n\r\nexport function Loader({\r\n title = \"Configuring your account...\",\r\n subtitle = \"Please wait while we prepare everything for you\",\r\n size = \"md\",\r\n className,\r\n ...props\r\n}: LoaderProps) {\r\n const sizeConfig = {\r\n sm: {\r\n container: \"size-20\",\r\n titleClass: \"text-sm/tight font-medium\",\r\n subtitleClass: \"text-xs/relaxed\",\r\n spacing: \"space-y-2\",\r\n maxWidth: \"max-w-48\",\r\n },\r\n md: {\r\n container: \"size-32\",\r\n titleClass: \"text-base/snug font-medium\",\r\n subtitleClass: \"text-sm/relaxed\",\r\n spacing: \"space-y-3\",\r\n maxWidth: \"max-w-56\",\r\n },\r\n lg: {\r\n container: \"size-40\",\r\n titleClass: \"text-lg/tight font-semibold\",\r\n subtitleClass: \"text-base/relaxed\",\r\n spacing: \"space-y-4\",\r\n maxWidth: \"max-w-64\",\r\n },\r\n };\r\n\r\n const config = sizeConfig[size];\r\n\r\n return (\r\n <div\r\n className={cn(\r\n \"flex flex-col items-center justify-center gap-8 p-8\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <motion.div\r\n className={cn(\"relative\", config.container)}\r\n animate={{\r\n scale: [1, 1.02, 1],\r\n }}\r\n transition={{\r\n duration: 4,\r\n repeat: Infinity,\r\n ease: [0.4, 0, 0.6, 1],\r\n }}\r\n >\r\n <motion.div\r\n className=\"absolute inset-0 rounded-full\"\r\n style={{\r\n background: `conic-gradient(from 0deg, transparent 0deg, rgb(0, 0, 0) 90deg, transparent 180deg)`,\r\n mask: `radial-gradient(circle at 50% 50%, transparent 35%, black 37%, black 39%, transparent 41%)`,\r\n WebkitMask: `radial-gradient(circle at 50% 50%, transparent 35%, black 37%, black 39%, transparent 41%)`,\r\n opacity: 0.8,\r\n }}\r\n animate={{\r\n rotate: [0, 360],\r\n }}\r\n transition={{\r\n duration: 3,\r\n repeat: Infinity,\r\n ease: \"linear\",\r\n }}\r\n />\r\n\r\n <motion.div\r\n className=\"absolute inset-0 rounded-full\"\r\n style={{\r\n background: `conic-gradient(from 0deg, transparent 0deg, rgb(0, 0, 0) 120deg, rgba(0, 0, 0, 0.5) 240deg, transparent 360deg)`,\r\n mask: `radial-gradient(circle at 50% 50%, transparent 42%, black 44%, black 48%, transparent 50%)`,\r\n WebkitMask: `radial-gradient(circle at 50% 50%, transparent 42%, black 44%, black 48%, transparent 50%)`,\r\n opacity: 0.9,\r\n }}\r\n animate={{\r\n rotate: [0, 360],\r\n }}\r\n transition={{\r\n duration: 2.5,\r\n repeat: Infinity,\r\n ease: [0.4, 0, 0.6, 1],\r\n }}\r\n />\r\n\r\n <motion.div\r\n className=\"absolute inset-0 rounded-full dark:block hidden\"\r\n style={{\r\n background: `conic-gradient(from 0deg, transparent 0deg, rgb(255, 255, 255) 90deg, transparent 180deg)`,\r\n mask: `radial-gradient(circle at 50% 50%, transparent 35%, black 37%, black 39%, transparent 41%)`,\r\n WebkitMask: `radial-gradient(circle at 50% 50%, transparent 35%, black 37%, black 39%, transparent 41%)`,\r\n opacity: 0.8,\r\n }}\r\n animate={{\r\n rotate: [0, 360],\r\n }}\r\n transition={{\r\n duration: 3,\r\n repeat: Infinity,\r\n ease: \"linear\",\r\n }}\r\n />\r\n\r\n <motion.div\r\n className=\"absolute inset-0 rounded-full dark:block hidden\"\r\n style={{\r\n background: `conic-gradient(from 0deg, transparent 0deg, rgb(255, 255, 255) 120deg, rgba(255, 255, 255, 0.5) 240deg, transparent 360deg)`,\r\n mask: `radial-gradient(circle at 50% 50%, transparent 42%, black 44%, black 48%, transparent 50%)`,\r\n WebkitMask: `radial-gradient(circle at 50% 50%, transparent 42%, black 44%, black 48%, transparent 50%)`,\r\n opacity: 0.9,\r\n }}\r\n animate={{\r\n rotate: [0, 360],\r\n }}\r\n transition={{\r\n duration: 2.5,\r\n repeat: Infinity,\r\n ease: [0.4, 0, 0.6, 1],\r\n }}\r\n />\r\n </motion.div>\r\n\r\n <motion.div\r\n className={cn(\"text-center\", config.spacing, config.maxWidth)}\r\n initial={{ opacity: 0, y: 12 }}\r\n animate={{\r\n opacity: 1,\r\n y: 0,\r\n }}\r\n transition={{\r\n delay: 0.4,\r\n duration: 1,\r\n ease: [0.4, 0, 0.2, 1],\r\n }}\r\n >\r\n <motion.h1\r\n className={cn(\r\n config.titleClass,\r\n \"text-black/90 dark:text-white/90 font-medium tracking-[-0.02em] leading-[1.15] antialiased\"\r\n )}\r\n initial={{ opacity: 0, y: 12 }}\r\n animate={{\r\n opacity: 1,\r\n y: 0,\r\n }}\r\n transition={{\r\n delay: 0.6,\r\n duration: 0.8,\r\n ease: [0.4, 0, 0.2, 1],\r\n }}\r\n >\r\n <motion.span\r\n animate={{\r\n opacity: [0.9, 0.7, 0.9],\r\n }}\r\n transition={{\r\n duration: 3,\r\n repeat: Infinity,\r\n ease: [0.4, 0, 0.6, 1],\r\n }}\r\n >\r\n {title}\r\n </motion.span>\r\n </motion.h1>\r\n\r\n <motion.p\r\n className={cn(\r\n config.subtitleClass,\r\n \"text-black/60 dark:text-white/60 font-normal tracking-[-0.01em] leading-[1.45] antialiased\"\r\n )}\r\n initial={{ opacity: 0, y: 8 }}\r\n animate={{\r\n opacity: 1,\r\n y: 0,\r\n }}\r\n transition={{\r\n delay: 0.8,\r\n duration: 0.8,\r\n ease: [0.4, 0, 0.2, 1],\r\n }}\r\n >\r\n <motion.span\r\n animate={{\r\n opacity: [0.6, 0.4, 0.6],\r\n }}\r\n transition={{\r\n duration: 4,\r\n repeat: Infinity,\r\n ease: [0.4, 0, 0.6, 1],\r\n }}\r\n >\r\n {subtitle}\r\n </motion.span>\r\n </motion.p>\r\n </motion.div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default Loader;\r\n","\"use client\";\r\n\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\n\r\nfunction cn(...classes: (string | undefined | false)[]) {\r\n return classes.filter(Boolean).join(\" \");\r\n}\r\n\r\ninterface AnimatedThemeTogglerProps {\r\n className?: string;\r\n size?: \"sm\" | \"md\" | \"lg\";\r\n onChange?: (isDark: boolean) => void;\r\n}\r\n\r\nexport function AnimatedThemeToggler({ \r\n className, \r\n size = \"md\",\r\n onChange \r\n}: AnimatedThemeTogglerProps) {\r\n const [isDark, setIsDark] = useState(false);\r\n\r\n useEffect(() => {\r\n const prefersDark = window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\r\n setIsDark(prefersDark);\r\n }, []);\r\n\r\n const toggleTheme = () => {\r\n const newTheme = !isDark;\r\n setIsDark(newTheme);\r\n \r\n if (newTheme) {\r\n document.documentElement.classList.add(\"dark\");\r\n } else {\r\n document.documentElement.classList.remove(\"dark\");\r\n }\r\n \r\n onChange?.(newTheme);\r\n };\r\n\r\n const sizeClasses = {\r\n sm: \"w-12 h-6\",\r\n md: \"w-14 h-7\",\r\n lg: \"w-16 h-8\"\r\n };\r\n\r\n const iconSizes = {\r\n sm: \"w-4 h-4\",\r\n md: \"w-5 h-5\",\r\n lg: \"w-6 h-6\"\r\n };\r\n\r\n return (\r\n <motion.button\r\n onClick={toggleTheme}\r\n className={cn(\r\n \"relative rounded-full border transition-all duration-300 ease-in-out focus:outline-none focus:ring-2 focus:ring-zinc-500 focus:ring-offset-2 focus:ring-offset-zinc-900\",\r\n sizeClasses[size],\r\n isDark \r\n ? \"bg-zinc-800 border-zinc-700\" \r\n : \"bg-zinc-700 border-zinc-600\",\r\n className\r\n )}\r\n whileTap={{ scale: 0.95 }}\r\n initial={false}\r\n >\r\n <motion.div\r\n className=\"absolute inset-0 rounded-full\"\r\n animate={{\r\n background: isDark \r\n ? \"linear-gradient(135deg, #27272a 0%, #18181b 100%)\"\r\n : \"linear-gradient(135deg, #3f3f46 0%, #27272a 100%)\"\r\n }}\r\n transition={{ duration: 0.3 }}\r\n />\r\n \r\n <motion.div\r\n className={cn(\r\n \"absolute top-0.5 rounded-full shadow-lg flex items-center justify-center\",\r\n size === \"sm\" ? \"w-5 h-5\" : size === \"md\" ? \"w-6 h-6\" : \"w-7 h-7\",\r\n isDark ? \"bg-zinc-300\" : \"bg-zinc-100\"\r\n )}\r\n animate={{\r\n x: isDark ? (size === \"sm\" ? 24 : size === \"md\" ? 28 : 32) : 2,\r\n }}\r\n transition={{\r\n type: \"spring\",\r\n stiffness: 500,\r\n damping: 30\r\n }}\r\n >\r\n <AnimatePresence mode=\"wait\">\r\n {isDark ? (\r\n <motion.svg\r\n key=\"moon\"\r\n className={cn(\"text-zinc-700\", iconSizes[size])}\r\n fill=\"currentColor\"\r\n viewBox=\"0 0 24 24\"\r\n initial={{ opacity: 0, rotate: -90 }}\r\n animate={{ opacity: 1, rotate: 0 }}\r\n exit={{ opacity: 0, rotate: 90 }}\r\n transition={{ duration: 0.2 }}\r\n >\r\n <path d=\"M21.752 15.002A9.718 9.718 0 0118 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 003 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 009.002-5.998z\" />\r\n </motion.svg>\r\n ) : (\r\n <motion.svg\r\n key=\"sun\"\r\n className={cn(\"text-zinc-600\", iconSizes[size])}\r\n fill=\"currentColor\"\r\n viewBox=\"0 0 24 24\"\r\n initial={{ opacity: 0, rotate: -90 }}\r\n animate={{ opacity: 1, rotate: 0 }}\r\n exit={{ opacity: 0, rotate: 90 }}\r\n transition={{ duration: 0.2 }}\r\n >\r\n <path d=\"M12 2.25a.75.75 0 01.75.75v2.25a.75.75 0 01-1.5 0V3a.75.75 0 01.75-.75zM7.5 12a4.5 4.5 0 119 0 4.5 4.5 0 01-9 0zM18.894 6.166a.75.75 0 00-1.06-1.06l-1.591 1.59a.75.75 0 101.06 1.061l1.591-1.59zM21.75 12a.75.75 0 01-.75.75h-2.25a.75.75 0 010-1.5H21a.75.75 0 01.75.75zM17.834 18.894a.75.75 0 001.06-1.06l-1.59-1.591a.75.75 0 10-1.061 1.06l1.59 1.591zM12 18a.75.75 0 01.75.75V21a.75.75 0 01-1.5 0v-2.25A.75.75 0 0112 18zM7.758 17.303a.75.75 0 00-1.061-1.06l-1.591 1.59a.75.75 0 001.06 1.061l1.591-1.59zM6 12a.75.75 0 01-.75.75H3a.75.75 0 010-1.5h2.25A.75.75 0 016 12zM6.697 7.757a.75.75 0 001.06-1.06l-1.59-1.591a.75.75 0 00-1.061 1.06l1.59 1.591z\" />\r\n </motion.svg>\r\n )}\r\n </AnimatePresence>\r\n </motion.div>\r\n \r\n <motion.div\r\n className=\"absolute inset-0 rounded-full opacity-20\"\r\n animate={{\r\n boxShadow: isDark \r\n ? \"0 0 20px rgba(161, 161, 170, 0.2)\" \r\n : \"0 0 20px rgba(161, 161, 170, 0.3)\"\r\n }}\r\n transition={{ duration: 0.3 }}\r\n />\r\n </motion.button>\r\n );\r\n}\r\n\r\nexport default AnimatedThemeToggler;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\n\r\nfunction cn(...classes: (string | undefined | false)[]) {\r\n return classes.filter(Boolean).join(\" \");\r\n}\r\n\r\ninterface ShimmerEffectProps {\r\n children?: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\nexport function ShimmerEffect({\r\n children,\r\n className,\r\n}: ShimmerEffectProps) {\r\n return (\r\n <div className={cn(\"relative w-full min-h-[500px] flex items-center justify-center overflow-hidden bg-white dark:bg-zinc-900 rounded-xl border border-zinc-200 dark:border-zinc-800\", className)}>\r\n <motion.div\r\n className=\"absolute inset-0\"\r\n style={{\r\n background: \"linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.08) 50%, transparent 100%)\",\r\n }}\r\n animate={{\r\n x: [\"-200%\", \"200%\"],\r\n }}\r\n transition={{\r\n duration: 2.5,\r\n repeat: Infinity,\r\n ease: \"linear\",\r\n }}\r\n />\r\n \r\n <motion.div\r\n className=\"absolute inset-0\"\r\n style={{\r\n background: \"linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.05) 50%, transparent 100%)\",\r\n }}\r\n animate={{\r\n x: [\"-200%\", \"200%\"],\r\n }}\r\n transition={{\r\n duration: 3,\r\n delay: 0.5,\r\n repeat: Infinity,\r\n ease: \"linear\",\r\n }}\r\n />\r\n \r\n <motion.div\r\n className=\"absolute inset-0\"\r\n style={{\r\n background: \"linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.03) 50%, transparent 100%)\",\r\n }}\r\n animate={{\r\n x: [\"-200%\", \"200%\"],\r\n }}\r\n transition={{\r\n duration: 3.5,\r\n delay: 1,\r\n repeat: Infinity,\r\n ease: \"linear\",\r\n }}\r\n />\r\n \r\n <motion.div\r\n className=\"absolute inset-0 hidden dark:block\"\r\n style={{\r\n background: \"linear-gradient(90deg, transparent 0%, rgba(161,161,170,0.15) 50%, transparent 100%)\",\r\n }}\r\n animate={{\r\n x: [\"-200%\", \"200%\"],\r\n }}\r\n transition={{\r\n duration: 2.5,\r\n repeat: Infinity,\r\n ease: \"linear\",\r\n }}\r\n />\r\n \r\n <div className=\"absolute inset-0 opacity-10 dark:opacity-5\" style={{\r\n backgroundImage: \"radial-gradient(circle at 2px 2px, #71717a 1px, transparent 0)\",\r\n backgroundSize: \"40px 40px\"\r\n }} />\r\n \r\n <div className=\"relative z-10 text-center px-8\">\r\n {children || (\r\n <motion.div\r\n initial={{ opacity: 0, y: 20 }}\r\n animate={{ opacity: 1, y: 0 }}\r\n transition={{ duration: 0.8 }}\r\n >\r\n <h2 className=\"text-7xl font-bold text-zinc-900 dark:text-zinc-100 mb-4 tracking-tight\" style={{\r\n fontFamily: \"system-ui, -apple-system, sans-serif\",\r\n letterSpacing: \"-0.02em\"\r\n }}>\r\n SHIMMER WAVE\r\n </h2>\r\n <p className=\"text-xl text-zinc-500 font-light tracking-wide\">\r\n Advanced Shimmer Effect\r\n </p>\r\n </motion.div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default ShimmerEffect;\r\n","\"use client\";\r\n\r\nimport React, { useRef, useLayoutEffect, useState } from \"react\";\r\nimport {\r\n motion,\r\n useScroll,\r\n useSpring,\r\n useTransform,\r\n useMotionValue,\r\n useVelocity,\r\n useAnimationFrame\r\n} from \"framer-motion\";\r\n\r\ninterface VelocityMapping {\r\n input: [number, number];\r\n output: [number, number];\r\n}\r\n\r\ninterface ScrollVelocityProps {\r\n scrollContainerRef?: React.RefObject<HTMLElement>;\r\n texts?: string[];\r\n velocity?: number;\r\n className?: string;\r\n damping?: number;\r\n stiffness?: number;\r\n numCopies?: number;\r\n velocityMapping?: VelocityMapping;\r\n}\r\n\r\nfunction useElementWidth<T extends HTMLElement>(ref: React.RefObject<T | null>): number {\r\n const [width, setWidth] = useState(0);\r\n\r\n useLayoutEffect(() => {\r\n function updateWidth() {\r\n if (ref.current) {\r\n setWidth(ref.current.offsetWidth);\r\n }\r\n }\r\n updateWidth();\r\n window.addEventListener(\"resize\", updateWidth);\r\n return () => window.removeEventListener(\"resize\", updateWidth);\r\n }, [ref]);\r\n\r\n return width;\r\n}\r\n\r\nexport function ScrollVelocity({\r\n scrollContainerRef,\r\n texts = [\"Scroll Velocity\", \"Bynana UI\"],\r\n velocity = 100,\r\n className = \"\",\r\n damping = 50,\r\n stiffness = 400,\r\n numCopies = 6,\r\n velocityMapping = { input: [0, 1000], output: [0, 5] },\r\n}: ScrollVelocityProps) {\r\n function VelocityText({\r\n children,\r\n baseVelocity,\r\n }: {\r\n children: React.ReactNode;\r\n baseVelocity: number;\r\n }) {\r\n const baseX = useMotionValue(0);\r\n const scrollOptions = scrollContainerRef ? { container: scrollContainerRef } : {};\r\n const { scrollY } = useScroll(scrollOptions);\r\n const scrollVelocity = useVelocity(scrollY);\r\n const smoothVelocity = useSpring(scrollVelocity, { damping, stiffness });\r\n const velocityFactor = useTransform(\r\n smoothVelocity,\r\n velocityMapping.input,\r\n velocityMapping.output,\r\n { clamp: false }\r\n );\r\n\r\n const copyRef = useRef<HTMLSpanElement>(null);\r\n const copyWidth = useElementWidth(copyRef);\r\n\r\n function wrap(min: number, max: number, v: number): number {\r\n const range = max - min;\r\n const mod = (((v - min) % range) + range) % range;\r\n return mod + min;\r\n }\r\n\r\n const x = useTransform(baseX, v => {\r\n if (copyWidth === 0) return \"0px\";\r\n return `${wrap(-copyWidth, 0, v)}px`;\r\n });\r\n\r\n const directionFactor = useRef<number>(1);\r\n useAnimationFrame((t, delta) => {\r\n let moveBy = directionFactor.current * baseVelocity * (delta / 1000);\r\n if (velocityFactor.get() < 0) directionFactor.current = -1;\r\n else if (velocityFactor.get() > 0) directionFactor.current = 1;\r\n moveBy += directionFactor.current * moveBy * velocityFactor.get();\r\n baseX.set(baseX.get() + moveBy);\r\n });\r\n\r\n const spans = [];\r\n for (let i = 0; i < numCopies; i++) {\r\n spans.push(\r\n <span className={className} key={i} ref={i === 0 ? copyRef : null}>\r\n {children}\r\n </span>\r\n );\r\n }\r\n\r\n return (\r\n <div className=\"overflow-hidden whitespace-nowrap\">\r\n <motion.div className=\"flex\" style={{ x }}>\r\n {spans}\r\n </motion.div>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <section>\r\n {texts.map((text, index) => (\r\n <VelocityText key={index} baseVelocity={index % 2 !== 0 ? -velocity : velocity}>\r\n {text} \r\n </VelocityText>\r\n ))}\r\n </section>\r\n );\r\n}\r\n\r\nexport default ScrollVelocity;\r\n","\"use client\";\r\n\r\nimport React, { useState, useEffect, useRef } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\n\r\ninterface TrailItem {\r\n id: number;\r\n x: number;\r\n y: number;\r\n angle: number;\r\n randomX?: number;\r\n randomY?: number;\r\n randomRotate?: number;\r\n}\r\n\r\ninterface TextCursorProps {\r\n text?: string;\r\n delay?: number;\r\n spacing?: number;\r\n followMouseDirection?: boolean;\r\n randomFloat?: boolean;\r\n exitDuration?: number;\r\n removalInterval?: number;\r\n maxPoints?: number;\r\n}\r\n\r\nexport function TextCursor({\r\n text = \"⚛️\",\r\n delay = 0.01,\r\n spacing = 100,\r\n followMouseDirection = true,\r\n randomFloat = true,\r\n exitDuration = 0.5,\r\n removalInterval = 30,\r\n maxPoints = 5\r\n}: TextCursorProps) {\r\n const [trail, setTrail] = useState<TrailItem[]>([]);\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const lastMoveTimeRef = useRef<number>(Date.now());\r\n const idCounter = useRef<number>(0);\r\n\r\n const handleMouseMove = (e: MouseEvent) => {\r\n if (!containerRef.current) return;\r\n const rect = containerRef.current.getBoundingClientRect();\r\n const mouseX = e.clientX - rect.left;\r\n const mouseY = e.clientY - rect.top;\r\n\r\n setTrail(prev => {\r\n let newTrail = [...prev];\r\n if (newTrail.length === 0) {\r\n newTrail.push({\r\n id: idCounter.current++,\r\n x: mouseX,\r\n y: mouseY,\r\n angle: 0,\r\n ...(randomFloat && {\r\n randomX: Math.random() * 10 - 5,\r\n randomY: Math.random() * 10 - 5,\r\n randomRotate: Math.random() * 10 - 5\r\n })\r\n });\r\n } else {\r\n const last = newTrail[newTrail.length - 1];\r\n const dx = mouseX - last.x;\r\n const dy = mouseY - last.y;\r\n const distance = Math.sqrt(dx * dx + dy * dy);\r\n if (distance >= spacing) {\r\n let rawAngle = (Math.atan2(dy, dx) * 180) / Math.PI;\r\n if (rawAngle > 90) rawAngle -= 180;\r\n else if (rawAngle < -90) rawAngle += 180;\r\n const computedAngle = followMouseDirection ? rawAngle : 0;\r\n const steps = Math.floor(distance / spacing);\r\n for (let i = 1; i <= steps; i++) {\r\n const t = (spacing * i) / distance;\r\n newTrail.push({\r\n id: idCounter.current++,\r\n x: last.x + dx * t,\r\n y: last.y + dy * t,\r\n angle: computedAngle,\r\n ...(randomFloat && {\r\n randomX: Math.random() * 10 - 5,\r\n randomY: Math.random() * 10 - 5,\r\n randomRotate: Math.random() * 10 - 5\r\n })\r\n });\r\n }\r\n }\r\n }\r\n if (newTrail.length > maxPoints) {\r\n newTrail = newTrail.slice(newTrail.length - maxPoints);\r\n }\r\n return newTrail;\r\n });\r\n lastMoveTimeRef.current = Date.now();\r\n };\r\n\r\n useEffect(() => {\r\n const container = containerRef.current;\r\n if (!container) return;\r\n container.addEventListener(\"mousemove\", handleMouseMove);\r\n return () => container.removeEventListener(\"mousemove\", handleMouseMove);\r\n }, []);\r\n\r\n useEffect(() => {\r\n const interval = setInterval(() => {\r\n if (Date.now() - lastMoveTimeRef.current > 100) {\r\n setTrail(prev => (prev.length > 0 ? prev.slice(1) : prev));\r\n }\r\n }, removalInterval);\r\n return () => clearInterval(interval);\r\n }, [removalInterval]);\r\n\r\n return (\r\n <div ref={containerRef} className=\"w-full h-full min-h-[200px] relative rounded-lg bg-zinc-50 dark:bg-zinc-900/50\">\r\n <div className=\"absolute inset-0 flex items-center justify-center text-zinc-400 text-sm pointer-events-none\">\r\n Move your mouse around\r\n </div>\r\n <AnimatePresence>\r\n {trail.map(item => (\r\n <motion.div\r\n key={item.id}\r\n initial={{ opacity: 0, scale: 1, rotate: item.angle }}\r\n animate={{ opacity: 1, scale: 1, rotate: item.angle }}\r\n exit={{ opacity: 0, scale: 0 }}\r\n transition={{ opacity: { duration: exitDuration, ease: \"easeOut\", delay } }}\r\n className=\"absolute text-2xl pointer-events-none\"\r\n style={{ left: item.x, top: item.y, transform: \"translate(-50%, -50%)\" }}\r\n >\r\n {text}\r\n </motion.div>\r\n ))}\r\n </AnimatePresence>\r\n </div>\r\n );\r\n}\r\n\r\nexport default TextCursor;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\n\r\nfunction cn(...classes: (string | undefined | false)[]) {\r\n return classes.filter(Boolean).join(\" \");\r\n}\r\n\r\ninterface SocialButtonProps {\r\n icon: React.ReactNode;\r\n label: string;\r\n href?: string;\r\n onClick?: () => void;\r\n className?: string;\r\n variant?: \"default\" | \"outline\" | \"ghost\";\r\n}\r\n\r\nexport function SocialButton({\r\n icon,\r\n label,\r\n href,\r\n onClick,\r\n className,\r\n variant = \"default\",\r\n}: SocialButtonProps) {\r\n const variants = {\r\n default: \"bg-zinc-900 dark:bg-zinc-100 text-white dark:text-zinc-900 hover:bg-zinc-800 dark:hover:bg-zinc-200\",\r\n outline: \"border border-zinc-300 dark:border-zinc-700 hover:bg-zinc-100 dark:hover:bg-zinc-800\",\r\n ghost: \"hover:bg-zinc-100 dark:hover:bg-zinc-800\",\r\n };\r\n\r\n const Component = href ? \"a\" : \"button\";\r\n\r\n return (\r\n <motion.div whileHover={{ scale: 1.05 }} whileTap={{ scale: 0.95 }}>\r\n <Component\r\n href={href}\r\n onClick={onClick}\r\n className={cn(\r\n \"inline-flex items-center gap-2 px-4 py-2 rounded-lg font-medium transition-colors\",\r\n variants[variant],\r\n className\r\n )}\r\n target={href ? \"_blank\" : undefined}\r\n rel={href ? \"noopener noreferrer\" : undefined}\r\n >\r\n {icon}\r\n <span>{label}</span>\r\n </Component>\r\n </motion.div>\r\n );\r\n}\r\n\r\nexport default SocialButton;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\n\r\nfunction cn(...classes: (string | undefined | false)[]) {\r\n return classes.filter(Boolean).join(\" \");\r\n}\r\n\r\ninterface V0ButtonProps {\r\n children: React.ReactNode;\r\n onClick?: () => void;\r\n className?: string;\r\n disabled?: boolean;\r\n}\r\n\r\nexport function V0Button({\r\n children,\r\n onClick,\r\n className,\r\n disabled = false,\r\n}: V0ButtonProps) {\r\n return (\r\n <motion.button\r\n onClick={onClick}\r\n disabled={disabled}\r\n className={cn(\r\n \"relative inline-flex items-center justify-center px-6 py-3 overflow-hidden font-medium rounded-xl\",\r\n \"bg-gradient-to-r from-zinc-900 to-zinc-800 dark:from-zinc-100 dark:to-zinc-200\",\r\n \"text-white dark:text-zinc-900\",\r\n \"border border-zinc-700 dark:border-zinc-300\",\r\n \"shadow-lg shadow-zinc-900/20 dark:shadow-zinc-100/20\",\r\n \"transition-all duration-300\",\r\n \"hover:shadow-xl hover:shadow-zinc-900/30 dark:hover:shadow-zinc-100/30\",\r\n \"disabled:opacity-50 disabled:cursor-not-allowed\",\r\n className\r\n )}\r\n whileHover={{ scale: disabled ? 1 : 1.02 }}\r\n whileTap={{ scale: disabled ? 1 : 0.98 }}\r\n >\r\n <motion.span\r\n className=\"absolute inset-0 bg-gradient-to-r from-transparent via-white/10 to-transparent\"\r\n initial={{ x: \"-100%\" }}\r\n whileHover={{ x: \"100%\" }}\r\n transition={{ duration: 0.6, ease: \"easeInOut\" }}\r\n />\r\n <span className=\"relative z-10 flex items-center gap-2\">\r\n {children}\r\n </span>\r\n </motion.button>\r\n );\r\n}\r\n\r\nexport default V0Button;\r\n","\"use client\";\r\n\r\nimport { useMemo } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\n\r\nfunction cn(...classes: (string | undefined | false)[]) {\r\n return classes.filter(Boolean).join(\" \");\r\n}\r\n\r\ninterface ContributionGraphProps {\r\n data?: number[];\r\n weeks?: number;\r\n className?: string;\r\n colors?: string[];\r\n}\r\n\r\nexport function ContributionGraph({\r\n data,\r\n weeks = 52,\r\n className,\r\n colors = [\r\n \"bg-zinc-100 dark:bg-zinc-800\",\r\n \"bg-emerald-200 dark:bg-emerald-900\",\r\n \"bg-emerald-300 dark:bg-emerald-700\",\r\n \"bg-emerald-400 dark:bg-emerald-500\",\r\n \"bg-emerald-500 dark:bg-emerald-400\",\r\n ],\r\n}: ContributionGraphProps) {\r\n const contributions = useMemo(() => {\r\n if (data) return data;\r\n return Array.from({ length: weeks * 7 }, () => Math.floor(Math.random() * 5));\r\n }, [data, weeks]);\r\n\r\n const getColor = (level: number) => colors[Math.min(level, colors.length - 1)];\r\n\r\n return (\r\n <div className={cn(\"overflow-x-auto\", className)}>\r\n <div className=\"flex gap-1\">\r\n {Array.from({ length: weeks }).map((_, weekIndex) => (\r\n <div key={weekIndex} className=\"flex flex-col gap-1\">\r\n {Array.from({ length: 7 }).map((_, dayIndex) => {\r\n const index = weekIndex * 7 + dayIndex;\r\n const level = contributions[index] || 0;\r\n return (\r\n <motion.div\r\n key={dayIndex}\r\n className={cn(\r\n \"w-3 h-3 rounded-sm\",\r\n getColor(level)\r\n )}\r\n initial={{ scale: 0, opacity: 0 }}\r\n animate={{ scale: 1, opacity: 1 }}\r\n transition={{\r\n delay: index * 0.002,\r\n type: \"spring\",\r\n stiffness: 300,\r\n damping: 20,\r\n }}\r\n whileHover={{ scale: 1.3 }}\r\n />\r\n );\r\n })}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default ContributionGraph;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { motion, useMotionValue, useTransform, animate } from \"framer-motion\";\r\n\r\nfunction cn(...classes: (string | undefined | false)[]) {\r\n return classes.filter(Boolean).join(\" \");\r\n}\r\n\r\ninterface ElasticSliderProps {\r\n defaultValue?: number;\r\n min?: number;\r\n max?: number;\r\n step?: number;\r\n onChange?: (value: number) => void;\r\n className?: string;\r\n trackClassName?: string;\r\n thumbClassName?: string;\r\n}\r\n\r\nexport function ElasticSlider({\r\n defaultValue = 50,\r\n min = 0,\r\n max = 100,\r\n step = 1,\r\n onChange,\r\n className,\r\n trackClassName,\r\n thumbClassName,\r\n}: ElasticSliderProps) {\r\n const [value, setValue] = useState(defaultValue);\r\n const [isDragging, setIsDragging] = useState(false);\r\n \r\n const percentage = ((value - min) / (max - min)) * 100;\r\n\r\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const newValue = Number(e.target.value);\r\n setValue(newValue);\r\n onChange?.(newValue);\r\n };\r\n\r\n return (\r\n <div className={cn(\"relative w-full h-12 flex items-center\", className)}>\r\n <div className={cn(\r\n \"absolute w-full h-2 rounded-full bg-zinc-200 dark:bg-zinc-800\",\r\n trackClassName\r\n )}>\r\n <motion.div\r\n className=\"h-full rounded-full bg-zinc-900 dark:bg-zinc-100\"\r\n style={{ width: `${percentage}%` }}\r\n animate={{ scaleY: isDragging ? 1.5 : 1 }}\r\n transition={{ type: \"spring\", stiffness: 400, damping: 25 }}\r\n />\r\n </div>\r\n \r\n <motion.div\r\n className={cn(\r\n \"absolute w-6 h-6 rounded-full bg-zinc-900 dark:bg-zinc-100 shadow-lg cursor-grab\",\r\n \"border-2 border-white dark:border-zinc-900\",\r\n thumbClassName\r\n )}\r\n style={{ left: `calc(${percentage}% - 12px)` }}\r\n animate={{ \r\n scale: isDragging ? 1.3 : 1,\r\n y: isDragging ? -4 : 0\r\n }}\r\n transition={{ type: \"spring\", stiffness: 500, damping: 30 }}\r\n />\r\n \r\n <input\r\n type=\"range\"\r\n min={min}\r\n max={max}\r\n step={step}\r\n value={value}\r\n onChange={handleChange}\r\n onMouseDown={() => setIsDragging(true)}\r\n onMouseUp={() => setIsDragging(false)}\r\n onTouchStart={() => setIsDragging(true)}\r\n onTouchEnd={() => setIsDragging(false)}\r\n className=\"absolute w-full h-full opacity-0 cursor-grab active:cursor-grabbing\"\r\n />\r\n \r\n <motion.span\r\n className=\"absolute -top-8 left-1/2 -translate-x-1/2 text-sm font-medium text-zinc-900 dark:text-zinc-100\"\r\n animate={{ opacity: isDragging ? 1 : 0, y: isDragging ? 0 : 10 }}\r\n transition={{ duration: 0.2 }}\r\n >\r\n {value}\r\n </motion.span>\r\n </div>\r\n );\r\n}\r\n\r\nexport default ElasticSlider;\r\n","\"use client\";\r\n\r\nimport React, { useState } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface FlowingMenuItem {\r\n link: string;\r\n text: string;\r\n image?: string;\r\n}\r\n\r\ninterface FlowingMenuProps {\r\n items?: FlowingMenuItem[];\r\n className?: string;\r\n}\r\n\r\nconst DEFAULT_ITEMS: FlowingMenuItem[] = [\r\n { link: \"#\", text: \"About\", image: \"https://images.unsplash.com/photo-1618005182384-a83a8bd57fbe?w=800&q=80\" },\r\n { link: \"#\", text: \"Services\", image: \"https://images.unsplash.com/photo-1618556450994-a6a128ef0d9d?w=800&q=80\" },\r\n { link: \"#\", text: \"Work\", image: \"https://images.unsplash.com/photo-1618556450991-2f1af64e8191?w=800&q=80\" },\r\n { link: \"#\", text: \"Contact\", image: \"https://images.unsplash.com/photo-1618556450783-953e03f0bb7a?w=800&q=80\" },\r\n];\r\n\r\nexport function FlowingMenu({ items = DEFAULT_ITEMS, className = \"\" }: FlowingMenuProps) {\r\n const [activeIndex, setActiveIndex] = useState<number>(-1);\r\n const [hoveredIndex, setHoveredIndex] = useState<number>(-1);\r\n\r\n return (\r\n <div className={cn(\"flex gap-8\", className)}>\r\n {/* Menu */}\r\n <div className=\"flex-1\">\r\n <div className=\"mb-6\">\r\n <h2 className=\"text-2xl font-bold text-white\">Menu</h2>\r\n <p className=\"text-sm text-zinc-400\">Explore our pages</p>\r\n </div>\r\n\r\n <nav className=\"flex flex-col gap-2\">\r\n {items.map((item, index) => (\r\n <a\r\n key={index}\r\n href={item.link}\r\n className={cn(\r\n \"group flex items-center gap-4 py-4 px-4 rounded-lg transition-all duration-300\",\r\n hoveredIndex === index\r\n ? \"bg-zinc-800 translate-x-4\"\r\n : \"bg-transparent\"\r\n )}\r\n onMouseEnter={() => setHoveredIndex(index)}\r\n onMouseLeave={() => setHoveredIndex(-1)}\r\n onClick={() => setActiveIndex(index)}\r\n >\r\n <span className=\"text-sm text-zinc-500 font-mono\">\r\n {String(index + 1).padStart(2, \"0\")}\r\n </span>\r\n <span\r\n className={cn(\r\n \"text-xl font-medium transition-colors\",\r\n hoveredIndex === index ? \"text-white\" : \"text-zinc-400\"\r\n )}\r\n >\r\n {item.text}\r\n </span>\r\n <span\r\n className={cn(\r\n \"ml-auto text-xl transition-all duration-300\",\r\n hoveredIndex === index\r\n ? \"opacity-100 translate-x-0\"\r\n : \"opacity-0 -translate-x-2\"\r\n )}\r\n >\r\n →\r\n </span>\r\n </a>\r\n ))}\r\n </nav>\r\n </div>\r\n\r\n {/* Preview */}\r\n <div\r\n className={cn(\r\n \"w-80 h-80 rounded-2xl overflow-hidden transition-all duration-500\",\r\n hoveredIndex >= 0 ? \"opacity-100 scale-100\" : \"opacity-0 scale-95\"\r\n )}\r\n >\r\n {hoveredIndex >= 0 && items[hoveredIndex]?.image && (\r\n <div className=\"relative w-full h-full\">\r\n <img\r\n src={items[hoveredIndex].image}\r\n alt={items[hoveredIndex].text}\r\n className=\"w-full h-full object-cover\"\r\n />\r\n <div className=\"absolute inset-0 bg-gradient-to-t from-black/60 to-transparent\" />\r\n <h3 className=\"absolute bottom-4 left-4 text-2xl font-bold text-white\">\r\n {items[hoveredIndex].text}\r\n </h3>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default FlowingMenu;\r\n","\"use client\";\r\n\r\nimport React, { useState } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface GooeyNavItem {\r\n label: string;\r\n href: string;\r\n}\r\n\r\nexport interface GooeyNavProps {\r\n items?: GooeyNavItem[];\r\n className?: string;\r\n activeColor?: string;\r\n inactiveColor?: string;\r\n backgroundColor?: string;\r\n}\r\n\r\nconst DEFAULT_ITEMS: GooeyNavItem[] = [\r\n { label: \"Home\", href: \"#\" },\r\n { label: \"About\", href: \"#\" },\r\n { label: \"Services\", href: \"#\" },\r\n { label: \"Contact\", href: \"#\" },\r\n];\r\n\r\nexport function GooeyNav({\r\n items = DEFAULT_ITEMS,\r\n className = \"\",\r\n activeColor = \"#8b5cf6\",\r\n inactiveColor = \"#a1a1aa\",\r\n backgroundColor = \"#18181b\",\r\n}: GooeyNavProps) {\r\n const [activeIndex, setActiveIndex] = useState<number>(0);\r\n\r\n const handleClick = (index: number, event: React.MouseEvent<HTMLAnchorElement>) => {\r\n event.preventDefault();\r\n setActiveIndex(index);\r\n };\r\n\r\n return (\r\n <div className={cn(\"relative\", className)}>\r\n <nav\r\n className=\"relative rounded-full px-2 py-2\"\r\n style={{ backgroundColor }}\r\n >\r\n <ul className=\"flex items-center gap-1\">\r\n {items.map((item, index) => (\r\n <li key={index} className=\"relative\">\r\n <a\r\n href={item.href}\r\n className={cn(\r\n \"relative z-10 block px-4 py-2 text-sm font-medium rounded-full transition-all duration-300\",\r\n activeIndex === index && \"text-white\"\r\n )}\r\n style={{\r\n color: activeIndex === index ? \"#fff\" : inactiveColor,\r\n }}\r\n onClick={(e) => handleClick(index, e)}\r\n >\r\n {item.label}\r\n {activeIndex === index && (\r\n <span\r\n className=\"absolute inset-0 rounded-full -z-10 animate-pulse\"\r\n style={{\r\n backgroundColor: activeColor,\r\n boxShadow: `0 0 20px ${activeColor}`,\r\n }}\r\n />\r\n )}\r\n </a>\r\n </li>\r\n ))}\r\n </ul>\r\n </nav>\r\n </div>\r\n );\r\n}\r\n\r\nexport default GooeyNav;\r\n","\"use client\";\r\n\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\nexport type PillNavItem = {\r\n label: string;\r\n href: string;\r\n ariaLabel?: string;\r\n};\r\n\r\nexport interface PillNavProps {\r\n logo?: string;\r\n logoAlt?: string;\r\n items: PillNavItem[];\r\n activeHref?: string;\r\n className?: string;\r\n baseColor?: string;\r\n pillColor?: string;\r\n hoveredPillTextColor?: string;\r\n pillTextColor?: string;\r\n onMobileMenuClick?: () => void;\r\n}\r\n\r\nexport function PillNav({\r\n logo,\r\n logoAlt = \"Logo\",\r\n items,\r\n activeHref,\r\n className = \"\",\r\n baseColor = \"#fff\",\r\n pillColor = \"#000000\",\r\n hoveredPillTextColor = \"#ffffff\",\r\n pillTextColor,\r\n onMobileMenuClick,\r\n}: PillNavProps) {\r\n const resolvedPillTextColor = pillTextColor ?? baseColor;\r\n const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);\r\n const [hoveredIndex, setHoveredIndex] = useState<number | null>(null);\r\n\r\n const toggleMobileMenu = () => {\r\n setIsMobileMenuOpen(!isMobileMenuOpen);\r\n onMobileMenuClick?.();\r\n };\r\n\r\n return (\r\n <div className={cn(\"relative\", className)}>\r\n <nav\r\n className=\"flex items-center gap-4 px-4 py-2 rounded-full\"\r\n style={{ backgroundColor: pillColor }}\r\n aria-label=\"Primary\"\r\n >\r\n {logo && (\r\n <a href={items?.[0]?.href || \"#\"} aria-label=\"Home\" className=\"flex-shrink-0\">\r\n <img src={logo} alt={logoAlt} className=\"h-8 w-8 object-contain\" />\r\n </a>\r\n )}\r\n\r\n {/* Desktop Navigation */}\r\n <div className=\"hidden md:flex items-center gap-1\">\r\n <ul className=\"flex items-center gap-1\" role=\"menubar\">\r\n {items.map((item, i) => (\r\n <li key={item.href} role=\"none\">\r\n <a\r\n role=\"menuitem\"\r\n href={item.href}\r\n className={cn(\r\n \"relative px-4 py-2 rounded-full text-sm font-medium transition-all duration-300\",\r\n activeHref === item.href && \"font-semibold\"\r\n )}\r\n style={{\r\n color: hoveredIndex === i ? hoveredPillTextColor : resolvedPillTextColor,\r\n backgroundColor: hoveredIndex === i ? baseColor : \"transparent\",\r\n }}\r\n aria-label={item.ariaLabel || item.label}\r\n onMouseEnter={() => setHoveredIndex(i)}\r\n onMouseLeave={() => setHoveredIndex(null)}\r\n >\r\n {item.label}\r\n </a>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n\r\n {/* Mobile Menu Button */}\r\n <button\r\n className=\"md:hidden flex flex-col gap-1 p-2\"\r\n onClick={toggleMobileMenu}\r\n aria-label=\"Toggle menu\"\r\n >\r\n <span\r\n className={cn(\r\n \"w-5 h-0.5 transition-all duration-300\",\r\n isMobileMenuOpen && \"rotate-45 translate-y-1.5\"\r\n )}\r\n style={{ backgroundColor: baseColor }}\r\n />\r\n <span\r\n className={cn(\r\n \"w-5 h-0.5 transition-all duration-300\",\r\n isMobileMenuOpen && \"-rotate-45 -translate-y-1\"\r\n )}\r\n style={{ backgroundColor: baseColor }}\r\n />\r\n </button>\r\n </nav>\r\n\r\n {/* Mobile Menu */}\r\n {isMobileMenuOpen && (\r\n <div\r\n className=\"md:hidden absolute top-full left-0 right-0 mt-2 rounded-xl p-4 shadow-lg\"\r\n style={{ backgroundColor: pillColor }}\r\n >\r\n <ul className=\"flex flex-col gap-2\">\r\n {items.map((item) => (\r\n <li key={item.href}>\r\n <a\r\n href={item.href}\r\n className={cn(\r\n \"block px-4 py-2 rounded-lg text-sm font-medium transition-colors\",\r\n activeHref === item.href && \"font-semibold\"\r\n )}\r\n style={{ color: resolvedPillTextColor }}\r\n onClick={() => setIsMobileMenuOpen(false)}\r\n >\r\n {item.label}\r\n </a>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nexport default PillNav;\r\n","\"use client\";\r\n\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface SmoothDrawerProps {\r\n trigger?: React.ReactNode;\r\n title?: string;\r\n description?: string;\r\n children?: React.ReactNode;\r\n className?: string;\r\n side?: \"left\" | \"right\" | \"top\" | \"bottom\";\r\n}\r\n\r\nexport function SmoothDrawer({\r\n trigger,\r\n title = \"Drawer Title\",\r\n description,\r\n children,\r\n className,\r\n side = \"right\",\r\n}: SmoothDrawerProps) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n useEffect(() => {\r\n if (isOpen) {\r\n document.body.style.overflow = \"hidden\";\r\n } else {\r\n document.body.style.overflow = \"\";\r\n }\r\n return () => {\r\n document.body.style.overflow = \"\";\r\n };\r\n }, [isOpen]);\r\n\r\n const sideStyles = {\r\n left: \"left-0 top-0 h-full w-80 -translate-x-full data-[open=true]:translate-x-0\",\r\n right: \"right-0 top-0 h-full w-80 translate-x-full data-[open=true]:translate-x-0\",\r\n top: \"top-0 left-0 w-full h-80 -translate-y-full data-[open=true]:translate-y-0\",\r\n bottom: \"bottom-0 left-0 w-full h-80 translate-y-full data-[open=true]:translate-y-0\",\r\n };\r\n\r\n return (\r\n <>\r\n {/* Trigger */}\r\n <div onClick={() => setIsOpen(true)} className=\"cursor-pointer\">\r\n {trigger || (\r\n <button className=\"px-4 py-2 bg-zinc-900 dark:bg-white text-white dark:text-zinc-900 rounded-lg font-medium hover:opacity-90 transition-opacity\">\r\n Open Drawer\r\n </button>\r\n )}\r\n </div>\r\n\r\n {/* Overlay */}\r\n {isOpen && (\r\n <div\r\n className=\"fixed inset-0 z-50 bg-black/50 backdrop-blur-sm transition-opacity duration-300\"\r\n onClick={() => setIsOpen(false)}\r\n />\r\n )}\r\n\r\n {/* Drawer */}\r\n <div\r\n data-open={isOpen}\r\n className={cn(\r\n \"fixed z-50 bg-white dark:bg-zinc-900 shadow-xl transition-transform duration-300 ease-out\",\r\n sideStyles[side],\r\n className\r\n )}\r\n >\r\n <div className=\"flex flex-col h-full\">\r\n {/* Header */}\r\n <div className=\"flex items-center justify-between p-4 border-b border-zinc-200 dark:border-zinc-800\">\r\n <div>\r\n <h2 className=\"text-lg font-semibold text-zinc-900 dark:text-white\">\r\n {title}\r\n </h2>\r\n {description && (\r\n <p className=\"text-sm text-zinc-500 dark:text-zinc-400\">\r\n {description}\r\n </p>\r\n )}\r\n </div>\r\n <button\r\n onClick={() => setIsOpen(false)}\r\n className=\"p-2 rounded-lg hover:bg-zinc-100 dark:hover:bg-zinc-800 transition-colors\"\r\n aria-label=\"Close drawer\"\r\n >\r\n <svg\r\n className=\"w-5 h-5 text-zinc-500\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n viewBox=\"0 0 24 24\"\r\n >\r\n <path\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n strokeWidth={2}\r\n d=\"M6 18L18 6M6 6l12 12\"\r\n />\r\n </svg>\r\n </button>\r\n </div>\r\n\r\n {/* Content */}\r\n <div className=\"flex-1 overflow-auto p-4\">{children}</div>\r\n </div>\r\n </div>\r\n </>\r\n );\r\n}\r\n\r\nexport default SmoothDrawer;\r\n","\"use client\";\r\n\r\nimport React, { useState, useRef, useLayoutEffect } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface TabItem {\r\n id: string;\r\n title: string;\r\n content?: React.ReactNode;\r\n color?: string;\r\n}\r\n\r\ninterface SmoothTabProps {\r\n items?: TabItem[];\r\n defaultTabId?: string;\r\n className?: string;\r\n activeColor?: string;\r\n onChange?: (tabId: string) => void;\r\n}\r\n\r\nconst DEFAULT_TABS: TabItem[] = [\r\n { id: \"tab1\", title: \"Tab 1\", color: \"bg-blue-500\" },\r\n { id: \"tab2\", title: \"Tab 2\", color: \"bg-purple-500\" },\r\n { id: \"tab3\", title: \"Tab 3\", color: \"bg-emerald-500\" },\r\n { id: \"tab4\", title: \"Tab 4\", color: \"bg-amber-500\" },\r\n];\r\n\r\nexport function SmoothTab({\r\n items = DEFAULT_TABS,\r\n defaultTabId,\r\n className,\r\n activeColor = \"bg-blue-500\",\r\n onChange,\r\n}: SmoothTabProps) {\r\n const [selected, setSelected] = useState<string>(defaultTabId || items[0]?.id || \"\");\r\n const [dimensions, setDimensions] = useState({ width: 0, left: 0 });\r\n const buttonRefs = useRef<Map<string, HTMLButtonElement>>(new Map());\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n\r\n useLayoutEffect(() => {\r\n const updateDimensions = () => {\r\n const selectedButton = buttonRefs.current.get(selected);\r\n const container = containerRef.current;\r\n\r\n if (selectedButton && container) {\r\n const rect = selectedButton.getBoundingClientRect();\r\n const containerRect = container.getBoundingClientRect();\r\n\r\n setDimensions({\r\n width: rect.width,\r\n left: rect.left - containerRect.left,\r\n });\r\n }\r\n };\r\n\r\n requestAnimationFrame(updateDimensions);\r\n window.addEventListener(\"resize\", updateDimensions);\r\n return () => window.removeEventListener(\"resize\", updateDimensions);\r\n }, [selected]);\r\n\r\n const handleTabClick = (tabId: string) => {\r\n setSelected(tabId);\r\n onChange?.(tabId);\r\n };\r\n\r\n const selectedItem = items.find((item) => item.id === selected);\r\n\r\n return (\r\n <div className={cn(\"flex flex-col\", className)}>\r\n {/* Content Area */}\r\n {selectedItem?.content && (\r\n <div className=\"mb-4 p-6 bg-zinc-100 dark:bg-zinc-900 rounded-lg min-h-[200px]\">\r\n {selectedItem.content}\r\n </div>\r\n )}\r\n\r\n {/* Tab Bar */}\r\n <div\r\n ref={containerRef}\r\n role=\"tablist\"\r\n className={cn(\r\n \"relative flex items-center gap-1 p-1\",\r\n \"bg-zinc-100 dark:bg-zinc-900 rounded-xl\",\r\n \"border border-zinc-200 dark:border-zinc-800\"\r\n )}\r\n >\r\n {/* Sliding Background */}\r\n <div\r\n className={cn(\r\n \"absolute rounded-lg transition-all duration-300 ease-out\",\r\n selectedItem?.color || activeColor\r\n )}\r\n style={{\r\n width: dimensions.width - 8,\r\n left: dimensions.left + 4,\r\n height: \"calc(100% - 8px)\",\r\n top: \"4px\",\r\n }}\r\n />\r\n\r\n {/* Tab Buttons */}\r\n {items.map((item) => {\r\n const isSelected = selected === item.id;\r\n return (\r\n <button\r\n key={item.id}\r\n ref={(el) => {\r\n if (el) buttonRefs.current.set(item.id, el);\r\n else buttonRefs.current.delete(item.id);\r\n }}\r\n type=\"button\"\r\n role=\"tab\"\r\n aria-selected={isSelected}\r\n onClick={() => handleTabClick(item.id)}\r\n className={cn(\r\n \"relative z-10 flex-1 px-4 py-2 rounded-lg\",\r\n \"text-sm font-medium transition-colors duration-300\",\r\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500\",\r\n isSelected\r\n ? \"text-white\"\r\n : \"text-zinc-600 dark:text-zinc-400 hover:text-zinc-900 dark:hover:text-zinc-100\"\r\n )}\r\n >\r\n {item.title}\r\n </button>\r\n );\r\n })}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default SmoothTab;\r\n","\"use client\";\r\n\r\nimport React, { useEffect, useRef, ReactNode } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface DecayCardProps {\r\n width?: number;\r\n height?: number;\r\n image?: string;\r\n children?: ReactNode;\r\n className?: string;\r\n}\r\n\r\nexport function DecayCard({\r\n width = 300,\r\n height = 400,\r\n image = \"https://picsum.photos/300/400?grayscale\",\r\n children,\r\n className,\r\n}: DecayCardProps) {\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const displacementMapRef = useRef<SVGFEDisplacementMapElement>(null);\r\n const cursor = useRef({ x: 0, y: 0 });\r\n const cachedCursor = useRef({ x: 0, y: 0 });\r\n const imgTransforms = useRef({ x: 0, y: 0, rz: 0 });\r\n const displacementScale = useRef(0);\r\n const animationRef = useRef<number>();\r\n\r\n useEffect(() => {\r\n if (typeof window === \"undefined\") return;\r\n\r\n cursor.current = { x: window.innerWidth / 2, y: window.innerHeight / 2 };\r\n cachedCursor.current = { ...cursor.current };\r\n\r\n const lerp = (a: number, b: number, n: number) => (1 - n) * a + n * b;\r\n const map = (x: number, a: number, b: number, c: number, d: number) =>\r\n ((x - a) * (d - c)) / (b - a) + c;\r\n const distance = (x1: number, x2: number, y1: number, y2: number) =>\r\n Math.hypot(x1 - x2, y1 - y2);\r\n\r\n const handleMouseMove = (ev: MouseEvent) => {\r\n cursor.current = { x: ev.clientX, y: ev.clientY };\r\n };\r\n\r\n window.addEventListener(\"mousemove\", handleMouseMove);\r\n\r\n const render = () => {\r\n const winWidth = window.innerWidth;\r\n const winHeight = window.innerHeight;\r\n\r\n let targetX = lerp(\r\n imgTransforms.current.x,\r\n map(cursor.current.x, 0, winWidth, -120, 120),\r\n 0.1\r\n );\r\n let targetY = lerp(\r\n imgTransforms.current.y,\r\n map(cursor.current.y, 0, winHeight, -120, 120),\r\n 0.1\r\n );\r\n let targetRz = lerp(\r\n imgTransforms.current.rz,\r\n map(cursor.current.x, 0, winWidth, -10, 10),\r\n 0.1\r\n );\r\n\r\n const bound = 50;\r\n if (targetX > bound) targetX = bound + (targetX - bound) * 0.2;\r\n if (targetX < -bound) targetX = -bound + (targetX + bound) * 0.2;\r\n if (targetY > bound) targetY = bound + (targetY - bound) * 0.2;\r\n if (targetY < -bound) targetY = -bound + (targetY + bound) * 0.2;\r\n\r\n imgTransforms.current = { x: targetX, y: targetY, rz: targetRz };\r\n\r\n if (containerRef.current) {\r\n containerRef.current.style.transform = `translate(${targetX}px, ${targetY}px) rotateZ(${targetRz}deg)`;\r\n }\r\n\r\n const cursorTravelledDistance = distance(\r\n cachedCursor.current.x,\r\n cursor.current.x,\r\n cachedCursor.current.y,\r\n cursor.current.y\r\n );\r\n\r\n displacementScale.current = lerp(\r\n displacementScale.current,\r\n map(cursorTravelledDistance, 0, 200, 0, 400),\r\n 0.06\r\n );\r\n\r\n if (displacementMapRef.current) {\r\n displacementMapRef.current.setAttribute(\r\n \"scale\",\r\n String(displacementScale.current)\r\n );\r\n }\r\n\r\n cachedCursor.current = { ...cursor.current };\r\n animationRef.current = requestAnimationFrame(render);\r\n };\r\n\r\n render();\r\n\r\n return () => {\r\n window.removeEventListener(\"mousemove\", handleMouseMove);\r\n if (animationRef.current) {\r\n cancelAnimationFrame(animationRef.current);\r\n }\r\n };\r\n }, []);\r\n\r\n const filterId = `imgFilter-${Math.random().toString(36).substr(2, 9)}`;\r\n\r\n return (\r\n <div\r\n className={cn(\"relative\", className)}\r\n style={{ width: `${width}px`, height: `${height}px` }}\r\n ref={containerRef}\r\n >\r\n <svg\r\n viewBox=\"-60 -75 720 900\"\r\n preserveAspectRatio=\"xMidYMid slice\"\r\n className=\"w-full h-full\"\r\n >\r\n <defs>\r\n <filter id={filterId}>\r\n <feTurbulence\r\n type=\"turbulence\"\r\n baseFrequency=\"0.015\"\r\n numOctaves=\"5\"\r\n seed=\"4\"\r\n stitchTiles=\"stitch\"\r\n x=\"0%\"\r\n y=\"0%\"\r\n width=\"100%\"\r\n height=\"100%\"\r\n result=\"turbulence1\"\r\n />\r\n <feDisplacementMap\r\n ref={displacementMapRef}\r\n in=\"SourceGraphic\"\r\n in2=\"turbulence1\"\r\n scale=\"0\"\r\n xChannelSelector=\"R\"\r\n yChannelSelector=\"B\"\r\n x=\"0%\"\r\n y=\"0%\"\r\n width=\"100%\"\r\n height=\"100%\"\r\n result=\"displacementMap3\"\r\n />\r\n </filter>\r\n </defs>\r\n <g>\r\n <image\r\n href={image}\r\n x=\"0\"\r\n y=\"0\"\r\n width=\"600\"\r\n height=\"750\"\r\n filter={`url(#${filterId})`}\r\n preserveAspectRatio=\"xMidYMid slice\"\r\n />\r\n </g>\r\n </svg>\r\n {children && (\r\n <div className=\"absolute inset-0 flex items-end p-6\">\r\n <div className=\"text-white\">{children}</div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nexport default DecayCard;\r\n","\"use client\";\r\n\r\nimport React, { useId } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\nconst GLASS_SHADOW =\r\n \"shadow-[0_0_6px_rgba(0,0,0,0.03),0_2px_6px_rgba(0,0,0,0.08),inset_3px_3px_0.5px_-3px_rgba(0,0,0,0.9),inset_-3px_-3px_0.5px_-3px_rgba(0,0,0,0.85),inset_1px_1px_1px_-0.5px_rgba(0,0,0,0.6),inset_-1px_-1px_1px_-0.5px_rgba(0,0,0,0.6),inset_0_0_6px_6px_rgba(0,0,0,0.12),inset_0_0_2px_2px_rgba(0,0,0,0.06),0_0_12px_rgba(255,255,255,0.15)] dark:shadow-[0_0_8px_rgba(0,0,0,0.03),0_2px_6px_rgba(0,0,0,0.08),inset_3px_3px_0.5px_-3.5px_rgba(255,255,255,0.09),inset_-3px_-3px_0.5px_-3.5px_rgba(255,255,255,0.85),inset_1px_1px_1px_-0.5px_rgba(255,255,255,0.6),inset_-1px_-1px_1px_-0.5px_rgba(255,255,255,0.6),inset_0_0_6px_6px_rgba(255,255,255,0.12),inset_0_0_2px_2px_rgba(255,255,255,0.06),0_0_12px_rgba(0,0,0,0.15)]\";\r\n\r\ninterface GlassFilterProps {\r\n id: string;\r\n scale?: number;\r\n}\r\n\r\nconst GlassFilter = React.memo(({ id, scale = 30 }: GlassFilterProps) => (\r\n <svg className=\"hidden\">\r\n <title>Glass Effect Filter</title>\r\n <defs>\r\n <filter\r\n colorInterpolationFilters=\"sRGB\"\r\n height=\"200%\"\r\n id={id}\r\n width=\"200%\"\r\n x=\"-50%\"\r\n y=\"-50%\"\r\n >\r\n <feTurbulence\r\n baseFrequency=\"0.05 0.05\"\r\n numOctaves=\"1\"\r\n result=\"turbulence\"\r\n seed=\"1\"\r\n type=\"fractalNoise\"\r\n />\r\n <feGaussianBlur in=\"turbulence\" result=\"blurredNoise\" stdDeviation=\"2\" />\r\n <feDisplacementMap\r\n in=\"SourceGraphic\"\r\n in2=\"blurredNoise\"\r\n result=\"displaced\"\r\n scale={scale}\r\n xChannelSelector=\"R\"\r\n yChannelSelector=\"B\"\r\n />\r\n <feGaussianBlur in=\"displaced\" result=\"finalBlur\" stdDeviation=\"4\" />\r\n <feComposite in=\"finalBlur\" in2=\"finalBlur\" operator=\"over\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n));\r\nGlassFilter.displayName = \"GlassFilter\";\r\n\r\ninterface LiquidGlassCardProps extends React.HTMLAttributes<HTMLDivElement> {\r\n glassSize?: \"sm\" | \"default\" | \"lg\";\r\n glassEffect?: boolean;\r\n}\r\n\r\nexport function LiquidGlassCard({\r\n className,\r\n glassSize = \"default\",\r\n glassEffect = true,\r\n children,\r\n ...props\r\n}: LiquidGlassCardProps) {\r\n const filterId = useId();\r\n\r\n const sizeClasses = {\r\n sm: \"p-4\",\r\n default: \"p-6\",\r\n lg: \"p-8\",\r\n };\r\n\r\n return (\r\n <div\r\n className={cn(\r\n \"group relative overflow-hidden rounded-lg border border-zinc-200 dark:border-zinc-800\",\r\n \"bg-white/20 dark:bg-zinc-900/20 backdrop-blur-[2px]\",\r\n \"transition-all duration-300\",\r\n sizeClasses[glassSize],\r\n className\r\n )}\r\n {...props}\r\n >\r\n <div\r\n className={cn(\r\n \"pointer-events-none absolute inset-0 rounded-lg transition-all\",\r\n GLASS_SHADOW\r\n )}\r\n />\r\n\r\n {glassEffect && (\r\n <>\r\n <div\r\n className=\"-z-10 pointer-events-none absolute inset-0 overflow-hidden rounded-lg\"\r\n style={{ backdropFilter: `url(\"#${filterId}\")` }}\r\n />\r\n <GlassFilter id={filterId} scale={30} />\r\n </>\r\n )}\r\n\r\n <div className=\"relative z-10\">{children}</div>\r\n\r\n <div className=\"pointer-events-none absolute inset-0 z-20 rounded-lg bg-gradient-to-r from-transparent via-black/5 to-transparent opacity-0 transition-opacity duration-200 group-hover:opacity-100 dark:via-white/5\" />\r\n </div>\r\n );\r\n}\r\n\r\ninterface LiquidButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n variant?: \"default\" | \"ghost\";\r\n}\r\n\r\nexport function LiquidButton({\r\n className,\r\n variant = \"default\",\r\n children,\r\n ...props\r\n}: LiquidButtonProps) {\r\n const filterId = useId();\r\n\r\n return (\r\n <>\r\n <button\r\n className={cn(\r\n \"relative px-4 py-2 rounded-full font-medium transition-transform duration-300 hover:scale-105\",\r\n variant === \"default\" &&\r\n \"bg-zinc-900 dark:bg-white text-white dark:text-zinc-900\",\r\n variant === \"ghost\" &&\r\n \"bg-transparent text-zinc-700 dark:text-zinc-300 hover:bg-zinc-200/80 dark:hover:bg-zinc-800/80\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <div\r\n className={cn(\r\n \"pointer-events-none absolute inset-0 rounded-full transition-all\",\r\n GLASS_SHADOW\r\n )}\r\n />\r\n <div\r\n className=\"-z-10 pointer-events-none absolute inset-0 isolate overflow-hidden rounded-full\"\r\n style={{ backdropFilter: `url(\"#${filterId}\")` }}\r\n />\r\n <span className=\"relative z-10\">{children}</span>\r\n </button>\r\n <GlassFilter id={filterId} scale={70} />\r\n </>\r\n );\r\n}\r\n\r\nexport default LiquidGlassCard;\r\n","\"use client\";\r\n\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface TargetCursorProps {\r\n targetSelector?: string;\r\n spinDuration?: number;\r\n hideDefaultCursor?: boolean;\r\n color?: string;\r\n className?: string;\r\n}\r\n\r\nexport function TargetCursor({\r\n targetSelector = \".cursor-target\",\r\n spinDuration = 2,\r\n hideDefaultCursor = true,\r\n color = \"#000000\",\r\n className,\r\n}: TargetCursorProps) {\r\n const cursorRef = useRef<HTMLDivElement>(null);\r\n const dotRef = useRef<HTMLDivElement>(null);\r\n const [position, setPosition] = useState({ x: 0, y: 0 });\r\n const [isHovering, setIsHovering] = useState(false);\r\n const [rotation, setRotation] = useState(0);\r\n const animationRef = useRef<number>();\r\n\r\n useEffect(() => {\r\n if (typeof window === \"undefined\") return;\r\n\r\n const originalCursor = document.body.style.cursor;\r\n if (hideDefaultCursor) {\r\n document.body.style.cursor = \"none\";\r\n }\r\n\r\n setPosition({ x: window.innerWidth / 2, y: window.innerHeight / 2 });\r\n\r\n const handleMouseMove = (e: MouseEvent) => {\r\n setPosition({ x: e.clientX, y: e.clientY });\r\n };\r\n\r\n const handleMouseOver = (e: MouseEvent) => {\r\n const target = e.target as Element;\r\n if (target.matches(targetSelector) || target.closest(targetSelector)) {\r\n setIsHovering(true);\r\n }\r\n };\r\n\r\n const handleMouseOut = (e: MouseEvent) => {\r\n const target = e.target as Element;\r\n if (target.matches(targetSelector) || target.closest(targetSelector)) {\r\n setIsHovering(false);\r\n }\r\n };\r\n\r\n window.addEventListener(\"mousemove\", handleMouseMove);\r\n window.addEventListener(\"mouseover\", handleMouseOver);\r\n window.addEventListener(\"mouseout\", handleMouseOut);\r\n\r\n // Rotation animation\r\n let startTime: number;\r\n const animate = (timestamp: number) => {\r\n if (!startTime) startTime = timestamp;\r\n const elapsed = timestamp - startTime;\r\n const newRotation = (elapsed / (spinDuration * 1000)) * 360;\r\n setRotation(newRotation % 360);\r\n animationRef.current = requestAnimationFrame(animate);\r\n };\r\n animationRef.current = requestAnimationFrame(animate);\r\n\r\n return () => {\r\n window.removeEventListener(\"mousemove\", handleMouseMove);\r\n window.removeEventListener(\"mouseover\", handleMouseOver);\r\n window.removeEventListener(\"mouseout\", handleMouseOut);\r\n document.body.style.cursor = originalCursor;\r\n if (animationRef.current) {\r\n cancelAnimationFrame(animationRef.current);\r\n }\r\n };\r\n }, [targetSelector, spinDuration, hideDefaultCursor]);\r\n\r\n const cornerSize = 12;\r\n const borderWidth = 3;\r\n\r\n return (\r\n <div\r\n ref={cursorRef}\r\n className={cn(\"fixed pointer-events-none z-[10000]\", className)}\r\n style={{\r\n left: position.x,\r\n top: position.y,\r\n transform: `translate(-50%, -50%) rotate(${isHovering ? 0 : rotation}deg)`,\r\n transition: isHovering ? \"transform 0.2s ease\" : \"none\",\r\n }}\r\n >\r\n {/* Center dot */}\r\n <div\r\n ref={dotRef}\r\n className=\"absolute rounded-full\"\r\n style={{\r\n width: 6,\r\n height: 6,\r\n backgroundColor: color,\r\n left: \"50%\",\r\n top: \"50%\",\r\n transform: \"translate(-50%, -50%)\",\r\n }}\r\n />\r\n\r\n {/* Corners */}\r\n {[\"tl\", \"tr\", \"br\", \"bl\"].map((corner) => {\r\n const isTop = corner.includes(\"t\");\r\n const isLeft = corner.includes(\"l\");\r\n const offset = isHovering ? 20 : cornerSize * 1.5;\r\n\r\n return (\r\n <div\r\n key={corner}\r\n className=\"absolute transition-all duration-200\"\r\n style={{\r\n width: cornerSize,\r\n height: cornerSize,\r\n borderColor: color,\r\n borderWidth: borderWidth,\r\n borderStyle: \"solid\",\r\n borderTopWidth: isTop ? borderWidth : 0,\r\n borderBottomWidth: !isTop ? borderWidth : 0,\r\n borderLeftWidth: isLeft ? borderWidth : 0,\r\n borderRightWidth: !isLeft ? borderWidth : 0,\r\n left: isLeft ? -offset : \"auto\",\r\n right: !isLeft ? -offset : \"auto\",\r\n top: isTop ? -offset : \"auto\",\r\n bottom: !isTop ? -offset : \"auto\",\r\n }}\r\n />\r\n );\r\n })}\r\n </div>\r\n );\r\n}\r\n\r\nexport default TargetCursor;\r\n","\"use client\";\r\n\r\nimport React, { useEffect, useRef } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface CrosshairProps {\r\n color?: string;\r\n containerRef?: React.RefObject<HTMLElement>;\r\n className?: string;\r\n}\r\n\r\nconst lerp = (a: number, b: number, n: number) => (1 - n) * a + n * b;\r\n\r\nexport function Crosshair({\r\n color = \"#000000\",\r\n containerRef = null,\r\n className,\r\n}: CrosshairProps) {\r\n const cursorRef = useRef<HTMLDivElement>(null);\r\n const lineHorizontalRef = useRef<HTMLDivElement>(null);\r\n const lineVerticalRef = useRef<HTMLDivElement>(null);\r\n const mouseRef = useRef({ x: 0, y: 0 });\r\n const renderedRef = useRef({ x: 0, y: 0 });\r\n const animationRef = useRef<number>();\r\n\r\n useEffect(() => {\r\n if (typeof window === \"undefined\") return;\r\n\r\n const getMousePos = (e: MouseEvent, container?: HTMLElement) => {\r\n if (container) {\r\n const bounds = container.getBoundingClientRect();\r\n return {\r\n x: e.clientX - bounds.left,\r\n y: e.clientY - bounds.top,\r\n };\r\n }\r\n return { x: e.clientX, y: e.clientY };\r\n };\r\n\r\n const handleMouseMove = (ev: MouseEvent) => {\r\n mouseRef.current = getMousePos(ev, containerRef?.current || undefined);\r\n\r\n if (containerRef?.current) {\r\n const bounds = containerRef.current.getBoundingClientRect();\r\n const isOutside =\r\n ev.clientX < bounds.left ||\r\n ev.clientX > bounds.right ||\r\n ev.clientY < bounds.top ||\r\n ev.clientY > bounds.bottom;\r\n\r\n if (lineHorizontalRef.current && lineVerticalRef.current) {\r\n lineHorizontalRef.current.style.opacity = isOutside ? \"0\" : \"1\";\r\n lineVerticalRef.current.style.opacity = isOutside ? \"0\" : \"1\";\r\n }\r\n }\r\n };\r\n\r\n const target = containerRef?.current || window;\r\n target.addEventListener(\"mousemove\", handleMouseMove as any);\r\n\r\n // Initial setup\r\n if (lineHorizontalRef.current && lineVerticalRef.current) {\r\n lineHorizontalRef.current.style.opacity = \"0\";\r\n lineVerticalRef.current.style.opacity = \"0\";\r\n }\r\n\r\n const onFirstMove = () => {\r\n renderedRef.current = { ...mouseRef.current };\r\n if (lineHorizontalRef.current && lineVerticalRef.current) {\r\n lineHorizontalRef.current.style.opacity = \"1\";\r\n lineVerticalRef.current.style.opacity = \"1\";\r\n }\r\n target.removeEventListener(\"mousemove\", onFirstMove as any);\r\n };\r\n target.addEventListener(\"mousemove\", onFirstMove as any);\r\n\r\n const render = () => {\r\n renderedRef.current.x = lerp(renderedRef.current.x, mouseRef.current.x, 0.15);\r\n renderedRef.current.y = lerp(renderedRef.current.y, mouseRef.current.y, 0.15);\r\n\r\n if (lineHorizontalRef.current && lineVerticalRef.current) {\r\n lineVerticalRef.current.style.transform = `translateX(${renderedRef.current.x}px)`;\r\n lineHorizontalRef.current.style.transform = `translateY(${renderedRef.current.y}px)`;\r\n }\r\n\r\n animationRef.current = requestAnimationFrame(render);\r\n };\r\n\r\n render();\r\n\r\n return () => {\r\n target.removeEventListener(\"mousemove\", handleMouseMove as any);\r\n if (animationRef.current) {\r\n cancelAnimationFrame(animationRef.current);\r\n }\r\n };\r\n }, [containerRef]);\r\n\r\n return (\r\n <div\r\n ref={cursorRef}\r\n className={cn(\"pointer-events-none z-[10000]\", className)}\r\n style={{\r\n position: containerRef ? \"absolute\" : \"fixed\",\r\n top: 0,\r\n left: 0,\r\n width: \"100%\",\r\n height: \"100%\",\r\n }}\r\n >\r\n <div\r\n ref={lineHorizontalRef}\r\n style={{\r\n position: \"absolute\",\r\n width: \"100%\",\r\n height: \"1px\",\r\n background: color,\r\n pointerEvents: \"none\",\r\n opacity: 0,\r\n transition: \"opacity 0.3s ease\",\r\n }}\r\n />\r\n <div\r\n ref={lineVerticalRef}\r\n style={{\r\n position: \"absolute\",\r\n height: \"100%\",\r\n width: \"1px\",\r\n background: color,\r\n pointerEvents: \"none\",\r\n opacity: 0,\r\n transition: \"opacity 0.3s ease\",\r\n }}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport default Crosshair;\r\n","\"use client\";\r\n\r\nimport React, { useRef, useState, useEffect } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface ScrollTextProps {\r\n texts?: string[];\r\n className?: string;\r\n}\r\n\r\nexport function ScrollText({\r\n texts = [\r\n \"TailwindCSS\",\r\n \"React\",\r\n \"Next.js\",\r\n \"TypeScript\",\r\n \"Vercel\",\r\n \"Motion\",\r\n ],\r\n className,\r\n}: ScrollTextProps) {\r\n const [activeIndex, setActiveIndex] = useState(0);\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const itemsRef = useRef<(HTMLDivElement | null)[]>([]);\r\n\r\n useEffect(() => {\r\n if (!containerRef.current) return;\r\n\r\n const observer = new IntersectionObserver(\r\n (entries) => {\r\n entries.forEach((entry) => {\r\n if (entry.isIntersecting) {\r\n const index = itemsRef.current.findIndex(\r\n (item) => item === entry.target\r\n );\r\n if (index !== -1) {\r\n setActiveIndex(index);\r\n }\r\n }\r\n });\r\n },\r\n {\r\n threshold: 0.7,\r\n root: containerRef.current,\r\n rootMargin: \"-45% 0px -45% 0px\",\r\n }\r\n );\r\n\r\n itemsRef.current.forEach((item) => {\r\n if (item) observer.observe(item);\r\n });\r\n\r\n return () => observer.disconnect();\r\n }, [texts]);\r\n\r\n return (\r\n <div className={cn(\"w-full max-w-3xl mx-auto\", className)}>\r\n <div\r\n ref={containerRef}\r\n className={cn(\r\n \"h-[300px] overflow-y-auto\",\r\n \"relative flex flex-col items-center\",\r\n \"[&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]\"\r\n )}\r\n >\r\n <div className=\"h-[150px]\" />\r\n <div className=\"flex flex-col items-center w-full\">\r\n {texts.map((text, index) => (\r\n <div\r\n key={`${text}-${index}`}\r\n ref={(el) => {\r\n itemsRef.current[index] = el;\r\n }}\r\n className={cn(\r\n \"text-5xl font-bold py-8 px-4 whitespace-nowrap\",\r\n \"transition-all duration-300\",\r\n activeIndex === index\r\n ? \"text-zinc-900 dark:text-white scale-100 opacity-100\"\r\n : \"text-zinc-400/50 dark:text-zinc-600 scale-95 opacity-50\"\r\n )}\r\n >\r\n {text}\r\n </div>\r\n ))}\r\n </div>\r\n <div className=\"h-[150px]\" />\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default ScrollText;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface Specification {\r\n label: string;\r\n value: string;\r\n}\r\n\r\ninterface CardStackItem {\r\n id: string;\r\n title: string;\r\n subtitle: string;\r\n image: string;\r\n specs: Specification[];\r\n description?: string;\r\n}\r\n\r\ninterface CardProps {\r\n item: CardStackItem;\r\n index: number;\r\n totalCards: number;\r\n isExpanded: boolean;\r\n}\r\n\r\nconst Card = ({ item, index, totalCards, isExpanded }: CardProps) => {\r\n const centerOffset = (totalCards - 1) * 5;\r\n const defaultX = index * 10 - centerOffset;\r\n const defaultY = index * 2;\r\n const defaultRotate = index * 1.5;\r\n\r\n const cardWidth = 320;\r\n const cardOverlap = 240;\r\n const totalExpandedWidth = cardWidth + (totalCards - 1) * (cardWidth - cardOverlap);\r\n const expandedCenterOffset = totalExpandedWidth / 2;\r\n\r\n const spreadX = index * (cardWidth - cardOverlap) - expandedCenterOffset + cardWidth / 2;\r\n const spreadRotate = index * 5 - (totalCards - 1) * 2.5;\r\n\r\n return (\r\n <motion.div\r\n initial={{ x: defaultX, y: defaultY, rotate: defaultRotate, scale: 1 }}\r\n animate={{\r\n x: isExpanded ? spreadX : defaultX,\r\n y: isExpanded ? 0 : defaultY,\r\n rotate: isExpanded ? spreadRotate : defaultRotate,\r\n scale: 1,\r\n zIndex: totalCards - index,\r\n }}\r\n transition={{ type: \"spring\", stiffness: 350, damping: 30, mass: 0.8 }}\r\n className={cn(\r\n \"absolute inset-0 rounded-2xl p-6 w-full\",\r\n \"bg-gradient-to-br from-white/40 via-neutral-50/30 to-neutral-100/20\",\r\n \"dark:from-neutral-800/40 dark:via-neutral-900/30 dark:to-black/20\",\r\n \"border border-white/20 dark:border-neutral-800/20\",\r\n \"backdrop-blur-xl backdrop-saturate-150\",\r\n \"shadow-[0_8px_20px_rgb(0,0,0,0.08)] dark:shadow-[0_8px_20px_rgb(0,0,0,0.3)]\",\r\n \"transition-all duration-500 ease-out transform-gpu overflow-hidden\"\r\n )}\r\n style={{ maxWidth: \"320px\", left: \"50%\", marginLeft: \"-160px\" }}\r\n >\r\n <div className=\"absolute inset-1 rounded-xl bg-neutral-900/50 backdrop-blur-sm border border-neutral-200/50 dark:border-neutral-700/50\" />\r\n <div className=\"relative z-10\">\r\n <dl className=\"mb-4 grid grid-cols-4 gap-2\">\r\n {item.specs.map((spec) => (\r\n <div key={spec.label} className=\"text-[10px] flex flex-col items-start\">\r\n <dd className=\"font-medium text-gray-500 dark:text-gray-400\">{spec.value}</dd>\r\n <dt className=\"text-white dark:text-gray-100\">{spec.label}</dt>\r\n </div>\r\n ))}\r\n </dl>\r\n <div className=\"aspect-[16/11] w-full overflow-hidden rounded-lg bg-neutral-100 dark:bg-neutral-900 border border-neutral-200/50 dark:border-neutral-700/50\">\r\n <img src={item.image} alt={item.title} className=\"object-cover w-full h-full\" loading=\"lazy\" />\r\n </div>\r\n <div className=\"mt-4\">\r\n <h2 className=\"text-3xl font-bold tracking-tight text-white\">{item.title}</h2>\r\n <span className=\"block text-3xl font-semibold tracking-tight bg-gradient-to-r from-gray-400 via-gray-300 to-gray-500 bg-clip-text text-transparent\">\r\n {item.subtitle}\r\n </span>\r\n {item.description && <p className=\"mt-2 text-sm text-gray-500 dark:text-gray-400\">{item.description}</p>}\r\n </div>\r\n </div>\r\n </motion.div>\r\n );\r\n};\r\n\r\ninterface CardStackProps {\r\n items: CardStackItem[];\r\n className?: string;\r\n defaultExpanded?: boolean;\r\n}\r\n\r\nexport function CardStack({ items, className, defaultExpanded = false }: CardStackProps) {\r\n const [isExpanded, setIsExpanded] = useState(defaultExpanded);\r\n\r\n return (\r\n <button\r\n className={cn(\r\n \"relative mx-auto cursor-pointer min-h-[440px] w-full max-w-[90vw] md:max-w-[1200px]\",\r\n \"appearance-none bg-transparent border-0 p-0 flex items-center justify-center mb-8\",\r\n className\r\n )}\r\n onClick={() => setIsExpanded(!isExpanded)}\r\n aria-label=\"Toggle card stack\"\r\n type=\"button\"\r\n >\r\n {items.map((item, index) => (\r\n <Card key={item.id} item={item} index={index} totalCards={items.length} isExpanded={isExpanded} />\r\n ))}\r\n </button>\r\n );\r\n}\r\n\r\nexport type { CardStackItem, Specification };\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface ActivityData {\r\n label: string;\r\n value: number;\r\n color: string;\r\n size: number;\r\n current: number;\r\n target: number;\r\n unit: string;\r\n}\r\n\r\ninterface CircleProgressProps {\r\n data: ActivityData;\r\n index: number;\r\n}\r\n\r\nconst CircleProgress = ({ data, index }: CircleProgressProps) => {\r\n const strokeWidth = 16;\r\n const radius = (data.size - strokeWidth) / 2;\r\n const circumference = radius * 2 * Math.PI;\r\n const progress = ((100 - data.value) / 100) * circumference;\r\n const gradientId = `gradient-${data.label.toLowerCase()}-${index}`;\r\n\r\n return (\r\n <motion.div\r\n className=\"absolute inset-0 flex items-center justify-center\"\r\n initial={{ opacity: 0, scale: 0.8 }}\r\n animate={{ opacity: 1, scale: 1 }}\r\n transition={{ duration: 0.8, delay: index * 0.2, ease: \"easeOut\" }}\r\n >\r\n <svg\r\n width={data.size}\r\n height={data.size}\r\n viewBox={`0 0 ${data.size} ${data.size}`}\r\n className=\"transform -rotate-90\"\r\n aria-label={`${data.label} Activity Progress - ${data.value}%`}\r\n >\r\n <title>{`${data.label} Activity Progress - ${data.value}%`}</title>\r\n <defs>\r\n <linearGradient id={gradientId} x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\">\r\n <stop offset=\"0%\" style={{ stopColor: data.color, stopOpacity: 1 }} />\r\n <stop\r\n offset=\"100%\"\r\n style={{\r\n stopColor: data.color === \"#FF2D55\" ? \"#FF6B8B\" : data.color === \"#A3F900\" ? \"#C5FF4D\" : \"#4DDFED\",\r\n stopOpacity: 1,\r\n }}\r\n />\r\n </linearGradient>\r\n </defs>\r\n <circle\r\n cx={data.size / 2}\r\n cy={data.size / 2}\r\n r={radius}\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth={strokeWidth}\r\n className=\"text-zinc-200/50 dark:text-zinc-800/50\"\r\n />\r\n <motion.circle\r\n cx={data.size / 2}\r\n cy={data.size / 2}\r\n r={radius}\r\n fill=\"none\"\r\n stroke={`url(#${gradientId})`}\r\n strokeWidth={strokeWidth}\r\n strokeDasharray={circumference}\r\n initial={{ strokeDashoffset: circumference }}\r\n animate={{ strokeDashoffset: progress }}\r\n transition={{ duration: 1.8, delay: index * 0.2, ease: \"easeInOut\" }}\r\n strokeLinecap=\"round\"\r\n style={{ filter: \"drop-shadow(0 0 6px rgba(0,0,0,0.15))\" }}\r\n />\r\n </svg>\r\n </motion.div>\r\n );\r\n};\r\n\r\ninterface AppleActivityCardProps {\r\n title?: string;\r\n className?: string;\r\n activities?: ActivityData[];\r\n}\r\n\r\nconst defaultActivities: ActivityData[] = [\r\n { label: \"MOVE\", value: 85, color: \"#FF2D55\", size: 200, current: 479, target: 800, unit: \"CAL\" },\r\n { label: \"EXERCISE\", value: 60, color: \"#A3F900\", size: 160, current: 24, target: 30, unit: \"MIN\" },\r\n { label: \"STAND\", value: 30, color: \"#04C7DD\", size: 120, current: 6, target: 12, unit: \"HR\" },\r\n];\r\n\r\nexport function AppleActivityCard({ title = \"Activity Rings\", className, activities = defaultActivities }: AppleActivityCardProps) {\r\n return (\r\n <div className={cn(\"relative w-full max-w-3xl mx-auto p-8 rounded-3xl text-zinc-900 dark:text-white\", className)}>\r\n <div className=\"flex flex-col items-center gap-8\">\r\n <motion.h2\r\n className=\"text-2xl font-medium text-zinc-900 dark:text-white\"\r\n initial={{ opacity: 0, y: -20 }}\r\n animate={{ opacity: 1, y: 0 }}\r\n transition={{ duration: 0.5 }}\r\n >\r\n {title}\r\n </motion.h2>\r\n <div className=\"flex items-center\">\r\n <div className=\"relative w-[180px] h-[180px]\">\r\n {activities.map((activity, index) => (\r\n <CircleProgress key={activity.label} data={activity} index={index} />\r\n ))}\r\n </div>\r\n <motion.div\r\n className=\"flex flex-col gap-6 ml-8\"\r\n initial={{ opacity: 0, x: 20 }}\r\n animate={{ opacity: 1, x: 0 }}\r\n transition={{ duration: 0.5, delay: 0.3 }}\r\n >\r\n {activities.map((activity) => (\r\n <div key={activity.label} className=\"flex flex-col\">\r\n <span className=\"text-sm font-medium text-zinc-600 dark:text-zinc-400\">{activity.label}</span>\r\n <span className=\"text-2xl font-semibold\" style={{ color: activity.color }}>\r\n {activity.current}/{activity.target}\r\n <span className=\"text-base ml-1 text-zinc-600 dark:text-zinc-400\">{activity.unit}</span>\r\n </span>\r\n </div>\r\n ))}\r\n </motion.div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport type { ActivityData };\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface ReplyProps {\r\n authorName: string;\r\n authorHandle: string;\r\n authorImage: string;\r\n content: string;\r\n isVerified?: boolean;\r\n timestamp: string;\r\n}\r\n\r\ninterface TweetCardProps {\r\n authorName: string;\r\n authorHandle: string;\r\n authorImage: string;\r\n content: string[];\r\n isVerified?: boolean;\r\n timestamp: string;\r\n reply?: ReplyProps;\r\n href?: string;\r\n className?: string;\r\n}\r\n\r\nconst VerifiedIcon = ({ className }: { className?: string }) => (\r\n <svg className={className} viewBox=\"0 0 22 22\" fill=\"currentColor\">\r\n <path d=\"M20.396 11c-.018-.646-.215-1.275-.57-1.816-.354-.54-.852-.972-1.438-1.246.223-.607.27-1.264.14-1.897-.131-.634-.437-1.218-.882-1.687-.47-.445-1.053-.75-1.687-.882-.633-.13-1.29-.083-1.897.14-.273-.587-.704-1.086-1.245-1.44S11.647 1.62 11 1.604c-.646.017-1.273.213-1.813.568s-.969.854-1.24 1.44c-.608-.223-1.267-.272-1.902-.14-.635.13-1.22.436-1.69.882-.445.47-.749 1.055-.878 1.688-.13.633-.08 1.29.144 1.896-.587.274-1.087.705-1.443 1.245-.356.54-.555 1.17-.574 1.817.02.647.218 1.276.574 1.817.356.54.856.972 1.443 1.245-.224.606-.274 1.263-.144 1.896.13.634.433 1.218.877 1.688.47.443 1.054.747 1.687.878.633.132 1.29.084 1.897-.136.274.586.705 1.084 1.246 1.439.54.354 1.17.551 1.816.569.647-.016 1.276-.213 1.817-.567s.972-.854 1.245-1.44c.604.239 1.266.296 1.903.164.636-.132 1.22-.447 1.68-.907.46-.46.776-1.044.908-1.681s.075-1.299-.165-1.903c.586-.274 1.084-.705 1.439-1.246.354-.54.551-1.17.569-1.816zM9.662 14.85l-3.429-3.428 1.293-1.302 2.072 2.072 4.4-4.794 1.347 1.246z\" />\r\n </svg>\r\n);\r\n\r\nconst XIcon = ({ className }: { className?: string }) => (\r\n <svg className={className} viewBox=\"0 0 1200 1227\" fill=\"none\">\r\n <title>X</title>\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M714.163 519.284 1160.89 0h-105.86L667.137 450.887 357.328 0H0l468.492 681.821L0 1226.37h105.866l409.625-476.152 327.181 476.152H1200L714.137 519.284h.026ZM569.165 687.828l-47.468-67.894-377.686-540.24h162.604l304.797 435.991 47.468 67.894 396.2 566.721H892.476L569.165 687.854v-.026Z\"\r\n />\r\n </svg>\r\n);\r\n\r\nexport function TweetCard({\r\n authorName,\r\n authorHandle,\r\n authorImage,\r\n content,\r\n isVerified = false,\r\n timestamp,\r\n reply,\r\n href,\r\n className,\r\n}: TweetCardProps) {\r\n const Wrapper = href ? \"a\" : \"div\";\r\n const wrapperProps = href ? { href, target: \"_blank\", rel: \"noopener noreferrer\" } : {};\r\n\r\n return (\r\n <Wrapper\r\n {...wrapperProps}\r\n className={cn(\r\n \"block w-full min-w-[400px] md:min-w-[500px] max-w-xl p-1.5 rounded-2xl relative isolate overflow-hidden\",\r\n \"bg-black/90 dark:bg-black/90\",\r\n \"backdrop-blur-xl backdrop-saturate-[180%]\",\r\n \"border border-black/10 dark:border-white/10\",\r\n \"shadow-[0_8px_16px_rgb(0_0_0_/_0.15)] dark:shadow-[0_8px_16px_rgb(0_0_0_/_0.25)]\",\r\n className\r\n )}\r\n >\r\n <div\r\n className={cn(\r\n \"w-full p-5 rounded-xl relative\",\r\n \"bg-gradient-to-br from-black/[0.05] to-transparent dark:from-white/[0.08] dark:to-transparent\",\r\n \"backdrop-blur-md backdrop-saturate-150\",\r\n \"border border-black/[0.05] dark:border-white/[0.08]\",\r\n \"text-white/90 dark:text-white\"\r\n )}\r\n >\r\n <div className=\"flex gap-3\">\r\n <div className=\"shrink-0\">\r\n <div className=\"h-10 w-10 rounded-full overflow-hidden\">\r\n <img src={authorImage} alt={authorName} className=\"h-full w-full object-cover\" />\r\n </div>\r\n </div>\r\n <div className=\"flex-1\">\r\n <div className=\"flex justify-between items-start\">\r\n <div className=\"flex flex-col\">\r\n <div className=\"flex items-center gap-1\">\r\n <span className=\"font-semibold text-white dark:text-white/90 hover:underline cursor-pointer\">\r\n {authorName}\r\n </span>\r\n {isVerified && <VerifiedIcon className=\"h-4 w-4 text-blue-400\" />}\r\n </div>\r\n <span className=\"text-white/60 text-sm\">@{authorHandle}</span>\r\n </div>\r\n <div className=\"h-8 w-8 text-white/80 hover:text-white hover:bg-white/10 rounded-lg p-1 flex items-center justify-center\">\r\n <XIcon className=\"w-4 h-4\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"mt-2\">\r\n {content.map((item, index) => (\r\n <p key={index} className=\"text-white dark:text-white/90 text-base\">\r\n {item}\r\n </p>\r\n ))}\r\n <span className=\"text-white/50 text-sm mt-2 block\">{timestamp}</span>\r\n </div>\r\n {reply && (\r\n <div className=\"mt-4 pt-4 border-t border-white/[0.08]\">\r\n <div className=\"flex gap-3\">\r\n <div className=\"shrink-0\">\r\n <div className=\"h-10 w-10 rounded-full overflow-hidden\">\r\n <img src={reply.authorImage} alt={reply.authorName} className=\"h-full w-full object-cover\" />\r\n </div>\r\n </div>\r\n <div className=\"flex-1\">\r\n <div className=\"flex items-center gap-1\">\r\n <span className=\"font-semibold text-white/90 hover:underline cursor-pointer\">{reply.authorName}</span>\r\n {reply.isVerified && <VerifiedIcon className=\"h-4 w-4 text-blue-400\" />}\r\n <span className=\"text-white/60 text-sm\">@{reply.authorHandle}</span>\r\n <span className=\"text-white/60 text-sm\">·</span>\r\n <span className=\"text-white/60 text-sm\">{reply.timestamp}</span>\r\n </div>\r\n <p className=\"text-white/80 text-sm mt-1\">{reply.content}</p>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n </Wrapper>\r\n );\r\n}\r\n\r\nexport type { TweetCardProps, ReplyProps };\r\n","\"use client\";\r\n\r\nimport React, { useRef } from \"react\";\r\nimport { motion, useInView } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface StatItem {\r\n value: string;\r\n label: string;\r\n description?: string;\r\n icon?: React.ReactNode;\r\n trend?: {\r\n value: string;\r\n direction: \"up\" | \"down\";\r\n };\r\n}\r\n\r\ninterface StatsCardsProps {\r\n title?: string;\r\n description?: string;\r\n stats: StatItem[];\r\n className?: string;\r\n}\r\n\r\nexport function StatsCards({\r\n title = \"Key Metrics\",\r\n description = \"Track your success with these important numbers\",\r\n stats,\r\n className,\r\n}: StatsCardsProps) {\r\n const ref = useRef(null);\r\n const isInView = useInView(ref, { once: true });\r\n\r\n return (\r\n <div className={cn(\"min-h-[400px] w-full\", className)}>\r\n <section className=\"py-20\">\r\n <div className=\"mx-auto max-w-7xl px-6\">\r\n <motion.div\r\n initial={{ opacity: 0, y: 20 }}\r\n whileInView={{ opacity: 1, y: 0 }}\r\n transition={{ duration: 0.6 }}\r\n viewport={{ once: true }}\r\n className=\"mb-16 text-center\"\r\n >\r\n <h2 className=\"text-zinc-900 dark:text-zinc-100 mb-4 text-3xl font-bold lg:text-4xl\">{title}</h2>\r\n <p className=\"text-zinc-600 dark:text-zinc-400 mx-auto max-w-2xl text-lg\">{description}</p>\r\n </motion.div>\r\n\r\n <div ref={ref} className=\"grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-4\">\r\n {stats.map((stat, index) => (\r\n <motion.div\r\n key={stat.label}\r\n initial={{ opacity: 0, y: 30, scale: 0.9 }}\r\n animate={isInView ? { opacity: 1, y: 0, scale: 1 } : { opacity: 0, y: 30, scale: 0.9 }}\r\n transition={{ duration: 0.6, delay: index * 0.1, type: \"spring\", stiffness: 100 }}\r\n className=\"group border-zinc-300 dark:border-zinc-700 bg-transparent hover:border-zinc-500 dark:hover:border-zinc-600 relative overflow-hidden rounded-2xl border p-6 transition-all hover:scale-105 hover:shadow-xl\"\r\n >\r\n {stat.icon && (\r\n <motion.div\r\n className=\"mb-4 text-3xl text-zinc-900 dark:text-zinc-100\"\r\n initial={{ rotate: -10, scale: 0.8 }}\r\n animate={isInView ? { rotate: 0, scale: 1 } : { rotate: -10, scale: 0.8 }}\r\n transition={{ duration: 0.6, delay: index * 0.1 + 0.2, type: \"spring\", stiffness: 200 }}\r\n >\r\n {stat.icon}\r\n </motion.div>\r\n )}\r\n <motion.div\r\n className=\"text-zinc-900 dark:text-zinc-100 mb-1 text-2xl font-bold lg:text-3xl\"\r\n initial={{ scale: 0.5 }}\r\n animate={isInView ? { scale: 1 } : { scale: 0.5 }}\r\n transition={{ duration: 0.8, delay: index * 0.1 + 0.3, type: \"spring\", stiffness: 200 }}\r\n >\r\n {stat.value}\r\n </motion.div>\r\n <h3 className=\"text-zinc-900 dark:text-zinc-100 mb-2 text-sm font-semibold tracking-wide uppercase\">\r\n {stat.label}\r\n </h3>\r\n {stat.description && <p className=\"text-zinc-600 dark:text-zinc-400 mb-3 text-xs\">{stat.description}</p>}\r\n {stat.trend && (\r\n <motion.div\r\n className={cn(\r\n \"inline-flex items-center rounded-full px-2 py-1 text-xs font-medium\",\r\n stat.trend.direction === \"up\" ? \"bg-green-900/20 text-green-400\" : \"bg-red-900/20 text-red-400\"\r\n )}\r\n initial={{ opacity: 0, x: -10 }}\r\n animate={isInView ? { opacity: 1, x: 0 } : { opacity: 0, x: -10 }}\r\n transition={{ duration: 0.4, delay: index * 0.1 + 0.5 }}\r\n >\r\n <span className=\"mr-1\">{stat.trend.direction === \"up\" ? \"↗\" : \"↘\"}</span>\r\n {stat.trend.value}\r\n </motion.div>\r\n )}\r\n </motion.div>\r\n ))}\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n );\r\n}\r\n\r\nexport type { StatsCardsProps, StatItem };\r\n","\"use client\";\r\n\r\nimport { useRef } from \"react\";\r\nimport { motion, useInView } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface StatGridItem {\r\n value: string;\r\n label: string;\r\n description?: string;\r\n}\r\n\r\ninterface StatsGridProps {\r\n title?: string;\r\n description?: string;\r\n stats: StatGridItem[];\r\n className?: string;\r\n}\r\n\r\nexport function StatsGrid({\r\n title = \"Our Impact in Numbers\",\r\n description = \"See how we're making a difference across the globe\",\r\n stats,\r\n className,\r\n}: StatsGridProps) {\r\n const ref = useRef(null);\r\n const isInView = useInView(ref, { once: true });\r\n\r\n return (\r\n <div className={cn(\"min-h-[400px] w-full\", className)}>\r\n <section className=\"py-20\">\r\n <div className=\"mx-auto max-w-7xl px-6\">\r\n <motion.div\r\n initial={{ opacity: 0, y: 20 }}\r\n whileInView={{ opacity: 1, y: 0 }}\r\n transition={{ duration: 0.6 }}\r\n viewport={{ once: true }}\r\n className=\"mb-16 text-center\"\r\n >\r\n <h2 className=\"text-zinc-900 dark:text-zinc-100 mb-4 text-3xl font-bold lg:text-4xl\">{title}</h2>\r\n <p className=\"text-zinc-600 dark:text-zinc-400 mx-auto max-w-2xl text-lg\">{description}</p>\r\n </motion.div>\r\n\r\n <div ref={ref} className=\"grid grid-cols-1 gap-8 md:grid-cols-2 lg:grid-cols-4\">\r\n {stats.map((stat, index) => (\r\n <motion.div\r\n key={stat.label}\r\n initial={{ opacity: 0, y: 30 }}\r\n animate={isInView ? { opacity: 1, y: 0 } : { opacity: 0, y: 30 }}\r\n transition={{ duration: 0.6, delay: index * 0.1 }}\r\n className=\"group bg-transparent hover:border-zinc-500 dark:hover:border-zinc-600 relative overflow-hidden rounded-2xl border border-zinc-300 dark:border-zinc-700 p-8 text-center transition-all hover:shadow-lg\"\r\n >\r\n <motion.div\r\n className=\"text-zinc-900 dark:text-zinc-100 mb-2 text-4xl font-bold lg:text-5xl\"\r\n initial={{ scale: 0.5 }}\r\n animate={isInView ? { scale: 1 } : { scale: 0.5 }}\r\n transition={{ duration: 0.8, delay: index * 0.1 + 0.2, type: \"spring\", stiffness: 200 }}\r\n >\r\n {stat.value}\r\n </motion.div>\r\n <h3 className=\"text-zinc-900 dark:text-zinc-100 mb-2 text-lg font-semibold\">{stat.label}</h3>\r\n {stat.description && <p className=\"text-zinc-600 dark:text-zinc-400 text-sm\">{stat.description}</p>}\r\n </motion.div>\r\n ))}\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n );\r\n}\r\n\r\nexport type { StatsGridProps, StatGridItem };\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface BentoCardProps {\r\n name: string;\r\n className?: string;\r\n background?: React.ReactNode | string;\r\n Icon?: React.ComponentType<{ className?: string }>;\r\n description: string;\r\n href?: string;\r\n cta?: string;\r\n onClick?: () => void;\r\n}\r\n\r\ninterface BentoGridProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\nexport function BentoGrid({ children, className }: BentoGridProps) {\r\n return <div className={cn(\"grid w-full auto-rows-[22rem] grid-cols-3 gap-4\", className)}>{children}</div>;\r\n}\r\n\r\nexport function BentoCard({ name, className, background, Icon, description, href, cta, onClick }: BentoCardProps) {\r\n const Wrapper = href ? \"a\" : \"div\";\r\n const wrapperProps = href ? { href, target: \"_blank\", rel: \"noopener noreferrer\" } : {};\r\n\r\n return (\r\n <Wrapper\r\n {...wrapperProps}\r\n onClick={onClick}\r\n className={cn(\r\n \"group relative col-span-3 flex flex-col justify-between overflow-hidden rounded-xl cursor-pointer\",\r\n \"bg-white [box-shadow:0_0_0_1px_rgba(0,0,0,.03),0_2px_4px_rgba(0,0,0,.05),0_12px_24px_rgba(0,0,0,.05)]\",\r\n \"transform-gpu dark:bg-black dark:[border:1px_solid_rgba(255,255,255,.1)] dark:[box-shadow:0_-20px_80px_-20px_#ffffff1f_inset]\",\r\n className\r\n )}\r\n >\r\n {typeof background === \"string\" ? (\r\n <div className={cn(\"absolute inset-0\", background)} />\r\n ) : (\r\n <div className=\"absolute inset-0\">{background}</div>\r\n )}\r\n\r\n <div className=\"pointer-events-none z-10 flex transform-gpu flex-col gap-1 p-6 transition-all duration-300 group-hover:-translate-y-10\">\r\n {Icon && (\r\n <Icon className=\"h-12 w-12 origin-left transform-gpu text-neutral-700 transition-all duration-300 ease-in-out group-hover:scale-75 dark:text-neutral-300\" />\r\n )}\r\n <h3 className=\"text-xl font-semibold text-neutral-700 dark:text-neutral-300\">{name}</h3>\r\n <p className=\"max-w-lg text-neutral-400\">{description}</p>\r\n </div>\r\n\r\n {cta && (\r\n <div className=\"pointer-events-none absolute bottom-0 flex w-full translate-y-10 transform-gpu flex-row items-center p-4 opacity-0 transition-all duration-300 group-hover:translate-y-0 group-hover:opacity-100\">\r\n <span className=\"pointer-events-auto ml-auto flex items-center gap-2 rounded-lg bg-black px-4 py-2 text-white dark:bg-white dark:text-black\">\r\n {cta}\r\n <svg className=\"ml-2 h-4 w-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M9 5l7 7-7 7\" />\r\n </svg>\r\n </span>\r\n </div>\r\n )}\r\n <div className=\"pointer-events-none absolute inset-0 transform-gpu transition-all duration-300 group-hover:bg-black/[.03] group-hover:dark:bg-neutral-800/10\" />\r\n </Wrapper>\r\n );\r\n}\r\n\r\nexport type { BentoCardProps, BentoGridProps };\r\n","\"use client\";\r\n\r\nimport { useEffect, useRef } from \"react\";\r\n\r\ninterface AuroraProps {\r\n colorStops?: string[];\r\n amplitude?: number;\r\n blend?: number;\r\n speed?: number;\r\n className?: string;\r\n}\r\n\r\nexport function Aurora({\r\n colorStops = [\"#5227FF\", \"#7cff67\", \"#5227FF\"],\r\n amplitude = 1.0,\r\n blend = 0.5,\r\n speed = 1.0,\r\n className = \"\",\r\n}: AuroraProps) {\r\n const canvasRef = useRef<HTMLCanvasElement>(null);\r\n\r\n useEffect(() => {\r\n const canvas = canvasRef.current;\r\n if (!canvas) return;\r\n\r\n const ctx = canvas.getContext(\"2d\");\r\n if (!ctx) return;\r\n\r\n let animationId: number;\r\n let time = 0;\r\n\r\n const resize = () => {\r\n canvas.width = canvas.offsetWidth;\r\n canvas.height = canvas.offsetHeight;\r\n };\r\n\r\n const hexToRgb = (hex: string) => {\r\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\r\n return result\r\n ? {\r\n r: parseInt(result[1], 16),\r\n g: parseInt(result[2], 16),\r\n b: parseInt(result[3], 16),\r\n }\r\n : { r: 0, g: 0, b: 0 };\r\n };\r\n\r\n const draw = () => {\r\n if (!ctx || !canvas) return;\r\n\r\n ctx.clearRect(0, 0, canvas.width, canvas.height);\r\n\r\n const gradient = ctx.createLinearGradient(0, 0, canvas.width, 0);\r\n colorStops.forEach((color, i) => {\r\n gradient.addColorStop(i / (colorStops.length - 1), color);\r\n });\r\n\r\n for (let y = 0; y < canvas.height; y++) {\r\n const noise = Math.sin(y * 0.02 + time * speed * 0.1) * amplitude * 50;\r\n const alpha = Math.max(0, Math.min(1, (y / canvas.height) * blend + noise * 0.01));\r\n\r\n ctx.fillStyle = gradient;\r\n ctx.globalAlpha = alpha * 0.3;\r\n ctx.fillRect(0, y, canvas.width, 1);\r\n }\r\n\r\n ctx.globalAlpha = 1;\r\n time += 1;\r\n animationId = requestAnimationFrame(draw);\r\n };\r\n\r\n resize();\r\n window.addEventListener(\"resize\", resize);\r\n draw();\r\n\r\n return () => {\r\n window.removeEventListener(\"resize\", resize);\r\n cancelAnimationFrame(animationId);\r\n };\r\n }, [colorStops, amplitude, blend, speed]);\r\n\r\n return (\r\n <canvas\r\n ref={canvasRef}\r\n className={`absolute inset-0 w-full h-full ${className}`}\r\n />\r\n );\r\n}\r\n\r\nexport default Aurora;\r\n","\"use client\";\r\n\r\nimport { useEffect, useRef } from \"react\";\r\n\r\ninterface ThreadsProps {\r\n lineCount?: number;\r\n lineColor?: string;\r\n lineWidth?: number;\r\n speed?: number;\r\n amplitude?: number;\r\n className?: string;\r\n}\r\n\r\nexport function Threads({\r\n lineCount = 50,\r\n lineColor = \"rgba(255, 255, 255, 0.1)\",\r\n lineWidth = 1,\r\n speed = 0.5,\r\n amplitude = 100,\r\n className = \"\",\r\n}: ThreadsProps) {\r\n const canvasRef = useRef<HTMLCanvasElement>(null);\r\n const animationIdRef = useRef<number | null>(null);\r\n\r\n useEffect(() => {\r\n const canvas = canvasRef.current;\r\n if (!canvas) return;\r\n\r\n const ctx = canvas.getContext(\"2d\");\r\n if (!ctx) return;\r\n\r\n const resizeCanvas = () => {\r\n canvas.width = canvas.offsetWidth;\r\n canvas.height = canvas.offsetHeight;\r\n };\r\n\r\n window.addEventListener(\"resize\", resizeCanvas);\r\n resizeCanvas();\r\n\r\n const lines: Array<{ y: number; offset: number; speed: number }> = [];\r\n\r\n for (let i = 0; i < lineCount; i++) {\r\n lines.push({\r\n y: (canvas.height / lineCount) * i,\r\n offset: Math.random() * Math.PI * 2,\r\n speed: 0.5 + Math.random() * speed,\r\n });\r\n }\r\n\r\n let time = 0;\r\n\r\n const animate = () => {\r\n if (!ctx || !canvas) return;\r\n\r\n ctx.clearRect(0, 0, canvas.width, canvas.height);\r\n ctx.strokeStyle = lineColor;\r\n ctx.lineWidth = lineWidth;\r\n\r\n lines.forEach((line) => {\r\n ctx.beginPath();\r\n\r\n for (let x = 0; x <= canvas.width; x += 5) {\r\n const wave = Math.sin(x * 0.01 + time * line.speed + line.offset) * amplitude;\r\n const y = line.y + wave;\r\n\r\n if (x === 0) {\r\n ctx.moveTo(x, y);\r\n } else {\r\n ctx.lineTo(x, y);\r\n }\r\n }\r\n\r\n ctx.stroke();\r\n });\r\n\r\n time += 0.01;\r\n animationIdRef.current = requestAnimationFrame(animate);\r\n };\r\n\r\n animate();\r\n\r\n return () => {\r\n window.removeEventListener(\"resize\", resizeCanvas);\r\n if (animationIdRef.current) {\r\n cancelAnimationFrame(animationIdRef.current);\r\n }\r\n };\r\n }, [lineCount, lineColor, lineWidth, speed, amplitude]);\r\n\r\n return <canvas ref={canvasRef} className={`w-full h-full ${className}`} />;\r\n}\r\n\r\nexport default Threads;\r\n","\"use client\";\r\n\r\nimport { useRef, useEffect } from \"react\";\r\n\r\ninterface SquaresProps {\r\n direction?: \"diagonal\" | \"up\" | \"right\" | \"down\" | \"left\";\r\n speed?: number;\r\n borderColor?: string;\r\n squareSize?: number;\r\n hoverFillColor?: string;\r\n className?: string;\r\n}\r\n\r\nexport function Squares({\r\n direction = \"right\",\r\n speed = 1,\r\n borderColor = \"#999\",\r\n squareSize = 40,\r\n hoverFillColor = \"#222\",\r\n className = \"\",\r\n}: SquaresProps) {\r\n const canvasRef = useRef<HTMLCanvasElement>(null);\r\n const requestRef = useRef<number | null>(null);\r\n const gridOffset = useRef({ x: 0, y: 0 });\r\n const hoveredSquare = useRef<{ x: number; y: number } | null>(null);\r\n\r\n useEffect(() => {\r\n const canvas = canvasRef.current;\r\n if (!canvas) return;\r\n const ctx = canvas.getContext(\"2d\");\r\n\r\n const resizeCanvas = () => {\r\n canvas.width = canvas.offsetWidth;\r\n canvas.height = canvas.offsetHeight;\r\n };\r\n\r\n window.addEventListener(\"resize\", resizeCanvas);\r\n resizeCanvas();\r\n\r\n const drawGrid = () => {\r\n if (!ctx) return;\r\n ctx.clearRect(0, 0, canvas.width, canvas.height);\r\n\r\n const startX = Math.floor(gridOffset.current.x / squareSize) * squareSize;\r\n const startY = Math.floor(gridOffset.current.y / squareSize) * squareSize;\r\n\r\n for (let x = startX; x < canvas.width + squareSize; x += squareSize) {\r\n for (let y = startY; y < canvas.height + squareSize; y += squareSize) {\r\n const squareX = x - (gridOffset.current.x % squareSize);\r\n const squareY = y - (gridOffset.current.y % squareSize);\r\n\r\n if (\r\n hoveredSquare.current &&\r\n Math.floor((x - startX) / squareSize) === hoveredSquare.current.x &&\r\n Math.floor((y - startY) / squareSize) === hoveredSquare.current.y\r\n ) {\r\n ctx.fillStyle = hoverFillColor;\r\n ctx.fillRect(squareX, squareY, squareSize, squareSize);\r\n }\r\n\r\n ctx.strokeStyle = borderColor;\r\n ctx.strokeRect(squareX, squareY, squareSize, squareSize);\r\n }\r\n }\r\n };\r\n\r\n const updateAnimation = () => {\r\n const effectiveSpeed = Math.max(speed, 0.1);\r\n switch (direction) {\r\n case \"right\":\r\n gridOffset.current.x = (gridOffset.current.x - effectiveSpeed + squareSize) % squareSize;\r\n break;\r\n case \"left\":\r\n gridOffset.current.x = (gridOffset.current.x + effectiveSpeed + squareSize) % squareSize;\r\n break;\r\n case \"up\":\r\n gridOffset.current.y = (gridOffset.current.y + effectiveSpeed + squareSize) % squareSize;\r\n break;\r\n case \"down\":\r\n gridOffset.current.y = (gridOffset.current.y - effectiveSpeed + squareSize) % squareSize;\r\n break;\r\n case \"diagonal\":\r\n gridOffset.current.x = (gridOffset.current.x - effectiveSpeed + squareSize) % squareSize;\r\n gridOffset.current.y = (gridOffset.current.y - effectiveSpeed + squareSize) % squareSize;\r\n break;\r\n }\r\n\r\n drawGrid();\r\n requestRef.current = requestAnimationFrame(updateAnimation);\r\n };\r\n\r\n const handleMouseMove = (event: MouseEvent) => {\r\n const rect = canvas.getBoundingClientRect();\r\n const mouseX = event.clientX - rect.left;\r\n const mouseY = event.clientY - rect.top;\r\n\r\n const startX = Math.floor(gridOffset.current.x / squareSize) * squareSize;\r\n const startY = Math.floor(gridOffset.current.y / squareSize) * squareSize;\r\n\r\n hoveredSquare.current = {\r\n x: Math.floor((mouseX + gridOffset.current.x - startX) / squareSize),\r\n y: Math.floor((mouseY + gridOffset.current.y - startY) / squareSize),\r\n };\r\n };\r\n\r\n const handleMouseLeave = () => {\r\n hoveredSquare.current = null;\r\n };\r\n\r\n canvas.addEventListener(\"mousemove\", handleMouseMove);\r\n canvas.addEventListener(\"mouseleave\", handleMouseLeave);\r\n requestRef.current = requestAnimationFrame(updateAnimation);\r\n\r\n return () => {\r\n window.removeEventListener(\"resize\", resizeCanvas);\r\n if (requestRef.current) cancelAnimationFrame(requestRef.current);\r\n canvas.removeEventListener(\"mousemove\", handleMouseMove);\r\n canvas.removeEventListener(\"mouseleave\", handleMouseLeave);\r\n };\r\n }, [direction, speed, borderColor, hoverFillColor, squareSize]);\r\n\r\n return <canvas ref={canvasRef} className={`w-full h-full ${className}`} />;\r\n}\r\n\r\nexport default Squares;\r\n","\"use client\";\r\n\r\nimport { useRef, useEffect, CSSProperties } from \"react\";\r\n\r\ninterface WavesProps {\r\n lineColor?: string;\r\n backgroundColor?: string;\r\n waveSpeedX?: number;\r\n waveSpeedY?: number;\r\n waveAmpX?: number;\r\n waveAmpY?: number;\r\n xGap?: number;\r\n yGap?: number;\r\n friction?: number;\r\n tension?: number;\r\n maxCursorMove?: number;\r\n style?: CSSProperties;\r\n className?: string;\r\n}\r\n\r\nexport function Waves({\r\n lineColor = \"black\",\r\n backgroundColor = \"transparent\",\r\n waveSpeedX = 0.0125,\r\n waveSpeedY = 0.005,\r\n waveAmpX = 32,\r\n waveAmpY = 16,\r\n xGap = 10,\r\n yGap = 32,\r\n friction = 0.925,\r\n tension = 0.005,\r\n maxCursorMove = 100,\r\n style = {},\r\n className = \"\",\r\n}: WavesProps) {\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const canvasRef = useRef<HTMLCanvasElement>(null);\r\n const frameIdRef = useRef<number | null>(null);\r\n\r\n useEffect(() => {\r\n const canvas = canvasRef.current;\r\n const container = containerRef.current;\r\n if (!canvas || !container) return;\r\n\r\n const ctx = canvas.getContext(\"2d\");\r\n if (!ctx) return;\r\n\r\n let time = 0;\r\n\r\n const resize = () => {\r\n const rect = container.getBoundingClientRect();\r\n canvas.width = rect.width;\r\n canvas.height = rect.height;\r\n };\r\n\r\n const draw = () => {\r\n if (!ctx || !canvas) return;\r\n\r\n ctx.clearRect(0, 0, canvas.width, canvas.height);\r\n ctx.strokeStyle = lineColor;\r\n ctx.lineWidth = 1;\r\n\r\n const cols = Math.ceil(canvas.width / xGap);\r\n const rows = Math.ceil(canvas.height / yGap);\r\n\r\n for (let i = 0; i <= cols; i++) {\r\n ctx.beginPath();\r\n for (let j = 0; j <= rows; j++) {\r\n const x = i * xGap;\r\n const y = j * yGap;\r\n const waveX = Math.sin(y * 0.01 + time * waveSpeedX) * waveAmpX;\r\n const waveY = Math.cos(x * 0.01 + time * waveSpeedY) * waveAmpY;\r\n\r\n if (j === 0) {\r\n ctx.moveTo(x + waveX, y + waveY);\r\n } else {\r\n ctx.lineTo(x + waveX, y + waveY);\r\n }\r\n }\r\n ctx.stroke();\r\n }\r\n\r\n time += 1;\r\n frameIdRef.current = requestAnimationFrame(draw);\r\n };\r\n\r\n resize();\r\n window.addEventListener(\"resize\", resize);\r\n draw();\r\n\r\n return () => {\r\n window.removeEventListener(\"resize\", resize);\r\n if (frameIdRef.current !== null) {\r\n cancelAnimationFrame(frameIdRef.current);\r\n }\r\n };\r\n }, [lineColor, waveSpeedX, waveSpeedY, waveAmpX, waveAmpY, xGap, yGap]);\r\n\r\n return (\r\n <div\r\n ref={containerRef}\r\n className={`absolute inset-0 overflow-hidden ${className}`}\r\n style={{ backgroundColor, ...style }}\r\n >\r\n <canvas ref={canvasRef} className=\"w-full h-full\" />\r\n </div>\r\n );\r\n}\r\n\r\nexport default Waves;\r\n","import { CamelToPascal } from './utility-types';\n\n/**\n * Converts string to kebab case\n *\n * @param {string} string\n * @returns {string} A kebabized string\n */\nexport const toKebabCase = (string: string) =>\n string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n\n/**\n * Converts string to camel case\n *\n * @param {string} string\n * @returns {string} A camelized string\n */\nexport const toCamelCase = <T extends string>(string: T) =>\n string.replace(/^([A-Z])|[\\s-_]+(\\w)/g, (match, p1, p2) =>\n p2 ? p2.toUpperCase() : p1.toLowerCase(),\n );\n\n/**\n * Converts string to pascal case\n *\n * @param {string} string\n * @returns {string} A pascalized string\n */\nexport const toPascalCase = <T extends string>(string: T): CamelToPascal<T> => {\n const camelCase = toCamelCase(string);\n\n return (camelCase.charAt(0).toUpperCase() + camelCase.slice(1)) as CamelToPascal<T>;\n};\n\n/**\n * Merges classes into a single string\n *\n * @param {array} classes\n * @returns {string} A string of classes\n */\nexport const mergeClasses = <ClassType = string | undefined | null>(...classes: ClassType[]) =>\n classes\n .filter((className, index, array) => {\n return (\n Boolean(className) &&\n (className as string).trim() !== '' &&\n array.indexOf(className) === index\n );\n })\n .join(' ')\n .trim();\n\n/**\n * Is empty string\n *\n * @param {unknown} value\n * @returns {boolean} Whether the value is an empty string\n */\nexport const isEmptyString = (value: unknown): boolean => value === '';\n\n/**\n * Check if a component has an accessibility prop\n *\n * @param {object} props\n * @returns {boolean} Whether the component has an accessibility prop\n */\nexport const hasA11yProp = (props: Record<string, any>) => {\n for (const prop in props) {\n if (prop.startsWith('aria-') || prop === 'role' || prop === 'title') {\n return true;\n }\n }\n};\n","export default {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n};\n","import { createElement, forwardRef } from 'react';\nimport defaultAttributes from './defaultAttributes';\nimport { IconNode, LucideProps } from './types';\nimport { mergeClasses, hasA11yProp } from '@lucide/shared';\n\ninterface IconComponentProps extends LucideProps {\n iconNode: IconNode;\n}\n\n/**\n * Lucide icon component\n *\n * @component Icon\n * @param {object} props\n * @param {string} props.color - The color of the icon\n * @param {number} props.size - The size of the icon\n * @param {number} props.strokeWidth - The stroke width of the icon\n * @param {boolean} props.absoluteStrokeWidth - Whether to use absolute stroke width\n * @param {string} props.className - The class name of the icon\n * @param {IconNode} props.children - The children of the icon\n * @param {IconNode} props.iconNode - The icon node of the icon\n *\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst Icon = forwardRef<SVGSVGElement, IconComponentProps>(\n (\n {\n color = 'currentColor',\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = '',\n children,\n iconNode,\n ...rest\n },\n ref,\n ) =>\n createElement(\n 'svg',\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? (Number(strokeWidth) * 24) / Number(size) : strokeWidth,\n className: mergeClasses('lucide', className),\n ...(!children && !hasA11yProp(rest) && { 'aria-hidden': 'true' }),\n ...rest,\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]),\n ],\n ),\n);\n\nexport default Icon;\n","import { createElement, forwardRef } from 'react';\nimport { mergeClasses, toKebabCase, toPascalCase } from '@lucide/shared';\nimport { IconNode, LucideProps } from './types';\nimport Icon from './Icon';\n\n/**\n * Create a Lucide icon component\n * @param {string} iconName\n * @param {array} iconNode\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst createLucideIcon = (iconName: string, iconNode: IconNode) => {\n const Component = forwardRef<SVGSVGElement, LucideProps>(({ className, ...props }, ref) =>\n createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(\n `lucide-${toKebabCase(toPascalCase(iconName))}`,\n `lucide-${iconName}`,\n className,\n ),\n ...props,\n }),\n );\n\n Component.displayName = toPascalCase(iconName);\n\n return Component;\n};\n\nexport default createLucideIcon;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'm7 7 10 10', key: '1fmybs' }],\n ['path', { d: 'M17 7v10H7', key: '6fjiku' }],\n];\n\n/**\n * @component @name ArrowDownRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/arrow-down-right\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowDownRight = createLucideIcon('arrow-down-right', __iconNode);\n\nexport default ArrowDownRight;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16', key: 'jecpp' }],\n ['rect', { width: '20', height: '14', x: '2', y: '6', rx: '2', key: 'i6l2r4' }],\n];\n\n/**\n * @component @name Briefcase\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/briefcase\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Briefcase = createLucideIcon('briefcase', __iconNode);\n\nexport default Briefcase;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'M20 6 9 17l-5-5', key: '1gmf2c' }]];\n\n/**\n * @component @name Check\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/check\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Check = createLucideIcon('check', __iconNode);\n\nexport default Check;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'm6 9 6 6 6-6', key: 'qrunsl' }]];\n\n/**\n * @component @name ChevronDown\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/chevron-down\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronDown = createLucideIcon('chevron-down', __iconNode);\n\nexport default ChevronDown;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'm15 18-6-6 6-6', key: '1wnfg3' }]];\n\n/**\n * @component @name ChevronLeft\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/chevron-left\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronLeft = createLucideIcon('chevron-left', __iconNode);\n\nexport default ChevronLeft;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'm9 18 6-6-6-6', key: 'mthhwq' }]];\n\n/**\n * @component @name ChevronRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/chevron-right\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronRight = createLucideIcon('chevron-right', __iconNode);\n\nexport default ChevronRight;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 6v6l4 2', key: 'mmk7yg' }],\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n];\n\n/**\n * @component @name Clock\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/clock\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Clock = createLucideIcon('clock', __iconNode);\n\nexport default Clock;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n { d: 'M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3', key: '11bfej' },\n ],\n];\n\n/**\n * @component @name Command\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/command\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Command = createLucideIcon('command', __iconNode);\n\nexport default Command;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['line', { x1: '12', x2: '12', y1: '2', y2: '22', key: '7eqyqh' }],\n ['path', { d: 'M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6', key: '1b0p4s' }],\n];\n\n/**\n * @component @name DollarSign\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/dollar-sign\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst DollarSign = createLucideIcon('dollar-sign', __iconNode);\n\nexport default DollarSign;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M15 3h6v6', key: '1q9fwt' }],\n ['path', { d: 'M10 14 21 3', key: 'gplh6r' }],\n ['path', { d: 'M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6', key: 'a6xqqp' }],\n];\n\n/**\n * @component @name ExternalLink\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/external-link\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ExternalLink = createLucideIcon('external-link', __iconNode);\n\nexport default ExternalLink;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0',\n key: '1r0f0z',\n },\n ],\n ['circle', { cx: '12', cy: '10', r: '3', key: 'ilqhr7' }],\n];\n\n/**\n * @component @name MapPin\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/map-pin\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst MapPin = createLucideIcon('map-pin', __iconNode);\n\nexport default MapPin;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 19v3', key: 'npa21l' }],\n ['path', { d: 'M19 10v2a7 7 0 0 1-14 0v-2', key: '1vc78b' }],\n ['rect', { x: '9', y: '2', width: '6', height: '13', rx: '3', key: 's6n7sd' }],\n];\n\n/**\n * @component @name Mic\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/mic\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Mic = createLucideIcon('mic', __iconNode);\n\nexport default Mic;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'm16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551',\n key: '1miecu',\n },\n ],\n];\n\n/**\n * @component @name Paperclip\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/paperclip\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Paperclip = createLucideIcon('paperclip', __iconNode);\n\nexport default Paperclip;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'm21 21-4.34-4.34', key: '14j7rj' }],\n ['circle', { cx: '11', cy: '11', r: '8', key: '4ej97u' }],\n];\n\n/**\n * @component @name Search\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/search\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Search = createLucideIcon('search', __iconNode);\n\nexport default Search;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z',\n key: '1ffxy3',\n },\n ],\n ['path', { d: 'm21.854 2.147-10.94 10.939', key: '12cjpa' }],\n];\n\n/**\n * @component @name Send\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/send\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Send = createLucideIcon('send', __iconNode);\n\nexport default Send;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z',\n key: '1s2grr',\n },\n ],\n ['path', { d: 'M20 2v4', key: '1rf3ol' }],\n ['path', { d: 'M22 4h-4', key: 'gwowj6' }],\n ['circle', { cx: '4', cy: '20', r: '2', key: '6kqj1y' }],\n];\n\n/**\n * @component @name Sparkles\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/sparkles\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Sparkles = createLucideIcon('sparkles', __iconNode);\n\nexport default Sparkles;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z',\n key: 'r04s7s',\n },\n ],\n];\n\n/**\n * @component @name Star\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/star\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Star = createLucideIcon('star', __iconNode);\n\nexport default Star;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M18 6 6 18', key: '1bl5f8' }],\n ['path', { d: 'm6 6 12 12', key: 'd8bk6v' }],\n];\n\n/**\n * @component @name X\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/x\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst X = createLucideIcon('x', __iconNode);\n\nexport default X;\n","\"use client\";\r\n\r\nimport { ExternalLink } from \"lucide-react\";\r\n\r\ninterface HeroGridProps {\r\n heading?: string;\r\n highlightedText?: string;\r\n description?: string;\r\n primaryButton?: { text: string; url: string };\r\n secondaryButton?: { text: string; url: string };\r\n className?: string;\r\n}\r\n\r\nexport function HeroGrid({\r\n heading = \"Build your next project with\",\r\n highlightedText = \"Bynana UI\",\r\n description = \"Create stunning, animated interfaces in minutes.\",\r\n primaryButton = { text: \"Get Started\", url: \"#\" },\r\n secondaryButton = { text: \"Learn more\", url: \"#\" },\r\n className = \"\",\r\n}: HeroGridProps) {\r\n return (\r\n <section className={`relative overflow-hidden py-36 ${className}`}>\r\n <div className=\"relative z-10 flex flex-col items-center gap-6 text-center px-6\">\r\n <div>\r\n <h1 className=\"mb-6 text-2xl font-bold tracking-tight lg:text-5xl\">\r\n {heading}{\" \"}\r\n <span className=\"text-transparent bg-gradient-to-r from-pink-400 to-purple-400 bg-clip-text\">\r\n {highlightedText}\r\n </span>\r\n </h1>\r\n <p className=\"text-muted-foreground mx-auto max-w-3xl lg:text-xl\">{description}</p>\r\n </div>\r\n\r\n <div className=\"mt-6 flex justify-center gap-3\">\r\n <a\r\n href={primaryButton.url}\r\n className=\"border border-input hover:bg-accent px-6 py-3 rounded-md font-medium\"\r\n >\r\n {primaryButton.text}\r\n </a>\r\n <a\r\n href={secondaryButton.url}\r\n className=\"bg-primary text-primary-foreground hover:bg-primary/90 px-6 py-3 rounded-md font-medium inline-flex items-center gap-2\"\r\n >\r\n {secondaryButton.text}\r\n <ExternalLink className=\"w-4 h-4\" />\r\n </a>\r\n </div>\r\n </div>\r\n </section>\r\n );\r\n}\r\n\r\nexport default HeroGrid;\r\n","\"use client\";\r\n\r\nimport { Star, ArrowDownRight } from \"lucide-react\";\r\n\r\ninterface HeroShowcaseProps {\r\n heading?: string;\r\n description?: string;\r\n buttons?: {\r\n primary?: { text: string; url: string };\r\n secondary?: { text: string; url: string };\r\n };\r\n reviews?: {\r\n count: number;\r\n avatars: { src: string; alt: string }[];\r\n rating?: number;\r\n };\r\n className?: string;\r\n}\r\n\r\nexport function HeroShowcase({\r\n heading = \"Build beautiful UIs, effortlessly.\",\r\n description = \"Create stunning, animated interfaces in minutes.\",\r\n buttons = {\r\n primary: { text: \"Get Started\", url: \"#\" },\r\n secondary: { text: \"Watch demo\", url: \"#\" },\r\n },\r\n reviews = {\r\n count: 200,\r\n rating: 5.0,\r\n avatars: [\r\n { src: \"https://i.pravatar.cc/150?img=1\", alt: \"User 1\" },\r\n { src: \"https://i.pravatar.cc/150?img=2\", alt: \"User 2\" },\r\n { src: \"https://i.pravatar.cc/150?img=3\", alt: \"User 3\" },\r\n ],\r\n },\r\n className = \"\",\r\n}: HeroShowcaseProps) {\r\n return (\r\n <section className={`py-24 ${className}`}>\r\n <div className=\"mx-auto max-w-5xl px-6\">\r\n <div className=\"flex flex-col items-center text-center\">\r\n <h1 className=\"my-6 text-4xl font-bold lg:text-6xl\">{heading}</h1>\r\n <p className=\"text-muted-foreground mb-8 max-w-xl lg:text-xl\">{description}</p>\r\n\r\n <div className=\"mb-12 flex items-center gap-4\">\r\n <span className=\"inline-flex -space-x-4\">\r\n {reviews.avatars.map((avatar, index) => (\r\n <img\r\n key={index}\r\n src={avatar.src}\r\n alt={avatar.alt}\r\n className=\"size-12 rounded-full border-2 border-background\"\r\n />\r\n ))}\r\n </span>\r\n <div>\r\n <div className=\"flex items-center gap-1\">\r\n {[1, 2, 3, 4, 5].map((star) => (\r\n <Star key={star} className=\"size-5 fill-yellow-400 text-yellow-400\" />\r\n ))}\r\n <span className=\"ml-1 font-semibold\">{reviews.rating?.toFixed(1)}</span>\r\n </div>\r\n <p className=\"text-muted-foreground text-sm\">from {reviews.count}+ reviews</p>\r\n </div>\r\n </div>\r\n\r\n <div className=\"flex gap-4\">\r\n {buttons.primary && (\r\n <a\r\n href={buttons.primary.url}\r\n className=\"bg-primary text-primary-foreground hover:bg-primary/90 px-6 py-3 rounded-md font-medium\"\r\n >\r\n {buttons.primary.text}\r\n </a>\r\n )}\r\n {buttons.secondary && (\r\n <a\r\n href={buttons.secondary.url}\r\n className=\"border border-input hover:bg-accent px-6 py-3 rounded-md font-medium inline-flex items-center gap-2\"\r\n >\r\n {buttons.secondary.text}\r\n <ArrowDownRight className=\"size-4\" />\r\n </a>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n );\r\n}\r\n\r\nexport default HeroShowcase;\r\n","\"use client\";\r\n\r\nimport { useEffect, useRef, useState } from \"react\";\r\n\r\ninterface Testimonial {\r\n quote: string;\r\n avatar: string;\r\n name: string;\r\n role: string;\r\n}\r\n\r\ninterface TestimonialsSimpleProps {\r\n testimonials?: Testimonial[];\r\n duration?: number;\r\n className?: string;\r\n}\r\n\r\nexport function TestimonialsSimple({\r\n testimonials = [\r\n {\r\n quote: \"This has revolutionized how we build user interfaces. The animations are buttery smooth.\",\r\n avatar: \"https://i.pravatar.cc/150?img=1\",\r\n name: \"Eduardo Calvo\",\r\n role: \"CEO & Founder\",\r\n },\r\n {\r\n quote: \"The design system is incredibly well thought out. Every component feels intentional.\",\r\n avatar: \"https://i.pravatar.cc/150?img=2\",\r\n name: \"Drew Cano\",\r\n role: \"Head of Design\",\r\n },\r\n {\r\n quote: \"Best UI library I've used. The TypeScript support is excellent.\",\r\n avatar: \"https://i.pravatar.cc/150?img=3\",\r\n name: \"Marcus Johnson\",\r\n role: \"Lead Developer\",\r\n },\r\n ],\r\n duration = 5000,\r\n className = \"\",\r\n}: TestimonialsSimpleProps) {\r\n const [index, setIndex] = useState(0);\r\n const timeoutRef = useRef<NodeJS.Timeout | null>(null);\r\n\r\n useEffect(() => {\r\n timeoutRef.current = setTimeout(() => {\r\n setIndex((prev) => (prev + 1) % testimonials.length);\r\n }, duration);\r\n return () => {\r\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\r\n };\r\n }, [index, testimonials.length, duration]);\r\n\r\n return (\r\n <div className={`flex flex-col items-center justify-center py-16 ${className}`}>\r\n <div className=\"flex w-full max-w-5xl flex-col items-center justify-center px-4\">\r\n <blockquote className=\"mb-8 text-center text-2xl leading-tight font-semibold md:text-4xl transition-all duration-500\">\r\n \"{testimonials[index].quote}\"\r\n </blockquote>\r\n\r\n <div className=\"flex items-center gap-4\">\r\n <img\r\n src={testimonials[index].avatar}\r\n alt={testimonials[index].name}\r\n className=\"h-12 w-12 rounded-full border object-cover\"\r\n />\r\n <div className=\"border-l mx-4 h-8\" />\r\n <div className=\"text-left\">\r\n <div className=\"text-lg font-medium italic\">{testimonials[index].name}</div>\r\n <div className=\"text-muted-foreground text-base\">{testimonials[index].role}</div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"mx-auto mt-8 flex gap-3\">\r\n {testimonials.map((_, i) => (\r\n <span\r\n key={i}\r\n className={`block h-3 rounded-full transition-all duration-400 ${\r\n i === index ? \"w-12 bg-primary\" : \"w-3 bg-muted\"\r\n }`}\r\n />\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default TestimonialsSimple;\r\n","\"use client\";\r\n\r\nimport { useCallback, useEffect, useState } from \"react\";\r\nimport { ChevronLeft, ChevronRight } from \"lucide-react\";\r\n\r\ninterface Testimonial {\r\n content: string;\r\n avatar: string;\r\n name: string;\r\n role: string;\r\n}\r\n\r\ninterface TestimonialsGridProps {\r\n title?: string;\r\n description?: string;\r\n testimonials?: Testimonial[];\r\n autoplay?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport function TestimonialsGrid({\r\n title = \"What Developers Say\",\r\n description = \"See what developers are saying about their experience.\",\r\n testimonials = [\r\n {\r\n content: \"This has revolutionized how we build user interfaces.\",\r\n avatar: \"https://i.pravatar.cc/150?img=1\",\r\n name: \"Eduardo Calvo\",\r\n role: \"CEO & Founder\",\r\n },\r\n {\r\n content: \"The design system is incredibly well thought out.\",\r\n avatar: \"https://i.pravatar.cc/150?img=2\",\r\n name: \"Drew Cano\",\r\n role: \"Head of Design\",\r\n },\r\n {\r\n content: \"Best UI library I've used. Excellent TypeScript support.\",\r\n avatar: \"https://i.pravatar.cc/150?img=3\",\r\n name: \"Marcus Johnson\",\r\n role: \"Lead Developer\",\r\n },\r\n ],\r\n autoplay = false,\r\n className = \"\",\r\n}: TestimonialsGridProps) {\r\n const [active, setActive] = useState(0);\r\n\r\n const handleNext = useCallback(() => {\r\n setActive((prev) => (prev + 1) % testimonials.length);\r\n }, [testimonials.length]);\r\n\r\n const handlePrev = () => {\r\n setActive((prev) => (prev - 1 + testimonials.length) % testimonials.length);\r\n };\r\n\r\n useEffect(() => {\r\n if (autoplay) {\r\n const interval = setInterval(handleNext, 5000);\r\n return () => clearInterval(interval);\r\n }\r\n }, [autoplay, handleNext]);\r\n\r\n return (\r\n <div className={`py-24 ${className}`}>\r\n <div className=\"container mx-auto max-w-6xl px-6\">\r\n <div className=\"grid grid-cols-1 gap-8 lg:grid-cols-2 lg:gap-12\">\r\n <div className=\"flex flex-col justify-center\">\r\n <h2 className=\"mb-4 text-4xl font-semibold\">{title}</h2>\r\n <p className=\"text-muted-foreground text-lg\">{description}</p>\r\n </div>\r\n\r\n <div className=\"relative flex flex-col items-end\">\r\n <div className=\"mb-4 flex gap-2\">\r\n <button\r\n onClick={handlePrev}\r\n className=\"flex h-8 w-8 items-center justify-center rounded-full border hover:bg-accent\"\r\n >\r\n <ChevronLeft className=\"h-5 w-5\" />\r\n </button>\r\n <button\r\n onClick={handleNext}\r\n className=\"flex h-8 w-8 items-center justify-center rounded-full border hover:bg-accent\"\r\n >\r\n <ChevronRight className=\"h-5 w-5\" />\r\n </button>\r\n </div>\r\n\r\n <div className=\"relative h-full w-full max-w-md\">\r\n {testimonials.map((testimonial, index) => (\r\n <div\r\n key={testimonial.name}\r\n className={`absolute inset-0 transition-all duration-400 ${\r\n index === active ? \"opacity-100 scale-100 z-10\" : \"opacity-0 scale-95 z-0\"\r\n }`}\r\n >\r\n <div className=\"rounded-2xl border px-6 py-6 shadow-lg\">\r\n <p className=\"mb-6 text-lg\">{testimonial.content}</p>\r\n <div className=\"flex items-center gap-3\">\r\n <img\r\n src={testimonial.avatar}\r\n alt={testimonial.name}\r\n className=\"size-8 rounded-full border object-cover\"\r\n />\r\n <div>\r\n <div className=\"font-semibold\">{testimonial.name}</div>\r\n <span className=\"text-muted-foreground text-sm\">{testimonial.role}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default TestimonialsGrid;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { Check } from \"lucide-react\";\r\n\r\ninterface PricingPlan {\r\n name: string;\r\n price: { monthly: number; annually: number } | \"custom\";\r\n description: string;\r\n features: string[];\r\n featured?: boolean;\r\n buttonText?: string;\r\n}\r\n\r\ninterface PricingModernProps {\r\n title?: string;\r\n description?: string;\r\n plans?: PricingPlan[];\r\n className?: string;\r\n}\r\n\r\nexport function PricingModern({\r\n title = \"Choose your perfect plan\",\r\n description = \"Modern pricing plans designed for teams of all sizes.\",\r\n plans = [\r\n {\r\n name: \"Basic\",\r\n price: { monthly: 15, annually: 10 },\r\n description: \"Perfect for startups\",\r\n features: [\"1 Project\", \"Email Support\", \"Core Features\", \"Basic Analytics\"],\r\n },\r\n {\r\n name: \"Pro\",\r\n price: { monthly: 35, annually: 25 },\r\n description: \"Best for teams\",\r\n features: [\"Unlimited Projects\", \"Priority Support\", \"Team Collaboration\", \"Advanced Analytics\"],\r\n featured: true,\r\n },\r\n {\r\n name: \"Enterprise\",\r\n price: \"custom\",\r\n description: \"Tailored solutions\",\r\n features: [\"Everything in Pro\", \"Dedicated Manager\", \"Custom Integrations\", \"SLA & Support\"],\r\n buttonText: \"Contact Sales\",\r\n },\r\n ],\r\n className = \"\",\r\n}: PricingModernProps) {\r\n const [isAnnual, setIsAnnual] = useState(true);\r\n\r\n return (\r\n <section className={`py-16 md:py-32 ${className}`}>\r\n <div className=\"mx-auto max-w-5xl px-6\">\r\n <div className=\"mx-auto max-w-2xl text-center\">\r\n <h2 className=\"text-3xl font-bold md:text-4xl lg:text-5xl\">{title}</h2>\r\n <p className=\"text-muted-foreground mx-auto mt-4 max-w-xl text-lg\">{description}</p>\r\n\r\n <div className=\"my-12\">\r\n <div className=\"relative mx-auto grid w-fit grid-cols-2 rounded-full border p-1\">\r\n <div\r\n className={`pointer-events-none absolute inset-1 w-1/2 rounded-full bg-primary transition-transform duration-500 ${\r\n isAnnual ? \"translate-x-full\" : \"translate-x-0\"\r\n }`}\r\n />\r\n <button\r\n onClick={() => setIsAnnual(false)}\r\n className={`relative h-8 w-24 rounded-full text-sm ${!isAnnual ? \"text-primary-foreground font-medium\" : \"\"}`}\r\n >\r\n Monthly\r\n </button>\r\n <button\r\n onClick={() => setIsAnnual(true)}\r\n className={`relative h-8 w-24 rounded-full text-sm ${isAnnual ? \"text-primary-foreground font-medium\" : \"\"}`}\r\n >\r\n Annually\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"grid grid-cols-1 gap-6 md:grid-cols-3\">\r\n {plans.map((plan) => (\r\n <div\r\n key={plan.name}\r\n className={`relative flex flex-col rounded-2xl border p-8 ${\r\n plan.featured ? \"border-2 border-primary\" : \"\"\r\n }`}\r\n >\r\n {plan.featured && (\r\n <div className=\"absolute top-0 right-0 bg-primary text-primary-foreground rounded-full px-2 py-1 text-xs font-bold m-4\">\r\n Most Popular\r\n </div>\r\n )}\r\n\r\n <h3 className=\"mb-4 text-2xl font-bold\">{plan.name}</h3>\r\n\r\n <div className=\"mb-6\">\r\n <span className=\"text-3xl font-semibold\">\r\n {plan.price === \"custom\"\r\n ? \"Custom\"\r\n : `${isAnnual ? plan.price.annually : plan.price.monthly}€`}\r\n </span>\r\n <span className=\"text-muted-foreground mx-2\">•</span>\r\n <span className=\"text-muted-foreground\">{plan.description}</span>\r\n </div>\r\n\r\n <button className=\"bg-primary text-primary-foreground hover:bg-primary/90 mb-6 h-10 w-full rounded-md px-4 py-2 text-sm font-medium\">\r\n {plan.buttonText || \"Get Started\"}\r\n </button>\r\n\r\n <ul className=\"space-y-3\">\r\n {plan.features.map((feature) => (\r\n <li key={feature} className=\"flex items-center gap-3 text-sm\">\r\n <div className=\"flex h-4 w-4 items-center justify-center rounded-full bg-primary\">\r\n <Check className=\"h-2 w-2 text-primary-foreground\" />\r\n </div>\r\n {feature}\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </section>\r\n );\r\n}\r\n\r\nexport default PricingModern;\r\n","\"use client\";\r\n\r\ninterface FooterLink {\r\n name: string;\r\n url: string;\r\n}\r\n\r\ninterface FooterSimpleProps {\r\n companyName?: string;\r\n description?: string;\r\n links?: {\r\n product?: FooterLink[];\r\n company?: FooterLink[];\r\n support?: FooterLink[];\r\n };\r\n social?: {\r\n twitter?: string;\r\n linkedin?: string;\r\n github?: string;\r\n discord?: string;\r\n };\r\n copyright?: string;\r\n className?: string;\r\n}\r\n\r\nexport function FooterSimple({\r\n companyName = \"Bynana UI\",\r\n description = \"Build beautiful UIs, effortlessly.\",\r\n links = {\r\n product: [\r\n { name: \"Features\", url: \"#\" },\r\n { name: \"Pricing\", url: \"#\" },\r\n { name: \"Documentation\", url: \"#\" },\r\n ],\r\n company: [\r\n { name: \"About\", url: \"#\" },\r\n { name: \"Blog\", url: \"#\" },\r\n { name: \"Careers\", url: \"#\" },\r\n ],\r\n support: [\r\n { name: \"Help Center\", url: \"#\" },\r\n { name: \"Community\", url: \"#\" },\r\n { name: \"Status\", url: \"#\" },\r\n ],\r\n },\r\n copyright = \"© 2024 Bynana UI. All rights reserved.\",\r\n className = \"\",\r\n}: FooterSimpleProps) {\r\n return (\r\n <footer className={`border-t ${className}`}>\r\n <div className=\"mx-auto max-w-7xl px-6 py-12\">\r\n <div className=\"grid grid-cols-1 gap-8 md:grid-cols-2 lg:grid-cols-5\">\r\n <div className=\"lg:col-span-2\">\r\n <h3 className=\"mb-4 text-2xl font-bold\">{companyName}</h3>\r\n <p className=\"text-muted-foreground mb-6 max-w-md text-sm\">{description}</p>\r\n </div>\r\n\r\n <div className=\"grid grid-cols-1 gap-8 sm:grid-cols-3 lg:col-span-3\">\r\n {links.product && (\r\n <div>\r\n <h4 className=\"mb-4 text-sm font-semibold uppercase tracking-wide\">Product</h4>\r\n <ul className=\"space-y-3\">\r\n {links.product.map((link) => (\r\n <li key={link.name}>\r\n <a href={link.url} className=\"text-muted-foreground hover:text-foreground text-sm\">\r\n {link.name}\r\n </a>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n\r\n {links.company && (\r\n <div>\r\n <h4 className=\"mb-4 text-sm font-semibold uppercase tracking-wide\">Company</h4>\r\n <ul className=\"space-y-3\">\r\n {links.company.map((link) => (\r\n <li key={link.name}>\r\n <a href={link.url} className=\"text-muted-foreground hover:text-foreground text-sm\">\r\n {link.name}\r\n </a>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n\r\n {links.support && (\r\n <div>\r\n <h4 className=\"mb-4 text-sm font-semibold uppercase tracking-wide\">Support</h4>\r\n <ul className=\"space-y-3\">\r\n {links.support.map((link) => (\r\n <li key={link.name}>\r\n <a href={link.url} className=\"text-muted-foreground hover:text-foreground text-sm\">\r\n {link.name}\r\n </a>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n\r\n <div className=\"mt-12 border-t pt-8 text-center\">\r\n <p className=\"text-muted-foreground text-sm\">{copyright}</p>\r\n </div>\r\n </div>\r\n </footer>\r\n );\r\n}\r\n\r\nexport default FooterSimple;\r\n","\"use client\";\r\n\r\ninterface FooterLink {\r\n name: string;\r\n url: string;\r\n}\r\n\r\ninterface FooterComplexProps {\r\n companyName?: string;\r\n description?: string;\r\n newsletter?: {\r\n title: string;\r\n description: string;\r\n placeholder: string;\r\n buttonText: string;\r\n };\r\n links?: {\r\n product?: FooterLink[];\r\n company?: FooterLink[];\r\n support?: FooterLink[];\r\n legal?: FooterLink[];\r\n };\r\n copyright?: string;\r\n className?: string;\r\n}\r\n\r\nexport function FooterComplex({\r\n companyName = \"Bynana UI\",\r\n description = \"Build beautiful UIs, effortlessly. The modern way to create stunning interfaces.\",\r\n newsletter = {\r\n title: \"Stay updated\",\r\n description: \"Get the latest news delivered to your inbox.\",\r\n placeholder: \"Enter your email\",\r\n buttonText: \"Subscribe\",\r\n },\r\n links = {\r\n product: [\r\n { name: \"Features\", url: \"#\" },\r\n { name: \"Pricing\", url: \"#\" },\r\n { name: \"Documentation\", url: \"#\" },\r\n ],\r\n company: [\r\n { name: \"About Us\", url: \"#\" },\r\n { name: \"Blog\", url: \"#\" },\r\n { name: \"Careers\", url: \"#\" },\r\n ],\r\n support: [\r\n { name: \"Help Center\", url: \"#\" },\r\n { name: \"Community\", url: \"#\" },\r\n { name: \"Status Page\", url: \"#\" },\r\n ],\r\n legal: [\r\n { name: \"Privacy Policy\", url: \"#\" },\r\n { name: \"Terms of Service\", url: \"#\" },\r\n { name: \"Cookie Policy\", url: \"#\" },\r\n ],\r\n },\r\n copyright = \"© 2024 Bynana UI. All rights reserved.\",\r\n className = \"\",\r\n}: FooterComplexProps) {\r\n return (\r\n <footer className={`border-t ${className}`}>\r\n <div className=\"mx-auto max-w-7xl px-6 py-16\">\r\n <div className=\"grid grid-cols-1 gap-12 lg:grid-cols-12\">\r\n <div className=\"lg:col-span-5\">\r\n <h3 className=\"mb-4 text-2xl font-bold\">{companyName}</h3>\r\n <p className=\"text-muted-foreground mb-8 max-w-md text-sm leading-relaxed\">{description}</p>\r\n\r\n <div className=\"mb-8\">\r\n <h4 className=\"mb-2 text-lg font-semibold\">{newsletter.title}</h4>\r\n <p className=\"text-muted-foreground mb-4 text-sm\">{newsletter.description}</p>\r\n <div className=\"flex gap-2\">\r\n <input\r\n type=\"email\"\r\n placeholder={newsletter.placeholder}\r\n className=\"flex-1 rounded-lg border bg-background px-4 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring\"\r\n />\r\n <button className=\"bg-primary text-primary-foreground hover:bg-primary/90 rounded-lg px-6 py-2 text-sm font-medium\">\r\n {newsletter.buttonText}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"grid grid-cols-2 gap-8 lg:col-span-7 lg:grid-cols-4\">\r\n {links.product && (\r\n <div>\r\n <h4 className=\"mb-4 text-sm font-semibold uppercase tracking-wide\">Product</h4>\r\n <ul className=\"space-y-3\">\r\n {links.product.map((link) => (\r\n <li key={link.name}>\r\n <a href={link.url} className=\"text-muted-foreground hover:text-foreground text-sm\">\r\n {link.name}\r\n </a>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n\r\n {links.company && (\r\n <div>\r\n <h4 className=\"mb-4 text-sm font-semibold uppercase tracking-wide\">Company</h4>\r\n <ul className=\"space-y-3\">\r\n {links.company.map((link) => (\r\n <li key={link.name}>\r\n <a href={link.url} className=\"text-muted-foreground hover:text-foreground text-sm\">\r\n {link.name}\r\n </a>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n\r\n {links.support && (\r\n <div>\r\n <h4 className=\"mb-4 text-sm font-semibold uppercase tracking-wide\">Support</h4>\r\n <ul className=\"space-y-3\">\r\n {links.support.map((link) => (\r\n <li key={link.name}>\r\n <a href={link.url} className=\"text-muted-foreground hover:text-foreground text-sm\">\r\n {link.name}\r\n </a>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n\r\n {links.legal && (\r\n <div>\r\n <h4 className=\"mb-4 text-sm font-semibold uppercase tracking-wide\">Legal</h4>\r\n <ul className=\"space-y-3\">\r\n {links.legal.map((link) => (\r\n <li key={link.name}>\r\n <a href={link.url} className=\"text-muted-foreground hover:text-foreground text-sm\">\r\n {link.name}\r\n </a>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n\r\n <div className=\"mt-12 border-t pt-8 text-center\">\r\n <p className=\"text-muted-foreground text-sm\">{copyright}</p>\r\n </div>\r\n </div>\r\n </footer>\r\n );\r\n}\r\n\r\nexport default FooterComplex;\r\n","\"use client\";\r\n\r\nimport { ReactNode } from \"react\";\r\n\r\ninterface LogoCloudProps {\r\n title?: string;\r\n description?: string;\r\n logos?: Array<{\r\n name: string;\r\n logo: ReactNode;\r\n url?: string;\r\n }>;\r\n className?: string;\r\n}\r\n\r\nexport function LogoCloud({\r\n title = \"Trusted by the world's most innovative teams\",\r\n description = \"Join thousands of developers building with us\",\r\n logos = [],\r\n className = \"\",\r\n}: LogoCloudProps) {\r\n return (\r\n <div className={`overflow-hidden py-20 ${className}`}>\r\n <div className=\"mx-auto max-w-7xl px-6\">\r\n <div className=\"mb-16 text-center\">\r\n <h2 className=\"mb-4 text-2xl font-bold lg:text-3xl\">{title}</h2>\r\n <p className=\"text-muted-foreground text-lg\">{description}</p>\r\n </div>\r\n\r\n <div\r\n className=\"relative overflow-hidden\"\r\n style={{\r\n maskImage:\r\n \"linear-gradient(to right, transparent, black 20%, black 80%, transparent)\",\r\n WebkitMaskImage:\r\n \"linear-gradient(to right, transparent, black 20%, black 80%, transparent)\",\r\n }}\r\n >\r\n <div className=\"flex animate-scroll gap-8\">\r\n {[...logos, ...logos, ...logos].map((logo, index) => (\r\n <a\r\n key={`${logo.name}-${index}`}\r\n href={logo.url}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n className=\"flex flex-shrink-0 items-center justify-center p-6 transition-all hover:scale-105\"\r\n >\r\n <div className=\"text-4xl hover:scale-110 transition-transform\">{logo.logo}</div>\r\n </a>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <style jsx>{`\r\n @keyframes scroll {\r\n 0% {\r\n transform: translateX(0);\r\n }\r\n 100% {\r\n transform: translateX(-33.333%);\r\n }\r\n }\r\n .animate-scroll {\r\n animation: scroll 25s linear infinite;\r\n }\r\n `}</style>\r\n </div>\r\n );\r\n}\r\n\r\nexport default LogoCloud;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { ChevronDown } from \"lucide-react\";\r\n\r\ninterface FAQ {\r\n question: string;\r\n answer: string;\r\n}\r\n\r\ninterface FaqsAccordionProps {\r\n title?: string;\r\n description?: string;\r\n faqs?: FAQ[];\r\n className?: string;\r\n}\r\n\r\nexport function FaqsAccordion({\r\n title = \"Frequently Asked Questions\",\r\n description = \"Find answers to common questions about our product and services\",\r\n faqs = [\r\n {\r\n question: \"What is Bynana UI?\",\r\n answer:\r\n \"Bynana UI is a modern UI component library that provides beautiful, animated components for building stunning user interfaces.\",\r\n },\r\n {\r\n question: \"How do I get started?\",\r\n answer:\r\n \"Getting started is easy! Simply install the package via npm or yarn, import the components you need, and start building.\",\r\n },\r\n {\r\n question: \"Is it free to use?\",\r\n answer:\r\n \"Yes! Bynana UI is completely free. You can use it in both personal and commercial projects without any restrictions.\",\r\n },\r\n ],\r\n className = \"\",\r\n}: FaqsAccordionProps) {\r\n const [openIndex, setOpenIndex] = useState<number | null>(0);\r\n\r\n const toggleAccordion = (index: number) => {\r\n setOpenIndex(openIndex === index ? null : index);\r\n };\r\n\r\n return (\r\n <section className={`py-20 ${className}`}>\r\n <div className=\"mx-auto max-w-4xl px-6\">\r\n <div className=\"text-center mb-16\">\r\n <h2 className=\"mb-4 text-3xl font-bold lg:text-4xl\">{title}</h2>\r\n <p className=\"text-muted-foreground text-lg max-w-2xl mx-auto\">{description}</p>\r\n </div>\r\n\r\n <div className=\"space-y-4\">\r\n {faqs.map((faq, index) => (\r\n <div\r\n key={index}\r\n className=\"overflow-hidden rounded-2xl border transition-all hover:border-primary/50\"\r\n >\r\n <button\r\n onClick={() => toggleAccordion(index)}\r\n className=\"flex w-full items-center justify-between p-6 text-left hover:bg-accent/50\"\r\n >\r\n <h3 className=\"text-lg font-semibold pr-4\">{faq.question}</h3>\r\n <ChevronDown\r\n className={`h-5 w-5 text-muted-foreground transition-transform duration-300 ${\r\n openIndex === index ? \"rotate-180\" : \"\"\r\n }`}\r\n />\r\n </button>\r\n\r\n <div\r\n className={`overflow-hidden transition-all duration-300 ${\r\n openIndex === index ? \"max-h-96\" : \"max-h-0\"\r\n }`}\r\n >\r\n <div className=\"px-6 pb-6\">\r\n <p className=\"text-muted-foreground leading-relaxed\">{faq.answer}</p>\r\n </div>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </section>\r\n );\r\n}\r\n\r\nexport default FaqsAccordion;\r\n","\"use client\";\r\n\r\nimport { useState, ReactNode } from \"react\";\r\n\r\ninterface FAQ {\r\n question: string;\r\n answer: string;\r\n icon?: ReactNode;\r\n}\r\n\r\ninterface FaqCategory {\r\n name: string;\r\n id: string;\r\n faqs: FAQ[];\r\n}\r\n\r\ninterface FaqsGridProps {\r\n title?: string;\r\n description?: string;\r\n categories?: FaqCategory[];\r\n className?: string;\r\n}\r\n\r\nexport function FaqsGrid({\r\n title = \"FAQs\",\r\n description = \"Discover quick and comprehensive answers to common questions.\",\r\n categories = [\r\n {\r\n name: \"General\",\r\n id: \"general\",\r\n faqs: [\r\n {\r\n question: \"How do I install?\",\r\n answer: \"You can install using npm or yarn. Run `npm install bynana-ui` in your project.\",\r\n },\r\n {\r\n question: \"What are the requirements?\",\r\n answer: \"Works with React 16.8+ and supports all modern browsers.\",\r\n },\r\n {\r\n question: \"Is it free to use?\",\r\n answer: \"Yes! Completely free for personal and commercial projects.\",\r\n },\r\n ],\r\n },\r\n {\r\n name: \"Components\",\r\n id: \"components\",\r\n faqs: [\r\n {\r\n question: \"How many components?\",\r\n answer: \"Over 150+ pre-built components including buttons, forms, navigation, and more.\",\r\n },\r\n {\r\n question: \"Can I customize styling?\",\r\n answer: \"Absolutely! All components are fully customizable using CSS variables or Tailwind.\",\r\n },\r\n {\r\n question: \"Are they accessible?\",\r\n answer: \"Yes, all components follow WCAG guidelines with proper ARIA attributes.\",\r\n },\r\n ],\r\n },\r\n ],\r\n className = \"\",\r\n}: FaqsGridProps) {\r\n const [activeTab, setActiveTab] = useState(0);\r\n\r\n return (\r\n <section className={`py-16 md:py-24 ${className}`}>\r\n <div className=\"mx-auto max-w-5xl px-6\">\r\n <div className=\"max-w-lg\">\r\n <h2 className=\"text-4xl font-semibold\">{title}</h2>\r\n <p className=\"text-muted-foreground mt-4 text-lg\">{description}</p>\r\n </div>\r\n\r\n <div className=\"mt-8 md:mt-12\">\r\n <div className=\"flex flex-wrap gap-2 border-b\">\r\n {categories.map((category, index) => (\r\n <button\r\n key={category.id}\r\n onClick={() => setActiveTab(index)}\r\n className={`relative rounded-t-lg px-4 py-2 text-sm font-medium transition-all ${\r\n activeTab === index ? \"text-foreground\" : \"text-muted-foreground hover:text-foreground\"\r\n }`}\r\n >\r\n {category.name}\r\n {activeTab === index && (\r\n <div className=\"absolute right-0 bottom-0 left-0 h-0.5 rounded-t-full bg-primary\" />\r\n )}\r\n </button>\r\n ))}\r\n </div>\r\n </div>\r\n\r\n <div className=\"mt-8\">\r\n <dl className=\"grid gap-12 sm:grid-cols-2 lg:grid-cols-3\">\r\n {categories[activeTab].faqs.map((faq, faqIndex) => (\r\n <div key={faqIndex} className=\"space-y-3\">\r\n <dt className=\"font-semibold\">{faq.question}</dt>\r\n <dd className=\"text-muted-foreground\">{faq.answer}</dd>\r\n </div>\r\n ))}\r\n </dl>\r\n </div>\r\n </div>\r\n </section>\r\n );\r\n}\r\n\r\nexport default FaqsGrid;\r\n","\"use client\";\r\n\r\nimport { useEffect, useState } from \"react\";\r\nimport { ChevronLeft, ChevronRight } from \"lucide-react\";\r\n\r\ninterface TeamMember {\r\n name: string;\r\n role: string;\r\n experience: string;\r\n avatar: string;\r\n}\r\n\r\ninterface TeamCarouselProps {\r\n title?: string;\r\n subtitle?: string;\r\n description?: string;\r\n members?: TeamMember[];\r\n className?: string;\r\n}\r\n\r\nexport function TeamCarousel({\r\n title = \"Tech Pioneers\",\r\n subtitle = \"building the future\",\r\n description = \"We bring together brilliant developers and innovators.\",\r\n members = [\r\n {\r\n name: \"Emily Rodriguez\",\r\n role: \"Product Manager\",\r\n experience: \"6+ years\",\r\n avatar: \"https://i.pravatar.cc/160?img=1\",\r\n },\r\n {\r\n name: \"Mollie Hall\",\r\n role: \"CTO\",\r\n experience: \"12+ years\",\r\n avatar: \"https://i.pravatar.cc/160?img=2\",\r\n },\r\n {\r\n name: \"Alec Whitten\",\r\n role: \"UX Researcher\",\r\n experience: \"5+ years\",\r\n avatar: \"https://i.pravatar.cc/160?img=3\",\r\n },\r\n ],\r\n className = \"\",\r\n}: TeamCarouselProps) {\r\n const [currentIndex, setCurrentIndex] = useState(0);\r\n const [isAutoPlaying, setIsAutoPlaying] = useState(true);\r\n const cardsPerView = 3;\r\n\r\n useEffect(() => {\r\n if (!isAutoPlaying) return;\r\n\r\n const interval = setInterval(() => {\r\n setCurrentIndex((prev) => (prev + 1) % Math.max(1, members.length - cardsPerView + 1));\r\n }, 5000);\r\n\r\n return () => clearInterval(interval);\r\n }, [members.length, isAutoPlaying]);\r\n\r\n const nextSlide = () => {\r\n const maxIndex = Math.max(0, members.length - cardsPerView);\r\n if (currentIndex >= maxIndex) return;\r\n setCurrentIndex((prev) => Math.min(prev + 1, maxIndex));\r\n setIsAutoPlaying(false);\r\n setTimeout(() => setIsAutoPlaying(true), 1500);\r\n };\r\n\r\n const prevSlide = () => {\r\n if (currentIndex <= 0) return;\r\n setCurrentIndex((prev) => Math.max(prev - 1, 0));\r\n setIsAutoPlaying(false);\r\n setTimeout(() => setIsAutoPlaying(true), 1500);\r\n };\r\n\r\n return (\r\n <section className={`overflow-hidden py-32 ${className}`}>\r\n <div className=\"mx-auto max-w-5xl px-8 lg:px-0\">\r\n <div>\r\n <h2 className=\"text-5xl font-medium md:text-6xl\">\r\n {title} <br />\r\n <span className=\"text-muted-foreground\">{subtitle}</span>\r\n </h2>\r\n <p className=\"text-muted-foreground mt-6 max-w-md\">{description}</p>\r\n </div>\r\n\r\n <div className=\"relative\">\r\n <div className=\"mt-4 hidden items-center justify-end gap-4 md:flex\">\r\n <button\r\n onClick={prevSlide}\r\n disabled={currentIndex === 0}\r\n className=\"flex h-11 w-11 items-center justify-center rounded-full border hover:bg-accent disabled:opacity-50\"\r\n >\r\n <ChevronLeft className=\"h-5 w-5\" />\r\n </button>\r\n <button\r\n onClick={nextSlide}\r\n disabled={currentIndex >= members.length - cardsPerView}\r\n className=\"flex h-11 w-11 items-center justify-center rounded-full border hover:bg-accent disabled:opacity-50\"\r\n >\r\n <ChevronRight className=\"h-5 w-5\" />\r\n </button>\r\n </div>\r\n\r\n <div className=\"mt-16 overflow-hidden\">\r\n <div\r\n className=\"flex gap-4 transition-transform duration-500\"\r\n style={{ transform: `translateX(-${currentIndex * 304}px)` }}\r\n >\r\n {members.map((member) => (\r\n <div key={member.name} className=\"w-72 flex-shrink-0 rounded-2xl border p-7 text-center\">\r\n <img\r\n src={member.avatar}\r\n alt={member.name}\r\n className=\"mx-auto h-20 w-20 rounded-full border\"\r\n />\r\n <div className=\"mt-6\">\r\n <p className=\"text-lg font-medium\">{member.name}</p>\r\n <p className=\"text-muted-foreground text-sm\">{member.role}</p>\r\n </div>\r\n <div className=\"my-6 h-px bg-border\" />\r\n <p className=\"text-muted-foreground text-sm\">{member.experience}</p>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n );\r\n}\r\n\r\nexport default TeamCarousel;\r\n","\"use client\";\r\n\r\nimport { MapPin, Clock, DollarSign, Briefcase } from \"lucide-react\";\r\n\r\ninterface Job {\r\n title: string;\r\n department: string;\r\n location: string;\r\n type: string;\r\n salary?: string;\r\n url?: string;\r\n}\r\n\r\ninterface JobListingProps {\r\n title?: string;\r\n description?: string;\r\n jobs?: Job[];\r\n className?: string;\r\n}\r\n\r\nexport function JobListing({\r\n title = \"Open Positions\",\r\n description = \"Join our team and help build the future of UI development.\",\r\n jobs = [\r\n {\r\n title: \"Senior Frontend Engineer\",\r\n department: \"Engineering\",\r\n location: \"Remote\",\r\n type: \"Full-time\",\r\n salary: \"$120k - $180k\",\r\n url: \"#\",\r\n },\r\n {\r\n title: \"Product Designer\",\r\n department: \"Design\",\r\n location: \"San Francisco, CA\",\r\n type: \"Full-time\",\r\n salary: \"$100k - $150k\",\r\n url: \"#\",\r\n },\r\n {\r\n title: \"Developer Advocate\",\r\n department: \"Marketing\",\r\n location: \"Remote\",\r\n type: \"Full-time\",\r\n salary: \"$90k - $130k\",\r\n url: \"#\",\r\n },\r\n ],\r\n className = \"\",\r\n}: JobListingProps) {\r\n return (\r\n <section className={`py-20 ${className}`}>\r\n <div className=\"mx-auto max-w-4xl px-6\">\r\n <div className=\"text-center mb-12\">\r\n <h2 className=\"mb-4 text-3xl font-bold lg:text-4xl\">{title}</h2>\r\n <p className=\"text-muted-foreground text-lg max-w-2xl mx-auto\">{description}</p>\r\n </div>\r\n\r\n <div className=\"space-y-4\">\r\n {jobs.map((job, index) => (\r\n <a\r\n key={index}\r\n href={job.url}\r\n className=\"block rounded-xl border p-6 transition-all hover:border-primary/50 hover:shadow-md\"\r\n >\r\n <div className=\"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between\">\r\n <div>\r\n <h3 className=\"text-xl font-semibold\">{job.title}</h3>\r\n <div className=\"mt-2 flex flex-wrap items-center gap-4 text-sm text-muted-foreground\">\r\n <span className=\"flex items-center gap-1\">\r\n <Briefcase className=\"h-4 w-4\" />\r\n {job.department}\r\n </span>\r\n <span className=\"flex items-center gap-1\">\r\n <MapPin className=\"h-4 w-4\" />\r\n {job.location}\r\n </span>\r\n <span className=\"flex items-center gap-1\">\r\n <Clock className=\"h-4 w-4\" />\r\n {job.type}\r\n </span>\r\n {job.salary && (\r\n <span className=\"flex items-center gap-1\">\r\n <DollarSign className=\"h-4 w-4\" />\r\n {job.salary}\r\n </span>\r\n )}\r\n </div>\r\n </div>\r\n <button className=\"bg-primary text-primary-foreground hover:bg-primary/90 rounded-md px-4 py-2 text-sm font-medium\">\r\n Apply Now\r\n </button>\r\n </div>\r\n </a>\r\n ))}\r\n </div>\r\n </div>\r\n </section>\r\n );\r\n}\r\n\r\nexport default JobListing;\r\n","\"use client\";\r\n\r\nimport { useState, useRef, useEffect } from \"react\";\r\nimport { Search, X, Command } from \"lucide-react\";\r\n\r\ninterface SearchResult {\r\n id: string;\r\n title: string;\r\n description?: string;\r\n category?: string;\r\n}\r\n\r\ninterface ElasticSearchProps {\r\n placeholder?: string;\r\n results?: SearchResult[];\r\n onSearch?: (query: string) => void;\r\n onSelect?: (result: SearchResult) => void;\r\n className?: string;\r\n}\r\n\r\nexport function ElasticSearch({\r\n placeholder = \"Search...\",\r\n results = [],\r\n onSearch,\r\n onSelect,\r\n className = \"\",\r\n}: ElasticSearchProps) {\r\n const [query, setQuery] = useState(\"\");\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [selectedIndex, setSelectedIndex] = useState(0);\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n\r\n useEffect(() => {\r\n if (query && onSearch) {\r\n onSearch(query);\r\n }\r\n }, [query, onSearch]);\r\n\r\n const handleKeyDown = (e: React.KeyboardEvent) => {\r\n if (e.key === \"ArrowDown\") {\r\n e.preventDefault();\r\n setSelectedIndex((prev) => Math.min(prev + 1, results.length - 1));\r\n } else if (e.key === \"ArrowUp\") {\r\n e.preventDefault();\r\n setSelectedIndex((prev) => Math.max(prev - 1, 0));\r\n } else if (e.key === \"Enter\" && results[selectedIndex]) {\r\n e.preventDefault();\r\n onSelect?.(results[selectedIndex]);\r\n setIsOpen(false);\r\n } else if (e.key === \"Escape\") {\r\n setIsOpen(false);\r\n }\r\n };\r\n\r\n return (\r\n <div className={`relative w-full max-w-lg ${className}`}>\r\n <div className=\"relative\">\r\n <Search className=\"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground\" />\r\n <input\r\n ref={inputRef}\r\n type=\"text\"\r\n value={query}\r\n onChange={(e) => {\r\n setQuery(e.target.value);\r\n setIsOpen(true);\r\n setSelectedIndex(0);\r\n }}\r\n onFocus={() => setIsOpen(true)}\r\n onKeyDown={handleKeyDown}\r\n placeholder={placeholder}\r\n className=\"w-full rounded-lg border bg-background py-2 pl-10 pr-10 text-sm outline-none focus:border-primary focus:ring-2 focus:ring-primary/20\"\r\n />\r\n {query && (\r\n <button\r\n onClick={() => {\r\n setQuery(\"\");\r\n inputRef.current?.focus();\r\n }}\r\n className=\"absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground\"\r\n >\r\n <X className=\"h-4 w-4\" />\r\n </button>\r\n )}\r\n </div>\r\n\r\n {isOpen && results.length > 0 && (\r\n <div className=\"absolute top-full left-0 right-0 mt-2 rounded-lg border bg-background shadow-lg z-50\">\r\n {results.map((result, index) => (\r\n <button\r\n key={result.id}\r\n onClick={() => {\r\n onSelect?.(result);\r\n setIsOpen(false);\r\n }}\r\n className={`w-full px-4 py-3 text-left hover:bg-accent ${\r\n index === selectedIndex ? \"bg-accent\" : \"\"\r\n }`}\r\n >\r\n <div className=\"font-medium\">{result.title}</div>\r\n {result.description && (\r\n <div className=\"text-sm text-muted-foreground\">{result.description}</div>\r\n )}\r\n </button>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nexport default ElasticSearch;\r\n","\"use client\";\r\n\r\nimport { useState, useEffect, useRef } from \"react\";\r\nimport { Search, Command, ArrowRight } from \"lucide-react\";\r\n\r\ninterface Action {\r\n id: string;\r\n label: string;\r\n shortcut?: string;\r\n icon?: React.ReactNode;\r\n onSelect?: () => void;\r\n}\r\n\r\ninterface ActionSearchBarProps {\r\n placeholder?: string;\r\n actions?: Action[];\r\n onSearch?: (query: string) => void;\r\n className?: string;\r\n}\r\n\r\nexport function ActionSearchBar({\r\n placeholder = \"Type a command or search...\",\r\n actions = [],\r\n onSearch,\r\n className = \"\",\r\n}: ActionSearchBarProps) {\r\n const [query, setQuery] = useState(\"\");\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [selectedIndex, setSelectedIndex] = useState(0);\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n\r\n const filteredActions = actions.filter((action) =>\r\n action.label.toLowerCase().includes(query.toLowerCase())\r\n );\r\n\r\n useEffect(() => {\r\n const handleKeyDown = (e: KeyboardEvent) => {\r\n if ((e.metaKey || e.ctrlKey) && e.key === \"k\") {\r\n e.preventDefault();\r\n setIsOpen(true);\r\n inputRef.current?.focus();\r\n }\r\n };\r\n\r\n document.addEventListener(\"keydown\", handleKeyDown);\r\n return () => document.removeEventListener(\"keydown\", handleKeyDown);\r\n }, []);\r\n\r\n const handleKeyDown = (e: React.KeyboardEvent) => {\r\n if (e.key === \"ArrowDown\") {\r\n e.preventDefault();\r\n setSelectedIndex((prev) => Math.min(prev + 1, filteredActions.length - 1));\r\n } else if (e.key === \"ArrowUp\") {\r\n e.preventDefault();\r\n setSelectedIndex((prev) => Math.max(prev - 1, 0));\r\n } else if (e.key === \"Enter\" && filteredActions[selectedIndex]) {\r\n e.preventDefault();\r\n filteredActions[selectedIndex].onSelect?.();\r\n setIsOpen(false);\r\n setQuery(\"\");\r\n } else if (e.key === \"Escape\") {\r\n setIsOpen(false);\r\n }\r\n };\r\n\r\n return (\r\n <div className={`relative w-full max-w-lg ${className}`}>\r\n <div className=\"relative\">\r\n <Search className=\"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground\" />\r\n <input\r\n ref={inputRef}\r\n type=\"text\"\r\n value={query}\r\n onChange={(e) => {\r\n setQuery(e.target.value);\r\n setIsOpen(true);\r\n setSelectedIndex(0);\r\n onSearch?.(e.target.value);\r\n }}\r\n onFocus={() => setIsOpen(true)}\r\n onKeyDown={handleKeyDown}\r\n placeholder={placeholder}\r\n className=\"w-full rounded-lg border bg-background py-2 pl-10 pr-16 text-sm outline-none focus:border-primary focus:ring-2 focus:ring-primary/20\"\r\n />\r\n <div className=\"absolute right-3 top-1/2 -translate-y-1/2 flex items-center gap-1 text-xs text-muted-foreground\">\r\n <Command className=\"h-3 w-3\" />\r\n <span>K</span>\r\n </div>\r\n </div>\r\n\r\n {isOpen && filteredActions.length > 0 && (\r\n <div className=\"absolute top-full left-0 right-0 mt-2 rounded-lg border bg-background shadow-lg z-50 overflow-hidden\">\r\n {filteredActions.map((action, index) => (\r\n <button\r\n key={action.id}\r\n onClick={() => {\r\n action.onSelect?.();\r\n setIsOpen(false);\r\n setQuery(\"\");\r\n }}\r\n className={`w-full px-4 py-3 text-left flex items-center justify-between hover:bg-accent ${\r\n index === selectedIndex ? \"bg-accent\" : \"\"\r\n }`}\r\n >\r\n <div className=\"flex items-center gap-3\">\r\n {action.icon}\r\n <span>{action.label}</span>\r\n </div>\r\n {action.shortcut && (\r\n <span className=\"text-xs text-muted-foreground\">{action.shortcut}</span>\r\n )}\r\n </button>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nexport default ActionSearchBar;\r\n","\"use client\";\r\n\r\ninterface AILoadingProps {\r\n text?: string;\r\n className?: string;\r\n}\r\n\r\nexport function AILoading({ text = \"Thinking...\", className = \"\" }: AILoadingProps) {\r\n return (\r\n <div className={`flex items-center gap-3 ${className}`}>\r\n <div className=\"flex gap-1\">\r\n <span\r\n className=\"h-2 w-2 rounded-full bg-primary animate-bounce\"\r\n style={{ animationDelay: \"0ms\" }}\r\n />\r\n <span\r\n className=\"h-2 w-2 rounded-full bg-primary animate-bounce\"\r\n style={{ animationDelay: \"150ms\" }}\r\n />\r\n <span\r\n className=\"h-2 w-2 rounded-full bg-primary animate-bounce\"\r\n style={{ animationDelay: \"300ms\" }}\r\n />\r\n </div>\r\n <span className=\"text-sm text-muted-foreground\">{text}</span>\r\n </div>\r\n );\r\n}\r\n\r\nexport default AILoading;\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { Send, Sparkles } from \"lucide-react\";\r\n\r\ninterface AIPromptProps {\r\n title?: string;\r\n placeholder?: string;\r\n suggestions?: string[];\r\n onSubmit?: (message: string) => void;\r\n className?: string;\r\n}\r\n\r\nexport function AIPrompt({\r\n title = \"How can I help you today?\",\r\n placeholder = \"Type your message...\",\r\n suggestions = [\"Write a blog post\", \"Generate code\", \"Explain a concept\", \"Create a summary\"],\r\n onSubmit,\r\n className = \"\",\r\n}: AIPromptProps) {\r\n const [value, setValue] = useState(\"\");\r\n\r\n const handleSubmit = (e: React.FormEvent) => {\r\n e.preventDefault();\r\n if (value.trim() && onSubmit) {\r\n onSubmit(value.trim());\r\n setValue(\"\");\r\n }\r\n };\r\n\r\n const handleSuggestion = (suggestion: string) => {\r\n setValue(suggestion);\r\n if (onSubmit) {\r\n onSubmit(suggestion);\r\n }\r\n };\r\n\r\n return (\r\n <div className={`w-full max-w-2xl mx-auto ${className}`}>\r\n <div className=\"text-center mb-8\">\r\n <div className=\"inline-flex items-center justify-center w-12 h-12 rounded-full bg-primary/10 mb-4\">\r\n <Sparkles className=\"h-6 w-6 text-primary\" />\r\n </div>\r\n <h2 className=\"text-2xl font-bold\">{title}</h2>\r\n </div>\r\n\r\n <form onSubmit={handleSubmit} className=\"relative mb-6\">\r\n <textarea\r\n value={value}\r\n onChange={(e) => setValue(e.target.value)}\r\n placeholder={placeholder}\r\n rows={3}\r\n className=\"w-full rounded-xl border bg-background px-4 py-3 pr-12 text-sm outline-none focus:border-primary focus:ring-2 focus:ring-primary/20 resize-none\"\r\n />\r\n <button\r\n type=\"submit\"\r\n disabled={!value.trim()}\r\n className=\"absolute right-3 bottom-3 rounded-lg bg-primary p-2 text-primary-foreground hover:bg-primary/90 disabled:opacity-50\"\r\n >\r\n <Send className=\"h-4 w-4\" />\r\n </button>\r\n </form>\r\n\r\n <div className=\"flex flex-wrap gap-2 justify-center\">\r\n {suggestions.map((suggestion, index) => (\r\n <button\r\n key={index}\r\n onClick={() => handleSuggestion(suggestion)}\r\n className=\"rounded-full border px-4 py-2 text-sm hover:bg-accent transition-colors\"\r\n >\r\n {suggestion}\r\n </button>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default AIPrompt;\r\n","\"use client\";\r\n\r\nimport { useState, useRef, useEffect } from \"react\";\r\nimport { Send, Mic, Paperclip, Sparkles } from \"lucide-react\";\r\n\r\ninterface AIBarProps {\r\n placeholder?: string;\r\n onSubmit?: (message: string) => void;\r\n showMic?: boolean;\r\n showAttach?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport function AIBar({\r\n placeholder = \"Ask me anything...\",\r\n onSubmit,\r\n showMic = true,\r\n showAttach = true,\r\n className = \"\",\r\n}: AIBarProps) {\r\n const [value, setValue] = useState(\"\");\r\n const [isFocused, setIsFocused] = useState(false);\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n\r\n const handleSubmit = (e: React.FormEvent) => {\r\n e.preventDefault();\r\n if (value.trim() && onSubmit) {\r\n onSubmit(value.trim());\r\n setValue(\"\");\r\n }\r\n };\r\n\r\n return (\r\n <form\r\n onSubmit={handleSubmit}\r\n className={`relative flex items-center gap-2 rounded-full border bg-background px-4 py-2 transition-all ${\r\n isFocused ? \"border-primary ring-2 ring-primary/20\" : \"\"\r\n } ${className}`}\r\n >\r\n <Sparkles className=\"h-5 w-5 text-primary\" />\r\n\r\n <input\r\n ref={inputRef}\r\n type=\"text\"\r\n value={value}\r\n onChange={(e) => setValue(e.target.value)}\r\n onFocus={() => setIsFocused(true)}\r\n onBlur={() => setIsFocused(false)}\r\n placeholder={placeholder}\r\n className=\"flex-1 bg-transparent text-sm outline-none placeholder:text-muted-foreground\"\r\n />\r\n\r\n <div className=\"flex items-center gap-1\">\r\n {showAttach && (\r\n <button\r\n type=\"button\"\r\n className=\"rounded-full p-2 hover:bg-accent text-muted-foreground hover:text-foreground\"\r\n >\r\n <Paperclip className=\"h-4 w-4\" />\r\n </button>\r\n )}\r\n\r\n {showMic && (\r\n <button\r\n type=\"button\"\r\n className=\"rounded-full p-2 hover:bg-accent text-muted-foreground hover:text-foreground\"\r\n >\r\n <Mic className=\"h-4 w-4\" />\r\n </button>\r\n )}\r\n\r\n <button\r\n type=\"submit\"\r\n disabled={!value.trim()}\r\n className=\"rounded-full bg-primary p-2 text-primary-foreground hover:bg-primary/90 disabled:opacity-50\"\r\n >\r\n <Send className=\"h-4 w-4\" />\r\n </button>\r\n </div>\r\n </form>\r\n );\r\n}\r\n\r\nexport default AIBar;\r\n","\"use client\";\r\n\r\nimport { useEffect, useRef, useState, ReactNode } from \"react\";\r\n\r\ninterface ScrollRevealProps {\r\n children: ReactNode;\r\n direction?: \"up\" | \"down\" | \"left\" | \"right\";\r\n distance?: number;\r\n duration?: number;\r\n delay?: number;\r\n className?: string;\r\n}\r\n\r\nexport function ScrollReveal({\r\n children,\r\n direction = \"up\",\r\n distance = 30,\r\n duration = 0.6,\r\n delay = 0,\r\n className = \"\",\r\n}: ScrollRevealProps) {\r\n const ref = useRef<HTMLDivElement>(null);\r\n const [isVisible, setIsVisible] = useState(false);\r\n\r\n useEffect(() => {\r\n const observer = new IntersectionObserver(\r\n ([entry]) => {\r\n if (entry.isIntersecting) {\r\n setIsVisible(true);\r\n observer.disconnect();\r\n }\r\n },\r\n { threshold: 0.1 }\r\n );\r\n\r\n if (ref.current) {\r\n observer.observe(ref.current);\r\n }\r\n\r\n return () => observer.disconnect();\r\n }, []);\r\n\r\n const getTransform = () => {\r\n if (isVisible) return \"translate(0, 0)\";\r\n switch (direction) {\r\n case \"up\":\r\n return `translateY(${distance}px)`;\r\n case \"down\":\r\n return `translateY(-${distance}px)`;\r\n case \"left\":\r\n return `translateX(${distance}px)`;\r\n case \"right\":\r\n return `translateX(-${distance}px)`;\r\n default:\r\n return `translateY(${distance}px)`;\r\n }\r\n };\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className={className}\r\n style={{\r\n transform: getTransform(),\r\n opacity: isVisible ? 1 : 0,\r\n transition: `transform ${duration}s ease-out ${delay}s, opacity ${duration}s ease-out ${delay}s`,\r\n }}\r\n >\r\n {children}\r\n </div>\r\n );\r\n}\r\n\r\nexport default ScrollReveal;\r\n","\"use client\";\r\n\r\nimport { useEffect, useRef, useState, ReactNode } from \"react\";\r\n\r\ninterface ScrollFloatProps {\r\n children: ReactNode;\r\n offset?: number;\r\n duration?: number;\r\n className?: string;\r\n}\r\n\r\nexport function ScrollFloat({\r\n children,\r\n offset = 50,\r\n duration = 0.6,\r\n className = \"\",\r\n}: ScrollFloatProps) {\r\n const ref = useRef<HTMLDivElement>(null);\r\n const [isVisible, setIsVisible] = useState(false);\r\n\r\n useEffect(() => {\r\n const observer = new IntersectionObserver(\r\n ([entry]) => {\r\n if (entry.isIntersecting) {\r\n setIsVisible(true);\r\n observer.disconnect();\r\n }\r\n },\r\n { threshold: 0.1 }\r\n );\r\n\r\n if (ref.current) {\r\n observer.observe(ref.current);\r\n }\r\n\r\n return () => observer.disconnect();\r\n }, []);\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className={className}\r\n style={{\r\n transform: isVisible ? \"translateY(0)\" : `translateY(${offset}px)`,\r\n opacity: isVisible ? 1 : 0,\r\n transition: `transform ${duration}s ease-out, opacity ${duration}s ease-out`,\r\n }}\r\n >\r\n {children}\r\n </div>\r\n );\r\n}\r\n\r\nexport default ScrollFloat;\r\n","\"use client\";\r\n\r\nimport { useEffect, useRef, useState, ReactNode } from \"react\";\r\n\r\ninterface ScrollStackProps {\r\n children: ReactNode[];\r\n stagger?: number;\r\n className?: string;\r\n}\r\n\r\nexport function ScrollStack({ children, stagger = 0.1, className = \"\" }: ScrollStackProps) {\r\n const ref = useRef<HTMLDivElement>(null);\r\n const [isVisible, setIsVisible] = useState(false);\r\n\r\n useEffect(() => {\r\n const observer = new IntersectionObserver(\r\n ([entry]) => {\r\n if (entry.isIntersecting) {\r\n setIsVisible(true);\r\n observer.disconnect();\r\n }\r\n },\r\n { threshold: 0.1 }\r\n );\r\n\r\n if (ref.current) {\r\n observer.observe(ref.current);\r\n }\r\n\r\n return () => observer.disconnect();\r\n }, []);\r\n\r\n return (\r\n <div ref={ref} className={className}>\r\n {children.map((child, index) => (\r\n <div\r\n key={index}\r\n style={{\r\n transform: isVisible ? \"translateY(0)\" : \"translateY(30px)\",\r\n opacity: isVisible ? 1 : 0,\r\n transition: `transform 0.6s ease-out ${index * stagger}s, opacity 0.6s ease-out ${index * stagger}s`,\r\n }}\r\n >\r\n {child}\r\n </div>\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport default ScrollStack;\r\n","\"use client\";\r\n\r\nimport { useState, useEffect, useRef } from \"react\";\r\n\r\ninterface MagnetProps {\r\n children: React.ReactNode;\r\n padding?: number;\r\n disabled?: boolean;\r\n magnetStrength?: number;\r\n activeTransition?: string;\r\n inactiveTransition?: string;\r\n wrapperClassName?: string;\r\n innerClassName?: string;\r\n}\r\n\r\nexport function Magnet({\r\n children,\r\n padding = 100,\r\n disabled = false,\r\n magnetStrength = 8,\r\n activeTransition = \"transform 0.8s ease-out\",\r\n inactiveTransition = \"transform 1.2s ease-in-out\",\r\n wrapperClassName = \"\",\r\n innerClassName = \"\",\r\n ...props\r\n}: MagnetProps & React.HTMLAttributes<HTMLDivElement>) {\r\n const [isActive, setIsActive] = useState(false);\r\n const [position, setPosition] = useState({ x: 0, y: 0 });\r\n const magnetRef = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n if (disabled) {\r\n setPosition({ x: 0, y: 0 });\r\n return;\r\n }\r\n\r\n const handleMouseMove = (e: MouseEvent) => {\r\n if (!magnetRef.current) return;\r\n\r\n const { left, top, width, height } =\r\n magnetRef.current.getBoundingClientRect();\r\n const centerX = left + width / 2;\r\n const centerY = top + height / 2;\r\n\r\n const distX = Math.abs(centerX - e.clientX);\r\n const distY = Math.abs(centerY - e.clientY);\r\n\r\n if (distX < width / 2 + padding && distY < height / 2 + padding) {\r\n setIsActive(true);\r\n\r\n const offsetX = (e.clientX - centerX) / magnetStrength;\r\n const offsetY = (e.clientY - centerY) / magnetStrength;\r\n setPosition({ x: offsetX, y: offsetY });\r\n } else {\r\n setIsActive(false);\r\n setPosition({ x: 0, y: 0 });\r\n }\r\n };\r\n\r\n window.addEventListener(\"mousemove\", handleMouseMove);\r\n return () => {\r\n window.removeEventListener(\"mousemove\", handleMouseMove);\r\n };\r\n }, [padding, disabled, magnetStrength]);\r\n\r\n const transitionStyle = isActive ? activeTransition : inactiveTransition;\r\n\r\n return (\r\n <div\r\n ref={magnetRef}\r\n className={wrapperClassName}\r\n style={{ position: \"relative\", display: \"inline-block\" }}\r\n {...props}\r\n >\r\n <div\r\n className={innerClassName}\r\n style={{\r\n transform: `translate3d(${position.x}px, ${position.y}px, 0)`,\r\n transition: transitionStyle,\r\n willChange: \"transform\",\r\n }}\r\n >\r\n {children}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default Magnet;\r\n","\"use client\";\r\n\r\nimport {\r\n ElementType,\r\n useEffect,\r\n useRef,\r\n useState,\r\n createElement,\r\n useMemo,\r\n useCallback,\r\n} from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface TextTypeProps {\r\n className?: string;\r\n showCursor?: boolean;\r\n hideCursorWhileTyping?: boolean;\r\n cursorCharacter?: string | React.ReactNode;\r\n cursorBlinkDuration?: number;\r\n cursorClassName?: string;\r\n text: string | string[];\r\n as?: ElementType;\r\n typingSpeed?: number;\r\n initialDelay?: number;\r\n pauseDuration?: number;\r\n deletingSpeed?: number;\r\n loop?: boolean;\r\n textColors?: string[];\r\n variableSpeed?: { min: number; max: number };\r\n onSentenceComplete?: (sentence: string, index: number) => void;\r\n startOnVisible?: boolean;\r\n reverseMode?: boolean;\r\n}\r\n\r\nexport function TextType({\r\n text,\r\n as: Component = \"div\",\r\n typingSpeed = 50,\r\n initialDelay = 0,\r\n pauseDuration = 2000,\r\n deletingSpeed = 30,\r\n loop = true,\r\n className = \"\",\r\n showCursor = true,\r\n hideCursorWhileTyping = false,\r\n cursorCharacter = \"|\",\r\n cursorClassName = \"\",\r\n cursorBlinkDuration = 0.5,\r\n textColors = [],\r\n variableSpeed,\r\n onSentenceComplete,\r\n startOnVisible = false,\r\n reverseMode = false,\r\n ...props\r\n}: TextTypeProps & React.HTMLAttributes<HTMLElement>) {\r\n const [displayedText, setDisplayedText] = useState(\"\");\r\n const [currentCharIndex, setCurrentCharIndex] = useState(0);\r\n const [isDeleting, setIsDeleting] = useState(false);\r\n const [currentTextIndex, setCurrentTextIndex] = useState(0);\r\n const [isVisible, setIsVisible] = useState(!startOnVisible);\r\n const [cursorVisible, setCursorVisible] = useState(true);\r\n const containerRef = useRef<HTMLElement>(null);\r\n\r\n const textArray = useMemo(\r\n () => (Array.isArray(text) ? text : [text]),\r\n [text]\r\n );\r\n\r\n const getRandomSpeed = useCallback(() => {\r\n if (!variableSpeed) return typingSpeed;\r\n const { min, max } = variableSpeed;\r\n return Math.random() * (max - min) + min;\r\n }, [variableSpeed, typingSpeed]);\r\n\r\n const getCurrentTextColor = () => {\r\n if (textColors.length === 0) return;\r\n return textColors[currentTextIndex % textColors.length];\r\n };\r\n\r\n useEffect(() => {\r\n if (!startOnVisible || !containerRef.current) return;\r\n\r\n const observer = new IntersectionObserver(\r\n (entries) => {\r\n entries.forEach((entry) => {\r\n if (entry.isIntersecting) {\r\n setIsVisible(true);\r\n }\r\n });\r\n },\r\n { threshold: 0.1 }\r\n );\r\n\r\n observer.observe(containerRef.current);\r\n return () => observer.disconnect();\r\n }, [startOnVisible]);\r\n\r\n useEffect(() => {\r\n if (showCursor) {\r\n const interval = setInterval(() => {\r\n setCursorVisible((prev) => !prev);\r\n }, cursorBlinkDuration * 1000);\r\n return () => clearInterval(interval);\r\n }\r\n }, [showCursor, cursorBlinkDuration]);\r\n\r\n useEffect(() => {\r\n if (!isVisible) return;\r\n\r\n let timeout: NodeJS.Timeout;\r\n\r\n const currentText = textArray[currentTextIndex];\r\n const processedText = reverseMode\r\n ? currentText.split(\"\").reverse().join(\"\")\r\n : currentText;\r\n\r\n const executeTypingAnimation = () => {\r\n if (isDeleting) {\r\n if (displayedText === \"\") {\r\n setIsDeleting(false);\r\n if (currentTextIndex === textArray.length - 1 && !loop) {\r\n return;\r\n }\r\n\r\n if (onSentenceComplete) {\r\n onSentenceComplete(textArray[currentTextIndex], currentTextIndex);\r\n }\r\n\r\n setCurrentTextIndex((prev) => (prev + 1) % textArray.length);\r\n setCurrentCharIndex(0);\r\n timeout = setTimeout(() => {}, pauseDuration);\r\n } else {\r\n timeout = setTimeout(() => {\r\n setDisplayedText((prev) => prev.slice(0, -1));\r\n }, deletingSpeed);\r\n }\r\n } else {\r\n if (currentCharIndex < processedText.length) {\r\n timeout = setTimeout(\r\n () => {\r\n setDisplayedText((prev) => prev + processedText[currentCharIndex]);\r\n setCurrentCharIndex((prev) => prev + 1);\r\n },\r\n variableSpeed ? getRandomSpeed() : typingSpeed\r\n );\r\n } else if (textArray.length > 1) {\r\n timeout = setTimeout(() => {\r\n setIsDeleting(true);\r\n }, pauseDuration);\r\n }\r\n }\r\n };\r\n\r\n if (currentCharIndex === 0 && !isDeleting && displayedText === \"\") {\r\n timeout = setTimeout(executeTypingAnimation, initialDelay);\r\n } else {\r\n executeTypingAnimation();\r\n }\r\n\r\n return () => clearTimeout(timeout);\r\n }, [\r\n currentCharIndex,\r\n displayedText,\r\n isDeleting,\r\n typingSpeed,\r\n deletingSpeed,\r\n pauseDuration,\r\n textArray,\r\n currentTextIndex,\r\n loop,\r\n initialDelay,\r\n isVisible,\r\n reverseMode,\r\n variableSpeed,\r\n onSentenceComplete,\r\n getRandomSpeed,\r\n ]);\r\n\r\n const shouldHideCursor =\r\n hideCursorWhileTyping &&\r\n (currentCharIndex < textArray[currentTextIndex].length || isDeleting);\r\n\r\n return createElement(\r\n Component,\r\n {\r\n ref: containerRef,\r\n className: cn(\"inline-flex\", className),\r\n ...props,\r\n },\r\n <span style={{ color: getCurrentTextColor() || \"inherit\" }}>\r\n {displayedText}\r\n </span>,\r\n showCursor && (\r\n <span\r\n className={cn(\r\n \"transition-opacity\",\r\n cursorClassName,\r\n shouldHideCursor && \"opacity-0\",\r\n !cursorVisible && \"opacity-0\"\r\n )}\r\n >\r\n {cursorCharacter}\r\n </span>\r\n )\r\n );\r\n}\r\n\r\nexport default TextType;\r\n","\"use client\";\r\n\r\nimport { useState, useEffect } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface AIVoiceProps {\r\n className?: string;\r\n autoDemo?: boolean;\r\n onListeningChange?: (isListening: boolean) => void;\r\n}\r\n\r\nconst MicIcon = ({ className }: { className?: string }) => (\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"24\"\r\n height=\"24\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n className={className}\r\n >\r\n <path d=\"M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z\" />\r\n <path d=\"M19 10v2a7 7 0 0 1-14 0v-2\" />\r\n <line x1=\"12\" x2=\"12\" y1=\"19\" y2=\"22\" />\r\n </svg>\r\n);\r\n\r\nexport function AIVoice({\r\n className,\r\n autoDemo = true,\r\n onListeningChange,\r\n}: AIVoiceProps) {\r\n const [submitted, setSubmitted] = useState(false);\r\n const [time, setTime] = useState(0);\r\n const [isClient, setIsClient] = useState(false);\r\n const [isDemo, setIsDemo] = useState(autoDemo);\r\n\r\n useEffect(() => {\r\n setIsClient(true);\r\n }, []);\r\n\r\n useEffect(() => {\r\n let intervalId: NodeJS.Timeout;\r\n\r\n if (submitted) {\r\n intervalId = setInterval(() => {\r\n setTime((t) => t + 1);\r\n }, 1000);\r\n } else {\r\n setTime(0);\r\n }\r\n\r\n return () => clearInterval(intervalId);\r\n }, [submitted]);\r\n\r\n useEffect(() => {\r\n onListeningChange?.(submitted);\r\n }, [submitted, onListeningChange]);\r\n\r\n const formatTime = (seconds: number) => {\r\n const mins = Math.floor(seconds / 60);\r\n const secs = seconds % 60;\r\n return `${mins.toString().padStart(2, \"0\")}:${secs.toString().padStart(2, \"0\")}`;\r\n };\r\n\r\n useEffect(() => {\r\n if (!isDemo) return;\r\n\r\n let timeoutId: NodeJS.Timeout;\r\n const runAnimation = () => {\r\n setSubmitted(true);\r\n timeoutId = setTimeout(() => {\r\n setSubmitted(false);\r\n timeoutId = setTimeout(runAnimation, 1000);\r\n }, 3000);\r\n };\r\n\r\n const initialTimeout = setTimeout(runAnimation, 100);\r\n return () => {\r\n clearTimeout(timeoutId);\r\n clearTimeout(initialTimeout);\r\n };\r\n }, [isDemo]);\r\n\r\n const handleClick = () => {\r\n if (isDemo) {\r\n setIsDemo(false);\r\n setSubmitted(false);\r\n } else {\r\n setSubmitted((prev) => !prev);\r\n }\r\n };\r\n\r\n return (\r\n <div className={cn(\"w-full py-4\", className)}>\r\n <div className=\"relative max-w-xl w-full mx-auto flex items-center flex-col gap-2\">\r\n <button\r\n className={cn(\r\n \"group w-16 h-16 rounded-xl flex items-center justify-center transition-colors\",\r\n submitted\r\n ? \"bg-none\"\r\n : \"bg-none hover:bg-black/5 dark:hover:bg-white/5\"\r\n )}\r\n type=\"button\"\r\n onClick={handleClick}\r\n >\r\n {submitted ? (\r\n <div\r\n className=\"w-6 h-6 rounded-sm animate-spin bg-black dark:bg-white cursor-pointer pointer-events-auto\"\r\n style={{ animationDuration: \"3s\" }}\r\n />\r\n ) : (\r\n <MicIcon className=\"w-6 h-6 text-black/90 dark:text-white/90\" />\r\n )}\r\n </button>\r\n\r\n <span\r\n className={cn(\r\n \"font-mono text-sm transition-opacity duration-300\",\r\n submitted\r\n ? \"text-black/70 dark:text-white/70\"\r\n : \"text-black/30 dark:text-white/30\"\r\n )}\r\n >\r\n {formatTime(time)}\r\n </span>\r\n\r\n <div className=\"h-4 w-64 flex items-center justify-center gap-0.5\">\r\n {[...Array(48)].map((_, i) => (\r\n <div\r\n key={i}\r\n className={cn(\r\n \"w-0.5 rounded-full transition-all duration-300\",\r\n submitted\r\n ? \"bg-black/50 dark:bg-white/50 animate-pulse\"\r\n : \"bg-black/10 dark:bg-white/10 h-1\"\r\n )}\r\n style={\r\n submitted && isClient\r\n ? {\r\n height: `${20 + Math.random() * 80}%`,\r\n animationDelay: `${i * 0.05}s`,\r\n }\r\n : undefined\r\n }\r\n />\r\n ))}\r\n </div>\r\n\r\n <p className=\"h-4 text-xs text-black/70 dark:text-white/70\">\r\n {submitted ? \"Listening...\" : \"Click to speak\"}\r\n </p>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default AIVoice;\r\n","\"use client\";\r\n\r\nimport React, { useState } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface FolderProps {\r\n color?: string;\r\n size?: number;\r\n items?: React.ReactNode[];\r\n className?: string;\r\n}\r\n\r\nconst darkenColor = (hex: string, percent: number): string => {\r\n let color = hex.startsWith(\"#\") ? hex.slice(1) : hex;\r\n if (color.length === 3) {\r\n color = color\r\n .split(\"\")\r\n .map((c) => c + c)\r\n .join(\"\");\r\n }\r\n const num = parseInt(color, 16);\r\n let r = (num >> 16) & 0xff;\r\n let g = (num >> 8) & 0xff;\r\n let b = num & 0xff;\r\n r = Math.max(0, Math.min(255, Math.floor(r * (1 - percent))));\r\n g = Math.max(0, Math.min(255, Math.floor(g * (1 - percent))));\r\n b = Math.max(0, Math.min(255, Math.floor(b * (1 - percent))));\r\n return (\r\n \"#\" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1).toUpperCase()\r\n );\r\n};\r\n\r\nexport function Folder({\r\n color = \"#18181b\",\r\n size = 1,\r\n items = [],\r\n className = \"\",\r\n}: FolderProps) {\r\n const maxItems = 3;\r\n const papers = items.slice(0, maxItems);\r\n while (papers.length < maxItems) {\r\n papers.push(null);\r\n }\r\n\r\n const [open, setOpen] = useState(false);\r\n const [paperOffsets, setPaperOffsets] = useState<{ x: number; y: number }[]>(\r\n Array.from({ length: maxItems }, () => ({ x: 0, y: 0 }))\r\n );\r\n\r\n const folderBackColor = darkenColor(color, 0.08);\r\n\r\n const handleClick = () => {\r\n setOpen((prev) => !prev);\r\n if (open) {\r\n setPaperOffsets(\r\n Array.from({ length: maxItems }, () => ({ x: 0, y: 0 }))\r\n );\r\n }\r\n };\r\n\r\n const handlePaperMouseMove = (\r\n e: React.MouseEvent<HTMLDivElement>,\r\n index: number\r\n ) => {\r\n if (!open) return;\r\n const rect = e.currentTarget.getBoundingClientRect();\r\n const offsetX = (e.clientX - (rect.left + rect.width / 2)) * 0.15;\r\n const offsetY = (e.clientY - (rect.top + rect.height / 2)) * 0.15;\r\n setPaperOffsets((prev) => {\r\n const newOffsets = [...prev];\r\n newOffsets[index] = { x: offsetX, y: offsetY };\r\n return newOffsets;\r\n });\r\n };\r\n\r\n const handlePaperMouseLeave = (index: number) => {\r\n setPaperOffsets((prev) => {\r\n const newOffsets = [...prev];\r\n newOffsets[index] = { x: 0, y: 0 };\r\n return newOffsets;\r\n });\r\n };\r\n\r\n return (\r\n <div\r\n className={cn(\"relative cursor-pointer\", className)}\r\n style={{ transform: `scale(${size})` }}\r\n >\r\n <div\r\n className={cn(\r\n \"relative w-32 h-24 transition-all duration-300\",\r\n open && \"transform -translate-y-2\"\r\n )}\r\n onClick={handleClick}\r\n >\r\n {/* Folder back */}\r\n <div\r\n className=\"absolute inset-0 rounded-lg\"\r\n style={{ backgroundColor: folderBackColor }}\r\n >\r\n {/* Papers */}\r\n {papers.map((item, i) => (\r\n <div\r\n key={i}\r\n className={cn(\r\n \"absolute left-1/2 -translate-x-1/2 w-[85%] h-[70%] rounded-md transition-all duration-300\",\r\n open ? \"opacity-100\" : \"opacity-0\"\r\n )}\r\n onMouseMove={(e) => handlePaperMouseMove(e, i)}\r\n onMouseLeave={() => handlePaperMouseLeave(i)}\r\n style={{\r\n backgroundColor: i === 0 ? \"#f4f4f5\" : i === 1 ? \"#fafafa\" : \"#ffffff\",\r\n bottom: open ? `${60 + i * 20}%` : \"50%\",\r\n transform: open\r\n ? `translateX(calc(-50% + ${paperOffsets[i]?.x || 0}px)) translateY(${paperOffsets[i]?.y || 0}px) rotate(${(i - 1) * 3}deg)`\r\n : \"translateX(-50%)\",\r\n zIndex: 3 - i,\r\n }}\r\n >\r\n {item}\r\n </div>\r\n ))}\r\n </div>\r\n\r\n {/* Folder front */}\r\n <div\r\n className={cn(\r\n \"absolute bottom-0 left-0 right-0 h-[75%] rounded-lg transition-all duration-300\",\r\n open && \"transform translate-y-1\"\r\n )}\r\n style={{ backgroundColor: color }}\r\n >\r\n {/* Folder tab */}\r\n <div\r\n className=\"absolute -top-3 left-2 w-8 h-4 rounded-t-md\"\r\n style={{ backgroundColor: color }}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default Folder;\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\nconst StarIcon = ({ filled, className }: { filled: boolean; className?: string }) => (\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"24\"\r\n height=\"24\"\r\n viewBox=\"0 0 24 24\"\r\n fill={filled ? \"currentColor\" : \"none\"}\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n className={className}\r\n >\r\n <polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\" />\r\n </svg>\r\n);\r\n\r\nexport interface TestimonialItem {\r\n content: string;\r\n avatar: string;\r\n name: string;\r\n role: string;\r\n stars?: number;\r\n}\r\n\r\ninterface TestimonialsStarsProps {\r\n className?: string;\r\n title?: string;\r\n description?: string;\r\n testimonials?: TestimonialItem[];\r\n}\r\n\r\nconst defaultTestimonials: TestimonialItem[] = [\r\n {\r\n content:\r\n \"This UI library has revolutionized how we build user interfaces. The animations are buttery smooth and the developer experience is incredible.\",\r\n avatar: \"https://i.pravatar.cc/150?img=1\",\r\n name: \"Eduardo Calvo\",\r\n role: \"CEO & Founder\",\r\n stars: 5,\r\n },\r\n {\r\n content:\r\n \"The design system is incredibly well thought out. Every component feels intentional and polished.\",\r\n avatar: \"https://i.pravatar.cc/150?img=2\",\r\n name: \"Drew Cano\",\r\n role: \"Head of Design\",\r\n stars: 5,\r\n },\r\n {\r\n content:\r\n \"Best UI library I've used. The TypeScript support is excellent and the components are highly customizable.\",\r\n avatar: \"https://i.pravatar.cc/150?img=3\",\r\n name: \"Marcus Johnson\",\r\n role: \"Lead Developer\",\r\n stars: 5,\r\n },\r\n {\r\n content:\r\n \"Our users love the smooth interactions. It's made our product feel premium and professional.\",\r\n avatar: \"https://i.pravatar.cc/150?img=4\",\r\n name: \"Emily Rodriguez\",\r\n role: \"Product Manager\",\r\n stars: 4,\r\n },\r\n];\r\n\r\nexport function TestimonialsStars({\r\n className = \"\",\r\n title = \"Developer Reviews\",\r\n description = \"See what the community is saying. Real feedback from developers building amazing user experiences.\",\r\n testimonials = defaultTestimonials,\r\n}: TestimonialsStarsProps) {\r\n return (\r\n <div className={cn(\"min-h-[400px] w-full py-24\", className)}>\r\n <div className=\"container mx-auto w-full max-w-5xl px-6\">\r\n <div className=\"mb-12\">\r\n <h2 className=\"text-zinc-900 dark:text-zinc-100 text-4xl font-semibold\">\r\n {title}\r\n </h2>\r\n <p className=\"text-zinc-600 dark:text-zinc-500 my-4 text-lg text-balance\">\r\n {description}\r\n </p>\r\n </div>\r\n\r\n <div className=\"grid gap-6 lg:grid-cols-2\">\r\n {testimonials.map((testimonial) => (\r\n <div\r\n key={testimonial.name}\r\n className=\"group hover:bg-zinc-50 dark:hover:bg-zinc-950 hover:border-zinc-400 dark:hover:border-zinc-700 rounded-2xl border border-zinc-300 dark:border-zinc-800 bg-white dark:bg-zinc-950 px-4 py-3 duration-200 transition-all hover:-translate-y-1\"\r\n >\r\n <div className=\"flex gap-1\">\r\n {Array.from({ length: 5 }).map((_, i) => (\r\n <StarIcon\r\n key={`${testimonial.name}-star-${i}`}\r\n filled={i < (testimonial.stars || 0)}\r\n className={cn(\r\n \"size-4 transition-colors duration-200\",\r\n i < (testimonial.stars || 0)\r\n ? \"fill-pink-400 stroke-pink-400\"\r\n : \"fill-zinc-300 dark:fill-zinc-700 stroke-zinc-400 dark:stroke-zinc-600\"\r\n )}\r\n />\r\n ))}\r\n </div>\r\n\r\n <p className=\"text-zinc-900 dark:text-zinc-100 my-4\">\r\n {testimonial.content}\r\n </p>\r\n\r\n <div className=\"flex items-center gap-2\">\r\n <img\r\n src={testimonial.avatar}\r\n alt={testimonial.name}\r\n className=\"size-6 rounded-full border border-zinc-300 dark:border-zinc-700 object-cover\"\r\n />\r\n <div className=\"text-zinc-900 dark:text-zinc-100 text-sm font-medium\">\r\n {testimonial.name}\r\n </div>\r\n <span\r\n aria-hidden\r\n className=\"bg-zinc-400 dark:bg-zinc-600 size-1 rounded-full\"\r\n />\r\n <span className=\"text-zinc-500 text-sm\">{testimonial.role}</span>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default TestimonialsStars;\r\n","\"use client\";\r\n\r\nimport {\r\n useCallback,\r\n useEffect,\r\n useMemo,\r\n useRef,\r\n useState,\r\n memo,\r\n} from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\nconst ANIMATION_CONFIG = {\r\n SMOOTH_TAU: 0.25,\r\n MIN_COPIES: 2,\r\n COPY_HEADROOM: 2,\r\n};\r\n\r\ninterface LogoItem {\r\n node?: React.ReactNode;\r\n src?: string;\r\n srcSet?: string;\r\n sizes?: string;\r\n width?: number;\r\n height?: number;\r\n alt?: string;\r\n title?: string;\r\n href?: string;\r\n ariaLabel?: string;\r\n}\r\n\r\ninterface LogoLoopProps {\r\n logos: LogoItem[];\r\n speed?: number;\r\n direction?: \"left\" | \"right\";\r\n width?: string | number;\r\n logoHeight?: number;\r\n gap?: number;\r\n pauseOnHover?: boolean;\r\n fadeOut?: boolean;\r\n fadeOutColor?: string;\r\n scaleOnHover?: boolean;\r\n ariaLabel?: string;\r\n className?: string;\r\n style?: React.CSSProperties;\r\n}\r\n\r\nexport const LogoLoop = memo<LogoLoopProps>(\r\n ({\r\n logos,\r\n speed = 120,\r\n direction = \"left\",\r\n width = \"100%\",\r\n logoHeight = 28,\r\n gap = 32,\r\n pauseOnHover = true,\r\n fadeOut = false,\r\n fadeOutColor,\r\n scaleOnHover = false,\r\n ariaLabel = \"Partner logos\",\r\n className,\r\n style,\r\n }) => {\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const trackRef = useRef<HTMLDivElement>(null);\r\n const seqRef = useRef<HTMLUListElement>(null);\r\n\r\n const [seqWidth, setSeqWidth] = useState<number>(0);\r\n const [copyCount, setCopyCount] = useState<number>(ANIMATION_CONFIG.MIN_COPIES);\r\n const [isHovered, setIsHovered] = useState<boolean>(false);\r\n\r\n const targetVelocity = useMemo(() => {\r\n const magnitude = Math.abs(speed);\r\n const directionMultiplier = direction === \"left\" ? 1 : -1;\r\n const speedMultiplier = speed < 0 ? -1 : 1;\r\n return magnitude * directionMultiplier * speedMultiplier;\r\n }, [speed, direction]);\r\n\r\n const updateDimensions = useCallback(() => {\r\n const containerWidth = containerRef.current?.clientWidth ?? 0;\r\n const sequenceWidth = seqRef.current?.getBoundingClientRect?.()?.width ?? 0;\r\n\r\n if (sequenceWidth > 0) {\r\n setSeqWidth(Math.ceil(sequenceWidth));\r\n const copiesNeeded =\r\n Math.ceil(containerWidth / sequenceWidth) + ANIMATION_CONFIG.COPY_HEADROOM;\r\n setCopyCount(Math.max(ANIMATION_CONFIG.MIN_COPIES, copiesNeeded));\r\n }\r\n }, []);\r\n\r\n // Resize observer\r\n useEffect(() => {\r\n if (!window.ResizeObserver) {\r\n const handleResize = () => updateDimensions();\r\n window.addEventListener(\"resize\", handleResize);\r\n updateDimensions();\r\n return () => window.removeEventListener(\"resize\", handleResize);\r\n }\r\n\r\n const observers: ResizeObserver[] = [];\r\n [containerRef, seqRef].forEach((ref) => {\r\n if (ref.current) {\r\n const observer = new ResizeObserver(updateDimensions);\r\n observer.observe(ref.current);\r\n observers.push(observer);\r\n }\r\n });\r\n\r\n updateDimensions();\r\n\r\n return () => {\r\n observers.forEach((observer) => observer.disconnect());\r\n };\r\n }, [updateDimensions, logos, gap, logoHeight]);\r\n\r\n // Image loader\r\n useEffect(() => {\r\n const images = seqRef.current?.querySelectorAll(\"img\") ?? [];\r\n\r\n if (images.length === 0) {\r\n updateDimensions();\r\n return;\r\n }\r\n\r\n let remainingImages = images.length;\r\n const handleImageLoad = () => {\r\n remainingImages -= 1;\r\n if (remainingImages === 0) {\r\n updateDimensions();\r\n }\r\n };\r\n\r\n images.forEach((img) => {\r\n const htmlImg = img as HTMLImageElement;\r\n if (htmlImg.complete) {\r\n handleImageLoad();\r\n } else {\r\n htmlImg.addEventListener(\"load\", handleImageLoad, { once: true });\r\n htmlImg.addEventListener(\"error\", handleImageLoad, { once: true });\r\n }\r\n });\r\n\r\n return () => {\r\n images.forEach((img) => {\r\n img.removeEventListener(\"load\", handleImageLoad);\r\n img.removeEventListener(\"error\", handleImageLoad);\r\n });\r\n };\r\n }, [logos, gap, logoHeight, updateDimensions]);\r\n\r\n // Animation loop\r\n useEffect(() => {\r\n const track = trackRef.current;\r\n if (!track) return;\r\n\r\n let rafId: number | null = null;\r\n let lastTimestamp: number | null = null;\r\n let offset = 0;\r\n let velocity = 0;\r\n\r\n if (seqWidth > 0) {\r\n offset = ((offset % seqWidth) + seqWidth) % seqWidth;\r\n track.style.transform = `translate3d(${-offset}px, 0, 0)`;\r\n }\r\n\r\n const animate = (timestamp: number) => {\r\n if (lastTimestamp === null) {\r\n lastTimestamp = timestamp;\r\n }\r\n\r\n const deltaTime = Math.max(0, timestamp - lastTimestamp) / 1000;\r\n lastTimestamp = timestamp;\r\n\r\n const target = pauseOnHover && isHovered ? 0 : targetVelocity;\r\n\r\n const easingFactor = 1 - Math.exp(-deltaTime / ANIMATION_CONFIG.SMOOTH_TAU);\r\n velocity += (target - velocity) * easingFactor;\r\n\r\n if (seqWidth > 0) {\r\n let nextOffset = offset + velocity * deltaTime;\r\n nextOffset = ((nextOffset % seqWidth) + seqWidth) % seqWidth;\r\n offset = nextOffset;\r\n\r\n const translateX = -offset;\r\n track.style.transform = `translate3d(${translateX}px, 0, 0)`;\r\n }\r\n\r\n rafId = requestAnimationFrame(animate);\r\n };\r\n\r\n rafId = requestAnimationFrame(animate);\r\n\r\n return () => {\r\n if (rafId !== null) {\r\n cancelAnimationFrame(rafId);\r\n }\r\n };\r\n }, [targetVelocity, seqWidth, isHovered, pauseOnHover]);\r\n\r\n const handleMouseEnter = useCallback(() => {\r\n if (pauseOnHover) setIsHovered(true);\r\n }, [pauseOnHover]);\r\n\r\n const handleMouseLeave = useCallback(() => {\r\n if (pauseOnHover) setIsHovered(false);\r\n }, [pauseOnHover]);\r\n\r\n const renderLogoItem = useCallback((item: LogoItem, key: string) => {\r\n const isNodeItem = \"node\" in item && item.node;\r\n\r\n const content = isNodeItem ? (\r\n <span aria-hidden={!!item.href && !item.ariaLabel}>{item.node}</span>\r\n ) : (\r\n <img\r\n src={item.src}\r\n srcSet={item.srcSet}\r\n sizes={item.sizes}\r\n width={item.width}\r\n height={item.height}\r\n alt={item.alt ?? \"\"}\r\n title={item.title}\r\n loading=\"lazy\"\r\n decoding=\"async\"\r\n draggable={false}\r\n style={{ height: logoHeight, width: \"auto\" }}\r\n />\r\n );\r\n\r\n const itemAriaLabel = isNodeItem\r\n ? item.ariaLabel ?? item.title\r\n : item.alt ?? item.title;\r\n\r\n const itemContent = item.href ? (\r\n <a\r\n href={item.href}\r\n aria-label={itemAriaLabel || \"logo link\"}\r\n target=\"_blank\"\r\n rel=\"noreferrer noopener\"\r\n className={cn(scaleOnHover && \"transition-transform hover:scale-110\")}\r\n >\r\n {content}\r\n </a>\r\n ) : (\r\n <span className={cn(scaleOnHover && \"transition-transform hover:scale-110\")}>\r\n {content}\r\n </span>\r\n );\r\n\r\n return (\r\n <li\r\n key={key}\r\n role=\"listitem\"\r\n className=\"flex-shrink-0\"\r\n style={{ marginRight: gap }}\r\n >\r\n {itemContent}\r\n </li>\r\n );\r\n }, [gap, logoHeight, scaleOnHover]);\r\n\r\n const logoLists = useMemo(\r\n () =>\r\n Array.from({ length: copyCount }, (_, copyIndex) => (\r\n <ul\r\n key={`copy-${copyIndex}`}\r\n role=\"list\"\r\n aria-hidden={copyIndex > 0}\r\n ref={copyIndex === 0 ? seqRef : undefined}\r\n className=\"flex items-center\"\r\n style={{ height: logoHeight }}\r\n >\r\n {logos.map((item, itemIndex) =>\r\n renderLogoItem(item, `${copyIndex}-${itemIndex}`)\r\n )}\r\n </ul>\r\n )),\r\n [copyCount, logos, renderLogoItem, logoHeight]\r\n );\r\n\r\n const containerStyle = useMemo(\r\n () => ({\r\n width: typeof width === \"number\" ? `${width}px` : width,\r\n ...style,\r\n }),\r\n [width, style]\r\n );\r\n\r\n return (\r\n <div\r\n ref={containerRef}\r\n className={cn(\r\n \"relative overflow-hidden\",\r\n fadeOut &&\r\n \"before:absolute before:left-0 before:top-0 before:bottom-0 before:w-24 before:bg-gradient-to-r before:from-white before:to-transparent before:z-10 after:absolute after:right-0 after:top-0 after:bottom-0 after:w-24 after:bg-gradient-to-l after:from-white after:to-transparent after:z-10 dark:before:from-black dark:after:from-black\",\r\n className\r\n )}\r\n style={containerStyle}\r\n role=\"region\"\r\n aria-label={ariaLabel}\r\n onMouseEnter={handleMouseEnter}\r\n onMouseLeave={handleMouseLeave}\r\n >\r\n <div ref={trackRef} className=\"flex will-change-transform\">\r\n {logoLists}\r\n </div>\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nLogoLoop.displayName = \"LogoLoop\";\r\n\r\nexport default LogoLoop;\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\n\r\nexport interface FloatingPathsProps {\r\n position?: number;\r\n className?: string;\r\n}\r\n\r\nexport function FloatingPaths({ position = 1, className }: FloatingPathsProps) {\r\n const paths = Array.from({ length: 36 }, (_, i) => ({\r\n id: i,\r\n d: `M-${380 - i * 5 * position} -${189 + i * 6}C-${\r\n 380 - i * 5 * position\r\n } -${189 + i * 6} -${312 - i * 5 * position} ${216 - i * 6} ${\r\n 152 - i * 5 * position\r\n } ${343 - i * 6}C${616 - i * 5 * position} ${470 - i * 6} ${\r\n 684 - i * 5 * position\r\n } ${875 - i * 6} ${684 - i * 5 * position} ${875 - i * 6}`,\r\n color: `rgba(15,23,42,${0.1 + i * 0.03})`,\r\n width: 0.5 + i * 0.03,\r\n }));\r\n\r\n return (\r\n <div className={`pointer-events-none absolute inset-0 ${className || \"\"}`}>\r\n <svg\r\n className=\"h-full w-full text-slate-950 dark:text-white\"\r\n fill=\"none\"\r\n viewBox=\"0 0 696 316\"\r\n >\r\n <title>Background Paths</title>\r\n {paths.map((path) => (\r\n <motion.path\r\n animate={{\r\n pathLength: 1,\r\n opacity: [0.3, 0.6, 0.3],\r\n pathOffset: [0, 1, 0],\r\n }}\r\n d={path.d}\r\n initial={{ pathLength: 0.3, opacity: 0.6 }}\r\n key={path.id}\r\n stroke=\"currentColor\"\r\n strokeOpacity={0.1 + path.id * 0.03}\r\n strokeWidth={path.width}\r\n transition={{\r\n duration: 20 + Math.random() * 10,\r\n repeat: Infinity,\r\n ease: \"linear\",\r\n }}\r\n />\r\n ))}\r\n </svg>\r\n </div>\r\n );\r\n}\r\n\r\nexport default FloatingPaths;\r\n","\"use client\";\r\n\r\nimport { memo, useMemo } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\n\r\ninterface Point {\r\n x: number;\r\n y: number;\r\n}\r\n\r\ninterface PathData {\r\n id: string;\r\n d: string;\r\n opacity: number;\r\n width: number;\r\n duration: number;\r\n delay: number;\r\n}\r\n\r\nfunction generateAestheticPath(\r\n index: number,\r\n position: number,\r\n type: \"primary\" | \"secondary\" | \"accent\"\r\n): string {\r\n const baseAmplitude =\r\n type === \"primary\" ? 150 : type === \"secondary\" ? 100 : 60;\r\n const phase = index * 0.2;\r\n const points: Point[] = [];\r\n const segments = type === \"primary\" ? 10 : type === \"secondary\" ? 8 : 6;\r\n\r\n const startX = 2400;\r\n const startY = 800;\r\n const endX = -2400;\r\n const endY = -800 + index * 25;\r\n\r\n for (let i = 0; i <= segments; i++) {\r\n const progress = i / segments;\r\n const eased = 1 - (1 - progress) ** 2;\r\n\r\n const baseX = startX + (endX - startX) * eased;\r\n const baseY = startY + (endY - startY) * eased;\r\n\r\n const amplitudeFactor = 1 - eased * 0.3;\r\n const wave1 =\r\n Math.sin(progress * Math.PI * 3 + phase) *\r\n (baseAmplitude * 0.7 * amplitudeFactor);\r\n const wave2 =\r\n Math.cos(progress * Math.PI * 4 + phase) *\r\n (baseAmplitude * 0.3 * amplitudeFactor);\r\n const wave3 =\r\n Math.sin(progress * Math.PI * 2 + phase) *\r\n (baseAmplitude * 0.2 * amplitudeFactor);\r\n\r\n points.push({\r\n x: baseX * position,\r\n y: baseY + wave1 + wave2 + wave3,\r\n });\r\n }\r\n\r\n const pathCommands = points.map((point: Point, i: number) => {\r\n if (i === 0) return `M ${point.x} ${point.y}`;\r\n const prevPoint = points[i - 1];\r\n const tension = 0.4;\r\n const cp1x = prevPoint.x + (point.x - prevPoint.x) * tension;\r\n const cp1y = prevPoint.y;\r\n const cp2x = prevPoint.x + (point.x - prevPoint.x) * (1 - tension);\r\n const cp2y = point.y;\r\n return `C ${cp1x} ${cp1y}, ${cp2x} ${cp2y}, ${point.x} ${point.y}`;\r\n });\r\n\r\n return pathCommands.join(\" \");\r\n}\r\n\r\nconst generateUniqueId = (prefix: string): string =>\r\n `${prefix}-${Math.random().toString(36).substr(2, 9)}`;\r\n\r\nconst FloatingPaths = memo(function FloatingPaths({\r\n position,\r\n}: {\r\n position: number;\r\n}) {\r\n const primaryPaths: PathData[] = useMemo(\r\n () =>\r\n Array.from({ length: 12 }, (_, i) => ({\r\n id: generateUniqueId(\"primary\"),\r\n d: generateAestheticPath(i, position, \"primary\"),\r\n opacity: 0.15 + i * 0.02,\r\n width: 4 + i * 0.3,\r\n duration: 25,\r\n delay: 0,\r\n })),\r\n [position]\r\n );\r\n\r\n const secondaryPaths: PathData[] = useMemo(\r\n () =>\r\n Array.from({ length: 15 }, (_, i) => ({\r\n id: generateUniqueId(\"secondary\"),\r\n d: generateAestheticPath(i, position, \"secondary\"),\r\n opacity: 0.12 + i * 0.015,\r\n width: 3 + i * 0.25,\r\n duration: 20,\r\n delay: 0,\r\n })),\r\n [position]\r\n );\r\n\r\n const accentPaths: PathData[] = useMemo(\r\n () =>\r\n Array.from({ length: 10 }, (_, i) => ({\r\n id: generateUniqueId(\"accent\"),\r\n d: generateAestheticPath(i, position, \"accent\"),\r\n opacity: 0.08 + i * 0.12,\r\n width: 2 + i * 0.2,\r\n duration: 15,\r\n delay: 0,\r\n })),\r\n [position]\r\n );\r\n\r\n const sharedAnimationProps = {\r\n opacity: 1,\r\n scale: 1,\r\n transition: {\r\n opacity: { duration: 1 },\r\n scale: { duration: 1 },\r\n },\r\n };\r\n\r\n return (\r\n <div className=\"absolute inset-0 pointer-events-none overflow-hidden\">\r\n <svg\r\n className=\"w-full h-full text-slate-950/40 dark:text-white/40\"\r\n viewBox=\"-2400 -800 4800 1600\"\r\n fill=\"none\"\r\n preserveAspectRatio=\"xMidYMid slice\"\r\n >\r\n <title>Background Paths</title>\r\n <defs>\r\n <linearGradient\r\n id=\"sharedGradient\"\r\n x1=\"0%\"\r\n y1=\"0%\"\r\n x2=\"100%\"\r\n y2=\"0%\"\r\n >\r\n <stop offset=\"0%\" stopColor=\"rgba(147, 51, 234, 0.5)\" />\r\n <stop offset=\"50%\" stopColor=\"rgba(236, 72, 153, 0.5)\" />\r\n <stop offset=\"100%\" stopColor=\"rgba(59, 130, 246, 0.5)\" />\r\n </linearGradient>\r\n </defs>\r\n\r\n <g className=\"primary-waves\">\r\n {primaryPaths.map((path) => (\r\n <motion.path\r\n key={path.id}\r\n d={path.d}\r\n stroke=\"url(#sharedGradient)\"\r\n strokeWidth={path.width}\r\n strokeLinecap=\"round\"\r\n initial={{ opacity: 0, scale: 0.8 }}\r\n animate={{\r\n ...sharedAnimationProps,\r\n y: [0, -15, 0],\r\n }}\r\n transition={{\r\n ...sharedAnimationProps.transition,\r\n y: {\r\n duration: 8,\r\n repeat: Infinity,\r\n ease: \"easeInOut\",\r\n repeatType: \"reverse\",\r\n },\r\n }}\r\n style={{ opacity: path.opacity }}\r\n />\r\n ))}\r\n </g>\r\n\r\n <g className=\"secondary-waves\" style={{ opacity: 0.8 }}>\r\n {secondaryPaths.map((path) => (\r\n <motion.path\r\n key={path.id}\r\n d={path.d}\r\n stroke=\"url(#sharedGradient)\"\r\n strokeWidth={path.width}\r\n strokeLinecap=\"round\"\r\n initial={{ opacity: 0, scale: 0.9 }}\r\n animate={{\r\n ...sharedAnimationProps,\r\n y: [0, -10, 0],\r\n }}\r\n transition={{\r\n ...sharedAnimationProps.transition,\r\n y: {\r\n duration: 6,\r\n repeat: Infinity,\r\n ease: \"easeInOut\",\r\n repeatType: \"reverse\",\r\n },\r\n }}\r\n style={{ opacity: path.opacity }}\r\n />\r\n ))}\r\n </g>\r\n\r\n <g className=\"accent-waves\" style={{ opacity: 0.6 }}>\r\n {accentPaths.map((path) => (\r\n <motion.path\r\n key={path.id}\r\n d={path.d}\r\n stroke=\"url(#sharedGradient)\"\r\n strokeWidth={path.width}\r\n strokeLinecap=\"round\"\r\n initial={{ opacity: 0, scale: 0.95 }}\r\n animate={{\r\n ...sharedAnimationProps,\r\n y: [0, -5, 0],\r\n }}\r\n transition={{\r\n ...sharedAnimationProps.transition,\r\n y: {\r\n duration: 4,\r\n repeat: Infinity,\r\n ease: \"easeInOut\",\r\n repeatType: \"reverse\",\r\n },\r\n }}\r\n style={{ opacity: path.opacity }}\r\n />\r\n ))}\r\n </g>\r\n </svg>\r\n </div>\r\n );\r\n});\r\n\r\nconst AnimatedTitle = memo(function AnimatedTitle({\r\n title,\r\n}: {\r\n title: string;\r\n}) {\r\n return (\r\n <motion.h1\r\n className=\"text-3xl sm:text-5xl md:text-5xl font-bold mb-8 tracking-tighter text-transparent bg-clip-text bg-gradient-to-r from-neutral-800/90 to-neutral-600/90 dark:from-white/90 dark:to-white/70\"\r\n initial={{ opacity: 0, y: 20 }}\r\n animate={{ opacity: 1, y: 0 }}\r\n transition={{\r\n duration: 1.2,\r\n ease: [0.2, 0.65, 0.3, 0.9],\r\n }}\r\n >\r\n {title}\r\n </motion.h1>\r\n );\r\n});\r\n\r\nexport interface BackgroundPathsProps {\r\n title?: string;\r\n className?: string;\r\n}\r\n\r\nexport const BackgroundPaths = memo(function BackgroundPaths({\r\n title = \"Background Paths\",\r\n className,\r\n}: BackgroundPathsProps) {\r\n return (\r\n <div className={`relative min-h-screen w-full flex items-center justify-center overflow-hidden bg-black dark:bg-neutral-950 ${className || \"\"}`}>\r\n <div className=\"absolute inset-0\">\r\n <FloatingPaths position={1} />\r\n </div>\r\n\r\n <div className=\"relative z-10 container mx-auto px-4 md:px-6 text-center\">\r\n <motion.div\r\n initial={{ opacity: 0 }}\r\n animate={{ opacity: 1 }}\r\n transition={{ duration: 2 }}\r\n className=\"max-w-4xl mx-auto\"\r\n >\r\n <AnimatedTitle title={title} />\r\n </motion.div>\r\n </div>\r\n </div>\r\n );\r\n});\r\n\r\nexport default BackgroundPaths;\r\n","\"use client\";\r\n\r\nimport { AnimatePresence, motion, type Variants } from \"framer-motion\";\r\nimport { useState } from \"react\";\r\n\r\nconst MAX_TEAM_SIZE = 4;\r\n\r\ninterface TeamMember {\r\n id: string;\r\n avatarUrl: string;\r\n name: string;\r\n}\r\n\r\nconst DEFAULT_TEAM_MEMBERS: TeamMember[] = [\r\n {\r\n id: \"member-1\",\r\n avatarUrl: \"https://i.pravatar.cc/150?img=1\",\r\n name: \"Team Member 1\",\r\n },\r\n {\r\n id: \"member-2\",\r\n avatarUrl: \"https://i.pravatar.cc/150?img=2\",\r\n name: \"Team Member 2\",\r\n },\r\n {\r\n id: \"member-3\",\r\n avatarUrl: \"https://i.pravatar.cc/150?img=3\",\r\n name: \"Team Member 3\",\r\n },\r\n {\r\n id: \"member-4\",\r\n avatarUrl: \"https://i.pravatar.cc/150?img=4\",\r\n name: \"Team Member 4\",\r\n },\r\n];\r\n\r\nconst animations = {\r\n container: {\r\n initial: { opacity: 0, y: 20 },\r\n animate: { opacity: 1, y: 0 },\r\n exit: { opacity: 0, y: -20 },\r\n } satisfies Variants,\r\n avatar: {\r\n initial: { opacity: 0, scale: 0.8 },\r\n animate: {\r\n opacity: 1,\r\n scale: 1,\r\n transition: { duration: 0.3 },\r\n },\r\n exit: {\r\n opacity: 0,\r\n scale: 0.8,\r\n transition: { duration: 0.15 },\r\n },\r\n } satisfies Variants,\r\n vibration: {\r\n initial: { x: 0 },\r\n animate: {\r\n x: [-5, 5, -5, 5, 0],\r\n transition: { duration: 0.3 },\r\n },\r\n } satisfies Variants,\r\n number: {\r\n initial: { scale: 0.8, opacity: 0 },\r\n animate: {\r\n scale: 1,\r\n opacity: 1,\r\n transition: {\r\n type: \"spring\",\r\n stiffness: 400,\r\n damping: 25,\r\n },\r\n },\r\n } satisfies Variants,\r\n};\r\n\r\nexport interface TeamSelectorProps {\r\n defaultValue?: number;\r\n onChange?: (size: number) => void;\r\n className?: string;\r\n members?: TeamMember[];\r\n maxSize?: number;\r\n}\r\n\r\nexport function TeamSelector({\r\n defaultValue = 1,\r\n onChange,\r\n className = \"\",\r\n members = DEFAULT_TEAM_MEMBERS,\r\n maxSize = MAX_TEAM_SIZE,\r\n}: TeamSelectorProps) {\r\n const [peopleCount, setPeopleCount] = useState(defaultValue);\r\n const [isVibrating, setIsVibrating] = useState(false);\r\n\r\n const handleIncrement = (e: React.MouseEvent | React.KeyboardEvent) => {\r\n e.preventDefault();\r\n if (peopleCount < maxSize) {\r\n const newCount = peopleCount + 1;\r\n setPeopleCount(newCount);\r\n onChange?.(newCount);\r\n } else {\r\n triggerVibration();\r\n }\r\n };\r\n\r\n const handleDecrement = (e: React.MouseEvent | React.KeyboardEvent) => {\r\n e.preventDefault();\r\n if (peopleCount > 1) {\r\n const newCount = peopleCount - 1;\r\n setPeopleCount(newCount);\r\n onChange?.(newCount);\r\n } else {\r\n triggerVibration();\r\n }\r\n };\r\n\r\n const triggerVibration = () => {\r\n setIsVibrating(true);\r\n setTimeout(() => setIsVibrating(false), 300);\r\n };\r\n\r\n const handleKeyDown = (\r\n e: React.KeyboardEvent,\r\n action: \"increment\" | \"decrement\"\r\n ) => {\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n e.preventDefault();\r\n action === \"increment\" ? handleIncrement(e) : handleDecrement(e);\r\n }\r\n };\r\n\r\n const renderAvatars = () =>\r\n members.slice(0, peopleCount).map((member, index) => (\r\n <motion.div\r\n key={member.id}\r\n variants={animations.avatar}\r\n initial=\"initial\"\r\n animate=\"animate\"\r\n exit=\"exit\"\r\n className=\"flex items-center justify-center\"\r\n style={{\r\n zIndex: peopleCount - index,\r\n marginLeft: index === 0 ? 0 : -24,\r\n }}\r\n >\r\n <img\r\n src={member.avatarUrl}\r\n width={96}\r\n height={96}\r\n alt={member.name}\r\n className=\"rounded-full object-cover w-24 h-24 shadow-lg bg-gradient-to-b from-white/5 to-white/20 dark:from-white/5 dark:to-black/20 backdrop-blur-sm hover:shadow-xl transition-all duration-300 border border-white/10 dark:border-white/5\"\r\n />\r\n </motion.div>\r\n ));\r\n\r\n return (\r\n <motion.div\r\n variants={animations.container}\r\n initial=\"initial\"\r\n animate=\"animate\"\r\n exit=\"exit\"\r\n className={`flex w-full flex-col items-center justify-center gap-8 ${className}`}\r\n >\r\n <fieldset className=\"w-full\">\r\n <legend className=\"sr-only\">Team size selector</legend>\r\n <div className=\"relative h-24 w-full flex justify-center\">\r\n <AnimatePresence mode=\"popLayout\">{renderAvatars()}</AnimatePresence>\r\n </div>\r\n\r\n <motion.div\r\n variants={isVibrating ? animations.vibration : undefined}\r\n initial=\"initial\"\r\n animate={isVibrating ? \"animate\" : \"initial\"}\r\n className=\"flex items-center justify-center gap-8 mt-8\"\r\n >\r\n <button\r\n type=\"button\"\r\n onClick={handleDecrement}\r\n onKeyDown={(e) => handleKeyDown(e, \"decrement\")}\r\n disabled={peopleCount <= 1}\r\n aria-label=\"Decrease team size\"\r\n className=\"h-12 w-12 rounded-full bg-gradient-to-b from-white to-zinc-50 dark:from-zinc-800 dark:to-zinc-900 border border-zinc-200/80 dark:border-zinc-700/80 shadow-md hover:shadow-lg hover:border-zinc-300 dark:hover:border-zinc-600 active:from-zinc-50 active:to-zinc-100 dark:active:from-zinc-900 dark:active:to-zinc-800 text-zinc-900 dark:text-zinc-100 disabled:opacity-40 disabled:cursor-not-allowed transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-zinc-500/30 dark:focus-visible:ring-zinc-400/30 focus-visible:ring-offset-2\"\r\n >\r\n <span className=\"text-2xl font-medium select-none\">-</span>\r\n </button>\r\n\r\n <motion.output\r\n key={peopleCount}\r\n variants={animations.number}\r\n initial=\"initial\"\r\n animate=\"animate\"\r\n className=\"text-2xl font-medium bg-clip-text text-transparent bg-gradient-to-b from-zinc-800 to-zinc-600 dark:from-zinc-200 dark:to-zinc-400 select-none\"\r\n aria-label={`Current team size: ${peopleCount}`}\r\n >\r\n {peopleCount}\r\n </motion.output>\r\n\r\n <button\r\n type=\"button\"\r\n onClick={handleIncrement}\r\n onKeyDown={(e) => handleKeyDown(e, \"increment\")}\r\n disabled={peopleCount >= maxSize}\r\n aria-label=\"Increase team size\"\r\n className=\"h-12 w-12 rounded-full bg-gradient-to-b from-white to-zinc-50 dark:from-zinc-800 dark:to-zinc-900 border border-zinc-200/80 dark:border-zinc-700/80 shadow-md hover:shadow-lg hover:border-zinc-300 dark:hover:border-zinc-600 active:from-zinc-50 active:to-zinc-100 dark:active:from-zinc-900 dark:active:to-zinc-800 text-zinc-900 dark:text-zinc-100 disabled:opacity-40 disabled:cursor-not-allowed transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-zinc-500/30 dark:focus-visible:ring-zinc-400/30 focus-visible:ring-offset-2\"\r\n >\r\n <span className=\"text-2xl font-medium select-none\">+</span>\r\n </button>\r\n </motion.div>\r\n </fieldset>\r\n </motion.div>\r\n );\r\n}\r\n\r\nexport default TeamSelector;\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { useEffect, useState } from \"react\";\r\n\r\ninterface AITextLoadingProps {\r\n texts?: string[];\r\n className?: string;\r\n interval?: number;\r\n}\r\n\r\nexport function AITextLoading({\r\n texts = [\r\n \"Thinking...\",\r\n \"Processing...\",\r\n \"Analyzing...\",\r\n \"Computing...\",\r\n \"Almost...\",\r\n ],\r\n className,\r\n interval = 1500,\r\n}: AITextLoadingProps) {\r\n const [currentTextIndex, setCurrentTextIndex] = useState(0);\r\n\r\n useEffect(() => {\r\n const timer = setInterval(() => {\r\n setCurrentTextIndex((prevIndex) => (prevIndex + 1) % texts.length);\r\n }, interval);\r\n\r\n return () => clearInterval(timer);\r\n }, [interval, texts.length]);\r\n\r\n return (\r\n <div className=\"flex items-center justify-center p-8\">\r\n <motion.div\r\n className=\"relative px-4 py-2 w-full\"\r\n initial={{ opacity: 0 }}\r\n animate={{ opacity: 1 }}\r\n transition={{ duration: 0.4 }}\r\n >\r\n <AnimatePresence mode=\"wait\">\r\n <motion.div\r\n key={currentTextIndex}\r\n initial={{ opacity: 0, y: 20 }}\r\n animate={{\r\n opacity: 1,\r\n y: 0,\r\n backgroundPosition: [\"200% center\", \"-200% center\"],\r\n }}\r\n exit={{ opacity: 0, y: -20 }}\r\n transition={{\r\n opacity: { duration: 0.3 },\r\n y: { duration: 0.3 },\r\n backgroundPosition: {\r\n duration: 2.5,\r\n ease: \"linear\",\r\n repeat: Infinity,\r\n },\r\n }}\r\n className={cn(\r\n \"flex justify-center text-3xl font-bold bg-gradient-to-r from-neutral-950 via-neutral-400 to-neutral-950 dark:from-white dark:via-neutral-600 dark:to-white bg-[length:200%_100%] bg-clip-text text-transparent whitespace-nowrap min-w-max\",\r\n className\r\n )}\r\n >\r\n {texts[currentTextIndex]}\r\n </motion.div>\r\n </AnimatePresence>\r\n </motion.div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default AITextLoading;\r\n","\"use client\";\r\n\r\nimport { useState, useRef, useEffect } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface TooltipAction {\r\n label: string;\r\n onClick: () => void;\r\n variant?: \"default\" | \"secondary\" | \"destructive\";\r\n}\r\n\r\nexport interface TooltipInteractiveProps {\r\n title?: string;\r\n content: string;\r\n actions?: TooltipAction[];\r\n children: React.ReactNode;\r\n position?: \"top\" | \"bottom\" | \"left\" | \"right\";\r\n trigger?: \"hover\" | \"click\";\r\n persistent?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport function TooltipInteractive({\r\n title,\r\n content,\r\n actions = [],\r\n children,\r\n position = \"top\",\r\n trigger = \"hover\",\r\n persistent = false,\r\n className,\r\n}: TooltipInteractiveProps) {\r\n const [isVisible, setIsVisible] = useState(false);\r\n const [isHovered, setIsHovered] = useState(false);\r\n const timeoutRef = useRef<NodeJS.Timeout>(undefined);\r\n const tooltipRef = useRef<HTMLDivElement>(null);\r\n\r\n const showTooltip = () => {\r\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\r\n setIsVisible(true);\r\n };\r\n\r\n const hideTooltip = () => {\r\n if (persistent && isHovered) return;\r\n timeoutRef.current = setTimeout(() => setIsVisible(false), 100);\r\n };\r\n\r\n const handleClick = () => {\r\n if (trigger === \"click\") setIsVisible(!isVisible);\r\n };\r\n\r\n const handleClose = () => setIsVisible(false);\r\n\r\n useEffect(() => {\r\n const handleClickOutside = (event: MouseEvent) => {\r\n if (tooltipRef.current && !tooltipRef.current.contains(event.target as Node)) {\r\n if (trigger === \"click\") setIsVisible(false);\r\n }\r\n };\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => document.removeEventListener(\"mousedown\", handleClickOutside);\r\n }, [trigger]);\r\n\r\n const getPositionClasses = () => {\r\n switch (position) {\r\n case \"top\": return \"bottom-full left-1/2 -translate-x-1/2 mb-3\";\r\n case \"bottom\": return \"top-full left-1/2 -translate-x-1/2 mt-3\";\r\n case \"left\": return \"right-full top-1/2 -translate-y-1/2 mr-3\";\r\n case \"right\": return \"left-full top-1/2 -translate-y-1/2 ml-3\";\r\n default: return \"bottom-full left-1/2 -translate-x-1/2 mb-3\";\r\n }\r\n };\r\n\r\n const triggerProps = trigger === \"hover\"\r\n ? { onMouseEnter: showTooltip, onMouseLeave: hideTooltip }\r\n : { onClick: handleClick };\r\n\r\n return (\r\n <div className={cn(\"relative inline-block\", className)} {...triggerProps}>\r\n {children}\r\n <AnimatePresence>\r\n {isVisible && (\r\n <motion.div\r\n ref={tooltipRef}\r\n initial={{ opacity: 0, scale: 0.95, y: position === \"top\" ? 10 : -10 }}\r\n animate={{ opacity: 1, scale: 1, y: 0 }}\r\n exit={{ opacity: 0, scale: 0.95, y: position === \"top\" ? 10 : -10 }}\r\n transition={{ type: \"spring\", stiffness: 300, damping: 25 }}\r\n onMouseEnter={() => setIsHovered(true)}\r\n onMouseLeave={() => { setIsHovered(false); if (trigger === \"hover\") hideTooltip(); }}\r\n className={cn(\"absolute z-50 w-80 bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-xl shadow-xl backdrop-blur-sm\", getPositionClasses())}\r\n >\r\n <div className=\"p-4 space-y-3\">\r\n <div className=\"flex items-start justify-between gap-2\">\r\n <div className=\"flex-1 space-y-1\">\r\n {title && <h3 className=\"font-semibold text-zinc-900 dark:text-zinc-100 text-sm\">{title}</h3>}\r\n <p className=\"text-sm text-zinc-600 dark:text-zinc-400 leading-relaxed\">{content}</p>\r\n </div>\r\n {(trigger === \"click\" || persistent) && (\r\n <button onClick={handleClose} className=\"text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-200 transition-colors p-1 rounded-md hover:bg-zinc-100 dark:hover:bg-zinc-800\">\r\n <svg className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" /></svg>\r\n </button>\r\n )}\r\n </div>\r\n {actions.length > 0 && (\r\n <div className=\"flex gap-2 pt-2 border-t border-zinc-200 dark:border-zinc-800\">\r\n {actions.map((action, index) => (\r\n <button key={index} onClick={() => { action.onClick(); if (!persistent) handleClose(); }}\r\n className={cn(\"text-xs h-8 px-3 rounded-md font-medium transition-colors\",\r\n action.variant === \"destructive\" ? \"bg-red-500 text-white hover:bg-red-600\" :\r\n action.variant === \"secondary\" ? \"bg-zinc-100 dark:bg-zinc-800 text-zinc-900 dark:text-zinc-100 hover:bg-zinc-200 dark:hover:bg-zinc-700\" :\r\n \"bg-zinc-900 dark:bg-white text-white dark:text-zinc-900 hover:bg-zinc-800 dark:hover:bg-zinc-100\"\r\n )}\r\n >{action.label}</button>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n </motion.div>\r\n )}\r\n </AnimatePresence>\r\n </div>\r\n );\r\n}\r\n\r\nexport default TooltipInteractive;\r\n","\"use client\";\r\n\r\nimport { useState, useRef, useCallback } from \"react\";\r\nimport { motion, AnimatePresence, useSpring, useMotionValue } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\nexport interface TooltipMagneticProps {\r\n content: string;\r\n children: React.ReactNode;\r\n offset?: number;\r\n springConfig?: { stiffness: number; damping: number };\r\n className?: string;\r\n}\r\n\r\nexport function TooltipMagnetic({\r\n content,\r\n children,\r\n offset = 20,\r\n springConfig = { stiffness: 300, damping: 30 },\r\n className,\r\n}: TooltipMagneticProps) {\r\n const [isVisible, setIsVisible] = useState(false);\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n\r\n const mouseX = useMotionValue(0);\r\n const mouseY = useMotionValue(0);\r\n\r\n const springX = useSpring(mouseX, springConfig);\r\n const springY = useSpring(mouseY, springConfig);\r\n\r\n const handleMouseMove = useCallback(\r\n (event: React.MouseEvent) => {\r\n if (!containerRef.current) return;\r\n\r\n const rect = containerRef.current.getBoundingClientRect();\r\n const centerX = rect.left + rect.width / 2;\r\n const centerY = rect.top + rect.height / 2;\r\n\r\n const deltaX = event.clientX - centerX;\r\n const deltaY = event.clientY - centerY;\r\n\r\n const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);\r\n const maxDistance = Math.max(rect.width, rect.height);\r\n\r\n const normalizedDistance = Math.min(distance / maxDistance, 1);\r\n const magneticStrength = 1 - normalizedDistance;\r\n\r\n mouseX.set(deltaX * magneticStrength * 0.5);\r\n mouseY.set(deltaY * magneticStrength * 0.5);\r\n },\r\n [mouseX, mouseY]\r\n );\r\n\r\n const handleMouseEnter = () => setIsVisible(true);\r\n const handleMouseLeave = () => {\r\n setIsVisible(false);\r\n mouseX.set(0);\r\n mouseY.set(0);\r\n };\r\n\r\n return (\r\n <div\r\n ref={containerRef}\r\n className={cn(\"relative inline-block\", className)}\r\n onMouseMove={handleMouseMove}\r\n onMouseEnter={handleMouseEnter}\r\n onMouseLeave={handleMouseLeave}\r\n >\r\n {children}\r\n\r\n <AnimatePresence>\r\n {isVisible && (\r\n <motion.div\r\n style={{ x: springX, y: springY }}\r\n initial={{ opacity: 0, scale: 0.8 }}\r\n animate={{ opacity: 1, scale: 1 }}\r\n exit={{ opacity: 0, scale: 0.8 }}\r\n transition={{ type: \"spring\", stiffness: 400, damping: 25 }}\r\n className=\"absolute z-50 pointer-events-none\"\r\n >\r\n <motion.div\r\n className=\"relative px-4 py-2 text-sm text-zinc-900 dark:text-zinc-100 bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-xl shadow-xl backdrop-blur-sm whitespace-nowrap\"\r\n style={{ translateX: \"-50%\", translateY: `calc(-100% - ${offset}px)` }}\r\n whileHover={{ scale: 1.05 }}\r\n >\r\n {content}\r\n <motion.div\r\n className=\"absolute inset-0 bg-gradient-to-r from-blue-500/20 to-purple-500/20 rounded-xl -z-10 blur-sm\"\r\n animate={{ scale: [1, 1.1, 1], opacity: [0.5, 0.8, 0.5] }}\r\n transition={{ duration: 2, repeat: Infinity, ease: \"easeInOut\" }}\r\n />\r\n <motion.div\r\n initial={{ scale: 0 }}\r\n animate={{ scale: 1 }}\r\n transition={{ delay: 0.1, type: \"spring\", stiffness: 400 }}\r\n className=\"absolute top-full left-1/2 -translate-x-1/2 w-0 h-0 border-4 border-l-transparent border-r-transparent border-b-transparent border-t-white dark:border-t-zinc-900\"\r\n />\r\n <motion.div\r\n className=\"absolute inset-0 rounded-xl border border-blue-500/30 -z-10\"\r\n animate={{ scale: [1, 1.2, 1], opacity: [0.3, 0.6, 0.3] }}\r\n transition={{ duration: 1.5, repeat: Infinity, ease: \"easeInOut\" }}\r\n />\r\n </motion.div>\r\n </motion.div>\r\n )}\r\n </AnimatePresence>\r\n </div>\r\n );\r\n}\r\n\r\nexport default TooltipMagnetic;\r\n","\"use client\";\r\n\r\nimport { useState, useRef } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\nexport interface TooltipRichProps {\r\n title?: string;\r\n content: string;\r\n icon?: React.ReactNode;\r\n children: React.ReactNode;\r\n position?: \"top\" | \"bottom\" | \"left\" | \"right\";\r\n delay?: number;\r\n maxWidth?: string;\r\n className?: string;\r\n}\r\n\r\nexport function TooltipRich({\r\n title,\r\n content,\r\n icon,\r\n children,\r\n position = \"top\",\r\n delay = 300,\r\n maxWidth = \"max-w-xs\",\r\n className,\r\n}: TooltipRichProps) {\r\n const [isVisible, setIsVisible] = useState(false);\r\n const timeoutRef = useRef<NodeJS.Timeout>(undefined);\r\n\r\n const showTooltip = () => {\r\n timeoutRef.current = setTimeout(() => setIsVisible(true), delay);\r\n };\r\n\r\n const hideTooltip = () => {\r\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\r\n setIsVisible(false);\r\n };\r\n\r\n const getPositionClasses = () => {\r\n switch (position) {\r\n case \"top\": return \"bottom-full left-1/2 -translate-x-1/2 mb-3\";\r\n case \"bottom\": return \"top-full left-1/2 -translate-x-1/2 mt-3\";\r\n case \"left\": return \"right-full top-1/2 -translate-y-1/2 mr-3\";\r\n case \"right\": return \"left-full top-1/2 -translate-y-1/2 ml-3\";\r\n default: return \"bottom-full left-1/2 -translate-x-1/2 mb-3\";\r\n }\r\n };\r\n\r\n return (\r\n <div className={cn(\"relative inline-block\", className)} onMouseEnter={showTooltip} onMouseLeave={hideTooltip}>\r\n {children}\r\n <AnimatePresence>\r\n {isVisible && (\r\n <motion.div\r\n initial={{ opacity: 0, scale: 0.95, y: position === \"top\" ? 10 : -10 }}\r\n animate={{ opacity: 1, scale: 1, y: 0 }}\r\n exit={{ opacity: 0, scale: 0.95, y: position === \"top\" ? 10 : -10 }}\r\n transition={{ type: \"spring\", stiffness: 300, damping: 25 }}\r\n\r\n className={cn(\"absolute z-50 bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-xl shadow-xl backdrop-blur-sm\", maxWidth, getPositionClasses())}\r\n >\r\n <div className=\"p-4 space-y-2\">\r\n {(title || icon) && (\r\n <motion.div initial={{ opacity: 0, y: -5 }} animate={{ opacity: 1, y: 0 }} transition={{ delay: 0.1 }} className=\"flex items-center gap-2\">\r\n {icon && <div className=\"text-blue-500\">{icon}</div>}\r\n {title && <h3 className=\"font-semibold text-zinc-900 dark:text-zinc-100 text-sm\">{title}</h3>}\r\n </motion.div>\r\n )}\r\n <motion.p initial={{ opacity: 0 }} animate={{ opacity: 1 }} transition={{ delay: 0.15 }} className=\"text-sm text-zinc-600 dark:text-zinc-400 leading-relaxed\">\r\n {content}\r\n </motion.p>\r\n </div>\r\n <motion.div initial={{ opacity: 0 }} animate={{ opacity: 1 }} transition={{ delay: 0.2 }} className=\"absolute inset-0 bg-gradient-to-br from-blue-500/5 to-purple-500/5 rounded-xl pointer-events-none\" />\r\n <motion.div\r\n initial={{ scale: 0 }}\r\n animate={{ scale: 1 }}\r\n transition={{ delay: 0.1, type: \"spring\", stiffness: 400 }}\r\n className={cn(\r\n \"absolute w-0 h-0 border-8\",\r\n position === \"top\" && \"top-full left-1/2 -translate-x-1/2 border-l-transparent border-r-transparent border-b-transparent border-t-white dark:border-t-zinc-900\",\r\n position === \"bottom\" && \"bottom-full left-1/2 -translate-x-1/2 border-l-transparent border-r-transparent border-t-transparent border-b-white dark:border-b-zinc-900\",\r\n position === \"left\" && \"left-full top-1/2 -translate-y-1/2 border-t-transparent border-b-transparent border-r-transparent border-l-white dark:border-l-zinc-900\",\r\n position === \"right\" && \"right-full top-1/2 -translate-y-1/2 border-t-transparent border-b-transparent border-l-transparent border-r-white dark:border-r-zinc-900\"\r\n )}\r\n />\r\n <motion.div initial={{ opacity: 0, scale: 0.8 }} animate={{ opacity: 1, scale: 1 }} transition={{ delay: 0.05, duration: 0.4 }} className=\"absolute inset-0 rounded-xl border border-blue-500/20 pointer-events-none\" />\r\n </motion.div>\r\n )}\r\n </AnimatePresence>\r\n </div>\r\n );\r\n}\r\n\r\nexport default TooltipRich;\r\n","\"use client\";\r\n\r\nimport { useRef, useEffect } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\nexport interface MagnetLinesProps {\r\n rows?: number;\r\n columns?: number;\r\n containerSize?: string;\r\n lineColor?: string;\r\n lineWidth?: string;\r\n lineHeight?: string;\r\n baseAngle?: number;\r\n className?: string;\r\n style?: React.CSSProperties;\r\n}\r\n\r\nexport function MagnetLines({\r\n rows = 9,\r\n columns = 9,\r\n containerSize = \"60vmin\",\r\n lineColor = \"#a1a1aa\",\r\n lineWidth = \"0.8vmin\",\r\n lineHeight = \"5vmin\",\r\n baseAngle = 0,\r\n className = \"\",\r\n style = {},\r\n}: MagnetLinesProps) {\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n const container = containerRef.current;\r\n if (!container) return;\r\n\r\n const items = container.querySelectorAll(\"span\");\r\n\r\n const onPointerMove = (pointer: { x: number; y: number }) => {\r\n items.forEach((item) => {\r\n const rect = item.getBoundingClientRect();\r\n const centerX = rect.x + rect.width / 2;\r\n const centerY = rect.y + rect.height / 2;\r\n\r\n const b = pointer.x - centerX;\r\n const a = pointer.y - centerY;\r\n const c = Math.sqrt(a * a + b * b) || 1;\r\n const r = ((Math.acos(b / c) * 180) / Math.PI) * (pointer.y > centerY ? 1 : -1);\r\n\r\n (item as HTMLElement).style.setProperty(\"--rotate\", `${r}deg`);\r\n });\r\n };\r\n\r\n const handlePointerMove = (e: PointerEvent) => {\r\n onPointerMove({ x: e.clientX, y: e.clientY });\r\n };\r\n\r\n window.addEventListener(\"pointermove\", handlePointerMove);\r\n\r\n if (items.length) {\r\n const middleIndex = Math.floor(items.length / 2);\r\n const rect = items[middleIndex].getBoundingClientRect();\r\n onPointerMove({ x: rect.x, y: rect.y });\r\n }\r\n\r\n return () => window.removeEventListener(\"pointermove\", handlePointerMove);\r\n }, []);\r\n\r\n const total = rows * columns;\r\n const spans = Array.from({ length: total }, (_, i) => (\r\n <span\r\n key={i}\r\n style={{\r\n \"--rotate\": `${baseAngle}deg`,\r\n backgroundColor: lineColor,\r\n width: lineWidth,\r\n height: lineHeight,\r\n transform: \"rotate(var(--rotate))\",\r\n transition: \"transform 0.3s ease\",\r\n borderRadius: \"9999px\",\r\n } as React.CSSProperties}\r\n />\r\n ));\r\n\r\n return (\r\n <div\r\n ref={containerRef}\r\n className={cn(\"place-items-center\", className)}\r\n style={{\r\n display: \"grid\",\r\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\r\n gridTemplateRows: `repeat(${rows}, 1fr)`,\r\n width: containerSize,\r\n height: containerSize,\r\n ...style,\r\n }}\r\n >\r\n {spans}\r\n </div>\r\n );\r\n}\r\n\r\nexport default MagnetLines;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\nexport interface GlareHoverProps {\r\n width?: string;\r\n height?: string;\r\n background?: string;\r\n borderRadius?: string;\r\n borderColor?: string;\r\n children: React.ReactNode;\r\n glareColor?: string;\r\n glareOpacity?: number;\r\n glareAngle?: number;\r\n glareSize?: number;\r\n transitionDuration?: number;\r\n playOnce?: boolean;\r\n className?: string;\r\n style?: React.CSSProperties;\r\n}\r\n\r\nexport function GlareHover({\r\n width = \"500px\",\r\n height = \"500px\",\r\n background = \"#ffffff\",\r\n borderRadius = \"12px\",\r\n borderColor = \"#e5e5e5\",\r\n children,\r\n glareColor = \"#000000\",\r\n glareOpacity = 0.15,\r\n glareAngle = -45,\r\n glareSize = 250,\r\n transitionDuration = 650,\r\n playOnce = false,\r\n className = \"\",\r\n style = {},\r\n}: GlareHoverProps) {\r\n const hex = glareColor.replace(\"#\", \"\");\r\n let rgba = glareColor;\r\n if (/^[0-9A-Fa-f]{6}$/.test(hex)) {\r\n const r = parseInt(hex.slice(0, 2), 16);\r\n const g = parseInt(hex.slice(2, 4), 16);\r\n const b = parseInt(hex.slice(4, 6), 16);\r\n rgba = `rgba(${r}, ${g}, ${b}, ${glareOpacity})`;\r\n } else if (/^[0-9A-Fa-f]{3}$/.test(hex)) {\r\n const r = parseInt(hex[0] + hex[0], 16);\r\n const g = parseInt(hex[1] + hex[1], 16);\r\n const b = parseInt(hex[2] + hex[2], 16);\r\n rgba = `rgba(${r}, ${g}, ${b}, ${glareOpacity})`;\r\n }\r\n\r\n const glareStyles = `\r\n .glare-hover {\r\n position: relative;\r\n overflow: hidden;\r\n width: var(--gh-width);\r\n height: var(--gh-height);\r\n background: var(--gh-bg);\r\n border-radius: var(--gh-br);\r\n border: 1px solid var(--gh-border);\r\n }\r\n .glare-hover::before {\r\n content: \"\";\r\n position: absolute;\r\n top: 0;\r\n left: -100%;\r\n width: var(--gh-size);\r\n height: 100%;\r\n background: linear-gradient(var(--gh-angle), transparent, var(--gh-rgba), transparent);\r\n transition: left var(--gh-duration) ease;\r\n }\r\n .glare-hover:hover::before {\r\n left: 100%;\r\n }\r\n .glare-hover--play-once::before {\r\n animation: glare-once var(--gh-duration) ease forwards;\r\n }\r\n @keyframes glare-once {\r\n 0% { left: -100%; }\r\n 100% { left: 100%; }\r\n }\r\n `;\r\n\r\n const vars = {\r\n \"--gh-width\": width,\r\n \"--gh-height\": height,\r\n \"--gh-bg\": background,\r\n \"--gh-br\": borderRadius,\r\n \"--gh-angle\": `${glareAngle}deg`,\r\n \"--gh-duration\": `${transitionDuration}ms`,\r\n \"--gh-size\": `${glareSize}%`,\r\n \"--gh-rgba\": rgba,\r\n \"--gh-border\": borderColor,\r\n } as React.CSSProperties;\r\n\r\n return (\r\n <>\r\n <style>{glareStyles}</style>\r\n <div\r\n className={cn(\"glare-hover\", playOnce && \"glare-hover--play-once\", className)}\r\n style={{ ...vars, ...style }}\r\n >\r\n {children}\r\n </div>\r\n </>\r\n );\r\n}\r\n\r\nexport default GlareHover;\r\n"]}
|