@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,1801 @@
1
+ import React from 'react';
2
+ import { I as IconName } from './icons-DoSGIez_.mjs';
3
+
4
+ /**
5
+ * HUA UI 공통 타입 정의
6
+ * 모든 컴포넌트에서 사용하는 표준 타입들을 정의합니다.
7
+ */
8
+
9
+ /**
10
+ * 공통 색상 타입
11
+ * 모든 컴포넌트에서 사용하는 표준 색상 팔레트
12
+ */
13
+ type Color = "blue" | "purple" | "green" | "orange" | "red" | "indigo" | "pink" | "gray";
14
+
15
+ /**
16
+ * StatCard 컴포넌트의 props / StatCard component props
17
+ * @typedef {Object} StatCardProps
18
+ * @property {string} title - 카드 제목 / Card title
19
+ * @property {string | number | null | undefined} value - 통계 값 / Statistic value
20
+ * @property {string} [description] - 카드 설명 / Card description
21
+ * @property {IconName | React.ReactNode} [icon] - 아이콘 / Icon
22
+ * @property {Object} [trend] - 추세 정보 / Trend information
23
+ * @property {number} trend.value - 추세 값 / Trend value
24
+ * @property {string} trend.label - 추세 라벨 / Trend label
25
+ * @property {boolean} [trend.positive] - 긍정적 추세 여부 / Positive trend
26
+ * @property {"default" | "gradient" | "outline" | "elevated"} [variant="default"] - 카드 스타일 변형 / Card style variant
27
+ * @property {"blue" | "purple" | "green" | "orange" | "red" | "indigo" | "pink" | "gray"} [color] - 카드 색상 / Card color
28
+ * @property {boolean} [loading] - 로딩 상태 / Loading state
29
+ * @property {React.ReactNode} [emptyState] - 빈 상태 컴포넌트 / Empty state component
30
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
31
+ */
32
+ interface StatCardProps extends React.HTMLAttributes<HTMLDivElement> {
33
+ title: string;
34
+ value: string | number | null | undefined;
35
+ description?: string;
36
+ icon?: IconName | React.ReactNode;
37
+ trend?: {
38
+ value: number;
39
+ label: string;
40
+ positive?: boolean;
41
+ };
42
+ variant?: "default" | "gradient" | "outline" | "elevated";
43
+ color?: Color;
44
+ loading?: boolean;
45
+ emptyState?: React.ReactNode;
46
+ }
47
+ /**
48
+ * StatCard 컴포넌트 / StatCard component
49
+ *
50
+ * 통계 정보를 표시하는 카드 컴포넌트입니다.
51
+ * 제목, 값, 설명, 아이콘, 추세 정보를 포함할 수 있습니다.
52
+ *
53
+ * Card component that displays statistic information.
54
+ * Can include title, value, description, icon, and trend information.
55
+ *
56
+ * @component
57
+ * @example
58
+ * // 기본 사용 / Basic usage
59
+ * <StatCard
60
+ * title="총 사용자"
61
+ * value="1,234"
62
+ * description="지난 달 대비"
63
+ * icon="users"
64
+ * />
65
+ *
66
+ * @example
67
+ * // 추세 정보 포함 / With trend information
68
+ * <StatCard
69
+ * title="매출"
70
+ * value="₩1,000,000"
71
+ * trend={{ value: 12.5, label: "전월 대비", positive: true }}
72
+ * color="green"
73
+ * variant="gradient"
74
+ * />
75
+ *
76
+ * @param {StatCardProps} props - StatCard 컴포넌트의 props / StatCard component props
77
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
78
+ * @returns {JSX.Element} StatCard 컴포넌트 / StatCard component
79
+ */
80
+ declare const StatCard: React.ForwardRefExoticComponent<StatCardProps & React.RefAttributes<HTMLDivElement>>;
81
+
82
+ /**
83
+ * QuickActionCard 컴포넌트의 props / QuickActionCard component props
84
+ * @typedef {Object} QuickActionCardProps
85
+ * @property {string} title - 카드 제목 / Card title
86
+ * @property {string} [description] - 카드 설명 / Card description
87
+ * @property {IconName | React.ReactNode} [icon] - 아이콘 / Icon
88
+ * @property {string} [href] - 링크 URL / Link URL
89
+ * @property {() => void} [onClick] - 클릭 핸들러 / Click handler
90
+ * @property {"gradient" | "outline" | "solid"} [variant="gradient"] - 카드 스타일 변형 / Card style variant
91
+ * @property {"blue" | "purple" | "green" | "orange" | "red" | "indigo" | "pink" | "gray"} [color="blue"] - 카드 색상 / Card color
92
+ * @property {boolean} [loading] - 로딩 상태 / Loading state
93
+ * @extends {React.HTMLAttributes<HTMLAnchorElement | HTMLButtonElement>}
94
+ */
95
+ interface QuickActionCardProps extends React.HTMLAttributes<HTMLAnchorElement | HTMLButtonElement> {
96
+ title: string;
97
+ description?: string;
98
+ icon?: IconName | React.ReactNode;
99
+ href?: string;
100
+ onClick?: () => void;
101
+ variant?: "gradient" | "outline" | "solid";
102
+ color?: Color;
103
+ loading?: boolean;
104
+ }
105
+ /**
106
+ * QuickActionCard 컴포넌트 / QuickActionCard component
107
+ *
108
+ * 빠른 액션을 수행하는 카드 컴포넌트입니다.
109
+ * 링크나 버튼으로 동작하며, 클릭 가능한 액션 카드로 사용됩니다.
110
+ *
111
+ * Card component for quick actions.
112
+ * Works as a link or button, used as a clickable action card.
113
+ *
114
+ * @component
115
+ * @example
116
+ * // 링크 카드 / Link card
117
+ * <QuickActionCard
118
+ * title="새 주문 생성"
119
+ * description="주문을 빠르게 생성하세요"
120
+ * icon="plus"
121
+ * href="/orders/new"
122
+ * color="blue"
123
+ * />
124
+ *
125
+ * @example
126
+ * // 버튼 카드 / Button card
127
+ * <QuickActionCard
128
+ * title="리포트 다운로드"
129
+ * description="최신 리포트를 다운로드하세요"
130
+ * icon="download"
131
+ * onClick={handleDownload}
132
+ * variant="outline"
133
+ * color="green"
134
+ * />
135
+ *
136
+ * @param {QuickActionCardProps} props - QuickActionCard 컴포넌트의 props / QuickActionCard component props
137
+ * @param {React.Ref<HTMLAnchorElement | HTMLButtonElement>} ref - anchor 또는 button 요소 ref / anchor or button element ref
138
+ * @returns {JSX.Element} QuickActionCard 컴포넌트 / QuickActionCard component
139
+ */
140
+ declare const QuickActionCard: React.ForwardRefExoticComponent<QuickActionCardProps & React.RefAttributes<HTMLAnchorElement | HTMLButtonElement>>;
141
+
142
+ /**
143
+ * DashboardGrid 컴포넌트의 props
144
+ * @typedef {Object} DashboardGridProps
145
+ * @property {1 | 2 | 3 | 4 | 5 | 6} [columns=4] - 그리드 컬럼 수
146
+ * @property {"sm" | "md" | "lg" | "xl"} [gap="md"] - 그리드 간격
147
+ * @property {boolean} [responsive=true] - 반응형 여부
148
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
149
+ */
150
+ interface DashboardGridProps extends React.HTMLAttributes<HTMLDivElement> {
151
+ columns?: 1 | 2 | 3 | 4 | 5 | 6;
152
+ gap?: "sm" | "md" | "lg" | "xl";
153
+ responsive?: boolean;
154
+ }
155
+ /**
156
+ * DashboardGrid 컴포넌트
157
+ *
158
+ * 대시보드 그리드 레이아웃을 제공하는 컴포넌트입니다.
159
+ * 반응형 그리드를 지원하며, 다양한 컬럼 수와 간격을 설정할 수 있습니다.
160
+ *
161
+ * Dashboard grid layout component.
162
+ * Supports responsive grid with configurable column count and gap sizes.
163
+ *
164
+ * @component
165
+ * @example
166
+ * // 기본 사용 / Basic usage
167
+ * <DashboardGrid columns={4}>
168
+ * <StatCard title="항목 1" value="100" />
169
+ * <StatCard title="항목 2" value="200" />
170
+ * </DashboardGrid>
171
+ *
172
+ * @example
173
+ * // 반응형 그리드 / Responsive grid
174
+ * <DashboardGrid columns={3} gap="lg" responsive>
175
+ * <MetricCard title="메트릭 1" value="1,000" />
176
+ * <MetricCard title="메트릭 2" value="2,000" />
177
+ * </DashboardGrid>
178
+ *
179
+ * @param {DashboardGridProps} props - DashboardGrid 컴포넌트의 props / DashboardGrid component props
180
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
181
+ * @returns {JSX.Element} DashboardGrid 컴포넌트 / DashboardGrid component
182
+ */
183
+ declare const DashboardGrid: React.ForwardRefExoticComponent<DashboardGridProps & React.RefAttributes<HTMLDivElement>>;
184
+
185
+ /**
186
+ * ActivityItem 인터페이스 / ActivityItem interface
187
+ * @typedef {Object} ActivityItem
188
+ * @property {string} id - 활동 항목 고유 ID / Activity item unique ID
189
+ * @property {string} title - 활동 제목 / Activity title
190
+ * @property {string} [description] - 활동 설명 / Activity description
191
+ * @property {Date | string} timestamp - 활동 타임스탬프 / Activity timestamp
192
+ * @property {IconName | React.ReactNode} [icon] - 아이콘 / Icon
193
+ * @property {string | React.ReactNode} [badge] - 배지 / Badge
194
+ * @property {() => void} [onClick] - 클릭 핸들러 / Click handler
195
+ * @property {Record<string, unknown>} [metadata] - 추가 메타데이터 / Additional metadata
196
+ */
197
+ interface ActivityItem {
198
+ id: string;
199
+ title: string;
200
+ description?: string;
201
+ timestamp: Date | string;
202
+ icon?: IconName | React.ReactNode;
203
+ badge?: string | React.ReactNode;
204
+ onClick?: () => void;
205
+ metadata?: Record<string, unknown>;
206
+ }
207
+ /**
208
+ * ActivityFeed 컴포넌트의 props / ActivityFeed component props
209
+ * @typedef {Object} ActivityFeedProps
210
+ * @property {string} [title] - 피드 제목 / Feed title
211
+ * @property {ActivityItem[]} items - 활동 항목 배열 / Activity items array
212
+ * @property {string} [emptyMessage="활동 내역이 없습니다."] - 빈 상태 메시지 / Empty state message
213
+ * @property {boolean} [showHeader=true] - 헤더 표시 여부 / Show header
214
+ * @property {number} [maxItems] - 최대 표시 항목 수 / Maximum items to display
215
+ * @property {() => void} [onViewAll] - 전체 보기 핸들러 / View all handler
216
+ * @property {string} [viewAllLabel="전체 보기"] - 전체 보기 라벨 / View all label
217
+ * @property {React.ReactNode} [emptyState] - 빈 상태 컴포넌트 / Empty state component
218
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
219
+ */
220
+ interface ActivityFeedProps extends React.HTMLAttributes<HTMLDivElement> {
221
+ title?: string;
222
+ items: ActivityItem[];
223
+ emptyMessage?: string;
224
+ showHeader?: boolean;
225
+ maxItems?: number;
226
+ onViewAll?: () => void;
227
+ viewAllLabel?: string;
228
+ emptyState?: React.ReactNode;
229
+ }
230
+ /**
231
+ * ActivityFeed 컴포넌트 / ActivityFeed component
232
+ *
233
+ * 활동 내역을 표시하는 피드 컴포넌트입니다.
234
+ * 타임스탬프를 상대 시간으로 표시하며, 최대 항목 수 제한을 지원합니다.
235
+ *
236
+ * Feed component that displays activity history.
237
+ * Shows timestamps as relative time and supports maximum items limit.
238
+ *
239
+ * @component
240
+ * @example
241
+ * // 기본 사용 / Basic usage
242
+ * <ActivityFeed
243
+ * title="최근 활동"
244
+ * items={[
245
+ * {
246
+ * id: "1",
247
+ * title: "새 주문 생성",
248
+ * description: "주문 #1234",
249
+ * timestamp: new Date(),
250
+ * icon: "shoppingCart"
251
+ * }
252
+ * ]}
253
+ * />
254
+ *
255
+ * @example
256
+ * // 최대 항목 수 제한 / Maximum items limit
257
+ * <ActivityFeed
258
+ * title="활동 내역"
259
+ * items={activities}
260
+ * maxItems={10}
261
+ * onViewAll={() => navigate("/activities")}
262
+ * />
263
+ *
264
+ * @param {ActivityFeedProps} props - ActivityFeed 컴포넌트의 props / ActivityFeed component props
265
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
266
+ * @returns {JSX.Element} ActivityFeed 컴포넌트 / ActivityFeed component
267
+ */
268
+ declare const ActivityFeed: React.ForwardRefExoticComponent<ActivityFeedProps & React.RefAttributes<HTMLDivElement>>;
269
+
270
+ /**
271
+ * 멤버십 등급 인터페이스
272
+ * @typedef {Object} MembershipTier
273
+ * @property {"basic" | "pro" | "premium" | "admin"} tier - 등급
274
+ * @property {string} label - 등급 라벨
275
+ */
276
+ interface MembershipTier {
277
+ tier: "basic" | "pro" | "premium" | "admin";
278
+ label: string;
279
+ }
280
+ /**
281
+ * ProfileCard 컴포넌트의 props / ProfileCard component props
282
+ * @typedef {Object} ProfileCardProps
283
+ * @property {string} name - 사용자 이름 / User name
284
+ * @property {string} [email] - 이메일 / Email
285
+ * @property {string} [avatar] - 아바타 이미지 URL / Avatar image URL
286
+ * @property {string} [avatarAlt] - 아바타 대체 텍스트 / Avatar alt text
287
+ * @property {string} [greeting] - 인사말 / Greeting
288
+ * @property {Date | string} [memberSince] - 가입일 / Member since date
289
+ * @property {MembershipTier["tier"]} [membershipTier] - 멤버십 등급 / Membership tier
290
+ * @property {string} [membershipLabel] - 멤버십 라벨 / Membership label
291
+ * @property {() => void} [onSettingsClick] - 설정 클릭 핸들러 / Settings click handler
292
+ * @property {string} [settingsHref] - 설정 링크 URL / Settings link URL
293
+ * @property {"default" | "gradient" | "minimal"} [variant="default"] - 스타일 변형 / Style variant
294
+ * @property {boolean} [showAvatar=true] - 아바타 표시 여부 / Show avatar
295
+ * @property {boolean} [showMembership=true] - 멤버십 표시 여부 / Show membership
296
+ * @property {boolean} [showSettings=true] - 설정 버튼 표시 여부 / Show settings button
297
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
298
+ */
299
+ interface ProfileCardProps extends React.HTMLAttributes<HTMLDivElement> {
300
+ name: string;
301
+ email?: string;
302
+ avatar?: string;
303
+ avatarAlt?: string;
304
+ greeting?: string;
305
+ memberSince?: Date | string;
306
+ membershipTier?: MembershipTier["tier"];
307
+ membershipLabel?: string;
308
+ onSettingsClick?: () => void;
309
+ settingsHref?: string;
310
+ variant?: "default" | "gradient" | "minimal";
311
+ showAvatar?: boolean;
312
+ showMembership?: boolean;
313
+ showSettings?: boolean;
314
+ }
315
+ /**
316
+ * ProfileCard 컴포넌트
317
+ *
318
+ * 사용자 프로필 정보를 표시하는 카드 컴포넌트입니다.
319
+ * 아바타, 이름, 이메일, 멤버십 등급 등을 표시할 수 있습니다.
320
+ *
321
+ * Card component that displays user profile information.
322
+ * Can show avatar, name, email, membership tier, and more.
323
+ *
324
+ * @component
325
+ * @example
326
+ * // 기본 사용 / Basic usage
327
+ * <ProfileCard
328
+ * name="홍길동"
329
+ * email="hong@example.com"
330
+ * avatar="/avatar.jpg"
331
+ * membershipTier="premium"
332
+ * memberSince={new Date("2024-01-01")}
333
+ * />
334
+ *
335
+ * @example
336
+ * // 그라디언트 스타일 / Gradient style
337
+ * <ProfileCard
338
+ * name="김철수"
339
+ * greeting="안녕하세요"
340
+ * variant="gradient"
341
+ * membershipTier="pro"
342
+ * onSettingsClick={() => navigate("/settings")}
343
+ * />
344
+ *
345
+ * @param {ProfileCardProps} props - ProfileCard 컴포넌트의 props / ProfileCard component props
346
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
347
+ * @returns {JSX.Element} ProfileCard 컴포넌트 / ProfileCard component
348
+ */
349
+ declare const ProfileCard: React.ForwardRefExoticComponent<ProfileCardProps & React.RefAttributes<HTMLDivElement>>;
350
+
351
+ /**
352
+ * MembershipBadge 컴포넌트의 props / MembershipBadge component props
353
+ * @typedef {Object} MembershipBadgeProps
354
+ * @property {"basic" | "pro" | "premium" | "admin"} tier - 멤버십 등급 / Membership tier
355
+ * @property {string} [label] - 커스텀 라벨 (기본값: 등급별 라벨) / Custom label (default: tier-specific label)
356
+ * @property {"sm" | "md" | "lg"} [size="md"] - 배지 크기 / Badge size
357
+ * @property {boolean} [showIcon=true] - 아이콘 표시 여부 / Show icon
358
+ * @extends {React.HTMLAttributes<HTMLSpanElement>}
359
+ */
360
+ interface MembershipBadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
361
+ tier: "basic" | "pro" | "premium" | "admin";
362
+ label?: string;
363
+ size?: "sm" | "md" | "lg";
364
+ showIcon?: boolean;
365
+ }
366
+ /**
367
+ * MembershipBadge 컴포넌트
368
+ *
369
+ * 멤버십 등급을 표시하는 배지 컴포넌트입니다.
370
+ * 등급별로 다른 그라디언트 색상과 아이콘을 제공합니다.
371
+ *
372
+ * Badge component that displays membership tier.
373
+ * Provides different gradient colors and icons for each tier.
374
+ *
375
+ * @component
376
+ * @example
377
+ * // 기본 사용 / Basic usage
378
+ * <MembershipBadge tier="premium" />
379
+ *
380
+ * @example
381
+ * // 커스텀 라벨과 크기 / Custom label and size
382
+ * <MembershipBadge
383
+ * tier="pro"
384
+ * label="프로 플랜"
385
+ * size="lg"
386
+ * showIcon={false}
387
+ * />
388
+ *
389
+ * @param {MembershipBadgeProps} props - MembershipBadge 컴포넌트의 props / MembershipBadge component props
390
+ * @param {React.Ref<HTMLSpanElement>} ref - span 요소 ref / span element ref
391
+ * @returns {JSX.Element} MembershipBadge 컴포넌트 / MembershipBadge component
392
+ */
393
+ declare const MembershipBadge: React.ForwardRefExoticComponent<MembershipBadgeProps & React.RefAttributes<HTMLSpanElement>>;
394
+
395
+ /**
396
+ * MiniBarChart 컴포넌트의 props
397
+ * @typedef {Object} MiniBarChartProps
398
+ * @property {number[]} data - 차트 데이터 배열
399
+ * @property {string[]} [labels] - 라벨 배열
400
+ * @property {number} [maxValue] - 최대값 (자동 계산 시 생략)
401
+ * @property {number} [height=160] - 차트 높이 (px)
402
+ * @property {boolean} [showTooltip=true] - 툴팁 표시 여부
403
+ * @property {boolean} [showStats=true] - 통계 정보 표시 여부
404
+ * @property {"blue" | "purple" | "green" | "orange" | "red" | "indigo" | "pink" | "gray"} [color="blue"] - 색상
405
+ * @property {boolean} [highlightToday=true] - 오늘 항목 강조 여부
406
+ * @property {number} [todayIndex] - 오늘 인덱스 (기본값: 마지막 항목)
407
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
408
+ */
409
+ interface MiniBarChartProps extends React.HTMLAttributes<HTMLDivElement> {
410
+ data: number[];
411
+ labels?: string[];
412
+ maxValue?: number;
413
+ height?: number;
414
+ showTooltip?: boolean;
415
+ showStats?: boolean;
416
+ color?: Color;
417
+ highlightToday?: boolean;
418
+ todayIndex?: number;
419
+ }
420
+ /**
421
+ * MiniBarChart 컴포넌트
422
+ *
423
+ * 작은 막대 그래프 차트 컴포넌트입니다.
424
+ * 간단한 데이터 시각화에 적합하며, 오늘 항목 강조 기능을 제공합니다.
425
+ *
426
+ * Small bar chart component for simple data visualization.
427
+ * Suitable for compact displays with today's item highlight feature.
428
+ *
429
+ * @component
430
+ * @example
431
+ * // 기본 사용 / Basic usage
432
+ * <MiniBarChart
433
+ * data={[10, 20, 15, 30, 25, 40, 35]}
434
+ * labels={["월", "화", "수", "목", "금", "토", "일"]}
435
+ * />
436
+ *
437
+ * @example
438
+ * // 커스텀 색상과 통계 / Custom color and stats
439
+ * <MiniBarChart
440
+ * data={dailyData}
441
+ * color="purple"
442
+ * showStats={true}
443
+ * highlightToday={true}
444
+ * todayIndex={6}
445
+ * />
446
+ *
447
+ * @param {MiniBarChartProps} props - MiniBarChart 컴포넌트의 props / MiniBarChart component props
448
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
449
+ * @returns {JSX.Element} MiniBarChart 컴포넌트 / MiniBarChart component
450
+ */
451
+ declare const MiniBarChart: React.ForwardRefExoticComponent<MiniBarChartProps & React.RefAttributes<HTMLDivElement>>;
452
+
453
+ /**
454
+ * SummaryCard 컴포넌트의 props
455
+ * @typedef {Object} SummaryCardProps
456
+ * @property {string} title - 카드 제목
457
+ * @property {string | number} value - 요약 값
458
+ * @property {string} [subtitle] - 부제목
459
+ * @property {IconName | React.ReactNode} [icon] - 아이콘
460
+ * @property {"blue" | "purple" | "green" | "orange" | "red" | "indigo" | "pink" | "gray"} [color] - 카드 색상
461
+ * @property {"default" | "gradient" | "outline"} [variant="default"] - 카드 스타일 변형
462
+ * @property {string} [href] - 링크 URL
463
+ * @property {() => void} [onClick] - 클릭 핸들러
464
+ * @property {boolean} [loading] - 로딩 상태
465
+ * @property {string | React.ReactNode} [badge] - 배지
466
+ * @property {React.ReactNode} [footer] - 푸터 콘텐츠
467
+ * @property {boolean} [showAction] - 액션 버튼 표시 여부
468
+ * @property {string} [actionLabel] - 액션 버튼 라벨
469
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
470
+ */
471
+ interface SummaryCardProps extends React.HTMLAttributes<HTMLDivElement> {
472
+ title: string;
473
+ value: string | number;
474
+ subtitle?: string;
475
+ icon?: IconName | React.ReactNode;
476
+ color?: Color;
477
+ variant?: "default" | "gradient" | "outline";
478
+ href?: string;
479
+ onClick?: () => void;
480
+ loading?: boolean;
481
+ badge?: string | React.ReactNode;
482
+ footer?: React.ReactNode;
483
+ showAction?: boolean;
484
+ actionLabel?: string;
485
+ }
486
+ /**
487
+ * SummaryCard 컴포넌트 / SummaryCard component
488
+ *
489
+ * 요약 정보를 표시하는 카드 컴포넌트입니다.
490
+ * 제목, 값, 부제목, 아이콘을 포함하며, 클릭 가능한 링크나 액션 버튼을 지원합니다.
491
+ *
492
+ * Card component that displays summary information.
493
+ * Includes title, value, subtitle, icon, and supports clickable links or action buttons.
494
+ *
495
+ * @component
496
+ * @example
497
+ * // 기본 사용 / Basic usage
498
+ * <SummaryCard
499
+ * title="총 매출"
500
+ * value="₩10,000,000"
501
+ * subtitle="이번 달"
502
+ * icon="dollarSign"
503
+ * />
504
+ *
505
+ * @example
506
+ * // 클릭 가능한 카드 / Clickable card
507
+ * <SummaryCard
508
+ * title="주문"
509
+ * value="1,234"
510
+ * href="/orders"
511
+ * showAction
512
+ * actionLabel="자세히 보기"
513
+ * color="blue"
514
+ * variant="gradient"
515
+ * />
516
+ *
517
+ * @param {SummaryCardProps} props - SummaryCard 컴포넌트의 props / SummaryCard component props
518
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
519
+ * @returns {JSX.Element} SummaryCard 컴포넌트 / SummaryCard component
520
+ */
521
+ declare const SummaryCard: React.ForwardRefExoticComponent<SummaryCardProps & React.RefAttributes<HTMLDivElement>>;
522
+
523
+ /**
524
+ * NotificationItem 인터페이스
525
+ * @typedef {Object} NotificationItem
526
+ * @property {string} id - 알림 고유 ID
527
+ * @property {string} title - 알림 제목
528
+ * @property {string} message - 알림 메시지
529
+ * @property {Date | string} timestamp - 알림 타임스탬프
530
+ * @property {"info" | "warning" | "error" | "success"} [type] - 알림 타입
531
+ * @property {IconName | React.ReactNode} [icon] - 아이콘
532
+ * @property {() => void} [onClick] - 클릭 핸들러
533
+ * @property {string} [href] - 링크 URL
534
+ */
535
+ interface NotificationItem {
536
+ id: string;
537
+ title: string;
538
+ message: string;
539
+ timestamp: Date | string;
540
+ type?: "info" | "warning" | "error" | "success";
541
+ icon?: IconName | React.ReactNode;
542
+ onClick?: () => void;
543
+ href?: string;
544
+ }
545
+ /**
546
+ * NotificationCard 컴포넌트의 props / NotificationCard component props
547
+ * @typedef {Object} NotificationCardProps
548
+ * @property {string} [title="알림 및 공지"] - 카드 제목 / Card title
549
+ * @property {NotificationItem[]} items - 알림 항목 배열 / Notification items array
550
+ * @property {string} [emptyMessage="알림이 없습니다."] - 빈 상태 메시지 / Empty state message
551
+ * @property {number} [maxItems] - 최대 표시 항목 수 / Maximum items to display
552
+ * @property {() => void} [onViewAll] - 전체 보기 핸들러 / View all handler
553
+ * @property {string} [viewAllLabel="모든 알림 보기"] - 전체 보기 라벨 / View all label
554
+ * @property {boolean} [showHeader=true] - 헤더 표시 여부 / Show header
555
+ * @property {boolean} [showCount=true] - 개수 표시 여부 / Show count
556
+ * @property {React.ReactNode} [emptyState] - 빈 상태 컴포넌트 / Empty state component
557
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
558
+ */
559
+ interface NotificationCardProps extends React.HTMLAttributes<HTMLDivElement> {
560
+ title?: string;
561
+ items: NotificationItem[];
562
+ emptyMessage?: string;
563
+ maxItems?: number;
564
+ onViewAll?: () => void;
565
+ viewAllLabel?: string;
566
+ showHeader?: boolean;
567
+ showCount?: boolean;
568
+ emptyState?: React.ReactNode;
569
+ }
570
+ /**
571
+ * NotificationCard 컴포넌트 / NotificationCard component
572
+ *
573
+ * 알림 목록을 표시하는 카드 컴포넌트입니다.
574
+ * 여러 알림 항목을 표시하며, 타입별로 다른 스타일을 적용할 수 있습니다.
575
+ *
576
+ * Card component that displays a list of notifications.
577
+ * Shows multiple notification items and can apply different styles by type.
578
+ *
579
+ * @component
580
+ * @example
581
+ * // 기본 사용 / Basic usage
582
+ * <NotificationCard
583
+ * items={[
584
+ * {
585
+ * id: "1",
586
+ * title: "새 주문",
587
+ * message: "주문 #1234가 생성되었습니다",
588
+ * timestamp: new Date(),
589
+ * type: "success"
590
+ * }
591
+ * ]}
592
+ * />
593
+ *
594
+ * @example
595
+ * // 최대 항목 수 제한 / Maximum items limit
596
+ * <NotificationCard
597
+ * title="최근 알림"
598
+ * items={notifications}
599
+ * maxItems={5}
600
+ * onViewAll={() => navigate("/notifications")}
601
+ * showCount
602
+ * />
603
+ *
604
+ * @param {NotificationCardProps} props - NotificationCard 컴포넌트의 props / NotificationCard component props
605
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
606
+ * @returns {JSX.Element} NotificationCard 컴포넌트 / NotificationCard component
607
+ */
608
+ declare const NotificationCard: React.ForwardRefExoticComponent<NotificationCardProps & React.RefAttributes<HTMLDivElement>>;
609
+
610
+ /**
611
+ * MetricCard 컴포넌트의 props / MetricCard component props
612
+ * @typedef {Object} MetricCardProps
613
+ * @property {string} title - 카드 제목 / Card title
614
+ * @property {string | number} value - 메트릭 값 / Metric value
615
+ * @property {string} [description] - 카드 설명 / Card description
616
+ * @property {IconName | React.ReactNode} [icon] - 아이콘 / Icon
617
+ * @property {Object} [trend] - 추세 정보 / Trend information
618
+ * @property {number} trend.value - 추세 값 / Trend value
619
+ * @property {string} trend.label - 추세 라벨 / Trend label
620
+ * @property {boolean} [trend.positive] - 긍정적 추세 여부 / Positive trend
621
+ * @property {number[]} [chartData] - 차트 데이터 / Chart data
622
+ * @property {string[]} [chartLabels] - 차트 라벨 / Chart labels
623
+ * @property {"default" | "gradient" | "outline" | "elevated"} [variant="default"] - 카드 스타일 변형 / Card style variant
624
+ * @property {"blue" | "purple" | "green" | "orange" | "red" | "indigo" | "pink" | "gray"} [color] - 카드 색상 / Card color
625
+ * @property {boolean} [loading] - 로딩 상태 / Loading state
626
+ * @property {boolean} [showChart] - 차트 표시 여부 / Show chart
627
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
628
+ */
629
+ interface MetricCardProps extends React.HTMLAttributes<HTMLDivElement> {
630
+ title: string;
631
+ value: string | number;
632
+ description?: string;
633
+ icon?: IconName | React.ReactNode;
634
+ trend?: {
635
+ value: number;
636
+ label: string;
637
+ positive?: boolean;
638
+ };
639
+ chartData?: number[];
640
+ chartLabels?: string[];
641
+ variant?: "default" | "gradient" | "outline" | "elevated";
642
+ color?: Color;
643
+ loading?: boolean;
644
+ showChart?: boolean;
645
+ }
646
+ /**
647
+ * MetricCard 컴포넌트 / MetricCard component
648
+ *
649
+ * 메트릭 정보를 표시하는 카드 컴포넌트입니다.
650
+ * StatCard와 유사하지만 차트 데이터를 포함할 수 있습니다.
651
+ *
652
+ * Card component that displays metric information.
653
+ * Similar to StatCard but can include chart data.
654
+ *
655
+ * @component
656
+ * @example
657
+ * // 기본 사용 / Basic usage
658
+ * <MetricCard
659
+ * title="페이지뷰"
660
+ * value="10,234"
661
+ * description="오늘"
662
+ * icon="eye"
663
+ * />
664
+ *
665
+ * @example
666
+ * // 차트 포함 / With chart
667
+ * <MetricCard
668
+ * title="방문자"
669
+ * value="5,678"
670
+ * chartData={[100, 200, 150, 300, 250]}
671
+ * chartLabels={["월", "화", "수", "목", "금"]}
672
+ * showChart
673
+ * color="blue"
674
+ * />
675
+ *
676
+ * @param {MetricCardProps} props - MetricCard 컴포넌트의 props / MetricCard component props
677
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
678
+ * @returns {JSX.Element} MetricCard 컴포넌트 / MetricCard component
679
+ */
680
+ declare const MetricCard: React.ForwardRefExoticComponent<MetricCardProps & React.RefAttributes<HTMLDivElement>>;
681
+
682
+ /**
683
+ * ProgressCard 컴포넌트의 props / ProgressCard component props
684
+ * @typedef {Object} ProgressCardProps
685
+ * @property {string} title - 카드 제목 / Card title
686
+ * @property {number} current - 현재 값 / Current value
687
+ * @property {number} total - 전체 값 / Total value
688
+ * @property {string} [unit] - 단위 / Unit
689
+ * @property {string} [description] - 카드 설명 / Card description
690
+ * @property {IconName | React.ReactNode} [icon] - 아이콘 / Icon
691
+ * @property {"blue" | "purple" | "green" | "orange" | "red" | "indigo" | "pink" | "gray"} [color] - 카드 색상 / Card color
692
+ * @property {"default" | "gradient" | "outline" | "elevated"} [variant="default"] - 카드 스타일 변형 / Card style variant
693
+ * @property {boolean} [showPercentage] - 퍼센트 표시 여부 / Show percentage
694
+ * @property {boolean} [showLabel] - 라벨 표시 여부 / Show label
695
+ * @property {"sm" | "md" | "lg"} [size="md"] - 카드 크기 / Card size
696
+ * @property {boolean} [loading] - 로딩 상태 / Loading state
697
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
698
+ */
699
+ interface ProgressCardProps extends React.HTMLAttributes<HTMLDivElement> {
700
+ title: string;
701
+ current: number;
702
+ total: number;
703
+ unit?: string;
704
+ description?: string;
705
+ icon?: IconName | React.ReactNode;
706
+ color?: Color;
707
+ variant?: "default" | "gradient" | "outline" | "elevated";
708
+ showPercentage?: boolean;
709
+ showLabel?: boolean;
710
+ size?: "sm" | "md" | "lg";
711
+ loading?: boolean;
712
+ }
713
+ /**
714
+ * ProgressCard 컴포넌트 / ProgressCard component
715
+ *
716
+ * 진행률을 표시하는 카드 컴포넌트입니다.
717
+ * 현재 값과 전체 값을 비교하여 진행률을 시각적으로 표시합니다.
718
+ *
719
+ * Card component that displays progress.
720
+ * Compares current value with total value to visually display progress.
721
+ *
722
+ * @component
723
+ * @example
724
+ * // 기본 사용 / Basic usage
725
+ * <ProgressCard
726
+ * title="목표 달성률"
727
+ * current={75}
728
+ * total={100}
729
+ * unit="%"
730
+ * description="이번 달 목표"
731
+ * />
732
+ *
733
+ * @example
734
+ * // 퍼센트 표시 / Show percentage
735
+ * <ProgressCard
736
+ * title="판매 진행률"
737
+ * current={150}
738
+ * total={200}
739
+ * showPercentage
740
+ * color="green"
741
+ * variant="gradient"
742
+ * />
743
+ *
744
+ * @param {ProgressCardProps} props - ProgressCard 컴포넌트의 props / ProgressCard component props
745
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
746
+ * @returns {JSX.Element} ProgressCard 컴포넌트 / ProgressCard component
747
+ */
748
+ declare const ProgressCard: React.ForwardRefExoticComponent<ProgressCardProps & React.RefAttributes<HTMLDivElement>>;
749
+
750
+ /**
751
+ * DashboardEmptyState 컴포넌트의 props / DashboardEmptyState component props
752
+ * @typedef {Object} DashboardEmptyStateProps
753
+ * @property {IconName | React.ReactNode} [icon="inbox"] - 아이콘 / Icon
754
+ * @property {string} title - 제목 / Title
755
+ * @property {string} [description] - 설명 / Description
756
+ * @property {string} [actionText] - 액션 버튼 텍스트 / Action button text
757
+ * @property {string} [actionHref] - 액션 버튼 링크 URL / Action button link URL
758
+ * @property {() => void} [actionOnClick] - 액션 버튼 클릭 핸들러 / Action button click handler
759
+ * @property {"default" | "warning" | "info" | "error" | "success"} [variant="default"] - 스타일 변형 / Style variant
760
+ * @property {"sm" | "md" | "lg"} [size="md"] - 크기 / Size
761
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
762
+ */
763
+ interface DashboardEmptyStateProps extends React.HTMLAttributes<HTMLDivElement> {
764
+ icon?: IconName | React.ReactNode;
765
+ title: string;
766
+ description?: string;
767
+ actionText?: string;
768
+ actionHref?: string;
769
+ actionOnClick?: () => void;
770
+ variant?: "default" | "warning" | "info" | "error" | "success";
771
+ size?: "sm" | "md" | "lg";
772
+ }
773
+ /**
774
+ * DashboardEmptyState 컴포넌트
775
+ *
776
+ * 대시보드에서 빈 상태를 표시하는 컴포넌트입니다.
777
+ * 데이터가 없을 때 사용자에게 안내 메시지와 액션을 제공합니다.
778
+ *
779
+ * Empty state component for dashboards.
780
+ * Displays a message and action when there is no data to show.
781
+ *
782
+ * @component
783
+ * @example
784
+ * // 기본 사용 / Basic usage
785
+ * <DashboardEmptyState
786
+ * icon="inbox"
787
+ * title="데이터가 없습니다"
788
+ * description="새로운 데이터를 추가해보세요"
789
+ * actionText="데이터 추가"
790
+ * actionOnClick={handleAdd}
791
+ * />
792
+ *
793
+ * @example
794
+ * // 경고 스타일 / Warning style
795
+ * <DashboardEmptyState
796
+ * icon="warning"
797
+ * title="오류가 발생했습니다"
798
+ * description="잠시 후 다시 시도해주세요"
799
+ * variant="warning"
800
+ * size="lg"
801
+ * />
802
+ *
803
+ * @param {DashboardEmptyStateProps} props - DashboardEmptyState 컴포넌트의 props / DashboardEmptyState component props
804
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
805
+ * @returns {JSX.Element} DashboardEmptyState 컴포넌트 / DashboardEmptyState component
806
+ */
807
+ declare const DashboardEmptyState: React.ForwardRefExoticComponent<DashboardEmptyStateProps & React.RefAttributes<HTMLDivElement>>;
808
+
809
+ /**
810
+ * 사이드바 네비게이션 아이템 인터페이스 / SidebarNavItem interface
811
+ * @typedef {Object} SidebarNavItem
812
+ * @property {string} id - 아이템 고유 ID / Item unique ID
813
+ * @property {string} label - 아이템 라벨 / Item label
814
+ * @property {string} [href] - 링크 URL / Link URL
815
+ * @property {IconName | React.ReactNode} [icon] - 아이콘 / Icon
816
+ * @property {React.ReactNode} [badge] - 배지 / Badge
817
+ * @property {boolean} [active] - 활성 상태 / Active state
818
+ * @property {() => void} [onClick] - 클릭 핸들러 / Click handler
819
+ */
820
+ interface SidebarNavItem {
821
+ id: string;
822
+ label: string;
823
+ href?: string;
824
+ icon?: IconName | React.ReactNode;
825
+ badge?: React.ReactNode;
826
+ active?: boolean;
827
+ onClick?: () => void;
828
+ }
829
+ /**
830
+ * 사이드바 섹션 인터페이스 / SidebarSection interface
831
+ * @typedef {Object} SidebarSection
832
+ * @property {string} id - 섹션 고유 ID / Section unique ID
833
+ * @property {string} [label] - 섹션 라벨 / Section label
834
+ * @property {SidebarNavItem[]} items - 섹션 내 아이템 배열 / Items array in section
835
+ */
836
+ interface SidebarSection {
837
+ id: string;
838
+ label?: string;
839
+ items: SidebarNavItem[];
840
+ }
841
+ /**
842
+ * DashboardSidebar 컴포넌트의 props / DashboardSidebar component props
843
+ * @typedef {Object} DashboardSidebarProps
844
+ * @property {React.ReactNode} [logo] - 로고 컴포넌트 / Logo component
845
+ * @property {React.ReactNode} [productSwitcher] - 제품 전환 컴포넌트 / Product switcher component
846
+ * @property {SidebarSection[]} sections - 사이드바 섹션 배열 / Sidebar sections array
847
+ * @property {React.ReactNode} [footerActions] - 푸터 액션 컴포넌트 / Footer actions component
848
+ * @property {boolean} [isCollapsed] - 접힘 상태 (제어) / Collapsed state (controlled)
849
+ * @property {boolean} [defaultCollapsed=false] - 기본 접힘 상태 / Default collapsed state
850
+ * @property {(collapsed: boolean) => void} [onToggleCollapsed] - 접힘 상태 변경 핸들러 / Collapsed state change handler
851
+ * @property {number} [collapsedWidth=72] - 접힘 상태 너비 (px) / Collapsed width (px)
852
+ * @property {number} [expandedWidth=264] - 펼침 상태 너비 (px) / Expanded width (px)
853
+ * @property {number} [mobileBreakpoint=1024] - 모바일 브레이크포인트 (px) / Mobile breakpoint (px)
854
+ * @property {string} [overlayBackground] - 모바일 오버레이 배경색 / Mobile overlay background color
855
+ * @extends {React.HTMLAttributes<HTMLElement>}
856
+ */
857
+ interface DashboardSidebarProps extends React.HTMLAttributes<HTMLElement> {
858
+ logo?: React.ReactNode;
859
+ productSwitcher?: React.ReactNode;
860
+ sections: SidebarSection[];
861
+ footerActions?: React.ReactNode;
862
+ isCollapsed?: boolean;
863
+ defaultCollapsed?: boolean;
864
+ onToggleCollapsed?: (collapsed: boolean) => void;
865
+ collapsedWidth?: number;
866
+ expandedWidth?: number;
867
+ mobileBreakpoint?: number;
868
+ overlayBackground?: string;
869
+ }
870
+ /**
871
+ * DashboardSidebar 컴포넌트
872
+ *
873
+ * 대시보드용 사이드바 네비게이션 컴포넌트입니다.
874
+ * 접기/펼치기 기능과 모바일 반응형을 지원하며, 섹션별로 네비게이션 아이템을 구성할 수 있습니다.
875
+ *
876
+ * Sidebar navigation component for dashboards.
877
+ * Supports collapse/expand functionality and mobile responsiveness, with section-based navigation items.
878
+ *
879
+ * @component
880
+ * @example
881
+ * // 기본 사용 / Basic usage
882
+ * <DashboardSidebar
883
+ * logo={<Logo />}
884
+ * sections={[
885
+ * {
886
+ * id: "main",
887
+ * label: "메인",
888
+ * items: [
889
+ * { id: "dashboard", label: "대시보드", href: "/dashboard", icon: "layout" },
890
+ * { id: "transactions", label: "거래", href: "/transactions", icon: "creditCard" }
891
+ * ]
892
+ * }
893
+ * ]}
894
+ * />
895
+ *
896
+ * @example
897
+ * // 접힘 상태 제어 / Collapse state control
898
+ * <DashboardSidebar
899
+ * sections={sections}
900
+ * isCollapsed={collapsed}
901
+ * onToggleCollapsed={setCollapsed}
902
+ * collapsedWidth={80}
903
+ * expandedWidth={280}
904
+ * />
905
+ *
906
+ * @param {DashboardSidebarProps} props - DashboardSidebar 컴포넌트의 props / DashboardSidebar component props
907
+ * @param {React.Ref<HTMLElement>} ref - aside 요소 ref / aside element ref
908
+ * @returns {JSX.Element} DashboardSidebar 컴포넌트 / DashboardSidebar component
909
+ */
910
+ declare const DashboardSidebar: React.ForwardRefExoticComponent<DashboardSidebarProps & React.RefAttributes<HTMLElement>>;
911
+
912
+ type TransactionStatus = "approved" | "pending" | "failed" | "refunded" | "cancelled" | "review";
913
+ type TransactionColumnKey = "id" | "merchant" | "amount" | "status" | "method" | "date" | "fee" | "customer";
914
+ /**
915
+ * 거래 테이블 행 인터페이스
916
+ * @typedef {Object} TransactionRow
917
+ * @property {string} id - 거래 ID
918
+ * @property {string} merchant - 가맹점
919
+ * @property {number} amount - 거래 금액
920
+ * @property {string} [currency] - 통화
921
+ * @property {TransactionStatus} status - 거래 상태
922
+ * @property {string} [method] - 결제수단
923
+ * @property {string | Date} date - 거래 일시
924
+ * @property {string} [customer] - 고객 정보
925
+ * @property {number} [fee] - 수수료
926
+ * @property {string} [reference] - 참조 번호
927
+ */
928
+ interface TransactionRow {
929
+ id: string;
930
+ merchant: string;
931
+ amount: number;
932
+ currency?: string;
933
+ status: TransactionStatus;
934
+ method?: string;
935
+ date: string | Date;
936
+ customer?: string;
937
+ fee?: number;
938
+ reference?: string;
939
+ [key: string]: unknown;
940
+ }
941
+ /**
942
+ * 거래 테이블 컬럼 설정 인터페이스
943
+ * @typedef {Object} TransactionColumnConfig
944
+ * @property {TransactionColumnKey} key - 컬럼 키
945
+ * @property {string} [label] - 컬럼 라벨
946
+ * @property {"left" | "center" | "right"} [align] - 정렬
947
+ * @property {string} [width] - 컬럼 너비
948
+ * @property {(row: TransactionRow) => React.ReactNode} [render] - 커스텀 렌더러
949
+ */
950
+ interface TransactionColumnConfig {
951
+ key: TransactionColumnKey;
952
+ label?: string;
953
+ align?: "left" | "center" | "right";
954
+ width?: string;
955
+ render?: (row: TransactionRow) => React.ReactNode;
956
+ }
957
+ /**
958
+ * TransactionsTable 컴포넌트의 props
959
+ * @typedef {Object} TransactionsTableProps
960
+ * @property {TransactionRow[]} rows - 거래 행 배열
961
+ * @property {TransactionColumnConfig[]} [columns] - 컬럼 설정 배열
962
+ * @property {boolean} [isLoading=false] - 로딩 상태
963
+ * @property {number} [loadingRows] - 로딩 행 수
964
+ * @property {React.ReactNode} [caption] - 테이블 캡션
965
+ * @property {React.ReactNode} [filters] - 필터 컴포넌트
966
+ * @property {React.ReactNode} [emptyState] - 빈 상태 컴포넌트
967
+ * @property {(row: TransactionRow) => void} [onRowClick] - 행 클릭 핸들러
968
+ * @property {(row: TransactionRow) => boolean} [highlightRow] - 행 강조 조건
969
+ * @property {Partial<Record<TransactionStatus, string>>} [statusLabels] - 상태 라벨 커스터마이징
970
+ * @property {(status: TransactionStatus, row: TransactionRow) => React.ReactNode} [statusRenderer] - 상태 커스텀 렌더러
971
+ * @property {(row: TransactionRow) => React.ReactNode} [amountFormatter] - 금액 커스텀 포맷터
972
+ * @property {(row: TransactionRow) => React.ReactNode} [methodFormatter] - 결제수단 커스텀 포맷터
973
+ * @property {(row: TransactionRow) => React.ReactNode} [dateFormatter] - 날짜 커스텀 포맷터
974
+ * @property {string} [locale="ko-KR"] - 로케일
975
+ * @property {string} [defaultCurrency="KRW"] - 기본 통화
976
+ * @property {string} [className] - 추가 클래스명
977
+ * @property {React.ReactNode} [footer] - 푸터 컴포넌트
978
+ * @property {(row: TransactionRow) => string} [rowActionLabel] - 행 액션 라벨 생성 함수
979
+ * @property {string} [rowActionHint] - 행 액션 힌트 텍스트
980
+ */
981
+ interface TransactionsTableProps {
982
+ rows: TransactionRow[];
983
+ columns?: TransactionColumnConfig[];
984
+ isLoading?: boolean;
985
+ loadingRows?: number;
986
+ caption?: React.ReactNode;
987
+ filters?: React.ReactNode;
988
+ emptyState?: React.ReactNode;
989
+ onRowClick?: (row: TransactionRow) => void;
990
+ highlightRow?: (row: TransactionRow) => boolean;
991
+ statusLabels?: Partial<Record<TransactionStatus, string>>;
992
+ statusRenderer?: (status: TransactionStatus, row: TransactionRow) => React.ReactNode;
993
+ amountFormatter?: (row: TransactionRow) => React.ReactNode;
994
+ methodFormatter?: (row: TransactionRow) => React.ReactNode;
995
+ dateFormatter?: (row: TransactionRow) => React.ReactNode;
996
+ locale?: string;
997
+ defaultCurrency?: string;
998
+ className?: string;
999
+ footer?: React.ReactNode;
1000
+ rowActionLabel?: (row: TransactionRow) => string;
1001
+ rowActionHint?: string;
1002
+ }
1003
+ /**
1004
+ * TransactionsTable 컴포넌트
1005
+ *
1006
+ * 거래 목록을 테이블 형태로 표시하는 컴포넌트입니다.
1007
+ * 정렬, 필터링, 커스텀 렌더링 등을 지원합니다.
1008
+ *
1009
+ * Table component that displays transaction list.
1010
+ * Supports sorting, filtering, and custom rendering.
1011
+ *
1012
+ * @component
1013
+ * @example
1014
+ * // 기본 사용 / Basic usage
1015
+ * <TransactionsTable
1016
+ * rows={[
1017
+ * {
1018
+ * id: "tx_123",
1019
+ * merchant: "가맹점 A",
1020
+ * amount: 100000,
1021
+ * status: "approved",
1022
+ * method: "카드",
1023
+ * date: new Date()
1024
+ * }
1025
+ * ]}
1026
+ * onRowClick={(row) => console.log(row)}
1027
+ * />
1028
+ *
1029
+ * @example
1030
+ * // 커스텀 컬럼과 포맷터 / Custom columns and formatters
1031
+ * <TransactionsTable
1032
+ * rows={transactions}
1033
+ * columns={[
1034
+ * { key: "id", label: "ID" },
1035
+ * { key: "amount", label: "금액", align: "right" },
1036
+ * { key: "status", label: "상태" }
1037
+ * ]}
1038
+ * amountFormatter={(row) => `₩${row.amount.toLocaleString()}`}
1039
+ * statusRenderer={(status) => <CustomBadge status={status} />}
1040
+ * isLoading={loading}
1041
+ * />
1042
+ *
1043
+ * @param {TransactionsTableProps} props - TransactionsTable 컴포넌트의 props / TransactionsTable component props
1044
+ * @returns {JSX.Element} TransactionsTable 컴포넌트 / TransactionsTable component
1045
+ */
1046
+ declare const TransactionsTable: React.FC<TransactionsTableProps>;
1047
+
1048
+ type ToolbarVariant = "plain" | "cards";
1049
+ /**
1050
+ * 툴바 액션 인터페이스 / ToolbarAction interface
1051
+ * @typedef {Object} ToolbarAction
1052
+ * @property {string} label - 액션 라벨 / Action label
1053
+ * @property {() => void} [onClick] - 클릭 핸들러 / Click handler
1054
+ * @property {string} [href] - 링크 URL / Link URL
1055
+ * @property {IconName | React.ReactNode} [icon] - 아이콘 / Icon
1056
+ * @property {"primary" | "secondary" | "ghost"} [appearance="secondary"] - 액션 스타일 / Action style
1057
+ * @property {boolean} [loading] - 로딩 상태 / Loading state
1058
+ */
1059
+ interface ToolbarAction {
1060
+ label: string;
1061
+ onClick?: () => void;
1062
+ href?: string;
1063
+ icon?: IconName | React.ReactNode;
1064
+ appearance?: "primary" | "secondary" | "ghost";
1065
+ loading?: boolean;
1066
+ }
1067
+ /**
1068
+ * 날짜 프리셋 인터페이스 / DatePreset interface
1069
+ * @typedef {Object} DatePreset
1070
+ * @property {string} label - 프리셋 라벨 / Preset label
1071
+ * @property {string} value - 프리셋 값 / Preset value
1072
+ */
1073
+ interface DatePreset {
1074
+ label: string;
1075
+ value: string;
1076
+ }
1077
+ /**
1078
+ * 날짜 범위 설정 인터페이스 / DateRangeConfig interface
1079
+ * @typedef {Object} DateRangeConfig
1080
+ * @property {{ from: Date; to: Date } | null} value - 날짜 범위 값 / Date range value
1081
+ * @property {DatePreset[]} [presets] - 날짜 프리셋 배열 / Date preset array
1082
+ * @property {(preset: DatePreset) => void} [onSelectPreset] - 프리셋 선택 핸들러 / Preset selection handler
1083
+ * @property {() => void} [onCustomRange] - 커스텀 범위 선택 핸들러 / Custom range selection handler
1084
+ * @property {string} [display] - 표시 텍스트 / Display text
1085
+ */
1086
+ interface DateRangeConfig {
1087
+ value: {
1088
+ from: Date;
1089
+ to: Date;
1090
+ } | null;
1091
+ presets?: DatePreset[];
1092
+ onSelectPreset?: (preset: DatePreset) => void;
1093
+ onCustomRange?: () => void;
1094
+ display?: string;
1095
+ }
1096
+ /**
1097
+ * DashboardToolbar 컴포넌트의 props / DashboardToolbar component props
1098
+ * @typedef {Object} DashboardToolbarProps
1099
+ * @property {React.ReactNode} [title] - 툴바 제목 / Toolbar title
1100
+ * @property {React.ReactNode} [description] - 툴바 설명 / Toolbar description
1101
+ * @property {React.ReactNode} [meta] - 메타 정보 / Meta information
1102
+ * @property {"plain" | "cards"} [variant="cards"] - 툴바 스타일 변형 / Toolbar style variant
1103
+ * @property {DateRangeConfig} [dateRange] - 날짜 범위 설정 / Date range configuration
1104
+ * @property {React.ReactNode} [filters] - 필터 컴포넌트 / Filter component
1105
+ * @property {ToolbarAction[]} [actions] - 액션 버튼 배열 / Action buttons array
1106
+ * @property {() => void} [onRefresh] - 새로고침 핸들러 / Refresh handler
1107
+ * @property {string} [lastUpdated] - 마지막 업데이트 시간 / Last updated time
1108
+ * @extends {Omit<React.HTMLAttributes<HTMLDivElement>, "title">}
1109
+ */
1110
+ interface DashboardToolbarProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title"> {
1111
+ title?: React.ReactNode;
1112
+ description?: React.ReactNode;
1113
+ meta?: React.ReactNode;
1114
+ variant?: ToolbarVariant;
1115
+ dateRange?: DateRangeConfig;
1116
+ filters?: React.ReactNode;
1117
+ actions?: ToolbarAction[];
1118
+ onRefresh?: () => void;
1119
+ lastUpdated?: string;
1120
+ }
1121
+ /**
1122
+ * DashboardToolbar 컴포넌트
1123
+ *
1124
+ * 대시보드 상단 툴바 컴포넌트입니다.
1125
+ * 제목, 설명, 필터, 날짜 범위 선택, 액션 버튼 등을 포함할 수 있습니다.
1126
+ *
1127
+ * Top toolbar component for dashboards.
1128
+ * Can include title, description, filters, date range selection, and action buttons.
1129
+ *
1130
+ * @component
1131
+ * @example
1132
+ * // 기본 사용 / Basic usage
1133
+ * <DashboardToolbar
1134
+ * title="거래 대시보드"
1135
+ * description="전체 거래 현황을 확인하세요"
1136
+ * actions={[
1137
+ * { label: "내보내기", icon: "download", onClick: handleExport },
1138
+ * { label: "필터", icon: "funnel", onClick: handleFilter }
1139
+ * ]}
1140
+ * onRefresh={handleRefresh}
1141
+ * />
1142
+ *
1143
+ * @example
1144
+ * // 날짜 범위 포함 / With date range
1145
+ * <DashboardToolbar
1146
+ * title="매출 분석"
1147
+ * dateRange={{
1148
+ * value: { from: new Date("2024-01-01"), to: new Date("2024-12-31") },
1149
+ * presets: [
1150
+ * { label: "오늘", value: "today" },
1151
+ * { label: "이번 주", value: "thisWeek" },
1152
+ * { label: "이번 달", value: "thisMonth" }
1153
+ * ],
1154
+ * onSelectPreset: handlePresetSelect,
1155
+ * onCustomRange: handleCustomRange
1156
+ * }}
1157
+ * />
1158
+ *
1159
+ * @param {DashboardToolbarProps} props - DashboardToolbar 컴포넌트의 props / DashboardToolbar component props
1160
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
1161
+ * @returns {JSX.Element} DashboardToolbar 컴포넌트 / DashboardToolbar component
1162
+ */
1163
+ declare const DashboardToolbar: React.ForwardRefExoticComponent<DashboardToolbarProps & React.RefAttributes<HTMLDivElement>>;
1164
+
1165
+ type TrendSeriesPalette = "approval" | "settlement" | "custom";
1166
+ /**
1167
+ * 트렌드 시리즈 인터페이스
1168
+ * @typedef {Object} TrendSeries
1169
+ * @property {string} label - 시리즈 라벨
1170
+ * @property {number[]} data - 데이터 배열
1171
+ * @property {string} [color] - 커스텀 색상
1172
+ * @property {boolean} [area] - 영역 채우기 여부
1173
+ */
1174
+ interface TrendSeries {
1175
+ label: string;
1176
+ data: number[];
1177
+ color?: string;
1178
+ area?: boolean;
1179
+ }
1180
+ /**
1181
+ * TrendChart 컴포넌트의 props / TrendChart component props
1182
+ * @typedef {Object} TrendChartProps
1183
+ * @property {TrendSeries[]} series - 시리즈 배열 / Series array
1184
+ * @property {string[]} categories - 카테고리 배열 / Categories array
1185
+ * @property {TrendSeriesPalette} [palette="approval"] - 색상 팔레트 / Color palette
1186
+ * @property {number} [height=200] - 차트 높이 (px) / Chart height (px)
1187
+ * @property {boolean} [showLegend=true] - 범례 표시 여부 / Show legend
1188
+ * @property {boolean} [showDots=true] - 점 표시 여부 / Show dots
1189
+ * @property {boolean} [showTooltip=false] - 툴팁 표시 여부 / Show tooltip
1190
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
1191
+ */
1192
+ interface TrendChartProps extends React.HTMLAttributes<HTMLDivElement> {
1193
+ series: TrendSeries[];
1194
+ categories: string[];
1195
+ palette?: TrendSeriesPalette;
1196
+ height?: number;
1197
+ showLegend?: boolean;
1198
+ showDots?: boolean;
1199
+ showTooltip?: boolean;
1200
+ }
1201
+ /**
1202
+ * TrendChart 컴포넌트
1203
+ *
1204
+ * 트렌드 데이터를 선 그래프로 표시하는 컴포넌트입니다.
1205
+ * 여러 시리즈를 동시에 표시할 수 있으며, 영역 채우기 옵션을 제공합니다.
1206
+ *
1207
+ * Line chart component that displays trend data.
1208
+ * Can display multiple series simultaneously with area fill option.
1209
+ *
1210
+ * @component
1211
+ * @example
1212
+ * // 기본 사용 / Basic usage
1213
+ * <TrendChart
1214
+ * series={[
1215
+ * { label: "승인", data: [10, 20, 15, 30, 25] },
1216
+ * { label: "거부", data: [5, 10, 8, 15, 12] }
1217
+ * ]}
1218
+ * categories={["월", "화", "수", "목", "금"]}
1219
+ * palette="approval"
1220
+ * />
1221
+ *
1222
+ * @example
1223
+ * // 영역 채우기와 커스텀 색상 / Area fill and custom color
1224
+ * <TrendChart
1225
+ * series={[
1226
+ * { label: "정산", data: [100, 200, 150], area: true, color: "#6366f1" }
1227
+ * ]}
1228
+ * categories={["1월", "2월", "3월"]}
1229
+ * palette="settlement"
1230
+ * showDots={true}
1231
+ * showTooltip={true}
1232
+ * />
1233
+ *
1234
+ * @param {TrendChartProps} props - TrendChart 컴포넌트의 props / TrendChart component props
1235
+ * @returns {JSX.Element} TrendChart 컴포넌트 / TrendChart component
1236
+ */
1237
+ declare const TrendChart: React.FC<TrendChartProps>;
1238
+
1239
+ /**
1240
+ * 거래 상세 정보 인터페이스 / TransactionDetail interface
1241
+ * @typedef {Object} TransactionDetail
1242
+ * @property {string} id - 거래 ID / Transaction ID
1243
+ * @property {TransactionStatus} status - 거래 상태 / Transaction status
1244
+ * @property {number} amount - 거래 금액 / Transaction amount
1245
+ * @property {string} [currency] - 통화 / Currency
1246
+ * @property {string} [merchant] - 가맹점 / Merchant
1247
+ * @property {string} [method] - 결제수단 / Payment method
1248
+ * @property {string | Date} [createdAt] - 생성일시 / Created date
1249
+ * @property {string | Date} [approvedAt] - 승인일시 / Approved date
1250
+ * @property {string} [customer] - 고객 정보 / Customer information
1251
+ * @property {string} [reference] - 참조 번호 / Reference number
1252
+ */
1253
+ interface TransactionDetail {
1254
+ id: string;
1255
+ status: TransactionStatus;
1256
+ amount: number;
1257
+ currency?: string;
1258
+ merchant?: string;
1259
+ method?: string;
1260
+ createdAt?: string | Date;
1261
+ approvedAt?: string | Date;
1262
+ customer?: string;
1263
+ reference?: string;
1264
+ }
1265
+ /**
1266
+ * 거래 메타데이터 아이템 인터페이스 / TransactionMetadataItem interface
1267
+ * @typedef {Object} TransactionMetadataItem
1268
+ * @property {string} label - 라벨 / Label
1269
+ * @property {React.ReactNode} value - 값 / Value
1270
+ * @property {IconName} [icon] - 아이콘 / Icon
1271
+ */
1272
+ interface TransactionMetadataItem {
1273
+ label: string;
1274
+ value: React.ReactNode;
1275
+ icon?: IconName;
1276
+ }
1277
+ type SettlementStatus = "pending" | "processing" | "completed" | "failed";
1278
+ /**
1279
+ * 정산 정보 인터페이스 / SettlementInfo interface
1280
+ * @typedef {Object} SettlementInfo
1281
+ * @property {SettlementStatus} [status] - 정산 상태 / Settlement status
1282
+ * @property {number} [amount] - 정산 금액 / Settlement amount
1283
+ * @property {string} [currency] - 통화 / Currency
1284
+ * @property {string | Date} [scheduledDate] - 예정일 / Scheduled date
1285
+ * @property {string} [expectedPayout] - 예상 지급액 / Expected payout
1286
+ * @property {string} [bankAccount] - 계좌 정보 / Bank account information
1287
+ * @property {string} [reference] - 참조 번호 / Reference number
1288
+ * @property {string} [note] - 메모 / Note
1289
+ */
1290
+ interface SettlementInfo {
1291
+ status?: SettlementStatus;
1292
+ amount?: number;
1293
+ currency?: string;
1294
+ scheduledDate?: string | Date;
1295
+ expectedPayout?: string;
1296
+ bankAccount?: string;
1297
+ reference?: string;
1298
+ note?: string;
1299
+ }
1300
+ /**
1301
+ * 수수료 내역 인터페이스 / FeeBreakdown interface
1302
+ * @typedef {Object} FeeBreakdown
1303
+ * @property {string} label - 수수료 라벨 / Fee label
1304
+ * @property {number} amount - 수수료 금액 / Fee amount
1305
+ * @property {string} [currency] - 통화 / Currency
1306
+ * @property {string} [description] - 설명 / Description
1307
+ */
1308
+ interface FeeBreakdown {
1309
+ label: string;
1310
+ amount: number;
1311
+ currency?: string;
1312
+ description?: string;
1313
+ }
1314
+ /**
1315
+ * 거래 이벤트 인터페이스 / TransactionEvent interface
1316
+ * @typedef {Object} TransactionEvent
1317
+ * @property {string} id - 이벤트 ID / Event ID
1318
+ * @property {string} title - 이벤트 제목 / Event title
1319
+ * @property {string} [description] - 설명 / Description
1320
+ * @property {string | Date} timestamp - 타임스탬프 / Timestamp
1321
+ * @property {"success" | "warning" | "error" | "info"} [status] - 이벤트 상태 / Event status
1322
+ * @property {IconName} [icon] - 아이콘 / Icon
1323
+ * @property {string} [actor] - 실행자 / Actor
1324
+ */
1325
+ interface TransactionEvent {
1326
+ id: string;
1327
+ title: string;
1328
+ description?: string;
1329
+ timestamp: string | Date;
1330
+ status?: "success" | "warning" | "error" | "info";
1331
+ icon?: IconName;
1332
+ actor?: string;
1333
+ }
1334
+ /**
1335
+ * TransactionDetailDrawer 컴포넌트의 props / TransactionDetailDrawer component props
1336
+ * @typedef {Object} TransactionDetailDrawerProps
1337
+ * @property {boolean} open - 드로어 열림 상태 / Drawer open state
1338
+ * @property {() => void} onClose - 닫기 핸들러 / Close handler
1339
+ * @property {TransactionDetail} [transaction] - 거래 상세 정보 / Transaction detail information
1340
+ * @property {TransactionMetadataItem[]} [metadata=[]] - 메타데이터 배열 / Metadata array
1341
+ * @property {SettlementInfo} [settlement] - 정산 정보 / Settlement information
1342
+ * @property {FeeBreakdown[]} [fees=[]] - 수수료 내역 배열 / Fee breakdown array
1343
+ * @property {TransactionEvent[]} [events=[]] - 이벤트 로그 배열 / Event log array
1344
+ * @property {React.ReactNode} [actions] - 액션 컴포넌트 / Actions component
1345
+ * @property {React.ReactNode} [summary] - 요약 컴포넌트 / Summary component
1346
+ * @property {boolean} [loading=false] - 로딩 상태 / Loading state
1347
+ * @property {string} [locale="ko-KR"] - 로케일 / Locale
1348
+ * @property {string} [defaultCurrency="KRW"] - 기본 통화 / Default currency
1349
+ * @property {React.ReactNode} [emptyState] - 빈 상태 컴포넌트 / Empty state component
1350
+ * @property {string} [className] - 추가 클래스명 / Additional class name
1351
+ */
1352
+ interface TransactionDetailDrawerProps {
1353
+ open: boolean;
1354
+ onClose: () => void;
1355
+ transaction?: TransactionDetail;
1356
+ metadata?: TransactionMetadataItem[];
1357
+ settlement?: SettlementInfo;
1358
+ fees?: FeeBreakdown[];
1359
+ events?: TransactionEvent[];
1360
+ actions?: React.ReactNode;
1361
+ summary?: React.ReactNode;
1362
+ loading?: boolean;
1363
+ locale?: string;
1364
+ defaultCurrency?: string;
1365
+ emptyState?: React.ReactNode;
1366
+ className?: string;
1367
+ }
1368
+ /**
1369
+ * TransactionDetailDrawer 컴포넌트
1370
+ *
1371
+ * 거래 상세 정보를 표시하는 드로어 컴포넌트입니다.
1372
+ * 거래 정보, 정산 정보, 수수료 내역, 이벤트 로그 등을 포함합니다.
1373
+ *
1374
+ * Drawer component that displays detailed transaction information.
1375
+ * Includes transaction details, settlement info, fee breakdown, and event logs.
1376
+ *
1377
+ * @component
1378
+ * @example
1379
+ * // 기본 사용 / Basic usage
1380
+ * <TransactionDetailDrawer
1381
+ * open={isOpen}
1382
+ * onClose={() => setIsOpen(false)}
1383
+ * transaction={{
1384
+ * id: "tx_123",
1385
+ * status: "approved",
1386
+ * amount: 100000,
1387
+ * currency: "KRW",
1388
+ * merchant: "가맹점 A"
1389
+ * }}
1390
+ * metadata={[
1391
+ * { label: "거래 ID", value: "tx_123", icon: "creditCard" },
1392
+ * { label: "고객", value: "홍길동", icon: "user" }
1393
+ * ]}
1394
+ * />
1395
+ *
1396
+ * @example
1397
+ * // 정산 정보 포함 / With settlement info
1398
+ * <TransactionDetailDrawer
1399
+ * open={isOpen}
1400
+ * onClose={handleClose}
1401
+ * transaction={transaction}
1402
+ * settlement={{
1403
+ * status: "processing",
1404
+ * amount: 95000,
1405
+ * currency: "KRW",
1406
+ * scheduledDate: new Date("2024-01-15")
1407
+ * }}
1408
+ * fees={[
1409
+ * { label: "수수료", amount: 5000, currency: "KRW" }
1410
+ * ]}
1411
+ * events={eventLogs}
1412
+ * />
1413
+ *
1414
+ * @param {TransactionDetailDrawerProps} props - TransactionDetailDrawer 컴포넌트의 props / TransactionDetailDrawer component props
1415
+ * @returns {JSX.Element} TransactionDetailDrawer 컴포넌트 / TransactionDetailDrawer component
1416
+ */
1417
+ declare const TransactionDetailDrawer: React.FC<TransactionDetailDrawerProps>;
1418
+
1419
+ type SettlementTimelineStatus = "pending" | "processing" | "completed" | "failed";
1420
+ /**
1421
+ * 정산 타임라인 아이템 인터페이스 / SettlementTimelineItem interface
1422
+ * @typedef {Object} SettlementTimelineItem
1423
+ * @property {string} id - 아이템 고유 ID / Item unique ID
1424
+ * @property {string} title - 제목 / Title
1425
+ * @property {string} [description] - 설명 / Description
1426
+ * @property {SettlementTimelineStatus} status - 상태 / Status
1427
+ * @property {number} [amount] - 금액 / Amount
1428
+ * @property {string} [currency] - 통화 / Currency
1429
+ * @property {string | Date} [date] - 날짜 / Date
1430
+ * @property {string} [meta] - 메타 정보 / Meta information
1431
+ * @property {IconName} [icon] - 아이콘 / Icon
1432
+ */
1433
+ interface SettlementTimelineItem {
1434
+ id: string;
1435
+ title: string;
1436
+ description?: string;
1437
+ status: SettlementTimelineStatus;
1438
+ amount?: number;
1439
+ currency?: string;
1440
+ date?: string | Date;
1441
+ meta?: string;
1442
+ icon?: IconName;
1443
+ }
1444
+ /**
1445
+ * SettlementTimeline 컴포넌트의 props / SettlementTimeline component props
1446
+ * @typedef {Object} SettlementTimelineProps
1447
+ * @property {SettlementTimelineItem[]} items - 타임라인 아이템 배열 / Timeline items array
1448
+ * @property {string} [highlightedId] - 강조할 아이템 ID / Highlighted item ID
1449
+ * @property {string} [locale="ko-KR"] - 로케일 / Locale
1450
+ * @property {string} [defaultCurrency="KRW"] - 기본 통화 / Default currency
1451
+ * @property {React.ReactNode} [emptyState] - 빈 상태 컴포넌트 / Empty state component
1452
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
1453
+ */
1454
+ interface SettlementTimelineProps extends React.HTMLAttributes<HTMLDivElement> {
1455
+ items: SettlementTimelineItem[];
1456
+ highlightedId?: string;
1457
+ locale?: string;
1458
+ defaultCurrency?: string;
1459
+ emptyState?: React.ReactNode;
1460
+ }
1461
+ /**
1462
+ * SettlementTimeline 컴포넌트
1463
+ *
1464
+ * 정산 처리 단계를 타임라인 형태로 표시하는 컴포넌트입니다.
1465
+ * 각 단계의 상태, 금액, 날짜를 시각적으로 표시합니다.
1466
+ *
1467
+ * Timeline component that displays settlement processing stages.
1468
+ * Visually shows status, amount, and date for each stage.
1469
+ *
1470
+ * @component
1471
+ * @example
1472
+ * // 기본 사용 / Basic usage
1473
+ * <SettlementTimeline
1474
+ * items={[
1475
+ * {
1476
+ * id: "1",
1477
+ * title: "정산 요청",
1478
+ * status: "completed",
1479
+ * amount: 1000000,
1480
+ * currency: "KRW",
1481
+ * date: new Date("2024-01-01")
1482
+ * },
1483
+ * {
1484
+ * id: "2",
1485
+ * title: "처리 중",
1486
+ * status: "processing",
1487
+ * amount: 1000000,
1488
+ * currency: "KRW"
1489
+ * }
1490
+ * ]}
1491
+ * />
1492
+ *
1493
+ * @example
1494
+ * // 강조 기능 / Highlight feature
1495
+ * <SettlementTimeline
1496
+ * items={timelineItems}
1497
+ * highlightedId="2"
1498
+ * locale="en-US"
1499
+ * defaultCurrency="USD"
1500
+ * />
1501
+ *
1502
+ * @param {SettlementTimelineProps} props - SettlementTimeline 컴포넌트의 props / SettlementTimeline component props
1503
+ * @returns {JSX.Element} SettlementTimeline 컴포넌트 / SettlementTimeline component
1504
+ */
1505
+ declare const SettlementTimeline: React.FC<SettlementTimelineProps>;
1506
+
1507
+ type RoutingStatus = "normal" | "warning" | "critical";
1508
+ /**
1509
+ * 라우팅 분할 세그먼트 인터페이스 / RoutingBreakdownSegment interface
1510
+ * @typedef {Object} RoutingBreakdownSegment
1511
+ * @property {string} id - 세그먼트 고유 ID / Segment unique ID
1512
+ * @property {string} label - 세그먼트 라벨 / Segment label
1513
+ * @property {number} value - 세그먼트 값 / Segment value
1514
+ * @property {string} [color] - 커스텀 색상 / Custom color
1515
+ * @property {RoutingStatus} [status] - 상태 / Status
1516
+ * @property {string} [icon] - 아이콘 이름 / Icon name
1517
+ * @property {string} [detail] - 상세 정보 / Detail information
1518
+ */
1519
+ interface RoutingBreakdownSegment {
1520
+ id: string;
1521
+ label: string;
1522
+ value: number;
1523
+ color?: string;
1524
+ status?: RoutingStatus;
1525
+ icon?: string;
1526
+ detail?: string;
1527
+ }
1528
+ /**
1529
+ * RoutingBreakdownCard 컴포넌트의 props / RoutingBreakdownCard component props
1530
+ * @typedef {Object} RoutingBreakdownCardProps
1531
+ * @property {string} [title="PG / 결제수단 비중"] - 카드 제목 / Card title
1532
+ * @property {string} [description="라우팅별 처리 비율과 상태"] - 카드 설명 / Card description
1533
+ * @property {RoutingBreakdownSegment[]} segments - 세그먼트 배열 / Segments array
1534
+ * @property {string} [totalLabel="총 거래"] - 총계 라벨 / Total label
1535
+ * @property {React.ReactNode} [totalValue] - 총계 값 / Total value
1536
+ * @property {string} [highlightId] - 강조할 세그먼트 ID / Highlighted segment ID
1537
+ * @property {React.ReactNode} [actions] - 액션 컴포넌트 / Actions component
1538
+ * @property {React.ReactNode} [emptyState] - 빈 상태 컴포넌트 / Empty state component
1539
+ * @property {(segment: RoutingBreakdownSegment, percentage: number) => React.ReactNode} [formatter] - 커스텀 포맷터 / Custom formatter
1540
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
1541
+ */
1542
+ interface RoutingBreakdownCardProps extends React.HTMLAttributes<HTMLDivElement> {
1543
+ title?: string;
1544
+ description?: string;
1545
+ segments: RoutingBreakdownSegment[];
1546
+ totalLabel?: string;
1547
+ totalValue?: React.ReactNode;
1548
+ highlightId?: string;
1549
+ actions?: React.ReactNode;
1550
+ emptyState?: React.ReactNode;
1551
+ formatter?: (segment: RoutingBreakdownSegment, percentage: number) => React.ReactNode;
1552
+ }
1553
+ /**
1554
+ * RoutingBreakdownCard 컴포넌트
1555
+ *
1556
+ * PG 라우팅 또는 결제수단별 비중을 표시하는 카드 컴포넌트입니다.
1557
+ * 진행 바와 세그먼트별 상세 정보를 제공합니다.
1558
+ *
1559
+ * Card component that displays PG routing or payment method breakdown.
1560
+ * Provides progress bar and detailed information for each segment.
1561
+ *
1562
+ * @component
1563
+ * @example
1564
+ * // 기본 사용 / Basic usage
1565
+ * <RoutingBreakdownCard
1566
+ * title="PG 라우팅 비중"
1567
+ * segments={[
1568
+ * { id: "pg1", label: "PG A", value: 5000, status: "normal" },
1569
+ * { id: "pg2", label: "PG B", value: 3000, status: "warning" },
1570
+ * { id: "pg3", label: "PG C", value: 2000, status: "normal" }
1571
+ * ]}
1572
+ * totalValue="10,000"
1573
+ * />
1574
+ *
1575
+ * @example
1576
+ * // 강조 기능 / Highlight feature
1577
+ * <RoutingBreakdownCard
1578
+ * segments={segments}
1579
+ * highlightId="pg1"
1580
+ * formatter={(segment, percentage) => (
1581
+ * <div>
1582
+ * <span>{segment.value.toLocaleString()}</span>
1583
+ * <span>{percentage}%</span>
1584
+ * </div>
1585
+ * )}
1586
+ * />
1587
+ *
1588
+ * @param {RoutingBreakdownCardProps} props - RoutingBreakdownCard 컴포넌트의 props / RoutingBreakdownCard component props
1589
+ * @returns {JSX.Element} RoutingBreakdownCard 컴포넌트 / RoutingBreakdownCard component
1590
+ */
1591
+ declare const RoutingBreakdownCard: React.FC<RoutingBreakdownCardProps>;
1592
+
1593
+ type MerchantHealth = "normal" | "warning" | "critical";
1594
+ /**
1595
+ * 가맹점 리스트 아이템 인터페이스 / MerchantListItem interface
1596
+ * @typedef {Object} MerchantListItem
1597
+ * @property {string} id - 가맹점 고유 ID / Merchant unique ID
1598
+ * @property {string} name - 가맹점 이름 / Merchant name
1599
+ * @property {string} [status] - 상태 / Status
1600
+ * @property {MerchantHealth} [health] - 건강 상태 / Health status
1601
+ * @property {number} [approvalRate] - 승인률 (0-1) / Approval rate (0-1)
1602
+ * @property {number} [volume] - 거래량 / Transaction volume
1603
+ * @property {string} [currency] - 통화 / Currency
1604
+ * @property {string} [category] - 카테고리 / Category
1605
+ * @property {string} [region] - 지역 / Region
1606
+ * @property {string | Date} [updatedAt] - 업데이트 시간 / Updated time
1607
+ * @property {string} [tag] - 태그 / Tag
1608
+ * @property {IconName | React.ReactNode} [icon] - 아이콘 / Icon
1609
+ * @property {Array<{ label: string; value: React.ReactNode }>} [metadata] - 메타데이터 / Metadata
1610
+ */
1611
+ interface MerchantListItem {
1612
+ id: string;
1613
+ name: string;
1614
+ status?: string;
1615
+ health?: MerchantHealth;
1616
+ approvalRate?: number;
1617
+ volume?: number;
1618
+ currency?: string;
1619
+ category?: string;
1620
+ region?: string;
1621
+ updatedAt?: string | Date;
1622
+ tag?: string;
1623
+ icon?: IconName | React.ReactNode;
1624
+ metadata?: Array<{
1625
+ label: string;
1626
+ value: React.ReactNode;
1627
+ }>;
1628
+ }
1629
+ /**
1630
+ * MerchantList 컴포넌트의 props / MerchantList component props
1631
+ * @typedef {Object} MerchantListProps
1632
+ * @property {MerchantListItem[]} items - 가맹점 아이템 배열 / Merchant items array
1633
+ * @property {boolean} [isLoading=false] - 로딩 상태 / Loading state
1634
+ * @property {React.ReactNode} [filters] - 필터 컴포넌트 / Filter component
1635
+ * @property {React.ReactNode} [emptyState] - 빈 상태 컴포넌트 / Empty state component
1636
+ * @property {(merchant: MerchantListItem) => void} [onMerchantSelect] - 가맹점 선택 핸들러 / Merchant selection handler
1637
+ * @property {string} [locale="ko-KR"] - 로케일 / Locale
1638
+ * @property {string} [defaultCurrency="KRW"] - 기본 통화 / Default currency
1639
+ * @extends {Omit<React.HTMLAttributes<HTMLDivElement>, "onSelect">}
1640
+ */
1641
+ interface MerchantListProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onSelect"> {
1642
+ items: MerchantListItem[];
1643
+ isLoading?: boolean;
1644
+ filters?: React.ReactNode;
1645
+ emptyState?: React.ReactNode;
1646
+ onMerchantSelect?: (merchant: MerchantListItem) => void;
1647
+ locale?: string;
1648
+ defaultCurrency?: string;
1649
+ }
1650
+ /**
1651
+ * MerchantList 컴포넌트
1652
+ *
1653
+ * 가맹점 목록을 표시하는 컴포넌트입니다.
1654
+ * 가맹점 정보, 건강 상태, 승인률, 거래량 등을 카드 형태로 표시합니다.
1655
+ *
1656
+ * Component that displays a list of merchants.
1657
+ * Shows merchant information, health status, approval rate, and transaction volume in card format.
1658
+ *
1659
+ * @component
1660
+ * @example
1661
+ * // 기본 사용 / Basic usage
1662
+ * <MerchantList
1663
+ * items={[
1664
+ * {
1665
+ * id: "1",
1666
+ * name: "가맹점 A",
1667
+ * health: "normal",
1668
+ * approvalRate: 0.985,
1669
+ * volume: 1000000,
1670
+ * currency: "KRW"
1671
+ * }
1672
+ * ]}
1673
+ * onMerchantSelect={(merchant) => console.log(merchant)}
1674
+ * />
1675
+ *
1676
+ * @example
1677
+ * // 로딩 상태 / Loading state
1678
+ * <MerchantList
1679
+ * items={merchants}
1680
+ * isLoading={true}
1681
+ * filters={<FilterComponent />}
1682
+ * />
1683
+ *
1684
+ * @param {MerchantListProps} props - MerchantList 컴포넌트의 props / MerchantList component props
1685
+ * @returns {JSX.Element} MerchantList 컴포넌트 / MerchantList component
1686
+ */
1687
+ declare const MerchantList: React.FC<MerchantListProps>;
1688
+
1689
+ /**
1690
+ * StatsPanelItem 인터페이스 / StatsPanelItem interface
1691
+ * @typedef {Object} StatsPanelItem
1692
+ * @property {string} label - 통계 항목 라벨 / Stat item label
1693
+ * @property {string | React.ReactNode} value - 통계 값 / Stat value
1694
+ * @property {string | React.ReactNode} [description] - 통계 설명 / Stat description
1695
+ * @property {"up" | "down" | "neutral"} [trend] - 추세 방향 / Trend direction
1696
+ * @property {string} [trendValue] - 추세 값 / Trend value
1697
+ * @property {"primary" | "secondary" | "neutral" | "warning"} [accent] - 강조 색상 / Accent color
1698
+ * @property {React.ReactNode} [icon] - 아이콘 / Icon
1699
+ */
1700
+ interface StatsPanelItem {
1701
+ label: string;
1702
+ value: string | React.ReactNode;
1703
+ description?: string | React.ReactNode;
1704
+ trend?: "up" | "down" | "neutral";
1705
+ trendValue?: string;
1706
+ accent?: "primary" | "secondary" | "neutral" | "warning";
1707
+ icon?: React.ReactNode;
1708
+ }
1709
+ /**
1710
+ * StatsPanel 컴포넌트의 props / StatsPanel component props
1711
+ * @typedef {Object} StatsPanelProps
1712
+ * @property {string} [title] - 패널 제목 / Panel title
1713
+ * @property {StatsPanelItem[]} items - 통계 항목 배열 / Stat items array
1714
+ * @property {1 | 2 | 3 | 4} [columns=4] - 그리드 컬럼 수 / Grid column count
1715
+ * @property {boolean} [loading=false] - 로딩 상태 / Loading state
1716
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
1717
+ */
1718
+ interface StatsPanelProps extends React.HTMLAttributes<HTMLDivElement> {
1719
+ title?: string;
1720
+ items: StatsPanelItem[];
1721
+ columns?: 1 | 2 | 3 | 4;
1722
+ loading?: boolean;
1723
+ }
1724
+ /**
1725
+ * StatsPanel 컴포넌트 / StatsPanel component
1726
+ *
1727
+ * 통계 정보를 표시하는 패널 컴포넌트입니다.
1728
+ * 여러 통계 항목을 그리드 형태로 표시하며, 추세 정보를 포함할 수 있습니다.
1729
+ *
1730
+ * Panel component that displays statistics.
1731
+ * Shows multiple stat items in grid format and can include trend information.
1732
+ *
1733
+ * @component
1734
+ * @example
1735
+ * // 기본 사용 / Basic usage
1736
+ * <StatsPanel
1737
+ * items={[
1738
+ * { label: "총 사용자", value: "1,234", trend: "up", trendValue: "+12%" },
1739
+ * { label: "활성 사용자", value: "567", trend: "down", trendValue: "-5%" }
1740
+ * ]}
1741
+ * />
1742
+ *
1743
+ * @example
1744
+ * // 2열 그리드, 제목 포함 / 2-column grid with title
1745
+ * <StatsPanel
1746
+ * title="통계"
1747
+ * columns={2}
1748
+ * items={[
1749
+ * { label: "항목 1", value: "100", accent: "primary" },
1750
+ * { label: "항목 2", value: "200", accent: "secondary" }
1751
+ * ]}
1752
+ * />
1753
+ *
1754
+ * @param {StatsPanelProps} props - StatsPanel 컴포넌트의 props / StatsPanel component props
1755
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
1756
+ * @returns {JSX.Element} StatsPanel 컴포넌트 / StatsPanel component
1757
+ */
1758
+ declare const StatsPanel: React.ForwardRefExoticComponent<StatsPanelProps & React.RefAttributes<HTMLDivElement>>;
1759
+
1760
+ /**
1761
+ * SectionHeader 컴포넌트의 props / SectionHeader component props
1762
+ * @typedef {Object} SectionHeaderProps
1763
+ * @property {string} title - 섹션 제목 / Section title
1764
+ * @property {string} [description] - 섹션 설명 / Section description
1765
+ * @property {React.ReactNode} [action] - 액션 버튼 또는 요소 / Action button or element
1766
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
1767
+ */
1768
+ interface SectionHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
1769
+ title: string;
1770
+ description?: string;
1771
+ action?: React.ReactNode;
1772
+ }
1773
+ /**
1774
+ * SectionHeader 컴포넌트 / SectionHeader component
1775
+ *
1776
+ * 섹션의 헤더를 표시하는 컴포넌트입니다.
1777
+ * 제목, 설명, 액션 버튼을 포함할 수 있습니다.
1778
+ *
1779
+ * Component that displays section header.
1780
+ * Can include title, description, and action button.
1781
+ *
1782
+ * @component
1783
+ * @example
1784
+ * // 기본 사용 / Basic usage
1785
+ * <SectionHeader title="섹션 제목" />
1786
+ *
1787
+ * @example
1788
+ * // 설명과 액션 포함 / With description and action
1789
+ * <SectionHeader
1790
+ * title="알림"
1791
+ * description="최근 알림 목록"
1792
+ * action={<Button>모두 읽음</Button>}
1793
+ * />
1794
+ *
1795
+ * @param {SectionHeaderProps} props - SectionHeader 컴포넌트의 props / SectionHeader component props
1796
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
1797
+ * @returns {JSX.Element} SectionHeader 컴포넌트 / SectionHeader component
1798
+ */
1799
+ declare const SectionHeader: React.ForwardRefExoticComponent<SectionHeaderProps & React.RefAttributes<HTMLDivElement>>;
1800
+
1801
+ export { type TransactionDetail as $, ActivityFeed as A, type DashboardSidebarProps as B, type Color as C, DashboardGrid as D, type SidebarNavItem as E, type SidebarSection as F, type TransactionsTableProps as G, type TransactionRow as H, type TransactionColumnConfig as I, type TransactionColumnKey as J, type TransactionStatus as K, DashboardToolbar as L, type MembershipTier as M, NotificationCard as N, type DashboardToolbarProps as O, ProfileCard as P, QuickActionCard as Q, type ToolbarAction as R, StatsPanel as S, TransactionsTable as T, type DateRangeConfig as U, type DatePreset as V, TrendChart as W, type TrendChartProps as X, type TrendSeries as Y, TransactionDetailDrawer as Z, type TransactionDetailDrawerProps as _, type StatsPanelProps as a, type TransactionMetadataItem as a0, type SettlementInfo as a1, type FeeBreakdown as a2, type TransactionEvent as a3, SettlementTimeline as a4, type SettlementTimelineProps as a5, type SettlementTimelineItem as a6, type SettlementTimelineStatus as a7, RoutingBreakdownCard as a8, type RoutingBreakdownCardProps as a9, type RoutingBreakdownSegment as aa, MerchantList as ab, type MerchantListProps as ac, type MerchantListItem as ad, type MerchantHealth as ae, type StatsPanelItem as b, SectionHeader as c, type SectionHeaderProps as d, StatCard as e, type StatCardProps as f, type QuickActionCardProps as g, type DashboardGridProps as h, type ActivityFeedProps as i, type ActivityItem as j, type ProfileCardProps as k, MembershipBadge as l, type MembershipBadgeProps as m, MiniBarChart as n, type MiniBarChartProps as o, SummaryCard as p, type SummaryCardProps as q, type NotificationCardProps as r, type NotificationItem as s, MetricCard as t, type MetricCardProps as u, ProgressCard as v, type ProgressCardProps as w, DashboardEmptyState as x, type DashboardEmptyStateProps as y, DashboardSidebar as z };