@hua-labs/ui 2.1.1 → 2.3.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 (618) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +91 -43
  3. package/dist/{ComponentLayout-DrZpz0yv.d.mts → ComponentLayout-Clf6C2jV.d.mts} +38 -4
  4. package/dist/DashboardSidebar-ZulecqKs.d.mts +54 -0
  5. package/dist/DashboardToolbar-BRZayZNz.d.mts +122 -0
  6. package/dist/EmptyState-SQ3Z6Vf2.d.mts +64 -0
  7. package/dist/{Modal-CrXmb3Ll.d.mts → Modal-DKKtBtbh.d.mts} +12 -6
  8. package/dist/{Section-BWzyshgX.d.mts → Section-DKdIG1sg.d.mts} +11 -12
  9. package/dist/SectionHeader-DHwQ_xh8.d.mts +1653 -0
  10. package/dist/{Switch-Dzm5TLR3.d.mts → Switch-D0l7SJrz.d.mts} +31 -15
  11. package/dist/Tooltip-Cv7nYhPW.d.mts +304 -0
  12. package/dist/advanced/Logo.d.ts +8 -4
  13. package/dist/advanced/Logo.d.ts.map +1 -1
  14. package/dist/advanced/dashboard.d.ts +28 -6
  15. package/dist/advanced/dashboard.d.ts.map +1 -1
  16. package/dist/advanced-dashboard.d.mts +9 -2278
  17. package/dist/advanced-dashboard.mjs +1 -33
  18. package/dist/advanced-dashboard.mjs.map +1 -1
  19. package/dist/advanced-emotion.d.mts +13 -5
  20. package/dist/advanced-emotion.mjs +1 -1
  21. package/dist/advanced-motion.d.mts +144 -61
  22. package/dist/advanced-motion.mjs +1 -1
  23. package/dist/advanced.d.mts +70 -37
  24. package/dist/advanced.mjs +14 -3
  25. package/dist/advanced.mjs.map +1 -1
  26. package/dist/chunk-32OZGTPV.mjs +41 -0
  27. package/dist/chunk-32OZGTPV.mjs.map +1 -0
  28. package/dist/chunk-6WBFZ2KV.mjs +3 -0
  29. package/dist/chunk-6WBFZ2KV.mjs.map +1 -0
  30. package/dist/chunk-7CGJQSJO.mjs +3 -0
  31. package/dist/chunk-7CGJQSJO.mjs.map +1 -0
  32. package/dist/chunk-7T3IUG3G.mjs +3 -0
  33. package/dist/chunk-7T3IUG3G.mjs.map +1 -0
  34. package/dist/chunk-A5YOVVM5.mjs +3 -0
  35. package/dist/chunk-A5YOVVM5.mjs.map +1 -0
  36. package/dist/chunk-AJOGTUWS.mjs +3 -0
  37. package/dist/chunk-AJOGTUWS.mjs.map +1 -0
  38. package/dist/chunk-AQTSQYH2.mjs +3 -0
  39. package/dist/chunk-AQTSQYH2.mjs.map +1 -0
  40. package/dist/chunk-B2MRZJQA.mjs +3 -0
  41. package/dist/chunk-B2MRZJQA.mjs.map +1 -0
  42. package/dist/chunk-BOX4TONF.mjs +3 -0
  43. package/dist/chunk-BOX4TONF.mjs.map +1 -0
  44. package/dist/chunk-C2DOXNBK.mjs +3 -0
  45. package/dist/chunk-C2DOXNBK.mjs.map +1 -0
  46. package/dist/chunk-CQBMR7VU.mjs +3 -0
  47. package/dist/chunk-CQBMR7VU.mjs.map +1 -0
  48. package/dist/chunk-CYAAAEPJ.mjs +3 -0
  49. package/dist/chunk-CYAAAEPJ.mjs.map +1 -0
  50. package/dist/chunk-D7MTTTQY.mjs +8 -0
  51. package/dist/chunk-D7MTTTQY.mjs.map +1 -0
  52. package/dist/chunk-DABVKUJN.mjs +3 -0
  53. package/dist/chunk-DABVKUJN.mjs.map +1 -0
  54. package/dist/chunk-EAZEI74V.mjs +3 -0
  55. package/dist/chunk-EAZEI74V.mjs.map +1 -0
  56. package/dist/chunk-EK6BLFVQ.mjs +3 -0
  57. package/dist/chunk-EK6BLFVQ.mjs.map +1 -0
  58. package/dist/chunk-FVUAVGP5.mjs +3 -0
  59. package/dist/chunk-FVUAVGP5.mjs.map +1 -0
  60. package/dist/chunk-GAIUZVNC.mjs +3 -0
  61. package/dist/chunk-GAIUZVNC.mjs.map +1 -0
  62. package/dist/chunk-HLBIIF4I.mjs +3 -0
  63. package/dist/chunk-HLBIIF4I.mjs.map +1 -0
  64. package/dist/chunk-I6NCGF6E.mjs +3 -0
  65. package/dist/chunk-I6NCGF6E.mjs.map +1 -0
  66. package/dist/chunk-J46VEBVF.mjs +3 -0
  67. package/dist/chunk-J46VEBVF.mjs.map +1 -0
  68. package/dist/chunk-JNW3CLCA.mjs +3 -0
  69. package/dist/chunk-JNW3CLCA.mjs.map +1 -0
  70. package/dist/chunk-JY3QVUGW.mjs +3 -0
  71. package/dist/chunk-JY3QVUGW.mjs.map +1 -0
  72. package/dist/chunk-KHBZOGUU.mjs +3 -0
  73. package/dist/chunk-KHBZOGUU.mjs.map +1 -0
  74. package/dist/chunk-KPNNAQLI.mjs +3 -0
  75. package/dist/chunk-KPNNAQLI.mjs.map +1 -0
  76. package/dist/chunk-L2LGSILS.mjs +13 -0
  77. package/dist/chunk-L2LGSILS.mjs.map +1 -0
  78. package/dist/chunk-LPHUWTQ2.mjs +3 -0
  79. package/dist/chunk-LPHUWTQ2.mjs.map +1 -0
  80. package/dist/chunk-M4JE7TQL.mjs +3 -0
  81. package/dist/chunk-M4JE7TQL.mjs.map +1 -0
  82. package/dist/chunk-MEDKGNLV.mjs +3 -0
  83. package/dist/chunk-MEDKGNLV.mjs.map +1 -0
  84. package/dist/chunk-MR46CSMC.mjs +3 -0
  85. package/dist/chunk-MR46CSMC.mjs.map +1 -0
  86. package/dist/chunk-NSDWT2JM.mjs +3 -0
  87. package/dist/chunk-NSDWT2JM.mjs.map +1 -0
  88. package/dist/chunk-OBMOTQEU.mjs +3 -0
  89. package/dist/chunk-OBMOTQEU.mjs.map +1 -0
  90. package/dist/chunk-QEMPERUK.mjs +3 -0
  91. package/dist/chunk-QEMPERUK.mjs.map +1 -0
  92. package/dist/chunk-RICRFXFP.mjs +3 -0
  93. package/dist/chunk-RICRFXFP.mjs.map +1 -0
  94. package/dist/chunk-SOK7VBSM.mjs +13 -0
  95. package/dist/chunk-SOK7VBSM.mjs.map +1 -0
  96. package/dist/chunk-SPZ7SZH4.mjs +3 -0
  97. package/dist/chunk-SPZ7SZH4.mjs.map +1 -0
  98. package/dist/chunk-TB3DARQO.mjs +3 -0
  99. package/dist/chunk-TB3DARQO.mjs.map +1 -0
  100. package/dist/chunk-TND4HPKW.mjs +51 -0
  101. package/dist/chunk-TND4HPKW.mjs.map +1 -0
  102. package/dist/chunk-TSAXVD2H.mjs +35 -0
  103. package/dist/chunk-TSAXVD2H.mjs.map +1 -0
  104. package/dist/chunk-UR3TIWBS.mjs +3 -0
  105. package/dist/chunk-UR3TIWBS.mjs.map +1 -0
  106. package/dist/chunk-XU2XBAEW.mjs +3 -0
  107. package/dist/chunk-XU2XBAEW.mjs.map +1 -0
  108. package/dist/chunk-XXHDNZTG.mjs +3 -0
  109. package/dist/chunk-XXHDNZTG.mjs.map +1 -0
  110. package/dist/chunk-YW5DA7Q6.mjs +3 -0
  111. package/dist/chunk-YW5DA7Q6.mjs.map +1 -0
  112. package/dist/chunk-ZTHUGQZL.mjs +3 -0
  113. package/dist/chunk-ZTHUGQZL.mjs.map +1 -0
  114. package/dist/chunk-ZVCGC6EV.mjs +3 -0
  115. package/dist/chunk-ZVCGC6EV.mjs.map +1 -0
  116. package/dist/chunk-ZZ67E3M5.mjs +3 -0
  117. package/dist/chunk-ZZ67E3M5.mjs.map +1 -0
  118. package/dist/{common-YLvZxA_K.d.mts → common-Bej8Okcg.d.mts} +1 -1
  119. package/dist/components/Accordion.d.ts +14 -7
  120. package/dist/components/Accordion.d.ts.map +1 -1
  121. package/dist/components/Action.d.ts.map +1 -1
  122. package/dist/components/ActionToolbar.d.ts +10 -6
  123. package/dist/components/ActionToolbar.d.ts.map +1 -1
  124. package/dist/components/Alert.d.ts +16 -2
  125. package/dist/components/Alert.d.ts.map +1 -1
  126. package/dist/components/Autocomplete.d.ts +6 -4
  127. package/dist/components/Autocomplete.d.ts.map +1 -1
  128. package/dist/components/Avatar.d.ts +20 -7
  129. package/dist/components/Avatar.d.ts.map +1 -1
  130. package/dist/components/Badge.d.ts +27 -9
  131. package/dist/components/Badge.d.ts.map +1 -1
  132. package/dist/components/Bookmark.d.ts +4 -2
  133. package/dist/components/Bookmark.d.ts.map +1 -1
  134. package/dist/components/BottomSheet.d.ts +13 -9
  135. package/dist/components/BottomSheet.d.ts.map +1 -1
  136. package/dist/components/Box.d.ts +9 -0
  137. package/dist/components/Box.d.ts.map +1 -0
  138. package/dist/components/Breadcrumb.d.ts +9 -4
  139. package/dist/components/Breadcrumb.d.ts.map +1 -1
  140. package/dist/components/Button.d.ts +3 -29
  141. package/dist/components/Button.d.ts.map +1 -1
  142. package/dist/components/Button.variants.d.ts +54 -10
  143. package/dist/components/Button.variants.d.ts.map +1 -1
  144. package/dist/components/Card.d.ts +49 -14
  145. package/dist/components/Card.d.ts.map +1 -1
  146. package/dist/components/ChatMessage.d.ts +3 -2
  147. package/dist/components/ChatMessage.d.ts.map +1 -1
  148. package/dist/components/Checkbox.d.ts +5 -2
  149. package/dist/components/Checkbox.d.ts.map +1 -1
  150. package/dist/components/CodeBlock.d.ts +8 -5
  151. package/dist/components/CodeBlock.d.ts.map +1 -1
  152. package/dist/components/ColorPicker.d.ts +4 -2
  153. package/dist/components/ColorPicker.d.ts.map +1 -1
  154. package/dist/components/Command.d.ts +28 -14
  155. package/dist/components/Command.d.ts.map +1 -1
  156. package/dist/components/ComponentLayout.d.ts +5 -2
  157. package/dist/components/ComponentLayout.d.ts.map +1 -1
  158. package/dist/components/ConfirmModal.d.ts +4 -0
  159. package/dist/components/ConfirmModal.d.ts.map +1 -1
  160. package/dist/components/Container.d.ts +18 -5
  161. package/dist/components/Container.d.ts.map +1 -1
  162. package/dist/components/ContextMenu.d.ts +36 -36
  163. package/dist/components/ContextMenu.d.ts.map +1 -1
  164. package/dist/components/DatePicker.d.ts +12 -5
  165. package/dist/components/DatePicker.d.ts.map +1 -1
  166. package/dist/components/Divider.d.ts +2 -1
  167. package/dist/components/Divider.d.ts.map +1 -1
  168. package/dist/components/Drawer.d.ts +17 -12
  169. package/dist/components/Drawer.d.ts.map +1 -1
  170. package/dist/components/Dropdown.d.ts +25 -57
  171. package/dist/components/Dropdown.d.ts.map +1 -1
  172. package/dist/components/EmotionAnalysis.d.ts +3 -1
  173. package/dist/components/EmotionAnalysis.d.ts.map +1 -1
  174. package/dist/components/EmotionButton.d.ts +3 -1
  175. package/dist/components/EmotionButton.d.ts.map +1 -1
  176. package/dist/components/EmotionMeter.d.ts +3 -1
  177. package/dist/components/EmotionMeter.d.ts.map +1 -1
  178. package/dist/components/EmotionSelector.d.ts +3 -1
  179. package/dist/components/EmotionSelector.d.ts.map +1 -1
  180. package/dist/components/FeatureCard.d.ts +9 -3
  181. package/dist/components/FeatureCard.d.ts.map +1 -1
  182. package/dist/components/Form.d.ts +20 -54
  183. package/dist/components/Form.d.ts.map +1 -1
  184. package/dist/components/FormControl.d.ts +3 -2
  185. package/dist/components/FormControl.d.ts.map +1 -1
  186. package/dist/components/Grid.d.ts +11 -4
  187. package/dist/components/Grid.d.ts.map +1 -1
  188. package/dist/components/HeroSection.d.ts +4 -2
  189. package/dist/components/HeroSection.d.ts.map +1 -1
  190. package/dist/components/Icon/Icon.d.ts +12 -8
  191. package/dist/components/Icon/Icon.d.ts.map +1 -1
  192. package/dist/components/IconsaxGallery/index.d.ts +8 -5
  193. package/dist/components/IconsaxGallery/index.d.ts.map +1 -1
  194. package/dist/components/InfoCard.d.ts +5 -2
  195. package/dist/components/InfoCard.d.ts.map +1 -1
  196. package/dist/components/Input.d.ts +29 -4
  197. package/dist/components/Input.d.ts.map +1 -1
  198. package/dist/components/Label.d.ts +15 -10
  199. package/dist/components/Label.d.ts.map +1 -1
  200. package/dist/components/LanguageToggle.d.ts +5 -3
  201. package/dist/components/LanguageToggle.d.ts.map +1 -1
  202. package/dist/components/Link.d.ts +17 -6
  203. package/dist/components/Link.d.ts.map +1 -1
  204. package/dist/components/LoadingSpinner.d.ts +7 -3
  205. package/dist/components/LoadingSpinner.d.ts.map +1 -1
  206. package/dist/components/Menu.d.ts +59 -60
  207. package/dist/components/Menu.d.ts.map +1 -1
  208. package/dist/components/Modal.d.ts +12 -6
  209. package/dist/components/Modal.d.ts.map +1 -1
  210. package/dist/components/Navigation.d.ts +26 -11
  211. package/dist/components/Navigation.d.ts.map +1 -1
  212. package/dist/components/NumberInput.d.ts +5 -2
  213. package/dist/components/NumberInput.d.ts.map +1 -1
  214. package/dist/components/PageNavigation.d.ts +6 -3
  215. package/dist/components/PageNavigation.d.ts.map +1 -1
  216. package/dist/components/PageTransition.d.ts +2 -2
  217. package/dist/components/PageTransition.d.ts.map +1 -1
  218. package/dist/components/Pagination.d.ts +5 -2
  219. package/dist/components/Pagination.d.ts.map +1 -1
  220. package/dist/components/Panel.d.ts +1 -7
  221. package/dist/components/Panel.d.ts.map +1 -1
  222. package/dist/components/Popover.d.ts +25 -9
  223. package/dist/components/Popover.d.ts.map +1 -1
  224. package/dist/components/Pressable.d.ts +14 -0
  225. package/dist/components/Pressable.d.ts.map +1 -0
  226. package/dist/components/Progress.d.ts +36 -13
  227. package/dist/components/Progress.d.ts.map +1 -1
  228. package/dist/components/Prose.d.ts +51 -0
  229. package/dist/components/Prose.d.ts.map +1 -0
  230. package/dist/components/Radio.d.ts +29 -33
  231. package/dist/components/Radio.d.ts.map +1 -1
  232. package/dist/components/ScrollArea.d.ts +8 -9
  233. package/dist/components/ScrollArea.d.ts.map +1 -1
  234. package/dist/components/ScrollIndicator.d.ts +9 -8
  235. package/dist/components/ScrollIndicator.d.ts.map +1 -1
  236. package/dist/components/ScrollProgress.d.ts +3 -2
  237. package/dist/components/ScrollProgress.d.ts.map +1 -1
  238. package/dist/components/ScrollToTop.d.ts +5 -5
  239. package/dist/components/ScrollToTop.d.ts.map +1 -1
  240. package/dist/components/Section.d.ts +12 -9
  241. package/dist/components/Section.d.ts.map +1 -1
  242. package/dist/components/SectionHeader.d.ts +3 -2
  243. package/dist/components/SectionHeader.d.ts.map +1 -1
  244. package/dist/components/Select.d.ts +18 -5
  245. package/dist/components/Select.d.ts.map +1 -1
  246. package/dist/components/Skeleton.d.ts +43 -15
  247. package/dist/components/Skeleton.d.ts.map +1 -1
  248. package/dist/components/Slider.d.ts +7 -5
  249. package/dist/components/Slider.d.ts.map +1 -1
  250. package/dist/components/Stack.d.ts +22 -6
  251. package/dist/components/Stack.d.ts.map +1 -1
  252. package/dist/components/StatsPanel.d.ts +4 -2
  253. package/dist/components/StatsPanel.d.ts.map +1 -1
  254. package/dist/components/Switch.d.ts +9 -4
  255. package/dist/components/Switch.d.ts.map +1 -1
  256. package/dist/components/Table.d.ts +43 -18
  257. package/dist/components/Table.d.ts.map +1 -1
  258. package/dist/components/Tabs.d.ts +50 -77
  259. package/dist/components/Tabs.d.ts.map +1 -1
  260. package/dist/components/Text.d.ts +11 -0
  261. package/dist/components/Text.d.ts.map +1 -0
  262. package/dist/components/Textarea.d.ts +24 -6
  263. package/dist/components/Textarea.d.ts.map +1 -1
  264. package/dist/components/ThemeToggle.d.ts +18 -27
  265. package/dist/components/ThemeToggle.d.ts.map +1 -1
  266. package/dist/components/Timeline.d.ts +4 -2
  267. package/dist/components/Timeline.d.ts.map +1 -1
  268. package/dist/components/Toast.d.ts +1 -1
  269. package/dist/components/Toast.d.ts.map +1 -1
  270. package/dist/components/Toggle.d.ts +11 -2
  271. package/dist/components/Toggle.d.ts.map +1 -1
  272. package/dist/components/Tooltip.d.ts +5 -2
  273. package/dist/components/Tooltip.d.ts.map +1 -1
  274. package/dist/components/Upload.d.ts +5 -3
  275. package/dist/components/Upload.d.ts.map +1 -1
  276. package/dist/components/advanced/AdvancedPageTransition.d.ts +7 -5
  277. package/dist/components/advanced/AdvancedPageTransition.d.ts.map +1 -1
  278. package/dist/components/advanced/AnimatedGradient.d.ts +6 -2
  279. package/dist/components/advanced/AnimatedGradient.d.ts.map +1 -1
  280. package/dist/components/advanced/Carousel.d.ts +3 -1
  281. package/dist/components/advanced/Carousel.d.ts.map +1 -1
  282. package/dist/components/advanced/DotNav.d.ts +12 -5
  283. package/dist/components/advanced/DotNav.d.ts.map +1 -1
  284. package/dist/components/advanced/GlowCard.d.ts +4 -1
  285. package/dist/components/advanced/GlowCard.d.ts.map +1 -1
  286. package/dist/components/advanced/HorizontalScroll.d.ts +4 -1
  287. package/dist/components/advanced/HorizontalScroll.d.ts.map +1 -1
  288. package/dist/components/advanced/ImageReveal.d.ts +23 -1
  289. package/dist/components/advanced/ImageReveal.d.ts.map +1 -1
  290. package/dist/components/advanced/Marquee.d.ts +4 -2
  291. package/dist/components/advanced/Marquee.d.ts.map +1 -1
  292. package/dist/components/advanced/Parallax.d.ts +12 -7
  293. package/dist/components/advanced/Parallax.d.ts.map +1 -1
  294. package/dist/components/advanced/SpotlightCard.d.ts +13 -12
  295. package/dist/components/advanced/SpotlightCard.d.ts.map +1 -1
  296. package/dist/components/advanced/TextReveal.d.ts +5 -1
  297. package/dist/components/advanced/TextReveal.d.ts.map +1 -1
  298. package/dist/components/advanced/TiltCard.d.ts +6 -2
  299. package/dist/components/advanced/TiltCard.d.ts.map +1 -1
  300. package/dist/components/advanced/VideoBackground.d.ts +4 -1
  301. package/dist/components/advanced/VideoBackground.d.ts.map +1 -1
  302. package/dist/components/advanced/blog-editor/BlogEditor.d.ts +4 -2
  303. package/dist/components/advanced/blog-editor/BlogEditor.d.ts.map +1 -1
  304. package/dist/components/advanced/blog-editor/BlogEditorActions.d.ts +4 -2
  305. package/dist/components/advanced/blog-editor/BlogEditorActions.d.ts.map +1 -1
  306. package/dist/components/advanced/blog-editor/BlogEditorContent.d.ts +4 -2
  307. package/dist/components/advanced/blog-editor/BlogEditorContent.d.ts.map +1 -1
  308. package/dist/components/advanced/blog-editor/BlogEditorHeader.d.ts +4 -2
  309. package/dist/components/advanced/blog-editor/BlogEditorHeader.d.ts.map +1 -1
  310. package/dist/components/advanced/blog-editor/BlogEditorLanguageTabs.d.ts +4 -2
  311. package/dist/components/advanced/blog-editor/BlogEditorLanguageTabs.d.ts.map +1 -1
  312. package/dist/components/advanced/blog-editor/BlogEditorMetadata.d.ts +5 -3
  313. package/dist/components/advanced/blog-editor/BlogEditorMetadata.d.ts.map +1 -1
  314. package/dist/components/advanced/blog-editor/BlogEditorPreview.d.ts +5 -3
  315. package/dist/components/advanced/blog-editor/BlogEditorPreview.d.ts.map +1 -1
  316. package/dist/components/advanced/blog-editor/BlogEditorToolbar.d.ts +4 -2
  317. package/dist/components/advanced/blog-editor/BlogEditorToolbar.d.ts.map +1 -1
  318. package/dist/components/advanced/blog-editor/BlogEditorTranslate.d.ts +4 -2
  319. package/dist/components/advanced/blog-editor/BlogEditorTranslate.d.ts.map +1 -1
  320. package/dist/components/advanced/blog-editor/types.d.ts +5 -2
  321. package/dist/components/advanced/blog-editor/types.d.ts.map +1 -1
  322. package/dist/components/advanced/emotion/EmotionAnalysis.d.ts +3 -1
  323. package/dist/components/advanced/emotion/EmotionAnalysis.d.ts.map +1 -1
  324. package/dist/components/advanced/emotion/EmotionButton.d.ts +3 -1
  325. package/dist/components/advanced/emotion/EmotionButton.d.ts.map +1 -1
  326. package/dist/components/advanced/emotion/EmotionMeter.d.ts +4 -2
  327. package/dist/components/advanced/emotion/EmotionMeter.d.ts.map +1 -1
  328. package/dist/components/advanced/emotion/EmotionSelector.d.ts +3 -1
  329. package/dist/components/advanced/emotion/EmotionSelector.d.ts.map +1 -1
  330. package/dist/components/dashboard/ActivityFeed.d.ts +5 -2
  331. package/dist/components/dashboard/ActivityFeed.d.ts.map +1 -1
  332. package/dist/components/dashboard/BarChart.d.ts +3 -2
  333. package/dist/components/dashboard/BarChart.d.ts.map +1 -1
  334. package/dist/components/dashboard/DashboardGrid.d.ts +13 -3
  335. package/dist/components/dashboard/DashboardGrid.d.ts.map +1 -1
  336. package/dist/components/dashboard/DashboardSidebar.d.ts +15 -82
  337. package/dist/components/dashboard/DashboardSidebar.d.ts.map +1 -1
  338. package/dist/components/dashboard/DashboardToolbar.d.ts +3 -2
  339. package/dist/components/dashboard/DashboardToolbar.d.ts.map +1 -1
  340. package/dist/components/dashboard/EmptyState.d.ts +3 -2
  341. package/dist/components/dashboard/EmptyState.d.ts.map +1 -1
  342. package/dist/components/dashboard/MembershipBadge.d.ts +3 -2
  343. package/dist/components/dashboard/MembershipBadge.d.ts.map +1 -1
  344. package/dist/components/dashboard/MerchantList.d.ts +3 -2
  345. package/dist/components/dashboard/MerchantList.d.ts.map +1 -1
  346. package/dist/components/dashboard/MetricCard.d.ts +3 -2
  347. package/dist/components/dashboard/MetricCard.d.ts.map +1 -1
  348. package/dist/components/dashboard/MiniBarChart.d.ts +3 -2
  349. package/dist/components/dashboard/MiniBarChart.d.ts.map +1 -1
  350. package/dist/components/dashboard/NotificationCard.d.ts +5 -2
  351. package/dist/components/dashboard/NotificationCard.d.ts.map +1 -1
  352. package/dist/components/dashboard/ProfileCard.d.ts +5 -2
  353. package/dist/components/dashboard/ProfileCard.d.ts.map +1 -1
  354. package/dist/components/dashboard/ProgressCard.d.ts +6 -3
  355. package/dist/components/dashboard/ProgressCard.d.ts.map +1 -1
  356. package/dist/components/dashboard/QuickActionCard.d.ts +22 -27
  357. package/dist/components/dashboard/QuickActionCard.d.ts.map +1 -1
  358. package/dist/components/dashboard/RoutingBreakdownCard.d.ts +3 -2
  359. package/dist/components/dashboard/RoutingBreakdownCard.d.ts.map +1 -1
  360. package/dist/components/dashboard/SettlementTimeline.d.ts +3 -2
  361. package/dist/components/dashboard/SettlementTimeline.d.ts.map +1 -1
  362. package/dist/components/dashboard/StatCard.d.ts +7 -4
  363. package/dist/components/dashboard/StatCard.d.ts.map +1 -1
  364. package/dist/components/dashboard/SummaryCard.d.ts +6 -3
  365. package/dist/components/dashboard/SummaryCard.d.ts.map +1 -1
  366. package/dist/components/dashboard/TransactionDetailDrawer.d.ts +2 -2
  367. package/dist/components/dashboard/TransactionDetailDrawer.d.ts.map +1 -1
  368. package/dist/components/dashboard/TransactionsTable.d.ts +3 -2
  369. package/dist/components/dashboard/TransactionsTable.d.ts.map +1 -1
  370. package/dist/components/dashboard/TrendChart.d.ts +3 -2
  371. package/dist/components/dashboard/TrendChart.d.ts.map +1 -1
  372. package/dist/components/dashboard/YearlyHeatmap.d.ts +4 -2
  373. package/dist/components/dashboard/YearlyHeatmap.d.ts.map +1 -1
  374. package/dist/components/dashboard/kanban/KanbanAddCard.d.ts.map +1 -1
  375. package/dist/components/dashboard/kanban/KanbanAddColumn.d.ts.map +1 -1
  376. package/dist/components/dashboard/kanban/KanbanBoard.d.ts.map +1 -1
  377. package/dist/components/dashboard/kanban/KanbanCard.d.ts.map +1 -1
  378. package/dist/components/dashboard/kanban/KanbanColumn.d.ts.map +1 -1
  379. package/dist/components/dashboard/kanban/KanbanColumnHeader.d.ts.map +1 -1
  380. package/dist/components/dashboard/kanban/KanbanDropIndicator.d.ts.map +1 -1
  381. package/dist/components/dashboard/kanban/index.d.ts +1 -1
  382. package/dist/components/dashboard/kanban/types.d.ts +24 -12
  383. package/dist/components/dashboard/kanban/types.d.ts.map +1 -1
  384. package/dist/components/scrollbar/scrollbar.d.ts +2 -1
  385. package/dist/components/scrollbar/scrollbar.d.ts.map +1 -1
  386. package/dist/context/MotionConfigContext.d.ts +41 -0
  387. package/dist/context/MotionConfigContext.d.ts.map +1 -0
  388. package/dist/data.d.mts +55 -23
  389. package/dist/data.d.ts +45 -3
  390. package/dist/data.d.ts.map +1 -1
  391. package/dist/data.mjs +2 -2
  392. package/dist/data.mjs.map +1 -1
  393. package/dist/feedback.d.mts +6 -293
  394. package/dist/feedback.d.ts +7 -5
  395. package/dist/feedback.d.ts.map +1 -1
  396. package/dist/feedback.mjs +1 -1
  397. package/dist/form.d.mts +99 -114
  398. package/dist/form.mjs +9 -4
  399. package/dist/form.mjs.map +1 -1
  400. package/dist/hooks/index.d.ts +6 -0
  401. package/dist/hooks/index.d.ts.map +1 -1
  402. package/dist/hooks/useAnimatedEntrance.d.ts +24 -0
  403. package/dist/hooks/useAnimatedEntrance.d.ts.map +1 -0
  404. package/dist/hooks/useBreakpoint.d.ts +22 -0
  405. package/dist/hooks/useBreakpoint.d.ts.map +1 -0
  406. package/dist/hooks/useDotEnv.d.ts +12 -0
  407. package/dist/hooks/useDotEnv.d.ts.map +1 -0
  408. package/dist/hooks/useDotMap.d.ts +38 -0
  409. package/dist/hooks/useDotMap.d.ts.map +1 -0
  410. package/dist/{icons-DmhQEH_E.d.mts → icons-DcOBy9Hf.d.mts} +4 -0
  411. package/dist/iconsax-extended.mjs +2 -2
  412. package/dist/iconsax-extended.mjs.map +1 -1
  413. package/dist/iconsax.mjs +2 -2
  414. package/dist/iconsax.mjs.map +1 -1
  415. package/dist/index.d.mts +360 -210
  416. package/dist/index.d.ts +74 -64
  417. package/dist/index.d.ts.map +1 -1
  418. package/dist/index.mjs +15 -15
  419. package/dist/index.mjs.map +1 -1
  420. package/dist/interactive/kanban.d.ts +12 -0
  421. package/dist/interactive/kanban.d.ts.map +1 -0
  422. package/dist/interactive-kanban.d.mts +378 -0
  423. package/dist/interactive-kanban.mjs +3 -0
  424. package/dist/interactive-kanban.mjs.map +1 -0
  425. package/dist/interactive.d.mts +193 -197
  426. package/dist/interactive.d.ts +7 -5
  427. package/dist/interactive.d.ts.map +1 -1
  428. package/dist/interactive.mjs +1 -1
  429. package/dist/interactive.mjs.map +1 -1
  430. package/dist/landing/LandingAbout.d.ts +2 -2
  431. package/dist/landing/LandingAbout.d.ts.map +1 -1
  432. package/dist/landing/LandingCTA.d.ts +2 -2
  433. package/dist/landing/LandingCTA.d.ts.map +1 -1
  434. package/dist/landing/LandingContact.d.ts +2 -2
  435. package/dist/landing/LandingContact.d.ts.map +1 -1
  436. package/dist/landing/LandingExperience.d.ts +1 -1
  437. package/dist/landing/LandingExperience.d.ts.map +1 -1
  438. package/dist/landing/LandingFeatures.d.ts +1 -1
  439. package/dist/landing/LandingFeatures.d.ts.map +1 -1
  440. package/dist/landing/LandingHero.d.ts +2 -2
  441. package/dist/landing/LandingHero.d.ts.map +1 -1
  442. package/dist/landing/LandingLogoCloud.d.ts +2 -2
  443. package/dist/landing/LandingLogoCloud.d.ts.map +1 -1
  444. package/dist/landing/LandingMetrics.d.ts +1 -1
  445. package/dist/landing/LandingMetrics.d.ts.map +1 -1
  446. package/dist/landing/LandingProjects.d.ts +1 -1
  447. package/dist/landing/LandingProjects.d.ts.map +1 -1
  448. package/dist/landing/LandingShowcase.d.ts +2 -2
  449. package/dist/landing/LandingShowcase.d.ts.map +1 -1
  450. package/dist/landing/LandingSkills.d.ts +1 -1
  451. package/dist/landing/LandingSkills.d.ts.map +1 -1
  452. package/dist/landing/LandingStats.d.ts +1 -1
  453. package/dist/landing/LandingStats.d.ts.map +1 -1
  454. package/dist/landing/LandingTestimonials.d.ts +1 -1
  455. package/dist/landing/LandingTestimonials.d.ts.map +1 -1
  456. package/dist/landing/types.d.ts +42 -30
  457. package/dist/landing/types.d.ts.map +1 -1
  458. package/dist/landing.d.mts +47 -37
  459. package/dist/landing.mjs +4 -20
  460. package/dist/landing.mjs.map +1 -1
  461. package/dist/lib/Slot.d.ts.map +1 -1
  462. package/dist/lib/icon-providers.d.ts +25 -27
  463. package/dist/lib/icon-providers.d.ts.map +1 -1
  464. package/dist/lib/icons.d.ts +4 -0
  465. package/dist/lib/icons.d.ts.map +1 -1
  466. package/dist/lib/styles/animation.d.ts +35 -0
  467. package/dist/lib/styles/animation.d.ts.map +1 -0
  468. package/dist/lib/styles/disabled.d.ts +15 -0
  469. package/dist/lib/styles/disabled.d.ts.map +1 -0
  470. package/dist/lib/styles/focus.d.ts +34 -0
  471. package/dist/lib/styles/focus.d.ts.map +1 -0
  472. package/dist/lib/styles/glass.d.ts +18 -0
  473. package/dist/lib/styles/glass.d.ts.map +1 -0
  474. package/dist/lib/styles/hover.d.ts +9 -0
  475. package/dist/lib/styles/hover.d.ts.map +1 -0
  476. package/dist/lib/styles/index.d.ts +6 -0
  477. package/dist/lib/styles/index.d.ts.map +1 -1
  478. package/dist/lib/styles/transition.d.ts +42 -0
  479. package/dist/lib/styles/transition.d.ts.map +1 -0
  480. package/dist/lib/types/common.d.ts +3 -3
  481. package/dist/lib/types/common.d.ts.map +1 -1
  482. package/dist/lib/utils.d.ts.map +1 -1
  483. package/dist/native/Box.d.ts +11 -0
  484. package/dist/native/Box.d.ts.map +1 -0
  485. package/dist/native/Pressable.d.ts +10 -0
  486. package/dist/native/Pressable.d.ts.map +1 -0
  487. package/dist/native/Text.d.ts +11 -0
  488. package/dist/native/Text.d.ts.map +1 -0
  489. package/dist/native/index.d.ts +9 -0
  490. package/dist/native/index.d.ts.map +1 -0
  491. package/dist/native/useDotMap.d.ts +51 -0
  492. package/dist/native/useDotMap.d.ts.map +1 -0
  493. package/dist/native.mjs +2 -0
  494. package/dist/native.mjs.map +1 -0
  495. package/dist/navigation.d.mts +49 -22
  496. package/dist/navigation.d.ts +10 -8
  497. package/dist/navigation.d.ts.map +1 -1
  498. package/dist/navigation.mjs +1 -1
  499. package/dist/navigation.mjs.map +1 -1
  500. package/dist/overlay.d.mts +84 -87
  501. package/dist/overlay.mjs +2 -2
  502. package/dist/overlay.mjs.map +1 -1
  503. package/dist/sdui/SDUIRenderer.d.ts.map +1 -1
  504. package/dist/sdui/core.d.ts +50 -0
  505. package/dist/sdui/core.d.ts.map +1 -0
  506. package/dist/sdui/index.d.ts +3 -1
  507. package/dist/sdui/index.d.ts.map +1 -1
  508. package/dist/sdui/registry.d.ts.map +1 -1
  509. package/dist/sdui/types.d.ts +38 -0
  510. package/dist/sdui/types.d.ts.map +1 -1
  511. package/dist/sdui.d.mts +89 -1
  512. package/dist/sdui.mjs +2 -2
  513. package/dist/sdui.mjs.map +1 -1
  514. package/dist/theme.d.mts +85 -0
  515. package/dist/theme.d.ts +14 -0
  516. package/dist/theme.d.ts.map +1 -0
  517. package/dist/theme.mjs +3 -0
  518. package/dist/theme.mjs.map +1 -0
  519. package/package.json +50 -22
  520. package/src/styles/component-vars.css +503 -69
  521. package/src/styles/landing.css +12 -12
  522. package/src/styles/prose.css +284 -0
  523. package/src/styles/recommended-theme.css +123 -141
  524. package/src/styles/utilities.css +3 -3
  525. package/dist/advanced-dashboard.js +0 -39
  526. package/dist/advanced-dashboard.js.map +0 -1
  527. package/dist/advanced-emotion.js +0 -2
  528. package/dist/advanced-emotion.js.map +0 -1
  529. package/dist/advanced-motion.js +0 -82
  530. package/dist/advanced-motion.js.map +0 -1
  531. package/dist/advanced.js +0 -112
  532. package/dist/advanced.js.map +0 -1
  533. package/dist/chunk-3CCF7U3P.mjs +0 -3
  534. package/dist/chunk-3CCF7U3P.mjs.map +0 -1
  535. package/dist/chunk-3GAUTZXQ.mjs +0 -3
  536. package/dist/chunk-3GAUTZXQ.mjs.map +0 -1
  537. package/dist/chunk-42RGFEL2.mjs +0 -3
  538. package/dist/chunk-42RGFEL2.mjs.map +0 -1
  539. package/dist/chunk-4NJE7D6X.mjs +0 -3
  540. package/dist/chunk-4NJE7D6X.mjs.map +0 -1
  541. package/dist/chunk-6HVJFEDA.mjs +0 -3
  542. package/dist/chunk-6HVJFEDA.mjs.map +0 -1
  543. package/dist/chunk-7OYT3QSY.mjs +0 -3
  544. package/dist/chunk-7OYT3QSY.mjs.map +0 -1
  545. package/dist/chunk-ANYZ56VB.mjs +0 -3
  546. package/dist/chunk-ANYZ56VB.mjs.map +0 -1
  547. package/dist/chunk-AOSXB5JJ.mjs +0 -4
  548. package/dist/chunk-AOSXB5JJ.mjs.map +0 -1
  549. package/dist/chunk-B544MRF7.mjs +0 -3
  550. package/dist/chunk-B544MRF7.mjs.map +0 -1
  551. package/dist/chunk-CVWWS25A.mjs +0 -3
  552. package/dist/chunk-CVWWS25A.mjs.map +0 -1
  553. package/dist/chunk-DYNBM24D.mjs +0 -3
  554. package/dist/chunk-DYNBM24D.mjs.map +0 -1
  555. package/dist/chunk-FX57OSYG.mjs +0 -3
  556. package/dist/chunk-FX57OSYG.mjs.map +0 -1
  557. package/dist/chunk-IJSYSNM5.mjs +0 -3
  558. package/dist/chunk-IJSYSNM5.mjs.map +0 -1
  559. package/dist/chunk-KJZGOL2Z.mjs +0 -3
  560. package/dist/chunk-KJZGOL2Z.mjs.map +0 -1
  561. package/dist/chunk-KYRIUUQP.mjs +0 -3
  562. package/dist/chunk-KYRIUUQP.mjs.map +0 -1
  563. package/dist/chunk-LSA7DU3N.mjs +0 -73
  564. package/dist/chunk-LSA7DU3N.mjs.map +0 -1
  565. package/dist/chunk-MDLCJASB.mjs +0 -3
  566. package/dist/chunk-MDLCJASB.mjs.map +0 -1
  567. package/dist/chunk-N56BUOCD.mjs +0 -3
  568. package/dist/chunk-N56BUOCD.mjs.map +0 -1
  569. package/dist/chunk-OFYITQXI.mjs +0 -13
  570. package/dist/chunk-OFYITQXI.mjs.map +0 -1
  571. package/dist/chunk-OZNST3EZ.mjs +0 -3
  572. package/dist/chunk-OZNST3EZ.mjs.map +0 -1
  573. package/dist/chunk-RS6RKW5U.mjs +0 -13
  574. package/dist/chunk-RS6RKW5U.mjs.map +0 -1
  575. package/dist/chunk-TXBZZJNR.mjs +0 -3
  576. package/dist/chunk-TXBZZJNR.mjs.map +0 -1
  577. package/dist/chunk-TZ4YSHMC.mjs +0 -3
  578. package/dist/chunk-TZ4YSHMC.mjs.map +0 -1
  579. package/dist/chunk-U6CTBZ2U.mjs +0 -3
  580. package/dist/chunk-U6CTBZ2U.mjs.map +0 -1
  581. package/dist/chunk-WP7VFE77.mjs +0 -3
  582. package/dist/chunk-WP7VFE77.mjs.map +0 -1
  583. package/dist/chunk-XCZMLKPK.mjs +0 -3
  584. package/dist/chunk-XCZMLKPK.mjs.map +0 -1
  585. package/dist/chunk-XGHT7WMO.mjs +0 -3
  586. package/dist/chunk-XGHT7WMO.mjs.map +0 -1
  587. package/dist/chunk-XL4KTJ4L.mjs +0 -3
  588. package/dist/chunk-XL4KTJ4L.mjs.map +0 -1
  589. package/dist/chunk-Z74YUUVT.mjs +0 -3
  590. package/dist/chunk-Z74YUUVT.mjs.map +0 -1
  591. package/dist/chunk-ZXZIHU7J.mjs +0 -8
  592. package/dist/chunk-ZXZIHU7J.mjs.map +0 -1
  593. package/dist/components/EmptyState.d.ts +0 -62
  594. package/dist/components/EmptyState.d.ts.map +0 -1
  595. package/dist/data.js +0 -3
  596. package/dist/data.js.map +0 -1
  597. package/dist/feedback.js +0 -12
  598. package/dist/feedback.js.map +0 -1
  599. package/dist/form.js +0 -8
  600. package/dist/form.js.map +0 -1
  601. package/dist/iconsax-extended.js +0 -3
  602. package/dist/iconsax-extended.js.map +0 -1
  603. package/dist/iconsax.js +0 -3
  604. package/dist/iconsax.js.map +0 -1
  605. package/dist/index.js +0 -51
  606. package/dist/index.js.map +0 -1
  607. package/dist/interactive.js +0 -2
  608. package/dist/interactive.js.map +0 -1
  609. package/dist/landing.js +0 -100
  610. package/dist/landing.js.map +0 -1
  611. package/dist/lib/phosphor-icons.d.ts +0 -6
  612. package/dist/lib/phosphor-icons.d.ts.map +0 -1
  613. package/dist/navigation.js +0 -12
  614. package/dist/navigation.js.map +0 -1
  615. package/dist/overlay.js +0 -3
  616. package/dist/overlay.js.map +0 -1
  617. package/dist/sdui.js +0 -9
  618. package/dist/sdui.js.map +0 -1
