@hua-labs/ui 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/README.md +55 -67
  2. package/dist/{ComponentLayout-btJq4TjA.d.mts → ComponentLayout-BhM4VSoq.d.mts} +1 -1
  3. package/dist/Section-BWzyshgX.d.mts +67 -0
  4. package/dist/advanced/dashboard.d.ts.map +1 -1
  5. package/dist/advanced-dashboard.d.mts +1 -1
  6. package/dist/advanced-dashboard.mjs +3 -3
  7. package/dist/advanced-dashboard.mjs.map +1 -1
  8. package/dist/advanced-emotion.mjs +1 -1
  9. package/dist/advanced-motion.d.mts +74 -7
  10. package/dist/advanced-motion.mjs +1 -1
  11. package/dist/advanced.d.mts +4 -4
  12. package/dist/advanced.mjs +3 -3
  13. package/dist/advanced.mjs.map +1 -1
  14. package/dist/{chunk-GLZKT7JN.mjs → chunk-5DPW7SVD.mjs} +3 -3
  15. package/dist/{chunk-GLZKT7JN.mjs.map → chunk-5DPW7SVD.mjs.map} +1 -1
  16. package/dist/{chunk-X7ZIWYRC.mjs → chunk-5L5HIPKA.mjs} +2 -2
  17. package/dist/{chunk-X7ZIWYRC.mjs.map → chunk-5L5HIPKA.mjs.map} +1 -1
  18. package/dist/chunk-A5YOVVM5.mjs +3 -0
  19. package/dist/chunk-A5YOVVM5.mjs.map +1 -0
  20. package/dist/chunk-CNW22G24.mjs +13 -0
  21. package/dist/chunk-CNW22G24.mjs.map +1 -0
  22. package/dist/chunk-CW66UBQG.mjs +3 -0
  23. package/dist/chunk-CW66UBQG.mjs.map +1 -0
  24. package/dist/chunk-EAZEI74V.mjs +3 -0
  25. package/dist/chunk-EAZEI74V.mjs.map +1 -0
  26. package/dist/{chunk-LH77I6HO.mjs → chunk-EPY3432E.mjs} +2 -2
  27. package/dist/{chunk-LH77I6HO.mjs.map → chunk-EPY3432E.mjs.map} +1 -1
  28. package/dist/{chunk-SGEP3CQE.mjs → chunk-F2M4YDDQ.mjs} +2 -2
  29. package/dist/{chunk-SGEP3CQE.mjs.map → chunk-F2M4YDDQ.mjs.map} +1 -1
  30. package/dist/chunk-FHMFDCX2.mjs +3 -0
  31. package/dist/chunk-FHMFDCX2.mjs.map +1 -0
  32. package/dist/chunk-HBIUCLFL.mjs +3 -0
  33. package/dist/chunk-HBIUCLFL.mjs.map +1 -0
  34. package/dist/{chunk-LOYAJIWO.mjs → chunk-HEBXAFRY.mjs} +2 -2
  35. package/dist/{chunk-LOYAJIWO.mjs.map → chunk-HEBXAFRY.mjs.map} +1 -1
  36. package/dist/chunk-IG47LMOD.mjs +3 -0
  37. package/dist/chunk-IG47LMOD.mjs.map +1 -0
  38. package/dist/{chunk-IFSEJVOR.mjs → chunk-J47ZEXEL.mjs} +2 -2
  39. package/dist/{chunk-IFSEJVOR.mjs.map → chunk-J47ZEXEL.mjs.map} +1 -1
  40. package/dist/{chunk-IN7RWQCJ.mjs → chunk-K2FOFIST.mjs} +2 -2
  41. package/dist/{chunk-IN7RWQCJ.mjs.map → chunk-K2FOFIST.mjs.map} +1 -1
  42. package/dist/{chunk-UWHCM3S6.mjs → chunk-LL6QPRD7.mjs} +2 -2
  43. package/dist/{chunk-UWHCM3S6.mjs.map → chunk-LL6QPRD7.mjs.map} +1 -1
  44. package/dist/{chunk-PAEKNQWW.mjs → chunk-NMJLOK6M.mjs} +2 -2
  45. package/dist/{chunk-PAEKNQWW.mjs.map → chunk-NMJLOK6M.mjs.map} +1 -1
  46. package/dist/chunk-O24K56OS.mjs +3 -0
  47. package/dist/chunk-O24K56OS.mjs.map +1 -0
  48. package/dist/chunk-OIWG3IJ7.mjs +3 -0
  49. package/dist/chunk-OIWG3IJ7.mjs.map +1 -0
  50. package/dist/{chunk-VWSBJUNI.mjs → chunk-OLLU7ZFH.mjs} +2 -2
  51. package/dist/{chunk-VWSBJUNI.mjs.map → chunk-OLLU7ZFH.mjs.map} +1 -1
  52. package/dist/chunk-Q76JW7X5.mjs +73 -0
  53. package/dist/chunk-Q76JW7X5.mjs.map +1 -0
  54. package/dist/chunk-QEMPERUK.mjs +3 -0
  55. package/dist/chunk-QEMPERUK.mjs.map +1 -0
  56. package/dist/{chunk-XV3Y7QVU.mjs → chunk-QRM66RQG.mjs} +2 -2
  57. package/dist/{chunk-XV3Y7QVU.mjs.map → chunk-QRM66RQG.mjs.map} +1 -1
  58. package/dist/{chunk-6KTHJ3EL.mjs → chunk-QRRP7TGF.mjs} +3 -3
  59. package/dist/{chunk-6KTHJ3EL.mjs.map → chunk-QRRP7TGF.mjs.map} +1 -1
  60. package/dist/chunk-SD6XGDAC.mjs +3 -0
  61. package/dist/chunk-SD6XGDAC.mjs.map +1 -0
  62. package/dist/chunk-SDFVGFXT.mjs +3 -0
  63. package/dist/chunk-SDFVGFXT.mjs.map +1 -0
  64. package/dist/{chunk-N7M6RIN4.mjs → chunk-SMLDNOV3.mjs} +3 -3
  65. package/dist/{chunk-N7M6RIN4.mjs.map → chunk-SMLDNOV3.mjs.map} +1 -1
  66. package/dist/{chunk-NBJUE7NR.mjs → chunk-TAP6MYDW.mjs} +2 -2
  67. package/dist/{chunk-NBJUE7NR.mjs.map → chunk-TAP6MYDW.mjs.map} +1 -1
  68. package/dist/{chunk-PYBYZVSL.mjs → chunk-TBZ645BI.mjs} +2 -2
  69. package/dist/{chunk-PYBYZVSL.mjs.map → chunk-TBZ645BI.mjs.map} +1 -1
  70. package/dist/{chunk-C4OACMTB.mjs → chunk-V2DNYJR6.mjs} +2 -2
  71. package/dist/{chunk-C4OACMTB.mjs.map → chunk-V2DNYJR6.mjs.map} +1 -1
  72. package/dist/chunk-VBABZXL7.mjs +3 -0
  73. package/dist/chunk-VBABZXL7.mjs.map +1 -0
  74. package/dist/{chunk-OSCMSA2Q.mjs → chunk-WYBSHTGY.mjs} +2 -2
  75. package/dist/{chunk-OSCMSA2Q.mjs.map → chunk-WYBSHTGY.mjs.map} +1 -1
  76. package/dist/chunk-ZQUMJQYV.mjs +3 -0
  77. package/dist/chunk-ZQUMJQYV.mjs.map +1 -0
  78. package/dist/chunk-ZY23NOT4.mjs +3 -0
  79. package/dist/chunk-ZY23NOT4.mjs.map +1 -0
  80. package/dist/components/Action.d.ts.map +1 -1
  81. package/dist/components/Badge.d.ts +1 -1
  82. package/dist/components/Button.d.ts.map +1 -1
  83. package/dist/components/Card.d.ts.map +1 -1
  84. package/dist/components/DatePicker.d.ts.map +1 -1
  85. package/dist/components/Dropdown.d.ts +0 -50
  86. package/dist/components/Dropdown.d.ts.map +1 -1
  87. package/dist/components/Icon/Icon.d.ts.map +1 -1
  88. package/dist/components/Modal.d.ts.map +1 -1
  89. package/dist/components/Popover.d.ts +2 -0
  90. package/dist/components/Popover.d.ts.map +1 -1
  91. package/dist/components/Progress.d.ts +3 -2
  92. package/dist/components/Progress.d.ts.map +1 -1
  93. package/dist/components/Section.d.ts +44 -0
  94. package/dist/components/Section.d.ts.map +1 -0
  95. package/dist/components/advanced/AnimatedGradient.d.ts.map +1 -1
  96. package/dist/components/advanced/Carousel.d.ts.map +1 -1
  97. package/dist/components/advanced/DotNav.d.ts +26 -0
  98. package/dist/components/advanced/DotNav.d.ts.map +1 -0
  99. package/dist/components/advanced/HorizontalScroll.d.ts +20 -0
  100. package/dist/components/advanced/HorizontalScroll.d.ts.map +1 -0
  101. package/dist/components/advanced/ImageReveal.d.ts +24 -0
  102. package/dist/components/advanced/ImageReveal.d.ts.map +1 -0
  103. package/dist/components/advanced/Parallax.d.ts +9 -6
  104. package/dist/components/advanced/Parallax.d.ts.map +1 -1
  105. package/dist/components/advanced/TextReveal.d.ts.map +1 -1
  106. package/dist/components/advanced/index.d.ts +6 -0
  107. package/dist/components/advanced/index.d.ts.map +1 -1
  108. package/dist/data.mjs +1 -1
  109. package/dist/data.mjs.map +1 -1
  110. package/dist/feedback.mjs +1 -1
  111. package/dist/form.mjs +3 -3
  112. package/dist/form.mjs.map +1 -1
  113. package/dist/{icons-Bj_nr8Ba.d.mts → icons-DcOBy9Hf.d.mts} +10 -1
  114. package/dist/iconsax-extended.mjs +2 -2
  115. package/dist/iconsax-extended.mjs.map +1 -1
  116. package/dist/index.d.mts +10 -109
  117. package/dist/index.d.ts +4 -0
  118. package/dist/index.d.ts.map +1 -1
  119. package/dist/index.mjs +14 -14
  120. package/dist/index.mjs.map +1 -1
  121. package/dist/interactive.mjs +1 -1
  122. package/dist/interactive.mjs.map +1 -1
  123. package/dist/landing/LandingAbout.d.ts +3 -0
  124. package/dist/landing/LandingAbout.d.ts.map +1 -0
  125. package/dist/landing/LandingCTA.d.ts +3 -0
  126. package/dist/landing/LandingCTA.d.ts.map +1 -0
  127. package/dist/landing/LandingContact.d.ts +3 -0
  128. package/dist/landing/LandingContact.d.ts.map +1 -0
  129. package/dist/landing/LandingExperience.d.ts +3 -0
  130. package/dist/landing/LandingExperience.d.ts.map +1 -0
  131. package/dist/landing/LandingFeatures.d.ts +3 -0
  132. package/dist/landing/LandingFeatures.d.ts.map +1 -0
  133. package/dist/landing/LandingHero.d.ts +3 -0
  134. package/dist/landing/LandingHero.d.ts.map +1 -0
  135. package/dist/landing/LandingLogoCloud.d.ts +3 -0
  136. package/dist/landing/LandingLogoCloud.d.ts.map +1 -0
  137. package/dist/landing/LandingMetrics.d.ts +3 -0
  138. package/dist/landing/LandingMetrics.d.ts.map +1 -0
  139. package/dist/landing/LandingProjects.d.ts +3 -0
  140. package/dist/landing/LandingProjects.d.ts.map +1 -0
  141. package/dist/landing/LandingProvider.d.ts +4 -0
  142. package/dist/landing/LandingProvider.d.ts.map +1 -0
  143. package/dist/landing/LandingShowcase.d.ts +3 -0
  144. package/dist/landing/LandingShowcase.d.ts.map +1 -0
  145. package/dist/landing/LandingSkills.d.ts +3 -0
  146. package/dist/landing/LandingSkills.d.ts.map +1 -0
  147. package/dist/landing/LandingStats.d.ts +3 -0
  148. package/dist/landing/LandingStats.d.ts.map +1 -0
  149. package/dist/landing/LandingTestimonials.d.ts +3 -0
  150. package/dist/landing/LandingTestimonials.d.ts.map +1 -0
  151. package/dist/landing/index.d.ts +47 -0
  152. package/dist/landing/index.d.ts.map +1 -0
  153. package/dist/landing/themes/app.d.ts +3 -0
  154. package/dist/landing/themes/app.d.ts.map +1 -0
  155. package/dist/landing/themes/corporate.d.ts +3 -0
  156. package/dist/landing/themes/corporate.d.ts.map +1 -0
  157. package/dist/landing/themes/dashboard.d.ts +3 -0
  158. package/dist/landing/themes/dashboard.d.ts.map +1 -0
  159. package/dist/landing/themes/immersive.d.ts +3 -0
  160. package/dist/landing/themes/immersive.d.ts.map +1 -0
  161. package/dist/landing/themes/index.d.ts +15 -0
  162. package/dist/landing/themes/index.d.ts.map +1 -0
  163. package/dist/landing/themes/marketing.d.ts +3 -0
  164. package/dist/landing/themes/marketing.d.ts.map +1 -0
  165. package/dist/landing/themes/portfolio.d.ts +3 -0
  166. package/dist/landing/themes/portfolio.d.ts.map +1 -0
  167. package/dist/landing/themes/product.d.ts +3 -0
  168. package/dist/landing/themes/product.d.ts.map +1 -0
  169. package/dist/landing/types.d.ts +346 -0
  170. package/dist/landing/types.d.ts.map +1 -0
  171. package/dist/landing.d.mts +417 -0
  172. package/dist/landing.mjs +31 -0
  173. package/dist/landing.mjs.map +1 -0
  174. package/dist/lib/icon-providers.d.ts +9 -25
  175. package/dist/lib/icon-providers.d.ts.map +1 -1
  176. package/dist/lib/icons.d.ts +10 -1
  177. package/dist/lib/icons.d.ts.map +1 -1
  178. package/dist/lib/utils.d.ts.map +1 -1
  179. package/dist/navigation.d.mts +1 -1
  180. package/dist/navigation.mjs +1 -1
  181. package/dist/navigation.mjs.map +1 -1
  182. package/dist/overlay.d.mts +2 -50
  183. package/dist/overlay.mjs +1 -1
  184. package/dist/overlay.mjs.map +1 -1
  185. package/dist/sdui.mjs +1 -1
  186. package/dist/sdui.mjs.map +1 -1
  187. package/dist/theme.d.mts +85 -0
  188. package/dist/theme.d.ts +14 -0
  189. package/dist/theme.d.ts.map +1 -0
  190. package/dist/theme.mjs +3 -0
  191. package/dist/theme.mjs.map +1 -0
  192. package/package.json +30 -20
  193. package/src/styles/landing.css +107 -0
  194. package/src/styles/utilities.css +58 -0
  195. package/dist/advanced-dashboard.js +0 -39
  196. package/dist/advanced-dashboard.js.map +0 -1
  197. package/dist/advanced-emotion.js +0 -2
  198. package/dist/advanced-emotion.js.map +0 -1
  199. package/dist/advanced-motion.js +0 -82
  200. package/dist/advanced-motion.js.map +0 -1
  201. package/dist/advanced.js +0 -112
  202. package/dist/advanced.js.map +0 -1
  203. package/dist/chunk-BXX2TZUB.mjs +0 -3
  204. package/dist/chunk-BXX2TZUB.mjs.map +0 -1
  205. package/dist/chunk-COR6CDMA.mjs +0 -83
  206. package/dist/chunk-COR6CDMA.mjs.map +0 -1
  207. package/dist/chunk-FFH4ZFKS.mjs +0 -3
  208. package/dist/chunk-FFH4ZFKS.mjs.map +0 -1
  209. package/dist/chunk-HN5LSP6L.mjs +0 -3
  210. package/dist/chunk-HN5LSP6L.mjs.map +0 -1
  211. package/dist/chunk-LPAG7DCA.mjs +0 -3
  212. package/dist/chunk-LPAG7DCA.mjs.map +0 -1
  213. package/dist/chunk-QQCELXFD.mjs +0 -3
  214. package/dist/chunk-QQCELXFD.mjs.map +0 -1
  215. package/dist/chunk-RPUS7G7Q.mjs +0 -3
  216. package/dist/chunk-RPUS7G7Q.mjs.map +0 -1
  217. package/dist/chunk-SDFHJ4GB.mjs +0 -3
  218. package/dist/chunk-SDFHJ4GB.mjs.map +0 -1
  219. package/dist/chunk-UUHAXGMO.mjs +0 -3
  220. package/dist/chunk-UUHAXGMO.mjs.map +0 -1
  221. package/dist/data.js +0 -3
  222. package/dist/data.js.map +0 -1
  223. package/dist/feedback.js +0 -12
  224. package/dist/feedback.js.map +0 -1
  225. package/dist/form.js +0 -8
  226. package/dist/form.js.map +0 -1
  227. package/dist/iconsax-extended.js +0 -3
  228. package/dist/iconsax-extended.js.map +0 -1
  229. package/dist/iconsax.js +0 -3
  230. package/dist/iconsax.js.map +0 -1
  231. package/dist/index.js +0 -51
  232. package/dist/index.js.map +0 -1
  233. package/dist/interactive.js +0 -2
  234. package/dist/interactive.js.map +0 -1
  235. package/dist/lib/phosphor-icons.d.ts +0 -6
  236. package/dist/lib/phosphor-icons.d.ts.map +0 -1
  237. package/dist/navigation.js +0 -12
  238. package/dist/navigation.js.map +0 -1
  239. package/dist/overlay.js +0 -3
  240. package/dist/overlay.js.map +0 -1
  241. package/dist/sdui.js +0 -9
  242. package/dist/sdui.js.map +0 -1
