@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,5 +1,6 @@
1
1
  import React from 'react';
2
- import { I as IconName } from './icons-DmhQEH_E.mjs';
2
+ import { I as IconName } from './icons-DcOBy9Hf.mjs';
3
+ export { D as Sidebar, S as SidebarNavItem, a as SidebarProps, b as SidebarSection } from './DashboardSidebar-ZulecqKs.mjs';
3
4
  import '@phosphor-icons/react';
4
5
 
5
6
  /**
@@ -10,14 +11,18 @@ import '@phosphor-icons/react';
10
11
  * @property {(value: string) => void} [onValueChange] - 탭 변경 콜백 / Tab change callback
11
12
  * @property {"pills" | "underline" | "cards"} [variant="pills"] - Navigation 스타일 변형 / Navigation style variant
12
13
  * @property {"small" | "medium" | "large"} [scale="medium"] - Navigation 크기 / Navigation size
13
- * @extends {Omit<React.HTMLAttributes<HTMLDivElement>, 'style'>}
14
+ * @property {string} [dot] - dot 유틸리티 문자열 / dot utility string
15
+ * @property {React.CSSProperties} [style] - 인라인 스타일 / Inline style
16
+ * @extends {Omit<React.HTMLAttributes<HTMLDivElement>, 'className' | 'style'>}
14
17
  */
