From 82a21a5d68f802b57fad85699f81653d0beea068 Mon Sep 17 00:00:00 2001 From: DK Date: Mon, 9 Feb 2026 17:11:43 +0000 Subject: [PATCH] Initial commit --- .env | 2 + .gitea/workflows/build.yml | 57 + .gitignore | 40 + README.md | 36 + THEME_PROVIDER_OPTIONS.txt | 116 + colorThemes.css | 484 + colorThemes.json | 393 + docs/ACCESSIBILITY.md | 500 + docs/CARDSTACK_SECTIONS.md | 491 + docs/COMPONENT_IMPLEMENTATION.md | 433 + docs/PREVIEW_PAGE_STANDARDS.md | 499 + docs/README.md | 145 + docs/REGISTRY_STANDARDS.md | 487 + docs/THEME_AND_STYLING.md | 521 + eslint.config.mjs | 55 + fontThemes.json | 301 + next.config.ts | 26 + package-lock.json | 8299 ++++++++++++ package.json | 46 + postcss.config.mjs | 5 + public/audio/click.mp3 | Bin 0 -> 1769 bytes public/base/bg-texture.avif | Bin 0 -> 15448 bytes public/brand/logo-dot.svg | 52 + public/brand/logo.svg | 74 + public/brand/logowhite.svg | 58 + public/images/noise.webp | Bin 0 -> 251220 bytes public/placeholders/iphone.jpg | Bin 0 -> 62785 bytes public/placeholders/placeholder-logo.svg | 19 + public/placeholders/placeholder1.webp | Bin 0 -> 1196224 bytes public/placeholders/placeholder2.jpg | Bin 0 -> 61157 bytes public/placeholders/placeholder3.avif | Bin 0 -> 20690 bytes public/placeholders/placeholder4.webp | Bin 0 -> 427338 bytes public/placeholders/placeholder5.jpg | Bin 0 -> 5015450 bytes public/templates/ai-agents/image1.webp | Bin 0 -> 533988 bytes .../templates/business-coach/hero/hero1.webp | Bin 0 -> 275062 bytes .../templates/business-coach/hero/hero2.webp | Bin 0 -> 174262 bytes public/templates/dentist/about/about1.avif | Bin 0 -> 22233 bytes public/templates/dentist/about/about2.avif | Bin 0 -> 24263 bytes public/templates/dentist/contact/contact.avif | Bin 0 -> 25693 bytes public/templates/dentist/hero/hero1.avif | Bin 0 -> 20635 bytes .../templates/dentist/services/service1.avif | Bin 0 -> 19042 bytes .../templates/dentist/services/service2.avif | Bin 0 -> 23406 bytes .../templates/dentist/services/service3.avif | Bin 0 -> 19963 bytes .../contact/contact1.webp | Bin 0 -> 430654 bytes .../destination/destination1.webp | Bin 0 -> 482508 bytes .../destination/destination2.webp | Bin 0 -> 327856 bytes .../destination/destination3.webp | Bin 0 -> 646664 bytes .../destination/destination4.webp | Bin 0 -> 676132 bytes .../destination/destination5.webp | Bin 0 -> 532784 bytes .../destination/destination6.webp | Bin 0 -> 363640 bytes .../luxury-travel-agency/hero/hero1.webp | Bin 0 -> 345712 bytes .../luxury-travel-agency/hero/hero2.webp | Bin 0 -> 771776 bytes .../luxury-travel-agency/hero/hero3.jpg | Bin 0 -> 367106 bytes .../luxury-travel-agency/hero/hero4.jpg | Bin 0 -> 245991 bytes .../luxury-travel-agency/phone/phone1.webp | Bin 0 -> 770130 bytes .../luxury-travel-agency/phone/phone2.webp | Bin 0 -> 474162 bytes .../luxury-travel-agency/phone/phone3.webp | Bin 0 -> 730504 bytes .../luxury-travel-agency/phone/phone4.webp | Bin 0 -> 546172 bytes .../luxury-travel-agency/phone/phone5.webp | Bin 0 -> 339356 bytes .../luxury-travel-agency/phone/phone6.webp | Bin 0 -> 572642 bytes .../services/service1.webp | Bin 0 -> 392204 bytes .../services/service2.webp | Bin 0 -> 190826 bytes .../services/service3.webp | Bin 0 -> 678468 bytes .../services/service4.webp | Bin 0 -> 997576 bytes .../services/service5.webp | Bin 0 -> 263846 bytes .../testimonial/testimonial1.webp | Bin 0 -> 404882 bytes .../testimonial/testimonial2.webp | Bin 0 -> 328754 bytes .../testimonial/testimonial3.webp | Bin 0 -> 485056 bytes public/templates/personal-grid/grid1.webp | Bin 0 -> 199726 bytes public/templates/personal-grid/grid2.webp | Bin 0 -> 143932 bytes public/templates/skincare/hero.webp | Bin 0 -> 150140 bytes public/templates/skincare/image1.webp | Bin 0 -> 90192 bytes public/templates/skincare/image2.webp | Bin 0 -> 270452 bytes public/templates/skincare/image3.webp | Bin 0 -> 114250 bytes public/templates/skincare/image4.webp | Bin 0 -> 270004 bytes public/templates/skincare/image5.avif | Bin 0 -> 19038 bytes public/templates/skincare/image6.avif | Bin 0 -> 15666 bytes public/templates/skincare/image7.avif | Bin 0 -> 42978 bytes public/templates/skincare/image8.avif | Bin 0 -> 17712 bytes public/templates/web-agency/hero/hero1.webp | Bin 0 -> 535576 bytes public/templates/web-agency/hero/hero2.webp | Bin 0 -> 171610 bytes public/templates/web-agency/hero/hero3.webp | Bin 0 -> 214752 bytes public/templates/web-agency/hero/hero4.webp | Bin 0 -> 198112 bytes public/templates/web-agency/hero/hero5.webp | Bin 0 -> 188306 bytes .../web-agency/process/process1.webp | Bin 0 -> 408514 bytes .../web-agency/process/process2.webp | Bin 0 -> 238738 bytes .../web-agency/process/process3.webp | Bin 0 -> 194094 bytes .../web-agency/process/process4.webp | Bin 0 -> 160906 bytes .../templates/web-agency/services/how1.webp | Bin 0 -> 279744 bytes .../templates/web-agency/services/how2.webp | Bin 0 -> 258098 bytes .../templates/web-agency/services/how3.webp | Bin 0 -> 435282 bytes registry.json | 10676 ++++++++++++++++ registry/components/AboutMetric.json | 49 + .../components/AnimatedAuroraBackground.json | 21 + .../components/AnimatedGridBackground.json | 24 + registry/components/AuroraBackground.json | 20 + registry/components/AvatarGroup.json | 33 + registry/components/BentoGlobe.json | 27 + registry/components/BlogCardOne.json | 64 + registry/components/BlogCardThree.json | 67 + registry/components/BlogCardTwo.json | 64 + registry/components/BlurBottomBackground.json | 19 + registry/components/ButtonBounceEffect.json | 34 + .../components/ButtonDirectionalHover.json | 34 + registry/components/ButtonElasticEffect.json | 34 + registry/components/ButtonExpandHover.json | 34 + registry/components/ButtonHoverBubble.json | 34 + registry/components/ButtonHoverMagnetic.json | 35 + registry/components/ButtonIconArrow.json | 34 + registry/components/ButtonShiftHover.json | 36 + registry/components/ButtonTextShift.json | 34 + registry/components/ButtonTextStagger.json | 34 + registry/components/ButtonTextUnderline.json | 34 + registry/components/CardStack.json | 55 + .../components/CircleGradientBackground.json | 20 + registry/components/ContactCenter.json | 73 + registry/components/ContactFaq.json | 70 + registry/components/ContactForm.json | 74 + registry/components/ContactSplit.json | 78 + registry/components/ContactSplitForm.json | 57 + registry/components/ContactText.json | 48 + registry/components/DotGridBackground.json | 23 + .../components/DownwardRaysBackground.json | 27 + registry/components/EmailSignupForm.json | 39 + registry/components/FaqBase.json | 72 + registry/components/FaqDouble.json | 71 + registry/components/FaqSplitMedia.json | 98 + registry/components/FaqSplitText.json | 71 + registry/components/FeatureCardEight.json | 111 + registry/components/FeatureCardMedia.json | 70 + registry/components/FeatureCardNine.json | 130 + registry/components/FeatureCardNineteen.json | 111 + registry/components/FeatureCardOne.json | 73 + registry/components/FeatureCardSeven.json | 103 + registry/components/FeatureCardSix.json | 102 + registry/components/FeatureCardSixteen.json | 80 + registry/components/FeatureCardThree.json | 90 + registry/components/FeatureCardTwelve.json | 98 + registry/components/FeatureCardTwentyOne.json | 86 + registry/components/FeatureProcessSteps.json | 67 + .../FloatingGradientBackground.json | 19 + registry/components/FluidBackground.json | 19 + registry/components/FooterBase.json | 71 + registry/components/FooterBaseCard.json | 54 + registry/components/FooterBaseReveal.json | 62 + registry/components/FooterCard.json | 53 + registry/components/FooterLogoEmphasis.json | 61 + registry/components/FooterLogoReveal.json | 37 + registry/components/FooterMedia.json | 86 + registry/components/FooterSimple.json | 68 + .../components/GradientBarsBackground.json | 26 + registry/components/GridBackround.json | 23 + registry/components/HeroBillboard.json | 86 + .../components/HeroBillboardCarousel.json | 76 + registry/components/HeroBillboardGallery.json | 76 + .../HeroBillboardRotatedCarousel.json | 81 + registry/components/HeroBillboardScroll.json | 101 + registry/components/HeroCarouselLogo.json | 78 + registry/components/HeroLogo.json | 82 + registry/components/HeroLogoBillboard.json | 73 + .../components/HeroLogoBillboardSplit.json | 92 + registry/components/HeroOverlay.json | 105 + registry/components/HeroSplit.json | 97 + registry/components/HeroSplitKpi.json | 106 + .../components/InlineImageSplitTextAbout.json | 61 + registry/components/Input.json | 35 + registry/components/MediaAbout.json | 84 + registry/components/MediaSplitTabsAbout.json | 90 + registry/components/MetricCardEleven.json | 95 + registry/components/MetricCardFourteen.json | 69 + registry/components/MetricCardOne.json | 91 + registry/components/MetricCardSeven.json | 89 + registry/components/MetricCardTen.json | 106 + registry/components/MetricCardThree.json | 85 + registry/components/MetricCardTwo.json | 79 + .../components/MetricSplitMediaAbout.json | 63 + .../NavbarLayoutFloatingInline.json | 69 + .../NavbarLayoutFloatingOverlay.json | 69 + registry/components/NavbarStyleApple.json | 51 + registry/components/NavbarStyleCentered.json | 72 + .../components/NavbarStyleFullscreen.json | 67 + registry/components/PlainBackground.json | 18 + registry/components/PricingCardEight.json | 84 + registry/components/PricingCardFive.json | 106 + registry/components/PricingCardNine.json | 99 + registry/components/PricingCardOne.json | 100 + registry/components/PricingCardThree.json | 111 + registry/components/PricingCardTwo.json | 111 + registry/components/ProductCardFour.json | 92 + registry/components/ProductCardOne.json | 89 + registry/components/ProductCardThree.json | 94 + registry/components/ProductCardTwo.json | 106 + .../components/RadialGradientBackground.json | 24 + .../components/RotatedRaysBackground.json | 26 + registry/components/SplitAbout.json | 95 + registry/components/TeamCardEleven.json | 110 + registry/components/TeamCardFive.json | 106 + registry/components/TeamCardOne.json | 89 + registry/components/TeamCardSix.json | 91 + registry/components/TeamCardTen.json | 74 + registry/components/TeamCardTwo.json | 106 + registry/components/TestimonialAboutCard.json | 75 + .../components/TestimonialCardFifteen.json | 63 + registry/components/TestimonialCardFive.json | 137 + registry/components/TestimonialCardOne.json | 103 + registry/components/TestimonialCardSix.json | 108 + registry/components/TestimonialCardTen.json | 109 + .../components/TestimonialCardThirteen.json | 101 + .../components/TestimonialCardTwelve.json | 80 + registry/components/TestimonialCardTwo.json | 100 + registry/components/TextAbout.json | 45 + registry/components/TextAnimation.json | 36 + registry/components/TextBox.json | 60 + registry/components/TextNumberCount.json | 39 + registry/components/TextSplitAbout.json | 58 + registry/components/Textarea.json | 35 + registry/components/TimelineCardStack.json | 64 + .../TimelineHorizontalCardStack.json | 89 + registry/components/TimelinePhoneView.json | 71 + registry/components/TimelineProcessFlow.json | 81 + registry/index.json | 1439 +++ registry/intents.json | 123 + registry/schemas/AboutMetric.schema.json | 17 + .../AnimatedAuroraBackground.schema.json | 8 + .../AnimatedGridBackground.schema.json | 9 + registry/schemas/AuroraBackground.schema.json | 6 + registry/schemas/AvatarGroup.schema.json | 12 + registry/schemas/BentoGlobe.schema.json | 7 + registry/schemas/BlogCardOne.schema.json | 42 + registry/schemas/BlogCardThree.schema.json | 39 + registry/schemas/BlogCardTwo.schema.json | 39 + .../schemas/BlurBottomBackground.schema.json | 6 + .../schemas/ButtonBounceEffect.schema.json | 15 + .../ButtonDirectionalHover.schema.json | 16 + .../schemas/ButtonElasticEffect.schema.json | 14 + .../schemas/ButtonExpandHover.schema.json | 16 + .../schemas/ButtonHoverBubble.schema.json | 16 + .../schemas/ButtonHoverMagnetic.schema.json | 15 + registry/schemas/ButtonIconArrow.schema.json | 15 + registry/schemas/ButtonShiftHover.schema.json | 15 + registry/schemas/ButtonTextShift.schema.json | 15 + .../schemas/ButtonTextStagger.schema.json | 15 + .../schemas/ButtonTextUnderline.schema.json | 13 + registry/schemas/CardStack.schema.json | 33 + .../CircleGradientBackground.schema.json | 7 + registry/schemas/ContactCenter.schema.json | 27 + registry/schemas/ContactFaq.schema.json | 31 + registry/schemas/ContactForm.schema.json | 25 + registry/schemas/ContactSplit.schema.json | 35 + registry/schemas/ContactSplitForm.schema.json | 28 + registry/schemas/ContactText.schema.json | 16 + .../schemas/DotGridBackground.schema.json | 8 + .../DownwardRaysBackground.schema.json | 9 + registry/schemas/EmailSignupForm.schema.json | 12 + registry/schemas/FaqBase.schema.json | 35 + registry/schemas/FaqDouble.schema.json | 34 + registry/schemas/FaqSplitMedia.schema.json | 43 + registry/schemas/FaqSplitText.schema.json | 30 + registry/schemas/FeatureCardEight.schema.json | 34 + registry/schemas/FeatureCardMedia.schema.json | 42 + registry/schemas/FeatureCardNine.schema.json | 38 + .../schemas/FeatureCardNineteen.schema.json | 34 + registry/schemas/FeatureCardOne.schema.json | 39 + registry/schemas/FeatureCardSeven.schema.json | 34 + registry/schemas/FeatureCardSix.schema.json | 32 + .../schemas/FeatureCardSixteen.schema.json | 34 + registry/schemas/FeatureCardThree.schema.json | 37 + .../schemas/FeatureCardTwelve.schema.json | 35 + .../schemas/FeatureCardTwentyOne.schema.json | 39 + .../schemas/FeatureProcessSteps.schema.json | 32 + .../FloatingGradientBackground.schema.json | 6 + registry/schemas/FluidBackground.schema.json | 6 + registry/schemas/FooterBase.schema.json | 20 + registry/schemas/FooterBaseCard.schema.json | 21 + registry/schemas/FooterBaseReveal.schema.json | 21 + registry/schemas/FooterCard.schema.json | 19 + .../schemas/FooterLogoEmphasis.schema.json | 16 + registry/schemas/FooterLogoReveal.schema.json | 12 + registry/schemas/FooterMedia.schema.json | 26 + registry/schemas/FooterSimple.schema.json | 19 + .../GradientBarsBackground.schema.json | 11 + registry/schemas/GridBackround.schema.json | 8 + registry/schemas/HeroBillboard.schema.json | 27 + .../schemas/HeroBillboardCarousel.schema.json | 23 + .../schemas/HeroBillboardGallery.schema.json | 24 + .../HeroBillboardRotatedCarousel.schema.json | 25 + .../schemas/HeroBillboardScroll.schema.json | 28 + registry/schemas/HeroCarouselLogo.schema.json | 27 + registry/schemas/HeroLogo.schema.json | 28 + .../schemas/HeroLogoBillboard.schema.json | 24 + .../HeroLogoBillboardSplit.schema.json | 29 + registry/schemas/HeroOverlay.schema.json | 31 + registry/schemas/HeroSplit.schema.json | 32 + registry/schemas/HeroSplitKpi.schema.json | 36 + .../InlineImageSplitTextAbout.schema.json | 17 + registry/schemas/Input.schema.json | 13 + registry/schemas/MediaAbout.schema.json | 26 + .../schemas/MediaSplitTabsAbout.schema.json | 27 + registry/schemas/MetricCardEleven.schema.json | 34 + .../schemas/MetricCardFourteen.schema.json | 18 + registry/schemas/MetricCardOne.schema.json | 39 + registry/schemas/MetricCardSeven.schema.json | 37 + registry/schemas/MetricCardTen.schema.json | 40 + registry/schemas/MetricCardThree.schema.json | 37 + registry/schemas/MetricCardTwo.schema.json | 36 + .../schemas/MetricSplitMediaAbout.schema.json | 31 + .../NavbarLayoutFloatingInline.schema.json | 12 + .../NavbarLayoutFloatingOverlay.schema.json | 11 + registry/schemas/NavbarStyleApple.schema.json | 7 + .../schemas/NavbarStyleCentered.schema.json | 9 + .../schemas/NavbarStyleFullscreen.schema.json | 10 + registry/schemas/PlainBackground.schema.json | 6 + registry/schemas/PricingCardEight.schema.json | 40 + registry/schemas/PricingCardFive.schema.json | 40 + registry/schemas/PricingCardNine.schema.json | 39 + registry/schemas/PricingCardOne.schema.json | 38 + registry/schemas/PricingCardThree.schema.json | 40 + registry/schemas/PricingCardTwo.schema.json | 40 + registry/schemas/ProductCardFour.schema.json | 39 + registry/schemas/ProductCardOne.schema.json | 37 + registry/schemas/ProductCardThree.schema.json | 37 + registry/schemas/ProductCardTwo.schema.json | 40 + .../RadialGradientBackground.schema.json | 10 + .../schemas/RotatedRaysBackground.schema.json | 9 + registry/schemas/SplitAbout.schema.json | 37 + registry/schemas/TeamCardEleven.schema.json | 34 + registry/schemas/TeamCardFive.schema.json | 33 + registry/schemas/TeamCardOne.schema.json | 38 + registry/schemas/TeamCardSix.schema.json | 38 + registry/schemas/TeamCardTen.schema.json | 20 + registry/schemas/TeamCardTwo.schema.json | 41 + .../schemas/TestimonialAboutCard.schema.json | 30 + .../TestimonialCardFifteen.schema.json | 19 + .../schemas/TestimonialCardFive.schema.json | 38 + .../schemas/TestimonialCardOne.schema.json | 40 + .../schemas/TestimonialCardSix.schema.json | 38 + .../schemas/TestimonialCardTen.schema.json | 36 + .../TestimonialCardThirteen.schema.json | 42 + .../schemas/TestimonialCardTwelve.schema.json | 18 + .../schemas/TestimonialCardTwo.schema.json | 39 + registry/schemas/TextAbout.schema.json | 15 + registry/schemas/TextAnimation.schema.json | 17 + registry/schemas/TextBox.schema.json | 32 + registry/schemas/TextNumberCount.schema.json | 15 + registry/schemas/TextSplitAbout.schema.json | 18 + registry/schemas/Textarea.schema.json | 13 + .../schemas/TimelineCardStack.schema.json | 26 + .../TimelineHorizontalCardStack.schema.json | 31 + .../schemas/TimelinePhoneView.schema.json | 35 + .../schemas/TimelineProcessFlow.schema.json | 32 + src/app/blog/page.tsx | 98 + src/app/favicon.ico | Bin 0 -> 25931 bytes src/app/globals.css | 5 + src/app/layout.tsx | 1260 ++ src/app/page.tsx | 274 + src/app/shop/[id]/page.tsx | 251 + src/app/shop/page.tsx | 122 + src/app/styles/base.css | 28 + src/app/styles/theme.css | 174 + src/app/styles/utilities.css | 178 + src/app/styles/variables.css | 215 + src/components/Accordion.tsx | 146 + src/components/ServiceWrapper.tsx | 22 + src/components/Textbox.tsx | 294 + .../background/AnimatedAuroraBackground.tsx | 44 + .../background/AnimatedGridBackground.tsx | 112 + .../background/AuroraBackground.tsx | 32 + .../background/BlurBottomBackground.tsx | 58 + .../background/CanvasRevealBackground.tsx | 74 + .../background/CanvasRevealEffect.tsx | 304 + src/components/background/CardPattern.tsx | 56 + .../background/CellWaveBackground.tsx | 103 + .../background/CircleGradientBackground.tsx | 48 + .../background/DotGridBackground.tsx | 45 + .../background/DownwardRaysBackground.tsx | 130 + src/components/background/FluidBackground.tsx | 277 + src/components/background/GlowingEffect.tsx | 272 + .../background/GlowingOrbBackground.tsx | 52 + .../GlowingOrbSparklesBackground.tsx | 82 + .../background/GradientBarsBackground.tsx | 74 + src/components/background/GridBackround.tsx | 45 + src/components/background/HeroBackgrounds.tsx | 121 + src/components/background/NoiseBackground.tsx | 31 + .../NoiseDiagonalGradientBackground.tsx | 35 + .../background/NoiseGradientBackground.tsx | 35 + src/components/background/PlainBackground.tsx | 21 + .../background/RadialGradientBackground.tsx | 40 + .../background/RotatedRaysBackground.tsx | 130 + .../background/RotatingGradientBackground.tsx | 77 + src/components/background/Sparkles.tsx | 460 + .../background/SparklesGradientBackground.tsx | 56 + .../FloatingGradientBackground.css | 102 + .../FloatingGradientBackground.tsx | 38 + src/components/bento/Bento3DCardGrid.tsx | 122 + src/components/bento/Bento3DStackCards.tsx | 117 + src/components/bento/Bento3DTaskList.tsx | 97 + .../bento/BentoAnimatedBarChart.tsx | 77 + src/components/bento/BentoChatAnimation.tsx | 96 + src/components/bento/BentoGlobe.tsx | 204 + src/components/bento/BentoIconInfoCards.tsx | 72 + .../bento/BentoLineChart/BentoLineChart.tsx | 145 + .../bento/BentoLineChart/CustomTooltip.tsx | 64 + src/components/bento/BentoLineChart/utils.ts | 33 + src/components/bento/BentoMap.tsx | 1460 +++ src/components/bento/BentoMarquee.tsx | 71 + src/components/bento/BentoMediaStack.tsx | 82 + src/components/bento/BentoOrbitingIcons.tsx | 104 + src/components/bento/BentoPhoneAnimation.tsx | 115 + src/components/bento/BentoRevealIcon.tsx | 83 + src/components/bento/BentoTimeline.tsx | 115 + src/components/button/Button.tsx | 43 + .../ButtonBounceEffect/BounceButton.css | 30 + .../ButtonBounceEffect/ButtonBounceEffect.tsx | 74 + .../ButtonDirectionalHover.tsx | 83 + .../DirectionalButton.css | 37 + .../useDirectionalHover.ts | 48 + .../ButtonElasticEffect.tsx | 55 + .../ButtonElasticEffect/useElasticEffect.ts | 59 + src/components/button/ButtonExpandHover.tsx | 92 + src/components/button/ButtonHoverBubble.tsx | 83 + .../ButtonHoverMagnetic.tsx | 57 + .../ButtonHoverMagnetic/useMagneticEffect.ts | 73 + src/components/button/ButtonIconArrow.tsx | 66 + .../ButtonShiftHover/ButtonShiftHover.tsx | 73 + .../button/ButtonShiftHover/ShiftButton.css | 29 + .../button/ButtonSlideBackground.tsx | 75 + .../ButtonTextShift/ButtonTextShift.tsx | 74 + .../ButtonTextShift/TextShiftButton.css | 21 + .../ButtonTextStagger/ButtonTextStagger.tsx | 74 + .../ButtonTextStagger/StaggerButton.css | 29 + src/components/button/ButtonTextUnderline.tsx | 53 + src/components/button/SelectorButton.tsx | 125 + src/components/button/types.ts | 96 + src/components/button/useButtonClick.ts | 74 + src/components/button/useCharAnimation.ts | 31 + src/components/cardStack/CardList.tsx | 117 + src/components/cardStack/CardStack.tsx | 219 + src/components/cardStack/CardStackTextBox.tsx | 88 + .../cardStack/hooks/useCardAnimation.ts | 126 + .../cardStack/hooks/useDepth3DAnimation.ts | 118 + .../cardStack/hooks/usePhoneAnimations.ts | 108 + .../cardStack/hooks/usePrevNextButtons.ts | 40 + .../cardStack/hooks/useScrollProgress.ts | 30 + .../cardStack/hooks/useTimelineHorizontal.ts | 243 + .../layouts/carousels/AngledCarousel.tsx | 144 + .../layouts/carousels/ArrowCarousel.tsx | 140 + .../layouts/carousels/AutoCarousel.tsx | 144 + .../layouts/carousels/ButtonCarousel.tsx | 178 + .../layouts/carousels/FullWidthCarousel.tsx | 151 + .../cardStack/layouts/grid/GridLayout.tsx | 146 + .../cardStack/layouts/grid/gridConfigs.ts | 319 + .../layouts/timelines/TimelineBase.tsx | 143 + .../layouts/timelines/TimelineCardStack.tsx | 141 + .../timelines/TimelineHorizontalCardStack.tsx | 169 + .../layouts/timelines/TimelinePhoneView.tsx | 258 + .../layouts/timelines/TimelineProcessFlow.tsx | 198 + src/components/cardStack/types.ts | 147 + src/components/ecommerce/cart/ProductCart.tsx | 191 + .../ecommerce/cart/ProductCartItem.tsx | 106 + .../productCatalog/ProductCatalog.tsx | 156 + .../productCatalog/ProductCatalogItem.tsx | 115 + .../productDetail/ProductDetailCard.tsx | 255 + .../productDetail/ProductDetailGallery.tsx | 69 + .../ProductDetailVariantSelect.tsx | 53 + src/components/form/ContactForm.tsx | 101 + src/components/form/EmailSignupForm.tsx | 78 + src/components/form/Input.tsx | 47 + src/components/form/Textarea.tsx | 47 + src/components/form/WaitlistForm.tsx | 99 + src/components/legal/LegalSection.tsx | 131 + src/components/navbar/HamburgerButton.tsx | 57 + src/components/navbar/Logo.tsx | 66 + .../navbar/NavbarLayoutFloatingInline.tsx | 81 + .../NavbarLayoutFloatingOverlay.tsx | 94 + .../useMenuAnimation.ts | 40 + .../useResponsive.ts | 18 + .../useScrollDetection.ts | 18 + .../NavbarStyleApple/NavbarStyleApple.tsx | 132 + .../navbar/NavbarStyleApple/useScrollState.ts | 28 + .../NavbarStyleCentered.css | 40 + .../NavbarStyleCentered.tsx | 161 + .../NavbarStyleFullscreen.css | 58 + .../NavbarStyleFullscreen.tsx | 141 + .../navbar/expandingMenu/ExpandingMenu.tsx | 149 + .../expandingMenu/useResponsiveMenuWidth.ts | 23 + .../navbar/mobileMenu/MobileMenu.tsx | 79 + .../navbar/mobileMenu/useMenuAnimation.ts | 40 + .../sections/AnimationContainer.tsx | 45 + src/components/sections/about/AboutMetric.tsx | 101 + .../about/InlineImageSplitTextAbout.tsx | 121 + src/components/sections/about/MediaAbout.tsx | 98 + .../sections/about/MediaSplitTabsAbout.tsx | 163 + .../sections/about/MetricSplitMediaAbout.tsx | 158 + src/components/sections/about/SplitAbout.tsx | 171 + .../sections/about/TestimonialAboutCard.tsx | 127 + src/components/sections/about/TextAbout.tsx | 71 + .../sections/about/TextSplitAbout.tsx | 87 + src/components/sections/blog/BlogCardOne.tsx | 249 + .../sections/blog/BlogCardThree.tsx | 294 + src/components/sections/blog/BlogCardTwo.tsx | 246 + .../sections/contact/ContactCTA.tsx | 105 + .../sections/contact/ContactCenter.tsx | 127 + .../sections/contact/ContactFaq.tsx | 188 + .../sections/contact/ContactSplit.tsx | 163 + .../sections/contact/ContactSplitForm.tsx | 209 + .../sections/contact/ContactText.tsx | 115 + src/components/sections/faq/FaqBase.tsx | 144 + src/components/sections/faq/FaqDouble.tsx | 169 + src/components/sections/faq/FaqSplitMedia.tsx | 187 + src/components/sections/faq/FaqSplitText.tsx | 151 + .../sections/feature/FeatureBento.tsx | 294 + .../sections/feature/FeatureCardEight.tsx | 151 + .../sections/feature/FeatureCardMedia.tsx | 255 + .../sections/feature/FeatureCardNine.tsx | 224 + .../sections/feature/FeatureCardNineteen.tsx | 193 + .../sections/feature/FeatureCardOne.tsx | 190 + .../sections/feature/FeatureCardSeven.tsx | 173 + .../sections/feature/FeatureCardSix.tsx | 167 + .../sections/feature/FeatureCardSixteen.tsx | 161 + .../sections/feature/FeatureCardTen.tsx | 257 + .../sections/feature/FeatureCardTwelve.tsx | 177 + .../feature/FeatureCardTwentyFive.tsx | 172 + .../feature/FeatureCardTwentyFour.tsx | 194 + .../sections/feature/FeatureCardTwentyOne.tsx | 220 + .../sections/feature/FeatureCardTwentySix.tsx | 181 + .../feature/FeatureCardTwentyThree.tsx | 235 + .../sections/feature/FeatureCardTwentyTwo.tsx | 169 + .../sections/feature/FeatureProcessSteps.tsx | 189 + .../featureBorderGlow/FeatureBorderGlow.tsx | 148 + .../FeatureBorderGlowItem.tsx | 88 + .../feature/featureBorderGlow/constants.ts | 8 + .../featureCardThree/FeatureCardThree.css | 32 + .../featureCardThree/FeatureCardThree.tsx | 176 + .../featureCardThree/FeatureCardThreeItem.tsx | 144 + .../featureCardThree/useDynamicDimensions.ts | 122 + .../FeatureHoverPattern.tsx | 158 + .../FeatureHoverPatternItem.tsx | 153 + .../feature/featureHoverPattern/constants.ts | 17 + .../usePatternInteraction.ts | 137 + src/components/sections/footer/FooterBase.tsx | 108 + .../sections/footer/FooterBaseCard.tsx | 108 + .../sections/footer/FooterBaseReveal.tsx | 126 + src/components/sections/footer/FooterCard.tsx | 79 + .../sections/footer/FooterLogoEmphasis.tsx | 120 + .../sections/footer/FooterLogoReveal.tsx | 114 + .../sections/footer/FooterMedia.tsx | 143 + .../sections/footer/FooterSimple.tsx | 75 + .../sections/hero/HeroBillboard.tsx | 161 + .../sections/hero/HeroBillboardCarousel.tsx | 149 + .../sections/hero/HeroBillboardDashboard.tsx | 126 + .../sections/hero/HeroBillboardGallery.tsx | 189 + .../hero/HeroBillboardRotatedCarousel.tsx | 121 + .../sections/hero/HeroBillboardScroll.tsx | 162 + src/components/sections/hero/HeroCentered.tsx | 128 + src/components/sections/hero/HeroLogo.tsx | 125 + .../sections/hero/HeroLogoBillboard.tsx | 160 + .../sections/hero/HeroLogoBillboardSplit.tsx | 165 + src/components/sections/hero/HeroOverlay.tsx | 142 + .../sections/hero/HeroPersonalLinks.tsx | 198 + src/components/sections/hero/HeroSignup.tsx | 111 + src/components/sections/hero/HeroSplit.tsx | 197 + .../sections/hero/HeroSplitDualMedia.tsx | 180 + src/components/sections/hero/HeroSplitKpi.tsx | 310 + .../heroCarouselLogo/HeroCarouselLogo.tsx | 171 + .../heroCarouselLogo/useCarouselFullscreen.ts | 103 + .../sections/metrics/MetricCardEleven.tsx | 268 + .../sections/metrics/MetricCardFourteen.tsx | 120 + .../sections/metrics/MetricCardOne.tsx | 204 + .../sections/metrics/MetricCardSeven.tsx | 188 + .../sections/metrics/MetricCardTen.tsx | 239 + .../sections/metrics/MetricCardThree.tsx | 180 + .../sections/metrics/MetricCardTwo.tsx | 175 + .../sections/pricing/PricingCardEight.tsx | 242 + .../sections/pricing/PricingCardFive.tsx | 225 + .../sections/pricing/PricingCardNine.tsx | 206 + .../sections/pricing/PricingCardOne.tsx | 200 + .../sections/pricing/PricingCardThree.tsx | 240 + .../sections/pricing/PricingCardTwo.tsx | 240 + .../sections/product/ProductCardFour.tsx | 232 + .../sections/product/ProductCardOne.tsx | 220 + .../sections/product/ProductCardThree.tsx | 277 + .../sections/product/ProductCardTwo.tsx | 261 + .../sections/socialProof/SocialProofOne.tsx | 122 + .../sections/socialProof/SocialProofThree.tsx | 148 + .../sections/socialProof/SocialProofTwo.tsx | 134 + .../sections/team/TeamCardEleven.tsx | 190 + src/components/sections/team/TeamCardFive.tsx | 142 + src/components/sections/team/TeamCardOne.tsx | 188 + src/components/sections/team/TeamCardSix.tsx | 194 + src/components/sections/team/TeamCardTen.tsx | 128 + src/components/sections/team/TeamCardTwo.tsx | 234 + .../testimonial/TestimonialCardFifteen.tsx | 109 + .../testimonial/TestimonialCardFive.tsx | 230 + .../testimonial/TestimonialCardOne.tsx | 213 + .../testimonial/TestimonialCardSix.tsx | 197 + .../testimonial/TestimonialCardSixteen.tsx | 234 + .../testimonial/TestimonialCardTen.tsx | 228 + .../testimonial/TestimonialCardThirteen.tsx | 234 + .../testimonial/TestimonialCardTwelve.tsx | 101 + .../testimonial/TestimonialCardTwo.tsx | 210 + src/components/shared/AvatarGroup.tsx | 90 + src/components/shared/Badge.tsx | 35 + src/components/shared/Dashboard.tsx | 331 + src/components/shared/FavoriteButton.tsx | 60 + .../shared/FillWidthText/FillWidthText.tsx | 59 + .../shared/FillWidthText/useFillWidthText.ts | 109 + src/components/shared/FooterColumns.tsx | 62 + src/components/shared/LogoMarquee.tsx | 78 + src/components/shared/MediaContent.tsx | 53 + src/components/shared/OverlayArrowButton.tsx | 31 + src/components/shared/PricingBadge.tsx | 28 + src/components/shared/PricingFeatureList.tsx | 44 + src/components/shared/ProductImage.tsx | 68 + src/components/shared/QuantityButton.tsx | 25 + src/components/shared/SocialLinks.tsx | 50 + .../shared/SvgTextLogo/SvgTextLogo.tsx | 51 + .../shared/SvgTextLogo/useSvgTextLogo.ts | 34 + src/components/shared/Tag.tsx | 39 + src/components/shared/TestimonialAuthor.tsx | 73 + src/components/text/TextAnimation.tsx | 286 + src/components/text/TextNumberCount.tsx | 106 + src/components/text/types.ts | 1 + src/hooks/useBlogPosts.ts | 39 + src/hooks/useCart.ts | 160 + src/hooks/useCheckout.ts | 117 + src/hooks/useClickOutside.ts | 38 + src/hooks/useProduct.ts | 45 + src/hooks/useProductCatalog.ts | 115 + src/hooks/useProductDetail.ts | 196 + src/hooks/useProducts.ts | 39 + src/lib/api/blog.ts | 106 + src/lib/api/product.ts | 219 + src/lib/buttonUtils.ts | 114 + src/lib/utils.ts | 20 + src/providers/themeProvider/ThemeProvider.tsx | 126 + .../themeProvider/config/background.ts | 15 + src/providers/themeProvider/config/baseVw.ts | 44 + .../themeProvider/config/borderRadius.ts | 15 + .../themeProvider/config/constants.ts | 7 + .../themeProvider/config/contentWidth.ts | 82 + src/providers/themeProvider/config/shared.ts | 16 + .../themeProvider/config/textSizing.ts | 385 + src/providers/themeProvider/config/types.ts | 43 + .../themeProvider/styles/cardStyles.ts | 107 + .../styles/primaryButtonStyles.ts | 39 + .../styles/secondaryButtonStyles.ts | 33 + .../utils/detectLightBackground.ts | 21 + src/tag/Tag.tsx | 80 + src/tag/useTagEffects.ts | 54 + src/types/button.ts | 36 + src/types/navigation.ts | 13 + src/utils/debounce.ts | 15 + src/utils/sendContactEmail.ts | 62 + src/utils/throttle.ts | 24 + tsconfig.json | 42 + vercel.json | 5 + 656 files changed, 77352 insertions(+) create mode 100644 .env create mode 100644 .gitea/workflows/build.yml create mode 100644 .gitignore create mode 100644 README.md create mode 100644 THEME_PROVIDER_OPTIONS.txt create mode 100644 colorThemes.css create mode 100644 colorThemes.json create mode 100644 docs/ACCESSIBILITY.md create mode 100644 docs/CARDSTACK_SECTIONS.md create mode 100644 docs/COMPONENT_IMPLEMENTATION.md create mode 100644 docs/PREVIEW_PAGE_STANDARDS.md create mode 100644 docs/README.md create mode 100644 docs/REGISTRY_STANDARDS.md create mode 100644 docs/THEME_AND_STYLING.md create mode 100644 eslint.config.mjs create mode 100644 fontThemes.json create mode 100644 next.config.ts create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 postcss.config.mjs create mode 100644 public/audio/click.mp3 create mode 100644 public/base/bg-texture.avif create mode 100644 public/brand/logo-dot.svg create mode 100644 public/brand/logo.svg create mode 100644 public/brand/logowhite.svg create mode 100644 public/images/noise.webp create mode 100644 public/placeholders/iphone.jpg create mode 100644 public/placeholders/placeholder-logo.svg create mode 100644 public/placeholders/placeholder1.webp create mode 100644 public/placeholders/placeholder2.jpg create mode 100644 public/placeholders/placeholder3.avif create mode 100644 public/placeholders/placeholder4.webp create mode 100644 public/placeholders/placeholder5.jpg create mode 100644 public/templates/ai-agents/image1.webp create mode 100644 public/templates/business-coach/hero/hero1.webp create mode 100644 public/templates/business-coach/hero/hero2.webp create mode 100644 public/templates/dentist/about/about1.avif create mode 100644 public/templates/dentist/about/about2.avif create mode 100644 public/templates/dentist/contact/contact.avif create mode 100644 public/templates/dentist/hero/hero1.avif create mode 100644 public/templates/dentist/services/service1.avif create mode 100644 public/templates/dentist/services/service2.avif create mode 100644 public/templates/dentist/services/service3.avif create mode 100644 public/templates/luxury-travel-agency/contact/contact1.webp create mode 100644 public/templates/luxury-travel-agency/destination/destination1.webp create mode 100644 public/templates/luxury-travel-agency/destination/destination2.webp create mode 100644 public/templates/luxury-travel-agency/destination/destination3.webp create mode 100644 public/templates/luxury-travel-agency/destination/destination4.webp create mode 100644 public/templates/luxury-travel-agency/destination/destination5.webp create mode 100644 public/templates/luxury-travel-agency/destination/destination6.webp create mode 100644 public/templates/luxury-travel-agency/hero/hero1.webp create mode 100644 public/templates/luxury-travel-agency/hero/hero2.webp create mode 100644 public/templates/luxury-travel-agency/hero/hero3.jpg create mode 100644 public/templates/luxury-travel-agency/hero/hero4.jpg create mode 100644 public/templates/luxury-travel-agency/phone/phone1.webp create mode 100644 public/templates/luxury-travel-agency/phone/phone2.webp create mode 100644 public/templates/luxury-travel-agency/phone/phone3.webp create mode 100644 public/templates/luxury-travel-agency/phone/phone4.webp create mode 100644 public/templates/luxury-travel-agency/phone/phone5.webp create mode 100644 public/templates/luxury-travel-agency/phone/phone6.webp create mode 100644 public/templates/luxury-travel-agency/services/service1.webp create mode 100644 public/templates/luxury-travel-agency/services/service2.webp create mode 100644 public/templates/luxury-travel-agency/services/service3.webp create mode 100644 public/templates/luxury-travel-agency/services/service4.webp create mode 100644 public/templates/luxury-travel-agency/services/service5.webp create mode 100644 public/templates/luxury-travel-agency/testimonial/testimonial1.webp create mode 100644 public/templates/luxury-travel-agency/testimonial/testimonial2.webp create mode 100644 public/templates/luxury-travel-agency/testimonial/testimonial3.webp create mode 100644 public/templates/personal-grid/grid1.webp create mode 100644 public/templates/personal-grid/grid2.webp create mode 100644 public/templates/skincare/hero.webp create mode 100644 public/templates/skincare/image1.webp create mode 100644 public/templates/skincare/image2.webp create mode 100644 public/templates/skincare/image3.webp create mode 100644 public/templates/skincare/image4.webp create mode 100644 public/templates/skincare/image5.avif create mode 100644 public/templates/skincare/image6.avif create mode 100644 public/templates/skincare/image7.avif create mode 100644 public/templates/skincare/image8.avif create mode 100644 public/templates/web-agency/hero/hero1.webp create mode 100644 public/templates/web-agency/hero/hero2.webp create mode 100644 public/templates/web-agency/hero/hero3.webp create mode 100644 public/templates/web-agency/hero/hero4.webp create mode 100644 public/templates/web-agency/hero/hero5.webp create mode 100644 public/templates/web-agency/process/process1.webp create mode 100644 public/templates/web-agency/process/process2.webp create mode 100644 public/templates/web-agency/process/process3.webp create mode 100644 public/templates/web-agency/process/process4.webp create mode 100644 public/templates/web-agency/services/how1.webp create mode 100644 public/templates/web-agency/services/how2.webp create mode 100644 public/templates/web-agency/services/how3.webp create mode 100644 registry.json create mode 100644 registry/components/AboutMetric.json create mode 100644 registry/components/AnimatedAuroraBackground.json create mode 100644 registry/components/AnimatedGridBackground.json create mode 100644 registry/components/AuroraBackground.json create mode 100644 registry/components/AvatarGroup.json create mode 100644 registry/components/BentoGlobe.json create mode 100644 registry/components/BlogCardOne.json create mode 100644 registry/components/BlogCardThree.json create mode 100644 registry/components/BlogCardTwo.json create mode 100644 registry/components/BlurBottomBackground.json create mode 100644 registry/components/ButtonBounceEffect.json create mode 100644 registry/components/ButtonDirectionalHover.json create mode 100644 registry/components/ButtonElasticEffect.json create mode 100644 registry/components/ButtonExpandHover.json create mode 100644 registry/components/ButtonHoverBubble.json create mode 100644 registry/components/ButtonHoverMagnetic.json create mode 100644 registry/components/ButtonIconArrow.json create mode 100644 registry/components/ButtonShiftHover.json create mode 100644 registry/components/ButtonTextShift.json create mode 100644 registry/components/ButtonTextStagger.json create mode 100644 registry/components/ButtonTextUnderline.json create mode 100644 registry/components/CardStack.json create mode 100644 registry/components/CircleGradientBackground.json create mode 100644 registry/components/ContactCenter.json create mode 100644 registry/components/ContactFaq.json create mode 100644 registry/components/ContactForm.json create mode 100644 registry/components/ContactSplit.json create mode 100644 registry/components/ContactSplitForm.json create mode 100644 registry/components/ContactText.json create mode 100644 registry/components/DotGridBackground.json create mode 100644 registry/components/DownwardRaysBackground.json create mode 100644 registry/components/EmailSignupForm.json create mode 100644 registry/components/FaqBase.json create mode 100644 registry/components/FaqDouble.json create mode 100644 registry/components/FaqSplitMedia.json create mode 100644 registry/components/FaqSplitText.json create mode 100644 registry/components/FeatureCardEight.json create mode 100644 registry/components/FeatureCardMedia.json create mode 100644 registry/components/FeatureCardNine.json create mode 100644 registry/components/FeatureCardNineteen.json create mode 100644 registry/components/FeatureCardOne.json create mode 100644 registry/components/FeatureCardSeven.json create mode 100644 registry/components/FeatureCardSix.json create mode 100644 registry/components/FeatureCardSixteen.json create mode 100644 registry/components/FeatureCardThree.json create mode 100644 registry/components/FeatureCardTwelve.json create mode 100644 registry/components/FeatureCardTwentyOne.json create mode 100644 registry/components/FeatureProcessSteps.json create mode 100644 registry/components/FloatingGradientBackground.json create mode 100644 registry/components/FluidBackground.json create mode 100644 registry/components/FooterBase.json create mode 100644 registry/components/FooterBaseCard.json create mode 100644 registry/components/FooterBaseReveal.json create mode 100644 registry/components/FooterCard.json create mode 100644 registry/components/FooterLogoEmphasis.json create mode 100644 registry/components/FooterLogoReveal.json create mode 100644 registry/components/FooterMedia.json create mode 100644 registry/components/FooterSimple.json create mode 100644 registry/components/GradientBarsBackground.json create mode 100644 registry/components/GridBackround.json create mode 100644 registry/components/HeroBillboard.json create mode 100644 registry/components/HeroBillboardCarousel.json create mode 100644 registry/components/HeroBillboardGallery.json create mode 100644 registry/components/HeroBillboardRotatedCarousel.json create mode 100644 registry/components/HeroBillboardScroll.json create mode 100644 registry/components/HeroCarouselLogo.json create mode 100644 registry/components/HeroLogo.json create mode 100644 registry/components/HeroLogoBillboard.json create mode 100644 registry/components/HeroLogoBillboardSplit.json create mode 100644 registry/components/HeroOverlay.json create mode 100644 registry/components/HeroSplit.json create mode 100644 registry/components/HeroSplitKpi.json create mode 100644 registry/components/InlineImageSplitTextAbout.json create mode 100644 registry/components/Input.json create mode 100644 registry/components/MediaAbout.json create mode 100644 registry/components/MediaSplitTabsAbout.json create mode 100644 registry/components/MetricCardEleven.json create mode 100644 registry/components/MetricCardFourteen.json create mode 100644 registry/components/MetricCardOne.json create mode 100644 registry/components/MetricCardSeven.json create mode 100644 registry/components/MetricCardTen.json create mode 100644 registry/components/MetricCardThree.json create mode 100644 registry/components/MetricCardTwo.json create mode 100644 registry/components/MetricSplitMediaAbout.json create mode 100644 registry/components/NavbarLayoutFloatingInline.json create mode 100644 registry/components/NavbarLayoutFloatingOverlay.json create mode 100644 registry/components/NavbarStyleApple.json create mode 100644 registry/components/NavbarStyleCentered.json create mode 100644 registry/components/NavbarStyleFullscreen.json create mode 100644 registry/components/PlainBackground.json create mode 100644 registry/components/PricingCardEight.json create mode 100644 registry/components/PricingCardFive.json create mode 100644 registry/components/PricingCardNine.json create mode 100644 registry/components/PricingCardOne.json create mode 100644 registry/components/PricingCardThree.json create mode 100644 registry/components/PricingCardTwo.json create mode 100644 registry/components/ProductCardFour.json create mode 100644 registry/components/ProductCardOne.json create mode 100644 registry/components/ProductCardThree.json create mode 100644 registry/components/ProductCardTwo.json create mode 100644 registry/components/RadialGradientBackground.json create mode 100644 registry/components/RotatedRaysBackground.json create mode 100644 registry/components/SplitAbout.json create mode 100644 registry/components/TeamCardEleven.json create mode 100644 registry/components/TeamCardFive.json create mode 100644 registry/components/TeamCardOne.json create mode 100644 registry/components/TeamCardSix.json create mode 100644 registry/components/TeamCardTen.json create mode 100644 registry/components/TeamCardTwo.json create mode 100644 registry/components/TestimonialAboutCard.json create mode 100644 registry/components/TestimonialCardFifteen.json create mode 100644 registry/components/TestimonialCardFive.json create mode 100644 registry/components/TestimonialCardOne.json create mode 100644 registry/components/TestimonialCardSix.json create mode 100644 registry/components/TestimonialCardTen.json create mode 100644 registry/components/TestimonialCardThirteen.json create mode 100644 registry/components/TestimonialCardTwelve.json create mode 100644 registry/components/TestimonialCardTwo.json create mode 100644 registry/components/TextAbout.json create mode 100644 registry/components/TextAnimation.json create mode 100644 registry/components/TextBox.json create mode 100644 registry/components/TextNumberCount.json create mode 100644 registry/components/TextSplitAbout.json create mode 100644 registry/components/Textarea.json create mode 100644 registry/components/TimelineCardStack.json create mode 100644 registry/components/TimelineHorizontalCardStack.json create mode 100644 registry/components/TimelinePhoneView.json create mode 100644 registry/components/TimelineProcessFlow.json create mode 100644 registry/index.json create mode 100644 registry/intents.json create mode 100644 registry/schemas/AboutMetric.schema.json create mode 100644 registry/schemas/AnimatedAuroraBackground.schema.json create mode 100644 registry/schemas/AnimatedGridBackground.schema.json create mode 100644 registry/schemas/AuroraBackground.schema.json create mode 100644 registry/schemas/AvatarGroup.schema.json create mode 100644 registry/schemas/BentoGlobe.schema.json create mode 100644 registry/schemas/BlogCardOne.schema.json create mode 100644 registry/schemas/BlogCardThree.schema.json create mode 100644 registry/schemas/BlogCardTwo.schema.json create mode 100644 registry/schemas/BlurBottomBackground.schema.json create mode 100644 registry/schemas/ButtonBounceEffect.schema.json create mode 100644 registry/schemas/ButtonDirectionalHover.schema.json create mode 100644 registry/schemas/ButtonElasticEffect.schema.json create mode 100644 registry/schemas/ButtonExpandHover.schema.json create mode 100644 registry/schemas/ButtonHoverBubble.schema.json create mode 100644 registry/schemas/ButtonHoverMagnetic.schema.json create mode 100644 registry/schemas/ButtonIconArrow.schema.json create mode 100644 registry/schemas/ButtonShiftHover.schema.json create mode 100644 registry/schemas/ButtonTextShift.schema.json create mode 100644 registry/schemas/ButtonTextStagger.schema.json create mode 100644 registry/schemas/ButtonTextUnderline.schema.json create mode 100644 registry/schemas/CardStack.schema.json create mode 100644 registry/schemas/CircleGradientBackground.schema.json create mode 100644 registry/schemas/ContactCenter.schema.json create mode 100644 registry/schemas/ContactFaq.schema.json create mode 100644 registry/schemas/ContactForm.schema.json create mode 100644 registry/schemas/ContactSplit.schema.json create mode 100644 registry/schemas/ContactSplitForm.schema.json create mode 100644 registry/schemas/ContactText.schema.json create mode 100644 registry/schemas/DotGridBackground.schema.json create mode 100644 registry/schemas/DownwardRaysBackground.schema.json create mode 100644 registry/schemas/EmailSignupForm.schema.json create mode 100644 registry/schemas/FaqBase.schema.json create mode 100644 registry/schemas/FaqDouble.schema.json create mode 100644 registry/schemas/FaqSplitMedia.schema.json create mode 100644 registry/schemas/FaqSplitText.schema.json create mode 100644 registry/schemas/FeatureCardEight.schema.json create mode 100644 registry/schemas/FeatureCardMedia.schema.json create mode 100644 registry/schemas/FeatureCardNine.schema.json create mode 100644 registry/schemas/FeatureCardNineteen.schema.json create mode 100644 registry/schemas/FeatureCardOne.schema.json create mode 100644 registry/schemas/FeatureCardSeven.schema.json create mode 100644 registry/schemas/FeatureCardSix.schema.json create mode 100644 registry/schemas/FeatureCardSixteen.schema.json create mode 100644 registry/schemas/FeatureCardThree.schema.json create mode 100644 registry/schemas/FeatureCardTwelve.schema.json create mode 100644 registry/schemas/FeatureCardTwentyOne.schema.json create mode 100644 registry/schemas/FeatureProcessSteps.schema.json create mode 100644 registry/schemas/FloatingGradientBackground.schema.json create mode 100644 registry/schemas/FluidBackground.schema.json create mode 100644 registry/schemas/FooterBase.schema.json create mode 100644 registry/schemas/FooterBaseCard.schema.json create mode 100644 registry/schemas/FooterBaseReveal.schema.json create mode 100644 registry/schemas/FooterCard.schema.json create mode 100644 registry/schemas/FooterLogoEmphasis.schema.json create mode 100644 registry/schemas/FooterLogoReveal.schema.json create mode 100644 registry/schemas/FooterMedia.schema.json create mode 100644 registry/schemas/FooterSimple.schema.json create mode 100644 registry/schemas/GradientBarsBackground.schema.json create mode 100644 registry/schemas/GridBackround.schema.json create mode 100644 registry/schemas/HeroBillboard.schema.json create mode 100644 registry/schemas/HeroBillboardCarousel.schema.json create mode 100644 registry/schemas/HeroBillboardGallery.schema.json create mode 100644 registry/schemas/HeroBillboardRotatedCarousel.schema.json create mode 100644 registry/schemas/HeroBillboardScroll.schema.json create mode 100644 registry/schemas/HeroCarouselLogo.schema.json create mode 100644 registry/schemas/HeroLogo.schema.json create mode 100644 registry/schemas/HeroLogoBillboard.schema.json create mode 100644 registry/schemas/HeroLogoBillboardSplit.schema.json create mode 100644 registry/schemas/HeroOverlay.schema.json create mode 100644 registry/schemas/HeroSplit.schema.json create mode 100644 registry/schemas/HeroSplitKpi.schema.json create mode 100644 registry/schemas/InlineImageSplitTextAbout.schema.json create mode 100644 registry/schemas/Input.schema.json create mode 100644 registry/schemas/MediaAbout.schema.json create mode 100644 registry/schemas/MediaSplitTabsAbout.schema.json create mode 100644 registry/schemas/MetricCardEleven.schema.json create mode 100644 registry/schemas/MetricCardFourteen.schema.json create mode 100644 registry/schemas/MetricCardOne.schema.json create mode 100644 registry/schemas/MetricCardSeven.schema.json create mode 100644 registry/schemas/MetricCardTen.schema.json create mode 100644 registry/schemas/MetricCardThree.schema.json create mode 100644 registry/schemas/MetricCardTwo.schema.json create mode 100644 registry/schemas/MetricSplitMediaAbout.schema.json create mode 100644 registry/schemas/NavbarLayoutFloatingInline.schema.json create mode 100644 registry/schemas/NavbarLayoutFloatingOverlay.schema.json create mode 100644 registry/schemas/NavbarStyleApple.schema.json create mode 100644 registry/schemas/NavbarStyleCentered.schema.json create mode 100644 registry/schemas/NavbarStyleFullscreen.schema.json create mode 100644 registry/schemas/PlainBackground.schema.json create mode 100644 registry/schemas/PricingCardEight.schema.json create mode 100644 registry/schemas/PricingCardFive.schema.json create mode 100644 registry/schemas/PricingCardNine.schema.json create mode 100644 registry/schemas/PricingCardOne.schema.json create mode 100644 registry/schemas/PricingCardThree.schema.json create mode 100644 registry/schemas/PricingCardTwo.schema.json create mode 100644 registry/schemas/ProductCardFour.schema.json create mode 100644 registry/schemas/ProductCardOne.schema.json create mode 100644 registry/schemas/ProductCardThree.schema.json create mode 100644 registry/schemas/ProductCardTwo.schema.json create mode 100644 registry/schemas/RadialGradientBackground.schema.json create mode 100644 registry/schemas/RotatedRaysBackground.schema.json create mode 100644 registry/schemas/SplitAbout.schema.json create mode 100644 registry/schemas/TeamCardEleven.schema.json create mode 100644 registry/schemas/TeamCardFive.schema.json create mode 100644 registry/schemas/TeamCardOne.schema.json create mode 100644 registry/schemas/TeamCardSix.schema.json create mode 100644 registry/schemas/TeamCardTen.schema.json create mode 100644 registry/schemas/TeamCardTwo.schema.json create mode 100644 registry/schemas/TestimonialAboutCard.schema.json create mode 100644 registry/schemas/TestimonialCardFifteen.schema.json create mode 100644 registry/schemas/TestimonialCardFive.schema.json create mode 100644 registry/schemas/TestimonialCardOne.schema.json create mode 100644 registry/schemas/TestimonialCardSix.schema.json create mode 100644 registry/schemas/TestimonialCardTen.schema.json create mode 100644 registry/schemas/TestimonialCardThirteen.schema.json create mode 100644 registry/schemas/TestimonialCardTwelve.schema.json create mode 100644 registry/schemas/TestimonialCardTwo.schema.json create mode 100644 registry/schemas/TextAbout.schema.json create mode 100644 registry/schemas/TextAnimation.schema.json create mode 100644 registry/schemas/TextBox.schema.json create mode 100644 registry/schemas/TextNumberCount.schema.json create mode 100644 registry/schemas/TextSplitAbout.schema.json create mode 100644 registry/schemas/Textarea.schema.json create mode 100644 registry/schemas/TimelineCardStack.schema.json create mode 100644 registry/schemas/TimelineHorizontalCardStack.schema.json create mode 100644 registry/schemas/TimelinePhoneView.schema.json create mode 100644 registry/schemas/TimelineProcessFlow.schema.json create mode 100644 src/app/blog/page.tsx create mode 100644 src/app/favicon.ico create mode 100644 src/app/globals.css create mode 100644 src/app/layout.tsx create mode 100644 src/app/page.tsx create mode 100644 src/app/shop/[id]/page.tsx create mode 100644 src/app/shop/page.tsx create mode 100644 src/app/styles/base.css create mode 100644 src/app/styles/theme.css create mode 100644 src/app/styles/utilities.css create mode 100644 src/app/styles/variables.css create mode 100644 src/components/Accordion.tsx create mode 100644 src/components/ServiceWrapper.tsx create mode 100644 src/components/Textbox.tsx create mode 100644 src/components/background/AnimatedAuroraBackground.tsx create mode 100644 src/components/background/AnimatedGridBackground.tsx create mode 100644 src/components/background/AuroraBackground.tsx create mode 100644 src/components/background/BlurBottomBackground.tsx create mode 100644 src/components/background/CanvasRevealBackground.tsx create mode 100644 src/components/background/CanvasRevealEffect.tsx create mode 100644 src/components/background/CardPattern.tsx create mode 100644 src/components/background/CellWaveBackground.tsx create mode 100644 src/components/background/CircleGradientBackground.tsx create mode 100644 src/components/background/DotGridBackground.tsx create mode 100644 src/components/background/DownwardRaysBackground.tsx create mode 100644 src/components/background/FluidBackground.tsx create mode 100644 src/components/background/GlowingEffect.tsx create mode 100644 src/components/background/GlowingOrbBackground.tsx create mode 100644 src/components/background/GlowingOrbSparklesBackground.tsx create mode 100644 src/components/background/GradientBarsBackground.tsx create mode 100644 src/components/background/GridBackround.tsx create mode 100644 src/components/background/HeroBackgrounds.tsx create mode 100644 src/components/background/NoiseBackground.tsx create mode 100644 src/components/background/NoiseDiagonalGradientBackground.tsx create mode 100644 src/components/background/NoiseGradientBackground.tsx create mode 100644 src/components/background/PlainBackground.tsx create mode 100644 src/components/background/RadialGradientBackground.tsx create mode 100644 src/components/background/RotatedRaysBackground.tsx create mode 100644 src/components/background/RotatingGradientBackground.tsx create mode 100644 src/components/background/Sparkles.tsx create mode 100644 src/components/background/SparklesGradientBackground.tsx create mode 100644 src/components/background/floatingGradientBackground/FloatingGradientBackground.css create mode 100644 src/components/background/floatingGradientBackground/FloatingGradientBackground.tsx create mode 100644 src/components/bento/Bento3DCardGrid.tsx create mode 100644 src/components/bento/Bento3DStackCards.tsx create mode 100644 src/components/bento/Bento3DTaskList.tsx create mode 100644 src/components/bento/BentoAnimatedBarChart.tsx create mode 100644 src/components/bento/BentoChatAnimation.tsx create mode 100644 src/components/bento/BentoGlobe.tsx create mode 100644 src/components/bento/BentoIconInfoCards.tsx create mode 100644 src/components/bento/BentoLineChart/BentoLineChart.tsx create mode 100644 src/components/bento/BentoLineChart/CustomTooltip.tsx create mode 100644 src/components/bento/BentoLineChart/utils.ts create mode 100644 src/components/bento/BentoMap.tsx create mode 100644 src/components/bento/BentoMarquee.tsx create mode 100644 src/components/bento/BentoMediaStack.tsx create mode 100644 src/components/bento/BentoOrbitingIcons.tsx create mode 100644 src/components/bento/BentoPhoneAnimation.tsx create mode 100644 src/components/bento/BentoRevealIcon.tsx create mode 100644 src/components/bento/BentoTimeline.tsx create mode 100644 src/components/button/Button.tsx create mode 100644 src/components/button/ButtonBounceEffect/BounceButton.css create mode 100644 src/components/button/ButtonBounceEffect/ButtonBounceEffect.tsx create mode 100644 src/components/button/ButtonDirectionalHover/ButtonDirectionalHover.tsx create mode 100644 src/components/button/ButtonDirectionalHover/DirectionalButton.css create mode 100644 src/components/button/ButtonDirectionalHover/useDirectionalHover.ts create mode 100644 src/components/button/ButtonElasticEffect/ButtonElasticEffect.tsx create mode 100644 src/components/button/ButtonElasticEffect/useElasticEffect.ts create mode 100644 src/components/button/ButtonExpandHover.tsx create mode 100644 src/components/button/ButtonHoverBubble.tsx create mode 100644 src/components/button/ButtonHoverMagnetic/ButtonHoverMagnetic.tsx create mode 100644 src/components/button/ButtonHoverMagnetic/useMagneticEffect.ts create mode 100644 src/components/button/ButtonIconArrow.tsx create mode 100644 src/components/button/ButtonShiftHover/ButtonShiftHover.tsx create mode 100644 src/components/button/ButtonShiftHover/ShiftButton.css create mode 100644 src/components/button/ButtonSlideBackground.tsx create mode 100644 src/components/button/ButtonTextShift/ButtonTextShift.tsx create mode 100644 src/components/button/ButtonTextShift/TextShiftButton.css create mode 100644 src/components/button/ButtonTextStagger/ButtonTextStagger.tsx create mode 100644 src/components/button/ButtonTextStagger/StaggerButton.css create mode 100644 src/components/button/ButtonTextUnderline.tsx create mode 100644 src/components/button/SelectorButton.tsx create mode 100644 src/components/button/types.ts create mode 100644 src/components/button/useButtonClick.ts create mode 100644 src/components/button/useCharAnimation.ts create mode 100644 src/components/cardStack/CardList.tsx create mode 100644 src/components/cardStack/CardStack.tsx create mode 100644 src/components/cardStack/CardStackTextBox.tsx create mode 100644 src/components/cardStack/hooks/useCardAnimation.ts create mode 100644 src/components/cardStack/hooks/useDepth3DAnimation.ts create mode 100644 src/components/cardStack/hooks/usePhoneAnimations.ts create mode 100644 src/components/cardStack/hooks/usePrevNextButtons.ts create mode 100644 src/components/cardStack/hooks/useScrollProgress.ts create mode 100644 src/components/cardStack/hooks/useTimelineHorizontal.ts create mode 100644 src/components/cardStack/layouts/carousels/AngledCarousel.tsx create mode 100644 src/components/cardStack/layouts/carousels/ArrowCarousel.tsx create mode 100644 src/components/cardStack/layouts/carousels/AutoCarousel.tsx create mode 100644 src/components/cardStack/layouts/carousels/ButtonCarousel.tsx create mode 100644 src/components/cardStack/layouts/carousels/FullWidthCarousel.tsx create mode 100644 src/components/cardStack/layouts/grid/GridLayout.tsx create mode 100644 src/components/cardStack/layouts/grid/gridConfigs.ts create mode 100644 src/components/cardStack/layouts/timelines/TimelineBase.tsx create mode 100644 src/components/cardStack/layouts/timelines/TimelineCardStack.tsx create mode 100644 src/components/cardStack/layouts/timelines/TimelineHorizontalCardStack.tsx create mode 100644 src/components/cardStack/layouts/timelines/TimelinePhoneView.tsx create mode 100644 src/components/cardStack/layouts/timelines/TimelineProcessFlow.tsx create mode 100644 src/components/cardStack/types.ts create mode 100644 src/components/ecommerce/cart/ProductCart.tsx create mode 100644 src/components/ecommerce/cart/ProductCartItem.tsx create mode 100644 src/components/ecommerce/productCatalog/ProductCatalog.tsx create mode 100644 src/components/ecommerce/productCatalog/ProductCatalogItem.tsx create mode 100644 src/components/ecommerce/productDetail/ProductDetailCard.tsx create mode 100644 src/components/ecommerce/productDetail/ProductDetailGallery.tsx create mode 100644 src/components/ecommerce/productDetail/ProductDetailVariantSelect.tsx create mode 100644 src/components/form/ContactForm.tsx create mode 100644 src/components/form/EmailSignupForm.tsx create mode 100644 src/components/form/Input.tsx create mode 100644 src/components/form/Textarea.tsx create mode 100644 src/components/form/WaitlistForm.tsx create mode 100644 src/components/legal/LegalSection.tsx create mode 100644 src/components/navbar/HamburgerButton.tsx create mode 100644 src/components/navbar/Logo.tsx create mode 100644 src/components/navbar/NavbarLayoutFloatingInline.tsx create mode 100644 src/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay.tsx create mode 100644 src/components/navbar/NavbarLayoutFloatingOverlay/useMenuAnimation.ts create mode 100644 src/components/navbar/NavbarLayoutFloatingOverlay/useResponsive.ts create mode 100644 src/components/navbar/NavbarLayoutFloatingOverlay/useScrollDetection.ts create mode 100644 src/components/navbar/NavbarStyleApple/NavbarStyleApple.tsx create mode 100644 src/components/navbar/NavbarStyleApple/useScrollState.ts create mode 100644 src/components/navbar/NavbarStyleCentered/NavbarStyleCentered.css create mode 100644 src/components/navbar/NavbarStyleCentered/NavbarStyleCentered.tsx create mode 100644 src/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen.css create mode 100644 src/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen.tsx create mode 100644 src/components/navbar/expandingMenu/ExpandingMenu.tsx create mode 100644 src/components/navbar/expandingMenu/useResponsiveMenuWidth.ts create mode 100644 src/components/navbar/mobileMenu/MobileMenu.tsx create mode 100644 src/components/navbar/mobileMenu/useMenuAnimation.ts create mode 100644 src/components/sections/AnimationContainer.tsx create mode 100644 src/components/sections/about/AboutMetric.tsx create mode 100644 src/components/sections/about/InlineImageSplitTextAbout.tsx create mode 100644 src/components/sections/about/MediaAbout.tsx create mode 100644 src/components/sections/about/MediaSplitTabsAbout.tsx create mode 100644 src/components/sections/about/MetricSplitMediaAbout.tsx create mode 100644 src/components/sections/about/SplitAbout.tsx create mode 100644 src/components/sections/about/TestimonialAboutCard.tsx create mode 100644 src/components/sections/about/TextAbout.tsx create mode 100644 src/components/sections/about/TextSplitAbout.tsx create mode 100644 src/components/sections/blog/BlogCardOne.tsx create mode 100644 src/components/sections/blog/BlogCardThree.tsx create mode 100644 src/components/sections/blog/BlogCardTwo.tsx create mode 100644 src/components/sections/contact/ContactCTA.tsx create mode 100644 src/components/sections/contact/ContactCenter.tsx create mode 100644 src/components/sections/contact/ContactFaq.tsx create mode 100644 src/components/sections/contact/ContactSplit.tsx create mode 100644 src/components/sections/contact/ContactSplitForm.tsx create mode 100644 src/components/sections/contact/ContactText.tsx create mode 100644 src/components/sections/faq/FaqBase.tsx create mode 100644 src/components/sections/faq/FaqDouble.tsx create mode 100644 src/components/sections/faq/FaqSplitMedia.tsx create mode 100644 src/components/sections/faq/FaqSplitText.tsx create mode 100644 src/components/sections/feature/FeatureBento.tsx create mode 100644 src/components/sections/feature/FeatureCardEight.tsx create mode 100644 src/components/sections/feature/FeatureCardMedia.tsx create mode 100644 src/components/sections/feature/FeatureCardNine.tsx create mode 100644 src/components/sections/feature/FeatureCardNineteen.tsx create mode 100644 src/components/sections/feature/FeatureCardOne.tsx create mode 100644 src/components/sections/feature/FeatureCardSeven.tsx create mode 100644 src/components/sections/feature/FeatureCardSix.tsx create mode 100644 src/components/sections/feature/FeatureCardSixteen.tsx create mode 100644 src/components/sections/feature/FeatureCardTen.tsx create mode 100644 src/components/sections/feature/FeatureCardTwelve.tsx create mode 100644 src/components/sections/feature/FeatureCardTwentyFive.tsx create mode 100644 src/components/sections/feature/FeatureCardTwentyFour.tsx create mode 100644 src/components/sections/feature/FeatureCardTwentyOne.tsx create mode 100644 src/components/sections/feature/FeatureCardTwentySix.tsx create mode 100644 src/components/sections/feature/FeatureCardTwentyThree.tsx create mode 100644 src/components/sections/feature/FeatureCardTwentyTwo.tsx create mode 100644 src/components/sections/feature/FeatureProcessSteps.tsx create mode 100644 src/components/sections/feature/featureBorderGlow/FeatureBorderGlow.tsx create mode 100644 src/components/sections/feature/featureBorderGlow/FeatureBorderGlowItem.tsx create mode 100644 src/components/sections/feature/featureBorderGlow/constants.ts create mode 100644 src/components/sections/feature/featureCardThree/FeatureCardThree.css create mode 100644 src/components/sections/feature/featureCardThree/FeatureCardThree.tsx create mode 100644 src/components/sections/feature/featureCardThree/FeatureCardThreeItem.tsx create mode 100644 src/components/sections/feature/featureCardThree/useDynamicDimensions.ts create mode 100644 src/components/sections/feature/featureHoverPattern/FeatureHoverPattern.tsx create mode 100644 src/components/sections/feature/featureHoverPattern/FeatureHoverPatternItem.tsx create mode 100644 src/components/sections/feature/featureHoverPattern/constants.ts create mode 100644 src/components/sections/feature/featureHoverPattern/usePatternInteraction.ts create mode 100644 src/components/sections/footer/FooterBase.tsx create mode 100644 src/components/sections/footer/FooterBaseCard.tsx create mode 100644 src/components/sections/footer/FooterBaseReveal.tsx create mode 100644 src/components/sections/footer/FooterCard.tsx create mode 100644 src/components/sections/footer/FooterLogoEmphasis.tsx create mode 100644 src/components/sections/footer/FooterLogoReveal.tsx create mode 100644 src/components/sections/footer/FooterMedia.tsx create mode 100644 src/components/sections/footer/FooterSimple.tsx create mode 100644 src/components/sections/hero/HeroBillboard.tsx create mode 100644 src/components/sections/hero/HeroBillboardCarousel.tsx create mode 100644 src/components/sections/hero/HeroBillboardDashboard.tsx create mode 100644 src/components/sections/hero/HeroBillboardGallery.tsx create mode 100644 src/components/sections/hero/HeroBillboardRotatedCarousel.tsx create mode 100644 src/components/sections/hero/HeroBillboardScroll.tsx create mode 100644 src/components/sections/hero/HeroCentered.tsx create mode 100644 src/components/sections/hero/HeroLogo.tsx create mode 100644 src/components/sections/hero/HeroLogoBillboard.tsx create mode 100644 src/components/sections/hero/HeroLogoBillboardSplit.tsx create mode 100644 src/components/sections/hero/HeroOverlay.tsx create mode 100644 src/components/sections/hero/HeroPersonalLinks.tsx create mode 100644 src/components/sections/hero/HeroSignup.tsx create mode 100644 src/components/sections/hero/HeroSplit.tsx create mode 100644 src/components/sections/hero/HeroSplitDualMedia.tsx create mode 100644 src/components/sections/hero/HeroSplitKpi.tsx create mode 100644 src/components/sections/hero/heroCarouselLogo/HeroCarouselLogo.tsx create mode 100644 src/components/sections/hero/heroCarouselLogo/useCarouselFullscreen.ts create mode 100644 src/components/sections/metrics/MetricCardEleven.tsx create mode 100644 src/components/sections/metrics/MetricCardFourteen.tsx create mode 100644 src/components/sections/metrics/MetricCardOne.tsx create mode 100644 src/components/sections/metrics/MetricCardSeven.tsx create mode 100644 src/components/sections/metrics/MetricCardTen.tsx create mode 100644 src/components/sections/metrics/MetricCardThree.tsx create mode 100644 src/components/sections/metrics/MetricCardTwo.tsx create mode 100644 src/components/sections/pricing/PricingCardEight.tsx create mode 100644 src/components/sections/pricing/PricingCardFive.tsx create mode 100644 src/components/sections/pricing/PricingCardNine.tsx create mode 100644 src/components/sections/pricing/PricingCardOne.tsx create mode 100644 src/components/sections/pricing/PricingCardThree.tsx create mode 100644 src/components/sections/pricing/PricingCardTwo.tsx create mode 100644 src/components/sections/product/ProductCardFour.tsx create mode 100644 src/components/sections/product/ProductCardOne.tsx create mode 100644 src/components/sections/product/ProductCardThree.tsx create mode 100644 src/components/sections/product/ProductCardTwo.tsx create mode 100644 src/components/sections/socialProof/SocialProofOne.tsx create mode 100644 src/components/sections/socialProof/SocialProofThree.tsx create mode 100644 src/components/sections/socialProof/SocialProofTwo.tsx create mode 100644 src/components/sections/team/TeamCardEleven.tsx create mode 100644 src/components/sections/team/TeamCardFive.tsx create mode 100644 src/components/sections/team/TeamCardOne.tsx create mode 100644 src/components/sections/team/TeamCardSix.tsx create mode 100644 src/components/sections/team/TeamCardTen.tsx create mode 100644 src/components/sections/team/TeamCardTwo.tsx create mode 100644 src/components/sections/testimonial/TestimonialCardFifteen.tsx create mode 100644 src/components/sections/testimonial/TestimonialCardFive.tsx create mode 100644 src/components/sections/testimonial/TestimonialCardOne.tsx create mode 100644 src/components/sections/testimonial/TestimonialCardSix.tsx create mode 100644 src/components/sections/testimonial/TestimonialCardSixteen.tsx create mode 100644 src/components/sections/testimonial/TestimonialCardTen.tsx create mode 100644 src/components/sections/testimonial/TestimonialCardThirteen.tsx create mode 100644 src/components/sections/testimonial/TestimonialCardTwelve.tsx create mode 100644 src/components/sections/testimonial/TestimonialCardTwo.tsx create mode 100644 src/components/shared/AvatarGroup.tsx create mode 100644 src/components/shared/Badge.tsx create mode 100644 src/components/shared/Dashboard.tsx create mode 100644 src/components/shared/FavoriteButton.tsx create mode 100644 src/components/shared/FillWidthText/FillWidthText.tsx create mode 100644 src/components/shared/FillWidthText/useFillWidthText.ts create mode 100644 src/components/shared/FooterColumns.tsx create mode 100644 src/components/shared/LogoMarquee.tsx create mode 100644 src/components/shared/MediaContent.tsx create mode 100644 src/components/shared/OverlayArrowButton.tsx create mode 100644 src/components/shared/PricingBadge.tsx create mode 100644 src/components/shared/PricingFeatureList.tsx create mode 100644 src/components/shared/ProductImage.tsx create mode 100644 src/components/shared/QuantityButton.tsx create mode 100644 src/components/shared/SocialLinks.tsx create mode 100644 src/components/shared/SvgTextLogo/SvgTextLogo.tsx create mode 100644 src/components/shared/SvgTextLogo/useSvgTextLogo.ts create mode 100644 src/components/shared/Tag.tsx create mode 100644 src/components/shared/TestimonialAuthor.tsx create mode 100644 src/components/text/TextAnimation.tsx create mode 100644 src/components/text/TextNumberCount.tsx create mode 100644 src/components/text/types.ts create mode 100644 src/hooks/useBlogPosts.ts create mode 100644 src/hooks/useCart.ts create mode 100644 src/hooks/useCheckout.ts create mode 100644 src/hooks/useClickOutside.ts create mode 100644 src/hooks/useProduct.ts create mode 100644 src/hooks/useProductCatalog.ts create mode 100644 src/hooks/useProductDetail.ts create mode 100644 src/hooks/useProducts.ts create mode 100644 src/lib/api/blog.ts create mode 100644 src/lib/api/product.ts create mode 100644 src/lib/buttonUtils.ts create mode 100644 src/lib/utils.ts create mode 100644 src/providers/themeProvider/ThemeProvider.tsx create mode 100644 src/providers/themeProvider/config/background.ts create mode 100644 src/providers/themeProvider/config/baseVw.ts create mode 100644 src/providers/themeProvider/config/borderRadius.ts create mode 100644 src/providers/themeProvider/config/constants.ts create mode 100644 src/providers/themeProvider/config/contentWidth.ts create mode 100644 src/providers/themeProvider/config/shared.ts create mode 100644 src/providers/themeProvider/config/textSizing.ts create mode 100644 src/providers/themeProvider/config/types.ts create mode 100644 src/providers/themeProvider/styles/cardStyles.ts create mode 100644 src/providers/themeProvider/styles/primaryButtonStyles.ts create mode 100644 src/providers/themeProvider/styles/secondaryButtonStyles.ts create mode 100644 src/providers/themeProvider/utils/detectLightBackground.ts create mode 100644 src/tag/Tag.tsx create mode 100644 src/tag/useTagEffects.ts create mode 100644 src/types/button.ts create mode 100644 src/types/navigation.ts create mode 100644 src/utils/debounce.ts create mode 100644 src/utils/sendContactEmail.ts create mode 100644 src/utils/throttle.ts create mode 100644 tsconfig.json create mode 100644 vercel.json diff --git a/.env b/.env new file mode 100644 index 0000000..f302176 --- /dev/null +++ b/.env @@ -0,0 +1,2 @@ +NEXT_PUBLIC_API_URL=https://dev.api.webild.io +NEXT_PUBLIC_PROJECT_ID=3e195d76-a7ee-493b-9686-579183661c6e \ No newline at end of file diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml new file mode 100644 index 0000000..d372c5f --- /dev/null +++ b/.gitea/workflows/build.yml @@ -0,0 +1,57 @@ +name: Code Check + +on: + workflow_dispatch: + inputs: + branch: + description: 'Branch to check' + required: true + default: 'main' + +permissions: + contents: read + +jobs: + check: + runs-on: ubuntu-latest + timeout-minutes: 10 + + steps: + - name: Checkout branch + uses: actions/checkout@v3 + with: + ref: ${{ gitea.event.inputs.branch }} + + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + node-version: 24 + + - name: Install dependencies + run: | + set -euo pipefail + npm ci --prefer-offline --no-audit 2>&1 | tee install.log + env: + NODE_OPTIONS: '--max-old-space-size=4096' + + - name: TypeScript check + run: | + set -euo pipefail + npm run typecheck 2>&1 | tee build.log + + - name: ESLint check + run: | + set -euo pipefail + npm run lint 2>&1 | tee build.log + + - name: Upload build log on failure + if: failure() + uses: actions/upload-artifact@v3 + with: + name: build-log + path: build.log + if-no-files-found: ignore + + - name: Check completed + if: success() + run: echo "Typecheck and lint passed successfully" diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d0d2e5c --- /dev/null +++ b/.gitignore @@ -0,0 +1,40 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.* +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/versions + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts + +.idea/ \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..e215bc4 --- /dev/null +++ b/README.md @@ -0,0 +1,36 @@ +This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +# or +pnpm dev +# or +bun dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. + +This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details. diff --git a/THEME_PROVIDER_OPTIONS.txt b/THEME_PROVIDER_OPTIONS.txt new file mode 100644 index 0000000..6ddeec7 --- /dev/null +++ b/THEME_PROVIDER_OPTIONS.txt @@ -0,0 +1,116 @@ +================================================================================ + THEME PROVIDER OPTIONS +================================================================================ + +PROPS (All Required except showBlurBottom) +------------------------------------------- + +1. defaultButtonVariant + • "hover-magnetic" + • "hover-bubble" + • "expand-hover" + • "elastic-effect" + • "bounce-effect" + • "icon-arrow" + • "shift-hover" + • "text-stagger" + • "text-shift" + • "directional-hover" + • "slide-background" + +2. defaultTextAnimation + • "entrance-slide" + • "reveal-blur" + • "background-highlight" + +3. borderRadius + • "sharp" + • "rounded" + • "soft" + • "pill" + +4. contentWidth + • "small" + • "smallMedium" + • "compact" + • "mediumSmall" + • "medium" + • "mediumLarge" + +5. sizing + • "medium" + • "mediumLarge" + • "largeSmall" + • "large" + • "mediumSizeLargeTitles" + • "mediumLargeSizeLargeTitles" + • "largeSmallSizeLargeTitles" + • "largeSizeMediumTitles" + • "mediumLargeSizeMediumTitles" + • "largeSmallSizeMediumTitles" + +6. background + • "none" + • "circleGradient" + • "aurora" + • "floatingGradient" + +7. cardStyle + • "solid" + • "outline" + • "elevated" + • "gradient-mesh" + • "gradient-radial" + • "inset" + • "glass-elevated" + • "glass-depth" + • "gradient-bordered" + • "layered-gradient" + • "soft-shadow" + • "subtle-shadow" + +8. primaryButtonStyle + • "gradient" + • "shadow" + • "flat" + • "radial-glow" + • "diagonal-gradient" + • "inset-glow" + • "double-inset" + • "primary-glow" + +9. secondaryButtonStyle + • "glass" + • "solid" + • "layered" + • "radial-glow" + +10. headingFontWeight + • "light" + • "normal" + • "medium" + • "semibold" + • "bold" + • "extrabold" + +================================================================================ + +EXAMPLE USAGE: + + + {children} + + +================================================================================ diff --git a/colorThemes.css b/colorThemes.css new file mode 100644 index 0000000..073b75d --- /dev/null +++ b/colorThemes.css @@ -0,0 +1,484 @@ +/* ============================================ */ +/* LIGHT THEME VARIANTS */ +/* ============================================ */ + +/* Light Theme - Minimal Dark Blue */ +:root[data-theme="minimal-dark-blue"] { + --background: #ffffff; + --card: #f9f9f9; + --foreground: #000612e6; + --primary-cta: #15479c; + --secondary-cta: #f9f9f9; + --accent: #e2e2e2; + --background-accent: #c4c4c4; +} + +/* Light Theme - Minimal Dark Green */ +:root[data-theme="minimal-dark-green"] { + --background: #ffffff; + --card: #f9f9f9; + --foreground: #000f06e6; + --primary-cta: #0a7039; + --secondary-cta: #f9f9f9; + --accent: #e2e2e2; + --background-accent: #c4c4c4; +} + +/* Light Theme - Minimal Light Red */ +:root[data-theme="minimal-light-red"] { + --background: #ffffff; + --card: #f9f9f9; + --foreground: #120006e6; + --primary-cta: #e63946; + --secondary-cta: #f9f9f9; + --accent: #e2e2e2; + --background-accent: #c4c4c4; +} + +/* Light Theme - Minimal Light Orange */ +:root[data-theme="minimal-light-orange"] { + --background: #ffffff; + --card: #f9f9f9; + --foreground: #120a00e6; + --primary-cta: #ff8c42; + --secondary-cta: #f9f9f9; + --accent: #e2e2e2; + --background-accent: #c4c4c4; +} + +/* Light Theme - Dark Blue */ +:root[data-theme="dark-blue"] { + --background: #f5faff; + --card: #f1f8ff; + --foreground: #001122; + --primary-cta: #15479c; + --secondary-cta: #ffffff; + --accent: #a8cce8; + --background-accent: #7ba3cf; +} + +/* Light Theme - Dark Green */ +:root[data-theme="dark-green"] { + --background: #fafffb; + --card: #f7fffa; + --foreground: #001a0a; + --primary-cta: #0a7039; + --secondary-cta: #ffffff; + --accent: #a8d9be; + --background-accent: #6bbf8e; +} + +/* Light Theme - Light Red */ +:root[data-theme="light-red"] { + --background: #fffafa; + --card: #fff7f7; + --foreground: #1a0000; + --primary-cta: #e63946; + --secondary-cta: #ffffff; + --accent: #f5c4c7; + --background-accent: #f09199; +} + +/* Light Theme - Light Purple */ +:root[data-theme="light-purple"] { + --background: #fbfaff; + --card: #f7f5ff; + --foreground: #0f0022; + --primary-cta: #8b5cf6; + --secondary-cta: #ffffff; + --accent: #d8cef5; + --background-accent: #c4a8f9; +} + +/* Light Theme - Warm Cream */ +:root[data-theme="warm-cream"] { + --background: #f6f0e9; + --card: #efe7dd; + --foreground: #2b180a; + --primary-cta: #2b180a; + --secondary-cta: #efe7dd; + --accent: #94877c; + --background-accent: #afa094; +} + +/* Light Theme - Gray Blue Accent */ +:root[data-theme="gray-blue-accent"] { + --background: #f5f5f5; + --card: #ffffff; + --foreground: #1c1c1c; + --primary-cta: #1c1c1c; + --secondary-cta: #ffffff; + --accent: #15479c; + --background-accent: #a8cce8; +} + +/* Light Theme - Gray Green Accent */ +:root[data-theme="gray-green-accent"] { + --background: #f5f5f5; + --card: #ffffff; + --foreground: #1c1c1c; + --primary-cta: #1c1c1c; + --secondary-cta: #ffffff; + --accent: #159c49; + --background-accent: #a8e8ba; +} + +/* Light Theme - Gray Red Accent */ +:root[data-theme="gray-red-accent"] { + --background: #f5f5f5; + --card: #ffffff; + --foreground: #1c1c1c; + --primary-cta: #1c1c1c; + --secondary-cta: #ffffff; + --accent: #e63946; + --background-accent: #e8bea8; +} + +/* Light Theme - Gray Purple Accent */ +:root[data-theme="gray-purple-accent"] { + --background: #f5f5f5; + --card: #ffffff; + --foreground: #1c1c1c; + --primary-cta: #1c1c1c; + --secondary-cta: #ffffff; + --accent: #6139e6; + --background-accent: #b3a8e8; +} + +/* Light Theme - Warm Beige */ +:root[data-theme="warm-beige"] { + --background: #efebe5; + --card: #f7f2ea; + --foreground: #000000; + --primary-cta: #000000; + --secondary-cta: #ffffff; + --accent: #ffffff; + --background-accent: #e1b875; +} + +/* Light Theme - Gray Teal Green */ +:root[data-theme="gray-teal-green"] { + --background: #f5f5f5; + --card: #ffffff; + --foreground: #1c1c1c; + --primary-cta: #1f514c; + --secondary-cta: #ffffff; + --accent: #159c49; + --background-accent: #a8e8ba; +} + +/* Light Theme - Gray Navy Blue */ +:root[data-theme="gray-navy-blue"] { + --background: #f5f5f5; + --card: #ffffff; + --foreground: #1c1c1c; + --primary-cta: #1f3251; + --secondary-cta: #ffffff; + --accent: #15479c; + --background-accent: #a8cce8; +} + +/* Light Theme - Gray Burgundy Red */ +:root[data-theme="gray-burgundy-red"] { + --background: #f5f5f5; + --card: #ffffff; + --foreground: #1c1c1c; + --primary-cta: #511f1f; + --secondary-cta: #ffffff; + --accent: #e63946; + --background-accent: #e8bea8; +} + +/* Light Theme - Gray Indigo Purple */ +:root[data-theme="gray-indigo-purple"] { + --background: #f5f5f5; + --card: #ffffff; + --foreground: #1c1c1c; + --primary-cta: #341f51; + --secondary-cta: #ffffff; + --accent: #6139e6; + --background-accent: #b3a8e8; +} + +/* Light Theme - Warm Gray Pink */ +:root[data-theme="warmgray-pink"] { + --background: #f7f6f7; + --card: #ffffff; + --foreground: #1b0c25; + --primary-cta: #1b0c25; + --secondary-cta: #ffffff; + --accent: #ff93e4; + --background-accent: #e8a8c3; +} + +/* Light Theme - Warm Gray Orange */ +:root[data-theme="warmgray-orange"] { + --background: #f7f6f7; + --card: #ffffff; + --foreground: #25190c; + --primary-cta: #ff6207; + --secondary-cta: #ffffff; + --accent: #ffce93; + --background-accent: #e8cfa8; +} + +/* Light Theme - Warm Gray Blue */ +:root[data-theme="warmgray-blue"] { + --background: #f7f6f7; + --card: #ffffff; + --foreground: #0c1325; + --primary-cta: #0798ff; + --secondary-cta: #ffffff; + --accent: #93c7ff; + --background-accent: #a8cde8; +} + +/* Light Theme - Warm Gray Indigo */ +:root[data-theme="warmgray-indigo"] { + --background: #f7f6f7; + --card: #ffffff; + --foreground: #0c1325; + --primary-cta: #0b07ff; + --secondary-cta: #ffffff; + --accent: #93b7ff; + --background-accent: #a8bae8; +} + +/* Light Theme - Lavender Peach */ +:root[data-theme="lavender-peach"] { + --background: #e3deea; + --card: #ffffff; + --foreground: #27231f; + --primary-cta: #27231f; + --secondary-cta: #ffffff; + --accent: #c68a62; + --background-accent: #c68a62; +} + +/* Light Theme - Lavender Blue */ +:root[data-theme="lavender-blue"] { + --background: #e3deea; + --card: #ffffff; + --foreground: #1f2027; + --primary-cta: #1f2027; + --secondary-cta: #ffffff; + --accent: #627dc6; + --background-accent: #627dc6; +} + +/* Light Theme - Warm Stone */ +:root[data-theme="warm-stone"] { + --background: #f5f4ef; + --card: #dad6cd; + --foreground: #2a2928; + --primary-cta: #2a2928; + --secondary-cta: #ecebea; + --accent: #ffffff; + --background-accent: #c6b180; +} + +/* Light Theme - Warm Sand */ +:root[data-theme="warm-sand"] { + --background: #fcf6ec; + --card: #f3ede2; + --foreground: #2e2521; + --primary-cta: #2e2521; + --secondary-cta: #ffffff; + --accent: #b2a28b; + --background-accent: #b2a28b; +} + +/* Light Theme - Warm Gray Green */ +:root[data-theme="warmgray-green"] { + --background: #f7f6f7; + --card: #ffffff; + --foreground: #032419; + --primary-cta: #2bb889; + --secondary-cta: #ffffff; + --accent: #09b97e; + --background-accent: #a8e8c3; +} + +/* Light Theme - Warm Gray Red */ +:root[data-theme="warmgray-red"] { + --background: #f7f6f7; + --card: #ffffff; + --foreground: #250c0d; + --primary-cta: #b82b40; + --secondary-cta: #ffffff; + --accent: #b90941; + --background-accent: #e8a8b6; +} + +/* Light Theme - Warm Gray Yellow */ +:root[data-theme="warmgray-yellow"] { + --background: #f7f6f7; + --card: #ffffff; + --foreground: #251a0c; + --primary-cta: #f4c408; + --secondary-cta: #ffffff; + --accent: #f4ca26; + --background-accent: #e8daa8; +} + + +/* ============================================ */ +/* DARK THEME VARIANTS */ +/* ============================================ */ + +/* Dark Theme - Minimal */ +:root[data-theme="dark"] { + --background: #0a0a0a; + --card: #1a1a1a; + --foreground: #ffffffe6; + --primary-cta: #e6e6e6; + --secondary-cta: #1a1a1a; + --accent: #737373; + --background-accent: #737373; +} + +/* Dark Theme - Minimal Light Blue */ +:root[data-theme="dark-minimal-light-blue"] { + --background: #0a0a0a; + --card: #1a1a1a; + --foreground: #f0f8ffe6; + --primary-cta: #cee7ff; + --secondary-cta: #1a1a1a; + --accent: #737373; + --background-accent: #737373; +} + +/* Dark Theme - Minimal Light Green */ +:root[data-theme="dark-minimal-light-green"] { + --background: #0a0a0a; + --card: #1a1a1a; + --foreground: #f5fffae6; + --primary-cta: #80da9b; + --secondary-cta: #1a1a1a; + --accent: #737373; + --background-accent: #737373; +} + +/* Dark Theme - Minimal Light Red */ +:root[data-theme="dark-minimal-light-red"] { + --background: #0a0a0a; + --card: #1a1a1a; + --foreground: #fff5f5e6; + --primary-cta: #ff7a7a; + --secondary-cta: #1a1a1a; + --accent: #737373; + --background-accent: #737373; +} + +/* Dark Theme - Minimal Light Purple */ +:root[data-theme="dark-minimal-light-purple"] { + --background: #0a0a0a; + --card: #1a1a1a; + --foreground: #f8f5ffe6; + --primary-cta: #c89bff; + --secondary-cta: #1a1a1a; + --accent: #737373; + --background-accent: #737373; +} + +/* Dark Theme - Minimal Light Orange */ +:root[data-theme="dark-minimal-light-orange"] { + --background: #0a0a0a; + --card: #1a1a1a; + --foreground: #fffaf5e6; + --primary-cta: #ffaa70; + --secondary-cta: #1a1a1a; + --accent: #737373; + --background-accent: #737373; +} + + +/* Dark Theme - Minimal Light Yellow */ +:root[data-theme="dark-minimal-light-yellow"] { + --background: #0a0a0a; + --card: #1a1a1a; + --foreground: #fffffae6; + --primary-cta: #fde047; + --secondary-cta: #1a1a1a; + --accent: #737373; + --background-accent: #737373; +} + +/* Dark Theme - Light Blue */ +:root[data-theme="dark-light-blue"] { + --background: #010912; + --card: #152840; + --foreground: #e6f0ff; + --primary-cta: #cee7ff; + --secondary-cta: #0e1a29; + --accent: #3f5c79; + --background-accent: #004a93; +} + +/* Dark Theme - Light Green */ +:root[data-theme="dark-light-green"] { + --background: #000802; + --card: #0b1a0b; + --foreground: #e6ffe6; + --primary-cta: #80da9b; + --secondary-cta: #07170b; + --accent: #38714a; + --background-accent: #2c6541; +} + +/* Dark Theme - Light Red */ +:root[data-theme="dark-light-red"] { + --background: #080000; + --card: #1e0d0d; + --foreground: #ffe6e6; + --primary-cta: #ff7a7a; + --secondary-cta: #1e0909; + --accent: #7b4242; + --background-accent: #65292c; +} + +/* Dark Theme - Dark Red */ +:root[data-theme="dark-dark-red"] { + --background: #060000; + --card: #1d0d0d; + --foreground: #ffe6e6; + --primary-cta: #ff3d4a; + --secondary-cta: #1f0a0a; + --accent: #7b2d2d; + --background-accent: #b8111f; +} + +/* Dark Theme - Light Purple */ +:root[data-theme="dark-light-purple"] { + --background: #050012; + --card: #040121; + --foreground: #f0e6ff; + --primary-cta: #c89bff; + --secondary-cta: #1d123b; + --accent: #684f7b; + --background-accent: #65417c; +} + +/* Dark Theme - Light Orange */ +:root[data-theme="dark-light-orange"] { + --background: #080200; + --card: #1a0d0b; + --foreground: #ffe6d5; + --primary-cta: #ffaa70; + --secondary-cta: #170b07; + --accent: #7b5e4a; + --background-accent: #b8541e; +} + +/* Dark Theme - Deep Blue */ +:root[data-theme="dark-deep-blue"] { + --background: #020617; + --card: #0f172a; + --foreground: #e2e8f0; + --primary-cta: #c4d8f9; + --secondary-cta: #041633; + --accent: #2d30f3; + --background-accent: #1d4ed8; +} + + diff --git a/colorThemes.json b/colorThemes.json new file mode 100644 index 0000000..db2e264 --- /dev/null +++ b/colorThemes.json @@ -0,0 +1,393 @@ +{ + "lightTheme": { + "minimalDarkBlue": { + "--background": "#ffffff", + "--card": "#f9f9f9", + "--foreground": "#000612e6", + "--primary-cta": "#15479c", + "--secondary-cta": "#f9f9f9", + "--accent": "#e2e2e2", + "--background-accent": "#c4c4c4" + }, + "minimalDarkGreen": { + "--background": "#ffffff", + "--card": "#f9f9f9", + "--foreground": "#000f06e6", + "--primary-cta": "#0a7039", + "--secondary-cta": "#f9f9f9", + "--accent": "#e2e2e2", + "--background-accent": "#c4c4c4" + }, + "minimalLightRed": { + "--background": "#ffffff", + "--card": "#f9f9f9", + "--foreground": "#120006e6", + "--primary-cta": "#e63946", + "--secondary-cta": "#f9f9f9", + "--accent": "#e2e2e2", + "--background-accent": "#c4c4c4" + }, + "minimalLightOrange": { + "--background": "#ffffff", + "--card": "#f9f9f9", + "--foreground": "#120a00e6", + "--primary-cta": "#ff8c42", + "--secondary-cta": "#f9f9f9", + "--accent": "#e2e2e2", + "--background-accent": "#c4c4c4" + }, + "darkBlue": { + "--background": "#f5faff", + "--card": "#f1f8ff", + "--foreground": "#001122", + "--primary-cta": "#15479c", + "--secondary-cta": "#ffffff", + "--accent": "#a8cce8", + "--background-accent": "#7ba3cf" + }, + "darkGreen": { + "--background": "#fafffb", + "--card": "#f7fffa", + "--foreground": "#001a0a", + "--primary-cta": "#0a7039", + "--secondary-cta": "#ffffff", + "--accent": "#a8d9be", + "--background-accent": "#6bbf8e" + }, + "lightRed": { + "--background": "#fffafa", + "--card": "#fff7f7", + "--foreground": "#1a0000", + "--primary-cta": "#e63946", + "--secondary-cta": "#ffffff", + "--accent": "#f5c4c7", + "--background-accent": "#f09199" + }, + "lightPurple": { + "--background": "#fbfaff", + "--card": "#f7f5ff", + "--foreground": "#0f0022", + "--primary-cta": "#8b5cf6", + "--secondary-cta": "#ffffff", + "--accent": "#d8cef5", + "--background-accent": "#c4a8f9" + }, + "warmCream": { + "--background": "#f6f0e9", + "--card": "#efe7dd", + "--foreground": "#2b180a", + "--primary-cta": "#2b180a", + "--secondary-cta": "#efe7dd", + "--accent": "#94877c", + "--background-accent": "#afa094" + }, + "grayBlueAccent": { + "--background": "#f5f5f5", + "--card": "#ffffff", + "--foreground": "#1c1c1c", + "--primary-cta": "#1c1c1c", + "--secondary-cta": "#ffffff", + "--accent": "#15479c", + "--background-accent": "#a8cce8" + }, + "grayGreenAccent": { + "--background": "#f5f5f5", + "--card": "#ffffff", + "--foreground": "#1c1c1c", + "--primary-cta": "#1c1c1c", + "--secondary-cta": "#ffffff", + "--accent": "#159c49", + "--background-accent": "#a8e8ba" + }, + "grayRedAccent": { + "--background": "#f5f5f5", + "--card": "#ffffff", + "--foreground": "#1c1c1c", + "--primary-cta": "#1c1c1c", + "--secondary-cta": "#ffffff", + "--accent": "#e63946", + "--background-accent": "#e8bea8" + }, + "grayPurpleAccent": { + "--background": "#f5f5f5", + "--card": "#ffffff", + "--foreground": "#1c1c1c", + "--primary-cta": "#1c1c1c", + "--secondary-cta": "#ffffff", + "--accent": "#6139e6", + "--background-accent": "#b3a8e8" + }, + "warmBeige": { + "--background": "#efebe5", + "--card": "#f7f2ea", + "--foreground": "#000000", + "--primary-cta": "#000000", + "--secondary-cta": "#ffffff", + "--accent": "#ffffff", + "--background-accent": "#e1b875" + }, + "grayTealGreen": { + "--background": "#f5f5f5", + "--card": "#ffffff", + "--foreground": "#1c1c1c", + "--primary-cta": "#1f514c", + "--secondary-cta": "#ffffff", + "--accent": "#159c49", + "--background-accent": "#a8e8ba" + }, + "grayNavyBlue": { + "--background": "#f5f5f5", + "--card": "#ffffff", + "--foreground": "#1c1c1c", + "--primary-cta": "#1f3251", + "--secondary-cta": "#ffffff", + "--accent": "#15479c", + "--background-accent": "#a8cce8" + }, + "grayBurgundyRed": { + "--background": "#f5f5f5", + "--card": "#ffffff", + "--foreground": "#1c1c1c", + "--primary-cta": "#511f1f", + "--secondary-cta": "#ffffff", + "--accent": "#e63946", + "--background-accent": "#e8bea8" + }, + "grayIndigoPurple": { + "--background": "#f5f5f5", + "--card": "#ffffff", + "--foreground": "#1c1c1c", + "--primary-cta": "#341f51", + "--secondary-cta": "#ffffff", + "--accent": "#6139e6", + "--background-accent": "#b3a8e8" + }, + "warmgrayPink": { + "--background": "#f7f6f7", + "--card": "#ffffff", + "--foreground": "#1b0c25", + "--primary-cta": "#1b0c25", + "--secondary-cta": "#ffffff", + "--accent": "#ff93e4", + "--background-accent": "#e8a8c3" + }, + "warmgrayOrange": { + "--background": "#f7f6f7", + "--card": "#ffffff", + "--foreground": "#25190c", + "--primary-cta": "#ff6207", + "--secondary-cta": "#ffffff", + "--accent": "#ffce93", + "--background-accent": "#e8cfa8" + }, + "warmgrayBlue": { + "--background": "#f7f6f7", + "--card": "#ffffff", + "--foreground": "#0c1325", + "--primary-cta": "#0798ff", + "--secondary-cta": "#ffffff", + "--accent": "#93c7ff", + "--background-accent": "#a8cde8" + }, + "warmgrayIndigo": { + "--background": "#f7f6f7", + "--card": "#ffffff", + "--foreground": "#0c1325", + "--primary-cta": "#0b07ff", + "--secondary-cta": "#ffffff", + "--accent": "#93b7ff", + "--background-accent": "#a8bae8" + }, + "lavenderPeach": { + "--background": "#e3deea", + "--card": "#ffffff", + "--foreground": "#27231f", + "--primary-cta": "#27231f", + "--secondary-cta": "#ffffff", + "--accent": "#c68a62", + "--background-accent": "#c68a62" + }, + "lavenderBlue": { + "--background": "#e3deea", + "--card": "#ffffff", + "--foreground": "#1f2027", + "--primary-cta": "#1f2027", + "--secondary-cta": "#ffffff", + "--accent": "#627dc6", + "--background-accent": "#627dc6" + }, + "warmStone": { + "--background": "#f5f4ef", + "--card": "#dad6cd", + "--foreground": "#2a2928", + "--primary-cta": "#2a2928", + "--secondary-cta": "#ecebea", + "--accent": "#ffffff", + "--background-accent": "#c6b180" + }, + "warmSand": { + "--background": "#fcf6ec", + "--card": "#f3ede2", + "--foreground": "#2e2521", + "--primary-cta": "#2e2521", + "--secondary-cta": "#ffffff", + "--accent": "#b2a28b", + "--background-accent": "#b2a28b" + }, + "warmgrayGreen": { + "--background": "#f7f6f7", + "--card": "#ffffff", + "--foreground": "#032419", + "--primary-cta": "#2bb889", + "--secondary-cta": "#ffffff", + "--accent": "#09b97e", + "--background-accent": "#a8e8c3" + }, + "warmgrayRed": { + "--background": "#f7f6f7", + "--card": "#ffffff", + "--foreground": "#250c0d", + "--primary-cta": "#b82b40", + "--secondary-cta": "#ffffff", + "--accent": "#b90941", + "--background-accent": "#e8a8b6" + }, + "warmgrayYellow": { + "--background": "#f7f6f7", + "--card": "#ffffff", + "--foreground": "#251a0c", + "--primary-cta": "#f4c408", + "--secondary-cta": "#ffffff", + "--accent": "#f4ca26", + "--background-accent": "#e8daa8" + } + }, + "darkTheme": { + "minimal": { + "--background": "#0a0a0a", + "--card": "#1a1a1a", + "--foreground": "#ffffffe6", + "--primary-cta": "#e6e6e6", + "--secondary-cta": "#1a1a1a", + "--accent": "#737373", + "--background-accent": "#737373" + }, + "minimalLightBlue": { + "--background": "#0a0a0a", + "--card": "#1a1a1a", + "--foreground": "#f0f8ffe6", + "--primary-cta": "#cee7ff", + "--secondary-cta": "#1a1a1a", + "--accent": "#737373", + "--background-accent": "#737373" + }, + "minimalLightGreen": { + "--background": "#0a0a0a", + "--card": "#1a1a1a", + "--foreground": "#f5fffae6", + "--primary-cta": "#80da9b", + "--secondary-cta": "#1a1a1a", + "--accent": "#737373", + "--background-accent": "#737373" + }, + "minimalLightRed": { + "--background": "#0a0a0a", + "--card": "#1a1a1a", + "--foreground": "#fff5f5e6", + "--primary-cta": "#ff7a7a", + "--secondary-cta": "#1a1a1a", + "--accent": "#737373", + "--background-accent": "#737373" + }, + "minimalLightPurple": { + "--background": "#0a0a0a", + "--card": "#1a1a1a", + "--foreground": "#f8f5ffe6", + "--primary-cta": "#c89bff", + "--secondary-cta": "#1a1a1a", + "--accent": "#737373", + "--background-accent": "#737373" + }, + "minimalLightOrange": { + "--background": "#0a0a0a", + "--card": "#1a1a1a", + "--foreground": "#fffaf5e6", + "--primary-cta": "#ffaa70", + "--secondary-cta": "#1a1a1a", + "--accent": "#737373", + "--background-accent": "#737373" + }, + "minimalLightYellow": { + "--background": "#0a0a0a", + "--card": "#1a1a1a", + "--foreground": "#fffffae6", + "--primary-cta": "#fde047", + "--secondary-cta": "#1a1a1a", + "--accent": "#737373", + "--background-accent": "#737373" + }, + "lightBlue": { + "--background": "#010912", + "--card": "#152840", + "--foreground": "#e6f0ff", + "--primary-cta": "#cee7ff", + "--secondary-cta": "#0e1a29", + "--accent": "#3f5c79", + "--background-accent": "#004a93" + }, + "lightGreen": { + "--background": "#000802", + "--card": "#0b1a0b", + "--foreground": "#e6ffe6", + "--primary-cta": "#80da9b", + "--secondary-cta": "#07170b", + "--accent": "#38714a", + "--background-accent": "#2c6541" + }, + "lightRed": { + "--background": "#080000", + "--card": "#1e0d0d", + "--foreground": "#ffe6e6", + "--primary-cta": "#ff7a7a", + "--secondary-cta": "#1e0909", + "--accent": "#7b4242", + "--background-accent": "#65292c" + }, + "darkRed": { + "--background": "#060000", + "--card": "#1d0d0d", + "--foreground": "#ffe6e6", + "--primary-cta": "#ff3d4a", + "--secondary-cta": "#1f0a0a", + "--accent": "#7b2d2d", + "--background-accent": "#b8111f" + }, + "lightPurple": { + "--background": "#050012", + "--card": "#040121", + "--foreground": "#f0e6ff", + "--primary-cta": "#c89bff", + "--secondary-cta": "#1d123b", + "--accent": "#684f7b", + "--background-accent": "#65417c" + }, + "lightOrange": { + "--background": "#080200", + "--card": "#1a0d0b", + "--foreground": "#ffe6d5", + "--primary-cta": "#ffaa70", + "--secondary-cta": "#170b07", + "--accent": "#7b5e4a", + "--background-accent": "#b8541e" + }, + "deepBlue": { + "--background": "#020617", + "--card": "#0f172a", + "--foreground": "#e2e8f0", + "--primary-cta": "#c4d8f9", + "--secondary-cta": "#041633", + "--accent": "#2d30f3", + "--background-accent": "#1d4ed8" + } + } +} diff --git a/docs/ACCESSIBILITY.md b/docs/ACCESSIBILITY.md new file mode 100644 index 0000000..8303571 --- /dev/null +++ b/docs/ACCESSIBILITY.md @@ -0,0 +1,500 @@ +# Accessibility Standards + +This document outlines accessibility (a11y) requirements for all components in the library, ensuring compatibility with screen readers and assistive technologies. + +## Interactive Components + +For buttons, links, and other interactive elements. + +### Required Props + +```tsx +interface ButtonProps { + text: string; + onClick?: () => void; + className?: string; + // Accessibility props + disabled?: boolean; + ariaLabel?: string; + type?: "button" | "submit" | "reset"; +} +``` + +### Implementation Pattern + +```tsx +const Button = ({ + text, + onClick, + className = "", + disabled = false, + ariaLabel, + type = "button", +}: ButtonProps) => { + return ( + + ); +}; +``` + +### Key Points + +**ariaLabel:** +- Optional prop with sensible fallback +- Falls back to `text` content for buttons +- Provides context for screen readers + +**type:** +- Default: `"button"` +- Options: `"button" | "submit" | "reset"` +- Prevents accidental form submission + +**disabled:** +- Default: `false` +- Includes visual disabled states: + - `disabled:cursor-not-allowed` - Shows not-allowed cursor + - `disabled:opacity-50` - Reduces opacity for visual feedback + +## Media Components + +### Images + +**Required Props:** +```tsx +interface ImageProps { + imageSrc: string; + imageAlt?: string; // Empty string for decorative images + className?: string; +} +``` + +**Implementation:** +```tsx +const ImageComponent = ({ + imageSrc, + imageAlt = "", + className = "", +}: ImageProps) => { + return ( + {imageAlt} + ); +}; +``` + +**Key Points:** +- `imageAlt` - Alt text for images + - Provide descriptive alt text for meaningful images + - Use empty string (`""`) for decorative images +- `aria-hidden={true}` - When alt is empty, mark as decorative +- Screen readers will skip decorative images + +### Videos + +**Required Props:** +```tsx +interface VideoProps { + videoSrc: string; + videoAriaLabel?: string; + className?: string; +} +``` + +**Implementation:** +```tsx +const VideoComponent = ({ + videoSrc, + videoAriaLabel = "Video content", + className = "", +}: VideoProps) => { + return ( +