@@ -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 &ldquo;{item.quote}&rdquo;\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"]}
@@ -5,18 +5,18 @@
5
5
  *
6
6
  * 1. Phosphor Icons (https://phosphoricons.com) - default
7
7
  * - Official package: @phosphor-icons/react (MIT License)
8
- * - icons.ts에서 정적 import (SSR-safe /dist/ssr)
8
+ * - icons.ts에서 정적 subpath import (SSR-safe /dist/ssr)
9
9
  * - PROJECT_ICONS 매핑으로 통합 이름 지원
10
- * - 폴백: initPhosphorIcons()로 동적 namespace 조회
10
+ * - 정적 맵에 없는 아이콘은 "?" fallback UI 표시
11
11
  *
12
- * 2. Lucide Icons (https://lucide.dev) - deprecated, backward compat
13
- * - initLucideIcons() 호출 시에만 로드 / Lazy loaded on demand
14
- * - 향후 제거 예정 / Will be removed in future
15
- *
16
- * 3. Iconsax Icons (https://iconsax.io) - separate entry
12
+ * 2. Iconsax Icons (https://iconsax.io) - separate entry
17
13
  * - '@hua-labs/ui/iconsax'에서 import 시 자동 등록
18
14
  * - 코어 번들에 포함되지 않음 / Not in core bundle
19
15
  * - registerIconsaxResolver()로 lazy 연결
16
+ *
17
+ * Note: Lucide provider는 deprecated → 제거됨.
18
+ * Note: 동적 barrel import (import('@phosphor-icons/react'))는 Turbopack에서
19
+ * 전체 라이브러리(4.6MB)를 번들하므로 사용 금지.
20
20
  */
21
21
  declare let iconsaxResolver: ((name: string, variant?: string) => any) | null;
22
22
  /**
@@ -612,29 +612,13 @@ export declare const PROJECT_ICONS: {
612
612
  };
613
613
  };
614
614
  /**
615
- * Initialize Phosphor Icons (lazy load for fallback/dynamic lookup)
616
- * icons.ts의 개별 import와 별개로, PROJECT_ICONS fallback용
617
- */
618
- export declare function initPhosphorIcons(): Promise<any>;
619
- /**
620
- * Initialize Lucide Icons (lazy load)
621
- */
622
- export declare function initLucideIcons(): Promise<any>;
623
- /**
624
- * Get icon from provider
625
- * Only resolves icons that are in PROJECT_ICONS for optimal bundle size
615
+ * Get icon from provider (iconsax only)
626
616
  *
627
- * @param iconName - 아이콘 이름 / Icon name
628
- * @param provider - 아이콘 프로바이더 / Icon provider
629
- * @returns 아이콘 컴포넌트 또는 null / Icon component or null
617
+ * Phosphor/Lucide는 정적 맵(icons.ts)으로 해결. 함수는 iconsax fallback용.
630
618
  */
631
619
  export declare function getIconFromProvider(iconName: string, provider?: IconProvider): React.ComponentType<Record<string, unknown>> | null;
632
620
  /**
633
621
  * Get icon name for provider
634
- *
635
- * @param iconName - 아이콘 이름 / Icon name
636
- * @param provider - 아이콘 프로바이더 / Icon provider
637
- * @returns 프로바이더별 아이콘 이름 / Icon name for provider
638
622
  */
639
623
  export declare function getIconNameForProvider(iconName: string, provider: IconProvider): string;
640
624
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"icon-providers.d.ts","sourceRoot":"","sources":["../../src/lib/icon-providers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAcH,QAAA,IAAI,eAAe,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,GAAG,CAAC,GAAG,IAAW,CAAA;AAE5E;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,OAAO,eAAe,QAEvE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,YAdL,MAAM,YAAY,MAAM,KAAK,GAAG,SAgB5D;AAGD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAA;AAG5D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,YAAY,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsKhB,CAAA;AAEV;;;GAGG;AACH,wBAAsB,iBAAiB,iBAatC;AAED;;GAEG;AACH,wBAAsB,eAAe,iBAapC;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,QAAQ,GAAE,YAAyB,GAClC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CA+BrD;AAoDD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,YAAY,GACrB,MAAM,CASR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C"}
1
+ {"version":3,"file":"icon-providers.d.ts","sourceRoot":"","sources":["../../src/lib/icon-providers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,QAAA,IAAI,eAAe,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,GAAG,CAAC,GAAG,IAAW,CAAA;AAE5E;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,OAAO,eAAe,QAEvE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,YAdL,MAAM,YAAY,MAAM,KAAK,GAAG,SAgB5D;AAGD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAA;AAG5D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,YAAY,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsKhB,CAAA;AAEV;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,QAAQ,GAAE,YAAyB,GAClC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CASrD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,YAAY,GACrB,MAAM,CASR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C"}
@@ -5,7 +5,7 @@
5
5
  * 나머지 아이콘은 동적 fallback으로 처리됩니다.
6
6
  *
7
7
  * 포함 기준:
8
- * 1. sum-diary에서 실제 사용 중인 아이콘
8
+ * 1. my-app에서 실제 사용 중인 아이콘
9
9
  * 2. UI 컴포넌트에서 자주 사용되는 아이콘
10
10
  * 3. 각 카테고리의 대표 아이콘
11
11
  *
@@ -18,6 +18,7 @@ export declare const icons: {
18
18
  readonly arrowUp: import("@phosphor-icons/react").Icon;
19
19
  readonly arrowDown: import("@phosphor-icons/react").Icon;
20
20
  readonly menu: import("@phosphor-icons/react").Icon;
21
+ readonly x: import("@phosphor-icons/react").Icon;
21
22
  readonly close: import("@phosphor-icons/react").Icon;
22
23
  readonly search: import("@phosphor-icons/react").Icon;
23
24
  readonly settings: import("@phosphor-icons/react").Icon;
@@ -76,6 +77,9 @@ export declare const icons: {
76
77
  readonly shield: import("@phosphor-icons/react").Icon;
77
78
  readonly wallet: import("@phosphor-icons/react").Icon;
78
79
  readonly key: import("@phosphor-icons/react").Icon;
80
+ readonly dollar: import("@phosphor-icons/react").Icon;
81
+ readonly dollarSign: import("@phosphor-icons/react").Icon;
82
+ readonly currency: import("@phosphor-icons/react").Icon;
79
83
  readonly clock: import("@phosphor-icons/react").Icon;
80
84
  readonly calendar: import("@phosphor-icons/react").Icon;
81
85
  readonly calendarPlus: import("@phosphor-icons/react").Icon;
@@ -103,6 +107,11 @@ export declare const icons: {
103
107
  readonly wifiOff: import("@phosphor-icons/react").Icon;
104
108
  readonly cpu: import("@phosphor-icons/react").Icon;
105
109
  readonly mask: import("@phosphor-icons/react").Icon;
110
+ readonly rocket: import("@phosphor-icons/react").Icon;
111
+ readonly layout: import("@phosphor-icons/react").Icon;
112
+ readonly megaphone: import("@phosphor-icons/react").Icon;
113
+ readonly layers: import("@phosphor-icons/react").Icon;
114
+ readonly ban: import("@phosphor-icons/react").Icon;
106
115
  readonly bold: import("@phosphor-icons/react").Icon;
107
116
  readonly italic: import("@phosphor-icons/react").Icon;
108
117
  readonly strikethrough: import("@phosphor-icons/react").Icon;
@@ -1 +1 @@
1
- {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/lib/icons.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAmIH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsIR,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"}
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/lib/icons.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAwIH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiJR,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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAQ,MAAM,MAAM,CAAA;AAG5C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,KAAK,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAE5C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CACrB,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,UAAU,EACrB,UAAU,CAAC,EAAE,UAAU,UAGxB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,EAAE,MAAM,SAAU,GAAG,MAAM,CAarF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,UAM5E;AAGD,eAAO,MAAM,EAAE,cAAQ,CAAA"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAQ,MAAM,MAAM,CAAA;AAG5C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,KAAK,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAE5C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CACrB,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,UAAU,EACrB,UAAU,CAAC,EAAE,UAAU,UAGxB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,EAAE,MAAM,SAAU,GAAG,MAAM,CA0BrF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,UAM5E;AAGD,eAAO,MAAM,EAAE,cAAQ,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { I as IconName } from './icons-Bj_nr8Ba.mjs';
2
+ import { I as IconName } from './icons-DcOBy9Hf.mjs';
3
3
  import '@phosphor-icons/react';
4
4
 
5
5
  /**
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- export{a as Breadcrumb,b as BreadcrumbItem}from'./chunk-LOYAJIWO.mjs';import {l}from'./chunk-HN5LSP6L.mjs';import {a as a$1}from'./chunk-6KTHJ3EL.mjs';import {a}from'./chunk-UUHAXGMO.mjs';import p,{useState,useEffect}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';var A=p.forwardRef(({className:n,value:e,defaultValue:t,onValueChange:o,variant:s="pills",scale:l="medium",children:m,...d},f)=>{let [g,c]=p.useState(e||t||""),b=e!==void 0,x=b?e:g;return p.useEffect(()=>{e!==void 0&&c(e);},[e]),jsx("div",{ref:f,className:a("w-full",n),...d,children:p.Children.map(m,u=>p.isValidElement(u)?p.cloneElement(u,{value:x,variant:s,scale:l}):u)})});A.displayName="Navigation";var B=p.forwardRef(({className:n,value:e,onValueChange:t,variant:o="pills",scale:s="medium",children:l,...m},d)=>{let f=()=>{switch(o){case "pills":return "bg-muted p-1 rounded-xl";case "underline":return "border-b border-border";case "cards":return "bg-muted/50 p-1 rounded-xl";default:return "bg-muted p-1 rounded-xl"}},g=()=>{switch(s){case "small":return "gap-1";case "large":return "gap-3";default:return "gap-2"}};return jsx("div",{ref:d,className:a("flex",f(),g(),n),...m,children:p.Children.map(l,c=>p.isValidElement(c)?p.cloneElement(c,{value:e,variant:o,scale:s}):c)})});B.displayName="NavigationList";var O=p.forwardRef(({className:n,value:e,onValueChange:t,variant:o="pills",scale:s="medium",active:l=false,children:m,...d},f)=>{let g=()=>{switch(o){case "pills":return a("rounded-lg px-3 py-2 text-sm font-medium transition-all",l?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground");case "underline":return a("border-b-2 px-3 py-2 text-sm font-medium transition-all",l?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground");case "cards":return a("rounded-lg px-3 py-2 text-sm font-medium transition-all",l?"bg-background text-foreground shadow-sm border border-border":"text-muted-foreground hover:text-foreground");default:return a("rounded-lg px-3 py-2 text-sm font-medium transition-all",l?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground")}},c=()=>{switch(s){case "small":return "text-xs px-2 py-1";case "large":return "text-base px-4 py-3";default:return "text-sm px-3 py-2"}},b=()=>{t==null||t(e);};return jsx("button",{ref:f,className:a(g(),c(),"focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2",n),onClick:b,...d,children:m})});O.displayName="NavigationItem";var j=p.forwardRef(({className:n,active:e=false,...t},o)=>e?jsx("div",{ref:o,className:a("mt-4",n),...t}):null);j.displayName="NavigationContent";var H=A;H.List=B;H.Item=O;H.Content=j;var C=p.forwardRef(({className:n,currentPage:e,totalPages:t,onPageChange:o,showFirstLast:s=true,showPrevNext:l=true,maxVisiblePages:m=5,size:d="md",variant:f="default",shape:g="square",...c},b)=>{let x=()=>{let r=[],R=Math.floor(m/2),h=Math.max(1,e-R),P=Math.min(t,e+R);P-h+1<m&&(h===1?P=Math.min(t,h+m-1):h=Math.max(1,P-m+1)),h>1&&(r.push(1),h>2&&r.push("..."));for(let D=h;D<=P;D++)r.push(D);return P<t&&(P<t-1&&r.push("..."),r.push(t)),r},v=()=>{switch(d){case "sm":return "h-8 px-2 text-sm";case "lg":return "h-12 px-4 text-base";default:return "h-10 px-3 text-sm"}},u=()=>g==="circle"?"rounded-full aspect-square flex items-center justify-center":"rounded-md",N=(r=false)=>{switch(f){case "outlined":return a("border border-border",r?"bg-primary border-primary text-primary-foreground":"bg-background text-foreground hover:bg-muted");case "minimal":return a("border-0",r?"bg-primary/10 text-primary":"bg-transparent text-foreground hover:bg-muted");default:return a("border-0",r?"bg-primary text-primary-foreground":"bg-background text-foreground hover:bg-muted")}},M=r=>{r>=1&&r<=t&&r!==e&&o(r);},G=x();return jsxs("div",{ref:b,className:a("flex items-center justify-center gap-1",n),...c,children:[s&&e>1&&jsx("button",{onClick:()=>M(1),className:a("inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",v(),u(),N()),"aria-label":"\uCCAB \uD398\uC774\uC9C0\uB85C \uC774\uB3D9",children:jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M11 19l-7-7 7-7M19 19l-7-7 7-7"})})}),l&&e>1&&jsx("button",{onClick:()=>M(e-1),className:a("inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",v(),u(),N()),"aria-label":"\uC774\uC804 \uD398\uC774\uC9C0\uB85C \uC774\uB3D9",children:jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"})})}),G.map((r,R)=>jsx(p.Fragment,{children:r==="..."?jsx("span",{className:a("inline-flex items-center justify-center px-3 py-2 text-sm font-medium text-muted-foreground",v()),children:"..."}):jsx("button",{onClick:()=>M(r),className:a("inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",v(),u(),N(r===e)),"aria-label":`${r}\uD398\uC774\uC9C0\uB85C \uC774\uB3D9`,"aria-current":r===e?"page":void 0,children:r})},R)),l&&e<t&&jsx("button",{onClick:()=>M(e+1),className:a("inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",v(),u(),N()),"aria-label":"\uB2E4\uC74C \uD398\uC774\uC9C0\uB85C \uC774\uB3D9",children:jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})}),s&&e<t&&jsx("button",{onClick:()=>M(t),className:a("inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",v(),u(),N()),"aria-label":"\uB9C8\uC9C0\uB9C9 \uD398\uC774\uC9C0\uB85C \uC774\uB3D9",children:jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 5l7 7-7 7M5 5l7 7-7 7"})})})]})});C.displayName="Pagination";var V=p.forwardRef(({className:n,...e},t)=>jsx(C,{ref:t,variant:"outlined",className:n,...e}));V.displayName="PaginationOutlined";var q=p.forwardRef(({className:n,...e},t)=>jsx(C,{ref:t,variant:"minimal",className:n,...e}));q.displayName="PaginationMinimal";var z=p.forwardRef(({totalItems:n=0,itemsPerPage:e=10,showInfo:t=true,className:o,...s},l)=>{let m=(s.currentPage-1)*e+1,d=Math.min(s.currentPage*e,n);return jsxs("div",{className:a("flex flex-col sm:flex-row items-center justify-between gap-4",o),children:[t&&jsx("div",{className:"text-sm text-foreground",children:n>0?jsxs(Fragment,{children:[jsx("span",{className:"font-medium",children:m})," - ",jsx("span",{className:"font-medium",children:d})," of ",jsx("span",{className:"font-medium",children:n})," results"]}):"No results"}),jsx(C,{ref:l,...s})]})});z.displayName="PaginationWithInfo";var _=p.forwardRef(({className:n,prevPage:e,nextPage:t,showOnMobile:o=false,...s},l$1)=>!e&&!t?null:jsxs("div",{ref:l$1,className:a("flex items-center justify-between py-4",!o&&"hidden md:flex",n),...s,children:[jsx("div",{className:"flex-1",children:e&&jsxs("a",{href:e.href,className:"group inline-flex items-center text-sm text-muted-foreground hover:text-foreground transition-colors",children:[jsx(l,{name:"chevronLeft",className:"w-4 h-4 mr-2 transition-transform group-hover:-translate-x-1"}),jsx("span",{className:"hidden sm:inline",children:e.title})]})}),jsx("div",{className:"flex-1 flex justify-end",children:t&&jsxs("a",{href:t.href,className:"group inline-flex items-center text-sm text-muted-foreground hover:text-foreground transition-colors",children:[jsx("span",{className:"hidden sm:inline mr-2",children:t.title}),jsx(l,{name:"chevronRight",className:"w-4 h-4 transition-transform group-hover:translate-x-1"})]})})]}));_.displayName="PageNavigation";var T=p.forwardRef(({children:n,className:e,duration:t=300,variant:o="fade",loadingVariant:s="ripple",loadingText:l="\uD398\uC774\uC9C0 \uB85C\uB529 \uC911...",showLoading:m=true,onTransitionStart:d,onTransitionEnd:f},g)=>{let[c,b]=useState(true),[x,v]=useState(false);useEffect(()=>{let N=setTimeout(()=>{b(false),v(true),f==null||f();},t);return d==null||d(),()=>clearTimeout(N)},[t,d,f]);let u={fade:a("transition-opacity duration-300 ease-in-out",x?"opacity-100":"opacity-0"),slide:a("transition-transform duration-300 ease-in-out",x?"translate-x-0":"translate-x-full"),scale:a("transition-all duration-300 ease-in-out",x?"scale-100 opacity-100":"scale-95 opacity-0"),flip:a("transition-all duration-500 ease-in-out",x?"rotate-y-0 opacity-100":"rotate-y-90 opacity-0")};return c&&m?jsx("div",{className:a("flex flex-col items-center justify-center min-h-screen bg-gradient-to-br from-indigo-50 to-purple-50 dark:from-slate-900 dark:to-slate-800",e),children:jsx(a$1,{size:"lg",variant:s,text:l})}):jsx("div",{ref:g,className:a("w-full",u[o],e),style:{transitionDuration:`${t}ms`},children:n})});T.displayName="PageTransition";var Y=p.forwardRef((n,e)=>jsx(T,{ref:e,variant:"fade",...n})),Z=p.forwardRef((n,e)=>jsx(T,{ref:e,variant:"slide",...n})),ee=p.forwardRef((n,e)=>jsx(T,{ref:e,variant:"scale",...n})),te=p.forwardRef((n,e)=>jsx(T,{ref:e,variant:"flip",...n}));Y.displayName="FadeTransition";Z.displayName="SlideTransition";ee.displayName="ScaleTransition";te.displayName="FlipTransition";export{H as Navigation,j as NavigationContent,O as NavigationItem,B as NavigationList,_ as PageNavigation,T as PageTransition,C as Pagination,q as PaginationMinimal,V as PaginationOutlined,z as PaginationWithInfo};//# sourceMappingURL=navigation.mjs.map
2
+ import {a as a$1}from'./chunk-QRRP7TGF.mjs';export{a as Breadcrumb,b as BreadcrumbItem}from'./chunk-HEBXAFRY.mjs';import {l}from'./chunk-ZQUMJQYV.mjs';import {a}from'./chunk-QEMPERUK.mjs';import'./chunk-EAZEI74V.mjs';import p,{useState,useEffect}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';var A=p.forwardRef(({className:n,value:e,defaultValue:t,onValueChange:o,variant:s="pills",scale:l="medium",children:m,...d},f)=>{let [g,c]=p.useState(e||t||""),b=e!==void 0,x=b?e:g;return p.useEffect(()=>{e!==void 0&&c(e);},[e]),jsx("div",{ref:f,className:a("w-full",n),...d,children:p.Children.map(m,u=>p.isValidElement(u)?p.cloneElement(u,{value:x,variant:s,scale:l}):u)})});A.displayName="Navigation";var B=p.forwardRef(({className:n,value:e,onValueChange:t,variant:o="pills",scale:s="medium",children:l,...m},d)=>{let f=()=>{switch(o){case "pills":return "bg-muted p-1 rounded-xl";case "underline":return "border-b border-border";case "cards":return "bg-muted/50 p-1 rounded-xl";default:return "bg-muted p-1 rounded-xl"}},g=()=>{switch(s){case "small":return "gap-1";case "large":return "gap-3";default:return "gap-2"}};return jsx("div",{ref:d,className:a("flex",f(),g(),n),...m,children:p.Children.map(l,c=>p.isValidElement(c)?p.cloneElement(c,{value:e,variant:o,scale:s}):c)})});B.displayName="NavigationList";var O=p.forwardRef(({className:n,value:e,onValueChange:t,variant:o="pills",scale:s="medium",active:l=false,children:m,...d},f)=>{let g=()=>{switch(o){case "pills":return a("rounded-lg px-3 py-2 text-sm font-medium transition-all",l?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground");case "underline":return a("border-b-2 px-3 py-2 text-sm font-medium transition-all",l?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground");case "cards":return a("rounded-lg px-3 py-2 text-sm font-medium transition-all",l?"bg-background text-foreground shadow-sm border border-border":"text-muted-foreground hover:text-foreground");default:return a("rounded-lg px-3 py-2 text-sm font-medium transition-all",l?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground")}},c=()=>{switch(s){case "small":return "text-xs px-2 py-1";case "large":return "text-base px-4 py-3";default:return "text-sm px-3 py-2"}},b=()=>{t==null||t(e);};return jsx("button",{ref:f,className:a(g(),c(),"focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2",n),onClick:b,...d,children:m})});O.displayName="NavigationItem";var j=p.forwardRef(({className:n,active:e=false,...t},o)=>e?jsx("div",{ref:o,className:a("mt-4",n),...t}):null);j.displayName="NavigationContent";var H=A;H.List=B;H.Item=O;H.Content=j;var C=p.forwardRef(({className:n,currentPage:e,totalPages:t,onPageChange:o,showFirstLast:s=true,showPrevNext:l=true,maxVisiblePages:m=5,size:d="md",variant:f="default",shape:g="square",...c},b)=>{let x=()=>{let r=[],R=Math.floor(m/2),h=Math.max(1,e-R),P=Math.min(t,e+R);P-h+1<m&&(h===1?P=Math.min(t,h+m-1):h=Math.max(1,P-m+1)),h>1&&(r.push(1),h>2&&r.push("..."));for(let D=h;D<=P;D++)r.push(D);return P<t&&(P<t-1&&r.push("..."),r.push(t)),r},v=()=>{switch(d){case "sm":return "h-8 px-2 text-sm";case "lg":return "h-12 px-4 text-base";default:return "h-10 px-3 text-sm"}},u=()=>g==="circle"?"rounded-full aspect-square flex items-center justify-center":"rounded-md",N=(r=false)=>{switch(f){case "outlined":return a("border border-border",r?"bg-primary border-primary text-primary-foreground":"bg-background text-foreground hover:bg-muted");case "minimal":return a("border-0",r?"bg-primary/10 text-primary":"bg-transparent text-foreground hover:bg-muted");default:return a("border-0",r?"bg-primary text-primary-foreground":"bg-background text-foreground hover:bg-muted")}},M=r=>{r>=1&&r<=t&&r!==e&&o(r);},G=x();return jsxs("div",{ref:b,className:a("flex items-center justify-center gap-1",n),...c,children:[s&&e>1&&jsx("button",{onClick:()=>M(1),className:a("inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",v(),u(),N()),"aria-label":"\uCCAB \uD398\uC774\uC9C0\uB85C \uC774\uB3D9",children:jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M11 19l-7-7 7-7M19 19l-7-7 7-7"})})}),l&&e>1&&jsx("button",{onClick:()=>M(e-1),className:a("inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",v(),u(),N()),"aria-label":"\uC774\uC804 \uD398\uC774\uC9C0\uB85C \uC774\uB3D9",children:jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"})})}),G.map((r,R)=>jsx(p.Fragment,{children:r==="..."?jsx("span",{className:a("inline-flex items-center justify-center px-3 py-2 text-sm font-medium text-muted-foreground",v()),children:"..."}):jsx("button",{onClick:()=>M(r),className:a("inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",v(),u(),N(r===e)),"aria-label":`${r}\uD398\uC774\uC9C0\uB85C \uC774\uB3D9`,"aria-current":r===e?"page":void 0,children:r})},R)),l&&e<t&&jsx("button",{onClick:()=>M(e+1),className:a("inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",v(),u(),N()),"aria-label":"\uB2E4\uC74C \uD398\uC774\uC9C0\uB85C \uC774\uB3D9",children:jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})}),s&&e<t&&jsx("button",{onClick:()=>M(t),className:a("inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",v(),u(),N()),"aria-label":"\uB9C8\uC9C0\uB9C9 \uD398\uC774\uC9C0\uB85C \uC774\uB3D9",children:jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 5l7 7-7 7M5 5l7 7-7 7"})})})]})});C.displayName="Pagination";var V=p.forwardRef(({className:n,...e},t)=>jsx(C,{ref:t,variant:"outlined",className:n,...e}));V.displayName="PaginationOutlined";var q=p.forwardRef(({className:n,...e},t)=>jsx(C,{ref:t,variant:"minimal",className:n,...e}));q.displayName="PaginationMinimal";var z=p.forwardRef(({totalItems:n=0,itemsPerPage:e=10,showInfo:t=true,className:o,...s},l)=>{let m=(s.currentPage-1)*e+1,d=Math.min(s.currentPage*e,n);return jsxs("div",{className:a("flex flex-col sm:flex-row items-center justify-between gap-4",o),children:[t&&jsx("div",{className:"text-sm text-foreground",children:n>0?jsxs(Fragment,{children:[jsx("span",{className:"font-medium",children:m})," - ",jsx("span",{className:"font-medium",children:d})," of ",jsx("span",{className:"font-medium",children:n})," results"]}):"No results"}),jsx(C,{ref:l,...s})]})});z.displayName="PaginationWithInfo";var _=p.forwardRef(({className:n,prevPage:e,nextPage:t,showOnMobile:o=false,...s},l$1)=>!e&&!t?null:jsxs("div",{ref:l$1,className:a("flex items-center justify-between py-4",!o&&"hidden md:flex",n),...s,children:[jsx("div",{className:"flex-1",children:e&&jsxs("a",{href:e.href,className:"group inline-flex items-center text-sm text-muted-foreground hover:text-foreground transition-colors",children:[jsx(l,{name:"chevronLeft",className:"w-4 h-4 mr-2 transition-transform group-hover:-translate-x-1"}),jsx("span",{className:"hidden sm:inline",children:e.title})]})}),jsx("div",{className:"flex-1 flex justify-end",children:t&&jsxs("a",{href:t.href,className:"group inline-flex items-center text-sm text-muted-foreground hover:text-foreground transition-colors",children:[jsx("span",{className:"hidden sm:inline mr-2",children:t.title}),jsx(l,{name:"chevronRight",className:"w-4 h-4 transition-transform group-hover:translate-x-1"})]})})]}));_.displayName="PageNavigation";var T=p.forwardRef(({children:n,className:e,duration:t=300,variant:o="fade",loadingVariant:s="ripple",loadingText:l="\uD398\uC774\uC9C0 \uB85C\uB529 \uC911...",showLoading:m=true,onTransitionStart:d,onTransitionEnd:f},g)=>{let[c,b]=useState(true),[x,v]=useState(false);useEffect(()=>{let N=setTimeout(()=>{b(false),v(true),f==null||f();},t);return d==null||d(),()=>clearTimeout(N)},[t,d,f]);let u={fade:a("transition-opacity duration-300 ease-in-out",x?"opacity-100":"opacity-0"),slide:a("transition-transform duration-300 ease-in-out",x?"translate-x-0":"translate-x-full"),scale:a("transition-all duration-300 ease-in-out",x?"scale-100 opacity-100":"scale-95 opacity-0"),flip:a("transition-all duration-500 ease-in-out",x?"rotate-y-0 opacity-100":"rotate-y-90 opacity-0")};return c&&m?jsx("div",{className:a("flex flex-col items-center justify-center min-h-screen bg-gradient-to-br from-indigo-50 to-purple-50 dark:from-slate-900 dark:to-slate-800",e),children:jsx(a$1,{size:"lg",variant:s,text:l})}):jsx("div",{ref:g,className:a("w-full",u[o],e),style:{transitionDuration:`${t}ms`},children:n})});T.displayName="PageTransition";var Y=p.forwardRef((n,e)=>jsx(T,{ref:e,variant:"fade",...n})),Z=p.forwardRef((n,e)=>jsx(T,{ref:e,variant:"slide",...n})),ee=p.forwardRef((n,e)=>jsx(T,{ref:e,variant:"scale",...n})),te=p.forwardRef((n,e)=>jsx(T,{ref:e,variant:"flip",...n}));Y.displayName="FadeTransition";Z.displayName="SlideTransition";ee.displayName="ScaleTransition";te.displayName="FlipTransition";export{H as Navigation,j as NavigationContent,O as NavigationItem,B as NavigationList,_ as PageNavigation,T as PageTransition,C as Pagination,q as PaginationMinimal,V as PaginationOutlined,z as PaginationWithInfo};//# sourceMappingURL=navigation.mjs.map
3
3
  //# sourceMappingURL=navigation.mjs.map