@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,803 @@
1
+ import React from 'react';
2
+
3
+ /**
4
+ * Input 컴포넌트의 props / Input component props
5
+ * HTML input 요소의 모든 표준 속성을 상속받습니다.
6
+ * Inherits all standard attributes of HTML input element.
7
+ * @typedef {Object} InputProps
8
+ * @extends {React.InputHTMLAttributes<HTMLInputElement>}
9
+ */
10
+ interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
11
+ }
12
+ /**
13
+ * Input 컴포넌트 / Input component
14
+ *
15
+ * 표준 HTML input 요소를 래핑한 스타일링된 입력 필드 컴포넌트입니다.
16
+ * 접근성 속성(aria-invalid)을 자동으로 처리합니다.
17
+ *
18
+ * Styled input field component wrapping standard HTML input element.
19
+ * Automatically handles accessibility attributes (aria-invalid).
20
+ *
21
+ * @component
22
+ * @example
23
+ * // 기본 사용 / Basic usage
24
+ * <Input type="text" placeholder="이름을 입력하세요" />
25
+ *
26
+ * @example
27
+ * // 에러 상태 / Error state
28
+ * <Input
29
+ * type="email"
30
+ * placeholder="이메일"
31
+ * aria-invalid={true}
32
+ * />
33
+ *
34
+ * @example
35
+ * // ref 사용 / Using ref
36
+ * const inputRef = useRef<HTMLInputElement>(null)
37
+ * <Input ref={inputRef} type="text" />
38
+ *
39
+ * @param {InputProps} props - Input 컴포넌트의 props / Input component props
40
+ * @param {React.Ref<HTMLInputElement>} ref - input 요소 ref / input element ref
41
+ * @returns {JSX.Element} Input 컴포넌트 / Input component
42
+ */
43
+ declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
44
+
45
+ /**
46
+ * Form 컴포넌트의 props / Form component props
47
+ * @typedef {Object} FormProps
48
+ * @property {(e: React.FormEvent<HTMLFormElement>) => void} [onSubmit] - 폼 제출 핸들러 / Form submit handler
49
+ * @property {"default" | "glass"} [variant="default"] - Form 스타일 변형 / Form style variant
50
+ * @extends {React.FormHTMLAttributes<HTMLFormElement>}
51
+ */
52
+ interface FormProps extends React.FormHTMLAttributes<HTMLFormElement> {
53
+ onSubmit?: (e: React.FormEvent<HTMLFormElement>) => void;
54
+ variant?: "default" | "glass";
55
+ }
56
+ /**
57
+ * FormField 컴포넌트의 props / FormField component props
58
+ * @typedef {Object} FormFieldProps
59
+ * @property {string} [error] - 에러 메시지 / Error message
60
+ * @property {boolean} [required=false] - 필수 필드 여부 / Required field
61
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
62
+ */
63
+ interface FormFieldProps extends React.HTMLAttributes<HTMLDivElement> {
64
+ error?: string;
65
+ required?: boolean;
66
+ }
67
+ /**
68
+ * FormGroup 컴포넌트의 props / FormGroup component props
69
+ * @typedef {Object} FormGroupProps
70
+ * @property {boolean} [inline=false] - 인라인 레이아웃 여부 / Inline layout
71
+ * @extends {React.HTMLAttributes<HTMLDivElement>}
72
+ */
73
+ interface FormGroupProps extends React.HTMLAttributes<HTMLDivElement> {
74
+ inline?: boolean;
75
+ }
76
+ /**
77
+ * Form 컴포넌트 / Form component
78
+ *
79
+ * 폼 컨테이너 컴포넌트입니다.
80
+ * FormField, FormGroup과 함께 사용하여 구조화된 폼을 구성합니다.
81
+ *
82
+ * Form container component.
83
+ * Used with FormField and FormGroup to create structured forms.
84
+ *
85
+ * @component
86
+ * @example
87
+ * // 기본 사용 / Basic usage
88
+ * <Form onSubmit={(e) => { e.preventDefault(); console.log('제출') }}>
89
+ * <FormField>
90
+ * <Label>이름</Label>
91
+ * <Input />
92
+ * </FormField>
93
+ * </Form>
94
+ *
95
+ * @example
96
+ * // Glass 스타일 / Glass style
97
+ * <Form variant="glass" onSubmit={handleSubmit}>
98
+ * <FormGroup>
99
+ * <FormField>
100
+ * <Label>이메일</Label>
101
+ * <Input type="email" />
102
+ * </FormField>
103
+ * </FormGroup>
104
+ * </Form>
105
+ *
106
+ * @param {FormProps} props - Form 컴포넌트의 props / Form component props
107
+ * @param {React.Ref<HTMLFormElement>} ref - form 요소 ref / form element ref
108
+ * @returns {JSX.Element} Form 컴포넌트 / Form component
109
+ */
110
+ declare const Form: React.ForwardRefExoticComponent<FormProps & React.RefAttributes<HTMLFormElement>>;
111
+ /**
112
+ * FormField 컴포넌트 / FormField component
113
+ *
114
+ * 폼 필드를 감싸는 컨테이너입니다.
115
+ * 에러 메시지를 표시하고 필수 필드 표시를 지원합니다.
116
+ *
117
+ * Container that wraps a form field.
118
+ * Displays error messages and supports required field indication.
119
+ *
120
+ * @component
121
+ * @example
122
+ * <FormField error="이 필드는 필수입니다" required>
123
+ * <Label>이름</Label>
124
+ * <Input />
125
+ * </FormField>
126
+ *
127
+ * @param {FormFieldProps} props - FormField 컴포넌트의 props / FormField component props
128
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
129
+ * @returns {JSX.Element} FormField 컴포넌트 / FormField component
130
+ */
131
+ declare const FormField: React.ForwardRefExoticComponent<FormFieldProps & React.RefAttributes<HTMLDivElement>>;
132
+ /**
133
+ * FormGroup 컴포넌트 / FormGroup component
134
+ *
135
+ * 여러 폼 필드를 그룹화하는 컨테이너입니다.
136
+ * Container that groups multiple form fields.
137
+ *
138
+ * @component
139
+ * @example
140
+ * <FormGroup inline>
141
+ * <FormField>
142
+ * <Label>이름</Label>
143
+ * <Input />
144
+ * </FormField>
145
+ * <FormField>
146
+ * <Label>성</Label>
147
+ * <Input />
148
+ * </FormField>
149
+ * </FormGroup>
150
+ *
151
+ * @param {FormGroupProps} props - FormGroup 컴포넌트의 props / FormGroup component props
152
+ * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
153
+ * @returns {JSX.Element} FormGroup 컴포넌트 / FormGroup component
154
+ */
155
+ declare const FormGroup: React.ForwardRefExoticComponent<FormGroupProps & React.RefAttributes<HTMLDivElement>>;
156
+
157
+ /**
158
+ * Label 컴포넌트의 props / Label component props
159
+ * @typedef {Object} LabelProps
160
+ * @property {boolean} [required=false] - 필수 필드 여부 / Required field indicator
161
+ * @property {boolean} [error=false] - 에러 상태 표시 / Error state
162
+ * @property {boolean} [disabled=false] - 비활성화 상태 / Disabled state
163
+ * @property {"default" | "glass"} [variant="default"] - Label 스타일 변형 / Label style variant
164
+ * @extends {React.LabelHTMLAttributes<HTMLLabelElement>}
165
+ */
166
+ interface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {
167
+ required?: boolean;
168
+ error?: boolean;
169
+ disabled?: boolean;
170
+ variant?: "default" | "glass";
171
+ }
172
+ /**
173
+ * Label 컴포넌트 / Label component
174
+ *
175
+ * 폼 필드의 레이블을 표시하는 컴포넌트입니다.
176
+ * 필수 필드 표시와 에러 상태를 지원합니다.
177
+ *
178
+ * Component for displaying form field labels.
179
+ * Supports required field indicator and error state.
180
+ *
181
+ * @component
182
+ * @example
183
+ * // 기본 사용 / Basic usage
184
+ * <Label htmlFor="email">이메일</Label>
185
+ * <Input id="email" />
186
+ *
187
+ * @example
188
+ * // 필수 필드 / Required field
189
+ * <Label required htmlFor="name">이름</Label>
190
+ * <Input id="name" required />
191
+ *
192
+ * @example
193
+ * // 에러 상태 / Error state
194
+ * <Label error htmlFor="password">비밀번호</Label>
195
+ * <Input id="password" aria-invalid />
196
+ *
197
+ * @param {LabelProps} props - Label 컴포넌트의 props / Label component props
198
+ * @param {React.Ref<HTMLLabelElement>} ref - label 요소 ref / label element ref
199
+ * @returns {JSX.Element} Label 컴포넌트 / Label component
200
+ *
201
+ * @todo 접근성 개선: required일 때 aria-required="true" 추가 필요 / Accessibility improvement: add aria-required="true" when required
202
+ */
203
+ declare const Label: React.ForwardRefExoticComponent<LabelProps & React.RefAttributes<HTMLLabelElement>>;
204
+
205
+ /**
206
+ * Checkbox 컴포넌트의 props / Checkbox component props
207
+ * @typedef {Object} CheckboxProps
208
+ * @property {"default" | "outline" | "filled" | "glass"} [variant="default"] - Checkbox 스타일 변형 / Checkbox style variant
209
+ * @property {"sm" | "md" | "lg"} [size="md"] - Checkbox 크기 / Checkbox size
210
+ * @property {boolean} [error=false] - 에러 상태 표시 / Error state
211
+ * @property {boolean} [success=false] - 성공 상태 표시 / Success state
212
+ * @property {string} [label] - 체크박스 레이블 텍스트 / Checkbox label text
213
+ * @property {string} [description] - 체크박스 설명 텍스트 / Checkbox description text
214
+ * @extends {Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>}
215
+ */
216
+ interface CheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'> {
217
+ variant?: "default" | "outline" | "filled" | "glass";
218
+ size?: "sm" | "md" | "lg";
219
+ error?: boolean;
220
+ success?: boolean;
221
+ label?: string;
222
+ description?: string;
223
+ }
224
+ /**
225
+ * Checkbox 컴포넌트 / Checkbox component
226
+ *
227
+ * 체크박스 입력 필드를 제공하는 컴포넌트입니다.
228
+ * ARIA 속성을 자동으로 설정하여 접근성을 지원합니다.
229
+ *
230
+ * Checkbox input field component.
231
+ * Automatically sets ARIA attributes for accessibility support.
232
+ *
233
+ * @component
234
+ * @example
235
+ * // 기본 사용 / Basic usage
236
+ * <Checkbox label="이용약관에 동의합니다" />
237
+ *
238
+ * @example
239
+ * // 에러 상태와 설명 / Error state with description
240
+ * <Checkbox
241
+ * label="필수 항목"
242
+ * description="이 항목은 필수입니다"
243
+ * error
244
+ * />
245
+ *
246
+ * @example
247
+ * // 제어 컴포넌트 / Controlled component
248
+ * const [checked, setChecked] = useState(false)
249
+ * <Checkbox
250
+ * checked={checked}
251
+ * onChange={(e) => setChecked(e.target.checked)}
252
+ * label="동의"
253
+ * />
254
+ *
255
+ * @param {CheckboxProps} props - Checkbox 컴포넌트의 props / Checkbox component props
256
+ * @param {React.Ref<HTMLInputElement>} ref - input 요소 ref / input element ref
257
+ * @returns {JSX.Element} Checkbox 컴포넌트 / Checkbox component
258
+ */
259
+ declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLInputElement>>;
260
+
261
+ /**
262
+ * Radio 컴포넌트의 props / Radio component props
263
+ * @typedef {Object} RadioProps
264
+ * @property {"default" | "outline" | "filled" | "glass"} [variant="default"] - Radio 스타일 변형 / Radio style variant
265
+ * @property {"sm" | "md" | "lg"} [size="md"] - Radio 크기 / Radio size
266
+ * @property {boolean} [error=false] - 에러 상태 표시 / Error state
267
+ * @property {boolean} [success=false] - 성공 상태 표시 / Success state
268
+ * @property {string} [label] - 라디오 버튼 레이블 텍스트 / Radio button label text
269
+ * @property {string} [description] - 라디오 버튼 설명 텍스트 / Radio button description text
270
+ * @extends {Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>}
271
+ */
272
+ interface RadioProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'> {
273
+ variant?: "default" | "outline" | "filled" | "glass";
274
+ size?: "sm" | "md" | "lg";
275
+ error?: boolean;
276
+ success?: boolean;
277
+ label?: string;
278
+ description?: string;
279
+ }
280
+ /**
281
+ * Radio 컴포넌트 / Radio component
282
+ *
283
+ * 라디오 버튼 입력 필드를 제공하는 컴포넌트입니다.
284
+ * 같은 name 속성을 가진 여러 Radio는 그룹으로 동작합니다.
285
+ * ARIA 속성을 자동으로 설정하여 접근성을 지원합니다.
286
+ *
287
+ * Radio button input field component.
288
+ * Multiple Radio components with the same name attribute work as a group.
289
+ * Automatically sets ARIA attributes for accessibility support.
290
+ *
291
+ * @component
292
+ * @example
293
+ * // 기본 사용 (그룹) / Basic usage (group)
294
+ * <Radio name="option" value="1" label="옵션 1" />
295
+ * <Radio name="option" value="2" label="옵션 2" />
296
+ * <Radio name="option" value="3" label="옵션 3" />
297
+ *
298
+ * @example
299
+ * // 에러 상태 / Error state
300
+ * <Radio
301
+ * name="gender"
302
+ * value="male"
303
+ * label="남성"
304
+ * error
305
+ * />
306
+ *
307
+ * @param {RadioProps} props - Radio 컴포넌트의 props / Radio component props
308
+ * @param {React.Ref<HTMLInputElement>} ref - input 요소 ref / input element ref
309
+ * @returns {JSX.Element} Radio 컴포넌트 / Radio component
310
+ */
311
+ declare const Radio: React.ForwardRefExoticComponent<RadioProps & React.RefAttributes<HTMLInputElement>>;
312
+
313
+ /**
314
+ * Select 컴포넌트의 props / Select component props
315
+ * @typedef {Object} SelectProps
316
+ * @property {"default" | "outline" | "filled" | "ghost" | "glass"} [variant="default"] - Select 스타일 변형 / Select style variant
317
+ * @property {"sm" | "md" | "lg"} [size="md"] - Select 크기 / Select size
318
+ * @property {boolean} [error=false] - 에러 상태 표시 / Error state
319
+ * @property {boolean} [success=false] - 성공 상태 표시 / Success state
320
+ * @property {React.ReactNode} [leftIcon] - 왼쪽 아이콘 / Left icon
321
+ * @property {string} [placeholder] - 플레이스홀더 텍스트 / Placeholder text
322
+ * @extends {Omit<React.SelectHTMLAttributes<HTMLSelectElement>, 'size'>}
323
+ */
324
+ interface SelectProps extends Omit<React.SelectHTMLAttributes<HTMLSelectElement>, 'size'> {
325
+ variant?: "default" | "outline" | "filled" | "ghost" | "glass";
326
+ size?: "sm" | "md" | "lg";
327
+ error?: boolean;
328
+ success?: boolean;
329
+ leftIcon?: React.ReactNode;
330
+ placeholder?: string;
331
+ }
332
+ /**
333
+ * SelectOption 컴포넌트의 props / SelectOption component props
334
+ * @typedef {Object} SelectOptionProps
335
+ * @property {string} value - 옵션 값 / Option value
336
+ * @property {React.ReactNode} children - 옵션 표시 텍스트 / Option display text
337
+ * @extends {React.OptionHTMLAttributes<HTMLOptionElement>}
338
+ */
339
+ interface SelectOptionProps extends React.OptionHTMLAttributes<HTMLOptionElement> {
340
+ value: string;
341
+ children: React.ReactNode;
342
+ }
343
+ /**
344
+ * Select 컴포넌트 / Select component
345
+ *
346
+ * 드롭다운 선택 메뉴를 제공하는 컴포넌트입니다.
347
+ * 다양한 스타일 변형과 크기를 지원하며, 접근성 속성을 포함합니다.
348
+ *
349
+ * Dropdown selection menu component.
350
+ * Supports various style variants and sizes, includes accessibility attributes.
351
+ *
352
+ * @component
353
+ * @example
354
+ * // 기본 사용 / Basic usage
355
+ * <Select>
356
+ * <option value="option1">옵션 1</option>
357
+ * <option value="option2">옵션 2</option>
358
+ * </Select>
359
+ *
360
+ * @example
361
+ * // 에러 상태와 아이콘 / Error state with icon
362
+ * <Select
363
+ * error
364
+ * leftIcon={<Icon name="alert" />}
365
+ * aria-label="국가 선택"
366
+ * >
367
+ * <option value="">국가를 선택하세요</option>
368
+ * <option value="kr">한국</option>
369
+ * <option value="us">미국</option>
370
+ * </Select>
371
+ *
372
+ * @example
373
+ * // 다양한 변형 / Various variants
374
+ * <Select variant="outline" size="lg">
375
+ * <option value="1">항목 1</option>
376
+ * </Select>
377
+ *
378
+ * @param {SelectProps} props - Select 컴포넌트의 props / Select component props
379
+ * @param {React.Ref<HTMLSelectElement>} ref - select 요소 ref / select element ref
380
+ * @returns {JSX.Element} Select 컴포넌트 / Select component
381
+ */
382
+ declare const Select: React.ForwardRefExoticComponent<SelectProps & React.RefAttributes<HTMLSelectElement>>;
383
+ declare const SelectOption: React.ForwardRefExoticComponent<SelectOptionProps & React.RefAttributes<HTMLOptionElement>>;
384
+
385
+ /**
386
+ * Switch 컴포넌트의 props / Switch component props
387
+ * @typedef {Object} SwitchProps
388
+ * @property {"default" | "outline" | "filled" | "glass"} [variant="default"] - Switch 스타일 변형 / Switch style variant
389
+ * @property {"sm" | "md" | "lg"} [size="md"] - Switch 크기 / Switch size
390
+ * @property {boolean} [error=false] - 에러 상태 표시 / Error state
391
+ * @property {boolean} [success=false] - 성공 상태 표시 / Success state
392
+ * @property {string} [label] - 스위치 레이블 텍스트 / Switch label text
393
+ * @property {string} [description] - 스위치 설명 텍스트 / Switch description text
394
+ * @extends {Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>}
395
+ */
396
+ interface SwitchProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'> {
397
+ variant?: "default" | "outline" | "filled" | "glass";
398
+ size?: "sm" | "md" | "lg";
399
+ error?: boolean;
400
+ success?: boolean;
401
+ label?: string;
402
+ description?: string;
403
+ }
404
+ /**
405
+ * Switch 컴포넌트 / Switch component
406
+ *
407
+ * 토글 스위치 입력 필드를 제공하는 컴포넌트입니다.
408
+ * ARIA 속성을 자동으로 설정하여 접근성을 지원합니다.
409
+ *
410
+ * Toggle switch input field component.
411
+ * Automatically sets ARIA attributes for accessibility support.
412
+ *
413
+ * @component
414
+ * @example
415
+ * // 기본 사용 / Basic usage
416
+ * <Switch label="알림 받기" />
417
+ *
418
+ * @example
419
+ * // 제어 컴포넌트 / Controlled component
420
+ * const [enabled, setEnabled] = useState(false)
421
+ * <Switch
422
+ * checked={enabled}
423
+ * onChange={(e) => setEnabled(e.target.checked)}
424
+ * label="다크 모드"
425
+ * />
426
+ *
427
+ * @example
428
+ * // 에러 상태 / Error state
429
+ * <Switch
430
+ * label="필수 설정"
431
+ * description="이 설정을 활성화해야 합니다"
432
+ * error
433
+ * />
434
+ *
435
+ * @param {SwitchProps} props - Switch 컴포넌트의 props / Switch component props
436
+ * @param {React.Ref<HTMLInputElement>} ref - input 요소 ref / input element ref
437
+ * @returns {JSX.Element} Switch 컴포넌트 / Switch component
438
+ */
439
+ declare const Switch: React.ForwardRefExoticComponent<SwitchProps & React.RefAttributes<HTMLInputElement>>;
440
+
441
+ /**
442
+ * Slider 컴포넌트의 props
443
+ * @typedef {Object} SliderProps
444
+ * @property {"default" | "primary" | "success" | "warning" | "danger"} [variant="default"] - Slider 스타일 변형
445
+ * @property {"sm" | "md" | "lg"} [size="md"] - Slider 크기
446
+ * @property {boolean} [showValue=false] - 현재 값 표시 여부
447
+ * @property {boolean} [showLabel=false] - 라벨 표시 여부
448
+ * @property {string} [label] - 라벨 텍스트
449
+ * @property {number} [min=0] - 최소값
450
+ * @property {number} [max=100] - 최대값
451
+ * @property {number} [step=1] - 단계값
452
+ * @property {number | number[]} [value=0] - 현재 값 (배열이면 범위 슬라이더)
453
+ * @property {(value: number | number[]) => void} [onValueChange] - 값 변경 콜백
454
+ * @property {"horizontal" | "vertical"} [orientation="horizontal"] - Slider 방향
455
+ * @property {boolean} [disabled=false] - 비활성화 여부
456
+ * @property {string} [className] - 추가 CSS 클래스
457
+ * @extends {Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'value' | 'onChange' | 'size'>}
458
+ */
459
+ interface SliderProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'value' | 'onChange' | 'size'> {
460
+ variant?: "default" | "primary" | "success" | "warning" | "danger";
461
+ size?: "sm" | "md" | "lg";
462
+ showValue?: boolean;
463
+ showLabel?: boolean;
464
+ label?: string;
465
+ min?: number;
466
+ max?: number;
467
+ step?: number;
468
+ value?: number | number[];
469
+ onValueChange?: (value: number | number[]) => void;
470
+ orientation?: "horizontal" | "vertical";
471
+ disabled?: boolean;
472
+ className?: string;
473
+ }
474
+ /**
475
+ * Slider 컴포넌트 / Slider component
476
+ *
477
+ * 숫자 값을 선택하는 슬라이더 컴포넌트입니다.
478
+ * 단일 값 또는 범위 값을 선택할 수 있습니다.
479
+ *
480
+ * Slider component for selecting numeric values.
481
+ * Supports single value or range value selection.
482
+ *
483
+ * @component
484
+ * @example
485
+ * // 기본 사용 / Basic usage
486
+ * const [value, setValue] = useState(50)
487
+ * <Slider value={value} onValueChange={setValue} />
488
+ *
489
+ * @example
490
+ * // 범위 슬라이더 / Range slider
491
+ * const [range, setRange] = useState([20, 80])
492
+ * <Slider
493
+ * value={range}
494
+ * onValueChange={setRange}
495
+ * showValue
496
+ * label="가격 범위"
497
+ * />
498
+ *
499
+ * @example
500
+ * // 세로 슬라이더 / Vertical slider
501
+ * <Slider
502
+ * orientation="vertical"
503
+ * variant="primary"
504
+ * size="lg"
505
+ * className="h-64"
506
+ * />
507
+ *
508
+ * @param {SliderProps} props - Slider 컴포넌트의 props / Slider component props
509
+ * @param {React.Ref<HTMLInputElement>} ref - input 요소 ref / input element ref
510
+ * @returns {JSX.Element} Slider 컴포넌트 / Slider component
511
+ */
512
+ declare const Slider: React.ForwardRefExoticComponent<SliderProps & React.RefAttributes<HTMLInputElement>>;
513
+
514
+ /**
515
+ * Textarea 컴포넌트의 props / Textarea component props
516
+ * @typedef {Object} TextareaProps
517
+ * @property {"default" | "outline" | "filled" | "ghost" | "glass"} [variant="default"] - Textarea 스타일 변형 / Textarea style variant
518
+ * @property {"sm" | "md" | "lg"} [size="md"] - Textarea 크기 / Textarea size
519
+ * @property {boolean} [error=false] - 에러 상태 표시 / Error state
520
+ * @property {boolean} [success=false] - 성공 상태 표시 / Success state
521
+ * @property {"none" | "vertical" | "horizontal" | "both"} [resize="vertical"] - 크기 조절 방향 / Resize direction
522
+ * @extends {React.TextareaHTMLAttributes<HTMLTextAreaElement>}
523
+ */
524
+ interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {
525
+ variant?: "default" | "outline" | "filled" | "ghost" | "glass";
526
+ size?: "sm" | "md" | "lg";
527
+ error?: boolean;
528
+ success?: boolean;
529
+ resize?: "none" | "vertical" | "horizontal" | "both";
530
+ }
531
+ /**
532
+ * Textarea 컴포넌트 / Textarea component
533
+ *
534
+ * 여러 줄 텍스트 입력을 위한 텍스트 영역 컴포넌트입니다.
535
+ * 다양한 스타일 변형과 크기를 지원하며, 접근성 속성을 포함합니다.
536
+ *
537
+ * Text area component for multi-line text input.
538
+ * Supports various style variants and sizes, includes accessibility attributes.
539
+ *
540
+ * @component
541
+ * @example
542
+ * // 기본 사용 / Basic usage
543
+ * <Textarea placeholder="내용을 입력하세요" />
544
+ *
545
+ * @example
546
+ * // 에러 상태 / Error state
547
+ * <Textarea
548
+ * error
549
+ * placeholder="에러가 발생했습니다"
550
+ * aria-label="설명 입력"
551
+ * />
552
+ *
553
+ * @example
554
+ * // 크기 조절 비활성화 / Disable resize
555
+ * <Textarea
556
+ * resize="none"
557
+ * rows={5}
558
+ * placeholder="고정 크기 텍스트 영역"
559
+ * />
560
+ *
561
+ * @param {TextareaProps} props - Textarea 컴포넌트의 props / Textarea component props
562
+ * @param {React.Ref<HTMLTextAreaElement>} ref - textarea 요소 ref / textarea element ref
563
+ * @returns {JSX.Element} Textarea 컴포넌트 / Textarea component
564
+ *
565
+ * @todo 접근성 개선: aria-invalid 속성 자동 추가 필요 / Accessibility improvement: auto-add aria-invalid attribute
566
+ */
567
+ declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
568
+
569
+ /**
570
+ * DatePicker 컴포넌트의 props / DatePicker component props
571
+ * @typedef {Object} DatePickerProps
572
+ * @property {Date | null} [value] - 선택된 날짜 / Selected date
573
+ * @property {(date: Date | null) => void} [onChange] - 날짜 변경 핸들러 / Date change handler
574
+ * @property {Date} [minDate] - 최소 날짜 / Minimum date
575
+ * @property {Date} [maxDate] - 최대 날짜 / Maximum date
576
+ * @property {string} [placeholder="날짜를 선택하세요"] - 플레이스홀더 / Placeholder
577
+ * @property {boolean} [disabled=false] - 비활성화 상태 / Disabled state
578
+ * @property {boolean} [error=false] - 에러 상태 / Error state
579
+ * @property {string} [dateFormat="YYYY-MM-DD"] - 날짜 포맷 / Date format
580
+ * @property {string} [locale="ko-KR"] - 로케일 / Locale
581
+ * @property {"sm" | "md" | "lg"} [size="md"] - 크기 / Size
582
+ * @property {string} [className] - 추가 클래스명 / Additional class name
583
+ * @extends {Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'>}
584
+ */
585
+ interface DatePickerProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {
586
+ value?: Date | null;
587
+ onChange?: (date: Date | null) => void;
588
+ minDate?: Date;
589
+ maxDate?: Date;
590
+ placeholder?: string;
591
+ disabled?: boolean;
592
+ error?: boolean;
593
+ dateFormat?: string;
594
+ locale?: string;
595
+ size?: "sm" | "md" | "lg";
596
+ className?: string;
597
+ }
598
+ /**
599
+ * DatePicker 컴포넌트 / DatePicker component
600
+ *
601
+ * 날짜를 선택할 수 있는 컴포넌트입니다.
602
+ * 캘린더 팝오버를 통해 직관적으로 날짜를 선택할 수 있습니다.
603
+ *
604
+ * Component for selecting dates.
605
+ * Allows intuitive date selection through a calendar popover.
606
+ *
607
+ * @component
608
+ * @example
609
+ * // 기본 사용 / Basic usage
610
+ * <DatePicker
611
+ * value={selectedDate}
612
+ * onChange={setSelectedDate}
613
+ * />
614
+ *
615
+ * @example
616
+ * // 날짜 범위 제한 / Date range restriction
617
+ * <DatePicker
618
+ * value={date}
619
+ * onChange={setDate}
620
+ * minDate={new Date("2024-01-01")}
621
+ * maxDate={new Date("2024-12-31")}
622
+ * placeholder="날짜 선택"
623
+ * />
624
+ *
625
+ * @param {DatePickerProps} props - DatePicker 컴포넌트의 props / DatePicker component props
626
+ * @returns {JSX.Element} DatePicker 컴포넌트 / DatePicker component
627
+ */
628
+ declare const DatePicker: React.ForwardRefExoticComponent<DatePickerProps & React.RefAttributes<HTMLDivElement>>;
629
+
630
+ /**
631
+ * 업로드된 파일 정보 인터페이스 / Uploaded file information interface
632
+ * @typedef {Object} UploadedFile
633
+ * @property {string} id - 파일 고유 ID / File unique ID
634
+ * @property {File} file - 파일 객체 / File object
635
+ * @property {string} name - 파일 이름 / File name
636
+ * @property {number} size - 파일 크기 (bytes) / File size in bytes
637
+ * @property {string} type - 파일 타입 / File type
638
+ * @property {number} [progress] - 업로드 진행률 (0-100) / Upload progress (0-100)
639
+ * @property {"pending" | "uploading" | "success" | "error"} [status] - 업로드 상태 / Upload status
640
+ * @property {string} [url] - 업로드된 파일 URL / Uploaded file URL
641
+ * @property {string} [error] - 에러 메시지 / Error message
642
+ */
643
+ interface UploadedFile {
644
+ id: string;
645
+ file: File;
646
+ name: string;
647
+ size: number;
648
+ type: string;
649
+ progress?: number;
650
+ status?: "pending" | "uploading" | "success" | "error";
651
+ url?: string;
652
+ error?: string;
653
+ }
654
+ /**
655
+ * Upload 컴포넌트의 props / Upload component props
656
+ * @typedef {Object} UploadProps
657
+ * @property {UploadedFile[]} [files] - 업로드된 파일 목록 / Uploaded files list
658
+ * @property {(files: File[]) => void} [onChange] - 파일 선택 핸들러 / File selection handler
659
+ * @property {(file: UploadedFile) => void} [onRemove] - 파일 제거 핸들러 / File removal handler
660
+ * @property {boolean} [multiple=false] - 다중 파일 선택 허용 / Allow multiple file selection
661
+ * @property {string} [accept] - 허용할 파일 타입 (예: "image/*", ".pdf") / Accepted file types
662
+ * @property {number} [maxSize] - 최대 파일 크기 (bytes) / Maximum file size in bytes
663
+ * @property {number} [maxFiles] - 최대 파일 개수 / Maximum number of files
664
+ * @property {boolean} [disabled=false] - 비활성화 상태 / Disabled state
665
+ * @property {boolean} [dragDrop=true] - 드래그 앤 드롭 활성화 / Enable drag and drop
666
+ * @property {string} [placeholder="파일을 선택하거나 여기에 드래그하세요"] - 플레이스홀더 / Placeholder
667
+ * @property {"sm" | "md" | "lg"} [size="md"] - 크기 / Size
668
+ * @property {string} [className] - 추가 클래스명 / Additional class name
669
+ */
670
+ interface UploadProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {
671
+ files?: UploadedFile[];
672
+ onChange?: (files: File[]) => void;
673
+ onRemove?: (file: UploadedFile) => void;
674
+ multiple?: boolean;
675
+ accept?: string;
676
+ maxSize?: number;
677
+ maxFiles?: number;
678
+ disabled?: boolean;
679
+ dragDrop?: boolean;
680
+ placeholder?: string;
681
+ size?: "sm" | "md" | "lg";
682
+ className?: string;
683
+ }
684
+ /**
685
+ * Upload 컴포넌트 / Upload component
686
+ *
687
+ * 파일을 업로드할 수 있는 컴포넌트입니다.
688
+ * 드래그 앤 드롭, 다중 파일 선택, 파일 크기 제한 등을 지원합니다.
689
+ *
690
+ * Component for uploading files.
691
+ * Supports drag and drop, multiple file selection, file size limits, and more.
692
+ *
693
+ * @component
694
+ * @example
695
+ * // 기본 사용 / Basic usage
696
+ * <Upload
697
+ * onChange={(files) => console.log(files)}
698
+ * />
699
+ *
700
+ * @example
701
+ * // 이미지만, 다중 선택 / Images only, multiple selection
702
+ * <Upload
703
+ * accept="image/*"
704
+ * multiple
705
+ * maxSize={5 * 1024 * 1024} // 5MB
706
+ * maxFiles={5}
707
+ * files={uploadedFiles}
708
+ * onRemove={(file) => handleRemove(file)}
709
+ * />
710
+ *
711
+ * @param {UploadProps} props - Upload 컴포넌트의 props / Upload component props
712
+ * @returns {JSX.Element} Upload 컴포넌트 / Upload component
713
+ */
714
+ declare const Upload: React.ForwardRefExoticComponent<UploadProps & React.RefAttributes<HTMLDivElement>>;
715
+
716
+ /**
717
+ * Autocomplete 옵션 인터페이스 / Autocomplete option interface
718
+ * @typedef {Object} AutocompleteOption
719
+ * @property {string} value - 옵션 값 / Option value
720
+ * @property {string} label - 옵션 라벨 / Option label
721
+ * @property {string} [description] - 옵션 설명 / Option description
722
+ * @property {React.ReactNode} [icon] - 옵션 아이콘 / Option icon
723
+ * @property {Record<string, unknown>} [data] - 추가 데이터 / Additional data
724
+ */
725
+ interface AutocompleteOption {
726
+ value: string;
727
+ label: string;
728
+ description?: string;
729
+ icon?: React.ReactNode;
730
+ data?: Record<string, unknown>;
731
+ }
732
+ /**
733
+ * Autocomplete 컴포넌트의 props / Autocomplete component props
734
+ * @typedef {Object} AutocompleteProps
735
+ * @property {AutocompleteOption[]} options - 옵션 목록 / Options list
736
+ * @property {string} [value] - 선택된 값 / Selected value
737
+ * @property {(value: string, option?: AutocompleteOption) => void} [onChange] - 값 변경 핸들러 / Value change handler
738
+ * @property {string} [placeholder="검색하거나 선택하세요"] - 플레이스홀더 / Placeholder
739
+ * @property {boolean} [disabled=false] - 비활성화 상태 / Disabled state
740
+ * @property {boolean} [error=false] - 에러 상태 / Error state
741
+ * @property {boolean} [loading=false] - 로딩 상태 / Loading state
742
+ * @property {number} [maxHeight=300] - 드롭다운 최대 높이 (px) / Dropdown max height in px
743
+ * @property {boolean} [clearable=true] - 지우기 버튼 표시 / Show clear button
744
+ * @property {boolean} [filterable=true] - 필터링 활성화 / Enable filtering
745
+ * @property {(query: string) => AutocompleteOption[] | Promise<AutocompleteOption[]>} [onSearch] - 검색 핸들러 (비동기 지원) / Search handler (async support)
746
+ * @property {React.ReactNode} [emptyText="결과가 없습니다"] - 빈 결과 텍스트 / Empty result text
747
+ * @property {"sm" | "md" | "lg"} [size="md"] - 크기 / Size
748
+ * @property {string} [className] - 추가 클래스명 / Additional class name
749
+ * @extends {Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'>}
750
+ */
751
+ interface AutocompleteProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {
752
+ options: AutocompleteOption[];
753
+ value?: string;
754
+ onChange?: (value: string, option?: AutocompleteOption) => void;
755
+ placeholder?: string;
756
+ disabled?: boolean;
757
+ error?: boolean;
758
+ loading?: boolean;
759
+ maxHeight?: number;
760
+ clearable?: boolean;
761
+ filterable?: boolean;
762
+ onSearch?: (query: string) => AutocompleteOption[] | Promise<AutocompleteOption[]>;
763
+ emptyText?: string;
764
+ size?: "sm" | "md" | "lg";
765
+ className?: string;
766
+ }
767
+ /**
768
+ * Autocomplete 컴포넌트 / Autocomplete component
769
+ *
770
+ * 자동완성 입력 컴포넌트입니다.
771
+ * 입력하면서 옵션을 필터링하고 선택할 수 있습니다.
772
+ *
773
+ * Autocomplete input component.
774
+ * Filters and selects options as you type.
775
+ *
776
+ * @component
777
+ * @example
778
+ * // 기본 사용 / Basic usage
779
+ * <Autocomplete
780
+ * options={[
781
+ * { value: "1", label: "옵션 1" },
782
+ * { value: "2", label: "옵션 2" }
783
+ * ]}
784
+ * onChange={(value) => console.log(value)}
785
+ * />
786
+ *
787
+ * @example
788
+ * // 비동기 검색 / Async search
789
+ * <Autocomplete
790
+ * options={options}
791
+ * onSearch={async (query) => {
792
+ * const results = await searchAPI(query)
793
+ * return results
794
+ * }}
795
+ * loading={isLoading}
796
+ * />
797
+ *
798
+ * @param {AutocompleteProps} props - Autocomplete 컴포넌트의 props / Autocomplete component props
799
+ * @returns {JSX.Element} Autocomplete 컴포넌트 / Autocomplete component
800
+ */
801
+ declare const Autocomplete: React.ForwardRefExoticComponent<AutocompleteProps & React.RefAttributes<HTMLDivElement>>;
802
+
803
+ export { Autocomplete, type AutocompleteOption, type AutocompleteProps, Checkbox, type CheckboxProps, DatePicker, type DatePickerProps, Form, FormField, type FormFieldProps, FormGroup, type FormGroupProps, type FormProps, Input, type InputProps, Label, type LabelProps, Radio, type RadioProps, Select, SelectOption, type SelectOptionProps, type SelectProps, Slider, type SliderProps, Switch, type SwitchProps, Textarea, type TextareaProps, Upload, type UploadProps, type UploadedFile };