@hua-labs/ui 1.0.0 → 1.1.0-alpha.0.1
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 +891 -213
- 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-6NXF6ATP.mjs +2 -0
- package/dist/chunk-6NXF6ATP.mjs.map +1 -0
- package/dist/chunk-ACEKLG37.mjs +2 -0
- package/dist/chunk-ACEKLG37.mjs.map +1 -0
- package/dist/chunk-DMYT7RZ4.mjs +2 -0
- package/dist/chunk-DMYT7RZ4.mjs.map +1 -0
- package/dist/chunk-KHEJZ3U4.mjs +2 -0
- package/dist/chunk-KHEJZ3U4.mjs.map +1 -0
- package/dist/chunk-QXBMXCML.mjs +2 -0
- package/dist/chunk-QXBMXCML.mjs.map +1 -0
- package/dist/chunk-SGCVGEDR.mjs +2 -0
- package/dist/chunk-SGCVGEDR.mjs.map +1 -0
- package/dist/chunk-UUHAXGMO.mjs +2 -0
- package/dist/chunk-UUHAXGMO.mjs.map +1 -0
- package/dist/chunk-VPOFRDYL.mjs +2 -0
- package/dist/chunk-VPOFRDYL.mjs.map +1 -0
- package/dist/chunk-YY6ZBUVJ.mjs +2 -0
- package/dist/chunk-YY6ZBUVJ.mjs.map +1 -0
- package/dist/chunk-ZQAAB3P4.mjs +2 -0
- package/dist/chunk-ZQAAB3P4.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 +560 -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 +85 -19
- 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
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Form 컴포넌트의 props / Form component props
|
|
4
|
+
* @typedef {Object} FormProps
|
|
5
|
+
* @property {(e: React.FormEvent<HTMLFormElement>) => void} [onSubmit] - 폼 제출 핸들러 / Form submit handler
|
|
6
|
+
* @property {"default" | "glass"} [variant="default"] - Form 스타일 변형 / Form style variant
|
|
7
|
+
* @extends {React.FormHTMLAttributes<HTMLFormElement>}
|
|
8
|
+
*/
|
|
9
|
+
export interface FormProps extends React.FormHTMLAttributes<HTMLFormElement> {
|
|
10
|
+
onSubmit?: (e: React.FormEvent<HTMLFormElement>) => void;
|
|
11
|
+
variant?: "default" | "glass";
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* FormField 컴포넌트의 props / FormField component props
|
|
15
|
+
* @typedef {Object} FormFieldProps
|
|
16
|
+
* @property {string} [error] - 에러 메시지 / Error message
|
|
17
|
+
* @property {boolean} [required=false] - 필수 필드 여부 / Required field
|
|
18
|
+
* @extends {React.HTMLAttributes<HTMLDivElement>}
|
|
19
|
+
*/
|
|
20
|
+
export interface FormFieldProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
21
|
+
error?: string;
|
|
22
|
+
required?: boolean;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* FormGroup 컴포넌트의 props / FormGroup component props
|
|
26
|
+
* @typedef {Object} FormGroupProps
|
|
27
|
+
* @property {boolean} [inline=false] - 인라인 레이아웃 여부 / Inline layout
|
|
28
|
+
* @extends {React.HTMLAttributes<HTMLDivElement>}
|
|
29
|
+
*/
|
|
30
|
+
export interface FormGroupProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
31
|
+
inline?: boolean;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Form 컴포넌트 / Form component
|
|
35
|
+
*
|
|
36
|
+
* 폼 컨테이너 컴포넌트입니다.
|
|
37
|
+
* FormField, FormGroup과 함께 사용하여 구조화된 폼을 구성합니다.
|
|
38
|
+
*
|
|
39
|
+
* Form container component.
|
|
40
|
+
* Used with FormField and FormGroup to create structured forms.
|
|
41
|
+
*
|
|
42
|
+
* @component
|
|
43
|
+
* @example
|
|
44
|
+
* // 기본 사용 / Basic usage
|
|
45
|
+
* <Form onSubmit={(e) => { e.preventDefault(); console.log('제출') }}>
|
|
46
|
+
* <FormField>
|
|
47
|
+
* <Label>이름</Label>
|
|
48
|
+
* <Input />
|
|
49
|
+
* </FormField>
|
|
50
|
+
* </Form>
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* // Glass 스타일 / Glass style
|
|
54
|
+
* <Form variant="glass" onSubmit={handleSubmit}>
|
|
55
|
+
* <FormGroup>
|
|
56
|
+
* <FormField>
|
|
57
|
+
* <Label>이메일</Label>
|
|
58
|
+
* <Input type="email" />
|
|
59
|
+
* </FormField>
|
|
60
|
+
* </FormGroup>
|
|
61
|
+
* </Form>
|
|
62
|
+
*
|
|
63
|
+
* @param {FormProps} props - Form 컴포넌트의 props / Form component props
|
|
64
|
+
* @param {React.Ref<HTMLFormElement>} ref - form 요소 ref / form element ref
|
|
65
|
+
* @returns {JSX.Element} Form 컴포넌트 / Form component
|
|
66
|
+
*/
|
|
67
|
+
declare const Form: React.ForwardRefExoticComponent<FormProps & React.RefAttributes<HTMLFormElement>>;
|
|
68
|
+
/**
|
|
69
|
+
* FormField 컴포넌트 / FormField component
|
|
70
|
+
*
|
|
71
|
+
* 폼 필드를 감싸는 컨테이너입니다.
|
|
72
|
+
* 에러 메시지를 표시하고 필수 필드 표시를 지원합니다.
|
|
73
|
+
*
|
|
74
|
+
* Container that wraps a form field.
|
|
75
|
+
* Displays error messages and supports required field indication.
|
|
76
|
+
*
|
|
77
|
+
* @component
|
|
78
|
+
* @example
|
|
79
|
+
* <FormField error="이 필드는 필수입니다" required>
|
|
80
|
+
* <Label>이름</Label>
|
|
81
|
+
* <Input />
|
|
82
|
+
* </FormField>
|
|
83
|
+
*
|
|
84
|
+
* @param {FormFieldProps} props - FormField 컴포넌트의 props / FormField component props
|
|
85
|
+
* @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
|
|
86
|
+
* @returns {JSX.Element} FormField 컴포넌트 / FormField component
|
|
87
|
+
*/
|
|
88
|
+
declare const FormField: React.ForwardRefExoticComponent<FormFieldProps & React.RefAttributes<HTMLDivElement>>;
|
|
89
|
+
/**
|
|
90
|
+
* FormGroup 컴포넌트 / FormGroup component
|
|
91
|
+
*
|
|
92
|
+
* 여러 폼 필드를 그룹화하는 컨테이너입니다.
|
|
93
|
+
* Container that groups multiple form fields.
|
|
94
|
+
*
|
|
95
|
+
* @component
|
|
96
|
+
* @example
|
|
97
|
+
* <FormGroup inline>
|
|
98
|
+
* <FormField>
|
|
99
|
+
* <Label>이름</Label>
|
|
100
|
+
* <Input />
|
|
101
|
+
* </FormField>
|
|
102
|
+
* <FormField>
|
|
103
|
+
* <Label>성</Label>
|
|
104
|
+
* <Input />
|
|
105
|
+
* </FormField>
|
|
106
|
+
* </FormGroup>
|
|
107
|
+
*
|
|
108
|
+
* @param {FormGroupProps} props - FormGroup 컴포넌트의 props / FormGroup component props
|
|
109
|
+
* @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
|
|
110
|
+
* @returns {JSX.Element} FormGroup 컴포넌트 / FormGroup component
|
|
111
|
+
*/
|
|
112
|
+
declare const FormGroup: React.ForwardRefExoticComponent<FormGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
113
|
+
export { Form, FormField, FormGroup };
|
|
114
|
+
//# sourceMappingURL=Form.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Form.d.ts","sourceRoot":"","sources":["../../src/components/Form.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB;;;;;;GAMG;AACH,MAAM,WAAW,SAAU,SAAQ,KAAK,CAAC,kBAAkB,CAAC,eAAe,CAAC;IAC1E,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,IAAI,CAAA;IACxD,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAA;CAC9B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC1E,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,QAAA,MAAM,IAAI,mFA6BT,CAAA;AAGD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,QAAA,MAAM,SAAS,uFA6Ed,CAAA;AAGD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,QAAA,MAAM,SAAS,uFAoBd,CAAA;AAGD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,CAAA"}
|
|
@@ -1,4 +1,14 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Grid 컴포넌트의 props
|
|
4
|
+
* @typedef {Object} GridProps
|
|
5
|
+
* @property {1|2|3|4|5|6|7|8|9|10|11|12} [cols=1] - 그리드 열 개수
|
|
6
|
+
* @property {"none" | "sm" | "md" | "lg" | "xl"} [gap="md"] - 그리드 아이템 간 간격
|
|
7
|
+
* @property {"none" | "sm" | "md" | "lg" | "xl"} [gapX] - 가로 간격 (gap보다 우선)
|
|
8
|
+
* @property {"none" | "sm" | "md" | "lg" | "xl"} [gapY] - 세로 간격
|
|
9
|
+
* @property {boolean} [responsive=true] - 반응형 그리드 활성화 (모바일: 1열, 태블릿: 2열, 데스크톱: 지정 열)
|
|
10
|
+
* @extends {React.HTMLAttributes<HTMLDivElement>}
|
|
11
|
+
*/
|
|
2
12
|
export interface GridProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
13
|
cols?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
|
|
4
14
|
gap?: "none" | "sm" | "md" | "lg" | "xl";
|
|
@@ -6,6 +16,37 @@ export interface GridProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
6
16
|
gapY?: "none" | "sm" | "md" | "lg" | "xl";
|
|
7
17
|
responsive?: boolean;
|
|
8
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Grid 컴포넌트
|
|
21
|
+
*
|
|
22
|
+
* CSS Grid를 사용한 그리드 레이아웃 컴포넌트입니다.
|
|
23
|
+
* 반응형 그리드를 지원하여 모바일부터 데스크톱까지 최적화된 레이아웃을 제공합니다.
|
|
24
|
+
*
|
|
25
|
+
* @component
|
|
26
|
+
* @example
|
|
27
|
+
* // 기본 3열 그리드
|
|
28
|
+
* <Grid cols={3} gap="md">
|
|
29
|
+
* <div>아이템 1</div>
|
|
30
|
+
* <div>아이템 2</div>
|
|
31
|
+
* <div>아이템 3</div>
|
|
32
|
+
* </Grid>
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* // 가로/세로 간격 분리
|
|
36
|
+
* <Grid cols={4} gapX="lg" gapY="sm">
|
|
37
|
+
* {items.map(item => <div key={item.id}>{item.content}</div>)}
|
|
38
|
+
* </Grid>
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* // 반응형 비활성화 (고정 그리드)
|
|
42
|
+
* <Grid cols={6} responsive={false} gap="lg">
|
|
43
|
+
* <div>고정 6열</div>
|
|
44
|
+
* </Grid>
|
|
45
|
+
*
|
|
46
|
+
* @param {GridProps} props - Grid 컴포넌트의 props
|
|
47
|
+
* @param {React.Ref<HTMLDivElement>} ref - div 요소 ref
|
|
48
|
+
* @returns {JSX.Element} Grid 컴포넌트
|
|
49
|
+
*/
|
|
9
50
|
declare const Grid: React.ForwardRefExoticComponent<GridProps & React.RefAttributes<HTMLDivElement>>;
|
|
10
51
|
export { Grid };
|
|
11
52
|
//# sourceMappingURL=Grid.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Grid.d.ts","sourceRoot":"","sources":["../../src/components/Grid.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"Grid.d.ts","sourceRoot":"","sources":["../../src/components/Grid.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB;;;;;;;;;GASG;AACH,MAAM,WAAW,SAAU,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACrE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;IACvD,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACxC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACzC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACzC,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,QAAA,MAAM,IAAI,kFA+DT,CAAA;AAGD,OAAO,EAAE,IAAI,EAAE,CAAA"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* HeroSection 컴포넌트의 props / HeroSection component props
|
|
4
|
+
* @typedef {Object} HeroSectionProps
|
|
5
|
+
* @property {string} title - 히어로 섹션 제목 / Hero section title
|
|
6
|
+
* @property {string} [subtitle] - 히어로 섹션 부제목 / Hero section subtitle
|
|
7
|
+
* @property {string} description - 히어로 섹션 설명 / Hero section description
|
|
8
|
+
* @property {Object} [primaryAction] - 주요 액션 버튼 / Primary action button
|
|
9
|
+
* @property {string} primaryAction.label - 버튼 라벨 / Button label
|
|
10
|
+
* @property {string} primaryAction.href - 버튼 링크 / Button link
|
|
11
|
+
* @property {string} [primaryAction.icon] - 버튼 아이콘 / Button icon
|
|
12
|
+
* @property {Object} [secondaryAction] - 보조 액션 버튼 / Secondary action button
|
|
13
|
+
* @property {string} secondaryAction.label - 버튼 라벨 / Button label
|
|
14
|
+
* @property {string} secondaryAction.href - 버튼 링크 / Button link
|
|
15
|
+
* @property {string} [secondaryAction.icon] - 버튼 아이콘 / Button icon
|
|
16
|
+
* @property {"default" | "gradient" | "glass" | "neon"} [variant="default"] - HeroSection 스타일 변형 / HeroSection style variant
|
|
17
|
+
* @property {"none" | "gradient" | "particles" | "video"} [background="gradient"] - 배경 타입 / Background type
|
|
18
|
+
* @property {string} [customBackground] - 커스텀 배경 / Custom background
|
|
19
|
+
* @property {"sm" | "md" | "lg" | "xl"} [size="lg"] - HeroSection 크기 / HeroSection size
|
|
20
|
+
* @extends {React.HTMLAttributes<HTMLElement>}
|
|
21
|
+
*/
|
|
22
|
+
export interface HeroSectionProps extends React.HTMLAttributes<HTMLElement> {
|
|
23
|
+
title: string;
|
|
24
|
+
subtitle?: string;
|
|
25
|
+
description: string;
|
|
26
|
+
primaryAction?: {
|
|
27
|
+
label: string;
|
|
28
|
+
href: string;
|
|
29
|
+
icon?: string;
|
|
30
|
+
};
|
|
31
|
+
secondaryAction?: {
|
|
32
|
+
label: string;
|
|
33
|
+
href: string;
|
|
34
|
+
icon?: string;
|
|
35
|
+
};
|
|
36
|
+
variant?: "default" | "gradient" | "glass" | "neon";
|
|
37
|
+
background?: "none" | "gradient" | "particles" | "video";
|
|
38
|
+
customBackground?: string;
|
|
39
|
+
size?: "sm" | "md" | "lg" | "xl";
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* HeroSection 컴포넌트 / HeroSection component
|
|
43
|
+
*
|
|
44
|
+
* 랜딩 페이지의 히어로 섹션을 제공하는 컴포넌트입니다.
|
|
45
|
+
* 제목, 설명, 액션 버튼을 포함하며, 다양한 배경 효과를 지원합니다.
|
|
46
|
+
*
|
|
47
|
+
* Component that provides hero section for landing pages.
|
|
48
|
+
* Includes title, description, and action buttons, supports various background effects.
|
|
49
|
+
*
|
|
50
|
+
* @component
|
|
51
|
+
* @example
|
|
52
|
+
* // 기본 사용 / Basic usage
|
|
53
|
+
* <HeroSection
|
|
54
|
+
* title="환영합니다"
|
|
55
|
+
* description="우리 서비스를 소개합니다"
|
|
56
|
+
* primaryAction={{ label: "시작하기", href: "/start" }}
|
|
57
|
+
* />
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* // Gradient 배경, 두 개의 액션 버튼 / Gradient background, two action buttons
|
|
61
|
+
* <HeroSection
|
|
62
|
+
* title="혁신적인 솔루션"
|
|
63
|
+
* subtitle="차세대 플랫폼"
|
|
64
|
+
* description="최신 기술로 만든 플랫폼"
|
|
65
|
+
* variant="gradient"
|
|
66
|
+
* background="gradient"
|
|
67
|
+
* primaryAction={{ label: "시작하기", href: "/start", icon: "arrowRight" }}
|
|
68
|
+
* secondaryAction={{ label: "더 알아보기", href: "/about" }}
|
|
69
|
+
* />
|
|
70
|
+
*
|
|
71
|
+
* @param {HeroSectionProps} props - HeroSection 컴포넌트의 props / HeroSection component props
|
|
72
|
+
* @param {React.Ref<HTMLElement>} ref - section 요소 ref / section element ref
|
|
73
|
+
* @returns {JSX.Element} HeroSection 컴포넌트 / HeroSection component
|
|
74
|
+
*/
|
|
75
|
+
declare const HeroSection: React.ForwardRefExoticComponent<HeroSectionProps & React.RefAttributes<HTMLElement>>;
|
|
76
|
+
export { HeroSection };
|
|
77
|
+
//# sourceMappingURL=HeroSection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeroSection.d.ts","sourceRoot":"","sources":["../../src/components/HeroSection.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IACzE,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE;QACd,KAAK,EAAE,MAAM,CAAA;QACb,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;IACD,eAAe,CAAC,EAAE;QAChB,KAAK,EAAE,MAAM,CAAA;QACb,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;IACD,OAAO,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAAA;IACnD,UAAU,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,CAAA;IACxD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,QAAA,MAAM,WAAW,sFAgKhB,CAAA;AAID,OAAO,EAAE,WAAW,EAAE,CAAA"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { emotionIcons, statusIcons } from '../../lib/icons';
|
|
3
|
+
import { type IconSet } from './IconProvider';
|
|
4
|
+
import { type PhosphorWeight } from './icon-store';
|
|
5
|
+
import type { AllIconName } from '../../lib/icon-names';
|
|
6
|
+
/**
|
|
7
|
+
* Icon 컴포넌트 Props
|
|
8
|
+
*
|
|
9
|
+
* Icon component props interface.
|
|
10
|
+
*
|
|
11
|
+
* @interface IconProps
|
|
12
|
+
*/
|
|
13
|
+
export interface IconProps {
|
|
14
|
+
/** 아이콘 이름 / Icon name */
|
|
15
|
+
name: AllIconName;
|
|
16
|
+
/** 아이콘 크기 (숫자 또는 문자열) / Icon size (number or string) */
|
|
17
|
+
size?: number | string;
|
|
18
|
+
/** 추가 CSS 클래스 / Additional CSS classes */
|
|
19
|
+
className?: string;
|
|
20
|
+
/** 감정 아이콘 타입 / Emotion icon type */
|
|
21
|
+
emotion?: keyof typeof emotionIcons;
|
|
22
|
+
/** 상태 아이콘 타입 / Status icon type */
|
|
23
|
+
status?: keyof typeof statusIcons;
|
|
24
|
+
/** 아이콘 프로바이더 오버라이드 (전역 설정 무시) / Icon provider override (ignores global config) */
|
|
25
|
+
provider?: IconSet;
|
|
26
|
+
/** 부드러운 애니메이션 효과 / Smooth animation effect */
|
|
27
|
+
animated?: boolean;
|
|
28
|
+
/** 펄스 애니메이션 / Pulse animation */
|
|
29
|
+
pulse?: boolean;
|
|
30
|
+
/** 회전 애니메이션 / Spin animation */
|
|
31
|
+
spin?: boolean;
|
|
32
|
+
/** 바운스 애니메이션 / Bounce animation */
|
|
33
|
+
bounce?: boolean;
|
|
34
|
+
/** 색상 변형 / Color variant */
|
|
35
|
+
variant?: 'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'muted';
|
|
36
|
+
/** Phosphor 아이콘 weight 오버라이드 / Phosphor icon weight override */
|
|
37
|
+
weight?: PhosphorWeight;
|
|
38
|
+
/** 스크린 리더용 라벨 (의미 있는 아이콘인 경우) / Screen reader label (for meaningful icons) */
|
|
39
|
+
'aria-label'?: string;
|
|
40
|
+
/** 장식용 아이콘인 경우 true (스크린 리더에서 숨김) / Set to true for decorative icons (hidden from screen readers) */
|
|
41
|
+
'aria-hidden'?: boolean;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Icon 컴포넌트
|
|
45
|
+
*
|
|
46
|
+
* 다중 아이콘 라이브러리(Lucide, Phosphor, Untitled)를 지원하는 통합 아이콘 컴포넌트입니다.
|
|
47
|
+
* IconProvider를 통해 전역 설정을 관리할 수 있으며, 개별 아이콘에서도 설정을 오버라이드할 수 있습니다.
|
|
48
|
+
*
|
|
49
|
+
* Icon component that supports multiple icon libraries (Lucide, Phosphor, Untitled).
|
|
50
|
+
* Global settings can be managed through IconProvider, and individual icons can override settings.
|
|
51
|
+
*
|
|
52
|
+
* @component
|
|
53
|
+
* @example
|
|
54
|
+
* ```tsx
|
|
55
|
+
* // 기본 사용 / Basic usage
|
|
56
|
+
* <Icon name="heart" />
|
|
57
|
+
*
|
|
58
|
+
* // 크기 지정 / Specify size
|
|
59
|
+
* <Icon name="user" size={24} />
|
|
60
|
+
*
|
|
61
|
+
* // 색상 변형 / Color variant
|
|
62
|
+
* <Icon name="check" variant="success" />
|
|
63
|
+
*
|
|
64
|
+
* // 애니메이션 / Animation
|
|
65
|
+
* <Icon name="loader" spin />
|
|
66
|
+
* <Icon name="heart" pulse />
|
|
67
|
+
*
|
|
68
|
+
* // 접근성 / Accessibility
|
|
69
|
+
* <Icon name="search" aria-label="검색" />
|
|
70
|
+
* <Icon name="decorative-icon" aria-hidden />
|
|
71
|
+
*
|
|
72
|
+
* // 감정 아이콘 / Emotion icon
|
|
73
|
+
* <Icon emotion="happy" />
|
|
74
|
+
*
|
|
75
|
+
* // 상태 아이콘 / Status icon
|
|
76
|
+
* <Icon status="loading" spin />
|
|
77
|
+
* ```
|
|
78
|
+
*
|
|
79
|
+
* @param props - Icon 컴포넌트 props / Icon component props
|
|
80
|
+
* @returns Icon 컴포넌트 / Icon component
|
|
81
|
+
*/
|
|
82
|
+
declare const IconComponent: React.ForwardRefExoticComponent<IconProps & React.RefAttributes<HTMLSpanElement>>;
|
|
83
|
+
export declare const Icon: typeof IconComponent;
|
|
84
|
+
/**
|
|
85
|
+
* EmotionIcon 컴포넌트
|
|
86
|
+
*
|
|
87
|
+
* 감정을 표현하는 아이콘 컴포넌트입니다.
|
|
88
|
+
* Icon component for expressing emotions.
|
|
89
|
+
*
|
|
90
|
+
* @component
|
|
91
|
+
* @example
|
|
92
|
+
* ```tsx
|
|
93
|
+
* <EmotionIcon emotion="happy" />
|
|
94
|
+
* <EmotionIcon emotion="sad" size={24} />
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
export declare const EmotionIcon: React.ForwardRefExoticComponent<Omit<IconProps, "name"> & {
|
|
98
|
+
emotion: keyof typeof emotionIcons;
|
|
99
|
+
} & React.RefAttributes<HTMLSpanElement>>;
|
|
100
|
+
/**
|
|
101
|
+
* StatusIcon 컴포넌트
|
|
102
|
+
*
|
|
103
|
+
* 상태를 표현하는 아이콘 컴포넌트입니다.
|
|
104
|
+
* Icon component for expressing status.
|
|
105
|
+
*
|
|
106
|
+
* @component
|
|
107
|
+
* @example
|
|
108
|
+
* ```tsx
|
|
109
|
+
* <StatusIcon status="loading" spin />
|
|
110
|
+
* <StatusIcon status="success" variant="success" />
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
export declare const StatusIcon: React.ForwardRefExoticComponent<Omit<IconProps, "name"> & {
|
|
114
|
+
status: keyof typeof statusIcons;
|
|
115
|
+
} & React.RefAttributes<HTMLSpanElement>>;
|
|
116
|
+
/**
|
|
117
|
+
* LoadingIcon 컴포넌트
|
|
118
|
+
*
|
|
119
|
+
* 로딩 상태를 표시하는 전용 아이콘 컴포넌트입니다.
|
|
120
|
+
* Dedicated icon component for displaying loading status.
|
|
121
|
+
*
|
|
122
|
+
* @component
|
|
123
|
+
* @example
|
|
124
|
+
* ```tsx
|
|
125
|
+
* <LoadingIcon />
|
|
126
|
+
* <LoadingIcon size={32} />
|
|
127
|
+
* ```
|
|
128
|
+
*/
|
|
129
|
+
export declare const LoadingIcon: React.ForwardRefExoticComponent<Omit<IconProps, "name" | "status"> & React.RefAttributes<HTMLDivElement>>;
|
|
130
|
+
/**
|
|
131
|
+
* SuccessIcon 컴포넌트
|
|
132
|
+
*
|
|
133
|
+
* 성공 상태를 표시하는 전용 아이콘 컴포넌트입니다.
|
|
134
|
+
* Dedicated icon component for displaying success status.
|
|
135
|
+
*
|
|
136
|
+
* @component
|
|
137
|
+
* @example
|
|
138
|
+
* ```tsx
|
|
139
|
+
* <SuccessIcon />
|
|
140
|
+
* <SuccessIcon size={24} />
|
|
141
|
+
* ```
|
|
142
|
+
*/
|
|
143
|
+
export declare const SuccessIcon: React.ForwardRefExoticComponent<Omit<IconProps, "name" | "status"> & React.RefAttributes<HTMLDivElement>>;
|
|
144
|
+
/**
|
|
145
|
+
* ErrorIcon 컴포넌트
|
|
146
|
+
*
|
|
147
|
+
* 에러 상태를 표시하는 전용 아이콘 컴포넌트입니다.
|
|
148
|
+
* Dedicated icon component for displaying error status.
|
|
149
|
+
*
|
|
150
|
+
* @component
|
|
151
|
+
* @example
|
|
152
|
+
* ```tsx
|
|
153
|
+
* <ErrorIcon />
|
|
154
|
+
* <ErrorIcon size={24} />
|
|
155
|
+
* ```
|
|
156
|
+
*/
|
|
157
|
+
export declare const ErrorIcon: React.ForwardRefExoticComponent<Omit<IconProps, "name" | "status"> & React.RefAttributes<HTMLDivElement>>;
|
|
158
|
+
export {};
|
|
159
|
+
//# sourceMappingURL=Icon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../../src/components/Icon/Icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,EAAmB,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAG5E,OAAO,EAAkB,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAC7D,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAEvD;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACxB,yBAAyB;IACzB,IAAI,EAAE,WAAW,CAAA;IACjB,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,OAAO,YAAY,CAAA;IACnC,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,OAAO,WAAW,CAAA;IACjC,kFAAkF;IAClF,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,iCAAiC;IACjC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,gCAAgC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,mCAAmC;IACnC,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAA;IACzF,gEAAgE;IAChE,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,qGAAqG;IACrG,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,QAAA,MAAM,aAAa,mFAyLjB,CAAA;AA+BF,eAAO,MAAM,IAAI,EAAmB,OAAO,aAAa,CAAA;AAIxD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,WAAW;aAA0E,MAAM,OAAO,YAAY;yCAE1H,CAAA;AAID;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,UAAU;YAAyE,MAAM,OAAO,WAAW;yCAEvH,CAAA;AAID;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,WAAW,2GAIvB,CAAA;AAID;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,WAAW,2GAIvB,CAAA;AAID;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,SAAS,2GAIrB,CAAA"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IconProvider - Icon 시스템 전역 설정 Provider
|
|
3
|
+
*
|
|
4
|
+
* React Context를 사용하여 전역 아이콘 설정을 제공합니다.
|
|
5
|
+
* 서비스 레벨에서 Zustand 등으로 상태관리 후 props로 전달 가능합니다.
|
|
6
|
+
*
|
|
7
|
+
* IconProvider - Global Icon Settings Provider
|
|
8
|
+
*
|
|
9
|
+
* Provides global icon settings using React Context API.
|
|
10
|
+
* Can be integrated with state management (e.g., Zustand) at the service level.
|
|
11
|
+
*/
|
|
12
|
+
import React from 'react';
|
|
13
|
+
import { type IconConfig, type IconSet, type PhosphorWeight } from './icon-store';
|
|
14
|
+
/**
|
|
15
|
+
* IconProvider 컴포넌트 Props
|
|
16
|
+
*
|
|
17
|
+
* IconProvider component props interface.
|
|
18
|
+
*
|
|
19
|
+
* @interface IconProviderProps
|
|
20
|
+
*/
|
|
21
|
+
export interface IconProviderProps {
|
|
22
|
+
/** 아이콘 세트 (lucide, phosphor, untitled) / Icon set (lucide, phosphor, untitled) */
|
|
23
|
+
set?: IconSet;
|
|
24
|
+
/** Phosphor 아이콘 weight (thin, light, regular, bold, duotone, fill) / Phosphor icon weight */
|
|
25
|
+
weight?: PhosphorWeight;
|
|
26
|
+
/** 기본 아이콘 크기 / Default icon size */
|
|
27
|
+
size?: number;
|
|
28
|
+
/** 기본 아이콘 색상 / Default icon color */
|
|
29
|
+
color?: string;
|
|
30
|
+
/** Lucide/Untitled 아이콘 stroke width / Lucide/Untitled icon stroke width */
|
|
31
|
+
strokeWidth?: number;
|
|
32
|
+
/** 자식 컴포넌트 / Child components */
|
|
33
|
+
children: React.ReactNode;
|
|
34
|
+
}
|
|
35
|
+
interface IconContextValue extends IconConfig {
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* IconProvider 컴포넌트
|
|
39
|
+
*
|
|
40
|
+
* 전역 아이콘 설정을 Context로 제공합니다.
|
|
41
|
+
* 서비스에서 Zustand로 관리한 값을 props로 전달할 수 있습니다.
|
|
42
|
+
*
|
|
43
|
+
* IconProvider component
|
|
44
|
+
*
|
|
45
|
+
* Provides global icon settings through Context API.
|
|
46
|
+
* Can receive values managed by Zustand at the service level.
|
|
47
|
+
*
|
|
48
|
+
* @component
|
|
49
|
+
* @example
|
|
50
|
+
* ```tsx
|
|
51
|
+
* // 기본 사용 / Basic usage
|
|
52
|
+
* <IconProvider set="phosphor" weight="regular" size={20}>
|
|
53
|
+
* <App />
|
|
54
|
+
* </IconProvider>
|
|
55
|
+
*
|
|
56
|
+
* // Zustand와 함께 사용 / With Zustand
|
|
57
|
+
* const iconConfig = useIconStore(state => state.iconConfig)
|
|
58
|
+
* <IconProvider {...iconConfig}>
|
|
59
|
+
* <App />
|
|
60
|
+
* </IconProvider>
|
|
61
|
+
*
|
|
62
|
+
* // Lucide 아이콘 사용 / Using Lucide icons
|
|
63
|
+
* <IconProvider set="lucide" size={24} strokeWidth={1.5}>
|
|
64
|
+
* <App />
|
|
65
|
+
* </IconProvider>
|
|
66
|
+
* ```
|
|
67
|
+
*
|
|
68
|
+
* @param props - IconProvider 컴포넌트 props / IconProvider component props
|
|
69
|
+
* @returns IconProvider 컴포넌트 / IconProvider component
|
|
70
|
+
*/
|
|
71
|
+
export declare function IconProvider({ set, weight, size, color, strokeWidth, children, }: IconProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
72
|
+
/**
|
|
73
|
+
* useIconContext Hook
|
|
74
|
+
*
|
|
75
|
+
* Icon Context를 사용하는 Hook입니다.
|
|
76
|
+
* Icon 컴포넌트 내부에서 사용됩니다.
|
|
77
|
+
*
|
|
78
|
+
* Hook to use Icon Context.
|
|
79
|
+
* Used internally by Icon component.
|
|
80
|
+
*
|
|
81
|
+
* @returns Icon 설정 값 / Icon configuration value
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```tsx
|
|
85
|
+
* // Icon 컴포넌트 내부에서 사용 / Used inside Icon component
|
|
86
|
+
* const config = useIconContext()
|
|
87
|
+
* const iconSet = config.set
|
|
88
|
+
* const iconSize = config.size
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
export declare function useIconContext(): IconContextValue;
|
|
92
|
+
export type { IconSet, PhosphorWeight, IconConfig } from './icon-store';
|
|
93
|
+
export { defaultIconConfig, getDefaultStrokeWidth } from './icon-store';
|
|
94
|
+
//# sourceMappingURL=IconProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IconProvider.d.ts","sourceRoot":"","sources":["../../../src/components/Icon/IconProvider.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AAEH,OAAO,KAAoC,MAAM,OAAO,CAAA;AACxD,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,OAAO,EAAE,KAAK,cAAc,EAAqB,MAAM,cAAc,CAAA;AAEpG;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,kFAAkF;IAClF,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,6FAA6F;IAC7F,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iCAAiC;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B;AAED,UAAU,gBAAiB,SAAQ,UAAU;CAAG;AAIhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,YAAY,CAAC,EAC3B,GAA2B,EAC3B,MAAiC,EACjC,IAA6B,EAC7B,KAA+B,EAC/B,WAA2C,EAC3C,QAAQ,GACT,EAAE,iBAAiB,2CAcnB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,IAAI,gBAAgB,CAEjD;AAGD,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACvE,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Icon Config Types
|
|
3
|
+
*
|
|
4
|
+
* Icon 시스템의 설정 타입 정의
|
|
5
|
+
* 상태관리는 서비스 레벨에서 관리 (Zustand 등)
|
|
6
|
+
*/
|
|
7
|
+
export type IconSet = 'lucide' | 'phosphor' | 'untitled';
|
|
8
|
+
export type PhosphorWeight = 'thin' | 'light' | 'regular' | 'bold' | 'duotone' | 'fill';
|
|
9
|
+
export interface IconConfig {
|
|
10
|
+
set: IconSet;
|
|
11
|
+
weight: PhosphorWeight;
|
|
12
|
+
size: number;
|
|
13
|
+
color: string;
|
|
14
|
+
strokeWidth?: number;
|
|
15
|
+
}
|
|
16
|
+
export declare const defaultIconConfig: IconConfig;
|
|
17
|
+
/**
|
|
18
|
+
* 세트별 기본 strokeWidth
|
|
19
|
+
*/
|
|
20
|
+
export declare const getDefaultStrokeWidth: (set: IconSet) => number;
|
|
21
|
+
//# sourceMappingURL=icon-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon-store.d.ts","sourceRoot":"","sources":["../../../src/components/Icon/icon-store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAA;AAExD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAA;AAEvF,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,OAAO,CAAA;IACZ,MAAM,EAAE,cAAc,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,eAAO,MAAM,iBAAiB,EAAE,UAM/B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAAI,KAAK,OAAO,KAAG,MAWpD,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Icon Component Exports
|
|
3
|
+
*/
|
|
4
|
+
export { Icon, EmotionIcon, StatusIcon, LoadingIcon, SuccessIcon, ErrorIcon } from './Icon';
|
|
5
|
+
export type { IconProps } from './Icon';
|
|
6
|
+
export { IconProvider, useIconContext } from './IconProvider';
|
|
7
|
+
export type { IconProviderProps } from './IconProvider';
|
|
8
|
+
export type { IconSet, PhosphorWeight, IconConfig } from './icon-store';
|
|
9
|
+
export { defaultIconConfig, getDefaultStrokeWidth } from './icon-store';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Icon/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAC3F,YAAY,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC7D,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACvD,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACvE,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { IconName } from "../lib/icons";
|
|
3
|
+
/**
|
|
4
|
+
* InfoCard 컴포넌트의 props / InfoCard component props
|
|
5
|
+
* @typedef {Object} InfoCardProps
|
|
6
|
+
* @property {string} title - 카드 제목 / Card title
|
|
7
|
+
* @property {IconName} icon - 카드 아이콘 / Card icon
|
|
8
|
+
* @property {"blue" | "purple" | "green" | "orange"} [tone="blue"] - InfoCard 톤 색상 / InfoCard tone color
|
|
9
|
+
* @extends {React.HTMLAttributes<HTMLDivElement>}
|
|
10
|
+
*/
|
|
11
|
+
export interface InfoCardProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
12
|
+
title: string;
|
|
13
|
+
icon: IconName;
|
|
14
|
+
tone?: "blue" | "purple" | "green" | "orange";
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* InfoCard 컴포넌트 / InfoCard component
|
|
18
|
+
*
|
|
19
|
+
* 정보를 표시하는 카드 컴포넌트입니다.
|
|
20
|
+
* 아이콘, 제목, 내용을 포함하며, 다양한 톤 색상을 지원합니다.
|
|
21
|
+
*
|
|
22
|
+
* Card component that displays information.
|
|
23
|
+
* Includes icon, title, and content, supports various tone colors.
|
|
24
|
+
*
|
|
25
|
+
* @component
|
|
26
|
+
* @example
|
|
27
|
+
* // 기본 사용 / Basic usage
|
|
28
|
+
* <InfoCard
|
|
29
|
+
* icon="info"
|
|
30
|
+
* title="정보"
|
|
31
|
+
* tone="blue"
|
|
32
|
+
* >
|
|
33
|
+
* 이것은 정보 카드입니다.
|
|
34
|
+
* </InfoCard>
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* // 다양한 톤 / Various tones
|
|
38
|
+
* <InfoCard icon="check" title="성공" tone="green">
|
|
39
|
+
* 작업이 완료되었습니다.
|
|
40
|
+
* </InfoCard>
|
|
41
|
+
*
|
|
42
|
+
* @param {InfoCardProps} props - InfoCard 컴포넌트의 props / InfoCard component props
|
|
43
|
+
* @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
|
|
44
|
+
* @returns {JSX.Element} InfoCard 컴포넌트 / InfoCard component
|
|
45
|
+
*/
|
|
46
|
+
export declare const InfoCard: React.ForwardRefExoticComponent<InfoCardProps & React.RefAttributes<HTMLDivElement>>;
|
|
47
|
+
export default InfoCard;
|
|
48
|
+
//# sourceMappingURL=InfoCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InfoCard.d.ts","sourceRoot":"","sources":["../../src/components/InfoCard.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAE5C;;;;;;;GAOG;AACH,MAAM,WAAW,aAAc,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACzE,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAA;CAC9C;AA6BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,QAAQ,sFAanB,CAAA;AAIF,eAAe,QAAQ,CAAA"}
|