@hua-labs/ui 2.0.2 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -161
- package/dist/{ComponentLayout-btJq4TjA.d.mts → ComponentLayout-DrZpz0yv.d.mts} +1 -1
- package/dist/Section-BWzyshgX.d.mts +67 -0
- package/dist/advanced/dashboard.d.ts.map +1 -1
- package/dist/advanced-dashboard.d.mts +1 -1
- package/dist/advanced-dashboard.js +4 -4
- package/dist/advanced-dashboard.js.map +1 -1
- package/dist/advanced-dashboard.mjs +3 -3
- package/dist/advanced-dashboard.mjs.map +1 -1
- package/dist/advanced-emotion.mjs +1 -1
- package/dist/advanced-motion.d.mts +65 -1
- package/dist/advanced-motion.js +14 -14
- package/dist/advanced-motion.js.map +1 -1
- package/dist/advanced-motion.mjs +1 -1
- package/dist/advanced.d.mts +4 -4
- package/dist/advanced.js +16 -16
- package/dist/advanced.js.map +1 -1
- package/dist/advanced.mjs +3 -3
- package/dist/advanced.mjs.map +1 -1
- package/dist/chunk-3CCF7U3P.mjs +3 -0
- package/dist/{chunk-IFSEJVOR.mjs.map → chunk-3CCF7U3P.mjs.map} +1 -1
- package/dist/chunk-3GAUTZXQ.mjs +3 -0
- package/dist/{chunk-X7ZIWYRC.mjs.map → chunk-3GAUTZXQ.mjs.map} +1 -1
- package/dist/chunk-42RGFEL2.mjs +3 -0
- package/dist/chunk-42RGFEL2.mjs.map +1 -0
- package/dist/chunk-4NJE7D6X.mjs +3 -0
- package/dist/chunk-4NJE7D6X.mjs.map +1 -0
- package/dist/chunk-6HVJFEDA.mjs +3 -0
- package/dist/{chunk-FSL373O6.mjs.map → chunk-6HVJFEDA.mjs.map} +1 -1
- package/dist/chunk-7OYT3QSY.mjs +3 -0
- package/dist/chunk-7OYT3QSY.mjs.map +1 -0
- package/dist/chunk-ANYZ56VB.mjs +3 -0
- package/dist/{chunk-QQCELXFD.mjs.map → chunk-ANYZ56VB.mjs.map} +1 -1
- package/dist/chunk-AOSXB5JJ.mjs +4 -0
- package/dist/{chunk-GLZKT7JN.mjs.map → chunk-AOSXB5JJ.mjs.map} +1 -1
- package/dist/chunk-B544MRF7.mjs +3 -0
- package/dist/{chunk-SDFHJ4GB.mjs.map → chunk-B544MRF7.mjs.map} +1 -1
- package/dist/chunk-CVWWS25A.mjs +3 -0
- package/dist/chunk-CVWWS25A.mjs.map +1 -0
- package/dist/chunk-DYNBM24D.mjs +3 -0
- package/dist/{chunk-OSCMSA2Q.mjs.map → chunk-DYNBM24D.mjs.map} +1 -1
- package/dist/{chunk-NBJUE7NR.mjs → chunk-FX57OSYG.mjs} +2 -2
- package/dist/{chunk-NBJUE7NR.mjs.map → chunk-FX57OSYG.mjs.map} +1 -1
- package/dist/chunk-IJSYSNM5.mjs +3 -0
- package/dist/{chunk-IN7RWQCJ.mjs.map → chunk-IJSYSNM5.mjs.map} +1 -1
- package/dist/chunk-KJZGOL2Z.mjs +3 -0
- package/dist/{chunk-LOYAJIWO.mjs.map → chunk-KJZGOL2Z.mjs.map} +1 -1
- package/dist/chunk-KYRIUUQP.mjs +3 -0
- package/dist/{chunk-PAEKNQWW.mjs.map → chunk-KYRIUUQP.mjs.map} +1 -1
- package/dist/chunk-LSA7DU3N.mjs +73 -0
- package/dist/chunk-LSA7DU3N.mjs.map +1 -0
- package/dist/chunk-MDLCJASB.mjs +3 -0
- package/dist/{chunk-LH77I6HO.mjs.map → chunk-MDLCJASB.mjs.map} +1 -1
- package/dist/chunk-N56BUOCD.mjs +3 -0
- package/dist/{chunk-XV3Y7QVU.mjs.map → chunk-N56BUOCD.mjs.map} +1 -1
- package/dist/chunk-OFYITQXI.mjs +13 -0
- package/dist/chunk-OFYITQXI.mjs.map +1 -0
- package/dist/chunk-OZNST3EZ.mjs +3 -0
- package/dist/{chunk-SGEP3CQE.mjs.map → chunk-OZNST3EZ.mjs.map} +1 -1
- package/dist/chunk-RS6RKW5U.mjs +13 -0
- package/dist/{chunk-6KTHJ3EL.mjs.map → chunk-RS6RKW5U.mjs.map} +1 -1
- package/dist/{chunk-C4OACMTB.mjs → chunk-TXBZZJNR.mjs} +2 -2
- package/dist/{chunk-C4OACMTB.mjs.map → chunk-TXBZZJNR.mjs.map} +1 -1
- package/dist/chunk-TZ4YSHMC.mjs +3 -0
- package/dist/{chunk-UWHCM3S6.mjs.map → chunk-TZ4YSHMC.mjs.map} +1 -1
- package/dist/chunk-U6CTBZ2U.mjs +3 -0
- package/dist/chunk-U6CTBZ2U.mjs.map +1 -0
- package/dist/{chunk-5BMH7223.mjs → chunk-WP7VFE77.mjs} +2 -2
- package/dist/{chunk-5BMH7223.mjs.map → chunk-WP7VFE77.mjs.map} +1 -1
- package/dist/{chunk-FFH4ZFKS.mjs → chunk-XCZMLKPK.mjs} +2 -2
- package/dist/{chunk-FFH4ZFKS.mjs.map → chunk-XCZMLKPK.mjs.map} +1 -1
- package/dist/chunk-XGHT7WMO.mjs +3 -0
- package/dist/chunk-XGHT7WMO.mjs.map +1 -0
- package/dist/chunk-XL4KTJ4L.mjs +3 -0
- package/dist/{chunk-VWSBJUNI.mjs.map → chunk-XL4KTJ4L.mjs.map} +1 -1
- package/dist/chunk-Z74YUUVT.mjs +3 -0
- package/dist/chunk-Z74YUUVT.mjs.map +1 -0
- package/dist/chunk-ZXZIHU7J.mjs +8 -0
- package/dist/{chunk-N7M6RIN4.mjs.map → chunk-ZXZIHU7J.mjs.map} +1 -1
- package/dist/components/DatePicker.d.ts.map +1 -1
- package/dist/components/Modal.d.ts.map +1 -1
- package/dist/components/Popover.d.ts +2 -0
- package/dist/components/Popover.d.ts.map +1 -1
- package/dist/components/Progress.d.ts +1 -0
- package/dist/components/Progress.d.ts.map +1 -1
- package/dist/components/Section.d.ts +44 -0
- package/dist/components/Section.d.ts.map +1 -0
- package/dist/components/advanced/AnimatedGradient.d.ts.map +1 -1
- package/dist/components/advanced/DotNav.d.ts +26 -0
- package/dist/components/advanced/DotNav.d.ts.map +1 -0
- package/dist/components/advanced/HorizontalScroll.d.ts +20 -0
- package/dist/components/advanced/HorizontalScroll.d.ts.map +1 -0
- package/dist/components/advanced/ImageReveal.d.ts +24 -0
- package/dist/components/advanced/ImageReveal.d.ts.map +1 -0
- package/dist/components/advanced/index.d.ts +6 -0
- package/dist/components/advanced/index.d.ts.map +1 -1
- package/dist/data.mjs +2 -2
- package/dist/data.mjs.map +1 -1
- package/dist/feedback.mjs +1 -1
- package/dist/form.js +3 -3
- package/dist/form.js.map +1 -1
- package/dist/form.mjs +4 -4
- package/dist/form.mjs.map +1 -1
- package/dist/{icons-Bj_nr8Ba.d.mts → icons-DmhQEH_E.d.mts} +6 -1
- package/dist/index.d.mts +9 -27
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -6
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.map +1 -1
- package/dist/interactive.js +1 -1
- package/dist/interactive.js.map +1 -1
- package/dist/interactive.mjs +1 -1
- package/dist/interactive.mjs.map +1 -1
- package/dist/landing/LandingAbout.d.ts +3 -0
- package/dist/landing/LandingAbout.d.ts.map +1 -0
- package/dist/landing/LandingCTA.d.ts +3 -0
- package/dist/landing/LandingCTA.d.ts.map +1 -0
- package/dist/landing/LandingContact.d.ts +3 -0
- package/dist/landing/LandingContact.d.ts.map +1 -0
- package/dist/landing/LandingExperience.d.ts +3 -0
- package/dist/landing/LandingExperience.d.ts.map +1 -0
- package/dist/landing/LandingFeatures.d.ts +3 -0
- package/dist/landing/LandingFeatures.d.ts.map +1 -0
- package/dist/landing/LandingHero.d.ts +3 -0
- package/dist/landing/LandingHero.d.ts.map +1 -0
- package/dist/landing/LandingLogoCloud.d.ts +3 -0
- package/dist/landing/LandingLogoCloud.d.ts.map +1 -0
- package/dist/landing/LandingMetrics.d.ts +3 -0
- package/dist/landing/LandingMetrics.d.ts.map +1 -0
- package/dist/landing/LandingProjects.d.ts +3 -0
- package/dist/landing/LandingProjects.d.ts.map +1 -0
- package/dist/landing/LandingProvider.d.ts +4 -0
- package/dist/landing/LandingProvider.d.ts.map +1 -0
- package/dist/landing/LandingShowcase.d.ts +3 -0
- package/dist/landing/LandingShowcase.d.ts.map +1 -0
- package/dist/landing/LandingSkills.d.ts +3 -0
- package/dist/landing/LandingSkills.d.ts.map +1 -0
- package/dist/landing/LandingStats.d.ts +3 -0
- package/dist/landing/LandingStats.d.ts.map +1 -0
- package/dist/landing/LandingTestimonials.d.ts +3 -0
- package/dist/landing/LandingTestimonials.d.ts.map +1 -0
- package/dist/landing/index.d.ts +47 -0
- package/dist/landing/index.d.ts.map +1 -0
- package/dist/landing/themes/app.d.ts +3 -0
- package/dist/landing/themes/app.d.ts.map +1 -0
- package/dist/landing/themes/corporate.d.ts +3 -0
- package/dist/landing/themes/corporate.d.ts.map +1 -0
- package/dist/landing/themes/dashboard.d.ts +3 -0
- package/dist/landing/themes/dashboard.d.ts.map +1 -0
- package/dist/landing/themes/immersive.d.ts +3 -0
- package/dist/landing/themes/immersive.d.ts.map +1 -0
- package/dist/landing/themes/index.d.ts +15 -0
- package/dist/landing/themes/index.d.ts.map +1 -0
- package/dist/landing/themes/marketing.d.ts +3 -0
- package/dist/landing/themes/marketing.d.ts.map +1 -0
- package/dist/landing/themes/portfolio.d.ts +3 -0
- package/dist/landing/themes/portfolio.d.ts.map +1 -0
- package/dist/landing/themes/product.d.ts +3 -0
- package/dist/landing/themes/product.d.ts.map +1 -0
- package/dist/landing/types.d.ts +346 -0
- package/dist/landing/types.d.ts.map +1 -0
- package/dist/landing.d.mts +417 -0
- package/dist/landing.js +100 -0
- package/dist/landing.js.map +1 -0
- package/dist/landing.mjs +31 -0
- package/dist/landing.mjs.map +1 -0
- package/dist/lib/icons.d.ts +6 -1
- package/dist/lib/icons.d.ts.map +1 -1
- package/dist/navigation.d.mts +1 -1
- package/dist/navigation.js +2 -2
- package/dist/navigation.js.map +1 -1
- package/dist/navigation.mjs +1 -1
- package/dist/navigation.mjs.map +1 -1
- package/dist/overlay.d.mts +2 -0
- package/dist/overlay.js +1 -1
- package/dist/overlay.js.map +1 -1
- package/dist/overlay.mjs +1 -1
- package/dist/overlay.mjs.map +1 -1
- package/dist/sdui.js +4 -4
- package/dist/sdui.js.map +1 -1
- package/dist/sdui.mjs +1 -1
- package/dist/sdui.mjs.map +1 -1
- package/package.json +18 -7
- package/src/styles/landing.css +107 -0
- package/src/styles/utilities.css +58 -0
- package/dist/chunk-6KTHJ3EL.mjs +0 -13
- package/dist/chunk-COR6CDMA.mjs +0 -83
- package/dist/chunk-COR6CDMA.mjs.map +0 -1
- package/dist/chunk-FSL373O6.mjs +0 -3
- package/dist/chunk-GLZKT7JN.mjs +0 -4
- package/dist/chunk-HN5LSP6L.mjs +0 -3
- package/dist/chunk-HN5LSP6L.mjs.map +0 -1
- package/dist/chunk-IFSEJVOR.mjs +0 -3
- package/dist/chunk-IN7RWQCJ.mjs +0 -3
- package/dist/chunk-LH77I6HO.mjs +0 -3
- package/dist/chunk-LOYAJIWO.mjs +0 -3
- package/dist/chunk-LPAG7DCA.mjs +0 -3
- package/dist/chunk-LPAG7DCA.mjs.map +0 -1
- package/dist/chunk-N7M6RIN4.mjs +0 -8
- package/dist/chunk-OSCMSA2Q.mjs +0 -3
- package/dist/chunk-PAEKNQWW.mjs +0 -3
- package/dist/chunk-QQCELXFD.mjs +0 -3
- package/dist/chunk-RPUS7G7Q.mjs +0 -3
- package/dist/chunk-RPUS7G7Q.mjs.map +0 -1
- package/dist/chunk-SDFHJ4GB.mjs +0 -3
- package/dist/chunk-SGEP3CQE.mjs +0 -3
- package/dist/chunk-UUHAXGMO.mjs +0 -3
- package/dist/chunk-UUHAXGMO.mjs.map +0 -1
- package/dist/chunk-UWHCM3S6.mjs +0 -3
- package/dist/chunk-VWSBJUNI.mjs +0 -3
- package/dist/chunk-X7ZIWYRC.mjs +0 -3
- package/dist/chunk-XV3Y7QVU.mjs +0 -3
package/dist/landing.mjs
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {b as b$1}from'./chunk-Z74YUUVT.mjs';import {a as a$1}from'./chunk-CVWWS25A.mjs';import {a as a$4}from'./chunk-4NJE7D6X.mjs';import {a as a$3}from'./chunk-IJSYSNM5.mjs';import {d,a as a$2,e,c,b as b$2}from'./chunk-LSA7DU3N.mjs';import {a as a$5}from'./chunk-6HVJFEDA.mjs';import {l}from'./chunk-7OYT3QSY.mjs';import {a,b}from'./chunk-U6CTBZ2U.mjs';import {createContext,useContext,useMemo,useState,useEffect,useRef,useCallback}from'react';import {jsx,jsxs}from'react/jsx-runtime';var oe={name:"corporate",colors:{background:"0 0% 100%",foreground:"222 47% 11%",muted:"210 40% 96%",mutedForeground:"215 16% 47%",primary:"217 91% 53%",primaryForeground:"0 0% 100%",secondary:"215 16% 93%",secondaryForeground:"222 47% 11%",card:"0 0% 100%",cardForeground:"222 47% 11%",border:"214 32% 91%",sectionAlt:"210 40% 98%"},hero:{background:"gradient",size:"xl",motion:{type:"fadeIn",duration:900,easing:"ease-out",delay:0}},features:{card:"spotlight",staggerDelay:150,motion:{type:"fadeIn",duration:900,easing:"ease-out",delay:0},decorator:true},stats:{numberSize:"text-4xl",countUp:false,staggerDelay:150,motion:{type:"fadeIn",duration:900,easing:"ease-out",delay:0}},cta:{background:"gradient-soft",motion:{type:"fadeIn",duration:900,easing:"ease-out",delay:0}},testimonials:{variant:"grid",staggerDelay:150,motion:{type:"fadeIn",duration:900,easing:"ease-out",delay:0}},logoCloud:{variant:"grid",speed:40},showcase:{staggerDelay:150,motion:{type:"fadeIn",duration:900,easing:"ease-out",delay:0}}};var ie={name:"marketing",colors:{background:"260 100% 4%",foreground:"0 0% 100%",muted:"270 30% 10%",mutedForeground:"240 4% 65%",primary:"258 90% 66%",primaryForeground:"0 0% 100%",secondary:"258 30% 15%",secondaryForeground:"0 0% 95%",card:"260 40% 10%",cardForeground:"0 0% 100%",border:"258 40% 20%",sectionAlt:"270 50% 6%"},hero:{background:"animated-gradient",size:"full",motion:{type:"bounceIn",duration:500,easing:"cubic-bezier(0.34, 1.56, 0.64, 1)",delay:0}},features:{card:"glow",staggerDelay:80,motion:{type:"bounceIn",duration:500,easing:"cubic-bezier(0.34, 1.56, 0.64, 1)",delay:0},decorator:false},stats:{numberSize:"text-5xl",countUp:true,staggerDelay:80,motion:{type:"bounceIn",duration:500,easing:"cubic-bezier(0.34, 1.56, 0.64, 1)",delay:0}},cta:{background:"animated-gradient",motion:{type:"bounceIn",duration:500,easing:"cubic-bezier(0.34, 1.56, 0.64, 1)",delay:0}},testimonials:{variant:"carousel",staggerDelay:80,motion:{type:"bounceIn",duration:500,easing:"cubic-bezier(0.34, 1.56, 0.64, 1)",delay:0}},logoCloud:{variant:"marquee",speed:60},showcase:{staggerDelay:80,motion:{type:"bounceIn",duration:500,easing:"cubic-bezier(0.34, 1.56, 0.64, 1)",delay:0}}};var se={name:"product",colors:{background:"240 6% 4%",foreground:"0 0% 98%",muted:"240 5% 11%",mutedForeground:"240 4% 64%",primary:"188 96% 42%",primaryForeground:"0 0% 100%",secondary:"188 20% 12%",secondaryForeground:"0 0% 98%",card:"240 5% 10%",cardForeground:"0 0% 98%",border:"240 4% 16%",sectionAlt:"240 6% 7%"},hero:{background:"dark",size:"full",motion:{type:"slideUp",duration:700,easing:"ease-in-out",delay:0}},features:{card:"feature-glass",staggerDelay:120,motion:{type:"slideUp",duration:700,easing:"ease-in-out",delay:0},decorator:false},stats:{numberSize:"text-6xl",countUp:true,staggerDelay:120,motion:{type:"slideUp",duration:700,easing:"ease-in-out",delay:0}},cta:{background:"dark",motion:{type:"slideUp",duration:700,easing:"ease-in-out",delay:0}},testimonials:{variant:"carousel",staggerDelay:120,motion:{type:"slideUp",duration:700,easing:"ease-in-out",delay:0}},logoCloud:{variant:"marquee",speed:40},showcase:{staggerDelay:120,motion:{type:"slideUp",duration:700,easing:"ease-in-out",delay:0}}};var de={name:"dashboard",colors:{background:"222 47% 11%",foreground:"214 32% 91%",muted:"222 42% 16%",mutedForeground:"215 20% 65%",primary:"217 91% 60%",primaryForeground:"0 0% 100%",secondary:"217 30% 18%",secondaryForeground:"214 32% 91%",card:"222 47% 14%",cardForeground:"214 32% 91%",border:"217 30% 22%",sectionAlt:"222 42% 14%"},hero:{background:"gradient",size:"xl",motion:{type:"fadeIn",duration:650,easing:"ease-out",delay:0}},features:{card:"feature-glass",staggerDelay:100,motion:{type:"scaleIn",duration:650,easing:"ease-out",delay:0},decorator:false},stats:{numberSize:"text-4xl",countUp:true,staggerDelay:100,motion:{type:"fadeIn",duration:650,easing:"ease-out",delay:0}},cta:{background:"gradient-soft",motion:{type:"fadeIn",duration:650,easing:"ease-out",delay:0}},testimonials:{variant:"grid",staggerDelay:100,motion:{type:"scaleIn",duration:650,easing:"ease-out",delay:0}},logoCloud:{variant:"marquee",speed:45},showcase:{staggerDelay:100,motion:{type:"scaleIn",duration:650,easing:"ease-out",delay:0}}};var le={name:"app",colors:{background:"0 0% 100%",foreground:"215 28% 17%",muted:"270 100% 96%",mutedForeground:"220 9% 46%",primary:"258 90% 66%",primaryForeground:"0 0% 100%",secondary:"258 20% 93%",secondaryForeground:"215 28% 17%",card:"0 0% 100%",cardForeground:"215 28% 17%",border:"220 13% 91%",sectionAlt:"270 100% 98%"},hero:{background:"gradient",size:"full",motion:{type:"slideUp",duration:600,easing:"cubic-bezier(0.22, 1, 0.36, 1)",delay:0}},features:{card:"feature-glass",staggerDelay:120,motion:{type:"slideUp",duration:600,easing:"cubic-bezier(0.22, 1, 0.36, 1)",delay:0},decorator:false},stats:{numberSize:"text-5xl",countUp:true,staggerDelay:120,motion:{type:"slideUp",duration:600,easing:"cubic-bezier(0.22, 1, 0.36, 1)",delay:0}},cta:{background:"gradient-soft",motion:{type:"bounceIn",duration:500,easing:"cubic-bezier(0.34, 1.56, 0.64, 1)",delay:0}},testimonials:{variant:"carousel",staggerDelay:120,motion:{type:"slideUp",duration:600,easing:"cubic-bezier(0.22, 1, 0.36, 1)",delay:0}},logoCloud:{variant:"marquee",speed:50},showcase:{staggerDelay:120,motion:{type:"slideUp",duration:600,easing:"cubic-bezier(0.22, 1, 0.36, 1)",delay:0}}};var ce={name:"immersive",colors:{background:"0 0% 0%",foreground:"0 0% 100%",muted:"0 0% 7%",mutedForeground:"0 0% 45%",primary:"252 92% 76%",primaryForeground:"0 0% 100%",secondary:"252 15% 12%",secondaryForeground:"0 0% 95%",card:"0 0% 5%",cardForeground:"0 0% 100%",border:"0 0% 10%",sectionAlt:"0 0% 4%"},hero:{background:"dark",size:"full",motion:{type:"fadeIn",duration:1200,easing:"cubic-bezier(0.16, 1, 0.3, 1)",delay:0}},features:{card:"glow",staggerDelay:200,motion:{type:"slideUp",duration:900,easing:"cubic-bezier(0.16, 1, 0.3, 1)",delay:0},decorator:false},stats:{numberSize:"text-6xl",countUp:true,staggerDelay:200,motion:{type:"fadeIn",duration:1200,easing:"cubic-bezier(0.16, 1, 0.3, 1)",delay:0}},cta:{background:"dark",motion:{type:"fadeIn",duration:1200,easing:"cubic-bezier(0.16, 1, 0.3, 1)",delay:0}},testimonials:{variant:"marquee",staggerDelay:200,motion:{type:"fadeIn",duration:1200,easing:"cubic-bezier(0.16, 1, 0.3, 1)",delay:0}},logoCloud:{variant:"marquee",speed:30},showcase:{staggerDelay:200,motion:{type:"slideUp",duration:900,easing:"cubic-bezier(0.16, 1, 0.3, 1)",delay:0}}};var me={name:"portfolio",colors:{background:"0 0% 4%",foreground:"0 0% 98%",muted:"0 0% 10%",mutedForeground:"0 0% 64%",primary:"25 95% 53%",primaryForeground:"0 0% 100%",secondary:"25 20% 12%",secondaryForeground:"0 0% 98%",card:"0 0% 8%",cardForeground:"0 0% 98%",border:"25 30% 15%",sectionAlt:"0 0% 6%"},hero:{background:"dark",size:"full",motion:{type:"slideUp",duration:800,easing:"cubic-bezier(0.22, 1, 0.36, 1)",delay:0}},features:{card:"feature-glass",staggerDelay:100,motion:{type:"slideUp",duration:700,easing:"cubic-bezier(0.22, 1, 0.36, 1)",delay:0},decorator:false},stats:{numberSize:"text-5xl",countUp:true,staggerDelay:100,motion:{type:"slideUp",duration:700,easing:"cubic-bezier(0.22, 1, 0.36, 1)",delay:0}},cta:{background:"dark",motion:{type:"slideUp",duration:700,easing:"cubic-bezier(0.22, 1, 0.36, 1)",delay:0}},testimonials:{variant:"grid",staggerDelay:100,motion:{type:"slideUp",duration:700,easing:"cubic-bezier(0.22, 1, 0.36, 1)",delay:0}},logoCloud:{variant:"grid",speed:40},showcase:{staggerDelay:100,motion:{type:"slideUp",duration:700,easing:"cubic-bezier(0.22, 1, 0.36, 1)",delay:0}}};var Ee={corporate:oe,marketing:ie,product:se,dashboard:de,app:le,immersive:ce,portfolio:me};function ue(e){return typeof e=="string"?Ee[e]:e}function Be(e,t){let n=Ee[e];return {...n,name:t.name,colors:{...n.colors,...t.colors},hero:{...n.hero,...t.hero},features:{...n.features,...t.features},stats:{...n.stats,...t.stats},cta:{...n.cta,...t.cta},testimonials:{...n.testimonials,...t.testimonials},logoCloud:{...n.logoCloud,...t.logoCloud},showcase:{...n.showcase,...t.showcase}}}var je=createContext(null);function h(){let e=useContext(je);if(!e)throw new Error("useLandingTheme must be used within <Landing.Provider>");return e}function Ke(e){return {"--color-primary":`hsl(${e.primary})`,"--color-primary-foreground":`hsl(${e.primaryForeground})`,"--color-background":`hsl(${e.background})`,"--color-foreground":`hsl(${e.foreground})`,"--color-muted":`hsl(${e.muted})`,"--color-muted-foreground":`hsl(${e.mutedForeground})`,"--color-secondary":`hsl(${e.secondary})`,"--color-secondary-foreground":`hsl(${e.secondaryForeground})`,"--color-card":`hsl(${e.card})`,"--color-card-foreground":`hsl(${e.cardForeground})`,"--color-border":`hsl(${e.border})`,"--color-input":`hsl(${e.border})`,"--color-ring":`hsl(${e.primary})`,"--primary":e.primary,"--primary-foreground":e.primaryForeground,"--background":e.background,"--foreground":e.foreground,"--muted":e.muted,"--muted-foreground":e.mutedForeground,"--secondary":e.secondary,"--secondary-foreground":e.secondaryForeground,"--card":e.card,"--card-foreground":e.cardForeground,"--border":e.border,"--input":e.border,"--ring":e.primary,"--landing-section-alt":`hsl(${e.sectionAlt})`}}function ge({theme:e,children:t}){let n=useMemo(()=>ue(e),[e]),s=useMemo(()=>({backgroundColor:`hsl(${n.colors.background})`,color:`hsl(${n.colors.foreground})`,...Ke(n.colors)}),[n.colors]);return jsx(je.Provider,{value:n,children:jsx("div",{style:s,children:t})})}function Ze(e,t){return t?{...e,...t}:e}function et(e){switch(e){case "slideUp":return "translateY(32px)";case "slideLeft":return "translateX(-32px)";case "slideRight":return "translateX(32px)";case "scaleIn":return "scale(0.95)";case "bounceIn":return "scale(0.75)";default:return "none"}}function fe({title:e,subtitle:t,description:n,primaryAction:s,secondaryAction:d$1,size:m,background:g,gradientColors:u,scrollIndicator:o=false,motion:c,className:i,...r}){let a=h(),l=m!=null?m:a.hero.size,p=g!=null?g:a.hero.background,y=Ze(a.hero.motion,c),f=useMemo(()=>({opacity:0,transform:et(y.type),animation:`landing-hero-enter ${y.duration}ms ${y.easing} ${y.delay}ms forwards`}),[y]);return jsxs("section",{className:b("relative overflow-hidden flex items-center justify-center",l==="full"?"min-h-screen":"py-28 sm:py-36",p==="dark"&&"bg-gray-950 text-white",i),...r,children:[p==="gradient"&&jsx("div",{className:"absolute inset-0 gradient-bg-soft","aria-hidden":"true"}),p==="animated-gradient"&&jsx(d,{colors:u,type:"mesh",className:"absolute inset-0 -z-0","aria-hidden":"true"}),p==="dark"&&jsx("div",{className:"absolute inset-0",style:{background:"radial-gradient(ellipse 80% 60% at 50% 40%, rgba(120, 119, 198, 0.08), transparent)"},"aria-hidden":"true"}),jsx(a$1,{size:"lg",padding:"none",centered:true,className:"relative z-10 px-6",children:jsxs("div",{style:f,className:"text-center max-w-4xl mx-auto",children:[jsx("h1",{className:"text-4xl sm:text-5xl md:text-6xl lg:text-7xl font-extrabold tracking-tight mb-6",children:e}),t&&jsx("p",{className:"text-xl sm:text-2xl text-muted-foreground mb-4",children:t}),n&&jsx("p",{className:"text-base sm:text-lg text-muted-foreground/80 max-w-2xl mx-auto mb-8",children:n}),(s||d$1)&&jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-4",children:[s,d$1]})]})}),o&&jsx("div",{className:"absolute bottom-8 left-1/2 -translate-x-1/2 animate-bounce","aria-hidden":"true",children:jsx("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"text-muted-foreground",children:jsx("path",{d:"M12 5v14M5 12l7 7 7-7"})})}),jsx("style",{dangerouslySetInnerHTML:{__html:`
|
|
3
|
+
@keyframes landing-hero-enter {
|
|
4
|
+
to { opacity: 1; transform: none; }
|
|
5
|
+
}
|
|
6
|
+
`}})]})}var X;try{X=a("@hua-labs/motion-core").useStagger;}catch{}var tt={2:"grid-cols-1 md:grid-cols-2",3:"grid-cols-1 md:grid-cols-2 lg:grid-cols-3",4:"grid-cols-1 md:grid-cols-2 lg:grid-cols-4"};function nt(e,t,n){switch(t){case "glow":return jsxs(b$2,{style:n,className:"p-6",children:[e.icon&&jsx("div",{className:"text-4xl mb-4",children:e.icon}),jsx("h3",{className:"text-xl font-bold mb-2",children:e.title}),jsx("p",{className:"text-muted-foreground text-sm",children:e.description})]});case "spotlight":return jsxs(c,{style:n,className:"p-6",children:[e.icon&&jsx("div",{className:"text-4xl mb-4",children:e.icon}),jsx("h3",{className:"text-xl font-bold mb-2",children:e.title}),jsx("p",{className:"text-muted-foreground text-sm",children:e.description})]});default:return jsx(a$4,{style:n,icon:void 0,title:e.title,description:e.description,variant:"glass",hover:"slide",children:e.icon&&jsx("div",{className:"text-4xl mb-4",children:e.icon})})}}function ye({items:e,title:t,subtitle:n,columns:s,card:d,sectionProps:m,motion:g,staggerDelay:u,decorator:o,className:c,...i}){let r=h(),a=d!=null?d:r.features.card,l=u!=null?u:r.features.staggerDelay,p=o!=null?o:r.features.decorator,y=g?{...r.features.motion,...g}:r.features.motion,f=s!=null?s:e.length<=2?2:e.length<=3?3:4,S=t||n?{title:t!=null?t:"",subtitle:n,decorator:p}:void 0,b$2=X==null?void 0:X({count:e.length,staggerDelay:l,duration:y.duration,motionType:y.type,easing:y.easing});return jsx(b$1,{header:S,spacing:"lg",...m,className:b(c),...i,children:jsx("div",{ref:b$2==null?void 0:b$2.containerRef,className:b("grid gap-6 lg:gap-8",tt[f]),children:e.map((L,O)=>jsx("div",{children:nt(L,a,b$2==null?void 0:b$2.styles[O])},O))})})}var Y;try{Y=a("@hua-labs/motion-core").useStagger;}catch{}function st(e){let t=e.match(/^([^0-9]*)([0-9]+(?:\.[0-9]+)?)(.*)$/);return t?{prefix:t[1],numeric:parseFloat(t[2]),suffix:t[3]}:{numeric:0,prefix:"",suffix:e}}function dt(e,t,n=1500){let[s,d]=useState(0),m=useRef(0),g=useCallback(()=>{let u=performance.now(),o=c=>{let i=c-u,r=Math.min(i/n,1),a=1-Math.pow(1-r,4);d(a*e),r<1&&(m.current=requestAnimationFrame(o));};m.current=requestAnimationFrame(o);},[e,n]);return useEffect(()=>{if(t)return g(),()=>{m.current&&cancelAnimationFrame(m.current);}},[t,g]),s}function lt({item:e,numberSize:t,countUp:n,isVisible:s,style:d}){var a,l;let{numeric:m,prefix:g,suffix:u}=st(e.value),o=dt(m,n&&s),c=(a=e.prefix)!=null?a:g,i=(l=e.suffix)!=null?l:u,r=n?`${c}${Number.isInteger(m)?Math.round(o):o.toFixed(1)}${i}`:e.value;return jsxs("div",{className:"text-center",style:d,children:[jsx("div",{className:b("font-extrabold stat-number",t),children:r}),jsx("div",{className:"text-muted-foreground mt-2 text-sm sm:text-base",children:e.label})]})}function be({items:e,title:t,subtitle:n,countUp:s,numberSize:d,sectionProps:m,motion:g,staggerDelay:u,className:o,...c}){let i=h(),r=s!=null?s:i.stats.countUp,a=d!=null?d:i.stats.numberSize,l=u!=null?u:i.stats.staggerDelay,p=g?{...i.stats.motion,...g}:i.stats.motion,y=t||n?{title:t!=null?t:"",subtitle:n,decorator:false}:void 0,f=Y==null?void 0:Y({count:e.length,staggerDelay:l,duration:p.duration,motionType:p.type,easing:p.easing}),S=e.length<=2?"grid-cols-1 sm:grid-cols-2":e.length<=3?"grid-cols-1 sm:grid-cols-3":"grid-cols-2 sm:grid-cols-4";return jsx(b$1,{header:y,spacing:"lg",...m,className:b(o),...c,children:jsx("div",{ref:f==null?void 0:f.containerRef,className:b("grid gap-8 lg:gap-12",S),children:e.map((b,L)=>{var O;return jsx(lt,{item:b,numberSize:a,countUp:r,isVisible:(O=f==null?void 0:f.isVisible)!=null?O:true,style:f==null?void 0:f.styles[L]},L)})})})}function ut(e){switch(e){case "slideUp":return "translateY(32px)";case "slideLeft":return "translateX(-32px)";case "slideRight":return "translateX(32px)";case "scaleIn":return "scale(0.95)";case "bounceIn":return "scale(0.75)";default:return "none"}}var B;try{B=a("@hua-labs/motion-core").useScrollReveal;}catch{}function he({title:e,subtitle:t,primaryAction:n,secondaryAction:s,background:d$1,gradientColors:m,motion:g,className:u,...o}){var p;let c=h(),i=d$1!=null?d$1:c.cta.background,r=g?{...c.cta.motion,...g}:c.cta.motion,a=B==null?void 0:B({motionType:r.type,duration:r.duration,delay:r.delay}),l=useMemo(()=>a?{}:{opacity:0,transform:ut(r.type),animation:`landing-cta-enter ${r.duration}ms ${r.easing} ${r.delay}ms forwards`},[a,r]);return jsxs("section",{className:b("relative overflow-hidden py-20 sm:py-28",i==="dark"&&"bg-gray-950 text-white",u),...o,children:[i==="gradient-soft"&&jsx("div",{className:"absolute inset-0 gradient-bg-soft","aria-hidden":"true"}),i==="animated-gradient"&&jsx(d,{colors:m,type:"mesh",className:"absolute inset-0 -z-0","aria-hidden":"true"}),i==="dark"&&jsx("div",{className:"absolute inset-0",style:{background:"radial-gradient(ellipse 80% 60% at 50% 40%, rgba(120, 119, 198, 0.08), transparent)"},"aria-hidden":"true"}),jsx(a$1,{size:"md",padding:"none",centered:true,className:"relative z-10 px-6",children:jsxs("div",{ref:a==null?void 0:a.ref,style:(p=a==null?void 0:a.style)!=null?p:l,className:"text-center",children:[jsx("h2",{className:"text-3xl sm:text-4xl md:text-5xl font-extrabold mb-4",children:e}),t&&jsx("p",{className:"text-lg text-muted-foreground max-w-2xl mx-auto mb-8",children:t}),(n||s)&&jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-4",children:[n,s]})]})}),jsx("style",{dangerouslySetInnerHTML:{__html:`
|
|
7
|
+
@keyframes landing-cta-enter {
|
|
8
|
+
to { opacity: 1; transform: none; }
|
|
9
|
+
}
|
|
10
|
+
`}})]})}var W;try{W=a("@hua-labs/motion-core").useStagger;}catch{}function ve({item:e,style:t}){return jsxs("div",{className:"bg-card/50 backdrop-blur-sm border border-border/30 rounded-xl p-6 flex flex-col gap-4",style:t,children:[jsxs("blockquote",{className:"text-foreground/90 leading-relaxed flex-1",children:["\u201C",e.quote,"\u201D"]}),jsxs("div",{className:"flex items-center gap-3",children:[e.avatar&&jsx(a$3,{size:"sm",src:e.avatar,alt:e.author}),jsxs("div",{children:[jsx("p",{className:"font-semibold text-sm",children:e.author}),(e.role||e.company)&&jsxs("p",{className:"text-xs text-muted-foreground",children:[e.role,e.role&&e.company&&", ",e.company]})]})]})]})}var gt={2:"md:grid-cols-2",3:"md:grid-cols-2 lg:grid-cols-3"};function Le({items:e$1,title:t,subtitle:n,variant:s,columns:d,autoPlay:m=true,interval:g=5e3,motion:u,staggerDelay:o,className:c,...i}){let r=h(),a=s!=null?s:r.testimonials.variant,l=u?{...r.testimonials.motion,...u}:r.testimonials.motion,p=o!=null?o:r.testimonials.staggerDelay,y=W==null?void 0:W({count:e$1.length,staggerDelay:p,duration:l.duration,motionType:l.type,easing:l.easing}),f=t||n?{title:t!=null?t:"",subtitle:n}:void 0;if(a==="marquee")return jsx(b$1,{header:f,className:c,...i,children:jsx(a$2,{speed:50,pauseOnHover:true,gradient:true,children:e$1.map((b,L)=>jsx("div",{className:"w-80 shrink-0",children:jsx(ve,{item:b})},L))})});if(a==="carousel")return jsx(b$1,{header:f,className:c,...i,children:jsx(e,{autoPlay:m,interval:g,loop:true,transition:"fade",indicators:"dots",children:e$1.map((b,L)=>jsx("div",{className:"flex justify-center px-4",children:jsx("div",{className:"max-w-2xl w-full",children:jsx(ve,{item:b})})},L))})});let S=d!=null?d:e$1.length<=2?2:3;return jsx(b$1,{header:f,className:c,...i,children:jsx("div",{ref:y==null?void 0:y.containerRef,className:b("grid gap-6",gt[S]),children:e$1.map((b,L)=>jsx(ve,{item:b,style:y==null?void 0:y.styles[L]},L))})})}function ft(e){switch(e){case "slideUp":return "translateY(32px)";case "slideLeft":return "translateX(-32px)";case "slideRight":return "translateX(32px)";case "scaleIn":return "scale(0.95)";case "bounceIn":return "scale(0.75)";default:return "none"}}var J;try{J=a("@hua-labs/motion-core").useScrollReveal;}catch{}function Se({logos:e,title:t,variant:n,speed:s,logoHeight:d=40,motion:m,className:g,...u}){var f;let o=h(),c=n!=null?n:o.logoCloud.variant,i=s!=null?s:o.logoCloud.speed,r=m?{...o.features.motion,...m}:{type:"fadeIn",duration:800,easing:"ease-out",delay:0},a=J==null?void 0:J({motionType:r.type,duration:r.duration,delay:r.delay}),l=useMemo(()=>a?{}:{opacity:0,transform:ft(r.type),animation:`landing-logocloud-enter ${r.duration}ms ${r.easing} ${r.delay}ms forwards`},[a,r]),p=e.map((S,b)=>{let L=jsx("img",{src:S.src,alt:S.alt,className:"object-contain opacity-60 hover:opacity-100 transition-opacity grayscale hover:grayscale-0",style:{height:d,width:"auto"}},b);return S.href?jsx("a",{href:S.href,target:"_blank",rel:"noopener noreferrer",className:"inline-flex",children:L},b):L});return jsxs(b$1,{header:t?{title:t,subtitle:void 0}:void 0,spacing:"sm",className:b("py-12 sm:py-16",g),...u,children:[jsx("div",{ref:a==null?void 0:a.ref,style:(f=a==null?void 0:a.style)!=null?f:l,children:c==="marquee"?jsx(a$2,{speed:i,pauseOnHover:true,gradient:true,gap:48,children:p}):jsx("div",{className:"flex flex-wrap items-center justify-center gap-8 sm:gap-12",children:p})}),jsx("style",{dangerouslySetInnerHTML:{__html:`
|
|
11
|
+
@keyframes landing-logocloud-enter {
|
|
12
|
+
to { opacity: 1; transform: none; }
|
|
13
|
+
}
|
|
14
|
+
`}})]})}var K;try{K=a("@hua-labs/motion-core").useStagger;}catch{}function Ne({items:e,title:t,subtitle:n,motion:s,staggerDelay:d,className:m,...g}){let u=h(),o=s?{...u.showcase.motion,...s}:u.showcase.motion,c=d!=null?d:u.showcase.staggerDelay,i=K==null?void 0:K({count:e.length,staggerDelay:c,duration:o.duration,motionType:o.type,easing:o.easing}),r=t||n?{title:t!=null?t:"",subtitle:n}:void 0;return jsx(b$1,{header:r,className:m,...g,children:jsx("div",{ref:i==null?void 0:i.containerRef,className:"space-y-16 sm:space-y-24",children:e.map((a,l)=>{let p=l%2===0;return jsx(a$1,{size:"lg",padding:"none",className:"px-4",children:jsxs("div",{className:b("flex flex-col gap-8 items-center",p?"md:flex-row":"md:flex-row-reverse"),style:i==null?void 0:i.styles[l],children:[jsx("div",{className:"flex-1 w-full",children:jsxs("div",{className:"relative overflow-hidden rounded-xl border border-border/30 shadow-lg",children:[jsx("img",{src:a.image,alt:a.title,className:"w-full h-auto object-cover"}),jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/20 to-transparent pointer-events-none"})]})}),jsxs("div",{className:"flex-1 w-full space-y-4",children:[jsx("h3",{className:"text-2xl sm:text-3xl font-bold",children:a.title}),jsx("p",{className:"text-muted-foreground leading-relaxed",children:a.description})]})]})},l)})})})}var Q;try{Q=a("@hua-labs/motion-core").useScrollReveal;}catch{}function ke({name:e,role:t,bio:n,avatar:s,socialLinks:d,motion:m,className:g,...u}){var a;let o=h(),c=m?{...o.hero.motion,...m}:o.hero.motion,i=Q==null?void 0:Q({motionType:c.type,duration:c.duration,delay:c.delay}),r=i?{}:{opacity:0,transform:c.type==="slideUp"?"translateY(32px)":"none",animation:`landing-about-enter ${c.duration}ms ${c.easing} ${c.delay}ms forwards`};return jsxs(b$1,{className:g,...u,children:[jsx(a$1,{size:"lg",padding:"none",centered:true,children:jsxs("div",{ref:i==null?void 0:i.ref,style:(a=i==null?void 0:i.style)!=null?a:r,className:"flex flex-col md:flex-row items-center gap-8 md:gap-12",children:[s&&jsx("div",{className:"flex-shrink-0",children:jsx(a$3,{size:"lg",src:s,alt:e,className:"w-32 h-32 md:w-40 md:h-40"})}),jsxs("div",{className:"flex-1 text-center md:text-left",children:[jsx("h2",{className:"text-3xl sm:text-4xl font-bold mb-2",children:e}),jsx("p",{className:"text-xl text-muted-foreground mb-4",children:t}),jsx("div",{className:"text-foreground/90 leading-relaxed mb-6",children:typeof n=="string"?jsx("p",{children:n}):n}),d&&d.length>0&&jsx("div",{className:"flex gap-4 justify-center md:justify-start",children:d.map((l$1,p)=>jsx("a",{href:l$1.href,target:"_blank",rel:"noopener noreferrer",className:"text-muted-foreground hover:text-foreground transition-colors","aria-label":l$1.label,children:jsx(l,{name:l$1.icon,size:24})},p))})]})]})}),jsx("style",{dangerouslySetInnerHTML:{__html:`
|
|
15
|
+
@keyframes landing-about-enter {
|
|
16
|
+
to { opacity: 1; transform: none; }
|
|
17
|
+
}
|
|
18
|
+
`}})]})}var Z,_e;try{let e=a("@hua-labs/motion-core");Z=e.useStagger,_e=e.TiltCard;}catch{}var xt={2:"md:grid-cols-2",3:"md:grid-cols-2 lg:grid-cols-3"};function ht({item:e,style:t}){return jsxs(_e||a$5,{className:"bg-card/50 backdrop-blur-sm border border-border/30 rounded-xl overflow-hidden group hover:shadow-lg transition-shadow",style:t,children:[e.image&&jsx("div",{className:"relative overflow-hidden aspect-video",children:jsx("img",{src:e.image,alt:e.title,className:"w-full h-full object-cover group-hover:scale-105 transition-transform duration-300"})}),jsxs("div",{className:"p-6",children:[jsx("h3",{className:"text-xl font-bold mb-2",children:e.title}),jsx("p",{className:"text-muted-foreground mb-4 leading-relaxed",children:e.description}),e.tags&&e.tags.length>0&&jsx("div",{className:"flex flex-wrap gap-2 mb-4",children:e.tags.map((s,d)=>jsx("span",{className:"px-2 py-1 text-xs rounded-full bg-primary/10 text-primary",children:s},d))}),jsxs("div",{className:"flex gap-3",children:[e.href&&jsxs("a",{href:e.href,target:"_blank",rel:"noopener noreferrer",className:"text-sm text-primary hover:underline flex items-center gap-1",children:["View Project ",jsx(l,{name:"arrowRight",size:16})]}),e.github&&jsxs("a",{href:e.github,target:"_blank",rel:"noopener noreferrer",className:"text-sm text-muted-foreground hover:text-foreground flex items-center gap-1",children:[jsx(l,{name:"github",size:16})," GitHub"]})]})]})]})}function Ce({items:e,title:t,subtitle:n,columns:s=3,filter:d=false,motion:m,staggerDelay:g,className:u,...o}){let c=h(),i=m?{...c.features.motion,...m}:c.features.motion,r=g!=null?g:c.features.staggerDelay,[a,l]=useState(null),p=useMemo(()=>{let b=new Set;return e.forEach(L=>{var O;(O=L.tags)==null||O.forEach(Ye=>b.add(Ye));}),Array.from(b)},[e]),y=useMemo(()=>a?e.filter(b=>{var L;return (L=b.tags)==null?void 0:L.includes(a)}):e,[e,a]),f=Z==null?void 0:Z({count:y.length,staggerDelay:r,duration:i.duration,motionType:i.type,easing:i.easing}),S=t||n?{title:t!=null?t:"",subtitle:n}:void 0;return jsxs(b$1,{header:S,className:u,...o,children:[d&&p.length>0&&jsxs("div",{className:"flex flex-wrap gap-2 mb-8 justify-center",children:[jsx("button",{onClick:()=>l(null),className:b("px-4 py-2 rounded-full text-sm font-medium transition-colors",a?"bg-secondary text-secondary-foreground hover:bg-secondary/80":"bg-primary text-primary-foreground"),children:"All"}),p.map(b$1=>jsx("button",{onClick:()=>l(b$1),className:b("px-4 py-2 rounded-full text-sm font-medium transition-colors",a===b$1?"bg-primary text-primary-foreground":"bg-secondary text-secondary-foreground hover:bg-secondary/80"),children:b$1},b$1))]}),jsx("div",{ref:f==null?void 0:f.containerRef,className:b("grid gap-6",xt[s]),children:y.map((b,L)=>jsx(ht,{item:b,style:f==null?void 0:f.styles[L]},L))})]})}var ee;try{ee=a("@hua-labs/motion-core").useStagger;}catch{}function vt(e){return e>=90?"bg-green-500":e>=70?"bg-blue-500":e>=50?"bg-yellow-500":"bg-gray-500"}function we({items:e,title:t,subtitle:n,variant:s="grid",motion:d,staggerDelay:m,className:g,...u}){let o=h(),c=d?{...o.features.motion,...d}:o.features.motion,i=m!=null?m:o.features.staggerDelay,r=ee==null?void 0:ee({count:e.length,staggerDelay:i,duration:c.duration,motionType:c.type,easing:c.easing}),a=t||n?{title:t!=null?t:"",subtitle:n}:void 0;return s==="marquee"?jsx(b$1,{header:a,className:g,...u,children:jsx(a$2,{speed:50,pauseOnHover:true,gradient:true,children:e.map((l$1,p)=>jsxs("div",{className:"w-40 shrink-0 flex items-center gap-3 px-4 py-2",children:[l$1.icon&&jsx(l,{name:l$1.icon,size:24}),jsx("span",{className:"font-medium",children:l$1.name})]},p))})}):s==="grid"?jsx(b$1,{header:a,className:g,...u,children:jsx("div",{ref:r==null?void 0:r.containerRef,className:"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-6",children:e.map((l$1,p)=>jsxs("div",{className:"flex flex-col items-center gap-3 p-6 bg-card/50 backdrop-blur-sm border border-border/30 rounded-xl hover:shadow-lg transition-shadow",style:r==null?void 0:r.styles[p],children:[l$1.icon&&jsx(l,{name:l$1.icon,size:32,variant:"primary"}),jsx("span",{className:"font-semibold text-center",children:l$1.name}),l$1.category&&jsx("span",{className:"text-xs text-muted-foreground",children:l$1.category})]},p))})}):jsxs(b$1,{header:a,className:g,...u,children:[jsx("div",{ref:r==null?void 0:r.containerRef,className:"space-y-6 max-w-3xl mx-auto",children:e.map((l$1,p)=>{var f;let y=(f=l$1.level)!=null?f:100;return jsxs("div",{className:"space-y-2",style:r==null?void 0:r.styles[p],children:[jsxs("div",{className:"flex justify-between items-center",children:[jsxs("div",{className:"flex items-center gap-2",children:[l$1.icon&&jsx(l,{name:l$1.icon,size:20}),jsx("span",{className:"font-semibold",children:l$1.name})]}),jsxs("span",{className:"text-sm text-muted-foreground",children:[y,"%"]})]}),jsx("div",{className:"h-2 bg-secondary rounded-full overflow-hidden",children:jsx("div",{className:b("h-full rounded-full transition-all duration-1000",vt(y)),style:{width:`${y}%`,animation:"skill-bar-fill 1s ease-out forwards"}})})]},p)})}),jsx("style",{dangerouslySetInnerHTML:{__html:`
|
|
19
|
+
@keyframes skill-bar-fill {
|
|
20
|
+
from { width: 0; }
|
|
21
|
+
}
|
|
22
|
+
`}})]})}var te;try{te=a("@hua-labs/motion-core").useStagger;}catch{}function Lt({item:e,style:t}){return jsxs("div",{className:"relative pl-8 pb-8 last:pb-0",style:t,children:[jsx("div",{className:b("absolute left-0 top-1.5 w-3 h-3 rounded-full border-2",e.current?"bg-primary border-primary animate-pulse":"bg-background border-border")}),jsx("div",{className:"absolute left-[5px] top-4 bottom-0 w-0.5 bg-border"}),jsxs("div",{className:"space-y-1",children:[jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-1",children:[jsx("h3",{className:"text-lg font-bold",children:e.title}),jsx("span",{className:"text-sm text-muted-foreground",children:e.period})]}),jsx("p",{className:"text-base text-foreground/80 font-medium",children:e.company}),e.description&&jsx("p",{className:"text-sm text-muted-foreground leading-relaxed pt-2",children:e.description}),e.current&&jsx("span",{className:"inline-block mt-2 px-2 py-1 text-xs rounded-full bg-primary/10 text-primary",children:"Current"})]})]})}function Ie({items:e,title:t,subtitle:n,motion:s,staggerDelay:d,className:m,...g}){let u=h(),o=s?{...u.features.motion,...s}:u.features.motion,c=d!=null?d:u.features.staggerDelay,i=te==null?void 0:te({count:e.length,staggerDelay:c,duration:o.duration,motionType:o.type,easing:o.easing}),r=t||n?{title:t!=null?t:"",subtitle:n}:void 0;return jsx(b$1,{header:r,className:m,...g,children:jsx("div",{ref:i==null?void 0:i.containerRef,className:"max-w-3xl mx-auto",children:e.map((a,l)=>jsx(Lt,{item:a,style:i==null?void 0:i.styles[l]},l))})})}var ne;try{ne=a("@hua-labs/motion-core").useScrollReveal;}catch{}function Tt(e){return e>=90?{bar:"bg-green-500",text:"text-green-600 dark:text-green-400"}:e>=50?{bar:"bg-orange-500",text:"text-orange-600 dark:text-orange-400"}:{bar:"bg-red-500",text:"text-red-600 dark:text-red-400"}}function Nt({item:e,delay:t=0}){let[n,s]=useState(0),d=Tt(e.value);return useEffect(()=>{let m=setTimeout(()=>{s(e.value);},t);return ()=>clearTimeout(m)},[e.value,t]),jsxs("div",{className:"space-y-2",children:[jsxs("div",{className:"flex justify-between items-center",children:[jsx("span",{className:"text-sm font-medium",children:e.label}),jsx("span",{className:b("text-2xl font-bold",d.text),children:Math.round(n)})]}),jsx("div",{className:"h-2 bg-secondary rounded-full overflow-hidden",children:jsx("div",{className:b("h-full rounded-full transition-all duration-1000 ease-out",d.bar),style:{width:`${n}%`}})}),e.description&&jsx("p",{className:"text-xs text-muted-foreground",children:e.description})]})}function De({items:e,title:t,subtitle:n,tabs:s,motion:d,className:m,...g}){var y;let u=h(),o=d?{...u.stats.motion,...d}:u.stats.motion,[c,i]=useState(0),r=ne==null?void 0:ne({motionType:o.type,duration:o.duration,delay:o.delay}),a=r?{}:{opacity:0,transform:o.type==="slideUp"?"translateY(32px)":"none",animation:`landing-metrics-enter ${o.duration}ms ${o.easing} ${o.delay}ms forwards`},l=s?s[c].items:e,p=t||n?{title:t!=null?t:"",subtitle:n}:void 0;return jsxs(b$1,{header:p,className:m,...g,children:[jsxs("div",{ref:r==null?void 0:r.ref,style:(y=r==null?void 0:r.style)!=null?y:a,className:"max-w-3xl mx-auto",children:[s&&s.length>1&&jsx("div",{className:"flex gap-2 mb-8 justify-center",children:s.map((f,S)=>jsx("button",{onClick:()=>i(S),className:b("px-4 py-2 rounded-lg text-sm font-medium transition-colors",c===S?"bg-primary text-primary-foreground":"bg-secondary text-secondary-foreground hover:bg-secondary/80"),children:f.label},S))}),jsx("div",{className:"space-y-6",children:l.map((f,S)=>jsx(Nt,{item:f,delay:S*100},S))})]}),jsx("style",{dangerouslySetInnerHTML:{__html:`
|
|
23
|
+
@keyframes landing-metrics-enter {
|
|
24
|
+
to { opacity: 1; transform: none; }
|
|
25
|
+
}
|
|
26
|
+
`}})]})}var ae;try{ae=a("@hua-labs/motion-core").useScrollReveal;}catch{}function ze({title:e="Get in Touch",subtitle:t,email:n,socialLinks:s,motion:d,className:m,...g}){var a;let u=h(),o=d?{...u.cta.motion,...d}:u.cta.motion,c=ae==null?void 0:ae({motionType:o.type,duration:o.duration,delay:o.delay}),i=c?{}:{opacity:0,transform:o.type==="slideUp"?"translateY(32px)":"none",animation:`landing-contact-enter ${o.duration}ms ${o.easing} ${o.delay}ms forwards`},r=e||t?{title:e!=null?e:"",subtitle:t}:void 0;return jsxs(b$1,{header:r,className:m,...g,children:[jsx(a$1,{size:"md",padding:"none",centered:true,children:jsxs("div",{ref:c==null?void 0:c.ref,style:(a=c==null?void 0:c.style)!=null?a:i,className:"text-center space-y-6",children:[n&&jsx("a",{href:`mailto:${n}`,className:"inline-block text-2xl sm:text-3xl font-bold text-primary hover:underline",children:n}),s&&s.length>0&&jsx("div",{className:"flex gap-4 justify-center",children:s.map((l$1,p)=>jsx("a",{href:l$1.href,target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-center w-12 h-12 rounded-full bg-secondary hover:bg-secondary/80 text-foreground transition-colors","aria-label":l$1.label,children:jsx(l,{name:l$1.icon,size:24})},p))})]})}),jsx("style",{dangerouslySetInnerHTML:{__html:`
|
|
27
|
+
@keyframes landing-contact-enter {
|
|
28
|
+
to { opacity: 1; transform: none; }
|
|
29
|
+
}
|
|
30
|
+
`}})]})}var Xr={Provider:ge,Hero:fe,Features:ye,Stats:be,CTA:he,Testimonials:Le,LogoCloud:Se,Showcase:Ne,About:ke,Projects:Ce,Skills:we,Experience:Ie,Metrics:De,Contact:ze};export{Xr as Landing,ke as LandingAbout,he as LandingCTA,ze as LandingContact,Ie as LandingExperience,ye as LandingFeatures,fe as LandingHero,Se as LandingLogoCloud,De as LandingMetrics,Ce as LandingProjects,ge as LandingProvider,Ne as LandingShowcase,we as LandingSkills,be as LandingStats,Le as LandingTestimonials,le as app,oe as corporate,Be as createLandingTheme,de as dashboard,ce as immersive,ie as marketing,me as portfolio,se as product,ue as resolveTheme,h as useLandingTheme};//# sourceMappingURL=landing.mjs.map
|
|
31
|
+
//# sourceMappingURL=landing.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/landing/themes/corporate.ts","../src/landing/themes/marketing.ts","../src/landing/themes/product.ts","../src/landing/themes/dashboard.ts","../src/landing/themes/app.ts","../src/landing/themes/immersive.ts","../src/landing/themes/portfolio.ts","../src/landing/themes/index.ts","../src/landing/LandingProvider.tsx","../src/landing/LandingHero.tsx","../src/landing/LandingFeatures.tsx","../src/landing/LandingStats.tsx","../src/landing/LandingCTA.tsx","../src/landing/LandingTestimonials.tsx","../src/landing/LandingLogoCloud.tsx","../src/landing/LandingShowcase.tsx","../src/landing/LandingAbout.tsx","../src/landing/LandingProjects.tsx","../src/landing/LandingSkills.tsx","../src/landing/LandingExperience.tsx","../src/landing/LandingMetrics.tsx","../src/landing/LandingContact.tsx","../src/landing/index.ts"],"names":["corporate","marketing","product","dashboard","app","immersive","portfolio","themeRegistry","resolveTheme","theme","createLandingTheme","base","overrides","baseTheme","LandingContext","createContext","useLandingTheme","ctx","useContext","buildCssVars","c","LandingProvider","children","resolved","useMemo","style","jsx","resolveMotion","themeMotion","override","getInitialTransform","type","LandingHero","title","subtitle","description","primaryAction","secondaryAction","sizeProp","bgProp","gradientColors","scrollIndicator","motionOverride","className","rest","size","bg","motion","contentStyle","jsxs","merge","AnimatedGradient","Container","useStagger","R","gridColsMap","renderCard","item","cardType","GlowCard","SpotlightCard","FeatureCard","LandingFeatures","items","columnsProp","cardProp","sectionProps","staggerDelayProp","decoratorProp","staggerDelay","decorator","columns","header","stagger","Section","i","parseStatValue","value","match","useCountUp","target","isVisible","duration","current","setCurrent","useState","rafRef","useRef","animate","useCallback","start","step","now","elapsed","progress","eased","useEffect","StatItemDisplay","numberSize","countUp","_a","_b","numeric","parsedPrefix","parsedSuffix","counted","displayPrefix","displaySuffix","displayValue","LandingStats","countUpProp","numberSizeProp","gridCols","useScrollReveal","LandingCTA","scrollReveal","fallbackStyle","TestimonialCard","Avatar","LandingTestimonials","variantProp","colsProp","autoPlay","interval","staggerProp","variant","Marquee","Carousel","cols","LandingLogoCloud","logos","speedProp","logoHeight","speed","logoElements","logo","img","LandingShowcase","isEven","LandingAbout","name","role","bio","avatar","socialLinks","link","Icon","TiltCard","mc","ProjectCard","Card","tag","LandingProjects","filter","selectedTag","setSelectedTag","allTags","tagSet","filteredItems","getBarColor","level","LandingSkills","ExperienceItem","LandingExperience","getMetricColor","MetricBar","delay","animatedValue","setAnimatedValue","color","timer","LandingMetrics","tabs","activeTab","setActiveTab","displayItems","tab","LandingContact","email","Landing"],"mappings":"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","file":"landing.mjs","sourcesContent":["import type { LandingTheme } from '../types'\n\nexport const corporate: LandingTheme = {\n name: 'corporate',\n colors: {\n background: '0 0% 100%',\n foreground: '222 47% 11%',\n muted: '210 40% 96%',\n mutedForeground: '215 16% 47%',\n primary: '217 91% 53%',\n primaryForeground: '0 0% 100%',\n secondary: '215 16% 93%',\n secondaryForeground: '222 47% 11%',\n card: '0 0% 100%',\n cardForeground: '222 47% 11%',\n border: '214 32% 91%',\n sectionAlt: '210 40% 98%',\n },\n hero: {\n background: 'gradient',\n size: 'xl',\n motion: { type: 'fadeIn', duration: 900, easing: 'ease-out', delay: 0 },\n },\n features: {\n card: 'spotlight',\n staggerDelay: 150,\n motion: { type: 'fadeIn', duration: 900, easing: 'ease-out', delay: 0 },\n decorator: true,\n },\n stats: {\n numberSize: 'text-4xl',\n countUp: false,\n staggerDelay: 150,\n motion: { type: 'fadeIn', duration: 900, easing: 'ease-out', delay: 0 },\n },\n cta: {\n background: 'gradient-soft',\n motion: { type: 'fadeIn', duration: 900, easing: 'ease-out', delay: 0 },\n },\n testimonials: {\n variant: 'grid',\n staggerDelay: 150,\n motion: { type: 'fadeIn', duration: 900, easing: 'ease-out', delay: 0 },\n },\n logoCloud: {\n variant: 'grid',\n speed: 40,\n },\n showcase: {\n staggerDelay: 150,\n motion: { type: 'fadeIn', duration: 900, easing: 'ease-out', delay: 0 },\n },\n}\n","import type { LandingTheme } from '../types'\n\nexport const marketing: LandingTheme = {\n name: 'marketing',\n colors: {\n background: '260 100% 4%',\n foreground: '0 0% 100%',\n muted: '270 30% 10%',\n mutedForeground: '240 4% 65%',\n primary: '258 90% 66%',\n primaryForeground: '0 0% 100%',\n secondary: '258 30% 15%',\n secondaryForeground: '0 0% 95%',\n card: '260 40% 10%',\n cardForeground: '0 0% 100%',\n border: '258 40% 20%',\n sectionAlt: '270 50% 6%',\n },\n hero: {\n background: 'animated-gradient',\n size: 'full',\n motion: { type: 'bounceIn', duration: 500, easing: 'cubic-bezier(0.34, 1.56, 0.64, 1)', delay: 0 },\n },\n features: {\n card: 'glow',\n staggerDelay: 80,\n motion: { type: 'bounceIn', duration: 500, easing: 'cubic-bezier(0.34, 1.56, 0.64, 1)', delay: 0 },\n decorator: false,\n },\n stats: {\n numberSize: 'text-5xl',\n countUp: true,\n staggerDelay: 80,\n motion: { type: 'bounceIn', duration: 500, easing: 'cubic-bezier(0.34, 1.56, 0.64, 1)', delay: 0 },\n },\n cta: {\n background: 'animated-gradient',\n motion: { type: 'bounceIn', duration: 500, easing: 'cubic-bezier(0.34, 1.56, 0.64, 1)', delay: 0 },\n },\n testimonials: {\n variant: 'carousel',\n staggerDelay: 80,\n motion: { type: 'bounceIn', duration: 500, easing: 'cubic-bezier(0.34, 1.56, 0.64, 1)', delay: 0 },\n },\n logoCloud: {\n variant: 'marquee',\n speed: 60,\n },\n showcase: {\n staggerDelay: 80,\n motion: { type: 'bounceIn', duration: 500, easing: 'cubic-bezier(0.34, 1.56, 0.64, 1)', delay: 0 },\n },\n}\n","import type { LandingTheme } from '../types'\n\nexport const product: LandingTheme = {\n name: 'product',\n colors: {\n background: '240 6% 4%',\n foreground: '0 0% 98%',\n muted: '240 5% 11%',\n mutedForeground: '240 4% 64%',\n primary: '188 96% 42%',\n primaryForeground: '0 0% 100%',\n secondary: '188 20% 12%',\n secondaryForeground: '0 0% 98%',\n card: '240 5% 10%',\n cardForeground: '0 0% 98%',\n border: '240 4% 16%',\n sectionAlt: '240 6% 7%',\n },\n hero: {\n background: 'dark',\n size: 'full',\n motion: { type: 'slideUp', duration: 700, easing: 'ease-in-out', delay: 0 },\n },\n features: {\n card: 'feature-glass',\n staggerDelay: 120,\n motion: { type: 'slideUp', duration: 700, easing: 'ease-in-out', delay: 0 },\n decorator: false,\n },\n stats: {\n numberSize: 'text-6xl',\n countUp: true,\n staggerDelay: 120,\n motion: { type: 'slideUp', duration: 700, easing: 'ease-in-out', delay: 0 },\n },\n cta: {\n background: 'dark',\n motion: { type: 'slideUp', duration: 700, easing: 'ease-in-out', delay: 0 },\n },\n testimonials: {\n variant: 'carousel',\n staggerDelay: 120,\n motion: { type: 'slideUp', duration: 700, easing: 'ease-in-out', delay: 0 },\n },\n logoCloud: {\n variant: 'marquee',\n speed: 40,\n },\n showcase: {\n staggerDelay: 120,\n motion: { type: 'slideUp', duration: 700, easing: 'ease-in-out', delay: 0 },\n },\n}\n","import type { LandingTheme } from '../types'\n\nexport const dashboard: LandingTheme = {\n name: 'dashboard',\n colors: {\n background: '222 47% 11%',\n foreground: '214 32% 91%',\n muted: '222 42% 16%',\n mutedForeground: '215 20% 65%',\n primary: '217 91% 60%',\n primaryForeground: '0 0% 100%',\n secondary: '217 30% 18%',\n secondaryForeground: '214 32% 91%',\n card: '222 47% 14%',\n cardForeground: '214 32% 91%',\n border: '217 30% 22%',\n sectionAlt: '222 42% 14%',\n },\n hero: {\n background: 'gradient',\n size: 'xl',\n motion: { type: 'fadeIn', duration: 650, easing: 'ease-out', delay: 0 },\n },\n features: {\n card: 'feature-glass',\n staggerDelay: 100,\n motion: { type: 'scaleIn', duration: 650, easing: 'ease-out', delay: 0 },\n decorator: false,\n },\n stats: {\n numberSize: 'text-4xl',\n countUp: true,\n staggerDelay: 100,\n motion: { type: 'fadeIn', duration: 650, easing: 'ease-out', delay: 0 },\n },\n cta: {\n background: 'gradient-soft',\n motion: { type: 'fadeIn', duration: 650, easing: 'ease-out', delay: 0 },\n },\n testimonials: {\n variant: 'grid',\n staggerDelay: 100,\n motion: { type: 'scaleIn', duration: 650, easing: 'ease-out', delay: 0 },\n },\n logoCloud: {\n variant: 'marquee',\n speed: 45,\n },\n showcase: {\n staggerDelay: 100,\n motion: { type: 'scaleIn', duration: 650, easing: 'ease-out', delay: 0 },\n },\n}\n","import type { LandingTheme } from '../types'\n\nexport const app: LandingTheme = {\n name: 'app',\n colors: {\n background: '0 0% 100%',\n foreground: '215 28% 17%',\n muted: '270 100% 96%',\n mutedForeground: '220 9% 46%',\n primary: '258 90% 66%',\n primaryForeground: '0 0% 100%',\n secondary: '258 20% 93%',\n secondaryForeground: '215 28% 17%',\n card: '0 0% 100%',\n cardForeground: '215 28% 17%',\n border: '220 13% 91%',\n sectionAlt: '270 100% 98%',\n },\n hero: {\n background: 'gradient',\n size: 'full',\n motion: { type: 'slideUp', duration: 600, easing: 'cubic-bezier(0.22, 1, 0.36, 1)', delay: 0 },\n },\n features: {\n card: 'feature-glass',\n staggerDelay: 120,\n motion: { type: 'slideUp', duration: 600, easing: 'cubic-bezier(0.22, 1, 0.36, 1)', delay: 0 },\n decorator: false,\n },\n stats: {\n numberSize: 'text-5xl',\n countUp: true,\n staggerDelay: 120,\n motion: { type: 'slideUp', duration: 600, easing: 'cubic-bezier(0.22, 1, 0.36, 1)', delay: 0 },\n },\n cta: {\n background: 'gradient-soft',\n motion: { type: 'bounceIn', duration: 500, easing: 'cubic-bezier(0.34, 1.56, 0.64, 1)', delay: 0 },\n },\n testimonials: {\n variant: 'carousel',\n staggerDelay: 120,\n motion: { type: 'slideUp', duration: 600, easing: 'cubic-bezier(0.22, 1, 0.36, 1)', delay: 0 },\n },\n logoCloud: {\n variant: 'marquee',\n speed: 50,\n },\n showcase: {\n staggerDelay: 120,\n motion: { type: 'slideUp', duration: 600, easing: 'cubic-bezier(0.22, 1, 0.36, 1)', delay: 0 },\n },\n}\n","import type { LandingTheme } from '../types'\n\nexport const immersive: LandingTheme = {\n name: 'immersive',\n colors: {\n background: '0 0% 0%',\n foreground: '0 0% 100%',\n muted: '0 0% 7%',\n mutedForeground: '0 0% 45%',\n primary: '252 92% 76%',\n primaryForeground: '0 0% 100%',\n secondary: '252 15% 12%',\n secondaryForeground: '0 0% 95%',\n card: '0 0% 5%',\n cardForeground: '0 0% 100%',\n border: '0 0% 10%',\n sectionAlt: '0 0% 4%',\n },\n hero: {\n background: 'dark',\n size: 'full',\n motion: { type: 'fadeIn', duration: 1200, easing: 'cubic-bezier(0.16, 1, 0.3, 1)', delay: 0 },\n },\n features: {\n card: 'glow',\n staggerDelay: 200,\n motion: { type: 'slideUp', duration: 900, easing: 'cubic-bezier(0.16, 1, 0.3, 1)', delay: 0 },\n decorator: false,\n },\n stats: {\n numberSize: 'text-6xl',\n countUp: true,\n staggerDelay: 200,\n motion: { type: 'fadeIn', duration: 1200, easing: 'cubic-bezier(0.16, 1, 0.3, 1)', delay: 0 },\n },\n cta: {\n background: 'dark',\n motion: { type: 'fadeIn', duration: 1200, easing: 'cubic-bezier(0.16, 1, 0.3, 1)', delay: 0 },\n },\n testimonials: {\n variant: 'marquee',\n staggerDelay: 200,\n motion: { type: 'fadeIn', duration: 1200, easing: 'cubic-bezier(0.16, 1, 0.3, 1)', delay: 0 },\n },\n logoCloud: {\n variant: 'marquee',\n speed: 30,\n },\n showcase: {\n staggerDelay: 200,\n motion: { type: 'slideUp', duration: 900, easing: 'cubic-bezier(0.16, 1, 0.3, 1)', delay: 0 },\n },\n}\n","import type { LandingTheme } from '../types'\n\nexport const portfolio: LandingTheme = {\n name: 'portfolio',\n colors: {\n background: '0 0% 4%',\n foreground: '0 0% 98%',\n muted: '0 0% 10%',\n mutedForeground: '0 0% 64%',\n primary: '25 95% 53%',\n primaryForeground: '0 0% 100%',\n secondary: '25 20% 12%',\n secondaryForeground: '0 0% 98%',\n card: '0 0% 8%',\n cardForeground: '0 0% 98%',\n border: '25 30% 15%',\n sectionAlt: '0 0% 6%',\n },\n hero: {\n background: 'dark',\n size: 'full',\n motion: { type: 'slideUp', duration: 800, easing: 'cubic-bezier(0.22, 1, 0.36, 1)', delay: 0 },\n },\n features: {\n card: 'feature-glass',\n staggerDelay: 100,\n motion: { type: 'slideUp', duration: 700, easing: 'cubic-bezier(0.22, 1, 0.36, 1)', delay: 0 },\n decorator: false,\n },\n stats: {\n numberSize: 'text-5xl',\n countUp: true,\n staggerDelay: 100,\n motion: { type: 'slideUp', duration: 700, easing: 'cubic-bezier(0.22, 1, 0.36, 1)', delay: 0 },\n },\n cta: {\n background: 'dark',\n motion: { type: 'slideUp', duration: 700, easing: 'cubic-bezier(0.22, 1, 0.36, 1)', delay: 0 },\n },\n testimonials: {\n variant: 'grid',\n staggerDelay: 100,\n motion: { type: 'slideUp', duration: 700, easing: 'cubic-bezier(0.22, 1, 0.36, 1)', delay: 0 },\n },\n logoCloud: {\n variant: 'grid',\n speed: 40,\n },\n showcase: {\n staggerDelay: 100,\n motion: { type: 'slideUp', duration: 700, easing: 'cubic-bezier(0.22, 1, 0.36, 1)', delay: 0 },\n },\n}\n","import type { LandingTheme, LandingThemeName, DeepPartial } from '../types'\nimport { corporate } from './corporate'\nimport { marketing } from './marketing'\nimport { product } from './product'\nimport { dashboard } from './dashboard'\nimport { app } from './app'\nimport { immersive } from './immersive'\nimport { portfolio } from './portfolio'\n\nconst themeRegistry: Record<LandingThemeName, LandingTheme> = {\n corporate,\n marketing,\n product,\n dashboard,\n app,\n immersive,\n portfolio,\n}\n\nexport function resolveTheme(theme: LandingThemeName | LandingTheme): LandingTheme {\n if (typeof theme === 'string') {\n return themeRegistry[theme]\n }\n return theme\n}\n\n/** 기존 테마를 기반으로 커스텀 테마 생성 */\nexport function createLandingTheme(\n base: LandingThemeName,\n overrides: DeepPartial<Omit<LandingTheme, 'name'>> & { name: string }\n): LandingTheme {\n const baseTheme = themeRegistry[base]\n return {\n ...baseTheme,\n name: overrides.name as LandingThemeName,\n colors: { ...baseTheme.colors, ...overrides.colors },\n hero: { ...baseTheme.hero, ...overrides.hero },\n features: { ...baseTheme.features, ...overrides.features },\n stats: { ...baseTheme.stats, ...overrides.stats },\n cta: { ...baseTheme.cta, ...overrides.cta },\n testimonials: { ...baseTheme.testimonials, ...overrides.testimonials },\n logoCloud: { ...baseTheme.logoCloud, ...overrides.logoCloud },\n showcase: { ...baseTheme.showcase, ...overrides.showcase },\n } as LandingTheme\n}\n\nexport { corporate, marketing, product, dashboard, app, immersive, portfolio }\n","\"use client\"\n\nimport React, { createContext, useContext, useMemo } from 'react'\nimport { resolveTheme } from './themes'\nimport type { LandingProviderProps, LandingTheme, LandingColorTokens } from './types'\n\nconst LandingContext = createContext<LandingTheme | null>(null)\n\nexport function useLandingTheme(): LandingTheme {\n const ctx = useContext(LandingContext)\n if (!ctx) {\n throw new Error('useLandingTheme must be used within <Landing.Provider>')\n }\n return ctx\n}\n\nfunction buildCssVars(c: LandingColorTokens): React.CSSProperties {\n return {\n // Tailwind v4 @theme vars (--color-*)\n '--color-primary': `hsl(${c.primary})`,\n '--color-primary-foreground': `hsl(${c.primaryForeground})`,\n '--color-background': `hsl(${c.background})`,\n '--color-foreground': `hsl(${c.foreground})`,\n '--color-muted': `hsl(${c.muted})`,\n '--color-muted-foreground': `hsl(${c.mutedForeground})`,\n '--color-secondary': `hsl(${c.secondary})`,\n '--color-secondary-foreground': `hsl(${c.secondaryForeground})`,\n '--color-card': `hsl(${c.card})`,\n '--color-card-foreground': `hsl(${c.cardForeground})`,\n '--color-border': `hsl(${c.border})`,\n '--color-input': `hsl(${c.border})`,\n '--color-ring': `hsl(${c.primary})`,\n // Legacy hsl(var(--*)) pattern vars\n '--primary': c.primary,\n '--primary-foreground': c.primaryForeground,\n '--background': c.background,\n '--foreground': c.foreground,\n '--muted': c.muted,\n '--muted-foreground': c.mutedForeground,\n '--secondary': c.secondary,\n '--secondary-foreground': c.secondaryForeground,\n '--card': c.card,\n '--card-foreground': c.cardForeground,\n '--border': c.border,\n '--input': c.border,\n '--ring': c.primary,\n // Landing-specific\n '--landing-section-alt': `hsl(${c.sectionAlt})`,\n } as React.CSSProperties\n}\n\nexport function LandingProvider({ theme, children }: LandingProviderProps) {\n const resolved = useMemo(() => resolveTheme(theme), [theme])\n\n const style = useMemo<React.CSSProperties>(() => ({\n backgroundColor: `hsl(${resolved.colors.background})`,\n color: `hsl(${resolved.colors.foreground})`,\n ...buildCssVars(resolved.colors),\n }), [resolved.colors])\n\n return (\n <LandingContext.Provider value={resolved}>\n <div style={style}>\n {children}\n </div>\n </LandingContext.Provider>\n )\n}\n","\"use client\"\n\nimport React, { useMemo } from 'react'\nimport { merge } from '../lib/utils'\nimport { Container } from '../components/Container'\nimport { AnimatedGradient } from '../components/advanced/AnimatedGradient'\nimport { useLandingTheme } from './LandingProvider'\nimport type { LandingHeroProps, LandingMotionOverride } from './types'\n\nfunction resolveMotion(\n themeMotion: Required<LandingMotionOverride>,\n override?: LandingMotionOverride\n): Required<LandingMotionOverride> {\n if (!override) return themeMotion\n return { ...themeMotion, ...override }\n}\n\nfunction getInitialTransform(type: string): string {\n switch (type) {\n case 'slideUp': return 'translateY(32px)'\n case 'slideLeft': return 'translateX(-32px)'\n case 'slideRight': return 'translateX(32px)'\n case 'scaleIn': return 'scale(0.95)'\n case 'bounceIn': return 'scale(0.75)'\n default: return 'none'\n }\n}\n\nexport function LandingHero({\n title,\n subtitle,\n description,\n primaryAction,\n secondaryAction,\n size: sizeProp,\n background: bgProp,\n gradientColors,\n scrollIndicator = false,\n motion: motionOverride,\n className,\n ...rest\n}: LandingHeroProps) {\n const theme = useLandingTheme()\n const size = sizeProp ?? theme.hero.size\n const bg = bgProp ?? theme.hero.background\n const motion = resolveMotion(theme.hero.motion, motionOverride)\n\n const contentStyle = useMemo<React.CSSProperties>(() => ({\n opacity: 0,\n transform: getInitialTransform(motion.type),\n animation: `landing-hero-enter ${motion.duration}ms ${motion.easing} ${motion.delay}ms forwards`,\n }), [motion])\n\n return (\n <section\n className={merge(\n \"relative overflow-hidden flex items-center justify-center\",\n size === 'full' ? 'min-h-screen' : 'py-28 sm:py-36',\n bg === 'dark' && 'bg-gray-950 text-white',\n className\n )}\n {...rest}\n >\n {/* Background layer */}\n {bg === 'gradient' && (\n <div className=\"absolute inset-0 gradient-bg-soft\" aria-hidden=\"true\" />\n )}\n {bg === 'animated-gradient' && (\n <AnimatedGradient\n colors={gradientColors}\n type=\"mesh\"\n className=\"absolute inset-0 -z-0\"\n aria-hidden=\"true\"\n />\n )}\n {bg === 'dark' && (\n <div\n className=\"absolute inset-0\"\n style={{\n background: 'radial-gradient(ellipse 80% 60% at 50% 40%, rgba(120, 119, 198, 0.08), transparent)',\n }}\n aria-hidden=\"true\"\n />\n )}\n\n {/* Content */}\n <Container size=\"lg\" padding=\"none\" centered className=\"relative z-10 px-6\">\n <div style={contentStyle} className=\"text-center max-w-4xl mx-auto\">\n <h1 className=\"text-4xl sm:text-5xl md:text-6xl lg:text-7xl font-extrabold tracking-tight mb-6\">\n {title}\n </h1>\n\n {subtitle && (\n <p className=\"text-xl sm:text-2xl text-muted-foreground mb-4\">\n {subtitle}\n </p>\n )}\n\n {description && (\n <p className=\"text-base sm:text-lg text-muted-foreground/80 max-w-2xl mx-auto mb-8\">\n {description}\n </p>\n )}\n\n {(primaryAction || secondaryAction) && (\n <div className=\"flex flex-col sm:flex-row items-center justify-center gap-4\">\n {primaryAction}\n {secondaryAction}\n </div>\n )}\n </div>\n </Container>\n\n {/* Scroll indicator */}\n {scrollIndicator && (\n <div className=\"absolute bottom-8 left-1/2 -translate-x-1/2 animate-bounce\" aria-hidden=\"true\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" className=\"text-muted-foreground\">\n <path d=\"M12 5v14M5 12l7 7 7-7\" />\n </svg>\n </div>\n )}\n\n {/* Keyframe injection */}\n <style dangerouslySetInnerHTML={{ __html: `\n @keyframes landing-hero-enter {\n to { opacity: 1; transform: none; }\n }\n `}} />\n </section>\n )\n}\n","\"use client\"\n\nimport React from 'react'\nimport { merge } from '../lib/utils'\nimport { Section } from '../components/Section'\nimport { GlowCard } from '../components/advanced/GlowCard'\nimport { SpotlightCard } from '../components/advanced/SpotlightCard'\nimport { FeatureCard } from '../components/FeatureCard'\nimport { useLandingTheme } from './LandingProvider'\nimport type { LandingFeaturesProps, LandingFeatureItem, LandingTheme } from './types'\n\n// motion-core optional peer — inline types to avoid DTS resolution\ninterface StaggerResult {\n containerRef: React.RefObject<HTMLDivElement | null>\n styles: React.CSSProperties[]\n isVisible: boolean\n}\n\ninterface StaggerOptions {\n count: number\n staggerDelay?: number\n duration?: number\n motionType?: string\n easing?: string\n}\n\nlet useStagger: ((opts: StaggerOptions) => StaggerResult) | undefined\ntry {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n useStagger = require('@hua-labs/motion-core').useStagger\n} catch {\n // motion-core 없으면 stagger 없이 정적 렌더링\n}\n\nconst gridColsMap = {\n 2: 'grid-cols-1 md:grid-cols-2',\n 3: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3',\n 4: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-4',\n} as const\n\nfunction renderCard(\n item: LandingFeatureItem,\n cardType: LandingTheme['features']['card'],\n style?: React.CSSProperties\n) {\n switch (cardType) {\n case 'glow':\n return (\n <GlowCard style={style} className=\"p-6\">\n {item.icon && <div className=\"text-4xl mb-4\">{item.icon}</div>}\n <h3 className=\"text-xl font-bold mb-2\">{item.title}</h3>\n <p className=\"text-muted-foreground text-sm\">{item.description}</p>\n </GlowCard>\n )\n case 'spotlight':\n return (\n <SpotlightCard style={style} className=\"p-6\">\n {item.icon && <div className=\"text-4xl mb-4\">{item.icon}</div>}\n <h3 className=\"text-xl font-bold mb-2\">{item.title}</h3>\n <p className=\"text-muted-foreground text-sm\">{item.description}</p>\n </SpotlightCard>\n )\n case 'feature-glass':\n default:\n return (\n <FeatureCard\n style={style}\n icon={undefined}\n title={item.title}\n description={item.description}\n variant=\"glass\"\n hover=\"slide\"\n >\n {item.icon && <div className=\"text-4xl mb-4\">{item.icon}</div>}\n </FeatureCard>\n )\n }\n}\n\nexport function LandingFeatures({\n items,\n title,\n subtitle,\n columns: columnsProp,\n card: cardProp,\n sectionProps,\n motion: motionOverride,\n staggerDelay: staggerDelayProp,\n decorator: decoratorProp,\n className,\n ...rest\n}: LandingFeaturesProps) {\n const theme = useLandingTheme()\n const cardType = cardProp ?? theme.features.card\n const staggerDelay = staggerDelayProp ?? theme.features.staggerDelay\n const decorator = decoratorProp ?? theme.features.decorator\n const motion = motionOverride\n ? { ...theme.features.motion, ...motionOverride }\n : theme.features.motion\n\n const columns = columnsProp ?? (items.length <= 2 ? 2 : items.length <= 3 ? 3 : 4) as 2 | 3 | 4\n\n const header = (title || subtitle) ? { title: title ?? '', subtitle, decorator } : undefined\n\n // useStagger if available\n const stagger = useStagger?.({\n count: items.length,\n staggerDelay,\n duration: motion.duration,\n motionType: motion.type as 'fadeIn' | 'slideUp' | 'bounceIn',\n easing: motion.easing,\n })\n\n return (\n <Section\n header={header}\n spacing=\"lg\"\n {...sectionProps}\n className={merge(className)}\n {...rest}\n >\n <div\n ref={stagger?.containerRef}\n className={merge(\"grid gap-6 lg:gap-8\", gridColsMap[columns])}\n >\n {items.map((item, i) => (\n <div key={i}>\n {renderCard(item, cardType, stagger?.styles[i])}\n </div>\n ))}\n </div>\n </Section>\n )\n}\n","\"use client\"\n\nimport React, { useState, useEffect, useRef, useCallback } from 'react'\nimport { merge } from '../lib/utils'\nimport { Section } from '../components/Section'\nimport { useLandingTheme } from './LandingProvider'\nimport type { LandingStatsProps, LandingStatItem } from './types'\n\ninterface StaggerResult {\n containerRef: React.RefObject<HTMLDivElement | null>\n styles: React.CSSProperties[]\n isVisible: boolean\n}\n\ninterface StaggerOptions {\n count: number\n staggerDelay?: number\n duration?: number\n motionType?: string\n easing?: string\n}\n\nlet useStagger: ((opts: StaggerOptions) => StaggerResult) | undefined\ntry {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n useStagger = require('@hua-labs/motion-core').useStagger\n} catch {\n // motion-core unavailable\n}\n\n// ── Count-up hook ───────────────────────────────\n\nfunction parseStatValue(value: string): { numeric: number; prefix: string; suffix: string } {\n const match = value.match(/^([^0-9]*)([0-9]+(?:\\.[0-9]+)?)(.*)$/)\n if (!match) return { numeric: 0, prefix: '', suffix: value }\n return {\n prefix: match[1],\n numeric: parseFloat(match[2]),\n suffix: match[3],\n }\n}\n\nfunction useCountUp(target: number, isVisible: boolean, duration = 1500): number {\n const [current, setCurrent] = useState(0)\n const rafRef = useRef<number>(0)\n\n const animate = useCallback(() => {\n const start = performance.now()\n const step = (now: number) => {\n const elapsed = now - start\n const progress = Math.min(elapsed / duration, 1)\n // easeOutQuart\n const eased = 1 - Math.pow(1 - progress, 4)\n setCurrent(eased * target)\n if (progress < 1) {\n rafRef.current = requestAnimationFrame(step)\n }\n }\n rafRef.current = requestAnimationFrame(step)\n }, [target, duration])\n\n useEffect(() => {\n if (!isVisible) return\n animate()\n return () => {\n if (rafRef.current) cancelAnimationFrame(rafRef.current)\n }\n }, [isVisible, animate])\n\n return current\n}\n\n// ── StatItem component ──────────────────────────\n\nfunction StatItemDisplay({\n item,\n numberSize,\n countUp,\n isVisible,\n style,\n}: {\n item: LandingStatItem\n numberSize: string\n countUp: boolean\n isVisible: boolean\n style?: React.CSSProperties\n}) {\n const { numeric, prefix: parsedPrefix, suffix: parsedSuffix } = parseStatValue(item.value)\n const counted = useCountUp(numeric, countUp && isVisible)\n\n const displayPrefix = item.prefix ?? parsedPrefix\n const displaySuffix = item.suffix ?? parsedSuffix\n const displayValue = countUp\n ? `${displayPrefix}${Number.isInteger(numeric) ? Math.round(counted) : counted.toFixed(1)}${displaySuffix}`\n : item.value\n\n return (\n <div className=\"text-center\" style={style}>\n <div className={merge(\"font-extrabold stat-number\", numberSize)}>\n {displayValue}\n </div>\n <div className=\"text-muted-foreground mt-2 text-sm sm:text-base\">\n {item.label}\n </div>\n </div>\n )\n}\n\n// ── LandingStats ────────────────────────────────\n\nexport function LandingStats({\n items,\n title,\n subtitle,\n countUp: countUpProp,\n numberSize: numberSizeProp,\n sectionProps,\n motion: motionOverride,\n staggerDelay: staggerDelayProp,\n className,\n ...rest\n}: LandingStatsProps) {\n const theme = useLandingTheme()\n const countUp = countUpProp ?? theme.stats.countUp\n const numberSize = numberSizeProp ?? theme.stats.numberSize\n const staggerDelay = staggerDelayProp ?? theme.stats.staggerDelay\n const motion = motionOverride\n ? { ...theme.stats.motion, ...motionOverride }\n : theme.stats.motion\n\n const header = (title || subtitle) ? { title: title ?? '', subtitle, decorator: false } : undefined\n\n const stagger = useStagger?.({\n count: items.length,\n staggerDelay,\n duration: motion.duration,\n motionType: motion.type as 'fadeIn' | 'slideUp' | 'bounceIn',\n easing: motion.easing,\n })\n\n const gridCols = items.length <= 2\n ? 'grid-cols-1 sm:grid-cols-2'\n : items.length <= 3\n ? 'grid-cols-1 sm:grid-cols-3'\n : 'grid-cols-2 sm:grid-cols-4'\n\n return (\n <Section\n header={header}\n spacing=\"lg\"\n {...sectionProps}\n className={merge(className)}\n {...rest}\n >\n <div\n ref={stagger?.containerRef}\n className={merge(\"grid gap-8 lg:gap-12\", gridCols)}\n >\n {items.map((item, i) => (\n <StatItemDisplay\n key={i}\n item={item}\n numberSize={numberSize}\n countUp={countUp}\n isVisible={stagger?.isVisible ?? true}\n style={stagger?.styles[i]}\n />\n ))}\n </div>\n </Section>\n )\n}\n","\"use client\"\n\nimport React, { useMemo } from 'react'\nimport { merge } from '../lib/utils'\nimport { Container } from '../components/Container'\nimport { AnimatedGradient } from '../components/advanced/AnimatedGradient'\nimport { useLandingTheme } from './LandingProvider'\nimport type { LandingCTAProps, LandingMotionOverride } from './types'\n\nfunction getInitialTransform(type: string): string {\n switch (type) {\n case 'slideUp': return 'translateY(32px)'\n case 'slideLeft': return 'translateX(-32px)'\n case 'slideRight': return 'translateX(32px)'\n case 'scaleIn': return 'scale(0.95)'\n case 'bounceIn': return 'scale(0.75)'\n default: return 'none'\n }\n}\n\ninterface ScrollRevealResult {\n ref: React.RefObject<HTMLElement | null>\n style: React.CSSProperties\n isVisible: boolean\n}\n\ninterface ScrollRevealOptions {\n motionType?: string\n duration?: number\n delay?: number\n}\n\nlet useScrollReveal: ((opts: ScrollRevealOptions) => ScrollRevealResult) | undefined\ntry {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n useScrollReveal = require('@hua-labs/motion-core').useScrollReveal\n} catch {\n // motion-core unavailable\n}\n\nexport function LandingCTA({\n title,\n subtitle,\n primaryAction,\n secondaryAction,\n background: bgProp,\n gradientColors,\n motion: motionOverride,\n className,\n ...rest\n}: LandingCTAProps) {\n const theme = useLandingTheme()\n const bg = bgProp ?? theme.cta.background\n const motion: Required<LandingMotionOverride> = motionOverride\n ? { ...theme.cta.motion, ...motionOverride }\n : theme.cta.motion\n\n const scrollReveal = useScrollReveal?.({\n motionType: motion.type as 'fadeIn' | 'slideUp' | 'bounceIn',\n duration: motion.duration,\n delay: motion.delay,\n })\n\n const fallbackStyle = useMemo<React.CSSProperties>(() => {\n if (scrollReveal) return {}\n return {\n opacity: 0,\n transform: getInitialTransform(motion.type),\n animation: `landing-cta-enter ${motion.duration}ms ${motion.easing} ${motion.delay}ms forwards`,\n }\n }, [scrollReveal, motion])\n\n return (\n <section\n className={merge(\n \"relative overflow-hidden py-20 sm:py-28\",\n bg === 'dark' && 'bg-gray-950 text-white',\n className\n )}\n {...rest}\n >\n {/* Background */}\n {bg === 'gradient-soft' && (\n <div className=\"absolute inset-0 gradient-bg-soft\" aria-hidden=\"true\" />\n )}\n {bg === 'animated-gradient' && (\n <AnimatedGradient\n colors={gradientColors}\n type=\"mesh\"\n className=\"absolute inset-0 -z-0\"\n aria-hidden=\"true\"\n />\n )}\n {bg === 'dark' && (\n <div\n className=\"absolute inset-0\"\n style={{\n background: 'radial-gradient(ellipse 80% 60% at 50% 40%, rgba(120, 119, 198, 0.08), transparent)',\n }}\n aria-hidden=\"true\"\n />\n )}\n\n <Container size=\"md\" padding=\"none\" centered className=\"relative z-10 px-6\">\n <div\n ref={scrollReveal?.ref as React.Ref<HTMLDivElement>}\n style={scrollReveal?.style ?? fallbackStyle}\n className=\"text-center\"\n >\n <h2 className=\"text-3xl sm:text-4xl md:text-5xl font-extrabold mb-4\">\n {title}\n </h2>\n\n {subtitle && (\n <p className=\"text-lg text-muted-foreground max-w-2xl mx-auto mb-8\">\n {subtitle}\n </p>\n )}\n\n {(primaryAction || secondaryAction) && (\n <div className=\"flex flex-col sm:flex-row items-center justify-center gap-4\">\n {primaryAction}\n {secondaryAction}\n </div>\n )}\n </div>\n </Container>\n\n <style dangerouslySetInnerHTML={{ __html: `\n @keyframes landing-cta-enter {\n to { opacity: 1; transform: none; }\n }\n `}} />\n </section>\n )\n}\n","\"use client\"\n\nimport React from 'react'\nimport { merge } from '../lib/utils'\nimport { Section } from '../components/Section'\nimport { Carousel } from '../components/advanced/Carousel'\nimport { Marquee } from '../components/advanced/Marquee'\nimport { Avatar } from '../components/Avatar'\nimport { useLandingTheme } from './LandingProvider'\nimport type { LandingTestimonialsProps, LandingTestimonialItem, LandingMotionOverride } from './types'\n\ninterface StaggerResult {\n containerRef: React.RefObject<HTMLDivElement | null>\n styles: React.CSSProperties[]\n isVisible: boolean\n}\ninterface StaggerOptions {\n count: number\n staggerDelay?: number\n duration?: number\n motionType?: string\n easing?: string\n}\n\nlet useStagger: ((opts: StaggerOptions) => StaggerResult) | undefined\ntry {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n useStagger = require('@hua-labs/motion-core').useStagger\n} catch {\n // motion-core unavailable\n}\n\nfunction TestimonialCard({ item, style }: { item: LandingTestimonialItem; style?: React.CSSProperties }) {\n return (\n <div\n className=\"bg-card/50 backdrop-blur-sm border border-border/30 rounded-xl p-6 flex flex-col gap-4\"\n style={style}\n >\n <blockquote className=\"text-foreground/90 leading-relaxed flex-1\">\n “{item.quote}”\n </blockquote>\n <div className=\"flex items-center gap-3\">\n {item.avatar && (\n <Avatar size=\"sm\" src={item.avatar} alt={item.author} />\n )}\n <div>\n <p className=\"font-semibold text-sm\">{item.author}</p>\n {(item.role || item.company) && (\n <p className=\"text-xs text-muted-foreground\">\n {item.role}{item.role && item.company && ', '}{item.company}\n </p>\n )}\n </div>\n </div>\n </div>\n )\n}\n\nconst gridColsMap = {\n 2: 'md:grid-cols-2',\n 3: 'md:grid-cols-2 lg:grid-cols-3',\n} as const\n\nexport function LandingTestimonials({\n items,\n title,\n subtitle,\n variant: variantProp,\n columns: colsProp,\n autoPlay = true,\n interval = 5000,\n motion: motionOverride,\n staggerDelay: staggerProp,\n className,\n ...rest\n}: LandingTestimonialsProps) {\n const theme = useLandingTheme()\n const variant = variantProp ?? theme.testimonials.variant\n const motion: Required<LandingMotionOverride> = motionOverride\n ? { ...theme.testimonials.motion, ...motionOverride }\n : theme.testimonials.motion\n const staggerDelay = staggerProp ?? theme.testimonials.staggerDelay\n\n const stagger = useStagger?.({\n count: items.length,\n staggerDelay,\n duration: motion.duration,\n motionType: motion.type,\n easing: motion.easing,\n })\n\n const header = (title || subtitle)\n ? { title: title ?? '', subtitle }\n : undefined\n\n if (variant === 'marquee') {\n return (\n <Section header={header} className={className} {...rest}>\n <Marquee speed={50} pauseOnHover gradient>\n {items.map((item, i) => (\n <div key={i} className=\"w-80 shrink-0\">\n <TestimonialCard item={item} />\n </div>\n ))}\n </Marquee>\n </Section>\n )\n }\n\n if (variant === 'carousel') {\n return (\n <Section header={header} className={className} {...rest}>\n <Carousel\n autoPlay={autoPlay}\n interval={interval}\n loop\n transition=\"fade\"\n indicators=\"dots\"\n >\n {items.map((item, i) => (\n <div key={i} className=\"flex justify-center px-4\">\n <div className=\"max-w-2xl w-full\">\n <TestimonialCard item={item} />\n </div>\n </div>\n ))}\n </Carousel>\n </Section>\n )\n }\n\n // grid variant\n const cols = colsProp ?? (items.length <= 2 ? 2 : 3) as 2 | 3\n return (\n <Section header={header} className={className} {...rest}>\n <div\n ref={stagger?.containerRef}\n className={merge(\"grid gap-6\", gridColsMap[cols])}\n >\n {items.map((item, i) => (\n <TestimonialCard\n key={i}\n item={item}\n style={stagger?.styles[i]}\n />\n ))}\n </div>\n </Section>\n )\n}\n","\"use client\"\n\nimport React, { useMemo } from 'react'\nimport { merge } from '../lib/utils'\nimport { Section } from '../components/Section'\nimport { Marquee } from '../components/advanced/Marquee'\nimport { useLandingTheme } from './LandingProvider'\nimport type { LandingLogoCloudProps, LandingMotionOverride } from './types'\n\nfunction getInitialTransform(type: string): string {\n switch (type) {\n case 'slideUp': return 'translateY(32px)'\n case 'slideLeft': return 'translateX(-32px)'\n case 'slideRight': return 'translateX(32px)'\n case 'scaleIn': return 'scale(0.95)'\n case 'bounceIn': return 'scale(0.75)'\n default: return 'none'\n }\n}\n\ninterface ScrollRevealResult {\n ref: React.RefObject<HTMLElement | null>\n style: React.CSSProperties\n isVisible: boolean\n}\ninterface ScrollRevealOptions {\n motionType?: string\n duration?: number\n delay?: number\n}\n\nlet useScrollReveal: ((opts: ScrollRevealOptions) => ScrollRevealResult) | undefined\ntry {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n useScrollReveal = require('@hua-labs/motion-core').useScrollReveal\n} catch {\n // motion-core unavailable\n}\n\nexport function LandingLogoCloud({\n logos,\n title,\n variant: variantProp,\n speed: speedProp,\n logoHeight = 40,\n motion: motionOverride,\n className,\n ...rest\n}: LandingLogoCloudProps) {\n const theme = useLandingTheme()\n const variant = variantProp ?? theme.logoCloud.variant\n const speed = speedProp ?? theme.logoCloud.speed\n\n // fadeIn motion for the section entrance\n const motion: Required<LandingMotionOverride> = motionOverride\n ? { ...theme.features.motion, ...motionOverride }\n : { type: 'fadeIn', duration: 800, easing: 'ease-out', delay: 0 }\n\n const scrollReveal = useScrollReveal?.({\n motionType: motion.type,\n duration: motion.duration,\n delay: motion.delay,\n })\n\n const fallbackStyle = useMemo<React.CSSProperties>(() => {\n if (scrollReveal) return {}\n return {\n opacity: 0,\n transform: getInitialTransform(motion.type),\n animation: `landing-logocloud-enter ${motion.duration}ms ${motion.easing} ${motion.delay}ms forwards`,\n }\n }, [scrollReveal, motion])\n\n const logoElements = logos.map((logo, i) => {\n const img = (\n <img\n key={i}\n src={logo.src}\n alt={logo.alt}\n className=\"object-contain opacity-60 hover:opacity-100 transition-opacity grayscale hover:grayscale-0\"\n style={{ height: logoHeight, width: 'auto' }}\n />\n )\n if (logo.href) {\n return (\n <a key={i} href={logo.href} target=\"_blank\" rel=\"noopener noreferrer\" className=\"inline-flex\">\n {img}\n </a>\n )\n }\n return img\n })\n\n const header = title ? { title, subtitle: undefined } : undefined\n\n return (\n <Section header={header} spacing=\"sm\" className={merge(\"py-12 sm:py-16\", className)} {...rest}>\n <div\n ref={scrollReveal?.ref as React.Ref<HTMLDivElement>}\n style={scrollReveal?.style ?? fallbackStyle}\n >\n {variant === 'marquee' ? (\n <Marquee speed={speed} pauseOnHover gradient gap={48}>\n {logoElements}\n </Marquee>\n ) : (\n <div className=\"flex flex-wrap items-center justify-center gap-8 sm:gap-12\">\n {logoElements}\n </div>\n )}\n </div>\n\n <style dangerouslySetInnerHTML={{ __html: `\n @keyframes landing-logocloud-enter {\n to { opacity: 1; transform: none; }\n }\n `}} />\n </Section>\n )\n}\n","\"use client\"\n\nimport React from 'react'\nimport { merge } from '../lib/utils'\nimport { Section } from '../components/Section'\nimport { Container } from '../components/Container'\nimport { useLandingTheme } from './LandingProvider'\nimport type { LandingShowcaseProps, LandingMotionOverride } from './types'\n\ninterface StaggerResult {\n containerRef: React.RefObject<HTMLDivElement | null>\n styles: React.CSSProperties[]\n isVisible: boolean\n}\ninterface StaggerOptions {\n count: number\n staggerDelay?: number\n duration?: number\n motionType?: string\n easing?: string\n}\n\nlet useStagger: ((opts: StaggerOptions) => StaggerResult) | undefined\ntry {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n useStagger = require('@hua-labs/motion-core').useStagger\n} catch {\n // motion-core unavailable\n}\n\nexport function LandingShowcase({\n items,\n title,\n subtitle,\n motion: motionOverride,\n staggerDelay: staggerProp,\n className,\n ...rest\n}: LandingShowcaseProps) {\n const theme = useLandingTheme()\n const motion: Required<LandingMotionOverride> = motionOverride\n ? { ...theme.showcase.motion, ...motionOverride }\n : theme.showcase.motion\n const staggerDelay = staggerProp ?? theme.showcase.staggerDelay\n\n const stagger = useStagger?.({\n count: items.length,\n staggerDelay,\n duration: motion.duration,\n motionType: motion.type,\n easing: motion.easing,\n })\n\n const header = (title || subtitle)\n ? { title: title ?? '', subtitle }\n : undefined\n\n return (\n <Section header={header} className={className} {...rest}>\n <div ref={stagger?.containerRef} className=\"space-y-16 sm:space-y-24\">\n {items.map((item, i) => {\n const isEven = i % 2 === 0\n return (\n <Container key={i} size=\"lg\" padding=\"none\" className=\"px-4\">\n <div\n className={merge(\n \"flex flex-col gap-8 items-center\",\n isEven ? \"md:flex-row\" : \"md:flex-row-reverse\"\n )}\n style={stagger?.styles[i]}\n >\n {/* Image */}\n <div className=\"flex-1 w-full\">\n <div className=\"relative overflow-hidden rounded-xl border border-border/30 shadow-lg\">\n <img\n src={item.image}\n alt={item.title}\n className=\"w-full h-auto object-cover\"\n />\n <div className=\"absolute inset-0 bg-gradient-to-t from-black/20 to-transparent pointer-events-none\" />\n </div>\n </div>\n\n {/* Text */}\n <div className=\"flex-1 w-full space-y-4\">\n <h3 className=\"text-2xl sm:text-3xl font-bold\">\n {item.title}\n </h3>\n <p className=\"text-muted-foreground leading-relaxed\">\n {item.description}\n </p>\n </div>\n </div>\n </Container>\n )\n })}\n </div>\n </Section>\n )\n}\n","\"use client\"\n\nimport React from 'react'\nimport { Section } from '../components/Section'\nimport { Container } from '../components/Container'\nimport { Avatar } from '../components/Avatar'\nimport { Icon } from '../components/Icon/Icon'\nimport { useLandingTheme } from './LandingProvider'\nimport type { LandingAboutProps, LandingMotionOverride } from './types'\n\ninterface ScrollRevealResult {\n ref: React.RefObject<HTMLElement | null>\n style: React.CSSProperties\n isVisible: boolean\n}\ninterface ScrollRevealOptions {\n motionType?: string\n duration?: number\n delay?: number\n}\n\nlet useScrollReveal: ((opts: ScrollRevealOptions) => ScrollRevealResult) | undefined\ntry {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n useScrollReveal = require('@hua-labs/motion-core').useScrollReveal\n} catch {\n // motion-core unavailable\n}\n\nexport function LandingAbout({\n name,\n role,\n bio,\n avatar,\n socialLinks,\n motion: motionOverride,\n className,\n ...rest\n}: LandingAboutProps) {\n const theme = useLandingTheme()\n const motion: Required<LandingMotionOverride> = motionOverride\n ? { ...theme.hero.motion, ...motionOverride }\n : theme.hero.motion\n\n const scrollReveal = useScrollReveal?.({\n motionType: motion.type as 'fadeIn' | 'slideUp',\n duration: motion.duration,\n delay: motion.delay,\n })\n\n const fallbackStyle: React.CSSProperties = scrollReveal ? {} : {\n opacity: 0,\n transform: motion.type === 'slideUp' ? 'translateY(32px)' : 'none',\n animation: `landing-about-enter ${motion.duration}ms ${motion.easing} ${motion.delay}ms forwards`,\n }\n\n return (\n <Section className={className} {...rest}>\n <Container size=\"lg\" padding=\"none\" centered>\n <div\n ref={scrollReveal?.ref as React.Ref<HTMLDivElement>}\n style={scrollReveal?.style ?? fallbackStyle}\n className=\"flex flex-col md:flex-row items-center gap-8 md:gap-12\"\n >\n {/* Avatar */}\n {avatar && (\n <div className=\"flex-shrink-0\">\n <Avatar\n size=\"lg\"\n src={avatar}\n alt={name}\n className=\"w-32 h-32 md:w-40 md:h-40\"\n />\n </div>\n )}\n\n {/* Text Content */}\n <div className=\"flex-1 text-center md:text-left\">\n <h2 className=\"text-3xl sm:text-4xl font-bold mb-2\">{name}</h2>\n <p className=\"text-xl text-muted-foreground mb-4\">{role}</p>\n <div className=\"text-foreground/90 leading-relaxed mb-6\">\n {typeof bio === 'string' ? <p>{bio}</p> : bio}\n </div>\n\n {/* Social Links */}\n {socialLinks && socialLinks.length > 0 && (\n <div className=\"flex gap-4 justify-center md:justify-start\">\n {socialLinks.map((link, i) => (\n <a\n key={i}\n href={link.href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-muted-foreground hover:text-foreground transition-colors\"\n aria-label={link.label}\n >\n <Icon name={link.icon as any} size={24} />\n </a>\n ))}\n </div>\n )}\n </div>\n </div>\n </Container>\n\n <style dangerouslySetInnerHTML={{ __html: `\n @keyframes landing-about-enter {\n to { opacity: 1; transform: none; }\n }\n `}} />\n </Section>\n )\n}\n","\"use client\"\n\nimport React, { useState, useMemo } from 'react'\nimport { merge } from '../lib/utils'\nimport { Section } from '../components/Section'\nimport { Card } from '../components/Card'\nimport { Icon } from '../components/Icon/Icon'\nimport { useLandingTheme } from './LandingProvider'\nimport type { LandingProjectsProps, LandingProjectItem, LandingMotionOverride } from './types'\n\ninterface StaggerResult {\n containerRef: React.RefObject<HTMLDivElement | null>\n styles: React.CSSProperties[]\n isVisible: boolean\n}\ninterface StaggerOptions {\n count: number\n staggerDelay?: number\n duration?: number\n motionType?: string\n easing?: string\n}\n\nlet useStagger: ((opts: StaggerOptions) => StaggerResult) | undefined\nlet TiltCard: React.ComponentType<any> | undefined\ntry {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const mc = require('@hua-labs/motion-core')\n useStagger = mc.useStagger\n TiltCard = mc.TiltCard\n} catch {\n // motion-core unavailable\n}\n\nconst gridColsMap = {\n 2: 'md:grid-cols-2',\n 3: 'md:grid-cols-2 lg:grid-cols-3',\n} as const\n\nfunction ProjectCard({ item, style }: { item: LandingProjectItem; style?: React.CSSProperties }) {\n const CardComponent = TiltCard || Card\n\n return (\n <CardComponent\n className=\"bg-card/50 backdrop-blur-sm border border-border/30 rounded-xl overflow-hidden group hover:shadow-lg transition-shadow\"\n style={style}\n >\n {item.image && (\n <div className=\"relative overflow-hidden aspect-video\">\n <img\n src={item.image}\n alt={item.title}\n className=\"w-full h-full object-cover group-hover:scale-105 transition-transform duration-300\"\n />\n </div>\n )}\n <div className=\"p-6\">\n <h3 className=\"text-xl font-bold mb-2\">{item.title}</h3>\n <p className=\"text-muted-foreground mb-4 leading-relaxed\">\n {item.description}\n </p>\n\n {/* Tags */}\n {item.tags && item.tags.length > 0 && (\n <div className=\"flex flex-wrap gap-2 mb-4\">\n {item.tags.map((tag, i) => (\n <span\n key={i}\n className=\"px-2 py-1 text-xs rounded-full bg-primary/10 text-primary\"\n >\n {tag}\n </span>\n ))}\n </div>\n )}\n\n {/* Links */}\n <div className=\"flex gap-3\">\n {item.href && (\n <a\n href={item.href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-sm text-primary hover:underline flex items-center gap-1\"\n >\n View Project <Icon name=\"arrowRight\" size={16} />\n </a>\n )}\n {item.github && (\n <a\n href={item.github}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-sm text-muted-foreground hover:text-foreground flex items-center gap-1\"\n >\n <Icon name=\"github\" size={16} /> GitHub\n </a>\n )}\n </div>\n </div>\n </CardComponent>\n )\n}\n\nexport function LandingProjects({\n items,\n title,\n subtitle,\n columns = 3,\n filter = false,\n motion: motionOverride,\n staggerDelay: staggerProp,\n className,\n ...rest\n}: LandingProjectsProps) {\n const theme = useLandingTheme()\n const motion: Required<LandingMotionOverride> = motionOverride\n ? { ...theme.features.motion, ...motionOverride }\n : theme.features.motion\n const staggerDelay = staggerProp ?? theme.features.staggerDelay\n\n const [selectedTag, setSelectedTag] = useState<string | null>(null)\n\n const allTags = useMemo(() => {\n const tagSet = new Set<string>()\n items.forEach(item => {\n item.tags?.forEach(tag => tagSet.add(tag))\n })\n return Array.from(tagSet)\n }, [items])\n\n const filteredItems = useMemo(() => {\n if (!selectedTag) return items\n return items.filter(item => item.tags?.includes(selectedTag))\n }, [items, selectedTag])\n\n const stagger = useStagger?.({\n count: filteredItems.length,\n staggerDelay,\n duration: motion.duration,\n motionType: motion.type,\n easing: motion.easing,\n })\n\n const header = (title || subtitle)\n ? { title: title ?? '', subtitle }\n : undefined\n\n return (\n <Section header={header} className={className} {...rest}>\n {/* Tag Filter */}\n {filter && allTags.length > 0 && (\n <div className=\"flex flex-wrap gap-2 mb-8 justify-center\">\n <button\n onClick={() => setSelectedTag(null)}\n className={merge(\n \"px-4 py-2 rounded-full text-sm font-medium transition-colors\",\n !selectedTag\n ? \"bg-primary text-primary-foreground\"\n : \"bg-secondary text-secondary-foreground hover:bg-secondary/80\"\n )}\n >\n All\n </button>\n {allTags.map(tag => (\n <button\n key={tag}\n onClick={() => setSelectedTag(tag)}\n className={merge(\n \"px-4 py-2 rounded-full text-sm font-medium transition-colors\",\n selectedTag === tag\n ? \"bg-primary text-primary-foreground\"\n : \"bg-secondary text-secondary-foreground hover:bg-secondary/80\"\n )}\n >\n {tag}\n </button>\n ))}\n </div>\n )}\n\n {/* Projects Grid */}\n <div\n ref={stagger?.containerRef}\n className={merge(\"grid gap-6\", gridColsMap[columns])}\n >\n {filteredItems.map((item, i) => (\n <ProjectCard\n key={i}\n item={item}\n style={stagger?.styles[i]}\n />\n ))}\n </div>\n </Section>\n )\n}\n","\"use client\"\n\nimport React from 'react'\nimport { merge } from '../lib/utils'\nimport { Section } from '../components/Section'\nimport { Icon } from '../components/Icon/Icon'\nimport { Marquee } from '../components/advanced/Marquee'\nimport { useLandingTheme } from './LandingProvider'\nimport type { LandingSkillsProps, LandingSkillItem, LandingMotionOverride } from './types'\n\ninterface StaggerResult {\n containerRef: React.RefObject<HTMLDivElement | null>\n styles: React.CSSProperties[]\n isVisible: boolean\n}\ninterface StaggerOptions {\n count: number\n staggerDelay?: number\n duration?: number\n motionType?: string\n easing?: string\n}\n\nlet useStagger: ((opts: StaggerOptions) => StaggerResult) | undefined\ntry {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n useStagger = require('@hua-labs/motion-core').useStagger\n} catch {\n // motion-core unavailable\n}\n\nfunction getBarColor(level: number): string {\n if (level >= 90) return 'bg-green-500'\n if (level >= 70) return 'bg-blue-500'\n if (level >= 50) return 'bg-yellow-500'\n return 'bg-gray-500'\n}\n\nexport function LandingSkills({\n items,\n title,\n subtitle,\n variant = 'grid',\n motion: motionOverride,\n staggerDelay: staggerProp,\n className,\n ...rest\n}: LandingSkillsProps) {\n const theme = useLandingTheme()\n const motion: Required<LandingMotionOverride> = motionOverride\n ? { ...theme.features.motion, ...motionOverride }\n : theme.features.motion\n const staggerDelay = staggerProp ?? theme.features.staggerDelay\n\n const stagger = useStagger?.({\n count: items.length,\n staggerDelay,\n duration: motion.duration,\n motionType: motion.type,\n easing: motion.easing,\n })\n\n const header = (title || subtitle)\n ? { title: title ?? '', subtitle }\n : undefined\n\n // Marquee variant\n if (variant === 'marquee') {\n return (\n <Section header={header} className={className} {...rest}>\n <Marquee speed={50} pauseOnHover gradient>\n {items.map((item, i) => (\n <div key={i} className=\"w-40 shrink-0 flex items-center gap-3 px-4 py-2\">\n {item.icon && <Icon name={item.icon as any} size={24} />}\n <span className=\"font-medium\">{item.name}</span>\n </div>\n ))}\n </Marquee>\n </Section>\n )\n }\n\n // Grid variant\n if (variant === 'grid') {\n return (\n <Section header={header} className={className} {...rest}>\n <div\n ref={stagger?.containerRef}\n className=\"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-6\"\n >\n {items.map((item, i) => (\n <div\n key={i}\n className=\"flex flex-col items-center gap-3 p-6 bg-card/50 backdrop-blur-sm border border-border/30 rounded-xl hover:shadow-lg transition-shadow\"\n style={stagger?.styles[i]}\n >\n {item.icon && (\n <Icon name={item.icon as any} size={32} variant=\"primary\" />\n )}\n <span className=\"font-semibold text-center\">{item.name}</span>\n {item.category && (\n <span className=\"text-xs text-muted-foreground\">{item.category}</span>\n )}\n </div>\n ))}\n </div>\n </Section>\n )\n }\n\n // Bars variant\n return (\n <Section header={header} className={className} {...rest}>\n <div ref={stagger?.containerRef} className=\"space-y-6 max-w-3xl mx-auto\">\n {items.map((item, i) => {\n const level = item.level ?? 100\n return (\n <div key={i} className=\"space-y-2\" style={stagger?.styles[i]}>\n <div className=\"flex justify-between items-center\">\n <div className=\"flex items-center gap-2\">\n {item.icon && <Icon name={item.icon as any} size={20} />}\n <span className=\"font-semibold\">{item.name}</span>\n </div>\n <span className=\"text-sm text-muted-foreground\">{level}%</span>\n </div>\n <div className=\"h-2 bg-secondary rounded-full overflow-hidden\">\n <div\n className={merge(\n \"h-full rounded-full transition-all duration-1000\",\n getBarColor(level)\n )}\n style={{\n width: `${level}%`,\n animation: 'skill-bar-fill 1s ease-out forwards',\n }}\n />\n </div>\n </div>\n )\n })}\n </div>\n\n <style dangerouslySetInnerHTML={{ __html: `\n @keyframes skill-bar-fill {\n from { width: 0; }\n }\n `}} />\n </Section>\n )\n}\n","\"use client\"\n\nimport React from 'react'\nimport { merge } from '../lib/utils'\nimport { Section } from '../components/Section'\nimport { useLandingTheme } from './LandingProvider'\nimport type { LandingExperienceProps, LandingExperienceItem, LandingMotionOverride } from './types'\n\ninterface StaggerResult {\n containerRef: React.RefObject<HTMLDivElement | null>\n styles: React.CSSProperties[]\n isVisible: boolean\n}\ninterface StaggerOptions {\n count: number\n staggerDelay?: number\n duration?: number\n motionType?: string\n easing?: string\n}\n\nlet useStagger: ((opts: StaggerOptions) => StaggerResult) | undefined\ntry {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n useStagger = require('@hua-labs/motion-core').useStagger\n} catch {\n // motion-core unavailable\n}\n\nfunction ExperienceItem({ item, style }: { item: LandingExperienceItem; style?: React.CSSProperties }) {\n return (\n <div className=\"relative pl-8 pb-8 last:pb-0\" style={style}>\n {/* Timeline dot */}\n <div\n className={merge(\n \"absolute left-0 top-1.5 w-3 h-3 rounded-full border-2\",\n item.current\n ? \"bg-primary border-primary animate-pulse\"\n : \"bg-background border-border\"\n )}\n />\n {/* Timeline line */}\n <div className=\"absolute left-[5px] top-4 bottom-0 w-0.5 bg-border\" />\n\n {/* Content */}\n <div className=\"space-y-1\">\n <div className=\"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-1\">\n <h3 className=\"text-lg font-bold\">{item.title}</h3>\n <span className=\"text-sm text-muted-foreground\">{item.period}</span>\n </div>\n <p className=\"text-base text-foreground/80 font-medium\">{item.company}</p>\n {item.description && (\n <p className=\"text-sm text-muted-foreground leading-relaxed pt-2\">\n {item.description}\n </p>\n )}\n {item.current && (\n <span className=\"inline-block mt-2 px-2 py-1 text-xs rounded-full bg-primary/10 text-primary\">\n Current\n </span>\n )}\n </div>\n </div>\n )\n}\n\nexport function LandingExperience({\n items,\n title,\n subtitle,\n motion: motionOverride,\n staggerDelay: staggerProp,\n className,\n ...rest\n}: LandingExperienceProps) {\n const theme = useLandingTheme()\n const motion: Required<LandingMotionOverride> = motionOverride\n ? { ...theme.features.motion, ...motionOverride }\n : theme.features.motion\n const staggerDelay = staggerProp ?? theme.features.staggerDelay\n\n const stagger = useStagger?.({\n count: items.length,\n staggerDelay,\n duration: motion.duration,\n motionType: motion.type,\n easing: motion.easing,\n })\n\n const header = (title || subtitle)\n ? { title: title ?? '', subtitle }\n : undefined\n\n return (\n <Section header={header} className={className} {...rest}>\n <div ref={stagger?.containerRef} className=\"max-w-3xl mx-auto\">\n {items.map((item, i) => (\n <ExperienceItem\n key={i}\n item={item}\n style={stagger?.styles[i]}\n />\n ))}\n </div>\n </Section>\n )\n}\n","\"use client\"\n\nimport React, { useState, useEffect } from 'react'\nimport { merge } from '../lib/utils'\nimport { Section } from '../components/Section'\nimport { useLandingTheme } from './LandingProvider'\nimport type { LandingMetricsProps, LandingMetricItem, LandingMotionOverride } from './types'\n\ninterface ScrollRevealResult {\n ref: React.RefObject<HTMLElement | null>\n style: React.CSSProperties\n isVisible: boolean\n}\ninterface ScrollRevealOptions {\n motionType?: string\n duration?: number\n delay?: number\n}\n\nlet useScrollReveal: ((opts: ScrollRevealOptions) => ScrollRevealResult) | undefined\ntry {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n useScrollReveal = require('@hua-labs/motion-core').useScrollReveal\n} catch {\n // motion-core unavailable\n}\n\nfunction getMetricColor(value: number): { bar: string; text: string } {\n if (value >= 90) return { bar: 'bg-green-500', text: 'text-green-600 dark:text-green-400' }\n if (value >= 50) return { bar: 'bg-orange-500', text: 'text-orange-600 dark:text-orange-400' }\n return { bar: 'bg-red-500', text: 'text-red-600 dark:text-red-400' }\n}\n\nfunction MetricBar({ item, delay = 0 }: { item: LandingMetricItem; delay?: number }) {\n const [animatedValue, setAnimatedValue] = useState(0)\n const color = getMetricColor(item.value)\n\n useEffect(() => {\n const timer = setTimeout(() => {\n setAnimatedValue(item.value)\n }, delay)\n return () => clearTimeout(timer)\n }, [item.value, delay])\n\n return (\n <div className=\"space-y-2\">\n <div className=\"flex justify-between items-center\">\n <span className=\"text-sm font-medium\">{item.label}</span>\n <span className={merge(\"text-2xl font-bold\", color.text)}>\n {Math.round(animatedValue)}\n </span>\n </div>\n <div className=\"h-2 bg-secondary rounded-full overflow-hidden\">\n <div\n className={merge(\"h-full rounded-full transition-all duration-1000 ease-out\", color.bar)}\n style={{ width: `${animatedValue}%` }}\n />\n </div>\n {item.description && (\n <p className=\"text-xs text-muted-foreground\">{item.description}</p>\n )}\n </div>\n )\n}\n\nexport function LandingMetrics({\n items,\n title,\n subtitle,\n tabs,\n motion: motionOverride,\n className,\n ...rest\n}: LandingMetricsProps) {\n const theme = useLandingTheme()\n const motion: Required<LandingMotionOverride> = motionOverride\n ? { ...theme.stats.motion, ...motionOverride }\n : theme.stats.motion\n\n const [activeTab, setActiveTab] = useState(0)\n\n const scrollReveal = useScrollReveal?.({\n motionType: motion.type as 'fadeIn' | 'slideUp',\n duration: motion.duration,\n delay: motion.delay,\n })\n\n const fallbackStyle: React.CSSProperties = scrollReveal ? {} : {\n opacity: 0,\n transform: motion.type === 'slideUp' ? 'translateY(32px)' : 'none',\n animation: `landing-metrics-enter ${motion.duration}ms ${motion.easing} ${motion.delay}ms forwards`,\n }\n\n const displayItems = tabs ? tabs[activeTab].items : items\n\n const header = (title || subtitle)\n ? { title: title ?? '', subtitle }\n : undefined\n\n return (\n <Section header={header} className={className} {...rest}>\n <div\n ref={scrollReveal?.ref as React.Ref<HTMLDivElement>}\n style={scrollReveal?.style ?? fallbackStyle}\n className=\"max-w-3xl mx-auto\"\n >\n {/* Tabs */}\n {tabs && tabs.length > 1 && (\n <div className=\"flex gap-2 mb-8 justify-center\">\n {tabs.map((tab, i) => (\n <button\n key={i}\n onClick={() => setActiveTab(i)}\n className={merge(\n \"px-4 py-2 rounded-lg text-sm font-medium transition-colors\",\n activeTab === i\n ? \"bg-primary text-primary-foreground\"\n : \"bg-secondary text-secondary-foreground hover:bg-secondary/80\"\n )}\n >\n {tab.label}\n </button>\n ))}\n </div>\n )}\n\n {/* Metrics */}\n <div className=\"space-y-6\">\n {displayItems.map((item, i) => (\n <MetricBar key={i} item={item} delay={i * 100} />\n ))}\n </div>\n </div>\n\n <style dangerouslySetInnerHTML={{ __html: `\n @keyframes landing-metrics-enter {\n to { opacity: 1; transform: none; }\n }\n `}} />\n </Section>\n )\n}\n","\"use client\"\n\nimport React from 'react'\nimport { Section } from '../components/Section'\nimport { Container } from '../components/Container'\nimport { Icon } from '../components/Icon/Icon'\nimport { useLandingTheme } from './LandingProvider'\nimport type { LandingContactProps, LandingMotionOverride } from './types'\n\ninterface ScrollRevealResult {\n ref: React.RefObject<HTMLElement | null>\n style: React.CSSProperties\n isVisible: boolean\n}\ninterface ScrollRevealOptions {\n motionType?: string\n duration?: number\n delay?: number\n}\n\nlet useScrollReveal: ((opts: ScrollRevealOptions) => ScrollRevealResult) | undefined\ntry {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n useScrollReveal = require('@hua-labs/motion-core').useScrollReveal\n} catch {\n // motion-core unavailable\n}\n\nexport function LandingContact({\n title = 'Get in Touch',\n subtitle,\n email,\n socialLinks,\n motion: motionOverride,\n className,\n ...rest\n}: LandingContactProps) {\n const theme = useLandingTheme()\n const motion: Required<LandingMotionOverride> = motionOverride\n ? { ...theme.cta.motion, ...motionOverride }\n : theme.cta.motion\n\n const scrollReveal = useScrollReveal?.({\n motionType: motion.type as 'fadeIn' | 'slideUp',\n duration: motion.duration,\n delay: motion.delay,\n })\n\n const fallbackStyle: React.CSSProperties = scrollReveal ? {} : {\n opacity: 0,\n transform: motion.type === 'slideUp' ? 'translateY(32px)' : 'none',\n animation: `landing-contact-enter ${motion.duration}ms ${motion.easing} ${motion.delay}ms forwards`,\n }\n\n const header = (title || subtitle)\n ? { title: title ?? '', subtitle }\n : undefined\n\n return (\n <Section header={header} className={className} {...rest}>\n <Container size=\"md\" padding=\"none\" centered>\n <div\n ref={scrollReveal?.ref as React.Ref<HTMLDivElement>}\n style={scrollReveal?.style ?? fallbackStyle}\n className=\"text-center space-y-6\"\n >\n {/* Email */}\n {email && (\n <a\n href={`mailto:${email}`}\n className=\"inline-block text-2xl sm:text-3xl font-bold text-primary hover:underline\"\n >\n {email}\n </a>\n )}\n\n {/* Social Links */}\n {socialLinks && socialLinks.length > 0 && (\n <div className=\"flex gap-4 justify-center\">\n {socialLinks.map((link, i) => (\n <a\n key={i}\n href={link.href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"flex items-center justify-center w-12 h-12 rounded-full bg-secondary hover:bg-secondary/80 text-foreground transition-colors\"\n aria-label={link.label}\n >\n <Icon name={link.icon as any} size={24} />\n </a>\n ))}\n </div>\n )}\n </div>\n </Container>\n\n <style dangerouslySetInnerHTML={{ __html: `\n @keyframes landing-contact-enter {\n to { opacity: 1; transform: none; }\n }\n `}} />\n </Section>\n )\n}\n","export { LandingProvider, useLandingTheme } from './LandingProvider'\nexport { LandingHero } from './LandingHero'\nexport { LandingFeatures } from './LandingFeatures'\nexport { LandingStats } from './LandingStats'\nexport { LandingCTA } from './LandingCTA'\nexport { LandingTestimonials } from './LandingTestimonials'\nexport { LandingLogoCloud } from './LandingLogoCloud'\nexport { LandingShowcase } from './LandingShowcase'\nexport { LandingAbout } from './LandingAbout'\nexport { LandingProjects } from './LandingProjects'\nexport { LandingSkills } from './LandingSkills'\nexport { LandingExperience } from './LandingExperience'\nexport { LandingMetrics } from './LandingMetrics'\nexport { LandingContact } from './LandingContact'\nexport { createLandingTheme, resolveTheme, corporate, marketing, product, dashboard, app, immersive, portfolio } from './themes'\n\nexport type {\n LandingThemeName,\n LandingTheme,\n LandingColorTokens,\n LandingMotionOverride,\n LandingProviderProps,\n LandingHeroProps,\n LandingFeaturesProps,\n LandingFeatureItem,\n LandingStatsProps,\n LandingStatItem,\n LandingCTAProps,\n LandingTestimonialsProps,\n LandingTestimonialItem,\n LandingLogoCloudProps,\n LandingLogoItem,\n LandingShowcaseProps,\n LandingShowcaseItem,\n LandingAboutProps,\n LandingSocialLink,\n LandingProjectsProps,\n LandingProjectItem,\n LandingSkillsProps,\n LandingSkillItem,\n LandingExperienceProps,\n LandingExperienceItem,\n LandingMetricsProps,\n LandingMetricItem,\n LandingMetricsTab,\n LandingContactProps,\n DeepPartial,\n} from './types'\n\n// ── Landing namespace (convenience) ─────────────\n\nimport { LandingProvider } from './LandingProvider'\nimport { LandingHero } from './LandingHero'\nimport { LandingFeatures } from './LandingFeatures'\nimport { LandingStats } from './LandingStats'\nimport { LandingCTA } from './LandingCTA'\nimport { LandingTestimonials } from './LandingTestimonials'\nimport { LandingLogoCloud } from './LandingLogoCloud'\nimport { LandingShowcase } from './LandingShowcase'\nimport { LandingAbout } from './LandingAbout'\nimport { LandingProjects } from './LandingProjects'\nimport { LandingSkills } from './LandingSkills'\nimport { LandingExperience } from './LandingExperience'\nimport { LandingMetrics } from './LandingMetrics'\nimport { LandingContact } from './LandingContact'\n\nexport const Landing = {\n Provider: LandingProvider,\n Hero: LandingHero,\n Features: LandingFeatures,\n Stats: LandingStats,\n CTA: LandingCTA,\n Testimonials: LandingTestimonials,\n LogoCloud: LandingLogoCloud,\n Showcase: LandingShowcase,\n About: LandingAbout,\n Projects: LandingProjects,\n Skills: LandingSkills,\n Experience: LandingExperience,\n Metrics: LandingMetrics,\n Contact: LandingContact,\n} as const\n"]}
|
package/dist/lib/icons.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* 나머지 아이콘은 동적 fallback으로 처리됩니다.
|
|
6
6
|
*
|
|
7
7
|
* 포함 기준:
|
|
8
|
-
* 1.
|
|
8
|
+
* 1. my-app에서 실제 사용 중인 아이콘
|
|
9
9
|
* 2. UI 컴포넌트에서 자주 사용되는 아이콘
|
|
10
10
|
* 3. 각 카테고리의 대표 아이콘
|
|
11
11
|
*
|
|
@@ -103,6 +103,11 @@ export declare const icons: {
|
|
|
103
103
|
readonly wifiOff: import("@phosphor-icons/react").Icon;
|
|
104
104
|
readonly cpu: import("@phosphor-icons/react").Icon;
|
|
105
105
|
readonly mask: import("@phosphor-icons/react").Icon;
|
|
106
|
+
readonly rocket: import("@phosphor-icons/react").Icon;
|
|
107
|
+
readonly layout: import("@phosphor-icons/react").Icon;
|
|
108
|
+
readonly megaphone: import("@phosphor-icons/react").Icon;
|
|
109
|
+
readonly layers: import("@phosphor-icons/react").Icon;
|
|
110
|
+
readonly ban: import("@phosphor-icons/react").Icon;
|
|
106
111
|
readonly bold: import("@phosphor-icons/react").Icon;
|
|
107
112
|
readonly italic: import("@phosphor-icons/react").Icon;
|
|
108
113
|
readonly strikethrough: import("@phosphor-icons/react").Icon;
|
package/dist/lib/icons.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/lib/icons.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/lib/icons.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA0IH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6IR,CAAA;AAGV,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,KAAK,CAAA;AAGzC,eAAO,MAAM,YAAY;;;;;;;;;CASf,CAAA;AAGV,eAAO,MAAM,WAAW;;;;;;;;;;CAUd,CAAA;AAGV,eAAO,MAAM,cAAc;;;;;;;;;;;;;;CAcjB,CAAA"}
|
package/dist/navigation.d.mts
CHANGED