15
- interface NavigationProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'style'> {
18
+ interface NavigationProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "className" | "style"> {
16
19
  value?: string;
17
20
  defaultValue?: string;
18
21
  onValueChange?: (value: string) => void;
19
22
  variant?: "pills" | "underline" | "cards";
20
23
  scale?: "small" | "medium" | "large";
24
+ dot?: string;
25
+ style?: React.CSSProperties;
21
26
  }
22
27
  /**
23
28
  * NavigationList 컴포넌트의 props / NavigationList component props
@@ -26,15 +31,18 @@ interface NavigationProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'st
26
31
  * @property {(value: string) => void} [onValueChange] - 탭 변경 콜백 / Tab change callback
27
32
  * @property {"pills" | "underline" | "cards"} [variant="pills"] - Navigation 스타일 변형 / Navigation style variant
28
33
  * @property {"small" | "medium" | "large"} [scale="medium"] - Navigation 크기 / Navigation size
29
- * @extends {Omit<React.HTMLAttributes<HTMLDivElement>, 'style'>}
34
+ * @property {string} [dot] - dot 유틸리티 문자열 / dot utility string
35
+ * @property {React.CSSProperties} [style] - 인라인 스타일 / Inline style
36
+ * @extends {Omit<React.HTMLAttributes<HTMLDivElement>, 'className' | 'style'>}
30
37
  */
31
- interface NavigationListProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'style'> {
38
+ interface NavigationListProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "className" | "style"> {
32
39
  value?: string;
33
40
  onValueChange?: (value: string) => void;
34
41
  variant?: "pills" | "underline" | "cards";
35
42
  scale?: "small" | "medium" | "large";
43
+ dot?: string;
44
+ style?: React.CSSProperties;
36
45
  }
37
- declare const NavigationList: React.ForwardRefExoticComponent<NavigationListProps & React.RefAttributes<HTMLDivElement>>;
38
46
  /**
39
47
  * NavigationItem 컴포넌트의 props / NavigationItem component props
40
48
  * @typedef {Object} NavigationItemProps
@@ -43,27 +51,35 @@ declare const NavigationList: React.ForwardRefExoticComponent<NavigationListProp
43
51
  * @property {"pills" | "underline" | "cards"} [variant] - Navigation 스타일 변형 (자동으로 설정됨) / Navigation style variant (auto-set)
44
52
  * @property {"small" | "medium" | "large"} [scale] - Navigation 크기 (자동으로 설정됨) / Navigation size (auto-set)
45
53
  * @property {boolean} [active] - 활성 상태 (자동으로 설정됨) / Active state (auto-set)
46
- * @extends {Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'style'>}
54
+ * @property {string} [dot] - dot 유틸리티 문자열 / dot utility string
55
+ * @extends {Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'className' | 'style'>}
47
56
  */
48
- interface NavigationItemProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'style'> {
57
+ interface NavigationItemProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "className" | "style"> {
49
58
  value: string;
50
59
  onValueChange?: (value: string) => void;
51
60
  variant?: "pills" | "underline" | "cards";
52
61
  scale?: "small" | "medium" | "large";
53
62
  active?: boolean;
63
+ dot?: string;
64
+ style?: React.CSSProperties;
54
65
  }
55
- declare const NavigationItem: React.ForwardRefExoticComponent<NavigationItemProps & React.RefAttributes<HTMLButtonElement>>;
56
66
  /**
57
67
  * NavigationContent 컴포넌트의 props / NavigationContent component props
58
68
  * @typedef {Object} NavigationContentProps
59
69
  * @property {string} value - 탭 값 / Tab value
60
70
  * @property {boolean} [active] - 활성 상태 (자동으로 설정됨) / Active state (auto-set)
61
- * @extends {React.HTMLAttributes<HTMLDivElement>}
71
+ * @property {string} [dot] - dot 유틸리티 문자열 / dot utility string
72
+ * @property {React.CSSProperties} [style] - 인라인 스타일 / Inline style
73
+ * @extends {Omit<React.HTMLAttributes<HTMLDivElement>, 'className' | 'style'>}
62
74
  */
63
- interface NavigationContentProps extends React.HTMLAttributes<HTMLDivElement> {
75
+ interface NavigationContentProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "className" | "style"> {
64
76
  value: string;
65
77
  active?: boolean;
78
+ dot?: string;
79
+ style?: React.CSSProperties;
66
80
  }
81
+ declare const NavigationList: React.ForwardRefExoticComponent<NavigationListProps & React.RefAttributes<HTMLDivElement>>;
82
+ declare const NavigationItem: React.ForwardRefExoticComponent<NavigationItemProps & React.RefAttributes<HTMLButtonElement>>;
67
83
  declare const NavigationContent: React.ForwardRefExoticComponent<NavigationContentProps & React.RefAttributes<HTMLDivElement>>;
68
84
  interface NavigationComponent extends React.ForwardRefExoticComponent<NavigationProps & React.RefAttributes<HTMLDivElement>> {
69
85
  List: typeof NavigationList;
@@ -90,16 +106,20 @@ interface BreadcrumbItemData {
90
106
  * @property {string} [homeLabel] - 홈 라벨 (기본: "Home") / Home label (default: "Home")
91
107
  * @property {React.ReactNode} [separator] - 항목 사이 구분자 (기본: chevronRight 아이콘) / Separator between items (default: chevronRight icon)
92
108
  * @property {'default' | 'subtle' | 'transparent' | 'glass'} [variant='default'] - Breadcrumb 스타일 변형 / Breadcrumb style variant
93
- * @extends {React.HTMLAttributes<HTMLDivElement>}
109
+ * @extends {Omit<React.HTMLAttributes<HTMLDivElement>, 'className'>}
94
110
  */
95
- interface BreadcrumbProps extends React.HTMLAttributes<HTMLDivElement> {
111
+ interface BreadcrumbProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "className"> {
96
112
  children?: React.ReactNode;
97
113
  items?: BreadcrumbItemData[];
98
114
  maxItems?: number;
99
115
  showHomeIcon?: boolean;
100
116
  homeLabel?: string;
101
117
  separator?: React.ReactNode;
102
- variant?: 'default' | 'subtle' | 'transparent' | 'glass';
118
+ variant?: "default" | "subtle" | "transparent" | "glass";
119
+ /** dot 유틸리티 스트링 (인라인 스타일로 변환) / dot utility string (converted to inline style) */
120
+ dot?: string;
121
+ /** 추가 인라인 스타일 / Additional inline style */
122
+ style?: React.CSSProperties;
103
123
  }
104
124
  /**
105
125
  * BreadcrumbItem 컴포넌트의 props / BreadcrumbItem component props
@@ -113,7 +133,8 @@ interface BreadcrumbItemProps {
113
133
  href?: string;
114
134
  isCurrent?: boolean;
115
135
  children: React.ReactNode;
116
- className?: string;
136
+ dot?: string;
137
+ style?: React.CSSProperties;
117
138
  }
118
139
  /**
119
140
  * Breadcrumb 컴포넌트 / Breadcrumb component
@@ -168,9 +189,10 @@ declare const BreadcrumbItem: React.ForwardRefExoticComponent<BreadcrumbItemProp
168
189
  * @property {"sm" | "md" | "lg"} [size="md"] - Pagination 크기 / Pagination size
169
190
  * @property {"default" | "outlined" | "minimal"} [variant="default"] - Pagination 스타일 변형 / Pagination style variant
170
191
  * @property {"square" | "circle"} [shape="square"] - 버튼 모양 / Button shape
171
- * @extends {React.HTMLAttributes<HTMLDivElement>}
192
+ * @property {string} [dot] - dot utility string for additional styles
193
+ * @property {React.CSSProperties} [style] - Inline style overrides
172
194
  */
173
- interface PaginationProps extends React.HTMLAttributes<HTMLDivElement> {
195
+ interface PaginationProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "className"> {
174
196
  currentPage: number;
175
197
  totalPages: number;
176
198
  onPageChange: (page: number) => void;
@@ -180,6 +202,8 @@ interface PaginationProps extends React.HTMLAttributes<HTMLDivElement> {
180
202
  size?: "sm" | "md" | "lg";
181
203
  variant?: "default" | "outlined" | "minimal";
182
204
  shape?: "square" | "circle";
205
+ dot?: string;
206
+ style?: React.CSSProperties;
183
207
  }
184
208
  /**
185
209
  * Pagination 컴포넌트 / Pagination component
@@ -236,9 +260,10 @@ declare const PaginationWithInfo: React.ForwardRefExoticComponent<PaginationProp
236
260
  * @property {string} nextPage.title - 다음 페이지 제목 / Next page title
237
261
  * @property {string} nextPage.href - 다음 페이지 링크 / Next page link
238
262
  * @property {boolean} [showOnMobile=false] - 모바일에서 표시 여부 / Show on mobile
239
- * @extends {React.HTMLAttributes<HTMLDivElement>}
263
+ * @property {string} [dot] - dot 유틸리티 스트링 / dot utility string
264
+ * @property {React.CSSProperties} [style] - 인라인 스타일 / Inline style
240
265
  */
241
- interface PageNavigationProps extends React.HTMLAttributes<HTMLDivElement> {
266
+ interface PageNavigationProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "className"> {
242
267
  prevPage?: {
243
268
  title: string;
244
269
  href: string;
@@ -248,6 +273,8 @@ interface PageNavigationProps extends React.HTMLAttributes<HTMLDivElement> {
248
273
  href: string;
249
274
  };
250
275
  showOnMobile?: boolean;
276
+ dot?: string;
277
+ style?: React.CSSProperties;
251
278
  }
252
279
  /**
253
280
  * PageNavigation 컴포넌트 / PageNavigation component
@@ -268,7 +295,7 @@ interface PageNavigationProps extends React.HTMLAttributes<HTMLDivElement> {
268
295
  *
269
296
  * @param {PageNavigationProps} props - PageNavigation 컴포넌트의 props / PageNavigation component props
270
297
  * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
271
- * @returns {JSX.Element} PageNavigation 컴포넌트 / PageNavigation component
298
+ * @returns {JSX.Element | null} PageNavigation 컴포넌트 / PageNavigation component
272
299
  */
273
300
  declare const PageNavigation: React.ForwardRefExoticComponent<PageNavigationProps & React.RefAttributes<HTMLDivElement>>;
274
301
 
@@ -276,7 +303,6 @@ declare const PageNavigation: React.ForwardRefExoticComponent<PageNavigationProp
276
303
  * PageTransition 컴포넌트의 props / PageTransition component props
277
304
  * @typedef {Object} PageTransitionProps
278
305
  * @property {React.ReactNode} children - 페이지 내용 / Page content
279
- * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class
280
306
  * @property {number} [duration=300] - 전환 지속 시간 (ms) / Transition duration (ms)
281
307
  * @property {'fade' | 'slide' | 'scale' | 'flip'} [variant='fade'] - 전환 애니메이션 타입 / Transition animation type
282
308
  * @property {'default' | 'dots' | 'bars' | 'ring' | 'ripple'} [loadingVariant='ripple'] - 로딩 스피너 타입 / Loading spinner type
@@ -287,7 +313,8 @@ declare const PageNavigation: React.ForwardRefExoticComponent<PageNavigationProp
287
313
  */
288
314
  interface PageTransitionProps {
289
315
  children: React.ReactNode;
290
- className?: string;
316
+ dot?: string;
317
+ style?: React.CSSProperties;
291
318
  duration?: number;
292
319
  variant?: 'fade' | 'slide' | 'scale' | 'flip';
293
320
  loadingVariant?: 'default' | 'dots' | 'bars' | 'ring' | 'ripple';
@@ -12,12 +12,14 @@
12
12
  * import { Breadcrumb, BreadcrumbItem } from '@hua-labs/ui/navigation';
13
13
  * import { Pagination } from '@hua-labs/ui/navigation';
14
14
  */
15
- export { Navigation, NavigationList, NavigationItem, NavigationContent } from './components/Navigation';
16
- export { Breadcrumb, BreadcrumbItem } from './components/Breadcrumb';
17
- export type { BreadcrumbProps, BreadcrumbItemProps, BreadcrumbItemData } from './components/Breadcrumb';
18
- export { Pagination, PaginationOutlined, PaginationMinimal, PaginationWithInfo } from './components/Pagination';
19
- export { PageNavigation } from './components/PageNavigation';
20
- export type { PageNavigationProps } from './components/PageNavigation';
21
- export { PageTransition } from './components/PageTransition';
22
- export type { PageTransitionProps } from './components/PageTransition';
15
+ export { Navigation, NavigationList, NavigationItem, NavigationContent, } from "./components/Navigation";
16
+ export { Breadcrumb, BreadcrumbItem } from "./components/Breadcrumb";
17
+ export type { BreadcrumbProps, BreadcrumbItemProps, BreadcrumbItemData, } from "./components/Breadcrumb";
18
+ export { Pagination, PaginationOutlined, PaginationMinimal, PaginationWithInfo, } from "./components/Pagination";
19
+ export { PageNavigation } from "./components/PageNavigation";
20
+ export type { PageNavigationProps } from "./components/PageNavigation";
21
+ export { PageTransition } from "./components/PageTransition";
22
+ export type { PageTransitionProps } from "./components/PageTransition";
23
+ export { DashboardSidebar as Sidebar } from "./components/dashboard/DashboardSidebar";
24
+ export type { DashboardSidebarProps as SidebarProps, SidebarNavItem, SidebarSection, } from "./components/dashboard/DashboardSidebar";
23
25
  //# sourceMappingURL=navigation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../src/navigation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAGxG,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACrE,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGxG,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGhH,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGvE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../src/navigation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EACL,UAAU,EACV,cAAc,EACd,cAAc,EACd,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACrE,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGvE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGvE,OAAO,EAAE,gBAAgB,IAAI,OAAO,EAAE,MAAM,yCAAyC,CAAC;AACtF,YAAY,EACV,qBAAqB,IAAI,YAAY,EACrC,cAAc,EACd,cAAc,GACf,MAAM,yCAAyC,CAAC"}
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- export{a as Breadcrumb,b as BreadcrumbItem}from'./chunk-KJZGOL2Z.mjs';import {l}from'./chunk-7OYT3QSY.mjs';import {a}from'./chunk-RS6RKW5U.mjs';import {b}from'./chunk-U6CTBZ2U.mjs';import p,{useState,useEffect}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';var A=p.forwardRef(({className:n,value:e,defaultValue:t,onValueChange:o,variant:s="pills",scale:l="medium",children:m,...d},f)=>{let [g,c]=p.useState(e||t||""),b$1=e!==void 0,x=b$1?e:g;return p.useEffect(()=>{e!==void 0&&c(e);},[e]),jsx("div",{ref:f,className:b("w-full",n),...d,children:p.Children.map(m,u=>p.isValidElement(u)?p.cloneElement(u,{value:x,variant:s,scale:l}):u)})});A.displayName="Navigation";var B=p.forwardRef(({className:n,value:e,onValueChange:t,variant:o="pills",scale:s="medium",children:l,...m},d)=>{let f=()=>{switch(o){case "pills":return "bg-muted p-1 rounded-xl";case "underline":return "border-b border-border";case "cards":return "bg-muted/50 p-1 rounded-xl";default:return "bg-muted p-1 rounded-xl"}},g=()=>{switch(s){case "small":return "gap-1";case "large":return "gap-3";default:return "gap-2"}};return jsx("div",{ref:d,className:b("flex",f(),g(),n),...m,children:p.Children.map(l,c=>p.isValidElement(c)?p.cloneElement(c,{value:e,variant:o,scale:s}):c)})});B.displayName="NavigationList";var O=p.forwardRef(({className:n,value:e,onValueChange:t,variant:o="pills",scale:s="medium",active:l=false,children:m,...d},f)=>{let g=()=>{switch(o){case "pills":return b("rounded-lg px-3 py-2 text-sm font-medium transition-all",l?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground");case "underline":return b("border-b-2 px-3 py-2 text-sm font-medium transition-all",l?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground");case "cards":return b("rounded-lg px-3 py-2 text-sm font-medium transition-all",l?"bg-background text-foreground shadow-sm border border-border":"text-muted-foreground hover:text-foreground");default:return b("rounded-lg px-3 py-2 text-sm font-medium transition-all",l?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground")}},c=()=>{switch(s){case "small":return "text-xs px-2 py-1";case "large":return "text-base px-4 py-3";default:return "text-sm px-3 py-2"}},b$1=()=>{t==null||t(e);};return jsx("button",{ref:f,className:b(g(),c(),"focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2",n),onClick:b$1,...d,children:m})});O.displayName="NavigationItem";var j=p.forwardRef(({className:n,active:e=false,...t},o)=>e?jsx("div",{ref:o,className:b("mt-4",n),...t}):null);j.displayName="NavigationContent";var H=A;H.List=B;H.Item=O;H.Content=j;var C=p.forwardRef(({className:n,currentPage:e,totalPages:t,onPageChange:o,showFirstLast:s=true,showPrevNext:l=true,maxVisiblePages:m=5,size:d="md",variant:f="default",shape:g="square",...c},b$1)=>{let x=()=>{let r=[],R=Math.floor(m/2),h=Math.max(1,e-R),P=Math.min(t,e+R);P-h+1<m&&(h===1?P=Math.min(t,h+m-1):h=Math.max(1,P-m+1)),h>1&&(r.push(1),h>2&&r.push("..."));for(let D=h;D<=P;D++)r.push(D);return P<t&&(P<t-1&&r.push("..."),r.push(t)),r},v=()=>{switch(d){case "sm":return "h-8 px-2 text-sm";case "lg":return "h-12 px-4 text-base";default:return "h-10 px-3 text-sm"}},u=()=>g==="circle"?"rounded-full aspect-square flex items-center justify-center":"rounded-md",N=(r=false)=>{switch(f){case "outlined":return b("border border-border",r?"bg-primary border-primary text-primary-foreground":"bg-background text-foreground hover:bg-muted");case "minimal":return b("border-0",r?"bg-primary/10 text-primary":"bg-transparent text-foreground hover:bg-muted");default:return b("border-0",r?"bg-primary text-primary-foreground":"bg-background text-foreground hover:bg-muted")}},M=r=>{r>=1&&r<=t&&r!==e&&o(r);},G=x();return jsxs("div",{ref:b$1,className:b("flex items-center justify-center gap-1",n),...c,children:[s&&e>1&&jsx("button",{onClick:()=>M(1),className:b("inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",v(),u(),N()),"aria-label":"\uCCAB \uD398\uC774\uC9C0\uB85C \uC774\uB3D9",children:jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M11 19l-7-7 7-7M19 19l-7-7 7-7"})})}),l&&e>1&&jsx("button",{onClick:()=>M(e-1),className:b("inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",v(),u(),N()),"aria-label":"\uC774\uC804 \uD398\uC774\uC9C0\uB85C \uC774\uB3D9",children:jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"})})}),G.map((r,R)=>jsx(p.Fragment,{children:r==="..."?jsx("span",{className:b("inline-flex items-center justify-center px-3 py-2 text-sm font-medium text-muted-foreground",v()),children:"..."}):jsx("button",{onClick:()=>M(r),className:b("inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",v(),u(),N(r===e)),"aria-label":`${r}\uD398\uC774\uC9C0\uB85C \uC774\uB3D9`,"aria-current":r===e?"page":void 0,children:r})},R)),l&&e<t&&jsx("button",{onClick:()=>M(e+1),className:b("inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",v(),u(),N()),"aria-label":"\uB2E4\uC74C \uD398\uC774\uC9C0\uB85C \uC774\uB3D9",children:jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})}),s&&e<t&&jsx("button",{onClick:()=>M(t),className:b("inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",v(),u(),N()),"aria-label":"\uB9C8\uC9C0\uB9C9 \uD398\uC774\uC9C0\uB85C \uC774\uB3D9",children:jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 5l7 7-7 7M5 5l7 7-7 7"})})})]})});C.displayName="Pagination";var V=p.forwardRef(({className:n,...e},t)=>jsx(C,{ref:t,variant:"outlined",className:n,...e}));V.displayName="PaginationOutlined";var q=p.forwardRef(({className:n,...e},t)=>jsx(C,{ref:t,variant:"minimal",className:n,...e}));q.displayName="PaginationMinimal";var z=p.forwardRef(({totalItems:n=0,itemsPerPage:e=10,showInfo:t=true,className:o,...s},l)=>{let m=(s.currentPage-1)*e+1,d=Math.min(s.currentPage*e,n);return jsxs("div",{className:b("flex flex-col sm:flex-row items-center justify-between gap-4",o),children:[t&&jsx("div",{className:"text-sm text-foreground",children:n>0?jsxs(Fragment,{children:[jsx("span",{className:"font-medium",children:m})," - ",jsx("span",{className:"font-medium",children:d})," of ",jsx("span",{className:"font-medium",children:n})," results"]}):"No results"}),jsx(C,{ref:l,...s})]})});z.displayName="PaginationWithInfo";var _=p.forwardRef(({className:n,prevPage:e,nextPage:t,showOnMobile:o=false,...s},l$1)=>!e&&!t?null:jsxs("div",{ref:l$1,className:b("flex items-center justify-between py-4",!o&&"hidden md:flex",n),...s,children:[jsx("div",{className:"flex-1",children:e&&jsxs("a",{href:e.href,className:"group inline-flex items-center text-sm text-muted-foreground hover:text-foreground transition-colors",children:[jsx(l,{name:"chevronLeft",className:"w-4 h-4 mr-2 transition-transform group-hover:-translate-x-1"}),jsx("span",{className:"hidden sm:inline",children:e.title})]})}),jsx("div",{className:"flex-1 flex justify-end",children:t&&jsxs("a",{href:t.href,className:"group inline-flex items-center text-sm text-muted-foreground hover:text-foreground transition-colors",children:[jsx("span",{className:"hidden sm:inline mr-2",children:t.title}),jsx(l,{name:"chevronRight",className:"w-4 h-4 transition-transform group-hover:translate-x-1"})]})})]}));_.displayName="PageNavigation";var T=p.forwardRef(({children:n,className:e,duration:t=300,variant:o="fade",loadingVariant:s="ripple",loadingText:l="\uD398\uC774\uC9C0 \uB85C\uB529 \uC911...",showLoading:m=true,onTransitionStart:d,onTransitionEnd:f},g)=>{let[c,b$1]=useState(true),[x,v]=useState(false);useEffect(()=>{let N=setTimeout(()=>{b$1(false),v(true),f==null||f();},t);return d==null||d(),()=>clearTimeout(N)},[t,d,f]);let u={fade:b("transition-opacity duration-300 ease-in-out",x?"opacity-100":"opacity-0"),slide:b("transition-transform duration-300 ease-in-out",x?"translate-x-0":"translate-x-full"),scale:b("transition-all duration-300 ease-in-out",x?"scale-100 opacity-100":"scale-95 opacity-0"),flip:b("transition-all duration-500 ease-in-out",x?"rotate-y-0 opacity-100":"rotate-y-90 opacity-0")};return c&&m?jsx("div",{className:b("flex flex-col items-center justify-center min-h-screen bg-gradient-to-br from-indigo-50 to-purple-50 dark:from-slate-900 dark:to-slate-800",e),children:jsx(a,{size:"lg",variant:s,text:l})}):jsx("div",{ref:g,className:b("w-full",u[o],e),style:{transitionDuration:`${t}ms`},children:n})});T.displayName="PageTransition";var Y=p.forwardRef((n,e)=>jsx(T,{ref:e,variant:"fade",...n})),Z=p.forwardRef((n,e)=>jsx(T,{ref:e,variant:"slide",...n})),ee=p.forwardRef((n,e)=>jsx(T,{ref:e,variant:"scale",...n})),te=p.forwardRef((n,e)=>jsx(T,{ref:e,variant:"flip",...n}));Y.displayName="FadeTransition";Z.displayName="SlideTransition";ee.displayName="ScaleTransition";te.displayName="FlipTransition";export{H as Navigation,j as NavigationContent,O as NavigationItem,B as NavigationList,_ as PageNavigation,T as PageTransition,C as Pagination,q as PaginationMinimal,V as PaginationOutlined,z as PaginationWithInfo};//# sourceMappingURL=navigation.mjs.map
2
+ export{d as Navigation,c as NavigationContent,b as NavigationItem,a as NavigationList,i as PageNavigation,e as Pagination,g as PaginationMinimal,f as PaginationOutlined,h as PaginationWithInfo}from'./chunk-ZTHUGQZL.mjs';import {a}from'./chunk-SOK7VBSM.mjs';export{a as Breadcrumb,b as BreadcrumbItem}from'./chunk-ZVCGC6EV.mjs';export{a as Sidebar}from'./chunk-J46VEBVF.mjs';import'./chunk-DABVKUJN.mjs';import'./chunk-NSDWT2JM.mjs';import {e,d}from'./chunk-OBMOTQEU.mjs';import'./chunk-EAZEI74V.mjs';import o,{useState,useEffect}from'react';import {jsx}from'react/jsx-runtime';var i=o.forwardRef(({children:a$1,dot:e$1,style:c,duration:d$1=300,variant:g="fade",loadingVariant:u="ripple",loadingText:P="\uD398\uC774\uC9C0 \uB85C\uB529 \uC911...",showLoading:v=true,onTransitionStart:n,onTransitionEnd:s},b)=>{let[y,x]=useState(true),[l,T]=useState(false);useEffect(()=>{let S=setTimeout(()=>{x(false),T(true),s==null||s();},d$1);return n==null||n(),()=>clearTimeout(S)},[d$1,n,s]);let N={fade:l?"transition-opacity duration-300 ease-in-out opacity-100":"transition-opacity duration-300 ease-in-out opacity-0",slide:l?"transition-transform duration-300 ease-in-out translate-x-0":"transition-transform duration-300 ease-in-out translate-x-full",scale:l?"transition-all duration-300 ease-in-out scale-100 opacity-100":"transition-all duration-300 ease-in-out scale-95 opacity-0",flip:l?"transition-all duration-500 ease-in-out rotate-y-0 opacity-100":"transition-all duration-500 ease-in-out rotate-y-90 opacity-0"};return y&&v?jsx("div",{style:e("flex flex-col items-center justify-center min-h-screen bg-gradient-to-br from-indigo-50 to-purple-50 dark:from-slate-900 dark:to-slate-800"),children:jsx(a,{size:"lg",variant:u,text:P})}):jsx("div",{ref:b,style:d(e("w-full"),e(N[g]),{transitionDuration:`${d$1}ms`},e(e$1),c),children:a$1})});i.displayName="PageTransition";var k=o.forwardRef((a,e)=>jsx(i,{ref:e,variant:"fade",...a})),E=o.forwardRef((a,e)=>jsx(i,{ref:e,variant:"slide",...a})),z=o.forwardRef((a,e)=>jsx(i,{ref:e,variant:"scale",...a})),W=o.forwardRef((a,e)=>jsx(i,{ref:e,variant:"flip",...a}));k.displayName="FadeTransition";E.displayName="SlideTransition";z.displayName="ScaleTransition";W.displayName="FlipTransition";export{i as PageTransition};//# sourceMappingURL=navigation.mjs.map
3
3
  //# sourceMappingURL=navigation.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Navigation.tsx","../src/components/Pagination.tsx","../src/components/PageNavigation.tsx","../src/components/PageTransition.tsx"],"names":["Navigation","React","className","value","defaultValue","onValueChange","variant","scale","children","props","ref","activeTab","setActiveTab","isControlled","currentValue","jsx","merge","child","NavigationList","_onValueChange","getStyleClasses","getScaleClasses","NavigationItem","active","handleClick","NavigationContent","NavigationComponent","Pagination","currentPage","totalPages","onPageChange","showFirstLast","showPrevNext","maxVisiblePages","size","shape","getVisiblePages","pages","halfVisible","start","end","i","getSizeClasses","getShapeClasses","getVariantClasses","isActive","handlePageClick","page","visiblePages","jsxs","index","PaginationOutlined","PaginationMinimal","PaginationWithInfo","totalItems","itemsPerPage","showInfo","startItem","endItem","Fragment","PageNavigation","prevPage","nextPage","showOnMobile","Icon","PageTransition","duration","loadingVariant","loadingText","showLoading","onTransitionStart","onTransitionEnd","isLoading","setIsLoading","useState","isVisible","setIsVisible","useEffect","timer","transitionClasses","LoadingSpinner","FadeTransition","SlideTransition","ScaleTransition","FlipTransition"],"mappings":"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","file":"navigation.mjs","sourcesContent":["\"use client\"\n\nimport React from \"react\"\nimport { merge } from \"../lib/utils\"\n\n/**\n * Navigation 컴포넌트의 props / Navigation component props\n * @typedef {Object} NavigationProps\n * @property {string} [value] - 제어 모드에서 활성 탭 값 / Active tab value in controlled mode\n * @property {string} [defaultValue] - 비제어 모드에서 기본 활성 탭 값 / Default active tab value in uncontrolled mode\n * @property {(value: string) => void} [onValueChange] - 탭 변경 콜백 / Tab change callback\n * @property {\"pills\" | \"underline\" | \"cards\"} [variant=\"pills\"] - Navigation 스타일 변형 / Navigation style variant\n * @property {\"small\" | \"medium\" | \"large\"} [scale=\"medium\"] - Navigation 크기 / Navigation size\n * @extends {Omit<React.HTMLAttributes<HTMLDivElement>, 'style'>}\n */\nexport interface NavigationProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'style'> {\n value?: string\n defaultValue?: string\n onValueChange?: (value: string) => void\n variant?: \"pills\" | \"underline\" | \"cards\"\n scale?: \"small\" | \"medium\" | \"large\"\n}\n\n/**\n * Navigation 컴포넌트 / Navigation component\n * \n * 탭 네비게이션 컴포넌트입니다.\n * NavigationList, NavigationItem, NavigationContent와 함께 사용합니다.\n * \n * Tab navigation component.\n * Used with NavigationList, NavigationItem, and NavigationContent.\n * \n * @component\n * @example\n * // 기본 사용 / Basic usage\n * <Navigation>\n * <Navigation.List>\n * <Navigation.Item value=\"tab1\">탭 1</Navigation.Item>\n * <Navigation.Item value=\"tab2\">탭 2</Navigation.Item>\n * </Navigation.List>\n * <Navigation.Content value=\"tab1\">내용 1</Navigation.Content>\n * </Navigation>\n * \n * @param {NavigationProps} props - Navigation 컴포넌트의 props / Navigation component props\n * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref\n * @returns {JSX.Element} Navigation 컴포넌트 / Navigation component\n */\nconst Navigation = React.forwardRef<HTMLDivElement, NavigationProps>(\n ({ \n className, \n value,\n defaultValue,\n onValueChange,\n variant = \"pills\",\n scale = \"medium\",\n children,\n ...props \n }, ref) => {\n const [activeTab, setActiveTab] = React.useState(value || defaultValue || \"\")\n const isControlled = value !== undefined\n const currentValue = isControlled ? value : activeTab\n\n const _handleTabChange = (newValue: string) => {\n if (!isControlled) {\n setActiveTab(newValue)\n }\n onValueChange?.(newValue)\n }\n\n React.useEffect(() => {\n if (value !== undefined) {\n setActiveTab(value)\n }\n }, [value])\n\n return (\n <div\n ref={ref}\n className={merge(\n \"w-full\",\n className\n )}\n {...props}\n >\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n return React.cloneElement(child, {\n value: currentValue,\n variant,\n scale\n } as Partial<NavigationListProps | NavigationItemProps>)\n }\n return child\n })}\n </div>\n )\n }\n)\nNavigation.displayName = \"Navigation\"\n\n/**\n * NavigationList 컴포넌트의 props / NavigationList component props\n * @typedef {Object} NavigationListProps\n * @property {string} [value] - 활성 탭 값 / Active tab value\n * @property {(value: string) => void} [onValueChange] - 탭 변경 콜백 / Tab change callback\n * @property {\"pills\" | \"underline\" | \"cards\"} [variant=\"pills\"] - Navigation 스타일 변형 / Navigation style variant\n * @property {\"small\" | \"medium\" | \"large\"} [scale=\"medium\"] - Navigation 크기 / Navigation size\n * @extends {Omit<React.HTMLAttributes<HTMLDivElement>, 'style'>}\n */\nexport interface NavigationListProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'style'> {\n value?: string\n onValueChange?: (value: string) => void\n variant?: \"pills\" | \"underline\" | \"cards\"\n scale?: \"small\" | \"medium\" | \"large\"\n}\n\nconst NavigationList = React.forwardRef<HTMLDivElement, NavigationListProps>(\n ({\n className,\n value,\n onValueChange: _onValueChange,\n variant = \"pills\",\n scale = \"medium\",\n children,\n ...props\n }, ref) => {\n const getStyleClasses = () => {\n switch (variant) {\n case \"pills\":\n return \"bg-muted p-1 rounded-xl\"\n case \"underline\":\n return \"border-b border-border\"\n case \"cards\":\n return \"bg-muted/50 p-1 rounded-xl\"\n default:\n return \"bg-muted p-1 rounded-xl\"\n }\n }\n\n const getScaleClasses = () => {\n switch (scale) {\n case \"small\":\n return \"gap-1\"\n case \"large\":\n return \"gap-3\"\n default:\n return \"gap-2\"\n }\n }\n\n return (\n <div\n ref={ref}\n className={merge(\n \"flex\",\n getStyleClasses(),\n getScaleClasses(),\n className\n )}\n {...props}\n >\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n return React.cloneElement(child, {\n value,\n variant,\n scale\n } as Partial<NavigationItemProps>)\n }\n return child\n })}\n </div>\n )\n }\n)\nNavigationList.displayName = \"NavigationList\"\n\n/**\n * NavigationItem 컴포넌트의 props / NavigationItem component props\n * @typedef {Object} NavigationItemProps\n * @property {string} value - 탭 값 / Tab value\n * @property {(value: string) => void} [onValueChange] - 탭 변경 콜백 / Tab change callback\n * @property {\"pills\" | \"underline\" | \"cards\"} [variant] - Navigation 스타일 변형 (자동으로 설정됨) / Navigation style variant (auto-set)\n * @property {\"small\" | \"medium\" | \"large\"} [scale] - Navigation 크기 (자동으로 설정됨) / Navigation size (auto-set)\n * @property {boolean} [active] - 활성 상태 (자동으로 설정됨) / Active state (auto-set)\n * @extends {Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'style'>}\n */\nexport interface NavigationItemProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'style'> {\n value: string\n onValueChange?: (value: string) => void\n variant?: \"pills\" | \"underline\" | \"cards\"\n scale?: \"small\" | \"medium\" | \"large\"\n active?: boolean\n}\n\nconst NavigationItem = React.forwardRef<HTMLButtonElement, NavigationItemProps>(\n ({ \n className, \n value,\n onValueChange,\n variant = \"pills\",\n scale = \"medium\",\n active = false,\n children,\n ...props \n }, ref) => {\n const getStyleClasses = () => {\n switch (variant) {\n case \"pills\":\n return merge(\n \"rounded-lg px-3 py-2 text-sm font-medium transition-all\",\n active\n ? \"bg-background text-foreground shadow-sm\"\n : \"text-muted-foreground hover:text-foreground\"\n )\n case \"underline\":\n return merge(\n \"border-b-2 px-3 py-2 text-sm font-medium transition-all\",\n active\n ? \"border-primary text-primary\"\n : \"border-transparent text-muted-foreground hover:text-foreground\"\n )\n case \"cards\":\n return merge(\n \"rounded-lg px-3 py-2 text-sm font-medium transition-all\",\n active\n ? \"bg-background text-foreground shadow-sm border border-border\"\n : \"text-muted-foreground hover:text-foreground\"\n )\n default:\n return merge(\n \"rounded-lg px-3 py-2 text-sm font-medium transition-all\",\n active\n ? \"bg-background text-foreground shadow-sm\"\n : \"text-muted-foreground hover:text-foreground\"\n )\n }\n }\n\n const getScaleClasses = () => {\n switch (scale) {\n case \"small\":\n return \"text-xs px-2 py-1\"\n case \"large\":\n return \"text-base px-4 py-3\"\n default:\n return \"text-sm px-3 py-2\"\n }\n }\n\n const handleClick = () => {\n onValueChange?.(value)\n }\n\n return (\n <button\n ref={ref}\n className={merge(\n getStyleClasses(),\n getScaleClasses(),\n \"focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className\n )}\n onClick={handleClick}\n {...props}\n >\n {children}\n </button>\n )\n }\n)\nNavigationItem.displayName = \"NavigationItem\"\n\n/**\n * NavigationContent 컴포넌트의 props / NavigationContent component props\n * @typedef {Object} NavigationContentProps\n * @property {string} value - 탭 값 / Tab value\n * @property {boolean} [active] - 활성 상태 (자동으로 설정됨) / Active state (auto-set)\n * @extends {React.HTMLAttributes<HTMLDivElement>}\n */\nexport interface NavigationContentProps extends React.HTMLAttributes<HTMLDivElement> {\n value: string\n active?: boolean\n}\n\nconst NavigationContent = React.forwardRef<HTMLDivElement, NavigationContentProps>(\n ({ className, active = false, ...props }, ref) => {\n if (!active) return null\n\n return (\n <div\n ref={ref}\n className={merge(\"mt-4\", className)}\n {...props}\n />\n )\n }\n)\nNavigationContent.displayName = \"NavigationContent\"\n\n// 서브컴포넌트 타입 정의\nexport interface NavigationComponent extends React.ForwardRefExoticComponent<NavigationProps & React.RefAttributes<HTMLDivElement>> {\n List: typeof NavigationList\n Item: typeof NavigationItem\n Content: typeof NavigationContent\n}\n\nconst NavigationComponent = Navigation as NavigationComponent\nNavigationComponent.List = NavigationList\nNavigationComponent.Item = NavigationItem\nNavigationComponent.Content = NavigationContent\n\nexport { NavigationComponent as Navigation, NavigationList, NavigationItem, NavigationContent } ","\"use client\"\n\nimport React from \"react\"\nimport { merge } from \"../lib/utils\"\n\n/**\n * Pagination 컴포넌트의 props / Pagination component props\n * @typedef {Object} PaginationProps\n * @property {number} currentPage - 현재 페이지 번호 / Current page number\n * @property {number} totalPages - 전체 페이지 수 / Total number of pages\n * @property {(page: number) => void} onPageChange - 페이지 변경 콜백 / Page change callback\n * @property {boolean} [showFirstLast=true] - 첫/마지막 페이지 버튼 표시 여부 / Show first/last page buttons\n * @property {boolean} [showPrevNext=true] - 이전/다음 페이지 버튼 표시 여부 / Show previous/next page buttons\n * @property {number} [maxVisiblePages=5] - 최대 표시 페이지 수 / Maximum visible page numbers\n * @property {\"sm\" | \"md\" | \"lg\"} [size=\"md\"] - Pagination 크기 / Pagination size\n * @property {\"default\" | \"outlined\" | \"minimal\"} [variant=\"default\"] - Pagination 스타일 변형 / Pagination style variant\n * @property {\"square\" | \"circle\"} [shape=\"square\"] - 버튼 모양 / Button shape\n * @extends {React.HTMLAttributes<HTMLDivElement>}\n */\nexport interface PaginationProps extends React.HTMLAttributes<HTMLDivElement> {\n currentPage: number\n totalPages: number\n onPageChange: (page: number) => void\n showFirstLast?: boolean\n showPrevNext?: boolean\n maxVisiblePages?: number\n size?: \"sm\" | \"md\" | \"lg\"\n variant?: \"default\" | \"outlined\" | \"minimal\"\n shape?: \"square\" | \"circle\"\n}\n\n/**\n * Pagination 컴포넌트 / Pagination component\n * \n * 페이지네이션 컨트롤을 제공하는 컴포넌트입니다.\n * 첫/마지막 페이지, 이전/다음 페이지 버튼을 지원하며,\n * 많은 페이지가 있을 경우 자동으로 생략 표시(...)를 합니다.\n * \n * Component that provides pagination controls.\n * Supports first/last page and previous/next page buttons,\n * and automatically shows ellipsis (...) when there are many pages.\n * \n * @component\n * @example\n * // 기본 사용 / Basic usage\n * const [page, setPage] = useState(1)\n * \n * <Pagination\n * currentPage={page}\n * totalPages={10}\n * onPageChange={setPage}\n * />\n * \n * @example\n * // Outlined 스타일, 원형 버튼 / Outlined style, circular buttons\n * <Pagination\n * currentPage={page}\n * totalPages={20}\n * onPageChange={setPage}\n * variant=\"outlined\"\n * shape=\"circle\"\n * />\n * \n * @param {PaginationProps} props - Pagination 컴포넌트의 props / Pagination component props\n * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref\n * @returns {JSX.Element} Pagination 컴포넌트 / Pagination component\n */\nconst Pagination = React.forwardRef<HTMLDivElement, PaginationProps>(\n ({ \n className, \n currentPage,\n totalPages,\n onPageChange,\n showFirstLast = true,\n showPrevNext = true,\n maxVisiblePages = 5,\n size = \"md\",\n variant = \"default\",\n shape = \"square\",\n ...props \n }, ref) => {\n const getVisiblePages = () => {\n const pages: (number | string)[] = []\n const halfVisible = Math.floor(maxVisiblePages / 2)\n \n let start = Math.max(1, currentPage - halfVisible)\n let end = Math.min(totalPages, currentPage + halfVisible)\n \n // 조정\n if (end - start + 1 < maxVisiblePages) {\n if (start === 1) {\n end = Math.min(totalPages, start + maxVisiblePages - 1)\n } else {\n start = Math.max(1, end - maxVisiblePages + 1)\n }\n }\n \n // 첫 페이지\n if (start > 1) {\n pages.push(1)\n if (start > 2) {\n pages.push(\"...\")\n }\n }\n \n // 중간 페이지들\n for (let i = start; i <= end; i++) {\n pages.push(i)\n }\n \n // 마지막 페이지\n if (end < totalPages) {\n if (end < totalPages - 1) {\n pages.push(\"...\")\n }\n pages.push(totalPages)\n }\n \n return pages\n }\n\n const getSizeClasses = () => {\n switch (size) {\n case \"sm\":\n return \"h-8 px-2 text-sm\" // 32px 높이, 8px 패딩\n case \"lg\":\n return \"h-12 px-4 text-base\" // 48px 높이, 16px 패딩\n default:\n return \"h-10 px-3 text-sm\" // 40px 높이, 12px 패딩\n }\n }\n\n const getShapeClasses = () => {\n switch (shape) {\n case \"circle\":\n return \"rounded-full aspect-square flex items-center justify-center\"\n default:\n return \"rounded-md\"\n }\n }\n\n const getVariantClasses = (isActive: boolean = false) => {\n switch (variant) {\n case \"outlined\":\n return merge(\n \"border border-border\",\n isActive\n ? \"bg-primary border-primary text-primary-foreground\"\n : \"bg-background text-foreground hover:bg-muted\"\n )\n case \"minimal\":\n return merge(\n \"border-0\",\n isActive\n ? \"bg-primary/10 text-primary\"\n : \"bg-transparent text-foreground hover:bg-muted\"\n )\n default:\n return merge(\n \"border-0\",\n isActive\n ? \"bg-primary text-primary-foreground\"\n : \"bg-background text-foreground hover:bg-muted\"\n )\n }\n }\n\n const handlePageClick = (page: number) => {\n if (page >= 1 && page <= totalPages && page !== currentPage) {\n onPageChange(page)\n }\n }\n\n const visiblePages = getVisiblePages()\n\n return (\n <div\n ref={ref}\n className={merge(\n \"flex items-center justify-center gap-1\",\n className\n )}\n {...props}\n >\n {/* 첫 페이지 버튼 */}\n {showFirstLast && currentPage > 1 && (\n <button\n onClick={() => handlePageClick(1)}\n className={merge(\n \"inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n getSizeClasses(),\n getShapeClasses(),\n getVariantClasses()\n )}\n aria-label=\"첫 페이지로 이동\"\n >\n <svg className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M11 19l-7-7 7-7M19 19l-7-7 7-7\" />\n </svg>\n </button>\n )}\n\n {/* 이전 페이지 버튼 */}\n {showPrevNext && currentPage > 1 && (\n <button\n onClick={() => handlePageClick(currentPage - 1)}\n className={merge(\n \"inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n getSizeClasses(),\n getShapeClasses(),\n getVariantClasses()\n )}\n aria-label=\"이전 페이지로 이동\"\n >\n <svg className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M15 19l-7-7 7-7\" />\n </svg>\n </button>\n )}\n\n {/* 페이지 번호들 */}\n {visiblePages.map((page, index) => (\n <React.Fragment key={index}>\n {page === \"...\" ? (\n <span className={merge(\n \"inline-flex items-center justify-center px-3 py-2 text-sm font-medium text-muted-foreground\",\n getSizeClasses()\n )}>\n ...\n </span>\n ) : (\n <button\n onClick={() => handlePageClick(page as number)}\n className={merge(\n \"inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n getSizeClasses(),\n getShapeClasses(),\n getVariantClasses(page === currentPage)\n )}\n aria-label={`${page}페이지로 이동`}\n aria-current={page === currentPage ? \"page\" : undefined}\n >\n {page}\n </button>\n )}\n </React.Fragment>\n ))}\n\n {/* 다음 페이지 버튼 */}\n {showPrevNext && currentPage < totalPages && (\n <button\n onClick={() => handlePageClick(currentPage + 1)}\n className={merge(\n \"inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n getSizeClasses(),\n getShapeClasses(),\n getVariantClasses()\n )}\n aria-label=\"다음 페이지로 이동\"\n >\n <svg className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M9 5l7 7-7 7\" />\n </svg>\n </button>\n )}\n\n {/* 마지막 페이지 버튼 */}\n {showFirstLast && currentPage < totalPages && (\n <button\n onClick={() => handlePageClick(totalPages)}\n className={merge(\n \"inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n getSizeClasses(),\n getShapeClasses(),\n getVariantClasses()\n )}\n aria-label=\"마지막 페이지로 이동\"\n >\n <svg className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M13 5l7 7-7 7M5 5l7 7-7 7\" />\n </svg>\n </button>\n )}\n </div>\n )\n }\n)\nPagination.displayName = \"Pagination\"\n\n// 편의 컴포넌트들\nexport const PaginationOutlined = React.forwardRef<HTMLDivElement, Omit<PaginationProps, \"variant\">>(\n ({ className, ...props }, ref) => (\n <Pagination ref={ref} variant=\"outlined\" className={className} {...props} />\n )\n)\nPaginationOutlined.displayName = \"PaginationOutlined\"\n\nexport const PaginationMinimal = React.forwardRef<HTMLDivElement, Omit<PaginationProps, \"variant\">>(\n ({ className, ...props }, ref) => (\n <Pagination ref={ref} variant=\"minimal\" className={className} {...props} />\n )\n)\nPaginationMinimal.displayName = \"PaginationMinimal\"\n\n// 복합 컴포넌트들\nexport const PaginationWithInfo = React.forwardRef<HTMLDivElement, PaginationProps & { \n totalItems?: number\n itemsPerPage?: number\n showInfo?: boolean\n}>(\n ({ \n totalItems = 0, \n itemsPerPage = 10, \n showInfo = true, \n className, \n ...props \n }, ref) => {\n const startItem = (props.currentPage - 1) * itemsPerPage + 1\n const endItem = Math.min(props.currentPage * itemsPerPage, totalItems)\n \n return (\n <div className={merge(\"flex flex-col sm:flex-row items-center justify-between gap-4\", className)}>\n {showInfo && (\n <div className=\"text-sm text-foreground\">\n {totalItems > 0 ? (\n <>\n <span className=\"font-medium\">{startItem}</span>\n {\" - \"}\n <span className=\"font-medium\">{endItem}</span>\n {\" of \"}\n <span className=\"font-medium\">{totalItems}</span>\n {\" results\"}\n </>\n ) : (\n \"No results\"\n )}\n </div>\n )}\n <Pagination ref={ref} {...props} />\n </div>\n )\n }\n)\nPaginationWithInfo.displayName = \"PaginationWithInfo\"\n\nexport { Pagination } ","\"use client\"\n\nimport React from \"react\"\nimport { merge } from \"../lib/utils\"\nimport { Icon } from \"./Icon\"\n\n/**\n * PageNavigation 컴포넌트의 props / PageNavigation component props\n * @typedef {Object} PageNavigationProps\n * @property {Object} [prevPage] - 이전 페이지 정보 / Previous page information\n * @property {string} prevPage.title - 이전 페이지 제목 / Previous page title\n * @property {string} prevPage.href - 이전 페이지 링크 / Previous page link\n * @property {Object} [nextPage] - 다음 페이지 정보 / Next page information\n * @property {string} nextPage.title - 다음 페이지 제목 / Next page title\n * @property {string} nextPage.href - 다음 페이지 링크 / Next page link\n * @property {boolean} [showOnMobile=false] - 모바일에서 표시 여부 / Show on mobile\n * @extends {React.HTMLAttributes<HTMLDivElement>}\n */\nexport interface PageNavigationProps extends React.HTMLAttributes<HTMLDivElement> {\n prevPage?: {\n title: string\n href: string\n }\n nextPage?: {\n title: string\n href: string\n }\n showOnMobile?: boolean\n}\n\n/**\n * PageNavigation 컴포넌트 / PageNavigation component\n * \n * 이전/다음 페이지로 이동하는 네비게이션 컴포넌트입니다.\n * 문서 페이지나 가이드 페이지에서 사용하기 적합합니다.\n * \n * Navigation component for moving to previous/next pages.\n * Suitable for documentation or guide pages.\n * \n * @component\n * @example\n * // 기본 사용 / Basic usage\n * <PageNavigation\n * prevPage={{ title: \"이전 페이지\", href: \"/prev\" }}\n * nextPage={{ title: \"다음 페이지\", href: \"/next\" }}\n * />\n * \n * @param {PageNavigationProps} props - PageNavigation 컴포넌트의 props / PageNavigation component props\n * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref\n * @returns {JSX.Element} PageNavigation 컴포넌트 / PageNavigation component\n */\nconst PageNavigation = React.forwardRef<HTMLDivElement, PageNavigationProps>(\n ({ \n className, \n prevPage, \n nextPage, \n showOnMobile = false,\n ...props \n }, ref) => {\n if (!prevPage && !nextPage) {\n return null\n }\n\n return (\n <div\n ref={ref}\n className={merge(\n \"flex items-center justify-between py-4\",\n !showOnMobile && \"hidden md:flex\",\n className\n )}\n {...props}\n >\n {/* 이전 페이지 */}\n <div className=\"flex-1\">\n {prevPage && (\n <a\n href={prevPage.href}\n className=\"group inline-flex items-center text-sm text-muted-foreground hover:text-foreground transition-colors\"\n >\n <Icon \n name=\"chevronLeft\" \n className=\"w-4 h-4 mr-2 transition-transform group-hover:-translate-x-1\" \n />\n <span className=\"hidden sm:inline\">{prevPage.title}</span>\n </a>\n )}\n </div>\n\n {/* 다음 페이지 */}\n <div className=\"flex-1 flex justify-end\">\n {nextPage && (\n <a\n href={nextPage.href}\n className=\"group inline-flex items-center text-sm text-muted-foreground hover:text-foreground transition-colors\"\n >\n <span className=\"hidden sm:inline mr-2\">{nextPage.title}</span>\n <Icon \n name=\"chevronRight\" \n className=\"w-4 h-4 transition-transform group-hover:translate-x-1\" \n />\n </a>\n )}\n </div>\n </div>\n )\n }\n)\nPageNavigation.displayName = \"PageNavigation\"\n\nexport { PageNavigation } ","'use client'\n\nimport React, { useState, useEffect } from 'react'\nimport { merge } from '../lib/utils'\nimport { LoadingSpinner } from './LoadingSpinner'\n\n/**\n * PageTransition 컴포넌트의 props / PageTransition component props\n * @typedef {Object} PageTransitionProps\n * @property {React.ReactNode} children - 페이지 내용 / Page content\n * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class\n * @property {number} [duration=300] - 전환 지속 시간 (ms) / Transition duration (ms)\n * @property {'fade' | 'slide' | 'scale' | 'flip'} [variant='fade'] - 전환 애니메이션 타입 / Transition animation type\n * @property {'default' | 'dots' | 'bars' | 'ring' | 'ripple'} [loadingVariant='ripple'] - 로딩 스피너 타입 / Loading spinner type\n * @property {string} [loadingText='페이지 로딩 중...'] - 로딩 텍스트 / Loading text\n * @property {boolean} [showLoading=true] - 로딩 표시 여부 / Show loading\n * @property {() => void} [onTransitionStart] - 전환 시작 콜백 / Transition start callback\n * @property {() => void} [onTransitionEnd] - 전환 종료 콜백 / Transition end callback\n */\nexport interface PageTransitionProps {\n children: React.ReactNode\n className?: string\n duration?: number\n variant?: 'fade' | 'slide' | 'scale' | 'flip'\n loadingVariant?: 'default' | 'dots' | 'bars' | 'ring' | 'ripple'\n loadingText?: string\n showLoading?: boolean\n onTransitionStart?: () => void\n onTransitionEnd?: () => void\n}\n\n/**\n * PageTransition 컴포넌트 / PageTransition component\n * \n * 페이지 전환 애니메이션을 제공하는 컴포넌트입니다.\n * 다양한 전환 효과와 로딩 스피너를 지원합니다.\n * \n * Component that provides page transition animations.\n * Supports various transition effects and loading spinners.\n * \n * @component\n * @example\n * // 기본 사용 / Basic usage\n * <PageTransition>\n * <div>페이지 내용</div>\n * </PageTransition>\n * \n * @example\n * // Slide 전환 / Slide transition\n * <PageTransition\n * variant=\"slide\"\n * duration={500}\n * loadingVariant=\"dots\"\n * >\n * <div>페이지 내용</div>\n * </PageTransition>\n * \n * @param {PageTransitionProps} props - PageTransition 컴포넌트의 props / PageTransition component props\n * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref\n * @returns {JSX.Element} PageTransition 컴포넌트 / PageTransition component\n */\nexport const PageTransition = React.forwardRef<HTMLDivElement, PageTransitionProps>(({\n children,\n className,\n duration = 300,\n variant = 'fade',\n loadingVariant = 'ripple',\n loadingText = '페이지 로딩 중...',\n showLoading = true,\n onTransitionStart,\n onTransitionEnd\n}, ref) => {\n const [isLoading, setIsLoading] = useState(true)\n const [isVisible, setIsVisible] = useState(false)\n\n useEffect(() => {\n const timer = setTimeout(() => {\n setIsLoading(false)\n setIsVisible(true)\n onTransitionEnd?.()\n }, duration)\n\n onTransitionStart?.()\n\n return () => clearTimeout(timer)\n }, [duration, onTransitionStart, onTransitionEnd])\n\n const transitionClasses = {\n fade: merge(\n 'transition-opacity duration-300 ease-in-out',\n isVisible ? 'opacity-100' : 'opacity-0'\n ),\n slide: merge(\n 'transition-transform duration-300 ease-in-out',\n isVisible ? 'translate-x-0' : 'translate-x-full'\n ),\n scale: merge(\n 'transition-all duration-300 ease-in-out',\n isVisible ? 'scale-100 opacity-100' : 'scale-95 opacity-0'\n ),\n flip: merge(\n 'transition-all duration-500 ease-in-out',\n isVisible ? 'rotate-y-0 opacity-100' : 'rotate-y-90 opacity-0'\n )\n }\n\n if (isLoading && showLoading) {\n return (\n <div className={merge('flex flex-col items-center justify-center min-h-screen bg-gradient-to-br from-indigo-50 to-purple-50 dark:from-slate-900 dark:to-slate-800', className)}>\n <LoadingSpinner\n size=\"lg\"\n variant={loadingVariant}\n text={loadingText}\n />\n </div>\n )\n }\n\n return (\n <div\n ref={ref}\n className={merge(\n 'w-full',\n transitionClasses[variant],\n className\n )}\n style={{ transitionDuration: `${duration}ms` }}\n >\n {children}\n </div>\n )\n})\n\nPageTransition.displayName = 'PageTransition'\n\n// Convenience components for different transition types\nexport const FadeTransition = React.forwardRef<HTMLDivElement, Omit<PageTransitionProps, 'variant'>>((props, ref) => (\n <PageTransition ref={ref} variant=\"fade\" {...props} />\n))\n\nexport const SlideTransition = React.forwardRef<HTMLDivElement, Omit<PageTransitionProps, 'variant'>>((props, ref) => (\n <PageTransition ref={ref} variant=\"slide\" {...props} />\n))\n\nexport const ScaleTransition = React.forwardRef<HTMLDivElement, Omit<PageTransitionProps, 'variant'>>((props, ref) => (\n <PageTransition ref={ref} variant=\"scale\" {...props} />\n))\n\nexport const FlipTransition = React.forwardRef<HTMLDivElement, Omit<PageTransitionProps, 'variant'>>((props, ref) => (\n <PageTransition ref={ref} variant=\"flip\" {...props} />\n))\n\n// Add displayName for convenience components\nFadeTransition.displayName = 'FadeTransition'\nSlideTransition.displayName = 'SlideTransition'\nScaleTransition.displayName = 'ScaleTransition'\nFlipTransition.displayName = 'FlipTransition' "]}
1
+ {"version":3,"sources":["../src/components/PageTransition.tsx"],"names":["PageTransition","React","children","dotProp","style","duration","variant","loadingVariant","loadingText","showLoading","onTransitionStart","onTransitionEnd","ref","isLoading","setIsLoading","useState","isVisible","setIsVisible","useEffect","timer","transitionClasses","jsx","resolveDot","LoadingSpinner","mergeStyles","FadeTransition","props","SlideTransition","ScaleTransition","FlipTransition"],"mappings":"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","file":"navigation.mjs","sourcesContent":["'use client'\n\nimport React, { useState, useEffect } from 'react'\nimport { LoadingSpinner } from './LoadingSpinner'\nimport { mergeStyles, resolveDot } from '../hooks/useDotMap'\n\n/**\n * PageTransition 컴포넌트의 props / PageTransition component props\n * @typedef {Object} PageTransitionProps\n * @property {React.ReactNode} children - 페이지 내용 / Page content\n * @property {number} [duration=300] - 전환 지속 시간 (ms) / Transition duration (ms)\n * @property {'fade' | 'slide' | 'scale' | 'flip'} [variant='fade'] - 전환 애니메이션 타입 / Transition animation type\n * @property {'default' | 'dots' | 'bars' | 'ring' | 'ripple'} [loadingVariant='ripple'] - 로딩 스피너 타입 / Loading spinner type\n * @property {string} [loadingText='페이지 로딩 중...'] - 로딩 텍스트 / Loading text\n * @property {boolean} [showLoading=true] - 로딩 표시 여부 / Show loading\n * @property {() => void} [onTransitionStart] - 전환 시작 콜백 / Transition start callback\n * @property {() => void} [onTransitionEnd] - 전환 종료 콜백 / Transition end callback\n */\nexport interface PageTransitionProps {\n children: React.ReactNode\n dot?: string\n style?: React.CSSProperties\n duration?: number\n variant?: 'fade' | 'slide' | 'scale' | 'flip'\n loadingVariant?: 'default' | 'dots' | 'bars' | 'ring' | 'ripple'\n loadingText?: string\n showLoading?: boolean\n onTransitionStart?: () => void\n onTransitionEnd?: () => void\n}\n\n/**\n * PageTransition 컴포넌트 / PageTransition component\n *\n * 페이지 전환 애니메이션을 제공하는 컴포넌트입니다.\n * 다양한 전환 효과와 로딩 스피너를 지원합니다.\n *\n * Component that provides page transition animations.\n * Supports various transition effects and loading spinners.\n *\n * @component\n * @example\n * // 기본 사용 / Basic usage\n * <PageTransition>\n * <div>페이지 내용</div>\n * </PageTransition>\n *\n * @example\n * // Slide 전환 / Slide transition\n * <PageTransition\n * variant=\"slide\"\n * duration={500}\n * loadingVariant=\"dots\"\n * >\n * <div>페이지 내용</div>\n * </PageTransition>\n *\n * @param {PageTransitionProps} props - PageTransition 컴포넌트의 props / PageTransition component props\n * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref\n * @returns {JSX.Element} PageTransition 컴포넌트 / PageTransition component\n */\nexport const PageTransition = React.forwardRef<HTMLDivElement, PageTransitionProps>(({\n children,\n dot: dotProp,\n style,\n duration = 300,\n variant = 'fade',\n loadingVariant = 'ripple',\n loadingText = '페이지 로딩 중...',\n showLoading = true,\n onTransitionStart,\n onTransitionEnd\n}, ref) => {\n const [isLoading, setIsLoading] = useState(true)\n const [isVisible, setIsVisible] = useState(false)\n\n useEffect(() => {\n const timer = setTimeout(() => {\n setIsLoading(false)\n setIsVisible(true)\n onTransitionEnd?.()\n }, duration)\n\n onTransitionStart?.()\n\n return () => clearTimeout(timer)\n }, [duration, onTransitionStart, onTransitionEnd])\n\n const transitionClasses = {\n fade: isVisible\n ? 'transition-opacity duration-300 ease-in-out opacity-100'\n : 'transition-opacity duration-300 ease-in-out opacity-0',\n slide: isVisible\n ? 'transition-transform duration-300 ease-in-out translate-x-0'\n : 'transition-transform duration-300 ease-in-out translate-x-full',\n scale: isVisible\n ? 'transition-all duration-300 ease-in-out scale-100 opacity-100'\n : 'transition-all duration-300 ease-in-out scale-95 opacity-0',\n flip: isVisible\n ? 'transition-all duration-500 ease-in-out rotate-y-0 opacity-100'\n : 'transition-all duration-500 ease-in-out rotate-y-90 opacity-0',\n }\n\n if (isLoading && showLoading) {\n return (\n <div style={resolveDot('flex flex-col items-center justify-center min-h-screen bg-gradient-to-br from-indigo-50 to-purple-50 dark:from-slate-900 dark:to-slate-800')}>\n <LoadingSpinner\n size=\"lg\"\n variant={loadingVariant}\n text={loadingText}\n />\n </div>\n )\n }\n\n return (\n <div\n ref={ref}\n style={mergeStyles(\n resolveDot('w-full'),\n resolveDot(transitionClasses[variant]),\n { transitionDuration: `${duration}ms` },\n resolveDot(dotProp),\n style\n )}\n >\n {children}\n </div>\n )\n})\n\nPageTransition.displayName = 'PageTransition'\n\n// Convenience components for different transition types\nexport const FadeTransition = React.forwardRef<HTMLDivElement, Omit<PageTransitionProps, 'variant'>>((props, ref) => (\n <PageTransition ref={ref} variant=\"fade\" {...props} />\n))\n\nexport const SlideTransition = React.forwardRef<HTMLDivElement, Omit<PageTransitionProps, 'variant'>>((props, ref) => (\n <PageTransition ref={ref} variant=\"slide\" {...props} />\n))\n\nexport const ScaleTransition = React.forwardRef<HTMLDivElement, Omit<PageTransitionProps, 'variant'>>((props, ref) => (\n <PageTransition ref={ref} variant=\"scale\" {...props} />\n))\n\nexport const FlipTransition = React.forwardRef<HTMLDivElement, Omit<PageTransitionProps, 'variant'>>((props, ref) => (\n <PageTransition ref={ref} variant=\"flip\" {...props} />\n))\n\n// Add displayName for convenience components\nFadeTransition.displayName = 'FadeTransition'\nSlideTransition.displayName = 'SlideTransition'\nScaleTransition.displayName = 'ScaleTransition'\nFlipTransition.displayName = 'FlipTransition'\n"]}