@@ -1,2 +0,0 @@
1
- 'use strict';var y=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime'),classVarianceAuthority=require('class-variance-authority');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var y__default=/*#__PURE__*/_interopDefault(y);function n(...s){return tailwindMerge.twMerge(clsx.clsx(s))}var g=y__default.default.forwardRef(({className:s,value:a,max:o=100,size:l="md",color:c="blue",...d},u)=>{let v={sm:"h-2",md:"h-3",lg:"h-4"},N={blue:"bg-indigo-500",green:"bg-green-500",yellow:"bg-yellow-500",red:"bg-red-500",purple:"bg-purple-500",orange:"bg-orange-500",indigo:"bg-indigo-500",pink:"bg-pink-500",gray:"bg-gray-500"},p=Math.min(Math.max(a/o*100,0),100);return jsxRuntime.jsx("div",{ref:u,className:n("w-full bg-muted rounded-full",v[l],s),...d,children:jsxRuntime.jsx("div",{className:n("h-full rounded-full transition-all duration-300",N[c]||N.blue),style:{width:`${p}%`}})})});g.displayName="EmotionMeter";var H=y__default.default.forwardRef(({className:s,emotion:a,isSelected:o=false,size:l="md",...c},d)=>jsxRuntime.jsx("button",{ref:d,className:n("rounded-full border-2 transition-all duration-200 hover:scale-105 focus:outline-none focus:ring-1 focus:ring-ring",{sm:"w-8 h-8 text-sm",md:"w-12 h-12 text-lg",lg:"w-16 h-16 text-xl"}[l],o?"border-indigo-500 bg-indigo-50 dark:bg-indigo-900/20":"border-border bg-background",s),...c,children:a}));H.displayName="EmotionButton";var G=[{key:"joy",label:"\uAE30\uC068",icon:"smile",color:"yellow"},{key:"sadness",label:"\uC2AC\uD514",icon:"frown",color:"blue"},{key:"anger",label:"\uD654\uB0A8",icon:"angry",color:"red"},{key:"calm",label:"\uD3C9\uC628",icon:"heart",color:"green"},{key:"excitement",label:"\uC124\uB818",icon:"star",color:"pink"},{key:"worry",label:"\uAC71\uC815",icon:"meh",color:"gray"},{key:"gratitude",label:"\uAC10\uC0AC",icon:"heart",color:"purple"},{key:"loneliness",label:"\uC678\uB85C\uC6C0",icon:"user",color:"indigo"}],B=y__default.default.forwardRef(({className:s,selectedEmotion:a,onEmotionSelect:o,layout:l="grid",showIntensity:c=false,intensity:d=50,onIntensityChange:u,emotions:v=G,size:N="md",variant:p="button",...C},T)=>{let b=r=>{o==null||o(r);},w=r=>{let f=a===r.key;return p==="button"?jsxRuntime.jsx(H,{emotion:r.key,isSelected:f,size:N,onClick:()=>b(r.key),className:n("transition-all duration-200",f&&"ring-1 ring-offset-2 ring-primary"),children:r.label},r.key):p==="card"?jsxRuntime.jsx("div",{className:n("p-4 rounded-lg border-2 cursor-pointer transition-all duration-200 hover:shadow-md",f?"border-primary bg-primary/5":"border-border hover:border-primary/50"),onClick:()=>b(r.key),children:jsxRuntime.jsxs("div",{className:"flex items-center space-x-3",children:[jsxRuntime.jsx("div",{className:n("w-8 h-8 rounded-full flex items-center justify-center",f?"bg-primary text-primary-foreground":"bg-muted"),children:r.icon&&jsxRuntime.jsxs("span",{className:"text-lg",children:[r.icon==="smile"&&"\u{1F60A}",r.icon==="frown"&&"\u{1F622}",r.icon==="angry"&&"\u{1F620}",r.icon==="heart"&&"\u2764\uFE0F",r.icon==="star"&&"\u2B50",r.icon==="meh"&&"\u{1F610}",r.icon==="user"&&"\u{1F464}"]})}),jsxRuntime.jsx("span",{className:"font-medium truncate max-w-[120px]",children:r.label})]})},r.key):p==="chip"?jsxRuntime.jsx("div",{className:n("px-3 py-1 rounded-full cursor-pointer transition-all duration-200 text-sm font-medium",f?"bg-primary text-primary-foreground":"bg-muted hover:bg-muted/80"),onClick:()=>b(r.key),children:jsxRuntime.jsx("span",{className:"truncate max-w-[100px]",children:r.label})},r.key):null},M={grid:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 gap-2 md:gap-3",list:"space-y-2",compact:"flex flex-wrap gap-1"};return jsxRuntime.jsxs("div",{ref:T,className:n("space-y-4",s),...C,children:[jsxRuntime.jsx("div",{className:M[l],children:v.map(w)}),c&&a&&jsxRuntime.jsxs("div",{className:"space-y-3",children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"\uAC10\uC815 \uAC15\uB3C4"}),jsxRuntime.jsxs("span",{className:"text-sm text-muted-foreground",children:[d,"%"]})]}),jsxRuntime.jsx("input",{type:"range",min:"0",max:"100",value:d,onChange:r=>u==null?void 0:u(Number(r.target.value)),className:"w-full h-2 bg-muted rounded-lg appearance-none cursor-pointer slider"}),jsxRuntime.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[jsxRuntime.jsx("span",{children:"\uC57D\uD568"}),jsxRuntime.jsx("span",{children:"\uBCF4\uD1B5"}),jsxRuntime.jsx("span",{children:"\uAC15\uD568"})]})]}),a&&c&&jsxRuntime.jsx("div",{className:"flex justify-center",children:jsxRuntime.jsx(g,{value:d,size:"md",color:"blue"})})]})});B.displayName="EmotionSelector";var Q=classVarianceAuthority.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"}}),L=y__default.default.forwardRef(({className:s,variant:a="default",shadow:o,padding:l="none",hoverable:c,...d},u)=>jsxRuntime.jsx("div",{ref:u,className:n(Q({variant:a,shadow:o,padding:l}),c&&"transition-shadow hover:shadow-lg cursor-pointer",s),...d}));L.displayName="Card";var R=y__default.default.forwardRef(({className:s,...a},o)=>jsxRuntime.jsx("div",{ref:o,className:n("flex flex-col space-y-1 p-3",s),...a}));R.displayName="CardHeader";var k=y__default.default.forwardRef(({className:s,...a},o)=>jsxRuntime.jsx("h3",{ref:o,className:n("text-base md:text-lg font-semibold leading-tight tracking-tight",s),...a}));k.displayName="CardTitle";var P=y__default.default.forwardRef(({className:s,...a},o)=>jsxRuntime.jsx("p",{ref:o,className:n("text-sm text-muted-foreground",s),...a}));P.displayName="CardDescription";var D=y__default.default.forwardRef(({className:s,...a},o)=>jsxRuntime.jsx("div",{ref:o,className:n("px-3 pb-3",s),...a}));D.displayName="CardContent";var U=y__default.default.forwardRef(({className:s,...a},o)=>jsxRuntime.jsx("div",{ref:o,className:n("flex items-center px-3 pb-3",s),...a}));U.displayName="CardFooter";var X=classVarianceAuthority.cva("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors duration-200 ease-in-out focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2",{variants:{variant:{default:"bg-[var(--badge-default-bg)] text-[var(--badge-default-text)] hover:opacity-80",secondary:"bg-[var(--badge-secondary-bg)] text-[var(--badge-secondary-text)] hover:opacity-80",destructive:"bg-[var(--badge-destructive-bg)] text-slate-50 hover:opacity-80",error:"bg-[var(--badge-destructive-bg)] text-slate-50 hover:opacity-80",outline:"bg-transparent text-[var(--badge-outline-text)] border border-[var(--badge-outline-border)] hover:bg-[var(--badge-outline-hover-bg)]",glass:"bg-[var(--badge-glass-bg)] backdrop-blur-sm border border-[var(--badge-glass-border)] text-[var(--badge-glass-text)] hover:opacity-80"}},defaultVariants:{variant:"default"}}),E=y__default.default.memo(y__default.default.forwardRef(({className:s,variant:a="default",...o},l)=>jsxRuntime.jsx("div",{ref:l,className:n(X({variant:a}),s),...o})));E.displayName="Badge";var S=y__default.default.forwardRef(({className:s,primaryEmotion:a,emotionDistribution:o=[],keywords:l=[],intensity:c=50,positivity:d=70,energy:u=60,showMeter:v=true,showDistribution:N=true,showKeywords:p=true,showMetrics:C=true,layout:T="detailed",...b},w)=>{let M=i=>i<30?"\uC57D\uD568":i<70?"\uBCF4\uD1B5":"\uAC15\uD568",r=i=>i<30?"\uBD80\uC815\uC801":i<70?"\uC911\uB9BD\uC801":"\uAE0D\uC815\uC801",f=i=>i<30?"\uB0AE\uC74C":i<70?"\uBCF4\uD1B5":"\uB192\uC74C";return T==="compact"?jsxRuntime.jsxs("div",{ref:w,className:n("space-y-3",s),...b,children:[a&&jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"\uC8FC\uC694 \uAC10\uC815:"}),jsxRuntime.jsxs("div",{className:"flex items-center space-x-2",children:[jsxRuntime.jsxs("span",{className:"text-sm text-muted-foreground",children:[a.name," (",a.intensity,"%)"]}),v&&jsxRuntime.jsx(g,{value:a.intensity,size:"sm",color:"blue"})]})]}),C&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"\uAC10\uC815 \uAC15\uB3C4:"}),jsxRuntime.jsx("span",{className:"text-sm text-muted-foreground",children:M(c)})]}),jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"\uAE0D\uC815\uC131:"}),jsxRuntime.jsx("span",{className:"text-sm text-muted-foreground",children:r(d)})]}),jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"\uC5D0\uB108\uC9C0:"}),jsxRuntime.jsx("span",{className:"text-sm text-muted-foreground",children:f(u)})]})]}),p&&l.length>0&&jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"\uD0A4\uC6CC\uB4DC:"}),jsxRuntime.jsx("div",{className:"flex flex-wrap gap-1 mt-1",children:l.map(i=>jsxRuntime.jsx(E,{variant:"secondary",className:"text-xs",children:i},i))})]})]}):T==="card"?jsxRuntime.jsxs(L,{ref:w,className:n("",s),...b,children:[jsxRuntime.jsxs(R,{children:[jsxRuntime.jsxs(k,{className:"flex items-center",children:[jsxRuntime.jsx("span",{className:"text-2xl mr-2",children:"\u2728"}),"AI \uBD84\uC11D"]}),jsxRuntime.jsx(P,{children:"\uAC10\uC815 \uBD84\uC11D \uACB0\uACFC"})]}),jsxRuntime.jsxs(D,{className:"space-y-4",children:[a&&jsxRuntime.jsxs("div",{className:"space-y-3",children:[jsxRuntime.jsxs("div",{className:"text-sm",children:[jsxRuntime.jsx("span",{className:"font-medium",children:"\uC8FC\uC694 \uAC10\uC815:"}),jsxRuntime.jsxs("span",{className:"ml-2 text-muted-foreground",children:[a.name," (",a.intensity,"%)"]})]}),v&&jsxRuntime.jsx("div",{className:"flex justify-center",children:jsxRuntime.jsx(g,{value:a.intensity,size:"md",color:"blue"})})]}),C&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("div",{className:"text-sm",children:[jsxRuntime.jsx("span",{className:"font-medium",children:"\uAC10\uC815 \uAC15\uB3C4:"}),jsxRuntime.jsx("span",{className:"ml-2 text-muted-foreground",children:M(c)})]}),jsxRuntime.jsxs("div",{className:"text-sm",children:[jsxRuntime.jsx("span",{className:"font-medium",children:"\uAE0D\uC815\uC131:"}),jsxRuntime.jsx("span",{className:"ml-2 text-muted-foreground",children:r(d)})]}),jsxRuntime.jsxs("div",{className:"text-sm",children:[jsxRuntime.jsx("span",{className:"font-medium",children:"\uC5D0\uB108\uC9C0:"}),jsxRuntime.jsx("span",{className:"ml-2 text-muted-foreground",children:f(u)})]})]}),p&&l.length>0&&jsxRuntime.jsxs("div",{className:"text-sm",children:[jsxRuntime.jsx("span",{className:"font-medium",children:"\uD0A4\uC6CC\uB4DC:"}),jsxRuntime.jsx("div",{className:"flex flex-wrap gap-1 mt-1",children:l.map(i=>jsxRuntime.jsx(E,{variant:"secondary",className:"text-xs",children:i},i))})]})]})]}):jsxRuntime.jsxs("div",{ref:w,className:n("space-y-6",s),...b,children:[a&&jsxRuntime.jsxs("div",{className:"space-y-4",children:[jsxRuntime.jsx("h3",{className:"text-lg font-semibold",children:"\uC8FC\uC694 \uAC10\uC815"}),jsxRuntime.jsxs("div",{className:"flex items-center space-x-4",children:[jsxRuntime.jsxs("div",{className:"text-center",children:[jsxRuntime.jsx("div",{className:"text-2xl font-bold text-primary",children:a.name}),jsxRuntime.jsxs("div",{className:"text-sm text-muted-foreground",children:[a.intensity,"% \uAC15\uB3C4"]})]}),v&&jsxRuntime.jsx(g,{value:a.intensity,size:"lg",color:"blue"})]})]}),N&&o.length>0&&jsxRuntime.jsxs("div",{className:"space-y-4",children:[jsxRuntime.jsx("h3",{className:"text-lg font-semibold",children:"\uAC10\uC815 \uBD84\uD3EC"}),jsxRuntime.jsx("div",{className:"space-y-3",children:o.map((i,V)=>jsxRuntime.jsxs("div",{className:"space-y-2",children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:i.emotion}),jsxRuntime.jsxs("span",{className:"text-sm text-muted-foreground",children:[i.percentage,"%"]})]}),jsxRuntime.jsx("div",{className:"w-full bg-muted rounded-full h-2",children:jsxRuntime.jsx("div",{className:`${i.color} h-2 rounded-full transition-all duration-300`,style:{width:`${i.percentage}%`}})})]},V))})]}),C&&jsxRuntime.jsxs("div",{className:"space-y-4",children:[jsxRuntime.jsx("h3",{className:"text-lg font-semibold",children:"\uBD84\uC11D \uC9C0\uD45C"}),jsxRuntime.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[jsxRuntime.jsxs("div",{className:"space-y-2",children:[jsxRuntime.jsx("div",{className:"text-sm font-medium",children:"\uAC10\uC815 \uAC15\uB3C4"}),jsxRuntime.jsx("div",{className:"text-2xl font-bold text-primary",children:M(c)}),jsxRuntime.jsx("div",{className:"w-full bg-muted rounded-full h-2",children:jsxRuntime.jsx("div",{className:"bg-primary h-2 rounded-full transition-all duration-300",style:{width:`${c}%`}})})]}),jsxRuntime.jsxs("div",{className:"space-y-2",children:[jsxRuntime.jsx("div",{className:"text-sm font-medium",children:"\uAE0D\uC815\uC131"}),jsxRuntime.jsx("div",{className:"text-2xl font-bold text-green-600",children:r(d)}),jsxRuntime.jsx("div",{className:"w-full bg-muted rounded-full h-2",children:jsxRuntime.jsx("div",{className:"bg-green-500 h-2 rounded-full transition-all duration-300",style:{width:`${d}%`}})})]}),jsxRuntime.jsxs("div",{className:"space-y-2",children:[jsxRuntime.jsx("div",{className:"text-sm font-medium",children:"\uC5D0\uB108\uC9C0"}),jsxRuntime.jsx("div",{className:"text-2xl font-bold text-orange-600",children:f(u)}),jsxRuntime.jsx("div",{className:"w-full bg-muted rounded-full h-2",children:jsxRuntime.jsx("div",{className:"bg-orange-500 h-2 rounded-full transition-all duration-300",style:{width:`${u}%`}})})]})]})]}),p&&l.length>0&&jsxRuntime.jsxs("div",{className:"space-y-4",children:[jsxRuntime.jsx("h3",{className:"text-lg font-semibold",children:"\uAC10\uC815 \uD0A4\uC6CC\uB4DC"}),jsxRuntime.jsx("div",{className:"flex flex-wrap gap-2",children:l.map(i=>jsxRuntime.jsx(E,{variant:"outline",className:"text-sm",children:i},i))})]})]})});S.displayName="EmotionAnalysis";exports.EmotionAnalysis=S;exports.EmotionButton=H;exports.EmotionMeter=g;exports.EmotionSelector=B;//# sourceMappingURL=advanced-emotion.js.map
2
- //# sourceMappingURL=advanced-emotion.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/lib/utils.ts","../src/components/advanced/emotion/EmotionMeter.tsx","../src/components/advanced/emotion/EmotionButton.tsx","../src/components/advanced/emotion/EmotionSelector.tsx","../src/components/Card.tsx","../src/components/Badge.tsx","../src/components/advanced/emotion/EmotionAnalysis.tsx"],"names":["merge","inputs","twMerge","clsx","EmotionMeter","React","className","value","max","size","color","props","ref","sizeClasses","emotionColors","percentage","jsx","EmotionButton","emotion","isSelected","defaultEmotions","EmotionSelector","selectedEmotion","onEmotionSelect","layout","showIntensity","intensity","onIntensityChange","emotions","variant","handleEmotionClick","emotionKey","renderEmotionItem","jsxs","layoutClasses","e","cardVariants","cva","Card","shadow","padding","hoverable","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","badgeVariants","Badge","EmotionAnalysis","primaryEmotion","emotionDistribution","keywords","positivity","energy","showMeter","showDistribution","showKeywords","showMetrics","getIntensityLabel","getPositivityLabel","getEnergyLabel","Fragment","keyword","item","index"],"mappings":"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","file":"advanced-emotion.js","sourcesContent":["import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\n/**\n * HUA UI의 스마트 클래스 병합 유틸리티\n * clsx와 tailwind-merge를 결합하여 중복 클래스를 자동으로 해결합니다.\n * \n * @param inputs - 병합할 클래스 값들\n * @returns 병합된 클래스 문자열\n * \n * @example\n * ```tsx\n * merge(\"px-2 py-1\", \"px-4\") // \"py-1 px-4\"\n * merge(\"text-red-500\", \"text-blue-500\") // \"text-blue-500\"\n * merge(\"bg-white\", \"dark:bg-slate-900\") // \"bg-white dark:bg-slate-900\"\n * ```\n */\nexport function merge(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n\n/**\n * 조건부 클래스 병합 유틸리티\n * 조건에 따라 클래스를 선택적으로 병합합니다.\n * \n * @param condition - 클래스를 적용할 조건\n * @param trueClass - 조건이 true일 때 적용할 클래스\n * @param falseClass - 조건이 false일 때 적용할 클래스 (선택사항)\n * @returns 병합된 클래스 문자열\n * \n * @example\n * ```tsx\n * mergeIf(isActive, \"bg-blue-500\", \"bg-gray-200\")\n * mergeIf(isLoading, \"opacity-50 cursor-not-allowed\")\n * ```\n */\nexport function mergeIf(\n condition: boolean,\n trueClass: ClassValue,\n falseClass?: ClassValue\n) {\n return merge(condition ? trueClass : falseClass || \"\")\n}\n\n/**\n * 상대 시간 포맷팅 유틸리티\n * \n * 날짜를 상대 시간 형식으로 포맷팅합니다 (예: \"방금 전\", \"5분 전\", \"2시간 전\", \"3일 전\").\n * 7일 이상 경과한 경우 절대 날짜를 반환합니다.\n * \n * Formats a date as relative time (e.g., \"방금 전\", \"5분 전\", \"2시간 전\", \"3일 전\").\n * Returns absolute date for dates older than 7 days.\n * \n * @param timestamp - 포맷팅할 날짜 (Date 객체 또는 ISO 문자열) / Date to format (Date object or ISO string)\n * @param locale - 로케일 (기본값: \"ko-KR\") / Locale (default: \"ko-KR\")\n * @returns 포맷팅된 상대 시간 문자열 / Formatted relative time string\n * \n * @example\n * ```tsx\n * formatRelativeTime(new Date()) // \"방금 전\"\n * formatRelativeTime(new Date(Date.now() - 5 * 60000)) // \"5분 전\"\n * formatRelativeTime(new Date(Date.now() - 2 * 3600000)) // \"2시간 전\"\n * formatRelativeTime(new Date(Date.now() - 3 * 86400000)) // \"3일 전\"\n * formatRelativeTime(new Date(\"2024-01-01\")) // \"2024. 1. 1.\" (7일 이상 경과)\n * ```\n */\nexport function formatRelativeTime(timestamp: Date | string, locale = \"ko-KR\"): string {\n const date = typeof timestamp === \"string\" ? new Date(timestamp) : timestamp;\n const now = new Date();\n const diff = now.getTime() - date.getTime();\n const minutes = Math.floor(diff / 60000);\n const hours = Math.floor(diff / 3600000);\n const days = Math.floor(diff / 86400000);\n\n if (minutes < 1) return locale === \"ko-KR\" ? \"방금 전\" : \"just now\";\n if (minutes < 60) return locale === \"ko-KR\" ? `${minutes}분 전` : `${minutes}m ago`;\n if (hours < 24) return locale === \"ko-KR\" ? `${hours}시간 전` : `${hours}h ago`;\n if (days < 7) return locale === \"ko-KR\" ? `${days}일 전` : `${days}d ago`;\n return date.toLocaleDateString(locale);\n}\n\n/**\n * 객체 기반 클래스 병합 유틸리티\n * 객체의 키-값 쌍을 기반으로 조건부 클래스를 병합합니다.\n * \n * @param classMap - 클래스 맵 객체\n * @returns 병합된 클래스 문자열\n * \n * @example\n * ```tsx\n * mergeMap({\n * \"bg-blue-500\": isPrimary,\n * \"bg-gray-500\": !isPrimary,\n * \"text-white\": true,\n * \"opacity-50\": isDisabled\n * })\n * ```\n */\nexport function mergeMap(classMap: Record<string, boolean | undefined | null>) {\n const classes = Object.entries(classMap)\n .filter(([, condition]) => condition)\n .map(([className]) => className)\n \n return merge(...classes)\n}\n\n// 하위 호환성을 위해 cn도 export (점진적 마이그레이션 지원)\nexport const cn = merge ","\"use client\"\n\nimport React from \"react\"\nimport { merge } from '../../../lib/utils';\nimport type { Color } from '../../../lib/types/common';\n\n/**\n * EmotionMeter 컴포넌트의 props / EmotionMeter component props\n * @typedef {Object} EmotionMeterProps\n * @property {number} value - 감정 강도 값 (0-max) / Emotion intensity value (0-max)\n * @property {number} [max=100] - 최대값 / Maximum value\n * @property {\"sm\" | \"md\" | \"lg\"} [size=\"md\"] - 미터 크기 / Meter size\n * @property {\"blue\" | \"green\" | \"yellow\" | \"red\"} [color=\"blue\"] - 미터 색상 / Meter color\n * @extends {React.HTMLAttributes<HTMLDivElement>}\n */\nexport interface EmotionMeterProps extends React.HTMLAttributes<HTMLDivElement> {\n value: number\n max?: number\n size?: \"sm\" | \"md\" | \"lg\"\n color?: \"blue\" | \"green\" | \"yellow\" | \"red\" | Color\n}\n\n/**\n * EmotionMeter 컴포넌트 / EmotionMeter component\n *\n * 감정 강도를 표시하는 미터 컴포넌트입니다.\n * Progress 컴포넌트와 유사하지만 감정 분석에 특화되어 있습니다.\n *\n * Meter component that displays emotion intensity.\n * Similar to Progress component but specialized for emotion analysis.\n *\n * @component\n * @example\n * // 기본 사용 / Basic usage\n * <EmotionMeter value={75} />\n *\n * @example\n * // 다양한 색상 / Various colors\n * <EmotionMeter\n * value={80}\n * color=\"green\"\n * size=\"lg\"\n * />\n *\n * @param {EmotionMeterProps} props - EmotionMeter 컴포넌트의 props / EmotionMeter component props\n * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref\n * @returns {JSX.Element} EmotionMeter 컴포넌트 / EmotionMeter component\n */\nconst EmotionMeter = React.forwardRef<HTMLDivElement, EmotionMeterProps>(\n ({ className, value, max = 100, size = \"md\", color = \"blue\", ...props }, ref) => {\n const sizeClasses = {\n sm: \"h-2\",\n md: \"h-3\",\n lg: \"h-4\"\n }\n\n // EmotionMeter는 특정 색상만 사용 (감정 분석 특화)\n const emotionColors: Record<string, string> = {\n blue: \"bg-indigo-500\",\n green: \"bg-green-500\",\n yellow: \"bg-yellow-500\",\n red: \"bg-red-500\",\n // 추가 색상 지원\n purple: \"bg-purple-500\",\n orange: \"bg-orange-500\",\n indigo: \"bg-indigo-500\",\n pink: \"bg-pink-500\",\n gray: \"bg-gray-500\",\n }\n\n const percentage = Math.min(Math.max((value / max) * 100, 0), 100)\n\n return (\n <div\n ref={ref}\n className={merge(\n \"w-full bg-muted rounded-full\",\n sizeClasses[size],\n className\n )}\n {...props}\n >\n <div\n className={merge(\n \"h-full rounded-full transition-all duration-300\",\n emotionColors[color] || emotionColors.blue\n )}\n style={{ width: `${percentage}%` }}\n />\n </div>\n )\n }\n)\nEmotionMeter.displayName = \"EmotionMeter\"\n\nexport { EmotionMeter }\n","\"use client\"\n\nimport React from \"react\"\nimport { merge } from '../../../lib/utils';\n\n/**\n * EmotionButton 컴포넌트의 props / EmotionButton component props\n * @typedef {Object} EmotionButtonProps\n * @property {string} emotion - 감정 이모지 또는 텍스트 / Emotion emoji or text\n * @property {boolean} [isSelected=false] - 선택 상태 / Selected state\n * @property {\"sm\" | \"md\" | \"lg\"} [size=\"md\"] - 버튼 크기 / Button size\n * @extends {React.ButtonHTMLAttributes<HTMLButtonElement>}\n */\nexport interface EmotionButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n emotion: string\n isSelected?: boolean\n size?: \"sm\" | \"md\" | \"lg\"\n}\n\n/**\n * EmotionButton 컴포넌트 / EmotionButton component\n *\n * 감정을 선택하는 버튼 컴포넌트입니다.\n * 이모지나 텍스트로 감정을 표시하며, 선택 상태를 지원합니다.\n *\n * Button component for selecting emotions.\n * Displays emotion as emoji or text and supports selected state.\n *\n * @component\n * @example\n * // 기본 사용 / Basic usage\n * <EmotionButton emotion=\"😊\" />\n *\n * @example\n * // 선택 상태 / Selected state\n * <EmotionButton\n * emotion=\"😊\"\n * isSelected\n * size=\"lg\"\n * />\n *\n * @param {EmotionButtonProps} props - EmotionButton 컴포넌트의 props / EmotionButton component props\n * @param {React.Ref<HTMLButtonElement>} ref - button 요소 ref / button element ref\n * @returns {JSX.Element} EmotionButton 컴포넌트 / EmotionButton component\n */\nconst EmotionButton = React.forwardRef<HTMLButtonElement, EmotionButtonProps>(\n ({ className, emotion, isSelected = false, size = \"md\", ...props }, ref) => {\n const sizeClasses = {\n sm: \"w-8 h-8 text-sm\",\n md: \"w-12 h-12 text-lg\",\n lg: \"w-16 h-16 text-xl\"\n }\n\n return (\n <button\n ref={ref}\n className={merge(\n \"rounded-full border-2 transition-all duration-200 hover:scale-105 focus:outline-none focus:ring-1 focus:ring-ring\",\n sizeClasses[size],\n isSelected\n ? \"border-indigo-500 bg-indigo-50 dark:bg-indigo-900/20\"\n : \"border-border bg-background\",\n className\n )}\n {...props}\n >\n {emotion}\n </button>\n )\n }\n)\nEmotionButton.displayName = \"EmotionButton\"\n\nexport { EmotionButton }\n","'use client'\n\nimport React from \"react\"\nimport { EmotionButton } from \"./EmotionButton\"\nimport { EmotionMeter } from \"./EmotionMeter\"\nimport { merge } from '../../../lib/utils';\n\n/**\n * EmotionSelector 컴포넌트의 props / EmotionSelector component props\n * @typedef {Object} EmotionSelectorProps\n * @property {string} [selectedEmotion] - 선택된 감정 키 / Selected emotion key\n * @property {(emotion: string) => void} [onEmotionSelect] - 감정 선택 콜백 / Emotion selection callback\n * @property {\"grid\" | \"list\" | \"compact\"} [layout=\"grid\"] - 레이아웃 타입 / Layout type\n * @property {boolean} [showIntensity=false] - 강도 조절 표시 여부 / Show intensity control\n * @property {number} [intensity=50] - 감정 강도 (0-100) / Emotion intensity (0-100)\n * @property {(intensity: number) => void} [onIntensityChange] - 강도 변경 콜백 / Intensity change callback\n * @property {Array<Object>} [emotions] - 감정 목록 / Emotions list\n * @property {string} emotions[].key - 감정 키 / Emotion key\n * @property {string} emotions[].label - 감정 라벨 / Emotion label\n * @property {string} [emotions[].icon] - 감정 아이콘 / Emotion icon\n * @property {string} [emotions[].color] - 감정 색상 / Emotion color\n * @property {\"sm\" | \"md\" | \"lg\"} [size=\"md\"] - 감정 버튼 크기 / Emotion button size\n * @property {\"button\" | \"card\" | \"chip\"} [variant=\"button\"] - 감정 표시 스타일 / Emotion display style\n * @extends {React.HTMLAttributes<HTMLDivElement>}\n */\ninterface EmotionSelectorProps extends React.HTMLAttributes<HTMLDivElement> {\n selectedEmotion?: string\n onEmotionSelect?: (emotion: string) => void\n layout?: \"grid\" | \"list\" | \"compact\"\n showIntensity?: boolean\n intensity?: number\n onIntensityChange?: (intensity: number) => void\n emotions?: Array<{\n key: string\n label: string\n icon?: string\n color?: string\n }>\n size?: \"sm\" | \"md\" | \"lg\"\n variant?: \"button\" | \"card\" | \"chip\"\n}\n\nconst defaultEmotions = [\n { key: \"joy\", label: \"기쁨\", icon: \"smile\", color: \"yellow\" },\n { key: \"sadness\", label: \"슬픔\", icon: \"frown\", color: \"blue\" },\n { key: \"anger\", label: \"화남\", icon: \"angry\", color: \"red\" },\n { key: \"calm\", label: \"평온\", icon: \"heart\", color: \"green\" },\n { key: \"excitement\", label: \"설렘\", icon: \"star\", color: \"pink\" },\n { key: \"worry\", label: \"걱정\", icon: \"meh\", color: \"gray\" },\n { key: \"gratitude\", label: \"감사\", icon: \"heart\", color: \"purple\" },\n { key: \"loneliness\", label: \"외로움\", icon: \"user\", color: \"indigo\" }\n]\n\n/**\n * EmotionSelector 컴포넌트 / EmotionSelector component\n *\n * 감정을 선택하는 컴포넌트입니다.\n * 여러 감정 옵션을 제공하며, 강도 조절 기능을 포함할 수 있습니다.\n *\n * Component for selecting emotions.\n * Provides multiple emotion options and can include intensity control.\n *\n * @component\n * @example\n * // 기본 사용 / Basic usage\n * <EmotionSelector\n * selectedEmotion=\"joy\"\n * onEmotionSelect={(emotion) => console.log(emotion)}\n * />\n *\n * @example\n * // 강도 조절 포함 / With intensity control\n * <EmotionSelector\n * selectedEmotion=\"calm\"\n * onEmotionSelect={handleEmotionSelect}\n * showIntensity\n * intensity={intensity}\n * onIntensityChange={setIntensity}\n * variant=\"card\"\n * />\n *\n * @param {EmotionSelectorProps} props - EmotionSelector 컴포넌트의 props / EmotionSelector component props\n * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref\n * @returns {JSX.Element} EmotionSelector 컴포넌트 / EmotionSelector component\n */\nconst EmotionSelector = React.forwardRef<HTMLDivElement, EmotionSelectorProps>(\n ({\n className,\n selectedEmotion,\n onEmotionSelect,\n layout = \"grid\",\n showIntensity = false,\n intensity = 50,\n onIntensityChange,\n emotions = defaultEmotions,\n size = \"md\",\n variant = \"button\",\n ...props\n }, ref) => {\n const handleEmotionClick = (emotionKey: string) => {\n onEmotionSelect?.(emotionKey)\n }\n\n const renderEmotionItem = (emotion: typeof emotions[0]) => {\n const isSelected = selectedEmotion === emotion.key\n\n if (variant === \"button\") {\n return (\n <EmotionButton\n key={emotion.key}\n emotion={emotion.key}\n isSelected={isSelected}\n size={size}\n onClick={() => handleEmotionClick(emotion.key)}\n className={merge(\n \"transition-all duration-200\",\n isSelected && \"ring-1 ring-offset-2 ring-primary\"\n )}\n >\n {emotion.label}\n </EmotionButton>\n )\n }\n\n if (variant === \"card\") {\n return (\n <div\n key={emotion.key}\n className={merge(\n \"p-4 rounded-lg border-2 cursor-pointer transition-all duration-200 hover:shadow-md\",\n isSelected\n ? \"border-primary bg-primary/5\"\n : \"border-border hover:border-primary/50\"\n )}\n onClick={() => handleEmotionClick(emotion.key)}\n >\n <div className=\"flex items-center space-x-3\">\n <div className={merge(\n \"w-8 h-8 rounded-full flex items-center justify-center\",\n isSelected ? \"bg-primary text-primary-foreground\" : \"bg-muted\"\n )}>\n {emotion.icon && (\n <span className=\"text-lg\">\n {emotion.icon === \"smile\" && \"😊\"}\n {emotion.icon === \"frown\" && \"😢\"}\n {emotion.icon === \"angry\" && \"😠\"}\n {emotion.icon === \"heart\" && \"❤️\"}\n {emotion.icon === \"star\" && \"⭐\"}\n {emotion.icon === \"meh\" && \"😐\"}\n {emotion.icon === \"user\" && \"👤\"}\n </span>\n )}\n </div>\n <span className=\"font-medium truncate max-w-[120px]\">{emotion.label}</span>\n </div>\n </div>\n )\n }\n\n if (variant === \"chip\") {\n return (\n <div\n key={emotion.key}\n className={merge(\n \"px-3 py-1 rounded-full cursor-pointer transition-all duration-200 text-sm font-medium\",\n isSelected\n ? \"bg-primary text-primary-foreground\"\n : \"bg-muted hover:bg-muted/80\"\n )}\n onClick={() => handleEmotionClick(emotion.key)}\n >\n <span className=\"truncate max-w-[100px]\">{emotion.label}</span>\n </div>\n )\n }\n\n return null\n }\n\n const layoutClasses = {\n grid: \"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 gap-2 md:gap-3\",\n list: \"space-y-2\",\n compact: \"flex flex-wrap gap-1\"\n }\n\n return (\n <div\n ref={ref}\n className={merge(\"space-y-4\", className)}\n {...props}\n >\n <div className={layoutClasses[layout]}>\n {emotions.map(renderEmotionItem)}\n </div>\n\n {showIntensity && selectedEmotion && (\n <div className=\"space-y-3\">\n <div className=\"flex items-center justify-between\">\n <span className=\"text-sm font-medium\">감정 강도</span>\n <span className=\"text-sm text-muted-foreground\">{intensity}%</span>\n </div>\n <input\n type=\"range\"\n min=\"0\"\n max=\"100\"\n value={intensity}\n onChange={(e) => onIntensityChange?.(Number(e.target.value))}\n className=\"w-full h-2 bg-muted rounded-lg appearance-none cursor-pointer slider\"\n />\n <div className=\"flex justify-between text-xs text-muted-foreground\">\n <span>약함</span>\n <span>보통</span>\n <span>강함</span>\n </div>\n </div>\n )}\n\n {selectedEmotion && showIntensity && (\n <div className=\"flex justify-center\">\n <EmotionMeter\n value={intensity}\n size=\"md\"\n color=\"blue\"\n />\n </div>\n )}\n </div>\n )\n }\n)\n\nEmotionSelector.displayName = \"EmotionSelector\"\n\nexport { EmotionSelector }\nexport type { EmotionSelectorProps }\n","\"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 hoverable && \"transition-shadow hover:shadow-lg cursor-pointer\",\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","\"use client\"\n\nimport React from \"react\"\nimport { cva } from \"class-variance-authority\"\nimport { merge } from \"../lib/utils\"\n\nexport const badgeVariants = cva(\n \"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors duration-200 ease-in-out focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2\",\n {\n variants: {\n variant: {\n default: \"bg-[var(--badge-default-bg)] text-[var(--badge-default-text)] hover:opacity-80\",\n secondary: \"bg-[var(--badge-secondary-bg)] text-[var(--badge-secondary-text)] hover:opacity-80\",\n destructive: \"bg-[var(--badge-destructive-bg)] text-slate-50 hover:opacity-80\",\n error: \"bg-[var(--badge-destructive-bg)] text-slate-50 hover:opacity-80\",\n outline: \"bg-transparent text-[var(--badge-outline-text)] border border-[var(--badge-outline-border)] hover:bg-[var(--badge-outline-hover-bg)]\",\n glass: \"bg-[var(--badge-glass-bg)] backdrop-blur-sm border border-[var(--badge-glass-border)] text-[var(--badge-glass-text)] hover:opacity-80\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\n/**\n * Badge 컴포넌트의 props / Badge component props\n */\nexport interface BadgeProps extends React.HTMLAttributes<HTMLDivElement> {\n variant?: \"default\" | \"secondary\" | \"destructive\" | \"error\" | \"outline\" | \"glass\"\n}\n\n/**\n * Badge 컴포넌트 / Badge component\n *\n * 상태나 카테고리를 표시하는 작은 배지 컴포넌트입니다.\n *\n * @example\n * <Badge>New</Badge>\n * <Badge variant=\"destructive\">완료</Badge>\n * <Badge variant=\"outline\">대기</Badge>\n */\nconst Badge = React.memo(React.forwardRef<HTMLDivElement, BadgeProps>(\n ({ className, variant = \"default\", ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={merge(badgeVariants({ variant }), className)}\n {...props}\n />\n )\n }\n))\nBadge.displayName = \"Badge\"\n\nexport { Badge }\n","'use client'\n\nimport React from \"react\"\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from '../../Card';\nimport { Badge } from '../../Badge';\nimport { merge } from '../../../lib/utils';\nimport { EmotionMeter } from \"./EmotionMeter\"\n\n/**\n * EmotionAnalysis 컴포넌트의 props / EmotionAnalysis component props\n * @typedef {Object} EmotionAnalysisProps\n * @property {Object} [primaryEmotion] - 주요 감정 정보 / Primary emotion information\n * @property {string} primaryEmotion.name - 감정 이름 / Emotion name\n * @property {number} primaryEmotion.intensity - 감정 강도 (0-100) / Emotion intensity (0-100)\n * @property {string} [primaryEmotion.color] - 감정 색상 / Emotion color\n * @property {Array<Object>} [emotionDistribution] - 감정 분포 배열 / Emotion distribution array\n * @property {string} emotionDistribution[].emotion - 감정 이름 / Emotion name\n * @property {number} emotionDistribution[].percentage - 감정 비율 (0-100) / Emotion percentage (0-100)\n * @property {string} emotionDistribution[].color - 감정 색상 / Emotion color\n * @property {string[]} [keywords] - 키워드 배열 / Keywords array\n * @property {number} [intensity=50] - 전체 강도 (0-100) / Overall intensity (0-100)\n * @property {number} [positivity=70] - 긍정성 (0-100) / Positivity (0-100)\n * @property {number} [energy=60] - 에너지 (0-100) / Energy (0-100)\n * @property {boolean} [showMeter=true] - 강도 미터 표시 여부 / Show intensity meter\n * @property {boolean} [showDistribution=true] - 분포 표시 여부 / Show distribution\n * @property {boolean} [showKeywords=true] - 키워드 표시 여부 / Show keywords\n * @property {boolean} [showMetrics=true] - 메트릭 표시 여부 / Show metrics\n * @property {\"compact\" | \"detailed\" | \"card\"} [layout=\"detailed\"] - 레이아웃 타입 / Layout type\n * @extends {React.HTMLAttributes<HTMLDivElement>}\n */\ninterface EmotionAnalysisProps extends React.HTMLAttributes<HTMLDivElement> {\n primaryEmotion?: {\n name: string\n intensity: number\n color?: string\n }\n emotionDistribution?: Array<{\n emotion: string\n percentage: number\n color: string\n }>\n keywords?: string[]\n intensity?: number\n positivity?: number\n energy?: number\n showMeter?: boolean\n showDistribution?: boolean\n showKeywords?: boolean\n showMetrics?: boolean\n layout?: \"compact\" | \"detailed\" | \"card\"\n}\n\n/**\n * EmotionAnalysis 컴포넌트 / EmotionAnalysis component\n *\n * 감정 분석 결과를 표시하는 컴포넌트입니다.\n * 주요 감정, 감정 분포, 키워드, 메트릭(강도, 긍정성, 에너지)을 표시할 수 있습니다.\n *\n * Component that displays emotion analysis results.\n * Can display primary emotion, emotion distribution, keywords, and metrics (intensity, positivity, energy).\n *\n * @component\n * @example\n * // 기본 사용 / Basic usage\n * <EmotionAnalysis\n * primaryEmotion={{ name: \"기쁨\", intensity: 80 }}\n * keywords={[\"행복\", \"만족\"]}\n * />\n *\n * @example\n * // 상세 레이아웃 / Detailed layout\n * <EmotionAnalysis\n * primaryEmotion={{ name: \"평온\", intensity: 65, color: \"green\" }}\n * emotionDistribution={[\n * { emotion: \"기쁨\", percentage: 40, color: \"yellow\" },\n * { emotion: \"평온\", percentage: 60, color: \"green\" }\n * ]}\n * keywords={[\"안정\", \"편안\"]}\n * intensity={65}\n * positivity={75}\n * energy={50}\n * layout=\"detailed\"\n * />\n *\n * @param {EmotionAnalysisProps} props - EmotionAnalysis 컴포넌트의 props / EmotionAnalysis component props\n * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref\n * @returns {JSX.Element} EmotionAnalysis 컴포넌트 / EmotionAnalysis component\n */\nconst EmotionAnalysis = React.forwardRef<HTMLDivElement, EmotionAnalysisProps>(\n ({\n className,\n primaryEmotion,\n emotionDistribution = [],\n keywords = [],\n intensity = 50,\n positivity = 70,\n energy = 60,\n showMeter = true,\n showDistribution = true,\n showKeywords = true,\n showMetrics = true,\n layout = \"detailed\",\n ...props\n }, ref) => {\n const getIntensityLabel = (value: number) => {\n if (value < 30) return \"약함\"\n if (value < 70) return \"보통\"\n return \"강함\"\n }\n\n const getPositivityLabel = (value: number) => {\n if (value < 30) return \"부정적\"\n if (value < 70) return \"중립적\"\n return \"긍정적\"\n }\n\n const getEnergyLabel = (value: number) => {\n if (value < 30) return \"낮음\"\n if (value < 70) return \"보통\"\n return \"높음\"\n }\n\n if (layout === \"compact\") {\n return (\n <div\n ref={ref}\n className={merge(\"space-y-3\", className)}\n {...props}\n >\n {primaryEmotion && (\n <div className=\"flex items-center justify-between\">\n <span className=\"text-sm font-medium\">주요 감정:</span>\n <div className=\"flex items-center space-x-2\">\n <span className=\"text-sm text-muted-foreground\">\n {primaryEmotion.name} ({primaryEmotion.intensity}%)\n </span>\n {showMeter && (\n <EmotionMeter\n value={primaryEmotion.intensity}\n size=\"sm\"\n color=\"blue\"\n />\n )}\n </div>\n </div>\n )}\n\n {showMetrics && (\n <>\n <div className=\"flex items-center justify-between\">\n <span className=\"text-sm font-medium\">감정 강도:</span>\n <span className=\"text-sm text-muted-foreground\">\n {getIntensityLabel(intensity)}\n </span>\n </div>\n <div className=\"flex items-center justify-between\">\n <span className=\"text-sm font-medium\">긍정성:</span>\n <span className=\"text-sm text-muted-foreground\">\n {getPositivityLabel(positivity)}\n </span>\n </div>\n <div className=\"flex items-center justify-between\">\n <span className=\"text-sm font-medium\">에너지:</span>\n <span className=\"text-sm text-muted-foreground\">\n {getEnergyLabel(energy)}\n </span>\n </div>\n </>\n )}\n\n {showKeywords && keywords.length > 0 && (\n <div>\n <span className=\"text-sm font-medium\">키워드:</span>\n <div className=\"flex flex-wrap gap-1 mt-1\">\n {keywords.map((keyword) => (\n <Badge key={keyword} variant=\"secondary\" className=\"text-xs\">\n {keyword}\n </Badge>\n ))}\n </div>\n </div>\n )}\n </div>\n )\n }\n\n if (layout === \"card\") {\n return (\n <Card\n ref={ref}\n className={merge(\"\", className)}\n {...props}\n >\n <CardHeader>\n <CardTitle className=\"flex items-center\">\n <span className=\"text-2xl mr-2\">✨</span>\n AI 분석\n </CardTitle>\n <CardDescription>\n 감정 분석 결과\n </CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n {primaryEmotion && (\n <div className=\"space-y-3\">\n <div className=\"text-sm\">\n <span className=\"font-medium\">주요 감정:</span>\n <span className=\"ml-2 text-muted-foreground\">\n {primaryEmotion.name} ({primaryEmotion.intensity}%)\n </span>\n </div>\n {showMeter && (\n <div className=\"flex justify-center\">\n <EmotionMeter\n value={primaryEmotion.intensity}\n size=\"md\"\n color=\"blue\"\n />\n </div>\n )}\n </div>\n )}\n\n {showMetrics && (\n <>\n <div className=\"text-sm\">\n <span className=\"font-medium\">감정 강도:</span>\n <span className=\"ml-2 text-muted-foreground\">\n {getIntensityLabel(intensity)}\n </span>\n </div>\n <div className=\"text-sm\">\n <span className=\"font-medium\">긍정성:</span>\n <span className=\"ml-2 text-muted-foreground\">\n {getPositivityLabel(positivity)}\n </span>\n </div>\n <div className=\"text-sm\">\n <span className=\"font-medium\">에너지:</span>\n <span className=\"ml-2 text-muted-foreground\">\n {getEnergyLabel(energy)}\n </span>\n </div>\n </>\n )}\n\n {showKeywords && keywords.length > 0 && (\n <div className=\"text-sm\">\n <span className=\"font-medium\">키워드:</span>\n <div className=\"flex flex-wrap gap-1 mt-1\">\n {keywords.map((keyword) => (\n <Badge key={keyword} variant=\"secondary\" className=\"text-xs\">\n {keyword}\n </Badge>\n ))}\n </div>\n </div>\n )}\n </CardContent>\n </Card>\n )\n }\n\n // detailed layout (default)\n return (\n <div\n ref={ref}\n className={merge(\"space-y-6\", className)}\n {...props}\n >\n {primaryEmotion && (\n <div className=\"space-y-4\">\n <h3 className=\"text-lg font-semibold\">주요 감정</h3>\n <div className=\"flex items-center space-x-4\">\n <div className=\"text-center\">\n <div className=\"text-2xl font-bold text-primary\">\n {primaryEmotion.name}\n </div>\n <div className=\"text-sm text-muted-foreground\">\n {primaryEmotion.intensity}% 강도\n </div>\n </div>\n {showMeter && (\n <EmotionMeter\n value={primaryEmotion.intensity}\n size=\"lg\"\n color=\"blue\"\n />\n )}\n </div>\n </div>\n )}\n\n {showDistribution && emotionDistribution.length > 0 && (\n <div className=\"space-y-4\">\n <h3 className=\"text-lg font-semibold\">감정 분포</h3>\n <div className=\"space-y-3\">\n {emotionDistribution.map((item, index) => (\n <div key={index} className=\"space-y-2\">\n <div className=\"flex items-center justify-between\">\n <span className=\"text-sm font-medium\">{item.emotion}</span>\n <span className=\"text-sm text-muted-foreground\">\n {item.percentage}%\n </span>\n </div>\n <div className=\"w-full bg-muted rounded-full h-2\">\n <div\n className={`${item.color} h-2 rounded-full transition-all duration-300`}\n style={{ width: `${item.percentage}%` }}\n />\n </div>\n </div>\n ))}\n </div>\n </div>\n )}\n\n {showMetrics && (\n <div className=\"space-y-4\">\n <h3 className=\"text-lg font-semibold\">분석 지표</h3>\n <div className=\"grid grid-cols-1 md:grid-cols-3 gap-4\">\n <div className=\"space-y-2\">\n <div className=\"text-sm font-medium\">감정 강도</div>\n <div className=\"text-2xl font-bold text-primary\">\n {getIntensityLabel(intensity)}\n </div>\n <div className=\"w-full bg-muted rounded-full h-2\">\n <div\n className=\"bg-primary h-2 rounded-full transition-all duration-300\"\n style={{ width: `${intensity}%` }}\n />\n </div>\n </div>\n <div className=\"space-y-2\">\n <div className=\"text-sm font-medium\">긍정성</div>\n <div className=\"text-2xl font-bold text-green-600\">\n {getPositivityLabel(positivity)}\n </div>\n <div className=\"w-full bg-muted rounded-full h-2\">\n <div\n className=\"bg-green-500 h-2 rounded-full transition-all duration-300\"\n style={{ width: `${positivity}%` }}\n />\n </div>\n </div>\n <div className=\"space-y-2\">\n <div className=\"text-sm font-medium\">에너지</div>\n <div className=\"text-2xl font-bold text-orange-600\">\n {getEnergyLabel(energy)}\n </div>\n <div className=\"w-full bg-muted rounded-full h-2\">\n <div\n className=\"bg-orange-500 h-2 rounded-full transition-all duration-300\"\n style={{ width: `${energy}%` }}\n />\n </div>\n </div>\n </div>\n </div>\n )}\n\n {showKeywords && keywords.length > 0 && (\n <div className=\"space-y-4\">\n <h3 className=\"text-lg font-semibold\">감정 키워드</h3>\n <div className=\"flex flex-wrap gap-2\">\n {keywords.map((keyword) => (\n <Badge key={keyword} variant=\"outline\" className=\"text-sm\">\n {keyword}\n </Badge>\n ))}\n </div>\n </div>\n )}\n </div>\n )\n }\n)\n\nEmotionAnalysis.displayName = \"EmotionAnalysis\"\n\nexport { EmotionAnalysis }\nexport type { EmotionAnalysisProps }\n"]}
@@ -1,82 +0,0 @@
1
- 'use strict';var ee=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime'),classVarianceAuthority=require('class-variance-authority'),ssr=require('@phosphor-icons/react/dist/ssr');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var ee__default=/*#__PURE__*/_interopDefault(ee);function l(...t){return tailwindMerge.twMerge(clsx.clsx(t))}function dt(t){let e=Object.entries(t).filter(([,r])=>r).map(([r])=>r);return l(...e)}var pe=ee__default.default.forwardRef(({children:t,className:e,type:r="fade",duration:o=500,easing:a="smooth",delay:i=0,autoStart:m=true,onStart:x,onComplete:h,showProgress:s=false,progressClassName:y},f)=>{let[b,g]=ee.useState(false),[d,n]=ee.useState(0),[u,c]=ee.useState(false),w=ee.useRef(null),p=ee.useRef(null),v=R=>({linear:C=>C,"ease-in":C=>C*C,"ease-out":C=>1-Math.pow(1-C,2),"ease-in-out":C=>C<.5?2*C*C:1-Math.pow(-2*C+2,2)/2,bounce:C=>C<.36363636363636365?7.5625*C*C:C<.7272727272727273?7.5625*(C-=.5454545454545454)*C+.75:C<.9090909090909091?7.5625*(C-=.8181818181818182)*C+.9375:7.5625*(C-=.9545454545454546)*C+.984375,elastic:C=>Math.pow(2,-10*C)*Math.sin((C-.075)*(2*Math.PI)/.3)+1,smooth:C=>C*C*(3-2*C)})[R],k=ee.useCallback(R=>{p.current||(p.current=R);let N=R-p.current,C=v(a),I=Math.min(N/o,1);I=C(I),n(I),g(I>.1),I<1?w.current=requestAnimationFrame(V=>k(V)):(c(false),n(1),h==null||h());},[o,a,h]),T=ee.useCallback(()=>{c(true),n(0),x==null||x(),p.current=null,w.current=requestAnimationFrame(k);},[k,x]);ee.useEffect(()=>{if(m){let R=setTimeout(()=>{T();},i);return ()=>clearTimeout(R)}},[m,i,T]),ee.useEffect(()=>()=>{w.current&&cancelAnimationFrame(w.current);},[]);let B=(()=>{switch(r){case "fade":return {opacity:b?1:0,transform:"none"};case "slide":return {opacity:b?1:0,transform:`translateX(${(1-d)*100}%)`};case "slide-up":return {opacity:b?1:0,transform:`translateY(${(1-d)*100}%)`};case "slide-down":return {opacity:b?1:0,transform:`translateY(-${(1-d)*100}%)`};case "slide-left":return {opacity:b?1:0,transform:`translateX(-${(1-d)*100}%)`};case "slide-right":return {opacity:b?1:0,transform:`translateX(${(1-d)*100}%)`};case "scale":return {opacity:b?1:0,transform:`scale(${.8+d*.2})`};case "flip":return {opacity:b?1:0,transform:`perspective(1000px) rotateY(${(1-d)*90}deg)`};case "morph":return {opacity:b?1:0,transform:`scale(${.9+d*.1}) rotate(${(1-d)*5}deg)`};case "cube":return {opacity:b?1:0,transform:`perspective(1000px) rotateX(${(1-d)*90}deg) rotateY(${(1-d)*45}deg)`};case "zoom":return {opacity:b?1:0,transform:`scale(${.5+d*.5})`};default:return {opacity:b?1:0,transform:"none"}}})();return jsxRuntime.jsxs("div",{className:"relative",children:[s&&jsxRuntime.jsxs("div",{className:l("fixed top-4 right-4 z-50 bg-background rounded-lg px-3 py-2 shadow-lg border",y),children:[jsxRuntime.jsxs("div",{className:"text-sm font-medium text-foreground",children:["Progress: ",Math.round(d*100),"%"]}),jsxRuntime.jsx("div",{className:"w-24 h-2 bg-muted rounded-full mt-2",children:jsxRuntime.jsx("div",{className:"h-full bg-primary rounded-full transition-all duration-100",style:{width:`${d*100}%`}})})]}),jsxRuntime.jsx("div",{ref:f,className:l("transition-all duration-500 ease-out",e),style:{...B,transitionDuration:`${o}ms`,transitionTimingFunction:a==="smooth"?"cubic-bezier(0.4, 0, 0.2, 1)":a==="bounce"?"cubic-bezier(0.68, -0.55, 0.265, 1.55)":a==="elastic"?"cubic-bezier(0.175, 0.885, 0.32, 1.275)":a},children:t})]})});pe.displayName="AdvancedPageTransition";var ao=ee__default.default.forwardRef((t,e)=>jsxRuntime.jsx(pe,{ref:e,type:"fade",...t})),so=ee__default.default.forwardRef((t,e)=>jsxRuntime.jsx(pe,{ref:e,type:"slide",...t})),io=ee__default.default.forwardRef((t,e)=>jsxRuntime.jsx(pe,{ref:e,type:"scale",...t})),lo=ee__default.default.forwardRef((t,e)=>jsxRuntime.jsx(pe,{ref:e,type:"flip",...t})),co=ee__default.default.forwardRef((t,e)=>jsxRuntime.jsx(pe,{ref:e,type:"morph",...t})),uo=ee__default.default.forwardRef((t,e)=>jsxRuntime.jsx(pe,{ref:e,type:"cube",...t})),po=ee__default.default.forwardRef((t,e)=>jsxRuntime.jsx(pe,{ref:e,type:"zoom",...t}));ao.displayName="FadePageTransition";so.displayName="SlidePageTransition";io.displayName="ScalePageTransition";lo.displayName="FlipPageTransition";co.displayName="MorphPageTransition";uo.displayName="CubePageTransition";po.displayName="ZoomPageTransition";var fo=(t={})=>{let[e,r]=ee.useState({isTransitioning:false,isVisible:false,currentStep:0,progress:0}),o=ee.useRef(null),a=ee.useRef(null),i=ee.useRef({type:"fade",duration:500,easing:"smooth",delay:0,stagger:0,direction:"forward",...t}),m=ee.useCallback(g=>({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)})[g],[]),x=ee.useCallback(g=>{var w;a.current||(a.current=g);let d=g-a.current,n=i.current,u=m(n.easing),c=Math.min(d/n.duration,1);c=u(c),r(p=>({...p,progress:c,isVisible:n.direction==="forward"?c>.1:c<.9,currentStep:Math.floor(c*10)})),c<1?o.current=requestAnimationFrame(x):(r(p=>({...p,isTransitioning:false,progress:n.direction==="forward"?1:0})),(w=n.onComplete)==null||w.call(n));},[m]),h=ee.useCallback(async g=>new Promise(d=>{var u;g&&(i.current={...i.current,...g});let n=i.current;n.onComplete=()=>d(),r(c=>({...c,isTransitioning:true,progress:n.direction==="forward"?0:1})),a.current=null,(u=n.onStart)==null||u.call(n),n.delay?setTimeout(()=>{o.current=requestAnimationFrame(x);},n.delay):o.current=requestAnimationFrame(x);}),[x]),s=ee.useCallback(async()=>new Promise(g=>{let d=i.current;d.direction="backward",d.onComplete=()=>g(),h();}),[h]),y=ee.useCallback(()=>{o.current&&cancelAnimationFrame(o.current);},[]),f=ee.useCallback(()=>{e.isTransitioning&&(o.current=requestAnimationFrame(x));},[e.isTransitioning,x]),b=ee.useCallback(()=>{o.current&&cancelAnimationFrame(o.current),r({isTransitioning:false,isVisible:false,currentStep:0,progress:0});},[]);return ee.useEffect(()=>()=>{o.current&&cancelAnimationFrame(o.current);},[]),[e,{start:h,reverse:s,pause:y,resume:f,reset:b}]};var vo=(t={})=>{let{defaultType:e="fade",defaultDuration:r=500,defaultEasing:o="smooth",enableHistory:a=true,enableProgress:i=true,enableDebug:m=false}=t,[x,h]=ee.useState({isTransitioning:false,currentTransition:null,transitionHistory:[],totalTransitions:0,averageDuration:0}),s=ee.useRef(new Map),y=ee.useRef(0),f=ee.useCallback((p,v)=>{m&&console.log(`[PageTransitionManager] ${p}`,v);},[m]),b=ee.useCallback(p=>{h(v=>{let k=a?[...v.transitionHistory,p]:v.transitionHistory,T=k.length,M=k.reduce((B,R)=>B+R.duration,0)/T;return {...v,totalTransitions:T,averageDuration:M,transitionHistory:k}});},[a]),g=ee.useCallback(async p=>{let v=`transition_${++y.current}`,k={type:e,duration:r,easing:o,...p},T={id:v,type:k.type,duration:k.duration,easing:k.easing,timestamp:Date.now(),status:"pending"};f("Starting transition",{id:v,config:k}),h(B=>({...B,isTransitioning:true,currentTransition:T}));let M=setTimeout(()=>{var R;let B={...T,status:"completed"};h(N=>({...N,isTransitioning:false,currentTransition:null})),b(B),s.current.delete(v),f("Transition completed",{id:v}),(R=k.onComplete)==null||R.call(k);},k.duration);return s.current.set(v,{timer:M,config:k}),setTimeout(()=>{h(B=>({...B,currentTransition:{...B.currentTransition,status:"active"}}));},50),v},[e,r,o,f,b]),d=ee.useCallback(p=>{let v=s.current.get(p);v&&(clearTimeout(v.timer),s.current.delete(p),h(k=>{var T;return {...k,isTransitioning:s.current.size>0,currentTransition:((T=k.currentTransition)==null?void 0:T.id)===p?null:k.currentTransition}}),f("Transition cancelled",{id:p}));},[f]),n=ee.useCallback(()=>{s.current.forEach(({timer:p},v)=>{clearTimeout(p),f("Transition paused",{id:v});});},[f]),u=ee.useCallback(()=>{s.current.forEach(({config:p},v)=>{g(p);});},[g]),c=ee.useCallback(()=>{h(p=>({...p,transitionHistory:[],totalTransitions:0,averageDuration:0})),f("History cleared");},[f]),w=ee.useCallback(()=>{let{transitionHistory:p}=x,v=p.reduce((T,M)=>(T[M.type]=(T[M.type]||0)+1,T),{}),k=p.reduce((T,M)=>(T[M.status]=(T[M.status]||0)+1,T),{});return {total:p.length,average:x.averageDuration,byType:v,byStatus:k}},[x]);return ee.useEffect(()=>{let p=s.current;return ()=>{p.forEach(({timer:v})=>{clearTimeout(v);}),p.clear();}},[]),[x,{startTransition:g,cancelTransition:d,pauseAll:n,resumeAll:u,clearHistory:c,getTransitionStats:w}]};var Yt=ee__default.default.forwardRef(({children:t,className:e,speed:r=.5,direction:o="up",offset:a=0,disabled:i=false,scale:m=false,opacity:x=false,rotate:h=false,rotateDirection:s="cw",style:y,...f},b)=>{let g=ee.useRef(null),[d,n]=ee.useState({x:0,y:0,scale:1,opacity:1,rotate:0}),u=To(),c=ee.useCallback(()=>{if(i||u)return;let p=g.current;if(!p)return;let v=p.getBoundingClientRect(),k=window.innerHeight,M=v.top+v.height/2,R=(k/2-M)/k,N=R*r*100+a,C=0,I=0;switch(o){case "up":I=-N;break;case "down":I=N;break;case "left":C=-N;break;case "right":C=N;break}let V=m?1+Math.abs(R)*.1:1,z=x?Math.max(.3,1-Math.abs(R)*.5):1,$=h?R*10*(s==="cw"?1:-1):0;n({x:C,y:I,scale:V,opacity:z,rotate:$});},[i,u,r,o,a,m,x,h,s]);ee.useEffect(()=>{if(i||u)return;c();let p=()=>{requestAnimationFrame(c);};return window.addEventListener("scroll",p,{passive:true}),window.addEventListener("resize",p,{passive:true}),()=>{window.removeEventListener("scroll",p),window.removeEventListener("resize",p);}},[c,i,u]);let w={...y,transform:i||u?void 0:`translate3d(${d.x}px, ${d.y}px, 0) scale(${d.scale}) rotate(${d.rotate}deg)`,opacity:i||u?1:d.opacity,willChange:i||u?void 0:"transform, opacity"};return jsxRuntime.jsx("div",{ref:Co(b,g),className:l("transition-none",e),style:w,...f,children:t})});Yt.displayName="Parallax";function To(){let[t,e]=ee.useState(false);return ee.useEffect(()=>{let r=window.matchMedia("(prefers-reduced-motion: reduce)");e(r.matches);let o=a=>{e(a.matches);};return r.addEventListener("change",o),()=>r.removeEventListener("change",o)},[]),t}function Co(...t){return e=>{t.forEach(r=>{typeof r=="function"?r(e):r&&typeof r=="object"&&(r.current=e);});}}var Qt=ee__default.default.forwardRef(({children:t,className:e,direction:r="left",speed:o=50,pauseOnHover:a=true,pauseOnClick:i=false,gap:m=16,gradient:x=true,gradientColor:h="hsl(var(--background))",gradientWidth:s=100,style:y,...f},b)=>{let g=ee.useRef(null),[d,n]=ee.useState(0),[u,c]=ee.useState(0),[w,p]=ee.useState(false),v=r==="left"||r==="right",k=r==="right"||r==="down";ee.useEffect(()=>{let R=g.current;if(!R)return;let N=R.firstElementChild;if(!N)return;let C=()=>{v?n(N.offsetWidth):c(N.offsetHeight);};C();let I=new ResizeObserver(C);return I.observe(N),()=>I.disconnect()},[v,t]);let M={"--marquee-duration":`${v?d/o:u/o}s`,"--marquee-gap":`${m}px`},B=x?{"--gradient-color":h,"--gradient-width":`${s}px`}:{};return jsxRuntime.jsxs("div",{ref:b,className:l("relative overflow-hidden",x&&"marquee-gradient",e),style:{...y,...B},onMouseEnter:()=>a&&p(true),onMouseLeave:()=>a&&p(false),onClick:()=>i&&p(!w),...f,children:[jsxRuntime.jsxs("div",{ref:g,className:l("flex",v?"flex-row":"flex-col",w?"animate-pause":"",v?k?"animate-marquee-right":"animate-marquee-left":k?"animate-marquee-down":"animate-marquee-up"),style:M,children:[jsxRuntime.jsx("div",{className:l("flex shrink-0",v?"flex-row":"flex-col"),style:{gap:m},children:t}),jsxRuntime.jsx("div",{className:l("flex shrink-0",v?"flex-row":"flex-col"),style:{gap:m,[v?"marginLeft":"marginTop"]:m},"aria-hidden":"true",children:t})]}),jsxRuntime.jsx("style",{dangerouslySetInnerHTML:{__html:`
2
- @keyframes marquee-left {
3
- from { transform: translateX(0); }
4
- to { transform: translateX(calc(-50% - var(--marquee-gap) / 2)); }
5
- }
6
- @keyframes marquee-right {
7
- from { transform: translateX(calc(-50% - var(--marquee-gap) / 2)); }
8
- to { transform: translateX(0); }
9
- }
10
- @keyframes marquee-up {
11
- from { transform: translateY(0); }
12
- to { transform: translateY(calc(-50% - var(--marquee-gap) / 2)); }
13
- }
14
- @keyframes marquee-down {
15
- from { transform: translateY(calc(-50% - var(--marquee-gap) / 2)); }
16
- to { transform: translateY(0); }
17
- }
18
- .animate-marquee-left { animation: marquee-left var(--marquee-duration) linear infinite; }
19
- .animate-marquee-right { animation: marquee-right var(--marquee-duration) linear infinite; }
20
- .animate-marquee-up { animation: marquee-up var(--marquee-duration) linear infinite; }
21
- .animate-marquee-down { animation: marquee-down var(--marquee-duration) linear infinite; }
22
- .animate-pause { animation-play-state: paused !important; }
23
- .marquee-gradient::before, .marquee-gradient::after {
24
- content: "";
25
- position: absolute;
26
- top: 0;
27
- bottom: 0;
28
- width: var(--gradient-width);
29
- z-index: 10;
30
- pointer-events: none;
31
- }
32
- .marquee-gradient::before {
33
- left: 0;
34
- background: linear-gradient(to right, var(--gradient-color), transparent);
35
- }
36
- .marquee-gradient::after {
37
- right: 0;
38
- background: linear-gradient(to left, var(--gradient-color), transparent);
39
- }
40
- `}})]})});Qt.displayName="Marquee";var Jt=ee__default.default.forwardRef(({children:t,className:e,glowColor:r="rgba(120, 119, 198, 0.3)",glowSize:o=400,glowOpacity:a=.6,border:i=true,borderColor:m,style:x,...h},s)=>{let y=ee.useRef(null),[f,b]=ee.useState({x:0,y:0}),[g,d]=ee.useState(false),n=ee.useCallback(w=>{if(!y.current)return;let p=y.current.getBoundingClientRect();b({x:w.clientX-p.left,y:w.clientY-p.top});},[]),u={position:"absolute",top:0,left:0,right:0,bottom:0,borderRadius:"inherit",opacity:g?a:0,background:`radial-gradient(${o}px circle at ${f.x}px ${f.y}px, ${r}, transparent 40%)`,transition:"opacity 0.3s ease",pointerEvents:"none"},c=i?{position:"absolute",top:0,left:0,right:0,bottom:0,borderRadius:"inherit",opacity:g?1:0,background:`radial-gradient(${o/2}px circle at ${f.x}px ${f.y}px, ${m||r}, 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 jsxRuntime.jsxs("div",{ref:So(s,y),className:l("relative overflow-hidden rounded-xl bg-card border border-border p-6","transition-all duration-300",g&&"border-transparent",e),style:x,onMouseMove:n,onMouseEnter:()=>d(true),onMouseLeave:()=>d(false),...h,children:[jsxRuntime.jsx("div",{style:u,"aria-hidden":"true"}),i&&jsxRuntime.jsx("div",{style:c,"aria-hidden":"true"}),jsxRuntime.jsx("div",{className:"relative z-10",children:t})]})});Jt.displayName="GlowCard";function So(...t){return e=>{t.forEach(r=>{typeof r=="function"?r(e):r&&typeof r=="object"&&(r.current=e);});}}var tr=ee__default.default.forwardRef(({children:t,className:e,spotlightColor:r="rgba(255, 255, 255, 0.1)",spotlightSize:o=300,gradient:a=true,gradientFrom:i="rgba(255, 255, 255, 0.05)",gradientTo:m="transparent",style:x,...h},s)=>{let y=ee.useRef(null),[f,b]=ee.useState({x:0,y:0}),[g,d]=ee.useState(false),n=ee.useCallback(w=>{if(!y.current)return;let p=y.current.getBoundingClientRect();b({x:w.clientX-p.left,y:w.clientY-p.top});},[]),u={position:"absolute",top:0,left:0,right:0,bottom:0,borderRadius:"inherit",opacity:g?1:0,background:`radial-gradient(${o}px circle at ${f.x}px ${f.y}px, ${r}, transparent 60%)`,transition:"opacity 0.4s ease",pointerEvents:"none"},c=a?{position:"absolute",top:0,left:0,right:0,bottom:0,borderRadius:"inherit",background:`linear-gradient(135deg, ${i} 0%, ${m} 100%)`,pointerEvents:"none"}:{};return jsxRuntime.jsxs("div",{ref:$o(s,y),className:l("relative overflow-hidden rounded-xl","bg-gray-900 border border-gray-800","transition-all duration-300",g&&"border-gray-700 shadow-2xl shadow-black/20",e),style:x,onMouseMove:n,onMouseEnter:()=>d(true),onMouseLeave:()=>d(false),...h,children:[a&&jsxRuntime.jsx("div",{style:c,"aria-hidden":"true"}),jsxRuntime.jsx("div",{style:u,"aria-hidden":"true"}),jsxRuntime.jsx("div",{className:"relative z-10",children:t})]})});tr.displayName="SpotlightCard";function $o(...t){return e=>{t.forEach(r=>{typeof r=="function"?r(e):r&&typeof r=="object"&&(r.current=e);});}}var nr=ee__default.default.forwardRef(({text:t,className:e,revealColor:r="currentColor",hiddenColor:o="rgba(128, 128, 128, 0.3)",threshold:a=.5,byWord:i=false,byChar:m=false,style:x,...h},s)=>{let y=ee.useRef(null),[f,b]=ee.useState(0),g=qo(),d=ee.useCallback(()=>{if(!y.current)return;let u=y.current.getBoundingClientRect(),c=window.innerHeight,w=c*(1-a),p=c*a,v=u.top+u.height/2,k=0;v<=w&&v>=p?k=(w-v)/(w-p):v<p&&(k=1),b(Math.max(0,Math.min(1,k)));},[a]);ee.useEffect(()=>{if(g){b(1);return}d();let u=()=>{requestAnimationFrame(d);};return window.addEventListener("scroll",u,{passive:true}),window.addEventListener("resize",u,{passive:true}),()=>{window.removeEventListener("scroll",u),window.removeEventListener("resize",u);}},[d,g]);let n=()=>{if(m){let u=t.split("");return u.map((c,w)=>{let p=f*u.length,v=w<p;return jsxRuntime.jsx("span",{style:{color:v?r:o,transition:"color 0.1s ease-out"},children:c},w)})}if(i){let u=t.split(" ");return u.map((c,w)=>{let p=f*u.length,v=w<p;return jsxRuntime.jsxs("span",{children:[jsxRuntime.jsx("span",{style:{color:v?r:o,transition:"color 0.15s ease-out"},children:c}),w<u.length-1&&" "]},w)})}return jsxRuntime.jsx("span",{style:{background:`linear-gradient(90deg, ${r} ${f*100}%, ${o} ${f*100}%)`,WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent",backgroundClip:"text",transition:"background 0.1s ease-out"},children:t})};return jsxRuntime.jsx("div",{ref:Uo(s,y),className:l("font-medium",e),style:x,...h,children:n()})});nr.displayName="TextReveal";function qo(){let[t,e]=ee.useState(false);return ee.useEffect(()=>{let r=window.matchMedia("(prefers-reduced-motion: reduce)");e(r.matches);let o=a=>{e(a.matches);};return r.addEventListener("change",o),()=>r.removeEventListener("change",o)},[]),t}function Uo(...t){return e=>{t.forEach(r=>{typeof r=="function"?r(e):r&&typeof r=="object"&&(r.current=e);});}}var Go=["#ff0080","#7928ca","#0070f3","#00dfd8"],ir=ee__default.default.forwardRef(({children:t,className:e,colors:r=Go,speed:o=3,blur:a=true,blurAmount:i=100,type:m="mesh",animate:x=true,style:h,...s},y)=>{let[f,b]=ee.useState(false),g=_o(),d=x&&!g;ee.useEffect(()=>{b(true);},[]);let n=()=>{switch(m){case "linear":return jsxRuntime.jsx("div",{className:"absolute inset-0",style:{background:`linear-gradient(
41
- ${d?"var(--gradient-angle, 0deg)":"135deg"},
42
- ${r.join(", ")}
43
- )`,animation:d?`gradient-rotate ${o}s linear infinite`:void 0}});case "radial":return jsxRuntime.jsx("div",{className:"absolute inset-0",style:{background:`radial-gradient(
44
- circle at ${d?"var(--gradient-x, 50%) var(--gradient-y, 50%)":"50% 50%"},
45
- ${r.join(", ")}
46
- )`,animation:d?`gradient-move ${o}s ease-in-out infinite`:void 0}});case "conic":return jsxRuntime.jsx("div",{className:"absolute inset-0",style:{background:`conic-gradient(
47
- from ${d?"var(--gradient-angle, 0deg)":"0deg"} at 50% 50%,
48
- ${r.join(", ")},
49
- ${r[0]}
50
- )`,animation:d?`gradient-spin ${o}s linear infinite`:void 0}});default:return f?jsxRuntime.jsx(jsxRuntime.Fragment,{children:r.map((u,c)=>{let w=360/r.length*c,p=o/r.length*c;return jsxRuntime.jsx("div",{className:"absolute rounded-full mix-blend-screen",style:{width:"60%",height:"60%",background:`radial-gradient(circle at center, ${u} 0%, transparent 70%)`,top:`${30+Math.sin(w*Math.PI/180)*20}%`,left:`${30+Math.cos(w*Math.PI/180)*20}%`,animation:d?`gradient-blob ${o}s ease-in-out infinite`:void 0,animationDelay:d?`${-p}s`:void 0}},c)})}):null}};return jsxRuntime.jsxs("div",{ref:y,className:l("relative overflow-hidden",e),style:h,...s,children:[jsxRuntime.jsx("div",{className:"absolute inset-0",style:{filter:a?`blur(${i}px)`:void 0},children:n()}),t&&jsxRuntime.jsx("div",{className:"relative z-10",children:t}),jsxRuntime.jsx("style",{dangerouslySetInnerHTML:{__html:`
51
- @keyframes gradient-rotate {
52
- 0% { --gradient-angle: 0deg; }
53
- 100% { --gradient-angle: 360deg; }
54
- }
55
- @keyframes gradient-spin {
56
- 0% { transform: rotate(0deg); }
57
- 100% { transform: rotate(360deg); }
58
- }
59
- @keyframes gradient-move {
60
- 0%, 100% { --gradient-x: 0%; --gradient-y: 0%; }
61
- 25% { --gradient-x: 100%; --gradient-y: 0%; }
62
- 50% { --gradient-x: 100%; --gradient-y: 100%; }
63
- 75% { --gradient-x: 0%; --gradient-y: 100%; }
64
- }
65
- @keyframes gradient-blob {
66
- 0%, 100% { transform: translate(0, 0) scale(1); }
67
- 25% { transform: translate(20%, -20%) scale(1.1); }
68
- 50% { transform: translate(0, 20%) scale(0.9); }
69
- 75% { transform: translate(-20%, -10%) scale(1.05); }
70
- }
71
- `}})]})});ir.displayName="AnimatedGradient";function _o(){let[t,e]=ee.useState(false);return ee.useEffect(()=>{let r=window.matchMedia("(prefers-reduced-motion: reduce)");e(r.matches);let o=a=>{e(a.matches);};return r.addEventListener("change",o),()=>r.removeEventListener("change",o)},[]),t}var cr=ee__default.default.forwardRef(({children:t,className:e,maxTilt:r=15,perspective:o=1e3,scale:a=1.02,speed:i=400,glare:m=true,maxGlare:x=.3,reset:h=true,style:s,...y},f)=>{let b=ee.useRef(null),[g,d]=ee.useState({rotateX:0,rotateY:0,scale:1}),[n,u]=ee.useState({x:50,y:50}),[c,w]=ee.useState(false),p=ee.useCallback(R=>{if(!b.current)return;let N=b.current.getBoundingClientRect(),C=N.left+N.width/2,I=N.top+N.height/2,V=R.clientX-C,z=R.clientY-I,$=V/(N.width/2)*r,Z=-(z/(N.height/2))*r;d({rotateX:Z,rotateY:$,scale:a});let J=(R.clientX-N.left)/N.width*100,D=(R.clientY-N.top)/N.height*100;u({x:J,y:D});},[r,a]),v=()=>{w(true);},k=()=>{w(false),h&&d({rotateX:0,rotateY:0,scale:1});},T={...s,perspective:`${o}px`},M={transform:`rotateX(${g.rotateX}deg) rotateY(${g.rotateY}deg) scale(${g.scale})`,transition:c?"none":`transform ${i}ms ease-out`,transformStyle:"preserve-3d"},B={position:"absolute",top:0,left:0,right:0,bottom:0,borderRadius:"inherit",background:`linear-gradient(
72
- ${Math.atan2(n.y-50,n.x-50)*(180/Math.PI)+90}deg,
73
- rgba(255, 255, 255, ${c?x:0}) 0%,
74
- transparent 80%
75
- )`,transition:c?"opacity 0.1s ease-out":`opacity ${i}ms ease-out`,pointerEvents:"none",opacity:c?1:0};return jsxRuntime.jsx("div",{ref:Zo(f,b),className:l("relative",e),style:T,onMouseMove:p,onMouseEnter:v,onMouseLeave:k,...y,children:jsxRuntime.jsxs("div",{style:M,className:"relative",children:[t,m&&jsxRuntime.jsx("div",{style:B,"aria-hidden":"true"})]})})});cr.displayName="TiltCard";function Zo(...t){return e=>{t.forEach(r=>{typeof r=="function"?r(e):r&&typeof r=="object"&&(r.current=e);});}}var ur=ee__default.default.forwardRef(({src:t,type:e="native",poster:r,autoPlay:o=true,loop:a=true,muted:i=true,controls:m=false,objectFit:x="cover",overlay:h=true,overlayColor:s="rgba(0, 0, 0, 0.4)",gradient:y=false,gradientDirection:f="bottom",playbackRate:b=1,fadeIn:g=true,children:d,className:n,style:u,...c},w)=>{let p=ee.useRef(null),[v,k]=ee.useState(false),[T,M]=ee.useState(false);ee.useEffect(()=>{e==="native"&&p.current&&(p.current.playbackRate=b);},[b,e]);let B=()=>{k(true);},R=()=>{M(true);},N=$=>{let Z=new URLSearchParams({autoplay:o?"1":"0",mute:i?"1":"0",loop:a?"1":"0",controls:m?"1":"0",playlist:$,modestbranding:"1",rel:"0",showinfo:"0",iv_load_policy:"3",disablekb:"1",enablejsapi:"1",playsinline:"1"});return `https://www.youtube.com/embed/${$}?${Z.toString()}`},C=$=>{let Z=new URLSearchParams({autoplay:o?"1":"0",muted:i?"1":"0",loop:a?"1":"0",controls:m?"1":"0",background:"1",quality:"auto",dnt:"1"});return `https://player.vimeo.com/video/${$}?${Z.toString()}`},I=()=>{let $={cover:"object-cover",contain:"object-contain",fill:"object-fill"}[x];switch(e){case "youtube":return jsxRuntime.jsx("iframe",{src:N(t),className:l("absolute inset-0 w-full h-full pointer-events-none","scale-[1.2]"),style:{opacity:v||!g?1:0,transition:g?"opacity 0.8s ease-out":void 0},allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:true,onLoad:()=>k(true),title:"YouTube video background"});case "vimeo":return jsxRuntime.jsx("iframe",{src:C(t),className:"absolute inset-0 w-full h-full pointer-events-none",style:{opacity:v||!g?1:0,transition:g?"opacity 0.8s ease-out":void 0},allow:"autoplay; fullscreen; picture-in-picture",allowFullScreen:true,onLoad:()=>k(true),title:"Vimeo video background"});default:return jsxRuntime.jsx("video",{ref:p,src:t,poster:r,autoPlay:o,loop:a,muted:i,controls:m,playsInline:true,className:l("absolute inset-0 w-full h-full",$),style:{opacity:T||!g?1:0,transition:g?"opacity 0.8s ease-out":void 0},onLoadedData:B,onPlaying:R})}},V=()=>{if(!y)return null;let $=[];return (f==="top"||f==="both")&&$.push(jsxRuntime.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")),(f==="bottom"||f==="both")&&$.push(jsxRuntime.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")),jsxRuntime.jsx(jsxRuntime.Fragment,{children:$})},z=n&&/\b(fixed|absolute|sticky)\b/.test(n);return jsxRuntime.jsxs("div",{ref:w,className:l("overflow-hidden",!z&&"relative",n),style:u,...c,children:[r&&g&&!v&&!T&&jsxRuntime.jsx("div",{className:"absolute inset-0 bg-cover bg-center",style:{backgroundImage:`url(${r})`},"aria-hidden":"true"}),I(),h&&!y&&jsxRuntime.jsx("div",{className:"absolute inset-0",style:{backgroundColor:s},"aria-hidden":"true"}),V(),d&&jsxRuntime.jsx("div",{className:"relative z-10 h-full",children:d})]})});ur.displayName="VideoBackground";var pr=ee__default.default.forwardRef(({children:t,autoPlay:e=false,interval:r=5e3,loop:o=true,pauseOnHover:a=true,indicators:i="dots",indicatorPosition:m="bottom",showArrows:x=true,arrowPosition:h="inside",transition:s="slide",transitionDuration:y=500,onSlideChange:f,showPlayPause:b=false,playPausePosition:g="right",className:d,style:n,...u},c)=>{let w=()=>s==="slide"&&o?1:0,[p,v]=ee.useState(w),[k,T]=ee.useState(!e),[M,B]=ee.useState(false),[R,N]=ee.useState(false),[C,I]=ee.useState(false),[V,z]=ee.useState(null),[$,Z]=ee.useState(null),J=ee.useRef(null),D=ee__default.default.Children.count(t),te=sn(),ne=ee.useCallback(L=>s!=="slide"||!o?L:L===0?D-1:L===D+1?0:L-1,[o,D,s]),W=ee.useCallback(L=>{if(R)return;let E=L;if(o?s!=="slide"&&(L<0?E=D-1:L>=D&&(E=0)):E=Math.max(0,Math.min(L,D-1)),E!==p){N(true),v(E);let H=o&&s==="slide"?E===0?D-1:E===D+1?0:E-1:E;f==null||f(H),setTimeout(()=>N(false),y);}},[p,D,o,R,y,s,f]);ee.useEffect(()=>{!o||R||s!=="slide"||(p===0?setTimeout(()=>{I(true),v(D),setTimeout(()=>I(false),50);},y):p===D+1&&setTimeout(()=>{I(true),v(1),setTimeout(()=>I(false),50);},y));},[p,D,o,R,y,s]);let re=ee.useCallback(()=>{W(p+1);},[p,W]),ve=ee.useCallback(()=>{W(p-1);},[p,W]),We=ee.useCallback(()=>{B(L=>!L);},[]);ee.useCallback(()=>{B(false);},[]);ee.useCallback(()=>{B(true);},[]);ee.useEffect(()=>{if(!e||k||M||te)return;let L=setInterval(re,r);return ()=>clearInterval(L)},[e,r,k,M,re,te]);let Ge=L=>{z(L.targetTouches[0].clientX);},_e=L=>{Z(L.targetTouches[0].clientX);},je=()=>{if(!V||!$)return;let L=V-$;Math.abs(L)>=50&&(L>0?re():ve()),z(null),Z(null);};ee.useEffect(()=>{let L=H=>{H.key==="ArrowLeft"?ve():H.key==="ArrowRight"&&re();},E=J.current;return E==null||E.addEventListener("keydown",L),()=>E==null?void 0:E.removeEventListener("keydown",L)},[re,ve]);let lt=()=>{let L=te||C?0:y,E=ne(p);switch(s){case "fade":return ee__default.default.Children.map(t,(H,q)=>jsxRuntime.jsx("div",{className:l("absolute inset-0 w-full h-full",q===E?"z-10":"z-0"),style:{opacity:q===E?1:0,transition:`opacity ${L}ms ease-in-out`},children:H},q));case "scale":return ee__default.default.Children.map(t,(H,q)=>jsxRuntime.jsx("div",{className:l("absolute inset-0 w-full h-full",q===E?"z-10":"z-0"),style:{opacity:q===E?1:0,transform:`scale(${q===E?1:.9})`,transition:`opacity ${L}ms ease-in-out, transform ${L}ms ease-in-out`},children:H},q));default:{let H=ee__default.default.Children.toArray(t);return (o?[H[H.length-1],...H,H[0]]:H).map((j,oe)=>jsxRuntime.jsx("div",{className:"absolute inset-0 w-full h-full",style:{transform:`translateX(${(oe-p)*100}%)`,transition:C?"none":`transform ${L}ms ease-in-out`},children:j},oe))}}},Me=()=>{if(i==="none")return null;let L=m.includes("inside"),E=m.includes("top"),H=ne(p),q=l("flex items-center justify-center gap-2",L?l("absolute left-1/2 -translate-x-1/2 z-20",E?"top-4":"bottom-4"):l("mt-4",E&&"order-first mb-4 mt-0")),j=oe=>{W(o&&s==="slide"?oe+1:oe);};return jsxRuntime.jsx("div",{className:q,role:"tablist",children:Array.from({length:D},(oe,K)=>{let ie=K===H;switch(i){case "bars":return jsxRuntime.jsx("button",{onClick:()=>j(K),className:l("h-1 rounded-full transition-all duration-300",ie?"w-8 bg-white":"w-4 bg-white/50 hover:bg-white/70"),role:"tab","aria-selected":ie,"aria-label":`\uC2AC\uB77C\uC774\uB4DC ${K+1}`},K);case "numbers":return jsxRuntime.jsx("button",{onClick:()=>j(K),className:l("w-8 h-8 rounded-full text-sm font-medium transition-all duration-300",ie?"bg-white text-gray-900":"bg-white/30 text-white hover:bg-white/50"),role:"tab","aria-selected":ie,"aria-label":`\uC2AC\uB77C\uC774\uB4DC ${K+1}`,children:K+1},K);default:return jsxRuntime.jsx("button",{onClick:()=>j(K),className:l("w-2.5 h-2.5 rounded-full transition-all duration-300",ie?"bg-white scale-125":"bg-white/50 hover:bg-white/70"),role:"tab","aria-selected":ie,"aria-label":`\uC2AC\uB77C\uC774\uB4DC ${K+1}`},K)}})})},Xe=()=>{if(!b||!e)return null;let L=!M;return jsxRuntime.jsx("button",{onClick:We,className:l("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"}[g]),"aria-label":L?"\uC77C\uC2DC\uC815\uC9C0":"\uC7AC\uC0DD",children:L?jsxRuntime.jsx(un,{className:"w-4 h-4"}):jsxRuntime.jsx(dn,{className:"w-4 h-4"})})},Ye=()=>{if(!x||h==="hidden")return null;let L=o||p>0,E=o||p<D-1,H=l("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"),q=h==="outside"?"-left-14":"left-4",j=h==="outside"?"-right-14":"right-4";return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("button",{onClick:ve,disabled:!L,className:l(H,q),"aria-label":"\uC774\uC804 \uC2AC\uB77C\uC774\uB4DC",children:jsxRuntime.jsx(ln,{className:"w-5 h-5"})}),jsxRuntime.jsx("button",{onClick:re,disabled:!E,className:l(H,j),"aria-label":"\uB2E4\uC74C \uC2AC\uB77C\uC774\uB4DC",children:jsxRuntime.jsx(cn,{className:"w-5 h-5"})})]})};return jsxRuntime.jsxs("div",{ref:c,className:l("flex flex-col w-full h-full",h==="outside"&&"px-16",d),style:n,...u,children:[jsxRuntime.jsxs("div",{ref:J,className:"relative overflow-hidden w-full flex-1",onMouseEnter:()=>a&&T(true),onMouseLeave:()=>a&&T(false),onTouchStart:Ge,onTouchMove:_e,onTouchEnd:je,tabIndex:0,role:"region","aria-roledescription":"carousel","aria-label":"\uC774\uBBF8\uC9C0 \uC2AC\uB77C\uC774\uB354",children:[lt(),Ye(),Xe(),m.includes("inside")&&Me()]}),!m.includes("inside")&&Me()]})});pr.displayName="Carousel";function sn(){let[t,e]=ee.useState(false);return ee.useEffect(()=>{let r=window.matchMedia("(prefers-reduced-motion: reduce)");e(r.matches);let o=a=>{e(a.matches);};return r.addEventListener("change",o),()=>r.removeEventListener("change",o)},[]),t}function ln({className:t}){return jsxRuntime.jsx("svg",{className:t,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsxRuntime.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"})})}function cn({className:t}){return jsxRuntime.jsx("svg",{className:t,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsxRuntime.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})}function dn({className:t}){return jsxRuntime.jsx("svg",{className:t,fill:"currentColor",viewBox:"0 0 24 24",children:jsxRuntime.jsx("path",{d:"M8 5v14l11-7z"})})}function un({className:t}){return jsxRuntime.jsx("svg",{className:t,fill:"currentColor",viewBox:"0 0 24 24",children:jsxRuntime.jsx("path",{d:"M6 4h4v16H6V4zm8 0h4v16h-4V4z"})})}var hr=ee__default.default.forwardRef(({src:t,alt:e,direction:r="left",threshold:o=.3,height:a="400px",overlayColor:i,className:m,style:x,...h},s)=>{let y=ee.useRef(null),[f,b]=ee.useState(0),g=bn(),d=ee.useCallback(()=>{if(!y.current)return;let u=y.current.getBoundingClientRect(),c=window.innerHeight,w=c*(1-o),p=c*o,v=u.top+u.height/2,k=0;v<=w&&v>=p?k=(w-v)/(w-p):v<p&&(k=1),b(Math.max(0,Math.min(1,k)));},[o]);ee.useEffect(()=>{if(g){b(1);return}d();let u=()=>requestAnimationFrame(d);return window.addEventListener("scroll",u,{passive:true}),window.addEventListener("resize",u,{passive:true}),()=>{window.removeEventListener("scroll",u),window.removeEventListener("resize",u);}},[d,g]);let n=hn(r,f);return jsxRuntime.jsxs("div",{ref:vn(s,y),className:l("relative overflow-hidden",m),style:{height:a,...x},...h,children:[jsxRuntime.jsx("img",{src:t,alt:e,className:"absolute inset-0 w-full h-full object-cover",style:{clipPath:n,transition:"clip-path 0.1s ease-out"}}),i&&jsxRuntime.jsx("div",{className:"absolute inset-0 pointer-events-none",style:{background:i,opacity:1-f,transition:"opacity 0.3s ease-out"},"aria-hidden":"true"})]})});hr.displayName="ImageReveal";function hn(t,e){switch(t){case "left":return `inset(0 ${100-e*100}% 0 0)`;case "right":return `inset(0 0 0 ${100-e*100}%)`;case "up":return `inset(0 0 ${100-e*100}% 0)`;case "down":return `inset(${100-e*100}% 0 0 0)`;default:return `inset(0 ${100-e*100}% 0 0)`}}function bn(){let[t,e]=ee.useState(false);return ee.useEffect(()=>{let r=window.matchMedia("(prefers-reduced-motion: reduce)");e(r.matches);let o=a=>e(a.matches);return r.addEventListener("change",o),()=>r.removeEventListener("change",o)},[]),t}function vn(...t){return e=>{t.forEach(r=>{typeof r=="function"?r(e):r&&typeof r=="object"&&(r.current=e);});}}var vr=ee__default.default.forwardRef(({items:t,position:e="right",activeColor:r="bg-primary",inactiveColor:o="bg-muted-foreground/30",className:a,...i},m)=>{let[x,h]=ee.useState(0),s=ee.useCallback(()=>{let b=window.innerHeight,g=0,d=1/0;t.forEach((n,u)=>{let c=document.getElementById(n.id);if(!c)return;let w=c.getBoundingClientRect(),p=Math.abs(w.top-b*.3);p<d&&(d=p,g=u);}),h(g);},[t]);ee.useEffect(()=>(s(),window.addEventListener("scroll",s,{passive:true}),()=>window.removeEventListener("scroll",s)),[s]);let y=ee.useCallback(b=>{let g=document.getElementById(b);g&&g.scrollIntoView({behavior:"smooth",block:"start"});},[]),f=ee.useMemo(()=>e==="left"?"left-4":"right-4",[e]);return jsxRuntime.jsx("nav",{ref:m,className:l("fixed top-1/2 -translate-y-1/2 z-40 flex flex-col gap-3",f,a),"aria-label":"Section navigation",...i,children:t.map((b,g)=>jsxRuntime.jsx("button",{onClick:()=>y(b.id),className:l("group relative w-3 h-3 rounded-full transition-all duration-300",g===x?`${r} scale-125`:`${o} hover:scale-110`),"aria-label":b.label||b.id,"aria-current":g===x?"true":void 0,children:b.label&&jsxRuntime.jsx("span",{className:l("absolute top-1/2 -translate-y-1/2 whitespace-nowrap px-2 py-1 text-xs rounded bg-popover text-popover-foreground shadow-md opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none",e==="right"?"right-full mr-2":"left-full ml-2"),children:b.label})},b.id))})});vr.displayName="DotNav";var Tr=ee__default.default.forwardRef(({children:t,heightMultiplier:e=1,snap:r=false,onProgress:o,className:a,style:i,...m},x)=>{let h=ee.useRef(null),s=ee.useRef(null),[y,f]=ee.useState(0),[b,g]=ee.useState(0);ee.useEffect(()=>{if(!s.current)return;let c=()=>{s.current&&f(s.current.scrollWidth-window.innerWidth);};c();let w=new ResizeObserver(c);return w.observe(s.current),()=>w.disconnect()},[t]);let d=ee.useCallback(()=>{if(!h.current||y<=0)return;let c=h.current.getBoundingClientRect(),w=h.current.offsetHeight-window.innerHeight,p=-c.top,v=Math.max(0,Math.min(1,p/w));g(v),o==null||o(v);},[y,o]);ee.useEffect(()=>(window.addEventListener("scroll",d,{passive:true}),()=>window.removeEventListener("scroll",d)),[d]);let u=`${ee__default.default.Children.count(t)*e*100}vh`;return jsxRuntime.jsx("div",{ref:En(x,h),className:l("relative",a),style:{height:u,...i},...m,children:jsxRuntime.jsx("div",{className:"sticky top-0 h-screen overflow-hidden",children:jsxRuntime.jsx("div",{ref:s,className:l("flex h-full will-change-transform",r&&"scroll-snap-x"),style:{transform:`translateX(${-b*y}px)`},children:ee__default.default.Children.map(t,(c,w)=>jsxRuntime.jsx("div",{className:l("flex-shrink-0 w-screen h-full",r&&"snap-start"),children:c},w))})})})});Tr.displayName="HorizontalScroll";function En(...t){return e=>{t.forEach(r=>{typeof r=="function"?r(e):r&&typeof r=="object"&&(r.current=e);});}}var he=ee__default.default.forwardRef(({className:t,value:e,max:r=100,size:o="md",color:a="blue",...i},m)=>{let x={sm:"h-2",md:"h-3",lg:"h-4"},h={blue:"bg-indigo-500",green:"bg-green-500",yellow:"bg-yellow-500",red:"bg-red-500",purple:"bg-purple-500",orange:"bg-orange-500",indigo:"bg-indigo-500",pink:"bg-pink-500",gray:"bg-gray-500"},s=Math.min(Math.max(e/r*100,0),100);return jsxRuntime.jsx("div",{ref:m,className:l("w-full bg-muted rounded-full",x[o],t),...i,children:jsxRuntime.jsx("div",{className:l("h-full rounded-full transition-all duration-300",h[a]||h.blue),style:{width:`${s}%`}})})});he.displayName="EmotionMeter";var Je=ee__default.default.forwardRef(({className:t,emotion:e,isSelected:r=false,size:o="md",...a},i)=>jsxRuntime.jsx("button",{ref:i,className:l("rounded-full border-2 transition-all duration-200 hover:scale-105 focus:outline-none focus:ring-1 focus:ring-ring",{sm:"w-8 h-8 text-sm",md:"w-12 h-12 text-lg",lg:"w-16 h-16 text-xl"}[o],r?"border-indigo-500 bg-indigo-50 dark:bg-indigo-900/20":"border-border bg-background",t),...a,children:e}));Je.displayName="EmotionButton";var Ln=[{key:"joy",label:"\uAE30\uC068",icon:"smile",color:"yellow"},{key:"sadness",label:"\uC2AC\uD514",icon:"frown",color:"blue"},{key:"anger",label:"\uD654\uB0A8",icon:"angry",color:"red"},{key:"calm",label:"\uD3C9\uC628",icon:"heart",color:"green"},{key:"excitement",label:"\uC124\uB818",icon:"star",color:"pink"},{key:"worry",label:"\uAC71\uC815",icon:"meh",color:"gray"},{key:"gratitude",label:"\uAC10\uC0AC",icon:"heart",color:"purple"},{key:"loneliness",label:"\uC678\uB85C\uC6C0",icon:"user",color:"indigo"}],kr=ee__default.default.forwardRef(({className:t,selectedEmotion:e,onEmotionSelect:r,layout:o="grid",showIntensity:a=false,intensity:i=50,onIntensityChange:m,emotions:x=Ln,size:h="md",variant:s="button",...y},f)=>{let b=n=>{r==null||r(n);},g=n=>{let u=e===n.key;return s==="button"?jsxRuntime.jsx(Je,{emotion:n.key,isSelected:u,size:h,onClick:()=>b(n.key),className:l("transition-all duration-200",u&&"ring-1 ring-offset-2 ring-primary"),children:n.label},n.key):s==="card"?jsxRuntime.jsx("div",{className:l("p-4 rounded-lg border-2 cursor-pointer transition-all duration-200 hover:shadow-md",u?"border-primary bg-primary/5":"border-border hover:border-primary/50"),onClick:()=>b(n.key),children:jsxRuntime.jsxs("div",{className:"flex items-center space-x-3",children:[jsxRuntime.jsx("div",{className:l("w-8 h-8 rounded-full flex items-center justify-center",u?"bg-primary text-primary-foreground":"bg-muted"),children:n.icon&&jsxRuntime.jsxs("span",{className:"text-lg",children:[n.icon==="smile"&&"\u{1F60A}",n.icon==="frown"&&"\u{1F622}",n.icon==="angry"&&"\u{1F620}",n.icon==="heart"&&"\u2764\uFE0F",n.icon==="star"&&"\u2B50",n.icon==="meh"&&"\u{1F610}",n.icon==="user"&&"\u{1F464}"]})}),jsxRuntime.jsx("span",{className:"font-medium truncate max-w-[120px]",children:n.label})]})},n.key):s==="chip"?jsxRuntime.jsx("div",{className:l("px-3 py-1 rounded-full cursor-pointer transition-all duration-200 text-sm font-medium",u?"bg-primary text-primary-foreground":"bg-muted hover:bg-muted/80"),onClick:()=>b(n.key),children:jsxRuntime.jsx("span",{className:"truncate max-w-[100px]",children:n.label})},n.key):null},d={grid:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 gap-2 md:gap-3",list:"space-y-2",compact:"flex flex-wrap gap-1"};return jsxRuntime.jsxs("div",{ref:f,className:l("space-y-4",t),...y,children:[jsxRuntime.jsx("div",{className:d[o],children:x.map(g)}),a&&e&&jsxRuntime.jsxs("div",{className:"space-y-3",children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"\uAC10\uC815 \uAC15\uB3C4"}),jsxRuntime.jsxs("span",{className:"text-sm text-muted-foreground",children:[i,"%"]})]}),jsxRuntime.jsx("input",{type:"range",min:"0",max:"100",value:i,onChange:n=>m==null?void 0:m(Number(n.target.value)),className:"w-full h-2 bg-muted rounded-lg appearance-none cursor-pointer slider"}),jsxRuntime.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[jsxRuntime.jsx("span",{children:"\uC57D\uD568"}),jsxRuntime.jsx("span",{children:"\uBCF4\uD1B5"}),jsxRuntime.jsx("span",{children:"\uAC15\uD568"})]})]}),e&&a&&jsxRuntime.jsx("div",{className:"flex justify-center",children:jsxRuntime.jsx(he,{value:i,size:"md",color:"blue"})})]})});kr.displayName="EmotionSelector";var In=classVarianceAuthority.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"}}),Tt=ee__default.default.forwardRef(({className:t,variant:e="default",shadow:r,padding:o="none",hoverable:a,...i},m)=>jsxRuntime.jsx("div",{ref:m,className:l(In({variant:e,shadow:r,padding:o}),a&&"transition-shadow hover:shadow-lg cursor-pointer",t),...i}));Tt.displayName="Card";var Ct=ee__default.default.forwardRef(({className:t,...e},r)=>jsxRuntime.jsx("div",{ref:r,className:l("flex flex-col space-y-1 p-3",t),...e}));Ct.displayName="CardHeader";var kt=ee__default.default.forwardRef(({className:t,...e},r)=>jsxRuntime.jsx("h3",{ref:r,className:l("text-base md:text-lg font-semibold leading-tight tracking-tight",t),...e}));kt.displayName="CardTitle";var Et=ee__default.default.forwardRef(({className:t,...e},r)=>jsxRuntime.jsx("p",{ref:r,className:l("text-sm text-muted-foreground",t),...e}));Et.displayName="CardDescription";var Pt=ee__default.default.forwardRef(({className:t,...e},r)=>jsxRuntime.jsx("div",{ref:r,className:l("px-3 pb-3",t),...e}));Pt.displayName="CardContent";var Bn=ee__default.default.forwardRef(({className:t,...e},r)=>jsxRuntime.jsx("div",{ref:r,className:l("flex items-center px-3 pb-3",t),...e}));Bn.displayName="CardFooter";var An=classVarianceAuthority.cva("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors duration-200 ease-in-out focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2",{variants:{variant:{default:"bg-[var(--badge-default-bg)] text-[var(--badge-default-text)] hover:opacity-80",secondary:"bg-[var(--badge-secondary-bg)] text-[var(--badge-secondary-text)] hover:opacity-80",destructive:"bg-[var(--badge-destructive-bg)] text-slate-50 hover:opacity-80",error:"bg-[var(--badge-destructive-bg)] text-slate-50 hover:opacity-80",outline:"bg-transparent text-[var(--badge-outline-text)] border border-[var(--badge-outline-border)] hover:bg-[var(--badge-outline-hover-bg)]",glass:"bg-[var(--badge-glass-bg)] backdrop-blur-sm border border-[var(--badge-glass-border)] text-[var(--badge-glass-text)] hover:opacity-80"}},defaultVariants:{variant:"default"}}),Se=ee__default.default.memo(ee__default.default.forwardRef(({className:t,variant:e="default",...r},o)=>jsxRuntime.jsx("div",{ref:o,className:l(An({variant:e}),t),...r})));Se.displayName="Badge";var Rr=ee__default.default.forwardRef(({className:t,primaryEmotion:e,emotionDistribution:r=[],keywords:o=[],intensity:a=50,positivity:i=70,energy:m=60,showMeter:x=true,showDistribution:h=true,showKeywords:s=true,showMetrics:y=true,layout:f="detailed",...b},g)=>{let d=c=>c<30?"\uC57D\uD568":c<70?"\uBCF4\uD1B5":"\uAC15\uD568",n=c=>c<30?"\uBD80\uC815\uC801":c<70?"\uC911\uB9BD\uC801":"\uAE0D\uC815\uC801",u=c=>c<30?"\uB0AE\uC74C":c<70?"\uBCF4\uD1B5":"\uB192\uC74C";return f==="compact"?jsxRuntime.jsxs("div",{ref:g,className:l("space-y-3",t),...b,children:[e&&jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"\uC8FC\uC694 \uAC10\uC815:"}),jsxRuntime.jsxs("div",{className:"flex items-center space-x-2",children:[jsxRuntime.jsxs("span",{className:"text-sm text-muted-foreground",children:[e.name," (",e.intensity,"%)"]}),x&&jsxRuntime.jsx(he,{value:e.intensity,size:"sm",color:"blue"})]})]}),y&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"\uAC10\uC815 \uAC15\uB3C4:"}),jsxRuntime.jsx("span",{className:"text-sm text-muted-foreground",children:d(a)})]}),jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"\uAE0D\uC815\uC131:"}),jsxRuntime.jsx("span",{className:"text-sm text-muted-foreground",children:n(i)})]}),jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"\uC5D0\uB108\uC9C0:"}),jsxRuntime.jsx("span",{className:"text-sm text-muted-foreground",children:u(m)})]})]}),s&&o.length>0&&jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"\uD0A4\uC6CC\uB4DC:"}),jsxRuntime.jsx("div",{className:"flex flex-wrap gap-1 mt-1",children:o.map(c=>jsxRuntime.jsx(Se,{variant:"secondary",className:"text-xs",children:c},c))})]})]}):f==="card"?jsxRuntime.jsxs(Tt,{ref:g,className:l("",t),...b,children:[jsxRuntime.jsxs(Ct,{children:[jsxRuntime.jsxs(kt,{className:"flex items-center",children:[jsxRuntime.jsx("span",{className:"text-2xl mr-2",children:"\u2728"}),"AI \uBD84\uC11D"]}),jsxRuntime.jsx(Et,{children:"\uAC10\uC815 \uBD84\uC11D \uACB0\uACFC"})]}),jsxRuntime.jsxs(Pt,{className:"space-y-4",children:[e&&jsxRuntime.jsxs("div",{className:"space-y-3",children:[jsxRuntime.jsxs("div",{className:"text-sm",children:[jsxRuntime.jsx("span",{className:"font-medium",children:"\uC8FC\uC694 \uAC10\uC815:"}),jsxRuntime.jsxs("span",{className:"ml-2 text-muted-foreground",children:[e.name," (",e.intensity,"%)"]})]}),x&&jsxRuntime.jsx("div",{className:"flex justify-center",children:jsxRuntime.jsx(he,{value:e.intensity,size:"md",color:"blue"})})]}),y&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("div",{className:"text-sm",children:[jsxRuntime.jsx("span",{className:"font-medium",children:"\uAC10\uC815 \uAC15\uB3C4:"}),jsxRuntime.jsx("span",{className:"ml-2 text-muted-foreground",children:d(a)})]}),jsxRuntime.jsxs("div",{className:"text-sm",children:[jsxRuntime.jsx("span",{className:"font-medium",children:"\uAE0D\uC815\uC131:"}),jsxRuntime.jsx("span",{className:"ml-2 text-muted-foreground",children:n(i)})]}),jsxRuntime.jsxs("div",{className:"text-sm",children:[jsxRuntime.jsx("span",{className:"font-medium",children:"\uC5D0\uB108\uC9C0:"}),jsxRuntime.jsx("span",{className:"ml-2 text-muted-foreground",children:u(m)})]})]}),s&&o.length>0&&jsxRuntime.jsxs("div",{className:"text-sm",children:[jsxRuntime.jsx("span",{className:"font-medium",children:"\uD0A4\uC6CC\uB4DC:"}),jsxRuntime.jsx("div",{className:"flex flex-wrap gap-1 mt-1",children:o.map(c=>jsxRuntime.jsx(Se,{variant:"secondary",className:"text-xs",children:c},c))})]})]})]}):jsxRuntime.jsxs("div",{ref:g,className:l("space-y-6",t),...b,children:[e&&jsxRuntime.jsxs("div",{className:"space-y-4",children:[jsxRuntime.jsx("h3",{className:"text-lg font-semibold",children:"\uC8FC\uC694 \uAC10\uC815"}),jsxRuntime.jsxs("div",{className:"flex items-center space-x-4",children:[jsxRuntime.jsxs("div",{className:"text-center",children:[jsxRuntime.jsx("div",{className:"text-2xl font-bold text-primary",children:e.name}),jsxRuntime.jsxs("div",{className:"text-sm text-muted-foreground",children:[e.intensity,"% \uAC15\uB3C4"]})]}),x&&jsxRuntime.jsx(he,{value:e.intensity,size:"lg",color:"blue"})]})]}),h&&r.length>0&&jsxRuntime.jsxs("div",{className:"space-y-4",children:[jsxRuntime.jsx("h3",{className:"text-lg font-semibold",children:"\uAC10\uC815 \uBD84\uD3EC"}),jsxRuntime.jsx("div",{className:"space-y-3",children:r.map((c,w)=>jsxRuntime.jsxs("div",{className:"space-y-2",children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:c.emotion}),jsxRuntime.jsxs("span",{className:"text-sm text-muted-foreground",children:[c.percentage,"%"]})]}),jsxRuntime.jsx("div",{className:"w-full bg-muted rounded-full h-2",children:jsxRuntime.jsx("div",{className:`${c.color} h-2 rounded-full transition-all duration-300`,style:{width:`${c.percentage}%`}})})]},w))})]}),y&&jsxRuntime.jsxs("div",{className:"space-y-4",children:[jsxRuntime.jsx("h3",{className:"text-lg font-semibold",children:"\uBD84\uC11D \uC9C0\uD45C"}),jsxRuntime.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[jsxRuntime.jsxs("div",{className:"space-y-2",children:[jsxRuntime.jsx("div",{className:"text-sm font-medium",children:"\uAC10\uC815 \uAC15\uB3C4"}),jsxRuntime.jsx("div",{className:"text-2xl font-bold text-primary",children:d(a)}),jsxRuntime.jsx("div",{className:"w-full bg-muted rounded-full h-2",children:jsxRuntime.jsx("div",{className:"bg-primary h-2 rounded-full transition-all duration-300",style:{width:`${a}%`}})})]}),jsxRuntime.jsxs("div",{className:"space-y-2",children:[jsxRuntime.jsx("div",{className:"text-sm font-medium",children:"\uAE0D\uC815\uC131"}),jsxRuntime.jsx("div",{className:"text-2xl font-bold text-green-600",children:n(i)}),jsxRuntime.jsx("div",{className:"w-full bg-muted rounded-full h-2",children:jsxRuntime.jsx("div",{className:"bg-green-500 h-2 rounded-full transition-all duration-300",style:{width:`${i}%`}})})]}),jsxRuntime.jsxs("div",{className:"space-y-2",children:[jsxRuntime.jsx("div",{className:"text-sm font-medium",children:"\uC5D0\uB108\uC9C0"}),jsxRuntime.jsx("div",{className:"text-2xl font-bold text-orange-600",children:u(m)}),jsxRuntime.jsx("div",{className:"w-full bg-muted rounded-full h-2",children:jsxRuntime.jsx("div",{className:"bg-orange-500 h-2 rounded-full transition-all duration-300",style:{width:`${m}%`}})})]})]})]}),s&&o.length>0&&jsxRuntime.jsxs("div",{className:"space-y-4",children:[jsxRuntime.jsx("h3",{className:"text-lg font-semibold",children:"\uAC10\uC815 \uD0A4\uC6CC\uB4DC"}),jsxRuntime.jsx("div",{className:"flex flex-wrap gap-2",children:o.map(c=>jsxRuntime.jsx(Se,{variant:"outline",className:"text-sm",children:c},c))})]})]})});Rr.displayName="EmotionAnalysis";function Rt(t){return t.toLowerCase().replace(/[^a-z0-9가-힣ぁ-んァ-ン一-龯_.~\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"").trim()}function zn(t){return !t||t.length===0||t.length>200?false:/^[a-z0-9가-힣ぁ-んァ-ン一-龯_.~-]+$/.test(t)}function Mt(t){return t.toLowerCase().replace(/\s+/g,"-").replace(/[^a-z0-9가-힣ぁ-んァ-ン一-龯_.~-]/g,"").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}var qn={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"},Un={enableSlug:true,enableTags:true,enableCoverImage:true,enablePublishDate:true,enableExcerpt:true,enableTranslation:true,enablePreview:true,enableMarkdownToolbar:true,enableAutoSave:true,enableExpiresAt:false},Vn=[{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 Lt(t){let e={};return t.forEach(r=>{e[r.key]="";}),e}function Wn(t,e){var r,o,a,i,m,x,h,s;return {slug:(r=e==null?void 0:e.slug)!=null?r:"",title:(o=e==null?void 0:e.title)!=null?o:Lt(t),excerpt:(a=e==null?void 0:e.excerpt)!=null?a:Lt(t),content:(i=e==null?void 0:e.content)!=null?i:Lt(t),tags:(m=e==null?void 0:e.tags)!=null?m:[],coverImage:(x=e==null?void 0:e.coverImage)!=null?x:"",publishedAt:(h=e==null?void 0:e.publishedAt)!=null?h:null,expiresAt:(s=e==null?void 0:e.expiresAt)!=null?s:null}}var Lr=ee.createContext(null);function U(){let t=ee.useContext(Lr);if(!t)throw new Error("useBlogEditor must be used within a BlogEditorProvider");return t}function St({children:t,initialData:e,isEditMode:r=false,languages:o=Vn,defaultLanguage:a,labels:i,callbacks:m,features:x,variant:h="default",autoSaveKey:s,autoSaveInterval:y=3e3}){var Me,Xe,Ye,L;let f=(L=(Ye=(Me=o.find(E=>E.isPrimary))==null?void 0:Me.key)!=null?Ye:(Xe=o[0])==null?void 0:Xe.key)!=null?L:"ko",b=a!=null?a:f,g=ee.useMemo(()=>({...qn,...i}),[i]),d=ee.useMemo(()=>({...Un,...x}),[x]),[n,u]=ee.useState(()=>Wn(o,e)),[c,w]=ee.useState(b),[p,v]=ee.useState(false),[k,T]=ee.useState(false),[M,B]=ee.useState(false),[R,N]=ee.useState(false),[C,I]=ee.useState(null),[V,z]=ee.useState(false),[$,Z]=ee.useState(r||!!(e!=null&&e.slug)),[J,D]=ee.useState("idle"),te=ee.useRef(null),ne=ee.useRef(true),W=s||(r?null:"blog-editor-draft");ee.useEffect(()=>{if(!(!d.enableAutoSave||!W||r))try{let E=localStorage.getItem(W);if(E){let H=JSON.parse(E);u(H);}}catch{}},[]),ee.useEffect(()=>{if(!(!d.enableAutoSave||!W)){if(ne.current){ne.current=false;return}return te.current&&clearTimeout(te.current),D("saving"),te.current=setTimeout(()=>{try{localStorage.setItem(W,JSON.stringify(n)),D("saved"),setTimeout(()=>D("idle"),2e3);}catch{D("idle");}},y),()=>{te.current&&clearTimeout(te.current);}}},[n,d.enableAutoSave,W,y]);let re=ee.useCallback(()=>{if(W)try{localStorage.removeItem(W);}catch{}},[W]),ve=ee.useCallback((E,H)=>{u(q=>({...q,[E]:H}));},[]),We=ee.useCallback((E,H,q)=>{u(j=>({...j,[E]:{...j[E],[H]:q}}));},[]),st=ee.useCallback(E=>Rt(E),[]),it=ee.useCallback(async E=>{let H=n.title[f],q=n.content[f];if(!H||!q){I(g.requiredFields);return}if(d.enableSlug&&!n.slug){I(g.requiredFields);return}T(true),I(null);try{await m.onSave(n,E),re();}catch{I(g.saveError);}finally{T(false);}},[n,f,g,d,m,re]),Ge=ee.useCallback(async()=>{if(!m.onTranslate)return;let E=n.title[f],H=n.content[f],q=n.excerpt[f];if(!E||!H){I(g.requiredFields);return}B(true),I(null),z(false);try{let j=await m.onTranslate({sourceLanguage:f,title:E,content:H,excerpt:q||void 0});u(oe=>{let K={...oe.title},ie={...oe.content},Ut={...oe.excerpt};return Object.keys(j).forEach(Ne=>{if(Ne!==f){let ct=j[Ne];if(typeof ct=="object"&&ct!==null){let Ce=ct;Ce.title&&(K[Ne]=Ce.title),Ce.content&&(ie[Ne]=Ce.content),Ce.excerpt&&(Ut[Ne]=Ce.excerpt);}}}),{...oe,title:K,content:ie,excerpt:Ut}}),z(!0),setTimeout(()=>z(!1),3e3);}catch{I(g.translateError);}finally{B(false);}},[n,f,g,m]),_e=ee.useCallback(async E=>{if(!m.onUploadImage)return null;N(true),I(null);try{return await m.onUploadImage(E)}catch{return I("\uC774\uBBF8\uC9C0 \uC5C5\uB85C\uB4DC \uC2E4\uD328"),null}finally{N(false);}},[m]),je=ee.useCallback(()=>{var E;(E=m.onCancel)==null||E.call(m);},[m]),lt=ee.useMemo(()=>({formData:n,activeLanguage:c,showPreview:p,submitting:k,translating:M,uploading:R,error:C,translateSuccess:V,autoSaveStatus:J,languages:o,features:d,labels:g,variant:h,isEditMode:r,setActiveLanguage:w,setShowPreview:v,updateField:ve,updateMultilingualField:We,handleSave:it,handleTranslate:Ge,handleUploadImage:_e,handleCancel:je,setError:I,generateSlug:st,slugManuallyEdited:$,setSlugManuallyEdited:Z}),[n,c,p,k,M,R,C,V,J,o,d,g,h,r,ve,We,it,Ge,_e,je,st,$,Z]);return jsxRuntime.jsx(Lr.Provider,{value:lt,children:t})}var Dr={home:ssr.House,arrowLeft:ssr.ArrowLeft,arrowRight:ssr.ArrowRight,arrowUp:ssr.ArrowUp,arrowDown:ssr.ArrowDown,menu:ssr.List,close:ssr.X,search:ssr.MagnifyingGlass,settings:ssr.Gear,externalLink:ssr.ArrowSquareOut,chevronLeft:ssr.CaretLeft,chevronRight:ssr.CaretRight,chevronDown:ssr.CaretDown,chevronUp:ssr.CaretUp,edit:ssr.Pencil,delete:ssr.Trash,add:ssr.Plus,remove:ssr.Minus,download:ssr.Download,upload:ssr.Upload,refresh:ssr.ArrowClockwise,save:ssr.FloppyDisk,copy:ssr.Copy,loader:ssr.SpinnerGap,success:ssr.CheckCircle,error:ssr.XCircle,alertCircle:ssr.WarningCircle,warning:ssr.WarningCircle,info:ssr.Info,check:ssr.Check,circle:ssr.Circle,helpCircle:ssr.Question,user:ssr.User,users:ssr.Users,userPlus:ssr.UserPlus,logIn:ssr.SignIn,logOut:ssr.SignOut,eye:ssr.Eye,eyeOff:ssr.EyeSlash,chart:ssr.ChartBar,barChart:ssr.ChartBar,trendingUp:ssr.TrendUp,activity:ssr.Pulse,database:ssr.Database,zap:ssr.Lightning,fileText:ssr.FileText,file:ssr.File,folder:ssr.Folder,book:ssr.Book,bookOpen:ssr.BookOpen,mail:ssr.Envelope,message:ssr.ChatCircle,phone:ssr.Phone,image:ssr.Image,video:ssr.Video,camera:ssr.Camera,smile:ssr.Smiley,frown:ssr.SmileySad,meh:ssr.SmileyMeh,lock:ssr.Lock,unlock:ssr.LockOpen,shield:ssr.Shield,wallet:ssr.Wallet,key:ssr.Key,clock:ssr.Clock,calendar:ssr.Calendar,calendarPlus:ssr.CalendarPlus,bell:ssr.Bell,heart:ssr.Heart,star:ssr.Star,bookmark:ssr.Bookmark,share:ssr.Share,monitor:ssr.Monitor,sun:ssr.Sun,moon:ssr.Moon,lightbulb:ssr.Lightbulb,brain:ssr.Brain,flag:ssr.Flag,square:ssr.Square,sparkle:ssr.Sparkle,sparkles:ssr.Sparkle,globe:ssr.Globe,smartphone:ssr.DeviceMobile,deviceMobile:ssr.DeviceMobile,floppyDisk:ssr.FloppyDisk,ticket:ssr.Ticket,clipboard:ssr.Clipboard,wifi:ssr.WifiHigh,wifiOff:ssr.WifiSlash,cpu:ssr.Cpu,mask:ssr.MaskHappy,rocket:ssr.Rocket,layout:ssr.Layout,megaphone:ssr.Megaphone,layers:ssr.Stack,ban:ssr.Prohibit,bold:ssr.TextB,italic:ssr.TextItalic,strikethrough:ssr.TextStrikethrough,heading:ssr.TextHOne,link:ssr.Link,code:ssr.Code,fileCode:ssr.FileCode,quote:ssr.Quotes,list:ssr.List,listOrdered:ssr.ListNumbers,minus:ssr.Minus},zr={happy:"smile",sad:"frown",neutral:"meh",excited:"smile",angry:"frown",love:"heart",like:"heart",dislike:"frown"},Or={loading:"loader",success:"success",error:"error",warning:"warning",info:"info",locked:"lock",unlocked:"unlock",visible:"eye",hidden:"eyeOff"};function Fr(t){return !t||!/[-_]/.test(t)&&/^[a-z]/.test(t)?t:/^[A-Z]+$/.test(t)?t.toLowerCase():/^[A-Z]/.test(t)&&!/[-_]/.test(t)?t.charAt(0).toLowerCase()+t.slice(1):t.split(/[-_]/).map((e,r)=>r===0?e.toLowerCase():e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join("")}var G=null,_=null;var qr={home:{lucide:"Home",phosphor:"House",iconsax:"Home2"},"layout-dashboard":{lucide:"LayoutDashboard",phosphor:"SquaresFour"},folder:{lucide:"Folder",phosphor:"Folder",iconsax:"Folder"},"alert-circle":{lucide:"AlertCircle",phosphor:"WarningCircle",iconsax:"Danger"},alertCircle:{lucide:"AlertCircle",phosphor:"WarningCircle",iconsax:"Danger"},columns:{lucide:"Columns",phosphor:"Columns"},users:{lucide:"Users",phosphor:"Users",iconsax:"People"},settings:{lucide:"Settings",phosphor:"Gear"},menu:{lucide:"Menu",phosphor:"List",iconsax:"Menu"},close:{lucide:"X",phosphor:"X",iconsax:"CloseCircle"},chevronLeft:{lucide:"ChevronLeft",phosphor:"CaretLeft",iconsax:"ArrowLeft2"},chevronRight:{lucide:"ChevronRight",phosphor:"CaretRight",iconsax:"ArrowRight2"},chevronDown:{lucide:"ChevronDown",phosphor:"CaretDown",iconsax:"ArrowDown2"},chevronUp:{lucide:"ChevronUp",phosphor:"CaretUp",iconsax:"ArrowUp2"},arrowLeft:{lucide:"ArrowLeft",phosphor:"ArrowLeft",iconsax:"ArrowLeft"},arrowRight:{lucide:"ArrowRight",phosphor:"ArrowRight",iconsax:"ArrowRight"},arrowUp:{lucide:"ArrowUp",phosphor:"ArrowUp",iconsax:"ArrowUp"},arrowDown:{lucide:"ArrowDown",phosphor:"ArrowDown",iconsax:"ArrowDown"},add:{lucide:"Plus",phosphor:"Plus",iconsax:"Add"},edit:{lucide:"Edit",phosphor:"Pencil"},pencil:{lucide:"Pencil",phosphor:"Pencil"},delete:{lucide:"Trash2",phosphor:"Trash",iconsax:"Trash"},trash:{lucide:"Trash2",phosphor:"Trash",iconsax:"Trash"},upload:{lucide:"Upload",phosphor:"Upload",iconsax:"Upload"},download:{lucide:"Download",phosphor:"Download",iconsax:"Download"},x:{lucide:"X",phosphor:"X"},check:{lucide:"Check",phosphor:"Check",iconsax:"Check"},search:{lucide:"Search",phosphor:"MagnifyingGlass",iconsax:"SearchNormal"},share:{lucide:"Share",phosphor:"Share"},copy:{lucide:"Copy",phosphor:"Copy"},save:{lucide:"Save",phosphor:"FloppyDisk"},loader:{lucide:"Loader2",phosphor:"Spinner"},loader2:{lucide:"Loader2",phosphor:"Spinner"},"check-circle":{lucide:"CheckCircle",phosphor:"CheckCircle",iconsax:"TickCircle"},checkCircle:{lucide:"CheckCircle",phosphor:"CheckCircle",iconsax:"TickCircle"},success:{lucide:"CheckCircle",phosphor:"CheckCircle",iconsax:"TickCircle"},error:{lucide:"XCircle",phosphor:"XCircle",iconsax:"CloseCircle"},warning:{lucide:"AlertCircle",phosphor:"WarningCircle",iconsax:"Warning2"},info:{lucide:"Info",phosphor:"Info",iconsax:"InfoCircle"},refresh:{lucide:"RefreshCw",phosphor:"ArrowClockwise",iconsax:"Refresh"},refreshCw:{lucide:"RefreshCw",phosphor:"ArrowClockwise",iconsax:"Refresh"},bell:{lucide:"Bell",phosphor:"Bell",iconsax:"Bell"},heart:{lucide:"Heart",phosphor:"Heart",iconsax:"Heart"},star:{lucide:"Star",phosphor:"Star",iconsax:"Star"},bookmark:{lucide:"Bookmark",phosphor:"Bookmark"},user:{lucide:"User",phosphor:"User",iconsax:"User"},userPlus:{lucide:"UserPlus",phosphor:"UserPlus",iconsax:"UserAdd"},logIn:{lucide:"LogIn",phosphor:"SignIn",iconsax:"Login"},logOut:{lucide:"LogOut",phosphor:"SignOut",iconsax:"Logout"},chrome:{lucide:"Chrome",phosphor:"ChromeLogo",iconsax:"Chrome"},github:{lucide:"Github",phosphor:"GithubLogo"},message:{lucide:"MessageCircle",phosphor:"ChatCircle"},messageSquare:{lucide:"MessageSquare",phosphor:"ChatSquare"},"message-square":{lucide:"MessageSquare",phosphor:"ChatSquare"},inbox:{lucide:"Inbox",phosphor:"Inbox"},calendar:{lucide:"Calendar",phosphor:"Calendar"},calendarPlus:{lucide:"CalendarPlus",phosphor:"CalendarPlus"},checkSquare:{lucide:"CheckSquare",phosphor:"CheckSquare",iconsax:"TickSquare"},clock:{lucide:"Clock",phosphor:"Clock"},book:{lucide:"Book",phosphor:"Book",iconsax:"Book"},bookOpen:{lucide:"BookOpen",phosphor:"BookOpen",iconsax:"Book"},monitor:{lucide:"Monitor",phosphor:"Monitor",iconsax:"Monitor"},sun:{lucide:"Sun",phosphor:"Sun",iconsax:"Sun"},moon:{lucide:"Moon",phosphor:"Moon",iconsax:"Moon"},sparkle:{lucide:"Sparkle",phosphor:"Sparkle"},sparkles:{lucide:"Sparkles",phosphor:"Sparkle"},lightbulb:{lucide:"Lightbulb",phosphor:"Lightbulb"},brain:{lucide:"Brain",phosphor:"Brain"},zap:{lucide:"Zap",phosphor:"Lightning"},globe:{lucide:"Globe",phosphor:"Globe",iconsax:"Global"},deviceMobile:{lucide:"Smartphone",phosphor:"DeviceMobile"},smartphone:{lucide:"Smartphone",phosphor:"DeviceMobile"},floppyDisk:{lucide:"Save",phosphor:"FloppyDisk"},chart:{lucide:"BarChart3",phosphor:"ChartBar"},barChart:{lucide:"BarChart",phosphor:"ChartBar"},trendingUp:{lucide:"TrendingUp",phosphor:"TrendUp"},trendingDown:{lucide:"TrendingDown",phosphor:"TrendDown"},activity:{lucide:"Activity",phosphor:"Pulse"},database:{lucide:"Database",phosphor:"Database"},dollarSign:{lucide:"DollarSign",phosphor:"CurrencyDollar"},dollar:{lucide:"DollarSign",phosphor:"CurrencyDollar"},currency:{lucide:"DollarSign",phosphor:"CurrencyDollar"},layers:{lucide:"Layers",phosphor:"Stack"},ban:{lucide:"Ban",phosphor:"Prohibit"},lock:{lucide:"Lock",phosphor:"Lock",iconsax:"Lock"},unlock:{lucide:"Unlock",phosphor:"LockOpen",iconsax:"Unlock"},shield:{lucide:"Shield",phosphor:"Shield",iconsax:"Shield"},key:{lucide:"Key",phosphor:"Key"},play:{lucide:"Play",phosphor:"Play",iconsax:"Play"},pause:{lucide:"Pause",phosphor:"Pause",iconsax:"Pause"},image:{lucide:"Image",phosphor:"Image",iconsax:"Image"},video:{lucide:"Video",phosphor:"Video",iconsax:"Video"},camera:{lucide:"Camera",phosphor:"Camera",iconsax:"Camera"},fileText:{lucide:"FileText",phosphor:"FileText"},file:{lucide:"File",phosphor:"File"},externalLink:{lucide:"ExternalLink",phosphor:"ArrowSquareOut"},link:{lucide:"Link",phosphor:"Link",iconsax:"Link"},moreHorizontal:{lucide:"MoreHorizontal",phosphor:"DotsThreeOutline"},moreVertical:{lucide:"MoreVertical",phosphor:"DotsThreeVertical"},remove:{lucide:"Minus",phosphor:"Minus",iconsax:"Minus"},eye:{lucide:"Eye",phosphor:"Eye",iconsax:"Eye"},eyeOff:{lucide:"EyeOff",phosphor:"EyeSlash",iconsax:"EyeSlash"},smile:{lucide:"Smile",phosphor:"Smiley",iconsax:"EmojiHappy"},frown:{lucide:"Frown",phosphor:"SmileySad",iconsax:"EmojiSad"},meh:{lucide:"Meh",phosphor:"SmileyMeh",iconsax:"EmojiNormal"},mail:{lucide:"Mail",phosphor:"Envelope"},phone:{lucide:"Phone",phosphor:"Phone"},flag:{lucide:"Flag",phosphor:"Flag",iconsax:"Flag"},rocket:{lucide:"Rocket",phosphor:"Rocket",iconsax:"Rocket"},ticket:{lucide:"Ticket",phosphor:"Ticket",iconsax:"Ticket"},clipboard:{lucide:"ClipboardList",phosphor:"Clipboard",iconsax:"Sticker"},wifi:{lucide:"Wifi",phosphor:"WifiHigh",iconsax:"Wifi"},wifiOff:{lucide:"WifiOff",phosphor:"WifiSlash"},cpu:{lucide:"Cpu",phosphor:"Cpu",iconsax:"Computing"},mask:{lucide:"Drama",phosphor:"MaskHappy",iconsax:"EmojiHappy"},bold:{lucide:"Bold",phosphor:"TextB"},italic:{lucide:"Italic",phosphor:"TextItalic"},strikethrough:{lucide:"Strikethrough",phosphor:"TextStrikethrough"},heading:{lucide:"Heading",phosphor:"TextHOne"},code:{lucide:"Code",phosphor:"Code",iconsax:"Code"},fileCode:{lucide:"FileCode",phosphor:"FileCode"},quote:{lucide:"Quote",phosphor:"Quotes",iconsax:"QuoteUp"},list:{lucide:"List",phosphor:"List"},listOrdered:{lucide:"ListOrdered",phosphor:"ListNumbers"},minus:{lucide:"Minus",phosphor:"Minus",iconsax:"Minus"}};async function Ur(){if(typeof window=="undefined")return null;if(!G)try{G=await import('@phosphor-icons/react');}catch{return console.warn("Phosphor Icons not available. Install @phosphor-icons/react to use."),null}return G}async function Vr(){if(typeof window=="undefined")return null;if(!_)try{_=await import('lucide-react');}catch{return console.warn("Lucide Icons not available. Install lucide-react to use lucide provider."),null}return _}function tt(t,e="phosphor"){let r=qr[t];if(!r)return Bs(t,e);let o=r[e];switch(e){case "phosphor":return !o||!G?null:(G==null?void 0:G[o])||null;case "lucide":return !o||!_?null:(_==null?void 0:_[o])||null;case "iconsax":{return null;}default:return null}}function Bs(t,e){switch(e){case "phosphor":{if(!G)return null;let r=t.charAt(0).toUpperCase()+t.slice(1),o=t.split(/(?=[A-Z])/).map(a=>a.charAt(0).toUpperCase()+a.slice(1)).join("");return (G==null?void 0:G[r])||(G==null?void 0:G[o])||(G==null?void 0:G[t])||null}case "lucide":{if(!_)return null;let r=t.charAt(0).toUpperCase()+t.slice(1),o=t.replace(/([A-Z])/g,a=>a===t[0]?a.toLowerCase():a);return (_==null?void 0:_[r])||(_==null?void 0:_[t])||(_==null?void 0:_[o])||null}case "iconsax":{return null;}default:return null}}function Wr(t,e){let r=qr[t];if(r){let o=r[e];if(o)return o}return t}var Bt={"arrow-left":"arrowLeft","arrow-right":"arrowRight","arrow-up":"arrowUp","arrow-down":"arrowDown","chevron-left":"chevronLeft","chevron-right":"chevronRight","chevron-up":"chevronUp","chevron-down":"chevronDown","external-link":"externalLink","more-horizontal":"moreHorizontal","more-vertical":"moreVertical","user-plus":"userPlus","log-in":"logIn","log-out":"logOut","check-circle":"checkCircle","check-square":"checkSquare","alert-circle":"alertCircle","eye-off":"eyeOff","file-text":"fileText","book-open":"bookOpen","bar-chart":"barChart","trending-up":"trendingUp","trending-down":"trendingDown","message-square":"messageSquare","calendar-plus":"calendarPlus","refresh-cw":"refreshCw","dollar-sign":"dollarSign","layout-dashboard":"layoutDashboard","device-mobile":"deviceMobile","floppy-disk":"floppyDisk",back:"arrowLeft",prev:"arrowLeft",previous:"arrowLeft",forward:"arrowRight",next:"arrowRight",close:"x",cancel:"x",remove:"delete",trash:"delete",plus:"add",new:"add",pencil:"edit",modify:"edit",store:"save",floppy:"save",magnify:"search",person:"user",account:"user",profile:"user",gear:"settings",config:"settings",preferences:"settings",house:"home",main:"home",done:"check",complete:"check",tick:"check",information:"info",help:"info",alert:"warning",caution:"warning",checkmark:"success",checkCircle:"success",fail:"error",cross:"error",xCircle:"error",spinner:"loader",loading:"loader",wait:"loader",reload:"refresh",update:"refresh",sync:"refresh",show:"eye",view:"eye",hide:"eyeOff",hidden:"eyeOff",secure:"lock",locked:"lock",unsecure:"unlock",unlocked:"unlock",get:"download",fetch:"download",post:"upload",send:"share",export:"share",duplicate:"copy",clone:"copy",email:"mail",envelope:"mail",chat:"message",comment:"message",talk:"message",date:"calendar",schedule:"calendar",time:"clock",watch:"clock",document:"fileText",doc:"fileText",text:"fileText",directory:"folder",dir:"folder",picture:"image",img:"image",movie:"video",film:"video",photo:"camera",capture:"camera",start:"play",run:"play",stop:"pause",halt:"pause",like:"heart",love:"heart",favorite:"star",saveBookmark:"bookmark",notification:"bell",notify:"bell",alarm:"bell",prefs:"settings",lookup:"search",dots:"moreHorizontal",moreMenu:"moreHorizontal",moreOptions:"moreVertical",external:"externalLink",outbound:"externalLink",open:"externalLink",url:"link",hyperlink:"link",graph:"barChart",stats:"barChart",analytics:"barChart",db:"database",storage:"database",pulse:"activity",monitor:"activity",up:"trendingUp",down:"trendingDown",lightning:"zap",bolt:"zap",flash:"zap",security:"shield",protect:"shield",password:"key",secret:"key",signin:"logIn",login:"logIn",enter:"logIn",signout:"logOut",logout:"logOut",exit:"logOut",people:"users",group:"users",team:"users",addUser:"userPlus",invite:"userPlus",read:"book",library:"book",reading:"bookOpen",openBook:"bookOpen",light:"sun",day:"sun",dark:"moon",night:"moon",screen:"monitor",display:"monitor",ai:"brain",intelligence:"brain",think:"brain",idea:"lightbulb",bulb:"lightbulb",inspiration:"lightbulb",magic:"sparkles",stars:"sparkles",glitter:"sparkles"};function Gr(t){if(!t||typeof t!="string")return {normalized:t||"",wasAlias:false};let e=Fr(t),r=Bt[t]||Bt[e];return r?{normalized:r,wasAlias:true,originalAlias:t}:{normalized:e,wasAlias:false}}var _r={set:"phosphor",weight:"regular",size:20,color:"currentColor",strokeWidth:1.25,iconsaxVariant:"line"};var $s=ee.createContext(_r);function jr(){return ee.useContext($s)}var Xr=ee__default.default.forwardRef(({name:t,size:e,className:r,emotion:o,status:a,provider:i,weight:m,animated:x=false,pulse:h=false,spin:s=false,bounce:y=false,variant:f="default","aria-label":b,"aria-hidden":g},d)=>{var D,te;let n=jr(),u=i||n.set,c=e!=null?e:n.size,w=m||n.weight,p=n.color,v=(D=n.strokeWidth)!=null?D:1.25,k=(te=n.iconsaxVariant)!=null?te:"line",[T,M]=ee__default.default.useState(false),[B,R]=ee__default.default.useState(false);ee__default.default.useEffect(()=>{M(true),u==="lucide"?Vr().then(()=>R(true)):u==="phosphor"?Ur().then(()=>R(true)):R(true);},[u]);let N=ee__default.default.useMemo(()=>{let ne=o?zr[o]:a?Or[a]:t,{normalized:W}=Gr(ne),re=Wr(W,u);return {normalized:W,providerName:re}},[t,o,a,u]),C=N.normalized,I=ee__default.default.useMemo(()=>{return null},[u,N.providerName,T,k]),V=dt({"text-current":f==="default","text-primary":f==="primary","text-muted-foreground":f==="secondary"||f==="muted","text-green-600 dark:text-green-400":f==="success","text-yellow-600 dark:text-yellow-400":f==="warning","text-destructive":f==="error"});if(!T)return jsxRuntime.jsx("span",{style:{width:c,height:c},className:l(V,r),"aria-hidden":g!==void 0?g:true,"aria-label":b});let z=null;if(u==="phosphor"?(z=Dr[C]||null,!z&&B&&(z=tt(C,u))):u==="iconsax"?(z=I,z||(z=tt(C,u))):z=tt(C,u),!z)return u==="iconsax"&&true?process.env.NODE_ENV==="development"&&console.warn(`Icon "${C}" \u2014 iconsax resolver not registered. Use HuaProvider with icons.set='iconsax', or add: import '@hua-labs/ui/iconsax'`):console.warn(`Icon "${C}" not found for provider "${u}"`),jsxRuntime.jsx("span",{ref:d,className:l("inline-flex items-center justify-center rounded-full border-2 border-dashed border-border",V,r),style:{width:c,height:c},"aria-label":b||`\uC544\uC774\uCF58\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC74C: ${C}`,title:`Icon not found: ${C}`,children:jsxRuntime.jsx("span",{className:"text-xs text-muted-foreground","aria-hidden":"true",children:"?"})});let $={size:typeof c=="number"?c:void 0,width:c,height:c,color:p};u==="phosphor"?$.weight=w:$.strokeWidth=v;let Z=dt({"animate-pulse":h,"animate-spin":s,"animate-bounce":y,"transition-all duration-200 ease-in-out":x}),J={};return b?(J["aria-label"]=b,J["aria-hidden"]=false):g!==void 0?J["aria-hidden"]=g:J["aria-hidden"]=true,jsxRuntime.jsx("span",{ref:d,className:l("inline-flex items-center justify-center",Z,V,r),style:{width:c,height:c},...J,children:z&&ee__default.default.createElement(z,{...$,className:V,"aria-hidden":true})})});Xr.displayName="Icon";var Ds=ee__default.default.memo(Xr,(t,e)=>t.name===e.name&&t.size===e.size&&t.className===e.className&&t.emotion===e.emotion&&t.status===e.status&&t.provider===e.provider&&t.animated===e.animated&&t.pulse===e.pulse&&t.spin===e.spin&&t.bounce===e.bounce&&t.variant===e.variant&&t.weight===e.weight&&t["aria-label"]===e["aria-label"]&&t["aria-hidden"]===e["aria-hidden"]),A=Ds;A.displayName="Icon";var Yr=ee__default.default.forwardRef((t,e)=>jsxRuntime.jsx(A,{ref:e,name:"smile",...t}));Yr.displayName="EmotionIcon";var Kr=ee__default.default.forwardRef((t,e)=>jsxRuntime.jsx(A,{ref:e,name:"info",...t}));Kr.displayName="StatusIcon";var Qr=ee__default.default.forwardRef((t,e)=>jsxRuntime.jsx(A,{ref:e,name:"loader",status:"loading",spin:true,"aria-label":"\uB85C\uB529 \uC911",...t}));Qr.displayName="LoadingIcon";var Zr=ee__default.default.forwardRef((t,e)=>jsxRuntime.jsx(A,{ref:e,name:"check",status:"success",variant:"success","aria-label":"\uC131\uACF5",...t}));Zr.displayName="SuccessIcon";var Jr=ee__default.default.forwardRef((t,e)=>jsxRuntime.jsx(A,{ref:e,name:"alertCircle",status:"error",variant:"error","aria-label":"\uC624\uB958",...t}));Jr.displayName="ErrorIcon";var Be=ee__default.default.forwardRef(({onBack:t,backLink:e,className:r},o)=>{let{labels:a,isEditMode:i,formData:m}=U();return jsxRuntime.jsx("header",{ref:o,className:l("flex items-center justify-between mb-8",r),children:jsxRuntime.jsxs("div",{className:"flex items-center gap-4",children:[e||t&&jsxRuntime.jsx("button",{type:"button",onClick:t,className:"p-2 text-muted-foreground hover:text-foreground transition-colors","aria-label":"\uB4A4\uB85C\uAC00\uAE30",children:jsxRuntime.jsx(A,{name:"chevronLeft",size:24})}),jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx("h1",{className:"text-2xl font-bold text-foreground",children:i?a.editTitle:a.pageTitle}),i&&m.slug&&jsxRuntime.jsxs("p",{className:"text-sm text-muted-foreground",children:[a.slugPrefix,m.slug]})]})]})})});Be.displayName="BlogEditorHeader";var He=ee__default.default.forwardRef(({className:t},e)=>{var v,k;let{formData:r,updateField:o,features:a,labels:i,variant:m,handleUploadImage:x,uploading:h,setSlugManuallyEdited:s}=U(),[y,f]=ee.useState(""),b=ee.useRef(null),g=l("rounded-xl p-6 space-y-4",m==="glass"?"bg-white/10 backdrop-blur-sm border border-white/20 dark:bg-background/20 dark:border-border/50":m==="minimal"?"bg-transparent":"bg-background",t),d="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",u=ee.useCallback(T=>{let M=T.trim();M&&!r.tags.includes(M)&&o("tags",[...r.tags,M]),f("");},[r.tags,o]),c=ee.useCallback(T=>{o("tags",r.tags.filter(M=>M!==T));},[r.tags,o]),w=ee.useCallback(T=>{let M=T.target.value;if(M.includes(",")){let B=M.split(",");B.forEach((R,N)=>{N<B.length-1?u(R):f(R);});}else f(M);},[u]),p=ee.useCallback(T=>{T.key==="Enter"?(T.preventDefault(),u(y)):T.key==="Backspace"&&!y&&r.tags.length>0&&c(r.tags[r.tags.length-1]);},[y,r.tags,u,c]);return jsxRuntime.jsxs("div",{ref:e,className:g,children:[jsxRuntime.jsx("h2",{className:"font-semibold text-foreground",children:i.basicInfo}),jsxRuntime.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[a.enableSlug&&jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("label",{className:n,children:[i.slug," *"]}),jsxRuntime.jsxs("div",{className:"flex items-center",children:[jsxRuntime.jsx("span",{className:"text-muted-foreground mr-1 text-sm",children:i.slugPrefix}),jsxRuntime.jsx("input",{type:"text",value:r.slug,onChange:T=>{o("slug",Mt(T.target.value)),s(true);},className:l(d,"flex-1"),placeholder:"my-post-slug"})]})]}),a.enableTags&&jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx("label",{className:n,children:i.tags}),jsxRuntime.jsxs("div",{className:l("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:[r.tags.map(T=>jsxRuntime.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 bg-primary/10 text-primary text-sm rounded-md",children:[T,jsxRuntime.jsx("button",{type:"button",onClick:()=>c(T),className:"hover:text-primary transition-colors","aria-label":`${T} \uD0DC\uADF8 \uC0AD\uC81C`,children:jsxRuntime.jsx(A,{name:"x",size:14})})]},T)),jsxRuntime.jsx("input",{type:"text",value:y,onChange:w,onKeyDown:p,className:"flex-1 min-w-[100px] bg-transparent outline-none text-foreground text-sm",placeholder:r.tags.length===0?i.tagsPlaceholder:"\uD0DC\uADF8 \uCD94\uAC00..."})]}),jsxRuntime.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:"\uC27C\uD45C(,) \uB610\uB294 Enter\uB85C \uD0DC\uADF8 \uCD94\uAC00"})]})]}),a.enableCoverImage&&jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx("label",{className:n,children:i.coverImage}),jsxRuntime.jsxs("div",{className:"space-y-3",children:[r.coverImage&&jsxRuntime.jsxs("div",{className:"relative w-full h-40 rounded-lg overflow-hidden bg-muted",children:[jsxRuntime.jsx("img",{src:r.coverImage,alt:"\uCEE4\uBC84 \uC774\uBBF8\uC9C0 \uBBF8\uB9AC\uBCF4\uAE30",className:"w-full h-full object-cover"}),jsxRuntime.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:jsxRuntime.jsx(A,{name:"x",size:14})})]}),jsxRuntime.jsxs("div",{className:"flex gap-2",children:[jsxRuntime.jsx("input",{type:"text",value:r.coverImage,onChange:T=>o("coverImage",T.target.value),className:l(d,"flex-1"),placeholder:i.coverImagePlaceholder}),jsxRuntime.jsx("input",{ref:b,type:"file",accept:"image/*",className:"hidden",onChange:async T=>{var B;let M=(B=T.target.files)==null?void 0:B[0];if(M){let R=await x(M);R&&o("coverImage",R);}T.target.value="";}}),jsxRuntime.jsx("button",{type:"button",onClick:()=>{var T;return (T=b.current)==null?void 0:T.click()},disabled:h,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:h?jsxRuntime.jsx(A,{name:"loader",size:20,spin:true}):jsxRuntime.jsx(A,{name:"upload",size:20})})]})]})]}),jsxRuntime.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[a.enablePublishDate&&jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx("label",{className:n,children:i.publishDate}),jsxRuntime.jsx("input",{type:"datetime-local",value:(v=r.publishedAt)!=null?v:"",onChange:T=>o("publishedAt",T.target.value||null),className:d}),jsxRuntime.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:i.publishDateHint})]}),a.enableExpiresAt&&jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx("label",{className:n,children:i.expiresAt}),jsxRuntime.jsx("input",{type:"datetime-local",value:(k=r.expiresAt)!=null?k:"",onChange:T=>o("expiresAt",T.target.value||null),className:d}),jsxRuntime.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:i.expiresAtHint})]})]})]})});He.displayName="BlogEditorMetadata";var Ae=ee__default.default.forwardRef(({className:t},e)=>{let{languages:r,activeLanguage:o,setActiveLanguage:a,showPreview:i,setShowPreview:m,features:x,labels:h}=U();return jsxRuntime.jsxs("div",{ref:e,className:l("flex items-center border-b border-border sticky top-0 z-10 bg-background",t),role:"tablist","aria-label":"\uC5B8\uC5B4 \uC120\uD0DD",children:[jsxRuntime.jsx("div",{className:"flex flex-1",children:r.map(s=>{let y=o===s.key,f=s.isPrimary;return jsxRuntime.jsxs("button",{type:"button",role:"tab","aria-selected":y,"aria-controls":`tabpanel-${s.key}`,id:`tab-${s.key}`,onClick:()=>a(s.key),className:l("flex-1 px-4 py-3 text-sm font-medium transition-colors",y?"bg-primary/10 text-primary border-b-2 border-primary":"text-muted-foreground hover:bg-muted"),children:[s.flag&&jsxRuntime.jsx("span",{className:"mr-1.5",children:s.flag}),s.label,f&&" *"]},s.key)})}),x.enablePreview&&jsxRuntime.jsxs("button",{type:"button",onClick:()=>m(!i),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:[jsxRuntime.jsx(A,{name:i?"pencil":"eye",size:14}),i?h.editMode:h.preview]})]})});Ae.displayName="BlogEditorLanguageTabs";var ze=ee__default.default.forwardRef(({className:t,textareaRef:e},r)=>{var p;let{formData:o,activeLanguage:a,updateMultilingualField:i,updateField:m,features:x,labels:h,languages:s,generateSlug:y,isEditMode:f,slugManuallyEdited:b}=U(),g=((p=s.find(v=>v.isPrimary))==null?void 0:p.key)===a,d=s.find(v=>v.key===a),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",u="block text-sm font-medium text-foreground mb-1",c=v=>{i("title",a,v),a==="en"&&!f&&!b&&m("slug",y(v));},w=v=>g?`${v} *`:`${v} (${(d==null?void 0:d.label)||a})`;return jsxRuntime.jsxs("div",{ref:r,className:l("p-6 space-y-4",t),children:[jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx("label",{className:u,children:w(h.titleLabel)}),jsxRuntime.jsx("input",{type:"text",value:o.title[a]||"",onChange:v=>c(v.target.value),className:n,placeholder:h.titlePlaceholder})]}),x.enableExcerpt&&jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx("label",{className:u,children:w(h.excerpt)}),jsxRuntime.jsx("textarea",{value:o.excerpt[a]||"",onChange:v=>i("excerpt",a,v.target.value),rows:2,className:l(n,"resize-none"),placeholder:h.excerptPlaceholder})]}),jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("label",{className:u,children:[w(h.contentLabel)," (\uB9C8\uD06C\uB2E4\uC6B4)"]}),jsxRuntime.jsx("textarea",{ref:e,value:o.content[a]||"",onChange:v=>i("content",a,v.target.value),rows:15,className:l(n,"font-mono text-sm resize-y min-h-[300px]"),placeholder:h.contentPlaceholder})]})]})});ze.displayName="BlogEditorContent";function Ws(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}function Dt(t){if(!t)return "";let e=t;return e=e.replace(/```(\w*)\n?([\s\S]*?)```/g,(r,o,a)=>`<pre class="bg-gray-100 dark:bg-gray-800 rounded-lg p-4 overflow-x-auto my-4"><code class="text-sm">${Ws(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,r=>`<ul class="list-disc list-inside my-4 space-y-1">${r}</ul>`),e=e.replace(/\n(?!<)/g,`<br />
76
- `),e=e.replace(/(<br \/>[\n\s]*){3,}/g,`<br /><br />
77
- `),e}function eo(t){return t?t.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,`
78
-
79
- `).trim():""}function Gs(t,e=150){let r=eo(t);return r.length<=e?r:r.slice(0,e).trim()+"..."}function zt(t,e,r,o,a){let i=t.slice(e,r),m=t.slice(0,e),x=t.slice(r),h=m+o+i+a+x,s=e+o.length+i.length+a.length;return {text:h,cursorPosition:s}}var Xs=[{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:`
80
- ---
81
- `,after:""}}],Oe=ee__default.default.forwardRef(({textareaRef:t,className:e},r)=>{let{labels:o,activeLanguage:a,updateMultilingualField:i,formData:m,features:x}=U(),h=ee.useCallback(s=>{let y=t.current;if(!y)return;let{selectionStart:f,selectionEnd:b}=y,g=m.content[a]||"",{text:d,cursorPosition:n}=zt(g,f,b,s.markdown.before,s.markdown.after);i("content",a,d),requestAnimationFrame(()=>{y.focus(),y.setSelectionRange(n,n);});},[t,m,a,i]);return x.enableMarkdownToolbar?jsxRuntime.jsx("div",{ref:r,className:l("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:Xs.map(s=>jsxRuntime.jsx("button",{type:"button",onClick:()=>h(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:jsxRuntime.jsx(A,{name:s.icon,size:16})},s.icon))}):null});Oe.displayName="BlogEditorToolbar";var Fe=ee__default.default.forwardRef(({renderMarkdown:t,className:e},r)=>{var f,b;let{formData:o,activeLanguage:a,languages:i,labels:m}=U(),x=((f=i.find(g=>g.isPrimary))==null?void 0:f.key)||((b=i[0])==null?void 0:b.key),h=o.title[a]||o.title[x]||m.noTitle,s=o.content[a]||o.content[x]||"",y=ee__default.default.useMemo(()=>t?t(s):jsxRuntime.jsx("div",{dangerouslySetInnerHTML:{__html:Dt(s)}}),[s,t]);return jsxRuntime.jsxs("div",{ref:r,className:l("p-6",e),children:[jsxRuntime.jsx("h3",{className:"text-xl font-bold text-foreground mb-4",children:h}),jsxRuntime.jsx("div",{className:"prose dark:prose-invert max-w-none",children:y})]})});Fe.displayName="BlogEditorPreview";var qe=ee__default.default.forwardRef(({cancelLink:t,className:e},r)=>{let{labels:o,submitting:a,handleSave:i,handleCancel:m,isEditMode:x,autoSaveStatus:h,features:s}=U();return jsxRuntime.jsxs("div",{ref:r,className:l("flex items-center justify-end gap-3",e),children:[s.enableAutoSave&&h!=="idle"&&jsxRuntime.jsxs("span",{className:"text-sm text-muted-foreground flex items-center gap-1",children:[h==="saving"&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(A,{name:"loader",size:14,spin:true}),"\uC800\uC7A5 \uC911..."]}),h==="saved"&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(A,{name:"check",size:14}),"\uC790\uB3D9\uC800\uC7A5\uB428"]})]}),t||jsxRuntime.jsx("button",{type:"button",onClick:m,className:"px-4 py-2 text-foreground hover:text-foreground transition-colors",children:o.cancel}),jsxRuntime.jsx("button",{type:"button",onClick:()=>i(false),disabled:a,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}),jsxRuntime.jsx("button",{type:"button",onClick:()=>i(true),disabled:a,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?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(A,{name:"loader",size:16,spin:true}),o.saving]}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(A,{name:"check",size:16}),x?o.update:o.publish]})})]})});qe.displayName="BlogEditorActions";var Ve=ee__default.default.forwardRef(({hint:t,className:e},r)=>{var d,n;let{labels:o,translating:a,translateSuccess:i,handleTranslate:m,formData:x,languages:h,features:s}=U();if(!s.enableTranslation)return null;let y=((d=h.find(u=>u.isPrimary))==null?void 0:d.key)||((n=h[0])==null?void 0:n.key),f=x.title[y]||"",b=x.content[y]||"",g=f&&b;return jsxRuntime.jsxs("div",{ref:r,className:l("px-6 py-3 bg-muted border-b border-border flex items-center justify-between",e),children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[jsxRuntime.jsx(A,{name:"sparkles",size:16}),jsxRuntime.jsx("span",{children:t||o.translateHint})]}),jsxRuntime.jsx("button",{type:"button",onClick:m,disabled:a||!g,className:l("inline-flex items-center gap-2 px-4 py-2 text-sm font-medium rounded-lg transition-colors",i?"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?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(A,{name:"loader",size:16,spin:true}),o.translating]}):i?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(A,{name:"check",size:16}),o.translateSuccess]}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(A,{name:"sparkles",size:16}),o.translateButton]})})]})});Ve.displayName="BlogEditorTranslate";function ei({onBack:t,backLink:e,cancelLink:r,renderMarkdown:o,translateHint:a,maxWidth:i="max-w-4xl",className:m,children:x}){let{showPreview:h,error:s,variant:y,features:f}=U(),b=ee.useRef(null),g=l(y==="glass"?"bg-gradient-to-br from-gray-100 to-gray-200 dark:from-gray-900 dark:to-gray-800":y==="minimal"?"":"bg-muted"),d=l("rounded-xl overflow-hidden",y==="glass"?"bg-white/10 backdrop-blur-sm border border-white/20 dark:bg-slate-800/20 dark:border-slate-700/50":y==="minimal"?"bg-transparent border border-border":"bg-background");return x?jsxRuntime.jsx("div",{className:l(g,m),children:jsxRuntime.jsx("div",{className:l(i,"mx-auto px-4 py-8"),children:x})}):jsxRuntime.jsx("div",{className:l(g,m),children:jsxRuntime.jsxs("div",{className:l(i,"mx-auto px-4 py-8"),children:[jsxRuntime.jsx(Be,{onBack:t,backLink:e}),s&&jsxRuntime.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}),jsxRuntime.jsxs("div",{className:"space-y-6",children:[jsxRuntime.jsx(He,{}),jsxRuntime.jsxs("div",{className:d,children:[f.enableTranslation&&jsxRuntime.jsx(Ve,{hint:a}),jsxRuntime.jsx(Ae,{}),h?jsxRuntime.jsx(Fe,{renderMarkdown:o}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[f.enableMarkdownToolbar&&jsxRuntime.jsx(Oe,{textareaRef:b}),jsxRuntime.jsx(ze,{textareaRef:b})]})]}),jsxRuntime.jsx(qe,{cancelLink:r})]})]})})}var ro=ee__default.default.forwardRef(({initialData:t,isEditMode:e,languages:r,defaultLanguage:o,labels:a,callbacks:i,features:m,variant:x,onBack:h,backLink:s,cancelLink:y,renderMarkdown:f,translateHint:b,maxWidth:g,className:d,children:n,autoSaveKey:u,autoSaveInterval:c},w)=>jsxRuntime.jsx(St,{initialData:t,isEditMode:e,languages:r,defaultLanguage:o,labels:a,callbacks:i,features:m,variant:x,autoSaveKey:u,autoSaveInterval:c,children:jsxRuntime.jsx("div",{ref:w,children:jsxRuntime.jsx(ei,{onBack:h,backLink:s,cancelLink:y,renderMarkdown:f,translateHint:b,maxWidth:g,className:d,children:n})})}));ro.displayName="BlogEditor";var de=ro;de.Header=Be;de.Metadata=He;de.LanguageTabs=Ae;de.Content=ze;de.Toolbar=Oe;de.Preview=Fe;de.Actions=qe;de.Translate=Ve;exports.AdvancedPageTransition=pe;exports.AnimatedGradient=ir;exports.BlogEditor=de;exports.BlogEditorActions=qe;exports.BlogEditorContent=ze;exports.BlogEditorHeader=Be;exports.BlogEditorLanguageTabs=Ae;exports.BlogEditorMetadata=He;exports.BlogEditorPreview=Fe;exports.BlogEditorProvider=St;exports.BlogEditorToolbar=Oe;exports.BlogEditorTranslate=Ve;exports.Carousel=pr;exports.CubePageTransition=uo;exports.DotNav=vr;exports.EmotionAnalysis=Rr;exports.EmotionButton=Je;exports.EmotionMeter=he;exports.EmotionSelector=kr;exports.FadePageTransition=ao;exports.FlipPageTransition=lo;exports.GlowCard=Jt;exports.HorizontalScroll=Tr;exports.ImageReveal=hr;exports.Marquee=Qt;exports.MorphPageTransition=co;exports.Parallax=Yt;exports.ScalePageTransition=io;exports.SlidePageTransition=so;exports.SpotlightCard=tr;exports.TextReveal=nr;exports.TiltCard=cr;exports.VideoBackground=ur;exports.ZoomPageTransition=po;exports.generateSlug=Rt;exports.getMarkdownPreview=Gs;exports.insertMarkdown=zt;exports.isValidSlug=zn;exports.normalizeSlug=Mt;exports.parseMarkdown=Dt;exports.stripMarkdown=eo;exports.useBlogEditor=U;exports.usePageTransition=fo;exports.usePageTransitionManager=vo;//# sourceMappingURL=advanced-motion.js.map
82
- //# sourceMappingURL=advanced-motion.js.map