@hua-labs/ui 1.0.0 → 1.1.0-alpha.0.2

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 (348) hide show
  1. package/README.md +897 -210
  2. package/dist/ComponentLayout-BxCenSAm.d.mts +73 -0
  3. package/dist/advanced/dashboard.d.ts +7 -0
  4. package/dist/advanced/dashboard.d.ts.map +1 -0
  5. package/dist/advanced/motion.d.ts +2 -0
  6. package/dist/advanced/motion.d.ts.map +1 -0
  7. package/dist/advanced-dashboard.d.mts +4 -0
  8. package/dist/advanced-dashboard.js +2 -0
  9. package/dist/advanced-dashboard.js.map +1 -0
  10. package/dist/advanced-dashboard.mjs +2 -0
  11. package/dist/advanced-dashboard.mjs.map +1 -0
  12. package/dist/advanced-motion.d.mts +93 -0
  13. package/dist/advanced-motion.js +2 -0
  14. package/dist/advanced-motion.js.map +1 -0
  15. package/dist/advanced-motion.mjs +2 -0
  16. package/dist/advanced-motion.mjs.map +1 -0
  17. package/dist/advanced.d.mts +734 -0
  18. package/dist/advanced.d.ts +17 -0
  19. package/dist/advanced.d.ts.map +1 -0
  20. package/dist/advanced.js +2 -0
  21. package/dist/advanced.js.map +1 -0
  22. package/dist/advanced.mjs +2 -0
  23. package/dist/advanced.mjs.map +1 -0
  24. package/dist/chunk-627HOIRV.mjs +2 -0
  25. package/dist/chunk-627HOIRV.mjs.map +1 -0
  26. package/dist/chunk-ACEKLG37.mjs +2 -0
  27. package/dist/chunk-ACEKLG37.mjs.map +1 -0
  28. package/dist/chunk-E5PN4LUS.mjs +2 -0
  29. package/dist/chunk-E5PN4LUS.mjs.map +1 -0
  30. package/dist/chunk-KHEJZ3U4.mjs +2 -0
  31. package/dist/chunk-KHEJZ3U4.mjs.map +1 -0
  32. package/dist/chunk-MXGXBG63.mjs +2 -0
  33. package/dist/chunk-MXGXBG63.mjs.map +1 -0
  34. package/dist/chunk-R5KCFRYV.mjs +2 -0
  35. package/dist/chunk-R5KCFRYV.mjs.map +1 -0
  36. package/dist/chunk-UGSYQDR4.mjs +2 -0
  37. package/dist/chunk-UGSYQDR4.mjs.map +1 -0
  38. package/dist/chunk-UUHAXGMO.mjs +2 -0
  39. package/dist/chunk-UUHAXGMO.mjs.map +1 -0
  40. package/dist/chunk-VU264VFN.mjs +2 -0
  41. package/dist/chunk-VU264VFN.mjs.map +1 -0
  42. package/dist/chunk-ZFS4B5QT.mjs +2 -0
  43. package/dist/chunk-ZFS4B5QT.mjs.map +1 -0
  44. package/dist/components/Accordion.d.ts +109 -1
  45. package/dist/components/Accordion.d.ts.map +1 -1
  46. package/dist/components/Action.d.ts +68 -0
  47. package/dist/components/Action.d.ts.map +1 -0
  48. package/dist/components/ActionToolbar.d.ts +65 -0
  49. package/dist/components/ActionToolbar.d.ts.map +1 -0
  50. package/dist/components/Alert.d.ts +49 -0
  51. package/dist/components/Alert.d.ts.map +1 -1
  52. package/dist/components/Autocomplete.d.ts +88 -0
  53. package/dist/components/Autocomplete.d.ts.map +1 -0
  54. package/dist/components/Avatar.d.ts +71 -1
  55. package/dist/components/Avatar.d.ts.map +1 -1
  56. package/dist/components/Badge.d.ts +32 -2
  57. package/dist/components/Badge.d.ts.map +1 -1
  58. package/dist/components/Bookmark.d.ts +49 -0
  59. package/dist/components/Bookmark.d.ts.map +1 -0
  60. package/dist/components/BottomSheet.d.ts +91 -1
  61. package/dist/components/BottomSheet.d.ts.map +1 -1
  62. package/dist/components/Breadcrumb.d.ts +73 -14
  63. package/dist/components/Breadcrumb.d.ts.map +1 -1
  64. package/dist/components/Button.d.ts +82 -7
  65. package/dist/components/Button.d.ts.map +1 -1
  66. package/dist/components/Card.d.ts +122 -5
  67. package/dist/components/Card.d.ts.map +1 -1
  68. package/dist/components/ChatMessage.d.ts +67 -1
  69. package/dist/components/ChatMessage.d.ts.map +1 -1
  70. package/dist/components/Checkbox.d.ts +48 -2
  71. package/dist/components/Checkbox.d.ts.map +1 -1
  72. package/dist/components/Command.d.ts +82 -1
  73. package/dist/components/Command.d.ts.map +1 -1
  74. package/dist/components/ComponentLayout.d.ts +72 -0
  75. package/dist/components/ComponentLayout.d.ts.map +1 -0
  76. package/dist/components/ConfirmModal.d.ts +66 -1
  77. package/dist/components/ConfirmModal.d.ts.map +1 -1
  78. package/dist/components/Container.d.ts +39 -0
  79. package/dist/components/Container.d.ts.map +1 -1
  80. package/dist/components/ContextMenu.d.ts +51 -1
  81. package/dist/components/ContextMenu.d.ts.map +1 -1
  82. package/dist/components/DatePicker.d.ts +62 -0
  83. package/dist/components/DatePicker.d.ts.map +1 -0
  84. package/dist/components/Divider.d.ts +13 -3
  85. package/dist/components/Divider.d.ts.map +1 -1
  86. package/dist/components/Drawer.d.ts +103 -1
  87. package/dist/components/Drawer.d.ts.map +1 -1
  88. package/dist/components/Dropdown.d.ts +51 -1
  89. package/dist/components/Dropdown.d.ts.map +1 -1
  90. package/dist/components/EmotionAnalysis.d.ts +59 -1
  91. package/dist/components/EmotionAnalysis.d.ts.map +1 -1
  92. package/dist/components/EmotionButton.d.ts +35 -1
  93. package/dist/components/EmotionButton.d.ts.map +1 -1
  94. package/dist/components/EmotionMeter.d.ts +38 -2
  95. package/dist/components/EmotionMeter.d.ts.map +1 -1
  96. package/dist/components/EmotionSelector.d.ts +51 -1
  97. package/dist/components/EmotionSelector.d.ts.map +1 -1
  98. package/dist/components/FeatureCard.d.ts +61 -0
  99. package/dist/components/FeatureCard.d.ts.map +1 -0
  100. package/dist/components/Form.d.ts +114 -0
  101. package/dist/components/Form.d.ts.map +1 -0
  102. package/dist/components/Grid.d.ts +42 -1
  103. package/dist/components/Grid.d.ts.map +1 -1
  104. package/dist/components/HeroSection.d.ts +77 -0
  105. package/dist/components/HeroSection.d.ts.map +1 -0
  106. package/dist/components/Icon/Icon.d.ts +159 -0
  107. package/dist/components/Icon/Icon.d.ts.map +1 -0
  108. package/dist/components/Icon/IconProvider.d.ts +94 -0
  109. package/dist/components/Icon/IconProvider.d.ts.map +1 -0
  110. package/dist/components/Icon/icon-store.d.ts +21 -0
  111. package/dist/components/Icon/icon-store.d.ts.map +1 -0
  112. package/dist/components/Icon/index.d.ts +10 -0
  113. package/dist/components/Icon/index.d.ts.map +1 -0
  114. package/dist/components/InfoCard.d.ts +48 -0
  115. package/dist/components/InfoCard.d.ts.map +1 -0
  116. package/dist/components/Input.d.ts +40 -8
  117. package/dist/components/Input.d.ts.map +1 -1
  118. package/dist/components/Label.d.ts +50 -0
  119. package/dist/components/Label.d.ts.map +1 -0
  120. package/dist/components/LanguageToggle.d.ts +41 -1
  121. package/dist/components/LanguageToggle.d.ts.map +1 -1
  122. package/dist/components/Link.d.ts +52 -0
  123. package/dist/components/Link.d.ts.map +1 -0
  124. package/dist/components/LoadingSpinner.d.ts +44 -5
  125. package/dist/components/LoadingSpinner.d.ts.map +1 -1
  126. package/dist/components/Menu.d.ts +92 -1
  127. package/dist/components/Menu.d.ts.map +1 -1
  128. package/dist/components/Modal.d.ts +67 -5
  129. package/dist/components/Modal.d.ts.map +1 -1
  130. package/dist/components/Navigation.d.ts +72 -0
  131. package/dist/components/Navigation.d.ts.map +1 -0
  132. package/dist/components/PageNavigation.d.ts +48 -0
  133. package/dist/components/PageNavigation.d.ts.map +1 -0
  134. package/dist/components/PageTransition.d.ts +44 -1
  135. package/dist/components/PageTransition.d.ts.map +1 -1
  136. package/dist/components/Pagination.d.ts +52 -1
  137. package/dist/components/Pagination.d.ts.map +1 -1
  138. package/dist/components/Panel.d.ts +99 -0
  139. package/dist/components/Panel.d.ts.map +1 -0
  140. package/dist/components/Popover.d.ts +46 -1
  141. package/dist/components/Popover.d.ts.map +1 -1
  142. package/dist/components/Progress.d.ts +52 -3
  143. package/dist/components/Progress.d.ts.map +1 -1
  144. package/dist/components/Radio.d.ts +44 -2
  145. package/dist/components/Radio.d.ts.map +1 -1
  146. package/dist/components/ScrollArea.d.ts +53 -1
  147. package/dist/components/ScrollArea.d.ts.map +1 -1
  148. package/dist/components/ScrollIndicator.d.ts +43 -1
  149. package/dist/components/ScrollIndicator.d.ts.map +1 -1
  150. package/dist/components/ScrollProgress.d.ts +37 -0
  151. package/dist/components/ScrollProgress.d.ts.map +1 -1
  152. package/dist/components/ScrollToTop.d.ts +48 -11
  153. package/dist/components/ScrollToTop.d.ts.map +1 -1
  154. package/dist/components/SectionHeader.d.ts +42 -0
  155. package/dist/components/SectionHeader.d.ts.map +1 -0
  156. package/dist/components/Select.d.ts +59 -2
  157. package/dist/components/Select.d.ts.map +1 -1
  158. package/dist/components/Skeleton.d.ts +44 -1
  159. package/dist/components/Skeleton.d.ts.map +1 -1
  160. package/dist/components/Slider.d.ts +75 -0
  161. package/dist/components/Slider.d.ts.map +1 -0
  162. package/dist/components/Stack.d.ts +42 -1
  163. package/dist/components/Stack.d.ts.map +1 -1
  164. package/dist/components/StatsPanel.d.ts +72 -0
  165. package/dist/components/StatsPanel.d.ts.map +1 -0
  166. package/dist/components/Switch.d.ts +48 -2
  167. package/dist/components/Switch.d.ts.map +1 -1
  168. package/dist/components/Table.d.ts +206 -0
  169. package/dist/components/Table.d.ts.map +1 -0
  170. package/dist/components/Tabs.d.ts +123 -10
  171. package/dist/components/Tabs.d.ts.map +1 -1
  172. package/dist/components/Textarea.d.ts +48 -2
  173. package/dist/components/Textarea.d.ts.map +1 -1
  174. package/dist/components/ThemeProvider.d.ts +67 -2
  175. package/dist/components/ThemeProvider.d.ts.map +1 -1
  176. package/dist/components/ThemeToggle.d.ts +44 -0
  177. package/dist/components/ThemeToggle.d.ts.map +1 -1
  178. package/dist/components/Toast.d.ts +75 -1
  179. package/dist/components/Toast.d.ts.map +1 -1
  180. package/dist/components/Toggle.d.ts +62 -0
  181. package/dist/components/Toggle.d.ts.map +1 -0
  182. package/dist/components/Tooltip.d.ts +48 -1
  183. package/dist/components/Tooltip.d.ts.map +1 -1
  184. package/dist/components/Upload.d.ts +87 -0
  185. package/dist/components/Upload.d.ts.map +1 -0
  186. package/dist/components/advanced/AdvancedPageTransition.d.ts +25 -0
  187. package/dist/components/advanced/AdvancedPageTransition.d.ts.map +1 -0
  188. package/dist/components/advanced/index.d.ts +4 -0
  189. package/dist/components/advanced/index.d.ts.map +1 -0
  190. package/dist/components/advanced/usePageTransition.d.ts +33 -0
  191. package/dist/components/advanced/usePageTransition.d.ts.map +1 -0
  192. package/dist/components/advanced/usePageTransitionManager.d.ts +44 -0
  193. package/dist/components/advanced/usePageTransitionManager.d.ts.map +1 -0
  194. package/dist/components/dashboard/ActivityFeed.d.ts +87 -0
  195. package/dist/components/dashboard/ActivityFeed.d.ts.map +1 -0
  196. package/dist/components/dashboard/BarChart.d.ts +82 -0
  197. package/dist/components/dashboard/BarChart.d.ts.map +1 -0
  198. package/dist/components/dashboard/DashboardGrid.d.ts +44 -0
  199. package/dist/components/dashboard/DashboardGrid.d.ts.map +1 -0
  200. package/dist/components/dashboard/DashboardSidebar.d.ts +105 -0
  201. package/dist/components/dashboard/DashboardSidebar.d.ts.map +1 -0
  202. package/dist/components/dashboard/DashboardToolbar.d.ts +120 -0
  203. package/dist/components/dashboard/DashboardToolbar.d.ts.map +1 -0
  204. package/dist/components/dashboard/EmptyState.d.ts +61 -0
  205. package/dist/components/dashboard/EmptyState.d.ts.map +1 -0
  206. package/dist/components/dashboard/MembershipBadge.d.ts +45 -0
  207. package/dist/components/dashboard/MembershipBadge.d.ts.map +1 -0
  208. package/dist/components/dashboard/MerchantList.d.ts +98 -0
  209. package/dist/components/dashboard/MerchantList.d.ts.map +1 -0
  210. package/dist/components/dashboard/MetricCard.d.ts +75 -0
  211. package/dist/components/dashboard/MetricCard.d.ts.map +1 -0
  212. package/dist/components/dashboard/MiniBarChart.d.ts +60 -0
  213. package/dist/components/dashboard/MiniBarChart.d.ts.map +1 -0
  214. package/dist/components/dashboard/NotificationCard.d.ts +89 -0
  215. package/dist/components/dashboard/NotificationCard.d.ts.map +1 -0
  216. package/dist/components/dashboard/ProfileCard.d.ts +82 -0
  217. package/dist/components/dashboard/ProfileCard.d.ts.map +1 -0
  218. package/dist/components/dashboard/ProgressCard.d.ts +71 -0
  219. package/dist/components/dashboard/ProgressCard.d.ts.map +1 -0
  220. package/dist/components/dashboard/QuickActionCard.d.ts +63 -0
  221. package/dist/components/dashboard/QuickActionCard.d.ts.map +1 -0
  222. package/dist/components/dashboard/RoutingBreakdownCard.d.ts +88 -0
  223. package/dist/components/dashboard/RoutingBreakdownCard.d.ts.map +1 -0
  224. package/dist/components/dashboard/SettlementTimeline.d.ts +90 -0
  225. package/dist/components/dashboard/SettlementTimeline.d.ts.map +1 -0
  226. package/dist/components/dashboard/StatCard.d.ts +70 -0
  227. package/dist/components/dashboard/StatCard.d.ts.map +1 -0
  228. package/dist/components/dashboard/SummaryCard.d.ts +73 -0
  229. package/dist/components/dashboard/SummaryCard.d.ts.map +1 -0
  230. package/dist/components/dashboard/TransactionDetailDrawer.d.ts +183 -0
  231. package/dist/components/dashboard/TransactionDetailDrawer.d.ts.map +1 -0
  232. package/dist/components/dashboard/TransactionsTable.d.ts +137 -0
  233. package/dist/components/dashboard/TransactionsTable.d.ts.map +1 -0
  234. package/dist/components/dashboard/TrendChart.d.ts +75 -0
  235. package/dist/components/dashboard/TrendChart.d.ts.map +1 -0
  236. package/dist/components/dashboard/index.d.ts +41 -0
  237. package/dist/components/dashboard/index.d.ts.map +1 -0
  238. package/dist/components/scrollbar/scrollbar.d.ts +12 -0
  239. package/dist/components/scrollbar/scrollbar.d.ts.map +1 -0
  240. package/dist/dashboard-QMssHf5j.d.mts +1801 -0
  241. package/dist/feedback.d.mts +103 -0
  242. package/dist/feedback.d.ts +21 -0
  243. package/dist/feedback.d.ts.map +1 -0
  244. package/dist/feedback.js +2 -0
  245. package/dist/feedback.js.map +1 -0
  246. package/dist/feedback.mjs +2 -0
  247. package/dist/feedback.mjs.map +1 -0
  248. package/dist/form.d.mts +803 -0
  249. package/dist/form.d.ts +42 -0
  250. package/dist/form.d.ts.map +1 -0
  251. package/dist/form.js +2 -0
  252. package/dist/form.js.map +1 -0
  253. package/dist/form.mjs +2 -0
  254. package/dist/form.mjs.map +1 -0
  255. package/dist/hooks/useScrollToggle.d.ts +12 -0
  256. package/dist/hooks/useScrollToggle.d.ts.map +1 -0
  257. package/dist/icons-DoSGIez_.d.mts +135 -0
  258. package/dist/index.d.mts +3770 -0
  259. package/dist/index.d.ts +76 -38
  260. package/dist/index.d.ts.map +1 -1
  261. package/dist/index.js +37 -49
  262. package/dist/index.js.map +1 -0
  263. package/dist/index.mjs +37 -0
  264. package/dist/index.mjs.map +1 -0
  265. package/dist/lib/icon-aliases.d.ts +24 -0
  266. package/dist/lib/icon-aliases.d.ts.map +1 -0
  267. package/dist/lib/icon-names.d.ts +47 -0
  268. package/dist/lib/icon-names.d.ts.map +1 -0
  269. package/dist/lib/icon-providers.d.ts +559 -0
  270. package/dist/lib/icon-providers.d.ts.map +1 -0
  271. package/dist/lib/icons.d.ts +113 -24
  272. package/dist/lib/icons.d.ts.map +1 -1
  273. package/dist/lib/phosphor-icons.d.ts +6 -0
  274. package/dist/lib/phosphor-icons.d.ts.map +1 -0
  275. package/dist/lib/styles/colors.d.ts +131 -0
  276. package/dist/lib/styles/colors.d.ts.map +1 -0
  277. package/dist/lib/styles/index.d.ts +8 -0
  278. package/dist/lib/styles/index.d.ts.map +1 -0
  279. package/dist/lib/styles/utils.d.ts +87 -0
  280. package/dist/lib/styles/utils.d.ts.map +1 -0
  281. package/dist/lib/styles/variants.d.ts +79 -0
  282. package/dist/lib/styles/variants.d.ts.map +1 -0
  283. package/dist/lib/types/common.d.ts +80 -0
  284. package/dist/lib/types/common.d.ts.map +1 -0
  285. package/dist/lib/types/index.d.ts +6 -0
  286. package/dist/lib/types/index.d.ts.map +1 -0
  287. package/dist/lib/utils.d.ts +73 -1
  288. package/dist/lib/utils.d.ts.map +1 -1
  289. package/dist/navigation.d.mts +105 -0
  290. package/dist/navigation.d.ts +22 -0
  291. package/dist/navigation.d.ts.map +1 -0
  292. package/dist/navigation.js +2 -0
  293. package/dist/navigation.js.map +1 -0
  294. package/dist/navigation.mjs +2 -0
  295. package/dist/navigation.mjs.map +1 -0
  296. package/package.json +92 -25
  297. package/src/styles/toast.css +23 -0
  298. package/dist/components/Accordion.js +0 -84
  299. package/dist/components/Alert.js +0 -61
  300. package/dist/components/Avatar.js +0 -18
  301. package/dist/components/Badge.js +0 -15
  302. package/dist/components/BottomSheet.js +0 -96
  303. package/dist/components/Breadcrumb.js +0 -47
  304. package/dist/components/Button.js +0 -23
  305. package/dist/components/Card.js +0 -18
  306. package/dist/components/ChatMessage.js +0 -59
  307. package/dist/components/Checkbox.js +0 -30
  308. package/dist/components/Command.js +0 -119
  309. package/dist/components/ConfirmModal.js +0 -53
  310. package/dist/components/Container.js +0 -23
  311. package/dist/components/ContextMenu.js +0 -110
  312. package/dist/components/Divider.js +0 -39
  313. package/dist/components/Drawer.js +0 -79
  314. package/dist/components/Dropdown.js +0 -174
  315. package/dist/components/EmotionAnalysis.js +0 -40
  316. package/dist/components/EmotionButton.js +0 -16
  317. package/dist/components/EmotionMeter.js +0 -21
  318. package/dist/components/EmotionSelector.js +0 -46
  319. package/dist/components/Grid.js +0 -44
  320. package/dist/components/Icon.d.ts +0 -26
  321. package/dist/components/Icon.d.ts.map +0 -1
  322. package/dist/components/Icon.js +0 -48
  323. package/dist/components/Input.js +0 -25
  324. package/dist/components/LanguageToggle.js +0 -61
  325. package/dist/components/LoadingSpinner.js +0 -37
  326. package/dist/components/Menu.js +0 -122
  327. package/dist/components/Modal.js +0 -62
  328. package/dist/components/PageTransition.js +0 -39
  329. package/dist/components/Pagination.js +0 -87
  330. package/dist/components/Popover.js +0 -159
  331. package/dist/components/Progress.js +0 -51
  332. package/dist/components/Radio.js +0 -29
  333. package/dist/components/ScrollArea.js +0 -42
  334. package/dist/components/ScrollIndicator.js +0 -60
  335. package/dist/components/ScrollProgress.js +0 -39
  336. package/dist/components/ScrollToTop.js +0 -46
  337. package/dist/components/Select.js +0 -29
  338. package/dist/components/Skeleton.js +0 -71
  339. package/dist/components/Stack.js +0 -34
  340. package/dist/components/Switch.js +0 -29
  341. package/dist/components/Tabs.js +0 -117
  342. package/dist/components/Textarea.js +0 -31
  343. package/dist/components/ThemeProvider.js +0 -76
  344. package/dist/components/ThemeToggle.js +0 -49
  345. package/dist/components/Toast.js +0 -138
  346. package/dist/components/Tooltip.js +0 -102
  347. package/dist/lib/icons.js +0 -321
  348. package/dist/lib/utils.js +0 -5
