@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.
- package/README.md +897 -210
- package/dist/ComponentLayout-BxCenSAm.d.mts +73 -0
- package/dist/advanced/dashboard.d.ts +7 -0
- package/dist/advanced/dashboard.d.ts.map +1 -0
- package/dist/advanced/motion.d.ts +2 -0
- package/dist/advanced/motion.d.ts.map +1 -0
- package/dist/advanced-dashboard.d.mts +4 -0
- package/dist/advanced-dashboard.js +2 -0
- package/dist/advanced-dashboard.js.map +1 -0
- package/dist/advanced-dashboard.mjs +2 -0
- package/dist/advanced-dashboard.mjs.map +1 -0
- package/dist/advanced-motion.d.mts +93 -0
- package/dist/advanced-motion.js +2 -0
- package/dist/advanced-motion.js.map +1 -0
- package/dist/advanced-motion.mjs +2 -0
- package/dist/advanced-motion.mjs.map +1 -0
- package/dist/advanced.d.mts +734 -0
- package/dist/advanced.d.ts +17 -0
- package/dist/advanced.d.ts.map +1 -0
- package/dist/advanced.js +2 -0
- package/dist/advanced.js.map +1 -0
- package/dist/advanced.mjs +2 -0
- package/dist/advanced.mjs.map +1 -0
- package/dist/chunk-627HOIRV.mjs +2 -0
- package/dist/chunk-627HOIRV.mjs.map +1 -0
- package/dist/chunk-ACEKLG37.mjs +2 -0
- package/dist/chunk-ACEKLG37.mjs.map +1 -0
- package/dist/chunk-E5PN4LUS.mjs +2 -0
- package/dist/chunk-E5PN4LUS.mjs.map +1 -0
- package/dist/chunk-KHEJZ3U4.mjs +2 -0
- package/dist/chunk-KHEJZ3U4.mjs.map +1 -0
- package/dist/chunk-MXGXBG63.mjs +2 -0
- package/dist/chunk-MXGXBG63.mjs.map +1 -0
- package/dist/chunk-R5KCFRYV.mjs +2 -0
- package/dist/chunk-R5KCFRYV.mjs.map +1 -0
- package/dist/chunk-UGSYQDR4.mjs +2 -0
- package/dist/chunk-UGSYQDR4.mjs.map +1 -0
- package/dist/chunk-UUHAXGMO.mjs +2 -0
- package/dist/chunk-UUHAXGMO.mjs.map +1 -0
- package/dist/chunk-VU264VFN.mjs +2 -0
- package/dist/chunk-VU264VFN.mjs.map +1 -0
- package/dist/chunk-ZFS4B5QT.mjs +2 -0
- package/dist/chunk-ZFS4B5QT.mjs.map +1 -0
- package/dist/components/Accordion.d.ts +109 -1
- package/dist/components/Accordion.d.ts.map +1 -1
- package/dist/components/Action.d.ts +68 -0
- package/dist/components/Action.d.ts.map +1 -0
- package/dist/components/ActionToolbar.d.ts +65 -0
- package/dist/components/ActionToolbar.d.ts.map +1 -0
- package/dist/components/Alert.d.ts +49 -0
- package/dist/components/Alert.d.ts.map +1 -1
- package/dist/components/Autocomplete.d.ts +88 -0
- package/dist/components/Autocomplete.d.ts.map +1 -0
- package/dist/components/Avatar.d.ts +71 -1
- package/dist/components/Avatar.d.ts.map +1 -1
- package/dist/components/Badge.d.ts +32 -2
- package/dist/components/Badge.d.ts.map +1 -1
- package/dist/components/Bookmark.d.ts +49 -0
- package/dist/components/Bookmark.d.ts.map +1 -0
- package/dist/components/BottomSheet.d.ts +91 -1
- package/dist/components/BottomSheet.d.ts.map +1 -1
- package/dist/components/Breadcrumb.d.ts +73 -14
- package/dist/components/Breadcrumb.d.ts.map +1 -1
- package/dist/components/Button.d.ts +82 -7
- package/dist/components/Button.d.ts.map +1 -1
- package/dist/components/Card.d.ts +122 -5
- package/dist/components/Card.d.ts.map +1 -1
- package/dist/components/ChatMessage.d.ts +67 -1
- package/dist/components/ChatMessage.d.ts.map +1 -1
- package/dist/components/Checkbox.d.ts +48 -2
- package/dist/components/Checkbox.d.ts.map +1 -1
- package/dist/components/Command.d.ts +82 -1
- package/dist/components/Command.d.ts.map +1 -1
- package/dist/components/ComponentLayout.d.ts +72 -0
- package/dist/components/ComponentLayout.d.ts.map +1 -0
- package/dist/components/ConfirmModal.d.ts +66 -1
- package/dist/components/ConfirmModal.d.ts.map +1 -1
- package/dist/components/Container.d.ts +39 -0
- package/dist/components/Container.d.ts.map +1 -1
- package/dist/components/ContextMenu.d.ts +51 -1
- package/dist/components/ContextMenu.d.ts.map +1 -1
- package/dist/components/DatePicker.d.ts +62 -0
- package/dist/components/DatePicker.d.ts.map +1 -0
- package/dist/components/Divider.d.ts +13 -3
- package/dist/components/Divider.d.ts.map +1 -1
- package/dist/components/Drawer.d.ts +103 -1
- package/dist/components/Drawer.d.ts.map +1 -1
- package/dist/components/Dropdown.d.ts +51 -1
- package/dist/components/Dropdown.d.ts.map +1 -1
- package/dist/components/EmotionAnalysis.d.ts +59 -1
- package/dist/components/EmotionAnalysis.d.ts.map +1 -1
- package/dist/components/EmotionButton.d.ts +35 -1
- package/dist/components/EmotionButton.d.ts.map +1 -1
- package/dist/components/EmotionMeter.d.ts +38 -2
- package/dist/components/EmotionMeter.d.ts.map +1 -1
- package/dist/components/EmotionSelector.d.ts +51 -1
- package/dist/components/EmotionSelector.d.ts.map +1 -1
- package/dist/components/FeatureCard.d.ts +61 -0
- package/dist/components/FeatureCard.d.ts.map +1 -0
- package/dist/components/Form.d.ts +114 -0
- package/dist/components/Form.d.ts.map +1 -0
- package/dist/components/Grid.d.ts +42 -1
- package/dist/components/Grid.d.ts.map +1 -1
- package/dist/components/HeroSection.d.ts +77 -0
- package/dist/components/HeroSection.d.ts.map +1 -0
- package/dist/components/Icon/Icon.d.ts +159 -0
- package/dist/components/Icon/Icon.d.ts.map +1 -0
- package/dist/components/Icon/IconProvider.d.ts +94 -0
- package/dist/components/Icon/IconProvider.d.ts.map +1 -0
- package/dist/components/Icon/icon-store.d.ts +21 -0
- package/dist/components/Icon/icon-store.d.ts.map +1 -0
- package/dist/components/Icon/index.d.ts +10 -0
- package/dist/components/Icon/index.d.ts.map +1 -0
- package/dist/components/InfoCard.d.ts +48 -0
- package/dist/components/InfoCard.d.ts.map +1 -0
- package/dist/components/Input.d.ts +40 -8
- package/dist/components/Input.d.ts.map +1 -1
- package/dist/components/Label.d.ts +50 -0
- package/dist/components/Label.d.ts.map +1 -0
- package/dist/components/LanguageToggle.d.ts +41 -1
- package/dist/components/LanguageToggle.d.ts.map +1 -1
- package/dist/components/Link.d.ts +52 -0
- package/dist/components/Link.d.ts.map +1 -0
- package/dist/components/LoadingSpinner.d.ts +44 -5
- package/dist/components/LoadingSpinner.d.ts.map +1 -1
- package/dist/components/Menu.d.ts +92 -1
- package/dist/components/Menu.d.ts.map +1 -1
- package/dist/components/Modal.d.ts +67 -5
- package/dist/components/Modal.d.ts.map +1 -1
- package/dist/components/Navigation.d.ts +72 -0
- package/dist/components/Navigation.d.ts.map +1 -0
- package/dist/components/PageNavigation.d.ts +48 -0
- package/dist/components/PageNavigation.d.ts.map +1 -0
- package/dist/components/PageTransition.d.ts +44 -1
- package/dist/components/PageTransition.d.ts.map +1 -1
- package/dist/components/Pagination.d.ts +52 -1
- package/dist/components/Pagination.d.ts.map +1 -1
- package/dist/components/Panel.d.ts +99 -0
- package/dist/components/Panel.d.ts.map +1 -0
- package/dist/components/Popover.d.ts +46 -1
- package/dist/components/Popover.d.ts.map +1 -1
- package/dist/components/Progress.d.ts +52 -3
- package/dist/components/Progress.d.ts.map +1 -1
- package/dist/components/Radio.d.ts +44 -2
- package/dist/components/Radio.d.ts.map +1 -1
- package/dist/components/ScrollArea.d.ts +53 -1
- package/dist/components/ScrollArea.d.ts.map +1 -1
- package/dist/components/ScrollIndicator.d.ts +43 -1
- package/dist/components/ScrollIndicator.d.ts.map +1 -1
- package/dist/components/ScrollProgress.d.ts +37 -0
- package/dist/components/ScrollProgress.d.ts.map +1 -1
- package/dist/components/ScrollToTop.d.ts +48 -11
- package/dist/components/ScrollToTop.d.ts.map +1 -1
- package/dist/components/SectionHeader.d.ts +42 -0
- package/dist/components/SectionHeader.d.ts.map +1 -0
- package/dist/components/Select.d.ts +59 -2
- package/dist/components/Select.d.ts.map +1 -1
- package/dist/components/Skeleton.d.ts +44 -1
- package/dist/components/Skeleton.d.ts.map +1 -1
- package/dist/components/Slider.d.ts +75 -0
- package/dist/components/Slider.d.ts.map +1 -0
- package/dist/components/Stack.d.ts +42 -1
- package/dist/components/Stack.d.ts.map +1 -1
- package/dist/components/StatsPanel.d.ts +72 -0
- package/dist/components/StatsPanel.d.ts.map +1 -0
- package/dist/components/Switch.d.ts +48 -2
- package/dist/components/Switch.d.ts.map +1 -1
- package/dist/components/Table.d.ts +206 -0
- package/dist/components/Table.d.ts.map +1 -0
- package/dist/components/Tabs.d.ts +123 -10
- package/dist/components/Tabs.d.ts.map +1 -1
- package/dist/components/Textarea.d.ts +48 -2
- package/dist/components/Textarea.d.ts.map +1 -1
- package/dist/components/ThemeProvider.d.ts +67 -2
- package/dist/components/ThemeProvider.d.ts.map +1 -1
- package/dist/components/ThemeToggle.d.ts +44 -0
- package/dist/components/ThemeToggle.d.ts.map +1 -1
- package/dist/components/Toast.d.ts +75 -1
- package/dist/components/Toast.d.ts.map +1 -1
- package/dist/components/Toggle.d.ts +62 -0
- package/dist/components/Toggle.d.ts.map +1 -0
- package/dist/components/Tooltip.d.ts +48 -1
- package/dist/components/Tooltip.d.ts.map +1 -1
- package/dist/components/Upload.d.ts +87 -0
- package/dist/components/Upload.d.ts.map +1 -0
- package/dist/components/advanced/AdvancedPageTransition.d.ts +25 -0
- package/dist/components/advanced/AdvancedPageTransition.d.ts.map +1 -0
- package/dist/components/advanced/index.d.ts +4 -0
- package/dist/components/advanced/index.d.ts.map +1 -0
- package/dist/components/advanced/usePageTransition.d.ts +33 -0
- package/dist/components/advanced/usePageTransition.d.ts.map +1 -0
- package/dist/components/advanced/usePageTransitionManager.d.ts +44 -0
- package/dist/components/advanced/usePageTransitionManager.d.ts.map +1 -0
- package/dist/components/dashboard/ActivityFeed.d.ts +87 -0
- package/dist/components/dashboard/ActivityFeed.d.ts.map +1 -0
- package/dist/components/dashboard/BarChart.d.ts +82 -0
- package/dist/components/dashboard/BarChart.d.ts.map +1 -0
- package/dist/components/dashboard/DashboardGrid.d.ts +44 -0
- package/dist/components/dashboard/DashboardGrid.d.ts.map +1 -0
- package/dist/components/dashboard/DashboardSidebar.d.ts +105 -0
- package/dist/components/dashboard/DashboardSidebar.d.ts.map +1 -0
- package/dist/components/dashboard/DashboardToolbar.d.ts +120 -0
- package/dist/components/dashboard/DashboardToolbar.d.ts.map +1 -0
- package/dist/components/dashboard/EmptyState.d.ts +61 -0
- package/dist/components/dashboard/EmptyState.d.ts.map +1 -0
- package/dist/components/dashboard/MembershipBadge.d.ts +45 -0
- package/dist/components/dashboard/MembershipBadge.d.ts.map +1 -0
- package/dist/components/dashboard/MerchantList.d.ts +98 -0
- package/dist/components/dashboard/MerchantList.d.ts.map +1 -0
- package/dist/components/dashboard/MetricCard.d.ts +75 -0
- package/dist/components/dashboard/MetricCard.d.ts.map +1 -0
- package/dist/components/dashboard/MiniBarChart.d.ts +60 -0
- package/dist/components/dashboard/MiniBarChart.d.ts.map +1 -0
- package/dist/components/dashboard/NotificationCard.d.ts +89 -0
- package/dist/components/dashboard/NotificationCard.d.ts.map +1 -0
- package/dist/components/dashboard/ProfileCard.d.ts +82 -0
- package/dist/components/dashboard/ProfileCard.d.ts.map +1 -0
- package/dist/components/dashboard/ProgressCard.d.ts +71 -0
- package/dist/components/dashboard/ProgressCard.d.ts.map +1 -0
- package/dist/components/dashboard/QuickActionCard.d.ts +63 -0
- package/dist/components/dashboard/QuickActionCard.d.ts.map +1 -0
- package/dist/components/dashboard/RoutingBreakdownCard.d.ts +88 -0
- package/dist/components/dashboard/RoutingBreakdownCard.d.ts.map +1 -0
- package/dist/components/dashboard/SettlementTimeline.d.ts +90 -0
- package/dist/components/dashboard/SettlementTimeline.d.ts.map +1 -0
- package/dist/components/dashboard/StatCard.d.ts +70 -0
- package/dist/components/dashboard/StatCard.d.ts.map +1 -0
- package/dist/components/dashboard/SummaryCard.d.ts +73 -0
- package/dist/components/dashboard/SummaryCard.d.ts.map +1 -0
- package/dist/components/dashboard/TransactionDetailDrawer.d.ts +183 -0
- package/dist/components/dashboard/TransactionDetailDrawer.d.ts.map +1 -0
- package/dist/components/dashboard/TransactionsTable.d.ts +137 -0
- package/dist/components/dashboard/TransactionsTable.d.ts.map +1 -0
- package/dist/components/dashboard/TrendChart.d.ts +75 -0
- package/dist/components/dashboard/TrendChart.d.ts.map +1 -0
- package/dist/components/dashboard/index.d.ts +41 -0
- package/dist/components/dashboard/index.d.ts.map +1 -0
- package/dist/components/scrollbar/scrollbar.d.ts +12 -0
- package/dist/components/scrollbar/scrollbar.d.ts.map +1 -0
- package/dist/dashboard-QMssHf5j.d.mts +1801 -0
- package/dist/feedback.d.mts +103 -0
- package/dist/feedback.d.ts +21 -0
- package/dist/feedback.d.ts.map +1 -0
- package/dist/feedback.js +2 -0
- package/dist/feedback.js.map +1 -0
- package/dist/feedback.mjs +2 -0
- package/dist/feedback.mjs.map +1 -0
- package/dist/form.d.mts +803 -0
- package/dist/form.d.ts +42 -0
- package/dist/form.d.ts.map +1 -0
- package/dist/form.js +2 -0
- package/dist/form.js.map +1 -0
- package/dist/form.mjs +2 -0
- package/dist/form.mjs.map +1 -0
- package/dist/hooks/useScrollToggle.d.ts +12 -0
- package/dist/hooks/useScrollToggle.d.ts.map +1 -0
- package/dist/icons-DoSGIez_.d.mts +135 -0
- package/dist/index.d.mts +3770 -0
- package/dist/index.d.ts +76 -38
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -49
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +37 -0
- package/dist/index.mjs.map +1 -0
- package/dist/lib/icon-aliases.d.ts +24 -0
- package/dist/lib/icon-aliases.d.ts.map +1 -0
- package/dist/lib/icon-names.d.ts +47 -0
- package/dist/lib/icon-names.d.ts.map +1 -0
- package/dist/lib/icon-providers.d.ts +559 -0
- package/dist/lib/icon-providers.d.ts.map +1 -0
- package/dist/lib/icons.d.ts +113 -24
- package/dist/lib/icons.d.ts.map +1 -1
- package/dist/lib/phosphor-icons.d.ts +6 -0
- package/dist/lib/phosphor-icons.d.ts.map +1 -0
- package/dist/lib/styles/colors.d.ts +131 -0
- package/dist/lib/styles/colors.d.ts.map +1 -0
- package/dist/lib/styles/index.d.ts +8 -0
- package/dist/lib/styles/index.d.ts.map +1 -0
- package/dist/lib/styles/utils.d.ts +87 -0
- package/dist/lib/styles/utils.d.ts.map +1 -0
- package/dist/lib/styles/variants.d.ts +79 -0
- package/dist/lib/styles/variants.d.ts.map +1 -0
- package/dist/lib/types/common.d.ts +80 -0
- package/dist/lib/types/common.d.ts.map +1 -0
- package/dist/lib/types/index.d.ts +6 -0
- package/dist/lib/types/index.d.ts.map +1 -0
- package/dist/lib/utils.d.ts +73 -1
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/navigation.d.mts +105 -0
- package/dist/navigation.d.ts +22 -0
- package/dist/navigation.d.ts.map +1 -0
- package/dist/navigation.js +2 -0
- package/dist/navigation.js.map +1 -0
- package/dist/navigation.mjs +2 -0
- package/dist/navigation.mjs.map +1 -0
- package/package.json +92 -25
- package/src/styles/toast.css +23 -0
- package/dist/components/Accordion.js +0 -84
- package/dist/components/Alert.js +0 -61
- package/dist/components/Avatar.js +0 -18
- package/dist/components/Badge.js +0 -15
- package/dist/components/BottomSheet.js +0 -96
- package/dist/components/Breadcrumb.js +0 -47
- package/dist/components/Button.js +0 -23
- package/dist/components/Card.js +0 -18
- package/dist/components/ChatMessage.js +0 -59
- package/dist/components/Checkbox.js +0 -30
- package/dist/components/Command.js +0 -119
- package/dist/components/ConfirmModal.js +0 -53
- package/dist/components/Container.js +0 -23
- package/dist/components/ContextMenu.js +0 -110
- package/dist/components/Divider.js +0 -39
- package/dist/components/Drawer.js +0 -79
- package/dist/components/Dropdown.js +0 -174
- package/dist/components/EmotionAnalysis.js +0 -40
- package/dist/components/EmotionButton.js +0 -16
- package/dist/components/EmotionMeter.js +0 -21
- package/dist/components/EmotionSelector.js +0 -46
- package/dist/components/Grid.js +0 -44
- package/dist/components/Icon.d.ts +0 -26
- package/dist/components/Icon.d.ts.map +0 -1
- package/dist/components/Icon.js +0 -48
- package/dist/components/Input.js +0 -25
- package/dist/components/LanguageToggle.js +0 -61
- package/dist/components/LoadingSpinner.js +0 -37
- package/dist/components/Menu.js +0 -122
- package/dist/components/Modal.js +0 -62
- package/dist/components/PageTransition.js +0 -39
- package/dist/components/Pagination.js +0 -87
- package/dist/components/Popover.js +0 -159
- package/dist/components/Progress.js +0 -51
- package/dist/components/Radio.js +0 -29
- package/dist/components/ScrollArea.js +0 -42
- package/dist/components/ScrollIndicator.js +0 -60
- package/dist/components/ScrollProgress.js +0 -39
- package/dist/components/ScrollToTop.js +0 -46
- package/dist/components/Select.js +0 -29
- package/dist/components/Skeleton.js +0 -71
- package/dist/components/Stack.js +0 -34
- package/dist/components/Switch.js +0 -29
- package/dist/components/Tabs.js +0 -117
- package/dist/components/Textarea.js +0 -31
- package/dist/components/ThemeProvider.js +0 -76
- package/dist/components/ThemeToggle.js +0 -49
- package/dist/components/Toast.js +0 -138
- package/dist/components/Tooltip.js +0 -102
- package/dist/lib/icons.js +0 -321
- package/dist/lib/utils.js +0 -5
package/dist/form.d.mts
ADDED
|
@@ -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 };
|