@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
@@ -1,3 +0,0 @@
1
- "use client";
2
- import {a}from'./chunk-UUHAXGMO.mjs';import o from'react';import {cva}from'class-variance-authority';import {jsx}from'react/jsx-runtime';var m=cva("rounded-lg",{variants:{variant:{default:"bg-card text-card-foreground border border-border",outline:"bg-transparent border-2 border-border",elevated:"bg-card text-card-foreground shadow-lg border border-border"},shadow:{none:"shadow-none",sm:"shadow-sm",md:"shadow-md",lg:"shadow-lg"},padding:{none:"",sm:"p-3",md:"p-4",lg:"p-6"}},defaultVariants:{variant:"default",padding:"none"}}),c=o.forwardRef(({className:e,variant:r="default",shadow:a$1,padding:n="none",hoverable:s,...i},l)=>jsx("div",{ref:l,className:a(m({variant:r,shadow:a$1,padding:n}),"transition-[transform,box-shadow,border-color] duration-200 ease-out",s&&"hover:-translate-y-0.5 hover:shadow-lg hover:border-primary/30 cursor-pointer active:translate-y-0 active:shadow-md",e),...i}));c.displayName="Card";var f=o.forwardRef(({className:e,...r},a$1)=>jsx("div",{ref:a$1,className:a("flex flex-col space-y-1 p-3",e),...r}));f.displayName="CardHeader";var C=o.forwardRef(({className:e,...r},a$1)=>jsx("h3",{ref:a$1,className:a("text-base md:text-lg font-semibold leading-tight tracking-tight",e),...r}));C.displayName="CardTitle";var b=o.forwardRef(({className:e,...r},a$1)=>jsx("p",{ref:a$1,className:a("text-sm text-muted-foreground",e),...r}));b.displayName="CardDescription";var g=o.forwardRef(({className:e,...r},a$1)=>jsx("div",{ref:a$1,className:a("px-3 pb-3",e),...r}));g.displayName="CardContent";var v=o.forwardRef(({className:e,...r},a$1)=>jsx("div",{ref:a$1,className:a("flex items-center px-3 pb-3",e),...r}));v.displayName="CardFooter";export{c as a,f as b,C as c,b as d,g as e,v as f};//# sourceMappingURL=chunk-BXX2TZUB.mjs.map
3
- //# sourceMappingURL=chunk-BXX2TZUB.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Card.tsx"],"names":["cardVariants","cva","Card","React","className","variant","shadow","padding","hoverable","props","ref","jsx","merge","CardHeader","CardTitle","CardDescription","CardContent","CardFooter"],"mappings":"yIAMO,IAAMA,CAAAA,CAAeC,GAAAA,CAC1B,YAAA,CACA,CACE,QAAA,CAAU,CACR,OAAA,CAAS,CACP,OAAA,CAAS,mDAAA,CACT,OAAA,CAAS,uCAAA,CACT,QAAA,CAAU,6DACZ,CAAA,CACA,MAAA,CAAQ,CACN,IAAA,CAAM,aAAA,CACN,GAAI,WAAA,CACJ,EAAA,CAAI,WAAA,CACJ,EAAA,CAAI,WACN,CAAA,CACA,OAAA,CAAS,CACP,IAAA,CAAM,EAAA,CACN,EAAA,CAAI,KAAA,CACJ,EAAA,CAAI,KAAA,CACJ,EAAA,CAAI,KACN,CACF,CAAA,CACA,eAAA,CAAiB,CACf,OAAA,CAAS,SAAA,CACT,OAAA,CAAS,MACX,CACF,CACF,CAAA,CAuBMC,CAAAA,CAAOC,CAAAA,CAAM,UAAA,CACjB,CAAC,CAAE,SAAA,CAAAC,CAAAA,CAAW,OAAA,CAAAC,CAAAA,CAAU,SAAA,CAAW,MAAA,CAAAC,GAAAA,CAAQ,OAAA,CAAAC,CAAAA,CAAU,MAAA,CAAQ,SAAA,CAAAC,CAAAA,CAAW,GAAGC,CAAM,CAAA,CAAGC,CAAAA,GAEhFC,GAAAA,CAAC,KAAA,CAAA,CACC,GAAA,CAAKD,CAAAA,CACL,SAAA,CAAWE,CAAAA,CACTZ,CAAAA,CAAa,CAAE,OAAA,CAAAK,CAAAA,CAAS,MAAA,CAAAC,GAAAA,CAAQ,OAAA,CAAAC,CAAQ,CAAC,CAAA,CACzC,sEAAA,CACAC,CAAAA,EAAa,qHAAA,CACbJ,CACF,CAAA,CACC,GAAGK,CAAAA,CACN,CAGN,EAEAP,CAAAA,CAAK,WAAA,CAAc,MAAA,CAInB,IAAMW,CAAAA,CAAaV,CAAAA,CAAM,UAAA,CACvB,CAAC,CAAE,SAAA,CAAAC,CAAAA,CAAW,GAAGK,CAAM,CAAA,CAAGC,GAAAA,GACxBC,GAAAA,CAAC,KAAA,CAAA,CACC,GAAA,CAAKD,GAAAA,CACL,UAAWE,CAAAA,CAAM,6BAAA,CAA+BR,CAAS,CAAA,CACxD,GAAGK,CAAAA,CACN,CAEJ,EAEAI,CAAAA,CAAW,WAAA,CAAc,YAAA,CAIzB,IAAMC,CAAAA,CAAYX,CAAAA,CAAM,UAAA,CACtB,CAAC,CAAE,SAAA,CAAAC,CAAAA,CAAW,GAAGK,CAAM,CAAA,CAAGC,GAAAA,GACxBC,GAAAA,CAAC,IAAA,CAAA,CACC,GAAA,CAAKD,GAAAA,CACL,SAAA,CAAWE,CAAAA,CACT,iEAAA,CACAR,CACF,CAAA,CACC,GAAGK,CAAAA,CACN,CAEJ,EAEAK,CAAAA,CAAU,WAAA,CAAc,WAAA,CAIxB,IAAMC,CAAAA,CAAkBZ,CAAAA,CAAM,UAAA,CAC5B,CAAC,CAAE,SAAA,CAAAC,CAAAA,CAAW,GAAGK,CAAM,CAAA,CAAGC,GAAAA,GACxBC,GAAAA,CAAC,GAAA,CAAA,CACC,GAAA,CAAKD,GAAAA,CACL,SAAA,CAAWE,CAAAA,CAAM,+BAAA,CAAiCR,CAAS,CAAA,CAC1D,GAAGK,EACN,CAEJ,EAEAM,CAAAA,CAAgB,WAAA,CAAc,iBAAA,CAI9B,IAAMC,CAAAA,CAAcb,CAAAA,CAAM,UAAA,CACxB,CAAC,CAAE,SAAA,CAAAC,CAAAA,CAAW,GAAGK,CAAM,CAAA,CAAGC,GAAAA,GACxBC,GAAAA,CAAC,KAAA,CAAA,CAAI,GAAA,CAAKD,GAAAA,CAAK,SAAA,CAAWE,CAAAA,CAAM,WAAA,CAAaR,CAAS,CAAA,CAAI,GAAGK,CAAAA,CAAO,CAExE,EAEAO,EAAY,WAAA,CAAc,aAAA,CAI1B,IAAMC,CAAAA,CAAad,CAAAA,CAAM,UAAA,CACvB,CAAC,CAAE,SAAA,CAAAC,CAAAA,CAAW,GAAGK,CAAM,CAAA,CAAGC,GAAAA,GACxBC,GAAAA,CAAC,KAAA,CAAA,CACC,GAAA,CAAKD,GAAAA,CACL,SAAA,CAAWE,CAAAA,CAAM,6BAAA,CAA+BR,CAAS,CAAA,CACxD,GAAGK,CAAAA,CACN,CAEJ,EAEAQ,CAAAA,CAAW,WAAA,CAAc,YAAA","file":"chunk-BXX2TZUB.mjs","sourcesContent":["\"use client\"\n\nimport React from \"react\"\nimport { cva } from \"class-variance-authority\"\nimport { merge } from \"../lib/utils\"\n\nexport const cardVariants = cva(\n \"rounded-lg\",\n {\n variants: {\n variant: {\n default: \"bg-card text-card-foreground border border-border\",\n outline: \"bg-transparent border-2 border-border\",\n elevated: \"bg-card text-card-foreground shadow-lg border border-border\",\n },\n shadow: {\n none: \"shadow-none\",\n sm: \"shadow-sm\",\n md: \"shadow-md\",\n lg: \"shadow-lg\",\n },\n padding: {\n none: \"\",\n sm: \"p-3\",\n md: \"p-4\",\n lg: \"p-6\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n padding: \"none\",\n },\n }\n)\n\n/**\n * Card 컴포넌트의 props / Card component props\n */\nexport interface CardProps extends React.HTMLAttributes<HTMLDivElement> {\n variant?: \"default\" | \"outline\" | \"elevated\"\n shadow?: \"none\" | \"sm\" | \"md\" | \"lg\"\n padding?: \"none\" | \"sm\" | \"md\" | \"lg\"\n hoverable?: boolean\n}\n\n/**\n * Card 컴포넌트 / Card component\n *\n * 콘텐츠를 카드 형태로 표시하는 컴포넌트입니다.\n *\n * @example\n * <Card>\n * <CardHeader><CardTitle>제목</CardTitle></CardHeader>\n * <CardContent><p>내용</p></CardContent>\n * </Card>\n */\nconst Card = React.forwardRef<HTMLDivElement, CardProps>(\n ({ className, variant = \"default\", shadow, padding = \"none\", hoverable, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={merge(\n cardVariants({ variant, shadow, padding }),\n \"transition-[transform,box-shadow,border-color] duration-200 ease-out\",\n hoverable && \"hover:-translate-y-0.5 hover:shadow-lg hover:border-primary/30 cursor-pointer active:translate-y-0 active:shadow-md\",\n className\n )}\n {...props}\n />\n )\n }\n)\n\nCard.displayName = \"Card\"\n\nexport interface CardHeaderProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst CardHeader = React.forwardRef<HTMLDivElement, CardHeaderProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={merge(\"flex flex-col space-y-1 p-3\", className)}\n {...props}\n />\n )\n)\n\nCardHeader.displayName = \"CardHeader\"\n\nexport interface CardTitleProps extends React.HTMLAttributes<HTMLHeadingElement> {}\n\nconst CardTitle = React.forwardRef<HTMLParagraphElement, CardTitleProps>(\n ({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={merge(\n \"text-base md:text-lg font-semibold leading-tight tracking-tight\",\n className\n )}\n {...props}\n />\n )\n)\n\nCardTitle.displayName = \"CardTitle\"\n\nexport interface CardDescriptionProps extends React.HTMLAttributes<HTMLParagraphElement> {}\n\nconst CardDescription = React.forwardRef<HTMLParagraphElement, CardDescriptionProps>(\n ({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={merge(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n)\n\nCardDescription.displayName = \"CardDescription\"\n\nexport interface CardContentProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst CardContent = React.forwardRef<HTMLDivElement, CardContentProps>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={merge(\"px-3 pb-3\", className)} {...props} />\n )\n)\n\nCardContent.displayName = \"CardContent\"\n\nexport interface CardFooterProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst CardFooter = React.forwardRef<HTMLDivElement, CardFooterProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={merge(\"flex items-center px-3 pb-3\", className)}\n {...props}\n />\n )\n)\n\nCardFooter.displayName = \"CardFooter\"\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }\n"]}
@@ -1,83 +0,0 @@
1
- "use client";
2
- import {l}from'./chunk-HN5LSP6L.mjs';import {a}from'./chunk-UUHAXGMO.mjs';import re,{useState,useRef,useCallback,useEffect,createContext,useContext,useMemo}from'react';import {jsxs,jsx,Fragment}from'react/jsx-runtime';var oe=re.forwardRef(({children:r,className:e,type:t="fade",duration:o=500,easing:a$1="smooth",delay:l=0,autoStart:d=true,onStart:b,onComplete:m,showProgress:s=false,progressClassName:v},g)=>{let[T,p]=useState(false),[c,n]=useState(0),[y,x]=useState(false),E=useRef(null),i=useRef(null),u=k=>({linear:P=>P,"ease-in":P=>P*P,"ease-out":P=>1-Math.pow(1-P,2),"ease-in-out":P=>P<.5?2*P*P:1-Math.pow(-2*P+2,2)/2,bounce:P=>P<.36363636363636365?7.5625*P*P:P<.7272727272727273?7.5625*(P-=.5454545454545454)*P+.75:P<.9090909090909091?7.5625*(P-=.8181818181818182)*P+.9375:7.5625*(P-=.9545454545454546)*P+.984375,elastic:P=>Math.pow(2,-10*P)*Math.sin((P-.075)*(2*Math.PI)/.3)+1,smooth:P=>P*P*(3-2*P)})[k],M=useCallback(k=>{i.current||(i.current=k);let N=k-i.current,P=u(a$1),B=Math.min(N/o,1);B=P(B),n(B),p(B>.1),B<1?E.current=requestAnimationFrame(Y=>M(Y)):(x(false),n(1),m==null||m());},[o,a$1,m]),h=useCallback(()=>{x(true),n(0),b==null||b(),i.current=null,E.current=requestAnimationFrame(M);},[M,b]);useEffect(()=>{if(d){let k=setTimeout(()=>{h();},l);return ()=>clearTimeout(k)}},[d,l,h]),useEffect(()=>()=>{E.current&&cancelAnimationFrame(E.current);},[]);let S=(()=>{switch(t){case "fade":return {opacity:T?1:0,transform:"none"};case "slide":return {opacity:T?1:0,transform:`translateX(${(1-c)*100}%)`};case "slide-up":return {opacity:T?1:0,transform:`translateY(${(1-c)*100}%)`};case "slide-down":return {opacity:T?1:0,transform:`translateY(-${(1-c)*100}%)`};case "slide-left":return {opacity:T?1:0,transform:`translateX(-${(1-c)*100}%)`};case "slide-right":return {opacity:T?1:0,transform:`translateX(${(1-c)*100}%)`};case "scale":return {opacity:T?1:0,transform:`scale(${.8+c*.2})`};case "flip":return {opacity:T?1:0,transform:`perspective(1000px) rotateY(${(1-c)*90}deg)`};case "morph":return {opacity:T?1:0,transform:`scale(${.9+c*.1}) rotate(${(1-c)*5}deg)`};case "cube":return {opacity:T?1:0,transform:`perspective(1000px) rotateX(${(1-c)*90}deg) rotateY(${(1-c)*45}deg)`};case "zoom":return {opacity:T?1:0,transform:`scale(${.5+c*.5})`};default:return {opacity:T?1:0,transform:"none"}}})();return jsxs("div",{className:"relative",children:[s&&jsxs("div",{className:a("fixed top-4 right-4 z-50 bg-background rounded-lg px-3 py-2 shadow-lg border",v),children:[jsxs("div",{className:"text-sm font-medium text-foreground",children:["Progress: ",Math.round(c*100),"%"]}),jsx("div",{className:"w-24 h-2 bg-muted rounded-full mt-2",children:jsx("div",{className:"h-full bg-primary rounded-full transition-all duration-100",style:{width:`${c*100}%`}})})]}),jsx("div",{ref:g,className:a("transition-all duration-500 ease-out",e),style:{...S,transitionDuration:`${o}ms`,transitionTimingFunction:a$1==="smooth"?"cubic-bezier(0.4, 0, 0.2, 1)":a$1==="bounce"?"cubic-bezier(0.68, -0.55, 0.265, 1.55)":a$1==="elastic"?"cubic-bezier(0.175, 0.885, 0.32, 1.275)":a$1},children:r})]})});oe.displayName="AdvancedPageTransition";var _t=re.forwardRef((r,e)=>jsx(oe,{ref:e,type:"fade",...r})),Ut=re.forwardRef((r,e)=>jsx(oe,{ref:e,type:"slide",...r})),jt=re.forwardRef((r,e)=>jsx(oe,{ref:e,type:"scale",...r})),Wt=re.forwardRef((r,e)=>jsx(oe,{ref:e,type:"flip",...r})),Kt=re.forwardRef((r,e)=>jsx(oe,{ref:e,type:"morph",...r})),Qt=re.forwardRef((r,e)=>jsx(oe,{ref:e,type:"cube",...r})),Jt=re.forwardRef((r,e)=>jsx(oe,{ref:e,type:"zoom",...r}));_t.displayName="FadePageTransition";Ut.displayName="SlidePageTransition";jt.displayName="ScalePageTransition";Wt.displayName="FlipPageTransition";Kt.displayName="MorphPageTransition";Qt.displayName="CubePageTransition";Jt.displayName="ZoomPageTransition";var tr=(r={})=>{let[e,t]=useState({isTransitioning:false,isVisible:false,currentStep:0,progress:0}),o=useRef(null),a=useRef(null),l=useRef({type:"fade",duration:500,easing:"smooth",delay:0,stagger:0,direction:"forward",...r}),d=useCallback(p=>({linear:n=>n,"ease-in":n=>n*n,"ease-out":n=>1-Math.pow(1-n,2),"ease-in-out":n=>n<.5?2*n*n:1-Math.pow(-2*n+2,2)/2,bounce:n=>n<.36363636363636365?7.5625*n*n:n<.7272727272727273?7.5625*(n-=.5454545454545454)*n+.75:n<.9090909090909091?7.5625*(n-=.8181818181818182)*n+.9375:7.5625*(n-=.9545454545454546)*n+.984375,elastic:n=>Math.pow(2,-10*n)*Math.sin((n-.075)*(2*Math.PI)/.3)+1,smooth:n=>n*n*(3-2*n)})[p],[]),b=useCallback(p=>{var E;a.current||(a.current=p);let c=p-a.current,n=l.current,y=d(n.easing),x=Math.min(c/n.duration,1);x=y(x),t(i=>({...i,progress:x,isVisible:n.direction==="forward"?x>.1:x<.9,currentStep:Math.floor(x*10)})),x<1?o.current=requestAnimationFrame(b):(t(i=>({...i,isTransitioning:false,progress:n.direction==="forward"?1:0})),(E=n.onComplete)==null||E.call(n));},[d]),m=useCallback(async p=>new Promise(c=>{var y;p&&(l.current={...l.current,...p});let n=l.current;n.onComplete=()=>c(),t(x=>({...x,isTransitioning:true,progress:n.direction==="forward"?0:1})),a.current=null,(y=n.onStart)==null||y.call(n),n.delay?setTimeout(()=>{o.current=requestAnimationFrame(b);},n.delay):o.current=requestAnimationFrame(b);}),[b]),s=useCallback(async()=>new Promise(p=>{let c=l.current;c.direction="backward",c.onComplete=()=>p(),m();}),[m]),v=useCallback(()=>{o.current&&cancelAnimationFrame(o.current);},[]),g=useCallback(()=>{e.isTransitioning&&(o.current=requestAnimationFrame(b));},[e.isTransitioning,b]),T=useCallback(()=>{o.current&&cancelAnimationFrame(o.current),t({isTransitioning:false,isVisible:false,currentStep:0,progress:0});},[]);return useEffect(()=>()=>{o.current&&cancelAnimationFrame(o.current);},[]),[e,{start:m,reverse:s,pause:v,resume:g,reset:T}]};var nr=(r={})=>{let{defaultType:e="fade",defaultDuration:t=500,defaultEasing:o="smooth",enableHistory:a=true,enableProgress:l=true,enableDebug:d=false}=r,[b,m]=useState({isTransitioning:false,currentTransition:null,transitionHistory:[],totalTransitions:0,averageDuration:0}),s=useRef(new Map),v=useRef(0),g=useCallback((i,u)=>{d&&console.log(`[PageTransitionManager] ${i}`,u);},[d]),T=useCallback(i=>{m(u=>{let M=a?[...u.transitionHistory,i]:u.transitionHistory,h=M.length,C=M.reduce((S,k)=>S+k.duration,0)/h;return {...u,totalTransitions:h,averageDuration:C,transitionHistory:M}});},[a]),p=useCallback(async i=>{let u=`transition_${++v.current}`,M={type:e,duration:t,easing:o,...i},h={id:u,type:M.type,duration:M.duration,easing:M.easing,timestamp:Date.now(),status:"pending"};g("Starting transition",{id:u,config:M}),m(S=>({...S,isTransitioning:true,currentTransition:h}));let C=setTimeout(()=>{var k;let S={...h,status:"completed"};m(N=>({...N,isTransitioning:false,currentTransition:null})),T(S),s.current.delete(u),g("Transition completed",{id:u}),(k=M.onComplete)==null||k.call(M);},M.duration);return s.current.set(u,{timer:C,config:M}),setTimeout(()=>{m(S=>({...S,currentTransition:{...S.currentTransition,status:"active"}}));},50),u},[e,t,o,g,T]),c=useCallback(i=>{let u=s.current.get(i);u&&(clearTimeout(u.timer),s.current.delete(i),m(M=>{var h;return {...M,isTransitioning:s.current.size>0,currentTransition:((h=M.currentTransition)==null?void 0:h.id)===i?null:M.currentTransition}}),g("Transition cancelled",{id:i}));},[g]),n=useCallback(()=>{s.current.forEach(({timer:i},u)=>{clearTimeout(i),g("Transition paused",{id:u});});},[g]),y=useCallback(()=>{s.current.forEach(({config:i},u)=>{p(i);});},[p]),x=useCallback(()=>{m(i=>({...i,transitionHistory:[],totalTransitions:0,averageDuration:0})),g("History cleared");},[g]),E=useCallback(()=>{let{transitionHistory:i}=b,u=i.reduce((h,C)=>(h[C.type]=(h[C.type]||0)+1,h),{}),M=i.reduce((h,C)=>(h[C.status]=(h[C.status]||0)+1,h),{});return {total:i.length,average:b.averageDuration,byType:u,byStatus:M}},[b]);return useEffect(()=>{let i=s.current;return ()=>{i.forEach(({timer:u})=>{clearTimeout(u);}),i.clear();}},[]),[b,{startTransition:p,cancelTransition:c,pauseAll:n,resumeAll:y,clearHistory:x,getTransitionStats:E}]};var Et=re.forwardRef(({children:r,className:e,speed:t=.5,direction:o="up",offset:a$1=0,disabled:l=false,scale:d=false,opacity:b=false,rotate:m=false,rotateDirection:s="cw",style:v,...g},T)=>{let p=useRef(null),[c,n]=useState({x:0,y:0,scale:1,opacity:1,rotate:0}),y=lr(),x=useCallback(()=>{if(l||y)return;let i=p.current;if(!i)return;let u=i.getBoundingClientRect(),M=window.innerHeight,C=u.top+u.height/2,k=(M/2-C)/M,N=k*t*100+a$1,P=0,B=0;switch(o){case "up":B=-N;break;case "down":B=N;break;case "left":P=-N;break;case "right":P=N;break}let Y=d?1+Math.abs(k)*.1:1,_=b?Math.max(.3,1-Math.abs(k)*.5):1,z=m?k*10*(s==="cw"?1:-1):0;n({x:P,y:B,scale:Y,opacity:_,rotate:z});},[l,y,t,o,a$1,d,b,m,s]);useEffect(()=>{if(l||y)return;x();let i=()=>{requestAnimationFrame(x);};return window.addEventListener("scroll",i,{passive:true}),window.addEventListener("resize",i,{passive:true}),()=>{window.removeEventListener("scroll",i),window.removeEventListener("resize",i);}},[x,l,y]);let E={...v,transform:l||y?void 0:`translate3d(${c.x}px, ${c.y}px, 0) scale(${c.scale}) rotate(${c.rotate}deg)`,opacity:l||y?1:c.opacity,willChange:l||y?void 0:"transform, opacity"};return jsx("div",{ref:cr(T,p),className:a("transition-none",e),style:E,...g,children:r})});Et.displayName="Parallax";function lr(){let[r,e]=useState(false);return useEffect(()=>{let t=window.matchMedia("(prefers-reduced-motion: reduce)");e(t.matches);let o=a=>{e(a.matches);};return t.addEventListener("change",o),()=>t.removeEventListener("change",o)},[]),r}function cr(...r){return e=>{r.forEach(t=>{typeof t=="function"?t(e):t&&typeof t=="object"&&(t.current=e);});}}var Pt=re.forwardRef(({children:r,className:e,direction:t="left",speed:o=50,pauseOnHover:a$1=true,pauseOnClick:l=false,gap:d=16,gradient:b=true,gradientColor:m="hsl(var(--background))",gradientWidth:s=100,style:v,...g},T)=>{let p=useRef(null),[c,n]=useState(0),[y,x]=useState(0),[E,i]=useState(false),u=t==="left"||t==="right",M=t==="right"||t==="down";useEffect(()=>{let k=p.current;if(!k)return;let N=k.firstElementChild;if(!N)return;let P=()=>{u?n(N.offsetWidth):x(N.offsetHeight);};P();let B=new ResizeObserver(P);return B.observe(N),()=>B.disconnect()},[u,r]);let C={"--marquee-duration":`${u?c/o:y/o}s`,"--marquee-gap":`${d}px`},S=b?{"--gradient-color":m,"--gradient-width":`${s}px`}:{};return jsxs("div",{ref:T,className:a("relative overflow-hidden",b&&"marquee-gradient",e),style:{...v,...S},onMouseEnter:()=>a$1&&i(true),onMouseLeave:()=>a$1&&i(false),onClick:()=>l&&i(!E),...g,children:[jsxs("div",{ref:p,className:a("flex",u?"flex-row":"flex-col",E?"animate-pause":"",u?M?"animate-marquee-right":"animate-marquee-left":M?"animate-marquee-down":"animate-marquee-up"),style:C,children:[jsx("div",{className:a("flex shrink-0",u?"flex-row":"flex-col"),style:{gap:d},children:r}),jsx("div",{className:a("flex shrink-0",u?"flex-row":"flex-col"),style:{gap:d,[u?"marginLeft":"marginTop"]:d},"aria-hidden":"true",children:r})]}),jsx("style",{dangerouslySetInnerHTML:{__html:`
3
- @keyframes marquee-left {
4
- from { transform: translateX(0); }
5
- to { transform: translateX(calc(-50% - var(--marquee-gap) / 2)); }
6
- }
7
- @keyframes marquee-right {
8
- from { transform: translateX(calc(-50% - var(--marquee-gap) / 2)); }
9
- to { transform: translateX(0); }
10
- }
11
- @keyframes marquee-up {
12
- from { transform: translateY(0); }
13
- to { transform: translateY(calc(-50% - var(--marquee-gap) / 2)); }
14
- }
15
- @keyframes marquee-down {
16
- from { transform: translateY(calc(-50% - var(--marquee-gap) / 2)); }
17
- to { transform: translateY(0); }
18
- }
19
- .animate-marquee-left { animation: marquee-left var(--marquee-duration) linear infinite; }
20
- .animate-marquee-right { animation: marquee-right var(--marquee-duration) linear infinite; }
21
- .animate-marquee-up { animation: marquee-up var(--marquee-duration) linear infinite; }
22
- .animate-marquee-down { animation: marquee-down var(--marquee-duration) linear infinite; }
23
- .animate-pause { animation-play-state: paused !important; }
24
- .marquee-gradient::before, .marquee-gradient::after {
25
- content: "";
26
- position: absolute;
27
- top: 0;
28
- bottom: 0;
29
- width: var(--gradient-width);
30
- z-index: 10;
31
- pointer-events: none;
32
- }
33
- .marquee-gradient::before {
34
- left: 0;
35
- background: linear-gradient(to right, var(--gradient-color), transparent);
36
- }
37
- .marquee-gradient::after {
38
- right: 0;
39
- background: linear-gradient(to left, var(--gradient-color), transparent);
40
- }
41
- `}})]})});Pt.displayName="Marquee";var kt=re.forwardRef(({children:r,className:e,glowColor:t="rgba(120, 119, 198, 0.3)",glowSize:o=400,glowOpacity:a$1=.6,border:l=true,borderColor:d,style:b,...m},s)=>{let v=useRef(null),[g,T]=useState({x:0,y:0}),[p,c]=useState(false),n=useCallback(E=>{if(!v.current)return;let i=v.current.getBoundingClientRect();T({x:E.clientX-i.left,y:E.clientY-i.top});},[]),y={position:"absolute",top:0,left:0,right:0,bottom:0,borderRadius:"inherit",opacity:p?a$1:0,background:`radial-gradient(${o}px circle at ${g.x}px ${g.y}px, ${t}, transparent 40%)`,transition:"opacity 0.3s ease",pointerEvents:"none"},x=l?{position:"absolute",top:0,left:0,right:0,bottom:0,borderRadius:"inherit",opacity:p?1:0,background:`radial-gradient(${o/2}px circle at ${g.x}px ${g.y}px, ${d||t}, transparent 40%)`,transition:"opacity 0.3s ease",pointerEvents:"none",mask:"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)",maskComposite:"exclude",WebkitMaskComposite:"xor",padding:"1px"}:{};return jsxs("div",{ref:vr(s,v),className:a("relative overflow-hidden rounded-xl bg-card border border-border p-6","transition-all duration-300",p&&"border-transparent",e),style:b,onMouseMove:n,onMouseEnter:()=>c(true),onMouseLeave:()=>c(false),...m,children:[jsx("div",{style:y,"aria-hidden":"true"}),l&&jsx("div",{style:x,"aria-hidden":"true"}),jsx("div",{className:"relative z-10",children:r})]})});kt.displayName="GlowCard";function vr(...r){return e=>{r.forEach(t=>{typeof t=="function"?t(e):t&&typeof t=="object"&&(t.current=e);});}}var Ct=re.forwardRef(({children:r,className:e,spotlightColor:t="rgba(255, 255, 255, 0.1)",spotlightSize:o=300,gradient:a$1=true,gradientFrom:l="rgba(255, 255, 255, 0.05)",gradientTo:d="transparent",style:b,...m},s)=>{let v=useRef(null),[g,T]=useState({x:0,y:0}),[p,c]=useState(false),n=useCallback(E=>{if(!v.current)return;let i=v.current.getBoundingClientRect();T({x:E.clientX-i.left,y:E.clientY-i.top});},[]),y={position:"absolute",top:0,left:0,right:0,bottom:0,borderRadius:"inherit",opacity:p?1:0,background:`radial-gradient(${o}px circle at ${g.x}px ${g.y}px, ${t}, transparent 60%)`,transition:"opacity 0.4s ease",pointerEvents:"none"},x=a$1?{position:"absolute",top:0,left:0,right:0,bottom:0,borderRadius:"inherit",background:`linear-gradient(135deg, ${l} 0%, ${d} 100%)`,pointerEvents:"none"}:{};return jsxs("div",{ref:Er(s,v),className:a("relative overflow-hidden rounded-xl","bg-gray-900 border border-gray-800","transition-all duration-300",p&&"border-gray-700 shadow-2xl shadow-black/20",e),style:b,onMouseMove:n,onMouseEnter:()=>c(true),onMouseLeave:()=>c(false),...m,children:[a$1&&jsx("div",{style:x,"aria-hidden":"true"}),jsx("div",{style:y,"aria-hidden":"true"}),jsx("div",{className:"relative z-10",children:r})]})});Ct.displayName="SpotlightCard";function Er(...r){return e=>{r.forEach(t=>{typeof t=="function"?t(e):t&&typeof t=="object"&&(t.current=e);});}}var Lt=re.forwardRef(({text:r,className:e,revealColor:t="currentColor",hiddenColor:o="rgba(128, 128, 128, 0.3)",threshold:a$1=.5,byWord:l=false,byChar:d=false,style:b,...m},s)=>{let v=useRef(null),[g,T]=useState(0),p=Rr(),c=useCallback(()=>{if(!v.current)return;let y=v.current.getBoundingClientRect(),x=window.innerHeight,E=x*(1-a$1),i=x*a$1,u=y.top+y.height/2,M=0;u<=E&&u>=i?M=(E-u)/(E-i):u<i&&(M=1),T(Math.max(0,Math.min(1,M)));},[a$1]);useEffect(()=>{if(p){T(1);return}c();let y=()=>{requestAnimationFrame(c);};return window.addEventListener("scroll",y,{passive:true}),window.addEventListener("resize",y,{passive:true}),()=>{window.removeEventListener("scroll",y),window.removeEventListener("resize",y);}},[c,p]);let n=()=>{if(d){let y=r.split("");return y.map((x,E)=>{let i=g*y.length,u=E<i;return jsx("span",{style:{color:u?t:o,transition:"color 0.1s ease-out"},children:x},E)})}if(l){let y=r.split(" ");return y.map((x,E)=>{let i=g*y.length,u=E<i;return jsxs("span",{children:[jsx("span",{style:{color:u?t:o,transition:"color 0.15s ease-out"},children:x}),E<y.length-1&&" "]},E)})}return jsx("span",{style:{background:`linear-gradient(90deg, ${t} ${g*100}%, ${o} ${g*100}%)`,WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent",backgroundClip:"text",transition:"background 0.1s ease-out"},children:r})};return jsx("div",{ref:Cr(s,v),className:a("font-medium",e),style:b,...m,children:n()})});Lt.displayName="TextReveal";function Rr(){let[r,e]=useState(false);return useEffect(()=>{let t=window.matchMedia("(prefers-reduced-motion: reduce)");e(t.matches);let o=a=>{e(a.matches);};return t.addEventListener("change",o),()=>t.removeEventListener("change",o)},[]),r}function Cr(...r){return e=>{r.forEach(t=>{typeof t=="function"?t(e):t&&typeof t=="object"&&(t.current=e);});}}var Lr=["#ff0080","#7928ca","#0070f3","#00dfd8"],Ht=re.forwardRef(({children:r,className:e,colors:t=Lr,speed:o=3,blur:a$1=true,blurAmount:l=100,type:d="mesh",animate:b=true,style:m,...s},v)=>{let[g,T]=useState(false),p=Sr(),c=b&&!p;useEffect(()=>{T(true);},[]);let n=()=>{switch(d){case "linear":return jsx("div",{className:"absolute inset-0",style:{background:`linear-gradient(
42
- ${c?"var(--gradient-angle, 0deg)":"135deg"},
43
- ${t.join(", ")}
44
- )`,animation:c?`gradient-rotate ${o}s linear infinite`:void 0}});case "radial":return jsx("div",{className:"absolute inset-0",style:{background:`radial-gradient(
45
- circle at ${c?"var(--gradient-x, 50%) var(--gradient-y, 50%)":"50% 50%"},
46
- ${t.join(", ")}
47
- )`,animation:c?`gradient-move ${o}s ease-in-out infinite`:void 0}});case "conic":return jsx("div",{className:"absolute inset-0",style:{background:`conic-gradient(
48
- from ${c?"var(--gradient-angle, 0deg)":"0deg"} at 50% 50%,
49
- ${t.join(", ")},
50
- ${t[0]}
51
- )`,animation:c?`gradient-spin ${o}s linear infinite`:void 0}});default:return jsx(Fragment,{children:t.map((y,x)=>{let E=360/t.length*x,i=o/t.length*x;return jsx("div",{className:"absolute rounded-full mix-blend-screen",style:{width:"60%",height:"60%",background:`radial-gradient(circle at center, ${y} 0%, transparent 70%)`,top:`${30+Math.sin(E*Math.PI/180)*20}%`,left:`${30+Math.cos(E*Math.PI/180)*20}%`,animation:c?`gradient-blob ${o}s ease-in-out infinite`:void 0,animationDelay:c?`${-i}s`:void 0,opacity:g?1:0,transition:"opacity 0.5s ease-out"}},x)})})}};return jsxs("div",{ref:v,className:a("relative overflow-hidden",e),style:m,...s,children:[jsx("div",{className:"absolute inset-0",style:{filter:a$1?`blur(${l}px)`:void 0},children:n()}),r&&jsx("div",{className:"relative z-10",children:r}),jsx("style",{dangerouslySetInnerHTML:{__html:`
52
- @keyframes gradient-rotate {
53
- 0% { --gradient-angle: 0deg; }
54
- 100% { --gradient-angle: 360deg; }
55
- }
56
- @keyframes gradient-spin {
57
- 0% { transform: rotate(0deg); }
58
- 100% { transform: rotate(360deg); }
59
- }
60
- @keyframes gradient-move {
61
- 0%, 100% { --gradient-x: 0%; --gradient-y: 0%; }
62
- 25% { --gradient-x: 100%; --gradient-y: 0%; }
63
- 50% { --gradient-x: 100%; --gradient-y: 100%; }
64
- 75% { --gradient-x: 0%; --gradient-y: 100%; }
65
- }
66
- @keyframes gradient-blob {
67
- 0%, 100% { transform: translate(0, 0) scale(1); }
68
- 25% { transform: translate(20%, -20%) scale(1.1); }
69
- 50% { transform: translate(0, 20%) scale(0.9); }
70
- 75% { transform: translate(-20%, -10%) scale(1.05); }
71
- }
72
- `}})]})});Ht.displayName="AnimatedGradient";function Sr(){let[r,e]=useState(false);return useEffect(()=>{let t=window.matchMedia("(prefers-reduced-motion: reduce)");e(t.matches);let o=a=>{e(a.matches);};return t.addEventListener("change",o),()=>t.removeEventListener("change",o)},[]),r}var It=re.forwardRef(({children:r,className:e,maxTilt:t=15,perspective:o=1e3,scale:a$1=1.02,speed:l=400,glare:d=true,maxGlare:b=.3,reset:m=true,style:s,...v},g)=>{let T=useRef(null),[p,c]=useState({rotateX:0,rotateY:0,scale:1}),[n,y]=useState({x:50,y:50}),[x,E]=useState(false),i=useCallback(k=>{if(!T.current)return;let N=T.current.getBoundingClientRect(),P=N.left+N.width/2,B=N.top+N.height/2,Y=k.clientX-P,_=k.clientY-B,z=Y/(N.width/2)*t,U=-(_/(N.height/2))*t;c({rotateX:U,rotateY:z,scale:a$1});let le=(k.clientX-N.left)/N.width*100,A=(k.clientY-N.top)/N.height*100;y({x:le,y:A});},[t,a$1]),u=()=>{E(true);},M=()=>{E(false),m&&c({rotateX:0,rotateY:0,scale:1});},h={...s,perspective:`${o}px`},C={transform:`rotateX(${p.rotateX}deg) rotateY(${p.rotateY}deg) scale(${p.scale})`,transition:x?"none":`transform ${l}ms ease-out`,transformStyle:"preserve-3d"},S={position:"absolute",top:0,left:0,right:0,bottom:0,borderRadius:"inherit",background:`linear-gradient(
73
- ${Math.atan2(n.y-50,n.x-50)*(180/Math.PI)+90}deg,
74
- rgba(255, 255, 255, ${x?b:0}) 0%,
75
- transparent 80%
76
- )`,transition:x?"opacity 0.1s ease-out":`opacity ${l}ms ease-out`,pointerEvents:"none",opacity:x?1:0};return jsx("div",{ref:zr(g,T),className:a("relative",e),style:h,onMouseMove:i,onMouseEnter:u,onMouseLeave:M,...v,children:jsxs("div",{style:C,className:"relative",children:[r,d&&jsx("div",{style:S,"aria-hidden":"true"})]})})});It.displayName="TiltCard";function zr(...r){return e=>{r.forEach(t=>{typeof t=="function"?t(e):t&&typeof t=="object"&&(t.current=e);});}}var zt=re.forwardRef(({src:r,type:e="native",poster:t,autoPlay:o=true,loop:a$1=true,muted:l=true,controls:d=false,objectFit:b="cover",overlay:m=true,overlayColor:s="rgba(0, 0, 0, 0.4)",gradient:v=false,gradientDirection:g="bottom",playbackRate:T=1,fadeIn:p=true,children:c,className:n,style:y,...x},E)=>{let i=useRef(null),[u,M]=useState(false),[h,C]=useState(false);useEffect(()=>{e==="native"&&i.current&&(i.current.playbackRate=T);},[T,e]);let S=()=>{M(true);},k=()=>{C(true);},N=z=>{let U=new URLSearchParams({autoplay:o?"1":"0",mute:l?"1":"0",loop:a$1?"1":"0",controls:d?"1":"0",playlist:z,modestbranding:"1",rel:"0",showinfo:"0",iv_load_policy:"3",disablekb:"1",enablejsapi:"1",playsinline:"1"});return `https://www.youtube.com/embed/${z}?${U.toString()}`},P=z=>{let U=new URLSearchParams({autoplay:o?"1":"0",muted:l?"1":"0",loop:a$1?"1":"0",controls:d?"1":"0",background:"1",quality:"auto",dnt:"1"});return `https://player.vimeo.com/video/${z}?${U.toString()}`},B=()=>{let z={cover:"object-cover",contain:"object-contain",fill:"object-fill"}[b];switch(e){case "youtube":return jsx("iframe",{src:N(r),className:a("absolute inset-0 w-full h-full pointer-events-none","scale-[1.2]"),style:{opacity:u||!p?1:0,transition:p?"opacity 0.8s ease-out":void 0},allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:true,onLoad:()=>M(true),title:"YouTube video background"});case "vimeo":return jsx("iframe",{src:P(r),className:"absolute inset-0 w-full h-full pointer-events-none",style:{opacity:u||!p?1:0,transition:p?"opacity 0.8s ease-out":void 0},allow:"autoplay; fullscreen; picture-in-picture",allowFullScreen:true,onLoad:()=>M(true),title:"Vimeo video background"});default:return jsx("video",{ref:i,src:r,poster:t,autoPlay:o,loop:a$1,muted:l,controls:d,playsInline:true,className:a("absolute inset-0 w-full h-full",z),style:{opacity:h||!p?1:0,transition:p?"opacity 0.8s ease-out":void 0},onLoadedData:S,onPlaying:k})}},Y=()=>{if(!v)return null;let z=[];return (g==="top"||g==="both")&&z.push(jsx("div",{className:"absolute top-0 left-0 right-0 h-1/3",style:{background:`linear-gradient(to bottom, ${s}, transparent)`},"aria-hidden":"true"},"top")),(g==="bottom"||g==="both")&&z.push(jsx("div",{className:"absolute bottom-0 left-0 right-0 h-1/3",style:{background:`linear-gradient(to top, ${s}, transparent)`},"aria-hidden":"true"},"bottom")),jsx(Fragment,{children:z})},_=n&&/\b(fixed|absolute|sticky)\b/.test(n);return jsxs("div",{ref:E,className:a("overflow-hidden",!_&&"relative",n),style:y,...x,children:[t&&p&&!u&&!h&&jsx("div",{className:"absolute inset-0 bg-cover bg-center",style:{backgroundImage:`url(${t})`},"aria-hidden":"true"}),B(),m&&!v&&jsx("div",{className:"absolute inset-0",style:{backgroundColor:s},"aria-hidden":"true"}),Y(),c&&jsx("div",{className:"relative z-10 h-full",children:c})]})});zt.displayName="VideoBackground";var Ft=re.forwardRef(({children:r,autoPlay:e=false,interval:t=5e3,loop:o=true,pauseOnHover:a$1=true,indicators:l="dots",indicatorPosition:d="bottom",showArrows:b=true,arrowPosition:m="inside",transition:s="slide",transitionDuration:v=500,onSlideChange:g,showPlayPause:T=false,playPausePosition:p="right",className:c,style:n,...y},x)=>{let E=()=>s==="slide"&&o?1:0,[i,u]=useState(E),[M,h]=useState(!e),[C,S]=useState(false),[k,N]=useState(false),[P,B]=useState(false),[Y,_]=useState(null),[z,U]=useState(null),le=useRef(null),A=re.Children.count(r),Q=_r(),be=useCallback(R=>s!=="slide"||!o?R:R===0?A-1:R===A+1?0:R-1,[o,A,s]),D=useCallback(R=>{if(k)return;let w=R;if(o?s!=="slide"&&(R<0?w=A-1:R>=A&&(w=0)):w=Math.max(0,Math.min(R,A-1)),w!==i){N(true),u(w);let L=o&&s==="slide"?w===0?A-1:w===A+1?0:w-1:w;g==null||g(L),setTimeout(()=>N(false),v);}},[i,A,o,k,v,s,g]);useEffect(()=>{!o||k||s!=="slide"||(i===0?setTimeout(()=>{B(true),u(A),setTimeout(()=>B(false),50);},v):i===A+1&&setTimeout(()=>{B(true),u(1),setTimeout(()=>B(false),50);},v));},[i,A,o,k,v,s]);let J=useCallback(()=>{D(i+1);},[i,D]),ce=useCallback(()=>{D(i-1);},[i,D]),Le=useCallback(()=>{S(R=>!R);},[]);useCallback(()=>{S(false);},[]);useCallback(()=>{S(true);},[]);useEffect(()=>{if(!e||M||C||Q)return;let R=setInterval(J,t);return ()=>clearInterval(R)},[e,t,M,C,J,Q]);let Se=R=>{_(R.targetTouches[0].clientX);},$e=R=>{U(R.targetTouches[0].clientX);},He=()=>{if(!Y||!z)return;let R=Y-z;Math.abs(R)>=50&&(R>0?J():ce()),_(null),U(null);};useEffect(()=>{let R=L=>{L.key==="ArrowLeft"?ce():L.key==="ArrowRight"&&J();},w=le.current;return w==null||w.addEventListener("keydown",R),()=>w==null?void 0:w.removeEventListener("keydown",R)},[J,ce]);let Ye=()=>{let R=Q||P?0:v,w=be(i);switch(s){case "fade":return re.Children.map(r,(L,I)=>jsx("div",{className:a("absolute inset-0 w-full h-full",I===w?"z-10":"z-0"),style:{opacity:I===w?1:0,transition:`opacity ${R}ms ease-in-out`},children:L},I));case "scale":return re.Children.map(r,(L,I)=>jsx("div",{className:a("absolute inset-0 w-full h-full",I===w?"z-10":"z-0"),style:{opacity:I===w?1:0,transform:`scale(${I===w?1:.9})`,transition:`opacity ${R}ms ease-in-out, transform ${R}ms ease-in-out`},children:L},I));default:{let L=re.Children.toArray(r);return (o?[L[L.length-1],...L,L[0]]:L).map((O,j)=>jsx("div",{className:"absolute inset-0 w-full h-full",style:{transform:`translateX(${(j-i)*100}%)`,transition:P?"none":`transform ${R}ms ease-in-out`},children:O},j))}}},ve=()=>{if(l==="none")return null;let R=d.includes("inside"),w=d.includes("top"),L=be(i),I=a("flex items-center justify-center gap-2",R?a("absolute left-1/2 -translate-x-1/2 z-20",w?"top-4":"bottom-4"):a("mt-4",w&&"order-first mb-4 mt-0")),O=j=>{D(o&&s==="slide"?j+1:j);};return jsx("div",{className:I,role:"tablist",children:Array.from({length:A},(j,G)=>{let Z=G===L;switch(l){case "bars":return jsx("button",{onClick:()=>O(G),className:a("h-1 rounded-full transition-all duration-300",Z?"w-8 bg-white":"w-4 bg-white/50 hover:bg-white/70"),role:"tab","aria-selected":Z,"aria-label":`\uC2AC\uB77C\uC774\uB4DC ${G+1}`},G);case "numbers":return jsx("button",{onClick:()=>O(G),className:a("w-8 h-8 rounded-full text-sm font-medium transition-all duration-300",Z?"bg-white text-gray-900":"bg-white/30 text-white hover:bg-white/50"),role:"tab","aria-selected":Z,"aria-label":`\uC2AC\uB77C\uC774\uB4DC ${G+1}`,children:G+1},G);default:return jsx("button",{onClick:()=>O(G),className:a("w-2.5 h-2.5 rounded-full transition-all duration-300",Z?"bg-white scale-125":"bg-white/50 hover:bg-white/70"),role:"tab","aria-selected":Z,"aria-label":`\uC2AC\uB77C\uC774\uB4DC ${G+1}`},G)}})})},Ae=()=>{if(!T||!e)return null;let R=!C;return jsx("button",{onClick:Le,className:a("absolute bottom-4 z-20","w-8 h-8 rounded-full flex items-center justify-center","bg-white/80 hover:bg-white text-gray-800","transition-all duration-200","focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-white",{left:"left-4",center:"left-1/2 -translate-x-1/2",right:"right-4"}[p]),"aria-label":R?"\uC77C\uC2DC\uC815\uC9C0":"\uC7AC\uC0DD",children:R?jsx(Kr,{className:"w-4 h-4"}):jsx(Wr,{className:"w-4 h-4"})})},Ie=()=>{if(!b||m==="hidden")return null;let R=o||i>0,w=o||i<A-1,L=a("absolute top-1/2 -translate-y-1/2 z-20","w-10 h-10 rounded-full flex items-center justify-center","bg-white/80 hover:bg-white text-gray-800","transition-all duration-200","disabled:opacity-30 disabled:cursor-not-allowed","focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-white"),I=m==="outside"?"-left-14":"left-4",O=m==="outside"?"-right-14":"right-4";return jsxs(Fragment,{children:[jsx("button",{onClick:ce,disabled:!R,className:a(L,I),"aria-label":"\uC774\uC804 \uC2AC\uB77C\uC774\uB4DC",children:jsx(Ur,{className:"w-5 h-5"})}),jsx("button",{onClick:J,disabled:!w,className:a(L,O),"aria-label":"\uB2E4\uC74C \uC2AC\uB77C\uC774\uB4DC",children:jsx(jr,{className:"w-5 h-5"})})]})};return jsxs("div",{ref:x,className:a("flex flex-col w-full h-full",m==="outside"&&"px-16",c),style:n,...y,children:[jsxs("div",{ref:le,className:"relative overflow-hidden w-full flex-1",onMouseEnter:()=>a$1&&h(true),onMouseLeave:()=>a$1&&h(false),onTouchStart:Se,onTouchMove:$e,onTouchEnd:He,tabIndex:0,role:"region","aria-roledescription":"carousel","aria-label":"\uC774\uBBF8\uC9C0 \uC2AC\uB77C\uC774\uB354",children:[Ye(),Ie(),Ae(),d.includes("inside")&&ve()]}),!d.includes("inside")&&ve()]})});Ft.displayName="Carousel";function _r(){let[r,e]=useState(false);return useEffect(()=>{let t=window.matchMedia("(prefers-reduced-motion: reduce)");e(t.matches);let o=a=>{e(a.matches);};return t.addEventListener("change",o),()=>t.removeEventListener("change",o)},[]),r}function Ur({className:r}){return jsx("svg",{className:r,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"})})}function jr({className:r}){return jsx("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})}function Wr({className:r}){return jsx("svg",{className:r,fill:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{d:"M8 5v14l11-7z"})})}function Kr({className:r}){return jsx("svg",{className:r,fill:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{d:"M6 4h4v16H6V4zm8 0h4v16h-4V4z"})})}function rt(r){return r.toLowerCase().replace(/[^a-z0-9가-힣ぁ-んァ-ン一-龯_.~\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"").trim()}function Jr(r){return !r||r.length===0||r.length>200?false:/^[a-z0-9가-힣ぁ-んァ-ン一-龯_.~-]+$/.test(r)}function ot(r){return r.toLowerCase().replace(/\s+/g,"-").replace(/[^a-z0-9가-힣ぁ-んァ-ン一-龯_.~-]/g,"").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}var to={pageTitle:"\uC0C8 \uAE00 \uC791\uC131",editTitle:"\uAE00 \uC218\uC815",preview:"\uBBF8\uB9AC\uBCF4\uAE30",editMode:"\uD3B8\uC9D1",basicInfo:"\uAE30\uBCF8 \uC815\uBCF4",slug:"\uC2AC\uB7EC\uADF8",slugPrefix:"/blog/",tags:"\uD0DC\uADF8",tagsPlaceholder:"\uAC1C\uBC1C, \uC77C\uC0C1, \uC5C5\uB370\uC774\uD2B8",coverImage:"\uCEE4\uBC84 \uC774\uBBF8\uC9C0 URL",coverImagePlaceholder:"https://example.com/image.jpg",publishDate:"\uBC1C\uD589 \uC608\uC57D\uC77C\uC2DC",publishDateHint:"\uBE44\uC6CC\uB450\uBA74 \uC989\uC2DC \uBC1C\uD589\uB428",expiresAt:"\uB9CC\uB8CC \uC77C\uC2DC",expiresAtHint:"\uBE44\uC6CC\uB450\uBA74 \uB9CC\uB8CC\uB418\uC9C0 \uC54A\uC74C",titleLabel:"\uC81C\uBAA9",titlePlaceholder:"\uC81C\uBAA9\uC744 \uC785\uB825\uD558\uC138\uC694",excerpt:"\uC694\uC57D",excerptPlaceholder:"\uCE74\uB4DC\uC5D0 \uD45C\uC2DC\uB420 \uC9E7\uC740 \uC694\uC57D",contentLabel:"\uBCF8\uBB38",contentPlaceholder:"\uB9C8\uD06C\uB2E4\uC6B4\uC73C\uB85C \uC791\uC131\uD558\uC138\uC694...",cancel:"\uCDE8\uC18C",saveDraft:"\uC784\uC2DC\uC800\uC7A5",publish:"\uBC1C\uD589",update:"\uC218\uC815 \uC644\uB8CC",saving:"\uC800\uC7A5 \uC911...",translateHint:"AI \uBC88\uC5ED \uAE30\uB2A5",translateButton:"AI \uBC88\uC5ED",translating:"\uBC88\uC5ED \uC911...",translateSuccess:"\uBC88\uC5ED \uC644\uB8CC!",requiredFields:"\uD544\uC218 \uD544\uB4DC\uB97C \uC785\uB825\uD574\uC8FC\uC138\uC694",saveError:"\uC800\uC7A5 \uC911 \uC624\uB958 \uBC1C\uC0DD",translateError:"\uBC88\uC5ED \uC911 \uC624\uB958 \uBC1C\uC0DD",noTitle:"\uC81C\uBAA9 \uC5C6\uC74C",bold:"\uAD75\uAC8C",italic:"\uAE30\uC6B8\uC784",strikethrough:"\uCDE8\uC18C\uC120",heading:"\uC81C\uBAA9",link:"\uB9C1\uD06C",image:"\uC774\uBBF8\uC9C0",code:"\uCF54\uB4DC",codeBlock:"\uCF54\uB4DC\uBE14\uB85D",quote:"\uC778\uC6A9\uBB38",list:"\uBAA9\uB85D",orderedList:"\uC21C\uC11C \uBAA9\uB85D",horizontalRule:"\uC218\uD3C9\uC120"},ro={enableSlug:true,enableTags:true,enableCoverImage:true,enablePublishDate:true,enableExcerpt:true,enableTranslation:true,enablePreview:true,enableMarkdownToolbar:true,enableAutoSave:true,enableExpiresAt:false},oo=[{key:"ko",label:"\uD55C\uAD6D\uC5B4",isPrimary:true,flag:"\u{1F1F0}\u{1F1F7}"},{key:"en",label:"English",flag:"\u{1F1FA}\u{1F1F8}"},{key:"ja",label:"\u65E5\u672C\u8A9E",flag:"\u{1F1EF}\u{1F1F5}"}];function at(r){let e={};return r.forEach(t=>{e[t.key]="";}),e}function no(r,e){var t,o,a,l,d,b,m,s;return {slug:(t=e==null?void 0:e.slug)!=null?t:"",title:(o=e==null?void 0:e.title)!=null?o:at(r),excerpt:(a=e==null?void 0:e.excerpt)!=null?a:at(r),content:(l=e==null?void 0:e.content)!=null?l:at(r),tags:(d=e==null?void 0:e.tags)!=null?d:[],coverImage:(b=e==null?void 0:e.coverImage)!=null?b:"",publishedAt:(m=e==null?void 0:e.publishedAt)!=null?m:null,expiresAt:(s=e==null?void 0:e.expiresAt)!=null?s:null}}var Vt=createContext(null);function F(){let r=useContext(Vt);if(!r)throw new Error("useBlogEditor must be used within a BlogEditorProvider");return r}function st({children:r,initialData:e,isEditMode:t=false,languages:o=oo,defaultLanguage:a,labels:l,callbacks:d,features:b,variant:m="default",autoSaveKey:s,autoSaveInterval:v=3e3}){var ve,Ae,Ie,R;let g=(R=(Ie=(ve=o.find(w=>w.isPrimary))==null?void 0:ve.key)!=null?Ie:(Ae=o[0])==null?void 0:Ae.key)!=null?R:"ko",T=a!=null?a:g,p=useMemo(()=>({...to,...l}),[l]),c=useMemo(()=>({...ro,...b}),[b]),[n,y]=useState(()=>no(o,e)),[x,E]=useState(T),[i,u]=useState(false),[M,h]=useState(false),[C,S]=useState(false),[k,N]=useState(false),[P,B]=useState(null),[Y,_]=useState(false),[z,U]=useState(t||!!(e!=null&&e.slug)),[le,A]=useState("idle"),Q=useRef(null),be=useRef(true),D=s||(t?null:"blog-editor-draft");useEffect(()=>{if(!(!c.enableAutoSave||!D||t))try{let w=localStorage.getItem(D);if(w){let L=JSON.parse(w);y(L);}}catch{}},[]),useEffect(()=>{if(!(!c.enableAutoSave||!D)){if(be.current){be.current=false;return}return Q.current&&clearTimeout(Q.current),A("saving"),Q.current=setTimeout(()=>{try{localStorage.setItem(D,JSON.stringify(n)),A("saved"),setTimeout(()=>A("idle"),2e3);}catch{A("idle");}},v),()=>{Q.current&&clearTimeout(Q.current);}}},[n,c.enableAutoSave,D,v]);let J=useCallback(()=>{if(D)try{localStorage.removeItem(D);}catch{}},[D]),ce=useCallback((w,L)=>{y(I=>({...I,[w]:L}));},[]),Le=useCallback((w,L,I)=>{y(O=>({...O,[w]:{...O[w],[L]:I}}));},[]),Xe=useCallback(w=>rt(w),[]),Ge=useCallback(async w=>{let L=n.title[g],I=n.content[g];if(!L||!I){B(p.requiredFields);return}if(c.enableSlug&&!n.slug){B(p.requiredFields);return}h(true),B(null);try{await d.onSave(n,w),J();}catch{B(p.saveError);}finally{h(false);}},[n,g,p,c,d,J]),Se=useCallback(async()=>{if(!d.onTranslate)return;let w=n.title[g],L=n.content[g],I=n.excerpt[g];if(!w||!L){B(p.requiredFields);return}S(true),B(null),_(false);try{let O=await d.onTranslate({sourceLanguage:g,title:w,content:L,excerpt:I||void 0});y(j=>{let G={...j.title},Z={...j.content},ft={...j.excerpt};return Object.keys(O).forEach(ye=>{if(ye!==g){let _e=O[ye];if(typeof _e=="object"&&_e!==null){let me=_e;me.title&&(G[ye]=me.title),me.content&&(Z[ye]=me.content),me.excerpt&&(ft[ye]=me.excerpt);}}}),{...j,title:G,content:Z,excerpt:ft}}),_(!0),setTimeout(()=>_(!1),3e3);}catch{B(p.translateError);}finally{S(false);}},[n,g,p,d]),$e=useCallback(async w=>{if(!d.onUploadImage)return null;N(true),B(null);try{return await d.onUploadImage(w)}catch{return B("\uC774\uBBF8\uC9C0 \uC5C5\uB85C\uB4DC \uC2E4\uD328"),null}finally{N(false);}},[d]),He=useCallback(()=>{var w;(w=d.onCancel)==null||w.call(d);},[d]),Ye=useMemo(()=>({formData:n,activeLanguage:x,showPreview:i,submitting:M,translating:C,uploading:k,error:P,translateSuccess:Y,autoSaveStatus:le,languages:o,features:c,labels:p,variant:m,isEditMode:t,setActiveLanguage:E,setShowPreview:u,updateField:ce,updateMultilingualField:Le,handleSave:Ge,handleTranslate:Se,handleUploadImage:$e,handleCancel:He,setError:B,generateSlug:Xe,slugManuallyEdited:z,setSlugManuallyEdited:U}),[n,x,i,M,C,k,P,Y,le,o,c,p,m,t,ce,Le,Ge,Se,$e,He,Xe,z,U]);return jsx(Vt.Provider,{value:Ye,children:r})}var Te=re.forwardRef(({onBack:r,backLink:e,className:t},o)=>{let{labels:a$1,isEditMode:l$1,formData:d}=F();return jsx("header",{ref:o,className:a("flex items-center justify-between mb-8",t),children:jsxs("div",{className:"flex items-center gap-4",children:[e||r&&jsx("button",{type:"button",onClick:r,className:"p-2 text-muted-foreground hover:text-foreground transition-colors","aria-label":"\uB4A4\uB85C\uAC00\uAE30",children:jsx(l,{name:"chevronLeft",size:24})}),jsxs("div",{children:[jsx("h1",{className:"text-2xl font-bold text-foreground",children:l$1?a$1.editTitle:a$1.pageTitle}),l$1&&d.slug&&jsxs("p",{className:"text-sm text-muted-foreground",children:[a$1.slugPrefix,d.slug]})]})]})})});Te.displayName="BlogEditorHeader";var xe=re.forwardRef(({className:r},e)=>{var u,M;let{formData:t,updateField:o,features:a$1,labels:l$1,variant:d,handleUploadImage:b,uploading:m,setSlugManuallyEdited:s}=F(),[v,g]=useState(""),T=useRef(null),p=a("rounded-xl p-6 space-y-4",d==="glass"?"bg-white/10 backdrop-blur-sm border border-white/20 dark:bg-background/20 dark:border-border/50":d==="minimal"?"bg-transparent":"bg-background",r),c="w-full px-3 py-2 border border-border rounded-lg bg-background text-foreground focus:ring-1 focus:ring-ring focus:border-transparent transition-colors",n="block text-sm font-medium text-foreground mb-1",y=useCallback(h=>{let C=h.trim();C&&!t.tags.includes(C)&&o("tags",[...t.tags,C]),g("");},[t.tags,o]),x=useCallback(h=>{o("tags",t.tags.filter(C=>C!==h));},[t.tags,o]),E=useCallback(h=>{let C=h.target.value;if(C.includes(",")){let S=C.split(",");S.forEach((k,N)=>{N<S.length-1?y(k):g(k);});}else g(C);},[y]),i=useCallback(h=>{h.key==="Enter"?(h.preventDefault(),y(v)):h.key==="Backspace"&&!v&&t.tags.length>0&&x(t.tags[t.tags.length-1]);},[v,t.tags,y,x]);return jsxs("div",{ref:e,className:p,children:[jsx("h2",{className:"font-semibold text-foreground",children:l$1.basicInfo}),jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[a$1.enableSlug&&jsxs("div",{children:[jsxs("label",{className:n,children:[l$1.slug," *"]}),jsxs("div",{className:"flex items-center",children:[jsx("span",{className:"text-muted-foreground mr-1 text-sm",children:l$1.slugPrefix}),jsx("input",{type:"text",value:t.slug,onChange:h=>{o("slug",ot(h.target.value)),s(true);},className:a(c,"flex-1"),placeholder:"my-post-slug"})]})]}),a$1.enableTags&&jsxs("div",{children:[jsx("label",{className:n,children:l$1.tags}),jsxs("div",{className:a("flex flex-wrap items-center gap-2 min-h-[42px] px-3 py-2 border border-border rounded-lg bg-background focus-within:ring-1 focus-within:ring-ring focus-within:border-transparent transition-colors"),children:[t.tags.map(h=>jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 bg-primary/10 text-primary text-sm rounded-md",children:[h,jsx("button",{type:"button",onClick:()=>x(h),className:"hover:text-primary transition-colors","aria-label":`${h} \uD0DC\uADF8 \uC0AD\uC81C`,children:jsx(l,{name:"x",size:14})})]},h)),jsx("input",{type:"text",value:v,onChange:E,onKeyDown:i,className:"flex-1 min-w-[100px] bg-transparent outline-none text-foreground text-sm",placeholder:t.tags.length===0?l$1.tagsPlaceholder:"\uD0DC\uADF8 \uCD94\uAC00..."})]}),jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:"\uC27C\uD45C(,) \uB610\uB294 Enter\uB85C \uD0DC\uADF8 \uCD94\uAC00"})]})]}),a$1.enableCoverImage&&jsxs("div",{children:[jsx("label",{className:n,children:l$1.coverImage}),jsxs("div",{className:"space-y-3",children:[t.coverImage&&jsxs("div",{className:"relative w-full h-40 rounded-lg overflow-hidden bg-muted",children:[jsx("img",{src:t.coverImage,alt:"\uCEE4\uBC84 \uC774\uBBF8\uC9C0 \uBBF8\uB9AC\uBCF4\uAE30",className:"w-full h-full object-cover"}),jsx("button",{type:"button",onClick:()=>o("coverImage",""),className:"absolute top-2 right-2 p-1.5 bg-red-500 text-white rounded-full hover:bg-red-600 transition-colors","aria-label":"\uC774\uBBF8\uC9C0 \uC0AD\uC81C",children:jsx(l,{name:"x",size:14})})]}),jsxs("div",{className:"flex gap-2",children:[jsx("input",{type:"text",value:t.coverImage,onChange:h=>o("coverImage",h.target.value),className:a(c,"flex-1"),placeholder:l$1.coverImagePlaceholder}),jsx("input",{ref:T,type:"file",accept:"image/*",className:"hidden",onChange:async h=>{var S;let C=(S=h.target.files)==null?void 0:S[0];if(C){let k=await b(C);k&&o("coverImage",k);}h.target.value="";}}),jsx("button",{type:"button",onClick:()=>{var h;return (h=T.current)==null?void 0:h.click()},disabled:m,className:"px-3 py-2 border border-border rounded-lg hover:bg-muted disabled:opacity-50 disabled:cursor-not-allowed transition-colors",title:"\uC774\uBBF8\uC9C0 \uC5C5\uB85C\uB4DC",children:m?jsx(l,{name:"loader",size:20,spin:true}):jsx(l,{name:"upload",size:20})})]})]})]}),jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[a$1.enablePublishDate&&jsxs("div",{children:[jsx("label",{className:n,children:l$1.publishDate}),jsx("input",{type:"datetime-local",value:(u=t.publishedAt)!=null?u:"",onChange:h=>o("publishedAt",h.target.value||null),className:c}),jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:l$1.publishDateHint})]}),a$1.enableExpiresAt&&jsxs("div",{children:[jsx("label",{className:n,children:l$1.expiresAt}),jsx("input",{type:"datetime-local",value:(M=t.expiresAt)!=null?M:"",onChange:h=>o("expiresAt",h.target.value||null),className:c}),jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:l$1.expiresAtHint})]})]})]})});xe.displayName="BlogEditorMetadata";var Ee=re.forwardRef(({className:r},e)=>{let{languages:t,activeLanguage:o,setActiveLanguage:a$1,showPreview:l$1,setShowPreview:d,features:b,labels:m}=F();return jsxs("div",{ref:e,className:a("flex items-center border-b border-border sticky top-0 z-10 bg-background",r),role:"tablist","aria-label":"\uC5B8\uC5B4 \uC120\uD0DD",children:[jsx("div",{className:"flex flex-1",children:t.map(s=>{let v=o===s.key,g=s.isPrimary;return jsxs("button",{type:"button",role:"tab","aria-selected":v,"aria-controls":`tabpanel-${s.key}`,id:`tab-${s.key}`,onClick:()=>a$1(s.key),className:a("flex-1 px-4 py-3 text-sm font-medium transition-colors",v?"bg-primary/10 text-primary border-b-2 border-primary":"text-muted-foreground hover:bg-muted"),children:[s.flag&&jsx("span",{className:"mr-1.5",children:s.flag}),s.label,g&&" *"]},s.key)})}),b.enablePreview&&jsxs("button",{type:"button",onClick:()=>d(!l$1),className:"inline-flex items-center gap-1.5 px-3 py-2 mx-2 text-sm border border-border rounded-lg hover:bg-muted transition-colors shrink-0",children:[jsx(l,{name:l$1?"pencil":"eye",size:14}),l$1?m.editMode:m.preview]})]})});Ee.displayName="BlogEditorLanguageTabs";var Me=re.forwardRef(({className:r,textareaRef:e},t)=>{var i;let{formData:o,activeLanguage:a$1,updateMultilingualField:l,updateField:d,features:b,labels:m,languages:s,generateSlug:v,isEditMode:g,slugManuallyEdited:T}=F(),p=((i=s.find(u=>u.isPrimary))==null?void 0:i.key)===a$1,c=s.find(u=>u.key===a$1),n="w-full px-3 py-2 border border-border rounded-lg bg-background text-foreground focus:ring-1 focus:ring-ring focus:border-transparent transition-colors",y="block text-sm font-medium text-foreground mb-1",x=u=>{l("title",a$1,u),a$1==="en"&&!g&&!T&&d("slug",v(u));},E=u=>p?`${u} *`:`${u} (${(c==null?void 0:c.label)||a$1})`;return jsxs("div",{ref:t,className:a("p-6 space-y-4",r),children:[jsxs("div",{children:[jsx("label",{className:y,children:E(m.titleLabel)}),jsx("input",{type:"text",value:o.title[a$1]||"",onChange:u=>x(u.target.value),className:n,placeholder:m.titlePlaceholder})]}),b.enableExcerpt&&jsxs("div",{children:[jsx("label",{className:y,children:E(m.excerpt)}),jsx("textarea",{value:o.excerpt[a$1]||"",onChange:u=>l("excerpt",a$1,u.target.value),rows:2,className:a(n,"resize-none"),placeholder:m.excerptPlaceholder})]}),jsxs("div",{children:[jsxs("label",{className:y,children:[E(m.contentLabel)," (\uB9C8\uD06C\uB2E4\uC6B4)"]}),jsx("textarea",{ref:e,value:o.content[a$1]||"",onChange:u=>l("content",a$1,u.target.value),rows:15,className:a(n,"font-mono text-sm resize-y min-h-[300px]"),placeholder:m.contentPlaceholder})]})]})});Me.displayName="BlogEditorContent";function mo(r){return r.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}function dt(r){if(!r)return "";let e=r;return e=e.replace(/```(\w*)\n?([\s\S]*?)```/g,(t,o,a)=>`<pre class="bg-gray-100 dark:bg-gray-800 rounded-lg p-4 overflow-x-auto my-4"><code class="text-sm">${mo(a.trim())}</code></pre>`),e=e.replace(/`([^`]+)`/g,'<code class="bg-gray-100 dark:bg-gray-700 px-1.5 py-0.5 rounded text-sm">$1</code>'),e=e.replace(/^######\s+(.+)$/gm,'<h6 class="text-base font-semibold mt-4 mb-2">$1</h6>'),e=e.replace(/^#####\s+(.+)$/gm,'<h5 class="text-lg font-semibold mt-4 mb-2">$1</h5>'),e=e.replace(/^####\s+(.+)$/gm,'<h4 class="text-xl font-semibold mt-5 mb-2">$1</h4>'),e=e.replace(/^###\s+(.+)$/gm,'<h3 class="text-2xl font-semibold mt-5 mb-3">$1</h3>'),e=e.replace(/^##\s+(.+)$/gm,'<h2 class="text-2xl font-bold mt-6 mb-3">$1</h2>'),e=e.replace(/^#\s+(.+)$/gm,'<h1 class="text-3xl font-bold mt-6 mb-4">$1</h1>'),e=e.replace(/^---+$/gm,'<hr class="my-6 border-gray-300 dark:border-gray-600" />'),e=e.replace(/^>\s+(.+)$/gm,'<blockquote class="border-l-4 border-gray-300 dark:border-gray-600 pl-4 my-4 italic text-gray-600 dark:text-gray-400">$1</blockquote>'),e=e.replace(/\*\*(.+?)\*\*/g,"<strong>$1</strong>"),e=e.replace(/\*(.+?)\*/g,"<em>$1</em>"),e=e.replace(/~~(.+?)~~/g,'<del class="text-gray-500">$1</del>'),e=e.replace(/\[([^\]]+)\]\(([^)]+)\)/g,'<a href="$2" class="text-cyan-600 hover:text-cyan-700 dark:text-cyan-400 dark:hover:text-cyan-300 underline" target="_blank" rel="noopener noreferrer">$1</a>'),e=e.replace(/^[-*]\s+(.+)$/gm,'<li class="ml-4">$1</li>'),e=e.replace(/(<li[^>]*>.*<\/li>\n?)+/g,t=>`<ul class="list-disc list-inside my-4 space-y-1">${t}</ul>`),e=e.replace(/\n(?!<)/g,`<br />
77
- `),e=e.replace(/(<br \/>[\n\s]*){3,}/g,`<br /><br />
78
- `),e}function Xt(r){return r?r.replace(/```[\s\S]*?```/g,"").replace(/`[^`]+`/g,"").replace(/^#{1,6}\s+/gm,"").replace(/\*\*(.+?)\*\*/g,"$1").replace(/\*(.+?)\*/g,"$1").replace(/~~(.+?)~~/g,"$1").replace(/\[([^\]]+)\]\([^)]+\)/g,"$1").replace(/^[-*]\s+/gm,"").replace(/^>\s+/gm,"").replace(/^---+$/gm,"").replace(/\n{3,}/g,`
79
-
80
- `).trim():""}function po(r,e=150){let t=Xt(r);return t.length<=e?t:t.slice(0,e).trim()+"..."}function ut(r,e,t,o,a){let l=r.slice(e,t),d=r.slice(0,e),b=r.slice(t),m=d+o+l+a+b,s=e+o.length+l.length+a.length;return {text:m,cursorPosition:s}}var vo=[{icon:"bold",label:"bold",markdown:{before:"**",after:"**"},shortcut:"Ctrl+B"},{icon:"italic",label:"italic",markdown:{before:"*",after:"*"},shortcut:"Ctrl+I"},{icon:"strikethrough",label:"strikethrough",markdown:{before:"~~",after:"~~"}},{icon:"heading",label:"heading",markdown:{before:"## ",after:""}},{icon:"link",label:"link",markdown:{before:"[",after:"](url)"},shortcut:"Ctrl+K"},{icon:"image",label:"image",markdown:{before:"![alt](",after:")"}},{icon:"code",label:"code",markdown:{before:"`",after:"`"}},{icon:"fileCode",label:"codeBlock",markdown:{before:"```\n",after:"\n```"}},{icon:"quote",label:"quote",markdown:{before:"> ",after:""}},{icon:"list",label:"list",markdown:{before:"- ",after:""}},{icon:"listOrdered",label:"orderedList",markdown:{before:"1. ",after:""}},{icon:"minus",label:"horizontalRule",markdown:{before:`
81
- ---
82
- `,after:""}}],ke=re.forwardRef(({textareaRef:r,className:e},t)=>{let{labels:o,activeLanguage:a$1,updateMultilingualField:l$1,formData:d,features:b}=F(),m=useCallback(s=>{let v=r.current;if(!v)return;let{selectionStart:g,selectionEnd:T}=v,p=d.content[a$1]||"",{text:c,cursorPosition:n}=ut(p,g,T,s.markdown.before,s.markdown.after);l$1("content",a$1,c),requestAnimationFrame(()=>{v.focus(),v.setSelectionRange(n,n);});},[r,d,a$1,l$1]);return b.enableMarkdownToolbar?jsx("div",{ref:t,className:a("flex flex-wrap gap-1 px-4 py-2 border-b border-border bg-muted",e),role:"toolbar","aria-label":"\uB9C8\uD06C\uB2E4\uC6B4 \uC11C\uC2DD",children:vo.map(s=>jsx("button",{type:"button",onClick:()=>m(s),className:"p-2 text-muted-foreground hover:text-foreground hover:bg-muted rounded transition-colors",title:`${o[s.label]||s.label}${s.shortcut?` (${s.shortcut})`:""}`,"aria-label":o[s.label]||s.label,children:jsx(l,{name:s.icon,size:16})},s.icon))}):null});ke.displayName="BlogEditorToolbar";var Re=re.forwardRef(({renderMarkdown:r,className:e},t)=>{var g,T;let{formData:o,activeLanguage:a$1,languages:l,labels:d}=F(),b=((g=l.find(p=>p.isPrimary))==null?void 0:g.key)||((T=l[0])==null?void 0:T.key),m=o.title[a$1]||o.title[b]||d.noTitle,s=o.content[a$1]||o.content[b]||"",v=re.useMemo(()=>r?r(s):jsx("div",{dangerouslySetInnerHTML:{__html:dt(s)}}),[s,r]);return jsxs("div",{ref:t,className:a("p-6",e),children:[jsx("h3",{className:"text-xl font-bold text-foreground mb-4",children:m}),jsx("div",{className:"prose dark:prose-invert max-w-none",children:v})]})});Re.displayName="BlogEditorPreview";var Ce=re.forwardRef(({cancelLink:r,className:e},t)=>{let{labels:o,submitting:a$1,handleSave:l$1,handleCancel:d,isEditMode:b,autoSaveStatus:m,features:s}=F();return jsxs("div",{ref:t,className:a("flex items-center justify-end gap-3",e),children:[s.enableAutoSave&&m!=="idle"&&jsxs("span",{className:"text-sm text-muted-foreground flex items-center gap-1",children:[m==="saving"&&jsxs(Fragment,{children:[jsx(l,{name:"loader",size:14,spin:true}),"\uC800\uC7A5 \uC911..."]}),m==="saved"&&jsxs(Fragment,{children:[jsx(l,{name:"check",size:14}),"\uC790\uB3D9\uC800\uC7A5\uB428"]})]}),r||jsx("button",{type:"button",onClick:d,className:"px-4 py-2 text-foreground hover:text-foreground transition-colors",children:o.cancel}),jsx("button",{type:"button",onClick:()=>l$1(false),disabled:a$1,className:"px-4 py-2 border border-border rounded-lg hover:bg-muted disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:o.saveDraft}),jsx("button",{type:"button",onClick:()=>l$1(true),disabled:a$1,className:"px-6 py-2 bg-primary text-white rounded-lg hover:bg-primary/90 disabled:opacity-50 disabled:cursor-not-allowed inline-flex items-center gap-2 transition-colors",children:a$1?jsxs(Fragment,{children:[jsx(l,{name:"loader",size:16,spin:true}),o.saving]}):jsxs(Fragment,{children:[jsx(l,{name:"check",size:16}),b?o.update:o.publish]})})]})});Ce.displayName="BlogEditorActions";var Be=re.forwardRef(({hint:r,className:e},t)=>{var c,n;let{labels:o,translating:a$1,translateSuccess:l$1,handleTranslate:d,formData:b,languages:m,features:s}=F();if(!s.enableTranslation)return null;let v=((c=m.find(y=>y.isPrimary))==null?void 0:c.key)||((n=m[0])==null?void 0:n.key),g=b.title[v]||"",T=b.content[v]||"",p=g&&T;return jsxs("div",{ref:t,className:a("px-6 py-3 bg-muted border-b border-border flex items-center justify-between",e),children:[jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[jsx(l,{name:"sparkles",size:16}),jsx("span",{children:r||o.translateHint})]}),jsx("button",{type:"button",onClick:d,disabled:a$1||!p,className:a("inline-flex items-center gap-2 px-4 py-2 text-sm font-medium rounded-lg transition-colors",l$1?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":"bg-primary text-white hover:bg-primary/90 disabled:opacity-50 disabled:cursor-not-allowed"),children:a$1?jsxs(Fragment,{children:[jsx(l,{name:"loader",size:16,spin:true}),o.translating]}):l$1?jsxs(Fragment,{children:[jsx(l,{name:"check",size:16}),o.translateSuccess]}):jsxs(Fragment,{children:[jsx(l,{name:"sparkles",size:16}),o.translateButton]})})]})});Be.displayName="BlogEditorTranslate";function wo({onBack:r,backLink:e,cancelLink:t,renderMarkdown:o,translateHint:a$1,maxWidth:l="max-w-4xl",className:d,children:b}){let{showPreview:m,error:s,variant:v,features:g}=F(),T=useRef(null),p=a(v==="glass"?"bg-gradient-to-br from-gray-100 to-gray-200 dark:from-gray-900 dark:to-gray-800":v==="minimal"?"":"bg-muted"),c=a("rounded-xl overflow-hidden",v==="glass"?"bg-white/10 backdrop-blur-sm border border-white/20 dark:bg-slate-800/20 dark:border-slate-700/50":v==="minimal"?"bg-transparent border border-border":"bg-background");return b?jsx("div",{className:a(p,d),children:jsx("div",{className:a(l,"mx-auto px-4 py-8"),children:b})}):jsx("div",{className:a(p,d),children:jsxs("div",{className:a(l,"mx-auto px-4 py-8"),children:[jsx(Te,{onBack:r,backLink:e}),s&&jsx("div",{className:"mb-6 p-4 bg-red-50 dark:bg-red-900/30 border border-red-200 dark:border-red-800 rounded-lg text-red-600 dark:text-red-400",children:s}),jsxs("div",{className:"space-y-6",children:[jsx(xe,{}),jsxs("div",{className:c,children:[g.enableTranslation&&jsx(Be,{hint:a$1}),jsx(Ee,{}),m?jsx(Re,{renderMarkdown:o}):jsxs(Fragment,{children:[g.enableMarkdownToolbar&&jsx(ke,{textareaRef:T}),jsx(Me,{textareaRef:T})]})]}),jsx(Ce,{cancelLink:t})]})]})})}var Yt=re.forwardRef(({initialData:r,isEditMode:e,languages:t,defaultLanguage:o,labels:a,callbacks:l,features:d,variant:b,onBack:m,backLink:s,cancelLink:v,renderMarkdown:g,translateHint:T,maxWidth:p,className:c,children:n,autoSaveKey:y,autoSaveInterval:x},E)=>jsx(st,{initialData:r,isEditMode:e,languages:t,defaultLanguage:o,labels:a,callbacks:l,features:d,variant:b,autoSaveKey:y,autoSaveInterval:x,children:jsx("div",{ref:E,children:jsx(wo,{onBack:m,backLink:s,cancelLink:v,renderMarkdown:g,translateHint:T,maxWidth:p,className:c,children:n})})}));Yt.displayName="BlogEditor";var te=Yt;te.Header=Te;te.Metadata=xe;te.LanguageTabs=Ee;te.Content=Me;te.Toolbar=ke;te.Preview=Re;te.Actions=Ce;te.Translate=Be;export{Ee as A,Me as B,dt as C,Xt as D,po as E,ut as F,ke as G,Re as H,Ce as I,Be as J,te as K,oe as a,_t as b,Ut as c,jt as d,Wt as e,Kt as f,Qt as g,Jt as h,tr as i,nr as j,Et as k,Pt as l,kt as m,Ct as n,Lt as o,Ht as p,It as q,zt as r,Ft as s,rt as t,Jr as u,ot as v,F as w,st as x,Te as y,xe as z};//# sourceMappingURL=chunk-COR6CDMA.mjs.map
83
- //# sourceMappingURL=chunk-COR6CDMA.mjs.map