@@ -0,0 +1,3770 @@
1
+ import React from 'react';
2
+ export { Autocomplete, AutocompleteOption, AutocompleteProps, Checkbox, DatePicker, DatePickerProps, Form, FormField, FormGroup, Form as Frm, Input as Inp, Input, Label, Radio, Select, SelectOption, Slider, Switch, Textarea, Upload, UploadProps, UploadedFile } from './form.mjs';
3
+ import * as react_jsx_runtime from 'react/jsx-runtime';
4
+ import { I as IconName, e as emotionIcons, s as statusIcons } from './icons-DoSGIez_.mjs';
5
+ export { i as iconCategories } from './icons-DoSGIez_.mjs';
6
+ export { C as ComponentLayout } from './ComponentLayout-BxCenSAm.mjs';
7
+ export { PageNavigation, PageTransition } from './navigation.mjs';
8
+ export { Toast, ToastProvider, useToast } from './feedback.mjs';
9
+ import { ClassValue } from 'clsx';
10
+ import 'lucide-react';
11
+
12
+ /**
13
+ * 버튼 스타일 변형 / Button style variant
14
+ * @typedef {"default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | "gradient" | "neon" | "glass"} Variant
15
+ */
16
+ type Variant = "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | "gradient" | "neon" | "glass";
17
+ /**
18
+ * 버튼 크기 / Button size
19
+ * @typedef {"sm" | "md" | "lg" | "xl" | "icon"} Size
20
+ */
21
+ type Size = "sm" | "md" | "lg" | "xl" | "icon";
22
+ /**
23
+ * 버튼 모서리 둥글기 / Button border radius
24
+ * @typedef {"sm" | "md" | "lg" | "full"} Rounded
25
+ */
26
+ type Rounded = "sm" | "md" | "lg" | "full";
27
+ /**
28
+ * 버튼 그림자 / Button shadow
29
+ * @typedef {"none" | "sm" | "md" | "lg" | "xl"} Shadow
30
+ */
31
+ type Shadow = "none" | "sm" | "md" | "lg" | "xl";
32
+ /**
33
+ * 버튼 호버 효과 / Button hover effect
34
+ * @typedef {"scale" | "glow" | "slide" | "none"} Hover
35
+ */
36
+ type Hover = "scale" | "glow" | "slide" | "none";
37
+ /**
38
+ * 그라디언트 색상 이름 / Gradient color name
39
+ * @typedef {"blue" | "purple" | "green" | "orange" | "pink" | "custom"} GradientName
40
+ */
41
+ type GradientName = "blue" | "purple" | "green" | "orange" | "pink" | "custom";
42
+ /**
43
+ * Button 컴포넌트의 공통 props / Common props for Button component
44
+ * @typedef {Object} CommonProps
45
+ * @property {Variant} [variant="default"] - 버튼 스타일 변형 / Button style variant
46
+ * @property {Size} [size="md"] - 버튼 크기 / Button size
47
+ * @property {boolean} [loading=false] - 로딩 상태 (스피너 표시) / Loading state (shows spinner)
48
+ * @property {React.ReactNode} [icon] - 아이콘 요소 / Icon element
49
+ * @property {"left" | "right"} [iconPosition="left"] - 아이콘 위치 / Icon position
50
+ * @property {GradientName} [gradient="blue"] - 그라디언트 색상 (variant="gradient"일 때) / Gradient color (when variant="gradient")
51
+ * @property {string} [customGradient] - 커스텀 그라디언트 클래스 (variant="gradient"일 때) / Custom gradient class (when variant="gradient")
52
+ * @property {Rounded} [rounded="md"] - 모서리 둥글기 / Border radius
53
+ * @property {Shadow} [shadow="md"] - 그림자 크기 / Shadow size
54
+ * @property {Hover} [hover="scale"] - 호버 효과 / Hover effect
55
+ * @property {boolean} [fullWidth=false] - 전체 너비 사용 / Use full width
56
+ * @property {boolean} [iconOnly=false] - 아이콘만 표시 (aria-label 필수) / Icon only (aria-label required)
57
+ * @property {string} [aria-label] - 접근성을 위한 레이블 (iconOnly일 때 필수) / Accessibility label (required when iconOnly)
58
+ * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class
59
+ * @property {boolean} [disabled=false] - 비활성화 상태 / Disabled state
60
+ */
61
+ type CommonProps = {
62
+ variant?: Variant;
63
+ size?: Size;
64
+ loading?: boolean;
65
+ icon?: React.ReactNode;
66
+ iconPosition?: "left" | "right";
67
+ gradient?: GradientName;
68
+ customGradient?: string;
69
+ rounded?: Rounded;
70
+ shadow?: Shadow;
71
+ hover?: Hover;
72
+ fullWidth?: boolean;
73
+ iconOnly?: boolean;
74
+ "aria-label"?: string;
75
+ className?: string;
76
+ disabled?: boolean;
77
+ };
78
+ type AnchorProps = CommonProps & Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, "className"> & {
79
+ href: string;
80
+ };
81
+ type NativeButtonProps = CommonProps & Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "className" | "type"> & {
82
+ href?: undefined;
83
+ };
84
+ /**
85
+ * Button 컴포넌트의 props 타입 / Button component props type
86
+ * href가 제공되면 앵커 태그로, 그렇지 않으면 버튼 태그로 렌더링됩니다.
87
+ * Renders as anchor tag if href is provided, otherwise as button tag.
88
+ * @typedef {AnchorProps | NativeButtonProps} ButtonProps
89
+ */
90
+ type ButtonProps = AnchorProps | NativeButtonProps;
91
+ type AnchorOrButton$1 = HTMLAnchorElement | HTMLButtonElement;
92
+ declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<AnchorOrButton$1>>;
93
+
94
+ /** Action 전용 옵션(버튼 공통 옵션은 ButtonProps에서 상속) */
95
+ type ActionKind = "primary" | "secondary" | "tertiary" | "magical" | "cyberpunk" | "ninja" | "wizard" | "sniper";
96
+ type FeedbackKind = "ripple" | "particle" | "sound" | "haptic" | "glitch" | "sparkle" | "smoke";
97
+ type ActionExtras = {
98
+ actionType?: ActionKind;
99
+ feedback?: FeedbackKind;
100
+ particleEffect?: boolean;
101
+ rippleEffect?: boolean;
102
+ soundEffect?: boolean;
103
+ hapticFeedback?: boolean;
104
+ transparency?: number;
105
+ blurIntensity?: number;
106
+ glowIntensity?: number;
107
+ glowColor?: string;
108
+ };
109
+ /**
110
+ * Action 컴포넌트의 props / Action component props
111
+ * @typedef {Object} ActionProps
112
+ * @property {ActionKind} [actionType="primary"] - Action 타입 / Action type
113
+ * @property {FeedbackKind} [feedback="ripple"] - 피드백 타입 / Feedback type
114
+ * @property {boolean} [particleEffect=false] - 파티클 효과 활성화 / Enable particle effect
115
+ * @property {boolean} [rippleEffect=false] - 리플 효과 활성화 / Enable ripple effect
116
+ * @property {boolean} [soundEffect=false] - 사운드 효과 활성화 / Enable sound effect
117
+ * @property {boolean} [hapticFeedback=false] - 햅틱 피드백 활성화 / Enable haptic feedback
118
+ * @property {number} [transparency=1] - 투명도 (0-1) / Transparency (0-1)
119
+ * @property {number} [blurIntensity=0] - blur 강도 (px) / Blur intensity (px)
120
+ * @property {number} [glowIntensity=0] - 글로우 강도 (px) / Glow intensity (px)
121
+ * @property {string} [glowColor="rgba(91,140,255,.8)"] - 글로우 색상 / Glow color
122
+ * @extends {ButtonProps}
123
+ */
124
+ type ActionProps = ButtonProps & ActionExtras;
125
+ type AnchorEl = HTMLAnchorElement;
126
+ type ButtonEl = HTMLButtonElement;
127
+ type AnchorOrButton = AnchorEl | ButtonEl;
128
+ /**
129
+ * Action 컴포넌트 / Action component
130
+ *
131
+ * 고급 효과를 가진 액션 버튼 컴포넌트입니다.
132
+ * Button 컴포넌트를 기반으로 하며, 파티클, 리플, 사운드, 햅틱 피드백 등을 지원합니다.
133
+ *
134
+ * Action button component with advanced effects.
135
+ * Based on Button component, supports particle, ripple, sound, haptic feedback, etc.
136
+ *
137
+ * @component
138
+ * @example
139
+ * // 기본 사용 / Basic usage
140
+ * <Action>클릭</Action>
141
+ *
142
+ * @example
143
+ * // 고급 효과 / Advanced effects
144
+ * <Action
145
+ * actionType="magical"
146
+ * feedback="particle"
147
+ * particleEffect
148
+ * rippleEffect
149
+ * >
150
+ * 마법 버튼
151
+ * </Action>
152
+ *
153
+ * @param {ActionProps} props - Action 컴포넌트의 props / Action component props
154
+ * @param {React.Ref<AnchorOrButton>} ref - button 또는 anchor 요소 ref / button or anchor element ref
155
+ * @returns {JSX.Element} Action 컴포넌트 / Action component
156
+ */
157
+ declare const Action: React.ForwardRefExoticComponent<ActionProps & React.RefAttributes<AnchorOrButton>>;
158
+
159
+ /**
160
+ * Link 컴포넌트의 props / Link component props
161
+ * @typedef {Object} LinkProps
162
+ * @property {string} href - 링크 URL / Link URL
163
+ * @property {React.ReactNode} children - 링크 텍스트 또는 내용 / Link text or content
164
+ * @property {"default" | "primary" | "secondary" | "ghost" | "underline"} [variant="default"] - Link 스타일 변형 / Link style variant
165
+ * @property {"sm" | "md" | "lg"} [size="md"] - Link 크기 / Link size
166
+ * @property {boolean} [external=false] - 외부 링크 여부 (target="_blank" 자동 설정) / External link (auto sets target="_blank")
167
+ * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class
168
+ * @property {() => void} [onClick] - 클릭 이벤트 핸들러 / Click event handler
169
+ */
170
+ interface LinkProps {
171
+ href: string;
172
+ children: React.ReactNode;
173
+ variant?: "default" | "primary" | "secondary" | "ghost" | "underline";
174
+ size?: "sm" | "md" | "lg";
175
+ external?: boolean;
176
+ className?: string;
177
+ onClick?: () => void;
178
+ }
179
+ /**
180
+ * Link 컴포넌트 / Link component
181
+ *
182
+ * 링크를 표시하는 컴포넌트입니다.
183
+ * 외부 링크의 경우 자동으로 `target="_blank"`와 `rel="noopener noreferrer"`를 설정합니다.
184
+ *
185
+ * Link component for displaying links.
186
+ * Automatically sets `target="_blank"` and `rel="noopener noreferrer"` for external links.
187
+ *
188
+ * @component
189
+ * @example
190
+ * // 기본 사용 / Basic usage
191
+ * <Link href="/about">소개</Link>
192
+ *
193
+ * @example
194
+ * // 외부 링크 / External link
195
+ * <Link href="https://example.com" external>
196
+ * 외부 사이트
197
+ * </Link>
198
+ *
199
+ * @example
200
+ * // Primary 스타일 / Primary style
201
+ * <Link href="/contact" variant="primary" size="lg">
202
+ * 문의하기
203
+ * </Link>
204
+ *
205
+ * @param {LinkProps} props - Link 컴포넌트의 props / Link component props
206
+ * @returns {JSX.Element} Link 컴포넌트 / Link component
207
+ */
208
+ declare function Link({ href, children, className, variant, size, external, onClick }: LinkProps): react_jsx_runtime.JSX.Element;
209
+
210
+ /**
211
+ * Icon Config Types
212
+ *
213
+ * Icon 시스템의 설정 타입 정의
214
+ * 상태관리는 서비스 레벨에서 관리 (Zustand 등)
215
+ */
216
+ type IconSet = 'lucide' | 'phosphor' | 'untitled';
217
+ type PhosphorWeight = 'thin' | 'light' | 'regular' | 'bold' | 'duotone' | 'fill';
218
+ interface IconConfig {
219
+ set: IconSet;
220
+ weight: PhosphorWeight;
221
+ size: number;
222
+ color: string;
223
+ strokeWidth?: number;
224
+ }
225
+ declare const defaultIconConfig: IconConfig;
226
+ /**
227
+ * 세트별 기본 strokeWidth
228
+ */
229
+ declare const getDefaultStrokeWidth: (set: IconSet) => number;
230
+
231
+ /**
232
+ * IconProvider 컴포넌트 Props
233
+ *
234
+ * IconProvider component props interface.
235
+ *
236
+ * @interface IconProviderProps
237
+ */
238
+ interface IconProviderProps {
239
+ /** 아이콘 세트 (lucide, phosphor, untitled) / Icon set (lucide, phosphor, untitled) */
240
+ set?: IconSet;
241
+ /** Phosphor 아이콘 weight (thin, light, regular, bold, duotone, fill) / Phosphor icon weight */
242
+ weight?: PhosphorWeight;
243
+ /** 기본 아이콘 크기 / Default icon size */
244
+ size?: number;
245
+ /** 기본 아이콘 색상 / Default icon color */
246
+ color?: string;
247
+ /** Lucide/Untitled 아이콘 stroke width / Lucide/Untitled icon stroke width */
248
+ strokeWidth?: number;
249
+ /** 자식 컴포넌트 / Child components */
250
+ children: React.ReactNode;
251
+ }
252
+ interface IconContextValue extends IconConfig {
253
+ }
254
+ /**
255
+ * IconProvider 컴포넌트
256
+ *
257
+ * 전역 아이콘 설정을 Context로 제공합니다.
258
+ * 서비스에서 Zustand로 관리한 값을 props로 전달할 수 있습니다.
259
+ *
260
+ * IconProvider component
261
+ *
262
+ * Provides global icon settings through Context API.
263
+ * Can receive values managed by Zustand at the service level.
264
+ *
265
+ * @component
266
+ * @example
267
+ * ```tsx
268
+ * // 기본 사용 / Basic usage
269
+ * <IconProvider set="phosphor" weight="regular" size={20}>
270
+ * <App />
271
+ * </IconProvider>
272
+ *
273
+ * // Zustand와 함께 사용 / With Zustand
274
+ * const iconConfig = useIconStore(state => state.iconConfig)
275
+ * <IconProvider {...iconConfig}>
276
+ * <App />
277
+ * </IconProvider>
278
+ *
279
+ * // Lucide 아이콘 사용 / Using Lucide icons
280
+ * <IconProvider set="lucide" size={24} strokeWidth={1.5}>
281
+ * <App />
282
+ * </IconProvider>
283
+ * ```
284
+ *
285
+ * @param props - IconProvider 컴포넌트 props / IconProvider component props
286
+ * @returns IconProvider 컴포넌트 / IconProvider component
287
+ */
288
+ declare function IconProvider({ set, weight, size, color, strokeWidth, children, }: IconProviderProps): react_jsx_runtime.JSX.Element;
289
+ /**
290
+ * useIconContext Hook
291
+ *
292
+ * Icon Context를 사용하는 Hook입니다.
293
+ * Icon 컴포넌트 내부에서 사용됩니다.
294
+ *
295
+ * Hook to use Icon Context.
296
+ * Used internally by Icon component.
297
+ *
298
+ * @returns Icon 설정 값 / Icon configuration value
299
+ *
300
+ * @example
301
+ * ```tsx
302
+ * // Icon 컴포넌트 내부에서 사용 / Used inside Icon component
303
+ * const config = useIconContext()
304
+ * const iconSet = config.set
305
+ * const iconSize = config.size
306
+ * ```
307
+ */
308
+ declare function useIconContext(): IconContextValue;
309
+
310
+ /**
311
+ * Icon Provider System
312
+ *
313
+ * Supports multiple icon libraries:
314
+ * - Lucide Icons (default)
315
+ * - Phosphor Icons
316
+ * - Untitled Icons (SVG-based)
317
+ *
318
+ * Only imports icons that are actually used in the project for optimal bundle size.
319
+ */
320
+
321
+ /**
322
+ * Project-specific icon list
323
+ * These are the icons actually used in SumUp project
324
+ * Only these icons will be loaded for optimal bundle size
325
+ */
326
+ declare const PROJECT_ICONS: {
327
+ readonly home: {
328
+ readonly lucide: "Home";
329
+ readonly phosphor: "House";
330
+ readonly untitled: "home";
331
+ };
332
+ readonly 'layout-dashboard': {
333
+ readonly lucide: "LayoutDashboard";
334
+ readonly phosphor: "SquaresFour";
335
+ readonly untitled: "layout-dashboard";
336
+ };
337
+ readonly folder: {
338
+ readonly lucide: "Folder";
339
+ readonly phosphor: "Folder";
340
+ readonly untitled: "folder";
341
+ };
342
+ readonly 'alert-circle': {
343
+ readonly lucide: "AlertCircle";
344
+ readonly phosphor: "WarningCircle";
345
+ readonly untitled: "alert-circle";
346
+ };
347
+ readonly alertCircle: {
348
+ readonly lucide: "AlertCircle";
349
+ readonly phosphor: "WarningCircle";
350
+ readonly untitled: "alert-circle";
351
+ };
352
+ readonly columns: {
353
+ readonly lucide: "Columns";
354
+ readonly phosphor: "Columns";
355
+ readonly untitled: "columns";
356
+ };
357
+ readonly users: {
358
+ readonly lucide: "Users";
359
+ readonly phosphor: "Users";
360
+ readonly untitled: "users";
361
+ };
362
+ readonly settings: {
363
+ readonly lucide: "Settings";
364
+ readonly phosphor: "Gear";
365
+ readonly untitled: "settings";
366
+ };
367
+ readonly menu: {
368
+ readonly lucide: "Menu";
369
+ readonly phosphor: "List";
370
+ readonly untitled: "menu";
371
+ };
372
+ readonly close: {
373
+ readonly lucide: "X";
374
+ readonly phosphor: "X";
375
+ readonly untitled: "close";
376
+ };
377
+ readonly chevronLeft: {
378
+ readonly lucide: "ChevronLeft";
379
+ readonly phosphor: "CaretLeft";
380
+ readonly untitled: "chevron-left";
381
+ };
382
+ readonly chevronRight: {
383
+ readonly lucide: "ChevronRight";
384
+ readonly phosphor: "CaretRight";
385
+ readonly untitled: "chevron-right";
386
+ };
387
+ readonly chevronDown: {
388
+ readonly lucide: "ChevronDown";
389
+ readonly phosphor: "CaretDown";
390
+ readonly untitled: "chevron-down";
391
+ };
392
+ readonly chevronUp: {
393
+ readonly lucide: "ChevronUp";
394
+ readonly phosphor: "CaretUp";
395
+ readonly untitled: "chevron-up";
396
+ };
397
+ readonly arrowLeft: {
398
+ readonly lucide: "ArrowLeft";
399
+ readonly phosphor: "ArrowLeft";
400
+ readonly untitled: "arrow-left";
401
+ };
402
+ readonly arrowRight: {
403
+ readonly lucide: "ArrowRight";
404
+ readonly phosphor: "ArrowRight";
405
+ readonly untitled: "arrow-right";
406
+ };
407
+ readonly arrowUp: {
408
+ readonly lucide: "ArrowUp";
409
+ readonly phosphor: "ArrowUp";
410
+ readonly untitled: "arrow-up";
411
+ };
412
+ readonly arrowDown: {
413
+ readonly lucide: "ArrowDown";
414
+ readonly phosphor: "ArrowDown";
415
+ readonly untitled: "arrow-down";
416
+ };
417
+ readonly add: {
418
+ readonly lucide: "Plus";
419
+ readonly phosphor: "Plus";
420
+ readonly untitled: "add";
421
+ };
422
+ readonly edit: {
423
+ readonly lucide: "Edit";
424
+ readonly phosphor: "Pencil";
425
+ readonly untitled: "edit";
426
+ };
427
+ readonly pencil: {
428
+ readonly lucide: "Pencil";
429
+ readonly phosphor: "Pencil";
430
+ readonly untitled: "pencil";
431
+ };
432
+ readonly delete: {
433
+ readonly lucide: "Trash2";
434
+ readonly phosphor: "Trash";
435
+ readonly untitled: "trash";
436
+ };
437
+ readonly trash: {
438
+ readonly lucide: "Trash2";
439
+ readonly phosphor: "Trash";
440
+ readonly untitled: "trash";
441
+ };
442
+ readonly upload: {
443
+ readonly lucide: "Upload";
444
+ readonly phosphor: "Upload";
445
+ readonly untitled: "upload";
446
+ };
447
+ readonly download: {
448
+ readonly lucide: "Download";
449
+ readonly phosphor: "Download";
450
+ readonly untitled: "download";
451
+ };
452
+ readonly x: {
453
+ readonly lucide: "X";
454
+ readonly phosphor: "X";
455
+ readonly untitled: "close";
456
+ };
457
+ readonly check: {
458
+ readonly lucide: "Check";
459
+ readonly phosphor: "Check";
460
+ readonly untitled: "check";
461
+ };
462
+ readonly search: {
463
+ readonly lucide: "Search";
464
+ readonly phosphor: "MagnifyingGlass";
465
+ readonly untitled: "search";
466
+ };
467
+ readonly share: {
468
+ readonly lucide: "Share";
469
+ readonly phosphor: "Share";
470
+ readonly untitled: "share";
471
+ };
472
+ readonly copy: {
473
+ readonly lucide: "Copy";
474
+ readonly phosphor: "Copy";
475
+ readonly untitled: "copy";
476
+ };
477
+ readonly save: {
478
+ readonly lucide: "Save";
479
+ readonly phosphor: "FloppyDisk";
480
+ readonly untitled: "save";
481
+ };
482
+ readonly loader: {
483
+ readonly lucide: "Loader2";
484
+ readonly phosphor: "Spinner";
485
+ readonly untitled: "loader";
486
+ };
487
+ readonly loader2: {
488
+ readonly lucide: "Loader2";
489
+ readonly phosphor: "Spinner";
490
+ readonly untitled: "loader";
491
+ };
492
+ readonly 'check-circle': {
493
+ readonly lucide: "CheckCircle";
494
+ readonly phosphor: "CheckCircle";
495
+ readonly untitled: "check-circle";
496
+ };
497
+ readonly checkCircle: {
498
+ readonly lucide: "CheckCircle";
499
+ readonly phosphor: "CheckCircle";
500
+ readonly untitled: "check-circle";
501
+ };
502
+ readonly success: {
503
+ readonly lucide: "CheckCircle";
504
+ readonly phosphor: "CheckCircle";
505
+ readonly untitled: "check-circle";
506
+ };
507
+ readonly error: {
508
+ readonly lucide: "XCircle";
509
+ readonly phosphor: "XCircle";
510
+ readonly untitled: "error";
511
+ };
512
+ readonly warning: {
513
+ readonly lucide: "AlertCircle";
514
+ readonly phosphor: "WarningCircle";
515
+ readonly untitled: "warning";
516
+ };
517
+ readonly info: {
518
+ readonly lucide: "Info";
519
+ readonly phosphor: "Info";
520
+ readonly untitled: "info";
521
+ };
522
+ readonly refresh: {
523
+ readonly lucide: "RefreshCw";
524
+ readonly phosphor: "ArrowClockwise";
525
+ readonly untitled: "refresh";
526
+ };
527
+ readonly refreshCw: {
528
+ readonly lucide: "RefreshCw";
529
+ readonly phosphor: "ArrowClockwise";
530
+ readonly untitled: "refresh";
531
+ };
532
+ readonly bell: {
533
+ readonly lucide: "Bell";
534
+ readonly phosphor: "Bell";
535
+ readonly untitled: "bell";
536
+ };
537
+ readonly heart: {
538
+ readonly lucide: "Heart";
539
+ readonly phosphor: "Heart";
540
+ readonly untitled: "heart";
541
+ };
542
+ readonly star: {
543
+ readonly lucide: "Star";
544
+ readonly phosphor: "Star";
545
+ readonly untitled: "star";
546
+ };
547
+ readonly bookmark: {
548
+ readonly lucide: "Bookmark";
549
+ readonly phosphor: "Bookmark";
550
+ readonly untitled: "bookmark";
551
+ };
552
+ readonly user: {
553
+ readonly lucide: "User";
554
+ readonly phosphor: "User";
555
+ readonly untitled: "user";
556
+ };
557
+ readonly userPlus: {
558
+ readonly lucide: "UserPlus";
559
+ readonly phosphor: "UserPlus";
560
+ readonly untitled: "user-plus";
561
+ };
562
+ readonly logIn: {
563
+ readonly lucide: "LogIn";
564
+ readonly phosphor: "SignIn";
565
+ readonly untitled: "log-in";
566
+ };
567
+ readonly logOut: {
568
+ readonly lucide: "LogOut";
569
+ readonly phosphor: "SignOut";
570
+ readonly untitled: "log-out";
571
+ };
572
+ readonly chrome: {
573
+ readonly lucide: "Chrome";
574
+ readonly phosphor: "ChromeLogo";
575
+ readonly untitled: "chrome";
576
+ };
577
+ readonly github: {
578
+ readonly lucide: "Github";
579
+ readonly phosphor: "GithubLogo";
580
+ readonly untitled: "github";
581
+ };
582
+ readonly message: {
583
+ readonly lucide: "MessageCircle";
584
+ readonly phosphor: "ChatCircle";
585
+ readonly untitled: "message";
586
+ };
587
+ readonly messageSquare: {
588
+ readonly lucide: "MessageSquare";
589
+ readonly phosphor: "ChatSquare";
590
+ readonly untitled: "message-square";
591
+ };
592
+ readonly 'message-square': {
593
+ readonly lucide: "MessageSquare";
594
+ readonly phosphor: "ChatSquare";
595
+ readonly untitled: "message-square";
596
+ };
597
+ readonly inbox: {
598
+ readonly lucide: "Inbox";
599
+ readonly phosphor: "Inbox";
600
+ readonly untitled: "inbox";
601
+ };
602
+ readonly calendar: {
603
+ readonly lucide: "Calendar";
604
+ readonly phosphor: "Calendar";
605
+ readonly untitled: "calendar";
606
+ };
607
+ readonly calendarPlus: {
608
+ readonly lucide: "CalendarPlus";
609
+ readonly phosphor: "CalendarPlus";
610
+ readonly untitled: "calendar-plus";
611
+ };
612
+ readonly checkSquare: {
613
+ readonly lucide: "CheckSquare";
614
+ readonly phosphor: "CheckSquare";
615
+ readonly untitled: "check-square";
616
+ };
617
+ readonly clock: {
618
+ readonly lucide: "Clock";
619
+ readonly phosphor: "Clock";
620
+ readonly untitled: "clock";
621
+ };
622
+ readonly book: {
623
+ readonly lucide: "Book";
624
+ readonly phosphor: "Book";
625
+ readonly untitled: "book";
626
+ };
627
+ readonly bookOpen: {
628
+ readonly lucide: "BookOpen";
629
+ readonly phosphor: "BookOpen";
630
+ readonly untitled: "book-open";
631
+ };
632
+ readonly monitor: {
633
+ readonly lucide: "Monitor";
634
+ readonly phosphor: "Monitor";
635
+ readonly untitled: "monitor";
636
+ };
637
+ readonly sun: {
638
+ readonly lucide: "Sun";
639
+ readonly phosphor: "Sun";
640
+ readonly untitled: "sun";
641
+ };
642
+ readonly moon: {
643
+ readonly lucide: "Moon";
644
+ readonly phosphor: "Moon";
645
+ readonly untitled: "moon";
646
+ };
647
+ readonly sparkles: {
648
+ readonly lucide: "Sparkles";
649
+ readonly phosphor: "Sparkle";
650
+ readonly untitled: "sparkles";
651
+ };
652
+ readonly lightbulb: {
653
+ readonly lucide: "Lightbulb";
654
+ readonly phosphor: "Lightbulb";
655
+ readonly untitled: "lightbulb";
656
+ };
657
+ readonly brain: {
658
+ readonly lucide: "Brain";
659
+ readonly phosphor: "Brain";
660
+ readonly untitled: "brain";
661
+ };
662
+ readonly zap: {
663
+ readonly lucide: "Zap";
664
+ readonly phosphor: "Lightning";
665
+ readonly untitled: "zap";
666
+ };
667
+ readonly chart: {
668
+ readonly lucide: "BarChart3";
669
+ readonly phosphor: "ChartBar";
670
+ readonly untitled: "chart";
671
+ };
672
+ readonly barChart: {
673
+ readonly lucide: "BarChart";
674
+ readonly phosphor: "ChartBar";
675
+ readonly untitled: "bar-chart";
676
+ };
677
+ readonly trendingUp: {
678
+ readonly lucide: "TrendingUp";
679
+ readonly phosphor: "TrendUp";
680
+ readonly untitled: "trending-up";
681
+ };
682
+ readonly trendingDown: {
683
+ readonly lucide: "TrendingDown";
684
+ readonly phosphor: "TrendDown";
685
+ readonly untitled: "trending-down";
686
+ };
687
+ readonly activity: {
688
+ readonly lucide: "Activity";
689
+ readonly phosphor: "Activity";
690
+ readonly untitled: "activity";
691
+ };
692
+ readonly database: {
693
+ readonly lucide: "Database";
694
+ readonly phosphor: "Database";
695
+ readonly untitled: "database";
696
+ };
697
+ readonly dollarSign: {
698
+ readonly lucide: "DollarSign";
699
+ readonly phosphor: "CurrencyDollar";
700
+ readonly untitled: "dollar-sign";
701
+ };
702
+ readonly dollar: {
703
+ readonly lucide: "DollarSign";
704
+ readonly phosphor: "CurrencyDollar";
705
+ readonly untitled: "dollar-sign";
706
+ };
707
+ readonly currency: {
708
+ readonly lucide: "DollarSign";
709
+ readonly phosphor: "CurrencyDollar";
710
+ readonly untitled: "currency";
711
+ };
712
+ readonly lock: {
713
+ readonly lucide: "Lock";
714
+ readonly phosphor: "Lock";
715
+ readonly untitled: "lock";
716
+ };
717
+ readonly unlock: {
718
+ readonly lucide: "Unlock";
719
+ readonly phosphor: "LockOpen";
720
+ readonly untitled: "unlock";
721
+ };
722
+ readonly shield: {
723
+ readonly lucide: "Shield";
724
+ readonly phosphor: "Shield";
725
+ readonly untitled: "shield";
726
+ };
727
+ readonly key: {
728
+ readonly lucide: "Key";
729
+ readonly phosphor: "Key";
730
+ readonly untitled: "key";
731
+ };
732
+ readonly play: {
733
+ readonly lucide: "Play";
734
+ readonly phosphor: "Play";
735
+ readonly untitled: "play";
736
+ };
737
+ readonly pause: {
738
+ readonly lucide: "Pause";
739
+ readonly phosphor: "Pause";
740
+ readonly untitled: "pause";
741
+ };
742
+ readonly image: {
743
+ readonly lucide: "Image";
744
+ readonly phosphor: "Image";
745
+ readonly untitled: "image";
746
+ };
747
+ readonly video: {
748
+ readonly lucide: "Video";
749
+ readonly phosphor: "Video";
750
+ readonly untitled: "video";
751
+ };
752
+ readonly camera: {
753
+ readonly lucide: "Camera";
754
+ readonly phosphor: "Camera";
755
+ readonly untitled: "camera";
756
+ };
757
+ readonly fileText: {
758
+ readonly lucide: "FileText";
759
+ readonly phosphor: "FileText";
760
+ readonly untitled: "file-text";
761
+ };
762
+ readonly file: {
763
+ readonly lucide: "File";
764
+ readonly phosphor: "File";
765
+ readonly untitled: "file";
766
+ };
767
+ readonly externalLink: {
768
+ readonly lucide: "ExternalLink";
769
+ readonly phosphor: "ArrowSquareOut";
770
+ readonly untitled: "external-link";
771
+ };
772
+ readonly link: {
773
+ readonly lucide: "Link";
774
+ readonly phosphor: "Link";
775
+ readonly untitled: "link";
776
+ };
777
+ readonly moreHorizontal: {
778
+ readonly lucide: "MoreHorizontal";
779
+ readonly phosphor: "DotsThreeOutline";
780
+ readonly untitled: "more-horizontal";
781
+ };
782
+ readonly moreVertical: {
783
+ readonly lucide: "MoreVertical";
784
+ readonly phosphor: "DotsThreeVertical";
785
+ readonly untitled: "more-vertical";
786
+ };
787
+ readonly remove: {
788
+ readonly lucide: "Minus";
789
+ readonly phosphor: "Minus";
790
+ readonly untitled: "remove";
791
+ };
792
+ readonly eye: {
793
+ readonly lucide: "Eye";
794
+ readonly phosphor: "Eye";
795
+ readonly untitled: "eye";
796
+ };
797
+ readonly eyeOff: {
798
+ readonly lucide: "EyeOff";
799
+ readonly phosphor: "EyeSlash";
800
+ readonly untitled: "eye-off";
801
+ };
802
+ readonly smile: {
803
+ readonly lucide: "Smile";
804
+ readonly phosphor: "Smiley";
805
+ readonly untitled: "smile";
806
+ };
807
+ readonly frown: {
808
+ readonly lucide: "Frown";
809
+ readonly phosphor: "SmileySad";
810
+ readonly untitled: "frown";
811
+ };
812
+ readonly meh: {
813
+ readonly lucide: "Meh";
814
+ readonly phosphor: "SmileyMeh";
815
+ readonly untitled: "meh";
816
+ };
817
+ readonly mail: {
818
+ readonly lucide: "Mail";
819
+ readonly phosphor: "Envelope";
820
+ readonly untitled: "mail";
821
+ };
822
+ readonly phone: {
823
+ readonly lucide: "Phone";
824
+ readonly phosphor: "Phone";
825
+ readonly untitled: "phone";
826
+ };
827
+ readonly flag: {
828
+ readonly lucide: "Flag";
829
+ readonly phosphor: "Flag";
830
+ readonly untitled: "flag";
831
+ };
832
+ };
833
+
834
+ /**
835
+ * Icon Names - 자동완성 지원
836
+ *
837
+ * 이 파일은 TypeScript 자동완성을 위한 아이콘 이름 목록입니다.
838
+ * 실제 아이콘은 icons.ts와 PROJECT_ICONS에서 관리됩니다.
839
+ */
840
+
841
+ /**
842
+ * PROJECT_ICONS에 정의된 모든 아이콘 이름
843
+ */
844
+ type ProjectIconName = keyof typeof PROJECT_ICONS;
845
+ /**
846
+ * 사용 가능한 모든 아이콘 이름 (icons.ts + PROJECT_ICONS)
847
+ */
848
+ type AllIconName = IconName | ProjectIconName;
849
+ /**
850
+ * 아이콘 이름 목록 (자동완성용)
851
+ */
852
+ declare const iconNames: readonly ["home", "menu", "close", "search", "settings", "user", "bell", "arrowLeft", "arrowRight", "arrowUp", "arrowDown", "chevronLeft", "chevronRight", "chevronUp", "chevronDown", "add", "edit", "delete", "remove", "check", "share", "download", "upload", "save", "copy", "refresh", "search", "loader", "success", "error", "warning", "info", "alertCircle", "heart", "star", "bookmark", "logIn", "logOut", "shield", "key", "lock", "unlock", "eye", "eyeOff", "users", "userPlus", "chart", "barChart", "pieChart", "trendingUp", "trendingDown", "activity", "database", "zap", "circle", "dollarSign", "dollar", "currency", "fileText", "file", "folder", "book", "bookOpen", "image", "video", "camera", "message", "messageSquare", "phone", "mail", "send", "play", "pause", "mic", "headphones", "smile", "frown", "meh", "laugh", "angry", "thumbsUp", "thumbsDown", "clock", "timer", "calendar", "calendarDays", "monitor", "sun", "moon", "sparkles", "lightbulb", "brain", "externalLink", "link", "moreHorizontal", "moreVertical"];
853
+ /**
854
+ * 프로바이더별 아이콘 이름 매핑 (참고용)
855
+ *
856
+ * @example
857
+ * // Lucide 아이콘 사용
858
+ * <Icon name="home" provider="lucide" /> // Lucide: Home
859
+ *
860
+ * // Phosphor 아이콘 사용
861
+ * <Icon name="home" provider="phosphor" /> // Phosphor: House
862
+ *
863
+ * // Untitled 아이콘 사용
864
+ * <Icon name="home" provider="untitled" /> // Untitled: home
865
+ */
866
+ declare const iconProviderMapping: Record<string, {
867
+ lucide: string;
868
+ phosphor: string;
869
+ untitled: string;
870
+ }>;
871
+ /**
872
+ * 아이콘 이름이 유효한지 확인
873
+ */
874
+ declare function isValidIconName(name: string): name is AllIconName;
875
+ /**
876
+ * 프로바이더별 아이콘 이름 가져오기
877
+ */
878
+ declare function getIconNameForProvider(iconName: string, provider: 'lucide' | 'phosphor' | 'untitled'): string | null;
879
+
880
+ /**
881
+ * Icon 컴포넌트 Props
882
+ *
883
+ * Icon component props interface.
884
+ *
885
+ * @interface IconProps
886
+ */
887
+ interface IconProps {
888
+ /** 아이콘 이름 / Icon name */
889
+ name: AllIconName;
890
+ /** 아이콘 크기 (숫자 또는 문자열) / Icon size (number or string) */
891
+ size?: number | string;
892
+ /** 추가 CSS 클래스 / Additional CSS classes */
893
+ className?: string;
894
+ /** 감정 아이콘 타입 / Emotion icon type */
895
+ emotion?: keyof typeof emotionIcons;
896
+ /** 상태 아이콘 타입 / Status icon type */
897
+ status?: keyof typeof statusIcons;
898
+ /** 아이콘 프로바이더 오버라이드 (전역 설정 무시) / Icon provider override (ignores global config) */
899
+ provider?: IconSet;
900
+ /** 부드러운 애니메이션 효과 / Smooth animation effect */
901
+ animated?: boolean;
902
+ /** 펄스 애니메이션 / Pulse animation */
903
+ pulse?: boolean;
904
+ /** 회전 애니메이션 / Spin animation */
905
+ spin?: boolean;
906
+ /** 바운스 애니메이션 / Bounce animation */
907
+ bounce?: boolean;
908
+ /** 색상 변형 / Color variant */
909
+ variant?: 'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'muted';
910
+ /** Phosphor 아이콘 weight 오버라이드 / Phosphor icon weight override */
911
+ weight?: PhosphorWeight;
912
+ /** 스크린 리더용 라벨 (의미 있는 아이콘인 경우) / Screen reader label (for meaningful icons) */
913
+ 'aria-label'?: string;
914
+ /** 장식용 아이콘인 경우 true (스크린 리더에서 숨김) / Set to true for decorative icons (hidden from screen readers) */
915
+ 'aria-hidden'?: boolean;
916
+ }
917
+ /**
918
+ * Icon 컴포넌트
919
+ *
920
+ * 다중 아이콘 라이브러리(Lucide, Phosphor, Untitled)를 지원하는 통합 아이콘 컴포넌트입니다.
921
+ * IconProvider를 통해 전역 설정을 관리할 수 있으며, 개별 아이콘에서도 설정을 오버라이드할 수 있습니다.
922
+ *
923
+ * Icon component that supports multiple icon libraries (Lucide, Phosphor, Untitled).
924
+ * Global settings can be managed through IconProvider, and individual icons can override settings.
925
+ *
926
+ * @component
927
+ * @example
928
+ * ```tsx
929
+ * // 기본 사용 / Basic usage
930
+ * <Icon name="heart" />
931
+ *
932
+ * // 크기 지정 / Specify size
933
+ * <Icon name="user" size={24} />
934
+ *
935
+ * // 색상 변형 / Color variant
936
+ * <Icon name="check" variant="success" />
937
+ *
938
+ * // 애니메이션 / Animation
939
+ * <Icon name="loader" spin />
940
+ * <Icon name="heart" pulse />
941
+ *
942
+ * // 접근성 / Accessibility
943
+ * <Icon name="search" aria-label="검색" />
944
+ * <Icon name="decorative-icon" aria-hidden />
945
+ *
946
+ * // 감정 아이콘 / Emotion icon
947
+ * <Icon emotion="happy" />
948
+ *
949
+ * // 상태 아이콘 / Status icon
950
+ * <Icon status="loading" spin />
951
+ * ```
952
+ *
953
+ * @param props - Icon 컴포넌트 props / Icon component props
954
+ * @returns Icon 컴포넌트 / Icon component
955
+ */
956
+ declare const IconComponent: React.ForwardRefExoticComponent<IconProps & React.RefAttributes<HTMLSpanElement>>;
957
+ declare const Icon: typeof IconComponent;
958
+ /**
959
+ * EmotionIcon 컴포넌트
960
+ *
961
+ * 감정을 표현하는 아이콘 컴포넌트입니다.
962
+ * Icon component for expressing emotions.
963
+ *
964
+ * @component
965
+ * @example
966
+ * ```tsx
967
+ * <EmotionIcon emotion="happy" />
968
+ * <EmotionIcon emotion="sad" size={24} />
969
+ * ```
970
+ */
971
+ declare const EmotionIcon: React.ForwardRefExoticComponent<Omit<IconProps, "name"> & {
972
+ emotion: keyof typeof emotionIcons;
973
+ } & React.RefAttributes<HTMLSpanElement>>;
974
+ /**
975
+ * StatusIcon 컴포넌트
976
+ *
977
+ * 상태를 표현하는 아이콘 컴포넌트입니다.
978
+ * Icon component for expressing status.
979
+ *
980
+ * @component
981
+ * @example
982
+ * ```tsx
983
+ * <StatusIcon status="loading" spin />
984
+ * <StatusIcon status="success" variant="success" />
985
+ * ```
986
+ */
987
+ declare const StatusIcon: React.ForwardRefExoticComponent<Omit<IconProps, "name"> & {
988
+ status: keyof typeof statusIcons;
989
+ } & React.RefAttributes<HTMLSpanElement>>;
990
+ /**
991
+ * LoadingIcon 컴포넌트
992
+ *
993
+ * 로딩 상태를 표시하는 전용 아이콘 컴포넌트입니다.
994
+ * Dedicated icon component for displaying loading status.
995
+ *
996
+ * @component
997
+ * @example
998
+ * ```tsx
999
+ * <LoadingIcon />
1000
+ * <LoadingIcon size={32} />
1001
+ * ```
1002
+ */
1003
+ declare const LoadingIcon: React.ForwardRefExoticComponent<Omit<IconProps, "name" | "status"> & React.RefAttributes<HTMLDivElement>>;
1004
+ /**
1005
+ * SuccessIcon 컴포넌트
1006
+ *
1007
+ * 성공 상태를 표시하는 전용 아이콘 컴포넌트입니다.
1008
+ * Dedicated icon component for displaying success status.
1009
+ *
1010
+ * @component
1011
+ * @example
1012
+ * ```tsx
1013
+ * <SuccessIcon />
1014
+ * <SuccessIcon size={24} />
1015
+ * ```
1016
+ */
1017
+ declare const SuccessIcon: React.ForwardRefExoticComponent<Omit<IconProps, "name" | "status"> & React.RefAttributes<HTMLDivElement>>;
1018
+ /**
1019
+ * ErrorIcon 컴포넌트
1020
+ *
1021
+ * 에러 상태를 표시하는 전용 아이콘 컴포넌트입니다.
1022
+ * Dedicated icon component for displaying error status.
1023
+ *
1024
+ * @component
1025
+ * @example
1026
+ * ```tsx
1027
+ * <ErrorIcon />
1028
+ * <ErrorIcon size={24} />
1029
+ * ```
1030
+ */
1031
+ declare const ErrorIcon: React.ForwardRefExoticComponent<Omit<IconProps, "name" | "status"> & React.RefAttributes<HTMLDivElement>>;
1032
+
1033
+ /**
1034
+ * Avatar 컴포넌트의 props / Avatar component props
1035
+ * @typedef {Object} AvatarProps
1036
+ * @property {"sm" | "md" | "lg"} [size="md"] - 아바타 크기 / Avatar size
1037
+ * @property {"default" | "glass"} [variant="default"] - 아바타 스타일 변형 / Avatar style variant
1038
+ * @property {string} [src] - 이미지 URL / Image URL
1039
+ * @property {string} [alt] - 이미지 대체 텍스트 / Image alt text
1040
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
1041
+ */
1042
+ interface AvatarProps extends React.HTMLAttributes<HTMLDivElement> {
1043
+ size?: "sm" | "md" | "lg";
1044
+ variant?: "default" | "glass";
1045
+ src?: string;
1046
+ alt?: string;
1047
+ }
1048
+ /**
1049
+ * AvatarImage 컴포넌트의 props
1050
+ * @typedef {Object} AvatarImageProps
1051
+ * @extends {React.ImgHTMLAttributes<HTMLImageElement>}
1052
+ */
1053
+ interface AvatarImageProps extends React.ImgHTMLAttributes<HTMLImageElement> {
1054
+ }
1055
+ /**
1056
+ * AvatarFallback 컴포넌트의 props
1057
+ * @typedef {Object} AvatarFallbackProps
1058
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
1059
+ */
1060
+ interface AvatarFallbackProps extends React.HTMLAttributes<HTMLDivElement> {
1061
+ }
1062
+ /**
1063
+ * Avatar 컴포넌트 / Avatar component
1064
+ *
1065
+ * 사용자 프로필 이미지를 표시하는 컴포넌트입니다.
1066
+ * 이미지가 없을 경우 대체 텍스트나 초기 문자를 표시합니다.
1067
+ *
1068
+ * Component for displaying user profile images.
1069
+ * Shows fallback text or initials when image is not available.
1070
+ *
1071
+ * @component
1072
+ * @example
1073
+ * // 기본 사용 (이미지) / Basic usage (with image)
1074
+ * <Avatar src="/user.jpg" alt="사용자" />
1075
+ *
1076
+ * @example
1077
+ * // 대체 텍스트 / Fallback text
1078
+ * <Avatar alt="홍길동">홍</Avatar>
1079
+ *
1080
+ * @example
1081
+ * // Glass 스타일 / Glass style
1082
+ * <Avatar variant="glass" size="lg" src="/user.jpg" alt="사용자" />
1083
+ *
1084
+ * @param {AvatarProps} props - Avatar 컴포넌트의 props / Avatar component props
1085
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
1086
+ * @returns {JSX.Element} Avatar 컴포넌트 / Avatar component
1087
+ */
1088
+ declare const Avatar: React.ForwardRefExoticComponent<AvatarProps & React.RefAttributes<HTMLDivElement>>;
1089
+ /**
1090
+ * AvatarImage 컴포넌트 / AvatarImage component
1091
+ *
1092
+ * 아바타 이미지를 표시하는 컴포넌트입니다.
1093
+ * Displays the avatar image.
1094
+ *
1095
+ * @component
1096
+ * @param {AvatarImageProps} props - AvatarImage 컴포넌트의 props / AvatarImage component props
1097
+ * @param {React.Ref<HTMLImageElement>} ref - img 요소 ref / img element ref
1098
+ * @returns {JSX.Element} AvatarImage 컴포넌트 / AvatarImage component
1099
+ */
1100
+ declare const AvatarImage: React.ForwardRefExoticComponent<AvatarImageProps & React.RefAttributes<HTMLImageElement>>;
1101
+ /**
1102
+ * AvatarFallback 컴포넌트 / AvatarFallback component
1103
+ *
1104
+ * 아바타 이미지가 없을 때 표시되는 대체 컴포넌트입니다.
1105
+ * Fallback component displayed when avatar image is not available.
1106
+ *
1107
+ * @component
1108
+ * @param {AvatarFallbackProps} props - AvatarFallback 컴포넌트의 props / AvatarFallback component props
1109
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
1110
+ * @returns {JSX.Element} AvatarFallback 컴포넌트 / AvatarFallback component
1111
+ */
1112
+ declare const AvatarFallback: React.ForwardRefExoticComponent<AvatarFallbackProps & React.RefAttributes<HTMLDivElement>>;
1113
+
1114
+ /**
1115
+ * Modal 컴포넌트의 props / Modal component props
1116
+ * @typedef {Object} ModalProps
1117
+ * @property {boolean} isOpen - 모달 열림/닫힘 상태 / Modal open/close state
1118
+ * @property {() => void} onClose - 모달 닫기 콜백 함수 / Modal close callback function
1119
+ * @property {React.ReactNode} children - 모달 내용 / Modal content
1120
+ * @property {"sm" | "md" | "lg" | "xl" | "2xl" | "3xl"} [size="md"] - 모달 크기 / Modal size
1121
+ * @property {boolean} [showCloseButton=true] - 닫기 버튼 표시 여부 / Show close button
1122
+ * @property {boolean} [closeOnOverlayClick=true] - 오버레이 클릭 시 닫기 여부 / Close on overlay click
1123
+ * @property {string} [title] - 모달 제목 / Modal title
1124
+ * @property {string} [description] - 모달 설명 / Modal description
1125
+ * @property {boolean} [showBackdrop=true] - 배경 오버레이 표시 여부 / Show backdrop overlay
1126
+ * @property {string} [backdropClassName] - 배경 오버레이 추가 CSS 클래스 / Additional CSS class for backdrop
1127
+ * @property {boolean} [centered=true] - 모달을 화면 중앙에 배치할지 여부 / Center modal on screen
1128
+ * @property {string} [className] - 모달 컨테이너 추가 CSS 클래스 / Additional CSS class for modal container
1129
+ */
1130
+ interface ModalProps {
1131
+ isOpen: boolean;
1132
+ onClose: () => void;
1133
+ children: React.ReactNode;
1134
+ size?: "sm" | "md" | "lg" | "xl" | "2xl" | "3xl";
1135
+ showCloseButton?: boolean;
1136
+ closeOnOverlayClick?: boolean;
1137
+ title?: string;
1138
+ description?: string;
1139
+ showBackdrop?: boolean;
1140
+ backdropClassName?: string;
1141
+ centered?: boolean;
1142
+ className?: string;
1143
+ }
1144
+ /**
1145
+ * Modal 컴포넌트 / Modal component
1146
+ *
1147
+ * 오버레이와 함께 표시되는 모달 다이얼로그 컴포넌트입니다.
1148
+ * ESC 키로 닫기, 오버레이 클릭으로 닫기, 접근성 속성(ARIA)을 지원합니다.
1149
+ *
1150
+ * Modal dialog component displayed with overlay.
1151
+ * Supports closing with ESC key, overlay click, and ARIA accessibility attributes.
1152
+ *
1153
+ * @component
1154
+ * @example
1155
+ * // 기본 사용 / Basic usage
1156
+ * const [isOpen, setIsOpen] = useState(false)
1157
+ *
1158
+ * <Modal isOpen={isOpen} onClose={() => setIsOpen(false)}>
1159
+ * <p>모달 내용</p>
1160
+ * </Modal>
1161
+ *
1162
+ * @example
1163
+ * // 제목과 설명 포함 / With title and description
1164
+ * <Modal
1165
+ * isOpen={isOpen}
1166
+ * onClose={() => setIsOpen(false)}
1167
+ * title="확인"
1168
+ * description="이 작업을 계속하시겠습니까?"
1169
+ * >
1170
+ * <Button onClick={handleConfirm}>확인</Button>
1171
+ * </Modal>
1172
+ *
1173
+ * @example
1174
+ * // 큰 크기 모달 / Large size modal
1175
+ * <Modal
1176
+ * isOpen={isOpen}
1177
+ * onClose={() => setIsOpen(false)}
1178
+ * size="xl"
1179
+ * closeOnOverlayClick={false}
1180
+ * >
1181
+ * <div>큰 모달 내용</div>
1182
+ * </Modal>
1183
+ *
1184
+ * @param {ModalProps} props - Modal 컴포넌트의 props / Modal component props
1185
+ * @param {React.Ref<HTMLDivElement>} ref - 모달 컨테이너 ref / Modal container ref
1186
+ * @returns {JSX.Element} Modal 컴포넌트 / Modal component
1187
+ */
1188
+ declare const Modal: React.ForwardRefExoticComponent<ModalProps & React.RefAttributes<HTMLDivElement>>;
1189
+
1190
+ /**
1191
+ * Container 컴포넌트의 props
1192
+ * @typedef {Object} ContainerProps
1193
+ * @property {"sm" | "md" | "lg" | "xl" | "full"} [size="lg"] - 컨테이너 최대 너비
1194
+ * @property {"none" | "sm" | "md" | "lg" | "xl"} [padding="md"] - 내부 패딩 크기
1195
+ * @property {boolean} [centered=true] - 컨테이너를 중앙 정렬할지 여부
1196
+ * @property {boolean} [fluid=false] - 최대 너비 제한 없이 전체 너비 사용
1197
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
1198
+ */
1199
+ interface ContainerProps extends React.HTMLAttributes<HTMLDivElement> {
1200
+ size?: "sm" | "md" | "lg" | "xl" | "full";
1201
+ padding?: "none" | "sm" | "md" | "lg" | "xl";
1202
+ centered?: boolean;
1203
+ fluid?: boolean;
1204
+ }
1205
+ /**
1206
+ * Container 컴포넌트
1207
+ *
1208
+ * 콘텐츠를 감싸는 컨테이너 컴포넌트입니다.
1209
+ * 반응형 최대 너비와 패딩을 제공하여 일관된 레이아웃을 구성합니다.
1210
+ *
1211
+ * @component
1212
+ * @example
1213
+ * // 기본 사용
1214
+ * <Container>
1215
+ * <h1>제목</h1>
1216
+ * <p>내용</p>
1217
+ * </Container>
1218
+ *
1219
+ * @example
1220
+ * // 작은 크기, 패딩 없음
1221
+ * <Container size="sm" padding="none">
1222
+ * <div>콘텐츠</div>
1223
+ * </Container>
1224
+ *
1225
+ * @example
1226
+ * // 전체 너비 사용
1227
+ * <Container fluid padding="xl">
1228
+ * <div>전체 너비 콘텐츠</div>
1229
+ * </Container>
1230
+ *
1231
+ * @param {ContainerProps} props - Container 컴포넌트의 props
1232
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref
1233
+ * @returns {JSX.Element} Container 컴포넌트
1234
+ */
1235
+ declare const Container: React.ForwardRefExoticComponent<ContainerProps & React.RefAttributes<HTMLDivElement>>;
1236
+
1237
+ /**
1238
+ * Grid 컴포넌트의 props
1239
+ * @typedef {Object} GridProps
1240
+ * @property {1|2|3|4|5|6|7|8|9|10|11|12} [cols=1] - 그리드 열 개수
1241
+ * @property {"none" | "sm" | "md" | "lg" | "xl"} [gap="md"] - 그리드 아이템 간 간격
1242
+ * @property {"none" | "sm" | "md" | "lg" | "xl"} [gapX] - 가로 간격 (gap보다 우선)
1243
+ * @property {"none" | "sm" | "md" | "lg" | "xl"} [gapY] - 세로 간격
1244
+ * @property {boolean} [responsive=true] - 반응형 그리드 활성화 (모바일: 1열, 태블릿: 2열, 데스크톱: 지정 열)
1245
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
1246
+ */
1247
+ interface GridProps extends React.HTMLAttributes<HTMLDivElement> {
1248
+ cols?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
1249
+ gap?: "none" | "sm" | "md" | "lg" | "xl";
1250
+ gapX?: "none" | "sm" | "md" | "lg" | "xl";
1251
+ gapY?: "none" | "sm" | "md" | "lg" | "xl";
1252
+ responsive?: boolean;
1253
+ }
1254
+ /**
1255
+ * Grid 컴포넌트
1256
+ *
1257
+ * CSS Grid를 사용한 그리드 레이아웃 컴포넌트입니다.
1258
+ * 반응형 그리드를 지원하여 모바일부터 데스크톱까지 최적화된 레이아웃을 제공합니다.
1259
+ *
1260
+ * @component
1261
+ * @example
1262
+ * // 기본 3열 그리드
1263
+ * <Grid cols={3} gap="md">
1264
+ * <div>아이템 1</div>
1265
+ * <div>아이템 2</div>
1266
+ * <div>아이템 3</div>
1267
+ * </Grid>
1268
+ *
1269
+ * @example
1270
+ * // 가로/세로 간격 분리
1271
+ * <Grid cols={4} gapX="lg" gapY="sm">
1272
+ * {items.map(item => <div key={item.id}>{item.content}</div>)}
1273
+ * </Grid>
1274
+ *
1275
+ * @example
1276
+ * // 반응형 비활성화 (고정 그리드)
1277
+ * <Grid cols={6} responsive={false} gap="lg">
1278
+ * <div>고정 6열</div>
1279
+ * </Grid>
1280
+ *
1281
+ * @param {GridProps} props - Grid 컴포넌트의 props
1282
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref
1283
+ * @returns {JSX.Element} Grid 컴포넌트
1284
+ */
1285
+ declare const Grid: React.ForwardRefExoticComponent<GridProps & React.RefAttributes<HTMLDivElement>>;
1286
+
1287
+ /**
1288
+ * Stack 컴포넌트의 props
1289
+ * @typedef {Object} StackProps
1290
+ * @property {"vertical" | "horizontal"} [direction="vertical"] - 스택 방향
1291
+ * @property {"none" | "sm" | "md" | "lg" | "xl"} [spacing="md"] - 아이템 간 간격
1292
+ * @property {"start" | "center" | "end" | "stretch"} [align="start"] - 교차축 정렬
1293
+ * @property {"start" | "center" | "end" | "between" | "around" | "evenly"} [justify="start"] - 주축 정렬
1294
+ * @property {boolean} [wrap=false] - 아이템 줄바꿈 허용
1295
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
1296
+ */
1297
+ interface StackProps extends React.HTMLAttributes<HTMLDivElement> {
1298
+ direction?: "vertical" | "horizontal";
1299
+ spacing?: "none" | "sm" | "md" | "lg" | "xl";
1300
+ align?: "start" | "center" | "end" | "stretch";
1301
+ justify?: "start" | "center" | "end" | "between" | "around" | "evenly";
1302
+ wrap?: boolean;
1303
+ }
1304
+ /**
1305
+ * Stack 컴포넌트
1306
+ *
1307
+ * Flexbox를 사용한 스택 레이아웃 컴포넌트입니다.
1308
+ * 수직 또는 수평 방향으로 아이템을 배치하고 정렬할 수 있습니다.
1309
+ *
1310
+ * @component
1311
+ * @example
1312
+ * // 기본 수직 스택
1313
+ * <Stack spacing="md">
1314
+ * <div>아이템 1</div>
1315
+ * <div>아이템 2</div>
1316
+ * </Stack>
1317
+ *
1318
+ * @example
1319
+ * // 수평 스택, 중앙 정렬
1320
+ * <Stack direction="horizontal" spacing="lg" align="center" justify="between">
1321
+ * <Button>왼쪽</Button>
1322
+ * <Button>오른쪽</Button>
1323
+ * </Stack>
1324
+ *
1325
+ * @example
1326
+ * // 줄바꿈 허용
1327
+ * <Stack direction="horizontal" wrap spacing="sm">
1328
+ * {tags.map(tag => <Badge key={tag}>{tag}</Badge>)}
1329
+ * </Stack>
1330
+ *
1331
+ * @param {StackProps} props - Stack 컴포넌트의 props
1332
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref
1333
+ * @returns {JSX.Element} Stack 컴포넌트
1334
+ */
1335
+ declare const Stack: React.ForwardRefExoticComponent<StackProps & React.RefAttributes<HTMLDivElement>>;
1336
+
1337
+ /**
1338
+ * Divider 컴포넌트의 props / Divider component props
1339
+ * @typedef {Object} DividerProps
1340
+ * @property {"horizontal" | "vertical"} [orientation="horizontal"] - Divider 방향 / Divider orientation
1341
+ * @property {"solid" | "dashed" | "dotted" | "gradient" | "glass"} [variant="solid"] - Divider 스타일 변형 / Divider style variant
1342
+ * @property {"sm" | "md" | "lg"} [size="md"] - Divider 크기 / Divider size
1343
+ * @property {"none" | "sm" | "md" | "lg" | "xl"} [spacing="md"] - Divider 주변 여백 / Divider spacing
1344
+ * @property {"default" | "muted" | "primary" | "secondary"} [color="default"] - Divider 색상 / Divider color
1345
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
1346
+ */
1347
+ interface DividerProps extends React.HTMLAttributes<HTMLDivElement> {
1348
+ orientation?: "horizontal" | "vertical";
1349
+ variant?: "solid" | "dashed" | "dotted" | "gradient" | "glass";
1350
+ size?: "sm" | "md" | "lg";
1351
+ spacing?: "none" | "sm" | "md" | "lg" | "xl";
1352
+ color?: "default" | "muted" | "primary" | "secondary";
1353
+ }
1354
+ declare const Divider: React.NamedExoticComponent<DividerProps & React.RefAttributes<HTMLDivElement>>;
1355
+
1356
+ /**
1357
+ * Card 컴포넌트의 props / Card component props
1358
+ * @typedef {Object} CardProps
1359
+ * @property {"default" | "outline" | "elevated"} [variant="default"] - 카드 스타일 변형 / Card style variant
1360
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
1361
+ */
1362
+ interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
1363
+ variant?: "default" | "outline" | "elevated";
1364
+ }
1365
+ /**
1366
+ * Card 컴포넌트 / Card component
1367
+ *
1368
+ * 콘텐츠를 카드 형태로 표시하는 컴포넌트입니다.
1369
+ * CardHeader, CardTitle, CardDescription, CardContent, CardFooter와 함께 사용합니다.
1370
+ *
1371
+ * Component that displays content in card format.
1372
+ * Used with CardHeader, CardTitle, CardDescription, CardContent, and CardFooter.
1373
+ *
1374
+ * @component
1375
+ * @example
1376
+ * // 기본 카드 / Basic card
1377
+ * <Card>
1378
+ * <CardHeader>
1379
+ * <CardTitle>카드 제목</CardTitle>
1380
+ * <CardDescription>카드 설명</CardDescription>
1381
+ * </CardHeader>
1382
+ * <CardContent>
1383
+ * <p>카드 내용</p>
1384
+ * </CardContent>
1385
+ * <CardFooter>
1386
+ * <Button>액션</Button>
1387
+ * </CardFooter>
1388
+ * </Card>
1389
+ *
1390
+ * @example
1391
+ * // Elevated 스타일 / Elevated style
1392
+ * <Card variant="elevated">
1393
+ * <CardContent>강조된 카드</CardContent>
1394
+ * </Card>
1395
+ *
1396
+ * @param {CardProps} props - Card 컴포넌트의 props / Card component props
1397
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
1398
+ * @returns {JSX.Element} Card 컴포넌트 / Card component
1399
+ */
1400
+ declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>>;
1401
+ /**
1402
+ * CardHeader 컴포넌트의 props / CardHeader component props
1403
+ * @typedef {Object} CardHeaderProps
1404
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
1405
+ */
1406
+ interface CardHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
1407
+ }
1408
+ /**
1409
+ * CardHeader 컴포넌트 / CardHeader component
1410
+ * 카드의 헤더 영역을 표시합니다. CardTitle과 CardDescription을 포함합니다.
1411
+ * Displays the header area of a card. Contains CardTitle and CardDescription.
1412
+ *
1413
+ * @component
1414
+ * @param {CardHeaderProps} props - CardHeader 컴포넌트의 props / CardHeader component props
1415
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
1416
+ * @returns {JSX.Element} CardHeader 컴포넌트 / CardHeader component
1417
+ */
1418
+ declare const CardHeader: React.ForwardRefExoticComponent<CardHeaderProps & React.RefAttributes<HTMLDivElement>>;
1419
+ /**
1420
+ * CardTitle 컴포넌트의 props / CardTitle component props
1421
+ * @typedef {Object} CardTitleProps
1422
+ * @extends {React.HTMLAttributes<HTMLHeadingElement>}
1423
+ */
1424
+ interface CardTitleProps extends React.HTMLAttributes<HTMLHeadingElement> {
1425
+ }
1426
+ /**
1427
+ * CardTitle 컴포넌트 / CardTitle component
1428
+ * 카드의 제목을 표시합니다. h3 태그로 렌더링됩니다.
1429
+ * Displays the card title. Renders as h3 tag.
1430
+ *
1431
+ * @component
1432
+ * @param {CardTitleProps} props - CardTitle 컴포넌트의 props / CardTitle component props
1433
+ * @param {React.Ref<HTMLParagraphElement>} ref - h3 요소 ref / h3 element ref
1434
+ * @returns {JSX.Element} CardTitle 컴포넌트 / CardTitle component
1435
+ */
1436
+ declare const CardTitle: React.ForwardRefExoticComponent<CardTitleProps & React.RefAttributes<HTMLParagraphElement>>;
1437
+ /**
1438
+ * CardDescription 컴포넌트의 props / CardDescription component props
1439
+ * @typedef {Object} CardDescriptionProps
1440
+ * @extends {React.HTMLAttributes<HTMLParagraphElement>}
1441
+ */
1442
+ interface CardDescriptionProps extends React.HTMLAttributes<HTMLParagraphElement> {
1443
+ }
1444
+ /**
1445
+ * CardDescription 컴포넌트 / CardDescription component
1446
+ * 카드의 설명 텍스트를 표시합니다.
1447
+ * Displays the card description text.
1448
+ *
1449
+ * @component
1450
+ * @param {CardDescriptionProps} props - CardDescription 컴포넌트의 props / CardDescription component props
1451
+ * @param {React.Ref<HTMLParagraphElement>} ref - p 요소 ref / p element ref
1452
+ * @returns {JSX.Element} CardDescription 컴포넌트 / CardDescription component
1453
+ */
1454
+ declare const CardDescription: React.ForwardRefExoticComponent<CardDescriptionProps & React.RefAttributes<HTMLParagraphElement>>;
1455
+ /**
1456
+ * CardContent 컴포넌트의 props / CardContent component props
1457
+ * @typedef {Object} CardContentProps
1458
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
1459
+ */
1460
+ interface CardContentProps extends React.HTMLAttributes<HTMLDivElement> {
1461
+ }
1462
+ /**
1463
+ * CardContent 컴포넌트 / CardContent component
1464
+ * 카드의 메인 콘텐츠 영역을 표시합니다.
1465
+ * Displays the main content area of a card.
1466
+ *
1467
+ * @component
1468
+ * @param {CardContentProps} props - CardContent 컴포넌트의 props / CardContent component props
1469
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
1470
+ * @returns {JSX.Element} CardContent 컴포넌트 / CardContent component
1471
+ */
1472
+ declare const CardContent: React.ForwardRefExoticComponent<CardContentProps & React.RefAttributes<HTMLDivElement>>;
1473
+ /**
1474
+ * CardFooter 컴포넌트의 props / CardFooter component props
1475
+ * @typedef {Object} CardFooterProps
1476
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
1477
+ */
1478
+ interface CardFooterProps extends React.HTMLAttributes<HTMLDivElement> {
1479
+ }
1480
+ /**
1481
+ * CardFooter 컴포넌트 / CardFooter component
1482
+ * 카드의 푸터 영역을 표시합니다. 주로 액션 버튼을 배치합니다.
1483
+ * Displays the footer area of a card. Typically used for action buttons.
1484
+ *
1485
+ * @component
1486
+ * @param {CardFooterProps} props - CardFooter 컴포넌트의 props / CardFooter component props
1487
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
1488
+ * @returns {JSX.Element} CardFooter 컴포넌트 / CardFooter component
1489
+ */
1490
+ declare const CardFooter: React.ForwardRefExoticComponent<CardFooterProps & React.RefAttributes<HTMLDivElement>>;
1491
+
1492
+ /**
1493
+ * Panel 컴포넌트의 props / Panel component props
1494
+ * @typedef {Object} PanelProps
1495
+ * @property {"default" | "solid" | "glass" | "outline" | "elevated" | "neon" | "holographic" | "cyberpunk" | "minimal" | "luxury"} [style="default"] - Panel 스타일 / Panel style
1496
+ * @property {"none" | "glow" | "shadow" | "gradient" | "animated"} [effect="none"] - Panel 효과 / Panel effect
1497
+ * @property {number} [transparency=1] - 투명도 (0-1) / Transparency (0-1)
1498
+ * @property {number} [blurIntensity=0] - backdrop-blur 강도 (px) / Backdrop blur intensity (px)
1499
+ * @property {number} [borderOpacity=1] - 보더 투명도 (0-1) / Border opacity (0-1)
1500
+ * @property {number} [shadowOpacity=1] - 그림자 투명도 (0-1) / Shadow opacity (0-1)
1501
+ * @property {number} [glowIntensity=0] - 글로우 강도 (px) / Glow intensity (px)
1502
+ * @property {string} [glowColor="blue"] - 글로우 색상 / Glow color
1503
+ * @property {boolean} [particleEffect=false] - 파티클 효과 활성화 / Enable particle effect
1504
+ * @property {boolean} [hoverEffect=false] - 호버 효과 활성화 / Enable hover effect
1505
+ * @property {boolean} [animationEffect=false] - 애니메이션 효과 활성화 / Enable animation effect
1506
+ * @property {"none" | "small" | "sm" | "medium" | "md" | "large" | "lg" | "xl" | "custom"} [padding="md"] - 패딩 크기 / Padding size
1507
+ * @property {string} [customPadding] - 커스텀 패딩 / Custom padding
1508
+ * @property {"none" | "sm" | "md" | "lg" | "xl" | "full" | "custom"} [rounded="lg"] - 둥근 모서리 크기 / Rounded corner size
1509
+ * @property {string} [customRounded] - 커스텀 둥근 모서리 / Custom rounded corners
1510
+ * @property {"solid" | "gradient" | "pattern" | "image" | "video"} [background="solid"] - 배경 타입 / Background type
1511
+ * @property {string[]} [gradientColors] - 그라디언트 색상 배열 / Gradient color array
1512
+ * @property {"dots" | "lines" | "grid" | "waves" | "custom"} [patternType="dots"] - 패턴 타입 / Pattern type
1513
+ * @property {string} [backgroundImage] - 배경 이미지 URL / Background image URL
1514
+ * @property {string} [backgroundVideo] - 배경 비디오 URL / Background video URL
1515
+ * @property {boolean} [interactive=false] - 인터랙티브 모드 활성화 / Enable interactive mode
1516
+ * @property {number} [hoverScale=1.05] - 호버 시 스케일 / Scale on hover
1517
+ * @property {number} [hoverRotate=0] - 호버 시 회전 각도 / Rotation angle on hover
1518
+ * @property {boolean} [hoverGlow=false] - 호버 시 글로우 효과 / Glow effect on hover
1519
+ * @extends {Omit<CardProps, 'variant' | 'style'>}
1520
+ */
1521
+ interface PanelProps extends Omit<CardProps, 'variant' | 'style'> {
1522
+ style?: "default" | "solid" | "glass" | "outline" | "elevated" | "neon" | "holographic" | "cyberpunk" | "minimal" | "luxury";
1523
+ effect?: "none" | "glow" | "shadow" | "gradient" | "animated";
1524
+ transparency?: number;
1525
+ blurIntensity?: number;
1526
+ borderOpacity?: number;
1527
+ shadowOpacity?: number;
1528
+ glowIntensity?: number;
1529
+ glowColor?: string;
1530
+ particleEffect?: boolean;
1531
+ hoverEffect?: boolean;
1532
+ animationEffect?: boolean;
1533
+ padding?: "none" | "small" | "sm" | "medium" | "md" | "large" | "lg" | "xl" | "custom";
1534
+ customPadding?: string;
1535
+ rounded?: "none" | "sm" | "md" | "lg" | "xl" | "full" | "custom";
1536
+ customRounded?: string;
1537
+ background?: "solid" | "gradient" | "pattern" | "image" | "video";
1538
+ gradientColors?: string[];
1539
+ patternType?: "dots" | "lines" | "grid" | "waves" | "custom";
1540
+ backgroundImage?: string;
1541
+ backgroundVideo?: string;
1542
+ interactive?: boolean;
1543
+ hoverScale?: number;
1544
+ hoverRotate?: number;
1545
+ hoverGlow?: boolean;
1546
+ }
1547
+ /**
1548
+ * Panel 컴포넌트 / Panel component
1549
+ *
1550
+ * 고급 스타일링 옵션을 가진 패널 컴포넌트입니다.
1551
+ * 다양한 스타일, 효과, 배경 옵션을 지원합니다.
1552
+ * Card 컴포넌트를 기반으로 하며, 추가적인 고급 기능을 제공합니다.
1553
+ *
1554
+ * Panel component with advanced styling options.
1555
+ * Supports various styles, effects, and background options.
1556
+ * Based on Card component with additional advanced features.
1557
+ *
1558
+ * @component
1559
+ * @example
1560
+ * // 기본 사용 / Basic usage
1561
+ * <Panel>
1562
+ * <div>내용</div>
1563
+ * </Panel>
1564
+ *
1565
+ * @example
1566
+ * // Glass 스타일 / Glass style
1567
+ * <Panel style="glass" effect="glow">
1568
+ * <div>Glass 패널</div>
1569
+ * </Panel>
1570
+ *
1571
+ * @example
1572
+ * // 인터랙티브 패널 / Interactive panel
1573
+ * <Panel
1574
+ * style="neon"
1575
+ * interactive
1576
+ * hoverScale={1.1}
1577
+ * hoverGlow
1578
+ * >
1579
+ * <div>호버 효과</div>
1580
+ * </Panel>
1581
+ *
1582
+ * @param {PanelProps} props - Panel 컴포넌트의 props / Panel component props
1583
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
1584
+ * @returns {JSX.Element} Panel 컴포넌트 / Panel component
1585
+ */
1586
+ declare const Panel: React.ForwardRefExoticComponent<PanelProps & React.RefAttributes<HTMLDivElement>>;
1587
+
1588
+ /**
1589
+ * ActionButton 인터페이스
1590
+ * @typedef {Object} ActionButton
1591
+ * @property {string} label - 버튼 라벨 (데스크톱)
1592
+ * @property {string} [labelMobile] - 버튼 라벨 (모바일, 없으면 label 사용)
1593
+ * @property {IconName} [icon] - 버튼 아이콘
1594
+ * @property {() => void} onClick - 클릭 핸들러
1595
+ * @property {boolean} [disabled] - 비활성화 여부
1596
+ * @property {'default' | 'outline' | 'destructive' | 'ghost'} [variant='outline'] - 버튼 스타일
1597
+ * @property {Object} [badge] - 배지 정보
1598
+ * @property {number} badge.count - 배지 숫자
1599
+ * @property {'blue' | 'red' | 'gray' | 'green'} [badge.color='gray'] - 배지 색상
1600
+ * @property {string} [className] - 추가 CSS 클래스
1601
+ */
1602
+ interface ActionButton {
1603
+ label: string;
1604
+ labelMobile?: string;
1605
+ icon?: IconName;
1606
+ onClick: () => void;
1607
+ disabled?: boolean;
1608
+ variant?: 'default' | 'outline' | 'destructive' | 'ghost';
1609
+ badge?: {
1610
+ count: number;
1611
+ color?: 'blue' | 'red' | 'gray' | 'green';
1612
+ };
1613
+ className?: string;
1614
+ }
1615
+ /**
1616
+ * ActionToolbar 컴포넌트의 props / ActionToolbar component props
1617
+ * @typedef {Object} ActionToolbarProps
1618
+ * @property {boolean} [isSelectMode=false] - 선택 모드 활성화 여부 / Enable select mode
1619
+ * @property {number} [totalCount=0] - 전체 항목 개수 / Total item count
1620
+ * @property {number} [selectedCount=0] - 선택된 항목 개수 / Selected item count
1621
+ * @property {ActionButton[]} [actions=[]] - 일반 모드 액션 버튼들 / Normal mode action buttons
1622
+ * @property {ActionButton[]} [selectModeActions=[]] - 선택 모드 액션 버튼들 / Select mode action buttons
1623
+ * @property {() => void} [onToggleSelectMode] - 선택 모드 토글 함수 / Toggle select mode function
1624
+ * @property {() => void} [onToggleSelectAll] - 전체 선택/해제 함수 / Toggle select all function
1625
+ * @property {() => void} [onCancelSelect] - 선택 모드 취소 함수 / Cancel select mode function
1626
+ * @property {boolean} [loading=false] - 로딩 상태 / Loading state
1627
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
1628
+ */
1629
+ interface ActionToolbarProps extends React.HTMLAttributes<HTMLDivElement> {
1630
+ /** 선택 모드 활성화 여부 */
1631
+ isSelectMode?: boolean;
1632
+ /** 전체 항목 개수 */
1633
+ totalCount?: number;
1634
+ /** 선택된 항목 개수 */
1635
+ selectedCount?: number;
1636
+ /** 일반 모드 액션 버튼들 */
1637
+ actions?: ActionButton[];
1638
+ /** 선택 모드 액션 버튼들 */
1639
+ selectModeActions?: ActionButton[];
1640
+ /** 선택 모드 토글 함수 */
1641
+ onToggleSelectMode?: () => void;
1642
+ /** 전체 선택/해제 함수 */
1643
+ onToggleSelectAll?: () => void;
1644
+ /** 선택 모드 취소 함수 */
1645
+ onCancelSelect?: () => void;
1646
+ /** 로딩 상태 */
1647
+ loading?: boolean;
1648
+ }
1649
+ declare const ActionToolbar: React.NamedExoticComponent<ActionToolbarProps & React.RefAttributes<HTMLDivElement>>;
1650
+
1651
+ /**
1652
+ * Navigation 컴포넌트의 props / Navigation component props
1653
+ * @typedef {Object} NavigationProps
1654
+ * @property {string} [value] - 제어 모드에서 활성 탭 값 / Active tab value in controlled mode
1655
+ * @property {string} [defaultValue] - 비제어 모드에서 기본 활성 탭 값 / Default active tab value in uncontrolled mode
1656
+ * @property {(value: string) => void} [onValueChange] - 탭 변경 콜백 / Tab change callback
1657
+ * @property {"pills" | "underline" | "cards"} [variant="pills"] - Navigation 스타일 변형 / Navigation style variant
1658
+ * @property {"small" | "medium" | "large"} [scale="medium"] - Navigation 크기 / Navigation size
1659
+ * @extends {Omit<React.HTMLAttributes<HTMLDivElement>, 'style'>}
1660
+ */
1661
+ interface NavigationProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'style'> {
1662
+ value?: string;
1663
+ defaultValue?: string;
1664
+ onValueChange?: (value: string) => void;
1665
+ variant?: "pills" | "underline" | "cards";
1666
+ scale?: "small" | "medium" | "large";
1667
+ }
1668
+ /**
1669
+ * NavigationList 컴포넌트의 props / NavigationList component props
1670
+ * @typedef {Object} NavigationListProps
1671
+ * @property {string} [value] - 활성 탭 값 / Active tab value
1672
+ * @property {(value: string) => void} [onValueChange] - 탭 변경 콜백 / Tab change callback
1673
+ * @property {"pills" | "underline" | "cards"} [variant="pills"] - Navigation 스타일 변형 / Navigation style variant
1674
+ * @property {"small" | "medium" | "large"} [scale="medium"] - Navigation 크기 / Navigation size
1675
+ * @extends {Omit<React.HTMLAttributes<HTMLDivElement>, 'style'>}
1676
+ */
1677
+ interface NavigationListProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'style'> {
1678
+ value?: string;
1679
+ onValueChange?: (value: string) => void;
1680
+ variant?: "pills" | "underline" | "cards";
1681
+ scale?: "small" | "medium" | "large";
1682
+ }
1683
+ declare const NavigationList: React.ForwardRefExoticComponent<NavigationListProps & React.RefAttributes<HTMLDivElement>>;
1684
+ /**
1685
+ * NavigationItem 컴포넌트의 props / NavigationItem component props
1686
+ * @typedef {Object} NavigationItemProps
1687
+ * @property {string} value - 탭 값 / Tab value
1688
+ * @property {(value: string) => void} [onValueChange] - 탭 변경 콜백 / Tab change callback
1689
+ * @property {"pills" | "underline" | "cards"} [variant] - Navigation 스타일 변형 (자동으로 설정됨) / Navigation style variant (auto-set)
1690
+ * @property {"small" | "medium" | "large"} [scale] - Navigation 크기 (자동으로 설정됨) / Navigation size (auto-set)
1691
+ * @property {boolean} [active] - 활성 상태 (자동으로 설정됨) / Active state (auto-set)
1692
+ * @extends {Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'style'>}
1693
+ */
1694
+ interface NavigationItemProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'style'> {
1695
+ value: string;
1696
+ onValueChange?: (value: string) => void;
1697
+ variant?: "pills" | "underline" | "cards";
1698
+ scale?: "small" | "medium" | "large";
1699
+ active?: boolean;
1700
+ }
1701
+ declare const NavigationItem: React.ForwardRefExoticComponent<NavigationItemProps & React.RefAttributes<HTMLButtonElement>>;
1702
+ /**
1703
+ * NavigationContent 컴포넌트의 props / NavigationContent component props
1704
+ * @typedef {Object} NavigationContentProps
1705
+ * @property {string} value - 탭 값 / Tab value
1706
+ * @property {boolean} [active] - 활성 상태 (자동으로 설정됨) / Active state (auto-set)
1707
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
1708
+ */
1709
+ interface NavigationContentProps extends React.HTMLAttributes<HTMLDivElement> {
1710
+ value: string;
1711
+ active?: boolean;
1712
+ }
1713
+ declare const NavigationContent: React.ForwardRefExoticComponent<NavigationContentProps & React.RefAttributes<HTMLDivElement>>;
1714
+ interface NavigationComponent extends React.ForwardRefExoticComponent<NavigationProps & React.RefAttributes<HTMLDivElement>> {
1715
+ List: typeof NavigationList;
1716
+ Item: typeof NavigationItem;
1717
+ Content: typeof NavigationContent;
1718
+ }
1719
+ declare const NavigationComponent: NavigationComponent;
1720
+
1721
+ /**
1722
+ * Breadcrumb 항목 타입 / Breadcrumb item type
1723
+ */
1724
+ interface BreadcrumbItemData {
1725
+ label: string;
1726
+ href?: string;
1727
+ icon?: string;
1728
+ }
1729
+ /**
1730
+ * Breadcrumb 컴포넌트의 props / Breadcrumb component props
1731
+ * @typedef {Object} BreadcrumbProps
1732
+ * @property {React.ReactNode} [children] - BreadcrumbItem 컴포넌트들 / BreadcrumbItem components
1733
+ * @property {BreadcrumbItemData[]} [items] - Breadcrumb 항목 배열 (children 대신 사용 가능) / Breadcrumb items array (alternative to children)
1734
+ * @property {number} [maxItems] - 최대 표시할 항목 수 (긴 경로 처리) / Maximum number of items to display (for long paths)
1735
+ * @property {boolean} [showHomeIcon] - 홈 아이콘 표시 여부 / Show home icon
1736
+ * @property {string} [homeLabel] - 홈 라벨 (기본: "Home") / Home label (default: "Home")
1737
+ * @property {React.ReactNode} [separator] - 항목 사이 구분자 (기본: chevronRight 아이콘) / Separator between items (default: chevronRight icon)
1738
+ * @property {'default' | 'subtle' | 'transparent' | 'glass'} [variant='default'] - Breadcrumb 스타일 변형 / Breadcrumb style variant
1739
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
1740
+ */
1741
+ interface BreadcrumbProps extends React.HTMLAttributes<HTMLDivElement> {
1742
+ children?: React.ReactNode;
1743
+ items?: BreadcrumbItemData[];
1744
+ maxItems?: number;
1745
+ showHomeIcon?: boolean;
1746
+ homeLabel?: string;
1747
+ separator?: React.ReactNode;
1748
+ variant?: 'default' | 'subtle' | 'transparent' | 'glass';
1749
+ }
1750
+ /**
1751
+ * BreadcrumbItem 컴포넌트의 props / BreadcrumbItem component props
1752
+ * @typedef {Object} BreadcrumbItemProps
1753
+ * @property {string} [href] - 링크 URL (없으면 일반 텍스트) / Link URL (plain text if not provided)
1754
+ * @property {boolean} [isCurrent=false] - 현재 페이지 여부 / Current page indicator
1755
+ * @property {React.ReactNode} children - 항목 텍스트 / Item text
1756
+ * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class
1757
+ */
1758
+ interface BreadcrumbItemProps {
1759
+ href?: string;
1760
+ isCurrent?: boolean;
1761
+ children: React.ReactNode;
1762
+ className?: string;
1763
+ }
1764
+ /**
1765
+ * Breadcrumb 컴포넌트 / Breadcrumb component
1766
+ *
1767
+ * 네비게이션 경로를 표시하는 breadcrumb 컴포넌트입니다.
1768
+ * 현재 위치와 경로를 시각적으로 표현합니다.
1769
+ *
1770
+ * Breadcrumb component for displaying navigation paths.
1771
+ * Visually represents current location and path.
1772
+ *
1773
+ * @component
1774
+ * @example
1775
+ * // 기본 사용 / Basic usage
1776
+ * <Breadcrumb>
1777
+ * <BreadcrumbItem href="/">홈</BreadcrumbItem>
1778
+ * <BreadcrumbItem href="/products">상품</BreadcrumbItem>
1779
+ * <BreadcrumbItem isCurrent>상세</BreadcrumbItem>
1780
+ * </Breadcrumb>
1781
+ *
1782
+ * @example
1783
+ * // 커스텀 구분자 / Custom separator
1784
+ * <Breadcrumb separator={<span>/</span>}>
1785
+ * <BreadcrumbItem href="/">홈</BreadcrumbItem>
1786
+ * <BreadcrumbItem isCurrent>현재</BreadcrumbItem>
1787
+ * </Breadcrumb>
1788
+ *
1789
+ * @param {BreadcrumbProps} props - Breadcrumb 컴포넌트의 props / Breadcrumb component props
1790
+ * @param {React.Ref<HTMLDivElement>} ref - nav 요소 ref / nav element ref
1791
+ * @returns {JSX.Element} Breadcrumb 컴포넌트 / Breadcrumb component
1792
+ */
1793
+ declare const Breadcrumb: React.ForwardRefExoticComponent<BreadcrumbProps & React.RefAttributes<HTMLDivElement>>;
1794
+ /**
1795
+ * BreadcrumbItem 컴포넌트
1796
+ * Breadcrumb의 개별 항목을 표시합니다.
1797
+ *
1798
+ * @component
1799
+ * @param {BreadcrumbItemProps} props - BreadcrumbItem 컴포넌트의 props
1800
+ * @param {React.Ref<HTMLLIElement>} ref - li 요소 ref
1801
+ * @returns {JSX.Element} BreadcrumbItem 컴포넌트
1802
+ */
1803
+ declare const BreadcrumbItem: React.ForwardRefExoticComponent<BreadcrumbItemProps & React.RefAttributes<HTMLLIElement>>;
1804
+
1805
+ /**
1806
+ * Pagination 컴포넌트의 props / Pagination component props
1807
+ * @typedef {Object} PaginationProps
1808
+ * @property {number} currentPage - 현재 페이지 번호 / Current page number
1809
+ * @property {number} totalPages - 전체 페이지 수 / Total number of pages
1810
+ * @property {(page: number) => void} onPageChange - 페이지 변경 콜백 / Page change callback
1811
+ * @property {boolean} [showFirstLast=true] - 첫/마지막 페이지 버튼 표시 여부 / Show first/last page buttons
1812
+ * @property {boolean} [showPrevNext=true] - 이전/다음 페이지 버튼 표시 여부 / Show previous/next page buttons
1813
+ * @property {number} [maxVisiblePages=5] - 최대 표시 페이지 수 / Maximum visible page numbers
1814
+ * @property {"sm" | "md" | "lg"} [size="md"] - Pagination 크기 / Pagination size
1815
+ * @property {"default" | "outlined" | "minimal"} [variant="default"] - Pagination 스타일 변형 / Pagination style variant
1816
+ * @property {"square" | "circle"} [shape="square"] - 버튼 모양 / Button shape
1817
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
1818
+ */
1819
+ interface PaginationProps extends React.HTMLAttributes<HTMLDivElement> {
1820
+ currentPage: number;
1821
+ totalPages: number;
1822
+ onPageChange: (page: number) => void;
1823
+ showFirstLast?: boolean;
1824
+ showPrevNext?: boolean;
1825
+ maxVisiblePages?: number;
1826
+ size?: "sm" | "md" | "lg";
1827
+ variant?: "default" | "outlined" | "minimal";
1828
+ shape?: "square" | "circle";
1829
+ }
1830
+ /**
1831
+ * Pagination 컴포넌트 / Pagination component
1832
+ *
1833
+ * 페이지네이션 컨트롤을 제공하는 컴포넌트입니다.
1834
+ * 첫/마지막 페이지, 이전/다음 페이지 버튼을 지원하며,
1835
+ * 많은 페이지가 있을 경우 자동으로 생략 표시(...)를 합니다.
1836
+ *
1837
+ * Component that provides pagination controls.
1838
+ * Supports first/last page and previous/next page buttons,
1839
+ * and automatically shows ellipsis (...) when there are many pages.
1840
+ *
1841
+ * @component
1842
+ * @example
1843
+ * // 기본 사용 / Basic usage
1844
+ * const [page, setPage] = useState(1)
1845
+ *
1846
+ * <Pagination
1847
+ * currentPage={page}
1848
+ * totalPages={10}
1849
+ * onPageChange={setPage}
1850
+ * />
1851
+ *
1852
+ * @example
1853
+ * // Outlined 스타일, 원형 버튼 / Outlined style, circular buttons
1854
+ * <Pagination
1855
+ * currentPage={page}
1856
+ * totalPages={20}
1857
+ * onPageChange={setPage}
1858
+ * variant="outlined"
1859
+ * shape="circle"
1860
+ * />
1861
+ *
1862
+ * @param {PaginationProps} props - Pagination 컴포넌트의 props / Pagination component props
1863
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
1864
+ * @returns {JSX.Element} Pagination 컴포넌트 / Pagination component
1865
+ */
1866
+ declare const Pagination: React.ForwardRefExoticComponent<PaginationProps & React.RefAttributes<HTMLDivElement>>;
1867
+ declare const PaginationOutlined: React.ForwardRefExoticComponent<Omit<PaginationProps, "variant"> & React.RefAttributes<HTMLDivElement>>;
1868
+ declare const PaginationMinimal: React.ForwardRefExoticComponent<Omit<PaginationProps, "variant"> & React.RefAttributes<HTMLDivElement>>;
1869
+ declare const PaginationWithInfo: React.ForwardRefExoticComponent<PaginationProps & {
1870
+ totalItems?: number;
1871
+ itemsPerPage?: number;
1872
+ showInfo?: boolean;
1873
+ } & React.RefAttributes<HTMLDivElement>>;
1874
+
1875
+ /**
1876
+ * Table 컴포넌트의 props / Table component props
1877
+ * @typedef {Object} TableProps
1878
+ * @property {React.ReactNode} children - TableHeader, TableBody, TableFooter 등 / TableHeader, TableBody, TableFooter, etc.
1879
+ * @property {"default" | "bordered" | "striped"} [variant="default"] - Table 스타일 변형 / Table style variant
1880
+ * @property {"sm" | "md" | "lg"} [size="md"] - Table 크기 / Table size
1881
+ * @extends {React.HTMLAttributes<HTMLTableElement>}
1882
+ */
1883
+ interface TableProps extends React.HTMLAttributes<HTMLTableElement> {
1884
+ children: React.ReactNode;
1885
+ variant?: "default" | "bordered" | "striped";
1886
+ size?: "sm" | "md" | "lg";
1887
+ }
1888
+ /**
1889
+ * TableHeader 컴포넌트의 props / TableHeader component props
1890
+ * @typedef {Object} TableHeaderProps
1891
+ * @property {React.ReactNode} children - TableHead 컴포넌트들 / TableHead components
1892
+ * @extends {React.HTMLAttributes<HTMLTableSectionElement>}
1893
+ */
1894
+ interface TableHeaderProps extends React.HTMLAttributes<HTMLTableSectionElement> {
1895
+ children: React.ReactNode;
1896
+ }
1897
+ /**
1898
+ * TableBody 컴포넌트의 props / TableBody component props
1899
+ * @typedef {Object} TableBodyProps
1900
+ * @property {React.ReactNode} children - TableRow 컴포넌트들 / TableRow components
1901
+ * @extends {React.HTMLAttributes<HTMLTableSectionElement>}
1902
+ */
1903
+ interface TableBodyProps extends React.HTMLAttributes<HTMLTableSectionElement> {
1904
+ children: React.ReactNode;
1905
+ }
1906
+ /**
1907
+ * TableFooter 컴포넌트의 props / TableFooter component props
1908
+ * @typedef {Object} TableFooterProps
1909
+ * @property {React.ReactNode} children - TableRow 컴포넌트들 / TableRow components
1910
+ * @extends {React.HTMLAttributes<HTMLTableSectionElement>}
1911
+ */
1912
+ interface TableFooterProps extends React.HTMLAttributes<HTMLTableSectionElement> {
1913
+ children: React.ReactNode;
1914
+ }
1915
+ /**
1916
+ * TableRow 컴포넌트의 props / TableRow component props
1917
+ * @typedef {Object} TableRowProps
1918
+ * @property {React.ReactNode} children - TableHead 또는 TableCell 컴포넌트들 / TableHead or TableCell components
1919
+ * @property {"default" | "hover"} [variant="default"] - Row 스타일 변형 / Row style variant
1920
+ * @extends {React.HTMLAttributes<HTMLTableRowElement>}
1921
+ */
1922
+ interface TableRowProps extends React.HTMLAttributes<HTMLTableRowElement> {
1923
+ children: React.ReactNode;
1924
+ variant?: "default" | "hover";
1925
+ }
1926
+ /**
1927
+ * TableHead 컴포넌트의 props / TableHead component props
1928
+ * @typedef {Object} TableHeadProps
1929
+ * @property {React.ReactNode} children - 헤더 셀 내용 / Header cell content
1930
+ * @extends {React.ThHTMLAttributes<HTMLTableCellElement>}
1931
+ */
1932
+ interface TableHeadProps extends React.ThHTMLAttributes<HTMLTableCellElement> {
1933
+ children: React.ReactNode;
1934
+ }
1935
+ /**
1936
+ * TableCell 컴포넌트의 props / TableCell component props
1937
+ * @typedef {Object} TableCellProps
1938
+ * @property {React.ReactNode} children - 셀 내용 / Cell content
1939
+ * @extends {React.TdHTMLAttributes<HTMLTableCellElement>}
1940
+ */
1941
+ interface TableCellProps extends React.TdHTMLAttributes<HTMLTableCellElement> {
1942
+ children: React.ReactNode;
1943
+ }
1944
+ /**
1945
+ * Table 컴포넌트 / Table component
1946
+ *
1947
+ * 데이터를 표 형태로 표시하는 테이블 컴포넌트입니다.
1948
+ * TableHeader, TableBody, TableFooter, TableRow, TableHead, TableCell과 함께 사용합니다.
1949
+ *
1950
+ * Table component that displays data in tabular format.
1951
+ * Used with TableHeader, TableBody, TableFooter, TableRow, TableHead, and TableCell.
1952
+ *
1953
+ * @component
1954
+ * @example
1955
+ * // 기본 사용 / Basic usage
1956
+ * <Table>
1957
+ * <TableHeader>
1958
+ * <TableRow>
1959
+ * <TableHead>이름</TableHead>
1960
+ * <TableHead>나이</TableHead>
1961
+ * </TableRow>
1962
+ * </TableHeader>
1963
+ * <TableBody>
1964
+ * <TableRow>
1965
+ * <TableCell>홍길동</TableCell>
1966
+ * <TableCell>30</TableCell>
1967
+ * </TableRow>
1968
+ * </TableBody>
1969
+ * </Table>
1970
+ *
1971
+ * @example
1972
+ * // Bordered 스타일 / Bordered style
1973
+ * <Table variant="bordered">
1974
+ * <TableHeader>
1975
+ * <TableRow>
1976
+ * <TableHead>항목</TableHead>
1977
+ * </TableRow>
1978
+ * </TableHeader>
1979
+ * <TableBody>
1980
+ * <TableRow>
1981
+ * <TableCell>값</TableCell>
1982
+ * </TableRow>
1983
+ * </TableBody>
1984
+ * </Table>
1985
+ *
1986
+ * @example
1987
+ * // Striped 스타일, 호버 효과 / Striped style with hover effect
1988
+ * <Table variant="striped">
1989
+ * <TableBody>
1990
+ * <TableRow variant="hover">
1991
+ * <TableCell>데이터</TableCell>
1992
+ * </TableRow>
1993
+ * </TableBody>
1994
+ * </Table>
1995
+ *
1996
+ * @param {TableProps} props - Table 컴포넌트의 props / Table component props
1997
+ * @param {React.Ref<HTMLTableElement>} ref - table 요소 ref / table element ref
1998
+ * @returns {JSX.Element} Table 컴포넌트 / Table component
1999
+ */
2000
+ declare const Table: React.ForwardRefExoticComponent<TableProps & React.RefAttributes<HTMLTableElement>>;
2001
+ /**
2002
+ * TableHeader 컴포넌트 / TableHeader component
2003
+ * 테이블의 헤더 영역을 표시합니다.
2004
+ * Displays the header area of a table.
2005
+ *
2006
+ * @component
2007
+ * @param {TableHeaderProps} props - TableHeader 컴포넌트의 props / TableHeader component props
2008
+ * @param {React.Ref<HTMLTableSectionElement>} ref - thead 요소 ref / thead element ref
2009
+ * @returns {JSX.Element} TableHeader 컴포넌트 / TableHeader component
2010
+ */
2011
+ declare const TableHeader: React.ForwardRefExoticComponent<TableHeaderProps & React.RefAttributes<HTMLTableSectionElement>>;
2012
+ /**
2013
+ * TableBody 컴포넌트 / TableBody component
2014
+ * 테이블의 본문 영역을 표시합니다.
2015
+ * Displays the body area of a table.
2016
+ *
2017
+ * @component
2018
+ * @param {TableBodyProps} props - TableBody 컴포넌트의 props / TableBody component props
2019
+ * @param {React.Ref<HTMLTableSectionElement>} ref - tbody 요소 ref / tbody element ref
2020
+ * @returns {JSX.Element} TableBody 컴포넌트 / TableBody component
2021
+ */
2022
+ declare const TableBody: React.ForwardRefExoticComponent<TableBodyProps & React.RefAttributes<HTMLTableSectionElement>>;
2023
+ /**
2024
+ * TableFooter 컴포넌트 / TableFooter component
2025
+ * 테이블의 푸터 영역을 표시합니다.
2026
+ * Displays the footer area of a table.
2027
+ *
2028
+ * @component
2029
+ * @param {TableFooterProps} props - TableFooter 컴포넌트의 props / TableFooter component props
2030
+ * @param {React.Ref<HTMLTableSectionElement>} ref - tfoot 요소 ref / tfoot element ref
2031
+ * @returns {JSX.Element} TableFooter 컴포넌트 / TableFooter component
2032
+ */
2033
+ declare const TableFooter: React.ForwardRefExoticComponent<TableFooterProps & React.RefAttributes<HTMLTableSectionElement>>;
2034
+ /**
2035
+ * TableRow 컴포넌트 / TableRow component
2036
+ * 테이블의 행을 표시합니다.
2037
+ * Displays a table row.
2038
+ *
2039
+ * @component
2040
+ * @param {TableRowProps} props - TableRow 컴포넌트의 props / TableRow component props
2041
+ * @param {React.Ref<HTMLTableRowElement>} ref - tr 요소 ref / tr element ref
2042
+ * @returns {JSX.Element} TableRow 컴포넌트 / TableRow component
2043
+ */
2044
+ declare const TableRow: React.ForwardRefExoticComponent<TableRowProps & React.RefAttributes<HTMLTableRowElement>>;
2045
+ /**
2046
+ * TableHead 컴포넌트 / TableHead component
2047
+ * 테이블의 헤더 셀을 표시합니다.
2048
+ * Displays a table header cell.
2049
+ *
2050
+ * @component
2051
+ * @param {TableHeadProps} props - TableHead 컴포넌트의 props / TableHead component props
2052
+ * @param {React.Ref<HTMLTableCellElement>} ref - th 요소 ref / th element ref
2053
+ * @returns {JSX.Element} TableHead 컴포넌트 / TableHead component
2054
+ */
2055
+ declare const TableHead: React.ForwardRefExoticComponent<TableHeadProps & React.RefAttributes<HTMLTableCellElement>>;
2056
+ /**
2057
+ * TableCell 컴포넌트 / TableCell component
2058
+ * 테이블의 데이터 셀을 표시합니다.
2059
+ * Displays a table data cell.
2060
+ *
2061
+ * @component
2062
+ * @param {TableCellProps} props - TableCell 컴포넌트의 props / TableCell component props
2063
+ * @param {React.Ref<HTMLTableCellElement>} ref - td 요소 ref / td element ref
2064
+ * @returns {JSX.Element} TableCell 컴포넌트 / TableCell component
2065
+ */
2066
+ declare const TableCell: React.ForwardRefExoticComponent<TableCellProps & React.RefAttributes<HTMLTableCellElement>>;
2067
+ /**
2068
+ * TableCaption 컴포넌트 / TableCaption component
2069
+ * 테이블의 캡션을 표시합니다.
2070
+ * Displays a table caption.
2071
+ *
2072
+ * @component
2073
+ * @param {React.HTMLAttributes<HTMLTableCaptionElement>} props - TableCaption 컴포넌트의 props / TableCaption component props
2074
+ * @param {React.Ref<HTMLTableCaptionElement>} ref - caption 요소 ref / caption element ref
2075
+ * @returns {JSX.Element} TableCaption 컴포넌트 / TableCaption component
2076
+ */
2077
+ declare const TableCaption: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableCaptionElement> & React.RefAttributes<HTMLTableCaptionElement>>;
2078
+
2079
+ /**
2080
+ * Badge 컴포넌트의 props / Badge component props
2081
+ * @typedef {Object} BadgeProps
2082
+ * @property {"default" | "secondary" | "destructive" | "error" | "outline" | "glass"} [variant="default"] - Badge 스타일 변형 / Badge style variant
2083
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
2084
+ */
2085
+ interface BadgeProps extends React.HTMLAttributes<HTMLDivElement> {
2086
+ variant?: "default" | "secondary" | "destructive" | "error" | "outline" | "glass";
2087
+ }
2088
+ /**
2089
+ * Badge 컴포넌트 / Badge component
2090
+ *
2091
+ * 상태나 카테고리를 표시하는 작은 배지 컴포넌트입니다.
2092
+ * React.memo로 최적화되어 있어 불필요한 리렌더링을 방지합니다.
2093
+ *
2094
+ * Small badge component for displaying status or category.
2095
+ * Optimized with React.memo to prevent unnecessary re-renders.
2096
+ *
2097
+ * @component
2098
+ * @example
2099
+ * // 기본 사용 / Basic usage
2100
+ * <Badge>New</Badge>
2101
+ *
2102
+ * @example
2103
+ * // 다양한 변형 / Various variants
2104
+ * <Badge variant="destructive">완료</Badge>
2105
+ * <Badge variant="error">오류</Badge>
2106
+ * <Badge variant="outline">대기</Badge>
2107
+ *
2108
+ * @param {BadgeProps} props - Badge 컴포넌트의 props / Badge component props
2109
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
2110
+ * @returns {JSX.Element} Badge 컴포넌트 / Badge component
2111
+ */
2112
+ declare const Badge: React.NamedExoticComponent<BadgeProps & React.RefAttributes<HTMLDivElement>>;
2113
+
2114
+ /**
2115
+ * Progress 컴포넌트의 props
2116
+ * @typedef {Object} ProgressProps
2117
+ * @property {number} [value=0] - 진행률 값
2118
+ * @property {number} [max=100] - 최대값
2119
+ * @property {"sm" | "md" | "lg"} [size="md"] - Progress 바 크기
2120
+ * @property {"default" | "success" | "warning" | "error" | "info" | "glass"} [variant="default"] - Progress 스타일 변형
2121
+ * @property {boolean} [showValue=false] - 진행률 퍼센트 표시 여부
2122
+ * @property {boolean} [animated=true] - 애니메이션 활성화 여부
2123
+ * @property {boolean} [striped=false] - 줄무늬 패턴 표시 여부
2124
+ * @property {string} [label] - Progress 라벨 텍스트
2125
+ * @property {string} [description] - Progress 설명 텍스트
2126
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
2127
+ */
2128
+ interface ProgressProps extends React.HTMLAttributes<HTMLDivElement> {
2129
+ value?: number;
2130
+ max?: number;
2131
+ size?: "sm" | "md" | "lg";
2132
+ variant?: "default" | "success" | "warning" | "error" | "info" | "glass";
2133
+ showValue?: boolean;
2134
+ animated?: boolean;
2135
+ striped?: boolean;
2136
+ label?: string;
2137
+ description?: string;
2138
+ }
2139
+ /**
2140
+ * Progress 컴포넌트 / Progress component
2141
+ *
2142
+ * 진행률을 표시하는 프로그레스 바 컴포넌트입니다.
2143
+ * 다양한 스타일과 애니메이션을 지원합니다.
2144
+ *
2145
+ * Progress bar component that displays progress.
2146
+ * Supports various styles and animations.
2147
+ *
2148
+ * @component
2149
+ * @example
2150
+ * // 기본 사용 / Basic usage
2151
+ * <Progress value={50} />
2152
+ *
2153
+ * @example
2154
+ * // 라벨과 값 표시 / Show label and value
2155
+ * <Progress
2156
+ * value={75}
2157
+ * label="업로드 진행률"
2158
+ * showValue
2159
+ * />
2160
+ *
2161
+ * @example
2162
+ * // Success 스타일, 줄무늬 패턴 / Success style, striped pattern
2163
+ * <Progress
2164
+ * value={90}
2165
+ * variant="success"
2166
+ * striped
2167
+ * animated
2168
+ * />
2169
+ *
2170
+ * @param {ProgressProps} props - Progress 컴포넌트의 props / Progress component props
2171
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
2172
+ * @returns {JSX.Element} Progress 컴포넌트 / Progress component
2173
+ */
2174
+ declare const Progress: React.ForwardRefExoticComponent<ProgressProps & React.RefAttributes<HTMLDivElement>>;
2175
+ declare const ProgressSuccess: React.ForwardRefExoticComponent<Omit<ProgressProps, "variant"> & React.RefAttributes<HTMLDivElement>>;
2176
+ declare const ProgressWarning: React.ForwardRefExoticComponent<Omit<ProgressProps, "variant"> & React.RefAttributes<HTMLDivElement>>;
2177
+ declare const ProgressError: React.ForwardRefExoticComponent<Omit<ProgressProps, "variant"> & React.RefAttributes<HTMLDivElement>>;
2178
+ declare const ProgressInfo: React.ForwardRefExoticComponent<Omit<ProgressProps, "variant"> & React.RefAttributes<HTMLDivElement>>;
2179
+ declare const ProgressGroup: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
2180
+
2181
+ /**
2182
+ * Skeleton 컴포넌트의 props
2183
+ * @typedef {Object} SkeletonProps
2184
+ * @property {"text" | "circular" | "rectangular" | "rounded"} [variant="text"] - Skeleton 모양
2185
+ * @property {string | number} [width] - 너비 (기본값: variant에 따라 다름)
2186
+ * @property {string | number} [height] - 높이 (기본값: variant에 따라 다름)
2187
+ * @property {"pulse" | "wave" | "shimmer"} [animation="pulse"] - 애니메이션 타입
2188
+ * @property {string} [className] - 추가 CSS 클래스
2189
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
2190
+ */
2191
+ interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {
2192
+ variant?: "text" | "circular" | "rectangular" | "rounded";
2193
+ width?: string | number;
2194
+ height?: string | number;
2195
+ animation?: "pulse" | "wave" | "shimmer";
2196
+ className?: string;
2197
+ }
2198
+ /**
2199
+ * Skeleton 컴포넌트 / Skeleton component
2200
+ *
2201
+ * 로딩 중 콘텐츠의 플레이스홀더를 표시하는 스켈레톤 컴포넌트입니다.
2202
+ * 다양한 모양과 애니메이션을 지원합니다.
2203
+ *
2204
+ * Skeleton component that displays placeholders for content while loading.
2205
+ * Supports various shapes and animations.
2206
+ *
2207
+ * @component
2208
+ * @example
2209
+ * // 기본 사용 (텍스트) / Basic usage (text)
2210
+ * <Skeleton />
2211
+ *
2212
+ * @example
2213
+ * // 원형 아바타 / Circular avatar
2214
+ * <Skeleton variant="circular" width={40} height={40} />
2215
+ *
2216
+ * @example
2217
+ * // Wave 애니메이션 / Wave animation
2218
+ * <Skeleton
2219
+ * variant="rounded"
2220
+ * width="100%"
2221
+ * height={200}
2222
+ * animation="wave"
2223
+ * />
2224
+ *
2225
+ * @param {SkeletonProps} props - Skeleton 컴포넌트의 props / Skeleton component props
2226
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
2227
+ * @returns {JSX.Element} Skeleton 컴포넌트 / Skeleton component
2228
+ */
2229
+ declare const Skeleton: React.ForwardRefExoticComponent<SkeletonProps & React.RefAttributes<HTMLDivElement>>;
2230
+ declare const SkeletonText: React.ForwardRefExoticComponent<Omit<SkeletonProps, "variant"> & React.RefAttributes<HTMLDivElement>>;
2231
+ declare const SkeletonCircle: React.ForwardRefExoticComponent<Omit<SkeletonProps, "variant"> & React.RefAttributes<HTMLDivElement>>;
2232
+ declare const SkeletonRectangle: React.ForwardRefExoticComponent<Omit<SkeletonProps, "variant"> & React.RefAttributes<HTMLDivElement>>;
2233
+ declare const SkeletonRounded: React.ForwardRefExoticComponent<Omit<SkeletonProps, "variant"> & React.RefAttributes<HTMLDivElement>>;
2234
+ declare const SkeletonCard: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
2235
+ declare const SkeletonAvatar: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
2236
+ declare const SkeletonImage: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
2237
+ declare const SkeletonUserProfile: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
2238
+ declare const SkeletonList: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
2239
+ declare const SkeletonTable: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
2240
+
2241
+ /**
2242
+ * Alert 컴포넌트의 props
2243
+ * @typedef {Object} AlertProps
2244
+ * @property {"default" | "success" | "warning" | "error" | "info"} [variant="default"] - Alert 스타일 변형
2245
+ * @property {string} [title] - Alert 제목
2246
+ * @property {string} [description] - Alert 설명
2247
+ * @property {React.ReactNode} [icon] - 커스텀 아이콘
2248
+ * @property {React.ReactNode} [action] - 액션 버튼/요소
2249
+ * @property {boolean} [closable=false] - 닫기 버튼 표시 여부
2250
+ * @property {() => void} [onClose] - 닫기 버튼 클릭 시 호출되는 콜백
2251
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
2252
+ */
2253
+ interface AlertProps extends React.HTMLAttributes<HTMLDivElement> {
2254
+ variant?: "default" | "success" | "warning" | "error" | "info";
2255
+ title?: string;
2256
+ description?: string;
2257
+ icon?: React.ReactNode;
2258
+ action?: React.ReactNode;
2259
+ closable?: boolean;
2260
+ onClose?: () => void;
2261
+ }
2262
+ /**
2263
+ * Alert 컴포넌트 / Alert component
2264
+ *
2265
+ * 사용자에게 중요한 정보나 경고를 표시하는 컴포넌트입니다.
2266
+ * 다양한 변형(variant)을 지원하며, 아이콘, 제목, 설명, 액션 버튼을 포함할 수 있습니다.
2267
+ *
2268
+ * Component for displaying important information or warnings to users.
2269
+ * Supports various variants and can include icons, titles, descriptions, and action buttons.
2270
+ *
2271
+ * @component
2272
+ * @example
2273
+ * // 기본 사용 / Basic usage
2274
+ * <Alert variant="info" title="정보" description="이것은 정보 메시지입니다." />
2275
+ *
2276
+ * @example
2277
+ * // 닫기 버튼 포함 / With close button
2278
+ * <Alert
2279
+ * variant="warning"
2280
+ * title="경고"
2281
+ * closable
2282
+ * onClose={() => console.log('닫기')}
2283
+ * />
2284
+ *
2285
+ * @example
2286
+ * // 커스텀 아이콘과 액션 / Custom icon and action
2287
+ * <Alert
2288
+ * variant="success"
2289
+ * icon={<Icon name="check" />}
2290
+ * action={<Button size="sm">확인</Button>}
2291
+ * >
2292
+ * 작업이 완료되었습니다.
2293
+ * </Alert>
2294
+ *
2295
+ * @param {AlertProps} props - Alert 컴포넌트의 props / Alert component props
2296
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
2297
+ * @returns {JSX.Element} Alert 컴포넌트 / Alert component
2298
+ */
2299
+ declare const Alert: React.ForwardRefExoticComponent<AlertProps & React.RefAttributes<HTMLDivElement>>;
2300
+ declare const AlertSuccess: React.ForwardRefExoticComponent<Omit<AlertProps, "variant"> & React.RefAttributes<HTMLDivElement>>;
2301
+ declare const AlertWarning: React.ForwardRefExoticComponent<Omit<AlertProps, "variant"> & React.RefAttributes<HTMLDivElement>>;
2302
+ declare const AlertError: React.ForwardRefExoticComponent<Omit<AlertProps, "variant"> & React.RefAttributes<HTMLDivElement>>;
2303
+ declare const AlertInfo: React.ForwardRefExoticComponent<Omit<AlertProps, "variant"> & React.RefAttributes<HTMLDivElement>>;
2304
+
2305
+ /**
2306
+ * LoadingSpinner 컴포넌트의 props / LoadingSpinner component props
2307
+ * @typedef {Object} LoadingSpinnerProps
2308
+ * @property {"sm" | "md" | "lg" | "xl"} [size="md"] - Spinner 크기 / Spinner size
2309
+ * @property {"default" | "dots" | "bars" | "ring" | "ripple"} [variant="default"] - Spinner 애니메이션 타입 / Spinner animation type
2310
+ * @property {string} [text] - Spinner 아래 표시할 텍스트 / Text to display below spinner
2311
+ * @property {"default" | "primary" | "secondary" | "success" | "warning" | "error" | "glass"} [color="default"] - Spinner 색상 / Spinner color
2312
+ * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class
2313
+ */
2314
+ interface LoadingSpinnerProps {
2315
+ size?: "sm" | "md" | "lg" | "xl";
2316
+ variant?: "default" | "dots" | "bars" | "ring" | "ripple";
2317
+ text?: string;
2318
+ color?: "default" | "primary" | "secondary" | "success" | "warning" | "error" | "glass";
2319
+ className?: string;
2320
+ }
2321
+ /**
2322
+ * LoadingSpinner 컴포넌트 / LoadingSpinner component
2323
+ *
2324
+ * 로딩 상태를 표시하는 스피너 컴포넌트입니다.
2325
+ * 다양한 애니메이션 타입과 크기를 지원합니다.
2326
+ *
2327
+ * Spinner component that displays loading state.
2328
+ * Supports various animation types and sizes.
2329
+ *
2330
+ * @component
2331
+ * @example
2332
+ * // 기본 사용 / Basic usage
2333
+ * <LoadingSpinner />
2334
+ *
2335
+ * @example
2336
+ * // 텍스트와 함께 / With text
2337
+ * <LoadingSpinner
2338
+ * text="로딩 중..."
2339
+ * size="lg"
2340
+ * color="primary"
2341
+ * />
2342
+ *
2343
+ * @example
2344
+ * // 다양한 애니메이션 / Various animations
2345
+ * <LoadingSpinner variant="dots" />
2346
+ * <LoadingSpinner variant="bars" color="success" />
2347
+ * <LoadingSpinner variant="ripple" size="xl" />
2348
+ *
2349
+ * @param {LoadingSpinnerProps} props - LoadingSpinner 컴포넌트의 props / LoadingSpinner component props
2350
+ * @returns {JSX.Element} LoadingSpinner 컴포넌트 / LoadingSpinner component
2351
+ */
2352
+ declare function LoadingSpinner({ className, size, variant, text, color }: LoadingSpinnerProps): react_jsx_runtime.JSX.Element;
2353
+
2354
+ /**
2355
+ * Tooltip 컴포넌트의 props / Tooltip component props
2356
+ * @typedef {Object} TooltipProps
2357
+ * @property {string} content - Tooltip 내용 / Tooltip content
2358
+ * @property {React.ReactNode} children - Tooltip이 연결될 요소 / Element to attach tooltip to
2359
+ * @property {"top" | "bottom" | "left" | "right"} [position="top"] - Tooltip 표시 위치 / Tooltip display position
2360
+ * @property {"default" | "light" | "dark"} [variant="default"] - Tooltip 스타일 변형 / Tooltip style variant
2361
+ * @property {number} [delay=300] - Tooltip 표시 지연 시간(ms) / Tooltip display delay (ms)
2362
+ * @property {boolean} [disabled=false] - Tooltip 비활성화 여부 / Disable tooltip
2363
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
2364
+ */
2365
+ interface TooltipProps extends React.HTMLAttributes<HTMLDivElement> {
2366
+ content: string;
2367
+ children: React.ReactNode;
2368
+ position?: "top" | "bottom" | "left" | "right";
2369
+ variant?: "default" | "light" | "dark";
2370
+ delay?: number;
2371
+ disabled?: boolean;
2372
+ }
2373
+ /**
2374
+ * Tooltip 컴포넌트 / Tooltip component
2375
+ *
2376
+ * 호버 시 추가 정보를 표시하는 툴팁 컴포넌트입니다.
2377
+ * 마우스 호버 시 지연 시간 후 표시됩니다.
2378
+ *
2379
+ * Tooltip component that displays additional information on hover.
2380
+ * Appears after a delay when the mouse hovers over the element.
2381
+ *
2382
+ * @component
2383
+ * @example
2384
+ * // 기본 사용 / Basic usage
2385
+ * <Tooltip content="이것은 도움말입니다">
2386
+ * <Button>호버하세요</Button>
2387
+ * </Tooltip>
2388
+ *
2389
+ * @example
2390
+ * // 다양한 위치 / Different positions
2391
+ * <Tooltip content="위치 변경" position="bottom">
2392
+ * <Icon name="info" />
2393
+ * </Tooltip>
2394
+ *
2395
+ * @example
2396
+ * // 커스텀 스타일 / Custom styles
2397
+ * <Tooltip content="라이트 스타일" variant="light" delay={500}>
2398
+ * <span>호버</span>
2399
+ * </Tooltip>
2400
+ *
2401
+ * @param {TooltipProps} props - Tooltip 컴포넌트의 props / Tooltip component props
2402
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
2403
+ * @returns {JSX.Element} Tooltip 컴포넌트 / Tooltip component
2404
+ *
2405
+ * @todo 접근성 개선: role="tooltip" 추가 필요 / Accessibility: Add role="tooltip"
2406
+ * @todo 접근성 개선: aria-describedby 연결 필요 / Accessibility: Connect aria-describedby
2407
+ * @todo 접근성 개선: 키보드 포커스 시 Tooltip 표시 필요 / Accessibility: Show tooltip on keyboard focus
2408
+ */
2409
+ declare const Tooltip: React.ForwardRefExoticComponent<TooltipProps & React.RefAttributes<HTMLDivElement>>;
2410
+ declare const TooltipLight: React.ForwardRefExoticComponent<Omit<TooltipProps, "variant"> & React.RefAttributes<HTMLDivElement>>;
2411
+ declare const TooltipDark: React.ForwardRefExoticComponent<Omit<TooltipProps, "variant"> & React.RefAttributes<HTMLDivElement>>;
2412
+
2413
+ /**
2414
+ * Popover 컴포넌트의 props / Popover component props
2415
+ * @typedef {Object} PopoverProps
2416
+ * @property {React.ReactNode} children - Popover 내용 / Popover content
2417
+ * @property {React.ReactNode} trigger - Popover를 열기 위한 트리거 요소 / Trigger element to open popover
2418
+ * @property {boolean} [open] - 제어 모드에서 열림/닫힘 상태 / Open/close state in controlled mode
2419
+ * @property {(open: boolean) => void} [onOpenChange] - 상태 변경 콜백 / State change callback
2420
+ * @property {"top" | "bottom" | "left" | "right"} [position="bottom"] - Popover 표시 위치 / Popover display position
2421
+ * @property {"start" | "center" | "end"} [align="center"] - Popover 정렬 / Popover alignment
2422
+ * @property {number} [offset=8] - 트리거와 Popover 사이 간격 (px) / Spacing between trigger and popover (px)
2423
+ * @property {boolean} [disabled=false] - Popover 비활성화 여부 / Disable popover
2424
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
2425
+ */
2426
+ interface PopoverProps extends React.HTMLAttributes<HTMLDivElement> {
2427
+ children: React.ReactNode;
2428
+ trigger: React.ReactNode;
2429
+ open?: boolean;
2430
+ onOpenChange?: (open: boolean) => void;
2431
+ position?: "top" | "bottom" | "left" | "right";
2432
+ align?: "start" | "center" | "end";
2433
+ offset?: number;
2434
+ disabled?: boolean;
2435
+ }
2436
+ /**
2437
+ * Popover 컴포넌트 / Popover component
2438
+ *
2439
+ * 트리거 요소를 클릭하면 표시되는 팝오버 컴포넌트입니다.
2440
+ * 외부 클릭 시 자동으로 닫힙니다.
2441
+ *
2442
+ * Popover component that appears when the trigger element is clicked.
2443
+ * Automatically closes when clicking outside.
2444
+ *
2445
+ * @component
2446
+ * @example
2447
+ * // 기본 사용 / Basic usage
2448
+ * <Popover trigger={<Button>열기</Button>}>
2449
+ * <div className="p-4">Popover 내용</div>
2450
+ * </Popover>
2451
+ *
2452
+ * @example
2453
+ * // 제어 모드 / Controlled mode
2454
+ * const [open, setOpen] = useState(false)
2455
+ * <Popover
2456
+ * open={open}
2457
+ * onOpenChange={setOpen}
2458
+ * trigger={<Button>제어 모드</Button>}
2459
+ * position="top"
2460
+ * >
2461
+ * <div className="p-4">내용</div>
2462
+ * </Popover>
2463
+ *
2464
+ * @param {PopoverProps} props - Popover 컴포넌트의 props / Popover component props
2465
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
2466
+ * @returns {JSX.Element} Popover 컴포넌트 / Popover component
2467
+ */
2468
+ declare const Popover: React.ForwardRefExoticComponent<PopoverProps & React.RefAttributes<HTMLDivElement>>;
2469
+ declare const PopoverTrigger: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
2470
+ declare const PopoverContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
2471
+
2472
+ /**
2473
+ * Dropdown 컴포넌트의 props / Dropdown component props
2474
+ * @typedef {Object} DropdownProps
2475
+ * @property {React.ReactNode} trigger - Dropdown을 열기 위한 트리거 요소 / Trigger element to open dropdown
2476
+ * @property {React.ReactNode} children - Dropdown 내용 / Dropdown content
2477
+ * @property {boolean} [open] - 제어 모드에서 열림/닫힘 상태 / Open/close state in controlled mode
2478
+ * @property {(open: boolean) => void} [onOpenChange] - 상태 변경 콜백 / State change callback
2479
+ * @property {"top" | "bottom" | "left" | "right"} [placement="bottom"] - Dropdown 표시 위치 / Dropdown display position
2480
+ * @property {"start" | "center" | "end"} [align="start"] - Dropdown 정렬 / Dropdown alignment
2481
+ * @property {number} [offset=8] - 트리거와 Dropdown 사이 간격 (px) / Spacing between trigger and dropdown (px)
2482
+ * @property {boolean} [disabled=false] - Dropdown 비활성화 여부 / Disable dropdown
2483
+ * @property {boolean} [showArrow=true] - 화살표 표시 여부 / Show arrow
2484
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
2485
+ */
2486
+ interface DropdownProps extends React.HTMLAttributes<HTMLDivElement> {
2487
+ trigger: React.ReactNode;
2488
+ children: React.ReactNode;
2489
+ open?: boolean;
2490
+ onOpenChange?: (open: boolean) => void;
2491
+ placement?: "top" | "bottom" | "left" | "right";
2492
+ align?: "start" | "center" | "end";
2493
+ offset?: number;
2494
+ disabled?: boolean;
2495
+ showArrow?: boolean;
2496
+ }
2497
+ /**
2498
+ * Dropdown 컴포넌트 / Dropdown component
2499
+ *
2500
+ * 트리거 요소를 클릭하면 표시되는 드롭다운 메뉴 컴포넌트입니다.
2501
+ * 외부 클릭 시 자동으로 닫히며, 뷰포트 경계를 자동으로 감지하여 위치를 조정합니다.
2502
+ *
2503
+ * Dropdown menu component that appears when the trigger element is clicked.
2504
+ * Automatically closes on outside click and adjusts position by detecting viewport boundaries.
2505
+ *
2506
+ * @component
2507
+ * @example
2508
+ * // 기본 사용 / Basic usage
2509
+ * <Dropdown trigger={<Button>메뉴</Button>}>
2510
+ * <Menu>
2511
+ * <MenuItem>항목 1</MenuItem>
2512
+ * <MenuItem>항목 2</MenuItem>
2513
+ * </Menu>
2514
+ * </Dropdown>
2515
+ *
2516
+ * @example
2517
+ * // 제어 모드, 화살표 없음 / Controlled mode, no arrow
2518
+ * const [open, setOpen] = useState(false)
2519
+ * <Dropdown
2520
+ * open={open}
2521
+ * onOpenChange={setOpen}
2522
+ * trigger={<Button>제어 모드</Button>}
2523
+ * placement="top"
2524
+ * showArrow={false}
2525
+ * >
2526
+ * <div className="p-4">내용</div>
2527
+ * </Dropdown>
2528
+ *
2529
+ * @param {DropdownProps} props - Dropdown 컴포넌트의 props / Dropdown component props
2530
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
2531
+ * @returns {JSX.Element} Dropdown 컴포넌트 / Dropdown component
2532
+ */
2533
+ declare const Dropdown: React.ForwardRefExoticComponent<DropdownProps & React.RefAttributes<HTMLDivElement>>;
2534
+ interface DropdownItemProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
2535
+ icon?: React.ReactNode;
2536
+ variant?: "default" | "destructive" | "disabled";
2537
+ }
2538
+ declare const DropdownItem: React.ForwardRefExoticComponent<DropdownItemProps & React.RefAttributes<HTMLButtonElement>>;
2539
+ interface DropdownSeparatorProps extends React.HTMLAttributes<HTMLDivElement> {
2540
+ }
2541
+ declare const DropdownSeparator: React.ForwardRefExoticComponent<DropdownSeparatorProps & React.RefAttributes<HTMLDivElement>>;
2542
+ interface DropdownLabelProps extends React.HTMLAttributes<HTMLDivElement> {
2543
+ }
2544
+ declare const DropdownLabel: React.ForwardRefExoticComponent<DropdownLabelProps & React.RefAttributes<HTMLDivElement>>;
2545
+ declare const DropdownMenu: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
2546
+ declare const DropdownGroup: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
2547
+
2548
+ /**
2549
+ * Drawer 컴포넌트의 props / Drawer component props
2550
+ * @typedef {Object} DrawerProps
2551
+ * @property {boolean} open - Drawer 열림/닫힘 상태 / Drawer open/close state
2552
+ * @property {(open: boolean) => void} onOpenChange - 상태 변경 콜백 / State change callback
2553
+ * @property {React.ReactNode} children - Drawer 내용 / Drawer content
2554
+ * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class
2555
+ * @property {"left" | "right" | "top" | "bottom"} [side="right"] - Drawer 표시 위치 / Drawer display position
2556
+ * @property {"sm" | "md" | "lg" | "xl" | "full"} [size="md"] - Drawer 크기 / Drawer size
2557
+ * @property {boolean} [showBackdrop=true] - 배경 오버레이 표시 여부 / Show backdrop overlay
2558
+ * @property {string} [backdropClassName] - 배경 오버레이 추가 CSS 클래스 / Backdrop overlay additional CSS class
2559
+ * @property {boolean} [closeOnBackdropClick=true] - 배경 클릭 시 닫기 여부 / Close on backdrop click
2560
+ * @property {boolean} [closeOnEscape=true] - ESC 키로 닫기 여부 / Close on ESC key
2561
+ */
2562
+ interface DrawerProps {
2563
+ open: boolean;
2564
+ onOpenChange: (open: boolean) => void;
2565
+ children: React.ReactNode;
2566
+ className?: string;
2567
+ side?: "left" | "right" | "top" | "bottom";
2568
+ size?: "sm" | "md" | "lg" | "xl" | "full";
2569
+ showBackdrop?: boolean;
2570
+ backdropClassName?: string;
2571
+ closeOnBackdropClick?: boolean;
2572
+ closeOnEscape?: boolean;
2573
+ }
2574
+ /**
2575
+ * Drawer 컴포넌트 / Drawer component
2576
+ *
2577
+ * 사이드에서 슬라이드되는 패널 컴포넌트입니다.
2578
+ * Modal과 유사하지만 특정 방향에서 슬라이드되는 애니메이션을 제공합니다.
2579
+ * ESC 키로 닫기, 배경 클릭으로 닫기 기능을 지원합니다.
2580
+ *
2581
+ * Panel component that slides from the side.
2582
+ * Similar to Modal but provides slide animation from a specific direction.
2583
+ * Supports closing with ESC key and backdrop click.
2584
+ *
2585
+ * @component
2586
+ * @example
2587
+ * // 기본 사용 / Basic usage
2588
+ * const [open, setOpen] = useState(false)
2589
+ *
2590
+ * <Drawer open={open} onOpenChange={setOpen}>
2591
+ * <DrawerHeader>제목</DrawerHeader>
2592
+ * <DrawerContent>내용</DrawerContent>
2593
+ * <DrawerFooter>
2594
+ * <Button onClick={() => setOpen(false)}>닫기</Button>
2595
+ * </DrawerFooter>
2596
+ * </Drawer>
2597
+ *
2598
+ * @example
2599
+ * // 왼쪽에서 열기 / Open from left
2600
+ * <Drawer open={open} onOpenChange={setOpen} side="left" size="lg">
2601
+ * <DrawerContent>사이드바 내용</DrawerContent>
2602
+ * </Drawer>
2603
+ *
2604
+ * @param {DrawerProps} props - Drawer 컴포넌트의 props / Drawer component props
2605
+ * @param {React.Ref<HTMLDivElement>} ref - Drawer 컨테이너 ref / Drawer container ref
2606
+ * @returns {JSX.Element} Drawer 컴포넌트 / Drawer component
2607
+ *
2608
+ * @todo 접근성 개선: role="dialog", aria-modal="true" 추가 필요 / Accessibility: Add role="dialog", aria-modal="true"
2609
+ * @todo 접근성 개선: aria-labelledby, aria-describedby 연결 필요 / Accessibility: Connect aria-labelledby, aria-describedby
2610
+ */
2611
+ declare const Drawer: React.ForwardRefExoticComponent<DrawerProps & React.RefAttributes<HTMLDivElement>>;
2612
+ /**
2613
+ * DrawerHeader 컴포넌트의 props / DrawerHeader component props
2614
+ * @typedef {Object} DrawerHeaderProps
2615
+ * @property {React.ReactNode} children - 헤더 내용 / Header content
2616
+ * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class
2617
+ * @property {boolean} [showCloseButton=true] - 닫기 버튼 표시 여부 / Show close button
2618
+ * @property {() => void} [onClose] - 닫기 버튼 클릭 콜백 / Close button click callback
2619
+ */
2620
+ interface DrawerHeaderProps {
2621
+ children: React.ReactNode;
2622
+ className?: string;
2623
+ showCloseButton?: boolean;
2624
+ onClose?: () => void;
2625
+ }
2626
+ /**
2627
+ * DrawerHeader 컴포넌트 / DrawerHeader component
2628
+ * Drawer의 헤더 영역을 표시합니다.
2629
+ * Displays the header area of a Drawer.
2630
+ *
2631
+ * @component
2632
+ * @param {DrawerHeaderProps} props - DrawerHeader 컴포넌트의 props / DrawerHeader component props
2633
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
2634
+ * @returns {JSX.Element} DrawerHeader 컴포넌트 / DrawerHeader component
2635
+ */
2636
+ declare const DrawerHeader: React.ForwardRefExoticComponent<DrawerHeaderProps & React.RefAttributes<HTMLDivElement>>;
2637
+ /**
2638
+ * DrawerContent 컴포넌트의 props / DrawerContent component props
2639
+ * @typedef {Object} DrawerContentProps
2640
+ * @property {React.ReactNode} children - 콘텐츠 / Content
2641
+ * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class
2642
+ */
2643
+ interface DrawerContentProps {
2644
+ children: React.ReactNode;
2645
+ className?: string;
2646
+ }
2647
+ /**
2648
+ * DrawerContent 컴포넌트 / DrawerContent component
2649
+ * Drawer의 메인 콘텐츠 영역을 표시합니다.
2650
+ * Displays the main content area of a Drawer.
2651
+ *
2652
+ * @component
2653
+ * @param {DrawerContentProps} props - DrawerContent 컴포넌트의 props / DrawerContent component props
2654
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
2655
+ * @returns {JSX.Element} DrawerContent 컴포넌트 / DrawerContent component
2656
+ */
2657
+ declare const DrawerContent: React.ForwardRefExoticComponent<DrawerContentProps & React.RefAttributes<HTMLDivElement>>;
2658
+ /**
2659
+ * DrawerFooter 컴포넌트의 props / DrawerFooter component props
2660
+ * @typedef {Object} DrawerFooterProps
2661
+ * @property {React.ReactNode} children - 푸터 내용 / Footer content
2662
+ * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class
2663
+ */
2664
+ interface DrawerFooterProps {
2665
+ children: React.ReactNode;
2666
+ className?: string;
2667
+ }
2668
+ /**
2669
+ * DrawerFooter 컴포넌트 / DrawerFooter component
2670
+ * Drawer의 푸터 영역을 표시합니다. 주로 액션 버튼을 배치합니다.
2671
+ * Displays the footer area of a Drawer. Typically used for action buttons.
2672
+ *
2673
+ * @component
2674
+ * @param {DrawerFooterProps} props - DrawerFooter 컴포넌트의 props / DrawerFooter component props
2675
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
2676
+ * @returns {JSX.Element} DrawerFooter 컴포넌트 / DrawerFooter component
2677
+ */
2678
+ declare const DrawerFooter: React.ForwardRefExoticComponent<DrawerFooterProps & React.RefAttributes<HTMLDivElement>>;
2679
+
2680
+ /**
2681
+ * BottomSheet 컴포넌트의 props / BottomSheet component props
2682
+ * @typedef {Object} BottomSheetProps
2683
+ * @property {boolean} open - BottomSheet 열림/닫힘 상태 / BottomSheet open/close state
2684
+ * @property {(open: boolean) => void} onOpenChange - 상태 변경 콜백 / State change callback
2685
+ * @property {React.ReactNode} children - BottomSheet 내용 / BottomSheet content
2686
+ * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class
2687
+ * @property {"sm" | "md" | "lg" | "xl" | "full"} [height="md"] - BottomSheet 높이 / BottomSheet height
2688
+ * @property {boolean} [showBackdrop=true] - 배경 오버레이 표시 여부 / Show backdrop overlay
2689
+ * @property {string} [backdropClassName] - 배경 오버레이 추가 CSS 클래스 / Backdrop overlay additional CSS class
2690
+ * @property {boolean} [closeOnBackdropClick=true] - 배경 클릭 시 닫기 여부 / Close on backdrop click
2691
+ * @property {boolean} [closeOnEscape=true] - ESC 키로 닫기 여부 / Close on ESC key
2692
+ * @property {boolean} [showDragHandle=true] - 드래그 핸들 표시 여부 / Show drag handle
2693
+ * @property {number[]} [snapPoints=[25, 50, 75, 100]] - 스냅 포인트 (퍼센트) / Snap points (percentage)
2694
+ * @property {number} [defaultSnap=50] - 기본 스냅 포인트 (퍼센트) / Default snap point (percentage)
2695
+ */
2696
+ interface BottomSheetProps {
2697
+ open: boolean;
2698
+ onOpenChange: (open: boolean) => void;
2699
+ children: React.ReactNode;
2700
+ className?: string;
2701
+ height?: "sm" | "md" | "lg" | "xl" | "full";
2702
+ showBackdrop?: boolean;
2703
+ backdropClassName?: string;
2704
+ closeOnBackdropClick?: boolean;
2705
+ closeOnEscape?: boolean;
2706
+ showDragHandle?: boolean;
2707
+ snapPoints?: number[];
2708
+ defaultSnap?: number;
2709
+ }
2710
+ /**
2711
+ * BottomSheet 컴포넌트 / BottomSheet component
2712
+ *
2713
+ * 화면 하단에서 올라오는 시트 컴포넌트입니다.
2714
+ * 모바일 친화적인 UI를 제공하며, 드래그로 높이를 조절할 수 있습니다.
2715
+ * 스냅 포인트를 지원하여 특정 높이에서 멈출 수 있습니다.
2716
+ *
2717
+ * Sheet component that slides up from the bottom of the screen.
2718
+ * Provides mobile-friendly UI and allows height adjustment by dragging.
2719
+ * Supports snap points to stop at specific heights.
2720
+ *
2721
+ * @component
2722
+ * @example
2723
+ * // 기본 사용 / Basic usage
2724
+ * const [open, setOpen] = useState(false)
2725
+ *
2726
+ * <BottomSheet open={open} onOpenChange={setOpen}>
2727
+ * <BottomSheetHeader>제목</BottomSheetHeader>
2728
+ * <BottomSheetContent>내용</BottomSheetContent>
2729
+ * </BottomSheet>
2730
+ *
2731
+ * @example
2732
+ * // 커스텀 스냅 포인트 / Custom snap points
2733
+ * <BottomSheet
2734
+ * open={open}
2735
+ * onOpenChange={setOpen}
2736
+ * snapPoints={[30, 60, 90]}
2737
+ * defaultSnap={30}
2738
+ * >
2739
+ * <BottomSheetContent>내용</BottomSheetContent>
2740
+ * </BottomSheet>
2741
+ *
2742
+ * @param {BottomSheetProps} props - BottomSheet 컴포넌트의 props / BottomSheet component props
2743
+ * @param {React.Ref<HTMLDivElement>} ref - BottomSheet 컨테이너 ref / BottomSheet container ref
2744
+ * @returns {JSX.Element} BottomSheet 컴포넌트 / BottomSheet component
2745
+ *
2746
+ * @todo 접근성 개선: role="dialog", aria-modal="true" 추가 필요 / Accessibility: Add role="dialog", aria-modal="true"
2747
+ * @todo 접근성 개선: aria-labelledby, aria-describedby 연결 필요 / Accessibility: Connect aria-labelledby, aria-describedby
2748
+ */
2749
+ declare const BottomSheet: React.ForwardRefExoticComponent<BottomSheetProps & React.RefAttributes<HTMLDivElement>>;
2750
+
2751
+ /**
2752
+ * ConfirmModal 컴포넌트의 props / ConfirmModal component props
2753
+ * @typedef {Object} ConfirmModalProps
2754
+ * @property {boolean} isOpen - 모달 열림/닫힘 상태 / Modal open/close state
2755
+ * @property {() => void} onClose - 닫기 콜백 / Close callback
2756
+ * @property {() => void} onConfirm - 확인 콜백 / Confirm callback
2757
+ * @property {string} title - 모달 제목 / Modal title
2758
+ * @property {string} message - 모달 메시지 / Modal message
2759
+ * @property {string} [warning] - 경고 메시지 / Warning message
2760
+ * @property {string} [confirmText="확인"] - 확인 버튼 텍스트 / Confirm button text
2761
+ * @property {string} [cancelText="취소"] - 취소 버튼 텍스트 / Cancel button text
2762
+ * @property {string} [confirmButtonText] - 확인 버튼 커스텀 텍스트 / Custom confirm button text
2763
+ * @property {"danger" | "warning" | "info" | "success" | "error"} [type="danger"] - 모달 타입 / Modal type
2764
+ * @property {boolean} [loading=false] - 로딩 상태 / Loading state
2765
+ * @property {boolean} [disabled=false] - 비활성화 여부 / Disabled state
2766
+ * @property {boolean} [showInput=false] - 입력 필드 표시 여부 / Show input field
2767
+ * @property {string} [inputValue=""] - 입력 필드 값 / Input field value
2768
+ * @property {(value: string) => void} [onInputChange] - 입력 값 변경 콜백 / Input value change callback
2769
+ * @property {string} [inputPlaceholder] - 입력 필드 플레이스홀더 / Input field placeholder
2770
+ * @property {string} [inputLabel] - 입력 필드 라벨 / Input field label
2771
+ * @property {string} [requiredInputValue] - 필수 입력 값 (확인 버튼 활성화 조건) / Required input value (confirm button activation condition)
2772
+ * @property {boolean} [showCancel=true] - 취소 버튼 표시 여부 / Show cancel button
2773
+ * @property {"sm" | "md" | "lg" | "xl" | "2xl"} [size="md"] - 모달 크기 / Modal size
2774
+ */
2775
+ interface ConfirmModalProps {
2776
+ isOpen: boolean;
2777
+ onClose: () => void;
2778
+ onConfirm: () => void;
2779
+ title: string;
2780
+ message: string;
2781
+ warning?: string;
2782
+ confirmText?: string;
2783
+ cancelText?: string;
2784
+ confirmButtonText?: string;
2785
+ type?: "danger" | "warning" | "info" | "success" | "error";
2786
+ loading?: boolean;
2787
+ disabled?: boolean;
2788
+ showInput?: boolean;
2789
+ inputValue?: string;
2790
+ onInputChange?: (value: string) => void;
2791
+ inputPlaceholder?: string;
2792
+ inputLabel?: string;
2793
+ requiredInputValue?: string;
2794
+ showCancel?: boolean;
2795
+ size?: "sm" | "md" | "lg" | "xl" | "2xl";
2796
+ }
2797
+ /**
2798
+ * ConfirmModal 컴포넌트 / ConfirmModal component
2799
+ *
2800
+ * 확인/취소가 필요한 모달 컴포넌트입니다.
2801
+ * 다양한 타입(danger, warning, info, success, error)을 지원하며,
2802
+ * 입력 필드와 필수 입력 값 검증을 지원합니다.
2803
+ *
2804
+ * Modal component that requires confirmation/cancellation.
2805
+ * Supports various types (danger, warning, info, success, error),
2806
+ * and supports input fields and required input value validation.
2807
+ *
2808
+ * @component
2809
+ * @example
2810
+ * // 기본 사용 / Basic usage
2811
+ * <ConfirmModal
2812
+ * isOpen={isOpen}
2813
+ * onClose={() => setIsOpen(false)}
2814
+ * onConfirm={handleConfirm}
2815
+ * title="삭제 확인"
2816
+ * message="정말 삭제하시겠습니까?"
2817
+ * />
2818
+ *
2819
+ * @example
2820
+ * // 입력 필드와 함께 / With input field
2821
+ * <ConfirmModal
2822
+ * isOpen={isOpen}
2823
+ * onClose={() => setIsOpen(false)}
2824
+ * onConfirm={handleDelete}
2825
+ * title="삭제 확인"
2826
+ * message="삭제하려면 'DELETE'를 입력하세요"
2827
+ * showInput
2828
+ * inputLabel="확인 입력"
2829
+ * requiredInputValue="DELETE"
2830
+ * inputValue={inputValue}
2831
+ * onInputChange={setInputValue}
2832
+ * />
2833
+ *
2834
+ * @param {ConfirmModalProps} props - ConfirmModal 컴포넌트의 props / ConfirmModal component props
2835
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
2836
+ * @returns {JSX.Element} ConfirmModal 컴포넌트 / ConfirmModal component
2837
+ */
2838
+ declare const ConfirmModal: React.ForwardRefExoticComponent<ConfirmModalProps & React.RefAttributes<HTMLDivElement>>;
2839
+
2840
+ /**
2841
+ * Accordion 컴포넌트의 props / Accordion component props
2842
+ * @typedef {Object} AccordionProps
2843
+ * @property {React.ReactNode} children - AccordionItem 컴포넌트들 / AccordionItem components
2844
+ * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class
2845
+ * @property {"single" | "multiple"} [type="single"] - 단일 또는 다중 아이템 열기 허용 / Allow single or multiple items to be open
2846
+ * @property {string | string[]} [defaultValue] - 초기 열린 아이템 값 (비제어 컴포넌트) / Initial open item value (uncontrolled component)
2847
+ * @property {string | string[]} [value] - 현재 열린 아이템 값 (제어 컴포넌트) / Current open item value (controlled component)
2848
+ * @property {(value: string | string[]) => void} [onValueChange] - 아이템 열림/닫힘 콜백 / Item open/close callback
2849
+ * @property {boolean} [collapsible=false] - 단일 모드에서 열린 아이템을 닫을 수 있는지 여부 / Whether open item can be closed in single mode
2850
+ */
2851
+ interface AccordionProps {
2852
+ children: React.ReactNode;
2853
+ className?: string;
2854
+ type?: "single" | "multiple";
2855
+ defaultValue?: string | string[];
2856
+ value?: string | string[];
2857
+ onValueChange?: (value: string | string[]) => void;
2858
+ collapsible?: boolean;
2859
+ }
2860
+ /**
2861
+ * Accordion 컴포넌트 / Accordion component
2862
+ *
2863
+ * 접을 수 있는 콘텐츠 섹션을 제공하는 컴포넌트입니다.
2864
+ * 키보드 네비게이션(Arrow keys, Home/End)을 지원하며, ARIA 속성을 자동으로 설정합니다.
2865
+ *
2866
+ * Component that provides collapsible content sections.
2867
+ * Supports keyboard navigation (Arrow keys, Home/End) and automatically sets ARIA attributes.
2868
+ *
2869
+ * @component
2870
+ * @example
2871
+ * // 기본 사용 (단일 열기) / Basic usage (single open)
2872
+ * <Accordion type="single">
2873
+ * <AccordionItem value="item1">
2874
+ * <AccordionTrigger>제목 1</AccordionTrigger>
2875
+ * <AccordionContent>내용 1</AccordionContent>
2876
+ * </AccordionItem>
2877
+ * <AccordionItem value="item2">
2878
+ * <AccordionTrigger>제목 2</AccordionTrigger>
2879
+ * <AccordionContent>내용 2</AccordionContent>
2880
+ * </AccordionItem>
2881
+ * </Accordion>
2882
+ *
2883
+ * @example
2884
+ * // 다중 열기 / Multiple open
2885
+ * <Accordion type="multiple" defaultValue={["item1", "item2"]}>
2886
+ * <AccordionItem value="item1">
2887
+ * <AccordionTrigger>제목 1</AccordionTrigger>
2888
+ * <AccordionContent>내용 1</AccordionContent>
2889
+ * </AccordionItem>
2890
+ * </Accordion>
2891
+ *
2892
+ * @example
2893
+ * // 제어 컴포넌트 / Controlled component
2894
+ * const [openItems, setOpenItems] = useState<string[]>([])
2895
+ * <Accordion type="multiple" value={openItems} onValueChange={setOpenItems}>
2896
+ * <AccordionItem value="item1">
2897
+ * <AccordionTrigger>제목</AccordionTrigger>
2898
+ * <AccordionContent>내용</AccordionContent>
2899
+ * </AccordionItem>
2900
+ * </Accordion>
2901
+ *
2902
+ * @param {AccordionProps} props - Accordion 컴포넌트의 props / Accordion component props
2903
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
2904
+ * @returns {JSX.Element} Accordion 컴포넌트 / Accordion component
2905
+ */
2906
+ declare const Accordion: React.ForwardRefExoticComponent<AccordionProps & React.RefAttributes<HTMLDivElement>>;
2907
+ /**
2908
+ * AccordionItem 컴포넌트의 props / AccordionItem component props
2909
+ * @typedef {Object} AccordionItemProps
2910
+ * @property {string} value - 아이템의 고유 값 / Item unique value
2911
+ * @property {React.ReactNode} children - AccordionTrigger와 AccordionContent / AccordionTrigger and AccordionContent
2912
+ * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class
2913
+ * @property {boolean} [disabled=false] - 아이템 비활성화 여부 / Item disabled state
2914
+ * @property {string[]} [openItems] - 열린 아이템 목록 (Accordion에서 자동 전달) / Open items list (auto-passed from Accordion)
2915
+ * @property {(value: string) => void} [onToggle] - 토글 콜백 (Accordion에서 자동 전달) / Toggle callback (auto-passed from Accordion)
2916
+ */
2917
+ interface AccordionItemProps {
2918
+ value: string;
2919
+ children: React.ReactNode;
2920
+ className?: string;
2921
+ disabled?: boolean;
2922
+ openItems?: string[];
2923
+ onToggle?: (value: string) => void;
2924
+ }
2925
+ /**
2926
+ * AccordionItem 컴포넌트 / AccordionItem component
2927
+ * 아코디언의 개별 아이템을 감싸는 컨테이너입니다.
2928
+ * Container that wraps an individual accordion item.
2929
+ *
2930
+ * @component
2931
+ * @param {AccordionItemProps} props - AccordionItem 컴포넌트의 props / AccordionItem component props
2932
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
2933
+ * @returns {JSX.Element} AccordionItem 컴포넌트 / AccordionItem component
2934
+ */
2935
+ declare const AccordionItem: React.ForwardRefExoticComponent<AccordionItemProps & React.RefAttributes<HTMLDivElement>>;
2936
+ interface AccordionTriggerProps {
2937
+ children: React.ReactNode;
2938
+ className?: string;
2939
+ icon?: React.ReactNode;
2940
+ iconPosition?: "left" | "right";
2941
+ value?: string;
2942
+ isOpen?: boolean;
2943
+ disabled?: boolean;
2944
+ onToggle?: () => void;
2945
+ }
2946
+ declare const AccordionTrigger: React.ForwardRefExoticComponent<AccordionTriggerProps & React.RefAttributes<HTMLButtonElement>>;
2947
+ /**
2948
+ * AccordionTrigger 컴포넌트 / AccordionTrigger component
2949
+ * 아코디언 아이템을 열고 닫는 트리거 버튼입니다.
2950
+ * Button that opens and closes an accordion item.
2951
+ *
2952
+ * @component
2953
+ * @param {AccordionTriggerProps} props - AccordionTrigger 컴포넌트의 props / AccordionTrigger component props
2954
+ * @param {React.Ref<HTMLButtonElement>} ref - button 요소 ref / button element ref
2955
+ * @returns {JSX.Element} AccordionTrigger 컴포넌트 / AccordionTrigger component
2956
+ */
2957
+ /**
2958
+ * AccordionContent 컴포넌트의 props
2959
+ * @typedef {Object} AccordionContentProps
2960
+ * @property {React.ReactNode} children - 콘텐츠
2961
+ * @property {string} [className] - 추가 CSS 클래스
2962
+ * @property {boolean} [isOpen] - 열림 상태 (AccordionItem에서 자동 전달)
2963
+ * @property {string} [value] - 아이템 값 (AccordionItem에서 자동 전달)
2964
+ * @property {string} ['data-accordion-value'] - 아이템 값 (내부 사용)
2965
+ */
2966
+ interface AccordionContentProps {
2967
+ children: React.ReactNode;
2968
+ className?: string;
2969
+ isOpen?: boolean;
2970
+ value?: string;
2971
+ 'data-accordion-value'?: string;
2972
+ }
2973
+ /**
2974
+ * AccordionContent 컴포넌트 / AccordionContent component
2975
+ * 아코디언 아이템의 콘텐츠를 표시합니다.
2976
+ * Displays the content of an accordion item.
2977
+ *
2978
+ * @component
2979
+ * @param {AccordionContentProps} props - AccordionContent 컴포넌트의 props / AccordionContent component props
2980
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
2981
+ * @returns {JSX.Element} AccordionContent 컴포넌트 / AccordionContent component
2982
+ */
2983
+ declare const AccordionContent: React.ForwardRefExoticComponent<AccordionContentProps & React.RefAttributes<HTMLDivElement>>;
2984
+
2985
+ /**
2986
+ * TabsContent 컴포넌트의 props / TabsContent component props
2987
+ * @typedef {Object} TabsContentProps
2988
+ * @property {string} value - 탭 패널의 고유 값 (TabsTrigger의 value와 일치해야 함) / Unique value for tab panel (must match TabsTrigger value)
2989
+ * @property {boolean} [active] - 탭 패널 활성화 상태 (자동 설정됨) / Tab panel active state (auto-set)
2990
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
2991
+ */
2992
+ interface TabsContentProps extends React.HTMLAttributes<HTMLDivElement> {
2993
+ value: string;
2994
+ active?: boolean;
2995
+ }
2996
+ /**
2997
+ * TabsContent 컴포넌트 / TabsContent component
2998
+ * 탭의 콘텐츠 패널을 표시합니다. Tabs 컴포넌트 내부에서 사용됩니다.
2999
+ * Displays the tab content panel. Used inside Tabs component.
3000
+ *
3001
+ * @component
3002
+ * @param {TabsContentProps} props - TabsContent 컴포넌트의 props / TabsContent component props
3003
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
3004
+ * @returns {JSX.Element} TabsContent 컴포넌트 / TabsContent component
3005
+ */
3006
+ declare const TabsContent: React.ForwardRefExoticComponent<TabsContentProps & React.RefAttributes<HTMLDivElement>>;
3007
+ /**
3008
+ * Tabs 컴포넌트의 props / Tabs component props
3009
+ * @typedef {Object} TabsProps
3010
+ * @property {string} [value] - 현재 활성화된 탭 값 (제어 컴포넌트) / Currently active tab value (controlled component)
3011
+ * @property {string} [defaultValue] - 초기 활성화된 탭 값 (비제어 컴포넌트) / Initial active tab value (uncontrolled component)
3012
+ * @property {(value: string) => void} [onValueChange] - 탭 변경 시 호출되는 콜백 / Callback when tab changes
3013
+ * @property {"horizontal" | "vertical"} [orientation="horizontal"] - 탭 방향 / Tab orientation
3014
+ * @property {"default" | "pills" | "underline" | "cards"} [variant="default"] - 탭 스타일 변형 / Tab style variant
3015
+ * @property {"sm" | "md" | "lg"} [size="md"] - 탭 크기 / Tab size
3016
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
3017
+ */
3018
+ interface TabsProps extends React.HTMLAttributes<HTMLDivElement> {
3019
+ value?: string;
3020
+ defaultValue?: string;
3021
+ onValueChange?: (value: string) => void;
3022
+ orientation?: "horizontal" | "vertical";
3023
+ variant?: "default" | "pills" | "underline" | "cards";
3024
+ size?: "sm" | "md" | "lg";
3025
+ }
3026
+ /**
3027
+ * Tabs 컴포넌트 / Tabs component
3028
+ *
3029
+ * 탭 네비게이션을 제공하는 컴포넌트입니다.
3030
+ * 키보드 네비게이션(Arrow keys, Home/End)을 지원하며, ARIA 속성을 자동으로 설정합니다.
3031
+ *
3032
+ * Component that provides tab navigation.
3033
+ * Supports keyboard navigation (Arrow keys, Home/End) and automatically sets ARIA attributes.
3034
+ *
3035
+ * @component
3036
+ * @example
3037
+ * // 기본 사용 / Basic usage
3038
+ * <Tabs defaultValue="tab1">
3039
+ * <TabsList>
3040
+ * <TabsTrigger value="tab1">탭 1</TabsTrigger>
3041
+ * <TabsTrigger value="tab2">탭 2</TabsTrigger>
3042
+ * </TabsList>
3043
+ * <TabsContent value="tab1">탭 1 내용</TabsContent>
3044
+ * <TabsContent value="tab2">탭 2 내용</TabsContent>
3045
+ * </Tabs>
3046
+ *
3047
+ * @example
3048
+ * // 제어 컴포넌트 / Controlled component
3049
+ * const [activeTab, setActiveTab] = useState("tab1")
3050
+ * <Tabs value={activeTab} onValueChange={setActiveTab}>
3051
+ * <TabsList>
3052
+ * <TabsTrigger value="tab1">탭 1</TabsTrigger>
3053
+ * </TabsList>
3054
+ * <TabsContent value="tab1">내용</TabsContent>
3055
+ * </Tabs>
3056
+ *
3057
+ * @example
3058
+ * // 다양한 변형 / Various variants
3059
+ * <Tabs variant="pills" size="lg">
3060
+ * <TabsList>
3061
+ * <TabsTrigger value="tab1">Pills 스타일</TabsTrigger>
3062
+ * </TabsList>
3063
+ * </Tabs>
3064
+ *
3065
+ * @param {TabsProps} props - Tabs 컴포넌트의 props / Tabs component props
3066
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
3067
+ * @returns {JSX.Element} Tabs 컴포넌트 / Tabs component
3068
+ */
3069
+ declare const Tabs: React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<HTMLDivElement>>;
3070
+ /**
3071
+ * TabsList 컴포넌트의 props / TabsList component props
3072
+ * @typedef {Object} TabsListProps
3073
+ * @property {string} [value] - 현재 활성화된 탭 값 (Tabs에서 자동 전달) / Currently active tab value (auto-passed from Tabs)
3074
+ * @property {(value: string) => void} [onValueChange] - 탭 변경 콜백 (Tabs에서 자동 전달) / Tab change callback (auto-passed from Tabs)
3075
+ * @property {"horizontal" | "vertical"} [orientation] - 탭 방향 (Tabs에서 자동 전달) / Tab orientation (auto-passed from Tabs)
3076
+ * @property {"default" | "pills" | "underline" | "cards"} [variant] - 탭 스타일 (Tabs에서 자동 전달) / Tab style (auto-passed from Tabs)
3077
+ * @property {"sm" | "md" | "lg"} [size] - 탭 크기 (Tabs에서 자동 전달) / Tab size (auto-passed from Tabs)
3078
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
3079
+ */
3080
+ interface TabsListProps extends React.HTMLAttributes<HTMLDivElement> {
3081
+ value?: string;
3082
+ onValueChange?: (value: string) => void;
3083
+ orientation?: "horizontal" | "vertical";
3084
+ variant?: "default" | "pills" | "underline" | "cards";
3085
+ size?: "sm" | "md" | "lg";
3086
+ }
3087
+ /**
3088
+ * TabsList 컴포넌트 / TabsList component
3089
+ * 탭 트리거 목록을 표시합니다. Tabs 컴포넌트 내부에서 사용됩니다.
3090
+ * Displays the list of tab triggers. Used inside Tabs component.
3091
+ *
3092
+ * @component
3093
+ * @param {TabsListProps} props - TabsList 컴포넌트의 props / TabsList component props
3094
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
3095
+ * @returns {JSX.Element} TabsList 컴포넌트 / TabsList component
3096
+ */
3097
+ declare const TabsList: React.ForwardRefExoticComponent<TabsListProps & React.RefAttributes<HTMLDivElement>>;
3098
+ /**
3099
+ * TabsTrigger 컴포넌트의 props
3100
+ * @typedef {Object} TabsTriggerProps
3101
+ * @property {string} value - 탭 트리거의 고유 값 (TabsContent의 value와 일치해야 함)
3102
+ * @property {(value: string) => void} [onValueChange] - 탭 변경 콜백 (TabsList에서 자동 전달)
3103
+ * @property {"horizontal" | "vertical"} [orientation] - 탭 방향 (TabsList에서 자동 전달)
3104
+ * @property {"default" | "pills" | "underline" | "cards"} [variant] - 탭 스타일 (TabsList에서 자동 전달)
3105
+ * @property {"sm" | "md" | "lg"} [size] - 탭 크기 (TabsList에서 자동 전달)
3106
+ * @property {boolean} [active] - 탭 활성화 상태 (자동 설정됨)
3107
+ * @extends {React.ButtonHTMLAttributes<HTMLButtonElement>}
3108
+ */
3109
+ interface TabsTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
3110
+ value: string;
3111
+ onValueChange?: (value: string) => void;
3112
+ orientation?: "horizontal" | "vertical";
3113
+ variant?: "default" | "pills" | "underline" | "cards";
3114
+ size?: "sm" | "md" | "lg";
3115
+ active?: boolean;
3116
+ }
3117
+ /**
3118
+ * TabsTrigger 컴포넌트 / TabsTrigger component
3119
+ * 탭을 활성화하는 버튼입니다. TabsList 컴포넌트 내부에서 사용됩니다.
3120
+ * Button that activates a tab. Used inside TabsList component.
3121
+ *
3122
+ * @component
3123
+ * @param {TabsTriggerProps} props - TabsTrigger 컴포넌트의 props / TabsTrigger component props
3124
+ * @param {React.Ref<HTMLButtonElement>} ref - button 요소 ref / button element ref
3125
+ * @returns {JSX.Element} TabsTrigger 컴포넌트 / TabsTrigger component
3126
+ */
3127
+ declare const TabsTrigger: React.ForwardRefExoticComponent<TabsTriggerProps & React.RefAttributes<HTMLButtonElement>>;
3128
+ declare const TabsPills: React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<HTMLDivElement>>;
3129
+ declare const TabsUnderline: React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<HTMLDivElement>>;
3130
+ declare const TabsCards: React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<HTMLDivElement>>;
3131
+
3132
+ /**
3133
+ * Menu 컴포넌트의 props / Menu component props
3134
+ * @typedef {Object} MenuProps
3135
+ * @property {React.ReactNode} children - MenuItem, MenuSeparator, MenuLabel 컴포넌트들 / MenuItem, MenuSeparator, MenuLabel components
3136
+ * @property {"default" | "horizontal" | "vertical" | "compact"} [variant="default"] - 메뉴 방향 및 스타일 / Menu direction and style
3137
+ * @property {"sm" | "md" | "lg"} [size="md"] - 메뉴 아이템 크기 / Menu item size
3138
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
3139
+ */
3140
+ interface MenuProps extends React.HTMLAttributes<HTMLDivElement> {
3141
+ children: React.ReactNode;
3142
+ variant?: "default" | "horizontal" | "vertical" | "compact";
3143
+ size?: "sm" | "md" | "lg";
3144
+ }
3145
+ /**
3146
+ * Menu 컴포넌트 / Menu component
3147
+ *
3148
+ * 메뉴 리스트를 제공하는 컴포넌트입니다.
3149
+ * MenuItem, MenuSeparator, MenuLabel과 함께 사용합니다.
3150
+ *
3151
+ * Component that provides menu lists.
3152
+ * Used with MenuItem, MenuSeparator, and MenuLabel.
3153
+ *
3154
+ * @component
3155
+ * @example
3156
+ * // 기본 수직 메뉴 / Basic vertical menu
3157
+ * <Menu>
3158
+ * <MenuItem icon={<Icon name="home" />}>홈</MenuItem>
3159
+ * <MenuItem icon={<Icon name="settings" />}>설정</MenuItem>
3160
+ * <MenuSeparator />
3161
+ * <MenuItem>로그아웃</MenuItem>
3162
+ * </Menu>
3163
+ *
3164
+ * @example
3165
+ * // 수평 메뉴 / Horizontal menu
3166
+ * <Menu variant="horizontal">
3167
+ * <MenuItem>메뉴 1</MenuItem>
3168
+ * <MenuItem>메뉴 2</MenuItem>
3169
+ * </Menu>
3170
+ *
3171
+ * @param {MenuProps} props - Menu 컴포넌트의 props / Menu component props
3172
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
3173
+ * @returns {JSX.Element} Menu 컴포넌트 / Menu component
3174
+ */
3175
+ declare const Menu: React.ForwardRefExoticComponent<MenuProps & React.RefAttributes<HTMLDivElement>>;
3176
+ /**
3177
+ * MenuItem 컴포넌트의 props / MenuItem component props
3178
+ * @typedef {Object} MenuItemProps
3179
+ * @property {React.ReactNode} [icon] - 메뉴 아이템 아이콘 / Menu item icon
3180
+ * @property {"default" | "horizontal" | "vertical" | "compact"} [variant] - 메뉴 변형 (Menu에서 자동 전달) / Menu variant (auto-passed from Menu)
3181
+ * @property {"sm" | "md" | "lg"} [size] - 메뉴 크기 (Menu에서 자동 전달) / Menu size (auto-passed from Menu)
3182
+ * @property {boolean} [active=false] - 활성화 상태 / Active state
3183
+ * @property {boolean} [disabled=false] - 비활성화 상태 / Disabled state
3184
+ * @extends {React.ButtonHTMLAttributes<HTMLButtonElement>}
3185
+ */
3186
+ interface MenuItemProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
3187
+ icon?: React.ReactNode;
3188
+ variant?: "default" | "horizontal" | "vertical" | "compact";
3189
+ size?: "sm" | "md" | "lg";
3190
+ active?: boolean;
3191
+ disabled?: boolean;
3192
+ }
3193
+ /**
3194
+ * MenuItem 컴포넌트 / MenuItem component
3195
+ * 메뉴의 개별 아이템을 표시합니다.
3196
+ * Displays an individual menu item.
3197
+ *
3198
+ * @component
3199
+ * @param {MenuItemProps} props - MenuItem 컴포넌트의 props / MenuItem component props
3200
+ * @param {React.Ref<HTMLButtonElement>} ref - button 요소 ref / button element ref
3201
+ * @returns {JSX.Element} MenuItem 컴포넌트 / MenuItem component
3202
+ */
3203
+ declare const MenuItem: React.ForwardRefExoticComponent<MenuItemProps & React.RefAttributes<HTMLButtonElement>>;
3204
+ /**
3205
+ * MenuSeparator 컴포넌트의 props / MenuSeparator component props
3206
+ * @typedef {Object} MenuSeparatorProps
3207
+ * @property {"default" | "horizontal" | "vertical" | "compact"} [variant] - 메뉴 변형 (Menu에서 자동 전달) / Menu variant (auto-passed from Menu)
3208
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
3209
+ */
3210
+ interface MenuSeparatorProps extends React.HTMLAttributes<HTMLDivElement> {
3211
+ variant?: "default" | "horizontal" | "vertical" | "compact";
3212
+ }
3213
+ /**
3214
+ * MenuSeparator 컴포넌트 / MenuSeparator component
3215
+ * 메뉴 아이템들을 구분하는 구분선을 표시합니다.
3216
+ * Displays a separator line between menu items.
3217
+ *
3218
+ * @component
3219
+ * @param {MenuSeparatorProps} props - MenuSeparator 컴포넌트의 props / MenuSeparator component props
3220
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
3221
+ * @returns {JSX.Element} MenuSeparator 컴포넌트 / MenuSeparator component
3222
+ */
3223
+ declare const MenuSeparator: React.ForwardRefExoticComponent<MenuSeparatorProps & React.RefAttributes<HTMLDivElement>>;
3224
+ /**
3225
+ * MenuLabel 컴포넌트의 props / MenuLabel component props
3226
+ * @typedef {Object} MenuLabelProps
3227
+ * @property {"default" | "horizontal" | "vertical" | "compact"} [variant] - 메뉴 변형 (Menu에서 자동 전달) / Menu variant (auto-passed from Menu)
3228
+ * @property {"sm" | "md" | "lg"} [size] - 메뉴 크기 (Menu에서 자동 전달) / Menu size (auto-passed from Menu)
3229
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
3230
+ */
3231
+ interface MenuLabelProps extends React.HTMLAttributes<HTMLDivElement> {
3232
+ variant?: "default" | "horizontal" | "vertical" | "compact";
3233
+ size?: "sm" | "md" | "lg";
3234
+ }
3235
+ /**
3236
+ * MenuLabel 컴포넌트 / MenuLabel component
3237
+ * 메뉴 섹션의 레이블을 표시합니다.
3238
+ * Displays a label for a menu section.
3239
+ *
3240
+ * @component
3241
+ * @param {MenuLabelProps} props - MenuLabel 컴포넌트의 props / MenuLabel component props
3242
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
3243
+ * @returns {JSX.Element} MenuLabel 컴포넌트 / MenuLabel component
3244
+ */
3245
+ declare const MenuLabel: React.ForwardRefExoticComponent<MenuLabelProps & React.RefAttributes<HTMLDivElement>>;
3246
+ declare const MenuHorizontal: React.ForwardRefExoticComponent<Omit<MenuProps, "variant"> & React.RefAttributes<HTMLDivElement>>;
3247
+ declare const MenuVertical: React.ForwardRefExoticComponent<Omit<MenuProps, "variant"> & React.RefAttributes<HTMLDivElement>>;
3248
+ declare const MenuCompact: React.ForwardRefExoticComponent<Omit<MenuProps, "variant"> & React.RefAttributes<HTMLDivElement>>;
3249
+
3250
+ /**
3251
+ * ContextMenu 컴포넌트의 props / ContextMenu component props
3252
+ * @typedef {Object} ContextMenuProps
3253
+ * @property {React.ReactNode} children - ContextMenu 내용 / ContextMenu content
3254
+ * @property {boolean} [open] - 제어 모드에서 열림/닫힘 상태 / Open/close state in controlled mode
3255
+ * @property {(open: boolean) => void} [onOpenChange] - 상태 변경 콜백 / State change callback
3256
+ * @property {React.ReactNode} [trigger] - ContextMenu를 열기 위한 트리거 요소 (우클릭 이벤트) / Trigger element to open context menu (right-click event)
3257
+ * @property {"top" | "bottom" | "left" | "right"} [placement="bottom"] - ContextMenu 표시 위치 / ContextMenu display position
3258
+ * @property {"start" | "center" | "end"} [align="start"] - ContextMenu 정렬 / ContextMenu alignment
3259
+ * @property {number} [offset=8] - 트리거와 ContextMenu 사이 간격 (px) / Spacing between trigger and context menu (px)
3260
+ * @property {boolean} [disabled=false] - ContextMenu 비활성화 여부 / Disable context menu
3261
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
3262
+ */
3263
+ interface ContextMenuProps extends React.HTMLAttributes<HTMLDivElement> {
3264
+ children: React.ReactNode;
3265
+ open?: boolean;
3266
+ onOpenChange?: (open: boolean) => void;
3267
+ trigger?: React.ReactNode;
3268
+ placement?: "top" | "bottom" | "left" | "right";
3269
+ align?: "start" | "center" | "end";
3270
+ offset?: number;
3271
+ disabled?: boolean;
3272
+ }
3273
+ /**
3274
+ * ContextMenu 컴포넌트 / ContextMenu component
3275
+ *
3276
+ * 우클릭 시 표시되는 컨텍스트 메뉴 컴포넌트입니다.
3277
+ * 트리거 요소에 우클릭 이벤트를 자동으로 연결합니다.
3278
+ *
3279
+ * Context menu component that appears on right-click.
3280
+ * Automatically connects right-click events to the trigger element.
3281
+ *
3282
+ * @component
3283
+ * @example
3284
+ * // 기본 사용 / Basic usage
3285
+ * <ContextMenu trigger={<div>우클릭하세요</div>}>
3286
+ * <div className="p-2">
3287
+ * <button>항목 1</button>
3288
+ * <button>항목 2</button>
3289
+ * </div>
3290
+ * </ContextMenu>
3291
+ *
3292
+ * @example
3293
+ * // 제어 모드 / Controlled mode
3294
+ * const [open, setOpen] = useState(false)
3295
+ * <ContextMenu
3296
+ * open={open}
3297
+ * onOpenChange={setOpen}
3298
+ * trigger={<div>우클릭</div>}
3299
+ * >
3300
+ * <Menu>
3301
+ * <MenuItem>복사</MenuItem>
3302
+ * <MenuItem>삭제</MenuItem>
3303
+ * </Menu>
3304
+ * </ContextMenu>
3305
+ *
3306
+ * @param {ContextMenuProps} props - ContextMenu 컴포넌트의 props / ContextMenu component props
3307
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
3308
+ * @returns {JSX.Element} ContextMenu 컴포넌트 / ContextMenu component
3309
+ */
3310
+ declare const ContextMenu: React.ForwardRefExoticComponent<ContextMenuProps & React.RefAttributes<HTMLDivElement>>;
3311
+ interface ContextMenuItemProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
3312
+ icon?: React.ReactNode;
3313
+ variant?: "default" | "destructive" | "disabled";
3314
+ }
3315
+ declare const ContextMenuItem: React.ForwardRefExoticComponent<ContextMenuItemProps & React.RefAttributes<HTMLButtonElement>>;
3316
+ interface ContextMenuSeparatorProps extends React.HTMLAttributes<HTMLDivElement> {
3317
+ }
3318
+ declare const ContextMenuSeparator: React.ForwardRefExoticComponent<ContextMenuSeparatorProps & React.RefAttributes<HTMLDivElement>>;
3319
+ interface ContextMenuLabelProps extends React.HTMLAttributes<HTMLDivElement> {
3320
+ }
3321
+ declare const ContextMenuLabel: React.ForwardRefExoticComponent<ContextMenuLabelProps & React.RefAttributes<HTMLDivElement>>;
3322
+ declare const ContextMenuGroup: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
3323
+
3324
+ /**
3325
+ * Command 컴포넌트의 props / Command component props
3326
+ * @typedef {Object} CommandProps
3327
+ * @property {React.ReactNode} children - CommandList, CommandItem 등 / CommandList, CommandItem, etc.
3328
+ * @property {boolean} [open] - 제어 모드에서 열림/닫힘 상태 / Open/close state in controlled mode
3329
+ * @property {(open: boolean) => void} [onOpenChange] - 상태 변경 콜백 / State change callback
3330
+ * @property {string} [placeholder="명령어를 검색하세요..."] - 검색 입력 플레이스홀더 / Search input placeholder
3331
+ * @property {string} [searchValue] - 제어 모드에서 검색 값 / Search value in controlled mode
3332
+ * @property {(value: string) => void} [onSearchChange] - 검색 값 변경 콜백 / Search value change callback
3333
+ * @property {boolean} [disabled=false] - Command 비활성화 여부 / Disable command
3334
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
3335
+ */
3336
+ interface CommandProps extends React.HTMLAttributes<HTMLDivElement> {
3337
+ children: React.ReactNode;
3338
+ open?: boolean;
3339
+ onOpenChange?: (open: boolean) => void;
3340
+ placeholder?: string;
3341
+ searchValue?: string;
3342
+ onSearchChange?: (value: string) => void;
3343
+ disabled?: boolean;
3344
+ }
3345
+ /**
3346
+ * Command 컴포넌트 / Command component
3347
+ *
3348
+ * 명령 팔레트(Command Palette) 컴포넌트입니다.
3349
+ * Cmd+K (Mac) 또는 Ctrl+K (Windows)로 열 수 있습니다.
3350
+ * 키보드 네비게이션(Arrow keys, Enter, Escape)을 지원합니다.
3351
+ *
3352
+ * Command Palette component.
3353
+ * Can be opened with Cmd+K (Mac) or Ctrl+K (Windows).
3354
+ * Supports keyboard navigation (Arrow keys, Enter, Escape).
3355
+ *
3356
+ * @component
3357
+ * @example
3358
+ * // 기본 사용 / Basic usage
3359
+ * <Command>
3360
+ * <CommandInput placeholder="검색..." />
3361
+ * <CommandList>
3362
+ * <CommandItem>항목 1</CommandItem>
3363
+ * <CommandItem>항목 2</CommandItem>
3364
+ * </CommandList>
3365
+ * </Command>
3366
+ *
3367
+ * @example
3368
+ * // 제어 모드 / Controlled mode
3369
+ * const [open, setOpen] = useState(false)
3370
+ * <Command
3371
+ * open={open}
3372
+ * onOpenChange={setOpen}
3373
+ * >
3374
+ * <CommandList>
3375
+ * <CommandGroup heading="파일">
3376
+ * <CommandItem>새 파일</CommandItem>
3377
+ * </CommandGroup>
3378
+ * </CommandList>
3379
+ * </Command>
3380
+ *
3381
+ * @param {CommandProps} props - Command 컴포넌트의 props / Command component props
3382
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
3383
+ * @returns {JSX.Element} Command 컴포넌트 / Command component
3384
+ */
3385
+ declare const Command: React.ForwardRefExoticComponent<CommandProps & React.RefAttributes<HTMLDivElement>>;
3386
+ /**
3387
+ * CommandInput 컴포넌트의 props / CommandInput component props
3388
+ * @typedef {Object} CommandInputProps
3389
+ * @extends {React.InputHTMLAttributes<HTMLInputElement>}
3390
+ */
3391
+ interface CommandInputProps extends React.InputHTMLAttributes<HTMLInputElement> {
3392
+ }
3393
+ declare const CommandInput: React.ForwardRefExoticComponent<CommandInputProps & React.RefAttributes<HTMLInputElement>>;
3394
+ interface CommandListProps extends React.HTMLAttributes<HTMLDivElement> {
3395
+ }
3396
+ declare const CommandList: React.ForwardRefExoticComponent<CommandListProps & React.RefAttributes<HTMLDivElement>>;
3397
+ /**
3398
+ * CommandItem 컴포넌트의 props / CommandItem component props
3399
+ * @typedef {Object} CommandItemProps
3400
+ * @property {React.ReactNode} [icon] - 항목 아이콘 / Item icon
3401
+ * @property {boolean} [selected=false] - 선택 상태 / Selected state
3402
+ * @property {() => void} [onSelect] - 선택 시 콜백 / Selection callback
3403
+ * @extends {React.ButtonHTMLAttributes<HTMLButtonElement>}
3404
+ */
3405
+ interface CommandItemProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
3406
+ icon?: React.ReactNode;
3407
+ selected?: boolean;
3408
+ onSelect?: () => void;
3409
+ }
3410
+ declare const CommandItem: React.ForwardRefExoticComponent<CommandItemProps & React.RefAttributes<HTMLButtonElement>>;
3411
+ /**
3412
+ * CommandGroup 컴포넌트의 props / CommandGroup component props
3413
+ * @typedef {Object} CommandGroupProps
3414
+ * @property {React.ReactNode} [heading] - 그룹 제목 / Group heading
3415
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
3416
+ */
3417
+ interface CommandGroupProps extends React.HTMLAttributes<HTMLDivElement> {
3418
+ heading?: React.ReactNode;
3419
+ }
3420
+ declare const CommandGroup: React.ForwardRefExoticComponent<CommandGroupProps & React.RefAttributes<HTMLDivElement>>;
3421
+ /**
3422
+ * CommandSeparator 컴포넌트의 props / CommandSeparator component props
3423
+ * @typedef {Object} CommandSeparatorProps
3424
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
3425
+ */
3426
+ interface CommandSeparatorProps extends React.HTMLAttributes<HTMLDivElement> {
3427
+ }
3428
+ declare const CommandSeparator: React.ForwardRefExoticComponent<CommandSeparatorProps & React.RefAttributes<HTMLDivElement>>;
3429
+ /**
3430
+ * CommandEmpty 컴포넌트의 props / CommandEmpty component props
3431
+ * @typedef {Object} CommandEmptyProps
3432
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
3433
+ */
3434
+ interface CommandEmptyProps extends React.HTMLAttributes<HTMLDivElement> {
3435
+ }
3436
+ declare const CommandEmpty: React.ForwardRefExoticComponent<CommandEmptyProps & React.RefAttributes<HTMLDivElement>>;
3437
+ declare const CommandDialog: React.ForwardRefExoticComponent<CommandProps & React.RefAttributes<HTMLDivElement>>;
3438
+
3439
+ /**
3440
+ * ScrollArea 컴포넌트의 props / ScrollArea component props
3441
+ * @typedef {Object} ScrollAreaProps
3442
+ * @property {React.ReactNode} children - 스크롤 영역 내용 / Scroll area content
3443
+ * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class
3444
+ * @property {"vertical" | "horizontal" | "both"} [orientation="vertical"] - 스크롤 방향 / Scroll direction
3445
+ * @property {number} [scrollHideDelay=600] - 스크롤바 숨김 지연 시간 (ms) / Scrollbar hide delay (ms)
3446
+ * @property {"auto" | "always" | "scroll" | "hover"} [type="hover"] - 스크롤바 표시 타입 / Scrollbar display type
3447
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
3448
+ */
3449
+ interface ScrollAreaProps extends React.HTMLAttributes<HTMLDivElement> {
3450
+ children: React.ReactNode;
3451
+ className?: string;
3452
+ orientation?: "vertical" | "horizontal" | "both";
3453
+ scrollHideDelay?: number;
3454
+ type?: "auto" | "always" | "scroll" | "hover";
3455
+ }
3456
+ /**
3457
+ * ScrollArea 컴포넌트 / ScrollArea component
3458
+ *
3459
+ * 커스텀 스크롤바를 가진 스크롤 영역 컴포넌트입니다.
3460
+ * 호버 시 스크롤바를 표시하거나 항상 표시할 수 있습니다.
3461
+ *
3462
+ * Scroll area component with custom scrollbar.
3463
+ * Can display scrollbar on hover or always.
3464
+ *
3465
+ * @component
3466
+ * @example
3467
+ * // 기본 사용 / Basic usage
3468
+ * <ScrollArea className="h-64">
3469
+ * <div>긴 내용...</div>
3470
+ * </ScrollArea>
3471
+ *
3472
+ * @example
3473
+ * // 가로 스크롤, 항상 표시 / Horizontal scroll, always visible
3474
+ * <ScrollArea orientation="horizontal" type="always">
3475
+ * <div className="flex space-x-4">...</div>
3476
+ * </ScrollArea>
3477
+ *
3478
+ * @param {ScrollAreaProps} props - ScrollArea 컴포넌트의 props / ScrollArea component props
3479
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
3480
+ * @returns {JSX.Element} ScrollArea 컴포넌트 / ScrollArea component
3481
+ */
3482
+ declare const ScrollArea: React.ForwardRefExoticComponent<ScrollAreaProps & React.RefAttributes<HTMLDivElement>>;
3483
+
3484
+ /**
3485
+ * ScrollToTop 컴포넌트의 props / ScrollToTop component props
3486
+ * @typedef {Object} ScrollToTopProps
3487
+ * @property {number} [threshold=400] - 표시 임계값 (px, 이 값 이상 스크롤 시 표시) / Display threshold (px, shows when scrolled beyond this value)
3488
+ * @property {boolean} [smooth=true] - 부드러운 스크롤 여부 / Smooth scroll
3489
+ * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class
3490
+ * @property {IconName} [icon='arrowUp'] - 아이콘 이름 / Icon name
3491
+ * @property {"sm" | "md" | "lg"} [size="md"] - 버튼 크기 / Button size
3492
+ * @property {"default" | "primary" | "secondary" | "outline" | "ghost"} [variant="default"] - 버튼 스타일 변형 / Button style variant
3493
+ * @property {boolean} [showOnMount=false] - 마운트 시 즉시 표시 여부 / Show immediately on mount
3494
+ * @extends {React.HTMLAttributes<HTMLButtonElement>}
3495
+ */
3496
+ interface ScrollToTopProps extends React.HTMLAttributes<HTMLButtonElement> {
3497
+ threshold?: number;
3498
+ smooth?: boolean;
3499
+ className?: string;
3500
+ icon?: IconName;
3501
+ size?: "sm" | "md" | "lg";
3502
+ variant?: "default" | "primary" | "secondary" | "outline" | "ghost";
3503
+ showOnMount?: boolean;
3504
+ }
3505
+ /**
3506
+ * ScrollToTop 컴포넌트 / ScrollToTop component
3507
+ *
3508
+ * 페이지 상단으로 스크롤하는 버튼 컴포넌트입니다.
3509
+ * 지정된 임계값 이상 스크롤 시 자동으로 표시됩니다.
3510
+ *
3511
+ * Button component that scrolls to top of page.
3512
+ * Automatically appears when scrolled beyond specified threshold.
3513
+ *
3514
+ * @component
3515
+ * @example
3516
+ * // 기본 사용 / Basic usage
3517
+ * <ScrollToTop />
3518
+ *
3519
+ * @example
3520
+ * // 커스텀 설정 / Custom settings
3521
+ * <ScrollToTop
3522
+ * threshold={500}
3523
+ * variant="primary"
3524
+ * size="lg"
3525
+ * icon="arrowUp"
3526
+ * />
3527
+ *
3528
+ * @param {ScrollToTopProps} props - ScrollToTop 컴포넌트의 props / ScrollToTop component props
3529
+ * @returns {JSX.Element} ScrollToTop 컴포넌트 / ScrollToTop component
3530
+ */
3531
+ declare const ScrollToTop: ({ className, threshold, smooth, icon, size, variant, showOnMount, ...props }: ScrollToTopProps) => react_jsx_runtime.JSX.Element;
3532
+
3533
+ type Theme = "light" | "dark" | "system";
3534
+ /**
3535
+ * ThemeProvider 컴포넌트의 props / ThemeProvider component props
3536
+ * @typedef {Object} ThemeProviderProps
3537
+ * @property {React.ReactNode} children - 자식 컴포넌트 / Child components
3538
+ * @property {"light" | "dark" | "system"} [defaultTheme="light"] - 기본 테마 / Default theme
3539
+ * @property {string} [storageKey="hua-ui-theme"] - localStorage 키 / localStorage key
3540
+ * @property {boolean} [enableSystem=true] - 시스템 테마 감지 활성화 / Enable system theme detection
3541
+ * @property {boolean} [enableTransition=true] - 테마 전환 애니메이션 활성화 / Enable theme transition animation
3542
+ */
3543
+ interface ThemeProviderProps {
3544
+ children: React.ReactNode;
3545
+ defaultTheme?: Theme;
3546
+ storageKey?: string;
3547
+ enableSystem?: boolean;
3548
+ enableTransition?: boolean;
3549
+ }
3550
+ /**
3551
+ * ThemeProvider의 상태 타입 / ThemeProvider state type
3552
+ * @typedef {Object} ThemeProviderState
3553
+ * @property {"light" | "dark" | "system"} theme - 현재 테마 / Current theme
3554
+ * @property {(theme: "light" | "dark" | "system") => void} setTheme - 테마 설정 함수 / Theme setter function
3555
+ * @property {"light" | "dark"} resolvedTheme - 실제 적용된 테마 (system일 경우 시스템 테마) / Actually applied theme (system theme when system is selected)
3556
+ * @property {() => void} toggleTheme - 테마 토글 함수 / Theme toggle function
3557
+ */
3558
+ interface ThemeProviderState {
3559
+ theme: Theme;
3560
+ setTheme: (theme: Theme) => void;
3561
+ resolvedTheme: "light" | "dark";
3562
+ toggleTheme: () => void;
3563
+ }
3564
+ /**
3565
+ * ThemeProvider 컴포넌트 / ThemeProvider component
3566
+ *
3567
+ * 테마 관리를 위한 Context Provider 컴포넌트입니다.
3568
+ * localStorage에 테마를 저장하고, 시스템 테마를 감지할 수 있습니다.
3569
+ * useTheme 훅을 통해 테마 상태에 접근할 수 있습니다.
3570
+ *
3571
+ * Context Provider component for theme management.
3572
+ * Saves theme to localStorage and can detect system theme.
3573
+ * Access theme state through useTheme hook.
3574
+ *
3575
+ * @component
3576
+ * @example
3577
+ * // 기본 사용 / Basic usage
3578
+ * <ThemeProvider>
3579
+ * <App />
3580
+ * </ThemeProvider>
3581
+ *
3582
+ * @example
3583
+ * // 커스텀 설정 / Custom settings
3584
+ * <ThemeProvider
3585
+ * defaultTheme="dark"
3586
+ * storageKey="my-app-theme"
3587
+ * enableSystem={true}
3588
+ * enableTransition={true}
3589
+ * >
3590
+ * <App />
3591
+ * </ThemeProvider>
3592
+ *
3593
+ * @param {ThemeProviderProps} props - ThemeProvider 컴포넌트의 props / ThemeProvider component props
3594
+ * @returns {JSX.Element} ThemeProvider 컴포넌트 / ThemeProvider component
3595
+ */
3596
+ declare function ThemeProvider({ children, defaultTheme, // system에서 light로 변경
3597
+ storageKey, enableSystem, enableTransition, ...props }: ThemeProviderProps): React.ReactElement;
3598
+ /**
3599
+ * useTheme 훅 / useTheme hook
3600
+ *
3601
+ * ThemeProvider의 테마 상태에 접근하는 훅입니다.
3602
+ * ThemeProvider 내부에서만 사용할 수 있습니다.
3603
+ *
3604
+ * Hook to access ThemeProvider's theme state.
3605
+ * Can only be used inside ThemeProvider.
3606
+ *
3607
+ * @example
3608
+ * const { theme, setTheme, resolvedTheme, toggleTheme } = useTheme()
3609
+ *
3610
+ * @returns {ThemeProviderState} 테마 상태와 함수들 / Theme state and functions
3611
+ * @throws {Error} ThemeProvider 외부에서 사용 시 에러 발생 / Error when used outside ThemeProvider
3612
+ */
3613
+ declare const useTheme: () => ThemeProviderState;
3614
+
3615
+ /**
3616
+ * ThemeToggle 컴포넌트의 props / ThemeToggle component props
3617
+ * @typedef {Object} ThemeToggleProps
3618
+ * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class
3619
+ * @property {"sm" | "md" | "lg"} [size="md"] - Toggle 크기 / Toggle size
3620
+ * @property {"button" | "icon" | "switch"} [variant="button"] - Toggle 스타일 변형 / Toggle style variant
3621
+ * @property {boolean} [showLabel=false] - 라벨 표시 여부 / Show label
3622
+ * @property {Object} [label] - 커스텀 라벨 텍스트 / Custom label text
3623
+ * @property {string} [label.light="라이트"] - 라이트 모드 라벨 / Light mode label
3624
+ * @property {string} [label.dark="다크"] - 다크 모드 라벨 / Dark mode label
3625
+ * @property {string} [label.system="시스템"] - 시스템 모드 라벨 / System mode label
3626
+ */
3627
+ interface ThemeToggleProps {
3628
+ className?: string;
3629
+ size?: "sm" | "md" | "lg";
3630
+ variant?: "button" | "icon" | "switch";
3631
+ showLabel?: boolean;
3632
+ label?: {
3633
+ light?: string;
3634
+ dark?: string;
3635
+ system?: string;
3636
+ };
3637
+ }
3638
+ /**
3639
+ * ThemeToggle 컴포넌트 / ThemeToggle component
3640
+ *
3641
+ * 테마를 전환하는 토글 컴포넌트입니다.
3642
+ * ThemeProvider와 함께 사용하며, light/dark/system 테마를 지원합니다.
3643
+ *
3644
+ * Toggle component for switching themes.
3645
+ * Used with ThemeProvider, supports light/dark/system themes.
3646
+ *
3647
+ * @component
3648
+ * @example
3649
+ * // 기본 사용 (버튼 스타일) / Basic usage (button style)
3650
+ * <ThemeToggle />
3651
+ *
3652
+ * @example
3653
+ * // 아이콘만 표시 / Icon only
3654
+ * <ThemeToggle variant="icon" size="lg" />
3655
+ *
3656
+ * @example
3657
+ * // Switch 스타일 / Switch style
3658
+ * <ThemeToggle variant="switch" />
3659
+ *
3660
+ * @example
3661
+ * // 라벨과 함께 / With label
3662
+ * <ThemeToggle
3663
+ * showLabel
3664
+ * label={{ light: "밝게", dark: "어둡게" }}
3665
+ * />
3666
+ *
3667
+ * @param {ThemeToggleProps} props - ThemeToggle 컴포넌트의 props / ThemeToggle component props
3668
+ * @returns {JSX.Element} ThemeToggle 컴포넌트 / ThemeToggle component
3669
+ */
3670
+ declare function ThemeToggle({ className, size, variant, showLabel, label, ...props }: ThemeToggleProps): react_jsx_runtime.JSX.Element;
3671
+
3672
+ /**
3673
+ * Icon Aliases
3674
+ *
3675
+ * 여러 이름이 같은 아이콘을 가리키도록 하는 alias 시스템
3676
+ * DX 향상을 위해 직관적인 이름들을 지원합니다.
3677
+ */
3678
+ declare const ICON_ALIASES: Record<string, string>;
3679
+ /**
3680
+ * Resolve icon alias to actual icon name
3681
+ *
3682
+ * @param iconName - 아이콘 이름 또는 별칭 / Icon name or alias
3683
+ * @returns 실제 아이콘 이름 / Actual icon name
3684
+ * @throws {TypeError} iconName이 문자열이 아닌 경우
3685
+ */
3686
+ declare function resolveIconAlias(iconName: string): string;
3687
+ /**
3688
+ * Get all aliases for an icon name
3689
+ *
3690
+ * @param iconName - 아이콘 이름 / Icon name
3691
+ * @returns 해당 아이콘의 모든 별칭 배열 / Array of all aliases for the icon
3692
+ * @throws {TypeError} iconName이 문자열이 아닌 경우
3693
+ */
3694
+ declare function getIconAliases(iconName: string): string[];
3695
+
3696
+ /**
3697
+ * HUA UI의 스마트 클래스 병합 유틸리티
3698
+ * clsx와 tailwind-merge를 결합하여 중복 클래스를 자동으로 해결합니다.
3699
+ *
3700
+ * @param inputs - 병합할 클래스 값들
3701
+ * @returns 병합된 클래스 문자열
3702
+ *
3703
+ * @example
3704
+ * ```tsx
3705
+ * merge("px-2 py-1", "px-4") // "py-1 px-4"
3706
+ * merge("text-red-500", "text-blue-500") // "text-blue-500"
3707
+ * merge("bg-white", "dark:bg-slate-900") // "bg-white dark:bg-slate-900"
3708
+ * ```
3709
+ */
3710
+ declare function merge(...inputs: ClassValue[]): string;
3711
+ /**
3712
+ * 조건부 클래스 병합 유틸리티
3713
+ * 조건에 따라 클래스를 선택적으로 병합합니다.
3714
+ *
3715
+ * @param condition - 클래스를 적용할 조건
3716
+ * @param trueClass - 조건이 true일 때 적용할 클래스
3717
+ * @param falseClass - 조건이 false일 때 적용할 클래스 (선택사항)
3718
+ * @returns 병합된 클래스 문자열
3719
+ *
3720
+ * @example
3721
+ * ```tsx
3722
+ * mergeIf(isActive, "bg-blue-500", "bg-gray-200")
3723
+ * mergeIf(isLoading, "opacity-50 cursor-not-allowed")
3724
+ * ```
3725
+ */
3726
+ declare function mergeIf(condition: boolean, trueClass: ClassValue, falseClass?: ClassValue): string;
3727
+ /**
3728
+ * 상대 시간 포맷팅 유틸리티
3729
+ *
3730
+ * 날짜를 상대 시간 형식으로 포맷팅합니다 (예: "방금 전", "5분 전", "2시간 전", "3일 전").
3731
+ * 7일 이상 경과한 경우 절대 날짜를 반환합니다.
3732
+ *
3733
+ * Formats a date as relative time (e.g., "방금 전", "5분 전", "2시간 전", "3일 전").
3734
+ * Returns absolute date for dates older than 7 days.
3735
+ *
3736
+ * @param timestamp - 포맷팅할 날짜 (Date 객체 또는 ISO 문자열) / Date to format (Date object or ISO string)
3737
+ * @param locale - 로케일 (기본값: "ko-KR") / Locale (default: "ko-KR")
3738
+ * @returns 포맷팅된 상대 시간 문자열 / Formatted relative time string
3739
+ *
3740
+ * @example
3741
+ * ```tsx
3742
+ * formatRelativeTime(new Date()) // "방금 전"
3743
+ * formatRelativeTime(new Date(Date.now() - 5 * 60000)) // "5분 전"
3744
+ * formatRelativeTime(new Date(Date.now() - 2 * 3600000)) // "2시간 전"
3745
+ * formatRelativeTime(new Date(Date.now() - 3 * 86400000)) // "3일 전"
3746
+ * formatRelativeTime(new Date("2024-01-01")) // "2024. 1. 1." (7일 이상 경과)
3747
+ * ```
3748
+ */
3749
+ declare function formatRelativeTime(timestamp: Date | string, locale?: string): string;
3750
+ /**
3751
+ * 객체 기반 클래스 병합 유틸리티
3752
+ * 객체의 키-값 쌍을 기반으로 조건부 클래스를 병합합니다.
3753
+ *
3754
+ * @param classMap - 클래스 맵 객체
3755
+ * @returns 병합된 클래스 문자열
3756
+ *
3757
+ * @example
3758
+ * ```tsx
3759
+ * mergeMap({
3760
+ * "bg-blue-500": isPrimary,
3761
+ * "bg-gray-500": !isPrimary,
3762
+ * "text-white": true,
3763
+ * "opacity-50": isDisabled
3764
+ * })
3765
+ * ```
3766
+ */
3767
+ declare function mergeMap(classMap: Record<string, boolean | undefined | null>): string;
3768
+ declare const cn: typeof merge;
3769
+
3770
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Action as Act, Action, type ActionButton, ActionToolbar, type ActionToolbarProps, Alert, AlertError, AlertInfo, AlertSuccess, AlertWarning, type AllIconName, Alert as Alt, Avatar, AvatarFallback, AvatarImage, Avatar as Avt, Badge, BottomSheet, Breadcrumb, BreadcrumbItem, type BreadcrumbItemData, type BreadcrumbItemProps, type BreadcrumbProps, Button as Btn, Button, type ButtonProps, Card, CardContent, type CardContentProps, CardDescription, type CardDescriptionProps, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, type CardProps, CardTitle, type CardTitleProps, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, ConfirmModal, Container as Cont, Container, ContextMenu, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuSeparator, Card as Crd, Divider, Drawer, DrawerContent, DrawerFooter, DrawerHeader, Dropdown, DropdownGroup, DropdownItem, DropdownLabel, DropdownMenu, DropdownSeparator, EmotionIcon, ErrorIcon, Grid, ICON_ALIASES, Icon as Ic, Icon, type IconConfig, IconName, type IconProps, IconProvider, type IconProviderProps, type IconSet, Link, Link as Lnk, LoadingSpinner as Loading, LoadingIcon, LoadingSpinner, Modal as Mdl, Menu, MenuCompact, MenuHorizontal, MenuItem, MenuLabel, MenuSeparator, MenuVertical, Modal, type ModalProps, NavigationComponent as Navigation, NavigationContent, NavigationItem, NavigationList, Pagination, PaginationMinimal, PaginationOutlined, PaginationWithInfo, Panel, type PhosphorWeight, Popover, PopoverContent, PopoverTrigger, Progress, ProgressError, ProgressGroup, ProgressInfo, ProgressSuccess, ProgressWarning, type ProjectIconName, ScrollArea, ScrollToTop, Skeleton, SkeletonAvatar, SkeletonCard, SkeletonCircle, SkeletonImage, SkeletonList, SkeletonRectangle, SkeletonRounded, SkeletonTable, SkeletonText, SkeletonUserProfile, Stack, StatusIcon, SuccessIcon, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsCards, TabsContent, TabsList, TabsPills, TabsTrigger, TabsUnderline, Table as Tbl, ThemeProvider, ThemeToggle, Tooltip, TooltipDark, TooltipLight, cn, defaultIconConfig, emotionIcons, formatRelativeTime, getDefaultStrokeWidth, getIconAliases, getIconNameForProvider, iconNames, iconProviderMapping, isValidIconName, merge, mergeIf, mergeMap, resolveIconAlias, statusIcons, useIconContext, useTheme };